7 22FL #OPT K0PMBUFFS=0 11 22_= #LIS K0PMBUFFS>K0POST>K0ALLGEO 4 23DW # 17 23YG ...#SEG PMBUFFS84 [KAREL KOSKUBA - DIAG 4 24D6 # 18 24XQ # THIS SEGMENT PRINTS OUT BOTH THE TRACE AND GSCAN BUFFERS 4 25CB # 9 25X2 8HPMBUFFS 4 26BL # 9 26W= # ENTRY POINT TABLE 4 27*W # 11 27TG SEGENTRY K1PMBUFFS,XK1PMBUFFS 7 28*6 #SKI BUFTRACE 8 28SQ #SKI K6TRACE<6-6 4 29#B ( 6 29S2 XK1PMBUFFS 9 2=?L BRN (JPMSEG) 4 2=R= ) 7 2?=W #SKI BUFTRACE 4 2?QG ( 8 2#=6 #SKI K6TRACE>5-5 4 2#PQ ( 8 2*9B SWITCH +0 18 2*P2 WCOUNT +0 [COUNT OF WORDS IN RECORD 18 2B8L TCOUNT +0 [COUNT OF TRACES PRINTED 20 2BN= XLINK +0 [LINK WORD FOR CORE PRINT ROUTINE 21 2C7W STOP +0 [CONTAINS ADDRESS AFTER LAST TRACE 12 2D76 MINI 16H MINI POSTMORTEM 9 2DLQ PRESET 8HGSCAN 11 2F6B TNAME 12HTRACE BUFFER 17 2FL2 TLINE 40H %B ACT.NO. %A 13 2G5L 20H CONTENTS OF %A 17 2GK= PMESS1 37HCORE PRINT OF TRACE BUFFER IMPOSSIBLE 17 2H4W PMESS2 37HERROR IN TRACE BUFFER OR ITS POINTERS 17 2HJG PMESS3 35HJTRAIND CORRUPTED, ASSUME JTRAIND=0 14 2J46 TEMPTY 25HTHE TRACE BUFFER IS EMPTY 18 2JHQ SLINE 40H %B ACT.NO. CONTE 10 2K3B 12HNTS OF %A 11 2KH2 SNAME 12HGSCAN BUFFER 17 2L2L PMESS4 37HCORE PRINT OF GSCAN BUFFER IMPOSSIBLE 17 2LG= PMESS5 37HERROR IN GSCAN BUFFER OR ITS POINTERS 14 2L_W PMESS6 25HTHE GSCAN BUFFER IS EMPTY 20 2MFG PMOD +0 [USED TO CHECK FOR COMPLETE LINE 21 2M_6 POINTER +0 [POINTER TO NEXT RECORD IN SCTABLE 10 2NDQ PFORMAT LDX 6 JOCT 10 2NYB LDX 6 JCHA 11 2PD2 LDX 6 JDECS 11 2PXL LDX 6 JDECP 5 2QC= SCTABLE 11 2QWW GSCANDEF DOCUMENT,1,0,0,1 11 2RBG GSCANEQU SWAPOUTF,SWAPINI 9 2RW6 GSCANDEF CLOAD,1,2 10 2S*Q GSCANDEF NEWJOB,0,1 11 2STB GSCANDEF MONF OUT,1,0,0,1 10 2T*2 GSCANDEF COREJAM,1,3 9 2TSL SCEND +SCEND 4 2W#= # 12 2WRW # THIS ROUTINE GIVES A CORE PRINT 12 2X?G # ENTRY X0=NUMBER OF WORDS 11 2XR6 # X1=START ADDRESS 9 2Y=Q # X7=LINK 12 2YQB # EXIT ALL ACCS UNDEFINED 4 2_=2 # 5 2_PL PRINTC 8 329= SMO FXPM1 8 32NW STO 7 XLINK 9 338G CALL 7 (JPRINT1) 8 33N6 SMO FXPM1 8 347Q LDX 7 XLINK 8 34MB BZE 0 (7) 7 3572 TB7 LDN 4 1 17 35LL ADS 4 JPMOD [UPDATE LP MODIFIER 20 366= LDX 5 1 [LOAD ADDRESS OF WORD TO CONVERT 19 36KW CALL 7 (JDECN) [IT FROM BINARY TO DECIMAL 8 375G SMO FXPM1 9 37K6 STO 0 WCOUNT 17 384Q ADS 4 JPMOD [UPDATE LP MODIFIER 21 38JB LDX 5 0(1) [CONVERT WORD TO CHARACTER, DECIMAL, 7 3942 ADS 4 1 20 39HL CALL 7 (JCON4) [OCTAL AND INSTRUCTION FORMATS 16 3=3= CALL 7 (JPRINT1) [PRINT A LINE 8 3=GW SMO FXPM1 17 3?2G LDX 0 WCOUNT [TEST IF CORE PRINT 17 3?G6 BCT 0 TB7 [HAS BEEN FINISHED 8 3?_Q SMO FXPM1 8 3#FB LDX 7 XLINK 7 3#_2 EXIT 7 0 8 3*DL #SKI K6TRACE<12-12 5 3*Y= TRACE 8 3BCW #SKI K6TRACE>11-11 4 3BXG ( 4 3CC6 # 18 3CWQ # TRACE BUFFER EMPTY OUTPUT A MESSAGE AND BRANCH TO (JPMSEG) 4 3DBB # 5 3DW2 TBEMPTY 11 3F*L PMESSAGE TEMPTY,7,FXPM1 9 3FT= BRN (JPMSEG) 4 3G#W # 15 3GSG # CHECK IF IT IS POSSIBLE TO GIVE A CORE PRINT 18 3H#6 # AND IF IT ISN'T OUTPUT A MESSAGE AND BRANCH TO (JPMSEG) 4 3HRQ # 18 3J?B TB1 LDX 1 JTRATOP [IF JTRATOP IS GREATER 15 3JR2 LDX 4 CORES [THAN CORES 17 3K=L TXL 4 1 [BRANCH TO (JPMSEG) 8 3KQ= BCC TB8 11 3L9W PMESSAGE PMESS1,10,FXPM1 18 3LPG BRN (JPMSEG) [AND DISPLAY A MESSAGE 4 3M96 TB8 11 3MNQ PMESSAGE PMESS2,10,FXPM1 17 3N8B ... SBX 1 JTRALEN [GIVE A CORE PRINT 19 3NN2 ... LDX 0 JTRALEN [USING JTRATOP AND TRALEN 9 3Q6W CALL 7 PRINTC 9 3QLG BRN (JPMSEG) 4 3R66 # 18 3RKQ # CHECK IF EITHER JTRABUFF OR JTRATOP HAVE BEEN CORRUPTED 17 3S5B # AND GIVE A CORE PRINT USING THE APPROPRIATE POINTER. 4 3SK2 # 5 3T4L PCORE1 9 3TJ= LDX 5 JTRAPNTR 7 3W3W TXL 5 4 8 3WHG BCS TB1 5 3X36 PCORE2 11 3XGQ PMESSAGE PMESS2,10,FXPM1 18 3Y2B ... LDX 0 JTRALEN [LOAD ACCUMULATORS IN 18 3Y_L LDX 1 JTRABUFF [ORDER TO GIVE CORE PRINT 9 3_F= CALL 7 PRINTC 9 3_YW BRN (JPMSEG) 4 42DG # 17 42Y6 # CHECK THE POINTERS TO SEE IF THE TRACE BUFFER IS EMPTY 4 43CQ # 19 43XB TB9 TXU 4 JTRAPNTR [IF JTRABUFF IS UNEQUAL TO 19 44C2 BCS PCORE2 [JTRAPNTR GIVE A CORE PRINT 15 44WL LDX 4 JTRATOP [OTHERWISE 8 45B= SMO FXPM1 16 45TW STO 4 STOP [TEST IF BUFFER 18 46*G LDX 4 JTRAIND [IS EMPTY AND OUTPUT A 16 46T6 BNZ 4 TBEMPTY [MESSAGE IF IT IS 7 47#Q LDN 6 2 8 47SB BRN TB2 4 48#2 # 19 48RL # TRACE BUFFER ROUTINE ENTERED HERE AND TITLE LINES PRINTED OUT 4 49?= # 5 49QW TRACE 10 4==G PMESSAGE TNAME,3,FXPM1 11 4=Q6 PMESSAGE TLINE,15,FXPM1 4 4?9Q # 18 4?PB # CHECK TO SEE IF ANY OF THE POINTERS HAVE BEEN CORRUPTED 18 4#92 # AND IF THEY HAVE GIVE A CORE PRINT WHERE THIS IS POSSIBLE 4 4#NL # 9 4*8= LDX 4 JTRABUFF 7 4*MW PMCORES 4,TB1 19 4B7G TXL 4 JTRATOP [IF JTRABUFF>JTRATOP BRANCH 17 4BM6 BCC PCORE1 [TO GIVE A CORE PRINT 9 4C6Q LDX 5 JTRATOP 8 4CLB LDX 6 CORES 18 4D62 TXL 6 5 [IF JTRATOP>CORES BRANCH 17 4DKL BCS PCORE2 [TO GIVE A CORE PRINT 19 4F5= TXL 5 JTRAPNTR [IF JTRATOP>JTRAPNTR BRANCH 17 4FJW BCS PCORE2 [TO GIVE A CORE PRINT 9 4G4G ... LDX 6 JTRALEN 18 4H3Q SBX 5 4 [USE TRALEN TO CHECK IF 21 4HHB TXU 6 5 [JTRABUFF AND JTRATOP ARE CORRUPTED 9 4J32 BCS PCORE2 20 4JGL TXL 4 JTRAPNTR [IF JTRABUFF>JTRAPNTR OR EQUAL 20 4K2= BCC TB9 [BRANCH TO SEE IF BUFFER IS EMPTY 9 4KFW LDX 5 JTRAPNTR 8 4K_G SMO FXPM1 8 4LF6 STO 5 STOP 4 4LYQ # 15 4MDB # CHECK THE VALUE OF JTRAIND. IF IT IS GREATER 13 4MY2 # THAN ONE ASSUME THAT BUFFER IS FULL. 4 4NCL # 9 4NX= LDX 6 JTRAIND 7 4PBW LDN 7 1 17 4PWG TXL 7 6 [TEST IF JTRAIND>1 17 4QB6 BCC TB2 [BRANCH IF IT ISN'T 11 4QTQ PMESSAGE PMESS3,9,FXPM1 7 4R*B STOZ 6 8 4RT2 TB2 SMO FXPM1 9 4S#L STO 6 SWITCH 8 4SS= BNZ 6 TB3 4 4T?W # 18 4TRG # LOAD ACCUMULATORS READY FOR PRINTING OUT OF TRACE BUFFER 14 4W?6 # X0=LENGTH OF EACH TRACE RECORD 13 4WQQ # X1=ADDRESS OF FIRST RECORD 4 4X=B # 16 4XQ2 CALL 7 (JPRINT1) [THROW A LINE 9 4Y9L LDX 1 JTRAPNTR 9 4YP= TB6 LDN 0 JTRAENT 4 4_8W # 13 4_NG # CHECK IF TRACE WAS INSERTED BY GSCAN 4 5286 # 8 52MQ CALL 7 (JUP) 8 537B +1 8 53M2 LDX 5 2(1) 19 546L BPZ 5 TB4 [IF RECORD INSERTED BY GSCAN 8 54L= SMO FXPM1 19 555W LDN 4 PRESET [SET UP CHARACTERS 'GSCAN' AT 18 55KG LDX 5 JPMOD [THE FRONT OF LP BUFFER 7 5656 MOVE 4 2 7 56JQ TB4 LDN 7 2 8 574B ADS 7 JPMOD 4 57J2 # 14 583L # SET UP TRACE RECORD IN CURRENT LP BUFFER 4 58H= # 7 592W LDX 4 1 16 59GG LDX 5 JPMOD [LOAD TRACE NAME 16 5=26 MOVE 4 2 [INTO LP BUFFER 7 5=FQ SBN 0 2 7 5=_B LDN 4 3 8 5?F2 ADS 4 JPMOD 7 5?YL ADN 1 2 20 5#D= LDX 5 2(1) [LOAD THE CURRENT ACTIVITY NUMBER 21 5#XW CALL 7 (JDECN) [AT TIME OF TRACE INTO LP BUFFER 7 5*CG LDN 4 1 8 5*X6 ADS 4 JPMOD 18 5BBQ LDXC 5 0(1) [LOAD THE ADDRESS OF THE 19 5BWB CALL 7 (JDECN) [WORD TRACED INTO LP BUFFER 8 5CB2 ADS 4 JPMOD 7 5CTL BUX 1 / 8 5D*= SMO FXPM1 9 5DSW STO 0 WCOUNT 20 5F#G LDX 5 0(1) [LOAD THE CONTENTS OF WORD TRACED 21 5FS6 CALL 7 (JCON4) [INTO LP BUFFER IN DIFFERENT FORMAT 16 5G?Q CALL 7 (JPRINT1) [PRINT A LINE 4 5GRB # 19 5H?2 # CHECK THE COUNT OF TRACES PRINTED AND LENGTH OF THE RECORDS 4 5HQL # 8 5J== SMO FXPM1 9 5JPW LDX 4 TCOUNT 7 5K9G ADN 4 1 8 5KP6 SMO FXPM1 9 5L8Q STO 4 TCOUNT 9 5LNB LDN 6 JTRAENT 17 5M82 MPY 4 6 [TEST IF THE NUMBER 18 5MML ... LDX 4 JTRALEN [OF TRACES PRINTED IS 18 5NLW TXL 4 5 [GREATER THAN THE MAXIMUM 19 5P6G BCS PCORE2 [IF IT IS GIVE A CORE PRINT 7 5PL6 ADN 1 2 8 5Q5Q SMO FXPM1 21 5QKB LDX 0 WCOUNT [TEST IF NUMBER OF WORDS IN RECORD 18 5R52 SBN 0 3 [IS WRONG AND IF IT IS 19 5RJL BNZ 0 PCORE2 [BRANCH TO GIVE A CORE PRINT 4 5S4= # 17 5SHW # CHECK IF ALL THE TRACES HAVE BEEN PRINTED. ACCORDING 14 5T3G # TO WHICH POINTER HOLDS THE END ADDRESS. 4 5TH6 # 8 5W2Q SMO FXPM1 9 5WGB LDX 4 SWITCH 8 5X22 BNZ 4 TB5 20 5XFL TXU 1 JTRATOP [TEST IF END OF BUFFER HAS BEEN 19 5X_= BCS TB6 [REACHED BRANCH IF IT HASN'T 17 5YDW LDN 4 1 [OTHERWISE SET SWITCH 8 5YYG SMO FXPM1 15 5_D6 STO 4 SWITCH [WORD TO ONE 19 5_XQ TB3 LDX 1 JTRABUFF [AND START PRINTING TRACES 17 62CB BRN TB6 [FROM START OF BUFFER 8 62X2 TB5 SMO FXPM1 18 63BL TXU 1 STOP [TEST IF ALL THE TRACES 17 63W= BCS TB6 [HAVE BEEN PRINTED 4 64*W ) 9 64TG BRN (JPMSEG) 4 65*6 # 17 65SQ # THIS ROUTINE CHECKS TO SEE IF THE LP BUFFER IS FULL 17 66#B # IF IT IS THE LINE IS PRINTED AND THE OUTPUT CONTINUED 8 66S2 # ON THE NEXT LINE. 9 67?L # ENTRY X7=LINK 12 67R= # EXIT X3,X5,X6,X7 UNDEFINED 4 68=W # 5 68QG NEWLINE 8 69=6 SMO FXPM1 8 69PQ STO 7 XLINK 8 6=9B LDX 5 JPMOD 7 6=P2 SLC 5 2 8 6?8L SMO FXPM1 8 6?N= SBX 5 PMOD 18 6#7W LDN 6 79 [TEST IF THE LP BUFFER 16 6#MG TXL 5 6 [IS FULL BRANCH 15 6*76 BCS SC13 [IF IT ISN'T 16 6*LQ CALL 7 (JPRINT1) [PRINT A LINE 7 6B6B LDN 6 8 14 6BL2 ADX 6 JPMOD [UPDATE 15 6C5L STO 6 JPMOD [LP MODIFIER 7 6CK= SLC 6 2 8 6D4W SMO FXPM1 8 6DJG STO 6 PMOD 8 6F46 SC13 SMO FXPM1 8 6FHQ LDX 7 XLINK 7 6G3B EXIT 7 0 4 6GH2 # 17 6H2L # OUTPUT AN ERROR MESSAGE AND GIVE A CORE PRINT OF THE 17 6HG= # GSCAN BUFFER THEN BRANCH TO PRINT OUT THE TRACE BUFFER 4 6H_W # 5 6JFG PRNTCORE 11 6J_6 PMESSAGE PMESS5,10,FXPM1 17 6KDQ LDX 1 GSCANBUFF [LOAD ACCUMULATORS 15 6KYB ... LDX 0 GSCANLEN [IN ORDER TO 18 6LD2 CALL 7 PRINTC [CALL CORE PRINT ROUTINE 8 6LXL BRN TRACE 4 6MC= # 18 6MWW # CORE PRINT OF GSCAN BUFFER IMPOSSIBLE AS GSCANBUFF>CORES 12 6NBG # BRANCH TO PRINT OUT TRACE BUFFER 4 6NW6 # 5 6P*Q NOPRINT 11 6PTB PMESSAGE PMESS4,10,FXPM1 8 6Q*2 BRN TRACE 4 6QSL # 19 6R#= # GSCAN BUFFER ROUTINE ENTERED HERE AND TITLE LINES PRINTED OUT 4 6RRW # 6 6S?G XK1PMBUFFS 4 6SR6 # 12 6T=Q # PRINT MINI POSTMORTEM HEADING 4 6TQB # 8 6W=2 SMO FXPM1 16 6WPL LDN 4 MINI [SET UP HEADING 8 6X9= LDX 5 JPMOD 8 6XNW MVCH 4 16 20 6Y8G CALL 7 (JPRINT) [THROW A PAGE & PRINT HEADING 10 6YN6 PMESSAGE SNAME,3,FXPM1 11 6_7Q PMESSAGE SLINE,13,FXPM1 4 6_MB # 13 7272 ...# READ DOWN PMINPRIN FROM BACKING STORE 4 72LL # 8 736= SMO FXPM1 9 73KW LDN 5 XDINPRIN 10 745G ... PMOVE PMINPRIN,5 4 74K6 # 18 754Q # CHECK TO SEE IF ANY OF THE POINTERS HAVE BEEN CORRUPTED 16 75JB # AND IF THEY HAVE GIVE A CORE PRINT WHERE POSSIBLE 4 7642 # 9 76HL LDX 4 GSCANBUFF 9 773= LDX 5 GSCANPNTR 9 77GW LDX 1 GSCANVAL 8 782G PMCORES 4,NOPRINT 8 78G6 PMCORES 5,PRNTCORE 18 78_Q TXL 4 5 [IF GSCANBUFF