{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: RING-MACROS)}}
====== RING-MACROS ======
(George Source)
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
=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
KJYG ...( [FROM ACT OR WORK
KKD6 ...#SKI MTFCBd
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
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
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 [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 [FROM FILE TO HALF
LJN6 ...(
LK7Q ...#SKI MTFCBh$#104
LKMB ...#DEL
LL72 ...)
LLLL ...#SKI MTFCBƑ
LM6= ... LDN 0 1
LMKW ...#SKI MTFCBh
LN5G ... NGN 0 1
LNK6 ... ADS 0 BHALFN [UPDATE FCB COUNTS
LP4Q ... SBS 0 BFILEN
LPJB ... SBS 0 BDIRN
LQ42 ...
LQHL ...#SKI MTFCBƐ
LR3= ... LDN 2 BHALF
LRGW ...#SKI MTFCBd
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Ƒ
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 MTFCBh
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