RING-MACROS

(George Source)

RING-MACROS.txt
22FL ...[??? SKIPTRAC SECT FILE FGN 20 DOC  
3#FB    #MAC  SKIPTRACE 
3#^2    #     A MINOR UARIATION ON TRACE-FOR STEP ONLY  
3*DL    #SKI  K6ACCESS>%A-%A
3*Y=          TRACE  %B,%C  
3BCW    #NOR
3BMN ...[??? ADDSKIP SECT FILE FGN 20 DOC   
3BXG    #MAC  ADDSKIP   
3CC6    #     ADD IN ONE TO VARIOUS STASTISTICAL LOCATIONS  
3CWQ    #SKI  %A
3DBB    (   
3DW2          LDN   0  1
3F*L    #STR  %B
3FT=          ADS   0  %B   
3G#W    #STR  %C
3GSG          ADS   0  %C   
3H#6    #STR  %D
3HRQ          ADS   0  %D   
3J?B    )   
3JR2    #NOR
3K2S ...[??? VARIADNR SECT FILE FGN 20 DOC  
3K=L    [  THIS MACRO IS USED TO UPDATE CTS. RELEVANT TO FILESTOR READ  
3KQ=    [  TRANSFERS ON VARIOUS TYPES OF FILE   
3L9W    #MAC VARIADNR   
3LPG    #SKI I516A  
3M96    (   
3MNQ          LDX   0  %A   
3N8B          STO   0  GEN5 
3NN2          CALL  0  (ARIADR) 
3P7L    )   
3PM=    #NOR
3PX4 ...[??? VARIADNW SECT FILE FGN 20 DOC  
3Q6W    [  AS FOR VARIADR BUT FOR WRITE TRANSFERS.  
3QLG    #MAC VARIADNW   
3R66    #SKI I516A  
3RKQ    (   
3S5B          LDX   0  %A   
3SK2          STO   0  GEN5 
3T4L          CALL  0  (ARIADW) 
3TJ=    )   
3W3W    #NOR
3W?N ...[??? TESTUSEJ SECT FILE FGN 20 DOC  
3WHG    #MAC  TESTUSEJ  
3X36    #     JUMPS TO %B,IF ANYONE ELSE IS USING THE BLOCK IN FREADBLOCK OF
3XGQ    #     THE ELEMENT AT %A,IN THE FSTACK BLOCK AT %C. X0 & X3 ARE OVERWRITT
3Y2B    #     AND %C MAY BE IN A DUBIOUS STATE IF ONE HAS JUMPED TO UB  
3YG2          LDEX  3  ARINGNO(%C)         [CT FOR LOOP 
3Y^L          SBN   3  1
3^F=          BZE   3  M3TESTUSEJ          [J IF ONLY ONE ELEMENT IN FSTACK BLK 
3^YW          ADN   3  1                   [ADD 1 TO COUNT AGAIN
42DG          LDX   0  3
42Y6    M4TESTUSEJ  
43CQ          ADN   %C FELLEN   
43XB          BCT   0  M4TESTUSEJ   
44C2    M2TESTUSEJ  
44WL          SBN   %C FELLEN          [PTR.TO NEXT ELEMENT(GOING UP BLOCK) 
45B=          LDCT  0   #776                [J ROUND IF NOT OPEN
45TW          ANDX  0   A1+FGENERAL1(%C)    [I.E. SPARE FCA USED BY AUTOCLOSE   
46*G          BZE   0   M1TESTUSEJ  
46T6          LDX   0  FREADBLOCK(%A)      [DROP THRU' IF SOMEONE BEHIND US IN  
47#Q          SBX   0  FREADBLOCK+A1(%C)   [FILE
47SB          BNG   0  M1TESTUSEJ   
48#2          BZE   0  M5TESTUSEJ   
48RL          SBN   0  1
49?=          BZE   0  %B   
49QW          BRN      M1TESTUSEJ   
4==G    M5TESTUSEJ  
4=Q6          LDN   0  A1(%C)   
4?9Q          SBN   0  0(%A)               [J IF NOT OUR ELEMENT
4?PB          BNZ   0  %B                  [
4#92    M1TESTUSEJ  
4#NL          BCT   3  M2TESTUSEJ          [J  BACK 
4*8=    M3TESTUSEJ  
4*MW    #NOR
4*XN ...[??? TESTWAIT SECT FILE FGN 20 DOC  
4B7G    #MAC  TESTWAIT  
4BM6    #     VERY  MUCH AS ABOVE,JUMPS IF ANYONE ELSE IS WAITING FOR BLOCK 
4C6Q          LDEX  3  ARINGNO(%C)  
4CLB          SBN   3  1
4D62          BZE   3  M3TESTWAIT   
4DKL          ADN   3  1
4F5=          LDX   0  3
4FJW    M4TESTWAIT  
4G4G          ADN   %C FELLEN   
4GJ6          BCT   0  M4TESTWAIT   
4H3Q    M2TESTWAIT  
4HHB          SBN   %C FELLEN   
4J32          LDCT  0   #776
4JGL          ANDX  0   A1+FGENERAL1(%C)
4K2=          BZE   0   M1TESTWAIT  
4KFW          LDX   0  FREADBLOCK+A1(%C)
4K^G          BXU   0  FREADBLOCK(%A),M1TESTWAIT
4LF6          LDX   0  FGENERAL2+A1(%C) 
4LYQ          ANDN  0  1
4MDB          BNZ   0  %B   
4MY2    M1TESTWAIT  
4NCL          BCT   3  M2TESTWAIT   
4NX=    M3TESTWAIT  
4PBW    #NOR
4PLN ...[??? TESTLOOK SECT FILE FGN 20 DOC  
4PWG    #MAC  TESTLOOK  
4QB6    #     AS ABOVE -J.IF SOMEONE GONE FOR LAST BLOCK
4QTQ          LDEX  3  ARINGNO(%C)  
4R*B          SBN   3  1
4RT2          BZE   3  M3TESTLOOK   
4S#L          ADN   3  1
4SS=          LDX   0  3
4T?W    M4TESTLOOK  
4TRG          ADN   %C FELLEN   
4W?6          BCT   0  M4TESTLOOK   
4WQQ    M2TESTLOOK  
4X=B          SBN   %C FELLEN   
4XQ2          LDCT  0   #776
4Y9L          ANDX  0   A1+FGENERAL1(%C)
4YP=          BZE   0   M1TESTLOOK  
4^8W          LDX   0  FREADBLOCK+A1(%C)
4^NG          BXU   0  FREADBLOCK(%A),M1TESTLOOK
5286          LDX   0  FGENERAL2+A1(%C) 
52MQ          ANDN  0  2
537B          BNZ   0  %B   
53M2    M1TESTLOOK  
546L          BCT   3  M2TESTLOOK   
54L=    M3TESTLOOK  
555W    #NOR
55*N ...[??? TESTSLOW SECT FILE FGN 20 DOC  
55KG    #MAC  TESTSLOWEST   
5656    #     JUMPS TO %B,IF ALL OTHER READERS IN FSTACK BLOCK POINTED TO BY %C 
56JQ    #     READ MORE BLOCKS OF THE FILE THAN THE READER WITH ELEMENT AT %A.  
574B          LDEX  3  ARINGNO(%C)         [CT FOR LOOP 
57J2          SBN   3  1
583L          BZE   3  %B                  [J IF ONLY 1 ELEMENT IN FSTACK BLOCK.
58H=          ADN   3  1
592W          LDX   0  3
59GG    M4TESTSLOW  
5=26          ADN   %C FELLEN   
5=FQ          BCT   0  M4TESTSLOW   
5=^B    M2TESTSLOW  
5?F2          SBN   %C FELLEN   
5?YL          LDXC  0  A1+FGENERAL1(%C) 
5#D=          BCC      M1TESTSLOW   
5#XW          LDX   0  FREADBLOCK+A1(%C)
5*CG          BNG   0  M3TESTSLOW   
5*X6          LDX   0  FREADBLOCK(%A)   
5BBQ          BNG   0  M1TESTSLOW   
5BWB          BXL   0  FREADBLOCK+A1(%C),M1TESTSLOW 
5CB2          LDN   0  A1(%C)   
5CTL          SBN   0  0(%A)
5D*=          BNZ   0  M3TESTSLOW   
5DSW    M1TESTSLOW  
5F#G          BCT   3  M2TESTSLOW   
5FS6          BRN      %B   
5G?Q    M3TESTSLOW  
5GRB    #NOR
5H38 ...[??? XTESTSLO SECT FILE FGN 20 DOC  
5H?2    #     AS ABOVE , BUT CHECKS WORD POINTER TOO
5HQL    #MAC XTESTSLOWEST   
5J==          LDEX  3  ARINGNO(%C)  
5JPW          SBN   3  1
5K9G          BZE   3  %B   
5KP6          ADN   3   1   
5L8Q          LDX   0  3
5LNB    M4XTEST 
5M82          ADN   %C FELLEN   
5MML          BCT   0  M4XTEST  
5N7=    M2XTEST 
5NLW          SBN   %C FELLEN   
5P6G          LDXC  0  A1+FGENERAL1(%C) 
5PL6          BCC      M1XTEST  
5Q5Q          LDX   0  FREADBLOCK(%A)   
5QKB          BNG   0  M1XTEST  
5R52          SBX    0  FREADBLOCK+A1(%C)   
5RJL          BNG   0  M1XTEST  
5S4=          BNZ   0  M3XTEST  
5SHW          LDX   0  FREADWORD(%A)
5T3G          BNG   0  M1XTEST  
5TH6          SBX   0  FREADWORD+A1(%C) 
5W2Q          BNG   0  M1XTEST  
5WGB          BNZ   0  M3XTEST  
5X22          LDN   0  A1(%C)   
5XFL          SBN   0  0(%A)
5X^=          BNZ   0  M3XTEST  
5YDW    M1XTEST 
5YYG          BCT   3  M2XTEST  
5^D6          BRN      %B   
5^XQ    M3XTEST 
62CB    #NOR
62CL ...[??? STILLSLOW SECT FILE FGN 20 DOC 
62CW ...#     AS XTESTLOWEST BUT EQUAL SLOWEST TREATED AS SLOWEST   
62D6 ...#MAC  STILLSLOW 
62DB ...      LDEX  3  ARINGNO(%C)  
62DL ...      SBN   3  1
62DW ...      BZE   3  %B   
62F6 ...      ADN   3  1
62FB ...      LDX   0  3
62FL ...M4STILLSLOW 
62FW ...      ADN   %C FELLEN   
62G6 ...      BCT   0  M4STILLSLOW  
62GB ...M2STILLSLOW 
62GL ...      SBN   %C FELLEN   
62GW ...      LDXC  0  A1+FGENERAL1(%C) 
62H6 ...      BCC      M1STILLSLOW  
62HB ...      LDX   0  FREADBLOCK(%A)   
62HL ...      BNG   0  M1STILLSLOW  
62HW ...      SBX    0  FREADBLOCK+A1(%C)   
62J6 ...      BNG   0  M1STILLSLOW  
62JB ...      BNZ   0  M3STILLSLOW  
62JL ...      LDX   0  FREADWORD(%A)
62JW ...      BNG   0  M1STILLSLOW  
62K6 ...      SBX   0  FREADWORD+A1(%C) 
62KB ...      BNG   0  M1STILLSLOW  
62KL ...      BNZ   0  M3STILLSLOW  
62KW ...M1STILLSLOW 
62L6 ...      BCT   3  M2STILLSLOW  
62LB ...      BRN      %B   
62LL ...M3STILLSLOW 
62LW ...#NOR
62M8 ...[??? BLOCKDOW SECT FILE FGN 20 DOC  
62X2    #MAC  BLOCKDOWN 
63BL    #     SUBTRACTS ONE FROM EACH FREADBLOCK IN THE FSTACK BLOCK POINTED TO 
63W=    #     %A. %B IS AN ACCUMULATOR FOR USE BY(AND OVERWRITTEN BY)THE MACRO. 
64*W          LDEX  %B ARINGNO(%A)         [CT FOR LOOP 
64TG          LDX   0  %B   
65*6    M3BLOCKDOWN 
65SQ          ADN   %A FELLEN   
66#B          BCT   0  M3BLOCKDOWN  
66S2    M2BLOCKDOWN 
67?L          SBN   %A FELLEN              [PTR TO NEXT ELEMENT(GOING UP BLOCK) 
67R=          LDX   0  FREADBLOCK+A1(%A)
68=W          BNG   0  M1BLOCKDOWN  
68QG          SBN   0  1
69=6          STO   0  FREADBLOCK+A1(%A)
69PQ    M1BLOCKDOWN 
6=9B          BCT   %B M2BLOCKDOWN  
6=P2    #NOR
6=YS ...[??? SFUB SECT FILE FGN 20 DOC  
6?8L    #MAC  SFUB  
6?N=    #     SEARCHES FROM THB FSTACK BLOCK AT %A FOR TIE USAGE BLOCB WHOSE
6#7W    #     BLOCK NUMBER IS IN %B,SETTING THE PTR IN %C IF FOUND& BRNING  
6#MG    #      TO %D IF NOT FOUND . X1 &X0 OVERWRITTEN  
6*76    #   
6*LQ    #STR  %A,1  
6B6B          LDX   1  %A   
6BL2    M1SFUB  
6C5L          LDX   1  FPTR(1)  
6CK=    #SKI  IFS<1$1   
6DJG          LDX   0  ATYPE(1) 
6F46          BXE   0  FILEPLUSFCB,%D   
6FHQ          BXE   0  FFSFURB,M2SFUB   
6G3B          BXU   0  FFSFUWB,M1SFUB   
6GH2    M2SFUB  
6H2L          LDX   0  BACK2(1) 
6HG=          BXU   0  %B,M1SFUB
6HQ4 ...      BXE   1  CXFI,%D  
6H^W    #STR   %C,1 
6JFG          STO    1  %C  
6J^6    #NOR
6K8Y ...[??? SFSTACK SECT FILE FGN 20 DOC   
6KDQ    #MAC  SFSTACK   
6KYB    #     THIS  MACRO SEARCHES DOWN THE FILERING FOR THE RING ELEMENT OF
6LD2    #     THE FILE OPEN AT DEPTH[%A].A POINTER TO THIS ELEMENT IS PUT INTO  
6LXL    #     %B & IF DESIRED,A POINTER TO THE FSTACK BLOCK IS PUT IN %C
6MC=    #     X0 &%B,%C ARE OVERWRITTEN 
6MWW    #     IF %D IS PRESENT,WE SEARCH FOR IT THE ELEMENT ATGIVEN DEPTH FOR TH
6NBG    #     ACTIVITY  
6NW6    #   
6P*Q    #STR  %B,%D 
6PTB    #SKI
6Q*2    !     SFSTACK   !  %B=%D   !!!  
6QSL    #STR  %A
6R#=    #SKI
6RRW    (   
6S?G    #STR  %D
6SR6    #SKI
6T=Q    (   
6TQB          SMO      FX2  
6W=2          LDX   %B FILERING 
6WPL    )   
6X9=    #STR  %D
6XNW      MOD  LDX  %B FILERING,%D  
6Y8G    )   
6YN6    #STR  %A
6^7Q    (   
6^MB    #STR  %A,0  
7272    (   
72LL    #STR  %A
736=          LDX   0  %A   
73KW    )   
745G          BNG   0  MSFSTACK3
74K6    #STR  %D
754Q      MOD  LDX  %B FILERING,%D  
75JB    #STR  %D
7642    #SKI
76HL    (   
773=          SMO      FX2  
77GW          LDX   %B FILERING 
782G    )   
78G6          BZE   0  MSFSTACK2
78^Q    MSFSTACK1   
79FB     MOD  LDX   %B  FPTRF,%B
79^2          BCT   0  MSFSTACK1
7=DL          BRN      MSFSTACK2
7=Y=    MSFSTACK3   
7?CW    #STR  %D
7?XG     MOD  LDX   %B FILERING+1,%D
7#C6    #STR  %D
7#WQ    #SKI
7*BB    (   
7*W2          SMO      FX2  
7B*L          LDX   %B FILERING+1   
7BT=    )   
7C#W    MSFSTACK4   
7CSG          ADN   0  1
7D#6          BZE   0  MSFSTACK2
7DRQ     MOD  LDX   %B BPTRF,%B 
7F?B          BRN      MSFSTACK4
7FR2    MSFSTACK2   
7G=L    )   
7GQ=    #STR  %C
7H9W    (   
7HPG          LDX   %C %B   
7J96     MOD  ADX   %C  FBACKPOINT,%C   
7JNQ    )   
7K8B    #NOR
85F8 ...[??? FILEOPEN SECT FILE FGN 20 DOC  
85RL    #MAC  FILEOPEN  
86?=          LDX   2  FX2  
86QW          LDN   0  FILERING(2)  
87=G          BXE   0  FILERING(2),%A   
87Q6    #NOR
87^Y ...[??? FILENUMB SECT FILE FGN 20 DOC  
889Q    #MAC  FILENUMB  
88PB    [     PUTS NO. OF FILES OPEN IN %A  
8992    [     ACT-POINTED TO BY %B, DEFAULT FX2 
89NL    #ACC  %A
8=8=    (   
8=MW     LDN 0 1
8?7G     STOZ %A
8?M6    )   
8#6Q    #ACC  %A
8#LB    #SKI
8*62          LDN   %A 0
8*KL    #STR  %B
8B5=     MOD LDN 2 FILERING,%B  
8BJW    #STR  %B
8C4G    #SKI
8CJ6    (   
8D3Q     SMO FX2
8DHB     LDN 2 FILERING 
8F32    )   
8FGL     LDX 1 2
8G2=    M1FILENUMB  
8GFW     LDX 1 FPTRF(1) 
8G^G     BXE 1 2,M2FILENUMB 
8HF6    #ACC  %A
8HYQ     ADS 0 %A   
8JDB    #ACC  %A
8JY2    #SKI
8KCL          ADN   %A 1
8KX=     BRN M1FILENUMB 
8LBW    M2FILENUMB  
8LWG     LDX 1 FX1  
8MB6     LDX 2 FX2  
8MTQ    #NOR
8N5J ...[??? FILECOUN SECT FILE FGN 20 DOC  
8N*B    #MAC  FILECOUNT 
8NT2          FILENUMB %A   
8P#L    #NOR
8PJD ...[??? LASTREKA SECT FILE FGN 20 DOC  
8PS=    #MAC  LASTREKA  
8Q?W    [     %A -> USAGE BLOCK,%B -> NONZERO R.H   
8QRG    [     %B ON EXIT -> LAST(ZERO)RECORD
8R?6    M1LASTREKA  
8RQQ          SMO      %B   
8S=B          LDEX  0  0(%A)
8SQ2          BZE   0  M2LASTREKA   
8T9L          ADS   0  %B   
8TP=          BRN      M1LASTREKA   
8W8W    M2LASTREKA  
8WNG    #NOR
95?D ...[??? TOPFCA2 SECT FILE FGN 20 DOC   
95H=    #MAC  TOPFCA2                      [X2 ->[FX2]  
962W          LDX   %A FILERING(2)  
96GG    #NOR
96Q# ...[??? PSTAC SECT FILE FGN 20 DOC 
9726    #MAC  PSTAC 
97FQ    #STR  %A,%B 
97^B          LDX   %A %B   
98F2          ADX   %A FBACKPOINT(%A)   
98YL    #NOR
998D ...[??? BFCBX SECT FILE FGN 20 DOC 
99D=    #MAC  BFCBX                        [GIVEN FSTACK POINTER IN X%B,GIVES   
99XW          LDX   %A BPTR(%B)            [FCB POINTER IN X%A  
9=CG    #NOR
9=M# ...[??? TOPFCA SECT FILE FGN 20 DOC
9=X6    #MAC  TOPFCA
9?BQ    [ THIS MACRO SEARCHES FOR THE RING ELEMENT OF THE TOP FILE OPEN TO THE  
9?WB    [ CURRENT ACTIVITY AND GIVES A POINTER TO IT IN %A  
9#B2          SMO      FX2  
9#TL    #ACC   %A   
9**=    #SKI
9*SW          LDX   %A FILERING            [FOR %A AN ACCUMUALTOR   
9B#G    #ACC %A 
9BS6    (   
9C?Q          LDX   0  FILERING            [FOR %A NOT AN ACCUMULATOR   
9CRB          STO   0  %A   
9D?2    )   
9DQL    #NOR
9F2D ...[??? TOPFCAV SECT FILE FGN 20 DOC   
9F==    #MAC  TOPFCAV   
9FPW    #     GIVES   PTR  TO  FCA OF TOP FILE OPEN TO ACTIVITY POINTED TO BY   
9G9G    #     %B
9GP6      MOD LDX %A FILERING,%B
9H8Q    #NOR
9HDJ ...[??? NXFCA SECT FILE FGN 20 DOC 
9HNB    #MAC  NXFCA 
9J82    #   
9JML    # TO GIVF A POINTER IN %B TO NEXT ELEMENT IN FILERING AFTER %B, 
9K7=    # AND BRANCH TO %C IF IT DOES NOT EXIST.
9KLW          LDX   %B FPTRF(%A)
9L6G          LDX   0  %B   
9LL6          SMO      FX2  
9M5Q          SBN   0  FILERING 
9MKB          BZE   0  %C   
9N52    #NOR
9N#S ...[??? TOPFCB SECT FILE FGN 20 DOC
9NJL    #MAC  TOPFCB
9P4=    [THIS MACRO SEARCHES FOR THE FCB OF THE TOP FILE OPEN TO THE CURRENT
9PHW    [ACTIVITY AND GIVES A POINTER TO IT IN THE MODIFIER %A  
9Q3G    [THIS MACRO DOES NOT CHECK IF THE POINTER GIVEN IS TO AN FCB
9QH6          SMO      FX2  
9R2Q          LDX   %A FILERING            [PICK UP -> TO RING ELEMENT  
9RGB          ADX   %A FBACKPOINT(%A)      [-> FSTACK BL.   
9S22          LDX   %A BPTR(%A)            [PICK UP -> TO FCB   
9SFL    #NOR
9SPD ...[??? TOPFCB2 SECT FILE FGN 20 DOC   
9S^=    #MAC  TOPFCB2   
9TDW          LDX   %A FILERING(2)  
9TYG      MOD ADX   %A FBACKPOINT,%A
9WD6      MOD LDX   %A BPTR,%A  
9WXQ    #NOR
9X7J ...[??? TOPFCBV SECT FILE FGN 20 DOC   
9XCB    #MAC  TOPFCBV   
9XX2    #     GIVES  PTR  TO  FCB  OF TOP FILE OPEN TO ACTIVITY POINTED TO BY   
9YBL    #     %B
9YW=     MOD LDX %A FILERING,%B 
9^*W          PSTAC  %A,%A  
9^TG          BFCBX  %A,%A  
=2*6    #NOR
=2JY ...[??? TFCBCHEC SECT FILE FGN 20 DOC  
=2SQ    #MAC  TFCBCHECK 
=3#B    [THIS MACRO DOES THE SAME AS TOPFCB AND CHECKS THAT THE POINTER GIVEN IN
=3S2    [%A IS TO A FILE/FCB
=4?L          TOPFCB   %A   
=4R=          LDX   0  ATYPE(%A)
=5=W          SBX   0  FILEPLUSFCB  
=5QG          BZE   0  M1TFCBCHECK  
=6=6          GEOERR   1,FCB MISS   
=6PQ    M1TFCBCHECK 
=79B    #NOR
=7F8 ...[??? BASEFCB SECT FILE FGN 20 DOC   
=7P2    [   
=7S7 ...#MAC  BASEFCB   
=7X# ...[   
=82F ...[    SET UP FOR SEARCH VIA FCB RING 
=85L ...[    %A MODIFIER FOR FCB RING   
=88R ...[    %B FILE,HALF,DIR OR WORK   
=8?Y ...[    %C LABEL IF NO FCBS
=8C5 ...[    %D SPARE ACC NULL TAKES X0 
=8G= ...
=8KC ...#STR  %D
=8NJ ...#STR
=8RP ...      BASEFCB %A,%B,%C,0,%E 
=8WW ...#STR  %D
=923 ...(   
=958 ...
=98* ...#OPT  MBFCBFILE=1   
=9?G ...#OPT  MBFCBDIR=2
=9BM ...#OPT  MBFCBHALF=4   
=9FS ...#OPT  MBFCBWORK=8   
=9J^ ...#DEF  MBFCB=MBFCB%B 
=9N6 ...
=9R? ...#SKI  MBFCB&7   
=9WD ...(   
=9^K ...                [NOT WORK FILE  
==4Q ...      %E
==7X ...      LDX   %D  B%BN
==?4 ...#SKI  MBFCB&4   
==B9 ...      BZE   %D  %C         [ZERO FCBS MAYBE FOR HALF ONLY   
==FB ...
==JH ...#SKI  MBFCB&1   
==MN ...      LDX   %A  BFILE   
==QT ...
==W2 ...#SKI  MBFCB&2   
==^7 ...      LDX   %A  BFILE   
=?4# ...
=?7F ...#SKI  MBFCB&4   
=?=L ...      LDX   %A  BHALF   
=?*R ...
=?DY ...      ADN   %A  FCBRING 
=?J5 ...
=?M= ...#SKI  MBFCB&5   
=?QC ...(   
=?TJ ...#STR  %E
=?YP ...#SKI
=#3W ...      LDX   %A  1(%A)   
=#73 ...)   
=#=8 ...)   
=#** ...
=#DG ...#SKI  MBFCB&8   
=#HM ...(   
=#LS ...      LDN   %D  BWORKRING(%A)         [WORKFILE CASE
=#P^ ...      BXE   %D  BWORKRING(%A),%C         [EMPTY 
=#T6 ...      LDX   %D  BWORKRING(%A)   
=#Y? ...      ADN   %D  FCBRING 
=*3D ...      LDX   %A  %D  
=*6K ...
=*9Q ...)   
=*#X ...
=*D4 ...#FRE  MBFCB 
=*H9 ...)   
=*LB ...#NOR
=HL= ...[??? NEXTFCB SECT FILE FGN 20 DOC   
=HPW ...#MAC  NEXTFCB   
=HTG ...[   
=H^6 ...[      MOVE TO NEXT FCB 
=J4Q ...[      PARAMETERS AS BASEFCB
=J8B ...[       EXCEPT LABEL USED IF MORE FCBS ARE PRESENT  
=J#2 ...#STR  %D
=JCL ...#STR
=JH= ...      NEXTFCB %A,%B,%C,0,%E 
=JLW ...#STR  %D
=JQG ...(   
=JW6 ...
=J^Q ...#OPT  NXFCBFILE=1   
=K5B ...#OPT  NXFCBDIR=2
=K92 ...#OPT  NXFCBHALF=4   
=K#L ...#OPT  NXFCBWORK=8   
=KD= ...#DEF  NXFCB=NXFCB%B 
=KHW ...
=KMG ...      %E
=KR6 ...#SKI  NXFCB&5   
=KWQ ...      LDX   %A  1(%A)         [BACKWARDS SEARCH FOR FILE OR HALF
=L2B ...#SKI NXFCB&#12  
=L62 ...      LDX   %A  0(%A)         [FORWARDS SEARCH FOR DIR OR WORK  
=L9L ...#SKI  NXFCB&8   
=L*= ...(   
=LDW ...      BXU   %D  %A,%C         [WORKFILES END OF RING TEST   
=LJG ...)   
=LN6 ...#SKI  NXFCB&7   
=LRQ ...      BCT   %D  %C         [FILE,DIR AND HALF END OF RING TEST  
=LXB ...#FRE  NXFCB 
=M32 ...)   
=M6L ...#NOR
=M== ...[??? DELFCB SECT FILE FGN 22 DOC
=M*W ...#MAC  DELFCB
=MFG ...
=MK6 ...[ MACRO TO FREE AN FCB  
=MNQ ...[ %A IS POINTER TO FCB %B IS FILE HALF OR WORK  
=MSB ...[[  
=MY2 ...
=N3L ...      LDX   1  %A   
=N7= ...[   
=N=W ...#STR  WORK,%B   
=NBG ...(   
=NG6 ...      LDN   0  1         [ADJUST COUNTS FOR HALF AND FILE   
=NKQ ...#STR  HALF,%B   
=NPB ...(   
=NT2 ...      LDX   2  BACK2(1)      [DIR COUNT AS WELL TO BE ADJUSTED  
=NYL ...      BPZ   2  MDELFCB  
=P4= ...      SBS   0  BDIRN
=P7W ...MDELFCB 
=P?G ...)   
=PC6 ...
=PGQ ...      SBS   0  B%BN 
=PLB ...)   
=PQ2 ...      FREECORE 1
=PTL ...#NOR
?WJ8 ...[??? GETFCB SECT FILE FGN 20 DOC
?WWL    #   
?XB=    #MAC  GETFCB
?XTW    [ THIS MACRO SEARCHES FOR THE FCB INDICATED BY THE BACKING STORE HOME IN
?Y*G    [ %A,%A+1 IN THE OPEN FILE CHAIN STARTING AT THE BACK OF THE CHAIN  
?YJC ...#MOD %B 
?YR# ...!!!!!   
?^29 ...#SKI %A-5   
?^96 ...(   
?^D3 ...      STO   5  GEN0 
?^LY ...      STO   6  GEN1         [STO ACCS IF X5,6 NOT USED  
?^TT ...#STR  %A,4  
#24Q ...#STR
#2?M ...(   
#2GJ ...      LDX   6  %A+1          [%A -3 CAREFUL ABOUT X4
#2PF ...      LDX   5  %A   
#2YB ...)   
#37? ...#STR  %A,4  
#3B8 ...(   
#3K5 ...      LDX   5  %A         [LOAD FCB NUMBERS 
#3S2 ...      LDX   6  %A+1 
#42X ...)   
#49S ...)   
#4DP ...      LDXC  0  6         [GET 1 OR 0 FOR FILE MOD   
#4ML ...      LDN   0  0         [1-DIR 0= FILE 
#4WH ...      ERN   0  1         [DIR=0 FFLE =1 
#55D ...      STO   0  GEN2 
#5#* ...
#5H= ...      BASEFCB %B,DIR,M4GETFCB,,SMO      GEN2      [SET UP ACCS FOR  
#5Q7 ...[SEARCH OF FCB RING 
#5^4 ...#STR %C 
#67^ ...      STO   %B  GEN3         [RERING OPTION SAVE FIRST FCB  
#6BW ...M1GETFCB
#6KR ...      SMO      CMIN64         [SMO TO TAKE US BACK TO BACK12
#6SN ...      BXE   6  61(%B),M3GETFCB         [BACK2  CORRECT  
#73K ...M2GETFCB
#7=G ...      NEXTFCB %B,DIR,M1GETFCB,,SMO      GEN2      [NO TRY NEXT  
#7FC ...M4GETFCB
#7N# ...      GEOERR 1,FCB MISS         [FCB NOT FOUND  
#7X9 ...M3GETFCB
#866 ...      SMO      CMIN64         [BACK1 CORRECT?   
#8*3 ...      BXU   5  60(%B),M2GETFCB         [NO TRY NEXT 
#8HY ...#STR  %C
#8QT ...(   
#8^Q ...#SKI  %B-3  
#98M ...      STO   %B  GEN3
#9CJ ...      RERING %B,GEN2         [RERING FCB TO FIND IT FASTER  
#9LF ...#SKI  %B-3  
#9TB ...      LDX   %B  GEN3
#=4? ...)   
#=?8 ...      SBN   %B  FCBRING 
#=G5 ...#SKI  %A-5  
#=P2 ...(   
#=XX ...      LDX   5  GEN0 
#?6S ...      LDX   6  GEN1 
#?*P ...)   
#?JW    #NOR
#?SN ...[??? XSFCB SECT FILE FGN 20 DOC 
##4G    #MAC  XSFCB 
##J6    [ THIS IS THE REDEFINED SFCB MACRO WHICH GIVES A POINTER IN %B TO THE   
#*3Q    [ FCB OF THE FILE OPEN AT LEVEL %A TO THE CURRENT ACTIVITY  
#*HB          SFSTACK  %A,%B               [TO GIVE %B-> TO FCA IN STACK BLOCK  
#B32     MOD ADX %B FBACKPOINT,%B          [%B -> FSTACK
#BGL     MOD LDX %B BPTR,%B                [%B -> FCB   
#C2=     MOD LDX 0 ATYPE,%B                [= FCB?  
#CFW          SBX   0  FILEPLUSFCB  
#C^G          BZE   0  M1XSFCB  
#DF6    #SKI  K6ALLGEO  
#DYQ          GEOERR   1,FCB MISS   
#FDB    M1XSFCB 
#FY2    #NOR
#G7S ...[??? SFCB SECT FILE FGN 20 DOC  
#GCL    #MAC  SFCB  
#GX=          XSFCB    %A,%B
#HBW    #NOR
#HLN ...[??? TOPFCAB SECT FILE FGN 20 DOC   
#HWG    #MAC  TOPFCAB   
#JB6          SMO      FX2  
#JTQ          LDX   %A FILERING 
#K*B          SMO      FBACKPOINT(%A)   
#KT2          LDX   %B BPTR(%A) 
#L#L    #NOR
#LJD ...[??? TOPFCAB2 SECT FILE FGN 20 DOC  
#LS=    #MAC  TOPFCAB2  
#M?W          LDX   %A FILERING(2)  
#MRG          SMO      FBACKPOINT(%A)   
#N?6          LDX   %B BPTR(%A) 
#NQQ    #NOR
#P2J ...[??? FCANO2 SECT FILE FGN 20 DOC
#P=B    #MAC  FCANO2
#PQ2    [   
#Q9L    [     SET %A -> SECOND FCA IN FILECHAIN,BRN %B IF NOT PRESENT   
#QP=    [   
#R8W          TOPFCA   %A,%A
#RNG          NXFCA    %A,%A,%B 
#S86    #NOR
#SCY ...[??? FCBNO2 SECT FILE FGN 20 DOC
#SMQ    #MAC  FCBNO2
#T7B    [   
#TM2    [     SET %A -> SECOND FCB,BRN %B IF NOT THERE  
#W6L    [   
#WL=          FCANO2   %A,%B
#X5W          PSTAC    %A,%A
#XKG          BFCBX    %A,%A
#Y56    #NOR
#Y#Y ...[??? RINGFILE SECT FILE FGN 20 DOC  
#YJQ    #MAC  RINGFILE  
#^4B    [ THIS MACRO PUTS THE FILE ELEMENT POINTED TO IN %A INTO THE FILE RING  
#^J2    [ OF THE CURRENT ACTIVITY AT THE TOP LEVEL AND UPDATES FGENERAL1
*23L    #SKI  %B
*2H=     MOD LDX 0 FILERING,%B  
*32W    #SKI  %B
*3GG    #SKI
*426    (   
*4FQ          SMO      FX2  
*4^B          LDX   0  FILERING            [PUTS POINTER TO NEW LEVEL 1 FILE
*5F2    )   
*5YL     MOD STO 0 FPTRF,%A 
*6D=          SMO      0                   [PUTS %A IN BACK POINTER OF LEVEL 1  
*6XW          STO   %A BPTRF               [ELEMENT 
*7CG    #SKI  %B
*7X6     MOD LDN 0 FILERING,%B  
*8BQ    #SKI  %B
*8WB    #SKI
*9B2    (   
*9TL          SMO      FX2  
*=*=          LDN   0  FILERING            [PUTS POINTER TO BASE OF FILE RING IN
*=SW    )   
*?#G      MOD STO 0 BPTRF,%A
*?S6    #SKI  %B
*#?Q     MOD STO %A FILERING,%B 
*#RB    #SKI  %B
**?2    #SKI
**QL    (   
*B==          SMO      FX2                 [PUTS %A IN FORWARD POINTER OF BASE  
*BPW          STO   %A FILERING            [OF RING IN ACTIVITY BLOCK   
*C9G    )   
*CP6    #NOR
CFBN ...[??? RESTOREN SECT FILE FGN 20 DOC  
CFLG    [   
CG66    #MAC  RESTOREN  
CGKQ          SETMODE  0,%A 
CH5B          SMO      FX2  
CHK2          STO   0  ACOMMUNE1
CJ4L ...      DOWN     OPENEND,5
CJJ=    #NOR
CJS4 ...[??? SFCAB SECT FILE FGN 20 DOC 
CK3W    [   
CKHG    #MAC  SFCAB 
CL36          SFCA     %A,%B,%C 
CLGQ    #MOD %C 
CM2B    #SKI
CMG2          LDX   %C BPTR(%C) 
CM^L    #MOD %C 
CNF=    (   
CNYW          SMO      %C   
CPDG          LDX   %C BPTR 
CPY6    )   
CQCQ    #NOR
CQMJ ...[??? SFCA SECT FILE FGN 20 DOC  
CQXB    #MAC  SFCA  
CRC2    #OPT  M2SFCA=%B<4$4<1   
CRWL    #STR  %C
CSB=    #OPT  M3SFCA=%C<4$4<1<%C
CSTW    #OPT  M3SFCA=0  
CT*G    #OPT  M4SFCA=M2SFCA$1&M3SFCA
CTT6    #OPT  M5SFCA=M2SFCA^M3SFCA$1
CW#Q    #STR  %A,0  
CWSB    (   
CX#2    #STR  %A
CXRL          LDX   0  %A   
CY?=    )   
CYQW    #SKI  M4SFCA$1  
C^=G    (   
C^Q6          LDX   %B FX2  
D29Q          ADN   %B FILERING 
D2PB    )   
D392    #SKI  M4SFCA
D3NL    (   
D48=          LDX   %C FX2  
D4MW          ADN   %C FILERING 
D57G    )   
D5M6    #STR  %A
D66Q    (   
D6LB          ADN   0  1
D762    M1SFCA  
D7KL    )   
D85=    #SKI  M2SFCA
D8JW          LDX   %B FPTRF(%B)
D94G    #SKI  M5SFCA
D9J6    (   
D=3Q          SMO      %B   
D=HB          LDX   %B FPTRF
D?32    )   
D?GL    #SKI  M4SFCA
D#2=          LDX   %C FPTRF(%C)
D#FW    #STR  %A
D#^G          BCT   0  M1SFCA   
D*F6    #STR  %C
D*YQ    (   
DBDB    #STR  %B,%C 
DBY2    (   
DCCL    #SKI  M4SFCA$1  
DCX=          LDX   %C %B   
DDBW    #SKI  M4SFCA
DDWG          LDX   %B %C   
DFB6    )   
DFTQ    #SKI  M2SFCA
DG*B          ADX   %C FBACKPOINT(%B)   
DGT2    #SKI  M4SFCA
DH#L          ADX   %C FBACKPOINT(%C)   
DHS=    #SKI  M5SFCA
DJ?W    (   
DJRG          SMO      %B   
DK?6          ADX   %C FBACKPOINT   
DKQQ    )   
DL=B    )   
DLQ2    #STR  %C
DM9L    (   
DMP=    )   
DN8W    #FRE  M2SFCA
DNNG    #FRE  M3SFCA
DP86    #FRE  M4SFCA
DPMQ    #FRE  M5SFCA
DQ7B    #NOR
DT#Y ...[??? SXFCB SECT FILE FGN 20 DOC 
DTJQ    #MAC  SXFCB 
DW4B          SFCA     %A,%B,%B 
DWJ2    #SKI  %B<4$4
DX3L          LDX   %B BPTR(%B) 
DXH=    #SKI  %B>3$3
DY2W    (   
DYGG          SMO      %B   
D^26          LDX   %B BPTR 
D^FQ    )   
D^^B    #NOR
F298 ...[??? CHANGEFI SECT FILE FGN 20 DOC  
F2F2    #   
F2YL    # THIS MACRO CHANGES A FILE OF GIVEN LEVEL TO CURRENT ACTIVITY TO   
F3D=    # A GIVEN LEVEL OF A SPECIFIED ACTIVITY.
F3XW    #   
F4CG    #MAC           CHANGEFILE   
F4X6    #ACC  %A
F5BQ    #SKI
F5WB    (   
F6B2          SMO      FX2  
F6TL          STO   %A ACOMMUNE3
F7*=    )   
F7SW    #ACC  %A
F8#G    (   
F8S6          LDX   0  %A   
F9?Q          SMO      FX2  
F9RB          STO   0  ACOMMUNE3
F=?2    )   
F=QL    #STR           %B   
F?==    #SKI
F?PW    (   
F#9G          SMO      FX2  
F#P6          STOZ     ACOMMUNE2
F*8Q    )   
F*NB    #STR           %B   
FB82    (   
FBML          LDN   0  %B   
FC7=          SMO      FX2  
FCLW          STO   0  ACOMMUNE2
FD6G    )   
FDL6    #STR           %C   
FF5Q    #SKI
FFKB    (   
FG52          SMO      FX2  
FGJL          STOZ     ACOMMUNE1
FH4=    )   
FHHW    #STR           %C   
FJ3G    (   
FJH6          LDN   0  %C   
FK2Q          SMO      FX2  
FKGB          STO   0  ACOMMUNE1
FL22    )   
FLFL          DOWN     CHANFILE,1   
FL^=    #NOR
FM94 ...[??? FILEMOVE SECT FILE FGN 20 DOC  
FMDW    #   
FMYG    # THIS MACROS MOVES A FILE FROM ONE LEVEL TO ANOTHER IN A GIVEN ACTIVITY
FND6    #   
FNXQ    #MAC           FILEMOVE 
FPCB    #ACC  %C
FPX2    #SKI
FQBL    (   
FQW=          SMO      FX2  
FR*W          STO   %A ACOMMUNE3
FRTG    )   
FS*6          LDN   0  %A   
FSSQ          SMO      FX2  
FT#B          STO   0  ACOMMUNE1
FTS2          LDN   0  %B   
FW?L          SMO      FX2  
FWR=          STO   0  ACOMMUNE2
FX=W    #SKI  %C
FXQG    (   
FY=6    #ACC  %C
FYPQ    (   
F^9B          LDX   0  %C   
F^P2          SMO      FX2  
G28L          STO   0  ACOMMUNE3
G2N=    )   
G37W    )   
G3MG    #SKI  %C
G476    #SKI
G4LQ    (   
G56B          SMO      FX2  
G5L2          STOZ     ACOMMUNE3
G65L    )   
G6K=          DOWN     CHANFILE,3   
G74W    #NOR
G7#N ...[??? CHANGEST SECT FILE FGN 20 DOC  
G7JG    #MAC           CHANGESTREAM 
G846    #ACC  %A
G8HQ          LDX   0  %A   
G93B          SMO      FX2  
G9H2    #ACC  %A
G=2L    #SKI
G=G=          STO   %A ACOMMUNE1
G=^W    #ACC  %A
G?FG          STO   0  ACOMMUNE1
G?^6          DOWN     CHANFILE,2   
G#DQ    #NOR
G#NJ ...[??? GETFCBN SECT FILE FGN 20 DOC   
G#YB    #   
G*D2    #MAC   GETFCBN  
G*KT ...
G*RN ...      BPZ   %B  MGETFCBN2   
G*^H ...      LDX   0  FCBNO         [UNIQUE NUMBER FOR DIR FCBS
GB7B ...MGETFCBN1   
GB*9 ...      ADN   0  1
GBH4 ...      STO   0  FCBNO
GBNX ...      BNG   0  MGETFCBN3         [TEST IF WE HAVE OVERFLOWED !! 
GBWQ ...      LDCT  0  #400         [RESET FCB NO   
GC4K ...      BRN      MGETFCBN1
GC=D ...MGETFCBN2   
GCD? ...      LDX   0  FCBNUM         [UNIQUE NUMBER FOR TERM FILE FCBS 
GCL6 ...      ADNC  0  1
GCR^ ...      STO   0  FCBNUM   
GC^S ...MGETFCBN3   
GD7M ...      STO   0  BACK2(%A)         [STORE IN FCB  
GD*Q    #NOR
GDKJ ...[??? INITLFCA SECT FILE FGN 20 DOC  
GDTB    [   
GF*2    #MAC  INITLFCA  
GFSL          JBCC     M1INITLFCA,3,BFLENW  
GG#=          TRACEIF  K6OPEN,99,299,FLOC1(3),REL ALST  
GGRW          FON      ISTACWT             [FREE WAITERS FOR FSTACK 
GH?G    M1INITLFCA  
GHR6          LDX   2  FPTR(3)  
GJ=Q          BC       3,BFLEN  
GJQB          LDEX  1  ARINGNO(2)   
GK=2          LDN   0  FELLEN   
GKPL          MPY   0  1
GL9=          LDN   0  1
GLNW          ADS   0  ARINGNO(2)          [UPDATE COUNT OF ELEMENTS
GM8G          ADN   1  A1   
GMN6          ADX   2  1
GN7Q          NGS   1  FBACKPOINT(2)
GNMB    #NOR
GNX8 ...[??? SETUPFCA SECT FILE FGN 20 DOC  
GP72    [   
GPLL    #MAC  SETUPFCA  
GQ6=          JBC      M1SETUPFCA,%B,BFLEN  
GQKW          BS       %B,BFLENW
GR5G          TRACEIF  K6OPEN,99,299,FLOC1(%B),WT ALST  
GRK6          COOR3    ISTACWT             [AND WAIT
GS4Q          BRN      %C   
GSJB    M1SETUPFCA  
GT42          BS       %B,BFLEN 
GTHL          LDX   %A FPTR(%B) 
GW3=          ALTLENR  %A,%D               [%D IS OVERWRITTEN   
GWGW    #NOR
H284 ...[??? FFCA SECT FILE FGN 20 DOC  
H2CW    #MAC FFCA   
H2XG          BNG   3  M1FSTAC  
H3C6          CALL  0  (HSFSTACKF)  
H3WQ    M1FSTAC 
H4BB          CALL  0  (HSFSTACKB)  
H4W2    #NOR
H55S ...[??? LOCFCB SECT FILE FGN 20 DOC
H5*L    #MAC  LOCFCB
H5T=          LDN   1  %A   
H6#W          CALL  0  M1LOCFCB 
H6SG    #OPT  M2LOCFCB=1
H7#6    #SKI  M2LOCFCB  
H7RQ    (   
H8?B          BRN      M3LOCFCB 
H8R2    #DEF  M1LOCFCB=0?   
H9=L          STO   0  GEN0 
H9Q=          STO   1  GEN1 
H=9W          LDN   0  3
H=PG          LDN   1  GEN2 
H=^# ...      MOVE  0  5
H?DY ...[  ACC USE  
H?YJ ...[ 0  TESTNAMX   
H#D8 ...[ 1FILE FABS POINTER
H#XS ...[ 2 FCB POINTER 
H*CD ...[ 3 FCB RING POINTER
H*X4 ...[ 4AND 5 COMPARISON WORDS   
HBBN ...[ 6 NEXTFCB MACRO COUNT OF FCBS 
HBW# ...[ 7 TESTNAMX MACRO  
HC*Y ...
HCTJ ...      TOPFCB 2  
HD*8 ...      HUNT 1,FILE,FABSNB
HDSS ...      ADX   1  A1(1)         [X1 POINTS TO LOCAL NAME   
HF#D ...                  [REF BY A1-6  
HFS4 ...      LDX   4  A1-6(1)         [FIRST WORD OF LOCAL NAME
HG?N ...      LDX   5  FME1(2)         [FIRST WORD OF USER NAME 
HGR# ...      BASEFCB 3,FILE,M7LOCFCB,6 
HH=Y ...M4LOCFCB
HHQJ ...      BXE   4  FLOC1-FCBRING(3),M6LOCFCB         [FAST LOOP TO FIND FCB 
HJ=8 ...M5LOCFCB
HJPS ...      NEXTFCB 3,FILE,M4LOCFCB,6 
HK9D ...      BRN      M7LOCFCB            [FCB RING EXHAAUSTED 
HKP4 ...M6LOCFCB                  [A POSSIBLE FCB FOUND 
HL8N ...      BXU   5  FUSER1-FCBRING(3),M5LOCFCB         [USER NAME COMP   
HLN# ...      TESTNAMX 5,FLOC2-FCBRING(3),A1-6+1(1),M5LOCFCB
HM7Y ...      LDX   0  FME2(2)         [COMPARE REST OF USER NAME   
HMMJ ...      BXU   0  FUSER2-FCBRING(3),M5LOCFCB   
HN78 ...      LDX   0  FME3(2)  
HNLS ...      BXU   0  FUSER3-FCBRING(3),M5LOCFCB   
HP6D ...      BRN      M9LOCFCB 
HPL4 ...
J27G    M7LOCFCB
J2M6          SETREP   NOTFOUND 
J36Q          BRN      M10LOCFCB
J3LB    M9LOCFCB
J462          SETREP   OK   
J4KL    M10LOCFCB   
J55=          LDX   0  3
J5*4 ...      SBN   0  FCBRING  
J5JW          LDN   1  GEN2 
J64G          LDN   2  3
J6J6          MOVE  1  5
J73Q          LDX   1  GEN1 
J7HB          STO   0  0(1) 
J832    #SKI  %A-1  
J8GL          LDX   1  FX1  
J92=    #SKI  %A-2  
J9FW          LDX   2  FX2  
J9^G          LDX   0  GEN0 
J=F6          EXIT  0  0
J=YQ    #FREE M2LOCFCB  
J?DB    #DEF  M2LOCFCB=0
J?Y2    M3LOCFCB
J#CL    )   
J#X=    #NOR
J*74 ...[??? FCBFIND SECT FILE FGN 20 DOC   
J*BW    #MAC  FCBFIND   
J*WG ...
JBB6 ...      HUNT 1,FILE,ENT   
JBTQ ...#SKI  %A-6  
JC*B ...      STO   6  %A   
JCT2 ...      STO   2  GEN0         [CLEAR WORKING AREA 
JD#L ...      STO   3  GEN1 
JDS= ...      LDX   0  ELOC1(1) 
JF?W ...      BASEFCB 3,FILE,MFCBFIND7,6
JFRG ...MFCBFIND1   
JG?6 ...      BXU   0  FLOC1-FCBRING(3),MFCBFIND2       [B IF LOCAL NAMES = 
JGQQ ...      TESTNAMX 4,FLOC2-FCBRING(3),ELOC2(1),MFCBFIND4,2  
JH=B ...      LDX   0  ELAN(1)         [TEST COMPLETE LOCAL NAME
JHQ2 ...      BXE   0  FLAN-FCBRING(3),MFCBFIND5
JJ9L ...MFCBFIND4   
JJP= ...      LDX   0  ELOC1(1)     [CONTINUE SEARCH
JK8W ...MFCBFIND2   
JKNG ...      NEXTFCB 3,FILE,MFCBFIND1,6
JL86 ...      BRN      MFCBFIND7         [FCBRING EXHAUSTED 
JLMQ ...MFCBFIND5   
JM7B ...      TOPFCB 2  
JMM2 ...      LDX   0   FME1(2)         [TEST USER NAME FROM TOP FCB
JN6L ...      BXU   0  FUSER1-FCBRING(3),MFCBFIND4  
JNL= ...      LDX   0  FME2(2)  
JP5W ...      BXU   0  FUSER2-FCBRING(3),MFCBFIND4  
JPKG ...      LDX   0  FME3(2)  
JQ56 ...      BXU   0  FUSER3-FCBRING(3),MFCBFIND4  
JQJQ ...      SBN   3  FCBRING         [POINT BACK TO START OF FCB  
JR4B ...      LDX   0  3         [X0 CONTAINS FCB POINTER   
JRJ2 ...MFCBFIND7   
JS3L ...      LDX   2  GEN0         [RESTORE ACCS   
JSH= ...      LDX   3  GEN1 
JT2W ...#SKI  %A-6  
JTGG ...      LDX   6  %A   
JW26 ...      STO   0  %A   
JWFQ ...      BNG   0  %B     [B IF FCB NOT FOUND,0- LOCAL NAME 
JYXW    #NOR
J^CG ...
J^X6 ...[??? TRANSFCB SECT FILE FGN 22 DOC  
K2BQ ...#MAC TRANSFCB   
K2WB ...[   
K3B2 ...[  TRANSFER FCB FROM FFLE,ACT,HALFOR WORK CHAINS
K3TL ...[             TO FILE,WORK OR HALF CHAINS   
K4*= ...[   
K4SW ...
K5#G ...#OPT  MTFCBFILE=1   
K5S6 ...#OPT MTFCBHALF=4
K6?Q ...#OPT  MTFCBWORK=8   
K6RB ...#OPT  MTFCBACT=16   
K7?2 ...
K7QL ...#DEF MTFCB=MTFCB%C*64+MTFCB%B   
K8== ...
K8PW ...[FROM ACT  TO FILE KEYFCB   
K99G ...[                  CHAIN BFILE+1
K9P6 ...[                  UPDATE BFILEN AND OR BDIRN   
K=8Q ...[          TO WORK CHAIN BWORKRING+1(FX1)   
K=NB ...[   
K?82 ...[FROM FILE TO HALF CHAIN BHALF  
K?ML ...[                  UPDATE BDIRN,BFILEN,BHALFN   
K#7= ...[   
K#LW ...[FROM HALF TO FILE CHAIN BFILE+1
K*6G ...[                  UPDATE BDIRN,BFILEN,BHALFN   
K*L6 ...[   
KB5Q ...[FROM WORK TO FILE CHAIN BFILE+1
KBKB ...[                  KEYFCB   
KC52 ...[                  UPDATE BFILEN
KCJL ...
KD4= ...#SKI  %A>2-2
KDHW ...#DEF  MTFCBPT=%A
KF3G ...#SKI  %A>2-2
KFH6 ...#SKI
KG2Q ...(   
KGGB ...#DEF  MTFCBPT=GEN0  
KH22 ...      STO   %A  GEN0
KHFL ...)   
KH^= ...
KJDW ...#SKI  MTFCB&#30 
KJYG ...(               [FROM ACT OR WORK   
KKD6 ...#SKI  MTFCB&#100
KKXQ ...(                [TO FILE   
KLCB ...#SKI  %A-1  
KLX2 ...      LDX   1  MTFCBPT            [%A=ADDRESS OF FCB
KMBL ...#SKI %D-2               [FOR BMINDEX
KMW= ...      LDX   2  BFILE+1  
KN*W ...      CHAIN 1,2        [CHAIN FCB INTO FILE CHAIN   
KNTG ...
KP*6 ...      LDN   0  1
KPSQ ...      ADS   0  BFILEN            [UPDATE FCB COUNT FOR FILE 
KQ#B ...      LDX   2  BFILE
KQS2 ...      ADN   2  FCBRING  
KR?L ...      LDX   2  1(2)         [RING BEFORE MASTERS FCB
KRR= ...      LDX   1  MTFCBPT  
KS=W ...      LDX   1  BACK2(1) 
KSQG ...      BPZ   1  MTFCB1         [B IF TERMINAL FILE FCB   
KT=6 ...      LDX   2  0(2)         [RING AFTER MASTERS FCB FOR DIRECTORY   
KTPQ ...      ADS   0  BDIRN         [UPDATE DIR FCB COUNT  
KW9B ...MTFCB1  
KWP2 ...      LDX   1  MTFCBPT  
KX8L ...      ADN   1  FCBRING  
KXN= ...#SKI  MTFCB&#20 
KY7W ...(   
KYMG ...      STO   1  0(1) 
K^76 ...      STO   1  1(1) 
K^LQ ...      ENRING 1,2        [NEW FCB FROM ACT RING  
L26B ...)   
L2L2 ...#SKI MTFCB&#10  
L35L ...      RERING 1,2         [FCB FROM WORKFILE RING
L3K= ...      LDX   1  FX1  
L44W ...      LDX   2  FX2  
L4JG ...#FRE  MTFCBPT   
L546 ...#FRE  MTFCB 
L5HQ ...#EXI
L63B ...)   
L6H2 ...
L72L ...#SKI  MTFCB&#1000$#1000         [FROM ACT TO WORK   
L7G= ...#DEL NOT PERMITTED  
L7^W ...(   
L8FG ...      LDX   2  FX2  
L8^6 ...      ADN   2  BWORKRING
L9DQ ...#SKI  %A-1  
L9YB ...      LDX   1  MTFCBPT  
L=D2 ...      CHAIN 1,2         [CHAIN FCB IN WORKFILE RING 
L=XL ...      ADN   2  BWORKRING
L?C= ...      LDX   1  MTFCBPT  
L?WW ...      LDN   0  FCBRING(1)   
L#BG ...      STO   0  FCBRING(1)   
L#W6 ...      STO   0  FCBRING+1(1) 
L**Q ...      BXE   2  0(1),MTRANSF1         [FCB  IS THE FIRST IN THE RING 
L*TB ...      LDX   2  1         [X1 POINTS TO THE FCB  
LB*2 ...      LDX   2  0(2)         [X2 TO THE NEXT 
LBSL ...      ADN   2  FCBRING  
LC#= ...      ADN   1  FCBRING  
LCRW ...      LDX   2  1(2)         [X2TO THE LAST FCB'S FCBRING
LD?G ...      ENRING 1,2            [RING IN FCB IN SAME ORDER AS FCBS  
LDR6 ...MTRANSF1
LF=Q ...#FRE  MTFCBPT   
LFQB ...#FRE  MTFCB 
LG=2 ...#EXI
LGPL ...)   
LH9= ...)   
LHNW ...
LJ8G ...#SKI  MTFCB&#401$#401            [FROM FILE TO HALF 
LJN6 ...(   
LK7Q ...#SKI  MTFCB&#104$#104   
LKMB ...#DEL
LL72 ...)   
LLLL ...#SKI  MTFCB&#401
LM6= ...      LDN   0  1
LMKW ...#SKI  MTFCB&#104
LN5G ...      NGN   0  1
LNK6 ...      ADS   0  BHALFN            [UPDATE FCB COUNTS 
LP4Q ...      SBS   0  BFILEN   
LPJB ...      SBS   0  BDIRN
LQ42 ...
LQHL ...#SKI  MTFCB&#400
LR3= ...      LDN   2  BHALF
LRGW ...#SKI  MTFCB&#100
LS2G ...      LDX   2  BFILE+1  
LSG6 ...#SKI  %A-1  
LS^Q ...      LDX   1  MTFCBPT  
LTFB ...      CHAIN 1,2            [CHAAN FCB INTO FILE OR HALF CHAIN   
LT^2 ...
LWDL ...#SKI  MTFCB&#401
LWY= ...(   
LXCW ...      LDX   1  MTFCBPT  
LXXG ...      ADN   1  FCBRING         [POINT TO FCB
LYC6 ...      DERING 1  
LYWQ ...      LDX   1  MTFCBPT  
L^BB ...      ADN   1  FCBRING         [AND AGAIN   
L^W2 ...      STO   1  0(1)            [MAKE RING NULL FOR 1ST CASE 
M25S ...      STO   1   BPTR(1) 
M2*L ...      LDX   2  BHALF+1  
M2T= ...      LDX   2  1(2)         [POINT TO LAST FCB ON HALF  
M3#W ...      ADN   2  FCBRING  
M3SG ...      ENRING  1,2         [RING FCB IN CORRECT SEQ  
M4#6 ...)   
M4RQ ...#SKI  MTFCB&#104
M5?B ...(   
M5R2 ...      LDX   2  BFILE
M6=L ...      ADN   2  FCBRING  
M6Q= ...      LDX   1  MTFCBPT       [POINT TO LAST FCB IN CHAIN
M79W ...      ADN   1  FCBRING  
M7PG ...      RERING 1,2         [RING IN FCB AT END ?  
M896 ...)   
M8NQ ...#FRE  MTFCBPT   
M98B ...#FRE  MTFCB 
M9N2 ...#NOR
^^^^ ...00546332002900000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1