{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: CREALEX864)}}
====== CREALEX864 ======
(George Source)
**Macros used:** [[george:macro:BACKSPACE|BACKSPACE]], [[george:macro:BC|BC]], [[george:macro:BS|BS]], [[george:macro:BXGE|BXGE]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CLOSEFRBS|CLOSEFRBS]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:CREATEB|CREATEB]], [[george:macro:DELETE|DELETE]], [[george:macro:FFINDEXB|FFINDEXB]], [[george:macro:FILEMOVE|FILEMOVE]], [[george:macro:FILENUMB|FILENUMB]], [[george:macro:FIND|FIND]], [[george:macro:FINDNAME|FINDNAME]], [[george:macro:FREEBAX|FREEBAX]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETDIR|GETDIR]], [[george:macro:HUNT|HUNT]], [[george:macro:INSERT|INSERT]], [[george:macro:JMBS|JMBS]], [[george:macro:MBS|MBS]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:OPEN|OPEN]], [[george:macro:OPENDIR|OPENDIR]], [[george:macro:OPENRELN|OPENRELN]], [[george:macro:READ|READ]], [[george:macro:READAGAIN|READAGAIN]], [[george:macro:REPLACE|REPLACE]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SFCA|SFCA]], [[george:macro:SFCB|SFCB]], [[george:macro:SKIP|SKIP]], [[george:macro:STEP|STEP]], [[george:macro:TESTNAMX|TESTNAMX]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TOPFCB|TOPFCB]], [[george:macro:TOPFCB2|TOPFCB2]], [[george:macro:UP|UP]], [[george:macro:VOP|VOP]], [[george:macro:WRITEB|WRITEB]]
22FL SEG CREALEX,864,EDWARD MOON,BMAP
22^= [
23DW SEGENTRY K1CREALEX,START
23YG SEGENTRY K2CREALEX,OPENLEX
24D6 [ THE NEXT SECTION SETS UP THE LEXICON
24XQ [ READING THROUGH THE DICTIONARY WE SET UP FILE/FWB.BLKS WITH THE LEX
25CB [ RECORDS IN THE SAME ORDER AS IN THE DICTIONARY BUF,COMPLETE EXCEPT FOR
25X2 [ THE SUPERIOR USER POINTER
26BL [ CORRESPONDING TO EACH LEXICON RECORD THERE IS A RECORD WITH THE SUP
26W= [ USERS NAME IN A FILE/FRB
27*W [ HAVING SET UP ALL THE FRBS AND FWBS THE DICTIONARY IS CLOSED AND THE F
27TG [ BLOCK OF EACH KIND IS PUT AT THE END OF THE CHAIN SO THAT UNUSED LE
28*6 [ RECORDS WILL BE IN THE LAST BLOCK
28SQ [ THE LEXICON IS THEN OPENED (CREATED OR EMPTIED)
29#B [ STARTING WITH THE FIRST SUPERIOR USER IN THE FRBS WE SEARCH FOR HIS
29S2 [ LEXICON RECORD, CALCULATE THE POINTER AND THEN SEARCH THROUGH THE FRBS
2=?L [ FOR ALL OCCURRENCES OF THIS SUPERIOR USER.EACH TIME,THE POINTER IS
2=R= [ PUT IN AND THE SUPERIORS NAME STOZED TO AVOID TREATING HIM AGAIN
2?=W [ AT THE END OF EACH FRB IT IS FREED
2?QG #DEF NR=127 [NO OF LEXICON RECS/BLK
2#=6 #DEF SR=4 [NO OF WDS/LEX REC.
2#PQ #DEF SG=4 [SIZE OF GAP AT START OF LEX B.S. BLK
2*9B WNR +SR*NR+SG
2*P2 SYST
2B8L 12HSYSTEM
2BN= XFMAPP
2C7W #HAL +FILE+FMAPP,0
2CMG NLEX +10
2D76 NMAS
2DLQ 12HMASTER
2F6B NLEX2
2FL2 12HLEXICON
2G5L 1,1,4HB1
2GK= NFB
2H4W LDX 3 FPTR(3)
2HJG NFB1
2J46 LDX 0 ATYPE(3)
2JHQ BXGE 0 CACT,(4) [J IF NO MORE FWBS
2K3B SRL 0 12
2KH2 SBN 0 FILE+FWB
2L2L BNZ 0 NFB
2LG= EXIT 4 1
2L^W START
2MFG [
2M^6 [**************************************************** START
2NDQ [ ENTRY POINT DOWN FROM ADDICT TO SET UP THE FRB'S
2NYB [ AND FWB'S FOR CREATING THE LEXICON.
2PD2 [
2PXL FASTREWI 1
2QC= STEP [DUMMY RECORD
2QWW NBS
2RBG LDN 7 2 [SET UP ZEROIZED FRB & FWB
2RW6 NOTHER
2S*Q SETNCORE GSBS,2,FILE,FWB
2STB STOZ A1(2)
2T*2 LDN 0 A1(2)
2TSL LDN 1 A1+1(2)
2W#= MOVE 0 GSBS-1
2WRW BCT 7 NOTHER
2X?G NAME 2,FILE,FRB
2XR6 LDN 5 SG [X5 -> TO POS IN FRB AND FWB
2Y=Q ST
2YQB STEP
2^=2 BZE 3 STX
2^PL LDX 0 CUSER-A1(3)
329= BPZ 0 ST [IGNORE UPDATE RECORDS
32NW MHUNTW 1,FILE,FRB
338G LDN 6 CSUPUSER-A1(3)
33N6 SMO 5
347Q LDN 7 A1+HUSER(1)
34MB MOVE 6 3 [SUPERIOR USER IN FRB
3572 MHUNTW 2,FILE,FWB
35LL LDN 6 CUSER-A1(3)
366= SMO 5
36KW LDN 7 A1+HUSER(2)
375G MOVE 6 3 [USER IN FWB
37K6 LDCT 0 #400 [PSEUDO-USER BIT
384Q ANDX 0 CPSEU-A1(3)
38JB SMO 5
3942 STO 0 A1+HSUPUSER(2)
39HL ADN 5 SR
3=3= SMO FX1
3=GW TXU 5 WNR
3?2G BCS ST
3?G6 BRN NBS
3?^Q STX
3#FB CLOSETOP [DICTIONARY
3#^2 MHUNTW 2,FILE,FWB
3*DL LDCT 0 #400
3*Y= STO 0 A1+1(2)
3BCW LDN 7 0
3BXG P1
3CC6 LDX 3 FPTR(2)
3CWQ CALL 4 NFB1 [GET NEXT FWB
3DBB BRN PEND
3DW2 DEX 7 ATYPE(3)
3F*L ADN 7 1
3FT= LDX 2 3 [KEEP PTR TO LAST FWB
3G#W BRN P1
3GSG PEND
3H#6 BZE 7 NSUP2 [ONLY ONE BLOCK
3HRQ HUNT 3,FILE,FRB
3J?B CHAIN 3,2
3JR2 HUNT 2,FILE,FWB
3K=L DEX 7 ATYPE(2) [PUT IN NO. OF LAST BLOCK
3KQ= CHAIN 2,3
3L9W BRN NSUP2
3LPG [
3M96 [*********************************************** OPENLEX
3MNQ [ ENTRY POINT DOWN FROM ADDICT TO OPEN THE LEXICON
3N8B [ EMPTYING OR RECREATING IT AS NECESSARY.
3NN2 [
3P7L OPENLEX
3PM= SETNCORE 10,2,FILE,FABSNB
3Q6W ADN 2 A1
3QLG ADN 1 NLEX
3R66 MOVE 1 10
3RKQ OPENDIR XBR,GENERAL,QUERY [ GET :MASTER OPEN AT
3S5B TESTREP2 NOFILE,NOFILE,NAME,XBR [ ENTRY FOR LEXICON
3SK2 MHUNTW 1,FILE,ENT
3T4L LDEX 4 ECOPS(1)
3TJ= JMBS UNCLEAN,1,BEBM,BEBMUWB
3W3W BZE 4 NBSPACE
3WHG BACKSPACE
3X36 NBSPACE
3XGQ SETNCORE 6,2,FILE,FLOCNB
3Y2B ADN 1 NLEX2
3YG2 ADN 2 A1
3Y^L MOVE 1 6
3^F= OPENRELN XBR,WRITE,EMPTY [LEXICON
3^YW #SKI K6ADDICT>199-199
42DG TESTRPN2 OK,XBR
42Y6 BRN NOBLOCKS
43CQ UNCLEAN
43XB LDX 3 ENUSE(1)
44C2 ADN 4 1(3)
44WL FREECORE 1
45B= BZE 3 NDEL
45TW SKIP ,0(3)
46*G NDEL
46T6 DELETE [ DELETE EXISTING ENTRY SO
47#Q BCT 4 NDEL [ WE CAN CREATE NEW ONE
47SB NCLOS
48#2 CLOSETOP [:MASTER
48RL NOFILE
49?= CREATEB 1 [SET KEEP ONLINE
49QW LDCT 0 #104 [AND DO NOT BREAK IN ON BIT ARE SET
4==G STO 0 CEINF2(1)
4=Q6 LDN 0 FILESIZE
4?9Q STO 0 CEINF3(1)
4?PB OPEN XBR,WRITE,CREATE
4#92 #SKI K6ADDICT>199-199
4#NL TESTRPN2 OK,XBR
4*8= NOBLOCKS
4*MW VOP 2,FTABWAIT [ CLEAR SEMAPHOR TO LET 'SERIAL'
4B7G TOPFCB2 1 [ SLAVE RUN.'FRIG' FCB TO GET CLOSE
4BM6 LDN 0 FCBLEN [ TO ALTER LENGTH OF FILE TO NO.
4C6Q STO 0 FBLMOD(1) [ OF BLOCKS ACTUALLY USED BY
4CLB MBS 1,BFALTB,BFALTR [ SETTING REEL & BLOCKS ALTERED
4D62 UP
4DKL [
4F5= [******************************************** NSUP2
4FJW [ WE NOW GO ON TO FILL IN EACH USER'S POINTER
4G4G [ TO HIS SUPERIOR USER.
4GJ6 [
4H3Q NSUP2
4HHB LDX 2 FX2
4J32 LDN 5 SG
4JGL NSUP1
4K2= HUNT 1,FILE,FRB
4KFW BNG 1 STOP [FINISHED
4K^G SMO 5
4LF6 LDX 0 A1+HUSER(1)
4LYQ BZE 0 NSUP [THIS USER DEALT WITH
4MDB SMO 5
4MY2 LDN 6 A1+HUSER(1)
4NCL LDN 7 ACOMMUNE7(2)
4NX= MOVE 6 3 [KEEP NEXT SUPERIOR USER
4PBW HUNT 3,FILE,FWB [X3 -> CURRENT FWB
4PWG PNAM
4QB6 LDN 7 SG [X7 IS WD ADDRESS IN CURRENT FWB
4QTQ TNAM
4R*B ADX 3 7
4RT2 TESTNAMX 3,A1+HUSER(3),ACOMMUNE7(2),NSAM,4
4S#L [JUMP TO NSJM IF NOT LEXICON RECORD FOR SUPERIOR
4SS= SBX 3 7
4T?W LDEX 6 ATYPE(3)
4TRG SLL 6 9 [NO OF CURRENT BLOCK
4W?6 ADX 6 7 [SET UP HSUPUSER
4WQQ PP1
4X=B HUNT 3,FILE,FWB [FIND FIRST FWB AGAIN FOR ORIGIONAL
4XQ2 LDX 7 5
4Y9L [FIND ALL INFERIORS OF CURRENT SUPERIOR USER
4YP= PP
4^8W SMO 7
4^NG ORS 6 A1+HSUPUSER(3) [PUT SUP USER PTR IN LEX RECORD
5286 SMO 7
52MQ STOZ A1+HUSER(1) [MARK SUPERSOR AS DEALT WITH
537B NSU1
53M2 ADN 7 SR
546L SMO FX1
54L= TXU 7 WNR
555W BCS SIU [NOT END OF BLOCK
55KG NSU2
5656 LDX 1 FPTR(1)
56JQ LDX 0 ATYPE(1)
574B BXGE 0 CACT,NSUP
57J2 SRL 0 12
583L SBN 0 FILE+FRB
58H= BNZ 0 NSU2
592W CALL 4 NFB [GET NEXT FWB
59GG BRN XBR
5=26 LDN 7 SG
5=FQ SIU
5=^B ADX 1 7
5?F2 TESTNAMX 3,ACOMMUNE7(2),A1+HUSER(1),NSU,4
5?YL SBX 1 7
5#D= BRN PP [ANOTHER INFERIOR.FOUND
5#XW NSU
5*CG SBX 1 7
5*X6 BRN NSU1
5BBQ NSAM
5BWB SBX 3 7
5CB2 ADN 7 SR
5CTL SMO FX1
5D*= TXU 7 WNR
5DSW BCS TNAM
5F#G CALL 4 NFB
5FS6 BRN NSAM1
5G?Q BRN PNAM
5GRB NSAM1
5H?2 LDX 1 FX1
5HQL TESTNAMX 3,NMAS(1),ACOMMUNE7(2),NOSUP,4
5J== [IF SUPERIOR IS MASTER SET POINTER TO ZERO
5JPW LDN 6 0
5K9G HUNT 1,FILE,FRB
5KP6 BRN PP1
5L8Q NSUP
5LNB ADN 5 SR
5M82 SMO FX1
5MML TXU 5 WNR
5N7= BCS NSUP1 [NOT END OF BLOCK
5NLW MFREE FILE,FRB [FREE SUP USERS
5P6G HUNT 1,FILE,FWB [PUT FWB BEHIND OTHER FWBS
5PL6 LDEX 4 ATYPE(1)
5Q5Q BZE 4 NSUP3 [FIRST TIME
5QKB LDX 4 ATYPE(1)
5R52 SBN 4 1
5RJL FIND 2,4
5S4= NSUP4
5SHW CHAIN 1,2
5T3G BRN NSUP2
5TH6 NSUP3
5W2Q LDX 2 1
5WGB NS LDX 3 FPTR(2)
5X22 CALL 4 NFB1 [NEXT FUB
5XFL BRN NSUP4 [WHEN FINISHED
5X^= LDX 2 3
5YDW BRN NS
5YYG [
5^D6 [************************************************
5^XQ [ ALL POINTERS HAVE BEEN FILLED IN AND THE FRB'S FREED
62CB [ - NOW WE WRITE AWAY THE FWB'S AND CLOSE THE LEXICON.
62X2 [
63BL STOP
63W= HUNT 1,FILE,FWB
64*W BNG 1 STOP1 [ALL WRITTEN AWAY
64TG WRITEB [WRITE AWAY COMPLETE BLOCK OF LEXICON
65*6 BRN STOP [WRITE NEXT BLOCK
65SQ STOP1
66#B CLOSETOP [LEXICON
66S2 [
67?L [
67R= [*************************************************
68=W [ NOW THAT THE LEXICON IS AVAILABLE WE CAN JOIN UP ANY
68QG [ RESTORED LIMBS - COULDN'T BEFORE BECAUSE THEIR SUPERIORS
69=6 [ WEREN'T KNOWN. JOINING UP A LIMB INVOLVES UPDATING THE NAME
69PQ [ RECORD TO SHOW CURRENT SIZE OF RESTORED DIRECTORY
6=9B [ (FROM THE FCB) AND THAT IT IS INDEXED,THE BLOCKS
6=P2 [ RECORD TO CONTAIN THE BLOCK NOS. FROM THE FCB
6?8L [ AND REPLACING THE INDEX RECORD WITH THE FINDEXF DETAILS
6?N= [
6#7W [ IF AUTONOMOUS ACTIVITY IS PROCESSING SERIAL,NO FILES
6#MG [ WILL BE OPEN ELSE P. R. HAS BEEN DONE AND AT LEAST
6*76 [ TWO FILES WILL BE OPEN - IF ONLY TWO OPEN THERE
6*LQ [ ARE NO MORE LIMBS TO BE JOINED UP.
6B6B [
6BL2 SETNCORE 6,3,FILE,FLOCNB
6C5L ... SETNCORE 10,3,FILE,FABSNB
6CK= STOZ AWORK1(2)
6D4W NGN 0 1
6DJG STO 0 AWORK2(2)
6F46 NEXTPRUSER
6FHQ FILENUMB 7
6G3B BZE 7 NOPRUSELEFT
6GH2 SBN 7 2
6H2L BZE 7 NOPRUSELEFT
6HG= #UNS AMTGR
6H^W FILEMOVE 2,0 [ MVE. NXT. RESTORED USER TO TOP
6JFG #UNS AMTGR
6J^6 #SKI
6KDQ FILEMOVE -1,0 [ MVE. NXT. RESTORED USER TO TOP
6KYB TOPFCB2 2
6LD2 MHUNT 3,FILE,FABSNB
6LXL LDN 4 FME1(2)
6MC= LDN 5 A1+1(3)
6MWW MOVE 4 3 [ PUT USERNME. IN FABSNB FOR OPEN
6NBG LDN 0 4
6NW6 STO 0 A1(3)
6P*Q TOPFCB 3
6PTB [
6Q*2 [*************************************************
6QSL [ NOW CHECK IF RESTORED LIMB IS :SYSTEM - IF IT IS
6R#= [ WE MUST FIRST REPLACE THE RESTORED SERIAL AND
6RRW [ INCINDEX BY THE UP-TO-DATE VERSIONS OPEN TO THIS
6S?G [ ACTIVITY(JOIN THEM UP TO :SYSTEM JUST AS
6SR6 [ :SYSTEM IS JOINED UP TO ITS SUPERIOR).
6T=Q [
6TQB TESTNAMX 3,SYST(1),FME1(3),NOWOPDIR,4
6W=2 LDX 2 FX2
6WPL LDN 6 2 [ 2 FILES - SERIAL + INCINDEX
6X9= STO 6 AWORK2(2) [ TO UPDATE. COUNT IS USED
6XNW NXTUPDATE [ FOR DEPTH ( 1 AND 2)
6Y8G BZE 6 NOWOPDIR [ J. IF BOTH FILES UPDATED
6YN6 MHUNT 3,FILE,FLOCNB
6^7Q #UNS AMTGR
6^MB SBS 2 AWORK1(2) [ SHOW SERIAL & INCIND. ONLINE
7272 LDX 2 AWORK2(2)
72LL SFCB 2,1
736= LDN 4 FLOC1(1)
73KW LDN 5 A1(3)
745G MOVE 4 6
74K6 GETDIR 3 [ POSTION ON ENTRY IN :SYSTEM
754Q MFREE FILE,ENT
75JB BRN NOWDOUPDAT [ TO UPDATE NAME + BLKS. RECS.
7642 NOWOPDIR
76HL LDX 2 FX2
773= NGN 0 1
77GW STO 0 AWORK2(2) [ TO SHOW NOT SERIAL OR INCINDEX
782G FINDNAME
78G6 OPENDIR XBR,GENERAL,ERASING [ OPEN SUPERIOR
78^Q TESTRPN2 OK,XBR
79FB #UNS AMTGR
79^2 (
7=DL MHUNTW 3,FILE,ENT
7=Y= LDEX 0 ECOPS(3) [ CHECK IF OFFLINE DIR FROM GEN RES
7?CW SBS 0 AWORK1(2) [ SET MARKER IF IT IS
7?XG BZE 0 NOWDOUPDAT [ AND JUMP IF NO BLOCKS RECORD
7#C6 )
7#WQ BACKSPACE
7*BB NOWDOUPDAT
7*W2 READAGAIN [ UPDATE RECORD IN FRB
7B*L LDX 4 AWORK2(2) [ USE COUNT FOR DEPTH IF
7BT= BPZ 4 USECOUNT [ SERIAL OR INCINDEX UPDATE
7C#W LDN 4 1 [ ELSE DEPTH OF DIR. IS 1
7CSG USECOUNT
7D#6 SFCB 4,3
7DRQ LDX 5 FINFC(3)
7F?B ANDN 5 #77 [ SEE IF INDEXED
7FR2 LDX 7 FBLMOD(3)
7G=L SBN 7 FBLKS-A1
7GQ= ADN 7 INDEXREC-A1
7H9W SETUPCOR 7,2,FILE,FWB [ LONG ENOUGH FOR INDEX REC.
7HPG SBN 7 INDEXREC-A1
7J96 MHUNTW 3,FILE,FRB
7JNQ SLL 7 15 [ SIZE OF FILE
7K8B ADN 7 1 [ AND ONLINE MARK
7KN2 STO 7 ECOPS(3) [ PUT IN ECOPS
7L7L BZE 5 NOINDX [ J. IF NOT INDEXED
7LM= STO 5 EINDEX(3) [ ELSE PUT IN INDEX NO.
7M6W BS 3,BEINDEX [ AND MARK AS INDEXED
7MLG NOINDX [(RESTORE LEFT IT UNINDEXED)
7N66 LDX 2 FX2
7NKQ LDX 0 AWORK2(2) [ CHECK IF SER. OR INCI.
7P5B BPZ 0 NOPRBITS [ J. IF N0T
7PK2 BC 3,BETEMP [ ELSE CLEAR TEMP BIT TO SHOW
7Q4L NOPRBITS [ RESTORE SUCCESSFULL
7QJ= NAME 3,FILE,FWB [ THE NAME RECORD
7R3W MHUNTW 3,FILE,FWB [THE FIRST ONE !!!
7RHG NAME 3,FILE,FTAB [ SO REPLACE IGNORES IT
7S36 REPLACE [ NAME RECORD
7SGQ MFREE FILE,FWB [ "
7T2B [
7TG2 [**************************************************
7T^L [ THE RESTORED SERIAL AND INCINDEX WILL HAVE BEEN
7WF= [ MAPPED SO THEIR BLOCKS RECORD ARE FREEBAXED TO
7WYW [ AVOID A BACKING STORE LEAK. DIRECTORIES WILL
7XDG [ NOT HAVE BEEN MAPPED.
7XY6 [
7YCQ LDX 5 AWORK2(2)
7YXB BNG 5 NOFRBWANTD [ J. IF A DIRECTORY
7^C2 READ [ BLOCKS RECORD
7^WL MHUNTW 3,FILE,FRB
82B= NAME 3,BSTB,FULLB
82TW FREEBAX [ UNWANTED BLOCKS
83*G MFREE BSTB,EMPTYB
83T6 BRN NOSTEP
84#Q NOFRBWANTD
84SB STEP [ PAST BLOCKS RECORD
85#2 NOSTEP
85RL SFCB 4,3
86?= MHUNTW 2,FILE,FTAB
86QW NAME 2,FILE,FWB [ FOR NEW BLOCKS RECORD
87=G LDN 5 BSPRE(3)
87Q6 LDN 6 ERES(2)
889Q SRL 7 15
88PB ADN 7 1 [ MOVE IN RESIDENCE NO. AND
8992 SMO 7 [ BLOCK NUMBERS FROM
89NL MOVE 5 0 [ FCB AND THEN
8=8= ADN 7 1
8=MW STO 7 A1(2)
8?7G #UNS AMTGR
8?M6 (
8#6Q LDX 2 FX2
8#LB LDX 0 AWORK1(2) [ CHECK IF OFFLINE DIR
8*62 BZE 0 NSERTFOROFF [ WANT TO DO INSERT IF IT IS
8*KL )
8B5= REPLACE [ REPLACE NEW BLOCKS RECORD
8BJW #UNS AMTGR
8C4G (
8CJ6 BRN REPDONE
8D3Q NSERTFOROFF
8DHB INSERT [ NEW BLOCKS RECORD
8F32 REPDONE
8FGL )
8G2= SFCB 4,2
8GFW LDX 0 FINFC(2)
8G^G ANDN 0 #77
8HF6 BZE 0 NOTIND [ J. IF FILE NOT INDEXED
8HYQ NGN 6 1
8JDB SBN 0 INDEXDIR [ SET X6 -VE. IF DIRECTORY
8JY2 BZE 0 NDEXDIR [ ELSE ZERO
8KCL LDN 6 0 [ (DIRECTORY WILL ALREADY BE
8KX= NDEXDIR [ INDEXED-SERIAL WILL NOT
8LBW #UNS AMTGR
8LWG (
8MB6 SMO FX2
8MTQ LDX 0 AWORK1
8N*B BZE 0 NOTIFOFF [ J. IF OFFLINE DIR- NO IND. REC
8NT2 )
8P#L STEP
8PS= #UNS AMTGR
8Q?W NOTIFOFF
8QRG SFCA 4,2
8R?6 FFINDEXB 2,2
8RQQ MHUNTW 3,FILE,FWB
8S=B LDN 5 A1(3)
8SQ2 LDN 4 A1(2) [ MOVE INDEX RECORD FROM
8T9L SMO ALOGLEN(3) [ FINDEXF TO FWB
8TP= MOVE 4 0
8W8W #UNS AMTGR
8WNG (
8X86 LDX 2 FX2
8XMQ LDX 0 AWORK1(2) [ CHECK IF OFFLINE DIR
8Y7B BZE 0 NEEDNSERT [ INSERT NEEDED IF IT IS
8YM2 )
8^6L BNG 6 REPFORDIR
8^L= #UNS AMTGR
925W NEEDNSERT
92KG INSERT [ INSERT INDEX RECORD FOR
9356 BRN NOTIND [ SERIAL - ELSE
93JQ REPFORDIR [ REPLACE DIRECTORY'S INDEX RECORD
944B REPLACE
94J2 NOTIND
953L MFREE FILE,FWB
95H= LDX 6 AWORK2(2)
962W BNG 6 NOWCLOSE [ J. IF JUST UPDATED DIR.
96GG LDN 0 1 [ ELSE REDUCE COUNT FOR
9726 SBS 0 AWORK2(2) [ SERIAL AND INCINDEX
97FQ SBN 6 1 [ AND JUMP TO DO
97^B BRN NXTUPDATE [ NEXT UPDATE
98F2 NOWCLOSE
98YL MFREE FILE,ENT [ TIDY UP.
99D= #UNS AMTGR
99XW STOZ AWORK1(2) [ RESET OFFLINE DIR MARKER
9=CG CLOSETOP [ SUPERIOR
9=X6 CLOSEFRBS [ CLOSEFRBS RESTORED DIR AS IT'S
9?BQ BRN NEXTPRUSER [ FCB IS INCOMPLETE
9?WB NOPRUSELEFT
9#B2 MFREE FILE,FLOCNB
9#TL UP
9**= [
9*SW [
9B#G NOSUP GEOERR 1,NOSUPER
9BS6 XBR
9C?Q GEOERR 1,CREALEX
9CRB [
9D?2 MENDAREA BMAPGAP,K99CREALEX
9DQL #END
^^^^ ...622706770002