22FL #OPT K0PMSUMA=0 22^= #LIS K0PMSUMA>K0POST>K0ALLGEO 23DW # 23YG #SEG PMSUMA85 [M.C.D. MANN 248# ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 24D6 # 24XQ # THIS SEGMENT PRINTS OUT THE POSTMORTEM SUMMARY LISTING 25CB # 25X2 8HPMSUMA 26BL # 26W= # ENTRY POINT TABLE 27*W # 27TG SEGENTRY K1PMSUMA,XK1PMSUMA 28*6 SEGENTRY K2PMSUMA,XK2PMSUMA 28SQ SEGENTRY K3PMSUMA,XK3PMSUMA 29#B SEGENTRY K4PMSUMA,XK4PMSUMA 29S2 JPMREL [THIS WORD IS UPDATED BY NEWFIXED 2=?L ...REL +AENDCHAPS-DDATUM 2=R= # 2?=W # 2?QG XHEADA 7HINSTR: 2#=6 XHEADB 7HSUMMARY 2#C# ...XSYSER 16HSYSTEM ERROR: 0 2#JG ...XF5PST 16HF5POST 2#PQ XHEADC 28HBROKE IN AT ADDRESS 2*9B XHEADD 8HOBEYING 2*P2 XHEADE 8HGEOERR: 2B8L XHEADF 8H???????? 2BN= XHEADG 23HCONTENTS OF FX2 ILLEGAL 2C7W XHEADH 39HFX2 DOES NOT POINT TO AN ACTIVITY BLOCK 2CMG XHEADI 17HCURRENT ACTIVITY: 2D76 XHEADJ 47HJOB NAME,:USER NAME: 2DLQ XHEADK +30,30H^*CURRENT CHAPTER: ^* 2F6B XHEADL 14HACTIVITY NO.: 2FL2 XHEADM 24HFILES OPEN TO ACTIVITY: 2G5L XHEADN 52HUSER.LOCAL NAME REEL NO. GEN. NO. LANGUAGE 2GK= 4HMODE 2H4W #SKI G4 2HJG ( 2J46 XHEADT 35H GEORGE4 MARK ISSUE POSTMORTEM 2JHQ XHEADU 48H IDENTITY: GEORGE4 LOADED AT 2K3B ) 2KH2 #SKI G3 2L2L ( 2LG= XHEADT 35H GEORGE3 MARK ISSUE POSTMORTEM 2LL7 ...#UNS FSHTEST 2LQ4 ...#SKI 2LT^ ... FSHSKIP 2L^W XHEADU 48H IDENTITY: GEORGE3 LOADED AT 2M3K ...#UNS FSHTEST 2M5# ...#SKI 2M73 ...( 2M8Q ... FSHCODE A 2M=F ...XHEADU 48H IDENTITY: MASTER LOADED AT 2M#8 ... FSHCODE B 2M*X ...XHEADU 48H IDENTITY: SLAVE LOADED AT 2MCL ...) 2MFG ) 2M^6 16H ON 2NDQ XHEADV 32H^*JOB CURRENTLY BEING PROCESSED: 2NYB XHEADY +2,2H^* 2PD2 XHEADZ +22,22H^*POSTMORTEM ENTERED^* 2PXL XHEADW 17HBREAK IN FILERING 2QC= XHEADX 19HFCB BLOCK NOT FOUND 2QWW MESSAGE +0 [ SAVES ADD. OF CTW MESSAGE 2RBG XHJ +XHEADJ+5.1 2RW6 XHT +XHEADT.3 2S*Q XLINK +0 2STB XLINK3 +0 2T*2 XBJOBQ +BJOBQ 2TSL XBCHAP +BCHAP 2W#= XBACKCH +0 [SET=1 IF BACKWARD CHAINING 2WRW XBACKPR +0 [TO H_LD START ADD. OF PREVIOUS BLOCK 2X?G [IN CHAIN. USED BY SEARCH ROUTINES 2XR6 XK +0 [TO CONTAIN CONTENTS OF K0-1 MASKED 2Y=Q XKX +0 [DUPLICATE K0-1 FOR RELATIVISING 2YQB X3 +0 [ X3 PRESERVE ACCUMULATOR 2^=2 XEIGHT +8 2^PL X45 +45 329= XCOMCOL 4H,: 338G PMSUMEND +ZPMSUMA+1 33N6 SEGSFS +ZPMSUMA+50 347Q TACT #60 34MB TAMOP #72 3572 TBAT +BAT/64 35LL TAPET +APET/64 366= TFCB +FILE+FCB 36KW SAFR +0 [TO HOLD START ADDR. OF FILERING 375G RBACK +0 [TO HOLD INDICATOR IF BREAK IN RING 37K6 RELE +0 [TO HOLD CURRENT ADDR. IN FILERING 384Q RBACKPR +0 [TO HOLD START ADDR. OF PREVIOUS 38JB [BLOCK IN FILERING USED BY RSEARCH 3942 [ROUTS. 39HL SPACE #20 3=3= MASK #17777777 3=GW MASK1 #77400000 3?2G MODEIND +0 3?G6 NONE 4HNONE 3?^Q # 3#FB # TAPE OF FILE OPEN MODE INDICATORS 3#^2 # 3*DL MODETAB 3*Y= PMFMODE 0,READ 3BCW PMFMODE 1,READR 3BXG PMFMODE 2,APPEND 3CC6 PMFMODE 3,WRITE 3CWQ PMFMODE 4,GENERAL 3DBB PMFMODE 5,COPY 3DW2 PMFMODE 6,CLEAN 3F*L MODETABEND +MODETABEND 3FT= # 3G#W # ROUTINE TO GET ADDRESS OF NEXT BLOCK IN CHAIN WHEN FORWARD 3GSG # CHAINING 3H#6 # ENTRY X2=ADDRESS OF CURRENT BLOCK 3HRQ # EXIT 0 & IF FORWARD AND BACKWARD POINTERS CORRECT 3J?B # X2,X3=ADDRESS OF NEXT BLOCK 3JR2 # X0=LINK 3K=L # EXIT 0 0 IF BREAK IN CHAIN DETECTED 3KQ= # X3=ADDRESS OF NEXT BLOCK 3L9W # (SEARCHA:ENTRY POINT FOR FIRST BLOCK ON CHAIN 3LPG # 3M96 SEARCH 3MNQ LDX 3 BPTR(2) [J IF BPTR IN CURRENT 3N8B TXU 3 XBACKPR(1) [BLOCK INCORRECT 3NN2 BCS S1 3P7L SEARCHA 3PM= LDX 3 FPTR(2) [GET ADD. OF NEXT BLOCK 3Q6W S2 STO 2 XBACKPR(1) [STORE ADDRESS OF CURRENT BLOCK 3QLG PMCORES 3,S1 3R66 TXL 3 X45(1) [J IF ADDR. < 45 3RKQ BCS S1 3S5B LDX 2 3 3SK2 EXIT 0 1 3T4L S1 EXIT 0 0 [BREAK IN CHAIN 3TJ= # 3W3W # ROUTINE TO GET ADDRESS OF NEXT BLOCK IN CHAIN, WHEN BACKWARD 3WHG # CHAINING 3X36 # ENTRY & EXIT AS SEARCH 3XGQ # (SEARCHC:ENTRY POINT FOR FIRST BLOCK ON CHAIN 3Y2B # 3YG2 SEARCHB 3Y^L LDX 3 FPTR(2) [J IF FPTR IN CURRENT 3^F= TXU 3 XBACKPR(1) [BLOCK INCORRECT 3^YW BCS S1 42DG SEARCHC 42Y6 LDX 3 BPTR(2) [GET ADD. OF NEXT BLOCK 43CQ BRN S2 43XB # 44C2 # ROUTINE TO GET ADDR. OF NEXT RING ELEMENT WHEN FORWARD RINGING 44WL # ENTRY X2=ADDR. OF CURRENT ELEMENT 45B= # EXIT 0 1 IF FPTR & BPTR CORRECT 45TW # X2,X3=ADDR. OF NEXT ELEMENT 46*G # EXIT 0 0 IF BREAK IN CHAIN DETECTED 46T6 # X3=ADDR. OF NEXT ELEMENT 47#Q # (RSEARCHA:ENTRY POINT FOR INITIAL ELEMENT ADDR.) 47SB # 48#2 RSEARCH 48RL LDX 3 1(2) 49?= TXU 3 RBACKPR(1) [J IF BACKWARD PNTR. TO 49QW BCS R1 [CURRENT ELEMENT INCORRECT 4==G RSEARCHA 4=Q6 LDX 3 0(2) [GET ADDR. OF NEXT 4?9Q R2 STO 2 RBACKPR(1) [STORE ADDRESS OF CURRENT ELEMENT 4?PB PMCORES 3,R1 4#92 TXL 3 X45(1) 4#NL BCS R1 4*8= LDX 2 3 4*MW EXIT 0 1 4B7G R1 EXIT 0 0 [BREAK IN CHAIN 4BM6 # 4C6Q # ROUTINE TO GET ADDR. OF NEXT RING ELEMENT WHEN BACKWARD RINGING 4CLB # ENTRY & EXIT AS FOR RSEARCH 4D62 # (RSEARCHC:ENTRY POINT FOR INITIAL ELEMENT ADDR. 4DKL # 4F5= RSEARCHB 4FJW LDX 3 0(2) [J IF BACKWARD POINTER OF 4G4G TXU 3 RBACKPR(1) [CURRENT ELEMENT INCORRECT 4GJ6 BCS R1 4H3Q RSEARCHC 4HHB LDX 3 1(2) [NEXT RING ELEMENT ADDR. 4J32 BRN R2 4JGL # 4K2= # 4KFW # ROUTINE TO GET CURRENT JOB AND USER NAME AND STORE IN OUTPUT 4K^G # MESSAGES 4LF6 # EXIT X0=LINK 4LYQ # X3=NO OF CHARS. IN JOB NAME,:USER NAME 4MDB # JOB & USER NAMES INSERTED IN OUTPUT MESSAGES STARTING 4MY2 # AT XHEADJ & XHEADK 4NCL # 'NONE' INSERTED IF NO JOB OR USER NAME 4NX= # ALL ACCUMULATORS UNDEFINED 4PBW # 4PWG USERJOB 4QB6 STO 0 XLINK(1) [STORE LINK 4QTQ LDX 3 FX2 4R*B PMCORES 3,U5 4RT2 LDCH 2 ATYPE(3) [GET TYPE VALUE 4S#L LDX 7 JOBNO(3) [J IF JOBNO=0 4SS= BZE 7 U5 4T?W TXL 2 TACT(1) [TEST AND J IF FX2 DOES 4TRG BCS U5 [NOT POINT AT AN ACTIVITY BLOCK 4W?6 TXU 2 TAMOP(1) 4WQQ BCC U5 [J IF AMOP ACTIVITY 4X=B TXU 2 TBAT(1) 4XQ2 BCC U5 [J IF BAT ACTIVITY 4Y9L LDN 2 BJOBQ [GET BASE ADDRESS OF CHAIN 4YP= STOZ XBACKCH(1) 4^8W CALL 0 SEARCHA 4^NG BRN U6 [J IF BREAK IN CHAIN 5286 BRN U3 52MQ U1 LDN 3 SEARCH(1) 537B LDX 7 XBACKCH(1) 53M2 BZE 7 U2 [J IF FORWARD CHAINING 546L LDN 3 SEARCHB(1) 54L= U2 CALL 0 (3) [ROUTINE TO GET ADD. OF NEXT BLOCK 555W BRN U6 [J IF BREAK IN CHAIN 55KG U3 TXU 2 XBJOBQ(1) 5656 BCC U5 [J IF END OF JOBQ REACHED 56JQ LDX 7 JOBNUM(2) [TEST IF JOB BLOCK FOR 574B SMO FX2 57J2 TXU 7 JOBNO [CURRENT ACTIVIY 583L BCS U1 [J IF NOT 58H= LDX 1 XHJ(1) [OUTPUT BUFFER 592W ADX 1 FXPM1 59GG LDN 3 JNAME(2) [JOB NAME 5=26 LDN 6 12 [CHAR. COUNT 5=FQ U8 LDCH 5 0(3) 5=^B SMO FXPM1 5?F2 TXU 5 SPACE [J IF SPACE CHAR. ENCOUNTERED 5?YL BCC U4 5#D= DCH 5 0(1) [INSERT JOB NAME IN OUTPUT BUFFER 5#XW BCHX 1 £ 5*CG BCHX 3 £ 5*X6 BCT 6 U8 [J IF NOT END OF JOB NAME 5BBQ U4 SBN 6 26 5BWB NGX 3 6 [COUNT OF CHARS. IN JOB,:USER NAME 5CB2 SMO FXPM1 5CTL LDN 0 XCOMCOL [MOVE ',:' INTO OUTPUT BUFFER 5D*= MVCH 0 2 5DSW LDN 0 JUSER(2) [MOVE USER NAME INTI OUTPUT BUFFER 5F#G MVCH 0 12 5FS6 LDX 1 FXPM1 5G?Q U7 LDX 0 XLINK(1) [RESTORE LINK 5GRB EXIT 0 0 5H?2 U5 LDN 4 NONE(1) 5HQL LDX 5 XHJ(1) [MOVE 'NONE' INTO 5J== ADX 5 1 5JPW MVCH 4 4 [OUTPUT BUFFER 5K9G LDN 3 4 [COUNT OF CHARS. 5KP6 BRN U7 5L8Q U6 LDX 7 XBACKCH(1) 5LNB BNZ 7 U5 [J IF ALREADY BACKWARD CHAINING 5M82 LDN 7 1 5MML STO 7 XBACKCH(1) [OTHERWISE SET BACKWARD CHAINING 5N7= LDN 2 BJOBQ [INDICATOR AND START S_ARCHING 5NLW CALL 0 SEARCHC [FROM BACK OF CHAIN 5P6G BRN U5 [BREAK IN CHAIN 5PL6 BRN U3 5Q5Q # 5QKB # ROUTINE TO SET UP 1ST LINE OF SUMMARY 5R52 # ENTRY X0=LINK 5RJL # JPMOD=PRINT BUFFER MODIFIER 5S4= # EXIT ALL ACCS. UNDEFINED 5SHW # 1ST LINE OF SUMMARY SET UP IN CURRENT PRINT BUFFER 5T3G # JPMOD=UPDATE PRINT BUFFER MODIFIER 5TH6 # 5W2Q SUMLINE 5WGB STO 0 XLINK(1) [STORE LINK 5X22 LDX 5 GONRDUMP 5XFL ANDX 5 MASK(1) 5X^= BZE 5 SUM1 5YDW SBN 5 1 5YYG SUM1 STO 5 XK(1) [STORE MASKED VERSION OF K0-1 5^D6 STO 5 XKX(1) [STORE ADDRESS TO BE RELATIVISED 5^XQ LDN 3 XHEADC(1) 62CB LDX 4 JPMOD [MOVE FIRST HALF 62X2 ADN 4 1 [OF NEXT HEADING 63BL MVCH 3 28 [INTO PRINT BUFFER 63W= STO 4 JPMOD [UPDATE PRINT BUFFER MOD. 64*W CALL 7 (JUP) 64TG +1 65*6 # BUFFER MOD POINTS TO START OF BREAK ADDRESS IN HEADING 65SQ LDX 3 5 66#B PMCORES 3,SF3 66S2 ... TXL 3 ENDFIX [TEST ADDRESS IS IN FIXED CORE 67?L BCS SF1 [J IF ADD IN FIXED CORE 67R= # 68=W # CODING TO FIND NAME OF CHAPTER CONTAINING BREAK 68QG # 69=6 LDN 2 BCHAP 69PQ CALL 0 SEARCHA [GET ADD. OF FIRST BLOCK IN CHAPTER 6=9B BRN SUM6 [CHAIN. J IF BREAK IN CHAIN 6=P2 BRN SUM4 6?8L SUM2 LDN 3 SEARCH(1) 6?N= LDX 7 XBACKCH(1) 6#7W BZE 7 SUM3 [J IF FORWARD CHAINING 6#MG LDN 3 SEARCHB(1) 6*76 SUM3 CALL 0 (3) [GET ADDR OF NEXT BLOCK IN CHAPTER 6*LQ BRN SUM6 [CHAIN AND J IF BREAK IN CHAIN 6B6B SUM4 TXU 2 XBCHAP(1) 6BL2 BCC SUM7 [J IF POINTS TO BASE IN CHAIN 6C5L ADN 3 A1-1 [GET START ADD. OF CHAPTER 6CK= TXL 3 XK(1) [J IF K0-1 POINTS BEFORE 6D4W BCC SUM2 6DJG SBN 3 A1-1 6F46 ADX 3 ASIZE(2) [GET END ADD OF CHAPTER 6FHQ ANDX 3 MASK(1) 6G3B TXL 3 XK(1) [J IF K0-1 POINTS AFTER 6GH2 BCS SUM2 [CHAPTER 6H2L LDN 4 A1(2) 6HG= SBS 4 XKX(1) [RELATIVISE BREAK ADDRESS 6H^W SUM5 LDX 5 JOZ [MOVE CHAPTER 6JFG ADN 5 3 [NAME INTO 6J^6 BCHX 5 £ [PRINT BUFFER 6KDQ MVCH 4 8 6KYB LDX 3 XK(1) 6LD2 BRN SUM8 6LXL SUM6 LDX 7 XBACKCH(1) 6MC= BNZ 7 SUM7 [J IF ALREADY BACKWARD CHAINING 6MWW LDN 7 1 6NBG STO 7 XBACKCH(1) [SET BACKWARD CHAINING INDICATOR 6NW6 LDN 2 BCHAP [GET POINTER TO LAST BLOCK IN CHAIN 6P*Q CALL 0 SEARCHC 6PTB BRN SUM7 6Q*2 BRN SUM4 6QSL SUM7 LDN 4 XHEADF(1) 6R#= BRN SUM5 6RRW # 6S?G # CODING TO FIND OUT WHAT FIXED CORE ROUTINE CONTAINS BREAK 6SR6 # 6T=Q SF1 STO 3 XLINK3(1) 6TQB ADS 1 SEGSFS(1) [ DATUMISE ADDRESS 6W=2 LDX 2 SEGSFS(1) [GET START ADD OF FIXED STORE SEGS 6WPL [TABLE 6X9= PMOVE FIXINT,2 [TEST IF END OF TABLE REACHED 6XNW LDX 1 FXPM1 6Y8G LDX 2 SEGSFS(1) 6YN6 LDX 3 XLINK3(1) 6^7Q SF2 LDX 4 0(2) 6^MB BNZ 4 SF5 [J IF NOT 7272 SF3 LDN 5 XHEADF(1) [MOVE 8H???????? INTO PRINT BUFFER 72LL BRN SF6 736= SF4 ADN 2 4 [GET NEXT SEG ENTRY 73KW BRN SF2 745G SF5 ANDX 4 MASK(1) [GET DRUM ADD. OF NEXT SEG IN TABLE 74K6 ADX 4 REL(1) [RELATIVISE DRUM ADD. TO CORE ADD. 754Q TXL 3 4 75JB BCS SF4 [J IF BREAK ADD. LESS THAN START OF 7642 [SEG. 76HL ADX 4 1(2) [END ADD OF SEG 773= TXL 3 4 [J IF BREAK ADD. MORE THAN END OF SEG 77GW BCC SF4 782G LDN 5 2(2) 78G6 SF6 LDX 6 JOZ 78^Q ADN 6 3 79FB BCHX 6 £ 79^2 MVCH 5 8 [MOVE SEG NAME INTO PRINT BUFFER 7=DL PMCORES 3,,SF61 7=Y= LDX 0 XLINK(1) 7?CW EXIT 0 0 7?XG SF61 TXL 3 XEIGHT(1) [TEST IF ADD AN ACCUMULATOR 7#C6 BCC SF7 [J IF NOT 7#WQ LDN 3 JACC(3) 7*BB BRN SUM8 7*W2 SF7 PMDLGET SPARE,5 7B*L ADX 3 5 [READ DOWN CONTENTS OF ADD. IN K0-1 7BT= LDN 5 3 [PLUS CONTENTS OF FOLLOWING 2 WORDS 7C#W PMBSADD GEO,0,5,PMSUMEND(1),3 7CSG LDX 1 FXPM1 7D#6 LDX 3 PMSUMEND(1) 7DRQ SUM8 LDX 5 XKX(1) [PICK UP BREAK ADDRESS (REL OR ABS) 7F?B STO 3 X3(1) [PRESERVE X3 7FR2 CALL 7 (JDECN) [CONVERT BREAK ADDRESS INTO BUFFER 7G=L LDX 3 X3(1) [RELOAD X3 7GQ= LDN 4 XHEADD(1) [LOAD START ADDRESS OF 2ND HEADING 7H9W # 7HPG # CODING TO INSERT CHAPTER OF FIXED CORE SEGMENT NAME IN PRINT 7J96 # BUFFER 7JNQ # 7K8B LDX 5 JPMOD [MOVE SECOND HALF OF HEADING INTO 7KN2 BCHX 5 £ 7L7L MVCH 4 8 [PRINT BUFFER 7LM= # 7M6W # CODING TO INSERT GEOERR NAME OR INSTR. THAT GEORGE BROVE ON IN 7MLG # BUFFER 7N66 # 7NKQ LDX 7 0(3) 7P5B SMO PMSUMEND(1) [STORE CONTENTS OF BREAK ADDR. IF 7PK2 STO 7 0 [IN A CHAPTER 7Q4L SRL 7 14 7QJ= SBN 7 #1770 [SEST IF GEOERR 7R3W BNZ 7 SUM9 [J IF NOT 7RHG LDN 4 XHEADE(1) 7S36 MVCH 4 8 [INSERT GEOERR CHAR STRING IN HEADING 7SGQ LDN 4 1(3) 7T2B MOVE 4 2 7TG2 LDX 0 XLINK(1) 7T^L EXIT 0 0 7WF= SUM9 LDN 4 XHEADA(1) [MOVE 'INSTR' INTO PRINT BUFFER 7WYW MVCH 4 7 7XDG BCHX 5 £ 7XY6 STO 5 JPMOD 7YCQ LDX 4 PMSUMEND(1) 7YXB ADN 4 3 7^C2 ... PMOVE PMINPRIN,4 7^WL LDX 1 FXPM1 82B= SMO PMSUMEND(1) 82TW LDX 5 0 83*G CALL 7 (JCON1) [CONVERT CONTENTS TO INSTRUCTION 83T6 LDX 0 XLINK(1) [ EXIT 84#Q EXIT 0 0 84SB # 85#2 XK1PMSUMA 85RL # 86?= # ENSURE A LP IS AVAILABLE FOR SUMMARY 86QW # 87=G LDX 1 FXPM1 87Q6 #UNS JPMDA 889Q #SKI 88PB ( 8992 SMO FXPMDR 89NL LDX 0 JUNITNO 8=8= BNG 0 (JPMSEG) [J IF NO LP AVAILABLE 8=MW ) 8?7G ADS 1 MODETABEND(1) 8?M6 CALL 7 (JPRINTX) [MAKE SURE LP BUFFER SPACE FILLED 8#6Q # 8#LB # CODING TO PRINT GENERAL HEADING 8*62 # 8*KL LDX 5 GVERSION 8B5= SRL 5 12 [OBTAIN MARK NUMBER 8BJW SMO FXPM1 8C4G DCH 5 XHEADT+3 [AND INSERT IN PM HEADING 8CJ6 LDX 6 GVERSION 8D3Q ANDN 6 #7777 [OBTAIN ISSUE NUMBER 8DHB CALL 7 (JGNO1) [CONVERT TO DECIMAL CHARS. 8F32 DSA 5 XHEADT+5(1) [AND INSERT IN PM HEADING 8FGL LDX 6 XHT(1) 8G2= ADX 6 1 8GFW LDX 7 JOZ [SET UP 'G3 MK ISS PM' HEADING 8G^G ADN 7 1 8HF6 MVCH 6 32 8HYQ LDN 2 IDENTITY 8JDB LDN 3 XHEADU+3(1) 8JY2 MVCH 2 8 8KCL ADN 3 5 8KX= BCHX 3 £ 8LBW BCHX 3 £ 8LWG MVCH 2 8 8MB6 ADN 3 1 8MTQ BCHX 3 £ 8N*B MVCH 2 8 8NT2 #UNS JPMDA 8P#L ( 8PS= SMO FXPMDR 8Q?W LDX 0 JUNITNO [J IF NO LP AVAILABLE. CONDITION MAY 8QRG BNG 0 XTW [OCCUR WITH "DUMP"OPERATOR DIRECTIV 8R?6 ) 8RQQ LDN 6 XHEADU(1) 8S=B ADN 7 2 [MOVE IDENTITY,TIME AND DATE INTO 8SQ2 MVCH 6 64 [PRINT BUFFER AREA 8T9L CALL 7 (JPRINT) [PRINT POSTMORTEM HEADING 8TP= # 8W8W # CODING TO SET UP AND PRINT FIRST LINE OF SUMMARY INFORMATION 8WNG # 8X86 LDN 6 XHEADB(1) 8XMQ LDX 7 JOZ 8Y7B ADN 7 1 8YM2 MVCH 6 7 8^6L CALL 7 (JPRINT2) [PRINT 'SUMMARY' HEADING 8^L= ADS 1 PMSUMEND(1) 8^LB ... FSHCODE AORB 8^LG ...( 8^LL ... SMO FXPMDR 8^LQ ... LDEX 7 ERRORTYPE 8^LW ...) 8^M2 ... FSHSKIP 8^M9 ... LDX 7 9 8^N8 ... ANDN 7 #77 [GET LAST CHAR OF WORD 9 8^P7 ... BZE 7 POSTF5 [J IF NO CHARACTER 8^Q6 ... ORS 7 XSYSER+3(1) 8^R5 ... LDN 6 XSYSER(1) 8^S4 ...TRANSFER 8^T3 ... LDX 7 JOZ 8^W2 ... ADN 7 1 8^W^ ... MVCH 6 16 8^XY ... CALL 7 (JPRINT2) [PRINT SYSTEM ERROR INFORMATION 8^YX ... BRN SUMA1 8^^W ...POSTF5 922T ... LDN 6 XF5PST(1) 923S ... BRN TRANSFER 924T ...SUMA1 925W CALL 0 SUMLINE [SET UP 1ST LINE OF SUMMARY 92KG CALL 7 (JPRINT2) [PRINT 1ST LINE 9356 # 93JQ # CODING TO SET UP AND PRINT ACTIVITY BLOCK TYPE MNEMONICS 944B # 94J2 LDX 3 FX2 953L PMCORES 3,,T2 95H= LDN 4 XHEADG(1) [PRINT MESSAGE THAT FX2 962W LDN 3 6 [IS CORRUPTED 96GG T1 LDX 5 JPMOD 9726 ADN 5 1 97FQ MOVE 4 0(3) 97^B CALL 7 (JPRINT2) 98F2 BRN (JPMSEG) [CEASE PM SUMMARY LISTING 98YL T2 LDX 5 PMSUMEND(1) [CALL DOWN TABLE OF TYPES 99D= PMOVE PMTYPES,5 99XW LDX 1 FXPM1 9=CG LDX 3 FX2 9=X6 LDCH 2 ATYPE(3) [GET TYPE VALUE FROM CURRENT ACTIVITY 9?BQ TXL 2 TACT(1) 9?WB BCC T3 [J IF ACTIVITY BLOCK 9#B2 LDN 4 XHEADH(1) [PRINT MESSAGE THAT FX2 DOES 9#TL LDN 3 10 [NOT POINT TO AN ACTIVITY BLOCK 9**= BRN T1 9*SW T3 CALL 7 (JUP) 9B#G +10 9BS6 LDN 5 XHEADI(1) [SET UP 'CURRENT ACTIVITY' HEADING 9C?Q MVCH 5 18 9CRB STO 2 3 9D?2 ADX 2 3 9DQL ADX 2 3 9F== SMO PMSUMEND(1) 9FPW LDN 5 0(2) 9G9G MVCH 5 8 [MOVE ACTIVITY TYPE MNEMONIC INTO 9GP6 CALL 7 (JPRINT2) [PRINT BUFFER AND PRINT A LINE 9H8Q # 9HNB # CODING TO SET UP AND PRINT NUMBER OF CURRENT ACTIVITY 9J82 # 9JML CALL 7 (JUP) 9K7= +14 9KLW LDN 5 XHEADL(1) 9L6G MVCH 5 15 [SET UP 'ACTIVITY NO.' HEADING 9LL6 CALL 7 (JUP) 9M5Q +11 9MKB LDX 3 FX2 9N52 LDCH 2 ATYPE(3) [GET TYPE OF BLOCK 9NJL TXU 2 TBAT(1) [J IF NOT BAT ACTIVITY 9P4= BCS T4 9PHW CALL 7 (JUP) 9Q3G +3 9QH6 LDN 5 NONE(1) [INSERT 'NONE' IN PRINT 9R2Q MVCH 5 4 [BUFFER 9RGB BRN T5 9S22 T4 LDX 5 ACTNUM(3) [CONVERT ACTIVITY NO. TO DECIMAL AND 9SFL CALL 7 (JUP) 9S^= +2 9TDW CALL 7 (JDECN) [INSERT IN PRINT BUFFER 9TYG T5 CALL 7 (JPRINT1) [PRINT A LINE 9WD6 # 9WXQ # CODING TO PRINT JOB AND USER NAME 9XCB # 9XX2 CALL 0 USERJOB 9YBL CALL 7 (JUP) 9YW= +7 9^*W LDN 5 XHEADJ(1) 9^TG MVCH 5 47 =2*6 CALL 7 (JPRINT1) [PRINT JOB NAME,:USER NAME =2SQ # =3#B # CODING TO LIST FILES OPEN TO CURRENT ACTIVITY =3S2 # =4?L # CODING TO FIND OUT IF FILES ARE OPEN TO THE CURRENT ACTIVITY =4R= # =5=W LDN 4 XHEADM(1) =5QG LDX 5 JPMOD =6=6 ADN 5 1 [SET UP 'FILES OPEN TO =6PQ MVCH 4 24 [ACTIVITY' HEADER =79B LDX 2 FX2 =7P2 LDCH 6 ATYPE(2) [GET TYPE VALUE =88L TXU 6 TAMOP(1) =8N= BCC XF1 [J IF AMOP ACTIVITY =97W TXU 6 TBAT(1) =9MG BCC XF1 [J IF BAT ACTIVITY ==76 TXU 6 TAPET(1) ==LQ BCS XF3 [FALL THROUGH IF APET ACTIVITY =?6B XF1 LDN 4 NONE(1) =?L2 MVCH 4 4 =#5L XF2 CALL 7 (JPRINT1) =#K= BRN (JPMSEG) =*4W XF3 LDN 2 FILERING(2) =*JG LDX 6 0(2) [GET ADDR. 1ST ELEMENT ON RING =B46 TXU 6 2 =BHQ BCC XF1 [J IF FILERING POINTS AT ITSELF =C3B STO 2 SAFR(1) [START ADDR. OF RING =CH2 CALL 7 (JPRINT1) [PRINT 'FILES OPEN ' HEADING =D2L CALL 7 (JUP) =DG= +17 =D^W LDN 5 XHEADN(1) =FFG MVCH 5 56 =F^6 CALL 7 (JPRINT1) =GDQ CALL 7 (JPRINT1) =GYB # =HD2 # GET ADDRESS OF NEXT ELEMENT ON RING =HXL # =JC= LDN 3 RSEARCHA(1) =JWW BRN XF4 =KBG XF5 LDN 3 RSEARCH(1) =KW6 LDX 0 RBACK(1) =L*Q BZE 0 XF4 [J IF FORWARD RINGING =LTB LDN 3 RSEARCHB(1) =M*2 XF4 CALL 0 (3) [GET ADDR. NEXT ELEMENT ON RING =MSL BRN XFB [J IF BREAK IN RING =N#= TXU 2 SAFR(1) =NRW BCC (JPMSEG) [J IF END OF RING =P?G LDX 7 FGENERAL1(2) =PR6 STO 7 MODEIND(1) [MODE FILE IS OPENED IN =Q=Q ADX 3 FBACKPOINT(2) =QQB PMCORES 3,XFC =R=2 LDX 3 BPTR(3) [ADDR. OF ASSOCIATED FCB BLOCK =RPL PMCORES 3,XFC =S9= TXL 3 X45(1) =SNW BCS XFC [J IF INVALID =T8G LDX 7 ATYPE(3) =TN6 SRL 7 12 =W7Q TXU 7 TFCB(1) =WMB BCS XFC [J IF NOT A FCB BLOCK =X72 # =XLL # CODING TO SET UP FILE AND LOCAL NAMES IN PRINT BUFFER =Y6= # =YKW STO 2 RELE(1) [ADDR. OF CURRENT RING ELEMENT =^5G CALL 7 (JUP) =^K6 +12 ?24Q LDX 2 6 ?2JB LDN 5 #12 ?342 DCH 5 0(2) [STORE ':' IN PRINT BUFFER ?3HL BCHX 6 £ ?43= LDX 5 COMM(3) ?4GW BPZ 5 UL2 [J IF NOT A DIRECTORY ?52G LDN 5 FME1(3) ?5G6 MVCH 5 12 [MOVE DIRECTORY NAME INTO PRINT BUFF. ?5^Q CALL 7 (JUP) ?6FB +57 ?6^2 BRN UL4 ?7DL UL2 LDN 5 FUSER1(3) ?7Y= MVCH 5 12 [MOVE USER NAME INTO PRINT BUFF. ?8CW LDX 2 6 ?8XG UL LDCH 5 0(2) ?9C6 TXU 5 SPACE(1) ?9WQ BCS UL1 [BACKSPACE TO LAST 'NON-SPACE' CHAR. ?=BB SLC 2 2 ?=W2 SBN 2 1 ??*L SRC 2 2 ??T= BRN UL ?##W UL1 BCHX 2 £ ?#SG LDN 5 #36 ?*#6 DCH 5 0(2) [DUMP '.' INTO PRINT BUFFER ?*RQ STO 2 6 ?B?B BCHX 6 £ ?BR2 LDN 5 FLOC1(3) [MOVE LOCAL NAME INTO PRINT BUFFER ?C=L MVCH 5 12 ?CQ= # ?D9W # TO SET UP FILE REEL AND GENERATION NOS AND LANGUAGE IN PRINT BUFF ?DPG # ?F96 CALL 7 (JUP) ?FNQ +30 ?G8B LDX 5 FREEL(3) ?GN2 STO 3 2 ?H7L CALL 7 (JDECN) [INSERT REEL NO. IN PRINT BUFFER ?HM= CALL 7 (JUP) ?J6W +2 ?JLG LDX 5 FGEN(2) ?K66 CALL 7 (JDECN) [INSERT GEN NO. IN PRINT BUFFER ?KKQ CALL 7 (JUP) ?L5B +3 ?LK2 LDX 5 FLAN(2) ?M4L CALL 7 (JCHA) [INSERT LANGUAGE IN PRINT BUFFER ?MJ= CALL 7 (JUP) ?N3W +4 ?NHG # ?P36 # CODING TO SET UP MODE OF FILE IN PRINT BUFFER ?PGQ # ?Q2B UL4 LDN 3 MODETAB(1) ?QG2 UL3 LDX 7 MODEIND(1) ?Q^L ANDX 7 MASK1(1) [GET MODE ?RF= TXU 3 MODETABEND(1) [TEST IF END OF TABLE REACHED ?RYW BCS UL5 [J IF NOT ?SDG LDN 5 XHEADF(1) [INSERT '????????' IN PRINT BUFFER ?SY6 BRN UL7 ?TCQ UL5 ERX 7 0(3) ?TXB BZE 7 UL6 [J IF CORRECT ENTRY ?WC2 ADN 3 3 [UPDATE TABLE POINTER ?WWL BRN UL3 ?XB= UL6 LDN 5 1(3) ?XTW UL7 MVCH 5 8 [MOVE MODE INTO PR BUFFER ?Y*G UL8 CALL 7 (JPRINT1) [PRINT A LINE ?YT6 LDX 2 RELE(1) [ADDR. OF CURRENT ELEMENT ?^#Q BRN XF5 ?^SB # #2#2 # IF BREAK IN FILERING #2RL # #3?= XFB LDX 7 RBACK(1) #3QW BNZ 7 (JPMSEG) [J IF ALREADY BACKRINGING #4=G CALL 7 (JUP) #4Q6 +12 #59Q LDN 5 XHEADW(1) #5PB MVCH 5 17 #692 CALL 7 (JPRINT1) [PRINT 'BREAK IN RING' MESSAGE #6NL XFB1 LDN 7 1 #78= STO 7 RBACK(1) [SET BACKRING INDICATOR #7MW LDX 2 SAFR(1) #87G LDN 3 RSEARCHC(1) #8M6 BRN XF4 #96Q # #9LB # IF UNABLE TO FIND FCB BLOCK #=62 # #=KL XFC CALL 7 (JUP) #?5= +12 #?JW LDN 5 XHEADX(1) ##4G MVCH 5 19 ##J6 CALL 7 (JPRINT1) [PRINT 'FCB BLOCK NOT FOUND' MESSAG #*3Q BRN XF5 #*HB # #B32 #UNS JPMDA #BGL ( #C2= # CODING TO OUTPUT TIME,DATE,AND IDENTITY ON CONSOLE IF NOT GIVING #CFW # A POSTMORTEM LISTING #C^G # #DF6 XTW LDN 4 20 [LOAD COUNT #DYQ STO 4 XHEADT+8(1) [STORE IN FRONT OF MESS #FDB LDN 4 #5612 #FY2 SLL 4 12 #GCL ORS 4 XHEADU(1) [INSERT ^* #GX= ORS 4 XHEADU+5(1) #HBW LDN 3 XHEADT+8(1) #HWG CALL 7 (JCONOUT) [OUTPUT IDENTITY #JB6 LDN 4 44 [LOAD COUNT #JTQ STO 4 XHEADU+4(1) #K*B LDN 3 XHEADU+4(1) #KT2 CALL 7 (JCONOUT) #L#L BRN (JPMSEG) #LS= ) #M?W # #MRG XK2PMSUMA #N?6 # #NQQ # ENTRY POINT TO OUTPUT CURRENT JOB AND USER NAME ON CONSOLE T/W. #P=B # ENTERED FROM #SEG PMJOBS VIA #MAC PMACROSS #PQ2 # #Q9L LDX 1 FXPM1 #QP= CALL 0 USERJOB [INSERT JOB & USER NAMES IN MESSAGES #R8W LDN 5 XHEADV(1) #RNG CALL 7 (JUP) #S86 +5 #SMQ MVCH 5 32 ['CURRENT JOB' INTO PRINT BUFFER #T7B ADN 6 1 #TM2 LDX 5 XHJ(1) #W6L ADX 5 1 #WL= MVCH 5 0(3) [JOB,:USER NAME INTO PRINT BUFFER #X5W ADN 3 36 #XKG LDX 2 JOZ #Y56 BCHX 2 £ #YJQ STO 3 0(2) #^4B LDX 3 2 #^J2 CALL 7 (JCONOUT) *23L CALL 7 (JPRINTX) [SPACEFILL PRINT BUFFER *2H= BRN (JPMSEG) *32W # *3GG XK3PMSUMA *426 # *4FQ # ENTRY POINT TO OUTPUT CURRENT JOB AND USER NAME ON LP PRIOR TO *4^B # POSTMORTEM LISTING. ENTERED FROM #SEG PMJOBS VIA PMACROSS MACRO *5F2 # *5YL LDX 1 FXPM1 *6D= CALL 0 USERJOB [GET CURRENT JOB & USER NAME *6XW LDN 5 XHEADV(1) ['CURRENT JOB' INTO PRINT BUFFER *7CG BCHX 5 £ *7X6 BCHX 5 £ *8BQ LDX 6 JOZ *8WB ADN 6 1 *9B2 MVCH 5 30 *9TL ADN 6 1 *=*= LDX 5 XHJ(1) *=SW ADX 5 1 *?#G MVCH 5 0(3) [JOB,:USER NAME INTO PRINT BUFFER *?S6 CALL 7 (JPRINT2) *#?Q CALL 7 (JPRINT) [THROW TO TOP OF FORM *#RB BRN (JPMSEG) **?2 # **QL XK4PMSUMA *B== # *BPW # ENTRY POINT TO OUTPUT 1ST LINE OF SUMMARY INFOMATION ON CONSOLE *C9G # T/W IMMEDIATELY ON ENTRY TO PM *CP6 # BUT FIRST CHECKS TO SEE IF THE GEORGE BREAK WAS CAUSED BY A *D8Q # GEOSTOP AND IF SO OUTPUTS THE NECESSARY MESSAGE TO THE CONSOLE *DNB # AND FORGETS ABOUT PRINTING A POSTMORTEM *F82 # *FML LDX 1 FXPM1 *G7= ADS 1 PMSUMEND(1) *GLW LDX 2 K0-1 *H6G ANDX 2 MASK(1) *HL6 SBN 2 1 *J5Q PMCORES 2,XK4B [J IF ADDR. OF LAST INSTR. ILLEGAL *JKB ... TXL 2 ENDFIX *K52 BCC XK4C [J IF NOT IN FIXED STORE *KJL LDN 4 1 *L4= PMDLGET SPARE,6 *LHW ADX 2 6 *M3G PMBSADD GEO,0,4,PMSUMEND(1),2 *MH6 LDX 1 FXPM1 *N2Q LDX 2 PMSUMEND(1) *NGB XK4C LDX 2 0(2) [GET LAST INSTRUCTION OBEYED *P22 SRL 23 14 [X & F IN X2 *PFL SBN 2 #1570 *P^= BNZ 2 XK4B [J IF NOT A GEOSTOP *QDW SLL 23 2 [M IN X2 *QYG SRL 3 12 [N IN X3 *RD6 BZE 2 XK4D [J IF NO MODIFIER *RXQ ADX 3 JACC(2) *SCB XK4D ANDX 3 MASK(1) *SX2 PMCORES 3,XK4B *TBL ... TXL 3 ENDFIX [IF ADDRESS OF OPERAND IS *TW= BCC XK4E [IN FIXED CORE *W*W PMDLGET SPARE,5 *WTG ADX 3 5 *X*6 LDN 4 20 *XSQ PMBSADD GEO,0,4,PMSUMEND(1),3 *Y#B LDX 1 FXPM1 *YS2 LDX 3 PMSUMEND(1) *^?L XK4E LDN 4 64 *^R= TXL 4 0(3) B2=W BCS XK4B [J IF TOO MANY CHARS. IN MESSAGE B2QG STO 3 MESSAGE(1) [STORE START ADDR. OF MESSAGE B3=6 LDN 3 XHEADY(1) B3PQ CALL 7 (JCONOUT) B49B LDX 3 MESSAGE(1) B4P2 CALL 7 (JCONOUT) B58L LDN 3 XHEADZ(1) B5N= CALL 7 (JCONOUT) ['POSTMORTEM ENTERED' B67W LDN 4 1 B6MG SMO FXPMDR B776 STO 4 ALLPOST [NO POSTMORTEM AT ALL B7LQ STO 4 ARELOAD B86B BRN (JPMSEG) B8L2 XK4B CALL 0 SUMLINE [SET UP 1ST LINE OF SUMMARY B95L LDN 1 5 B9K= LDX 2 JOZ [SET TO OUTPUT 1ST HALF B=4W ADN 2 1 [OF LINE ON CONSOLE B=JG XK4A SMO FXPM1 B?46 LDX 3 PMSUMEND B?HQ SMO FXPM1 B#3B STO 3 MESSAGE [FOR JCONOUT ROUT. B#H2 SMO FXPM1 B*2L LDN 4 XHEADY+1 B*G= ADN 1 34 [NO. OF CHARS. IN MESSAGE B*^W STO 1 0(3) BBFG ADN 3 1 BB^6 LDX 5 3 BCDQ MVCH 4 2 BCYB SBN 1 2 BDD2 LDX 3 5 BDXL MVCH 2 0(1) [SET UP MESSAGE FOR TWOUT BFC= SMO FXPM1 BFWW LDX 3 MESSAGE BGBG CALL 7 (JCONOUT) [OUTPUT TO T/W BGW6 SBN 1 37 BH*Q BZE 1 XK4A [J TO OUTPUT 2ND HALF OF LINE BHTB LDX 1 FXPM1 BJ*2 LDX 5 XK(1) [MASKED VERSI.N OF K0-1 BJSL ... TXL 5 ENDFIX [TEST ADDRESS IN FIXED CORE BK#= BCS XK4G [J IF INSIDE FIXED CORE BKRW LDX 3 JOZ BL?G BCHX 3 £ BLR6 LDX 5 3(3) BM=Q TXU 5 XHEADF(1) [BROKE IN '????????' BMQB BCS XK4H [J IF NOT BN=2 XK4G LDX 3 FX1 BNPL BZE 3 XK4H [J IF NO CURRENT CHAPTER BP9= PMCORES 3,XK4H [J IF OUTSIDE CORE BPNW LDN 4 XHEADK+6(1) BQ8G MOVE 3 2 BQN6 LDN 3 XHEADK(1) BR7Q CALL 7 (JCONOUT) [OUTPUT CURRENT CHAPTER NAME BRMB XK4H CALL 7 (JPRINTX) [SPACEFILL PRINT BUFFER AREA BS72 BRN (JPMSEG) BSLL # BT6= # BTKW ZPMSUMA BW5G # BWK6 #END ^^^^ ...257720050001