7 22FL #OPT K0PMDUMP=0 11 22_= #LIS K0PMDUMP>K0POST>K0ALLGEO 4 23DW # 15 23YG #SEG PMDUMP85 [M.C.D. MANN 4 24D6 # 17 24XQ # THIS SEGMENT GIVES A POSTMORTEM DUMP TO MT AND DA 17 25CB # BY THE METHOD OF TRUNCATING AND BUNCHING LP IMAGES 4 25X2 # 9 26BL 8HPMDUMP 4 26W= # 9 27*W # ENTRY POINT TABLE 4 27TG # 10 28*6 SEGENTRY K1PMDUMP,XK1PMDUMP 10 28SQ SEGENTRY K2PMDUMP,XK2PMDUMP 10 29#B SEGENTRY K3PMDUMP,XK3PMDUMP 10 29S2 SEGENTRY K4PMDUMP,XK4PMDUMP 10 2=?L SEGENTRY K5PMDUMP,XK5PMDUMP 4 2=R= # 13 2?=W MESSI 18,18H_*END OF PM DUMP_* 14 2?QG MESSJ 22,22H _*UNIT FAIL _* 13 2#=6 MESSK 17,17H_*UNIT FIX_* 15 2#FY ...MESSL 27,27H _*UNIT FORMAT ERROR_* 10 2#PQ POSTDUMP 12HPOSTDUMP 10 2*9B PMCOMM 8HPMDACOMM 7 2*P2 XFAILFLAG 0 17 2B8L XBLOCNT 0 [TO HOLD BLOCK COUNT 17 2BN= XBUFF +MTBUF [ADDRESS OF MT BUFFER 8 2C7W TWEN4 24 7 2CMG XFIVE 5 8 2D76 SPACE #20 7 2DLQ WLINK 0 7 2F6B STORE 0 9 2FL2 SPACEFUL #20202020 8 2G5L MTSZE +BUFL 20 2GK= SCANDUMP 0 [TO HOLD BS ADDRESS IN BUFFDUMP 20 2H4W TRADUMP +BUFL [TO HOLD BS ADDRESS IN BUFFDUMP 7 2HJG SIX 6 10 2J46 XLASREC 16H0004000A 4 2JHQ # 11 2K3B # MAG TAPE FAILURE ROUTINE 4 2K8J ...# 9 2K*Q ...# OUTPUT ON CONSOLE: 4 2KGY ...# 16 2KN6 ...# EITHER ^UNIT NN FAIL N^ (BIT 3 SET) 19 2KT# ...# ^UNIT NN FAIL^ (BIT 5 SET: INOPERABLE) 19 2L2G ...# OR ^UNIT NN FORMAT ERROR^ (BIT 1 SET: LONG BLOCK) 4 2L7N ...# 10 2L#W ...# AND REWIND THE TAPE 13 2LG= # ENTRY X3=START ADDRESS OF PCA 4 2L_W # 12 2MFG ...# EXIT PMOVE TO K1PMDUMPMT 4 2M_6 # 4 2NDQ MT1 8 2NYB LDX 1 FXPM1 9 2PD2 SMO FXPMDR 17 2PXL ... LDX 6 JMTRW1 [LOAD THE REPLY WORD 16 2Q4S ... SLC 6 5 [LOOK AT BIT 5 19 2Q=2 ... BNG 6 MT1A [NO CODE IF DECK INOPERABLE 16 2QC8 ... SRC 6 2 [LOOK AT BIT 3 20 2QJB ... BPZ 6 MT1B [J IF LONG BLOCK DETECTED (BIT 1) 7 2QPJ ... SRC 6 3 8 2QWW SMO FXPM1 19 2RBG DCH 6 MESSJ+5 [DUMP FAIL NO.:- 0,1,2 OR 3 9 2RW6 ...MT1A SMO FXPMDR 20 2S*Q LDX 6 JMTGEOG [PICK UP UNIT NUMBER OF MT DECK 19 2STB CALL 7 (JGNO1) [CONVERT IT TO CHARACTER FORM 10 2T*2 STO 5 MESSJ+3(1) 9 2TSL LDN 3 MESSJ(1) 20 2T_# ... CALL 7 (JCONOUT) [OUTPUT FAIL MESSAGE ON CONSOLE 16 2W62 ... BRN MT1C [REWIND THE TAPE 9 2W=N ...MT1B SMO FXPMDR 18 2WCB ... LDX 6 JMTGEOG [UNIT NUMBER OF MT DECK 19 2WJ4 ... CALL 7 (JGNO1) [CONVERT IT TO CHARACTER FORM 19 2WNQ ... STO 5 MESSL+3(1) [AND INSERT IT IN THE MESSAGE 18 2WTD ... LDN 3 MESSL(1) [PRINT ON THE CONSOLE: 18 2X26 ... CALL 7 (JCONOUT) [^UNIT NN FORMAT ERROR^ 19 2X6S ...MT1C LDN 1 9 [REWIND AND DISENGAGE MODE 9 2X?G SMO FXPMDR 9 2XR6 LDX 3 JMTPTR 10 2Y=Q DCA 3,DLA,1,MODE 9 2YQB SMO FXPMDR 10 2_=2 LDN 1 JMTPTR-CPPTR 20 2_PL ... GPERI ,1,NC [REWIND AND DISENGAGE THE TAPE 9 329= LDX 4 FXPM1DUMP 8 32NW STO 4 FXPM1 11 338G PMOVE PMDUMPMT,FXPM1,1 4 33N6 # 4 347Q # 20 34MB # ROUTINE TO MOVE A STRING OF 8 CHARACTERS. LEADING NON-SPACE 18 3572 # CHARACTERS ARE INSERTED AT THE END OF THE OUTPUT AREA 14 35LL # ENTRY X2=START ADD. OF CHAR. STRING 18 366= # X3=START ADD. OF AREA TO RECEIVE CHAR. STRING 15 36KW # EXIT X2=ADD. OF CHAR. AFTER CHAR. STRING 18 375G # X3=ADD. OF LAST CHAR. INSERTED IN OUTPUT AREA 10 37K6 # X6,X7=UNDEFINED 8 384Q # X0=LINK 4 38JB # 5 3942 XIDENT 10 39HL LDX 7 SPACEFUL(1) 15 3=3= STO 7 0(3) [SPACE FILL 15 3=GW STO 7 1(3) [OUTPUT AREA 15 3?2G LDN 7 8 [CHAR. COUNT 8 3?G6 XID LDCH 6 0(2) 16 3?_Q TXU 6 SPACE(1) [J IF NON-SPACE 15 3#FB BCS XID1 [CHAR. FOUND 7 3#_2 BCHX 2 / 8 3*DL BCT 7 XID 7 3*Y= XID2 EXIT 0 0 16 3BCW XID3 LDCH 6 0(2) [GET NEXT CHAR. 17 3BXG XID1 DCH 6 0(3) [STORE IN OUTPUT AREA 7 3CC6 BCHX 2 / 7 3CWQ SBN 7 1 16 3DBB BZE 7 XID2 [J WHEN 8 DONE 8 3DW2 BCHX 3 XID3 4 3F*L # 14 3FT= # ROUTINE TO ZEROISE TWENTY WORD AREA 12 3G#W # ENTRY X3=START ADD. OF AREA 10 3GSG # EXIT X3=UNCHANGED 10 3H#6 # X6,X7=UNDEFINED 8 3HRQ # WLINK=LINK 4 3J?B # 5 3JR2 ZERO20 8 3K=L SMO FXPM1 15 3KQ= STO 7 WLINK [STORE LINK 8 3L9W STOZ 0(3) 8 3LPG LDN 6 0(3) 8 3M96 LDN 7 1(3) 8 3MNQ MOVE 6 19 8 3N8B SMO FXPM1 8 3NN2 LDX 7 WLINK 7 3P7L EXIT 7 0 4 3PM= # 11 3Q6W # MAG. TAPE WRITE ROUTINES 11 3QLG # ENTRY X2=DECK UNIT NO. 15 3R66 # X3=START ADD. OF CURRENT MT BUFFER 21 3RKQ # ('WRITE' ONLY X2=LENGTH OF BLOCK,NOT INCL COUNT & CHECKSUM) 18 3S5B # ('SENSTART' ONLY X5=START ADD. OF SUBFILE NAME) 10 3SK2 # EXIT X2=UNCHANGED 13 3T4L # X3=ADD. OF NEW MT BUFFER 8 3TJ= # X0=LINK 10 3W3W # X5,X6,X7=UNDEFINED 14 3WHG # ('WRITE' ONLY X2=UNDEFINED) 4 3X36 # 17 3XGQ TRAILER [WRITE TRAILER LABEL 9 3Y2B CALL 7 ZERO20 7 3YG2 LDN 7 7 8 3Y_L BRN SENT 20 3_F= SENTEND [WRITE END OF SUBFILE SENTINEL 9 3_YW CALL 7 ZERO20 10 42DG LDX 7 XBLOCNT(1) 10 42Y6 STOZ XBLOCNT(1) 17 43CQ STO 7 1(3) [STORE BLOCK COUNT 8 43XB LDCT 7 256 8 44C2 BRN SENT 20 44WL SENSTART [WRITE START OF SUBFILE SENTINEL 9 45B= CALL 7 ZERO20 7 45TW LDN 7 6 8 46*G LDN 6 2(3) 15 46T6 MOVE 5 3 [SUBFILE NAME 16 47#Q SENT LDN 5 20 [LENGTH OF BLOCK 8 47SB STO 7 0(3) 15 48#2 STO 0 WLINK(1) [STORE LINK 5 48RL MTISBOK 9 49?= SMO FXPMDR 9 49QW LDX 3 JMTPTR 9 4==G JBUSY 3,MTISBOK 18 4=Q6 LDN 2 5 [WRITE A TAPE MARK MODE 10 4?9Q DCA 3,DLA,2,MODE 9 4?PB SMO FXPMDR 10 4#92 LDN 2 JMTPTR-CPPTR 8 4#NL GPERI ,2,NC 5 4*8= SENT3 9 4*MW SMO FXPMDR 9 4B7G LDX 6 JMTPTR 15 4BM6 SNT3 JBUSY 6,SNT3 [LOOP IF BUSY 16 4C6Q ... JPMFAIL 6,MT1 [J TO MT1 IF FAIL 5 4CLB SENT1 7 4D62 LDN 2 1 9 4DKL SMO FXPMDR 9 4F5= LDX 6 JMTPTR 10 4FJW DCA 6,DLA,2,MODE 10 4G4G DCA 6,STO,5,COUNT 9 4GJ6 LDX 3 XBUFF(1) 10 4H3Q DCA 6,STO,3,CTSA 9 4HHB SMO FXPMDR 10 4J32 LDN 2 JMTPTR-CPPTR 8 4JGL GPERI ,2,NC 9 4K2= SENT2 SMO FXPMDR 9 4KFW LDX 6 JMTPTR 16 4K_G SNT2 JBUSY 6,SNT2 [LOOP WHILE BUSY 14 4LF6 ... JPMFAIL 6,MT1 [J IF FAIL 9 4LYQ LDX 0 WLINK(1) 7 4MDB EXIT 0 0 19 4MY2 WRITE [WRITE VARIABLE LENGTH BLOCK 9 4NCL STO 0 WLINK(1) 8 4NX= BRN SENT1 4 4PBW # 13 4PWG # ROUTINE TO INITIALISE AND DATUMISE 4 4QB6 # 8 4QTQ XINIT LDX 1 FXPM1 9 4R*B ADS 1 XBUFF(1) 10 4RT2 PMDLGET BUFFDUMP,2 10 4S#L ADS 2 SCANDUMP(1) 10 4SS= ADS 2 TRADUMP(1) 7 4T?W EXIT 0 0 4 4TRG # 4 4W?6 # 17 4WQQ # ROUTINE TO PREPARE US FOR DUMPING-MAKE THEM THINK 16 4X=B # WE USE LP-CREATE TWO 512 WORD BUFFERS AT END OF 17 4XQ2 # FIXED CORE-MOVE BUNCHING ROUTINE TO START OF SEGMENT 12 4Y9L # -RESET ALLPOST AND SEGTAB PTR 4 4YP= # 17 4_8W # ENTRY: X7 - DESTINATION ADDR OF BUNCH. ROUTINE(DIFF. 12 4_NG # FOR MT & DA DUMP) 10 5286 # EXIT: X1,X3 UNCHANGED 15 52MQ # X7 POINTS AFTER MOVED BUNCH. ROUTINE 4 537B # 5 53M2 PREDUMP 9 546L SMO FXPMDR 17 54L= LDX 2 JMTPTR [MAKE PMJOBS THINK 9 555W SMO FXPMDR 16 55KG STO 2 JUNITNO [THERE IS AN LP 7 5656 LDN 4 1 10 56JQ DCA 2,DLA,4,MODE 9 574B SMO FXPMDR 17 57J2 STOZ JTRA+7-1 [CLEAR COUNT WORDS IN 9 583L SMO FXPMDR 18 58H= STOZ JTRA+3-1 [PMDR LP CONTROL AREAS 18 592W LDX 2 ENDFIX [END ADDR OF FIXED STORE 8 59GG SBN 2 BUFL 9 5=26 SMO FXPMDR 18 5=FQ STO 2 JTRA+8-1 [SECOND MT BUFFER ADDRESS 8 5=_B SBN 2 BUFL 9 5?F2 SMO FXPMDR 18 5?YL STO 2 JTRA+4-1 [FIRST MT BUFFER ADDRESS 9 5#D= SMO FXPMDR 17 5#XW STOZ EXCHANGE [CLEAR BUFFER SWITCH 17 5*CG LDX 4 XBLOCNT(1) [PRESERVE THE BLOCK 9 5*X6 SMO FXPMDR 16 5BBQ STO 4 BLKSDMPD [COUNT IN PMDR 10 5BWB LDX 6 SPACEFUL(1) 8 5CB2 STO 6 1(2) 8 5CTL LDN 5 1(2) 8 5D*= LDN 6 2(2) 19 5DSW MOVE 5 30 [SPACEFILL FIRST LP RECORD 8 5F#G LDCT 4 #600 7 5FS6 ADN 4 1 7 5G?Q ADX 2 4 18 5GRB STO 2 JOZ [SET UP 'LP' MODIFIERS 8 5H?2 STO 2 JPMOD 7 5HQL BCHX 2 / 9 5J== STO 2 JLPMOD 4 5JPW # 11 5K9G # MOVE ROUTINES INTO PMDR 4 5KP6 # 9 5L8Q SMO FXPMDR 10 5LNB STO 7 JBUNCHBASE 19 5M82 LDN 6 MT0(1) [OVERWRITE PMDR PRINT ROUTINE 18 5MML MOVE 6 MT4-MT0 [WITH BUNCHING ROUTINE 9 5N7= ADN 7 MT4-MT0 9 5NLW SMO FXPMDR 9 5P6G STO 7 JDUMPBASE 4 5PL6 # 17 5Q5Q # RESET ALLPOST BIT PATTERN AND PMSEG TABLE POINTER 4 5QKB # 9 5R52 SMO FXPMDR 9 5RJL LDX 4 ALLPOST 21 5S4= ANDN 4 #7467 [CLEAR BITS 17,16,20 (ENTRY CONDITION 21 5SHW ORN 4 #26 [SET BITS 19,21,22 (ENTRY CONDITIONS 9 5T3G SMO FXPMDR 18 5TH6 STO 4 ALLPOST [PLUS FULL LISTING BITS 9 5W2Q SMO FXPMDR 8 5WGB LDX 4 JDUMP 9 5X22 SMO FXPMDR 8 5XFL STO 4 JTABP 7 5X_= EXIT 0 0 4 5YDW # 4 5YYG # 4 5_D6 # 18 5_XQ # ROUTINE TO INTERCEPT AND BUNCH UP LP TRANSFERS INTO 18 62CB # THE MT/DA BUFFERS. THE ROUTINE IS MOVED TO FXPM1 BY 20 62X2 # THIS SEGMENT BEFORE DUMPING STARTS AND THE CORE ADDRESS OF THE 13 63BL # ROUTINE IS RECORDED IN JBUNCHBASE. 4 63W= # 11 64*W # ENTRY X1=BUFFER SWITCH 11 64TG # X3=BUFFER ADDRESS 9 65*6 # X6=PFCC 12 65SQ # EXIT X3,X5,X6,X7 UNDEFINED 4 66#B # 9 66S2 MT0 SMO FXPMDR 10 67?L ADX 3 JTRA+3-1(1) 8 67R= STO 6 1(3) 8 68=W LDN 1 30 7 68QG MT2 SMO 3 8 69=6 LDX 6 1(1) 9 69PQ SMO FXPMDR 8 6=9B TXU 6 FLUSH 17 6=P2 BCS MT8 [J IF WORD NOT BLANK 8 6?8L BCT 1 MT2 7 6?N= MT8 ADN 1 2 8 6#7W STO 1 0(3) 9 6#MG SMO FXPMDR 9 6*76 LDX 3 EXCHANGE 9 6*LQ ADX 3 FXPMDR 10 6B6B ADX 1 JTRA+3-1(3) 17 6BL2 STO 1 JTRA+3-1(3) [UPDATE BLOCK COUNT 10 6CK= LDX 6 JTRA+3-1(3) 17 6D4W ADX 6 JTRA+4-1(3) [NEW RECORD ADDRESS 8 6D?6 ... SBN 1 BUFL 18 6DFB ... BZE 1 MT3Y [J IF THIS BLOCK IS FULL 8 6DML ... ADN 1 31 20 6DTW ... BPZ 1 MT3X [J IF NO ROOM FOR ANOTHER BLOCK 9 6F46 SBX 3 FXPMDR 8 6FHQ MT3 LDCT 1 #600 7 6G3B ADN 1 1 18 6GH2 ADX 1 6 [READY TO SET UP POINTERS 9 6H2L SMO FXPMDR 9 6HG= LDX 5 JBUNCHEND 8 6H_W BRN (5) 7 6JFG MT3X SMO 6 19 6J_6 STOZ 0 [INSERT A ZERO RECORD HEADER 9 6KDQ ...MT3Y SMO FXPMDR 9 6KYB LDX 5 JDUMPBASE 8 6LD2 BRN (5) 4 6LXL # 19 6MC= # ROUTINE TO OUTPUT A BLOCK OF LP IMAGES TO MT. THIS ROUTINE 18 6MWW # IS MOVED TO A POSITION ABOVE (HIGH ADDRESS END OF) THE 18 6NBG # BUNCHING ROUTINE AND IS ENTERED BY THE LATTER ROUTINE. 4 6NW6 # 16 6P*Q # SEE BUNCHING ROUTINE FOR ENTRY/EXIT CONDITIONS 4 6PTB # 9 6Q*2 MT4 SMO FXPMDR 9 6QSL LDX 6 JMTPTR 16 6R#= MTBUS JBUSY 6,MTBUS [LOOP WHILE BUSY 15 6RRW ... JPMFAIL 6,TF [J IF FAIL 16 6S?G BRN MT7 [J IF TRANSFER OK 9 6SR6 TF SMO FXPMDR 19 6T=Q LDX 5 JVARCRUPT [VARIABLE CORE OVERWRITTEN ? 15 6TQB BPZ 5 MT4X [J IF NOT SO 18 6W=2 LDX 5 K2PMCRABS [RESTORE VARIABLE CORE 8 6WPL ADX 5 FXPM2 8 6X9= CALL 6 (5) 17 6XNW MT4X PMOVE PMDUMP,FXPM1,4 [EXIT TO FAIL ROUTINE 9 6Y8G MT7 SMO FXPMDR 17 6YN6 LDX 1 EXCHANGE [GET BUFFER MODIFIER 9 6_7Q SMO FXPMDR 18 6_MB LDX 3 JMTPTR [GET DEVICE LIST POINTER 9 7272 SMO FXPMDR 10 72LL LDX 6 JTRA+3-1(1) 10 736= DCA 3,STO,6,COUNT 9 73KW SMO FXPMDR 10 745G LDX 6 JTRA+4-1(1) 10 74K6 DCA 3,STO,6,CTSA 9 754Q SMO FXPMDR 10 75JB LDN 3 JMTPTR-CPPTR 8 7642 GPERI ,3,NC 7 76HL LDN 6 1 9 773= SMO FXPMDR 17 77GW ADS 6 BLKSDMPD [UPDATE BLOCK COUNT 9 782G LDX 0 JLINK0 7 78G6 ERN 1 4 9 78_Q SMO FXPMDR 16 79FB STO 1 EXCHANGE [DOUBLE BUFFERING 9 79_2 SMO FXPMDR 18 7=DL STOZ JTRA+3-1(1) [ZEROISE RECORD POINTER 9 7=Y= SMO FXPMDR 17 7?CW LDX 6 JTRA+4-1(1) [NEW RECORD ADDRESS 9 7?XG LDN 1 MT3-MT0 9 7#C6 SMO FXPMDR 10 7#WQ ADX 1 JBUNCHBASE 8 7*BB BRN (1) 4 7*W2 MT6 4 7B*L # 19 7BT= # ROUTINE TO OUTPUT A BLOCK OF LP IMAGES TO A UDAS DEVICE. 20 7C#W # THIS ROUTINE IS MOVED TO A POSITION ABOVE (HIGH ADDRESS END 18 7CSG # OF) THE BUNCHING ROUTINE AND IS ENTERED BY THIS LATTER 13 7D#6 # ROUTINE WHEN A BLOCK BECOMES FULL. 4 7DRQ # 5 7F?B XDAPERI 9 7FR2 SMO FXPMDR 20 7G=L STO 2 JPDLINK2 [SAVE X2 AROUND THE DA TRANSFER 9 7GQ= XDAP SMO FXPMDR 9 7H9W LDX 6 JMTPTR 16 7HPG XBUS JBUSY 6,XBUS [LOOP WHILE BUSY 15 7J96 ... JPMFAIL 6,XF [J IF FAIL 16 7JNQ BRN XDAOK [J IF TRNSFR OK 7 7K8B XF LDN 5 1 9 7KN2 SMO FXPM1DUMP 19 7L7L NGS 5 11 [SET FAIL FLAG FOR K4PMDUMP 9 7LM= XFAIL SMO FXPMDR 19 7M6W LDX 5 JVARCRUPT [VARIABLE CORE OVERWRITTEN ? 15 7MLG BPZ 5 XDAF [J IF NOT SO 18 7N66 LDX 5 K2PMCRABS [RESTORE VARIABLE CORE 8 7NKQ ADX 5 FXPM2 8 7P5B CALL 6 (5) 17 7PK2 XDAF PMOVE PMDUMP,FXPM1,4 [EXIT TO FAIL ROUTINE 9 7Q4L XDAOK SMO FXPMDR 9 7QJ= LDX 2 JMTRW1 7 7R3W SLL 2 5 16 7RHG BPZ 2 XOP [J IF OPERABLE 20 7S36 CALL 3 / [DATUMISE FOR THE ^FIX^ MESSAGE 9 7SGQ BRN XFIXDISC 13 7T2B XFIXM 18,18H _*UNIT FIX_* 5 7TG2 XFIXDISC 7 7T_L ADN 3 1 21 7WF= CALL 7 (JCONOUT) [PRINT ^UNIT N FIX^ ON THE CONSOLE 20 7WYW SMO FXPM1DUMP [PICK UP ADDRESS OF THE CONSOLE'S 20 7XDG LDX 2 10 [EBA BIT FROM COMMUNICATION AREA 20 7XY6 SRL 23 15 [X2 = BIT POSITION WITHIN WORD 20 7YCQ SRL 3 9 [X3 = WORD DISPLACEMENT IN EBA 8 7YXB LDCT 7 #400 8 7_C2 BZE 2 XF1 7 7_WL SMO 2 7 82B= SRL 7 0 17 82TW XF1 ORS 7 EBA(3) [UNSET THE EBA BIT 9 83*G ERS 7 EBA(3) 9 83T6 SMO FXPMDR 20 84#Q LDX 2 JMTPTR [PICK UP DA DEVICE'S DL POINTER 18 84SB XF2 JENG 2,XF3 [J IF DA UNIT NOW ENGAGED 19 85#2 LDX 5 7 [DA DEVICE IS STILL OFFLINE 19 85RL ANDX 5 EBA(3) [SO CHECK FOR CONSOLE INPUT 19 86?= BZE 5 XF2 [J IF NO CONSOLE INPUT EITHER 19 86QW LDN 5 1 [CONSOLE INPUT BUTTON PRESSED 9 87=G SMO FXPM1DUMP 21 87Q6 STO 5 11 [SO SET ^ABORT^ FLAG FOR XK4PMDUMP 19 889Q BRN XFAIL [AND JOIN THE CLEAN-UP PATH 9 88PB XF3 SMO FXPMDR 9 8992 LDX 2 JMTPTR 9 89NL SMO FXPMDR 10 8=8= LDN 3 JMTPTR-CPPTR 18 8=MW GPERI 2,3,NC [REPEAT THE PREVIOUS PERI 16 8?7G BRN XDAP [AND TRY AGAIN 9 8?M6 XOP SMO FXPMDR 9 8#6Q LDX 2 BLKSDMPD 9 8#LB SMO FXPM1DUMP 7 8*62 LDN 5 2 8 8*KL SBN 5 A1 21 8B5= DATUMBLK 2,5 [CONVERT BLOCK NUMBER TO HARDWARE FOR 2 8BJW 19 8C4G BZE 1 XFK [J IF ADDRESS OUT OF RANGE 8 8CJ6 BZE 2 XFOK 7 8D3Q XFK LDN 2 2 17 8DHB SMO FXPM1DUMP [SET ^FILE FULL^ FLAG 16 8F32 STO 2 11 [FOR XK4PMDUMP 19 8FGL BRN XFAIL [AND JOIN THE CLEAN-UP PATH 9 8G2= XFOK SMO FXPMDR 9 8GFW LDX 2 JMTPTR 8 8G_G LDN 6 512 10 8HF6 DCA 2,STO,6,COUNT 7 8HL# ... LDN 6 1 16 8HRG ... DCA 2,DLA,6,MODE [SET WRITE MODE 10 8HYQ DCA 2,STO,1,DTSA 9 8JDB SMO FXPMDR 9 8JY2 LDX 1 EXCHANGE 9 8KCL SMO FXPMDR 9 8KX= LDX 6 JTRA+3(1) 10 8LBW DCA 2,STO,6,CTSA 9 8LWG SMO FXPMDR 10 8MB6 LDN 3 JMTPTR-CPPTR 9 8MTQ GPERI 2,3,NC 7 8N*B LDN 6 4 9 8NT2 SMO FXPMDR 17 8P#L ADS 6 BLKSDMPD [ UPDATE BLOCK COUNT 9 8PS= LDX 0 JLINK0 7 8Q?W ERN 1 4 9 8QRG SMO FXPMDR 17 8R?6 STO 1 EXCHANGE [ DOUBLE BUFFERING 9 8RQQ SMO FXPMDR 18 8S=B STOZ JTRA+3-1(1) [ZEROISE RECORD POINTER 9 8SQ2 SMO FXPMDR 17 8T9L LDX 6 JTRA+4-1(1) [NEW RECORD ADDRESS 9 8TP= LDN 1 MT3-MT0 9 8W8W SMO FXPMDR 10 8WNG ADX 1 JBUNCHBASE 9 8X86 SMO FXPMDR 15 8XMQ LDX 2 JPDLINK2 [RESTORE X2 8 8Y7B BRN (1) 5 8YM2 XDAEND 4 8_6L # 15 8_L= # S/R TO CHECK WHETHER GIVEN DEVICE ENGAGED 12 925W # X3 - PTR TO THE DEVICE RECORD 4 92KG # 5 9356 XCHENG 8 93JQ LINT 3,6 9 944B DVS 5 TWEN4(1) 7 94J2 LDX 7 5 7 953L LDX 2 6 7 95H= SLL 6 9 7 962W SRL 56 9 8 96GG LDCT 5 #400 8 9726 BZE 7 XUN 7 97FQ SMO 7 7 97_B SRL 5 0 9 98F2 XUN ANDX 5 EBA(2) 17 98YL BZE 5 (0) [EXIT 0 IF NOT ENG, 16 99D= EXIT 0 1 [EXIT 1 IF ENG. 4 99XW # 15 9=CG # ROUTINE TO TRNSFR BLOCK TO-FROM UDAS DEVICE 7 9=X6 # X0-LINK 7 9?BQ # X4-MODE 7 9?WB # X5-COUNT 8 9#B2 # X6-CORE ADDR 8 9#TL # X7-B-S ADDR 4 9**= # 9 9*SW XDATR STO 0 WLINK(1) 9 9B#G SMO FXPMDR 9 9BS6 LDX 2 JMTPTR 10 9C?Q DCA 2,DLA,4,MODE 10 9CRB DCA 2,STO,5,COUNT 10 9D?2 DCA 2,STO,6,CTSA 10 9DQL DCA 2,STO,7,DTSA 9 9F== SMO FXPMDR 10 9FPW LDN 3 JMTPTR-CPPTR 9 9G9G GPERI 2,3,NC 9 9GP6 LDX 0 WLINK(1) 7 9H8Q EXIT 0 0 4 9HNB # 4 9J82 # 13 9JML # ROUTINE TO TEST LAST PERI'S REPLY 13 9K7= # AND DO SOMETHING ABOUT IT IF REQ'D 4 9KLW # 9 9L6G TEST STO 0 STORE(1) 9 9LL6 X9 SMO FXPMDR 9 9M5Q LDX 4 JMTPTR 8 9MKB X91 JBUSY 4,X91 16 9N52 ... JPMFAIL 4,XDFAIL [J IF FAIL 9 9NJL SMO FXPMDR 9 9P4= LDX 4 JMTRW1 7 9PHW SLL 4 5 8 9Q3G BPZ 4 X92 8 9QH6 CALL 0 XFIX 8 9R2Q BRN X9 9 9RGB X92 LDX 0 STORE(1) 7 9S22 EXIT 0 0 4 9SFL # 4 9S_= # 17 9TDW # ROUTINE TO OUTPUT 'FIX' MESSAGE TO OPS' CONSOLE 9 9TYG # AND OTHER THINGS 4 9WD6 # 9 9WXQ XFIX STO 0 WLINK(1) 9 9XCB SMO FXPMDR 9 9XX2 LDX 6 JMTGEOG 9 9YBL CALL 7 (JGNO1) 10 9YW= STO 5 MESSK+2(1) 9 9_*W LDN 3 MESSK(1) 17 9_TG CALL 7 (JCONOUT) [OUTPUT 'FIX' MESSAGE 9 =2*6 X21DA SMO FXPMDR 9 =2SQ LDX 3 JMTPTR 9 =3#B JENG 3,X22DA 18 =3S2 CALL 0 XCHENG [TEST CONSOLE ENGAGE BIT 19 =4?L BRN X21DA [J IF CONSOLE ISN'T ENGAGED 9 =4R= LDXC 4 FXPM1DUMP 7 =5=W BCS / 8 =5QG STO 4 FXPM1 11 =6=6 PMOVE PMDUMPDA,FXPM1,1 9 =6PQ X22DA SMO FXPMDR 10 =79B LDN 2 JMTPTR-CPPTR 9 =7P2 GPERI 3,2,NC 9 =88L LDX 0 WLINK(1) 7 =8N= EXIT 0 0 4 =97W # 4 =9MG # 14 ==76 # CODING TO DUMP GEORGE3 TO MAG. TAPE 4 ==LQ # 6 =?6B XK1PMDUMP 8 =?L2 CALL 0 XINIT 4 =#5L # 19 =#=S ... LDX 0 FXPM1 [SET UP FXPM1DUMP IN CASE OF 20 =#D2 ... STO 0 FXPM1DUMP [MT FAIL WHILE WRITING 1ST BLOCK 17 =#K= LDX 3 XBUFF(1) [ADDRESS OF MT BUFFER 4 =*4W # 10 =*JG # WRITE IDENTITY SUBFILE 4 =B46 # 10 =BHQ LDN 5 POSTDUMP(1) 20 =C3B CALL 0 SENSTART ['POSTDUMP' START OF S/F SENTINEL 8 =CH2 LDN 4 10 15 =D2L STO 4 0(3) [STORE HDDR 7 =DG= STO 3 4 7 =D_W ADN 3 1 17 =FFG LDN 2 IDENTITY [MOVE IDENTITY INTO 16 =F_6 CALL 0 XIDENT [MT BUFFER AREA 7 =GDQ LDX 3 4 18 =GYB ADN 3 3 [MOVE TIME OF RUN INTO 16 =HD2 CALL 0 XIDENT [MT BUFFER AREA 7 =HXL LDX 3 4 18 =JC= ADN 3 5 [MOVE DATE OF RUN INTO 16 =JWW CALL 0 XIDENT [MT BUFFER AREA 21 =KBG LDX 3 4 [RESET X3=START ADDRESS OF MT BUFFER 7 =KW6 ADN 3 7 17 =L*Q LDN 2 POSTDUMP(1) [MOVE 'POSTDUMP' INTO 16 =LTB CALL 0 XIDENT [MT BUFFER AREA 7 =M*2 LDX 3 4 8 =MSL STOZ 9(3) 8 =N#= LDN 2 10 15 =NRW CALL 0 WRITE [WRITE BLOCK 19 =P?G LDN 7 2(1) [ADDR FOR BUNCHING ROUTINE 9 =PR6 CALL 0 PREDUMP 9 =Q=Q LDN 6 MT4(1) 17 =QQB MOVE 6 MT6-MT4 [MOVE MT PERI ROUTINE 8 =R=2 LDX 0 FXPM1 9 =RPL STO 0 FXPM1DUMP 9 =S9= ADN 0 MT4-MT0+2 9 =SNW ADN 0 MT6-MT4 8 =T8G STO 0 FXPM1 9 =TN6 BRN (JPMSEG) 4 =W7Q # 20 =WMB # ON B/S, USING THE AREA BUFFDUMP. IT THEN COPIES THE CURRENT 20 =X72 # MT BUFFER FROM THE END OF FIXED STORE INTO THE GSCAN BUFFER 21 =XLL # AND CHANGES THE CORE ADDRESSES IN THE CONTROL AREAS ACCORDINGLY 4 =Y6= # 6 =YKW XK2PMDUMP 8 =_5G CALL 0 XINIT 17 =_K6 PMBSADD GEO,1,MTSZE(1),GSCANBUFF,SCANDUMP(1),AUTO 8 ?24Q LDX 1 FXPM1 16 ?2JB PMBSADD GEO,1,MTSZE(1),JTRABUFF,TRADUMP(1) 4 ?342 # 17 ?3HL # CHECK LAST MT TRANSFER AND MOVE CURRENT MT BUFFER 4 ?43= # 9 ?4GW M2 SMO FXPMDR 9 ?52G LDX 4 JMTPTR 15 ?5G6 M2MT JBUSY 4,M2MT [LOOP IF BUSY 10 ?5_Q ... JPMFAIL 4,XK4PMDUMP 9 ?6FB LDXC 4 FXPM1DUMP 15 ?6_2 BCS X2DA [J IF DA DUMP 9 ?7DL M21MT SMO FXPMDR 9 ?7Y= LDX 1 EXCHANGE 9 ?8CW SMO FXPMDR 10 ?8XG LDX 4 JTRA+4-1(1) 9 ?9C6 LDX 5 GSCANBUFF 20 ?9WQ MOVE 4 0 [MOVE CONTENTS OF CURRENT BUFFER 9 ?=BB SMO FXPMDR 10 ?=W2 STO 5 JTRA+4-1(1) 7 ??*L ERN 1 4 9 ??T= LDX 5 JTRABUFF 9 ?##W SMO FXPMDR 10 ?#SG STO 5 JTRA+4-1(1) 9 ?*#6 CALL 7 (JPRINT1) 9 ?*RQ BRN (JPMSEG) 9 ?B?B X2DA SMO FXPMDR 9 ?BR2 LDX 4 JMTRW1 7 ?C=L SLL 4 5 8 ?CQ= BPZ 4 M21MT 8 ?D9W CALL 0 XFIX 8 ?DPG BRN M2 4 ?F96 # 15 ?FNQ # ENTRY POINT TO FINISH DUMP TO TAPE OR DISC 4 ?G8B # 6 ?GN2 XK3PMDUMP 8 ?H7L CALL 0 XINIT 9 ?HM= M3 SMO FXPMDR 9 ?J6W LDX 4 JMTPTR 15 ?JLG M3MT JBUSY 4,M3MT [LOOP IF BUSY 10 ?K66 ... JPMFAIL 4,XK4PMDUMP 9 ?KKQ LDXC 4 FXPM1DUMP 17 ?L5B BCS M3DA [J IF DUMPING TO DA 9 ?LK2 SMO FXPMDR 9 ?M4L LDX 1 EXCHANGE 9 ?MJ= SMO FXPMDR 10 ?N3W LDX 5 JTRA+3-1(1) 18 ?NHG BZE 5 M4 [J IF NO RECORDS IN BLOCK 9 ?P36 SMO FXPMDR 9 ?PGQ LDX 7 JTRA+3(1) 21 ?Q2B ADX 7 5 [X7 -> FIRST FREE WORD IN THE BLOCK 8 ?QG2 SMO FXPM1 8 ?Q_L TXL 5 SIX 16 ?RF= BCC M3MT1 [J IF LENGTH OK 7 ?RYW ADN 5 4 9 ?SDG SMO FXPMDR 9 ?SY6 STO 5 JTRA+2(1) 8 ?TCQ SMO FXPM1 16 ?TXB LDN 6 XLASREC [FILL UP THE SPACE 2 ?WC2 7 ?WWL MOVE 6 4 7 ?XB= ADN 7 4 19 ?XTW M3MT1 SMO 7 [INSERT A ZERO RECORD HEADER 20 ?Y*G STOZ 0 [AT THE END OF THE LAST RECORD 7 ?YT6 LDN 3 1 20 ?_#Q SMO FXPMDR [AND UPDATE THE BLOCK WORD COUNT 9 ?_SB ADS 3 JTRA+2(1) 9 #2#2 SMO FXPMDR 9 #2RL LDX 3 JMTPTR 10 #3?= DCA 3,STO,5,COUNT 9 #3QW SMO FXPMDR 10 #4=G LDX 4 JTRA+4-1(1) 10 #4Q6 DCA 3,STO,4,CTSA 9 #59Q SMO FXPMDR 10 #5PB LDN 2 JMTPTR-CPPTR 18 #692 GPERI 3,2,NC [WRITE LAST DATA BLOCK 9 #6NL M5 SMO FXPMDR 9 #78= LDX 4 JMTPTR 15 #7MW M5MT JBUSY 4,M5MT [LOOP IF BUSY 10 #87G ... JPMFAIL 4,XK4PMDUMP 7 #8M6 LDN 5 1 9 #96Q M4 SMO FXPMDR 9 #9LB ADX 5 BLKSDMPD 8 #=62 SMO FXPM1 9 #=KL STO 5 XBLOCNT 8 #?5= SMO FXPM1 8 #?JW LDX 3 XBUFF 8 ##4G LDX 1 FXPM1 19 ##J6 CALL 0 SENTEND [END OF 'POSTDUMP' SENTINEL 9 #*3Q CALL 0 TRAILER 8 #*HB MEND SMO FXPM1 16 #B32 LDN 3 MESSI ['END OF PM DUMP' 9 #BGL CALL 7 (JCONOUT) 9 #C2= LDXC 4 FXPM1DUMP 7 #CFW BCS / 8 #C_G STO 4 FXPM1 9 #DF6 BRN (JPMSEG) 9 #DYQ M3DA SMO FXPMDR 9 #FDB LDX 4 JMTRW1 7 #FY2 SLL 4 5 8 #GCL BPZ 4 M31DA 8 #GX= CALL 0 XFIX 8 #HBW BRN M3 9 #HWG M31DA SMO FXPMDR 9 #JB6 LDX 3 EXCHANGE 9 #JTQ SMO FXPMDR 9 #K*B LDX 4 JTRA+2(3) 18 #KT2 BZE 4 XDA4 [J IF NO RECS IN LAST BLK 14 #L#L TXL 4 MTSZE(1) [BLK FULL? 14 #LS= BCC M4DA [J IF YES 9 #M?W SMO FXPMDR 9 #MRG LDX 2 JTRA+3(3) 7 #N?6 ADX 2 4 19 #NQQ STOZ 0(2) [INSERT A ZERO RECORD HEADER 9 #Q9L M4DA SMO FXPMDR 9 #QP= LDX 4 BLKSDMPD 9 #R8W SMO FXPM1DUMP 7 #RNG LDN 5 2 8 #S86 SBN 5 A1 8 #SMQ DATUMBLK 4,5 8 #T7B BZE 1 M3N 8 #TM2 BZE 2 XNG 7 #W6L M3N LDN 4 2 17 #WL= SMO FXPM1DUMP [SET ^FILE FULL^ FLAG 15 #X5W STO 4 11 [FOR K4PMDUMP 19 #XKG BRN XK4PMDUMP [AND JOIN THE CLEAN-UP PATH 7 #Y56 XNG LDN 4 1 7 #YJQ LDX 7 1 8 #_4B LDX 1 FXPM1 8 #_J2 LDN 5 512 9 *23L SMO FXPMDR 9 *2H= LDX 6 JTRA+3(3) 17 *32W CALL 0 XDATR [WRITE THE BLK AWAY 7 *3GG LDN 6 4 9 *426 SMO FXPMDR 9 *4FQ ADS 6 BLKSDMPD 8 *4_B CALL 0 TEST 9 *5F2 XDA4 SMO FXPM1DUMP 21 *5YL LDX 7 8 [PICK UP DATUMISED H/W ADDR OF FIC 9 *6D= SMO FXPMDR 9 *6XW LDX 6 JTRA+3 8 *7CG LDN 5 512 7 *7X6 LDN 4 0 16 *8BQ CALL 0 XDATR [READ FIC BLK 8 *8WB CALL 0 TEST 20 *9B2 LDX 3 6 [CORE ADDRESS OF THE FIC BLOCK 19 *9TL LDX 4 1(3) [PICK UP THE BLOCK CHECKSUM 20 *=*= BZE 4 XDA5 [J IF NO CHECKSUMMING REQUIRED 17 *=SW SUM 2 128 [CHECKSUM THE BLOCK 17 *?#G BNZ 2 XDFAIL [J IF CHECKSUM FAIL 9 *?S6 XDA5 SMO FXPMDR 9 *#?Q LDX 4 BLKSDMPD 21 *#RB SRL 4 2 [CONVERT BLOCKS WRITTEN TO BUCKETS 9 **?2 STO 6 STORE(1) 9 **QL SMO FXPM1DUMP 20 *B== ADX 6 9 [X6 -> CORE ADDRESS OF OUR FIC 7 *BPW SMO 6 19 *C9G STO 4 12 [STORE THE END OF FILE MARKER 17 *CP6 LDX 0 K30+K70 [PICK UP TODAY'S DATE 7 *D8Q SMO 6 18 *DNB STO 0 8 [AND RECORD IT IN THE FIC 7 *F82 SMO 6 19 *FML STOZ 9 [SET A ZERO RETENTION PERIOD 21 *G7= LDX 3 STORE(1) [PICK UP CORE ADDRESS OF THE BLOCK 19 *GLW LDX 6 1(3) [PICK UP THE BLOCK CHECKSUM 20 *H6G BZE 6 XDA6 [J IF NO CHECKSUMMING REQUIRED 19 *HL6 STOZ 1(3) [ZEROISE THE CHECKSUM WORD 19 *J5Q SUM 2 128 [CALCULATE THE NEW CHECKSUM 19 *JKB NGS 2 1(3) [AND STORE IT IN THE RED TAPE 9 *K52 XDA6 LDX 6 STORE(1) 10 *KJL STO 4 XBLOCNT(1) 7 *L4= LDN 4 1 16 *LHW CALL 0 XDATR [WRITE IT AWAY 8 *M3G CALL 0 TEST 9 *MH6 SMO FXPM1DUMP 7 *N2Q LDN 5 2 8 *NGB SBN 5 A1 7 *P22 LDN 4 0 18 *PFL DATUMBLK 4,5 [DATUMISE IDENTITY BLK 8 *P_= BZE 1 M3N 8 *QDW BNZ 2 M3N 8 *QYG LDN 5 512 7 *RD6 LDX 7 1 8 *RXQ LDX 1 FXPM1 17 *SCB CALL 0 XDATR [READ IDENTITY BLK 8 *SX2 CALL 0 TEST 10 *TBL LDX 4 XBLOCNT(1) 7 *TW= SMO 6 19 *W*W STO 4 9 [STORE THE END OF FILE MARKER 7 *WTG LDN 4 1 16 *X*6 CALL 0 XDATR [WRITE IT BACK 8 *XSQ CALL 0 TEST 8 *Y#B BRN MEND 4 *YS2 # 4 *_?L # 12 *_R= # ENTRY POINT 4 IS USED WHEN: 4 B2=W # 15 B2QG # 1) A DA/MT FAIL OCCURS DURING THE DUMP 13 B3=6 # 2) THE DISC FILE BECOMES FULL 20 B3PQ # 3) THE DA UNIT BECOMES INOPERABLE AND THE OPERATORS ABORT 18 B49B # THE DUMP BY INPUTTING A MESSAGE ON THE CONSOLE 4 B4P2 # 5 B58L XDFAIL 7 B5N= LDN 4 1 10 B67W STO 4 XFAILFLAG(1) 8 B6MG BRN M6A 6 B776 XK4PMDUMP 8 B7LQ CALL 0 XINIT 10 B86B STOZ XFAILFLAG(1) 9 B8L2 M6A SMO FXPMDR 9 B95L LDX 4 JTRA+4-1 18 B9K= TXL 4 ENDFIX [TEST AND J IF MT BUFFERS 17 B=4W BCS M6 [ARE IN FIXED STORE 17 B=JG PMBSADD GEO,0,MTSZE(1),GSCANBUFF,SCANDUMP(1),AUTO 8 B?46 LDX 1 FXPM1 16 B?HQ PMBSADD GEO,0,MTSZE(1),JTRABUFF,TRADUMP(1) 8 B#3B LDX 1 FXPM1 10 B#H2 M6 LDX 3 XFAILFLAG(1) 21 B*2L BNZ 3 M8 [J IF DISC FAIL DETECTED IN THIS SEGM 9 B*G= LDXC 3 FXPM1DUMP 15 B*_W BCS M7 [J IF DA DUMP 9 BBFG LDX 3 XBUFF(1) 17 BB_6 BRN MT1 [J TO MT FAIL ROUTINE 15 BCDQ M7 STO 3 FXPM1 [RESET FXPM1 19 BCYB SMO FXPM1 [PICK UP THE ^FAILURE^ FLAG 19 BDD2 LDX 3 11 [LEFT BY THE DA PERI ROUTINE 18 BDXL BNG 3 M8 [J IF THE DISC HAS FAILED 7 BFC= SBN 3 1 21 BFWW BZE 3 M9 [J IF THE OPERATORS ABORTED THE DUMP 20 BGBG PMOVE PMDUMPDA,FXPM1,4 [OTHERWISE THE DISC FILE IS FULL 20 BGW6 M8 PMOVE PMDUMPDA,FXPM1,3 [GO AND PRINT FAIL INFORMATION 16 BH*Q M9 PMOVE PMDUMPDA,FXPM1,1 [RESTART THE DUMP 4 BHTB # 4 BJ*2 # 13 BJSL # CODING TO DUMP PM TO UDAS DEVICE 4 BK#= # 6 BKRW XK5PMDUMP 8 BL?G CALL 0 XINIT 19 BLR6 LDN 2 PMCOMM(1) [MOVE THE CHARACTER STRING: 7 BM=Q LDX 3 1 18 BMQB MOVE 2 2 [^PMDACOMM^ TO [FXPM1] 8 BN=2 LDN 3 2(1) 21 BNPL LDN 2 JDUMPFD(1) [MOVE THE REMAINING 10 WORDS OF THE 21 BP9= MOVE 2 10 [COMMUNICATION AREA TO [FXPM1] + 2 9 BPNW LDX 3 XBUFF(1) 8 BQ8G LDN 4 10 15 BQN6 STO 4 0(3) [STORE HDDR 7 BR7Q STO 3 4 7 BRMB ADN 3 1 17 BS72 LDN 2 IDENTITY [MOVE IDENTITY INTO 16 BSLL CALL 0 XIDENT [MT BUFFER AREA 7 BT6= LDX 3 4 18 BTKW ADN 3 3 [MOVE TIME OF RUN INTO 16 BW5G CALL 0 XIDENT [MT BUFFER AREA 7 BWK6 LDX 3 4 18 BX4Q ADN 3 5 [MOVE DATE OF RUN INTO 16 BXJB CALL 0 XIDENT [MT BUFFER AREA 21 BY42 LDX 3 4 [RESET X3=START ADDRESS OF MT BUFFER 7 BYHL ADN 3 7 17 B_3= LDN 2 POSTDUMP(1) [MOVE 'POSTDUMP' INTO 16 B_GW CALL 0 XIDENT [MT BUFFER AREA 7 C22G LDX 3 4 20 C28Q ... LDX 6 5(1) [NUMBER OF CYLINDERS IN THE FILE 18 C2C2 ... MPY 6 6(1) [* BLOCKS PER CYLINDER 20 C2K= ... SRL 7 2 [/ 4 = NO OF BUCKETS IN THE FILE 21 C2RG ... STO 7 9(3) [STORE INITIAL EOF TAG IN IDENT BLOCK 7 C2_Q LDX 4 1 8 C3FB SBN 4 A1-2 7 C3_2 LDN 5 0 8 C4DL DATUMBLK 5,4 20 C4Y= BZE 1 M3N [ABORT THE DUMP IF DISC FILE FULL 8 C5CW BNZ 2 M3N 16 C5XG LDN 4 1 [SET WRITE MODE 17 C6C6 LDN 5 512 [AND THE PERI COUNT 20 C6WQ LDX 7 1 [SET THE DEVICE TRANSFER ADDRESS 17 C7BB LDX 1 FXPM1 [RESTORE OUR DATUM 21 C7W2 LDX 6 XBUFF(1) [AND SET THE CORE TRANSFER ADDRESS 19 C8*L CALL 0 XDATR [WRITE THE FIRST BLOCK AWAY 20 C8T= CALL 0 TEST [CHECK THAT THE TRANSFER WAS OK 7 C9#W LDN 4 4 20 C9SG STO 4 XBLOCNT(1) [INITIAL COUNT OF BLOCKS WRITTEN 7 C=#6 LDX 7 1 8 C=RQ ADN 7 13 9 C??B CALL 0 PREDUMP 8 C?R2 LDCT 6 #400 8 C#=L ORX 6 FXPM1 9 C#Q= STO 6 FXPM1DUMP 8 C*9W LDX 6 FXPM1 10 C*PG ADN 6 MT4-MT0+13 11 CB96 ADN 6 XDAEND-XDAPERI 8 CBNQ STO 6 FXPM1 10 CC8B LDN 6 XDAPERI(1) 11 CCN2 MOVE 6 XDAEND-XDAPERI 21 CD7L LDX 2 7 [PICK UP CORE ADDRESS DAPERI ROUTINE 21 CDM= ADN 2 XFIXM+3-XDAPERI [ADD DISPLACEMENT OF ^FIX^ MESSAGE 9 CF6W SMO FXPMDR 21 CFLG LDX 6 JMTGEOG [PICK UP DA DEVICE'S UNIT NUMBER AND 20 CG66 CALL 7 (JGNO1) [STORE IT IN THE MESSAGE IN CASE 20 CGKQ STO 5 0(2) [OF INOPERABILITY DURING THE DUMP 9 CH5B BRN (JPMSEG) 4 CHK2 # 17 CJ4L #ALT JPMDSIZE=MT4-MT0+2+((13+XDAEND-XDAPERI)>(MT6-MT4)) 4 CJJ= # 16 CK3W MTBUF [MAG TAPE BUFFERS 4 CKHG #END 6 ____ ...617424120008