8 22FL #OPT K0PMDUMPDA=0 11 22_= #LIS K0PMDUMPDA>K0POST>K0ALLGEO 15 23DW #SEG PMDUMPDA85 [M.C.D. MANN 4 23YG # 4 24D6 # 18 24XQ # THIS SEGMENT ASKS THE OPERATOR FOR A UDAS DEVICE ONTO 18 25CB # WHICH THE POSTMORTEM SHOULD BE DUMPED.IT CHECKS THE 18 25X2 # VALIDITY OF REPLY AND FINDS THE PROPER PLACE FOR DUMP 7 26BL # TO START 4 26W= # 4 27*W # 20 27TG # A COMMUNICATION AREA, WHICH IS USED THROUGHOUT THE DUMP, IS 20 28*6 # INITIALISED TO CONTAIN INFORMATION DESCRIBING THE DA FILE TO 19 28SQ # WHICH THE DUMP IS BEING TAKEN. THIS AREA IS INITIALLY 19 29#B # LOCATED JDUMPFD (1024) WORDS ABOVE THE ADDRESS POINTED TO 20 29S2 # BY FXPM1 AND IS SUBSEQUENTLY MOVED DOWN CORE BY K5PMDUMP TO 19 2=?L # [FXPM1], THE LOCATION OF WHICH IS REMEMBERED IN FXPM1DUMP. 4 2=R= # 4 2?=W # 14 2?QG # THE FORMAT OF THIS AREA IS AS FOLLOWS: 4 2#=6 # 4 2#PQ # 13 2*9B # FXPM1DUMP -> WORD 0 : 4HPMDA 13 2*P2 # 1 : 4HCOMM 19 2B8L # JDUMPFD -> 2 : TYPE / SUBTYPE OF THE DA FILE 19 2BN= # 3 : ADDRESS OF THE FIRST CYLINDER 15 2C7W # OF THE FILE 20 2CMG # 4 : DISPLACEMENT OF THE FIRST BLOCK OF 20 2D76 # THE FILE WITHIN THE FIRST CYLINDER 20 2DLQ # 5 : NUMBER OF CYLINDERS IN THE FILE 19 2F6B # 6 : NUMBER OF BLOCKS PER CYLINDER 20 2FL2 # 7 : STORAGE UNIT SERIAL NUMBER (SUSN) 20 2G5L # UFIC -> 8 : DATUMISED HARDWARE ADDRESS OF THE 19 2GK= # FILE'S FILE INDEX CELL (FIC) 20 2H4W # 9 : WORD ADDRESS OF THE START OF THE 19 2HJG # FIC WITHIN ITS HARDWARE BLOCK 21 2J46 # 10 : CODED LOCATION OF THE ENGAGE BUTTON 19 2JHQ # BIT FOR THE OPERATORS' CONSOLE 20 2K3B # 11 : FLAG WORD USED TO RECORD THE CAUSE 19 2KH2 # OF ANY FAILURE DURING THE DUMP 4 2L2L # 19 2LG= # THIS CAN CONTAIN THE FOLLOWING 21 2L_W # VALUES IMMEDIATELY AFTER A FAILURE: 4 2MFG # 18 2M_6 # -1 : THE DISC HAS FAILED 21 2NDQ # 1 : THE DISC HAS BECOME INOPERABLE 19 2NYB # AND THE OPERATOR, AFTER 19 2PD2 # RECEIVING A ^UNIT N FIX^ 19 2PXL # REQUEST, HAS INITIATED 20 2QC= # THE INPUT OF A MESSAGE ON 16 2QWW # THE CONSOLE 21 2RBG # 2 : THE DISC FILE HAS BECOME FULL 4 2RW6 # 4 2S*Q # 20 2STB # NOTE THAT WORDS 2 TO 7 INCLUSIVE OF THIS AREA COMPRISE A DUMMY 20 2T*2 # FILE DESCRIPTION FOR USE BY THE DATUM FIXED CORE SEGMENT WHEN 17 2TSL # CONVERTING BLOCK ADDRESSES TO HARDWARE FORMAT IN 19 2W#= # PREPARATION FOR A DISC TRANSFER. THIS FILE DESCRIPTION 20 2WRW # IS ANALOGOUS TO A BSTB/CCTABLE BLOCK : SEE THE DATUMADD AND 9 2X?G # DATUMBLK MACROS. 4 2XR6 # 4 2Y=Q # 9 2YQB 8HPMDUMPDA 9 2_=2 # ENTRY POINT TABLE 4 2_PL # 13 329= SEGENTRY K1PMDUMPDA,XK1PMDUMPDA 13 32NW SEGENTRY K2PMDUMPDA,XK2PMDUMPDA 13 338G SEGENTRY K3PMDUMPDA,XK3PMDUMPDA 13 33N6 SEGENTRY K4PMDUMPDA,XK4PMDUMPDA 4 347Q # 4 34MB # 16 3572 #DEF UFIC=JDUMPFD+6 [FILE INDEX CELL 15 35LL MESSA 27,27H_*SUSN,OP'S NO.,FILENAME?_* 17 366= MESSB 35,35H_*PLEASE LOAD ON UNIT _* 13 36KW MESSC 19,19H_*INVALID MESSAGE_* 16 375G MESSD 34,34H_* NOT ON _* 15 37K6 MESSE 30,30H_*DISC/FILE FORMAT ERROR _* 12 384Q MESSF 18,18H_*UNIT FIX_* 13 38JB MESSG 19,19H _*UNIT FAIL_* 14 3942 MESSH 32,32H_*TRACK * BLOCK * 9 39HL MESSI 12,12H_* * 14 3=3= MESSK 26,26H_* NOT ON _* 12 3=GW MESSL 18,18H_*DISC FILE FULL_* 15 3?2G XSUSN +0,+0 [TO HOLD SUSN 15 3?G6 XOPSNO +0 [OP'S NUMBER 16 3?_Q XFNAME 12H [HOLDS FILENAME 18 3#FB XOPSNOD 4H [OP'S NUMBER IN DECIMAL 5 3#_2 XTEMP 7 3*DL #REP 7 7 3*Y= 0 8 3BCW XALPH #73,#41 7 3BXG X512 512 7 3CC6 SEVEN 7,8 7 3CWQ THIRTEEN 13 7 3DBB TWEN4 24 19 3DW2 XTWBIT 0 [HOLDS T/W ENGAGE BIT POS. 19 3F*L XDABIT 0 [HOLDS DA ENGAGE BIT POS. 18 3FT= XSTYP 0 [SUBTYPE FOR UDAS DEVICES 17 3G#W XLINK 0 [LINK FOR S/R CALLS 14 3GSG XFLINK 0 [ DTTO 7 3H#6 XLINKA 0 19 3HRQ XLASTC #37777777 [INDICATES LAST CELL IN FIC 20 3J?B WORDPART 0 [DISPLACEMENT WITHIN DISC BLOCK 16 3JR2 X3 0 [DUMP FOR ACC3 7 3K=L SPACE #20 9 3KQ= SPACES #20202020 7 3L9W XCOMMA #34 7 3LPG XLINK2 0 7 3M96 XLINK3 0 7 3MNQ XLINK4 0 7 3N8B XLINK5 0 7 3NN2 XLINK6 0 8 3P7L XDA 4HDA00 8 3PM= XMT 4HMT00 7 3Q6W X111 111 8 3QLG X7S #77777 4 3R66 # 4 3RKQ # 19 3S5B # SUBROUTINE TO CHECK WHETHER A DEVICE IS ENGAGED GIVEN THE 19 3SK2 # UNIT'S ^ENGAGE BIT POSITION^ IN X5 (SEE THE XUNS ROUTINE) 4 3T4L # 14 3TJ= # EXIT 0 : THE UNIT ISN'T ENGAGED 13 3W3W # EXIT 1 : THE UNIT IS ENGAGED 4 3WHG # 5 3X36 XCHENG 7 3XGQ LDN 4 0 7 3Y2B LDCH 2 5 7 3YG2 SLL 45 9 8 3Y_L LDCT 3 #400 8 3_F= BZE 4 XCHN 7 3_YW SMO 4 7 42DG SRL 3 0 9 42Y6 XCHN ANDX 3 EBA(2) 17 43CQ BZE 3 (0) [EXIT 0 IF NOT ENG, 16 43XB EXIT 0 1 [EXIT 1 IF ENG. 4 44C2 # 19 44WL # SUBROUTINE TO CLEAR AN ENGAGE BIT GIVEN A POINTER TO THE 11 45B= # UNIT'S DEVICE LIST IN X3 4 45TW # 17 46*G # RETURNS THE UNIT'S ^ENGAGE BIT POSITION^ IN X6 AS: 4 46T6 # 17 47#Q # BITS 0 - 8 : BIT POSITION WITHIN EBA WORD 17 47SB # BITS 9 - 23 : NUMBER OF WORD WITHIN THE EBA 4 48#2 # 8 48RL XUNS LINT 3,6 9 49?= DVS 5 TWEN4(1) 7 49QW LDX 7 5 7 4==G LDX 2 6 7 4=Q6 SLL 6 9 7 4?9Q SRL 56 9 8 4?PB LDCT 5 #400 8 4#92 BZE 7 XUN 7 4#NL SMO 7 7 4*8= SRL 5 0 9 4*MW XUN ORS 5 EBA(2) 16 4B7G ERS 5 EBA(2) [UNSET THE BIT 7 4BM6 EXIT 0 0 15 4C6Q # S/R TO CONVERT DECIMAL POINTED AT BY X3 13 4CLB # TO BINARY IN X4 AND X5.COUNT IN X7 5 4D62 XDECBIN 7 4DKL LDN 4 0 7 4F5= LDN 5 0 8 4FJW XDB CDB 4 0(3) 16 4G4G BCS XFEX [J IF NON NUMERIC 7 4GJ6 BCHX 3 / 8 4H3Q BCT 7 XDB 7 4HHB EXIT 0 0 9 4J32 # DA-PERI READ S/R 5 4JGL XDAPERI 15 4K2= STO 0 XLINK(1) [STORE LINK 9 4KFW STO 5 XLINK6(1) 5 4K_G XDAGAIN 15 4LF6 LDN 6 0 [READ MODE 9 4LYQ SMO FXPMDR 20 4MDB LDX 2 JMTPTR [PICK UP DA DEVICE LIST POINTER 5 4MY2 XDABUSY 19 4NCL JBUSY 2,XDABUSY [WAIT IF THE DEVICE IS BUSY 15 4NX= DCA 2,DLA,6,MODE [DEPOSIT MODE 8 4PBW LDN 6 128 16 4PWG DCA 2,STO,6,COUNT [DEPOSIT COUNT 10 4QB6 LDN 6 JDUMPFD+8(1) 16 4QTQ DCA 2,STO,6,CTSA [BUFFER ADDRESS 16 4R*B DCA 2,STO,5,DTSA [HARDWARE ADDRESS 9 4RT2 SMO FXPMDR 17 4S#L LDN 3 JMTPTR-CPPTR [GET 'BLOCK' START 16 4SS= GPERI 2,3,NC [START IT ROLLING 5 4T?W XDABUS 20 4TRG JBUSY 2,XDABUS [WAIT FOR THE TRANSFER TO FINISH 9 4W?6 SMO FXPMDR 16 4WQQ LDX 6 JMTRW1 [LOAD REPLY WORD 19 4X=B SRL 6 18 [LOOK AT THE TOP CHARACTER 16 4XQ2 BZE 6 XDAOK [J IF TRANSFER OK 7 4Y9L ANDN 6 1 19 4YP= BZE 6 XK3PMDUMPDA [J IF NOT DISENGAGED-I.E.FAIL 10 4_8W LDX 4 XOPSNOD(1) 18 4_NG STO 4 MESSF+3(1) [STORE OP'S NO.IN MESSAGE 9 5286 LDN 3 MESSF(1) 15 52MQ CALL 7 (JCONOUT) [UNIT NN FIX 20 537B CALL 0 XTWDA [WAIT FOR INPUT OR DEVICE ENGAGED 21 53M2 BRN XGEOG [J IF VALID INPUT RECEIVED ON CONSOLE 18 546L LDX 5 XLINK6(1) [DEVICE IS NOW ENGAGED 15 54L= BRN XDAGAIN [SO TRY AGAIN 9 555W XDAOK LDX 0 XLINK(1) 7 55KG EXIT 0 0 4 5656 # 19 56JQ # SUBROUTINE TO INFORM OPERATORS ABOUT A TRANSFER FAILURE 19 574B # OUTPUTS CURRENT BLOCK,TRACK AND PERI CONTROL AREA IN OCTAL 4 57J2 # 6 583L XK3PMDUMPDA 8 58H= LDX 1 FXPM1 9 592W STO 0 XFLINK(1) 9 59GG SMO FXPMDR 20 5=26 LDX 6 JMTGEOG [PICK UP DA DEVICE'S UNIT NUMBER 19 5=FQ CALL 7 (JGNO1) [CONVERT IT TO CHARACTER FORM 21 5=_B STO 5 MESSG+3(1) [AND INSERT IT IN THE ^FAIL^ MESSAGE 9 5?F2 LDN 3 MESSG(1) 15 5?YL CALL 7 (JCONOUT) [UNIT NN FAIL 9 5#D= SMO FXPMDR 19 5#XW LDX 4 JMTRW1 [LOAD THE DA PERI REPLY WORD 9 5*CG SMO FXPMDR 19 5*X6 LDX 2 JMTPTR [PICK UP THE DISC DL POINTER 18 5BBQ LTYPE 2,5 [FIND OUT THE UNIT'S TYPE 7 5BWB SBN 5 6 7 5CB2 LDN 7 0 15 5CTL BZE 5 XEDS8 [J IF EDS8 7 5D*= SBN 5 7 15 5DSW BNZ 5 XNOTFD [J IF NOT FSD 19 5F#G LPROP 2,7 [FIND OUT THE PROPERTY CODE 7 5FS6 SRL 7 6 19 5G?Q ANDN 7 1 [AND CALCULATE THE SUB-TYPE 7 5GRB ADN 7 3 8 5H?2 BRN XEDS8 5 5HQL XNOTFD 8 5J== SBN 5 13 17 5JPW BZE 5 XEDS3060 [J IF EDS30 OR EDS60 19 5K9G CALL 0 XEXEC [IMPOSSIBLE: TAKE AN EXEC PM 5 5KP6 XEDS3060 7 5L8Q LDN 7 1 5 5LNB XEDS8 21 5M82 STO 7 0 [COMPOSITE DEVICE TYPE IS NOW IN X0 9 5MML SMO FXPMDR 9 5N7= LDX 3 JMTPTR 14 5NLW DCA 3,LDX,5,DTSA [GET H/W ADDR 16 5P6G BNZ 0 NEDS8 [J IF NOT EDS8 7 5PL6 SLC 56 6 7 5Q5Q SLL 5 2 7 5QKB SLC 56 4 15 5R52 ANDN 6 #377 [TRACK TO X6 7 5RJL SLL 5 2 7 5S4= SLL 45 4 7 5SHW SLL 5 3 7 5T3G SRL 45 4 15 5TH6 SRL 5 17 [BLOCK TO X5 8 5W2Q BRN XW2 7 5WGB NEDS8 SBN 0 1 16 5X22 BZE 0 XE3OFA [J IF EDS 30/60 7 5XFL SBN 0 2 15 5X_= BZE 0 XE3OFA [J IF FDS 2A 17 5YDW SRL 56 39 [TRACK IN X6 FOR 2B 9 5YYG SMO FXPMDR 9 5_D6 LDX 3 JMTPTR 9 5_XQ DCA 3,LDX,4,DTSA 9 62CB ANDX 4 X7S(1) 7 62X2 LDEX 5 4 7 63BL SRL 4 9 15 63W= MPA 4 X111(1) [BLOCK IN X5 8 64*W BRN XW2 17 64TG XE3OFA [EDS30/60 OR FDS 2A 7 65*6 LDN 6 0 8 65SQ SLC 56 12 8 66#B SRL 5 12 17 66S2 XW2 CALL 2 XOCT [BLOCK NO.TO OCTAL 17 67?L STO 7 MESSH+7(1) [& STORE IN MESSAGE 10 67R= STO 0 MESSH+8(1) 7 68=W LDX 5 6 16 68QG CALL 2 XOCT [TRACK TO OCTAL 16 69=6 STO 0 MESSH+4(1) [& INTO MESSAGE 9 69PQ LDN 3 MESSH(1) 9 6=9B CALL 7 (JCONOUT) 9 6=P2 SMO FXPMDR 9 6?8L LDX 3 JMTPTR 9 6?N= DCA 3,LDX,5,MODE 8 6#7W CALL 2 XOCT 10 6#MG STO 7 MESSI+2(1) 10 6*76 STO 0 MESSI+3(1) 9 6*LQ LDN 3 MESSI(1) 9 6B6B CALL 7 (JCONOUT) 9 6BL2 SMO FXPMDR 9 6C5L LDX 5 JMTRW1 8 6CK= CALL 2 XOCT 10 6D4W STO 7 MESSI+2(1) 10 6DJG STO 0 MESSI+3(1) 9 6F46 LDN 3 MESSI(1) 9 6FHQ CALL 7 (JCONOUT) 9 6G3B SMO FXPMDR 9 6GH2 LDX 3 JMTPTR 10 6H2L DCA 3,LDX,5,COUNT 8 6HG= CALL 2 XOCT 10 6H_W STO 7 MESSI+2(1) 10 6JFG STO 0 MESSI+3(1) 9 6J_6 LDN 3 MESSI(1) 9 6KDQ CALL 7 (JCONOUT) 9 6KYB SMO FXPMDR 9 6LD2 LDX 3 JMTPTR 9 6LXL DCA 3,LDX,5,CTSA 8 6MC= CALL 2 XOCT 10 6MWW STO 7 MESSI+2(1) 10 6NBG STO 0 MESSI+3(1) 9 6NW6 LDN 3 MESSI(1) 9 6P*Q CALL 7 (JCONOUT) 9 6PTB SMO FXPMDR 9 6Q*2 LDX 3 JMTPTR 9 6QSL DCA 3,LDX,5,DTSA 8 6R#= CALL 2 XOCT 10 6RRW STO 7 MESSI+2(1) 10 6S?G STO 0 MESSI+3(1) 9 6SR6 LDN 3 MESSI(1) 9 6T=Q CALL 7 (JCONOUT) 8 6TQB BRN TOUT 14 6W=2 # S/R TO CONVERT BINARY NO. IN X5 INTO 9 6WPL # OCTAL IN X7 AND X0 7 6X9= XOCT LDN 6 8 7 6XNW XOCT1 LDN 4 0 7 6Y8G SLL 45 3 7 6YN6 SLL 70 6 7 6_7Q DCH 4 0 8 6_MB BCT 6 XOCT1 7 7272 EXIT 2 0 4 72LL # 15 736= # ROUTINE TO EXTRACT A SPECIFIED PARAMETER 18 73KW # FROM A GIVEN FIELD OF PARAMETERS ADDRESSED BY JCCBUF 4 745G # 15 74K6 # ON ENTRY X5 CONTAINS NUMBER OF PARAMETER 18 754Q # X6 CONTAINS TOTAL NUMBER OF CHARS IN FIELD 4 75JB # 20 7642 # ON EXIT X3 CONTAINS MODIFIER POINTING TO FIRST CHARACTER 14 76HL # OF REQUIRED PARAMETER 19 773= # X7 CONTAINS NUMBER OF CHARACTERS IN PARAMETER 14 77GW # IF ZERO NULL PARAMETER 4 782G # 7 78G6 # LINK X0 4 78_Q # 11 79FB # ACCS 1,2,4,5 UNCHANGED 4 79_2 # 17 7=DL PMPAR STO 5 XLINK4(1) [ PARAMETER NUMBER 16 7=Y= STO 6 XLINK2(1) [ CHARS IN FIELD 9 7?CW STOZ XLINK5(1) 7 7?XG LDN 7 1 16 7#C6 PAR6 LDCH 6 0(3) [ GET NEXT CHAR 9 7#WQ TXU 6 SPACE(1) 15 7*BB BCC PAR [ J IF SPACE 9 7*W2 STO 3 XLINK3(1) 9 7B*L PAR3 TXU 6 XCOMMA(1) 15 7BT= BCC PAR1 [ J IF COMMA 18 7C#W ADS 7 XLINK5(1) [ INCREMENT CHAR. COUNT 7 7CSG BCHX 3 / 9 7D#6 PAR5 SBS 7 XLINK2(1) 9 7DRQ LDX 6 XLINK2(1) 20 7F?B BZE 6 PAR2 [ ALL FIELD EXAMINED ? J IF YES 16 7FR2 LDCH 6 0(3) [ LOAD NEXT CHAR 16 7G=L BRN PAR3 [ LOAD NEXT CHAR 9 7GQ= PAR1 SBS 7 XLINK4(1) 9 7H9W LDX 6 XLINK4(1) 18 7HPG BZE 6 PAR4 [ J IF PARAMETER WANTED 21 7J96 STOZ XLINK5(1) [ INITIALISE CHARS. IN THIS PARAMETER 7 7JNQ BCHX 3 / 9 7K8B STO 3 XLINK3(1) 20 7KN2 BRN PAR5 [ COUNT CHARS. IN THIS PARAMETER 7 7L7L PAR BCHX 3 / 9 7LM= SBS 7 XLINK2(1) 9 7M6W LDX 6 XLINK2(1) 19 7MLG BNZ 6 PAR6 [ J IF MORE CHARS TO CHECK 9 7N66 PAR2 SBS 7 XLINK4(1) 9 7NKQ LDX 6 XLINK4(1) 18 7P5B BZE 6 PAR4 [ J IF PARAMETER WANTED 9 7PK2 STOZ XLINK3(1) 9 7Q4L STOZ XLINK5(1) 18 7QJ= PAR4 LDX 7 XLINK5(1) [ SET UP EXIT CONDITIONS 9 7R3W LDX 3 XLINK3(1) 15 7RHG EXIT 0 0 [ OUT AGAIN. 4 7S36 # 4 7SGQ # 18 7T2B # S/R TO CHECK VALIDITY OF PARAMETERS IN CONSOLE INPUT 13 7TG2 # ENTRY X3=START ADDR. OF MESSAGE 14 7T_L # X5=NO. OF CHARS IN MESSAGE 13 7WF= # EXIT ALL EXCEPT X1 UNDEFINED 8 7WYW # LINK X0 11 7XDG # EX 0 INVALID MESSAGE 10 7XY6 # EX 1 MESSAGE OK 4 7YCQ # 9 7YXB VALID STO 0 XLINK(1) 8 7_C2 STO 3 X3(1) 9 7_WL LDX 7 SPACES(1) 9 82B= STO 7 XSUSN(1) 9 82TW LDN 6 XSUSN(1) 10 83*G LDN 7 XSUSN+1(1) 7 83T6 MOVE 6 5 7 84#Q LDX 2 5 14 84SB LDN 4 1 [PAR. ONE 16 85#2 VNXT LDX 3 X3(1) [START OF MESSAGE 16 85RL LDX 5 4 [NO. OF PARAMETER 19 86?= LDX 6 2 [TOTAL NO OF CHARS IN MESSAGE 18 86QW CALL 0 PMPAR [GET PAR. INDICATED BY X5 17 87=G BZE 7 XFEX [NULL?,SO FAIL EXIT 7 87Q6 SBN 4 1 18 889Q BZE 4 XPAR1 [J TO VALIDATE FIRST PAR 7 88PB SBN 4 1 18 8992 BZE 4 XPAR2 [J TO VALIDATE 2ND PAR 7 89NL SBN 4 1 15 8=8= BZE 4 XPAR3 [J TO 3RD PAR 17 8=MW CALL 0 XEXEC [SHOULD NEVER HAPPEN 8 8?7G XPAR3 LDCH 4 0(3) 9 8?M6 TXL 4 XALPH(1) 15 8#6Q BCC XFEX [J TO FAIL EX 10 8#LB TXL 4 XALPH+1(1) 19 8*62 BCS XFEX [IF 1ST CHAR NOT ALPHABETIC 10 8*KL TXL 7 THIRTEEN(1) 16 8B5= BCS XLOK [J IF LENGTH OK 7 8BJW LDX 4 7 7 8C4G LDN 6 0 8 8CJ6 SPC LDCH 0 0(3) 7 8D3Q ADN 6 1 9 8DHB TXU 0 SPACE(1) 8 8F32 BCC SPC1 7 8FGL LDX 5 6 8 8G2= SPC1 BCT 4 SPC 10 8GFW TXL 5 THIRTEEN(1) 8 8G_G BCC XFEX 7 8HF6 LDX 7 5 15 8HYQ LDX 3 XLINK3(1) [RESTORE X3 9 8JDB XLOK LDN 4 XFNAME(1) 7 8JY2 SMO 7 16 8KCL MVCH 3 0 [STORE FILENAME 9 8KX= LDX 0 XLINK(1) 14 8LBW EXIT 0 1 [OK EXIT 8 8LWG XPAR1 LDCH 4 0(3) 7 8MB6 SBN 4 8 16 8MTQ BNG 4 XPAR1A [J IF OCTAL DIGIT 7 8N*B SBN 7 3 21 8NT2 BPZ 7 XFEX [J IF MORE THAN 4 CHARACTERS: ERROR 7 8P#L ADN 7 3 7 8PS= LDN 5 0 7 8Q?W LDN 4 5 7 8QRG SMO 7 17 8R?6 MVCH 3 0 [MOVE INTO TOP OF X5 9 8RQQ TXU 5 XMT(1) 17 8S=B BCC XMTDUMP [IF MT,GO TO MT DUMP 9 8SQ2 TXU 5 XDA(1) 15 8T9L BCS XFEX [J IF NOT DA 7 8TP= SBN 2 3 18 8W8W BNG 2 XFEX [ERROR IF THERE ARE ... 20 8WNG BZE 2 XFEX [ ... NO MORE CHARACTERS LEFT 8 8X86 LDX 3 X3(1) 16 8XMQ SLC 3 2 [ELSE WE'LL MAKE 15 8Y7B ADN 3 3 [DA DISAPPEAR 16 8YM2 SRC 3 2 [FROM THE INPUT 8 8_6L STO 3 X3(1) 16 8_L= LDN 4 1 [MESSAGE WITH FEW 15 925W BRN VNXT [DEFT STROKES 9 92KG XPAR1A TXL 7 SEVEN(1) 16 9356 BCC XFEX [J IF > 6 DIGITS 9 93JQ LDN 4 XSUSN(1) 7 944B SMO 7 7 94J2 MVCH 3 0 9 953L LDX 3 XLINK3(1) 7 95H= LDN 6 0 8 962W NXCH LDCH 4 0(3) 10 96GG TXL 4 SEVEN+1(1) 16 9726 BCC XFEX [J IF NOT OCTAL 7 97FQ SLL 6 3 7 97_B ADX 6 4 7 98F2 BCHX 3 / 8 98YL BCT 7 NXCH 7 99D= LDN 4 2 18 99XW STO 6 JDUMPFD+5(1) [SAVE SUSN FOR LATER USE 8 9=CG BRN VNXT 9 9=X6 XFEX LDX 0 XLINK(1) 15 9?BQ EXIT 0 0 [FAIL EXIT 10 9?WB XPAR2 LDN 4 XOPSNOD(1) 7 9#B2 SMO 7 7 9#TL MVCH 3 0 9 9**= LDX 3 XLINK3(1) 19 9*SW CALL 0 XDECBIN [CONVERT OP'S NO TO BINARY 9 9B#G TXL 5 X512(1) 15 9BS6 BCC XFEX [J IF < 512 15 9C?Q STO 5 XOPSNO(1) [STORE IF OK 9 9CRB SMO FXPMDR 9 9D?2 STO 5 JMTGEOG 7 9DQL LDN 4 3 8 9F== BRN VNXT 4 9FPW # 4 9G9G # 19 9GP6 # S/R TO TAKE EXEC PM IN UNLIKELY CASE GEORGE PM GOES FUNNY 7 9H8Q XEXEC '142 7 # 4 9HNB # 18 9J82 # MT DISCOVERED IN INPUT.WE ARE NOT WANTED AND SO CALL 9 9JML # PMDUMPMT ON STAGE. 5 9K7= XMTDUMP 20 9KLW LDX 6 2 [^MT^ FOUND AS FIRST PARAMETER 7 9L6G LDN 5 2 8 9LL6 LDX 3 X3(1) 19 9M5Q CALL 0 PMPAR [LOOK AT THE SECOND PARAMETER 15 9MKB BZE 7 XMTD1 [NULL : OK 8 9N52 LDCH 4 0(3) 7 9NJL SLL 4 6 7 9P4= STO 4 5 7 9PHW BCHX 3 / 18 9Q3G LDCH 4 0(3) [IF THE SECOND PARAMETER 7 9QH6 ORX 4 5 8 9R2Q SBN 4 #4441 19 9RGB BZE 4 XFEX [IS ^DA^ : NOT HAVING THAT! 5 9S22 XMTD1 9 9SFL LDN 4 64+128 9 9S_= SMO FXPMDR 9 9TDW ERS 4 ALLPOST 10 9TYG PMOVE PMDUMPMT,FXPM1,2 4 9WD6 # 17 9WXQ # S/R TO EITHER ENGAGE DEVICE OR TO GET NEW INPUT 13 9XCB # EXIT ALL EXCEPT X1 UNDEFINED 9 9XX2 XTWDA STO 0 XLINKA(1) 9 9YBL T30 LDX 5 XTWBIT(1) 15 9YW= CALL 0 XCHENG [T/W ENGAGED? 14 9_*W BRN XNOTW [J IF NOT 17 9_TG ERS 3 EBA(2) [CLEAR T/W ENG.BIT 15 =2*6 TIN1 CALL 7 (JCTWIN) [GET INPUT 8 =2SQ BRN TIN1 15 =3#B ANDN 6 #777 [GET NO. OF 15 =3S2 NGX 5 6 [CHARS READ 8 =4?L ADN 5 64 18 =4R= BZE 5 T30 [J IF SPACES OR NOTHING 17 =5=W LDN 3 XSUSN(1) [SAVE PREVIOUS PARS 14 =5QG LDN 4 XTEMP(1) [IN CASE 16 =6=6 MOVE 3 7 [INPUT IS RUBBISH 9 =6PQ LDN 3 FCINBUF 17 =79B CALL 0 VALID [VALIDATE THE INPUT 14 =7P2 BRN XGARB [RUBBISH! 9 =88L LDX 0 XLINKA(1) 7 =8N= EXIT 0 0 17 =97W XGARB LDN 3 XTEMP(1) [REHABILITATE THE OLD 13 =9MG LDN 4 XSUSN(1) [PARS 7 ==76 MOVE 3 7 9 ==LQ LDN 3 MESSC(1) 17 =?6B CALL 7 (JCONOUT) ['INVALID MESSAGE' 15 =?L2 BRN T30 [SEARCH AGAIN 9 =#5L XNOTW LDX 5 XDABIT(1) 16 =#K= CALL 0 XCHENG [DEVICE ENGAGED? 14 =*4W BRN T30 [J IF NOT 9 =*JG LDX 0 XLINKA(1) 7 =B46 EXIT 0 1 4 =BHQ # 4 =C3B # 6 =CH2 XK1PMDUMPDA 8 =D2L LDX 1 FXPM1 9 =DG= TOUT LDN 3 MESSA(1) 20 =D_W CALL 7 (JCONOUT) [ASK FOR 'SUSN,OP'S NO,F/NAME?' 15 =FFG TIN CALL 7 (JCTWIN) [GET REPLY 15 =F_6 BRN TIN [TRY AGAIN 17 =GDQ XK2PNT ANDN 6 #777 [ISOLATE CHAR COUNT 7 =GYB NGX 5 6 16 =HD2 ADN 5 64 [NO.OF CHARS READ 8 =HXL BZE 5 TOUT 17 =JC= LDN 3 FCINBUF [START ADDR.OF INPUT 16 =JWW CALL 0 VALID [VALIDATE REPLY 14 =KBG BRN TOUT [RUBBISH 9 =KW6 LDX 3 JCTWPTR 17 =L*Q CALL 0 XUNS [UNSET ENG.BIT IF SET 18 =LTB STO 6 XTWBIT(1) [STORE ENG.BIT POSITION 19 =M*2 XGEOG LDX 6 XOPSNO(1) [GET UNIT'S GEOGRAPHIC NUMBER 17 =MSL FINDPEREC 2,APGEOG,6 [FIND ITS DEV.RECORD 8 =N#= BNG 2 TOUT 15 =NRW LTYPE 2,5 [GET THE TYPE 15 =P?G SBN 5 6 [IS IT EDS8? 7 =PR6 LDN 7 0 14 =Q=Q BZE 5 XUDAS [J IF YES 14 =QQB SBN 5 7 [OR FDS? 14 =R=2 BNZ 5 NOTFD [J IF NOT 14 =RPL LPROP 2,7 [ELSE GET 16 =S9= SRL 7 6 [PROPERTY CODE 15 =SNW ANDN 7 1 [& CALCULATE 14 =T8G ADN 7 3 [SUBTYPE 8 =TN6 BRN XUDAS 15 =W7Q NOTFD SBN 5 13 [EDS30/60? 14 =WMB BNZ 5 TOUT [J IF NOT 7 =X72 LDN 7 1 18 =XLL XUDAS STO 7 XSTYP(1) [REMEMBER THE SUB-TYPE 9 =Y6= SMO FXPMDR 16 =YKW LDX 5 JMTPTR [IS IT 1ST TIME? 14 =_5G BZE 5 TSTOR [J IF YES 7 =_K6 TXU 5 2 19 ?24Q BCC XSAME [J IF SAME DEV. AS LAST TIME 9 ?2JB SMO FXPMDR 16 ?342 LDN 4 JMTREC [UNDUMP PREVIOUS 15 ?3HL MOVE 4 K53-K50 [DEV. RECORD 9 ?43= TSTOR SMO FXPMDR 17 ?4GW STO 2 JMTPTR [STORE DEV. REC. PTR 9 ?52G SMO FXPMDR 9 ?5G6 LDN 4 JMTREC 7 ?5_Q LDX 3 2 18 ?6FB MOVE 3 K53-K50 [SAVE NEW DEV. REC.PTR 15 ?6_2 XSAME JENG 2,XENG [J IF ENGAGED 19 ?7DL LDX 3 2 [DEVICE LIST POINTER FOR XUNS 20 ?7Y= CALL 0 XUNS [ELSE UNSET ENG. BIT IN EBA AREA 18 ?8CW STO 6 XDABIT(1) [STORE THE BIT'S POSN. 17 ?8XG LDCT 6 #400 [PRINT THE MESSAGE: 10 ?9C6 ORN 6 MESSB+4(1) 19 ?9WQ LDN 5 XSUSN(1) [^PLEASE LOAD CSN ON UNIT N^ 7 ?=BB MVCH 5 6 10 ?=W2 LDN 5 XOPSNOD(1) 8 ??*L LDCT 6 #200 10 ??T= ORN 6 MESSB+8(1) 7 ?##W MVCH 5 4 9 ?#SG LDN 3 MESSB(1) 9 ?*#6 CALL 7 (JCONOUT) 8 ?*RQ CALL 0 XTWDA 8 ?B?B BRN XGEOG 14 ?BR2 # DEVICE ENGAGED AT LAST - OR AT FIRST 16 ?C=L XENG LDCT 5 #60 [SET UP DUMMY FD 16 ?CQ= ADX 5 XSTYP(1) [AREA- SO THAT WE 15 ?D9W STO 5 JDUMPFD(1) [CAN READ SCA 10 ?DPG STOZ JDUMPFD+1(1) 10 ?F96 STOZ JDUMPFD+2(1) 8 ?FNQ LDN 5 100 10 ?G8B STO 5 JDUMPFD+3(1) 8 ?GN2 LDN 5 80 10 ?H7L STO 5 JDUMPFD+4(1) 7 ?HM= LDN 0 1 10 ?J6W LDN 1 JDUMPFD-A1(1) 20 ?JLG DATUMBLK 0,1 [CONVERT BLOCK ADDR TO H/W ADDR 8 ?K66 BZE 1 XNG1 8 ?KKQ BZE 2 XNG 16 ?L5B XNG1 CALL 0 XEXEC [GO FOR EXEC PM 7 ?LK2 XNG LDX 5 1 17 ?M4L LDX 1 FXPM1 [RELOAD SEG MODIFIER 20 ?MJ= STO 5 UFIC(1) [SAVE DATUMISED FIC H/W ADDRESS 14 ?N3W CALL 0 XDAPERI [READ SCA 20 ?NHG LDN 5 JDUMPFD+8(1) [CORE ADDRESS OF THE FIC BLOCK 17 ?P36 SUM 4 128 [CHECKSUM THE BLOCK 7 ?PGQ LDN 7 1 19 ?Q2B BNZ 4 XERR [J IF CHECKSUM FAIL ON READ 19 ?QG2 LDX 5 JDUMPFD+13(1) [1ST WORD OF CONTROL HEADER 7 ?Q_L SLL 5 6 7 ?RF= SRL 5 6 10 ?RYW TXU 5 JDUMPFD+5(1) 16 ?SDG BCS XNSUSN [J IF WRONG SUSN 10 ?SY6 LDX 5 JDUMPFD+21(1) 18 ?TCQ STO 5 JDUMPFD+4(1) [STO NO OF BLKS/CYLINDER 18 ?TXB LDX 2 1 [SET MODIFIER FOR FIC'S 10 ?WC2 ADN 2 JDUMPFD+27 8 ?WWL XNXCEL LDX 7 0(2) 17 ?XB= BNG 7 XFER [J IF FILE NOT FOUND 17 ?XTW LDX 4 2(2) [PICK UP THE FILENAME 8 ?Y*G LDX 5 3(2) 19 ?YT6 LDX 6 4(2) [FROM THIS FILE INDEX CELL 9 ?_#Q TXU 4 XFNAME(1) 21 ?_SB TXU 5 XFNAME+1(1) [COMPARE THE NAME WITH FILENAME REQUI 10 #2#2 TXU 6 XFNAME+2(1) 19 #2RL BCC XFOK [J IF WE'VE FOUND OUR FILE 9 #3?= TXU 7 XLASTC(1) 16 #3QW BCC XFER [FILE NOT FOUND 17 #4=G BNZ 7 XNXBL [NXT CELL ELSEWHERE 8 #4Q6 ADN 2 17 15 #59Q BRN XNXCEL [TRY AGAIN 8 #5PB XNXBL LDN 4 128 15 #692 LDN 3 JDUMPFD-A1(1) [ADDR OF FD 18 #6NL LDX 5 7 [WORD ADDR WITHIN OUR BLK 7 #78= LDN 6 0 15 #7MW SLL 67 17 [X6=BLK ADDR 15 #87G SLC 7 7 [X7=WORD ADDR 20 #8M6 STO 7 WORDPART(1) [STORE WORD ADDRESS WITHIN BLOCK 19 #96Q DATUMADD 5,3,4 [GET H/W ADDR OF THE BLOCK 8 #9LB BNZ 1 XN2 8 #=62 BZE 2 XN2 16 #=KL CALL 0 XEXEC [GO GET EXEC PM 17 #?5= XN2 LDX 5 1 [DATUMISED H/W ADDR 8 #?JW LDX 1 FXPM1 15 ##4G STO 5 UFIC(1) [ & STORE IT 16 ##J6 CALL 0 XDAPERI [READ THE BLOCK 20 #*3Q LDN 5 JDUMPFD+8(1) [CORE ADDRESS OF THE FIC BLOCK 17 #*HB SUM 4 128 [CHECKSUM THE BLOCK 7 #B32 LDN 7 1 19 #BGL BNZ 4 XERR [J IF CHECKSUM FAIL ON READ 7 #C2= LDX 2 1 9 #CFW ADN 2 JDUMPFD+8 20 #C_G ADX 2 WORDPART(1) [POINT TO THE FIC BLOCK IN CORE 17 #DF6 BRN XNXCEL [& TRY OUR LUCK AGAIN 7 #DYQ XFOK LDX 5 2 20 #FDB SBN 5 JDUMPFD+8 [SAVE THE WORD ADDRESS OF OUR FIC 21 #FY2 SBX 5 1 [WITHIN ITS DISC BLOCK FOR USE WHEN 20 #GCL STO 5 UFIC+1(1) [UPDATING THE FIC AFTER THE DUMP 8 #K*B LDX 5 7(2) 7 #KT2 SLL 5 2 7 #L#L LDN 7 3 19 #LF4 ... BNG 5 XERR [J IF SYSTEM FILE SPECIFIED 8 #LKG ... LDX 4 10(2) 8 #LPY ... ANDN 4 #77 7 #LWB ... SBN 4 4 7 #M2S ... LDN 7 2 20 #M7= ... BNZ 4 XERR [J IF FILE NOT 4 BLOCK BUCKETS 7 #M?W SLL 5 7 7 #MRG SRL 5 9 7 #N?6 SBN 5 1 7 #NQQ LDN 7 4 16 #P=B BNZ 5 XERR [MORE THAN 1 FAC 21 #PQ2 LDX 4 1(2) [PICK UP POINTER TO FILE AREA CELL 18 #Q9L STO 4 5 [AND SAVE IT FOR DATUMADD 8 #QP= SLL 4 17 20 #R8W SRL 4 17 [ISOLATE THE WORD DISPLACEMENT 21 #RNG STO 4 WORDPART(1) [WITHIN BLOCK AND SAVE FOR LATER USE 8 #S86 LDN 4 128 10 #SMQ LDN 3 JDUMPFD-A1(1) 18 #T7B DATUMADD 5,3,4 [DATUMISE FAC WORD ADDR 8 #TM2 BNZ 1 XN3 8 #W6L BZE 2 XN3 15 #WL= CALL 0 XEXEC [GET EXEC PM 7 #X5W XN3 LDX 5 1 8 #XKG LDX 1 FXPM1 16 #Y56 CALL 0 XDAPERI [READ FAC BLOCK 10 #YJQ SMO WORDPART(1) 20 #_4B LDN 2 JDUMPFD+8(1) [CORE ADDRESS OF THE FAC IN X2 8 #_J2 LDX 5 0(2) 7 *23L LDN 7 4 8 *2H= BNZ 5 XERR 8 *32W LDX 5 1(2) 16 *3GG ANDX 5 XLASTC(1) [GET RID OF B0 16 *426 DVS 4 JDUMPFD+4(1) [BLKS/CYLINDER 20 *4FQ STO 4 JDUMPFD+2(1) [STORE DISPL.OF BLK WITHIN CYL. 19 *4_B STO 5 JDUMPFD+1(1) [STORE START CYLINDER ADDR. 19 *5F2 LDX 5 2(2) [BLOCK ADDR OF LAST BLOCK + 1 16 *5YL ANDX 5 XLASTC(1) [GET RID OF B0 7 *6D= SBN 5 1 16 *6XW DVS 4 JDUMPFD+4(1) [LAST CYLINDER 18 *7CG SBX 5 JDUMPFD+1(1) [NO OF CYLS=LAST-FIRST 14 *7X6 STO 5 JDUMPFD+3(1) [STORE IT 17 *8BQ LDX 5 4(2) [STORE BLKS/CYLINDER 16 *8WB STO 5 JDUMPFD+4(1) [FILE IN FD AREA 21 *9B2 LDX 3 JCTWPTR [UNSET THE CENTRAL CONSOLE'S ENGAGE 20 *9TL CALL 0 XUNS [BUTTON BIT AND SAVE ITS POSITION 19 *=*= STO 6 JDUMPFD+8(1) [IN THE COMMUNICATION AREA 18 *=SW STOZ JDUMPFD+9(1) [ZEROISE THE ^FAIL FLAG^ 11 *?#G PMOVE PMDUMP,FXPM1,5 9 *?S6 XNSUSN LDN 4 XSUSN(1) 10 *#?Q LDN 5 MESSK+2(1) 15 *#RB MOVE 4 2 [MOVE IN SUSN 10 **?2 LDX 4 XOPSNOD(1) 16 **QL STO 4 MESSK+6(1) [MOVE IN OP'S NO. 9 *B== LDN 3 MESSK(1) 17 *BPW CALL 7 (JCONOUT) ['......NOT ON ...' 8 *C9G BRN TOUT 9 *CP6 XFER LDN 4 XFNAME(1) 10 *D8Q LDN 5 MESSD+2(1) 20 *DNB MOVE 4 3 [MOVE F/NAME INTO ERROR MESSAGE 9 *F82 LDN 4 XSUSN(1) 10 *FML LDN 5 MESSD+7(1) 16 *G7= MOVE 4 2 [MOVE IN THE SUSN 9 *GLW LDN 3 MESSD(1) 18 *H6G CALL 7 (JCONOUT) ['FILE --- NOT ON ... ' 8 *HL6 BRN TOUT 10 *J5Q XERR LDN 3 MESSE+7(1) 7 *JKB BCHX 3 / 8 *K52 DCH 7 0(3) 9 *KJL LDN 3 MESSE(1) 18 *L4= CALL 7 (JCONOUT) [DISC/FILE FORMAT ERROR N 8 *LHW BRN TOUT 6 *M3G XK2PMDUMPDA 8 *MH6 LDX 1 FXPM1 9 *N2Q SMO FXPMDR 21 *NGB LDX 6 JPCONREPLY [LOAD CONSOLE REPLY FROM LAST PERI 9 *P22 BRN XK2PNT 4 *PFL # 12 *P_= # 'FILE FULL' CONDITION DETECTED 4 *QDW # 6 *QYG XK4PMDUMPDA 8 *RD6 LDX 1 FXPM1 9 *RXQ LDN 3 MESSL(1) 9 *SCB CALL 7 (JCONOUT) 8 *SX2 BRN TOUT 4 *TBL # 4 *TW= #END 6 ____ ...250506270002