7 22FL #OPT K0PMFS=0 10 22_= #LIS K0PMFS>K0POST>K0ALLGEO 15 23DW #SEG PMFS85 [M.C.D. MANN 21 23YG # THIS SEGMENT GIVES A POSTMORTEM OF FILE STORE RELEVANT 21 24D6 # ONLY TO THE CURRENT JOB OR,IF THERE IS NO CURRENT JOB, 19 24XQ # THAT RELEVANT ONLY TO THE CURRENT ACTIVITY.ALL 20 25CB # MONITORING FILES OPEN AT SYSTEM BREAK TIME WILL BE 19 25X2 # LISTED AND IF ANY CHAINS OR RINGS ARE FOUND TO BE 20 26BL # BROKEN THEN ALL JOBS WILL BE TREATED IN THE SAME WAY 12 26W= # AS THE CURRENT ONE. 4 27*W # 9 27TG 8HPMFS 4 28*6 # 9 28SQ # ENTRY POINT TABLE 4 29#B # 11 29S2 SEGENTRY K1PMFS,XK1PMFS 4 2=?L # 21 2=R= # TABLE USED BY RESTORE TIME MACRO TO CONTAIN NAMES OF FILES WHICH 13 2?=W # ARE TO BE PRINTED IN FULL BY PMFS 4 2?QG # 9 2#=6 FIXTRA AFRESBS 15 2#PQ XAFRESBS +RESBS [END OF PMFS 20 2*9B FIXTRA FNUMBER [USED FOR REMAINDER WHEN PRINTING 16 2*P2 NUMBER +0 [IN BLOCK FORMAT 8 2B8L FIXTRA JTFCB 9 2BN= TFCB +FILE+FCB 9 2C7W FIXTRA JTRDATUM 19 2CMG PTRDATUM +0 [PTR.TO F.DESC.TABLE FOR B/S 8 2D76 FIXTRA JXFCB 18 2DLQ XFCB +0 [ADDR. OF FILE/FCB BLOCK 9 2DW3 ... FIXTRA JMASK1 9 2F5# ...MASK1 #77777777 9 2F#K ... FIXTRA JXBITAB 15 2FHW ...XBITAB [BIT MAP AREA 5 2FR7 ...#REP 21 7 2G2D ... 0 17 2G9P ...XBITEND [END OF BIT MAP AREA 19 2GF2 ...XJFULLTAB [LIST OF FILES TO BE PRINTED 9 2GN? ... 12HSYSTEM 9 2GXJ ... 12HIDF 19 2H6T ... FIXTRA JFULLTAB [MENDABLE VIA ^PMFILE^ MACRO 5 2HB6 ...#GAP 30 9 2HKC ... FIXTRA JTABEND 19 2HSN ... 0 [ZERO RECORD AT END OF TABLE 9 2HYC ... FIXTRA JBSREC 5 2J46 XBSREC 17 2JHQ #GAP K53-K50 [DEVICE LIST RECORD 8 2K3B +0 5 2K55 ...#SKI G3 4 2K6S ...( 9 2K8H ... FIXTRA JJZDECANT 9 2K== ... BRN ZDECANT2 4 2K?_ ...# 8 2K*N ...RECSW +0 8 2KCC ...PAGES +0 4 2KF6 ...) 9 2KH2 MASK #17777777 9 2L_W MASK2 #77777 19 2MFG MASKCGC #03400000 [CLEAN/GENERAL/COPY MODE MASK 21 2M_6 MJOBDES 4HB5B1 [LANGUAGE CODE - JOB DESCRIPTION FILE 20 2NDQ MONFILE 4HB1B0 [ - MONITORING FILE 20 2NYB MDIR 4HC1 [ - DIRECTORY FILE 19 2PD2 MSYST 4HB1 [ - SYSTEM FILE 18 2PXL MBLKNO +0 [USED TO STORE BLOCK NUM 19 2QC= SUMCORE +0 [CHECKSUM OF BLOCK IN CORE 19 2QWW RESH1 4H : [COLON TO PRECEDE USER NAME 21 2RBG NGEN +0 [GEN NO. - 1 IF DIRECTORY ELSE FGEN 10 2RW6 TFSTACK +FILE+FSTACK 10 2S*Q TFURB +FILE+FURB 10 2STB TFUWB +FILE+FUWB 10 2T2J ...TFURRB +FILE+FURRB 10 2T7Q ...TFURWB +FILE+FURWB 5 2T*2 SPACES 19 2TSL #REPT 3 [USED BY ZDECANT TO STORE 17 2W#= 4H [LOCAL NAME AS SPACES 8 2WRW TWTY +19 8 2X?G X24 +24 8 2XR6 XACT #60 8 2Y=Q XLINK0 +0 8 2YQB XLINK1 +0 8 2_=2 XLINK2 +0 14 34MB XX3 +0 [USED TO 14 3572 XX5 +0 [PRESERVE 14 35LL XX7 +0 [ACCS. 16 366= PREF +0 [LOGICAL FILE NO 20 36KW RBACKPR +0 [ADDR. OF CURRENT ELEMENT ON RING 20 375G SBACKPR +0 [ADDR. OF CURRENT BLOCK ON CHAIN 21 37K6 SYSTDIR +0 [NON-ZERO IF DIRECTORY OF SYSTEM FILE 20 384Q XBACTRING +0 [ADDR. OF ACTRING WORD OF CURRENT 16 38JB [ACTIVITY BLOCK 20 3942 XBFILER +0 [BASE OF AN ACTIVITY'S FILE RING 18 39HL XBLIST +0 [BLOCK LIST MODIFIER WORD 19 3=3= XBRIND +0 [ZBLXPRINT CHAIN BREAK IND 18 3=GW XBSCOMP +0 [B/S COMPARISON MARKER 21 3?2G XCGC +0 [SET NON-ZERO IF FILE OPEN IN ANY OF 18 3?G6 [CLEAN/GENERAL/COPY MODES 13 3?_Q XCOND LDX 1 ALFTP [DATA 8 3#FB LDX 1 AFDTP 17 3#_2 LDN 1 0 [BREAK IN INDEX CHAIN 21 3*DL XCOUNT +0 [COUNT OF ELEMENTS IN FSTACK BLOCK 19 3*Y= XFCBLEN +0 [SET TO NO.OF BLOCKS OF FCB+1 19 3BCW XJOBNO +0 [CURRENT ACTIVITY'S JOB NO. 21 3BXG XNEXTACT +0 [USED BY NEXTACT - CONTAINS ADDR. OF 17 3CC6 [BLOCK ON ACT. RING 17 3CWQ XPRINTED +0 [BLOCKS PRINTED IND. 19 3DBB UFSTACK +0 [ADDR. OF FILE/FSTACK BLOCK 21 3DW2 USER0 +0 [SET IF LOCALNAME OF JFULLTAB ENTRY 0 9 3F*L TEXT0 8HEND OF 13 3FT= TEXT1 20HFILESTORE POSTMORTEM 13 3G#W TEXT2 20HFSTACK BLOCK CORRUPT 12 3GSG TEXT3 20HFGN/LNG= / 12 3H#6 TEXT4 20HNO BLOCKS TO PRINT 18 3HRQ TEXT5 40HTHE FOLLOWING BLOCK IS PRINTED FROM CORE 21 3J?B TEXT6 52HCORE VERSION DIFFERS FROM B/S : B/S VERSION FOLLOWS 9 3JR2 TEXT7 8HBLOCK 19 3K=L TEXT8 44HB/S TRANSFER IMPOSSIBLE-INDEX CHAIN CORRUPT 17 3KQ= TEXT9 40HLOGICAL FILE DOES NOT EXIST 12 3L9W TEXT12 16HMONITORING FILES 17 3LPG TEXT13 36HFULL PRINT OF FILES REQUIRED ENSUES 20 3M96 TEXT14 48HCHAIN/RING BREAK FOUND:FULL FILESTORE PM ENSUES 11 3MDY ...TEXT15 13HBLOCK CORRUPT 4 3MNQ # 20 3N8B # ROUTINE TO GET ADDR. OF NEXT BLOCK ON CHAIN AND VALIDATE ITS 9 3NN2 # FORWARD POINTER 4 3P7L # 9 3PM= # ENTRY X0=LINK 13 3Q6W # SBACKPR=ADDR. OF CURRENT BLOCK 4 3QLG # 15 3R66 # EXIT 0 1 IF POINTERS OF NEXT BLOCK OK. 16 3RKQ # X2 & SBACKPR = ADDR. OF NEXT BLOCK 13 3S5B # EXIT 0 0 IF CHAIN BREAK DETECTED 4 3SK2 # 16 3T4L SEARCH [FORWARD CHAINING 10 3TJ= SMO SBACKPR(1) 18 3W3W LDX 2 FPTR [LOAD ADDR. OF NEXT BLOCK 19 3WHG SEARCHA [TO VALIDATE FPTR OF BLOCK 9 3X36 LDX 3 FPTR(2) 17 3XGQ S3 STO 2 SBACKPR(1) [STORE BLOCK ADDR. 18 3Y2B S2 PMCORES 3,S1 [J IF FORWARD PTR INVALID 13 3YG2 EXIT 0 1 [OK 15 3Y_L S1 EXIT 0 0 [CORRUPTION 4 3_F= # 17 3_YW SEARCHB [BACKWARD CHAINING 10 42DG SMO SBACKPR(1) 18 42Y6 LDX 2 BPTR [LOAD ADDR. OF NEXT BLOCK 18 43CQ SEARCHC [TO VALIDATE FORWARD PTR 9 43XB LDX 3 BPTR(2) 8 44C2 BRN S3 4 44WL # 20 45B= # ROUTINE TO GET ADDR.OF NEXT ELEMENT ON RING AND VALIDATE ITS 9 45TW # FORWARD POINTER 4 46*G # 9 46T6 # ENTRY X0=LINK 14 47#Q # RBACKPR=ADDR. OF CURRENT ELEMENT 4 47SB # 15 48#2 # EXIT 0 1 IF POINTERS OF NEXT ELEMENT OK 17 48RL # X2 & RBACKPR = ADDR. OF NEXT ELEMENT 13 49?= # EXIT 0 0 IF CHAIN BREAK DETECTED 4 49QW # 16 4==G RSEARCH [FORWARD RINGING 10 4=Q6 SMO RBACKPR(1) 19 4?9Q LDX 2 0 [LOAD ADDR. OF NEXT ELEMENT 21 4?PB RSEARCHA [TO VALIDATE FORWARD PTR OF ELEMENT 8 4#92 LDX 3 0(2) 17 4#NL STO 2 RBACKPR(1) [STORE ELEMENT ADDR. 8 4*8= BRN S2 4 4*MW # 20 4B7G # ROUTINE TO GET ADDR. OF NEXT ELEMENT ON ACT. RING AND VALIDATE 19 4BM6 # ITS POINTERS.THIS ROUTINE IS USED EXCLUSIVELY BY ZGETACT. 4 4C6Q # 9 4CLB # ENTRY X0=LINK 14 4D62 # XNEXTACT=ADDR. OF CURRENT ELEMENT 4 4DKL # 15 4F5= # EXIT 1 IF POINTERS OF NEXT ELEMENT OK 17 4FJW # X2 & XNEXTACT = ADDR. OF NEXT ELEMENT 13 4G4G # EXIT 0 IF CHAIN BREAK DETECTED 4 4GJ6 # 16 4H3Q NEXTACT [FORWARD RINGING 10 4HHB SMO XNEXTACT(1) 19 4J32 LDX 2 0 [LOAD ADDR. OF NEXT ELEMENT 8 4JGL LDX 3 1(2) 10 4K2= TXU 3 XNEXTACT(1) 21 4KFW BCS S1 [J IF ELEMENTS BACKWORD PTR CORRUPT 5 4K_G NEXTACTA 8 4LF6 LDX 3 0(2) 17 4LYQ STO 2 XNEXTACT(1) [STORE ELEMENT ADDR. 8 4MDB BRN S2 4 4MY2 # 21 4NCL # THIS ROUTINE IS TO FIND THE BLOQPTR AND EXPECTS 'CALL 3 ' TO BE 12 4NX= # FOLLOWED BY - +BSTB+(?)*#10000 4 4PBW # 9 4PWG # ENTRY X3=LINK 4 4QB6 # 11 4QTQ # EXIT 1 - X1=BLOQPTR 4 4R*B # 5 4RT2 MHUNTIL 9 4S#L LDN 1 BINDEX 9 4SS= LDX 1 FPTR(1) 9 4T?W PMCORES 1,WRONG2 9 4TRG LDX 0 ATYPE(1) 17 4W?6 SBX 0 0(3) [TEST FOR REQ'D BLOCK 17 4WQQ BZE 0 OUT [EXIT IF REQ'D BLOCK 9 4X=B LDX 0 FPTR(1) 9 4XQ2 SBN 0 BINDEX 18 4Y9L BNZ 0 MHUNTIL+1 [J IF NOT BASE OF CHAIN 5 4YP= WRONG2 19 4_8W LDX 7 FXPM2 [INDEX CHAIN IS BROKEN 5 4_NG TRYAGAIN 7 5286 SMO 7 18 52MQ OBEY XCOND [PICK UP TABLE ADDRESS 21 537B BZE 1 MIND [J AS BLOCK NOT FOUND - CORRUPTION 8 53M2 PMCORES 1,MIND 9 546L LDX 0 ATYPE(1) 8 54L= SBX 0 0(3) 16 555W BZE 0 OUT [J IF REQ'D BLOCK 7 55KG ADN 7 1 9 5656 BRN TRYAGAIN 7 56JQ OUT EXIT 3 1 8 574B MIND LDX 3 FXPM2 10 57J2 PMESSAGE TEXT8(3),11 19 583L LDX 1 FXPM2 [EXIT FROM ZBLKPRINT ROUTINE 9 58H= LDX 0 XLINK2(1) 7 592W EXIT 0 0 4 59GG # 21 5=26 # ROUTINE TO PRINT A BLOCK OF A FILE DEFINED BY CURRENT FCB AND A 21 5=FQ # BLOCK LIST WORD MODIFIER.ALSO THE ROUTINE WILL COMPARE THE BLOCK 20 5=_B # IN CORE WITH ITS B/S ORIGIN UNDER CERTAIN CIRCUMSTANCES AND IF 14 5?F2 # DIFFERENT WILL PRINT THE B/S VERSION. 4 5?YL # 9 5#D= # ENTRY X0=LINK 14 5#XW # XBLIST=BLOCK LIST MODIFIER WORD 14 5*CG # XFCB=ADDR. OF FILE/FCB BLOCK 4 5*X6 # 7 5BBQ # EXIT 0 12 5BWB # ALL ACCS. UNDEFINED 6 5CB2 ZBLKPRINT 9 5CTL STO 0 XLINK2(1) 19 5D*= STOZ XBSCOMP(1) [CLEAR B/S COMPARISON MARKER 9 5DSW LDX 2 XFCB(1) 9 5F#G SMO XBLIST(1) 20 5FS6 LDX 4 FBLKS(2) [LOAD BLOCK NO. OF REQUIRED BLOCK 9 5G?Q STO 4 MBLKNO(1) 17 5GRB CALL 0 SEARCHA [VALIDATE FCBS FPTR 16 5H?2 BRN ZBREAK [J IF CHAIN BREAK 20 5HQL ZB1 CALL 0 SEARCH [GET ADDR. OF NEXT BLOCK ON CHAIN 21 5J== BRN ZBREAK [J IF CHAIN BREAK(POINTERS INVALID) 9 5JPW LDX 6 ATYPE(2) 8 5K9G SRL 6 12 9 5KP6 TXU 6 TFCB(1) 19 5L8Q BCC ZB7 [J IF ANOTHER FILE/FCB BLOCK 11 5L=_ ... BXE 6 TFSTACK(1),ZB1 10 5L*8 ... BXE 6 TFURB(1),ZBUB 10 5LCC ... BXE 6 TFUWB(1),ZBUB 10 5LFL ... BXE 6 TFURRB(1),ZBUB 10 5LHT ... BXU 6 TFURWB(1),ZB1 14 5LL4 ...ZBUB [USAGE BLOCK FOUND 9 5LNB TXU 4 BACK2(2) 19 5M82 BCS ZB1 [J IF NOT REQUIRED BLOCK NO. 10 5MML LDX 5 XAFRESBS(1) 8 5N7= LDN 4 A1(2) 19 5NLW MOVE 4 0 [MOVE BLOCK TO END OF PMFS 9 5P6G TXU 6 TFURB(1) 20 5PL6 BCC ZBCHSUM [J IF FILE/FURB TO CHECKSUM BLOCK 9 5Q5Q TXU 6 TFUWB(1) 21 5QKB BCS ZBPRINT [J IF NOT FILE/FUWB & DON'T CHECKSUM( 19 5R52 LDX 7 XCGC(1) [IF CLEAN/GENERAL/COPY SWITCH 17 5RJL BZE 7 ZBPRINT [UNSET,DON'T CHECKSUM 10 5S4= # NOW TO CHECKSUM BLOCK 5 5SHW ZBCHSUM 19 5T3G STO 6 XBSCOMP(1) [SET B/S COMPARISON MARKER 17 5TH6 SUM 3 0 [CALCULATE CHECKSUM 10 5W2Q STO 3 SUMCORE(1) 5 5WGB ZBPRINT 21 5X22 PMESSAGE TEXT5(1),10 ['THE FOLLOWING BLOCK IS PRINTED 15 5XFL [FROM CORE' 9 5X_= ZB2 LDN 4 TEXT7(1) 8 5YDW LDX 5 JPMOD 7 5YYG ADN 5 2 18 5_D6 MVCH 4 5 [STORE 'BLOCK' IN BUFFER 7 5_XQ BCHX 5 / 8 62CB STO 5 JPMOD 9 62X2 LDX 5 XBLIST(1) 21 63BL CALL 7 (JDECN) [CONVERT & STORE BLOCK LIST MODIFIE 8 63W= CALL 7 (JUP) 8 64*W +3 9 64TG LDX 5 MBLKNO(1) 19 65*6 CALL 7 (JOCT) [CONVERT & STORE BLOCK NO. 9 65SQ CALL 7 (JPRINT2) 9 66#B # NOW TO PRINT BLOCK 8 66S2 ZB3 SMO FXPM1 19 67?L STOZ FMODBLK [INITIALISE BLOCK MODIFIER 8 67R= LDN 3 512 9 68=W STO 3 NUMBER(1) 18 68QG LDN 4 0 [INITIALISE LINE MODIFIER 5 68T5 ...#SKI G3 4 68XN ...( 19 692? ... LDX 5 RECSW(1) [ARE WE PRINTING RECALL FILE 13 694W ... BNG 5 RECP1 [YES 4 697F ...) 18 69=6 LDX 5 TEXT3+4(1) [LOAD FILES LANGUAGE CODE 10 69PQ TXU 5 MONFILE(1) 9 6=9B BCC ZBCHAR 10 6=P2 TXU 5 MJOBDES(1) 9 6?8L BCS ZBLOCK 21 6?N= # MONITORING & JOB DESCRIPTION FILES ARE NOW PRINTED IN CHARACTER 6 6#7W # FORMAT 5 6#MG ZBCHAR 9 6*76 CALL 7 (JPRINT1) 8 6*LQ LDN 3 512 8 6B6B SMO FXPM1 16 6BL2 STO 3 FREMAIN [SET REMAINDER 18 6C5L LDN 1 0 [INITIALISE WORD MODIFIER 8 6CK= ZB4 LDX 7 FXPM1 9 6D4W ADX 7 FPRRCD 20 6DJG CALL 3 (7) [NOW PRINT IN CHARACTER FORMAT 18 6F46 BRN ZB4 [J TO PRINT NEXT RECORD 17 6FHQ BRN ZB6 [J AS BLOCK PRINTED 20 6G3B [ERROR SO PRINT IN BLOCK FORMAT 10 6GH2 # PRINT IN BLOCK FORMAT 5 6H2L ZBLOCK 8 6HG= LDX 7 FXPM1 9 6H_W ADX 7 FPRLIN 19 6JFG CALL 3 (7) [NOW PRINT IN BLOCK FORMAT 8 6J_6 LDX 1 FXPM2 9 6KDQ TXU 4 TWTY(1) 21 6KYB BCC ZB5 [J AS FIRST/NEXT 128 WORDS PRINTED 9 6LD2 BUX 4 ZBLOCK 9 6LXL ZB5 LDX 0 NUMBER(1) 8 6MC= SBN 0 129 16 6MWW BNG 0 ZB6 [J IF ALL PRINTED 9 6NBG CALL 7 (JPRINT1) 7 6NW6 LDN 4 0 8 6P*Q LDN 5 128 9 6PTB SBS 5 NUMBER(1) 8 6Q*2 SMO FXPM1 9 6QSL ADS 5 FMODBLK 19 6R#= BRN ZBLOCK [J TO PRINT NEXT 128 WORDS 8 6RRW ZB6 LDX 1 FXPM2 10 6S?G LDX 5 XBSCOMP(1) 21 6SR6 BZE 5 ZEX [EXIT IF B/S COMPARISON NOT REQUIRED 8 6T=Q BRN ZB7 5 6T?6 ...#SKI G3 4 6T?G ...( 4 6T?W ...# 10 6T#= ...# PRINT OF RECALL FILE 5 6T#L ...RECP1 8 6T*2 ... LDX 1 FXPM1 8 6T*B ... LDX 7 FXPM1 9 6T*Q ... ADX 7 JRECBLK 8 6TB6 ... CALL 0 (7) 17 6TBG ... BRN RECP2 [BLOCKLET PRINTED OK 8 6TBW ... LDX 1 FXPM2 19 6TC= ... LDX 2 CONSCNTRL [HAVE WE REACHED END OF FILE? 9 6TCL ... LDX 0 PAGES(1) 9 6TD2 ... SBX 0 CORET(2) 13 6TDB ... BPZ 0 RECP3 [YES 16 6TDQ ... PMESSAGE TEXT15(1),4 [NO THEN ERROR 18 6TF6 ... LDN 4 0 [INITIALISE LINE MODIFIER 7 6TFG ... LDN 0 1 9 6TFW ... ADS 0 PAGES(1) 8 6TG= ... SMO FXPM1 9 6TGL ... LDX 2 FMODBLK 9 6TH2 ... BNZ 2 ZBLOCK 9 6THB ... ADS 0 PAGES(1) 9 6THQ ... BRN ZBLOCK 8 6TJ6 ...RECP2 LDX 1 FXPM2 7 6TJG ... LDN 0 1 9 6TJW ... ADS 0 PAGES(1) 9 6TK= ... LDX 0 NUMBER(1) 8 6TKL ... SBN 0 256 14 6TL2 ... BZE 0 ZEX [FINISHED 9 6TLB ... STO 0 NUMBER(1) 8 6TLQ ... LDN 5 256 8 6TM6 ... SMO FXPM1 9 6TMG ... ADS 5 FMODBLK 8 6TMW ... BRN RECP1 18 6TN= ...RECP3 LDX 0 XLINK1(1) [EXIT DIRECT FROM ZDECANT 7 6TNL ... EXIT 0 0 4 6TP2 ...# 4 6TPB ...) 5 6TQB ZBREAK 7 6W=2 LDN 5 1 19 6WPL STO 5 XBRIND(1) [SET CHAIN BREAK INDICATOR 4 6X9= # 21 6XNW # THERE NOW FOLLOWS THE CODE FOR LOCATING DEVICE HOLDING REQUIRED 10 6Y8G # RESIDENCE AND BLOCK 4 6YN6 # 9 6_7Q ZB7 LDX 3 XFCB(1) 9 6_MB LDX 4 BSPRE(3) 19 7272 BZE 4 WRNG3 [J IF LOGICAL FILE NO. ZERO 19 72LL BXE 4 PREF(1),ZBTRAN [J IF B/S SAME AS BEFORE 18 736= STO 4 PREF(1) [STORE LOGICAL FILE NO. 9 73KW CALL 3 MHUNTIL 9 745G #HAL +BSTB+ALFTABLE,0 8 74K6 SMO FXPM2 18 754Q LDX 2 PREF [RESTORE LOGICAL FILE NO. 20 75JB SLL 2 1 [MULTIPLY BY 2 TO POINT TO ALFTBL 11 7642 BXGE 2 ALOGLEN(1),WRNG3 7 76HL SMO 2 19 773= LDX 5 A1(1) [PICK UP FIRST WORD OF PAIR 8 77GW BNG 5 WRNG3 8 782G LDN 2 #7777 20 78G6 ANDX 2 5 [POINTER FOR FILE DESC.TABLE IN 2 17 78_Q SRL 5 12 [BSUNIT NO. OF BSFILE 9 79FB CALL 3 MHUNTIL 9 79_2 #HAL +BSTB+FDTABLE,0 20 7=DL SMO 2 [NOT EQUIVALENT TO SMO 2 20 7=Y= LDN 3 0(1) [ LDX 3 1 8 7?CW LDX 1 FXPM2 15 7?XG STO 3 PTRDATUM(1) [FOR DATUMBLK 8 7#C6 LDCH 2 A1(3) 19 7#WQ FINDPEREC 3,APFOTY,2,NEXT [NEXT USED AS LABEL IN MACRO 21 7*BB BNG 3 WRNG3 [(3) SHOULD POINT TO A DEVICE LIST 17 7*W2 LBSUN 3,4 [B/S UNIT NO. IN X4 17 7B*L SBX 4 5 [IF NOT CORRECT ONE 17 7BT= BNZ 4 NEXT [RE-ENTER FINDPEREC 8 7C#W SMO FXPM1 9 7CSG LDX 0 JBSPTR 21 7D#6 BZE 0 RDUMP [IF NO JBSPTR SET NO NEED TO UNDUMP 7 7DRQ SBX 0 3 20 7F?B BZE 0 ZBTRAN [IF NO CHANGE - NO NEED TO SWAP 9 7FR2 LDN 4 XBSREC(1) 8 7G=L SMO FXPM1 9 7GQ= LDX 5 JBSPTR 5 7GXD ...XBUSY 18 7H4L ... JBUSY 5,XBUSY [JUMP IF DEVICE IS BUSY 19 7H9W MOVE 4 K53 [ELSE UNDUMP FROM XBSREC TO 16 7HPG [PREVIOUS JBSPTR. 8 7J96 RDUMP SMO FXPM1 19 7JNQ STO 3 JBSPTR [THEN SET UP PRESENT JBSPTR 7 7K8B LDX 4 3 3 7K#? ... 5 7KD8 ...WTBSTRAN 21 7KJ5 ... JBUSY 3,WTBSTRAN [WAIT FOR DEVICE HOLDING THE FILE STO 9 7KN2 LDN 5 XBSREC(1) 19 7L7L MOVE 4 K53 [AND DUMP FROM PRESENT JBSPTR 15 7LM= [TO XBSREC 5 7M6W ZBTRAN 20 7MLG PMBSNUM XAFRESBS(1),MBLKNO(1) [TRANSFER BLOCK FROM B/S 8 7N66 LDX 1 FXPM2 10 7NKQ LDX 7 XBSCOMP(1) 20 7P5B BZE 7 ZB2 [J IF B/S COMPARISON NOT REQUIRED 19 7PK2 STOZ XBSCOMP(1) [UNSET B/S COMPARISON MARKER 10 7Q4L LDX 4 XAFRESBS(1) 17 7QJ= SUM 3 0 [CHECKSUM B/S VERSION 10 7R3W SBX 3 SUMCORE(1) 17 7RHG BZE 3 ZEX [EXIT IF CHECKSUMS EQUAL 9 7S36 CALL 7 (JPRINT1) 10 7SGQ PMESSAGE TEXT6(1),13 9 7T2B CALL 7 (JPRINT1) 18 7TG2 BRN ZB3 [J TO PRINT B/S VERSION 4 7T_L # 8 7WF= WRNG3 LDX 1 FXPM2 20 7WYW LDN 2 TEXT9(1) [LOGICAL FILE NO. DOES NOT EXIST 9 7XDG LDX 3 JLPMOD 8 7XY6 MOVE 2 10 8 7YCQ CALL 7 (JUP) 8 7YXB +14 9 7_C2 LDX 5 PREF(1) 19 7_WL CALL 7 (JOCT) [OCTALISE LOGICAL FILE NO. 18 82B= CALL 7 (JPRINT2) [& OUTPUT ERROR MESSAGE 9 82TW ZEX LDX 0 XLINK2(1) 7 83*G EXIT 0 0 4 83T6 # 21 84#Q # THIS ROUTINE INTERPRETS A 21 WORD AREA AS A BIT MAP,EACH SET BIT 21 84SB # (BY ITS POSITION) INDICATING A BLOCK,RELATIVE TO START OF FCB'S 20 85#2 # BLOCK LIST,WHICH IS REQUIRED TO BE PRINTED.THE REQUIRED BLOCKS 9 85RL # ARE THEN PRINTED. 4 86?= # 9 86QW # ENTRY X0=LINK 14 87=G # XFCB=ADDR. OF FILE/FCB BLOCK 4 87Q6 # 9 889Q # EXIT 0 - OK 21 88PB # 1 - INVALID PTR FOUND BY BLOCK PRINTING CODE(ZBLKPRINT) 12 8992 # ALL ACCS. UNDEFINED 5 89NL ZDECANT 9 8=8= STO 0 XLINK1(1) 9 8=MW LDX 2 XFCB(1) 11 8?7G # PRINT FILE NAME HEADING 9 8?M6 LDX 7 COMM(2) 16 8#6Q BNG 7 YDIR [J IF DIRECTORY 17 8#LB LDX 6 FGEN(2) [LOAD GENERATION NO. 17 8*62 LDX 7 FLAN(2) [LOAD LANGUAGE CODE 17 8*KL LDN 4 FLOC1(2) [LOCAL NAME OF FILE 17 8B5= LDN 2 FUSER1(2) [ADDR. OF USER NAME 8 8BJW BRN ZD1 5 8BLS ...#SKI G3 4 8BNQ ...( 5 8BQN ...ZDECANT2 9 8BSL ... LDX 2 MASK1(1) 21 8BWJ ... STO 2 RECSW(1) [SET SWITCH TO INDICATE PRINT RECALL 9 8BYG ... BRN ZDECANT 4 8C2D ...) 4 8C4G YDIR 17 8CJ6 LDN 4 SPACES(1) [LOCAL NAME AS SPACES 18 8D3Q LDN 2 FME1(2) [LOAD ADDR.OF USER NAME 17 8DHB LDN 6 1 [LOAD GENERATION OF 1 21 8F32 LDX 7 MDIR(1) [LOAD DIRECTORY FILE LANGUAGE CODE 4 8FGL ZD1 16 8G2= STO 6 NGEN(1) [STORE GEN. NO. 17 8GFW STO 7 TEXT3+4(1) [STORE LANGUAGE CODE 13 8G_G # SET UP FILE NAME HEADING IN BUFFER 9 8HF6 LDX 6 RESH1(1) 9 8HYQ LDX 3 JLPMOD 8 8JDB STO 6 2(3) 7 8JY2 ADN 3 3 16 8KCL MOVE 2 3 [STORE USER NAME 4 8KNC ...# 20 8K_8 ...# REMOVING THE TRAILING SPACES FROM USER NAME BY BACKWARD SCANNING 4 8L9_ ...# 7 8LGQ ... LDN 7 12 21 8LRH ... ADN 3 3 [POINTER TO WORD IMMEDIATELY NEXT TO 18 8M4# ...ZD2 SLC 3 2 [CONVERT INTO CHAR ADDR 21 8M*5 ... SBN 3 1 [ADDR OF THE LAST CHAR OF WORD FME3 O 7 8MKW ... SRC 3 2 21 8MWM ... LDCH 0 0(3) [LAST CHAR OF USER NAME ON FIRST ENTR 16 8N7D ... SBN 0 #20 [IS IT A SPACE? 17 8ND9 ... BNZ 0 ZD3 [J IF CHAR NOT SPACE 8 8NP2 ... BCT 7 ZD2 7 8N_R ...ZD3 BCHX 3 / 8 8P=J ... LDN 0 #36 21 8PH* ... DCH 0 0(3) [DEPOSIT '.' AS LAST CHAR IN USER NAM 7 8PS= BCHX 3 / 7 8Q?W LDX 2 4 16 8QRG MVCH 2 12 [STORE FILE NAME 9 8R?6 # NOW SET UP FGN/LNG 9 8RQQ LDX 3 JLPMOD 8 8S=B ADN 3 10 9 8SQ2 LDN 2 TEXT3(1) 18 8T9L MOVE 2 5 [STORE 'FGN/LNG= / 16 8TP= LDX 5 NGEN(1) [LOAD GEN. NO. 7 8W8W ADN 3 2 8 8WNG STO 3 JPMOD 21 8X86 CALL 7 (JDECN) [CONVERT & STORE GEN. NO. IN CHARS. 19 8XMQ CALL 7 (JPRINT2) [NOW PRINT THE HEADER LINE 4 8Y7B # 20 8YM2 STOZ XBRIND(1) [CLEAR ZBLXPRINT CHAIN BREAK IND. 20 8_6L STOZ XPRINTED(1) [CLEAR BLOCKS PRINTED INDICATOR 9 8_L= SMO XFCB(1) 20 925W LDX 6 FBLMOD [LENGTH OF FCB RELATIVE TO FBLMOD 17 92KG SBN 6 FBLKS-A1 [LOAD NO. OF BLOCKS+1 10 9356 STO 6 XFCBLEN(1) 17 93JQ LDN 6 0 [BLOCK LIST MODIFIER 19 944B LDN 3 XBITAB(1) [LOAD ADDR.OF BIT MAP AREA 10 94J2 ZD4 LDN 4 XBITEND(1) 7 953L TXU 3 4 18 95H= BCC ZDEND [J IF END OF BIT MAP AREA 18 962W LDN 7 24 [LOAD BIT REMAINDER COUNT 21 96GG LDX 5 0(3) [LOAD FIRST/NEXT WORD OF BIT MAP AREA 18 9726 ZD5 BZE 5 ZD7 [J IF NO MORE BITS SET 19 97FQ BPZ 5 ZD6 [J IF BLOCK NOT TO BE PRINTED 20 97_B TXL 6 XFCBLEN(1) [J IF BLOCK LIST MODIFIER > SIZE 17 98F2 BCC ZDEND [OF FCB'S BLOCK LIST 19 98YL STO 3 XPRINTED(1) [SET BLOCKS PRINTED INDICATOR 19 99D= STO 5 XX5(1) [STORE ENTRY FROM MAP AREA 19 99XW STO 6 XBLIST(1) [STORE BLOCK LIST MODIFIER 19 9=CG STO 7 XX7(1) [STORE BIT REMAINDER COUNT 4 9=X6 # 15 9?BQ CALL 0 ZBLKPRINT [PRINT BLOCK 4 9?WB # 16 9#B2 LDX 3 XPRINTED(1) [RESTORE ACCS. 9 9#TL LDX 5 XX5(1) 9 9**= LDX 6 XBLIST(1) 9 9*SW LDX 7 XX7(1) 21 9B#G ZD6 SLL 5 1 [READY TO TEST NEXT BIT OF MAP AREA(1 19 9BS6 ADN 6 1 [INCREAS BLOCK LIST MODIFIER 19 9C?Q SBN 7 1 [REDUCE BIT REMAINDER COUNT 8 9CRB BRN ZD5 20 9D?2 ZD7 ADX 6 7 [INCREASE BLOCK MOD. BY BITS REM. 20 9DQL ADN 3 1 [ADDR.OF NEXT WORD IN MAP AREA 8 9F== BRN ZD4 5 9FPW ZDEND 10 9G9G LDX 4 XPRINTED(1) 17 9GP6 BNZ 4 ZDEND1 [J IF BLOCKS PRINTED 20 9H8Q PMESSAGE TEXT4(1),5 [OTHERWISE MESS. - NO BLOCKS 5 9HNB ZDEND1 9 9J82 CALL 7 (JPRINT) 18 9JML LDX 4 XBRIND(1) [LOAD CHAIN BREAK IND. 15 9K7= LDX 0 XLINK1(1) [OTHERWISE 19 9KLW BZE 4 ZDEX [EXIT 0 IF NO CHAIN BREAKS 14 9L6G EXIT 0 1 [EXIT 1 7 9LL6 ZDEX EXIT 0 0 4 9M5Q # 20 9MKB # THIS ROUTINE WILL SET THE BITS IN THE BIT MAP AREA(XBITAB) TO 15 9N52 # INDICATE WHICH BLOCKS ARE TO BE PRINTED 4 9NJL # 14 9P4= # ENTRY X2=ADDRESS OF FILE/FCB BLOCK 21 9PHW # X7=NO.OF L.S. BITS SET INDICATES NO OF BLOCKS REQUIRED 19 9Q3G # TO BE PRINTED. E.G. BITS 22 & 23 SET INDICATES 21 9QH6 # CURRENT & LAST BLOCK(WRITTEN,READ ETC.) TO BE PRINTED 9 9R2Q # X0=LINK 4 9RGB # 13 9S22 # EXIT X4,X5,X6 & X7 UNDEFINED 4 9SFL # 5 9S_= SETWRITE 19 9TDW LDX 6 FBLMOD(2) [LOAD BLOCK NO. OF LAST BLOCK 21 9TYG SBN 6 FBLKS-A1+1 [APPENDED RELATIVE TO FBLKS OF FCB 4 9WD6 # 20 9WXQ # ENTRY X6=BLOCK NO. TO BE PRINTED RELATIVE TO FBLKS OF FCB 4 9XCB # 5 9XX2 SETBIT 21 9YBL DVS 5 X24(1) [BLOCK NO. MULTIPLE OF 24 + REMAINDER 8 9YW= LDN 4 23 7 9_*W SBX 4 5 7 9_TG LDX 5 6 7 =2*6 LDN 6 0 7 =2SQ SMO 4 21 =3#B SLL 67 0 [POSITION BLOCK NO. USING REMAINDER 17 =3S2 BZE 5 SET1 [J IF BLOCK NO < 24 7 =4?L SMO 5 15 =4R= ORS 6 XBITAB-1(1) [SET BITS IN 16 =5=W SET1 SMO 5 [APPROPRIATE WORD 16 =5QG ORS 7 XBITAB(1) [OF BIT MAP AREA 7 =6=6 EXIT 0 0 4 =6PQ # 20 =79B # FOR A GIVEN FCB & FSTACK THIS ROUTINE WILL SET UP A BIT MAP 19 =7P2 # REPRESENTING THOSE BLOCKS OF THE FILE WHICH IT IS REQUIRED 18 =88L # TO PRINT.MONITORING FILES ARE IGNORED BY THIS ROUTINE. 4 =8N= # 9 =97W # ENTRY X0=LINK 14 =9MG # XFCB=ADDR. OF FILE/FCB BLOCK 14 ==76 # UFSTACK=ADDR. OF FILE/FSTACK BLOCK 4 ==LQ # 9 =?6B # EXIT 0 - OK 14 =?L2 # 1 - FILE IS A MONITORING FILE 14 =#5L # ALL ACCS. EXCEPT X1 UNDEFINED 5 =#K= XFSTACK 9 =*4W STO 0 XLINK1(1) 9 =*JG LDX 2 XFCB(1) 19 =B46 LDX 6 FLAN(2) [LOAD LANGUAGE CODE OF FILE 10 =BHQ TXU 6 MONFILE(1) 8 =C3B BCS XF1 18 =CH2 EXIT 0 1 [EXIT IF MONITORING FILE 4 =D2L # 10 =DG= XF1 STOZ SYSTDIR(1) 9 =D_W STOZ XCGC(1) 9 =FFG STOZ XBITAB(1) 9 =F_6 LDN 4 XBITAB(1) 10 =GDQ LDN 5 XBITAB+1(1) 17 =GYB MOVE 4 20 [ZEROISE BIT MAP AREA 4 =HD2 # 10 =HXL LDX 3 UFSTACK(1) 21 =JC= LDX 4 ARINGNO(3) [LOAD NO.OF ELEMENTS IN FSTACK BLOCK 9 =JWW ANDX 4 MASK2(1) 8 =K6N ... BZE 4 XF12 20 =KBG ADN 3 ARINGNO+1 [OBTAIN ADDR. OF FIRST ELEMENT 9 =KW6 TXU 6 MSYST(1) 16 =L*Q BCC XFSYD [J IF SYSTEM FILE 9 =LTB LDX 6 COMM(2) 18 =M*2 BPZ 6 XF2 [J IF NOT DIRECTORY FILE 16 =MSL XFSYD STO 3 SYSTDIR(1) [SET INDICATOR 19 =N#= XF2 STO 4 XCOUNT(1) [SET COUNT OF FSTACK ELEMENTS 10 =NRW LDX 7 FGENERAL1(3) 7 =P?G SLC 7 2 17 =PR6 BPZ 7 XF3 [J IF NOT APPEND MODE 21 =Q=Q LDN 7 3 [BIT PATTERN TO PRINT CURRENT & LAST 16 =QQB [BLOCK APPENDED 18 =R=2 CALL 0 SETWRITE [SET BITS IN BIT MAP AREA 10 =RPL XF3 LDX 7 FGENERAL1(3) 10 =S9= ANDX 7 MASKCGC(1) 8 =SNW BZE 7 XF5 21 =T8G STO 7 XCGC(1) [SET CLEAN/GENERAL/COPY MODE SWITCH 10 =TN6 XF5 LDX 7 FGENERAL1(3) 7 =W7Q SLC 7 3 17 =WMB BPZ 7 XF11 [J IF NOT WRITE MODE 20 =X72 LDN 7 1 [SET BIT IN BIT MAP AREA TO PRINT 17 =XLL CALL 0 SETWRITE [CURRENT APPEND BLOCK 10 =Y6= LDX 6 SYSTDIR(1) 18 =YKW BNZ 6 XF7 [J IF DIR. OR SYST. FILE 10 =_5G LDX 7 FGENERAL1(3) 7 =_K6 SLC 7 4 18 ?24Q BPZ 7 XF10 [J IF NOT GENERAL MODE 10 ?2JB XF7 LDX 6 FREADBLOCK(3) 19 ?342 BNG 6 XF9 [J AS FREADBLOCK NOT USABLE 21 ?3HL SBN 6 FBLKS-2 [SET BITS CORRESPONDING TO CURRENT 20 ?43= LDN 7 #37 [READ BLOCK AND UP TO TWO EITHER 13 ?4GW XF8 CALL 0 SETBIT [SIDE 20 ?52G XF9 ADN 3 FELLEN [UPDATE FSTACK ELEMENT POINTER 9 ?5G6 LDX 4 XCOUNT(1) 19 ?5_Q BCT 4 XF2 [REDUCE FSTACK ELEMENT COUNT 9 ?6FB ...XF12 LDX 0 XLINK1(1) 7 ?6_2 EXIT 0 0 4 ?7DL # 10 ?7Y= XF10 LDX 6 FREADBLOCK(3) 8 ?8CW BNG 6 XF9 21 ?8XG SBN 6 FBLKS [SET BITS CORRESPONDING TO CURRENT 18 ?9C6 LDN 7 3 [AND PREVIOUS READ BLOCKS 8 ?9WQ BRN XF8 19 ?=6J ...XF11 LDX 4 SYSTDIR [SYSTEM FILE OR DIRECTORY? 19 ?=BB ... BNZ 4 XF7 [J TO SET APPROPRIATE BITS 7 ?=L8 ... SLC 7 1 17 ?=W2 BNG 7 XF7 [J IF GENERAL MODE 7 ??*L SRC 7 3 16 ??T= BNG 7 XF10 [J IF READR MODE 7 ?##W SRC 7 1 16 ?#SG BNG 7 XF10 [J IF READ MODE 8 ?*#6 BRN XF9 4 ?*RQ # 20 ?B?B # ROUTINE TO EXAMINE AN ACTIVITY TO DETERMINE WHAT FILES IT HAS 20 ?BR2 # OPEN;EXAMINE THE MODES IN WHICH THESE FILES ARE OPEN AND PRINT 15 ?C=L # THE APPROPRIATE BLOCKS FROM THESE FILES 4 ?CQ= # 9 ?D9W # ENTRY X0=LINK 19 ?DPG # X2=ADDR.OF ACTRING WORD OF CURRENT ACTIVITY BLOCK 4 ?F96 # 9 ?FNQ # EXIT 0 - OK 15 ?G8B # XCHNBRK - INVALID POINTER FOUND 14 ?GN2 # ALL ACCS. UNDEFINED EXCEPT X1 6 ?H7L ZFILEPRINT 9 ?HM= STO 0 XLINK0(1) 18 ?J6W ADN 2 FILERING-ACTRING [STORE BASE ADDR. OF THIS 17 ?JLG STO 2 XBFILER(1) [ACTIVITY'S FILE RING 20 ?K66 CALL 0 RSEARCHA [VALIDATE ELEMENTS FORWARD PTR 9 ?KKQ BRN XCHNBRK 21 ?L5B ZF1 CALL 0 RSEARCH [GET NEXT ELEMENT ADDR. CHECKING PTRS 9 ?LK2 BRN XCHNBRK 10 ?M4L TXU 2 XBFILER(1) 8 ?MJ= BCS ZF2 9 ?N3W LDX 0 XLINK0(1) 7 ?NHG EXIT 0 0 18 ?P36 ZF2 ADX 2 FBACKPOINT(2) [LOAD BLOCK START ADDR. 18 ?PGQ PMCORES 2,ZFERR [IS FBACKPOINT CORRUPT 9 ?Q2B LDX 4 ATYPE(2) 8 ?QG2 SRL 4 12 10 ?Q_L TXU 4 TFSTACK(1) 18 ?RF= BCC ZF3 [J IF FILE/FSTACK BLOCK 8 ?RYW BRN ZF1 4 ?SDG # 18 ?SY6 ZFERR PMESSAGE TEXT2(1),5 ['FSTACK BLOCK CORRUPT 8 ?TCQ BRN ZF1 14 ?TXB # STEP BACK TO PREVIOUS FILE/FCB BLOCK 19 ?WC2 ZF3 STO 2 UFSTACK(1) [STORE ADDR. OF FSTACK BLOCK 19 ?WWL CALL 0 SEARCHC [VALIDATE FSTACK FORWARD PTR. 9 ?XB= BRN XCHNBRK 21 ?XTW ZF4 CALL 0 SEARCHB [GET ADDR.OF NEXT BLOCK CHECKING PTRS 9 ?Y*G BRN XCHNBRK 9 ?YT6 LDX 4 ATYPE(2) 8 ?_#Q SRL 4 12 9 ?_SB TXU 4 TFCB(1) 17 #2#2 BCC ZF5 [J IF FILE/FCB BLOCK 10 #2RL TXU 4 TFSTACK(1) 20 #3?= BCC XCHNBRK [J IF ANOTHER FSTACK BEFORE FCB 8 #3QW BRN ZF4 4 #4=G # 17 #4Q6 ZF5 STO 2 XFCB(1) [STORE ADDR. OF FCB 20 #59Q CALL 0 XFSTACK [SET UP FILE BLOCK INFORMATION 4 #5PB # 18 #692 CALL 0 ZDECANT [PRINT BLOCKS REQUIRED 13 #6NL BRN ZF1 [OK 18 #78= BRN XCHNBRK [INVALID POINTER FOUND. 4 #7MW # 20 #87G # THIS ROUTINE GETS THE NEXT ACTIVITY BLOCK ON THE ACTIVITY RING 20 #8M6 # WITH A GIVEN JOB NUMBER IN ITS JOBNO WORD.IF KEY JOB NUMBER IS 12 #96Q # ZERO WE DON'T SEARCH AT ALL. 4 #9LB # 9 #=62 # ENTRY X7=LINK 12 #=KL # XJOBNO=KEY JOB NO. WORD 19 #?5= # XNEXTACT=ADDR. OF ACTRING WORD OF CURRENT ACT. BLOCK 11 #?JW # XBACTRING=BASE OF SEARCH 4 ##4G # 21 ##J6 # EXIT 0 - OK,XNEXTACT=ADDR. OF ACTRING WORD OF NEXT ACT. BLOCK 19 #*3Q # WITH JOB NO. SAME AS KEY JOB NO. 18 #*HB # 1 - IF XJOBNO ZERO OR BASE OF SEARCH REACHED 16 #B32 # XCHNBRK - IF BLOCK POINTERS INVALID 4 #BGL # 5 #C2= ZGETACT 9 #CFW LDX 4 XJOBNO(1) 19 #C_G BZE 4 ZG2 [EXIT 1 IF KEY JOB NO. ZERO 19 #DF6 ZG1 CALL 0 NEXTACT [GET ADDR. OF NEXT ACT. BLOCK 17 #DYQ BRN XCHNBRK [J IF INVALID PTR'S 10 #FDB TXU 2 XBACTRING(1) 20 #FY2 BCC ZG2 [EXIT 1 IF BASE OF SEARCH REACHED 11 #GCL LDX 4 JOBNO-ACTRING(2) 16 #GX= TXU 4 XJOBNO(1) [J IF JOB NO. NOT 18 #HBW BCS ZG1 [THE SAME AS KEY JOB NO. 7 #HWG EXIT 7 0 7 #JB6 ZG2 EXIT 7 1 4 #JTQ # 17 #K*B # THIS ROUTINE LOCATES AND PRINTS MONITORING FILES. 4 #KT2 # 9 #L#L # ENTRY X0=LINK 4 #LS= # 7 #M?W # EXIT 0 4 #MRG # 6 #N?6 ZMONFILES 9 #NQQ STO 0 XLINK0(1) 18 #P=B PMESSAGE TEXT12(1),4 ['MONITORING FILES' 8 #PQ2 LDX 2 FXPM1 9 #Q9L ADX 2 JGETFCB1 8 #QP= CALL 0 (2) 17 #R8W BRN ZM2 [GOT FILE/FCB BLOCK 9 #RNG ZMEX LDX 0 XLINK0(1) 19 #S86 EXIT 0 0 [DOUBLE BREAK OR END OF CHAIN 8 #SMQ ZM1 LDX 2 FXPM1 9 #T7B ADX 2 JGETFCB 8 #TM2 CALL 0 (2) 17 #W6L BRN ZM2 [NEXT FILE/FCB BLOCK 8 #WL= BRN ZMEX 9 #X5W ZM2 LDX 4 FLAN(2) 10 #XKG TXU 4 MONFILE(1) 18 #Y56 BCS ZM1 [J IF NOT MONITORING FILE 21 #YJQ STOZ XCGC(1) [CLEAR CLEAN/GENERAL/COPY MODE SWITCH 16 #_4B CALL 0 SEARCHA [VALIDATE FPTR 15 #_J2 BRN ZM1 [FPTR INVALID 17 *23L ZM3 CALL 0 SEARCH [ADDR. OF NEXT BLOCK 15 *2H= BRN ZM1 [CHAIN BREAK 9 *32W LDX 4 ATYPE(2) 8 *3GG SRL 4 12 10 *426 TXU 4 TFSTACK(1) 18 *4FQ BCC ZM4 [J IF FILE/FSTACK BLOCK 9 *4_B TXU 4 TFCB(1) 21 *5F2 BCS ZM3 [IF NOT FILE/FCB,THEN GET NEXT BLOCK 21 *5YL BRN ZM1 [OTHERWISE CARRY ON WITH FCB SEARCH 8 *6D= FIXTRA JZM4 6 *6XW ZM4 NULL 9 *7CG STOZ XBITAB(1) 9 *7X6 LDN 4 XBITAB(1) 10 *8BQ LDN 5 XBITAB+1(1) 17 *8WB MOVE 4 20 [ZEROISE BIT MAP AREA 20 *9B2 LDX 4 ARINGNO(2) [LOAD NO. OF ELEMENTS IN FSTACK 9 *9TL ANDX 4 MASK2(1) 8 *=5D ... BZE 4 ZM1 18 *=*= ADN 2 ARINGNO+1 [ADDR. OF FIRST ELEMENT 21 *=SW ZM5 LDX 5 FGENERAL1(2) [LOAD MODE WORD OF FIRST/NEXT ELEMENT 10 *?#G ANDX 5 MASKCGC(1) 19 *?S6 BNZ 5 ZM6 [J IF CLEAN/GENERAL/COPY MODE 18 *#?Q ADN 2 FELLEN [ADDR. OF NEXT ELEMENT 17 *#RB BCT 4 ZM5 [J IF MORE ELEMENTS 8 **?2 BRN ZM7 15 **QL ZM6 STO 5 XCGC(1) [SET SWITCH 17 *B== ZM7 LDX 2 XFCB(1) [LOAD ADDR. OF FCB 21 *BPW LDN 7 #77 [SET BIT PATTERN FOR LAST 6 BLOCKS 14 *C9G [OF FILE 8 *CP6 FIXTRA JZM25 18 *D8Q CALL 0 SETWRITE [SET BITS IN BIT MAP AREA 15 *DNB CALL 0 ZDECANT [PRINT BLOCKS 16 *F82 BRN ZM1 [GO GET NEXT FCB 16 *FML BRN ZM1 [& IF CHAIN BREAK 4 *G7= # 21 *GLW # THIS ROUTINE CHECKS TO SEE IF THE RESTORE TIME MACRO PMFILE HAS 20 *H6G # BEEN USED AND IF SO PRINTS OUT IN FULL THE NOMINATED FILES. 4 *HL6 # 9 *J5Q # ENTRY X0=LINK 4 *JKB # 7 *K52 # EXIT 0 4 *KJL # 6 *L4= ZRESTFILES 9 *LHW STO 0 XLINK0(1) 10 *M3G LDX 4 XJFULLTAB(1) 16 *MH6 BZE 4 ZREX [J IF TABLE EMPTY 9 *N2Q LDX 4 MASK1(1) 16 *NGB STO 4 XBITAB(1) [SET BIT MAP AREA 16 *P22 LDN 4 XBITAB(1) [CORRESPONDING 16 *PFL LDN 5 XBITAB+1(1) [TO ALL BLOCKS 15 *P_= MOVE 4 20 [IN FCB LIST 21 *QDW PMESSAGE TEXT13(1),9 ['FULL PRINT OF FILES REQ'D ENSUES 16 *QYG LDN 3 XJFULLTAB(1) [ADDR. OF TABLE 9 *RD6 ZR1 STOZ USER0(1) 8 *RXQ LDX 4 3(3) 9 *SCB STO 3 XX3(1) 8 *SX2 BNZ 4 ZR2 21 *TBL STO 3 USER0(1) [SET SWITCH TO ONLY CHECK USER NAME(1 8 *TW= ZR2 LDX 2 FXPM1 9 *W*W ADX 2 JGETFCB1 8 *WTG CALL 0 (2) 16 *X*6 BRN ZR4 [FOUND FIRST FCB 9 *XSQ ZREX LDX 0 XLINK0(1) 7 *Y#B EXIT 0 0 8 *YS2 ZR3 LDX 2 FXPM1 9 *_?L ADX 2 JGETFCB 8 *_R= CALL 0 (2) 16 B2=W BRN ZR4 [FOUND NEXT FCB 8 B2QG BRN ZR11 9 B3=6 ZR4 LDX 3 XX3(1) 18 B3PQ LDX 4 FUSER1(2) [LOAD BLOCKS USER NAME 9 B49B LDX 5 FUSER2(2) 9 B4P2 LDX 6 FUSER3(2) 15 B58L TXU 4 0(3) [TEST AGAINST 8 B5N= TXU 5 1(3) 8 B67W TXU 6 2(3) 18 B6MG BCS ZR3 [J IF USER NAMES DIFFER 9 B776 LDX 4 USER0(1) 21 B7LQ BNZ 4 ZR5 [J IF CHECKING LOCALNAME NOT REQ'D 18 B86B LDX 4 FLOC1(2) [LOAD BLOCKS LOCALNAME 9 B8L2 LDX 5 FLOC2(2) 9 B95L LDX 6 FLOC3(2) 8 B9K= TXU 4 3(3) 8 B=4W TXU 5 4(3) 8 B=JG TXU 6 5(3) 18 B?46 BCS ZR3 [J IF LOCALNAMES DIFFER 21 B?HQ ZR5 STOZ XCGC(1) [CLEAR CLEAN/GENERAL/COPY MODE SWITCH 16 B#3B CALL 0 SEARCHA [VALIDATE FPTR 8 B#H2 BRN ZR10 17 B*2L ZR6 CALL 0 SEARCH [ADDR. OF NEXT BLOCK 8 B*G= BRN ZR10 9 B*_W LDX 4 ATYPE(2) 8 BBFG SRL 4 12 10 BB_6 TXU 4 TFSTACK(1) 18 BCDQ BCC ZR7 [J IF FILE/FSTACK BLOCK 9 BCYB TXU 4 TFCB(1) 21 BDD2 BCS ZR6 [IF NOT FILE/FCB,THEN GET NEXT BLOCK 20 BDXL BRN ZR10 [OTHERWISE CARRY ON TO NEXT FCB 20 BFC= ZR7 LDX 4 ARINGNO(2) [LOAD NO. OF ELEMENTS IN FSTACK 9 BFWW ANDX 4 MASK2(1) 8 BG6N ... BZE 4 ZR3 18 BGBG ADN 2 ARINGNO+1 [ADDR. OF FIRST ELEMENT 21 BGW6 ZR8 LDX 5 FGENERAL1(2) [LOAD MODE WORD OF FIRST/NEXT ELEMENT 10 BH*Q ANDX 5 MASKCGC(1) 19 BHTB BNZ 5 ZR9 [J IF CLEAN/GENERAL/COPY MODE 18 BJ*2 ADN 2 FELLEN [ADDR. OF NEXT ELEMENT 17 BJSL BCT 4 ZR8 [J IF MORE ELEMENTS 8 BK#= BRN ZR10 15 BKRW ZR9 STO 5 XCGC(1) [SET SWITCH 15 BL?G ZR10 CALL 0 ZDECANT [PRINT BLOCKS 7 BLR6 BRN / 19 BM=Q LDX 4 USER0(1) [IF ONLY CHECKING USER NAME, 17 BMQB BNZ 4 ZR3 [THEN GO GET NEXT FCB 9 BN=2 ZR11 LDX 3 XX3(1) 19 BNPL ADN 3 6 [ADDR. OF NEXT TABLE ENTRY 8 BP9= LDX 4 0(3) 16 BPNW BZE 4 ZREX [J IF TABLE EMPTY 8 BQ8G BRN ZR1 4 BQN6 # 18 BR7Q # ENTRY TO OUTPUT A POSTMORTEM OF FILE STORE 4 BRMB # 5 BS72 XK1PMFS 4 BSLL # 8 BT6= LDX 1 FXPM2 10 BTKW ADS 1 XAFRESBS(1) 15 BW5G CALL 7 (JPRINT) [NEW PAGE 21 BWK6 PMESSAGE TEXT1(1),5 [HEADING-'FILE STORE POST MORTEM 9 BX4Q SMO FXPMDR 9 BXJB LDX 4 APMBRKCHS 21 BY42 BNG 4 XCHNBRK [J IF BROKEN CHAINS FOUND BY PMBRKCHS 19 BYHL BNZ 4 XPMFULLS [J IF MACRO PMFULLS WAS HERE 8 B_3= LDX 2 FX2 9 B_GW ANDX 2 MASK(1) 16 C22G PMCORES 2,XCHNBRK [J IF FX2 CORRUPT 9 C2G6 LDCH 4 ATYPE(2) 9 C2_Q TXL 4 XACT(1) 17 C3FB BCS XCHNBRK [J IF NOT AN ACTIVITY 17 C3_2 LDX 4 JOBNO(2) [LOAD & STORE CURRENT 16 C4DL STO 4 XJOBNO(1) [ACTIVITY JOB NO. 20 C4Y= ADN 2 ACTRING [STORE ADDR.OF ACTRING WORD OF 18 C5CW STO 2 XBACTRING(1) [CURRENT ACTIVITY BLOCK 16 C5XG CALL 0 NEXTACTA [VALIDATE FPTR 16 C6C6 BRN XCHNBRK [& J IF CORRUPT 20 C6WQ PMFS1 CALL 0 ZFILEPRINT [EXAMINE CURRENT ACT. AND PRINT 17 C7BB [APPROPRIATE BLOCKS 21 C7W2 CALL 7 ZGETACT [GET NEXT ACT.BLOCK WITH SAME JOB NO. 17 C8*L BRN PMFS1 [J IF SUCH A BLOCK 4 C8T= # 14 C9#W # NO MORE ACT. BLOCKS WITH KEY JOB NO. 4 C9SG # 4 C=#6 # 12 C=RQ # PRINT MASTER DIRECTORY FILE 4 C??B # 17 C?R2 PMFS2 LDCT 4 #400 [SET TO PRINT BLOCK 9 C#=L STO 4 XBITAB(1) 8 C#Q= LDX 2 FXPM1 9 C*9W ADX 2 JGETFCB1 18 C*PG CALL 0 (2) [GET ADDRESS OF FCB BLOCK 15 CB96 CALL 0 ZDECANT [PRINT BLOCK 7 CBNQ BRN / 4 CC8B # 20 CCN2 CALL 0 ZMONFILES [LOCATE & PRINT MONITORING FILES 19 CD7L CALL 0 ZRESTFILES [PRINT FILES SPEC. BY PMFILE 17 CDM= PMESSAGE TEXT0(1),7 ['END OF F/S PM' 8 CF6W SMO FXPM1 9 CFLG LDX 5 JBSPTR 17 CG66 BZE 5 PMFS3 [IF JBSPTR SET,UNDUMP 16 CGKQ LDN 4 XBSREC(1) [FROM XBSREC BACK 5 CGQY ...WAITFOR 18 CGY6 ... JBUSY 5,WAITFOR [JUMP IF DEVICE IS BUSY 18 CH5B MOVE 4 K53 [TO WHERE THEY SHOULD BE 16 CHK2 PMFS3 BRN (JPMSEG) [ADIOS AMIGOS 4 CJ4L # 21 CJJ= # THIS LABEL IS BRANCHED TO IF A CHAIN/RING BREAK IS ENCOUNTERED.IT 20 CK3W # USES A SEARCH BASED ON THE FILE CHAIN TO TREAT ALL FILES AS WE 19 CKHG # WOULD WISH TO TREAT THOSE OPEN TO THE CURRENT ACTIVITY. 4 CL36 # 5 CLGQ XCHNBRK 21 CM2B PMESSAGE TEXT14(1),12 ['CHAIN/RING BRK FOUND:FULL F/S PM 14 CMG2 [ENSUES' 5 CM_L XPMFULLS 8 CNF= LDX 2 FXPM1 9 CNYW ADX 2 JGETFCB1 8 CPDG CALL 0 (2) 16 CPY6 BRN XCH2 [GOT FIRST FCB 18 CQCQ BRN PMFS2 [DBL BRK OR END OF CHAIN 8 CQXB XCH1 LDX 2 FXPM1 9 CRC2 ADX 2 JGETFCB 8 CRWL CALL 0 (2) 15 CSB= BRN XCH2 [GOT NEXT FCB 18 CSTW BRN PMFS2 [DBL BRK OR END OF CHAIN 9 CT*G XCH2 CALL 0 SEARCHA 15 CTT6 BRN XCH1 [INVALID FPTR 16 CW#Q XCH3 CALL 0 SEARCH [GET NEXT BLOCK 15 CWSB BRN XCH1 [INVALID FPTR 9 CX#2 LDX 4 ATYPE(2) 8 CXRL SRL 4 12 10 CY?= TXU 4 TFSTACK(1) 18 CYQW BCC XCH4 [J IF FILE/FSTACK BLOCK 9 C_=G TXU 4 TFCB(1) 21 C_Q6 BCS XCH3 [IF NOT FILE/FCB,THEN GET NEXT BLOCK 20 D29Q BRN XCH1 [OTHERWISE CARRY ON TO NEXT FCB 10 D2PB XCH4 STO 2 UFSTACK(1) 17 D392 CALL 0 XFSTACK [SET UP BIT MAP AREA 17 D3NL CALL 0 ZDECANT [OK- SO PRINT BLOCKS 18 D48= BRN XCH1 [MONITORING FILE FOUND 8 D4MW BRN XCH1 5 D57G RESBS 4 D5M6 #END 6 ____ ...142331360015