PMDUMP85

(George Source)

Macros used: DATUMBLK, DCA, GPERI, IDENTITY, JBUSY, JENG, JPMFAIL, LINT, MEND, PMBSADD, PMDLGET, PMOVE, SEGENTRY, SIX, TEST

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