15 22FL #SEG ORELEND70 [G. PORTER 14 22_= #OPT K0ORELEND=K0OPEN>K0FILESTORE>K0ALLGEO 7 23DW #LIS K0ORELEND 14 23YG #OPT K6ORELEND=K6OPEN>K6FILESTORE>K6ALLGEO 7 24D6 8HORELEND 12 24XQ SEGENTRY K1ORELEND,Z1ORELEND 12 25CB SEGENTRY K2ORELEND,Z2ORELEND 21 25X2 # THIS ROUTINE WRITES A NEW DIRECTORY ENTRY FOR THE EMPTY WITH CREA 21 26BL # TIDIES UP BLOCKS AND WRITES A NEW FCA AREA IN THE ACTIVITY BLOCK 21 26W= # FILE WHICH IS NOW OPEN TO THIS ACTIVITY. A FILE/FPUSH BLOCK IS SE 18 27*W # NECESSARY ,FOR FILES ALREADY OPEN TO THIS ACTIVITY. 4 27TG # 4 28*6 # 17 28SQ [ON ENTRY X5 & X6 CONTAIN HOME PAIR OF FCR & X7 = MODE. 21 29#B [FIRST TEST FOR THE MUTUALLY EXCLUSIVE THAW AND EMPTY CASE, IF NEITHER 13 29S2 [OF THESE TURNS UP, WE SKIP TO SPAREFCB. 10 2=?L SHALF +AHALFOPEN 10 2=R= MCL +AUSERCLEAN 20 2?=W ...XEINF1INCL #10020016 [THESE WORDS ARE TO BE UPDATED 9 2?QG XEINF2INCL #70750002 18 2#=6 XWFM #77770000 [WRITE-FROZEN COUNT MASK 18 2#PQ XRFM #7777 [READ-FROZEN COUNT MASK 17 2*9B [IN EINF1 AND EINF2 10 2*P2 XRDDM +FCBAPPWAIT 10 2B8L XAPDM +FCBSTEPWAIT 4 2BN= [ 3 2BQT ... 5 2BTD ...XGETFCB 8 2BY3 ... STO 0 GEN6 7 2C2L ... GETFCB 5,2 9 2C59 ... BRN (GEN6) 6 2C7W Z1ORELEND 4 2CMG [ 9 2D76 STOZ AWORK4(2) 4 2DLQ XJN 9 2F6B #SKI K6ORELEND>999-999 4 2FL2 ( 9 2G5L TRACE 5,ORELEND 10 2GK= TRACE 6,HOMEPAIR 9 2H4W TRACE 7,MODE 4 2HJG ) 9 2J46 SETMODE 4,THAW 17 2JHQ ANDX 4 7 [TEST FOR THAW CASE 16 2K3B BZE 4 NTHAW [J IF NOT THAW 17 2KH2 [IN THE THAW CASE WE HAVE TO ADJUST THE FREEZE COUNT AND 16 2L2L [FREE WAITING ACTIVITIES IF THE COUNT BECOMES ZERO 15 2LG= ... CALL 0 XGETFCB [FIND FCB 5 2L_W NWFCB 9 2MFG #SKI K6ORELEND>49-49 4 2M_6 ( 16 2NDQ LDX 0 FREEZECOUNT(2) [DONT GO NEGATIVE 8 2NYB BZE 0 XTHAW 4 2PD2 ) 7 2PXL LDN 0 1 16 2QC= SBS 0 FREEZECOUNT(2) [THAW FCB ONCE 10 2QWW HUNT 1,FILE,ENT 7 2RBG LDN 0 1 16 2RW6 SBS 0 EAUTOCOUNT(1) [THAW DIRENT ONCE 9 2S*Q #SKI K6ORELEND>49-49 4 2STB ( 10 2T*2 LDX 0 EAUTOCOUNT(1) 11 2TSL SBX 0 FREEZECOUNT(2) 9 2W#= BZE 0 XTHAWOK 5 2WRW XTHAW 9 2X?G GEOERR 1,XTHAWD 5 2XR6 XTHAWOK 4 2Y=Q ) 4 2YQB XTR 10 2_=2 NAME 1,FILE,FWB 20 2_PL LDX 0 ECOPS(1) [IF FILE HAS NOT BEEN RETRIEVED 20 329= ANDN 0 1 [BECAUSE FCB FOUND & IT STILL HAS 21 32NW BZE 0 NBACK [NOT BEEN RESTORED DON'T BACKSPACE 17 338G BACKSPACE [REPOSITION DIRECTORY 5 33N6 NBACK 16 347Q REWRITE [REWRITE DIRENT 10 34MB HUNT 1,FILE,FWB 16 3572 NAME 1,FILE,ENT [RENAME DIRENT 20 35BS ... LONGON 6,ELOC1(1) [WAKE UP WAITERS TO EMPTY FILE. 9 35LL BRN SPAREFCB 5 366= NTHAW 21 36KW SETMODE 0,REOPEN [IF REOPEN MODE IS SET EITHER READ- 21 375G ANDX 0 7 [OR WRITE-FROZEN COUNT MUST BE DECREM 15 37K6 BZE 0 NREOP [J NOT REOPEN 21 384Q LDX 0 7 [TEST FOR OPENING IN READ OR WRITE 21 38JB ANDN 0 #7000 [MODE SO THAT THE APPROPIATE COUNT 16 3942 SBN 0 #3000 [IS DECREMENTED 15 39HL BNG 0 NWFR [J NOT WRITE 21 3=3= LDX 3 BIT11 [SET X3 TO SUBTRACT 1 FROM WRITEFR CT 21 3=GW LDN 4 0 [SET X4 TO MASK OUT RELEVANT COUNT 9 3?2G ...XDEC CALL 0 XGETFCB 9 3?G6 #SKI K6ORELEND>49-49 4 3?_Q ( 20 3#FB LDX 0 FSVCT(2) [ERROR IF THE APPROPIATE COUNT IS 13 3#_2 LDX 1 4 [ZERO 8 3*DL SMO FX1 9 3*Y= ANDX 0 XWFM(1) 8 3BCW BZE 0 XREOP 4 3BXG ) 21 3CC6 SBS 3 FSVCT(2) [DECREMENT APPROPIATE COUNT IN FCB 10 3CWQ HUNT 1,FILE,ENT 21 3DBB SBS 3 ESVCT(1) [DECREMENT APPROPIATE COUNT IN ENT 9 3DW2 #SKI K6ORELEND>49-49 4 3F*L ( 21 3FT= LDX 0 ESVCT(1) [CHECK THAT THE COUNTS IN FCB 2 ENT 19 3G#W SBX 0 FSVCT(2) [ARE NOW EQUAL. ERROR IF NOT 8 3GSG BZE 0 XTR 5 3H#6 XREOP 9 3HRQ GEOERR 1,XREOPEN 4 3J?B ) 17 3JR2 BRN XTR [J TO REWRITE DIRENT 4 3K=L NWFR 7 3KQ= LDN 3 1 21 3L9W LDN 4 1 [SET X4 TO MASK OUT RELEVANT COUNT 8 3LPG BRN XDEC 5 3M96 NREOP 9 3MNQ SETMODE 4,EMPTY 7 3N8B ANDX 4 7 16 3NN2 BZE 4 SETE2 [J IF NOT EMPTY 20 3NXS ... TESTMODE 7,SETE2,,ERASING [IGNORE CREATE BLOCK IF ERASING 20 3P7L [IN THE EMPTY CASE, IF THERE IS A FILE CREATE BLOCK IN THE CHAIN, WE 13 3PM= [COPY THINGS FROM IT INTO THE DIRENT. 10 3Q6W HUNT 2,FILE,CREATE 21 3QLG [CARRY ON IF EXISTS A CREATE BLOCK 8 3R66 SMO FX2 9 3RKQ LDX 0 AWORK4 21 3S5B ANDN 0 1 [IF OPENWORK J TO PUT CREATE BLOCK 20 3SK2 BNZ 0 WFEP [INFORMATION IN FEXTRA AS NO ENT 10 3T4L HUNT 3,FILE,ENT 10 3TJ= NAME 3,FILE,FWB 8 3W3W BNG 2 RWRB 12 3WHG JMBS NOTDA,3,BESERIAL,BEMT 9 3X36 LDX 0 CEORG(2) 15 3XGQ BZE 0 SIZEG [ASSIGN CASE 9 3XMY LDX 0 CEINF3(2) 9 3XT6 STO 0 EINF3(3) 5 3Y2B NOTDA 9 3YG2 LDX 0 CETM(2) 9 3Y_L STO 0 ETM(3) 8 3_F= SMO FX1 19 3_YW LDX 0 XEINF2INCL [MASK OFF THESE PROPERTY BITS 19 42DG ANDX 0 EINF2(3) [SO THAT THE OVERWRITTEN FILE 18 42Y6 ORS 0 CEINF2(2) [RETAINS THESE PROPERTIES 21 43CQ SMO FX1 [RETAIN PRORERTY BITS IN OVERWRITTEN 13 43XB LDX 0 XEINF1INCL [FILE 9 44C2 ANDX 0 EINF1(3) 9 44WL ORS 0 CEINF1(2) 21 45B= LDN 0 CEINF1(2) [TRANSFER ALL THE APPROPRIATE WORDS. 9 45TW LDN 1 EINF1(3) 7 46*G MOVE 0 3 9 46T6 LDX 0 CEORG(2) 9 47#Q STO 0 EORG(3) 9 47SB LDX 0 CEKEY(2) 9 48#2 STO 0 EKEY(3) 10 48RL LDX 0 CEENDBUCK(2) 10 49?= STO 0 EENDBUCK(3) 10 49QW LDX 0 CEVERSION(2) 10 4==G STO 0 EVERSION(3) 17 4=Q6 LDX 0 CEFLOW(2) [OVERFLOW QUALIFIER 9 4?9Q STO 0 EFLOW(3) 9 4?PB LDN 0 CEUSE1(2) 9 4#92 LDN 1 EUSE1(3) 7 4#NL MOVE 0 3 15 4*8= LDX 0 7 [MODE WORD 17 4*MW ANDN 0 #1000 [ZERO IF RANDOM MODE 15 4B7G ADN 0 #400 [A1=LAST REEL 9 4BM6 SETMODE 1,CAREFUL 7 4C6Q ANDX 1 7 8 4CLB BNZ 1 XCFL 16 4D62 ADN 0 4 [DIRECTORY ENTRY 4 4DKL XCFL 18 4F5= SRC 0 10 [SHIFT TO BITS 0,1 AND 7 9 4FJW ORS 0 EINF1(3) 9 4G4G LDX 0 EINF3(3) 7 4GJ6 SLL 0 9 7 4H3Q SRL 0 9 18 4HHB BNZ 0 SIZEG [OK IF SIZE ALREADY GIVEN 21 4J32 LDN 0 FILESIZE [OTHERWISE PUT IN HIGHEST POSSIBLE 9 4JGL DLA 0 EINF3(3) 5 4K2= SIZEG 17 4KFW MFREE FILE,CREATE [RID OF CREATE BLOCK 19 4K_G [IN THE EMPTY-WITH-CREATEB CASE, WE MUST REWRITE DIRENT,SO THE 16 4LF6 [DIRECTORY HAS TO BE OPEN IN CLEAN OR GENERAL MODE. 4 4LYQ RWRB 18 4MDB LDCT 0 1 [SET BLOCKS<512 WORDS BIT 9 4MY2 ORS 0 EINF2(3) 15 4NCL REWRITE [REPLACE FRDE 10 4NX= HUNT 3,FILE,FWB 18 4PBW NAME 3,FILE,ENT [RESTORE NAME OF DIRENT 8 4PWG BRN SETE2 20 4QB6 [IN THE EMPTY CASE, REGARDLESS OF THE PRESENCE OF A CREATEB, WE MUST 14 4QTQ [USE A WHATBACK OR A FULLB TO SET UP BSPRE. 7 4R*B WB WHATBACK 2 6 4RT2 NOCREATEB 5 4S#L SETE2 8 4SS= SMO FX2 9 4T?W LDX 0 AWORK4 7 4TRG ANDN 0 1 21 4W?6 BNZ 0 WFEMT [J TO FIND WORKFILE FCB IF OPENWORK 5 4WQQ SPAREFCB 21 4X=B [THERE MAY BE AN FCB LVING AROUND THE ACTIVITY CHAIN,TO BE FREED.ALSO 18 4XQ2 HUNT 1,FILE,FCB [IS THERE AN FCB IN CORE? 15 4Y9L BNG 1 OUT [J IF NO FCB 14 4YP= FREECORE 1 [FREE FCB 18 4_8W MHUNTW 1,FI,FINDEXF [IF SPARE FINDEXF FREE IT 8 4_NG BNG 1 OUT 7 5286 FREECORE 1 4 52MQ OUT 21 537B [FIRST SEE WHETHER WE NEED TO CLOSE THE DIRECTORY,THEN SEE WHETHER THE 13 53M2 [FILE CONTOL AREA NEEDS TO BE UPDATED 21 546L BNG 7 NOCLOSE [DIR ALREADY CLOSED OR DIROPEN SPECIF 9 54L= SETMODE 0,CAREFUL 20 555W ANDX 0 7 [IF CAREFUL MODE IS SET THEN AN 18 55KG BNZ 0 YCFL [AUTONOMOUS CLOSE IS OKAY 20 5656 LDX 0 7 [IF NOT CAREFUL MODE & UNCLEAN 20 56JQ ANDN 0 #7777 [MODE,THEN A NON-AUTONOMOUS CLOSE 19 574B LDN 4 #2777 [IS REQUIRED TO ENSURE BLOCKS 19 57J2 BXGE 4 0,YCFL [INFORMATION IS UP-TO-DATE 8 583L LDN 4 #7000 9 58H= BXGE 0 4,YCFL 7 592W CLOSESET 9 59GG BRN NOCLOSE 4 5=26 YCFL 21 5=FQ CLOSETOP [CLOSE AND DON'T GO UP UNLESS WE MUST 5 5=_B NOCLOSE 20 5?F2 [X5 AND X6 CONTAIN THE BS HOME PAIR OF THE FCB TO BE RINGED INTO THE 21 5?YL [FILERING OF THIS ACTIVITY. THE FCB HAS ALREADY BEEN UPDATED.X7 CONTAINS 7 5#D= [THE MODE WORD 21 5#XW ... CALL 0 XGETFCB [FIND FCB OF FILE BEING OPENED 5 5*CG SWFCB 9 5*X6 SETMODE 0,EMPTY 20 5BBQ ANDX 0 7 [IN THE EMPTY MODE CASE UPDATE 20 5BWB BZE 0 NEST [THE FCB FROM THE NEWTY UPDATED 20 5CB2 HUNT 1,FILE,ENT [DIRENT AS THE FILE MAY NOW HAVE 18 5CTL LDX 0 EINF1(1) [BECME A STREAM COMPONENT 8 5D*= SRL 0 16 8 5DSW ANDN 0 #30 9 5F#G ORS 0 COMM(2) 9 5FS6 LDX 0 ETM(1) 9 5G?Q STO 0 FETM(2) 20 5GRB LDX 0 EENDBUCK(1) [ALSO SIMILARLY UPDATE THE RANDOM 19 5H?2 STO 0 FENDBUCK(2) [ACCESS EILE INFOMATINO AS IT 16 5HQL LDX 0 EVERSION(1) [MAY HAVE CHANGED 10 5J== STO 0 FVERSION(2) 16 5JPW LDEX 0 EINF3(1) [PICK UP MAX SIZE 9 5K9G STO 0 FSIZE(2) 8 5KP6 BRN NEST 6 5L8Q REFINDFCB 7 5LNB LDN 0 1 9 5M82 ANDX 0 AWORK4(2) 10 5MML BZE 0 REFINDFCB1 8 5N7= CALL 6 XFCB 8 5NLW BRN NEST 6 5P6G REFINDFCB1 9 5PL6 ... CALL 0 XGETFCB 4 5Q5Q NEST 18 5QKB LDX 3 FPTR(2) [PICK UP -> TO NEXT BLOCK 9 5R52 LDX 0 ATYPE(3) 8 5RJL SRL 0 12 10 5S4= SBN 0 FILE+FSTACK 17 5SHW BZE 0 YSTAK [J IF FSTACK BLOCK 14 5T3G [IF THERE IS NO FSTACK BLOCK WE SET ONE UP 12 5TH6 SETNCORE FELLEN,3,FILE,FSTACK 7 5W2Q LDN 0 1 8 5WGB SMO FX2 20 5X22 ANDX 0 AWORK4 [IF WORKFILES J TO LOCATE FCB IN 16 5XFL BNZ 0 WFLOC1 [WORKFILE RING 5 5X_= WNOF1 20 5YDW ... CALL 0 XGETFCB [GET -> TO FCB IN X2 AGAIN 5 5YYG WFCON1 9 5_D6 SMO FPTR(2) 8 5_XQ LDX 0 ATYPE 8 62CB SRL 0 12 21 62X2 SBN 0 FILE+FSTACK [J IF SOMEONE ELSE HAS GOT IN MEAN- 19 63BL BZE 0 NEWSTAC [WHILE - SET UP FSTACK BLOCK 19 63W= CHAIN 3,2 [CHAIN FSTACK BLOCK AFTER FCB 21 64*W LDCT 0 FELLEN [LENGTH OF RING ELEMENT IN TOP 9 BITS 15 64TG STO 0 ARINGNO(3) [OF ARINGNO 9 65*6 BRN STACKFILL 5 65SQ NEWSTAC 17 66#B LDX 1 3 [TO FREECORE FSTACK 21 66S2 LDX 3 2 [PTR TO FCB OVER FREECORE(NON-COOR) 7 67?L FREECORE 1 16 67R= LDX 3 FPTR(3) [X3 -> FSTACK NOW 15 68=W LDX 2 BPTR(3) [X2 -> FCB 5 68QG YSTAK 11 69=6 SETUPFCA 3,2,REFINDFCB,4 6 69PQ STACKFILL 7 6=9B LDN 0 1 8 6=P2 SMO FX2 20 6?8L ANDX 0 AWORK4 [IF OPENWORK J TO LOCATE FCB IN 16 6?N= BNZ 0 WFLOC2 [WORKFILE RING 5 6#7W WNOF2 9 6#G? ... CALL 0 XGETFCB 7 6#SN ... LDX 3 2 5 6*76 WFCON2 15 6*LQ LDX 2 FPTR(3) [X2 -> FSTACK 19 6B6B INITLFCA [TIDY UP FCB AND NEW ELEMENT 9 6BL2 SETMODE 0,GDESTR 7 6C5L ANDX 0 7 8 6CK= BZE 0 NGDR 7 6D4W LDX 0 7 21 6DJG ANDN 0 #7000 [IF THE MODES GDR & READ ARE GIVEN 21 6F46 SBN 0 #1000 [THEN THE READ POINTERS SHOULD NOT 21 6FHQ BNZ 0 NGDR [BE NEGATED BUT SHOULD BE CALCULATED 21 6G3B GDRPTRS 2,3,4 [FROM POSITION OF OTHER ACCESSORS IN 15 6GH2 BRN SFGEN [THE FILE. 4 6H2L NGDR 10 6HG= NGS 2 FREADWORD(2) 10 6H_W NGS 2 FREADBLOCK(2) 5 6JFG SFGEN 10 6J_6 STOZ FGENERAL2(2) 7 6KDQ LDX 3 7 8 6KYB ANDN 3 #7777 18 6LD2 SRL 3 9 [ISOLATE THE MAIN MODE: 7 6LXL ANDN 3 7 15 6MC= LDN 0 1 [LOAD ONE BIT 21 6MWW SRC 0 0(3) [POSITION OF BIT INDICATES MODE OPEN: 9 6NBG SETMODE 3,COMMUNE 7 6NW6 ANDX 3 7 17 6P*Q SLL 3 5 [POSITION IT FOR FCA5 7 6PTB ORS 3 0 7 6Q*2 LDX 3 7 8 6QSL SMO FX1 8 6R#= ANDX 3 MCL 8 6RRW BZE 3 NOCLN 9 6S?G LDN 3 CACLNBIT 19 6SR6 ORS 3 0 [SET CLEAN BIT IF NECESSARY 5 6T=Q NOCLN 9 6TQB #SKI K6ORELEND>100-100 9 6W=2 TRACE 0,ORENDFCA 20 6WPL STO 0 FGENERAL1(2) [PUT ALL INFORMATION IN FGENERAL1 19 6X9= RINGFILE 2 [PUT THIS FCA IN THE FILERING 8 6XNW SMO FX2 21 6Y8G LDX 0 AWORK4 [IF ENTERED FROM SETFCA OR SETFCAWF 19 6YN6 ANDN 0 4 [MACRO, EXIT AT THIS POINT 8 6_7Q BNZ 0 UPP 7 6_MB TOPFCB 3 7 7272 LDX 0 7 19 72LL ANDN 0 #7000 [IF COPY MODE , SET OPEN IN 16 736= SBN 0 #6000 [COPY MODE BRT 8 73KW BNZ 0 NCOP 8 745G LDN 0 #2000 9 74K6 ORS 0 FCOMM(3) 20 754Q LDX 0 BIT9 [UNSET 'DON'T MOVE FCB' BIT AS 18 75JB ERS 0 FCOMM(3) [FCB NOW MARKED AS OPEN 4 7642 NCOP 7 782G LDN 0 4 9 78G6 ANDX 0 FCOMM(3) 8 78_Q BNZ 0 NCARX 3 794W ... 9 7982 ... SETMODE 0,CAREFUL 7 79?6 ... ANDX 0 7 8 79B= ... BZE 0 NCAR 7 79FB LDN 0 4 9 79_2 ORS 0 FCOMM(3) 4 7=DL NCM 18 7=Y= LDX 4 FUSEBL(3) [CATCULATE LENGTH OF FMAP 19 7?CW SBN 4 FCBLEN [BLOCK AS NUMBER OF BLOCKS/24 7 7?XG LDX 5 4 8 7#C6 LDN 3 24 7 7#WQ DVS 3 3 10 7*BB ADN 4 FBITS-A1+1 17 7*W2 SETUPCORE 4,1,FILE,FMAPP [SET UP FMAPP BLOCK 10 7B*L STO 5 FBITMOD(1) 9 7BT= STOZ FBCOMM(1) 9 7C#W BZE 5 ZERLEN 9 7CSG STOZ FBITS(1) 8 7D#6 LDN 0 24 7 7DRQ TXL 5 0 9 7F?B BCS ZERLEN 8 7FR2 ADN 1 FBITS 8 7G=L LDN 2 1(1) 7 7GQ= SMO 4 10 7H9W MOVE 1 511-FBITS+A1 8 7HPG SBN 1 FBITS 5 7J96 ZERLEN 7 7JNQ LDN 5 0 19 7K8B TOPFCA 2 [CHAIN FMAPP BLOCK BETWEEN 18 7KN2 PSTAC 2,2 [THE FSTACK BLOCK AND THE 4 7L7L PFMA 9 7LM= SMO FPTR(2) 21 7M6W LDX 0 ATYPE [THE FMAPP BLOCK SHOULD BE CHAINED 21 7MLG BXE 0 FILEPLUSFCB,PFM [BEFORE THE FIRST FCB OR BSTB/FULLB 21 7N66 SRL 0 12 [WHICH IS CHAINED AFTER THIS FILE'S 21 7NKQ SBN 0 BSTB+FULLB [FCB. IF END OF FILE CHAIN IS REACHED 21 7P5B BZE 0 PFM [BEFORE EITHER OF ABOVE TWO BLOCKS, 20 7PK2 LDX 2 FPTR(2) [FMAPP BLOCK SHOULD BE CHAINED AT 17 7Q4L SBN 2 BFILE [END OF FILE CHAIN. 8 7QJ= BZE 2 PFME 8 7R3W ADN 2 BFILE 8 7RHG BRN PFMA 4 7S36 PFME 9 7SGQ LDX 2 BFILE+1 4 7T2B PFM 8 7TG2 CHAIN 1,2 7 7T_L TOPFCB 3 5 7WF= NCARZ 8 7WYW LDCT 0 #200 9 7XDG ANDX 0 COMM(3) 8 7XY6 BZE 0 NCAR 9 7YCQ LDX 4 FUSEBL(3) 9 7YXB SBN 4 FBLKS-A1 10 7_C2 LDN 0 FILE+FMAPP 8 7_WL SLL 0 12 9 82B= XNP LDX 3 FPTR(3) 9 82TW TXU 0 ATYPE(3) 8 83*G BCS XNP 7 83T6 LDN 0 3 9 84#Q STO 0 FBCOMM(3) 20 84FY ... LDX 1 FBITMOD(3) [J IF FBITMOD UPDATED IN FILEMAP 8 84M6 ... BNZ 1 XNP1 10 84SB STO 4 FBITMOD(3) 4 8548 ...XNP1 13 85#2 TESTMODE 7,MAPBOREL,,EMPTY,CREATE 10 85RL HUNTW 1,FILE,ENT 8 86?= BNG 1 NCAR 9 86QW LDX 0 ECOPS(1) 8 87=G BNZ 0 NCAR 5 87Q6 MAPBOREL 18 889Q MAPBOREL 3 [SET BLOCKS SWAPPED BITS 8 88PB BRN NCAR 5 8992 NCARX 8 89NL SMO FX2 9 8=8= LDX 0 AWORK1 7 8=MW ANDN 0 2 8 8?7G BZE 0 NCARZ 21 8?M6 LDN 0 FILE+FMAPP [IF LENGTH OF FILE CHANGED MAPKERSET 20 8#6Q SLL 0 12 [THE FMAPP WILL REQUIRE CHANGEING 9 8#LB LDX 2 FPTR(3) 4 8*62 NFM1 10 8*KL BXE 0 ATYPE(2),NFM2 9 8B5= LDX 2 FPTR(2) 8 8BJW BRN NFM1 4 8C4G NFM2 7 8CJ6 FREECORE 2 8 8D3Q BRN NCM 4 8DHB NCAR 7 8F32 TOPFCB 3 9 8FGL SETMODE 0,COMMUNE 7 8G2= ANDX 0 7 21 8GFW BZE 0 NTIK [MODE NOT COMMUNE MEANS NO WAITERS 7 8G_G LDX 0 7 8 8HF6 ANDN 0 #7000 8 8HYQ SBN 0 #3000 8 8JDB BZE 0 YADR 8 8JY2 BPZ 0 NTIK 9 8KCL LDX 2 CTOPEN(3) 8 8KX= ANDN 2 #7777 9 8LBW LDX 4 CTOPEN(3) 21 8LWG SRL 4 12 [IF MODE IS READ, THIS IS THE ONLY 21 8MB6 ANDN 4 #1777 [READER & THERE ARE APPENDERS, THE 21 8MTQ LDN 1 0 [APPENDERS MAY BE WAITING ON A SUSIN 19 8N*B BRN YRDR [& THUS SHOULD BE WOKEN UP 4 8NT2 YADR 21 8P#L LDX 2 CTOPEN(3) [IF MODE IS APPEND, THIS IS THE NOLY 21 8PS= SRL 2 12 [APPENDER & THERE ARE READERS, THE 21 8Q?W ANDN 2 #1777 [READERS MAY BE WAITING NO A SUSIN 18 8QRG LDX 4 CTOPEN(3) [& THUS SHOULD BE WOKENUP 8 8R?6 ANDN 4 #7777 7 8RQQ LDN 1 1 4 8S=B YRDR 7 8SQ2 SBN 2 1 8 8T9L BNZ 2 NTIK 8 8TP= BZE 4 NTIK 8 8W8W SMO FX1 9 8WNG LDX 4 XRDDM(1) 16 8X86 FDRMAUTX 4 [WAKE UP WAITERS 4 8XMQ NTIK 7 8Y7B LDN 0 1 8 8YM2 SMO FX2 19 8_6L ANDX 0 AWORK4 [J TO OMIT OPENMAS,HALFOPEN & 19 8_L= BNZ 0 MLEAVE [DIRECTORY TEST FOR OPENWORK 16 925W SMO FX2 [J IF HALFOPEN 9 92KG LDX 0 AWORK1 7 9356 SBN 0 4 8 93JQ BZE 0 MAST 8 944B LDX 1 BFILE 15 94J2 BXU 6 BACK2(1),NOTMAST [TEST BS HOME 10 953L BXE 5 BACK1(1),MAST 5 95H= NOTMAST 10 962W HUNT 1,FILE,ENT 9 96GG LDX 0 EUSE1(1) 16 9726 BNZ 0 MAST [J IF A DIRECTORY 8 97FQ LDCT 0 #004 21 97_B ANDX 0 EINF2(1) [TEST FOR BIT MEANING DONT BREAK IN 16 98F2 BZE 0 NSPECIAL [J IF NOT THERE 4 98YL MAST 16 99D= TOPFCA 2 [RELOCATE FSTACK 8 99XW LDN 0 #2000 21 9=CG ORS 0 FGENERAL1(2) [PUT NO WAITING WITH FILE OPEN BIT IN 21 9=X6 [IN FCA5, ALSO MEANS ACTIVITY IS BS P 5 9?BQ NSPECIAL 9 9?WB SETMODE 0,LEAVE 7 9#B2 ANDX 0 7 9 9#TL BNZ 0 MLEAVE 7 9**= FREECORE 1 5 9*SW MLEAVE 7 9*XF ... TOPFCB 3 21 9B24 ... JBC YOK,3,BFCLOSEAB [IF FILE MARKED TO BE CLOSEABANDONE 21 9B4M ... SETREP CLOSEAB [MUST WARN OPENER (HLS OR LISTFILE 8 9B7= ... BRN UP 4 9B9T ...YOK 15 9B#G ANSOK [SET REPLY OK 9 9BS6 #SKI K6ORELEND>999-999 10 9C?Q TRACE 4(2),ORELEND 7 9CRB UP UPPLUS 1 4 9GP6 [ 5 9GQN ...XFINDWN1 8 9GS= ... SMO FX2 9 9GTS ... LDN 1 BWORKRING 5 9GXB ...XFINDWN2 8 9GYY ... STO 0 GEN1 8 9H2G ... STO 2 GEN6 9 9H44 ... FINDWN 1,2,0,GEN6 9 9H5L ... TESTREPN OK,(GEN1) 7 9H78 ...XIT EXIT 6 0 6 9H8Q Z2ORELEND 4 9HNB [ 4 9J82 [ 20 9JML [THIS IS THE ENTRY FROM THE OPENWORK SEGMENT. IT IS MORE OR LESS THE 20 9K7= [SAME AS THE K1 ENTRY,EXCEPT THAT INFORMATION FROM THE CREATE BLOCK 20 9KLW [GOES TO THE FCB AS THERE IS NO ENT, ANY OTHER UPDATING OF THE ENT 20 9L6G [IS OMITTED,AS ARE TESTS FOR OPENMAS,HALFOPEN & DIRECTORY. FINALLY 21 9LL6 [THE METHOD OF LOCATING THE FCB IS DIFFERENT FROM THAT OF AN ORDINARY 5 9M5Q [OPEN. 4 9MKB [ 7 9N52 LDN 0 1 17 9NJL STO 0 AWORK4(2) [SET OPENWORK MARKER 9 9P4= SETMODE 0,THAW 21 9PHW ANDX 0 7 [WHEN THAW MODE IS SET J TO DIFFERENT 17 9Q3G BNZ 0 YTHW [IF MODE IS THAW OR 19 9QH6 LDCH 0 ATYPE(2) [ACT AN ACTLF THE WFILE WILL 20 9R2Q SBN 0 ACTLF/64 [NOT BE IN CURRENT ACT'S WFRING 8 9RGB BNZ 0 NTHAW 4 9S22 YTHW 8 9SFL CALL 6 XTHW 8 9S_= BRN NEST 9 9TDW BRN NOCLOSE 17 9TYG XFCB [S/R TO LOCATE FCB 9 9WD6 SETMODE 0,THAW 20 9WXQ ANDX 0 7 [IF NOT OPENTHAW LOOK FOR FCB IN 17 9XCB BNZ 0 XTHW [IF MODE IS THAW OR 19 9XX2 LDX 2 FX2 [ACT AN ACTLF THE WFILE WILL 20 9YBL LDCH 0 ATYPE(2) [NOT BE IN CURRENT ACT'S WFRING 9 9YW= SBN 0 ACTLF/64 8 9_*W BNZ 0 NOTH 4 9_TG XTHW 19 =2*6 LDX 5 AWORK1(2) [PICK UP JOBNO TO LOCATE CPAT 4 =2SQ NXCP 8 =3#B JOBLOCK 5,3 8 =3S2 BNG 3 NOCP 8 =4?L FCAJO 3,,N 20 =4R= LDX 0 ATYPE(3) [IF EITHER OF JOBLOCK OR CPAT 21 =5=W SRL 0 12 [DO NOT EXIST CARRY ON WITH AN ORD- 15 =5QG SBN 0 CPAT [INARY OPEN 8 =6=6 BNZ 0 NOCP 10 =6PQ LDN 5 BWORKRING(3) 15 =79B ... LDN 2 1 [CAN BE TO BE ERASED 12 =7P2 ... LDX 1 5 [LOCATE FCB 15 =88L ... CALL 0 XFINDWN2 [XIT 6 IF FOUND 4 =8N= NOCP 8 =97W LDX 2 FX2 7 =9MG LDN 0 1 21 ==76 ERS 0 AWORK4(2) [REMOVE WORKFILE MARKER FOR SEGMENT 17 ==LQ LDX 3 6 [PRESERVE S/R LINK 21 =?6B LDX 5 AWORK2(2) [PICK UP B.S.HOME OF FCB & FROM NOW 19 =?L2 LDX 6 AWORK3(2) [ON LOCATE FCB IN FILE CHAIN. 7 =#5L EXIT 3 1 17 =#K= NFCB GEOERR 1,NOWFFCB [ERROR IF FCB MISSING 4 =*4W NOTH 21 =*JG SETMODE 0,ERASING [IF ERASING MODE IS SET,THEN TO-BE- 19 =B46 ANDX 0 7 [ERASED FCBS ARE ALLOWED FOR, 19 =BHQ BNZ 0 XFN [OTHERWISE THEY ARE IGNORED 14 =BY= ... LDN 2 0 [NOT TO BE ERASED 5 =C#Q ...XFIND 15 =CP= ... CALL 0 XFINDWN1 [EXIT 6 IF FOUND 13 =D5Q ... BRN NFCB [NOT FOUND 4 =DG= XFN 15 =D_W ... LDN 2 1 [TO BE ERASED ALLOWED 8 =FFG ... BRN XFIND 5 =GDQ WFSER 8 =GYB CALL 6 NOTH 8 =HD2 BRN NEST 5 =HXL WFCRE 20 =JC= LDX 4 2 [PRESERVE CREATE BLOCK POINTER 15 =JWW CALL 6 NOTH [LOCATE FCB 7 =KBG LDX 3 4 4 =KW6 XNYW 18 =L*Q LDX 1 0(2) [GET PTR TO NEXT BLOCK 4 =LTB XFEX 9 =M*2 LDX 0 ATYPE(1) 8 =MSL SRL 0 12 21 =N#= SBN 0 FILE+FEXTRA [BRANCH BACK TO MAIN PATH IF FEXTRA 17 =NRW BZE 0 XEFT [BLOCKHSA BEEN FOUND 9 =P?G LDX 0 ATYPE(1) 21 =PR6 SBX 0 FILEPLUSFCB [IF NEXT FCB HAS BEEN REACHED THEN 18 =Q=Q BZE 0 XGER [THERE IS NO FEXTRA BLOCK 17 =QQB LDX 1 0(1) [LOCATE NEXT BLOCK 8 =R=2 BRN XFEX 10 =RPL XGER GEOERR 1,NOFEXTRA 4 =S9= XEFT 21 =SNW LDX 0 CETM(3) [TAKE PERI TYPE/MODE FROM CREATEBLOCK 18 =T8G STO 0 FTM(1) [BLOCK & STORE IN FEXTRA. 9 =TN6 STO 0 FETM(2) 13 =TR= JMBS NOTDAWORK,2,BFMT,BFSER 9 =TS? ... LDX 0 CEORG(3) 17 =TT# ... BZE 0 NOTDAWORK [J IF ASSIGN CASE. 9 =TWB LDEX 0 CEINF3(3) 9 =T_G STO 0 FSIZE(2) 6 =W4L NOTDAWORK 7 =W7Q FREECORE 3 15 =WMB CALL 6 NOTH [LOCATE FCB 4 =X72 NYWB 7 =XLL LDX 0 7 8 =Y6= ADN 0 #1000 8 =YKW ANDN 0 #4000 20 =_5G BZE 0 NEST [IF UNCLEAN MODE REMOVE THE NOT 17 =_K6 LDN 0 #1000 [YET WRITTEN TO BIT 9 ?24Q ORS 0 FCOMM(2) 9 ?2JB ERS 0 FCOMM(2) 8 ?342 BRN NEST 5 ?3HL WFEMT 8 ?43= CALL 6 NOTH 20 ?4GW LDX 0 FCOMM(2) [IF NOT YET WRITTEN TO BIT SET 19 ?52G ANDN 0 #1000 [UPDATE PERI TYPE/MODE WORD 8 ?5G6 BZE 0 NEST 10 ?5_Q HUNT 3,FILE,CREATE 8 ?6FB BNG 3 NYWB 8 ?6_2 BRN XNYW 5 ?7DL WFLOC1 8 ?7Y= CALL 6 XFCB 19 ?8CW BRN WNT1 [J TO CARRY ON AS FCB FOUND 10 ?8XG HUNT 3,FILE,FSTACK 20 ?9C6 BRN WNOF1 [J TO LOCATE FCB IN FILE CHAIN 4 ?9WQ WNT1 10 ?=BB HUNT 3,FILE,FSTACK 9 ?=W2 BRN WFCON1 5 ??*L WFLOC2 8 ??T= CALL 6 XFCB 19 ?##W BRN WNT2 [J TO CARRY ON AS FCB FOUND 20 ?#SG BRN WNOF2 [J TO LOCATE FCB IN FILE CHAIN 4 ?*#6 WNT2 7 ?*RQ LDX 3 2 9 ?B?B BRN WFCON2 4 ?BR2 WFEP 8 ?C=L BNG 2 WFEMT 8 ?CQ= BRN WFCRE 5 ?D9W UPP UP 4 ?DPG [ 12 ?F96 MENDAREA GAPOPEN,K99ORELEND 4 ?FNQ #END 8 ____ ...21112454000700000000