Show pageBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. {{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: CLOSEND867)}} ====== CLOSEND867 ====== (George Source) **Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:APVSF|APVSF]], [[george:macro:BC|BC]], [[george:macro:BITDEFS|BITDEFS]], [[george:macro:BS|BS]], [[george:macro:BSXD|BSXD]], [[george:macro:BXE|BXE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CHAIND|CHAIND]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:COOR1|COOR1]], [[george:macro:COOR3|COOR3]], [[george:macro:DELFCB|DELFCB]], [[george:macro:DELWORK|DELWORK]], [[george:macro:DOWN|DOWN]], [[george:macro:FC|FC]], [[george:macro:FDRMAUTX|FDRMAUTX]], [[george:macro:FON|FON]], [[george:macro:FPUT|FPUT]], [[george:macro:FREEBAX|FREEBAX]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FRITE|FRITE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETFNAME|GETFNAME]], [[george:macro:JBC|JBC]], [[george:macro:JBCC|JBCC]], [[george:macro:JBS|JBS]], [[george:macro:JBSC|JBSC]], [[george:macro:JFNZ|JFNZ]], [[george:macro:JFZ|JFZ]], [[george:macro:JMBAC|JMBAC]], [[george:macro:JMBAS|JMBAS]], [[george:macro:JMBS|JMBS]], [[george:macro:LF|LF]], [[george:macro:LFCLOSE|LFCLOSE]], [[george:macro:LONGCOOR|LONGCOOR]], [[george:macro:LONGON|LONGON]], [[george:macro:LONGON1|LONGON1]], [[george:macro:LONGSET|LONGSET]], [[george:macro:MBC|MBC]], [[george:macro:MBS|MBS]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:PSTAC|PSTAC]], [[george:macro:RERING|RERING]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SFCA|SFCA]], [[george:macro:STF|STF]], [[george:macro:SUBCUBS|SUBCUBS]], [[george:macro:SUBRELT|SUBRELT]], [[george:macro:SUICIDE|SUICIDE]], [[george:macro:TAB|TAB]], [[george:macro:TOPFCAB|TOPFCAB]], [[george:macro:TOPFCB|TOPFCB]], [[george:macro:TRACEIF|TRACEIF]], [[george:macro:TRANSFCB|TRANSFCB]], [[george:macro:UP|UP]], [[george:macro:VOP|VOP]] <code - CLOSEND867.txt>2259 ... SEG CLOSEND,863,SECTION FILE,CLOSE 228D ...# 22=3 ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983 22?M ...# 22BW ...# USES OF X7 22G5 ...# ---------- 22K# ... BITDEFS 7,0,XBSHORT [CLOSESHORT 22NH ... BITDEFS 7,1,XBTOP [CLOSETOP/CLOSEDIR 22RQ ... BITDEFS 7,2,XBFULL [CLOSE (FULL) 22W^ ... BITDEFS 7,3,XBFRBS [CLOSEFRBS 23?T ... BITDEFS 7,10,XBFRITEALL [FRITE WITH 'ALL' PARAMETER 23*^ ... BITDEFS 7,11,XBCORUNJWR [ADATA/CORUNJAM BUFFER BEING (FIXED) 23D5 ... [ WRITTEN BY CORE UNJAMMER 23G? ... BITDEFS 7,12,XBTHROW [CLOSETHROW 23KG ... BITDEFS 7,14,XBABAND [CLOSEABANDON 23QT ... BITDEFS 7,15,XBNONAUTOWR [NON-AUTONOMOUS WRITING OF WRITE 23Y8 ... [ BUFFER BLOCKS REQUIRED 245K ... BITDEFS 7,20,XBCOPY [CLOSING FROM COPY MODE 24#3 ... BITDEFS 7,22,XBAUTO [AUTONOMOUS 24C= ... BITDEFS 7,23,XBSET [CLOSESET 24GF ...# 24KN ...# 24NX ...# ENTRY POINTS. 24S6 ...# 24XQ SEGENTRY K1CLOSEND,XENT1 25CB ... SEGENTRY K2CLOSEND,XENT2 [ENTRY FROM CLOSEMAS 26DT ...# 26S2 ...# 2777 ...# 27G# ...# 27TG # CLOSEND CLOSES THE FILE IN THAT IT ADJUSTS CTOPEN, UNSETS 28*6 ...# BFMCOP (THE OPEN IN COPY MODE BIT) AND RELEASES ANY WAITERS. 28SQ # IT DECIDES WHETHER AN AUTONOMOUS CLOSE SHOULD BE SET UP TO UPDATE 29#B ...# THE DIRECTORY, AND IF SO, GOES ACROSS TO CLOSEONE TO SET ONE GOING 29S2 [ 2B8L ...# 2BN= ...# 2G5L SFINDEXF 2GK= #HAL FI+FINDEXF,0 2HJG MCOMMUNE #57777777 2J46 MASKV #47577737 2KH2 # 2KLX ...# 2KQS ...# SUBROUTINES 2KWP ...# ----------- 2L2L # 2LG= # 2LQ4 ...# FREES THE FSTACK ELEMENT POINTED AT BY X2. ON EXIT, X1=FX1, X2=FX2 2L^W SUBRELT 2MFG SUBRELT 2 2M^6 EXIT 6 0 2N8Y ...# 2N=G ...# 2N#4 ...# LOCATES A FMAPP BLOCK. 2N*L ...# ON ENTRY, X2->FCB OR FSTACK. X1 IS S/R LINK. 2NC8 ...# ON EXIT, X2->FMAPP. X0 OVERWRITTEN. 2NDQ SFMAPP 2NYB ... LDX 0 FFSFMAPP 2PXL MAPFIND 2QC= LDX 2 FPTR(2) 2QWW ... BXU 0 ATYPE(2),MAPFIND 2RW6 EXIT 1 0 2S5Y ...# 2S9T ...# 2S*Q TAB 2STB TOPFCAB 3,2 [X2->FCB X3->FCA 2T*2 EXIT 6 0 2TJS ...# 2TNP ...# 2TSL TB 2W#= ... TOPFCB 2 [X2-> FCB 2WRW EXIT 6 0 2X?G # 2XR6 ...[ 2Y=Q ...[ADJUST ACTIVITY PRIORITY WHEN CLOSING VITAL SYS FILE:ASF REQUIREMENT 2YQB ...[ ON ENTRY X2->FCB 2^=2 ...PRIORITY 2^PL ... JMBAC (5),2,BFDIR,BFVSF [EXIT IF NOT VITAL SYS FILE 329= ... APVSF DOWN [ADJUST ACT PRI 32NW ... CALL 6 TB [X2->FCB AGAIN 338G ... EXIT 5 0 375G # 37K6 # FIND THE ACTIVITY ATTACHED TO THE FCA ADDRESSED BY X2 384Q SFACT 38JB LDX 2 BPTRF(2) 3942 SMO FBACKPOINT(2) 39HL LDX 0 ATYPE(2) 3=3= TXL 0 CACT 3=GW BCS SFACT 3?2G ADX 2 FBACKPOINT(2) 3?G6 ... TRACEIF K6CLOSEND,99,299,ACNUM(2),ACTOUT 3?^Q EXIT 1 0 3#FB # 3G#W # 3GSG ...# CONVERT TO A FULL CLOSE - CHANGE X7 B0-8 TO HAVE JUST XBFULL SET 3H#6 XCONVERT 3HRQ ... TRACEIF K6CLOSEND,99,299,7,CLOSE??? 3J?B ... ANDX 7 BSP16 [PRESERVE L.S. 15 BITS OF X7 3JR2 ... BS ,XBFULL 3M96 EXIT 5 0 3MNQ # 3MYJ ...# 3N8B # RELEASE ANY AUTOCLOSE ON THE FILE WHICH IS WAITING FOR THE FILE TO 3ND8 ...# BE FREE (IT WILL ONLY BE WAITING IF THE FILE IS OPEN IN GENERAL, 3NN2 ...# WRITE OR APPEND MODE). 3NXS ...# ON ENTRY, X2-> FCB. X5 IS S/R LINK. 3P?H ...# ON EXIT, X2-> FCB, X0,X1 & X6 MAY BE OVERWRITTEN. NO COORDINATION 3PM= RELCLFR 3QLG ... JBCC (5),2,BFCLEANW [EXIT IF NO WAITING AUTOCLOSE 3R66 ... TRACEIF K6CLOSEND,99,299,FLOC1(2),REL CLFR 3XGQ LONGON CLOSEFREE,BACK2(2) 3Y2B ... CALL 6 TB [X2->FCB 3YG2 ... EXIT 5 0 3Y^L # 3^9D ...# 3^F= ...# THIS SUBROUTINE WAKES WAITERS IN STYLE 6 ON THIS FILE, 3^P4 ...# I.E. ANY FWAITCOUNT TYPE WAITERS OR ANYONE WAITING TO EMPTY. 3^YW ...# ON ENTRY, X2-> FCB. X5 IS S/R LINK. 428N ...# ON EXIT, X0,X1 & X6 MAY BE OVERWRITTEN, X2-> FCB. NO COORDINATION 42DG RELWAIT 48RL LDX 0 FWAITCOUNT(2) 49?= BNZ 0 WAITER [J IF SOMEONE WAITING 49QW ... JBC (5),2,BFEMPTY [EXIT IF NO-ONE WAITING TO EMPTY 4?9Q WAITER 4?PB ... TRACEIF K6CLOSEND,99,299,FLOC1(2),RL STY6 4#92 LONGON 6,BACK2(2) 4#NL ... CALL 6 TB [X2-> FCB 4*8= ... EXIT 5 0 4HKD ...# 4HLF ...# 4HN= ...[ THIS SUBROUTINE CLEARS THE BFTIDY SEMAPHORE WHICH IS SET UP IN 4HQ3 ...[ SEGMENT CLOSEDIR - THE SEMAPHORE IS USED TO PREVENT ONE CLOSE 4HRS ...[ OVERTAKING ANOTHER IN CRITICAL CIRCUMSTANCES. 4HTN ...[ ON ENTRY, X2->FCB. X5 IS S/R LINK. 4HXQ ...[ ON EXIT , X0, X1 & X6 MAY BE DESTROYED, X2->FCB. NO COORDINATION. 4H^S ...SBFTIDY 4J5Y ... VOP 2,BFTIDY [CLEAR BFTIDY SEMAPHORE 4J82 ... CALL 6 TB [X2->FCB 4J=4 ... EXIT 5 0 4J#6 ...[ 4J#8 ...# 4J#9 ...# SUBROUTINE TO ISSUE A LFCLOSE MACRO, IF NECESSARY, TO TELL 4J#= ...# LISTFILE THAT THIS FILE IS NO LONGER OPEN FOR WRITING. 4J#? ...# ON ENTRY, TOP FILE RINGED IN IS ONE FOR WHICH LFCLOSE TO BE ISSUED 4J## ...# X2->FCB, X3->FCA. X5 IS S/R LINK. 4J#* ...# ON EXIT, X0,X1 & X6 MAY BE OVERWRITTEN, X2->FCB, X3->FCA. 4J#B ...# MAY COORDINATE. 4J#K ...XLFCLOSE 4J#M ... JFZ (5),2,FFFREZCT [J IF FILE NOT LISTFILE-FROZEN 4J#P ... LDX 0 FSAVECOUNT(2) 4J#R ... ANDX 0 HALFTOP 4J#T ... BNZ 0 (5) [J IF HLS WRITE FROZEN 4J#X ... TRACEIF K6CLOSEND,99,299,FLOC1(2),LFCLOS [LFCLOSE MACRO ISSUED 4J#^ ... SBX 5 FX1 4J*3 ... GETFNAME [SET UP FABSNB FOR THIS FILE 4J*5 ... CALL 6 TB [X2-> FCB 4J*6 ...#UNS AWLSZ 4J*7 ...( 4J*8 ... LDX 6 FBLMOD(2) 4J*9 ... SBN 6 FBLKS-A1 [PICK UP FILE SIZE 4J*= ...) 4J*? ... LF 2,FFFREZCT,0 4J*# ...#UNS AWLSZ 4J** ... LFCLOSE 0,6 [INFORM LF THAT FILE CAN BE LISTED 4J*B ...#UNS AWLSZ 4J*C ...#SKI 4J*D ... LFCLOSE 0 [INFORM LISTFILE THAT FILE CAN NOW BE 4J*F ... [ LISTED 4J*G ... CALL 6 TAB [X2-> FCB, X3->FCA 4J*H ... ADX 5 FX1 4J*J ... EXIT 5 0 4J*K ...# 4J*L ...# 4J*M ...TICKLEDRM 4J*P ... SBX 5 FX1 4J*S ... FDRMAUTX 6 4J*T ... CALL 6 TAB [X2->FCB, X3->FCA 4J*X ... ADX 5 FX1 4JB2 ... EXIT 5 0 4JB5 ...# 4JBG ...# 4JBX ...# MAIN CODE 4JC# ...# ---- ---- 4JCP ...[ 4JD= ...[ 4JGL # THIS IS THE MAIN ENTRY FROM CLOSEDIR 4K2= ...# THE FILE IS STILL OPEN & ATTACHED TO THE CLOSING ACTIVITY. 4KFW ...# AUTOCLOSES COULD BE RINGED IN. 4LF6 XENT1 4LMK ...MERGEAB 4LN4 ... CALL 6 TAB [X2 -> FCB X3 -> FCA 4LX2 ... JBC NOFFWF,2,BFWORK [J IF NOT WORK FILE 4LY? ... JBC NOTERALL,2,BFERALLWF 4L^J ... COOR3 #41 [WAIT FOR ERALLWF TO FINISH 4M2T ... BRN MERGEAB [AND MOVE FCB TO FILE CHAIN 4M46 ...NOTERALL 4M5C ... BS 2,BFERALLWF [TO LOCK OUT ERALLWF DURING FRBS 4M6Q ... ANDX 7 BSP16 [PRESERVE L.S. 15 BITS OF X7 (ESP. 4MBG ... [ CLOSEABANDON BIT IF SET) 4ML= ... BS ,XBFRBS [CONVERT TO CLOSEFRBS 4M^W ...NOFFWF 4N5J ... JBC NOTAB,2,BFCLOSEAB [J IF FILE NOT TO BE CLOSEABANDONED 4N9= ... BS ,XBABAND 4N#^ ...NOTAB 4NSK ... JBS XABAND,,XBABAND [J IF CLOSEABANDON 4P#9 ... JBS NOTOPSTILL,,XBAUTO [IGNORE OTHER OPENERS IF AUTOCLOSE 4PRT ... LDX 0 CTOPEN(2) [X0= NO. OF TIMES FILES OPEN 4Q?F ... SBX 0 4 [ALLOW FOR MODE THIS ACT HAS FILE 4QR5 ... [ OPEN IN 4XQ2 ANDX 0 MCOMMUNE(1) 4XY= ... BZE 0 NOTOPSTILL [J IF NOT OPEN 4Y6G ... JBC STILLOPEN,2,BFWORK 4Y#Q ... BC 2,BFERALLWF [CLEAR IN CASE SET ABOVE FOR FRBS 4YH2 ... BRN STILLOPEN 4YP= ... [IGNORE COPY MODE AT THIS POINT SO WE 4^8W ... [ RELEASE RIGHT WAITERS 52MQ NOTOPSTILL 537B ... JBS TESTMAS,,XBFULL [J IF FULL CLOSE 53M2 ... JMBAS WORKERASE,2,BFWORK,BFERASE [J IF TO-BE-ERASED WORKFILE 546L ... JMBS START,,XBSHORT,XBFRBS [J IF CLOSESHORT OR CLOSEFRBS 6KDQ # 6KYB # CHECK TO SEE IF WE SHOULD CONVERT TO A FULL CLOSE. CONVERT IF 6LD2 ...# BLOCKS ALT. OR UWB OR BFDIRUPDATE SET 6LLB ...# 6M36 ... JMBAC MFULL,2,BFALTB,BFUWB,BFDIRUPDATE 6M6L ... CALL 5 XCONVERT [CONVERT TO FULL CLOSE 6M=6 ...TESTMAS 6M*L ... BXU 2 BFILE,MFULL [J IF NOT MASTER 6MF6 ...# 6MJL ...# 6MN6 ...# 6MRL ...# FULL CLOSE ON MASTER & NO OTHER OPENERS. 6MX6 ...# GO ACROSS TO CLOSEMAS TO REWRITE MASTER'S 6N2L ...# DIRECTORY ENTRY. COME BACK TO K2CLOSEND IF NOT AN AUTOCLOSE. IF IT 6N66 ...# IS AN AUTOCLOSE, CLOSEMAS GOES ACROSS TO CLOSEALT TO WIND UP THE 6N9L ...# CAREFUL UPDATE 6N*6 ...# 6NDL ... LDCT 0 #774 6NJ6 ... ANDX 0 FGENERAL1(3) 6NML ... ERS 0 FGENERAL1(3) [CLEAR MODE OPEN IN FCA 6NR6 ... BS 3,BAMGEN [SET 'GENERAL MODE' IN FCA 6NWL ... LDCT 0 #400 6P26 ... STO 0 CTOPEN(2) [PRETEND MASTER OPEN IN GENERAL MODE 6P5L ... CALL 5 SBFTIDY [CLEAR 'BFTIDY' SEMAPHORE 6P96 ... ACROSS CLOSEMAS,1 6P#L ...XENT2 6PD6 ... CALL 6 TAB [X2-> FCB, X3-> FCA 6PHL ... STOZ CTOPEN(2) [CLEAR WAY MASTER IS OPEN 6PKB ... CALL 5 PRIORITY 6PM6 ... CALL 5 RELWAIT [RELEASE WAITERS IN STYLE 6 6PQL ... BRN TORIDFCB [GO TO FREE FSTACK BLOCK 6PW6 ...# 6P^L ...# 6Q56 ...# 6Q8L ...# CLOSEABANDON 6Q#6 ...# FOR A WORKFILE, CARRY ON CLOSING 6QCL ...# OTHERWISE WE GO DOWN TO CLOSEAB TO RETURN THE FILE TO THE STATE 6QH6 ...# IT WAS IN BEFORE IT WAS WRITTEN TO OR OPENED. 6QLL ...# 6QQ6 ...XABAND 6QTL ... JBS WFAB,2,BFWORK [J IF WORK FILE 6Q^6 ... DOWN CLOSEAB,1 [CLOSEABANDON FILE 6R4L ... BRN OTHEROPE [OTHER OPENERS (DO ABSOLUTE MINIMUM) 6R86 ... CALL 6 TAB [X2->FCB, X3->FCA 6R?L ... BRN XCTOPEN 6RC6 ...OTHEROPE 6RGL ... CALL 6 TAB [X2->FCB, X3->FCA 6RJY ... JBS XCTOPEN,,XBCOPY [J IF COPIER(MUSTN'T GO TO STILLOPEN 6RM= ... [ - ROUTE ALL COPIERS BY XCTOPEN) 6RPL ... LDX 0 CTOPEN(2) 6RT6 ... ANDX 0 MCOMMUNE(1) 6RYL ... SBX 0 4 6S46 ... BZE 0 XCTOPEN [J IF STILLOPEN ONLY IN COPY MODE 6S7L ... BRN STILLOPEN 6S?6 ...# 6SBL ...# 6SG6 ...# 6SKL ...WORKERASE [TO-BE-ERASED ! FILE 6SP6 ... JFNZ START,2,FFFREZCT [J IF LF-FROZEN (CAN'T BE HLS FROZEN) 6SSL ...WFAB1 6SY6 ... LDX 6 FBLMOD(2) 6T3L ... SBN 6 FBLKS-A1 6T76 ... SMO FX2 6T9D ... STOZ AWORK1 [REMEMBER IN AWORK1 NO. OF BLOCKS IN 6T?Q ... [ FILE TO GIVE TO DELWORK 6TB6 ... LDN 0 FBLKS-A1 6TFL ... STO 0 FBLMOD(2) [EMPTY FILE 6TLW ... SUBCUBS 3,6,JOB [REDUCE CUBS 6TS6 ... CALL 6 TB [X2-> FCB 6TXL ... BRN START 6W36 ...WFAB [TO-BE-ABANDONED ! FILE 6W6L ... LDX 0 CTOPEN(2) 6W=6 ... ANDX 0 MCOMMUNE(1) 6W*L ... SBX 0 4 6WF6 ... BZE 0 WFAB1 [J IF NOT STILL OPEN 6WJL ... BS 2,BFCLOSEAB [SET 'TO-BE-CLOSEABANDON' BIT IN FCB 6WPL # 6X4R ...# 6XCY ...# 6XN? ...# IT'S CLOSESHORT OR CLOSEFRBS. IF THERE ARE ANY SPARE BLOCKS IN THE 6XYL ...# FCB, PUT THEM IN A FULLB. IF CAREFUL, LOCATE ANY FULLBS AFTER THE 6Y8^ ...# FMAPP AND CHAIN THESE TO THE ACT.. 6YFC ...# IF CLOSEFRBS, FREEBAX ALL THIS BACKING STORE. 6YSJ ...# IF CLOSESHORT, CHAIN THE FULLBS AFTER THE DIRECTORY'S FMAPP 6^7Q # - THE DIRECTORY MUST BE OPEN AT LEVEL 1 6^MB START 7272 LDX 3 FUSEBL(2) 72LL ... SBX 3 FBLMOD(2) [X3= NO. OF BLOCKS WHICH NEED FREEING 736= ... LDN 5 0 [INITIALISE 'NO. OF FULLBS' 73KW ... BZE 3 MAPCHX [J IF NO BLOCKS TO FREE 745G ... SETNCORE 2(3),2,BSTB,FULLB [X2-> FULLB 74K6 ... TOPFCB 1 [X1-> FCB 754Q ... LDX 6 FUSEBL(1) 75DF0... SBX 6 FBLMOD(1) [X6= NEW NO. OF BLKS NEEDING FREEING 75S8 ... BXL 3 6,ZBSERR [GEOERR IF NO. OF SPARE BLOCKS HAS 767X ... [ INCREASED 76HL ... LDX 3 6 [X3= NO. OF SPARE BLOCKS 773= ... SBS 3 FUSEBL(1) [ADJUST NO. OF BLOCKS IN FCB 77GW ... SBS 3 ALOGLEN(1) [ADJUST LENGTH OF FCB 782G ... ADN 3 2 78G6 ... STO 3 A1(2) [SET UP RECORD HEADER FOR FULLB 7G=L LDX 0 BSPRE(1) 7GK3 ... STO 0 A1+1(2) [FILE RESIDENCE INTO FULLB 7GXD ... BZE 3 NBLKS [J IF NOW NO BLOCKS 7H9W ADX 1 FBLMOD(1) 7HPG ADN 1 A1 7J96 ADN 2 A1+2 7JNQ ... MOVE 1 510(3) [MOVE SPARE BLOCKS TO FULLB 7K8B ...NBLKS 7KN2 ... ADN 5 1 [UPDATE COUNT OF FULLBS 7LM= MAPCHX 7LX4 ... CALL 6 TAB [X2->FCB, X3->FCA 7M6W JBC NOCARE,2,BFCARE 7MLG ... CALL 1 SFMAPP [X2->FMAPP 7PK2 LDX 3 2 7Q4L ... LDX 6 FFSFULLB 7RHG MOVENEXT 7S36 LDX 1 FPTR(3) 7SGQ ... BXU 6 ATYPE(1),MOVEDALL [FINISH IF NOT FULLB 7T2B ... CHAIN 1,FX2 [RECHAIN THE FULLBS AFTER THE ACT. 7T^L BUX 5 MOVENEXT [COUNT THEM 7WF= MOVEDALL 7WYW ... CALL 6 TAB [X2->FCB, X3->FCA 7XDG NOCARE 7XY6 ... BZE 5 NOSPARE [J IF NO FULLBS 7YXB ... JBS TOFREEBS,,XBFRBS [J IF CLOSEFRBS 82B= LDX 2 FPTRF(3) [X3->DIRECTORY'S FCA 82TW ADX 2 FBACKPOINT(2) 83*G ... CALL 1 SFMAPP [X2->DIRECTORY'S FMAPP 85#2 # WHEN TRANSFERRING FULLB'S THEY SHOULD BE PUT AFTER THE FIRST FULLB 85RL ...# OF THE TRANSFEREE, OR AFTER THE FMAPP IF NO FULLB 86QW SMO FPTR(2) 87=G LDX 0 ATYPE 87Q6 ... BXU 0 FFSFULLB,NODIRFUL [J IF NO FULLB AFTER DIRECTORY'S FMAP 889Q ... LDX 2 FPTR(2) [X2-> FIRST FULLB 89NL NODIRFUL 8=8= ... LDX 3 2 [X3-> BLOCK TO CHAIN FULLBS TO 8=MW NEXTMV 8?7G MHUNTW 1,BSTB,FULLB 8?M6 CHAIN 1,3 [CHAIN FULLB'S AFTER DIRECTORY 8#6Q BCT 5 NEXTMV 8#LB BRN NOSPARE 8*62 TOFREEBS [CLOSEFRBS FREES BACKING STORE NON-CAREFULLY 8*KL FREEBAX 8B5= MFREEW BSTB,EMPTYB 8BJW BCT 5 TOFREEBS 8C4G NOSPARE 8CJ6 ... CALL 6 TAB [X2->FCB, X3->FCA 8D3Q ... JBC NOTWOR,2,BFWORK 8DHB ... BC 2,BFERALLWF [CLEAR BIT SET DURING FRBS 8F32 ...NOTWOR 8FGL LDX 0 CTOPEN(2) 8G2= SMO FX1 8GFW ANDX 0 MCOMMUNE 8G^G SBX 0 4 8HF6 ... BNZ 0 STILLOPEN [J IF FILE NOW STILL OPEN (CAN BE IF 8HYQ ... [ WORKFILE) 8LWG MFULL 8MB6 ... STOZ FGENERAL1(3) [CLEAR OUT FCA MARKERS SINCE ON 8MTQ ... STOZ FGENERAL2(3) [ UPDATING CTOPEN WE ENTER NEW PHASE 8N*B ... [ - MARK THE FCA AS SPARE 953L # 95H= ...# CLOSE THE FILE - CLEAR CTOPEN 9726 ...XCTOPEN 979Y ... CALL 5 PRIORITY 97FQ ... JBS YCOPY,,XBCOPY [J IF CLOSING FROM COPY MODE 97PJ ...YCTOPEN 97^B ... STOZ CTOPEN(2) [CLEAR 'WAY FILE IS OPEN' 98F2 ... MBC 2,BFDCF,BFCORE,BFSTEPWAIT,BFAPPWAIT 98YL ... CALL 5 RELWAIT [RELEASE ANY STYLE 6 WAITERS 99D= ... CALL 5 RELCLFR [RELEASE ANY AUTOCLOSE WAITING 99XW ... JBSC TLF,2,BFGDR [J IF GDR 9=CG ... LDX 0 4 9=X6 ... ANDN 0 1 9?BQ ... BNZ 0 YREAD [J IF CLOSING FROM READING 9?WB ... [SINCE LISTFILE MAY SHARE WITH READ 9#B2 ...TLF 9#NC ... CALL 5 XLFCLOSE [INFORM LISTFILE (IF FROZEN) FILE NOW 9*2S ... [ FREE 9**= ...YREAD 9*SW ... CALL 5 SBFTIDY [CLEAR BFTIDY SEMAPHORE 9B#G ... JMBS SAVETEST,,XBABAND,XBSHORT,XBFRBS 9BS6 ...WTFILE 9C?Q ... JBS ZAUTO,2,BFSOLE [J IF AUTOCLOSE ON FILE 9CRB ... JBC NFULL,,XBFULL [J IF NOT FULL CLOSE *NGB # *NSR ...# *P78 ...# *PFK ...# THE DIRECTORY IS TO BE UPDATED. *PS2 ...# SET THE DIRECTORY-BEING-UPDATED BIT (BFSOLE). *Q6C ...# MARK THE FCA AS BELONGING TO AN UNCONVERTED AUTOCLOSE. *QDW # PRESERVE THE FCB NO. IN X5 FOR CHECKING IF THE FILE STILL EXISTS *QR? ...# AFTER A COORDINATION - SOMEONE MAY HAVE CLOSESHORTED OR *R5N ...# CLOSEABANDONED IT !!! *RD6 # SET UP AN AUTONOMOUS CLOSE ACTIVITY TO DO THE UPDATE, UNLESS THIS *RXQ ...# IS AN AUTOCLOSE CLOSE - THEN THE CURRENT ACTIVITY MUST DO *SCB ...# THE DIRECTORY UPDATE. *SX2 ... BS 2,BFSOLE [SET 'WE ARE GOING TO UPDATE THE *TBL ... [ DIRECTORY' BIT *TW= [ *W*W ...[ NOW FIND THE LATEST AUTOCLOSE (IF ANY) AND UNMARK IT, MARK OUR FCA *WTG ...[ AS THE LATEST, CONVERTED SOLECLOSE. *X*6 [ *XC* ... LF 2,FFAUTCLCT,6 [X6= COUNT OF AUTOCLOSES ON FILE *XFJ ... ADN 6 1 *XHR ... STF 2,FFAUTCLCT,6 [UPDATE COUNT OF AUTOCLOSES BY 1 *XL2 ... SBN 6 4095 *XN9 ... BPZ 6 ZAUTTOOBIG [J IF FIELD FFAUTCLCT HAS OVERFLOWED *XQD ... LDX 5 BACK2(2) [REMEMBER FCB NO. OF TOP FILE OPEN *XSQ PSTAC 2,3 [X2 -> FSTACK BLOCK *Y#B ... LDEX 6 ARINGNO(2) *YS2 ... ADN 2 A1 [X2-> 1ST ELEMNT IN FSTACK *^?L NEXT *^L3 ... JBSC XLATEST,2,BALATEST [J IF FOUND LATEST AUTOCLOSE (& CLEAR *^YD ... [ BIT) B2=W ... ADN 2 FELLEN B2QG ... BCT 6 NEXT [J IF MORE ELEMENTS TO LOOK AT B3=6 XLATEST B67W MBS 3,BACONV,BASOLE,BALATEST B776 ... JBC NOTCLAUT,,XBAUTO [J IF NOT AN AUTONOMOUS CLOSE B9K= ACROSS CLOSEONE,1 B=4W NOTCLAUT B=C? ... ACROSS CLOSEONE,4 [TO SET UP AUTONOMOUS CLOSE WHICH B=PN ... [ THEN GOES TO K1CLOSEONE B?46 # B?4C ...# B?4N ...# B?4^ ...YCOPY B?53 ... BXE 2 BFILE,YCTOPEN [J IF :MASTER(OPEN IN GENERAL MODE B?55 ... [ FOR COPYING - FULL CLOSE SINCE FILE B?57 ... [ NOT ACTUALLY COPIED) B?5= ... BC 2,BFMCOP [CLEAR 'OPEN IN COPY MODE' BIT B?5B ... BRN NOCOPYTEST B?5H ... SMO FX2 B?5S ... LDX 0 FILERING B?65 ... SMO FX2 B?69 ... BXU 0 FILEBRING,XCOPYERR2 [GEOERR IF EXTRA FILE RINGED INTO B?6* ... [ AUTOCOPY B?6G ...NOCOPYTEST B?6M ... JBCC NOWCLOSED,2,BFFRITEW B?6Y ... TRACEIF K6CLOSEND,99,299,FLOC1(2),RL FRITE B?76 ... FON FRITEWAIT [RELEASE ANY FRITES WAITING FOR COPY B?7# ... [ TO FINISH B?7G ... CALL 6 TB [X2->FCB B?7R ...NOWCLOSED B?84 ... CALL 5 RELWAIT [RELEASE ANY (COPY) WAITER IN STYLE 6 B?88 ... CALL 5 RELCLFR B?8* ... CALL 5 SBFTIDY [CLEAR BFTIDY SEMAPHORE B?8L ... JBC WTFILE,,XBABAND [J IF NOT CLOSEABANDON B?8X ... LDX 0 CTOPEN(2) B?98 ... BNZ 0 NOSET [J IF STILL OPEN B?9F ... BRN SAVETEST B?9Q ...# B?=3 ...# B?=# ...# B?=K ...ZAUTO [AUTOCLOSE ON FILE (BFSOLE SET) B?=W ... JBC XJBRN,,XBAUTO [J IF THIS NOT AN AUTOCLOSE B??4 ... JBC XWAITAUTO,2,BFAUTO [J IF AUTOCLOSE BEING SET UP BUT IS B??= ... [ NOT QUITE THERE B??D ... SMO FBACKPOINT(3) B??P ... LDN 2 0(3) [X2-> FSTACK B?#2 ... LDEX 5 ARINGNO(2) B?#? ... ADN 2 A1 B?#J ...SFCA B?#T ... BXE 2 3,OURS [J IF THIS IS OUR FCA B?*6 ... BSXD 6,BALATEST B?*C ... ANDX 6 FGENERAL1(2) B?*N ... BNZ 6 XFOUND [J IF LATEST FCA FOUND B?*^ ...OURS B?B= ... ADN 2 FELLEN B?BH ... BCT 5 SFCA [J IF MORE ELEMENTS TO LOOK AT B?BS ... GEOERR BRIEFPM,NO FCA B?C5 ...XFOUND [X2-> FCA OF LATEST AUTOCLOSE B?CB ... CALL 1 SFACT [X2-> FILE'S AUTOCLOSE ACT. B?CM ... SMO FX2 B?CY ... STO 2 AWORK1 [REMEMBER POINTER TO OTHER AUTOCLOSE B?D9 ...[ MERGE TO SOLECLOSE OR COPYFILE B?DG ...# B?DR ...# RERING OUR FILE RING, EXCEPT OUR FCA, AT THE BOTTOM OF THE OTHER'S B?F4 ...# B?F* ... LDX 2 FX2 B?FL ... LDX 3 FILERING(2) [X3-> OUR TOP FCA B?FX ... LDX 4 3 B?G4 ... BXE 3 FILEBRING(2),OURSUB [J IF OUR (TOP) FCA IS THE ONLY FCA B?G9 ... [ RINGED TO OUR ACT. B?GB ... [NO NEED FOR RERINGING SINCE OTHER B?GH ... [ AUTOCLOSE ALREADY RINGED TO FILE B?GQ ... LDX 2 AWORK1(2) [OTHER ACT B?H3 ... LDX 5 FILEBRING(2) [X5-> BOTTOM FCA OF OTHER ACT. B?H# ... LDX 3 FPTRF(3) [X3-> OUR 2ND FCA B?HK ...NXX1 B?HW ... RERING 3,5 B?J7 ... SMO 4 B?JD ... LDX 3 FPTRF [X3-> NEXT FCA IN OUR RING B?JP ... SMO FBACKPOINT(3) B?JX ... LDN 2 0(3) [X2-> BLOCK CONTAINING THIS RING B?K5 ... [ ELEMENT B?K? ... BXU 2 FX2,NXX1 [J IF NOT BACK TO OUR ACT. BLOCK B?KJ ...OURSUB B?KT ... LDX 2 4 B?L6 ... CALL 6 SUBRELT [DERING OUR (TOP) FCA B?LC ... BRN SUICIDE B?LN ...# B?L^ ...# B?M= ...# B?MH ...XWAITAUTO B?MS ...[ WAIT FOR THE FILE TO BE RUNG TO THE AUTOCLOSE B?N5 ... BS 2,BFAUTOW B?NB ... TRACEIF K6CLOSEND,99,299,FLOC1(2),WT CLWT1 B?NM ... LDX 5 BACK2(2) B?NY ... LONGSET CLOSEWAIT,(GEOERR),5 B?P9 ... LONGCOOR B?PG ... CALL 6 TAB [X2-> FCB, X3->FCA B?PR ... BXE 5 BACK2(2),WTFILE [J IF FILE STILL THERE B?Q4 ... TRACEIF K6CLOSEND,99,299,FX2,CLWTGONE B?Q* ... SUICIDE B?QL ...# B?QX ...# B?R8 ...# B?RF ...NFULL B?RM ... JBC NCOPY,,XBCOPY [J IF NOT COPY (CAN BE NO OTHER B?RT ... [ OPENER) B?S3 ... LDX 0 CTOPEN(2) B?S# ... BNZ 0 NOSET [J IF FILE STILL OPEN B?SK ...NCOPY B?SR ... JFZ TORIDFCB,2,FFAUTCLCT [J IF NO AUTOCLOSES OPERATING ON B?S^ ... [ FILE B?T7 ... JBC NOSET,,XBSET [J IF NOT CLOSESET B?TD ...# CLOSESET SO MAKE THE CLOSING ACTIVITY WAIT UNTIL THE OTHER CLOSE B?TP ...# FINISHES AND RELEASES US. B?W2 ...WAITSET B?W? ... STOZ FGENERAL1(3) B?WF ... BS 3,BASET [THIS ACT. IS ABOUT TO WAIT ON A B?WM ... [ CLOSESET B?WT ... BS 2,BFCLOSESET [SET WAIT MARKER IN FCB B?X6 ... TRACEIF K6CLOSEND,99,299,FLOC1(2),WT CLST B?XC ... COOR1 B?XN ... UP B?X^ ...# B?Y= ...# B?YH ...# B?YS ...# CLOSEABANDON CLOSESHORT OR CLOSEFRBS SO THERE ISN'T MUCH POINT B?^5 ...# LETTING OTHER CLOSES CONTINUE. LOOK AT THE FCA'S IN THE FSTACK, B?^B ...# RELEASING ANY CLOSESET WAITERS BEFORE GOING ON TO FREE THE FSTACK. B?^M ...SAVETEST B?^Y ... JBC NOCLOSESET,2,BFCLOSESET [J IF NO CLOSESET ON FILE B#26 ... LDN 6 0 [INITIALISE COUNT OF CLOSESETS B#2# ... [ RELEASED B#2G ... SMO FBACKPOINT(3) B#2R ... LDN 5 0(3) [X5-> FSTACK B#34 ... SMO 5 B#3* ... LDEX 4 ARINGNO [X4= NO. OF RING ELEMENTS B#3L ... ADN 5 A1 [SET UP TO SEARCH FSTACK B#3X ...SFCAPT B#48 ... BXE 5 3,OURFCA [J IF THIS IS OUR FCA B#4F ... LDX 2 5 [X2-> NEXT FCA B#4Q ... JBC OURFCA,2,BASET [J IF THIS FCA IS ON A CLOSESET B#53 ... CALL 1 SFACT [X2->ACTIVITY ATTACHED TO THE FCA B#5# ... TRACEIF K6CLOSEND,99,299,ACNUM(2),CLOSESET B#5K ... FPUT [PUT CLOSESET BACK ON LIST B#5W ... ADN 6 1 [UPDATE COUNT OF CLOSESETS RELEASED B#67 ...OURFCA B#6D ... ADN 5 FELLEN [LOCATE NEXT FCA B#6P ... BCT 4 SFCAPT [J IF MORE ELEMENTS TO LOOK AT B#6X ... BZE 6 ZCLOSESET [GEOERR IF NO CLOSESET WAITER & B#75 ... [ BFCLOSESET SET B#7? ... CALL 6 TB [X2-> FCB B#7J ...NOCLOSESET B#7T ... FC 2,FFAUTCLCT [CLEAR COUNT OF AUTOCLOSES ON FILE B#86 ... TRACEIF K6CLOSEND,99,299,FLOC1(2),SH/FR/AB B#8C ...# B#8N ...# B#8^ ...# B#9= ...# TRY TO FREE THE REMAINING BLOCKS ASSOCIATED WITH THE FILE BEFORE. B#9H ...# GOING UP B#9S ...# FSTACK FREE IT UNLESS BEING OPENED IN COPY MODE B#=5 ...# FMAPP FREE UNLESS CLOSESAVE - THEN CHAIN AFTER CURRENT ACT B#=B ...# FINDEXF GOES WITH THE FCB - FREED OR PUT IN HALF-OPEN CHAIN B#=M ...# FULLB ONLY HERE IF CLOSESAVE - CHAIN AFTER CURRENT ACT B#=Y ...# FEXTRA FREE IT IF WF IS TO-BE-ERASED, NOT FROZEN, NOT BEING B#?9 ...# UPDATED BY ERALLWF AND NOT CLOSESAVE B#?G ...# FCB FREE IT OR PUT DIRECTORY IN HALF-OPEN CHAIN UNLESS B#?R ...# MARKED KEEP HALF-OPEN (COMM B14) B##4 ...# WAITERS, OR SOMEONE WAITING TO EMPTY B##* ...# CONVERTED AUTOCLOSE ON THE FILE I.E. CLOSECT SET B##L ...# BEING OPENED IN COPY MODE B##X ...# WF NOT TO-BE-ERASED B#*8 ...# WF TO-BE-ERASED BUT FROZEN OR BEING UPDATED BY B#*F ...# ERALLWF B#*Q ...TORIDFCB B#B3 ... MBC 2,BFSOLE,BFCLOSESET,BFAUTO B#B4 ... LDX 0 CTOPEN(2) B#B5 ... BNZ 0 NOSET B#B8 ... JMBS NOSET,2,BFMCOP,BFFCB [J IF FILE BEING COPIED (NEED THIS B#B* ... [ SINCE STILL OPEN IN COPY MODE SENT B#BG ... [ THROUGH SOLE OPENER PATH) B#BM ... JBS TOFREEFCB,,XBABAND [J IF CLOSEABANDON (IGNORE EMPTIERS & B#BS ... [ WAITERS) B#B^ ... JMBS TOFREEFSTAC,2,BFHALF,BFEMPTY [J IF EMPTY OR TO KEEP FCB B#C6 ... [ IN FILE CHAIN (:MASTER ONLY) B#CD ... LDX 0 FWAITCOUNT(2) B#CP ... BNZ 0 TOFREEFSTAC [J IF WAITED FOR B#D2 ...TOFREEFCB B#D? ... JBS TOWF,2,BFWORK [J IF WORKFILE B#DJ ... LDX 3 2 [X3->FCB B#DT ... FREECORE FPTR(2) [FREE FILE/FSTACK B#F6 ... LDN 6 0 [SET 'NO FINDEXF' MARKER B#FC ...TRYNEXT B#FN ... LDX 2 FPTR(3) [X2-> BLOCK CHAINED TO FCB B#F^ ...TRYX B#G= ... BXE 2 CXFI,OVERCHECK [J IF BASE OF FILE CHAIN B#GH ... LDX 0 ATYPE(2) B#GS ... BXE 0 FILEPLUSFCB,OVERCHECK [J IF NEXT FCB B#H5 ... BXU 0 SFINDEXF(1),TRYFMAPP [J IF NOT FINDEXF B#HB ... LDN 6 #77 B#HM ... ANDX 6 FINFC(3) B#HY ... BZE 6 ODDEND [GEOERR IF FINDEXF BUT NOT INDEXED B#J9 ... LDX 2 FPTR(2) [X2-> NEXT BLOCK IN FILE CHAIN B#JG ... BRN TRYX B#JR ...TRYFMAPP B#K4 ... BXU 0 FFSFMAPP,ODDEND [GEOERR IF NOT FMAPP B#K* ... JBCC ODDEND,3,BFCARE [GEOERR IF FMAPP BUT NOT CAREFUL B#KL ... FREECORE 2 [FREE FILE/FMAPP B#KX ... BRN TRYNEXT B#L8 ...ODDEND B#LF ... GEOERR BRIEFPM,ODD END B#LQ ...OVERCHECK B#M3 ... JMBS SFDIR,,XBSHORT,XBFRBS,XBTHROW B#M# ... JBS YDIRECTORY,3,BFDIR [J IF DIRECTORY B#MK ...SFDIR B#MW ... BZE 6 NOFINDEXF [J IF NO FINDEXF BLOCK B#N7 ... FREECORE FPTR(3) [THE FINDEXF B#ND ...NOFINDEXF B#NP ... DELFCB 3,FILE [FREE FCB B#P2 ... JBC UPA,,XBABAND [J IF NOT CLOSEABANDON B#P? ... CLOSETOP [CLOSE DIRECTORY (OPENED IN CLOSEAB) B#PJ ... BRN UPA B#PT ...YDIRECTORY B#Q6 ... BZE 6 NOINDEX B#QC ... CHAIND FPTR(3),BHALF B#QN ...NOINDEX B#QW ... TRANSFCB 3,FILE,HALF [TRANSFER FCB FROM FILE TO HALFOPEN B#R4 ... [ CHAIN B#R= ... BRN UPA B#RH ...TOFREEFSTAC B#RS ... FREECORE FPTR(2) [THE FSTACK B#S5 ... BRN UPA B#SB ...TOWF B#SM ... TRACEIF K6CLOSEND,99,299,FLOC3(2),CL FFWF [SOLE CLOSE OF A WF B#SY ... SMO FX1 B#T9 ... LDX 0 MASKV B#TG ... ANDS 0 COMM(2) B#TR ... JBC TOFREEFSTAC,2,BFERASE [J IF NOT TO-BE-ERASED B#W4 ... JBS TOFREEFSTAC,2,BFERALLWF [J IF ERALLWF OPERATING B#W* ... JFNZ TOFREEFSTAC,2,FFFREZCT [J IF FROZEN B#WL ... TRACEIF K6CLOSEND,99,299,FLOC3(2),ER FFWF B#WX ... DELWORK B#X8 ... BRN UPA B#XF ...# B*2L ...STILLOPEN B*G= ... TRACEIF K6CLOSEND,99,299,FLOC1(2),STILOPEN [FILE STILL OPEN B*^W ... CALL 5 PRIORITY BJSL SBS 4 CTOPEN(2) [ADJUST CTOPEN BL*8 ... STOZ FGENERAL1(3) [CLEAR OUT FCA MARKERS SINCE ENTERING BLDM ... STOZ FGENERAL2(3) [ NEW PHASE BLJ6 ... JBS YCOPYERR,,XBAUTO [GEOERR IF AUTOCLOSE OR AUTOCOPY BLMK ... [ (THEY GO DOWN XCTOPEN PATH) BLR6 ... LDX 0 4 BM=Q ... ANDN 0 1 BMM= ... BZE 0 XCLOSAPP [J IF CLOSING FROM APPENDING (READING BN3Q ... [ OTHERWISE) BND= ... LDX 0 FCOMMCT(2) BP9= ... BZE 0 XBFTIDY [J IF NOT STILL OPEN COMMUNALLY BQ5B ... CALL 5 RELWAIT [RELEASE WAITING COMMUNAL APPENDER IF BQBQ ... [ ANY (MUST BE A COMMUNAL READER) BQN6 ... LDN 6 FCBAPPWAIT BR7Q ... CALL 5 TICKLEDRM [TICKLE ANY DRMERS BRMB ... JBCC XBFTIDY,2,BFFREEW [WAKE UP ANY DESTRUCTIVE APPENDERS BR^R ... LONGON IWTDEST,BACK2(2) [ WAITING FOR BLOCK TO BE FREED (MAY BS#8 ... [ BE COOR4 AS WELL AS LONG WAITERS) BSLL ... CALL 6 TB [X2-> FCB BT6= ...XBFTIDY BTKW ... CALL 5 SBFTIDY [CLEAR BFTIDY SEMAPHORE BW5G ...# BWK6 ...# BX4Q ...# CH5B XJBRN CJ4L ... JBC NOSET,,XBSET [J IF NOT CLOSESET CJJ= ... JBS WAITSET,,XBFULL [J TO WAIT IF CLOSESET CONVERTED FROM CK3W ... [ 'TOP' TO 'FULL' CLOSE CKHG ... JFNZ WAITSET,2,FFAUTCLCT [J IF AUTOCLOSE STILL GOING ON ON CL36 ... [ FILE CM2B NOSET CMG2 LDX 2 3 CM^L CALL 6 SUBRELT CNF= ...UPA CNYW ... JBC UP,,XBCOPY [J IF NOT CLOSING FROM COPY CPY6 SUICIDE CQCQ SUICIDE [ONLY IF AUTOCOPY ACTIVITY CQXB UP CRC2 UP CRC3 ...# CRC4 ...# CRD9 ...# CRFD ...# CRGM ...# CRHW ...# CRK5 ...XCLOSAPP [SINCE STILL OPEN MUST BE COMMUNAL CRL# ... LDX 0 CTOPEN(2) CRMH ... ANDX 0 COMUNI CRNQ ... BNZ 0 XBFTIDY [J IF OTHER APPENDERS CRPJ ... CALL 5 RELWAIT [LAST APPENDER - SO ALLOW ANY WAITING CRQB ... [ NON-COMMUNAL READERS IN CRR8 ... CALL 5 RELCLFR [RELEASE ANY AUTOCLOSE WAITING CRS2 ... CALL 5 XLFCLOSE [TELL LISTFILE FILE CAN NOW BE LISTED CRSS ... [ (IF FROZEN) CRTL ... LDN 6 FCBSTEPWAIT CRWT ... CALL 5 TICKLEDRM [TICKLE ANY DRMERS WAITING FOR RECORD CRXD ... JBCC YBFTIDY,2,BFAPPC [J IF STYLE 5 WAITER EXISTS (CLEAR CRY3 ... [ BIT TOO) CRYL ... BC 2,BFAPPLW [THIS BIT MAY BE SET TOO ! CR^? ... LONGON1 5,BACK2(2) CS2G ... CALL 6 TB [X2-> FCB CS3P ...YBFTIDY CS4Y ... CALL 5 SBFTIDY [CLEAR BFTIDY SEMAPHORE CS5M ... JMBS XJBRN,,XBABAND,XBFRBS [NO DIR. UPDATE IF FILE WILL BE CS6B ... [ CLOSEABANDONED OR IS A ! FILE CS75 ... CALL 5 XCONVERT [CONVERT TO FULL CLOSE TO ENSURE CS7S ... [ ATTEMPT TO UPDATE DIR. ENTRY CS8K ... BRN WTFILE [GO & UPDATE DIR. CS9S ...# CS?3 ...# CS#= ...# CS*F ...# CSBN ...# CSCP ...# CSCS ...# CSCX ...ZBSERR CSDP ... GEOERR BRIEFPM,BS INC [CLOSESHORT OR CLOSEFRBS - NO. OF CSFH ... [ SPARE BLOCKS HAS INCREASED CSG* ...YCOPYERR CSH7 ... GEOERR BRIEFPM,STILAUTO [AUTOCLOSE OR AUTOCOPY HAS GONE DOWN CSH^ ... [ STILLOPEN PATH CSJR ...XCOPYERR2 CSL2 ... GEOERR BRIEFPM,COPYRING [FILE RINGED INTO AUTOCOPY (TOO EARLY CSM9 ...ZCLOSESET CSN3 ... GEOERR BRIEFPM,NO SET [BFCLOSESET SET BUT NO CLOSESET CSNT ... [ WAITING CSPM ...ZAUTTOOBIG CSQ6 ... GEOERR BRIEFPM,AUT OVR [COUNT OF AUTOCLOSES ON FILE HAS CSQK ... [ OVERFLOWED (BEYOND 12 BITS!!) CSRH ...# CSS5 ...# CSTW #END ^^^^ ...11153501000500000000 </code> Last modified: 17/01/2024 11:55by 127.0.0.1 Log In