PMBUFFS84
(George Source)
Macros used: EMPTY, GSCAN, GSCANDEF, GSCANEQU, OR, PMCORES, PMESSAGE, PMOVE, SEGENTRY, TRACE
- PMBUFFS84.txt
22FL #OPT K0PMBUFFS=0 22^= #LIS K0PMBUFFS>K0POST>K0ALLGEO 23DW # 23YG ...#SEG PMBUFFS84 [KAREL KOSKUBA - DIAG 24D6 # 24XQ # THIS SEGMENT PRINTS OUT BOTH THE TRACE AND GSCAN BUFFERS 25CB # 25X2 8HPMBUFFS 26BL # 26W= # ENTRY POINT TABLE 27*W # 27TG SEGENTRY K1PMBUFFS,XK1PMBUFFS 28*6 #SKI BUFTRACE 28SQ #SKI K6TRACE<6-6 29#B ( 29S2 XK1PMBUFFS 2=?L BRN (JPMSEG) 2=R= ) 2?=W #SKI BUFTRACE 2?QG ( 2#=6 #SKI K6TRACE>5-5 2#PQ ( 2*9B SWITCH +0 2*P2 WCOUNT +0 [COUNT OF WORDS IN RECORD 2B8L TCOUNT +0 [COUNT OF TRACES PRINTED 2BN= XLINK +0 [LINK WORD FOR CORE PRINT ROUTINE 2C7W STOP +0 [CONTAINS ADDRESS AFTER LAST TRACE 2D76 MINI 16H MINI POSTMORTEM 2DLQ PRESET 8HGSCAN 2F6B TNAME 12HTRACE BUFFER 2FL2 TLINE 40H %B ACT.NO. %A 2G5L 20H CONTENTS OF %A 2GK= PMESS1 37HCORE PRINT OF TRACE BUFFER IMPOSSIBLE 2H4W PMESS2 37HERROR IN TRACE BUFFER OR ITS POINTERS 2HJG PMESS3 35HJTRAIND CORRUPTED, ASSUME JTRAIND=0 2J46 TEMPTY 25HTHE TRACE BUFFER IS EMPTY 2JHQ SLINE 40H %B ACT.NO. CONTE 2K3B 12HNTS OF %A 2KH2 SNAME 12HGSCAN BUFFER 2L2L PMESS4 37HCORE PRINT OF GSCAN BUFFER IMPOSSIBLE 2LG= PMESS5 37HERROR IN GSCAN BUFFER OR ITS POINTERS 2L^W PMESS6 25HTHE GSCAN BUFFER IS EMPTY 2MFG PMOD +0 [USED TO CHECK FOR COMPLETE LINE 2M^6 POINTER +0 [POINTER TO NEXT RECORD IN SCTABLE 2NDQ PFORMAT LDX 6 JOCT 2NYB LDX 6 JCHA 2PD2 LDX 6 JDECS 2PXL LDX 6 JDECP 2QC= SCTABLE 2QWW GSCANDEF DOCUMENT,1,0,0,1 2RBG GSCANEQU SWAPOUTF,SWAPINI 2RW6 GSCANDEF CLOAD,1,2 2S*Q GSCANDEF NEWJOB,0,1 2STB GSCANDEF MONF OUT,1,0,0,1 2T*2 GSCANDEF COREJAM,1,3 2TSL SCEND +SCEND 2W#= # 2WRW # THIS ROUTINE GIVES A CORE PRINT 2X?G # ENTRY X0=NUMBER OF WORDS 2XR6 # X1=START ADDRESS 2Y=Q # X7=LINK 2YQB # EXIT ALL ACCS UNDEFINED 2^=2 # 2^PL PRINTC 329= SMO FXPM1 32NW STO 7 XLINK 338G CALL 7 (JPRINT1) 33N6 SMO FXPM1 347Q LDX 7 XLINK 34MB BZE 0 (7) 3572 TB7 LDN 4 1 35LL ADS 4 JPMOD [UPDATE LP MODIFIER 366= LDX 5 1 [LOAD ADDRESS OF WORD TO CONVERT 36KW CALL 7 (JDECN) [IT FROM BINARY TO DECIMAL 375G SMO FXPM1 37K6 STO 0 WCOUNT 384Q ADS 4 JPMOD [UPDATE LP MODIFIER 38JB LDX 5 0(1) [CONVERT WORD TO CHARACTER, DECIMAL, 3942 ADS 4 1 39HL CALL 7 (JCON4) [OCTAL AND INSTRUCTION FORMATS 3=3= CALL 7 (JPRINT1) [PRINT A LINE 3=GW SMO FXPM1 3?2G LDX 0 WCOUNT [TEST IF CORE PRINT 3?G6 BCT 0 TB7 [HAS BEEN FINISHED 3?^Q SMO FXPM1 3#FB LDX 7 XLINK 3#^2 EXIT 7 0 3*DL #SKI K6TRACE<12-12 3*Y= TRACE 3BCW #SKI K6TRACE>11-11 3BXG ( 3CC6 # 3CWQ # TRACE BUFFER EMPTY OUTPUT A MESSAGE AND BRANCH TO (JPMSEG) 3DBB # 3DW2 TBEMPTY 3F*L PMESSAGE TEMPTY,7,FXPM1 3FT= BRN (JPMSEG) 3G#W # 3GSG # CHECK IF IT IS POSSIBLE TO GIVE A CORE PRINT 3H#6 # AND IF IT ISN'T OUTPUT A MESSAGE AND BRANCH TO (JPMSEG) 3HRQ # 3J?B TB1 LDX 1 JTRATOP [IF JTRATOP IS GREATER 3JR2 LDX 4 CORES [THAN CORES 3K=L TXL 4 1 [BRANCH TO (JPMSEG) 3KQ= BCC TB8 3L9W PMESSAGE PMESS1,10,FXPM1 3LPG BRN (JPMSEG) [AND DISPLAY A MESSAGE 3M96 TB8 3MNQ PMESSAGE PMESS2,10,FXPM1 3N8B ... SBX 1 JTRALEN [GIVE A CORE PRINT 3NN2 ... LDX 0 JTRALEN [USING JTRATOP AND TRALEN 3Q6W CALL 7 PRINTC 3QLG BRN (JPMSEG) 3R66 # 3RKQ # CHECK IF EITHER JTRABUFF OR JTRATOP HAVE BEEN CORRUPTED 3S5B # AND GIVE A CORE PRINT USING THE APPROPRIATE POINTER. 3SK2 # 3T4L PCORE1 3TJ= LDX 5 JTRAPNTR 3W3W TXL 5 4 3WHG BCS TB1 3X36 PCORE2 3XGQ PMESSAGE PMESS2,10,FXPM1 3Y2B ... LDX 0 JTRALEN [LOAD ACCUMULATORS IN 3Y^L LDX 1 JTRABUFF [ORDER TO GIVE CORE PRINT 3^F= CALL 7 PRINTC 3^YW BRN (JPMSEG) 42DG # 42Y6 # CHECK THE POINTERS TO SEE IF THE TRACE BUFFER IS EMPTY 43CQ # 43XB TB9 TXU 4 JTRAPNTR [IF JTRABUFF IS UNEQUAL TO 44C2 BCS PCORE2 [JTRAPNTR GIVE A CORE PRINT 44WL LDX 4 JTRATOP [OTHERWISE 45B= SMO FXPM1 45TW STO 4 STOP [TEST IF BUFFER 46*G LDX 4 JTRAIND [IS EMPTY AND OUTPUT A 46T6 BNZ 4 TBEMPTY [MESSAGE IF IT IS 47#Q LDN 6 2 47SB BRN TB2 48#2 # 48RL # TRACE BUFFER ROUTINE ENTERED HERE AND TITLE LINES PRINTED OUT 49?= # 49QW TRACE 4==G PMESSAGE TNAME,3,FXPM1 4=Q6 PMESSAGE TLINE,15,FXPM1 4?9Q # 4?PB # CHECK TO SEE IF ANY OF THE POINTERS HAVE BEEN CORRUPTED 4#92 # AND IF THEY HAVE GIVE A CORE PRINT WHERE THIS IS POSSIBLE 4#NL # 4*8= LDX 4 JTRABUFF 4*MW PMCORES 4,TB1 4B7G TXL 4 JTRATOP [IF JTRABUFF>JTRATOP BRANCH 4BM6 BCC PCORE1 [TO GIVE A CORE PRINT 4C6Q LDX 5 JTRATOP 4CLB LDX 6 CORES 4D62 TXL 6 5 [IF JTRATOP>CORES BRANCH 4DKL BCS PCORE2 [TO GIVE A CORE PRINT 4F5= TXL 5 JTRAPNTR [IF JTRATOP>JTRAPNTR BRANCH 4FJW BCS PCORE2 [TO GIVE A CORE PRINT 4G4G ... LDX 6 JTRALEN 4H3Q SBX 5 4 [USE TRALEN TO CHECK IF 4HHB TXU 6 5 [JTRABUFF AND JTRATOP ARE CORRUPTED 4J32 BCS PCORE2 4JGL TXL 4 JTRAPNTR [IF JTRABUFF>JTRAPNTR OR EQUAL 4K2= BCC TB9 [BRANCH TO SEE IF BUFFER IS EMPTY 4KFW LDX 5 JTRAPNTR 4K^G SMO FXPM1 4LF6 STO 5 STOP 4LYQ # 4MDB # CHECK THE VALUE OF JTRAIND. IF IT IS GREATER 4MY2 # THAN ONE ASSUME THAT BUFFER IS FULL. 4NCL # 4NX= LDX 6 JTRAIND 4PBW LDN 7 1 4PWG TXL 7 6 [TEST IF JTRAIND>1 4QB6 BCC TB2 [BRANCH IF IT ISN'T 4QTQ PMESSAGE PMESS3,9,FXPM1 4R*B STOZ 6 4RT2 TB2 SMO FXPM1 4S#L STO 6 SWITCH 4SS= BNZ 6 TB3 4T?W # 4TRG # LOAD ACCUMULATORS READY FOR PRINTING OUT OF TRACE BUFFER 4W?6 # X0=LENGTH OF EACH TRACE RECORD 4WQQ # X1=ADDRESS OF FIRST RECORD 4X=B # 4XQ2 CALL 7 (JPRINT1) [THROW A LINE 4Y9L LDX 1 JTRAPNTR 4YP= TB6 LDN 0 JTRAENT 4^8W # 4^NG # CHECK IF TRACE WAS INSERTED BY GSCAN 5286 # 52MQ CALL 7 (JUP) 537B +1 53M2 LDX 5 2(1) 546L BPZ 5 TB4 [IF RECORD INSERTED BY GSCAN 54L= SMO FXPM1 555W LDN 4 PRESET [SET UP CHARACTERS 'GSCAN' AT 55KG LDX 5 JPMOD [THE FRONT OF LP BUFFER 5656 MOVE 4 2 56JQ TB4 LDN 7 2 574B ADS 7 JPMOD 57J2 # 583L # SET UP TRACE RECORD IN CURRENT LP BUFFER 58H= # 592W LDX 4 1 59GG LDX 5 JPMOD [LOAD TRACE NAME 5=26 MOVE 4 2 [INTO LP BUFFER 5=FQ SBN 0 2 5=^B LDN 4 3 5?F2 ADS 4 JPMOD 5?YL ADN 1 2 5#D= LDX 5 2(1) [LOAD THE CURRENT ACTIVITY NUMBER 5#XW CALL 7 (JDECN) [AT TIME OF TRACE INTO LP BUFFER 5*CG LDN 4 1 5*X6 ADS 4 JPMOD 5BBQ LDXC 5 0(1) [LOAD THE ADDRESS OF THE 5BWB CALL 7 (JDECN) [WORD TRACED INTO LP BUFFER 5CB2 ADS 4 JPMOD 5CTL BUX 1 £ 5D*= SMO FXPM1 5DSW STO 0 WCOUNT 5F#G LDX 5 0(1) [LOAD THE CONTENTS OF WORD TRACED 5FS6 CALL 7 (JCON4) [INTO LP BUFFER IN DIFFERENT FORMAT 5G?Q CALL 7 (JPRINT1) [PRINT A LINE 5GRB # 5H?2 # CHECK THE COUNT OF TRACES PRINTED AND LENGTH OF THE RECORDS 5HQL # 5J== SMO FXPM1 5JPW LDX 4 TCOUNT 5K9G ADN 4 1 5KP6 SMO FXPM1 5L8Q STO 4 TCOUNT 5LNB LDN 6 JTRAENT 5M82 MPY 4 6 [TEST IF THE NUMBER 5MML ... LDX 4 JTRALEN [OF TRACES PRINTED IS 5NLW TXL 4 5 [GREATER THAN THE MAXIMUM 5P6G BCS PCORE2 [IF IT IS GIVE A CORE PRINT 5PL6 ADN 1 2 5Q5Q SMO FXPM1 5QKB LDX 0 WCOUNT [TEST IF NUMBER OF WORDS IN RECORD 5R52 SBN 0 3 [IS WRONG AND IF IT IS 5RJL BNZ 0 PCORE2 [BRANCH TO GIVE A CORE PRINT 5S4= # 5SHW # CHECK IF ALL THE TRACES HAVE BEEN PRINTED. ACCORDING 5T3G # TO WHICH POINTER HOLDS THE END ADDRESS. 5TH6 # 5W2Q SMO FXPM1 5WGB LDX 4 SWITCH 5X22 BNZ 4 TB5 5XFL TXU 1 JTRATOP [TEST IF END OF BUFFER HAS BEEN 5X^= BCS TB6 [REACHED BRANCH IF IT HASN'T 5YDW LDN 4 1 [OTHERWISE SET SWITCH 5YYG SMO FXPM1 5^D6 STO 4 SWITCH [WORD TO ONE 5^XQ TB3 LDX 1 JTRABUFF [AND START PRINTING TRACES 62CB BRN TB6 [FROM START OF BUFFER 62X2 TB5 SMO FXPM1 63BL TXU 1 STOP [TEST IF ALL THE TRACES 63W= BCS TB6 [HAVE BEEN PRINTED 64*W ) 64TG BRN (JPMSEG) 65*6 # 65SQ # THIS ROUTINE CHECKS TO SEE IF THE LP BUFFER IS FULL 66#B # IF IT IS THE LINE IS PRINTED AND THE OUTPUT CONTINUED 66S2 # ON THE NEXT LINE. 67?L # ENTRY X7=LINK 67R= # EXIT X3,X5,X6,X7 UNDEFINED 68=W # 68QG NEWLINE 69=6 SMO FXPM1 69PQ STO 7 XLINK 6=9B LDX 5 JPMOD 6=P2 SLC 5 2 6?8L SMO FXPM1 6?N= SBX 5 PMOD 6#7W LDN 6 79 [TEST IF THE LP BUFFER 6#MG TXL 5 6 [IS FULL BRANCH 6*76 BCS SC13 [IF IT ISN'T 6*LQ CALL 7 (JPRINT1) [PRINT A LINE 6B6B LDN 6 8 6BL2 ADX 6 JPMOD [UPDATE 6C5L STO 6 JPMOD [LP MODIFIER 6CK= SLC 6 2 6D4W SMO FXPM1 6DJG STO 6 PMOD 6F46 SC13 SMO FXPM1 6FHQ LDX 7 XLINK 6G3B EXIT 7 0 6GH2 # 6H2L # OUTPUT AN ERROR MESSAGE AND GIVE A CORE PRINT OF THE 6HG= # GSCAN BUFFER THEN BRANCH TO PRINT OUT THE TRACE BUFFER 6H^W # 6JFG PRNTCORE 6J^6 PMESSAGE PMESS5,10,FXPM1 6KDQ LDX 1 GSCANBUFF [LOAD ACCUMULATORS 6KYB ... LDX 0 GSCANLEN [IN ORDER TO 6LD2 CALL 7 PRINTC [CALL CORE PRINT ROUTINE 6LXL BRN TRACE 6MC= # 6MWW # CORE PRINT OF GSCAN BUFFER IMPOSSIBLE AS GSCANBUFF>CORES 6NBG # BRANCH TO PRINT OUT TRACE BUFFER 6NW6 # 6P*Q NOPRINT 6PTB PMESSAGE PMESS4,10,FXPM1 6Q*2 BRN TRACE 6QSL # 6R#= # GSCAN BUFFER ROUTINE ENTERED HERE AND TITLE LINES PRINTED OUT 6RRW # 6S?G XK1PMBUFFS 6SR6 # 6T=Q # PRINT MINI POSTMORTEM HEADING 6TQB # 6W=2 SMO FXPM1 6WPL LDN 4 MINI [SET UP HEADING 6X9= LDX 5 JPMOD 6XNW MVCH 4 16 6Y8G CALL 7 (JPRINT) [THROW A PAGE & PRINT HEADING 6YN6 PMESSAGE SNAME,3,FXPM1 6^7Q PMESSAGE SLINE,13,FXPM1 6^MB # 7272 ...# READ DOWN PMINPRIN FROM BACKING STORE 72LL # 736= SMO FXPM1 73KW LDN 5 XDINPRIN 745G ... PMOVE PMINPRIN,5 74K6 # 754Q # CHECK TO SEE IF ANY OF THE POINTERS HAVE BEEN CORRUPTED 75JB # AND IF THEY HAVE GIVE A CORE PRINT WHERE POSSIBLE 7642 # 76HL LDX 4 GSCANBUFF 773= LDX 5 GSCANPNTR 77GW LDX 1 GSCANVAL 782G PMCORES 4,NOPRINT 78G6 PMCORES 5,PRNTCORE 78^Q TXL 4 5 [IF GSCANBUFF<GSCANPNTR 79FB BCS SC18 [BRANCH FORWARD 79^2 TXU 4 5 [IF THEY ARE UNEQUAL BRANCH 7=DL BCS PRNTCORE [TO GIVE A CORE PRINT 7=Y= BNZ 1 SC16 [IF GSCANVAL IS ZERO 7?CW PMESSAGE PMESS6,7,FXPM1 [OUTPUT A MESSAGE AND 7?XG BRN TRACE [BRANCH TO PRINT OUT TRACE BUFFER 7#C6 SC16 LDN 6 1 7#WQ SMO FXPM1 7*BB STO 6 SWITCH 7*W2 SC18 SBX 5 4 7B*L ADX 5 GSCANLEFT 7BT= ... LDX 4 GSCANLEN [USE GSCANLEFT AND GSCANSIZE FOR 7C#W TXU 5 4 [A FINAL CHECK OF THE POINTERS 7CSG BCS PRNTCORE 7D#6 PMCORES 1,PRNTCORE 7DRQ CALL 7 (JPRINT1) [THROW A LINE 7F?B BZE 1 SC17 7FR2 # 7G=L # SET UP COUNT OF WORDS IN GSCAN RECORD. IF COUNT=0 AND LAST SCAN HAS 7GQ= # BEEN PRINTED BRANCH TO TRACE OTHERWISE START READING RECORDS 7H9W # FROM START OF BUFFER. 7HPG # 7J96 SC8 LDX 0 0(1) [LOAD FIRST WORD OF RECORD 7JNQ BNZ 0 SC1 [IF IT IS ZERO TEST IF LAST 7K8B SMO FXPM1 7KN2 LDX 6 SWITCH [SCAN HAS BEEN PRINTED 7L7L BNZ 6 TRACE [OTHERWISE 7LM= SC17 LDX 1 GSCANBUFF [LOAD ADDRESS OF FIRST 7M6W BRN SC8 [RECORD INTO MODIFIER 7MLG SC1 SMO FXPM1 7N66 ADS 0 WCOUNT [COUNT OF WORDS READ IN BUFFER 7NKQ LDN 4 GSCANSIZE [IF COUNT OF WORDS CONTAINED IN 7P5B SMO FXPM1 7PK2 TXL 4 WCOUNT [WCOUNT IS GREATER THAN SIZE OF 7Q4L BCS PRNTCORE [GSCAN BUFFER GIVE A CORE PRINT 7QJ= # 7R3W # SET UP GSCAN RECORD INTO THE CURRENT LP BUFFER 7RHG # 7S36 CALL 7 (JUP) [UPDATE LP BUFFER MODIFIER 7SGQ +9 7T2B LDN 4 1(1) [LOAD GSCAN NAME 7TG2 LDX 5 JPMOD [INTO LP BUFFER 7T^L MOVE 4 2 7WF= LDN 4 3 [UPDATE MODIFIER FOR 7WYW ADS 4 JPMOD [LP BUFFER 7XDG LDX 5 3(1) [SET UP ACTIVITY NUMBER 7XY6 CALL 7 (JDECN) [IN LP BUFFER 7YCQ SBN 0 4 7YXB ... BZE 0 SC6A [J IF NO CONTENTS IN GSCAN 7^C2 LDN 4 1 [UPDATE MODIFIER FOR 7^WL ADX 4 JPMOD [LP BUFFER 82B= STO 4 JPMOD [ALSO STORES ADDRESS 82TW SLC 4 2 [IN MODIFIER IN ORDER TO 83*G SMO FXPM1 83T6 STO 4 PMOD [CHECK FOR A FULL LINE 84#Q # 84SB # TEST IF GSCAN NAME IS LISTED IN SCTABLE AS EITHER A GSCANDEF OR A 85#2 # GSCANEQU MACRO AND GIVE THE CORRECT PRINTING FORMAT IF IT IS 85RL # 86?= SMO FXPM1 86QW LDN 2 SCTABLE [LOAD POINTER TO TABLE 87=G SC4 LDX 4 0(2) [BRANCH IF MACRO 87Q6 ADX 4 FXPM1 889Q BNG 4 SCANEQU [IS A GSCANEQU 88PB SMO FXPM1 8992 STO 4 POINTER 89NL TXU 4 2 [TEST IF POINTER POINTS 8=8= BCS SC2 [TO ITSELF AND IF 8=MW ADN 1 4 [IT DOES BRANCH TO 8?7G BRN SC7 [PRINT OUT RECORD IN OCTAL 8?M6 SC2 LDX 4 1(2) 8#6Q LDX 5 2(2) [TEST IF GSCAN NAME IS 8#LB TXU 4 1(1) [EQUAL TO NAME IN TABLE 8*62 TXU 5 2(1) [AND IF IT IS 8*KL BCC SC11 [BRANCH FORWARD 8B5= SMO FXPM1 8BJW LDX 2 POINTER [OTHERWISE GET NEXT 8C4G BRN SC4 [RECORD IN TABLE 8CJ6 # 8D3Q # FIND OUT THE PRINTING FORMAT AND THE NUMBER 8DHB # OF WORDS TO BE PRINTED OUT IN THIS FORMAT 8F32 # 8F6X ...SC11A ADX 4 FXPM1 8F=S ... SMO FXPM1 8FBP ... STO 4 POINTER 8FGL SC11 ADN 1 4 [UPDATE BOTH GSCAN AND 8G2= ADN 2 3 [TABLE RECORD MODIFIERS 8GFW SC3 LDX 4 0(2) 8G^G SRL 4 12 [LOAD COUNT FROM TOP 12 BITS 8HF6 SC5 LDX 3 0(2) 8HYQ ANDN 3 #7777 [LOAD FORMAT FROM BOTTOM 12 BITS 8JDB LDN 5 1 8JY2 TXU 5 3 [TEST IF CHARACTER FORMAT IS WANTED 8KCL BCC SC12 [AND BRANCH IF IT IS 8KX= LDX 5 0(1) [LOAD WORD TO BE CONVERTED 8LBW SMO FXPM1 8LWG OBEY PFORMAT(3) 8MB6 CALL 7 (6) [CONVERT WORD 8MTQ CALL 7 (JUP) 8N*B +1 8NT2 ADN 1 1 8P#L SC15 SBN 0 1 8PS= BZE 0 SC6 [BRANCH IF GSCAN RECORD HAS ENDED 8Q?W CALL 7 NEWLINE 8QRG BCT 4 SC5 8R?6 ADN 2 1 8RQQ SMO FXPM1 8S=B TXU 2 POINTER [TEST IF TABLE RECORD HAS ENDED 8SQ2 BCS SC3 [BRANCH BACK IF IT HASN'T 8T9L # 8TP= # IF GSCAN NAME ISN'T IN THE TABLE PRINT OUT THE SCAN IN OCTAL, OR 8W8W # IF GSCAN RECORD HAS NOT FINISHED PRINT OUT REMAINDER IN OCTAL 8WNG # 8X86 SC7 LDX 5 0(1) [LOAD THE WORD TO BE 8XMQ CALL 7 (JOCT) [CONVERTED INTO OCTAL 8Y7B CALL 7 (JUP) 8YM2 +1 8^6L ADN 1 1 [AND TEST IF 8^L= CALL 7 NEWLINE 925W BCT 0 SC7 [GSCAN RECORD HAS FINISHED 92*N ... BRN SC6 92KG # 9356 # CHECK IF THE NUMBER OF SCANS PRINTED IS GREATER THAN THE 93JQ # MAXIMUM AND ALSO IF THE LAST SCAN HAS BEEN PRINTED 944B # 94#8 ...SC6A ADN 1 4 94J2 SC6 CALL 7 (JPRINT1) [PRINT A LINE 953L TXU 1 GSCANPNTR [TEST IF ALL THE SCANS 95H= BCS SC8 [HAVE BEEN PRINTED OUT 962W BRN TRACE 96GG # 9726 # THIS CODING SETS UP THE CONTENTS AS A CHARACTER STRING 97FQ # 97^B SC12 LDX 5 0(1) 98F2 CALL 7 (JCHA) [CONVERT THE WORD TO CHARACTERS 98YL BUX 1 SC15 99D= # 99XW # TEST IF GSCANEQU RECORD IN TABLE HAS SAME NAME AS GSCAN NAME AND 9=CG # IF IT HAS FIND NEXT GSCANDEF MACRO FOR PRINTING FORMAT 9=X6 # 9?BQ SCANEQU 9?WB LDCT 5 #400 9#B2 ERX 4 5 [UNSET BIT 0 OF WORD 9#TL SMO FXPM1 9**= STO 4 POINTER [CONTAINING POINTER 9*SW ADN 2 1 9B#G LDX 4 1(1) [TEST IF THE NAME OF 9BS6 LDX 5 2(1) [THE GSCAN IS THE 9C?Q SC10 TXU 4 0(2) [SAME AS THE NAME OF 9CRB TXU 5 1(2) [THE GSCANEQU MACRO 9D?2 BCC SC9 [BRANCH FORWARD IF IT IS 9DQL ADN 2 2 9F== SMO FXPM1 9FPW TXU 2 POINTER [END OF GSCANEQU RECORD 9G9G BCC SC4 [AND BRANCH IF IT HAS 9GP6 BRN SC10 9H8Q SC9 SMO FXPM1 9HNB LDX 2 POINTER 9J82 LDX 4 0(2) [IF NEXT MACRO IS A GSCANDEF 9JML ... BPZ 4 SC11A [BRANCH TO PRINT OUT GSCAN RECORD 9K7= LDCT 5 #400 [OTHERWISE CLEAR BIT 0 9KLW ERX 4 5 [AND GET NEXT 9L6G ADX 4 FXPM1 9LL6 SMO FXPM1 9M5Q STO 4 POINTER [RECORD IN TABLE 9MKB BRN SC9 9N52 XDINPRIN [BASE ADDRESS FOR INPRIN 9NJL ) 9P4= ) 9PHW #END ^^^^ ...600212700006