{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: PMFILE860)}}
====== PMFILE860 ======
(George Source)
**Macros used:** [[george:macro:BLOCK|BLOCK]], [[george:macro:CHAIN|CHAIN]], [[george:macro:EMPTY|EMPTY]], [[george:macro:FIXTRA|FIXTRA]], [[george:macro:ILLEGAL|ILLEGAL]], [[george:macro:MASK|MASK]], [[george:macro:ON|ON]], [[george:macro:OPEN|OPEN]], [[george:macro:PMBSADD|PMBSADD]], [[george:macro:PMDLGET|PMDLGET]], [[george:macro:PMOVE|PMOVE]], [[george:macro:PMSUBSREAD|PMSUBSREAD]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:T|T]], [[george:macro:TAB|TAB]]
22^= #
23DW #OPT K0PMFILE=0
23YG #LIS K0PMFILE>K0POST>K0ALLGEO
24XQ #
25CB ...#SEG PMFILE84 [KAREL KOSKUBA
25X2 #
26BL # THIS SEGMENT GIVES LISTINGS OF THE CONTENTS OF THE FILE CHAIN
26W= #
27*W 8HPMFILE
27TG
28*6 # ENTRY POINT TABLE
28SQ #
29#B ... SEGENTRY K1PMFILE,XK1PMFILE
29S2 ... SEGENTRY K2PMFILE,XK2PMFILE
2?=W #
2?QG # JJFILE AND JREDTAPE ARE ONLY TEMPERARY NAMES
2#=6 FIXTRA JJFILE
2#PQ +JFILE [OPTIONALLY SET BLOCK LENGTH
2BN= NAMEA 37HERROR IN MONITORING FILE BLOCK FORMAT
2C7W NAMEB 45HBLOCKS ON FILE CHAIN OPEN TO CURRENT ACTIVITY
2CMG NAMEC 15HBREAK IN CHAIN
2D76 NAMED 6H: NONE
2DLQ NAMEE 16HBACKWARD RINGING
2F6B NAMEF 22HPOINTER TO FCB ILLEGAL
2FL2 NAMEG 19HBREAK IN FILE CHAIN
2G5L NAMEH 9HFCB BLOCK
2GK= NAMEI 12HFSTACK BLOCK
2H4W NAMEJ 22HFSTACK BLOCK CORRUPTED
2HJG NAMEK 22HADDRESS OF CPAT BLOCK:
2J46 NAMEL 6HJOBNO:
2JHQ NAMEM 7HACTNUM:
2K3B NAMEN 13HWORKFILE RING
2KH2 NAMEO 30HWORKFILES ASSOCIATED WITH JOBS
2L2L NAMEP 18HBREAK IN ACTRING -
2LG= NAMEQ 24HBREAK IN WORKFILE RING -
2L^W NAMER 7H: EMPTY
2MFG NAMES 18HFILERING CORRUPTED
2M^6 XBLCOUNT +0 [COUNT OF BLOCKS IN ROW TO BE PRINTED
2NDQ [IN ROUTINE PRINT (ALSO ROUT. PRBLOCK
2NYB XBACKPR +0 [USED BY SEARCH ROUTINES
2PD2 [ALSO IN K2-ADDR OF ACTRING BACKWARD
2PXL [POINTER
2QC= RBACKPR +0 [USED BY RSEARCH ROUTINES
2QWW MCOUNT +0 [USED BY PRMON ROUT. AS COUNT WORD
2RBG TWENTY +20
2RW6 TWENTY5 +25
2S*Q SAFR +0 [K1-TO HOLD START ADDR. OF FILERING
2STB [K2-TO HOLD START ADDR. OF WORKFILE
2T*2 [ RING
2TSL MONIND +0 [IND. SET IF MONITORING/JD FILE
2W#= RELE +0 [TO HOLD ADDR OF CURRENT RING ELEMENT
2WRW RBACK +0 [SET WHEN BACKWARD RINGING
2X?G MASK #17777777
2XR6 THREE +3
2Y=Q PMFILEND +ZPMFILE+1 [END OF SEG+1
2YQB STACTRING +BACT+ACTRING [START ADDRESS OF ACTRING
2^PL XFSPNTR +0 [TO HOLD ADDR. OF FSTACK BLOCK
329= XIND +0 [USED IN K2-WORKFILE RING
32NW [SET=0 WHEN FORWARD RINGING
338G [ =1 WHEN BACKWARD RINGING
33N6 [ =2 WHEN 'BACKWARD RINGING'
347Q [ HEADING TO BE PRINTED
34MB [ =- WHEN END OF RING
3572 X128 +128
35LL X45 +45
366= XA1 +A1
36KW XFCB +FILE+FCB
36TN ...XFINDEXF +FI+FINDEXF
375G XBFILE +BFILE
37K6 #
384Q # TABLE OF TYPE/SUBTYPES OF BLOCKS TO BE PRINTED IN FILESTORE PM
38JB # FORMAT
3942 #
39HL XTABLE
3=3= XFURB +FILE+FURB
3=GW XFUWB +FILE+FUWB
3?2G #SKI INSA&INSB
3?G6 (
3?^Q +FI+INSERT1
3#FB +FI+INSERT2
3#^2 +FI+INSERT3
3*DL +FI+INSERT4
3*Y= +FI+INSERT5
3BCW )
3BXG XTABLEND +XTABLEND
3CC6 #
3CWQ XSTACK +FILE+FSTACK
3DBB XCPAT +CPAT/#100
3DW2 XACT #60
3F*L X512 +512
3FT= X513 +513
3G#W PRINTING +0 [USE BY PRINT ROUTINE TO INDICATE
3GSG [STILL PRINTING BLOCKS
3H#6 UPARROW 4H^^^^
3HRQ MONFILE 4HB1B0
3J?B XJDFILE 4HB5B1
3JR2 NOTLISTED 16H0NOT LISTED 0000
3K=L ...ZLPMT +0
3MNQ ZLINKA +0 [TO HOLD LINK ADDRS. OF ROUTINES
3N8B ZLINKC +0 [
3NN2 ...UNE +0 [ TO HOLD X1
3P7L ...XFOUR +0 [ TO HOLD X4
3PM= MNEMON 4HWORK
3Q6W ROWCNT +0
3R66 #
3RKQ # TABLE OF JUMPS TO CONVERSION ROUTINES
3S5B #
3SK2 RTNS BRN ROCT
3T4L BRN RCHA
3TJ= BRN RDECS
3W3W BRN RDECP
3WHG BRN RDECDEC
3X36 #
3XGQ # TABLE OF START ADDRESSES OF BLOCKS
3Y2B #
3YG2 TAB
3Y^L #REP 6
3^F= +0
3^YW #
42DG # TABLE GIVING LENGTHS TO BE PRINTED FROM BLOCKS IN TAB
42Y6 #
43CQ TABL
43XB #REP 6
44C2 +0
44WL #
45B= # TABLE GIVING POSITION OF NEXT WORD TO PRINT FROM BLOCKS IN TAB
45TW #
46*G TABC
46T6 #REP 6
47#Q +0
47SB #
48#2 # TABLE CONTAINING IDENTITY BLOCK TABLE POINTERS FOR EACH BLK IN TAB
48RL #
49?= TABI
49QW #REP 6
4==G +0
4=Q6 #
4?9Q #DEF ZTABL=TABL [DEFINED SO TABLE
4?PB #DEF ZTABC=ZTABL+7 [AREAS CAN BE USED
4#92 #DEF ZTABI=ZTABC+7 [BY PRBLOCK ROUTINE
4#NL #DEF ZCOUNT=ZTABI+1 [AND PRMON ROUTINE
4*8= #
4*MW # ROUTINE TO GET ADDRESS OF NEXT BLOCK IN CHAIN WHEN FORWARD
4B7G # CHAINING
4BM6 # ENTRY X2=ADDRESS OF CURRENT BLOCK
4C6Q # EXIT 0 & IF FORWARD AND BACKWARD POINTERS CORRECT
4CLB # X2,X3=ADDRESS OF NEXT BLOCK
4D62 # X0=LINK
4DKL # EXIT 0 0 IF BREAK IN CHAIN DETECTED
4F5= # X3=ADDRESS OF NEXT BLOCK
4FJW # (SEARCHA:ENTRY POINT FOR FIRST BLOCK ON CHAIN
4G4G #
4GJ6 SEARCH
4H3Q LDX 3 BPTR(2) [J IF BPTR IN CURRENT
4HHB ... TXU 3 XBACKPR(1) [BLOCK INCORRECT
4J32 BCS S1
4JGL SEARCHA
4K2= ... STO 2 XBACKPR(1) [STORE ADD. OF CURRENT BLOCK
4KFW LDX 3 FPTR(2) [GET ADD. OF NEXT BLOCK
4K^G S3 TXL 3 CORES
4LF6 BCC S1 [J IF INVALID
4LYQ ... TXL 3 ENDFIX [J IF ADDR. INVALID
4MDB BCC S2
4MY2 ... TXU 3 SAFR(1)
4NCL BCS S1X
4NX= S2 LDX 2 3
4PBW EXIT 0 1
4PWG ...S1X TXU 3 STACTRING(1)
4QB6 BCC S2
4QH# ... TXU 3 XBFILE(1)
4QNG ... BCC S2
4QTQ S1 EXIT 0 0 [BREAK IN CHAIN
4R*B #
4RT2 # ROUTINE TO GET ADDRESS OF NEXT BLOCK IN CHAIN, WHEN BACKWARD
4S#L # CHAINING
4SS= # ENTRY & EXIT AS SEARCH
4T?W # (SEARCHC:ENTRY POINT FOR FIRST BLOCK ON CHAIN
4TRG #
4W?6 SEARCHB
4WQQ LDX 3 FPTR(2) [J IF FPTR IN CURRENT
4X=B ... TXU 3 XBACKPR(1) [BLOCK INCORRECT
4XQ2 BCS S1
4Y9L SEARCHC
4YP= ... STO 2 XBACKPR(1) [STORE ADD. OF CURRENT BLOCK
4^8W LDX 3 BPTR(2) [GET ADD. OF NEXT BLOCK
4^NG BRN S3
5286 #
52MQ # ROUTINE TO GET ADDR. OF NEXT RING ELEMENT WHEN FORWARD CHAINING
537B # ENTRY X2=ADDR. OF CURRENT ELEMENT
53M2 # EXIT 0 1 IF FORWARD & BACKWARD PNTRS CORRECT
546L # X2,X3=ADDR. OF NEXT BLOCK
54L= # EXIT 0 0 IF BREAK IN CHAIN DETECTED
555W # X3=ADDR. OF NEXT BLOCK
55KG # (RSEARCHA:ENTRY POINT FOR INITIAL ELEMENT ADDR.
5656 #
56JQ RSEARCH
574B LDX 3 1(2)
57J2 ... TXU 3 RBACKPR(1) [J IF BACKWARD PNTR. OF
583L BCS S1
58H= RSEARCHA
592W ... STO 2 RBACKPR(1) [STORE ADDR. OF CURRENT ELEMENT
59GG LDX 3 0(2) [GET ADDR. OF NEXT
5=26 BRN S3
5=FQ #
5=^B # ROUTINE TO GET ADDR. OF NEXT RING ELEMENT WHEN BACKWARD CHAINING
5?F2 # ENTRY & EXIT AS FOR RSEARCH
5?YL # (RSEARCHC:ENTRY POINT FOR INITIAL ELEMENT ADDR.
5#D= #
5#XW RSEARCHB
5*CG LDX 3 0(2) [J IF BACKWARD POINT OF
5*X6 ... TXU 3 RBACKPR(1) [CURRENT ELEMENT INCORRECT
5BBQ BCS S1
5BWB RSEARCHC
5CB2 ... STO 2 RBACKPR(1) [CURRENT RING ELEMENT ADDR.
5CTL LDX 3 1(2) [NEXT RING ELEMENT ADDR.
5D*= BRN S3
5DC8 ...#
5DF6 ...# EXITS FOR ROUTINES PRMON AND PRBLOCK
5DH4 ...#
5DK2 ...ROUTEXIT
5DLY ... LDX 7 ZLINKA(1)
5DNW ... EXIT 7 0
5DQS ...#
5DSW #
5F#G #
5FS6 # ROUTINE TO PRINT CONTENTS OF A BLOCK IN MONITORING FILE PRINT
5G?Q # FORMAT
5GRB # ENTRY TAB=START ADDR. OF BLOCK
5H?2 # X7=LINK
5HQL # EXIT X0,X1,X4,TAB=UNCHANGED
5J== # ALL OTHER ACCS UNDEFINED
5JPW #
5K9G PRMON
5KP6 ... STO 7 ZLINKA(1) [STORE LINK
5L8Q ... LDX 2 TAB(1)
5LNB ADN 2 A1 [1ST WORD OF MONITORING FILE
5M82 ... STOZ MCOUNT(1) [COUNT OF WORDS PRINTED
5MML PRM LDX 5 0(2)
5N7= ... BZE 5 ROUTEXIT
5NLW ... CALL 7 (JUP)
5P6G +4
5PL6 ... TXL 5 X513(1)
5Q5Q BCC PRM1 [J IF ILLEGAL NO.
5QKB ... CALL 7 (JDECN) [CONVERT NO. TO DEC
5R52 ... LDX 5 MCOUNT(1)
5RJL ... TXL 5 X512(1)
5S4= BCC PRM1 [J IF MORE THAN 512 WORDS PRINTED
5SHW LDX 3 JOZ
5T3G STO 3 JPMOD
5TH6 ... CALL 7 (JDECN) [CONVERT NO. OF WORDS PRINTED
5W2Q ... CALL 7 (JUP)
5WGB +5
5X22 LDN 5 1(2) [MOVE CONTENTS OF 2ND WORD OF RECORD
5XFL MVCH 5 4 [INTO PRINT BUFFER
5X^= ADN 6 1 [PR. BUF. MOD.
5YDW LDX 3 0(2) [NO. OF WORDS IN RECORD
5YYG ADS 3 2 [UPDATE MON. FILE PNTR
5^D6 ... ADS 3 MCOUNT(1) [UPDATE COUNT OF WORDS PRINTED
5^XQ SBN 3 2 [WORDS ALREADY SET UP IN PR. BUF.
62CB BPZ 3 PRM5
62X2 ...PRM6 CALL 7 (JPRINT1)
63BL BRN PRM
63W= PRM5 BZE 3 PRM6
64*W ...PRM4 TXL 3 TWENTY5(1)
64TG BCS PRM2 [J IF LESS THAN 80 CHARS TO PRINT
65*6 ... SBX 3 TWENTY5(1)
65SQ ... STO 3 ZTABL(1) [NO. OF WORDS STILL TO PRINT
66#B ... LDX 3 TWENTY5(1) [SET TO PRINT 25 WORDS IN LINE
66S2 PRM2 SLL 3 2 [CHAR. COUNT
67?L MVCH 5 0(3) [MOVE REST OF RECORD INTO PR. BUFFER
67R= ... STO 5 ZTABL+1(1) [POINTER TO NEXT CHAR. TO OUTPUT
68=W ... CALL 7 (JPRINT1) [PRINT A LINE
68QG ... LDX 3 ZTABL(1) [CHARS. STILL TO OUTPUT
69=6 BZE 3 PRM3 [J IF WHOLE RECORD NOW OUTPUT
69PQ ... CALL 7 (JUP)
6=9B +20
6=P2 ... LDX 5 ZTABL+1(1) [NEXT CHAR.
6?8L ... STOZ ZTABL(1)
6?N= BRN PRM4
6#7W ...PRM3 STOZ ZTABL+1(1)
6#MG BRN PRM
6*76 ...PRM1 LDN 5 NAMEA(1) [MOVE ERROR MESSAGE INTO PR. BUF.
6*LQ LDX 6 JOZ
6B6B ADN 6 1
6BL2 MVCH 5 40
6C5L ... CALL 7 (JPRINT2) [PRINT A LINE
6CK= ... LDX 7 MCOUNT(1)
6D4W ... TXL 7 X512(1)
6DJG ... BCC ROUTEXIT [EXIT IF OVER 512 WORDS ALREADY OUTP.
6F46 BRN PRBLOCKA [PRINT AS NORMAL BLOCK
6FHQ #
6G3B #
6GH2 # ROUTINE TO PRINT CONTENTS OF BLOCK IN FILESTORE POSTMORTEM FORMAT
6H2L # ENTRY TAB=START ADDR. OF BLOCK
6HG= # X7=LINK
6H^W # EXIT X0,X1,X4,TAB=UNCHANGED
6JFG # ALL OTHER ACCS UNDEFINED
6J^6 # ZTABL(*7)=SET TO HOLD COLUMN ADDR. POINTERS
6KDQ # ZTABC(*7)=SET TO HOLD LENGTH OF EACH COL.
6KYB # ZTABI=SET TO HOLD LENGTH OF BLOCK STILL TO PRINT
6LD2 #
6LXL # CALCULATE NO. OF WORDS TO BE PRINTED
6MC= #
6MWW #
6NBG PRBLOCK
6NW6 ... STO 7 ZLINKA(1) [STORE LINK
6P*Q PRBLOCKA
6PTB ... LDX 2 TAB(1) [START ADDR. OF BLOCK
6Q*2 LDX 5 ALOGLEN(2)
6QSL ... ANDX 5 MASK(1)
6R#= ... TXL 5 X512(1)
6RRW BCS PRB7 [SET LENGTH TO PRINT =
6S?G ...PRB LDX 5 X512(1) [LENGTH OF BLOCK < 512
6SR6 ADN 2 A1 [START ADDR. OF BLOCK
6T=Q #
6TQB # SET UP COLUMNS FOR PRINTING
6W=2 #
6WPL PRB7 BZE 5 PRB9 [J IF NO MORE TO PRINT
6X9= LDN 6 20
6XNW ... STO 6 ZTABC(1)
6Y8G ... LDN 6 ZTABC(1)
6YN6 ... LDN 7 ZTABC+1(1) [SET UP TO PRINT 6 COLS*20 WORDS AND
6^7Q MOVE 6 5 [ 1 COL *8 WORDS
6^MB LDN 7 8
7272 ... STO 7 ZTABC+6(1)
72LL ... STO 5 ZTABI(1)
736= STO 5 6
73KW ... TXL 5 X128(1)
745G BCS PRB1 [SET AMOUNT TO PRINT FROM BLOCK
74K6 LDN 5 128
754Q ... SBS 5 ZTABI(1) [AMOUNT LEFT TO PRINT
75JB LDN 6 7 [NO. OF COLS TO PRINT
7642 BRN PRB2
76HL ...PRB1 DVS 5 TWENTY(1) [CALCULATE NO. OF COLUMNS TO PRINT
773= ... STOZ ZTABI(1) [NO WORDS LEFT TO PRINT
77GW SMO 6
782G ... STO 5 ZTABC(1) [STORE LENGTH TO PRINT IN LAST COL
78G6 ADN 6 1
78^Q ...PRB2 STO 6 ZCOUNT(1) [NO. OF COLS TO PRINT
79FB PRB3 STOZ 3 [COL. COUNT
79P8 ...PRB4 SMO FXPM1
79^2 ... STO 2 ZTABL(3)
7=8S ... SMO FXPM1
7=DL ADX 2 ZTABC(3) [STORE ADDR. OF START OF
7=Y= ADN 3 1 [EACH COLUMN
7?CW ... TXU 3 ZCOUNT(1)
7?XG BCS PRB4
7#C6 #
7#WQ # PRINT COLUMNS
7*BB #
7*W2 PRB6 STOZ 2 [BLOCK COUNT
7B*L ...PRB8 CALL 7 (JUP)
7BT= +1
7C54 ... SMO FXPM1
7C#W LDX 3 ZTABL(2) [GET ADDR. OF NEXT WORD TO PRINT
7CJN ... SMO FXPM1
7CSG LDX 5 ZTABC(2) [GET NO. OF WORDS IN COL TO PRINT
7D#6 BZE 5 PRB5 [J IF COL FINISHED
7DRQ LDN 5 1
7F3J ... SMO FXPM1
7F?B ADS 5 ZTABL(2) [UPDATE POINTERS
7FH8 ... SMO FXPM1
7FR2 SBS 5 ZTABC(2) [AND NO. OF WORDS LEFT
7G=L LDX 5 0(3) [GET CONTENTS OF WORD AND
7GQ= ... CALL 7 (JOCT) [CONVERT TO OCTAL
7H9W ... CALL 7 (JUP)
7HPG +1
7J96 ... CALL 7 (JCHA) [CONVERT TO CHARACTER
7JNQ ... CALL 7 (JUP)
7K8B +2
7KN2 ADN 2 1
7L7L ... TXU 2 ZCOUNT(1) [TEST AND J IF STILL COLS IN ROW
7LM= BCS PRB8 [TO BE PRINTED
7M6W ...PRB5 CALL 7 (JPRINT1) [PRINT A LINE
7MLG ... LDX 7 ZTABC(1)
7N66 BNZ 7 PRB6 [J HF COLS. NOT PRHNTED HN FULL
7NKQ ... CALL 7 (JPRINT1)
7P5B ... SMO ZCOUNT(1)
7PK2 ... LDX 2 ZTABL-1(1) [GET NEXT WORD TO BE PRINTED
7Q4L ... LDX 5 ZTABI(1) [NO. OF WORDS STILL TO PRINT
7QJ= BRN PRB7
7R3W #
7RHG # IF BLOCK PRINT FINISHED
7S36 #
7SGQ ...PRB9 STOZ TABL(1)
7T2B ... LDN 5 TABL(1) [SPACEFILL
7TG2 ... LDN 6 TABL+1(1) [TABLE AREA
7T^L MOVE 5 17
7WF= ... BRN ROUTEXIT
7WYW #
7XDG #
7XY6 # ROUTINE TO PRINT A ROW OF BLOCKS
7YCQ # ENTRY XBLCOUNT=NO. OF BLOCKS IN ROW
7YXB # TAB TABLE=HOLDS START ADDR OF BLOCKS
7^C2 # X7=LINK
7^WL # EXIT ALL ACCS UNDEFINED
82B= #
82TW PRINT
83*G #
83T6 # SET UP NO. OF WORDS IN EACH BLOCK TO BE PRINTED
84#Q #
84SB ... LDX 2 FXPM1
85#2 ...PR1 LDX 3 TAB(2) [GET ADDR. OF NEXT BLOCK
85RL LDX 6 ALOGLEN(3) [GET LENGTH
86?= ... ANDX 6 MASK(1)
86QW ADN 6 A1
87=G ... TXL 6 JJFILE(1)
87Q6 BCS PR3 [J IF LEN< MAX TO BE PRINTED
889Q LDX 4 ATYPE(3)
88PB SRL 4 12
893R ... TXU 4 XFCB(1)
898^ ... BCC PR4
89B8 ... TXU 4 XFINDEXF(1)
89NL BCS PR2 [J IF BLOCK NOT FCB
8=8= ...PR4 TXL 6 X512(1)
8=MW BCS PR3 [J IF LENGTH<512
8?7G ... LDX 6 X512(1) [OTHERWISE LOAD MAX. LENGTH
8?M6 BRN PR3
8#2? ...PR2 LDX 6 JJFILE(1) [LOAD MAXIMUM LENGTH
8#*D ...PR3 STO 6 TABL(2) [STORE NO. OF WORDS TO PRINT
8#NK ... ADN 2 1
8*3Q ... LDX 5 2
8*BX ... SBX 5 FXPM1
8*Q4 ... TXU 5 XBLCOUNT(1) [J IF STILL MORE
8B5= BCS PR1 [BLOCKS TO PRINT
8BJW #
8C4G # CODING TO PRINT BLOCKS
8CJ6 #
8D3Q PRINTA
8DHB ... STO 7 ZLINKC(1) [STORE LINK
8F32 ... CALL 7 (JPRINT1) [THROW A LINE
8FGL ...PP3 LDX 1 FXPM1 [BLOCKCOUNT+MODIFIER
8G2= PP2 LDX 5 TABC(1) [WORD POINTER
8GFW TXL 5 TABL(1) [NO. OF WORDS TO PRINT
8G^G BCS PP [J IF STILL PRINTING
8HF6 ... CALL 7 (JUP) [UPDATE PRINT BUFFER MOD.
8HYQ +20
8JDB BRN PP11
8JY2 ...PP CALL 7 (JUP) [UPDATE PRINT BUFFER MOD.
8KCL +2
8KX= LDN 7 1
8L74 ... SMO FXPM1
8LBW STO 7 PRINTING ['STILL PRINTING' IND.
8LWG BNZ 5 PP4 [J IF NOT FPTR
8MB6 #
8MTQ # CODING TO PRINT ACTUAL ADDR. OF FORWARD POINTER
8N*B #
8NT2 LDX 2 TAB(1) [GET ADDR. OF BLOCK
8P#L LDX 5 TAB(1)
8PS= ... CALL 7 (JDECN) [CONVERT TO DECIMAL
8Q?W LDN 3 3 [CONVERSION ROUT. IND.
8QRG #
8R?6 # TO CONVERT CONTENTS OF A WORD IN SPECIFIED FORMAT
8RQQ #
8S=B PP1 LDX 5 0(2) [GET CONTENTS OF ADDR.
8SQ2 SMO 3
8T9L CALL 7 RTNS [J TO APPROPRIATE CONVERSION ROUTINE
8TP= #
8W8W # TO UPDATE COUNTS,PRINT A LINE ETC.
8WNG #
8X86 PP11 LDN 7 1
8XMQ ADS 7 TABC(1) [UPDATE WORD COUNT
8Y7B PP17 ADN 1 1 [UPDATE BLOCK COUNT
8Y*L ... LDX 5 1
8YHW ... SBX 5 FXPM1
8YQ6 ... SMO FXPM1
8YYB ... TXU 5 XBLCOUNT
8^6L BCS PP2 [J IF STILL BLOCKS IN ROW
8^L= ... SMO FXPM1
92KG LDX 7 PRINTING
9356 BZE 7 PRINTFIN
93JQ ... CALL 7 (JPRINT1) [PRINT A LINE
944B BRN PP12
94J2 PRINTFIN
953L LDX 7 JOZ [ RESET JPMOD
95H= STO 7 JPMOD
962W ... SMO FXPM1
99XW STOZ TABL
9=7N ... SMO FXPM1
9=CG LDN 6 TABL
9=M# ... SMO FXPM1
9=X6 LDN 7 TABL+1
9?BQ MOVE 6 17 [ZEROISE TABLES
9?LJ ... LDX 1 FXPM1
9?WB ... LDX 7 ZLINKC(1)
9#68 ... EXIT 7 0
9#B2 ...PP12 SMO FXPM1
9#KS ... STOZ PRINTING
9#TL LDN 7 ATYPE+1
9**= TXU 7 TABC-1(1)
9*SW BCS PP3 [J IF LAST WORD NOT = ATYPE
9B#G BRN T
9BS6 #
9C?Q # IF NOT PRINT FPTR
9CRB #
9D5R ...PP4 SMO FXPM1
9DD8 ... TXL 5 XA1
9DQL BCC PP13 [J IF NOT RED TAPE WORD
9F== #
9FPW # TO SET UP TO PRINT IN REDTAPE WORD FORMAT
9G9G #
9GP6 ADX 5 TABC(1)
9H4T ... ADN 5 REDTAPE [X5=POINTER TO REDTAPE TABLE
9HDJ ... ADX 5 FXPM1
9HNB #
9J82 # TO ANALYSE NEXT WORD IN IDENT. TABLE
9JML #
9K7= PP7 SMO 5
9KLW LDX 7 0 [GET MNEMONIC FROM TABLE
9L6G BZE 7 PP15 [J IF NO MNEMONIC
9LB# ... SMO FXPM1
9LL6 TXU 7 UPARROW
9M5Q BCC PP8 [J IF END OF TABLE REACHED
9MKB LDCH 6 7
9N52 SRL 7 18
9NJL SBN 7 #72
9P4= BNZ 7 PP14 [J IF NOT RECURSIVE TABLE
9PHW #
9Q3G # TO BACKSPACE IDENT. TABLE POINTER WHEN END OF RECURSIVE TABLE
9QH6 #
9R2Q PP10 SBN 5 2
9RGB SMO 5
9S22 STOZ 0 [CLEAR MNEMONIC ENTRY
9SFL SBN 6 2
9S^= BNZ 6 PP10 [J IF NOT AT START OF RECURSION
9TDW ADN 5 2
9TYG STO 5 TABI(1) [RESET IDENT. TABLE POINTER
9WD6 #
9WXQ # TO PRINT REOATIVE ADR. BEFORE PRINT CONTENTS IN SPECIFIED FORMAT
9XCB #
9XX2 PP15 LDX 5 TABC(1)
9YBL ... CALL 7 (JDECN) [CONVERT RELATIVE ADR. TO DECIMAL
9YW= LDX 5 TABI(1)
9^*W SBN 5 1 [GET POINTER TO PRINT FORMAT
9^TG BRN PP16
=2*6 #
=2SQ # TO PRINT ADDR. AND CONTENTS TO FORMAT SPECIFIED IN AN IDENT /OR
=3#B # REDTAPE) TABLE
=3S2 #
=4?L ...PP14 CALL 7 (JUP)
=4R= +2
=5=W MVCH 5 5 [MOVE IDENT MNEMONICS INTO BUFFER
=5QG STO 6 JPMOD
=6=6 PP16 SMO 5
=6PQ LDCH 3 0
=79B PP9 LDX 2 TAB(1)
=7P2 ADX 2 TABC(1) [X2=ADDR. OF WORD TO BE CONVERTED
=88L BRN PP1
=8N= #
=97W # IF NOT A RED TAPE WORD
=9MG #
==76 PP13 LDX 5 TABI(1)
==LQ BZE 5 PP8 [J IF NO IDENT. LIST
=?6B LDN 7 2
=?L2 ADS 7 TABI(1) [UPDATE IDENT. TABLE POINTER
=#5L BRN PP7
=#K= #
=*4W # IF NO SPECIFIED PRINT FORMAT FOR WORD
=*JG #
=B46 PP8 STOZ TABI(1) [STOZ WHEN BRN FROM PP7
=BHQ PP6 LDX 5 TABC(1) [GET ADDR. RELATIVE TO START OF BLOCK
=C3B ... CALL 7 (JDECN) [CONVERT ADDR. TO DEC(N)
=CH2 STOZ 3 [CONVERT CONTENTS TO OCTAL
=D2L BRN PP9
=DG= #
=D^W # CODING TO CONVERT CONTENTS OF ADDR. IN VARIOUS FORMATS
=FFG #
=F^6 # OCTAL
=GDQ #
=GYB ...ROCT LDX 3 JOCT
=HD2 ...RN CALL 7 (JUP)
=HXL +2
=JC= CALL 7 (3)
=JWW BRN PP11
=KBG #
=KW6 # CHARACTERS
=L*Q #
=LTB ...RCHA CALL 7 (JUP)
=M*2 +7
=MSL ... CALL 7 (JCHA)
=N#= BRN PP11
=NRW #
=P?G # DECIMAL(+N)
=PR6 #
=Q=Q ...RDECS CALL 7 (JUP)
=QQB +3
=R=2 ... CALL 7 (JDECS)
=RPL BRN PP11
=S9= #
=SNW # DECIMAL(N.N)
=T8G #
=TN6 ...RDECP LDX 3 JDECP
=W7Q BRN RN
=WMB #
=X72 # DECIMAL(N/N)
=XLL #
=Y6= RDECDEC
=YKW ... CALL 7 (JUP)
=^5G +4
=^K6 ... CALL 7 (JDECDEC)
?24Q BRN PP11
?2JB #
?342 # CODING TO GET AND INSERT TYPE AND SUBTYPE MNEMONICS IN LISTING AND
?3HL # SET UP TABLES OF BLOCK IDENTIFIERS
?43= #
?4GW T
?52G #
?5G6 # READ DOWN TYPE AND SUBTYPE TABLES
?5^Q #
?6*F ... LDX 1 FXPM1
?6P8 ... PMOVE PMTYPES,PMFILEND(1)
?74X ... LDX 1 FXPM1
?7DL #
?7Y= # MOVE TYPE MNEMONICS INTO PRINT BUFFER & SET UP POINTER TO SUBTYPE
?8CW #
?8XG ...T1 CALL 7 (JUP)
?9C6 +6
?9WQ LDX 3 TAB(1)
?=BB LDCH 2 ATYPE(3) [GET BLOCK TYPE
?=L8 ... SMO FXPM1
?=W2 MPY 2 THREE
??5S ... SMO FXPM1
??*L ADX 3 PMFILEND [ADDR. OF TYPE MNEMONIC
??T= LDX 4 JPMOD
?##W MVCH 3 8 [MOVE TYPE MNEMONIC INTO PR. BUFFER
?#SG LDX 7 0(3)
?*#6 STO 7 TABI(1) [STORE SUBTYPE REFERENCE
?*RQ ... CALL 7 (JUP)
?B?B +14
?BR2 ADN 1 1
?B^= ... LDX 7 1
?C7G ... SBX 7 FXPM1
?C*Q ... SMO FXPM1
?CJ2 ... TXU 7 XBLCOUNT [J IF MORE BLOCKS IN ROW
?CQ= BCS T1
?D9W ... CALL 7 (JPRINT1) [PRINT A LINE
?DPG #
?F96 # TO GET SUBTYPE MNEMONIC & B/S ADDR. OF IDENT TABLES
?FNQ #
?G5= ... LDX 1 FXPM1
?GFQ ... PMSUBSREAD PMFILEND(1)
?GW= ... LDX 1 FXPM1
?H=Q ... CALL 7 (JUP)
?HM= +2
?J6W T6 LDXC 4 TABI(1)
?JLG BCS T3 [J IF NO SUBTYPE BUT IDENT. TABLE
?K66 BZE 4 T3 [J IF NEITHER
?KKQ STOZ 3
?L5B SRC 34 12 [X4=LENGTH OF S/F ENTRIES
?LK2 SRL 3 12 [X3=ADDR. RELATIVE TO PMTYPES
?LSS ... SMO FXPM1
?M5X ... ADX 3 PMFILEND [X3=START OF THE SUBTYPE TABLES
?MC3 ... SMO FXPM1
?MPD ... SBX 3 ZLPMT
?N3W LDX 2 TAB(1)
?NHG BCHX 2 £
?P36 LDCH 7 ATYPE(2) [GET SUBTYPE OF BLOCK
?PGQ T5 LDCH 6 0(3) [GET SUBTYPE FROM TABLE ENTRY
?Q2B TXU 6 7
?QG2 BCC T4 [J IF REQUIRED ENTRY
?Q^L ... ADN 3 3
?RF= ... SBN 4 3 [SEARCH DOWN TABLE
?RYW BNZ 4 T5
?S2S ...#
?S4Q ...# TO MOVE 'NOT LISTED' INTO THE BUFFER
?S6N ...#
?S8N ... SMO FXPM1
?SDG LDN 3 NOTLISTED [IF ENTRY NOT FOUND
?SY6 ... BCHX 3 £ [X3 POINTS TO THE 1ST CHAR OF 'NOT L
?TCQ ... CALL 7 (JUP)
?TXB ... +4 [4 SPACES BEFORE TYPE OR SUBTYPE
?WC2 LDX 4 JPMOD
?WWL ... MVCH 3 11 [MOVE NOT LISTED INTO BUFFER
?XB= LDX 4 0(3)
?XTW ... CALL 7 (JUP)
?Y*G ... +16 [NO OF CHAR POS. TO UPDATE BUFFER
?YT6 BRN T2
?YW# ...#
?YXG ...# TO MOVE SUBTYPE MNEMONIC INTO THE BUFFER
?YYN ...#
?Y^W ...T4 BCHX 3 £ [X3 POINTS TO THE 1ST CHAR OF SUBTYP
?^34 ... CALL 7 (JUP)
?^4= ... +4
?^5D ... LDX 4 JPMOD
?^6L ... MVCH 3 7 [MOVE SUBTYPE MNEMONIC INTO BUFFER
?^7S ... LDX 4 0(3)
?^92 ... CALL 7 (JUP)
?^=8 ... +16
?^?B ... BRN T2
?^#Q ...T3 CALL 7 (JUP) [UPDATE PRINT BUFFER MOD. IF NO
?^SB +20 [SUBTYPE
#2#2 T2 STO 4 TABI(1) [STORE IDENT. TABLE REFERENCE
#2RL ADN 1 1
#2^W ... LDX 7 1
#386 ... SBX 7 FXPM1
#3BB ... SMO FXPM1
#3JL ... TXU 7 XBLCOUNT
#3QW BCS T6 [J IF STILL BLOCKS IN ROW
#4=G ... CALL 7 (JPRINT1) [PRINT A LINE
#4Q6 #
#59Q # CODING TO READ DOWN IDENT. TABLES
#5PB #
#692 ... LDX 1 FXPM1
#6NL ... LDX 4 PMFILEND(1) [START ADDR IN CORE
#78= T11 LDX 6 TABI(1) [B/S ADDR. OF TABLE
#7MW BZE 6 T10 [J IF NO TABLE
#87G LDN 0 JREP2+1 [LENGTH
#8=L ... SMO FXPM1
#8*Q ... STO 4 XFOUR
#8DW ... SMO FXPM1
#8J2 ... STO 1 UNE
#8M6 ... PMBSADD GEO,0,0,4,6 [ READ DOWN TABLE
#8Q= ... SMO FXPM1
#8TB ... LDX 4 XFOUR
#8YG ... SMO FXPM1
#93L ... LDX 1 UNE
#9H= ... STO 4 TABI(1) [IDENT. TABLE ADDRESS IN CORE
#=2W ... ADN 4 JREP2+1 [CORE ADDRESS OF NEXT TRANSFER
#=KL T10 ADN 1 1
#=RW ... LDX 7 1
#?26 ... SBX 7 FXPM1
#?8B ... SMO FXPM1
#?BL ... TXU 7 XBLCOUNT
#?JW BCS T11 [J IF STILL BLOCKS IN ROW
##4G BRN PP3
##J6 #
#*3Q # ENTRY POINT TO PRINT BLOCKS IN FILE CHAIN OPEN TO CURRENT ACTIVITY
#*HB #
#*NJ ...XK1PMFILE
#*TQ ... LDX 1 FXPM1
#B2Y ... ADS 1 PMFILEND(1)
#B5H ... ADS 1 XTABLEND(1)
#B86 ... PMDLGET PMTYPES,,2
#B*# ... STO 2 ZLPMT(1)
#BGL #
#C2= # CODING TO ANALYSE CONTENTS OF FX2
#CFW #
#C^G LDX 2 FX2 [CURRENT ACTIVITY
#DF6 ... ANDX 2 MASK(1)
#DYQ TXL 2 CORES
#FDB ... BCC (JPMSEG) [J IF ILLEGAL
#FY2 ... TXL 2 X45(1)
#GCL ... BCS (JPMSEG) [J IF INVALID
#GX= LDCH 7 ATYPE(2)
#HBW ... TXL 7 XACT(1)
#HWG ... BCS (JPMSEG) [J IF NOT AN ACTIVITY
#JB6 SBN 7 BAT/#100
#JTQ ... BZE 7 (JPMSEG) [J IF CURRENT ACT = BLANKET
#K*B ... LDN 6 NAMEB(1)
#KT2 ... LDX 7 JOZ
#L#L BCHX 7 £ [MOVE HEADING INTO PRINT BUFFER
#LS= MVCH 6 45
#M?W #
#MRG # TEST IF ANY RING ELEMENTS ON FILERING
#N?6 #
#NQQ LDN 2 FILERING(2)
#P=B ... STO 2 SAFR(1) [ADDR. OF FILERING
#PQ2 LDX 6 0(2)
#Q9L TXU 6 2 [DOES FILERING POINT TO ITSELF
#QP= BCS RE1 [J IF NOT
#R8W ... LDN 6 NAMED(1)
#RNG MVCH 6 6 [INSERT ': NONE' IN PRINT BUFFER
#S86 ... CALL 7 (JPRINT2) [PRINT A LINE
#SMQ ... BRN (JPMSEG)
#T7B #
#TM2 # GET ADDRESS OF NEXT RING ELEMENT
#W6L #
#WL= ...RE1 CALL 7 (JPRINT2) [PRINT HEADING
#X5W ... LDN 3 RSEARCHA(1) [TO GET FIRST ELEMENT ON RING
#XKG BRN RE2
#Y56 ...RE4 LDX 0 RBACK(1) [BACKWARD RINGING IND.
#YJQ ... LDN 3 RSEARCH(1)
#^4B BZE 0 RE2 [J IF FORWARD RINGING
#^J2 ... LDN 3 RSEARCHB(1)
*23L RE2 CALL 0 (3) [GET ADDR. OF NEXT RING ELEMENT
*2H= BRN RE3 [J IF BREAK IN RING
*32W ... TXU 2 SAFR(1) [J IF POINTS AT
*3GG ... BCC (JPMSEG) [START OF RING
*426 #
*4FQ # TO PRINT FCB AND FSTACK BLOCKS
*4^B #
*5F2 ...RE5 STO 2 RELE(1) [RECORD OF CURRENT RING ELEMENT
*5YL ADX 2 FBACKPOINT(2)
*6D= TXL 2 CORES
*6XW BCC RE6 [J IF ILLEGAL ADDRESS
*7CG ... TXL 2 X45(1)
*7X6 BCS RE6 [J IF INVALID ADDRESS
*8BQ ... STO 2 TAB+1(1) [ADDR. OF FSTACK BLOCK
*8WB ... STO 2 XFSPNTR(1)
*9B2 LDX 6 ATYPE(2)
*9TL SRL 6 12
*=*= ... SBX 6 XSTACK(1) [TEST AND
*=SW ... BNZ 6 RE8 [ J IF NOT FSTACK
*?#G ... LDN 4 1
*#RB LDX 2 BPTR(2) [GET ADDR. OF PREVIOUS BLOCK
**?2 TXL 2 CORES
**QL BCS RC1 [J IF VALID ADDRESS
*B== ...RC7 LDN 6 NAMEF(1)
*BPW LDX 7 JOZ
*C9G ADN 7 1
*CP6 MVCH 6 22
*D8Q ... CALL 7 (JPRINT2) [PRINT 'POINTER TO FCB ILLEGAL'
*DNB ... LDX 2 TAB+1(1)
*F82 ... STO 2 TAB(1)
*FML ... STOZ 4
*G7= BRN RC8
*GLW ...RC1 TXL 2 X45(1)
*H6G BCS RC7
*HL6 ... STO 2 TAB(1) [STORE ADDR. 1ST BLOCK TO PRINT
*J5Q ... STOZ MONIND(1)
*JKB LDX 2 FLAN(2)
*K52 ... TXU 2 MONFILE(1) [J IF MONITORING FILE
*KJL BCC RC9
*L4= ... TXU 2 XJDFILE(1)
*LHW BCS RC11 [J IF NOT JOB DESCRIPTION FILE
*M3G ...RC9 STO 2 MONIND(1) [SET IND. TO PRINT FURB/FUWB IN
*MH6 [MONITORING FILE FORMAT
*N2Q ...RC11 CALL 7 (JUP)
*NGB +7
*P22 ... LDN 5 NAMEH(1)
*PFL MVCH 5 9 ['FCB BLOCK' TO PRINT BUFFER
*P^= ... CALL 7 (JUP)
*QDW +13
*QYG ...RC8 CALL 7 (JUP)
*RD6 +7
*RXQ ... LDN 5 NAMEI(1)
*SCB MVCH 5 12 ['FSTACK BLOCK' TO PRINT BUFFER
*SX2 ... CALL 7 (JPRINT2) [PRINT SUB-HEADING
*TBL ... ADN 4 1
*TW= ... STO 4 XBLCOUNT(1) [COUNT OF BLOCKS TO PRINT
*W*W CALL 7 PRINT [PRINT FCB AND FSTACK BLOCKS
*WTG ... LDX 6 XFSPNTR(1) [TEST AND J IF
*X*6 BZE 6 RE8 [BLOCK TYPE NOT FSTACK
*XSQ #
*Y#B # TO PRINT FURB AND FUWB BLOCKS
*YS2 #
*^?L ... LDN 3 SEARCHA(1)
*^R= BRN RC6
B27Q ...RC5 LDN 3 SEARCH(1)
B2J= ...RC6 LDX 2 XBLCOUNT(1)
B2YQ ... SMO FXPM1
B3*= ... LDX 2 TAB-1(2) [ADDR. OF LAST BLOCK PRINTED
B3PQ CALL 0 (3) [GET ADDR. OF NEXT BLOCK
B49B BRN RC2 [J IF BREAK IN CHAIN
B4P2 ... TXU 2 XFSPNTR(1) [J IF LOOPED BACK TO
B58L BCC RC2 [FSTACK BLOCK
B5N= ... TXU 2 XBFILE(1)
B67W BCC RC3 [J IF END OF CHAIN
B6MG LDX 7 ATYPE(2)
B776 SRL 7 12 [TYPE/SUBTYPE
B7LQ ... TXU 7 XFCB(1)
B86B BCC RC3 [J IF FCB BLOCK
B8L2 ... LDN 3 XTABLE(1)
B95L RC13 TXU 7 0(3)
B9K= BCC RC10 [J IF BLOCK TO BE PRINTED IN
B=4W ADN 3 1 [FILESTORE PM FORMAT
B=JG ... TXU 3 XTABLEND(1)
B?46 BCS RC13
B?HQ ... STO 2 TAB(1)
B#3B ... LDN 4 1
B#H2 ... STO 4 XBLCOUNT(1) [PRINT AS NORMAL BLOCK
B*2L CALL 7 PRINT [IF NOT FUWB OR FURB
B*G= BRN RC5
B*^W ...RC10 STO 2 TAB(1) [ADDR. OF BLOCK
BBFG ... LDN 4 1
BB^6 ... STO 4 XBLCOUNT(1) [NO. OF BLOCKS TO PRINT
BCDQ LDN 7 A1
BCYB ... STO 7 TABL(1)
BDD2 CALL 7 PRINTA [PRINT RED TAPE WORDS
BDXL ... CALL 7 (JPRINT1) [THROW A LINE
BFC= ... LDN 3 PRBLOCK(1)
BFWW ... LDX 7 MONIND(1)
BGBG BZE 7 RC4 [J IF NOT MONITORING FILE
BGW6 ... LDN 3 PRMON(1)
BH*Q RC4 CALL 7 (3) [PRINT BLOCK
BHTB BRN RC5
BJ*2 #
BJSL # IF BREAK IN FILERING ENCOUNTERED
BK#= #
BKRW ...RE3 LDX 0 RBACK(1)
BL?G ... BNZ 0 (JPMSEG) [J IF ALREADY BACKWARD RINGING
BLR6 LDN 0 1
BM=Q ... STO 0 RBACK(1) [SET IND.
BMQB ... LDN 6 NAMEE(1)
BN=2 LDX 7 JOZ
BNPL ADN 7 1
BP9= MVCH 6 16
BPNW ... CALL 7 (JPRINT2) [PRINT 'BACKWARD RINGING
BQ8G ... CALL 7 (JPRINT1)
BQN6 ... LDX 2 SAFR(1) [START READING BACKWARD DOWN RING
BR7Q ... LDN 3 RSEARCHC(1)
BRMB BRN RE2
BS72 #
BSLL # IF FILERING CORRUPTED,I.E. NOT FSTACK BLOCK
BT6= ...#
BTKW ...RE8 LDN 5 NAMES(1)
BW5G LDX 6 JOZ
BWK6 ADN 6 1
BX4Q MVCH 5 18 [PRINT FILERING CORRUPTED
BXJB ... CALL 7 (JPRINT2)
BY42 BRN RE3
BYHL #
B^3= # IF RELATIVE POINTER IN RING ELEMENT CORRUPTED
B^GW ...#
C22G ...RE6 LDN 5 NAMEJ(1)
C2G6 LDX 6 JOZ
C2^Q ADN 6 1
C3FB MVCH 5 22 [PRINT 'FSTACK BLOCK CORRUPTED'
C3^2 BRN RC12
C4DL #
C4Y= # IF BREAK IN FILECHAIN ENCOUNTERED
C5CW ...#
C5XG ...RC2 LDN 6 NAMEG(1)
C6C6 LDX 7 JOZ
C6WQ ADN 7 1
C7BB MVCH 6 19
C7W2 ...RC12 CALL 7 (JPRINT2) [PRINT 'BREAK IN FILE CHAIN'
C8*L ... CALL 7 (JPRINT1)
C8T= ...RC3 LDX 2 RELE(1) [GET ADDR. CURRENT RING ELEMENT
C9#W BRN RE4
C9SG #
C=#6 # ENTRY POINT TO PRINT WORKFILES ASSOCIATED WITH JOBS
C=GS ...#
C=PG ...XK2PMFILE
C=Y8 ... LDX 1 FXPM1
C?6W ... ADS 1 PMFILEND(1)
C?=9 ... ADS 1 XTABLEND(1)
C?*J ... PMDLGET PMTYPES,,2
C?J= ... STO 2 ZLPMT(1)
C?R2 #
C#=L # PRINT HEADING
C#Q= #
C*9W ... CALL 7 (JPRINT2)
C*PG ... LDN 5 NAMEO(1)
CB96 LDX 6 JOZ
CBNQ BCHX 6 £
CC8B MVCH 5 30 [SET UP AND
CCN2 ... CALL 7 (JPRINT2) [PRINT HEADING
CD7L #
CDM= # GET ADDR OF NEXT ACTRING ENTRY
CF6W #
CFLG ... LDX 2 STACTRING(1)
CG66 ... LDN 3 RSEARCHA(1) [TO GET FIRST ENTRY ON RING
CGKQ BRN WFA1
CH5B ...WFA LDN 3 RSEARCH(1) [NEXT ENTRY FORWARD RINGING
CHK2 ... LDX 7 RBACK(1)
CJ4L BZE 7 WFA1 [J IF FORWARD RINGING
CJJ= ... LDN 3 RSEARCHB(1) [NEXT ENTRY BACKWARD RINGING
CK3W WFA1 CALL 0 (3) [GET NEXT ENTRY
CKHG BRN WFA10 [J IF BREAK IN RING
CL36 ... TXU 2 STACTRING(1)
CLGQ ... BCC (JPMSEG) [J IF END OF RING
CM2B #
CMG2 # CHECK IF BLOCK ON RING=CPAT BLOCK
CM^L #
CNF= SBN 3 ACTRING
CNYW LDCH 7 ATYPE(3)
CPDG ... TXU 7 XCPAT(1)
CPY6 BCS WFA [J IF NOT A CPAT BLOCK
CQCQ #
CQXB # PRINT INFORMATION ON CPAT BLOCK
CRC2 #
CRWL ... STO 2 RELE(1) [KEEP CURRENT ACTRING ADDR.
CSB= LDX 2 3
CSTW ... LDX 7 RBACKPR(1) [AND RECORD OF PREVIOUS
CT*G ... STO 7 XBACKPR(1) [ENTRY ON RING
CTT6 ... LDN 5 NAMEK(1)
CW#Q LDX 6 JOZ
CWSB BCHX 6 £
CX#2 MVCH 5 22 [MOVE 'ADDRESS OF CPAT BLOCK:' SUB-
CXRL STO 6 JPMOD [HEADING INTO PRINT BUFFER
CY?= LDX 5 2 [CONVERT ADDRESS OF CPAT BLOCK TO DEC
CYQW ... CALL 7 (JDECN)
C^=G ... CALL 7 (JPRINT2) [PRINT A LINE
C^Q6 ... CALL 7 (JUP)
D29Q +17
D2PB ... LDN 5 NAMEL(1)
D392 MVCH 5 6 [MOVE 'JOBNO' INTO PRINT BUFFER
D3NL STO 6 JPMOD
D48= LDX 5 JOBNO(2)
D4MW ... CALL 7 (JDECN) [CONVERT JOBNUM TO DEC.
D57G ... CALL 7 (JPRINT1) [PRINT A LINE
D5M6 ... CALL 7 (JUP)
D66Q +16
D6LB ... LDN 5 NAMEM(1) [MOVE 'ACTNUM:' INTO PRINT BUFFER
D762 MVCH 5 7
D7KL STO 6 JPMOD
D85= LDX 5 ACTNUM(2)
D8JW ... CALL 7 (JDECN) [CONVERT ACTNUM TO DEC.
D94G ... CALL 7 (JPRINT1) [PRINT A LINE
D9J6 ... CALL 7 (JUP)
D=3Q +4
D=HB ... LDN 5 NAMEN(1)
D?32 MVCH 5 13 [MOVE 'WORKFILE RING' INTO PRINT BUF.
D?GL #
D#2= # GET ADDR. OF NEXT BLOCK ON WORKFILE RING AND STORE READY FOR
D#FW # PRINTING
D#^G #
D*F6 ... STOZ XBLCOUNT(1) [BLOCK COUNT
D*YQ ... STOZ XIND(1) [FORWARD CHAINING IND.
DBDB LDN 2 BWORKRING(2)
DBY2 ... STO 2 SAFR(1) [START ADDR. OF RING
DCCL LDX 7 0(2)
DCX= TXU 7 2 [TEST AND
DDBW BCS WF6 [J IF ENTRY IN WORKRING
DDWG ... LDN 5 NAMER(1) [OTHERWISE ADD 'NONE' TO SUB-HEADING
DFB6 MVCH 5 7
DFTQ ...WF6 CALL 7 (JPRINT2) [PRINT 'WORKFILE RING' SUB HEADING
DG*B ... LDN 3 RSEARCHA(1) [TO GET FIRST ENTRY ON RING
DGT2 BRN WF1
DH#L ...WF LDN 3 RSEARCH(1) [TO GET NEXT ENTRY, FORWARD RINGING
DHS= LDX 7 XIND
DJ?W BZE 7 WF1 [J IF FORWARD CHAINING
DJRG ... LDN 7 RSEARCHB(1) [TO GET NEXT ENTRY, BACKWARD RINGING
DK?6 WF1 CALL 0 (3) [GET NEXT ENTRY
DKQQ BRN WF10 [J IF BREAK IN RING
DL=B ... TXU 2 SAFR(1)
DLQ2 BCC WF11 [J IF END OF RING
DL^S ... SMO XBLCOUNT(1)
DM9L STO 3 TAB(1) [STORE START ADDR. OF BLOCK
DMH2 ... LDN 4 6
DMSB ... LDN 5 1
DN5Q ... ADS 5 XBLCOUNT(1)
DNC6 ... TXU 4 XBLCOUNT(1)
DNNG BCS WF [THROUGH IF 6 BLOCKS READ
DP86 #
DPMQ # PRINT BLOCKS
DQ7B #
DQM2 ...WF5 LDX 4 XBLCOUNT(1)
DR6L ... BZE 4 WF2 [ J IF NO BLOCKS TO PRINT
DRL= ... CALL 7 (JUP)
DT56 +3
DTJQ ... LDX 5 ROWCNT(1)
DW4B ADN 5 1
DWJ2 ... STO 5 ROWCNT(1)
DX3L ... CALL 7 (JDECN)
DXH= ... CALL 7 (JUP)
DY2W -8
DYGG ... LDN 6 MNEMON(1)
D^26 LDX 7 JPMOD
D^FQ MVCH 6 4
D^^B ... CALL 7 (JPRINT2)
F2YL CALL 7 PRINT [PRINT BLOCKS
F3D= #
F3XW # PREPARE TO PRINT NEXT ROW
F4CG #
F4X6 ...WF2 LDXC 7 XIND(1)
F5BQ BCS WF13 [END OF RING
F6B2 ... BNZ 7 WF3 [IF BACKWARD RINGING
F6TL ...WF4 SMO XBLCOUNT(1)
F7*= ... LDX 2 TAB-1(1) [GET ADDR OF LAST
F7K4 ... STOZ XBLCOUNT(1)
F7SW BRN WF
F8#G #
F8S6 # IF BACKWARD RINGING
F9?Q #
F9RB WF3 SBN 7 1 [J IF 'BACKWARD RINGING' ALREADY
F=?2 BZE 7 WF4 [PRINTED
F=QL ... STO 7 XIND(1)
F?== ... LDN 5 NAMEQ(1)
F?PW LDX 6 JPMOD
F#9G BCHX 6 £
F#P6 MVCH 5 24 [MOVE 'BACKWARD
F*8Q ... LDN 5 NAMEE(1) [RINGING' HEADING
F*NB MVCH 5 16 [INTO PRINT BUFFER
FB82 ... CALL 7 (JPRINT2)
FBML ... LDX 2 SAFR(1) [SET TO SEARCH BY
FC7= ... LDN 3 RSEARCHC(1) [BACKWARD RINGING
FCC4 ... STOZ XBLCOUNT(1)
FCLW BRN WF1
FD6G #
FDL6 # IF ALL BLOCKS ON WORKFILE RING PRINTED
FF5Q #
FFKB ...WF13 LDX 2 RELE(1) [SET TO GET
FG52 ... LDX 7 XBACKPR(1) [NEXT ADDR. ON ACTRING
FGJL ... STO 7 RBACKPR(1)
FH4= ... CALL 7 (JPRINT2)
FHHW ... CALL 7 (JPRINT2)
FJ3G BRN WFA
FJH6 #
FK2Q # BREAK IN WORKFILE RING AND END OF RING ENCOUNTERED
FKGB #
FL22 ...WF10 LDX 7 XIND(1)
FLFL LDN 6 2
FL^= BZE 7 WF12 [J IF THIS IS FIRST BREAK ENCOUNTERED
FMDW WF11 LDCT 6 256 [END OF CHAIN INDICATOR
FMYG ...WF12 STO 6 XIND(1)
FND6 BRN WF5
FNXQ #
FPCB # BREAK IN ACTRING ENCOUNTERED
FPX2 #
FQBL ...WFA10 LDX 7 RBACK(1) [J IF THIS IS NOT
FQW= ... BNZ 7 (JPMSEG) [THE 1ST BREAK ENCOUNTERED
FR*W LDN 7 1
FRTG ... STO 7 RBACK(1) [BACKWARD RINGING IND.
FS*6 ... LDN 5 NAMEP(1)
FSSQ LDX 6 JPMOD
FT#B BCHX 6 £
FTS2 MVCH 5 18 [SET UP 'BACKWARD
FW?L ... LDN 5 NAMEE(1) [RINGING' HEADER
FWR= MVCH 5 16
FX=W ... CALL 7 (JPRINT2)
FXQG ... LDX 2 STACTRING(1) [SET TO CONTINUE SEARCH
FY=6 ... LDN 3 RSEARCHC(1) [BY BACKWARD RINGING
FYPQ BRN WFA1
F^9B #
F^?Q ...REDTAPE
F^B6 ... 8H00000000
F^DG ... 8HBPTR 3
F^GW ... 8HASIZE 3
F^K= ... 8HAFLAG 0
F^ML ... 8HATYPE 0
F^Q2 ... 8HBACK1 3
F^SB ... 8HBACK2 0
F^WQ ... 8HALOGL 3
F^^6 ... 8HARGNO 0
G23G ... 4H^^^^
G25W ...#
G28L #
G2N= ZPMFILE
G37W #
G3MG #END
^^^^ ...76446261001200000000