{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: PMDUMPMT85)}}
====== PMDUMPMT85 ======
(George Source)
**Macros used:** [[george:macro:DCA|DCA]], [[george:macro:DUMP|DUMP]], [[george:macro:FINDPEREC|FINDPEREC]], [[george:macro:GPERI|GPERI]], [[george:macro:JBUSY|JBUSY]], [[george:macro:JENG|JENG]], [[george:macro:JPMFAIL|JPMFAIL]], [[george:macro:JWPR|JWPR]], [[george:macro:LINT|LINT]], [[george:macro:LTYPE|LTYPE]], [[george:macro:MTREAD|MTREAD]], [[george:macro:MTREW|MTREW]], [[george:macro:MTSKIP|MTSKIP]], [[george:macro:ON|ON]], [[george:macro:PMCOUNT|PMCOUNT]], [[george:macro:PMOVE|PMOVE]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:T|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