13 22FL ... SEG OPENREL,85,JUDY BIDGOOD,OPEN 4 22_= [ 12 23DW SEGENTRY K1OPENREL,OPENRELX 11 23YG SEGENTRY K2OPENREL,OPENREL 12 24D6 SEGENTRY K3OPENREL,OPENCREX 11 24XQ SEGENTRY K5OPENREL,OPENEND 12 25CB ... SEGENTRY K8OPENREL,(GEOERR) 12 25X2 ... SEGENTRY K9OPENREL,(GEOERR) 12 26BL SEGENTRY K10OPENREL,RESTORE 4 26W= [ 21 27*W # THIS ROUTINE IS ENTERED WITH A DIRECTORY OPEN AND A FLOCNB SET UP 21 27TG # FILE UNDER THIS DIRECTORY WHICH IS BEING OPENED.THE DIRECTORY ENT 21 28*6 # FOR THIS FILE IS FOUND,AND A FILE/FCB BLOCK IS SET UP FOR THIS FI 21 28SQ # IN THE ACTIVITY CHAIN. IF THIS FILE IS NOT ONLINE IT IS RESTORED 21 29#B # NOWAIT IS NOT SET. ALL OPENING MODES ARE CHECKED FOR COMPATABILIT 21 29S2 # IF THERE IS ANY REASON WHY THE FILE CANNOT BE OPENED, A REPY IS 19 2=?L # GIVEN IF QUERY MODE IS SET, OTHERWISE A GEOERR IS OBEYED. 4 2=R= # 4 2?QG # 7 2#=6 XMON #42014200 4 2#PQ [ 20 2#QB ...[ SUBROUTINE TO CLOSE DIR IN PREPARATION FOR MANDATORY B.S. REQUEST 5 2#R2 ...XCLOSE 8 2#RL ... SBX 3 FX1 7 2#S= ... TOPFCB2 1 9 2#SW ...#SKI K6OPENREL>100-100 10 2#TG ... TRACE BACK2(1),WAIT 9 2#W6 ... LDX 4 FME1(1) 18 2#WQ ... LDX 5 FME2(1) [REMEMBER USERNAME OF DIR 9 2#XB ... LDX 6 FME3(1) 20 2#Y2 ... LDX 0 AWORK4(2) [IF I SET UWB, MUST NOW UNSET IT 8 2#YL ... BZE 0 NOBS1 10 2#_= ... MHUNTW 1,FILE,ENT 9 2#_W ... BC 1,BEUWB 10 2*2G ... NAME 1,FILE,FWB 7 2*36 ... REWRITE 10 2*3Q ... MHUNTW 1,FILE,FWB 10 2*4B ... NAME 1,FILE,ENT 5 2*52 ...NOBS1 15 2*5L ... CLOSETOP [CLOSE DIR 9 2*6W ... MFREEW FILE,FCB 8 2*7G ... ADX 3 FX1 7 2*86 ... EXIT 3 0 4 2*8Q ...[ 5 2*9B OPENRELX 20 2*P2 [ENTRY FOR MACRO OPENRELX USED BY USEROPEN WHICH WILL HAVE LEFT THE 20 2B8L [DIRECTORY OPEN AS THOUGH A GDE HAS BEEN DONE AND A FILE/ENT IN CORE 13 2BN= LDX 7 ACOMMUNE7(2) [MODE 9 2C7W STOZ AWORK1(2) 9 2CCN ... STOZ AWORK4(2) 8 2CMG BRN OKGDE 4 2D76 [ 5 2DLQ OPENCREX 13 2F6B LDX 7 ACOMMUNE7(2) [MODE 9 2FL2 STOZ AWORK1(2) 9 2FP6 ... STOZ AWORK4(2) 10 2FS= ... MHUNT 3,FILE,FLOCNB 21 2G2G ... JBC TGDE2,3,BFABEXO [J IF NOT CREATING AN EXOFILE ENTRANT 21 2G8Q ... BRN NFI [DON'T DO 2ND GETDIR SINCE DIR. ALREA 21 2GC2 ... [ POSSIBILITY OF TO-BE-ERASED ENTRAN 4 2GK= [ 5 2H4W OPENREL 16 2HJG [ CHECK TYPE OF FILE AND ACCESIBLE & PICK UP MODE 13 2J46 LDX 7 ACOMMUNE7(2) [MODE 4 2JHQ [ 5 2K3B OPENEND 9 2KH2 #SKI K6OPENREL>399-399 10 2L2L TRACE 7,2OPENREL 19 2LG= STOZ AWORK1(2) [ZEROIZE 'FCB IN CORE' MARKER 12 2L_W [THE FORMAT OF THE MODE WORD IS THUS 9 2MFG [B MODE MEANING 12 2M_6 [0 DIROPEN LEAVE DIRECTORY OPEN 17 2NDQ [1 DIREPLY REPLY CANT IF DIRECTORY CAN'T BE OPENED 16 2NYB [2 REPWAIT GO UP IF DIRECTORY CLOSED DURING OPEN 12 2PD2 [3 CAREFUL OPEN FILE CAREFULLY 15 2PXL [4 USERCLEAN OPEN FILE CLEANLY (DA COMMUNE) 18 2QC= [5 HALFOPEN WE ARE HALFOPENING FILE (SET WITHIN OPENREL) 13 2QWW [6 ERASING OPEN EVEN IF TO-BE-ERASED 15 2RBG [7 SYSTCOMM OPEN IN SYSTEM COMMUNICATION MODE 16 2RW6 [8 THAW REDUCE FREEZECOUNT BY 1 DURING OPEN 19 2S*Q [9 ERASE SET TO-BE-ERASED & OPEN TO ERASING BITS IN FCB 21 2STB [10 GDESTR OPEN IN GENERAL DESTRUCTIVE READ MODE MK7 20 2T*2 [11 REOPEN REOPEN A SAVED FILE & REDUCE APPROPIATE SAVECT BY 1 10 2TSL [15 CREATE CREATE A FILE 15 2W#= [16 COMMUNE OPEN FILE IN COMMUNICATION MODE 16 2WRW [17 REPLY REPLY CANT IF FILE CAN'T BE OPENED 15 2X?G [18 NOWAIT REPLY MAG IF FILE NEEDS RESTORING 18 2XR6 [19 QUERY REPLY RATHER THAN GEOERR IN SOME ERROR CASES 18 2Y=Q [20 DESTRUCT OPEN FILE IN DESTRUCTIVE COMMUNICATION MODE 14 2YQB [21 EMPTY EMPTY FILE WHILST OPENING IT 14 2_=2 [22 LEAVE LEAVE FILE/ENT BLOCK IN CORE 17 2_PL [23 DIR IMPLEMENTS OPENDIR - NOT USED IN OPENREL 21 329= [B12,13,14 CONTAIN THE MAIN MODE AS A VALUE RATHER THAN INDIVIDUAL BITS 20 32NW [ 1-READ, 2-READR, 3-APPEND, 4-WRITE, 5-GENERAL, 6-COPY, 7-CLEAN. 9 338G #SKI K6OPENREL>199-199 4 33N6 ( 18 347Q TESTMODE 7,NODS,NOT,DESTRUCT [IF DESTRUCT MODE GIVEN 20 34MB TESTMODE 7,NODS,,COMMUNE [COMMUNE SHO4LD ALSO BE PRESENT 10 3572 GEOERR 1,DESMCOMM 4 35LL NODS 4 366= ) 4 36KW TGDE 9 36TN ... STOZ AWORK4(2) 7 375G GETDIR 1 18 37K6 [THERE IS A COMPLETE LOCAL NAME IN A LOCAL NAME BLOCK IN THE 18 384Q [ACTIVITY CHAIN.FIND ITS DIRECTORY ENTRY IN THE CURRENT FILE 21 38JB TESTREP2 OK,OKGDE,VRYWRONG,QRWNG,DISAGREE,QRDIS,WRGEN,WRG, - 10 3942 NAME,QRNAM 10 39HL TESTRPN2 NOFILE,QUER 5 3=3= TGDE2 12 3=GW TESTMODE 7,NSC,NOT,SYSTCOMM 20 3?2G ADDMODE 7,COMMUNE [ADD COMMUNE IF SYSTCOMM GIVEN 4 3?G6 NSC 7 3?_Q GETDIR 3 12 3#FB TESTREP2 OK,OKGDE,NOFILE,NFI 21 3#_2 TESTRPN2 VRYWRONG,QUER [TEST FOR CASE WHERE MT FILE OF SAME 20 3*DL READAGAIN [NAME EXISTS AND IS MARKED TO BE 14 3*Y= MHUNTW 3,FILE,FRB [ERASED 18 3BCW NAME 3,FILE,ENT [IF IT IS FOLLOW NORMAL 21 3BXG BRN OKGDE [WAITING FOR FILE TO BE ERASED PATH 4 3CC6 NFI 19 3CWQ [IF IT IS THE CREATE CASE WE MUST SET UP A NEW DIRECTORY ENTRY 19 3DBB TESTMODE 7,QUERY,NOT,CREATE [ERROR UNLESS CREATE GIVEN 18 3DW2 ACROSS MAKEFILE,1 [EXIT FOR CREATE CASE. 5 3F*L OKGDE 18 3FT= [IS THERE ANYTHING ELSE TO STOP US EVER OPENING THE FILE. 12 3G#W TESTMODE 7,NOSY,NOT,SYSTCOMM 20 3GSG ADDMODE 7,COMMUNE [ADD COMMUNE IF SYSTCOMM GIVEN 4 3H#6 NOSY 11 3HRQ TESTMODE 7,NGDR,NOT,GDESTR 21 3J?B TESTMAIN 7,QRWR,NOT,READ,APPEND [GDR MUST BE 4 3JR2 NGDR 10 3K=L MHUNTW 3,FILE,ENT 11 3KQ= JBC NIND,3,BEINDEX 10 3L24 ... TESTMODE 7,OKEM,,ERASE 20 3L9W TESTMODE 7,QRWR,,EMPTY [INDEXED FILE MAY NOT BE EMPTIED 21 3LFN ...OKEM [UNLESS ERASE MODE ALSO SPECIFIED. 19 3LPG TESTMAIN 7,QRWR,,APPEND,WRITE[OR OPENED IN TH THESE MODES 4 3M96 NIND 9 3MNQ LDX 0 ELAN(3) 18 3N8B BXU 0 XMON(1),NMON [J IF NOT LANGUAGE B1B0 21 3NN2 TESTMODE 7,NCAR,,SYSTCOMM [J IF SYSTEM COMMUNE SINCE MONITORING 19 3P7L NMON [FILES MUST NOT BE CAREFUL. 10 3PM= JBS YCAR,3,BECARE 21 3QLG TESTMAIN 7,NCAR,NOT,APPEND [APPEND IS CAREFUL 21 3R66 TESTMODE 7,NCAR,,REOPEN,GDESTR,EMPTY [UNLESS ONE O 4 3RKQ YCAR 18 3S5B TESTMODE 7,QRWR,,GDESTR [GDR+CAREFUL IS ILLEGAL 9 3SK2 ADDMODE 7,CAREFUL 4 3T4L NCAR 11 3TJ= JBC NERAS,3,BEERASE 12 3W3W TESTMODE 7,NERAS,,THAW,ERASING 12 3WHG TESTMODE 7,QUERY,NOT,CREATE 10 3X36 TESTMODE 7,XRC,,REPLY 17 3XGQ LDX 6 ELOC1(3) [KEEP NAME OF FILE 21 3Y2B DOWN OPENWAIT,1 [GO DOWN TO WAIT FOR FILE TO BE ERASE 14 3YG2 UP [BREAKIN 10 3Y_L TESTREP2 DIRCLOSE,UPF 20 3_F= [DIRECTORY WAS CLOSED IN OPENWAIT 17 3_YW TESTRPN2 OK,TRCLU [IF OK CHECK GEN NO. 19 42DG HUNT 1,FILE,FLOCNB [BEFORE DOING ANOTHER GETDIR 9 42Y6 LDX 0 A1+4(1) 20 43CQ BNZ 0 TGDE [IF NON ZERO GEN OK TO DO GETDIR 8 43XB LDCT 0 #100 16 44C2 STO 0 A1+4(1) [SET BIT2 OF GEN 8 44WL BRN TGDE 5 45B= TRCLU 10 45TW TESTREP2 CLUDGE,UPCLD 16 46*G KEEPREP 4,NAME [REPORT IF NOT 11 46T6 ADDMODE 7,LEAVE,DIROPEN 9 47#Q BRN QUERIES 5 47SB UPCLD 15 48#2 KEEPREP 4,CLUDGE [REPLY CLUDGE 9 48RL BRN QUERIES 18 49?= NERAS [AND IF SO RECREATE IT 11 49QW TESTMODE 7,QUERY1,,CREATE 4 4==G [ 19 4=Q6 [NOTE THAT RANDOM MODE IS FEASIBLE WITH ANY FILE & ANY MODE IS 19 4?9Q [FEASIBLE WITH A SERIAL FILE,BUT SERIAL MODE CANNOT BE USED ON A 13 4?PB [RANDOM FILE BECAUSE OF RECORD HEADERS. 4 4#92 [ 19 4#NL TESTMAIN 7,NOQUERY2,,RANDOM [OK IF MODE AND FILE SERIAL 12 4*8= JBS NOQUERY2,3,BESERIAL 10 4*MW [THE NEXT SECTION DEALS WITH 10 4B7G [CASES WHERE SOMETHING IS 11 4BM6 [WRONG & A REPLY MUST BE GIVEN: 4 4C6Q QRWR 17 4CLB KEEPREP 4,WRONG [REPORT IF WRONG MODE 8 4D62 BRN QUENT 10 4DKL QRTEM KEEPREP 4,TEMPLOST 9 4F5= ... BRN QRTLOS 9 4FJW QRNAM KEEPREP 4,NAME 8 4G4G BRN QUENT 17 4GJ6 QRWNG KEEPREP 4,VRYWRONG [REPORT IF WRONG TYPE 8 4H3Q BRN QUENT 21 4HHB QRDIS KEEPREP 4,DISAGREE [REPORT IF MAG TAPES DISAGREE WITH DI 8 4J32 BRN QUENT 5 4JGL QUERY1 21 4K2= KEEPREP 4,ALREADY [REPORT IF CREATING ALREADY THERE. 9 4KFW BRN QUERIES 19 4K_G WRG KEEPREP 4,WRGEN [REPORT IF WRONG GENERATION 8 4LF6 BRN QUENT 5 4LYQ QUERY 20 4MDB KEEPREP 4,NOFILE [REPORT IF WANTED AND NOT THERE. 9 4MY2 QUENT ADDMODE 7,LEAVE 5 4NCL QUERIES 11 4NX= TESTMODE 7,REPLY,,QUERY 21 4PBW QUER GEOERR 1,QUERIES [ABSENCE OR PRESENCE OR FORMAT OR GDE 5 4PWG REPLY 11 4QB6 TESTMODE 7,TUP,,DIROPEN 21 4QTQ CLOSETOP [DO A LITTLE CLOSE ON THE DIRECTORY: 4 4R*B TUP 16 4RT2 PUTREP 4 [DEPOSIT REPLY 9 4S#L #SKI K6OPENREL>399-399 15 4SS= TRACE 4,ANSOREL [TRACE REPLY 4 4T?W UPF 10 4TRG HUNTW 1,FILE,ENT 21 4W?6 BNG 1 UP [SEE IF THERE IS AN ENT BLOCK AROUND 10 4WQQ TESTMODE 7,UP,,LEAVE 7 4X=B FREECORE 1 7 4XQ2 UP UPPLUS 1 5 4Y9L NOQUERY2 4 4YP= [ 19 4_8W [THIS CODE WAS INCLUDED TO DEAL WITH BUG 2586. IT DEALS WITH THE 20 4_NG [INTERLOCKS WHICH OCCURS WHEN A JOB DOES A LISTFILE THEN AN INPUT 21 5286 [ON THE SAME FILE. IF MODE IS EMPTY & FILE IS FROZEN THEN THE ACTIVITY 20 52MQ [IS SET WAITING. MORE CHANGES ARE INSERTED IN OTHER OPEN SEGMENTS TO 21 537B [WAKE UP ALL ACTIVITIES WAITING FOR THIS FILE AFTER IT HAS BEEN THAWED. 4 53M2 [ 10 546L LDEX 0 EAUTOCOUNT(3) 21 54L= ORX 0 ESVCT(3) [ADD IN READ & WRITE FROZEN COUNTS 9 555W BZE 0 NOQUERY3 12 55KG TESTMODE 7,NOQUERY3,NOT,EMPTY 11 5656 TESTMODE 7,NREP,NOT,REPLY 4 56JQ XRC 9 574B KEEPREP 4,CANT 8 57J2 BRN REPLY 4 583L NREP 21 58H= LDX 6 ELOC1(3) [PRESERVE PART OF LOCAL NAME FOR WAIT 20 592W DOWN OPENWAIT,4 [GO DOWN TO WAIT FOR FILE TO BE 14 59GG UP [THAWED 12 5=26 TESTREP2 DIRCLOSE,UPF,OK,TGDE 8 5=FQ BRN TRCLU 5 5=_B NOQUERY3 10 5?F2 [THE DIRECTORY ENTRY FOR THE 10 5?YL [FILE WANTED HAS BEEN FOUND. 11 5#D= [EXCEPT IN THE EMPTY CASE, WE 10 5#XW [WANT TO CONSULT THE ON-LINE 10 5*CG [COPY IF THERE IS ONE, OR TO 10 5*X6 [RESTORE IT IF THERE IS NOT. 20 5BBQ LDN 4 0 [ZEROISE EMPTY AND OFFLINE MARKER 5 5BWB RETONL 9 5CB2 LDEX 0 ECOPS(3) 19 5CTL BNZ 0 ONLINE [SKIP UNLESS NEEDS RESTORING 17 5D*= LDX 0 EUSE1(3) [ERROR IF A DIRECTORY 8 5DSW BNZ 0 NONLD 11 5F#G TESTMODE 7,TEMPT,NOT,EMPTY 7 5FS6 LDN 4 1 9 5G?Q LDN 6 FBLKS-A1 8 5GRB BRN NTHAW 5 5H?2 TEMPT 17 5HQL LDX 0 ECOPS(3) [TEST FOR EMPTY FILE 16 5J== BNZ 0 REST [RESTORE IF NOT 4 5JPW YRE 9 5K9G LDN 6 FBLKS-A1 9 5KP6 BRN ONLINE 4 5L8Q REST 8 5N7= LDN 3 BFILE 16 5NLW TOPFCB 2 [FIND DIR FCB 17 5P6G LDX 4 FME1(2) [STORE USER NAME IN 3 5PF* ... 9 5PS8 ... HUNT 1,FILE,FLOCNB 18 5Q73 ... BASEFCB 3,FILE,RESTA,6 [INITIALISE FOR FCB SEARCH 8 5QFW ... BRN NOGO2 5 5QSP ...NOGO1 10 5R7J ... NEXTFCB 3,FILE,NOGO2,6 8 5RGC ... BRN RESTA 5 5RT= ...NOGO2 19 5S85 ... LDX 0 FME3(2) [SET UP LOCAL NAME FOR COMPARISON 9 5SGY ... LDX 5 FME2(2) 5 5STR ...NOGO3 11 5T8L ... TXU 4 FUSER1-FCBRING(3) 18 5THF ... BCC SOFAROK [FIRST WORD OK B TO TRY NEXT 12 5TW# ...NOGO4 [TRY NEXT FCB 10 5W97 ... NEXTFCB 3,FILE,NOGO3,6 16 5WJ2 ... BRN RESTA [FILE RING EXHAUSTED 5 5WWT ...SOFAROK 11 5X9N ... TXU 5 FUSER2-FCBRING(3) 19 5XJH ... TXU 0 FUSER3-FCBRING(3) [TEST REST OF USER NAME 8 5XXB ... BCS NOGO4 21 5Y=9 ... TESTNAMX 6,A1(1),FLOC1-FCBRING(3),NOGO1,5 [TEST COMPLLETE LOCAL 14 5YK4 ... SBN 3 FCBRING [FCB FOUND 8 5YYG LDX 2 FX2 17 5_D6 LDN 6 1 [SET MARKER IN AWORK1 9 5_XQ STO 6 AWORK1(2) 9 62CB LDX 6 BACK1(3) 18 62X2 STO 6 AWORK2(2) [KEEP BACKING STORE HOME 19 63BL LDX 6 BACK2(3) [PAIR OF FCB IN AWORK WORDS 9 63W= STO 6 AWORK3(2) 19 64*W LDN 0 1 [ADD 1 TO COUNT OF WAITERS 10 64TG ADS 0 FWAITCOUNT(3) 10 65*6 HUNTW 3,FILE,ENT 19 65SQ LDN 4 0 [RESET EMPTY & OFFLINE MARKER 9 66#B BRN ONLINE 5 66S2 RESTA 19 67?L LDN 4 0 [RESET EMPTY & OFFLINE MARKER 21 67R= TESTMODE 7,RESTORE,NOT,NOWAIT[RESTORE FILE UNLESS EMPTY &OFFLINE 8 68=W KEEPREP 4,MAG 18 68QG BRN REPLY [GIVE A REPLY IF NOWAIT 5 69=6 RESTORE 8 69C# ... SMO FX2 9 69JG ... STOZ AWORK4 19 69PQ RESTFILE [DOWN TO THE RESTORE CHAPTER. 5 6=9B UP 10 6=P2 TESTREP2 OK,RESTORED 21 6?8L ADDMODE 7,DIROPEN [DIR HAS BEEN CLOSED IF NON-OK REPLY 19 6?N= TESTREP2 NAME,QRNAM,NOFILE,QUERY,TEMPLOST,QRTEM,LOST,QRLOS 8 6#7W BRN QUER 21 6#MG [THIS SECTION WAS PUT IN TO DEAL WITH LOST FILES WHICH CANNOT BE ERASED 9 6*76 [IF FROZEN (BUG 1895) 5 6*LQ QRLOS 9 6B6B KEEPREP 4,LOST 5 6BB8 ...QRTLOS 11 6BL2 TESTMODE 7,TUP,NOT,THAW 10 6C5L HUNT 3,FILE,FABSNB 19 6CK= BNG 3 TUP [CAN'T OPENDIR WHTHOUT FABSNB 20 6D4W OPENDIR TUP,GENERAL,ERASING [OPEN DIRECTORY TO REWRITE DIRENT 9 6DJG TESTRPN2 OK,QUER 10 6F46 MHUNTW 3,FILE,ENT 7 6FHQ LDN 0 1 19 6G3B SBS 0 EAUTOCOUNT(3) [SUBTRACT 1 FROM FREEZECOUNT 10 6GH2 NAME 3,FILE,FWB 16 6H2L REWRITE [REWITE DIRENT 10 6HG= HUNT 1,FILE,FWB 10 6H_W NAME 1,FILE,ENT 11 6JFG TESTMODE 7,TUP,,DIROPEN 16 6J_6 CLOSETOP [CLOSE DIRECTORY 17 6KDQ BRN TUP [KEEP REPLY AND GO UP 5 6KYB RESTORED 12 6LD2 TESTMODE 7,NREPW,NOT,REPWAIT 20 6LXL CLOSETOP [CLOSE DIRECTORY BEFORE GOING UP 9 6MC= SETREP2 DIRCLOSE 8 6MWW BRN UPF 5 6NBG NREPW 10 6NW6 MHUNTW 3,FILE,ENT 9 6P*Q BRN RETONL 10 6PTB [ON EXIT FROM RESTORE, THE 11 6Q*2 [DIRECTORY IS OPEN POSITIONED 7 6QSL [AFTER THE FRDE. 10 6R#= [THE NEW DIRENT IS IN CORE. 5 6RRW ONLINE 20 6S?G [PUT A BEING-ALTERED BIT IN THE DIRECTORY ENTRY IF NEED BE. THEN GET 12 6SR6 [SOME CORE FOR A FILE CONTROL BLOCK: 11 6T=Q TESTMODE 7,NTHAW,NOT,THAW 11 6TQB TESTMAIN 7,THERR,,UNCLEAN 4 6W=2 [ 20 6WPL [REPLY MODE MUST BE SPECIFIED BECAUSE IF SOMEONE ELSE HAS THE FILE 20 6X9= [OPEN THE 'OPENTHAW ACTIVITY' CANNOT WAIT, SINCE IT HAS THE FILES 7 6XNW [DIRECTORY OPEN 4 6Y8G [ 12 6YN6 TESTMODE 7,TDIROK,NOT,REPLY 21 6_7Q THERR GEOERR 1,THAW ERR [ERROR IF UNCLEAN AND/OR REPLY NOT SE 5 6_MB NTHAW 11 6_X8 ... TESTMAIN 7,TDIROK,,COPY 11 7272 TESTMAIN 7,SUWB,,UNCLEAN 16 72LL TESTMODE 7,TDIROK,NOT,GDESTR [GDR IS UNCLEAN 4 736= SUWB 12 73KW TESTMODE 7,TDIROK1,,CAREFUL 19 745G JBSS TDIROK1,3,BEUWB [SET UWB UNLESS ALREADY SET 10 74K6 REWR NAME 3,FILE,FWB 16 754Q REWRITE [REWRITE RECORD: 10 75JB MHUNTW 3,FILE,FWB 10 7642 NAME 3,FILE,ENT 7 7698 ... LDN 0 1 17 76BB ... STO 0 AWORK4(2) [REMEMBER I SET UWB 15 76HL [MUST SOME DAY GET RID OF FURB TO BACKING STORE 5 773= TDIROK1 21 77GW BNZ 4 MAKEFCB [IGNORE BLOCK NOS IF EMPTY AND NOT ON 5 782G TDIROK 8 78G6 LDX 2 FX2 9 78_Q LDX 0 AWORK1(2) 7 79FB SBN 0 1 8 79_2 BNZ 0 NOFCB 18 7=DL LDX 5 AWORK2(2) [LOAM BS HOME PAIR READY 17 7=Y= LDX 6 AWORK3(2) [FOR OELOCATING FCB 10 7?CW ACROSS ORELMAIN,4 5 7?XG NOFCB 21 7#C6 LDX 0 ECOPS(3) [IF FILE IS EMPTY & OFFLINE OMIT CODE 9 7#WQ BZE 0 MAKEFCB 4 7*BB NEO 18 7*W2 READ [GET BEST ADDRESS BLOCK 15 7B*L HUNT 2,FILE,FRB [FIND BLOCK 18 7BT= LDX 6 A1(2) [NUMBER OF BLOCKS PLUS 2 18 7C#W ADN 6 FBLKS-A1-2 [CORE NEEDED FOR FCB 12 7CSG TESTMODE 7,MAKEFCB,NOT,EMPTY 21 7D#6 BACKSPACE [REPOSITION ON BLOCKS RECORD IF EMPTY 5 7DRQ MAKEFCB 19 7F?B [SET UP A FILE CONTROL BLOCK IN CASE THERE IS NOT ONE ALREADY: 21 7FR2 [THE NAME IS NEEDED IN IT FOR COMPARISON AND THE OTHER WORDS CAN BE PUT 21 7G=L [IN FOR CONVENIENCE: X7=MODE ; X6=CORE NEEDED ; X5 MEANS ENTRY UNCHANGED 11 7H9W SETUPCOR 6,3,FILE,FCB,,1 20 7K8B STO 6 FBLMOD(3) [STORE RECORD HEADER IN FCB 10 7KN2 STOZ FBLMOD+1(3) 10 7L7L LDN 5 FBLMOD+1(3) 10 7LM= LDN 6 FBLMOD+2(3) 11 7M6W MOVE 5 BSPRE-FBLMOD-2 21 7MLG LDX 0 ALOGLEN(3) [INITIALIZE WORD INDICATING NUMBER 19 7N66 STO 0 FUSEBL(3) [OF BLOCKS ALLOCATED TO FILE 18 7NKQ NGS 3 CMOD(3) [RECORD MODIFIER NEGATIVE 9 7P5B BNZ 4 SETNAME 10 7PK2 MHUNTW 2,FILE,ENT 21 7Q4L LDX 0 ECOPS(2) [IF FILE IS EMPTY & OFFLINE OMIT CODE 9 7QJ= BZE 0 SETNAME 10 7R3W MHUNTW 2,FILE,FRB 19 7RHG LDN 6 BSPRE(3) [POINTER TO BLOCKS ADRESS. 17 7S36 LDN 5 A1+1(2) [POINTER TO BLOCKS. 21 7SGQ SMO A1(2) [NUMBER OF WORDS TO MOVE PLUS ONE. 16 7T2B MOVE 5 511 [MOVE ONE LESS 5 7TG2 XFRFL 15 7T_L FREECORE 2 [FREE FRB. 5 7WF= SETNAME 10 7WYW MHUNTW 1,FILE,ENT 9 7X64 ... LDX 0 EUSE1(1) 14 7X?= ... GETFCBN 3,0 [GET UNIQUE FCB NO 17 7XDG LDEX 0 EAUTOCOUNT(1) [COPY THE FREEZECOUNT 11 7XY6 STO 0 FREEZECOUNT(3) 9 7YCQ LDX 0 ETM(1) 9 7YXB STO 0 FETM(3) 10 7_C2 LDX 0 EENDBUCK(1) 15 7_WL STO 0 FENDBUCK(3) [COPY ENDBUCK 10 82B= LDX 0 EVERSION(1) 15 82TW STO 0 FVERSION(3) [COPY VERSION 20 83*G LDX 0 ESVCT(1) [COPY READ- & WRITE-FREEZE COUNTS 9 83T6 STO 0 FSVCT(3) 9 84#Q LDX 0 EINF3(1) 19 84SB DLA 0 FSIZE(3) [MAXIMUM ALLOWED FILE SIZE 9 85#2 LDX 0 ECOPS(1) 21 85RL BZE 0 NONBAL [SET BLOCKS ALT BIT IF EMPTY & OFFLIN 11 86?= TESTMODE 7,NBAL,NOT,EMPTY 5 86QW NONBAL 11 87=G MBS 3,BFALTB,BFALTR 4 87Q6 NBAL 10 889Q JBC NOUWB,1,BEUWB 15 88PB BS 3,BFUWB [TRANSFER BIT 5 8992 NOUWB 7 89NL LDN 4 0 15 8=8= JBC NOTS,1,BESERIAL [TRANSFER BIT 9 8=MW BS 3,BFSER 4 8?7G NOTS 10 8?M6 JBC NOTM,1,BEMT 15 8#6Q BS 3,BFMT [TRANSFER BIT 4 8#LB NOTM 11 8*62 JBC NINX,1,BEINDEX 9 8*KL LDX 0 EINDEX(1) 9 8B5= STO 0 FINFC(3) 4 8BJW NINX 11 8BK4 ... JBC NPARES,1,BEPARTRES 9 8BK6 ... BS 3,BFPARTRES 5 8BK8 ...NPARES 12 8BL? ... JBC NCLOSEAB,1,BECLOSEAB 12 8BLQ ... TESTMODE 7,NCLEMPT,NOT,EMPTY 19 8BM9 ... BC 1,BECLOSEAB [UNSET CLOSEABANDON MARKER 20 8BMN ... BRN NCLOSEAB [AS FILE BEING EMPTIED INSTEAD. 5 8BN7 ...NCLEMPT 10 8BNL ... BS 3,BFCLOSEAB 5 8BP5 ...NCLOSEAB 12 8BPQ ... JBC NDIBMOD,1,BEFHDIRMODE 10 8BPS ... BS 3,BFFHDIRMODE 5 8BPW ...NDIBMOD 13 8BQ_ ... JBC NUSERFREZ,1,BEUSERFREZ 10 8BRD ... BS 3,BFUSERFREZ 6 8BRX ...NUSERFREZ 7 8BS7 ...#UNS ILOGACC 4 8BSC ...( 12 8BSM ... JBC NLOGACC,1,BELOGACC 21 8BSX ... BS 3,BFLOGACC [MARK FCB LOGGED ACCESS IF ENT 5 8BT7 ...NLOGACC 4 8BTC ...) 9 8BTR ... LDX 0 EUSE1(1) 9 8BW= ... BZE 0 NOTADIR 17 8BWP ... MBC 3,BFDIRUPDATE,BFALLINCS,BFDUMP,BFDIRBELOW 10 8BX8 ... JBC NDUMPIN,1,BEDUMP 9 8BXM ... BS 3,BFDUMP 5 8BY6 ...NDUMPIN 11 8BY9 ... JBC NJ4AST,1,BEJOB4ASTR 9 8BY# ... BS 3,BFJOB4ASTR 5 8BYC ...NJ4AST 12 8BYK ... JBC NALLINC,1,BEALLINCS 10 8B_4 ... BS 3,BFALLINCS 5 8B_H ...NALLINC 12 8C22 ... JBC NDIRBLOW,1,BEDIRBELOW 10 8C2F ... BS 3,BFDIRBELOW 5 8C2Y ...NDIRBLOW 5 8C3C ...NOTADIR 9 8C4G LDX 0 EUSE1(1) 19 8CJ6 BNZ 0 YPUB [J IF DIR AS THIS PUBLIC FILE 9 8D3Q LDX 0 EALLOC(1) 8 8DHB ANDN 0 #77 7 8DPL ... SBN 0 1 19 8DXW ... BZE 0 YPUB [J IF 'ALLOCATE PUBLIC' FILE 8 8F66 ... SBN 0 47 21 8F#B ... BPZ 0 YPUB [J IF ALLOCATED TO SPECIAL RESIDENCE 11 8FGL JBS YPUB,1,BEONLINE 19 8G2= BS 3,BFCUBS [ELSE MARK AS 'NON-PUBLIC' 4 8GFW YPUB 10 8G_G TESTMODE 7,YEEM,,EMPTY 21 8HF6 JBC YEEM,1,BEPURE [TRANSFER PURE PROCEDURE BIT UNLESS E 9 8HYQ BS 3,BFPP 4 8JDB YEEM 19 8JY2 LDX 4 EUSE1(1) [LOOK AT USER NAME IN DIRENT. 8 8KCL TFCBCHECK 2 12 8KX= TESTMODE 7,NDES,NOT,DESTRUCT 21 8LBW MBS 3,BFCORE,BFDCF [DCF USAGE BLOCKS ARE LEFT IN CORE 4 8LWG NDES 17 8MB6 LDN 5 FME1(2) [X5 -> SUPUSER NAME 18 8MTQ LDN 6 FUSER1(3) [X6 -> TO NICHE FOR SAME 7 8N*B MOVE 5 3 17 8NT2 BNZ 4 NOTTERMINAL [IF DIRECTORY JUMP 18 8P#L HUNT 2,FILE,FLOCNB [FIND LOCAL NAME BLOCH 16 8PS= LDN 5 A1(2) [X5 -> LOCAL NAME 15 8Q?W LDN 6 FLOC1(3) [X6 -> NICHE 16 8QRG MOVE 5 6 [COPY LOCAL NAME 20 8R?6 BRN ORELMAIN [ACROSS TO MAIN PART OF OPENREL. 5 8RQQ XALLOC 10 8S=B MHUNTW 1,FILE,ENT 9 8SQ2 LDX 4 EALLOC(1) 8 8T9L ANDN 4 #77 18 8TP= BZE 4 (6) [J IF FILE NOT ALLOCATED 21 8X86 RESQUERY 4,(6) [J IF SPECIAL RESIDENCE DOES NOT EXIS 16 8XMQ EXIT 6 1 [ALLOCATE EXIT 5 8Y7B YEMOF 10 8YM2 MHUNTW 3,FILE,FCB 17 8_6L CALL 6 XALLOC [TEST FOR ALLOCATE 16 8_L= BRN NALL [J NOT ALLOCATE 16 925W BZE 5 YRD [J IF READ MODE 9 92KG #SKI K6OPENREL>100-100 4 9356 ( 9 93JQ TRACE 4,SPRES 9 944B TRACE 5,BLKS 4 94J2 ) 10 95H= HUNT 2,BSTB,FULLB 21 962W BNG 2 NFLB [IF FULLB GIVEN & B.S. IS ON CORRECT 9 96GG #SKI K6OPENREL>100-100 9 9726 TRACE 2,FULLB 4 97FQ YALC 21 97_B LDX 0 A1+1(2) [RESIDENCE IT CAN BE USED ,OTHERWISE 19 98F2 BXE 0 4,YMBS [BS IN FULLB MUST BE FREED 21 98YL LDX 5 A1(2) [AND NUMBER OF BLOCKS IN FULLB MUST 21 99D= FREEBAX [BE REMEMBERED SO THAT SAME NUMBER 10 99XW MHUNTW 1,BSTB,EMPTYB 20 9=CG BRN SFB [CAN BE GOT ON SPECIAL RESIDENCE 21 9=X6 [IF NO FULLB WAS GIVEN 8 BLOCKS ARE 18 9?BQ [GOT ON SPECIAL RESIDENCE 16 9?K2 ...NFLB [NO BLOCKS GIVEN 18 9?R= ... BNG 5 YRD [J IF EMPTY,OFFLINE DA 7 9?_G ... ADN 5 2 11 9#7Q ... SETUPCORE 5,1,BSTB,EMPTYB 4 9#B2 SFB 20 9#TL STO 5 A1(1) [SET UP AN EMPTYB, PUT IN SPECIAL 16 9**= STO 4 A1+1(1) [RESIDENCE NUMBER 15 9*SW GETBAX NSBS [J IF NO B.S. 18 9B#G BRN YAL [OTHERWISE MOVE IT TO FCB 4 9BS6 NSBS 11 9C?Q SETUPCOR 5,1,BSTB,EMPTYB 8 9CRB STO 5 A1(1) 9 9D?2 STO 4 A1+1(1) 16 9DQL ... CALL 3 XCLOSE [CLOSE DIRECTORY 9 9F== ... MFREEW FILE,ENT 20 9K7= GETBAX [GET B.S. WAITING IF NECESSARY 4 9KLW WGJN 12 9L6G TESTMODE 7,NRWT,NOT,REPWAIT 9 9LL6 SETREP2 DIRCLOSE 8 9M5Q BRN UPF 4 9MKB NRWT 11 9N52 SETNCORE 4,1,FILE,FABSNB 7 9NJL LDN 0 4 8 9P4= STO 0 A1(1) 9 9PHW STO 4 A1+1(1) 9 9Q3G STO 5 A1+2(1) 9 9QH6 STO 6 A1+3(1) 15 9R2Q OPEN XBRN,GENERAL,QUERY [REOPEN DIR 9 9RGB TESTRPN2 OK,TRCLU 10 9S22 MFREE FILE,FABSNB 18 9SFL BRN TGDE [J BACK TO START AGAIN 9 9S_= XBRN GEOERR 1,DIRBRK 20 9TDW YRD STO 4 BSPRE(3) [STORE LFN IN FCB BUT NO BLOCKS 8 9TYG BRN XACC 4 9WD6 NALL 16 9WXQ BZE 5 YZR [NO FULB IF READ 21 9XCB HUNT 2,BSTB,FULLB [IF FULLB GIVEN THIS CAN BE USED AS 18 9XX2 BPZ 2 YMBS [IT IS NON-ALLOCATED CASE 19 9Y48 ... BPZ 5 YZR [J IF NOT EMPTY,OFFLINE DA 7 9Y9B ... STOZ 5 4 9YBL YZR 9 9YW= #SKI K6OPENREL>100-100 9 9_*W TRACE 5,NOFULLB 10 9_D5 ... MHUNTW 1,FILE,ENT 13 9_G# ... JMBAC YAL2,1,BEONLINE,BECOOR 13 9_JH ...[ IF A VITAL SYSTEM FILE TELL WHATBACK 10 9_LQ ... WHATBACK 2,5,NOBS,,VSF 8 9_N_ ... BRN YAL 4 9_R8 ...YAL2 21 9_TG WHATBACK 2,5,NOBS [IF NO FULLB GET 8 BLOCKS, J IF NO BS 8 =2*6 BRN YAL 4 =2SQ NOBS 9 =3#B ... STO 5 AWORK2(2) 16 =3S2 ... CALL 3 XCLOSE [CLOSE DIRECTORY 9 =4?L ... LDX 3 AWORK2(2) 10 =4R= ... MHUNTW 1,FILE,ENT 13 =5=W ... JMBAC WGJN2,1,BEONLINE,BECOOR 13 =5QG ...[ IF A VITAL SYSTEM FILE TELL WHATBACK 9 =6=6 ... WHATBACK 2,3,,,VSF 8 =6PQ ... BRN WGJN3 5 =79B ...WGJN2 19 =88L WHATBACK 2,3 [GET B.S. WAITING IF NONE 9 =8DD ...WGJN3 MFREEW FILE,ENT 8 =8N= BRN WGJN 4 =97W YAL 10 =9MG HUNT 3,FILE,FCB 10 ==76 HUNT 2,BSTB,FULLB 4 ==LQ YMBS 10 =?6B TESTMODE 7,XACC,,EMPTY 20 =?L2 LDX 0 A1+1(2) [IF EMPTY & OFFLINE FILE, SET UP 19 =#5L STO 0 BSPRE(3) [BSPRE IN CASE THIS FCB USED 21 =#K= BNZ 5 XACC [IF READ MODE FREE FULLB CONTAINING 14 =*4W FREECORE 2 [LFN ONTY 8 =*JG BRN XACC 6 =B46 NOTTERMINAL 19 =BHQ [IF THE FILE IS A DIRECTORY,GET ITS USERNAME FROM THE DIRENT. 10 =C3B HUNT 1,FILE,ENT 16 =CH2 LDN 5 EUSE1(1) [X5 -> USER NAME 18 =D2L LDN 6 FME1(3) [X6 -> TO NICHE FOR SAME 7 =DG= MOVE 5 3 16 =D_W LDN 5 ELOC1(1) [X5 -> LOCAL NAME 9 =FFG LDN 6 FLOC1(3) 7 =F_6 MOVE 5 3 9 =GDQ BS 3,BFDIR 12 =GYB TESTMODE 7,ORELMAIN,NOT,REPLY 12 =HD2 TESTMODE 7,ORELMAIN,,DIREPLY 9 =HXL CLEARMOD 7,REPLY 5 =JC= ORELMAIN 10 =JWW MHUNTW 1,FILE,ENT 10 =KBG JBC NIX,1,BEINDEX 6 =KW6 READ 10 =L*Q MHUNTW 1,FILE,FRB 10 =LTB NAME 1,FI,FINDEXF 8 =M*2 LDX 5 A1(1) 20 =MSL SBN 5 INDEXREC-A1 [CHECK RECORD SAME AS NUMBER OF 10 =N#= MHUNTW 1,FILE,FCB 9 =NRW LDX 0 FBLMOD(1) 9 =P?G SBN 0 FBLKS-A1 7 =PR6 SBX 0 5 8 =Q=Q BNZ 0 XIN 17 =QQB BACKSPACE [REPOSITOON DIRECTORY 4 =R=2 NIX 10 =RPL MHUNTW 1,FILE,ENT 10 =S9= TESTMODE 7,YEM,,EMPTY 21 =SNW LDX 0 ECOPS(1) [IF NEITHER EMPTY MODE NOR EMPTY & 20 =T8G BNZ 0 XACC [OFFLINE FILE EXIT FROM CHAPTER 10 =TN6 MHUNTW 3,FILE,FCB 21 =W7Q LDN 5 8 [SET DEFAULT NUMBER OF B.S. BLOCKS 12 =WMB TESTMAIN 7,YEMOF,NOT,READING 21 =X72 LDN 5 0 [READ CASE REQUIRES B.S. RESIDENCE 16 =XLL BRN YEMOF [NUMBER FOR BSPRE 4 =Y6= YEM 11 =YKW TESTMODE 7,XACC,,ERASING 9 =_5G LDEX 0 ECOPS(1) 21 =_K6 LDN 5 8 [SHOULD BE GOT UNLESS FILE ALLOCATED 9 =_WG ... BNZ 0 NOTEMOF 12 ?27W ... JMBS YEMOF,1,BESERIAL,BEMT 7 ?2F= ... NGN 5 1 8 ?2QL ... BRN YEMOF 5 ?342 ...NOTEMOF 9 ?3*B ... CALL 6 XALLOC 19 ?3LQ ... BRN XACC [IF NOT ALLOCATED,GET NO BS. 9 ?3Y6 ...#SKI K6OPENREL>100-100 9 ?49G ... TRACE 4,SRES 21 ?4GW MHUNTW 2,BSTB,FULLB [IF NO FULLB GIVEN NO B.S. REQUIRED 8 ?52G BPZ 2 YALC 4 ?5G6 XACC 10 ?5_Q ACROSS ORELMAIN,1 5 ?6FB NONLD 9 ?6_2 GEOERR 1,DIRNONL 9 ?7DL XIN GEOERR 1,WRINDEX 5 ?Q_L ...RESTCH 5 ?RYW ... UP 5 ?SDG ...RESTN 17 ?SY6 ... MHUNTW 3,FILE,FCB [FCB IN ACT. CHAIN 19 ?TCQ ... LDX 2 BFILE+1 [CHAIN AT END OF FILE CHAIN 8 ?TXB ... CHAIN 3,2 9 ?WC2 ... BRN RESTCH 5 ?WWL ...STACK 8 ?XB= ...#HAL FILE+FSTACK,0 4 #78= [ 12 #7MW MENDAREA GAPOPEN,K99OPENREL 4 #87G #END 8 ____ ...46731364000300000000