4 22FL [ 19 22_= [THIS IS A TIDIED-UP VERSION WITH MODETEST & BITSETTING MACROS 4 23DW [ 14 23YG ... SEG ORELHALF,8,ROB RUSHTON ,OPEN 12 24D6 SEGENTRY K1ORELHALF,Z1ORELHALF 12 24XQ SEGENTRY K2ORELHALF,Z2ORELHALF 4 25CB [ 5 25X2 XGETFCB 21 26BL GFCB 6,3 [FIND FCB WITH UNIQUE NUMBER = [X6] 7 26W= EXIT 2 0 20 27*W [THIS ROUTINE TESTS WHETHER THE FCB INDICATED BY X2 CAN BE OPENED 4 27TG YCOP 21 28*6 JMBAC OK,2,BFFCB,BFMCOP [MUST WAIT IF FILE OPEN OR BEING OPEN 17 28SQ [COPY MODE: ELSE OK 16 29#B BRN WAIT [IS ALREADY OPEN 5 29S2 TRYREEL 15 2=?L TESTMAIN 7,YCOP,,COPY [J IF COPY 12 2=R= TESTMODE 7,ORDINARY,NOT,EMPTY 20 2?=W OPDIR GEOERR 1,DIREMPTY [OPENREL EMPTY ON A DIRECT-ORY 21 2?QG [NO ONE CAN BE USING THE FILE IN ANY SENSE IN THE MULTI-REEL/EMPTY CASE. 14 2#=6 [WE MIGHT AS WELL DO THE SAME FOR ONE REEL. 5 2#PQ ORDINARY 17 2*9B LDX 4 CTOPEN(2) [PICK UP OPEN MODE: 14 2*P2 TRACEIF K6ORELHALF,199,299,4,CTOPEN 21 2B8L [FORMAT IS; L.S. 12 BITS,COUNT OF READ OPENERS. NEXT L.S. 9 BITS,COUNT 18 2BN= [OF APPEND OPENERS. B0=SOLE OPENER BIT B1=COMMUNAL BIT. 17 2C7W BZE 4 OK [CARRY ON IF FCB OPEN 12 2CMG TESTMAIN 7,WAIT,NOT,READING 7 2D76 LDX 0 4 20 2DLQ SRL 0 12 [ISOLATE APPEND COUNT & SOLE BIT 17 2F6B ANDN 0 #5777 [RID OF COMMUNE BIT. 18 2FL2 BNZ 0 WAIT [WAIT IF NOT OPEN IN READ 7 2G5L OK EXIT 6 0 4 2GK= [ 6 2H4W Z1ORELHALF 5 2HJG OPENMAST 9 2HS# ... STOZ AWORK4(2) 9 2J46 STOZ AWORK1(2) 10 2JHQ LDX 7 ACOMMUNE7(2) 21 2K3B ADDMODE 7,CAREFUL,LEAVE,DIROPEN [AS NO ENT OR 18 2KH2 CLEARMOD 7,REPLY [GET RID OF REPLY MODE 10 2L2L TRACE 7,OPENMAST 17 2LG= LDX 3 BFILE [X3 -> FCB OF MASTER 9 2L_W BRN ONEREEL 4 2MFG [ 6 2M_6 Z2ORELHALF 9 2N8Y ... STOZ AWORK4(2) 7 2NDQ LDN 0 4 18 2NYB STO 0 AWORK1(2) [STORE HALFOPEN MARKER 16 2PD2 LDX 6 ACOMMUNE8(2) [LEVEL IN FABSNB 14 2PXL LDX 7 ACOMMUNE7(2) [MODES 8 2QC= FINDFCB 6,3 9 2QWW TESTREP2 OK,XERAZ 9 2RBG BRN UPPLUS1 5 2RW6 XERAZ 18 2S*Q ... JBC XHAOK,3,BFOPENERASE [J IF BEING ERASED! 21 2STB TESTMODE 7,XNF,,ERASING,THAW [J IF ERASING OR THAW MODES PRESENT 9 2T*2 SETREP2 NOFILE 8 2TSL BRN TUPP 4 2W#= XNF 9 2WRW SETREP2 NOTFOUND 8 2X?G BRN TUPP 5 2XR6 XHAOK 11 2Y=Q TESTMODE 7,XMADE,,DIREPLY 9 2YQB CLEARMOD 7,REPLY 5 2_=2 XMADE 15 2_PL ADDMODE 7,LEAVE,DIROPEN [FOR HALFOPEN 9 329= BRN ONEREEL 4 32NW WAIT 7 338G LDN 4 0 19 33N6 TESTMODE 7,OOR3,NOT,REPLY [WAIT UNLESS REPLY MODE GIVEN 5 347Q SAYCANT 4 34MB WENT 19 3572 TESTMODE 7,MENT,,LEAVE [FREE ENT UNLESS LEAVE MODE 9 35LL MFREE FILE,ENT 4 366= MENT 15 36KW BNG 4 SCLD [J IF CLUDGE 8 375G SETREP CANT 15 37K6 BRN REPG [REPLY SET 9 384Q SCLD SETREP CLUDGE 21 38JB TOPFCB 2 [X2 -> FCB OF FILE OPEN AT TOP LEVEL 19 3942 BXU 6 BACK2(2),REPG [TEST FOR CLUDGE AT TOP LEVEL 7 39HL TOPFCA 2 20 3=3= BS 2,BACLUDGE [SET BIT FOR COPY IF CLUDGE (??) 9 3=GW BRN UPPLUS1 4 3?2G OOR3 7 3?G6 LDN 0 1 20 3?_Q ADS 0 FWAITCOUNT(3) [ADD ONE TO THE COUNT OF WAITERS 9 3#FB LDX 5 BACK1(3) 20 3#_2 LDX 6 BACK2(3) [PICK UP BACKING STORE HOME PAIR 17 3*DL LONGSET 6,XSET,6 [SET WAITING STYLE 16 3*Y= DOWN OPENWAIT,3 [TEST FOR CLUDGE 20 3BCW BRN NCLD [NO CLUDGE IF COMES STRAIGHT UP 17 3BXG NGN 4 1 [SET CLUDGE MARKER 16 3CC6 CALL 2 XGETFCB [FIND FCB AGAIN 7 3CWQ LDN 0 1 18 3DBB SBS 0 FWAITCOUNT(3) [NO LONGER GOING TO WAIT 20 3DW2 BRN SAYCANT [REMOVE UNCLEAN BIT AND CLEAR UP 4 3F*L NCLD 7 3FT= PAR LONGOFF 9 3FWS ... LDX 0 AWORK4(2) 9 3FYB ... BNZ 0 NOMESS 9 3F_Y ... CALL 2 XGETFCB 20 3G3G ... JBC WCOOR,3,BFFREZ [J IF FILE NOT FROZEN BY DUMPER. 20 3G54 ... OUTPACK FME1(3),3,USERNAME [PREPARE USERNAME OF DIRECTORY AS 21 3G6L ... MONOUT INCFREZD [OUTPUT PARM. OUTPUT 'WAITING' MESSAG 7 3G88 ... LDN 4 1 9 3G9Q ... STO 4 AWORK4(2) 5 3G?# ...NOMESS 16 3G#W CALL 2 XGETFCB [FIND FCB AGAIN 5 3GJN ...WCOOR 19 3GSG LDX 0 CTOPEN(3) [TEST IF FILE HAS BECOME FREE 8 3H#6 BZE 0 SDFCB 14 3HRQ TRACEIF K6ORELHALF,199,299,6,ORELCOOR 20 3J?B COOR3 6 [WAIT FOR OBSTRUCTION TO CLEAR: 12 3JR2 TESTMODE 7,QTEST,NOT,REPWAIT 5 3K=L SETDIRC 9 3KQ= CALL 2 XGETFCB 7 3L9W LDN 0 1 20 3LPG SBS 0 FWAITCOUNT(3) [REPLY DIRECTORY HAS BEEN CLOSED 9 3M96 SETREP DIRCLOSE 4 3MNQ XDC 20 3N8B TESTMODE 7,UPPLUS1,,LEAVE [FREE ENT UNLESS LEAVE MODE GIVEN 9 3NN2 VFREEW FILE,ENT 4 3P7L XUP 4 3PM= REPG 4 3Q6W TUPP 5 3QLG UPPLUS1 7 3R66 UPPLUS 1 5 3RKQ QTEST 5 3S5B SFCBA 17 3SK2 CALL 2 XGETFCB [GET X3 -> FCB AGAIN 5 3T4L SDFCB 20 3TJ= LDN 0 1 [REMOVE THIS ACTIVITY FROM THE 17 3W3W SBS 0 FWAITCOUNT(3) [COUNT OF WAITERS. 5 3WHG ONEREEL 18 3X36 LDX 2 3 [X2 -> REEL TO BE OPENED: 11 3XGQ TESTMODE 7,NR,NOT,ERASE 21 3Y2B BS 2,BFERASE [SET 'TO BE ERASED' BIT IF ERASE MODE 4 3YG2 NR 9 3Y_L CALL 6 TRYREEL 4 3_F= OFCB 19 3_YW LDX 5 BACK1(3) [PICK UP HOME PAIR OF FCB. 9 42DG LDX 6 BACK2(3) 11 42Y6 TESTMAIN 7,NCOP,NOT,COPY 21 43CQ BS 3,BFFCB [SET 'DON'T MOVE FCB' BIT IF COPY MOD 9 43XB BRN OPENFCBED 4 44C2 NCOP 11 44WL TESTMAIN 7,READ,,READING 10 45B= TESTMAIN 7,SOLE,,CLEAN 11 45TW TESTMODE 7,NUWB,,CAREFUL 18 46*G BS 3,BFUWB [SET UWB UNLESS CAREFUL 4 46T6 NUWB 11 47#Q TESTMAIN 7,RAPP,,APPEND 21 47SB SOLE LDCT 0 #400 [SOLE OPENER, JUST ONE BIT TO STORE 9 48#2 ORS 0 CTOPEN(3) 9 48RL BRN OPENFCBED 7 49?= READ LDN 0 1 19 49QW ADS 0 CTOPEN(3) [INCREASE COUNT OF READERS. 19 4==G BRN OPENFCBED [[CHECK IT IS SMALL? 8 4=Q6 RAPP LDN 0 #4000 7 4?9Q ADX 0 0 21 4?PB ADS 0 CTOPEN(3) [INCREASE COUNT OF APPENDERS. <1024 6 4#92 OPENFCBED 12 4#DS ... APVSF UP [ADJUST ACT PRI 9 4#NL ACROSS ORELEND,1 10 4*8= XSET GEOERR 1,ORELHALF 4 4*MW [ 12 4B7G MENDAREA GAPOPEN,K99ORELHALF 4 4BM6 #END 8 ____ ...47077343000400000000