19 22FL ... SEG ORELMAIN,70,ROB RUSHTON ,OPEN [8OPAE 4 22KH ...[ 15 22PD ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983 4 22T* ...[ 12 22_= SEGENTRY K1ORELMAIN,Z1ORELMAIN 12 23DW SEGENTRY K4ORELMAIN,Z4ORELMAIN 4 23YG [ 21 24D6 XCMM #30200040 [MASKS FOR PRESERVING COMM& FCOMM FRO 20 24XQ XFCMM #42357 [FILE CHAIN FCB WHEN IT IS BEING 21 25CB [OVERWRITTEN BY ACTIVITY CHAIN FCB IN 16 25X2 [EMPTY MODE CASE 9 26BL WTFR +FWFREE 4 26W= ...# 4 27*W ...# 5 2#PQ XGETFCB 7 2*9B ... BVCI / 20 2B8L [ THIS ROUTINE FINDS FCB WHOSE UNIQUE NUMBER IS IN X6 & EXITS + 0 IF 11 2BN= [ FCB NOT FOUND & +1 IF IT IS 5 2C7W XGFCB 9 2CMG GFCBC 6,3,NF 8 2CT* ... BVCR X1 4 2D38 ...X0 7 2D93 ... EXIT 2 0 4 2DBW ...X1 7 2DJP ... EXIT 2 1 8 2DQJ ...NF BVC X0 9 2DYC ... GEOERR 1,FCB MISS 20 2F6B [THIS ROUTINE TESTS WHETHER THE FCB INDICATED BY X2 CAN BE OPENED 4 2FL2 YCOP 21 2G5L JMBAC OK,2,BFFCB,BFMCOP [WAIT IF OPEN OR BEING OPENED IN COPY 16 2GK= BRN WAIT [IS ALREADY OPEN 5 2H4W TRYREEL 19 2HJG TESTMAIN 7,YCOP,,COPY [DO EXTRA TESTS IF COPY MODE 17 2J46 TESTMODE 7,ORDINARY,NOT,EMPTY[J UNLESS EMPTY MODE 16 2JHQ JBS OPDIR,2,BFDIR [J IF A DIRECTORY 18 2K3B LDX 4 FWAITCOUNT(2) [WE MUST MAKE SURE THAT 19 2KH2 ORX 4 CTOPEN(2) [THE FILE IS UTTERLY UNUSED. 7 2L2L SLC 4 1 19 2LG= SLL 4 1 [COMMUNE BIT DOESN'T MATTER. 17 2L_W ORX 4 FREEZECOUNT(2) [NO GOOD IF FROZEN 14 2MFG ORX 4 FSVCT(2) [OR SAVED 8 2M_6 BNZ 4 NOK 21 2NYB JMBAC OK,2,BFFCB,BFMCOP [& FILE OPEN OR BEING OPENED IN COPY 4 2PD2 NOK 17 2PXL LDN 4 0 [ZEROISE REPLY MARKER 18 2QC= TESTMODE 7,SAYCANT,,REPLY [DON'T WAIT IF REPLY MODE 19 2QWW LDX 5 BACK1(2) [KEEP BACKING STORE HOME PAIR 9 2RBG LDX 6 BACK2(2) 9 2RW6 LONGSET 6,XSET,6 9 2S*Q LDX 0 WTFR(1) 9 2STB STO 0 AWORK4(2) 20 2T*2 TESTMODE 7,NOUWB,,CAREFUL [DON'T SET UWB IF CAREFUL MODE 9 2TSL BS 3,BFUWB 5 2W#= NOUWB 20 2WRW BS 3,BFEMPTY [SET WAITING TE EMPTY BIT ANYWAY 21 2X?G DOWN OPENWAIT,2 [GO DOWN TO WAIT FOR FILE TO BE FREE 8 2XR6 BRN XBR 8 2Y=Q CALL 2 XGFCB 8 2YQB BRN NF1 21 2_=2 BC 3,BFEMPTY [CLEAR 'WAITING TO EMPTY'BIT (WHO SET 4 2_PL NF1 8 329= LDX 2 FX2 15 32NW TESTREP2 DIRCLOSE,XDC,CLUDGE,UPCLD,OK,REOP 8 338G SETREP2 NAME 7 347Q UPPLUS 1 21 34MB XBRK [BREAKIN DURING OPENWAIT OR LONGSTOP 8 3572 CALL 2 XGFCB 8 35LL BRN XBRK2 7 366= LDN 0 1 20 36KW SBS 0 FWAITCOUNT(3) [BROKEN IN SO NO LONGER WAITING 5 375G XBRK2 17 37K6 VFREEW FILE,FCB [FREE FCB IF PRESENT 7 384Q VFREEBAX 5 38JB UP 4 3942 XBR 8 39HL CALL 2 XGFCB 8 3=3= BRN NF2 20 3=GW BC 3,BFEMPTY [UNSET 'WAITING TO EMPTY'BIT (?) 4 3?2G NF2 19 3?G6 LONGON 6,6 [WAKE UP ANY OTHER WAITERS 8 3?_Q BRN XBRK2 5 3#FB UPCLD 17 3#_2 NGN 4 1 [SET CLUDGE MARKER 16 3*DL CALL 2 XGETFCB [FIND FCB AGAIN 14 3*Y= BRN SAYCANT [CLEAR UP 4 3BCW REOP 21 3BXG [BEFORE GOING BACK TO OPENREL MUST CHECK GEN NO AND IF ZERO SET BIT 2 14 3CC6 MHUNT 1,FILE,FLOCNB [BUG 1860 9 3CWQ LDX 0 A1+4(1) 16 3DBB BNZ 0 REOPEN [J IF NOT ZERO 8 3DW2 LDCT 0 #100 19 3F*L STO 0 A1+4(1) [OTHERWISE SET BIT 2 OF GEN 5 3FT= REOPEN 19 3G#W ACROSS OPENREL,5 [START RE-OPENING THE FILE 20 3GSG OPDIR GEOERR 1,DIREMPTY [OPENREL EMPTY ON A DIRECT-ORY 21 3H#6 [NO ONE CAN BE USING THE FILE IN ANY SENSE IN THE MULTI-REEL/EMPTY CASE. 14 3HRQ [WE MIGHT AS WELL DO THE SAME FOR ONE REEL. 5 3J?B ORDINARY 17 3JR2 LDX 4 CTOPEN(2) [PICK UP OPEN MODE: 14 3K=L TRACEIF K6ORELMAIN,199,299,4,CTOPEN 21 3KQ= [FORMAT IS; L.S. 12 BITS,COUNT OF READ OPENERS. NEXT L.S. 9 BITS,COUNT 18 3L9W [OF APPEND OPENERS. B0=SOLE OPENER BIT B1=COMMUNAL BIT. 11 3LPG LDX 0 FREEZECOUNT(2) 16 3M96 BZE 0 NOFRZ [OK IF NOT FROZEN 21 3MNQ TESTMAIN 7,TSYC,NOT,READING [IF NOT READER J TO TEST FOR SYSTCOMM 21 3N8B ... TESTMODE 7,WAIT,,DESTRUCT,GDESTR [WAIT IF READ + DESTRUCT OR GDR. 8 3NN2 BRN NOFRZ 4 3P7L TSYC 21 3PM= TESTMODE 7,WAIT,NOT,SYSTCOMM [WAIT UNLESS SYSTCOMM TO ALLOW LOGANA 18 3Q6W [WRITE TO FROZEN MONFILE 19 3QLG [ALLOW SOMEONE TO LF MONILE & 19 3R66 [THEN OL AN OUTPUT PERI TO IT 5 3RKQ NOFRZ 21 3S5B LDX 0 FSVCT(2) [J IF THE FILE IS NEITHER READ- NOR 15 3SK2 BZE 0 NOSFZ [WRITE-FROZEN 8 3T4L ANDN 0 #7777 17 3TJ= BZE 0 NRF [J IF NOT READ-FROZEN 9 3W3W LDX 0 FSVCT(2) 9 3WHG ANDX 0 HALFTOP 19 3X36 BNZ 0 RWF [ERROR IF ALSO WRITE-FROZEN 15 3XGQ TESTMAIN 7,NOSFZ,,READING [OK IF READER 8 3Y2B BRN WAIT 10 3YG2 RWF GEOERR 1,REWRFROZ 4 3Y_L NRF 12 3_F= TESTMAIN 7,WAIT,NOT,UNCLEAN 18 3_YW TESTMODE 7,WAIT,NOT,REOPEN [WAIT UNLESS REOPEN MODE 5 42DG NOSFZ 17 42Y6 BZE 4 OK [CARRY ON IF FCB OPEN 11 43CQ TESTMAIN 7,S31,NOT,READING 7 43XB LDX 0 4 20 44C2 SRL 0 12 [ISOLATE APPEND COUNT & SOLE BIT 17 44WL ANDN 0 #5777 [RID OF COMMUNE BIT. 19 45B= BNZ 0 TBC [TRY FOR COMMUNE MODE & FILE 21 45TW TESTMODE 7,WAIT,,DESTRUCT [WAIT IF FILE DESTRUCT OR GDR & MODE 10 46*G JBS WAIT,2,BFDCF 11 46T6 TESTMODE 7,NDR1,NOT,GDESTR 10 47#Q JBC WAIT,2,BFGDR 10 47SB LDX 1 FCOMMCT(2) 8 48#2 SRL 1 12 16 48RL TESTMODE 7,NC1,NOT,COMMUNE [J UNLESS COMMUNE 18 49?= BZE 1 WAIT [J IF NOT OPEN IN COMMUNE 21 49QW BRN OK [OK SINCE FILE OPEN IN GDR & COMMUNE, 19 4==G [& MODES GDR & COMMUNE GIVEN 4 4=Q6 NC1 17 4?9Q BNZ 1 WAIT [J IF OPEN IN COMMUNE 20 4?PB BRN OK [OK SINCE FILE OPEN IN GDR & NOT 21 4#92 NDR1 [COMMUNE & GDR GIVEN BUT NOT COMMUNE 21 4#NL JBS WAIT,2,BFGDR [WAIT IF OPEN IN GDR & GDR MODE ABSEN 8 4*8= BRN OK 4 4*MW S31 11 4B7G LDEX 0 FREEZECOUNT(2) 20 4BM6 BZE 0 TBC [IF FROZEN WAIT UNLESS SYSTCOMM 21 4C6Q TESTMODE 7,WAIT,NOT,SYSTCOMM [ALLOWS LF MONFILE THEN OL MONFILE (B 4 4CLB TBC 10 4D62 LDX 4 FCOMMCT(2) 17 4DKL ANDN 4 #7777 [CT OF CLEAN OPENERS 15 4F5= BZE 4 RCOMM [J IF NONE 18 4FJW TESTMODE 7,WAIT,NOT,USERCLEAN[WAIT UNLESS USERCLEAN 9 4G4G LDX 0 CTOPEN(2) 16 4GJ6 BPZ 0 RDCT [J IF NO WRITER 12 4H3Q TESTMAIN 7,WAIT,NOT,READING 4 4H?J ...OK 21 4H?L ... JBC NABOK,2,BFCLOSEAB [J IF FILE NOT TO BE CLOSEABANDONED 11 4H?N ... TESTMODE 7,NABOK,,REOPEN 20 4H?Q ... SMO FX2 [ONLY ALLOW FILE TO BE OPENED BY 19 4H?S ... LDX 0 ATYPE [LISTFILE OR HLS / JOBWELL 8 4H?W ... SRL 0 18 9 4H?Y ... SBN 0 ACTLF/64 21 4H#2 ... BNZ 0 WAIT [OTHERWISE WAIT FOR CLOSEABANDON TO F 5 4H#4 ...NABOK 4 4H#B ...# 4 4H#R ...# 7 4HR8 ... EXIT 6 0 5 4J32 RCOMM 10 4JGL LDX 4 FCOMMCT(2) 17 4K2= BZE 4 WAIT [WAIT IF NO COMMUNERS 21 4KFW JBC NOSYS,3,BFSYSCOMM [J IF FILE NOT OPEN IN SYSTCOMM MODE 20 4K_G TESTMODE 7,WAIT,NOT,SYSTCOMM [WAIT UNLESS MODE ALSO SYSTCOMM 20 4LF6 BRN TDES [J TO TEST FOR APPENDERS IF IT IS 5 4LYQ NOSYS 20 4MDB TESTMODE 7,WAIT,NOT,COMMUNE [WAIT UNLESS COMMUNE MODE GIVEN 14 4MY2 TESTMODE 7,NOTDESTRUCT,NOT,DESTRUCT 21 4NCL JBC WAIT,2,BFDCF [WAIT IF MODE GIVEN IS DESTRUCT & FIL 8 4NX= BRN TDES 6 4PBW NOTDESTRUCT 21 4PWG JBS WAIT,2,BFDCF [WAIT IF MODE GIVEN NOT DESTRUCT & FI 4 4QB6 TDES 17 4QTQ TESTMODE 7,NGD2,NOT,GDESTR [J UNLESS GDR MODE 21 4R*B JBS OK,2,BFGDR [OK IF GDR MODE & FILE OPEN IN GDR 16 4RT2 BRN WAIT [OTHERWISE WAIT 4 4S#L NGD2 21 4SS= JBS WAIT,2,BFGDR [WAIT IF FILE GDR & GDR MODE NOT GIVE 17 4T?W [BUT FILE OPEN IN GDR 9 4TRG LDX 0 CTOPEN(2) 8 4W?6 SRL 0 12 17 4WQQ ANDN 0 #1777 [EXTRACT APPEND CT 17 4X=B BZE 0 RDCT1 [J IF NO APPENDERS 21 4XQ2 JBC OK,2,BFDCF [FOR MULTIPLE APPENDERS (SEE ALSO CLO 11 4Y9L TESTMAIN 7,WAIT,,APPEND 12 4YP= BRN OK [ 5 4_8W RDCT1 8 4_NG SRL 4 12 4 5286 RDCT 9 52MQ LDX 0 CTOPEN(2) 16 537B ANDN 0 #7777 [CT OF READERS 7 53M2 ERX 4 0 15 546L BZE 4 OK [J IF EQUAL 8 54L= BRN WAIT 4 555W [ 6 55KG Z1ORELMAIN 9 55T# STOZ AWORK4(2) 21 5656 MHUNTW 2,FILE,FCB [PICK UP VERSION IN ACTIVITY CHAIN 16 592W [AN FCB HAS BEEN FORMED WITH THE CORRECT SHORT NAME 18 59GG [SEARCH THE FILE CHAIN TO SEE IF THIS FCB IS ALREADY THERE 19 5=26 [SOME OF THE WORDS TO BE COMPARED ARE CONTAINED IN X4,X5,X6&X0 21 5=FQ [FOR HALFOPEN FILES WE MUST SEARCH BOTH OPEN AND HALFOPEN FILE CHAINS 21 5=_B [ FOR THE FCB. IF THE FCB IS FOUND IN THE HALFOPEN CHAIN IT IS RECHAINE 9 5?F2 [ IN THE OPEN FILE CHAIN 3 5?YL ... 8 5#D= ... STOZ GEN0 9 5#XW ... LDX 4 FLOC1(2) 16 5*CG ... LDX 0 BACK2(2) [DIR OR TERM FILE 14 5*X6 ... BNG 0 ZDIRS [B IF DIR 14 5BBQ ... BASEFCB 3,FILE,ZNF,6 [FILE SEARCH 5 5BWB ...ZLOOPF 12 5CB2 ... BXE 4 FLOC1-FCBRING(3),ZSOK 5 5CTL ...ZRETSF 11 5D*= ... NEXTFCB 3,FILE,ZLOOPF,6 8 5DSW ... BRN ZNF 5 5F#G ...ZRETSQ 9 5FS6 ... LDX 0 BACK2(2) 9 5G?Q ... BPZ 0 ZRETSF 8 5GRB ... BRN ZRETS 3 5H?2 ... 5 5HQL ...ZLOOP 19 5J== ... BXE 4 FLOC1-FCBRING(3),ZSOK [COMPARE FIRST WORD 5 5JPW ...ZRETS 15 5K9G ... NEXTFCB 3,DIR,ZLOOP,6 [TRY NEXT FCB 18 5KP6 ... LDX 1 GEN0 [HAVE WE SEARCHED BOTH CHAINS 17 5L8Q ... BNZ 1 ZNF [YES JUST SEARCHED HALF 5 5LNB ...ZNODIR 16 5M82 ... STO 2 GEN0 [SET GEN0 NON ZERO 20 5MML ... BASEFCB 3,HALF,ZNF,6 [PREPARE TO SEARCH HALF OPEN CHAIN 8 5N7= ... BRN ZLOOP 5 5NLW ...ZDIRS 18 5P6G ... BASEFCB 3,DIR,ZNODIR,6 [PREPARE TO SEARCH DIR CHAIN 8 5PL6 ... BRN ZLOOP 15 5Q5Q ...ZSOK [FIRST NAME NOW AGREES 17 5QKB ... TESTNAMX 9,FUSER1-FCBRING(3),FUSER1(2),ZRETSQ,1 17 5R52 ... SBN 3 FCBRING [COMPLETE NAAME AGREES 8 5RJL ... LDX 1 GEN0 17 5S4= ... BZE 1 ONEREEL [B IF FOUND ON FILE CHAIN 3 5SHW ... 18 5T3G ... LDX 2 3 [FOUND ON HALF THEREFORE RECHAIN 9 5TH6 ... LDX 3 FPTR(2) 10 5W2Q ... TRANSFCB 2,HALF,FILE 19 5WGB ... CHAIN 3,BFILE+1 [CHAIN FINDEXF BLOCK AS WELL 9 5X22 ... LDX 3 BFILE+1 9 5XFL ... LDX 3 BPTR(3) 9 5X_= ... BRN ONEREEL 15 5YDW ...ZNF [NOT FOUND ON FILE CHAINS 10 5YYG ... TRANSFCB 2,ACT,FILE 9 5_D6 ... LDX 3 BFILE+1 20 65*6 LDX 0 FINFC(3) [IF FILE IS INDEXED THE FINDEXF 20 65SQ ANDN 0 #77 [IN THE ACTIVITY CHAIN MUST BE 20 66#B BZE 0 ONEREEL [CHAINED AFTER FCB JUST PUT IN 15 66S2 HUNT 1,FI,FINDEXF [FIEL CHAIN 8 67?L CHAIN 1,3 9 67R= BRN ONEREEL 4 68=W WAIT 7 68QG LDN 4 0 18 69=6 TESTMODE 7,OOR3,NOT,REPLY [WAIT UNLESS REPLY MODE 5 69PQ SAYCANT 10 69_J ... TESTMAIN 7,POSN,,COPY 12 6=9B TESTMAIN 7,UNCLMODE,,UNCLEAN 20 6=P2 TESTMODE 7,UNCLMODE,,GDESTR [GDESTR MODE IS UNCLEAN - JUMP 4 6?8L POSN 16 6?N= TESTMODE 7,NREWR,,EMPTY [J IF EMPTY MODE 20 6#7W MHUNTW 1,FILE,ENT [IF FILEHAS NOT BEEN RETRIEVED 20 6#MG LDX 0 ECOPS(1) [BECAUSE FCB FOUND & IT STILL HAS 21 6*76 ANDN 0 1 [NOT BEEN RESTORED DON'T BACKSPACE 8 6*LQ BZE 0 NREWR 21 6B6B BACKSPACE [POINTERS POSITIONED ON COPIES REC 20 6BL2 BRN NREWR [AND WE MUST BACKSPACE (BUG 1913) 5 6C5L UNCLMODE 20 6CK= JBS POSN,3,BFUWB [J IF FILE ALREADY OPEN UNCLEANLY 15 6D4W TESTMODE 7,POSN,,CAREFUL [J IF CAREFUL 10 6DJG MHUNTW 1,FILE,ENT 10 6F46 NAME 1,FILE,FWB 20 6FHQ BC 1,BEUWB [REMOVE UWB PUT THERE IN OPENREL 21 6GH2 TESTMODE 7,NBACK,,EMPTY [NO NEED TO BACKSPACE IF EMPTY MODE 20 6H2L LDX 0 ECOPS(1) [IF FILE HAS NOT BEEN RETRIEVED 20 6HG= ANDN 0 1 [BECAUSE FCB FOUND & IT STILL HAS 21 6H_W BZE 0 NBACK [NOT BEEN RESTORED DON'T BACKSPACE 21 6JFG BACKSPACE [REPOSITION (LAST RECORD READ WAS BLO 5 6J_6 NBACK 21 6KDQ REWRITE [REWRITE RECORD AS WE CANT OPEN THIS 10 6KYB MHUNTW 1,FILE,FWB 17 6LD2 NAME 1,FILE,ENT [RENAME BLOCK AGAIN 5 6LXL NREWR 12 6MC= TESTMODE 7,NOCLOSE2,,DIROPEN 7 6MWW CLOSETOP 5 6NBG NOCLOSE2 19 6P*Q TESTMODE 7,MENT,,LEAVE [DONT FREE ENT IF LEAVE GIVEN 9 6PTB MFREEW FILE,ENT 4 6Q*2 MENT 9 6QSL VFREEW FILE,FCB 15 6R#= BNG 4 SCLD [J IF CLUDGE 8 6RRW SETREP CANT 15 6S?G BRN REPG [REPLY SET 9 6SR6 SCLD SETREP CLUDGE 21 6T=Q TOPFCB 2 [X2 -> FCB OF FILE OPEN AT TOP LEVEL 19 6TQB BXU 6 BACK2(2),REPG [TEST FOR CLUDGE AT TOP LEVEL 7 6W=2 TOPFCA 2 18 6WPL BS 2,BACLUDGE [???? FOR COPY (COMMAND?) 7 6X9= REPG UPPLUS 1 4 6XNW OOR3 7 6Y8G LDN 0 1 20 6YN6 ADS 0 FWAITCOUNT(3) [ADD ONE TO THE COUNT OF WAITERS 9 6_7Q LDX 5 BACK1(3) 20 6_MB LDX 6 BACK2(3) [PICK UP BACKING STORE HOME PAIR 17 7272 LONGSET 6,XSET,6 [SET WAITING STYLE 21 72LL TESTMAIN 7,NCLD,,COPY [CLUDGE TEST UNNECCESSARY IF COPY MOD 16 736= DOWN OPENWAIT,3 [TEST FOR CLUDGE 20 73KW BRN NCLD [NO CLUDGE IF COMES STRAIGHT UP 17 745G NGN 4 1 [SET CLUDGE MARKER 16 74K6 CALL 2 XGETFCB [FIND FCB AGAIN 7 754Q LDN 0 1 18 75JB SBS 0 FWAITCOUNT(3) [NO LONGER GOING TO WAIT 20 7642 BRN SAYCANT [REMOVE UNCLEAN BIT AND CLEAR UP 4 76HL NCLD 18 76RD LDN 4 0 [ZEROISE LONGSTOP MARKER. 10 773= MHUNTW 1,FILE,ENT 19 77GW LDX 0 EUSE1(1) [IF THE FILE IS A DIRECTORY 19 782G BNZ 0 PAR [OR ONE SUCH THAT ACTIVITY 21 78G6 JBC RAP,1,BECOOR [CAN'T LONGSTOP WITH IT OPEN, DO LONG 4 78_Q PAR 21 79FB LDEX 0 CLONG1(2) [IF LONGWAIT HAS BEEN UNSET(WHO BY?), 17 79_2 BZE 0 SFCBA [DON'T TRY TO WAIT 7 7=DL LONGOFF 2 9 7=G* LDX 0 AWORK4(2) 8 7=J4 BNZ 0 RAP 9 7=KR CALL 2 XGETFCB 20 7=MG JBC WCOOR,3,BFFREZ [J IF FILE NOT FROZEN BY DUMPER. 20 7=P9 OUTPACK FME1(3),3,USERNAME [PREPARE USERNAME OF DIRECTORY AS 21 7=QY MONOUT INCFREZD [OUTPUT PARAM. OUTPUT 'WAITING' MESSA 7 7=SM LDN 4 1 9 7=WB STO 4 AWORK4(2) 4 7=Y= RAP 16 7?CW CALL 2 XGETFCB [FIND FCB AGAIN 5 7?XG WCOOR 10 7#7# ... TESTMAIN 7,TSTRP,,COPY 11 7#C6 TESTMAIN 7,UNCLE,,UNCLEAN 21 7#WQ TESTMODE 7,TSTRP,NOT,GDESTR [J IF GDR-ELSE SET UWB EVEN IF READ 5 7*BB UNCLE 20 7*W2 TESTMODE 7,TSTRP,,CAREFUL [IF CAREFUL MODE, DON'T SET UWB 9 7B*L BS 3,BFUWB 5 7BT= TSTRP 10 7CSG MHUNTW 1,FILE,ENT 21 7D#6 JBS WTDIR,1,BECOOR [MUST DO COOR3 IF CANT LONGSTOP BIT S 9 7DRQ LDX 0 EUSE1(1) 16 7F?B BNZ 0 WTDIR [J IF A DIRECTORY 17 7FR2 LDN 4 2 [MARKER FOR LONGSTOP 20 7G=L TESTMODE 7,YCLOSE,NOT,DIROPEN[CLOSE DIR IF NOT ALREADY CLOSED 9 7GQ= BRN NOCLOSE 5 7H9W WTDIR 21 7HPG TESTMODE 7,NOCLOSE,,DIROPEN [DON'T CLOSE IF DIROPEN MODE GIVEN 21 7J96 ADDMODE 7,DIROPEN [TO ENSURE IT DOESN'T GET CLOSED AGAI 16 7JNQ CLOSETOP [CLOSE DIRECTORY 21 7KN2 LDN 4 1 [MARKER FOR DIR WHOSE DIR HAS JUST BE 9 7L7L BRN NOCLOSE 19 7LM= XSET GEOERR 1,ORELMAIN [LONGSET FIELD ALREADY SET 5 7M6W YCLOSE 20 7MLG ADDMODE 7,DIROPEN [TO ENSURE DIR CLOSED ONLY ONCE 7 7N66 TOPFCB 3 20 7NKQ SMO FX2 [PRESERVE DIR'S NAME IN CASE DIR 17 7P5B LDN 1 AWORK2 [NEEDS TO BE REOPENED 9 7PK2 LDN 0 FME1(3) 7 7Q4L MOVE 0 3 7 7QJ= CLOSETOP 14 7R3W CALL 2 XGETFCB [FIND FCB 19 7RHG LDX 0 CTOPEN(3) [SEE IF FILE IS NOW UNUSED 17 7S36 BNZ 0 NOCLOSE [IF NOT, GO WAITING 19 7SGQ LONGOFF [IF IT IS, CLEAR THE LONGSET 8 7T2B BRN SFCBA 5 7TG2 NOCLOSE 8 7T_L BNZ 4 NOWT 9 7WF= #SKI K6ORELMAIN>199-199 4 7WYW ( 4 7XDG [ 20 7XY6 [THIS WAS PUT RN TO CORRECT BUG 2889. THIS CODE IS ONLY REQIRED FOR 20 7YCQ [LISTING LEVEL > OR = 200, SINCE AT THIS LEVEL ONLY CLUDGE IS TESTED 20 7YXB [FOR ON DIRECTORIES. IF THIS CODE IS NOT INCLUDED AN ACTIVITY CAN GO 21 7_C2 [WAITING FOR A FILE WHICH IS NOT OPEN, BECAUSE THERE ARE COORDINATIONS 19 7_WL [BETWEEN TESTING FOR A FRLE FREE AND WAITING FOR FILE TO BE FREE 4 82B= [ 9 82TW CALL 2 XGETFCB 19 83*G LDX 0 CTOPEN(3) [TEST IF FILE HAS BECOME FREE 8 83T6 BZE 0 SDFCB 4 84#Q ) 20 84SB COOR3 6 [WAIT FOR OBSTRUCTION TO CLEAR: 16 85#2 TESTMODE 7,SFCBA,NOT,REPWAIT [J UNLESS REPWAIT 5 85RL SETDIRC 8 86?= CALL 2 XGFCB 8 86QW BRN NF3 7 87=G LDN 0 1 20 87Q6 SBS 0 FWAITCOUNT(3) [REPLY DIRECTORY HAS BEEN CLOSED 4 889Q NF3 9 88PB SETREP DIRCLOSE 4 8992 XDC 21 89NL TESTMODE 7,XUP,,LEAVE [DON'T FREE ENT IF LEAVE MODE GIVEN 9 8=8= VFREEW FILE,ENT 4 8=MW XUP 7 8?7G UPPLUS 1 4 8?M6 NF6 9 8#6Q VFREEW FILE,ENT 9 8#LB VFREEW FILE,FCB 11 8*62 SETNCORE 4,1,FILE,FABSNB 7 8*KL LDN 0 4 20 8B5= STO 0 A1(1) [PICK UP DIR'S NAME & REOPEN IT. 9 8BJW LDN 0 AWORK2(2) 8 8C4G ADN 1 A1+1 7 8CJ6 MOVE 0 3 11 8D3Q OPEN NF5,GENERAL,QUERY 10 8DHB MFREE FILE,FABSNB 20 8DNJ ... CLEARMOD 7,DIROPEN [CLEAR SWITCH SET WHEN DIRECTORY 18 8DTQ ... [CLOSED BEFORE LONGSTOP 9 8F32 TESTREP2 OK,REOP 8 8FGL SETREP2 NAME 7 8G2= UPPLUS 1 9 8GFW NF5 GEOERR 1,DIRREOP 7 8G_G NOWT SBN 4 2 21 8HF6 BNZ 4 SFCBA [J IF WAITING FOR DIRECTORY TO SEE IF 8 8HYQ SMO FX2 9 8JDB LDN 2 FILERING 19 8JY2 NXFCA 2,2,WTOK [J IF NO FILES OPEN, THUS OK. 15 8KCL JBC WTOK,2,BANOWAIT [J UNLESS DIR 16 8KX= GEOERR 1,DIROPENW [OTHERWISE ERROR 4 8LBW WTOK 10 8LWG LONGSTOP XBRK,,FWFREE 15 8MB6 TESTMODE 7,SETDIRC,,REPWAIT [J IF REPWAIT 8 8MTQ CALL 2 XGFCB 8 8N*B BRN NF6 8 8P4S ... LDX 2 FX2 4 8P#L [ 6 8PS= Z4ORELMAIN 9 8Q44 STOZ AWORK4(2) 5 8Q?W SFCBA 17 8QRG CALL 2 XGETFCB [GET X3 -> FCB AGAIN 5 8R?6 SDFCB 20 8RQQ LDN 0 1 [REMOVE THIS ACTIVITY FROM THE 17 8S=B SBS 0 FWAITCOUNT(3) [COUNT OF WAITERS. 5 8SQ2 ONEREEL 18 8T9L LDX 2 3 [X2 -> REEL TO BE OPENED: 11 8TP= TESTMODE 7,NR,NOT,ERASE 21 8W8W BS 2,BFERASE [SET 'TO BE ERASED' BIT IF ERASE MODE 4 8WNG NR 9 8X86 CALL 6 TRYREEL 11 8XMQ TESTMODE 7,OFCB,NOT,GDESTR 12 8Y7B TESTMODE 7,OFCB,NOT,REPWAIT 21 8YM2 MHUNTW 1,FILE,FCB [IF GDESTR MODE IS SET & THERE WAS 20 8_6L BNG 1 OFCB [ALREADY AN FCB IN THE FILE CHAIN 21 8_L= JBC OFCB,3,BFCARE [COULD BE FMAPP AS GDR FILE CANT BE O 20 925W [CAREFULLY IF FILE ALREADY OPEN 20 92KG LDX 0 CTOPEN(3) [OR BEING CLOSED THE DIR MUST BE 21 9356 BNZ 0 XGD1 [CLOSED, THE REPTY REPWAIT GIVEN & 15 93JQ LDX 1 FPTR(3) [UP+1 OBEYED 20 944B LDX 0 ATYPE(1) [IF THERE IS A FMAPP BUT FILE NOT 20 94J2 SRL 0 12 [BEING ACCESSED THE FMAPP CAN BE 20 953L SBN 0 FILE+FSTACK [FREED, CAREFUL BIT UNSET & THE 17 95H= BNZ 0 XGD2 [OPEN CAN CONTRNUE 10 962W LDX 0 ALOGLEN(1) 8 96GG BZE 0 XGD2 4 9726 XGD1 11 979Y ... TESTMODE 7,NF3,,DIROPEN 7 97#H ... LDCT 0 2 20 97C6 ... ORS 0 COMM(3) [SET UWB IN FCB AS SET IN ENT. 7 97FQ CLOSETOP 8 97_B BRN NF3 4 98F2 XGD2 9 98YL BC 3,BFCARE 9 99D= LDX 1 FPTR(3) 9 99XW XGD3 LDX 0 ATYPE(1) 8 9=CG SRL 0 12 10 9=X6 SBN 0 FILE+FMAPP 8 9?BQ BZE 0 XGD4 9 9?WB LDX 1 FPTR(1) 8 9#B2 BRN XGD3 4 9#TL XGD4 7 9**= FREECORE 1 4 9*SW OFCB 11 9B#G TESTMODE 7,NOBLK,NOT,EMPTY 21 9BS6 MHUNTW 2,FILE,FCB [IF THERE IS AN FCB IN THE ACTIVITY C 17 9C?Q BNG 2 NOTTWO [B. IF ONLY ONE FCB 10 9CRB LDN 4 BSPRE-FBLMOD 8 9D?2 LDX 1 FX1 21 9DQL LDX 0 COMM(3) [WHEN WVERWRITING FCB IN FILE CHAIN 20 9F== ANDX 0 XCMM(1) [WITH FCB IN ACTIVITY CHAIN IT IS 20 9FPW ORS 0 COMM(2) [NECESSARY TO PRESERVE SOME BITS 20 9G9G LDX 0 FCOMM(3) [IN COMM & FCOMM FROM FCB IN FILE 14 9GP6 ANDX 0 XFCMM(1) [CHAIN 9 9H8Q ORS 0 FCOMM(2) 21 9HNB ... TRF 3,FFAUTCLCT,2,FFAUTCLCT [COPY AUTOCLOSE COUNT TO NEW FCB 19 9JML LDX 0 FUSEBL(3) [PRESERVE FUSEBL FROM LOD FCB 9 9K7= STO 0 FUSEBL(2) 20 9KLW LDN 0 FBLMOD(2) [OVERWRITE^OLD^ FCB IN FILE CHAIN 21 9L6G LDN 1 FBLMOD(3) [BY ^NEW^ FCB IN ACTIVITY CHAIN,AS 20 9LL6 SMO 4 [THE LATTER IS MORE UP-TO-DATE. 7 9M5Q MOVE 0 0 5 9MKB NOTTWO 21 9N52 ... LDN 4 FBLKS-A1 [RESET FBLMOD IN FILE CHAIN FCB TO 17 9NJL STO 4 FBLMOD(3) [INDICATE EMPTY FILE 5 9P4= NOBLK 19 9PHW LDX 5 BACK1(3) [PICK UP HOME PAIR OF FCB. 9 9Q3G LDX 6 BACK2(3) 21 9QH6 TESTMAIN 7,NCOP,NOT,COPY [ENSURE FCB KEPT IN CHAIN IF COPY MOD 9 9R2Q BS 3,BFFCB 8 9RGB BRN NOSC 4 9S22 NCOP 21 9SFL TESTMODE 7,NOBL1,NOT,USERCLEAN [J IF NOT CLE 7 9S_= LDN 0 1 8 9TDW BRN NOBL2 5 9YW= NOBL1 21 9_*W TESTMODE 7,PLUS,NOT,COMMUNE,SYSTCOMM [DON'T INCREMENT COMMUNE COUN 16 9_TG LDCT 0 #200 [SET COMMUNE BIT 9 =2*6 ORS 0 CTOPEN(3) 8 =2SQ LDX 0 BIT11 5 =3#B NOBL2 10 =3S2 ADS 0 FCOMMCT(3) 4 =4?L PLUS 11 =4R= TESTMAIN 7,READ,,READING 20 =5=W BC 3,BFNODUMP [CLEAR 'NOT TO BE REDUMPED' BIT. 10 =5QG TESTMAIN 7,SOLE,,CLEAN 17 =6=6 TESTMODE 7,NUWB,,CAREFUL [NO UWB IF CAREFUL 9 =6PQ BS 3,BFUWB 4 =79B NUWB 11 =7P2 TESTMAIN 7,RAPP,,APPEND 21 =88L SOLE LDCT 0 #400 [SOLE OPENER, JUST ONE BIT TO STORE 9 =8N= ORS 0 CTOPEN(3) 9 =97W BRN OPENFCBED 7 =9MG READ LDN 0 1 19 ==76 ADS 0 CTOPEN(3) [INCREASE COUNT OF READERS. 13 ==LQ TESTMODE 7,OPENFCBED,NOT,GDESTR 18 =?6B BS 3,BFUWB [SET UWB IF GDESTR READER 19 =?L2 BRN OPENFCBED [[CHECK IT IS SMALL? 4 =#5L RAPP 8 =#K= LDX 0 BIT11 21 =*4W ADS 0 CTOPEN(3) [INCREASE COUNT OF APPENDERS. <1024 6 =*JG OPENFCBED 12 =B46 TESTMODE 7,NOSC,NOT,SYSTCOMM 16 =BHQ BS 3,BFSYSCOMM [SET SYSTCOMM BIT 4 =C3B NOSC 12 =CH2 TESTMODE 7,NDS,NOT,DESTRUCT 21 =D2L MBS 3,BFCORE,BFDCF [SET DCF BIT & KEEP USAGE BLOCKS IN C 4 =DG= NDS 11 =D_W TESTMODE 7,NGD3,NOT,GDESTR 18 =FFG BS 3,BFGDR [SET GDR BIT IF GDR MODE 4 =F_6 NGD3 11 =GDQ TESTMODE 7,NERAD,NOT,ERASE 19 =GYB ... BS 3,BFOPENERASE [SET BIT IF ERASE ???? 5 =HD2 NERAD 12 =HXL TESTMODE 7,NCOM,NOT,COMMUNE 19 =JC= LONGON FOPENWT,BACK2(3) [OTHERWISE WAKE UP WAITERS 4 =JWW NCOM 10 =KBG MHUNTW 1,FILE,ENT 12 =KW6 JBC NONLINEBIT,1,BEONLINE 15 =L*Q BS 3,BFVSF [TRANSFER BIT 13 =LGY ... APVSF UP [ADJUST ACT PRI 13 =LN6 ... MHUNTW 1,FILE,ENT [X1->ENT 6 =LTB NONLINEBIT 11 =M*2 JBC NOTMDF,1,BEMDF 15 =MSL BS 3,BFSDF [TRANSFER BIT 5 =N#= NOTMDF 11 =NRW JBC NOTMULT,1,BEMULT 15 =P?G BS 3,BFMULT [TRANSFER BIT 5 =PR6 NOTMULT 19 =Q=Q LDX 0 ECOPS(1) [IF FILE OFFLINE BUT NOTEMPTY 19 =QQB BNZ 0 TEMM [AND ERASING HO TO ORELEMPT 11 =R=2 TESTMODE 7,TEM1,NOT,EMPTY 11 =RPL TESTMODE 7,S33,,ERASING 4 =S9= TEM1 19 =SNW MHUNTW 1,BSTB,FULLB [IF FILE OFFLINE & NO FULLB 17 =T8G BNG 1 S33 [DON'T GO TO ORELEMPT 8 =TN6 BRN XEOM 4 =W7Q TEMM 21 =WMB TESTMODE 7,S33,NOT,EMPTY [IF EMPTY & CAREFUL OR ERASING GO TO 21 =X72 TESTMODE 7,XEOM,,ERASING,CAREFUL [TO FREE OR A 21 =XLL MHUNTW 1,BSTB,FULLB [IF EMPTY BUT NOT CAREFUL OR ERASING 20 =Y6= BNG 1 S33 [& NO FULLB NOT GO TO ORELEMPT 4 =YKW XEOM 9 =_5G #SKI K6ORELMAIN>100-100 9 =_K6 TRACE 6,LOOKBS 10 ?24Q ACROSS ORELEMPT,1 4 ?342 S33 9 ?3HL ACROSS ORELEND,1 4 ?52G [ 4 ?5_Q #END 8 ____ ...16434320000100000000