{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: MAKEFILE863)}}
====== MAKEFILE863 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:BACKSPACE|BACKSPACE]], [[george:macro:BRUSEN|BRUSEN]], [[george:macro:BS|BS]], [[george:macro:BXE|BXE]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:FCJOB|FCJOB]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETFCBN|GETFCBN]], [[george:macro:HUNT|HUNT]], [[george:macro:HUNTW|HUNTW]], [[george:macro:INSERT|INSERT]], [[george:macro:JBC|JBC]], [[george:macro:JBS|JBS]], [[george:macro:JMBAC|JMBAC]], [[george:macro:JMBS|JMBS]], [[george:macro:LOGACCESS|LOGACCESS]], [[george:macro:LONGON|LONGON]], [[george:macro:MBS|MBS]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:OPEN|OPEN]], [[george:macro:PROPTEST|PROPTEST]], [[george:macro:PROPUSER|PROPUSER]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETREP2|SETREP2]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:TESTMODE|TESTMODE]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TOPFCB|TOPFCB]], [[george:macro:TOPFCB2|TOPFCB2]], [[george:macro:TRACE|TRACE]], [[george:macro:TRANSFCB|TRANSFCB]], [[george:macro:TRAPADD|TRAPADD]], [[george:macro:TRF|TRF]], [[george:macro:UPPLUS|UPPLUS]], [[george:macro:VFREEW|VFREEW]], [[george:macro:WHATBACK|WHATBACK]]
22FL [
22^= [THIS IS A TIDIED-UP VERSION WITH MODETEST MACROS & BIT-SETTING MACROS
23DW [
23YG ... SEG MAKEFILE,,FILE,OPEN
24D6 # THIS ROUTINE SETS UP A DIRECTORY ENTRY, BLOCKS RECORD.AND TRAPS RECOR
24XQ # FOR A FILE THAT IS BEING CREATED.
25CB SEGENTRY K1MAKEFILE,MAKEFILE1
25X2 SEGENTRY K2MAKEFILE,MAKEFILE2
2626 ... SEGENTRY AUSERTRAP
265= ...#GAP ANOTRAPS*4
268B ... SEGENTRY ATRAPEND
26?G ... +0
26BL TEXID +IDENTITEX
26W= MAKEFILE2
27*W LDX 7 ACOMMUNE7(2) [MODES
27TG MAKEFILE1
28*6 [SET UP A ZERO FIRST RECORD FOR THE DIRECTORY ENTRY.
28SQ SETNCORE FRDE,3,FILE,FWB
29#B STOZ EREC(3) [ZERO FIRST WORD OF DIRENT
29S2 LDN 5 EREC(3)
2=?L LDN 6 EREC+1(3)
2=R= MOVE 5 FRDE-1 [ZEROISE DIRENT
2?=W [IF THERE IS A CREATE BLOCK, GET EINF1,2,3,EUSE1,2,3,ETM & ERET FROM IT
2?QG [AND DIRECT ACCESS INFORMATION IN EORG AND E
2#=6 HUNT 1,FILE,CREATE
2#PQ BNG 1 NOCRBL [J IF NOT THERE
2DLQ LDX 0 CERET(1)
2F6B STO 0 ERET(3) [COPY RETENTION PERIOD
2FL2 LDX 0 CETM(1)
2G5L STO 0 ETM(3) [COPY PERI TYPE/MODE
2GK= LDN 5 CEINF1(1)
2H4W LDN 6 EINF1(3) [COPY INFORMATION WORDS
2HJG MOVE 5 3
2J46 LDX 0 CEORG(1)
2JHQ STO 0 EORG(3) [COPY ORGANISATIONAL WORD
2K3B LDX 0 CEKEY(1)
2KH2 STO 0 EKEY(3) [COPY KEY WORD
2L2L LDX 0 CEENDBUCK(1)
2LG= STO 0 EENDBUCK(3) [COPY ENDBUCK WORD
2L^W LDX 0 CEVERSION(1)
2MFG STO 0 EVERSION(3) [COPY VERSION WORD
2M^6 LDX 0 CEFLOW(1)
2NDQ STO 0 EFLOW(3)
2NYB LDN 5 CEUSE1(1) [COPY USER NAME
2PD2 LDN 6 EUSE1(3)
2PXL MOVE 5 3
2Q=2 ... TRF 1,FCEGMTRV,3,FEGMTRV [TRANSFER GMT FROM LAST RETRIEVE
2QC= NOCRBL
2QM4 ... MHUNT 2,FILE,FLOCNB
2QWW ... JMBS SIZEG,2,BFABLIB,BFABEXO
2R6N ...[ OPEN FOR WRITING BIT, AND SERIAL FILE IF SERIAL MODE.
2RBG TESTMAIN 7,NOTSERIAL,,RANDOM
2RW6 BS 3,BESERIAL
2S*Q NOTSERIAL
2SKJ ... TESTMODE 7,NOUWB,,CAREFUL
2STB BS 3,BEUWB
2T58 ...NOUWB
2T*2 ... JMBAC SIZEG,3,BESERIAL,BEMT[0 BLKS IF *DA
2TSL LDEX 0 EINF3(3) [MAXIMUM NO. IS ASSUMED
2W#= BNZ 0 SIZEG [OK IF SIZE ALREADY GIVEN
2WRW TESTMODE 7,NODCA,NOT,DESTRUCT
2X?G LDN 0 COMDBUF [SET DEFAULT VALUE
2XR6 BRN STORESIZE
2Y=Q NODCA
2YQB LDN 0 FILESIZE [OTHERWISE PUT IN HIGHEST POSSIBLE
2^=2 STORESIZE
2^PL DLA 0 EINF3(3)
329= SIZEG
32NW [NOW COPY SOME THINGS FROM THE LOCAL NAME BLOCK BUT DO NOT FREE IT
33N6 LDN 5 A1(2) [X5 -> LOCAL NAME
347Q LDN 6 ELOC1(3) [FIVE WORDS OF IT GO HERE.
34MB ... JBS NFS,2,BFABLIB
3572 ... JBS NZG,2,BFABEXO [EXOFILES CAN HAVE GEN ZERO
366= LDX 0 EGEN-ELOC1+A1(2)
36KW BNZ 0 NZG
375G LDN 0 1 [CHANGE ZERO GENERATION TO ONE
37K6 STO 0 EGEN-ELOC1+A1(2)
384Q NZG
38JB LDX 0 EREEL+A1-ELOC1(2)
3942 BNZ 0 NOTZEROREEL [CHANGE REEL ZERO TO REEL ONE
39HL LDN 0 1
3=3= STO 0 EREEL+A1-ELOC1(2)
3=GW NOTZEROREEL
3?2G MOVE 5 5
3?G6 LDX 0 A1+5(2) [SIXTH ONE GOES HERE
3?^Q BNZ 0 NOTZLAN
3#FB LDX 0 ACES [NOT ZERO LANGUAGE
3#^2 STO 0 A1+5(2)
3*DL NOTZLAN
3*Y= STO 0 ELAN(3)
3BXG WKE
3DBB LDN 0 FRDE [RECORD HEADER.
3DW2 STO 0 EREC(3)
3G#W ... JBC NWORK,2,BFABWORK
3H#6 BS 3,BETEMP
3HRQ [ THE FOLLOWING SECTION DEALS WITH LIBRARIAN ENTRANTS
3J3J ...NWORK
3JH8 ... JBS XOFILE,2,BFABEXO
3K2S ... JBC MULT,2,BFABLIB [J IF FILE
3L9W LDX 0 A1+7(2)
3LPG STO 0 ESER(3) [MAG TAPE SERIAL NUMBER
3M96 STOZ EINF1(3) [THIS INF NOT NECESSARY FOR MAG TAPES
3MNQ BS 3,BELIB
3PM= LDCT 0 #405
3Q6W STO 0 ETM(3) [MAGTAPE TYPE
3QBN ...XINSERTNAME
3QLG INSERT
3R66 MHUNTW 3,FILE,FWB
3RKQ NAME 3,FILE,ENT [RENAME BLOCK
3RM^ ...#UNS ILOGACC
3RQ8 ...(
3RSC ... JBC NOTEXO,3,BEEXO [J IF NOT SECURE EXOFILE ENTRANT
3RWL ... LOGACCESS 8 [LOG SECUREX COMMAND
3RYT ...NOTEXO
3S34 ...)
3S5B SETNCORE ETRAP,3,FILE,FAPB
3SK2 ... BRN SETUPTRAPS
3T4L ...[
3^F= NFS
3^YW ... JBC NOTZEROREEL,2,BFABWORK
43CQ SMO FX1
43XB LDN 5 WORK [PUT 'WORKTAPE' IN LOCAL NAME &
44C2 LDN 6 ELOC1(3) [ZEROIZE GEN AND REEL
44WL MOVE 5 5
45B= STOZ ELAN(3) [ZEROIZE LANG
45TW LDN 5 A1(2)
46*G LDN 6 EWKNAME1(3) [STORE LOCAL NAME IN DIRENT
46T6 MOVE 5 3
47#Q LDX 5 A1+4(2) [STORE LEVEL IN DIRENT, WHICH IS
47SB STO 5 EWKLEVEL(3) [CURRENTLY IN GEN WORD OF FLOCNB
48#2 BRN WKE
48RL WORK 12HWORK TAPE
49?= 0,0
49QW ...[
4==G ...NONFILEND
4*8= CALL 5 TRAPS [TO DEAL WITH TRAPS ADJUNCT(S)
4*MW TESTMODE 7,NOFENT,,LEAVE
4B7G MFREEW FILE,ENT
4BM6 NOFENT
4C6Q CLOSETOP [CLOSE DIRECTORY
4CLB SETREP2 OK
4D62 VFREEW FILE,CREATE
4DKL UPPLUS 1
4DMT ...[
4DQ4 ...XOFILE
4DS? ... LDCT 0 #406
4DWG ... STO 0 ETM(3) [TYPE+MODE FOR EXOFILE
4DYP ... BS 3,BEEXO
4F2Y ... BRN XINSERTNAME
4F5= [
4FJW NOBS
4G4G TOPFCB 2
4GJ6 #SKI K6MAKEFILE>100-100
4H3Q TRACE BACK2(2),WAITCREA
4HHB LDX 4 FME1(2) [REMEMBER USERNAME OF DIR
4J32 LDX 3 FME2(2)
4JGL LDX 6 FME3(2)
4KFW CLOSETOP
4KHK ...#UNSET ANOTALLOC [DO NOT ALLOCATE ENHANCEMENT
4KK# ...(
4KM3 ... MHUNTW 2,FILE,FWB
4KNQ ... JMBAC NOSYS,2,BEONLINE,BEREVERE
4KQF ... WHATBACK 2,5,,,VSF [GET BS MANDATORILY
4KS8 ... BRN NOBS2
4KTX ...NOSYS
4KXL ...)
4K^G WHATBACK 2,5 [GET BS MANDATORILY
4L9# ...NOBS2
4L*9 ... MFREEW FILE,FWB
4LF6 TESTMODE 7,NRPW,NOT,REPWAIT
4LYQ SETREP2 DIRCLOSE
4MDB UPPLUS 1
4MY2 NRPW
4NCL SETNCORE 4,1,FILE,FABSNB
4NX= LDN 0 4
4PBW STO 0 A1(1)
4PWG STO 4 A1+1(1)
4QB6 STO 3 A1+2(1)
4QTQ STO 6 A1+3(1)
4R*B OPEN XBR,GENERAL,QUERY
4RT2 TESTRPN2 OK,NOD
4S#L MFREE FILE,FABSNB
4SS= ACROSS OPENREL,5
4T?W NOD
4TRG SETREP2 NAME
4W?6 UPPLUS 1
4WQQ NOMULT
4WS^ ... HUNTW 2,FILE,CREATE
4WX8 ... BNG 2 YDEFAULT
4W^C ... JMBS YDEFAULT,3,BESERIAL,BEMT [J IF NOT DA
4X3L ... LDEX 5 CEINF3(2)
4X5T ... BRN TER
4X84 ...YDEFAULT
4X=B LDN 5 8
4XQ2 LDX 0 EUSE1(3)
4Y9L ... BZE 0 TER1
4YP= LDN 5 1
4YR8 ...TER1
4YT6 ...#UNSET ANOTALLOC [DO NOT ALLOCATE ENHANCEMENT
4YX4 ...(
4Y^2 ... JMBAC TER,3,BEONLINE,BEREVERE
4^2Y ... WHATBACK 2,5,NOBS,,VSF [GET BS OPTIONALLY
4^4W ... BRN MULT
4^6S ...)
4^8W TER
4^NG WHATBACK 2,5,NOBS
5286 MULT HUNT 2,BSTB,FULLB
52MQ BNG 2 NOMULT [LOOP BACK IF WHATBACK NOT YET DONE
537B [NOW SET UP A FILE CONTROL BLOCK AND FREE THE BSTB/FULLB.
53M2 [
546L [NOTE THAT IF,WHEN ALLOCATING THE BLOCKS TO A FILE, WE RECORD THESE
54L= [BLOCKS IN DIRENT AT CREATE TIME,THIS CAN CAUSE TROUBLE FOR OFFLINE
555W [MT & SERIAL FILES. THUS THE BLOCKS ARE RECORDED IN FCB FOR THOSE
55KG [TWO CASES. THE BLOCK INFORMATION IN DIRENT IS UPDATED BY CLOSE
5656 [
56JQ MHUNTW 3,FILE,FWB
574B JMBAC NSER,3,BESERIAL,BEMT[*DA & REVERED HAVE BLOCKS RECORD
57J2 JBS NSER,3,BEREVERE [SET UP NON-EMPTY
583L LDN 5 2
58H= STO 5 A1(2) [SET SER OR MT MARKER IN FULLB
592W NSER
59GG LDX 5 A1(2) [CALCULATE NUMBER OF BLOCKS TO PUT
5=26 SBN 5 2 [IN DIRENT. N.B. IF SERIAL OR MT
5=FQ SRC 5 9 [THEN NO BLOCKS IN DIRENT.
5=PJ ... ORN 5 1 [ONE COPY
5=^B ORS 5 ECOPS(3) [STORE NUMBER OF BLOCKS.
5?F2 LDX 5 ALOGLEN(2) [NO. OF BLOCKS+2.
5?YL LDX 1 EDATE
5#D= LDX 2 CLEANCT
5#XW STO 1 EDLA(3)
5*CG STO 2 ETLA(3)
5HQL INSERT [INSERT NAME RECORD
5J== ADN 5 BSPRE-1-A1 [LENGTH OF FCB-2
5K9G SETUPCOR 5,2,FILE,FCB,,1
5M82 STOZ FBLMOD(2) [ZEROISE DIRENT
5MML LDN 5 FBLMOD(2) [
5N7= LDN 6 FBLMOD+1(2) [
5NLW MOVE 5 BSPRE-FBLMOD-1 [
5P6G LDX 0 ALOGLEN(2) [INITIALIZE WORD INDICATING NUMBER
5PL6 STO 0 FUSEBL(2) [OF BLOCKS ALLOCATED TO FILE
5Q5Q MHUNTW 1,FILE,FWB
5QKB NAME 1,FILE,ENT
5QQJ ... LDX 6 EUSE1(1) [DIR OR FILE
5QXQ ... GETFCBN 2,6 [GET FCB UNIQUE NO
5R52 LDEX 0 EINF3(1)
5RJL STO 0 FSIZE(2) [PUT IN FSIZE
5S4= LDX 0 ETM(1)
5SHW STO 0 FETM(2)
5T3G LDX 0 EENDBUCK(1) [STORE DIRECT ACCESS ENDBUCK PTR
5TH6 STO 0 FENDBUCK(2)
5W2Q LDX 0 EVERSION(1)
5WGB STO 0 FVERSION(2)
5X22 JBC NIN1,1,BEINDEX
5XFL LDEX 0 EINDEX(1) [IF INDEXED TRANSFER INDEX NO. TO FCB
5X^= DEX 0 FINFC(2)
5YDW NIN1
5YYG [SET UP THE BLOCKS PART OF FCB AND APPEND THE BLOCKS RECORD
5^D6 MHUNTW 1,BSTB,FULLB
5^XQ LDN 6 BSPRE(2)
62CB LDX 3 ALOGLEN(1) [GET READY TO COPY THE BLOCK NUMBERS
62X2 LDN 5 A1+1(1)
63BL MOVE 5 511(3) [MOVE THE WORDS EXCEPT THE FIRST
63W= LDX 0 A1(1) [RESET LOGICAL LENGTH OF FULLB TO
64*W STO 0 ALOGLEN(1) [GIVE NO BLOCKS RECORD FOR SERIAL &MT
64TG NAME 2,FI,FUTILITY [PRESERVE FCB SO NOT FREED
65*6 [DURING PROPUSER BY ORELEND
65SQ NAME 1,FILE,FWB
66#B INSERT [INSERT BLOCKS RECORD
66B# ...#UNS ILOGACC
66D= ...(
66G8 ... MHUNTW 1,FILE,ENT
66J6 ... JBS NLOG,1,BEMULT
66L4 ... LOGACCESS 3 [LOG FILE CREATION
66N2 ...NLOG
66PY ...)
66S2 MHUNTW 1,FILE,ENT
67?L JBC NIN2,1,BEINDEX
67R= LDN 5 INDEXREC-A1 [SIZE OF EMPTY INDEX RECORD
68=W LDX 6 EINDEX(1) [INDEX NUMBER
68QG SETUPCOR 5,2,FILE,FWB [FOR INDEX RECORD
69=6 STO 5 A1(2) [STORE RECORD HEADER
69PQ LDX 0 TEXID(1) [PICK UP INDEX RECORD IDENTIFIER
6=9B STO 0 INDEXID(2) [& STORE IT
6=P2 STO 6 INDEXNO(2) [STORE INDEX NUMBER
6?8L INSERT [INSERT INDEX RECORD
6?N= MHUNT 1,FI,FUTILITY
6#7W CHAIN 1,FX2 [CHAIN FCB NEXT TO FX2
6#MG MHUNTW 1,FILE,FWB [RETAIN INDEX RECORD FOR LATER USE
6*76 NAME 1,FI,FUTILITY [IN THE FILE CHAIN
6*LQ NIN2
6B6B ... MHUNTW 3,FILE,FWB
6CK= NAME 3,FILE,FAPB
6D4W LDN 5 5
6DJG ALTLEN 3,5 [LENGTHEN BLOCK
6DJP ...SETUPTRAPS
6DJY ... LDN 5 5
6DLJ ... HUNTW 1,FILE,ADJUNCTS
6DM= ... BNG 1 NOADJ
6DMY ... JBS NJBB,1,BAOWNACC
6DNL ...NOADJ
6DP4 ... MHUNTW 1,FILE,ENT
6DPG ... JBS NJBB,1,BEMULT
6DQ2 ... LDX 0 JOBNO(2)
6DQN ... BNZ 0 YJBB [J IF JOB NO IS NON-ZERO.
6DRB ... TOPFCB2 3 [IF MASTER IS TOP FILE OPEN,WE CANNOT
6DSC ... [SET A TRAP AS FILE WE ARE TRYING TO
6DTD ... [CREATE IS LEXICON AND THUS PROPUSER
6DWS ... BXU 3 BFILE,NJBB
6DXG ... MFREE FILE,FAPB [WONT WORK. (NEEDS TO OPEN LEXICON).
6DY8 ... BRN NTGU [THIS CAN ONLY OCCUR IF A RESTORE IS
6DYW ... [DONE FROM AN INCREMENT NOT CONTAININ
6D^J ... [LEXICON AND BACKMAP HAS TO CREATE IT
6F2= ... [IT NEEDS NO TRAPS RECORD ANYWAY.
6F2Y ...YJBB
6F46 BRUSEN NOJB [J IF NO JOB-BLOCK.
6FHQ FCJOB 2,,,CPA
6G3B ADN 2 JUSER [X2 POINTS TO USERNAME
6GH2 BRN MVUN
6GL6 ...NJBB
6GP= ... PROPTEST
6GSB ... TESTREP2 OK,YSUD
6GXG ... BRN TSUD
6H2L NOJB
6HG= PROPUSER [TEST IF PSUEDO & GET PROPER USER
6H^W TESTREP2 OK,NSUDO
6J9N ...TSUD
6JFG TESTRPN2 PSEUDO,XBR
6JP# ...YSUD
6J^6 LDN 2 ACOMMUNE1(2) [-> USERNAME
6KDQ BRN MVUN
6KYB NSUDO
6LD2 LDN 2 CPREFIX(2)
6LXL MVUN
6MC= MHUNTW 3,FILE,FAPB
6MWW STO 5 A1(3) [SET RECORD HEADER
6NBG ADN 3 A1+1 [SET MOVE TO POINTER
6NW6 MOVE 2 3 [MOVE USERNAME TO TRAPS RECORD
6P*Q SBN 3 A1+1 [RESTORE POINTER
6PTB MHUNTW 1,FILE,ENT
6Q*2 LDX 0 EUSE1(1) [TEST FOR A DIRECTORY
6QSL BZE 0 NTDIR [J IF NOT
6R#= LDN 0 CREAD [READ TRAP ONLY
6RRW BRN TRAP
6S?G NTDIR
6SR6 LDN 0 CALL
6T2Y ...TRAP
6T=Q STO 0 A1+4(3) [SET TRAP
6TQB ...#UNS ILOGACC
6W=2 ... BS 3,EDEFTRAP [INDICATE DEFAULT TRAP
6X#X ... SEGENTRY K93MAKEFILE [TGU AND TSU RESTORE TIME MACROS.
6XDJ ... BRN NTGU
6XJ9 ... LDN 3 0
6XMW ...NEXTRAP
6XPN ... LDX 1 FX1
6XRH ... SMO 3
6XX8 ... LDX 0 AUSERTRAP(1) [HAS AN ENTRY BEEN SET IN TABLE
6Y2T ... BZE 0 NTGU [BY TGU. J IF NOT.
6Y6G ... SETUPCORE 5,2,FILE,FTRAP
6Y=7 ... ADN 1 AUSERTRAP(3) [SET UP A TRAP BLOCK AND
6Y*S ... STO 5 A1(2) [MOVE IN DETAILS OF USERNAME
6YFF ... ADN 2 A1+1 [AND REQUIRED TRAP.
6YK6 ... MOVE 1 4
6YKP ...#UNS ILOGACC
6YL# ...(
6YLX ... SBN 2 A1+1
6YMG ... BS 2,EDEFTRAP [INDICATE DEFAULT TRAP
6YN5 ...)
6YNR ... ADN 3 4 [SET X3->NEXT ENTRY IN TABLE.
6YSD ... BCT 6 NEXTRAP
6YY5 ... SEGENTRY K94MAKEFILE
6^3Q ...NTGU
6^54 ... MHUNT 3,FILE,FLOCNB
6^6B ... JMBS NONFILEND,3,BFABLIB,BFABEXO
6^7Q HUNT 3,FI,FUTILITY
6^MB NAME 3,FILE,FCB
7272 LDN 0 #77
72LL ANDX 0 FINFC(3)
736= BZE 0 NOFIN [J IF FILE NOT INDEXED.
73KW HUNT 2,FI,FUTILITY
745G NAME 2,FI,FINDEXF [RELOCATE THE FINDEXF
74K6 NOFIN
74P3 ... CALL 5 TRAPS
74SY ... MHUNTW 1,FILE,ENT
74YT ... MHUNT 3,FILE,FCB
754Q LDN 5 ELOC1(1)
75JB LDN 6 FLOC1(3) [X6 -> NICHE FOR SAME
7642 MOVE 5 3
76HL ... TOPFCB 2 [DIRS FCB
773= LDN 5 FME1(2) [MOVE USER IN
77GW LDN 6 FUSER1(3)
782G MOVE 5 3 [SUPUSER NICHE IN FCB
78G6 LDX 0 EUSE1(1)
78^Q LDN 5 EUSE1(1)
79FB BNZ 0 XHDIR [J IF DIRECTORY
79^2 HUNT 2,FILE,FLOCNB
7=DL LDN 5 A1+3(2)
7=Y= XHDIR
7?CW LDN 6 FME1(3)
7?XG MOVE 5 3
7#C6 [NAME & BLOCKS IN FCB, NOW SET THE OTHER WORDS.
7#WQ NGS 3 CMOD(3) [MODIFIER INITIALLY NEGATIVE. 1
7*BB JMBS SERIAL,1,BESERIAL,BEMT
7*W2 LDX 0 FUSEBL(3) [IF RANDOM SET FBLMOD = FULL FCB
7B*L BRN SETHEADER
7BT= SERIAL
7C#W LDN 0 FBLKS-A1 [IF SERIAL SET FBLMOD=EMPTY FCB
7CSG SETHEADER
7D#6 STO 0 FBLMOD(3)
7DRQ LDN 0 1
7F?B STO 0 FWAITCOUNT(3) [NOTE WE ARE WAITING FOR IT
7FR2 STOZ CTOPEN(3) [NOT OPEN
7F^= ... MBS 3,BFALTB,BFALTR
7G7G ... JBC NOTUWB,1,BEUWB
7G*Q ... BS 3,BFUWB
7GJ2 ...NOTUWB
7GQ= LDX 5 EUSE1(1)
7H9W BZE 5 XHCOM [J IF NOT DIRECTORY
7HPG BS 3,BFDIR
7J96 XHCOM
7K8B TESTMODE 7,NOTD,NOT,DESTRUCT
7KN2 MBS 3,BFCORE,BFDCF
7L7L NOTD
7LM= JBC NOTS,1,BESERIAL
7M6W BS 3,BFSER
7MLG NOTS
7N66 JBC NOTM,1,BEMT
7NKQ BS 3,BFMT
7P5B NOTM
7PK2 JBC NREV,1,BEREVERE
7Q4L BS 3,BFREV
7QJ= NREV
7R3W LDX 0 EUSE1(1)
7RHG BNZ 0 YPUB [J IF DIR AS THIS PUBLIC FILE
7S36 LDX 0 EALLOC(1)
7SGQ ANDN 0 #77
7SP2 ... SBN 0 1
7SX= ... BZE 0 YPUB [J IF 'ALLOCATE PUBLIC' FILE
7T5G ... SBN 0 47
7T?Q ... BPZ 0 YPUB [J IF ALLOCATED TO SPECIAL RESIDENCE
7TG2 JBS YPUB,1,BEONLINE
7T^L ... BS 3,BFCUBS [SET 'NON-PUBLIC' BIT IN FCB
7WF= YPUB
84SB ... TRANSFCB 3,ACT,FILE
85#2 MHUNTW 1,FI,FINDEXF
85RL BNG 1 NFXF [IF THERE IS AN FINDEXF CHAIN IT IN
86?= CHAIN 1,BFILE+1 [FILE CHAIN AFTER FCB
86QW NFXF
87Q6 ... LDX 5 BACK1(3) [SET X5 AND X6
889Q LDX 6 BACK2(3) [TO THE FCB HOME PAIR
88PB #SKI K6MAKEFILE>100-100
8992 TRACE FLOC1(3),RELSTY10
89NL LONGON #10,FLOC1(3) [FREE WTRS FOR FILE TO BE CREATED
8=8= VFREEW FILE,CREATE
8=MW NCB2
8?7G ACROSS ORELMAIN,4
8?M6 TRAPS
8#6Q SBX 5 FX1
8#LB HUNTW 1,FI,FINDEXF
8*62 BNG 1 NIN3 [RECORD
8*KL BACKSPACE
8B5= NIN3
8BJW BACKSPACE
8C4G ... TOPFCB 3
8F32 ... BXE 3 BFILE,NTRADD
8HF6 TRAPADD
8HYQ ...NTRADD
8JDB BACKSPACE [BACKSPACE TO HAVING READ NAME RECORD
8JY2 ADX 5 FX1
8KCL EXIT 5 0
8KX= [
8LBW XBR GEOERR 1,MAKEFILE
8LWG MENDAREA GAPOPEN,K99MAKEFILE
8MB6 #END
^^^^ ...32433405000800000000