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