(George Source)
Macros used: DCA, DUMP, FINDPEREC, GPERI, JBUSY, JENG, JPMFAIL, JWPR, LINT, LTYPE, MTREAD, MTREW, MTSKIP, ON, PMCOUNT, PMOVE, SEGENTRY, T
22FL # 22^= #OPT K0PMDUMPMT=0 23DW #LIS K0PMDUMPMT>K0POST>K0ALLGEO 23YG # 24D6 #SEG PMDUMPMT85 [M.C.D. MANN 24XQ # 25CB # THIS SEGMENT ASKS THE OPERATOR FOR POSTMORTEM DUMP TAPE,CHECKS 25X2 # THAT IT IS A VALID TAPE AND IF SO POSITIONS THE TAPE READY FOR A 26BL # POST DUMP 26W= # 27*W 8HPMDUMPMT 27TG # 28*6 # ENTRY POINT TABLE 28SQ # 29#B SEGENTRY K1PMDUMPMT,XK1PMDUMPMT 29S2 SEGENTRY K2PMDUMPMT,XK2PMDUMPMT 2=?L # 2=R= MESSC +2,2H^* 2?=W MESSD +27,27H^*DUMP TAPE TSN,DECK NO.?^* 2?QG MESSE +48,48H ^*TAPE ON DECK NON-STANDARD HEADER LABEL^* 2#=6 MESSF +42,42H^*TAPE INCORRECT HEADER LABEL^* 2#PQ MESSG +28,28H^*TAPE LOAD WPR^* 2*9B MESSH 37,37H^*PLEASE LOAD ON UNIT ^* 2*P2 MESSI +19,19H^*INVALID MESSAGE^* 2B8L MESSJ +22,22H ^*UNIT FAIL ^* 2BN= MESSK +34,34H^* IS NOT ON DECK ^* 2C7W MESSL +30,30H ^*START OF DUMP NUMBER ^* 2CMG MESSM +42,42H^*TAPE INCORRECT SUBFILE NAME^* 2CX# ...MESSN 27,27H ^*UNIT FORMAT ERROR^* 2D76 TWEN4 +24 2DLQ XFOUR +4 2F6B XFIVE +5 2FL2 SEVEN +7 2G5L XEIGHT +8 2GK= THREE +3 2H4W NINE +9 2HJG TEN +10 2J46 TWO +2 2JHQ ONE28 128:0 2K3B SIXTY3 +63 2KH2 XTWBIT +0 [MEMORY T/W ENGAGE BUTTON BIT? 2L2L XMTBIT +0 [BIT POS CT/WORD REL EBA,ALSO MT BIT 2LG= TSNX #20202020 2L^W #20202020 2MFG TSN #20202020 [TO HOLD TSN IN 2M^6 #20202020 [CHARACTER FORM 2NDQ SPACE #20 2NYB SPACEFIL #20202020 2PD2 X1STORE +0 [ TO SAVE X1 2PXL X3STORE +0 2QC= WLINK +0 2QWW XBOTIND +0 [SET POS. IF POSTDUMPS TO START AT 2RBG [BOT 2RW6 XSCRIND +0 [SCRATCHING INDICATOR 2S*Q MIND +0 [SET 0 IF NOT NECESSARY TO OUTPUT 2STB ['LOAD WPR' MESSAGE 2T*2 PMCOUNT +0 2TSL POSTDUMP 12HPOSTDUMP 2W#= TEA #64 2WRW SCRA 12HSCRATCH TAPE 2X?G XMT 4HMT00 2XR6 XDA 4HDA00 2Y=Q XBOT 4HBOT0 2YQB XSCR 4HSCR0 2^=2 XCOMMA #34 2^PL XLINK2 +0 329= XLINK3 +0 32NW XLINK4 +0 338G XLINK5 +0 33N6 # 347Q # BLOCK FORMAT OF MT HEADER LABEL 34MB # 3572 THDDR 4HHDDR [IDENTITY 35LL +0 [TSN 366= 12HGEORGEPMTAPE [TAPE NAME 36KW +0 [REEL SEQ. NO. 375G +0 [FILE GEN. NO. 37K6 +999 [SECURITY BIT / RETENTION PERIOD 384Q +0 [DATE WRITTEN 38JB +0 [BITS 0-8=GEOG NO OF DECK 3942 # 39HL # MAG, TAPE PERI. CONTROL AREAS 3=3= # 3=GW MTREAD 261:0,+0,+512,+MTBUF [READ A BLOCK 3?2G MTWRI 261:1,+0,+20,+MTBUF [WRITE BLOCK (HDDR ONLY) 3?G6 MTBACK 261:3,+0,+0,+0 [BACKSPACE ONE BLOCK 3?^Q MTSKIP 261:4,+0,+0,+0 [SKIP TO TAPE MARK 3#FB MTREW 261:7,+0,+0,+0 [REWIND TAPE 3#^2 # 3*DL # 3*Y= # 3BCW # MAG TAPE PERI ROUTINE,REPLY WORD CHECKED FOR TAPE FAILURE 3BXG # IF MT FAILS CONSOLE OUTPUT-'UNIT NN FAIL N' AND EXIT 0 3CC6 # IF SUCCESSFUL EXIT 1 3CWQ # ENTRY X3=START ADDRESS OF PCA 3DBB # ALWAYS ASSUMES 4 WORD CONTROL AREA 3DW2 # EXIT 3F*L # X0,X3,X5,X6=UNDEFINED 3FT= # X7=LINK 3G#W # 3GSG MTPERI 3H#6 LDX 6 0(3) [GET MODE 3HRQ SMO FXPMDR 3J?B LDX 1 JMTPTR [KEEP DEV REC PTR 3JR2 MT2 JBUSY 1,MT2 [LOOP TIL UNBUSY 3K=L DCA 1,DLA,6,MODE [STORE MODE 3KQ= LDX 6 2(3) 3L9W DCA 1,STO,6,COUNT [STORE COUNT 3LPG LDX 6 3(3) [STORE BUFFER ADDRESS 3M96 DCA 1,STO,6,CTSA 3MNQ SMO FXPMDR 3N8B LDN 3 JMTPTR-CPPTR [GET 'BLOCK START' 3NN2 GPERI 1,3,NC [DO PERI 3P7L MTERR 3PM= SMO FXPMDR 3Q6W LDX 6 JMTPTR 3QLG ...MTRR JBUSY 6,MTRR [LOOP IF BUSY 3R66 ... JPMFAIL 6,MT1 [GO TO MT1 IF FAIL 3RKQ EXIT 7 1 [EXIT IF PERI SUCCESSFUL 3S5B MT1 SMO FXPMDR 3S*8 ... LDX 6 JMTRW1 [LOAD THE REPLY WORD 3SG4 ... SMO FXPM1 3SLY ... STO 7 WLINK [SAVE THE LINK 3SRS ... SLC 6 5 [LOOK AT BIT 5 3SYN ... BNG 6 MT1A [NO CODE IF DECK INOPERABLE 3T5J ... SRC 6 2 [LOOK AT BIT 3 3T=D ... BPZ 6 MT1B [J IF LONG BLOCK DETECTED (BIT 1) 3TC# ... SRC 6 3 3TJ= SMO FXPM1 3W3W DCH 6 MESSJ+5 [DUMP FAIL NO.:- 0,1,2 OR 3 3WHG ...MT1A SMO FXPMDR 3X36 LDX 6 JMTGEOG 3XGQ ... CALL 7 (JGNO1) [CONVERT DECK GEOG. NO. TO CHARS. 3Y^L SMO FXPM1 3^F= STO 5 MESSJ+3 3^YW SMO FXPM1 42DG LDN 3 MESSJ 42Y6 ... CALL 7 (JCONOUT) [OUTPUT FAIL MESSAGE ON CONSOLE 43CQ BRN MT3 43F# ...MT1B SMO FXPMDR 43GW ... LDX 6 JMTGEOG [UNIT NUMBER OF MT DECK 43JD ... CALL 7 (JGNO1) [CONVERT IT TO CHARACTER FORM 43L2 ... SMO FXPM1 43MJ ... STO 5 MESSN+3 [AND INSERT IT IN THE MESSAGE 43P6 ... SMO FXPM1 43QN ... LDN 3 MESSN [PRINT ON THE CONSOLE: 43S= ... CALL 7 (JCONOUT) ["UNIT NN FORMAT ERROR" 43TS ... BRN MT3 43XB # 44C2 # ROUTINE TO REWIND MT 44WL # EXIT 0 45B= # X7=LINK 45TW # X0,X3,X6=UNDEFINED 46*G # 46T6 MTREWIND 47#Q SMO FXPM1 47SB STO 7 WLINK 48#2 MT3 SMO FXPMDR 48RL LDX 1 JMTPTR [GET PTR, 49?= LDN 6 7 49QW DCA 1,DLA,6,MODE 4==G SMO FXPMDR 4=Q6 LDN 3 JMTPTR-CPPTR [BLOCK START 4?9Q GPERI 1,3,NC [DO REWIND 4?PB SMO FXPM1 4#92 LDX 7 WLINK 4#NL EXIT 7 0 [EXIT 0 4*8= # 4*MW # ROUTINE TO EXTRACT A SPECIFIED PARAMETER 4B7G # FROM A GIVEN FIELD OF PARAMETERS ADDRESSED BY JCCBUF 4BM6 # 4C6Q # ON ENTRY X5 CONTAINS NUMBER OF PARAMETER 4CLB # X6 CONTAINS TOTAL NUMBER OF CHARS IN FIELD 4D62 # 4DKL # ON EXIT X3 CONTAINS MODIFIER POINTING TO FIRST CHARACTER 4F5= # OF REQUIRED PARAMETER 4FJW # X7 CONTAINS NUMBER OF CHARACTERS IN PARAMETER 4G4G # IF ZERO NULL PARAMETER 4GJ6 # 4H3Q # LINK X0 4HHB # 4J32 # ACCS 1,2,4,5 UNCHANGED 4JGL # 4K2= PMPAR STO 5 XLINK4(1) [ PARAMETER NUMBER 4KFW STO 6 XLINK2(1) [ CHARS IN FIELD 4K^G STOZ XLINK5(1) 4LF6 LDN 7 1 4LYQ PAR6 LDCH 6 0(3) [ GET NEXT CHAR 4MDB TXU 6 SPACE(1) 4MY2 BCC PAR [ J IF SPACE 4NCL STO 3 XLINK3(1) 4NX= PAR3 TXU 6 XCOMMA(1) 4PBW BCC PAR1 [ J IF COMMA 4PWG ADS 7 XLINK5(1) [ INCREMENT CHAR. COUNT 4QB6 BCHX 3 £ 4QTQ PAR5 SBS 7 XLINK2(1) 4R*B LDX 6 XLINK2(1) 4RT2 BZE 6 PAR2 [ ALL FIELD EXAMINED ? J IF YES 4S#L LDCH 6 0(3) [ LOAD NEXT CHAR 4SS= BRN PAR3 [ LOAD NEXT CHAR 4T?W PAR1 SBS 7 XLINK4(1) 4TRG LDX 6 XLINK4(1) 4W?6 BZE 6 PAR4 [ J IF PARAMETER WANTED 4WQQ STOZ XLINK5(1) [ INITIALISE CHARS. IN THIS PARAMETER 4X=B BCHX 3 £ 4XQ2 STO 3 XLINK3(1) 4Y9L BRN PAR5 [ COUNT CHARS. IN THIS PARAMETER 4YP= PAR BCHX 3 £ 4^8W SBS 7 XLINK2(1) 4^NG LDX 6 XLINK2(1) 5286 BNZ 6 PAR6 [ J IF MORE CHARS TO CHECK 52MQ PAR2 SBS 7 XLINK4(1) 537B LDX 6 XLINK4(1) 53M2 BZE 6 PAR4 [ J IF PARAMETER WANTED 546L STOZ XLINK3(1) 54L= STOZ XLINK5(1) 555W PAR4 LDX 7 XLINK5(1) [ SET UP EXIT CONDITIONS 55KG LDX 3 XLINK3(1) 5656 EXIT 0 0 [ OUT AGAIN. 56JQ # 574B # 57J2 # 583L # ROUTINE TO CHECK VALIDITY OF PARAMETERS IN CONSOLE INPUT MESSAGE 58H= # IF NO. VALID :NO. STORED IN OCTAL FORMAT IN THDDR+1 592W # STORED IN CHAR. FORMAT IN TSN AND TSN+1 59GG # EXIT 0 1 5=26 # IF INVALID : EXIT 0 0 5=FQ # ENTRY X3=START ADD. OF MESSAGE 5=^B # X5=NO. OF CHARS IN MESSAGE 5?F2 # EXIT X2,X3,X4,X5,X6,X7=UNDEFINED 5?YL # X0=LINK 5#D= # 5#XW VALID 5*CG SMO FXPM1 5*X6 STO 0 WLINK [STORE LINK 5BBQ SMO FXPM1 5BWB STO 3 X3STORE 5CB2 SMO FXPM1 5CTL STOZ XSCRIND 5D*= SMO FXPM1 5DSW STOZ XBOTIND 5F#G SMO FXPM1 5FS6 LDX 7 SPACEFIL 5G?Q SMO FXPM1 5GRB STO 7 TSNX 5H?2 SMO FXPM1 5HQL STO 7 TSNX+1 5J== STO 5 2 [FOR PMPAR. 5JPW LDN 4 1 [MEANS PARA 1 5K9G V5 LDX 5 4 5KP6 LDX 6 2 5L8Q LDX 1 FXPM1 5LNB LDX 3 X3STORE(1) 5M82 CALL 0 PMPAR [GET NEXT PARAMETER 5MML SBN 4 1 5N7= BZE 4 V1 [J TO VALIDATE PARA 1 5NLW SBN 4 1 5P6G BZE 4 V2 [J TO VALIDATE PARA 2 5PL6 # 5Q5Q BZE 7 V3 [ELSE J IF PARA 3 NULL 5QKB SMO FXPM1 5R52 TXU 7 THREE [INVALID IF NOT 5RJL BCS XEXIT [3 CHARACTERS 5S4= LDN 6 0 5SHW LDN 4 6 [ELSE CHECK FOR 5T3G MVCH 3 3 [BOT 5TH6 SMO FXPM1 5W2Q TXU 6 XBOT 5WGB BCC V3 5X22 SMO FXPM1 5XFL TXU 6 XSCR [OR SCR 5X^= BCS XEXIT [INVALID IF NEITHER 5YDW SMO FXPM1 5YYG STO 7 XSCRIND [SET SCR INDICATOR 5^D6 BRN V7 5^XQ V3 SMO FXPM1 62CB STO 7 XBOTIND [SET INDICATOR 62X2 V7 SMO FXPM1 63BL LDN 3 MESSC 63W= CALL 7 (JCONOUT) [PRINT A NEW LINE 64*W SMO FXPM1 64TG LDN 6 TSNX [COPY 65*6 SMO FXPM1 65SQ LDN 7 TSN [TSN 66#B MOVE 6 2 66S2 SMO FXPM1 67?L LDX 0 WLINK [AND EXIT VALID 67R= EXIT 0 1 68=W # 68QG # 69=6 V1 BZE 7 XEXIT [EXIT IF PARA 1 NULL 69PQ SMO FXPM1 6=9B TXL 7 NINE [CHECK NO OF CHARS<9 6=P2 BCC XEXIT [INVALID IF NOT 6?8L LDCH 4 0(3) 6?N= TXL 4 XEIGHT(1) 6#7W BCS V1A 6#MG SBN 7 3 6*76 BPZ 7 XEXIT [J IF MORE THAN 4 CHARACTERS: ERROR 6*LQ ADN 7 3 6B6B LDN 5 0 6BL2 LDN 4 5 6C5L SMO 7 6CK= MVCH 3 0 [MOVE INTO THE TOP OF X5 6D4W TXU 5 XDA(1) 6DJG BCC XDADUMP [J IF "DA" : A DISC DUMP IS WANTED 6F46 TXU 5 XMT(1) 6FHQ BCS XEXIT [ERROR IF NOT "MT" 6G3B SBN 2 3 6GH2 LDX 3 X3STORE(1) [IF THE FIRST PARAMETER IS "MT" ... 6H2L SLC 3 2 6HG= ADN 3 3 [ ... WE SIMPLY MAKE "MT" DISAPPEAR 6H^W SRC 3 2 6JFG STO 3 X3STORE(1) [ ... FROM THE INPUT MESSAGE! 6J^6 BNG 2 XEXIT [ERROR IF THERE ARE ... 6KDQ BZE 2 XEXIT [ ... NO MORE CHARACTERS LEFT 6KYB LDN 4 1 6LD2 BRN V5 6LXL V1A SMO FXPM1 6MC= LDN 4 TSNX [COPY TSN 6MWW STO 3 6 [SAVE ADDRESS 6NBG SMO 7 6NW6 MVCH 3 0 6P*Q LDX 3 6 [RESET START ADDRESS 6PTB LDN 5 0 6Q*2 V4 LDCH 6 0(3) 6QSL SMO FXPM1 6R#= TXL 6 XEIGHT 6RRW BCC XEXIT [EXIT IF INVALID 6S?G SRC 6 3 [MOVE OCTAL CHAR TO M.S END 6SR6 SLL 56 3 [AND SET UP NO IN X5 6T=Q BCHX 3 £ 6TQB BCT 7 V4 [LOOP TIL DONE 6W=2 SMO FXPM1 6WPL STO 5 THDDR+1 [SET TSN IN HDDR, 6X9= LDN 4 2 [SET PARA NO 6XNW BRN V5 [TO 2 AND GET IT. 6Y8G # 6YN6 V2 BZE 7 XEXIT [EXIT INVALID IF PARA 2 NULL 6^7Q SMO FXPM1 6^MB TXL 7 XFOUR [INVALID IF NOT <4 CHARS 7272 BCC XEXIT [ EXIT INVALID 72LL # 736= # NOW CONVERT TO BINARY 73KW # 745G LDN 4 0 74K6 LDN 5 0 [RECEIVES ANSWER 754Q V6 CDB 4 0(3) 75JB BCS XEXIT [EXIT IF INVALID 7642 BCHX 3 £ [STEP ADDR 76HL BCT 7 V6 [LOOP TIL DONE 773= SMO FXPMDR 77GW STO 5 JMTGEOG [STORE ANSWER 782G LDN 4 3 78G6 BRN V5 78^Q XEXIT 79FB SMO FXPM1 79^2 LDX 0 WLINK 7=DL EXIT 0 0 7=Y= # 7?CW # DA DISCOVERED IN INPUT.SINCE WE ARE NOT WANTED,WE 7?XG # YIELD TO PMDUMPDA. 7#C6 # 7#WQ XDADUMP 7*BB LDN 4 64+128 7*W2 SMO FXPMDR 7B*L ERS 4 ALLPOST 7BT= PMOVE PMDUMPDA,FXPM1,2 7C#W # 7CSG # 7D#6 XK1PMDUMPMT 7DRQ # 7F?B # CODING REQUESTING DUMP TAPE NO. AND DECK NO OF SAME 7FR2 # VALIDITY OF REPLY ALSO CHECKED 7G=L # 7GQ= LDX 1 FXPM1 7H9W ADS 1 MTREAD+3(1) [DATUMISE TAPE PERI CONTROL AREAS 7HPG ADS 1 MTWRI+3(1) 7J96 T SMO FXPM1 7KN2 LDN 3 MESSD 7L7L CALL 7 (JCONOUT) [ASK FOR TSN/DECK NO 7LM= TZ2 CALL 7 (JCTWIN) [READ I/P 7M6W BRN TZ2 [NOT OK 7MLG TZ1 LDN 3 FCINBUF [SET X3 FOR VALID 7N66 ANDN 6 #777 [COUNT 7NKQ NGX 5 6 [CHARS READ 7P5B ADN 5 64 [IN X5 7PK2 BZE 5 T [J IF INVALID 7Q4L TZ3 LDX 1 FXPM1 7QJ= CALL 0 VALID [IS REPLY VALID? 7R3W BRN T [J IF INVALID 7R94 ... SMO FXPM1 7RB= ... STOZ MIND [STOZ MESSAGE O/P INDICATOR 7RHG LDX 1 JCTWPTR [NOW REQUIRE TO UNSET 7S36 LINT 1,6 [T/W ENGAGE BUTTON BIT 7SGQ SMO FXPM1 7T2B DVS 5 TWEN4 [SO CALCULATE POSN 7TG2 STO 5 0 [REMEMBER 7T^L STO 6 2 [RESULT 7WF= SLL 6 9 [SET RESULT IN REMAINDE/QUOTIENT 7WYW SRL 56 9 [FORM IN XTWBIT 7XDG SMO FXPM1 7XY6 STO 6 XTWBIT 7YCQ LDCT 6 #400 [SET UP MASK IN ORDER TO UNSET BIT 7YXB BZE 0 TS1 [J WHEN GOT RIGHT POSN 7^C2 TS2 SRL 6 1 7^WL BCT 0 TS2 82B= TS1 ORS 6 EBA(2) [UNSET 82TW ERS 6 EBA(2) [T/W BIT 83*G # 83T6 # CODING TO CHECK SPECIFIED DECK FOR SPECIFIED TAPE, 84#Q # REWIND IT AND LOOK AT HEADER LABEL 84SB # 85#2 T3 SMO FXPMDR 85RL LDX 5 JMTGEOG [GET DECK GEOG NO. 86?= FINDPEREC 1,APGEOG,5 [AND FIND RELEVANT DEV RECORD 86QW BNG 1 T [REPEAT MESS IF NON-EXISTENT 87=G LTYPE 1,5 [CHECK 87Q6 SMO FXPM1 889Q TXU 5 XFIVE [ITS A MT 88PB BCS T [TCH! TCH! 8992 SMO FXPMDR 89NL LDX 5 JMTPTR [IS THIS THE FIRST MT? 8=8= BZE 5 T2 [J IF SO 8=MW TXU 5 1 [ELSE IS IT DIFFERENT TO LAST 8?7G BCC T1 [TIME, J IF SAME 8?M6 SMO FXPMDR 8#6Q LDN 4 JMTREC [ELSE UNDUMP OLD DEV REC 8#LB MOVE 4 K53-K50 8*62 # 8*KL T2 SMO FXPMDR 8B5= STO 1 JMTPTR [STORE NEW PTR 8BJW SMO FXPMDR 8C4G LDN 2 JMTREC [AND NEW DEV REC 8CJ6 MOVE 1 K53-K50 8D3Q # 8DHB T1 SMO FXPMDR 8F32 LDX 1 JMTPTR [CHECK IF DECK ENGAGED 8FGL JENG 1,M1 [J IF SO 8G2= SMO FXPM1 8GFW LDX 6 MIND [ELSE IF INDICATOR NOT SET 8G^G BNZ 6 T1 8HF6 SMO FXPM1 8HYQ LDN 5 TSN [ASK FOR OUR TAPE TO BE LOADED 8JDB LDCT 6 #400 8JY2 SMO FXPM1 8KCL ORN 6 MESSH+4 8KX= MVCH 5 8 [MOVE TSN INTO MESSAGE 8LBW SMO FXPMDR 8LWG LDX 6 JMTGEOG [PICK UP THE DECK NUMBER 8MB6 CALL 7 (JGNO1) [CONVERT IT TO CHARACTERS 8MTQ LDN 6 5 8N*B LDCT 7 #600 8NT2 SMO FXPM1 8P#L ORN 7 MESSH+8 [AND PUT IT INTO THE MESSAGE 8PS= MVCH 6 4 8Q?W SMO FXPM1 8QRG LDN 3 MESSH 8R?6 CALL 7 (JCONOUT) 8RQQ LDN 7 7 [AND SET INDICATOR 8S=B SMO FXPM1 8SQ2 STO 7 MIND 8T9L BRN T15 [J CHECK T/W AND MT 8TP= # 8W8W M1 SMO FXPM1 8WNG STOZ MIND [UNSET INDICATOR 8X86 SMO FXPM1 8XMQ LDN 3 MTREW 8Y7B CALL 7 MTPERI [REWIND MT 8YM2 BRN T [FAIL SO START AGAIN. 8^6L SMO FXPM1 8^L= LDN 3 MTREAD [READ HEADER 925W CALL 7 MTPERI 92KG BRN T [FAIL. 9356 # 93JQ # NOW CHECK HEADER... 944B SMO FXPM1 94J2 LDX 6 MTBUF 953L SMO FXPM1 95H= TXU 6 THDDR 962W BCC T17 [J IF STANDARD HDDR LABEL 96GG SMO FXPMDR 9726 LDX 6 JMTGEOG [GET DECK NO AND CONVERT TO 97FQ CALL 7 (JGNO1) [CHARACTERS 97^B SMO FXPM1 98F2 STO 5 MESSE+5 98YL SMO FXPM1 99D= LDN 3 MESSE [-STANDARD HEADER LABEL 99XW CALL 7 (JCONOUT) [CONSOLE MESSAGE 'TAPE ON DECK NN 9=CG SMO FXPMDR 9=X6 LDX 1 JMTPTR [SET UP 9?BQ LDN 6 7 [C.A 9?WB DCA 1,DLA,6,MODE [TO REWIND 9#B2 SMO FXPMDR 9#TL LDN 2 JMTPTR-CPPTR [OUR MT 9**= GPERI 1,2,NC [DO IT. 9*SW BRN T [START OVER AGAIN 9B#G T17 SMO FXPM1 9BS6 LDX 6 MTBUF+1 9C?Q SMO FXPM1 9CRB TXU 6 THDDR+1 9D?2 BCC T18 [J IF TSN CORRECT 9DQL T60 SMO FXPM1 9F== LDN 5 TSN [OUTPUT MESSAGE: 9FPW SMO FXPM1 9G9G LDN 6 MESSK+2 ['TSN NOT ON DECK N'... 9GP6 MOVE 5 2 9H8Q SMO FXPMDR 9HNB LDX 6 JMTGEOG 9J82 CALL 7 (JGNO1) 9JML SMO FXPM1 9K7= STO 5 MESSK+8 9KLW SMO FXPM1 9L6G LDN 3 MESSK 9LL6 CALL 7 (JCONOUT) 9M5Q SMO FXPM1 9MKB LDN 3 MTREW 9N52 CALL 7 MTPERI [REWIND MT 9NJL NULL 9P4= BRN T [TRY AGAIN 9PHW T18 9Q3G SMO FXPM1 9QH6 LDX 5 XSCRIND 9R2Q BNZ 5 T13 [J IF SCR SPECIFIED 9RGB SMO FXPM1 9S22 LDX 4 MTBUF+2 9SFL SMO FXPM1 9S^= LDX 5 MTBUF+3 9TDW SMO FXPM1 9TYG LDX 6 MTBUF+4 9WD6 SMO FXPM1 9WXQ TXU 4 THDDR+2 9XCB SMO FXPM1 9XX2 TXU 5 THDDR+3 9YBL SMO FXPM1 9YW= TXU 6 THDDR+4 9^*W BCS T14 [J IF HDDR LABEL NOT 'G3POSTMORTEM' 9^TG SMO FXPMDR =2*6 LDX 1 JMTPTR =2SQ JWPR 1,T20 [J IF OUR MT HAS WPR =3#B T15 =3S2 SMO FXPMDR =4?L LDX 1 JMTPTR [NOW FIND MT =4R= LINT 1,6 [ENGAGE BUTTON BIT =5=W SMO FXPM1 =5QG DVS 5 TWEN4 [AND UNSET IT. =6=6 STO 5 0 =6PQ STO 6 2 =79B SLL 6 9 =7P2 SRL 56 9 =88L SMO FXPM1 =8N= STO 6 XMTBIT [REMEMBER POSN =97W LDCT 6 #400 =9MG BZE 0 TT1 ==76 TT2 SRL 6 1 ==LQ BCT 0 TT2 =?6B TT1 ORS 6 EBA(2) =?L2 ERS 6 EBA(2) =#5L SMO FXPM1 =#K= LDX 5 MIND [MESSAGE ALREADY O/P? =*4W BNZ 5 T30 [J IF SO =*JG SMO FXPM1 =B46 LDN 5 TSN [ELSE WE =BHQ SMO FXPM1 =C3B LDN 6 MESSG+3 =CH2 MOVE 5 2 [INSERT TSN IN CONSOLE MESSAGE =D2L SMO FXPM1 =DG= LDN 3 MESSG [OUTPUT 'LOAD WPR' MESSAGE =D^W CALL 7 (JCONOUT) =FFG BRN T30 =F^6 T14 SMO FXPM1 =GDQ TXU 4 SCRA =GYB SMO FXPM1 =HD2 TXU 5 SCRA+1 =HXL SMO FXPM1 =JC= TXU 6 SCRA+2 =JWW BCC T13 [J IF SCRATCH TAPE =KBG SMO FXPMDR =KW6 LDX 1 JMTPTR [REWIND =L*Q LDN 6 7 [THE =LTB DCA 1,DLA,6,MODE [MT =M*2 SMO FXPMDR =MSL LDN 2 JMTPTR-CPPTR =N#= GPERI 1,2,NC [PERI. =NRW SMO FXPM1 =P?G LDN 5 TSN =PR6 SMO FXPM1 =Q=Q LDN 6 MESSF+3 =QQB MOVE 5 2 [INSERT TSN IN CONSOLE MESSAGE =R=2 SMO FXPM1 =RPL LDN 3 MESSF [INCORRECT HEADER LABEL =S9= CALL 7 (JCONOUT) [CONSOLE MESSAGE 'TAPE NNNNNNNN =SNW BRN T [REQUEST NEW MT =T8G T13 SMO FXPMDR =TN6 LDX 1 JMTPTR =W7Q JWPR 1,M3 [J IF WPR =WMB BRN T15 =X72 M3 SMO FXPM1 =XLL LDN 3 MTREW =Y6= CALL 7 MTPERI [REWIND MT =YKW BRN T [START AGAIN IF FAIL =^5G SMO FXPMDR =^K6 LDX 6 JMTGEOG ?24Q SRC 6 9 ?2JB SMO FXPM1 ?342 STO 6 THDDR+9 [WORD 9 OF TAPE HEADER LABEL ?3HL LDX 6 EDATE [STORE 'DATE WRITTEN' ?43= SMO FXPM1 ?4GW STO 6 THDDR+8 [IN HEADER ?52G SMO FXPM1 ?5G6 LDN 5 THDDR ?5^Q SMO FXPM1 ?6FB LDN 6 MTBUF [MOVE HDDR LABEL INTO MT WRITE BUFFER ?6^2 MOVE 5 10 ?7DL SMO FXPM1 ?7Y= LDN 3 MTWRI ?8CW CALL 7 MTPERI [WRITE HDDR LABEL ?8XG BRN T [FAIL SO REQUEST NEW MT. ?9C6 [NO ?9WQ SMO FXPM1 ?=BB STOZ PMCOUNT ?=W2 BRN W ??*L # ??T= # CODING TO POSITION 'G3POSTMORTEM' TAPE BEFORE TRAILER LABEL ?##W # ?#SG T20 ?*#6 SMO FXPM1 ?*RQ STOZ PMCOUNT ?B?B SMO FXPM1 ?BR2 LDX 0 XBOTIND [J IF POSTDUMP TO BE WRITTEN ?C=L BNZ 0 W [AFTER BOT ?CQ= M4 SMO FXPM1 ?D9W LDN 3 MTSKIP ?DPG CALL 7 MTPERI [SKIP TO TM ?F96 BRN T ?FNQ SMO FXPM1 ?G8B LDN 3 MTREAD ?GN2 CALL 7 MTPERI [READ NEXT BLOCK ?H7L BRN T ?HM= SMO FXPM1 ?J6W LDCH 6 MTBUF ?JLG SBN 6 6 ?K66 BNZ 6 M2 [J IF NOT START OF S/F SENTINEL ?KKQ LDN 3 3 ?L5B SSFS SMO FXPM1 ?LK2 LDX 4 MTBUF+1(3) [S/F NAME ?M4L SMO FXPM1 ?MJ= TXU 4 POSTDUMP-1(3) ?N3W BCS M5 [J IF NOT 'POSTDUMP' S/F ?NHG BCT 3 SSFS ?P36 LDN 4 1 ?PGQ SMO FXPM1 ?Q2B ADS 4 PMCOUNT [UPDATE DUMP COUNT ?QG2 BRN M4 ?Q^L M2 SBN 6 1 ?RF= BNZ 6 M4 [J IF NOT TRAILER LABEL ?RYW SMO FXPM1 ?SDG LDN 3 MTBACK ?SY6 CALL 7 MTPERI [BACKSPACE ?TCQ BRN T [PAST ?TXB SMO FXPM1 ?WC2 LDN 3 MTBACK [PRECEDING ?WWL CALL 7 MTPERI [TM ?XB= BRN T ?XTW SMO FXPM1 ?Y*G LDN 3 MTBACK ?YT6 CALL 7 MTPERI [BACKSPACE AND ?^#Q BRN T [THEN READ A BLOCK- UNDER ?^SB SMO FXPM1 #2#2 LDN 3 MTREAD [GEORGE EXEC A WRITE CANNOT FOLLOW #2RL CALL 7 MTPERI [IMMEDIATELY AFTER A BACKSPACE #3?= BRN T #3QW BRN W #4=G M5 SMO FXPM1 #4Q6 LDN 6 MESSM+2 #59Q SMO FXPM1 #5PB LDN 5 TSN #692 MOVE 5 2 [STORE TSN IN CONSOLE MESSAGE #6NL SMO FXPM1 #78= LDN 3 MESSM [INCORRECT SUBFILE NAME' #7MW CALL 7 (JCONOUT) [CONSOLE MESSAGE 'TAPE NNNNNNNN #87G CALL 7 MTREWIND [REWIND MT #8M6 BRN T [REQUEST NEW MT #96Q # #9LB # CODING TO LOOK AT PERIPHERAL ENGAGE BUTTON AREA TO CHECK IF #=62 # CONSOLE T/W ENGAGED BIT SET OR IF MT ENGAGED #=KL # #?5= T30 #?JW LDN 4 0 ##4G SMO FXPM1 ##J6 LDX 5 XTWBIT #*3Q LDCH 2 5 [GET EBA MODIFIER IN X2 #*HB SLL 45 9 [GET COUNT OF BIT POSN IN X4 #B32 LDCT 3 #400 [SET BIT IN X3 TO REQD POSN... #BGL BZE 4 T31 #C2= T35 SRL 3 1 #CFW BCT 4 T35 #C^G T31 ANDX 3 EBA(2) [CHECK T/W BIT #DF6 BNZ 3 T32 [J IF SET #DYQ SMO FXPM1 #FDB LDX 5 XMTBIT [ELSE CHECK MT BIT #FY2 LDCH 2 5 #GCL SLL 45 9 #GX= LDCT 3 #400 #HBW BZE 4 T33 #HWG T34 SRL 3 1 #JB6 BCT 4 T34 #JTQ T33 ANDX 3 EBA(2) #K*B BZE 3 T30 [RESUME SEARCH IF NOT SET #KT2 ERS 3 EBA(2) [ELSE UNSET IT #L#L BRN M1 [AND RESUME SEARCH #LS= # #M?W # T/W BIT SET SO CLEAR AND READ INPUT #MRG # #N?6 T32 ERS 3 EBA(2) [CLEAR IT #NQQ T38 CALL 7 (JCTWIN) [READ I/P #P=B BRN T38 [LOOP IF NOT #PQ2 ANDN 6 #777 [GET NO. #Q9L NGX 5 6 [OF #QP= ADN 5 64 [CHARS #R8W LDN 3 FCINBUF [READ IN X5 #RNG BZE 5 T30 [IGNORE MESSAGE IF NONE OR ALL SPACES #S86 BRN TZ3 #SMQ # #T7B # #TM2 # PMDUMPDA WAS RUDELY INTERRUPTED & SO WE ARE TAKING OEVR #W6L # #WL= XK2PMDUMPMT #X5W LDX 1 FXPM1 #XKG ADS 1 MTREAD+3(1) [DATUMISE TAPE PERI CONTROL AREAS #Y56 ADS 1 MTWRI+3(1) #YJQ STOZ MIND(1) [STOZ MESSAGE O/P INDICATOR #^4B SMO FXPMDR #^J2 LDX 6 JPCONREPLY [LOAD CONSOLE REPLY WORD *23L BRN TZ1 *2H= # *32W # CODING TO INITIATE TRANSFER TO #SEG PMDUMPA WHERE THE POSTMORTEM *3GG # DUMP WILL TAKE PLACE *426 # *4FQ W SMO FXPM1 *4^B LDX 6 PMCOUNT *5F2 ADN 6 1 [NO. INCLUDING PRESENT DUMP *5YL CALL 7 (JGNO1) [CONVERT TO DECIMAL *6D= SMO FXPM1 *6XW STO 5 MESSL+7 [STORE COUNT IN MESSAGE *7CG SMO FXPM1 *7X6 LDN 3 MESSL *8BQ CALL 7 (JCONOUT) *8WB PMOVE PMDUMP,FXPM1,1 [ OFF WE GO *9B2 # *9TL MTBUF [MAG. TAPE BUFFER *=*= #END ^^^^ ...554711620005