{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: USERONE867)}}
====== USERONE867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ADDMODE|ADDMODE]], [[george:macro:ANSOK2|ANSOK2]], [[george:macro:BBS|BBS]], [[george:macro:BBUS|BBUS]], [[george:macro:BXE|BXE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CHEKPRIV|CHEKPRIV]], [[george:macro:DOWN|DOWN]], [[george:macro:FINDNAME|FINDNAME]], [[george:macro:FNORM|FNORM]], [[george:macro:FREEBAX|FREEBAX]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETDIRWORK|GETDIRWORK]], [[george:macro:HUNT|HUNT]], [[george:macro:HUNTW|HUNTW]], [[george:macro:JBC|JBC]], [[george:macro:JBS|JBS]], [[george:macro:KEEPREP|KEEPREP]], [[george:macro:KREPC|KREPC]], [[george:macro:LONGSET|LONGSET]], [[george:macro:LONGSTOP|LONGSTOP]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MFREEBAX|MFREEBAX]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:OPENCREX|OPENCREX]], [[george:macro:PICKREP2|PICKREP2]], [[george:macro:PREP2|PREP2]], [[george:macro:PTREP2|PTREP2]], [[george:macro:PUTREP2|PUTREP2]], [[george:macro:SECUREX|SECUREX]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETBIT|SETBIT]], [[george:macro:SETMODE|SETMODE]], [[george:macro:TESTMODE|TESTMODE]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TRACE|TRACE]], [[george:macro:UPPLUS|UPPLUS]], [[george:macro:VFREE|VFREE]], [[george:macro:VFREEBAX|VFREEBAX]], [[george:macro:VFREEW|VFREEW]], [[george:macro:WHATBACK|WHATBACK]]
22FL ... SEG USERONE,850,MIKE PUTNAM,USEROPES
22^= [
2394 ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983
23DW [
23YG SEGENTRY K1USERONE,ZENTRY
24D6 SEGENTRY K10USERONE,TWOMODES
24XQ SEGENTRY K2USERONE,WAITING
25CB [
25X2 [
26BL [ USERONE IS THE FIRST PART OF THE OLD USEROPEN6 SEGMENT
26W= [ AND OLD USERCREA SEGMENT
27*W [ SEE PRM & GIM FOR ITS PURPOSE
27TG [
28*6 [
28G# ...MASTER 4H****
28MG ...MHASH 4H####
28SQ WABS +FILE+FABSNB
29#B WNAME +FILE+FNAME
29S2 MAPP +AAPPEND
2=?L MDDIR +ADIROPEN
2=R= XALLFILE +AFILE+AMULT+AMULTEL+AMDF
2?=W XMULTEL +AFILE+AMULT+AMDF
2?QG XMULTMODE +AFILE+AMULTEL+AMDF
2#=6 MASK1 #57777777
2#PQ [ GDR IS E-MODE FOR USEROPEN; GDESTR IS A-MODE FOR OPENREL
2*9B MGDR +AGDESTR
2*P2 PRIV 8HDESTCOMM
2B8L UPM +AQUERY+AREPWAIT [XTRA MODES ADDED FOR OPENCREX
2BN= NOPM #02007752 [MODES (IF PRESENT) PASSED TO OPENCRE
2C7W MDOL +ADIROPEN+ALEAVE [XTRA MODES FOR OPENCREX IF MULTEL
2C8? ...[
2CMG [
2D76 [ USEROPEN/USEROPEX MACROS ENTER USERONE
2DLQ [
2F6B [ K10USERONE IF TWO MODE WORDS GIVEN
2FL2 [
2G5L [ K1USERONE IF ONLY ONE MODE WORD
2GK= [
2H4W [ USE OF WORK SPACE
2HJG [
2J46 [ AWORK1 SECOND MODE WORD E-MODES
2JHQ [ AWORK2 CONTAINS ANQDIR USED AT OKDIR & K3USEROPEN
2K3B [ B0 SET-MEANS A MULTIFILE HAS BEEN EMPTIED-USED
2KH2 [ IN USERSTRM & USERONE
2L2L [ AWORK3 SWITCHES -B1 SET-CREATE PRESERVED AS APROC-BUG 5399
2LG= [ B2 SET - [CETM] (FORMERLY #462..., #463...)
2L^W [ = 0 TO PREVENT TYPE MODE CHECKS AGAIN IN USERTYPE
2MFG [ -FOR B0,15-23 SEE USERDIR/USERLIB
2M^6 [ AWORK4 FIRST MODE WORD A-MODES
2NDQ [
2NYB
2PD2 TWOMODES
2PXL LDX 0 ACOMMUNE2(2)
2QC= #SKI K6USERONE>99-99
2QWW TRACE 0,2NDUSERM
2RBG STO 0 AWORK1(2)
2RW6 BRN MERG1
2S*Q [
2STB [
2T*2 ZENTRY
2TSL STOZ AWORK1(2) [NO 2ND MODE WORD
2W#= MERG1
2WRW LDX 5 ACOMMUNE1(2)
2X?G #SKI K6USERONE>99-99
2XR6 TRACE 5,USERONE
2Y=Q STO 5 AWORK4(2) [KEEP MODE
2YQB STOZ AWORK2(2) [STORING SUBSIDIARY REPLY
2^=2 STOZ AWORK3(2) [USED IN USERLIB,WHICH CAN RE-ENTER
2^PL [USEROPEN,AND IN USEROPEN(BIT 1)
329= #SKI K6USERONE>199-199
32NW (
338G TESTMODE 5,SEEK,NOT,MDF,MULT [J IF NOT MDF AND NOT MULT
33N6 TESTMODE 5,XMDFMULT,NOT,MULT [J IF NOT MULT
347Q TESTMODE 5,SEEK,NOT,MDF [J IF NOT MDF
34MB GEOERR 1,MDFMULT [BOTH MDF AND MULT MODES ILLEGAL
3572 XMDFMULT
35LL TESTMODE 5,XRAND,,CREATE,EMPTY,ERASE
366= [ CANT HAVE THESE MODES WITH MDF MODE
36KW )
375G [
37K6 [ FIRST,GET NAME,CHECK,AND PUT INTO A SUITABLE FORM
384Q [
38JB [ THE NAME IS IN EITHER A FILE/FNAME OR A FILE/FABSNB
3942 [
39HL SEEK
3=3= LDX 2 FPTR(2) [LOOK AT NEXT BLOCK
3=GW LDX 0 ATYPE(2)
3?2G #SKI K6USERONE>199-199
3?G6 (
3?^Q BXL 0 CACT,XT1
3#FB GEOERR 1,NONAME
3#^2 XT1
3*DL )
3*Y= SRL 0 12
3BCW BXE 0 WNAME(1),UFNOR [NAME GIVEN IN FNAME BLOCK
3BXG BXU 0 WABS(1),SEEK
3CC6 [
3CWQ [ NAME IN FABSNB
3DBB [
3DW2 #SKI K6USERONE>99-99
3F*L (
3FT= SMO A1(2)
3G#W LDX 0 A1-6(2) [GET LOCAL NAME
3GSG LDX 4 A1(2)
3H#6 SBN 4 6
3HRQ BPZ 4 TRACENAME [IF NO LOCAL NAME
3J?B LDX 0 A1+1(2) [GET ONLY NAME
3JR2 TRACENAME
3K=L TRACE 0,USERFABS
3KQ= )
3R66 TESTMODE 5,UCT1,,MULTEL [IGNORE ADJUNCTS IF MULTELEM
3RKQ HUNTW 3,FILE,ADJUNCTS [IF GIVEN IN FABSB THERE MAY BE ADJUN
3S5B BPZ 3 UADJ
3SK2 BRN NCOMP
3T4L [ NAME GIVEN IN FILE/FNAME BLOCK,SO FNORM NOT DONE
3TJ= [
3W3W UFNOR
3WHG CHAIN 2,FX2 [PUT FNAME NEXT TO ACT.BLOCK
3Y2B #SKI K6USERONE>99-99
3YG2 (
3Y^L [ FNAME SHOULDNT OCCUR WITH STREAMCOMP MODE
3^F= TESTMODE 5,XSC,NOT,MULTEL [FNAME WRONG IF MULTEL MODE GIVEN
3^YW GEOERR 1,NOTNORM
42DG XSC
42Y6 )
43XB FNORM 3
44C2 MHUNT 2,FILE,FNAME [RENAME TO CUNI FOR ERROR REPORTING
44WL NAMETOP 2,CPB,CUNI
45B= TESTREP NAMEFORM,RNOK
45TW MHUNT 2,FILE,FABSNB
46*G #SKI K6USERONE>99-99
46T6 (
47#Q SMO A1(2)
47SB LDX 0 A1-6(2) [GET LOCAL NAME
48#2 LDX 4 A1(2)
48RL SBN 4 6
49?= BPZ 4 TRACENAME1 [IF NO LOCAL NAME
49QW LDX 0 A1+1(2) [GET ONLY NAME
4==G TRACENAME1
4=Q6 TRACE 0,USERFNAM
4?9Q )
4?PB [
4#92 [ NOW LOOK AT SOME OF THE MODES AND CHECK COMPATIBILITY
4#NL [
4*8= TESTREPN ADJUNCTS,NCOMPFAB
4*MW MHUNTW 3,FILE,ADJUNCTS
4B7G [
4BM6 [ ADJUNCTS BLOCK PRESENT (X3).X2 POINTS FABSNB
4C6Q [
4CLB UADJ
4D62 SETMODE 4,NOWAIT,REPLY [IF CERTAIN QUALIFIERS SPECIFIED
4DKL ANDX 4 A1+1(3) [ADD SUITABLE MODES.
4F5= #SKI K6USERONE>99-99
4FJW (
4G4G BZE 4 NOADMOD
4GJ6 TRACE 4,USERADJ
4H3Q NOADMOD
4HHB )
4J32 ORX 5 4 [ENSURE THAT,IF NOWAIT OR REPLY MODE
4JGL [ GIVEN AS COMMAND QUALIFIERS,THEY ARE SET IN X5.
4K2= LDN 0 #7000 [IF READING IGNORE APPEND
4KFW ANDX 0 5 [& SELF QUALIFIERS
4K^G SBN 0 #3000
4LF6 BNG 0 NOMULT
4LYQ LDN 0 #7000
4MDB ANDX 0 A1+1(3) [MAIN MODE IN X0
4MY2 BXU 0 MAPP(1),NOAP [ZPPEND QUALIFIER NOT GIVEN
4NCL [
4NX= [ IF THE COMMAND HASNT GIVEN EMPTY MODE,THEN USER CANT SAY APPEND
4PBW ...[ DITTO IF COMMAND WANTS A NONSERIAL FILE
4PWG TESTMODE 5,XRAND,NOT,EMPTY
4Q3N ... HUNT 1,FILE,CREATE
4Q8W ... BNG 1 OKAP
4QB4 ... JBC XRAND,1,CESERIAL
4QH= ...OKAP
4QND ... LDX 1 FX1
4QR5 ... SETMODE 0,EMPTY
4QTQ ERX 5 0 [TAKE EMPTY MODE OUT OF X5
4R*B [
4RT2 [ OFFSET MODE INSERTED IF APPEND QUAL.SO THAT APPEND TRAP IS CHECKED
4S#L [ DONE COS COPY WORKS IN RANDOM MODE AND WOULD OTHERWISE CHECK FOR
4SS= [ WRITE TRAP
4T?W [
4TRG ADDMODE 5,OFFSET [MUST ONLY CHECK APPEND TRAP
4W?6 NOAP
4WQQ SETMODE 4,SELF [SELF MODE MEANS MULT QUALIFIER
4X=B ANDX 4 A1+1(3)
4XQ2 BZE 4 NOMULT [J IF NO SELF MODE IN ADJUNCTS
4Y9L [ THE USER SAYS THIS IS A MULTIFILE
4YP= [ ERROR IF MULT QUALIFIER GIVEN AND NOT MULT SUBMODE GIVEN TO USERO
52MQ TESTMODE 5,XMULT,NOT,STREAMS [ERROR IF SELF AND NOT STREAMS MODES
537B TESTMODE 5,XMULTI,,COMMUNE,DESTRUCT
53M2 [COMMUNE ILLEGAL WITH MULTIS
546L BBS 16,ATYPE(2),XTEMMULT [WFILE CANT HAVE MULT QUALIFIER
54L= SMO A1(2)
555W LDX 0 A1-6+4(2) [LOOK AT GENERATION NO.IN FABSNB
55#6 ... BZE 0 NOGEN [NO GEN = O.K.
55GB ... SBN 0 1 [PERMIT GEN = 1 (REF TO MULT AS WHOLE
55NL ... BNZ 0 XGENMULT [ELSE MUST NOT SPECIFY GEN WITH MULT
55WW ...NOGEN
5656 LDN 0 1
56JQ SMO A1(2)
574B STO 0 A1-6+4(2) [SET GEN. = 1 TO GET MDF
57J2 [
583L [ SET MODE MULT AND TAKE OUT MODES FILE,MULTEL,MDF (IF ANY)=>
58H= [ OPEN ONLY IF IT IS A MULT
592W [
5#XW ADDMODE 5,MULT
5*X6 BRN NOTWORK
5BBQ NOMULT
5BWB TESTMODE 5,NCOMPFAB,NOT,DESTRUCT [GO NCOMPFAB IF NOT DCF MODE
5CB2 BBS 14,5,NOTRAND [J IF NOT READR,WRITE,OVERLAY MODES
5CTL GEOERR 1,RANDDCF [CANT USE DCF RANDOMLY
5D*= NOTRAND
5DSW BBS 16,ATYPE(2),XDESTWF [CANT USE WORKFILES FOR DEST.COMM.
5F#G [ CHECK WHETHER USER HAS DESTCOMM PRIVILEGE
5FS6 CHEKPRIV ,PRIV,NODESTP
5G?Q BRN NCOMP
5GRB [
5H?2 [ DO THIS BIT ONLY IF MULTEL MODE
5HQL [
5J== UCT1
5JPW [MAIN MODE IN X5
5K9G DOWN COMPOST,1 [SET UP FABSNB FOR NEXT ELEMENT
5KP6 BRN RCNOK [NON-OK REPLY => MDF CLOSED
5M82 NCOMP
5MML MHUNT 2,FILE,FABSNB
5N7= NCOMPFAB [X2 STILL POINTS TO FABSNB
5NLW BBUS 16,ATYPE(2),NOTWORK
5P6G SMO FX1
5PL6 ORX 5 MDDIR
5Q5Q NOTWORK
5QKB SMO FX2
5R52 STO 5 AWORK4 [REMEMBER MODE-MAY HAVE BEEN AUGMNTD
5RJL [ OR CHANGED WITH NOWAIT,REPLY,OFFSET,MULTEL,MULT,DIROPEN,UNTRAP,ETC
5S4= BBS 23,ATYPE(2),NWF [J IF NON-FILESTORE ENTRANT
5SHW BBUS 16,ATYPE(2),NWF [J IF NOT A WORKFILE
5T3G [
5TH6 [ USEROPEN ON A WORKFILE
5W2Q [
5WGB #SKI K6USERONE>199-199
5X22 TRACE ATYPE(2),USERWF!
64TG TESTMODE 5,XMULTEM,,MULT [J IF WF WHERE MULTI REQD
65*6 SMO FX2
65SQ LDX 4 AWORK1 [GET 2ND MODE WORD
66#B BZE 4 NOMODE
66S2 TESTMODE 4,XRAND,,GDR [WF CANT HAVE GDR
67?L NOMODE
67R= [ GETDIRWORK REQUIRES FABSNB-N.B.NO FLOCNB SET UP
68=W GETDIRWORK
68QG BRN UFILEX
69=6 [
69PQ [ NOT A WORKFILE-HAVE A CLOSER LOOK AT THE ENTRANT DESCRIPTION
6=9B [
6=P2 NWF
6?8L [ CANT HAVE GDR IF MULTIFILE MODES ARE THE ONLY MODES GIVEN
6CK= TESTMODE 5,NOTSET,NOT,MULTEL,MULT
6D4W SMO FX2
6DJG LDX 4 AWORK1 [GET 2ND MODE WORD
6F46 BZE 4 NOTSET
6FHQ TESTMODE 4,XRAND,,GDR [MULT CANT HAVE GDR
6G3B NOTSET
6GH2 LDN 4 4 [4 WORDS POSSIBLE FOR LISTDIR
6H2L BXU 4 A1(2),PT
6HG= FINDNAME [EXPAND FABSNB [F 4 WDS TO OPEN DIREC
6H^W TESTRPN2 OK,RNOK1
6JFG MHUNT 2,FILE,FABSNB
6J^6 #SKI K6USERONE>199-199
6KDQ (
6KYB BXU 4 A1(2),PT
6LD2 GEOERR 1,MASTER [SHOULD BE DETECTED BY FNORM
6LXL )
6MC= PT
6MWW #SKI K6USERONE>199-199
6NBG TRACE ATYPE(2),USERENT
6NW6 LDX 4 ATYPE(2) [X4 = 0 UNLESS DESCRIPTION
6P*Q ANDN 4 #4100
6PTB SMO A1(2)
6Q*2 LDX 0 A1-6(2) [IF LAST NAME IN FABSNB DOESNT START
6QSL BXU 0 HCOLUSER,PTA [WITH COLON,GO TO'PTA'
6R#= LDN 4 1 [SET X4 TO DENOTE FILE NAME
6RRW [ IF X4 IS NON-ZERO THEN IT IS A FILE (POSSIBLY?)
6S?G PTA
6SR6 BZE 0 TP [NO FILENAME SO MAG TAPE
6T=Q LDN 0 #2400 [PRIVATE FILE INDICATORS
6TQB ANDX 0 ATYPE(2)
6W=2 BNZ 0 TP [J IF RET.PERIOD,TSN,OR REEL.NO.
6WPL BNZ 4 TF [ FILE INDICATED
6X9= [ WE STILL DONT KNOW WHAT SORT OF ENTRANT IT IS.
6XNW ... JBS SECUREX,2,BFABEXO [J IF SECUREX ENTRANT
6Y8G ... JBS PRIVATE,2,BFABLIB [J IF TAPE ENTRANT
6YN6 ... JBC UFILE,2,BFABANY [J IF TERM FILE
7272 [
72LL [ EITHER TYPE OF ENTRANT IS ACCEPTABLE
736= [
73KW [
745G [ USERDIR-UP IS FOR BREAK-IN
74K6 [ UP+1 MOST ERROR REPLIES INCLUDING NOFILEVON DIRECTORY
754Q [ UP+2 OK- FABSNB UPDATED UNLESS NO LOCAL NAME GIVEN
75JB [ TAB SET IN DIRECTORY BEFORE COPIES RECORD,AND
7642 [ DIR POSITIONED ON TRAPS
76HL [ EXCEPT MT,WHEN GETDITR 4 SETS TABS,AND GLIST BLK MADE
773= [ BUT IF OK IN CREATE MODE FOR MT,DIR NOT OPEN,
77GW [ NOR IF NOFILE WITHOUT CREATE MODE
782G [
78G6 GEOERR 1,NONENTY
78^Q [
79FB [
79^2 [
7T2B TP [CHECK PRIVATE FILE WANTED
7TG2 BNZ 4 XENT [FILENAME ZERO,OR RET/TSN,BUT B12,16,
7T^L [ 17 ATYPE SET.BOTH FILE AND PRIVATE!
7WF= LDX 0 ATYPE(2)
7WMG ... ANDN 0 #73
7WTQ ... [X0=TYPE EXCEPT THAT THE SECUREX BIT
7X42 ... [IS REMOVED SO THAT WE TREAT THEM
7X== ... [AS TERMINAL FILES HERE
7XDG BZE 0 XENT [B18-23 ZERO-FILE INDICATED
7XY6 NGN 0 3
7YCQ ANDS 0 ATYPE(2) [TAKE OUT UNKNOWN BIT
7YXB SETBIT 23,ATYPE(2) [ENTRANT IS PRIVATE
7^C2 BRN PRIVATE
7^WL TF [CHECK FILE WANTED
82B= BBS 23,ATYPE(2),XENT [J IF PRIVATE
82TW NGN 0 3
83*G ANDS 0 ATYPE(2) [TAKE OUT UNKNOWN BIT
83CP ... JBC UFILE,2,BFABEXO [J IF NOT SECUREX WANTED
83FY ...SECUREX
83J7 ... LDX 0 HCOLUSER
83LB ... SMO A1(2)
83NK ... BXE 0 A1-6(2),XENT
83QS ... BRN USERDIR
83T6
84#Q [ HAVE NOEW DECIDED IT IS A FILESTORE ENTRANT
84SB [ PUT 'FILE' MODE IN IF NONE OF MULT,FILE,MULTEL,MDF GIVEN
85#2 [ CHECK THAT GEN ZERO NOT BEING REQUESTED
85RL UFILE
8?M6 LDCT 0 #100
8#6Q SMO A1(2)
8#LB ANDX 0 A1-6+4(2)
8*62 BNZ 0 XGEN [ZERO GEN NO ILLEGAL FOR FILE
8*KL HUNTW 3,BSTB,FULLB
8B5= [
8BJW [ GET BS IF LIKELIMOOD OF A FILE BEING CREATED OR EMPTIED BEFORE
8C4G [ DIRECTORY IS OPENED,WHEN ACTIVITY WILL BE BS PRIVILEGED
8CJ6 [
8D3Q TESTMODE 5,NOBSREQ,,DIR [DONT NEED BS IF DIR MODE
8DHB TESTMODE 5,NOBSREQ,NOT,CREATE,EMPTY [NOR UNLESS CREATE/EMPTY
8KCL TESTMODE 5,PRODBSMULT,,MULTEL [J TO GET BS FOR MULTELEM
8KX= BRN USERDIR
8LBW [
8LWG [ IF NO BS REQD,FREE ANY SUPPLIED
8MB6 NOBSREQ
8MTQ BNG 3 USERDIR
8N*B MFREEBAX
8NT2 BRN USERDIR
8P#L [
8PS= [ GET BS FOR MULTIFILE
8Q?W [
8QRG PRODBSMULT
8R?6 SEGENTRY K50USERONE [TINYMULT MACRO
8RQQ LDN 4 FILESIZE [GET MAX NO. OF BLOX
8S=B BNG 3 NEEDBS [IF NO BS GIVEN,GET SOME
8SQ2 LDX 0 A1(3)
8T9L SBX 0 4
8TP= SBN 0 2
8W8W BPZ 0 USERDIR [IF ENUF GIVEN, GO TO USERDIR
8WNG MFREEBAX [ELSE FREE WHAT WAS GIVEN
8X86 [
8XMQ [ AND GET SOME MORE
8Y7B [
8YM2 NEEDBS
8^6L WHATBACK 7,4
8^L= USERDIR
925W DOWN USERDIR,1
92KG BRN XBR [BREAK-IN
9356 BRN UDREP [MOST ERROR REPLIES
93JQ [
944B ...[ OK REPLY,OR NOFILE WITH CREATE MODE
94J2 [
953L UFILEX
95H= TESTREP2 NOFILE,UREP2
95KF ... TESTMODE 5,NOWACR,NOT,CREATE
95MN ... MHUNT 3,FILE,FABSNB [IF ITS A SECUREX ENTRANT ALREADY
95PX ... JBC NOWACR,3,BFABEXO [EXISTING AND CREATE WAS SPECIFIED
95S6 ... KEEPREP 6,ALREADY [WE ERROR
95W* ... BRN RE4
95YJ ...NOWACR
962W #SKI K6USERONE>199-199
96GG (
9726 TESTREP OK,XT2
97FQ GEOERR 1,USERREP
97^B XT2
98F2 )
98YL ACROSS USEROPEN,1
99D= UREP2
99XW MHUNT 2,FILE,FABSNB
9=CG BBS 16,ATYPE(2),RNOF [J IF WORKFILE
9=X6 TESTMODE 5,RNOF,NOT,CREATE,COMMUNE
9?BQ [
9?WB [ SECTION TO CREATE FILE OR FOR COMMUNE WAITING
9#B2 [
9#TL #SKI K6USERONE>99-99
9**= TRACE 5,USERFILC
9*SW TESTMODE 5,UREP3,,CREATE [J TO CREATE FILE
9B#G MHUNT 1,FILE,FLOCNB
9BS6 #SKI K6USERONE>99-99
9C?Q TRACE A1(1),USECOMWT
9CRB LONGSET #10,SETALR,A1(1) [SET WS FOR CREATION OF COMM FILE
9D?2 LONGSTOP XBR
9DQL [ AND TRY AGAIN
9F== [
9FPW [
9G9G WAITING [ENTRY WAITING FOR FILE
9GP6 LDX 5 AWORK4(2)
9H8Q VFREEW FILE,ENT
9HNB MFREE FILE,FLOCNB
9J82 MHUNT 2,FILE,FABSNB
9JML #SKI K6USERONE>99-99
9K7= TRACE 5,USERTWO
9KLW BRN PT [TRY AGAIN
9L6G [
9LL6 [ SECTION FOR CREATING A NEW FILE
9M5Q [
9MKB UREP3
9N52 MHUNTW 3,FILE,CREATE
9NJL BNG 3 XCREA [J IF NO CREATE BLOCK
9P4= LDX 0 CETM(3) [GET TYPE/MODE
9PHW SRL 0 15
9Q3G SBN 0 #462
9QH6 BZE 0 STOZ [J IF *FR
9R2Q SBN 0 1
9R7Y ... BZE 0 STOZ [J IF *FW
9R*6 ... SBN 0 1
9RGB ... BNZ 0 XCREA [J IF NOT *FH
9S22 STOZ
9SFL STOZ CETM(3) [ZEROIZE TO REVERT TO AMORPHOUS
9S^= LDCT 0 #100
9TDW SMO FX2
9TYG ORS 0 AWORK3
9WD6 [ SET BIT TO INDICATE [CETM] = 0 FORMERLY #462..., #463...
9WXQ ...XCREA
9XCB [
9XX2 [ BUG 410 - CANT APPEND TO A MULTIFILE BELONGING TO ANOTHER USER
9YBL [ EVEN IF APPEND TRAP OPEN. SO SKIP OWNERCHECK FOR MULTELEM
9YW= [
=2*6 SETMODE 4,MULTEL
=2SQ ANDX 4 5
=3#B BNZ 4 NOWNCHEK [J IF MULTELEM
==76 [
==LQ [ BUG 519 - CANT OVERWRITE A MULTIFILE BELONGING TO ANOTHER USER
=?6B [ EVEN IF WRITE TRAP OPEN. SO SKIP OWNERCHECK FOR MDF IF B0 OF
=?L2 [ AWORK2 SET => MULTIFILE WAS EMPTIED IN USERSTRM
=#5L [
=#K= NOTMULTEL
=*4W SMO FX2
=*JG LDX 0 AWORK2
=B46 BNG 0 XMDFCHECK [-VE => CREATE BY OVERWRITING
=BHQ OWNERCHECK
=C3B TESTRPN2 OK,RE
=CH2 XMDFCHECK
=CJY ... TESTMODE 5,YUNTRAP,,UNTRAP [ALTHOUGH WE LET PEOPLE
=CLW ... MHUNT 3,FILE,FABSNB [REFER TO **** AND #### FILES THEY
=CNS ... SMO A1(3) [MAY NOT CREATE THEM.
=CQQ ... LDX 0 A1-1(3)
=CSN ... BXE 0 MASTER(1),XILLANG [THE ONLY EXCEPTION IS JOBWELL
=CWL ... BXE 0 MHASH(1),XILLANG [WHICH USES UNTRAP MODE
=CYJ ...YUNTRAP
=DG= TESTMODE 5,MULTCRE,,MULT [J IF CREATING MULT
=JWW LDN 4 0 [MARK:NOT MULTELEM
=KBG NOWNCHEK
=KW6 [ ALLOW USERCLEAN,MAIN MODE,CREATE,COMMUNE,REPLY,NOWAIT,LEAVE,DESTRU
=L*Q ANDX 5 NOPM(1)
=LTB [ ENSURE OTHERS
=M*2 ORX 5 UPM(1)
=MSL BZE 4 NSC
=N#= [ ENSURE EVEN MORE FOR MULTEL
=NRW ORX 5 MDOL(1)
=P?G NSC
=PR6 SMO FX2
=Q=Q LDX 3 AWORK1 [GET 2ND MODE WORD
=QQB BZE 3 NGDRX
=R=2 TESTMODE 3,NGDRX,NOT,GDR [IF GDR GIVEN TO USEROPEN
=RPL ADDMODE 5,GDESTR [GIVE OPENCREX GDESTR
=S9= NGDRX
=SNW #SKI K6USERONE>199-199
=T8G TRACE 5,USERCREX
=TN6 OPENCREX XBR,5
=W7Q TESTREP2 OK,OKREX,DIRCLOSE,WAITING
=WMB [ IF DIRCLOSE GIVEN FILE HAS NOT BEEN CREATED -- TRY AGAIN
=X72 BRN RE
=XLL OKREX
=Y6= KREPC 7,NEWFILE
=YKW ORS 7 AWORK2(2) [SET SUBREP NEWFILE
=^5G [ [X4] = ZERO UNLESS MULTELEM
=^7D ... MHUNT 3,FILE,FABSNB
=^9B ... LDN 0 #4
=^?# ... ANDX 0 ATYPE(3) [IF ITS A SECUREX JUST GO STRAIGHT UP
=^*= ... BZE 0 NSECUREX
=^C8 ... ANSOK2
=^DF ... LDN 3 1 ['UPPLUS 1' EXIT
=^FQ ... BRN UPRETURN
=^H4 ...NSECUREX
=^K6 ACROSS USEROPEN,3
?24Q MULTCRE
?2JB ACROSS USERSTRM,2 [TO SET UP MDF
?342 SETALR
?3HL GEOERR 1,SETWICE [WT FIELD ALREADY SET
?43= RMODE
?4GW GEOERR 1,RONGMODE
?52G [
?5G6 [
?5^Q PRIVATE
?=BB VFREEBAX [DONT NEED BS FOR MAG TAPE
?=W2 ACROSS USERLIB,1
??*L
??T= [
?##W [ ERROR SECTION
?#SG [
?*#6
?*RQ RCNOK
?B?B #SKI K6USERONE>199-199
?BR2 (
?C=L TESTREP2 ENDMULT,UPNF,MULTFULL,UPNF
?CQ= GEOERR 1,USERREP
?D9W )
?DPG RNOK
?F96 #SKI K6USERONE>199-199
?FNQ (
?G8B TESTREP NAMEFORM,UPNF
?GN2 GEOERR 1,USERREP
?H7L )
?HM= RNOK1
?J6W #SKI K6USERONE>199-199
?JLG (
?K66 TESTREP2 NOUSER,UPNF
?KKQ GEOERR 1,USERREP
?L5B )
?LK2 UPNF
?M4L LDX 2 FX2
?MJ= HUNTW 3,BSTB,FULLB
?N3W BNG 3 NOFULL
?NHG PICKREP2 6
?P36 PREP2 7
?PGQ FREEBAX
?Q2B MFREEW BSTB,EMPTYB
?QG2 PUTREP2 6
?Q^L PTREP2 7
?RF= NOFULL
?RYW VFREEW FILE,FTRAP
?SDG NGNC 7 1
?SY6 ANDX 7 AWORK2(2) [TAKE OUT B0--USED ELSEWHERE
?TCQ #SKI K6USERONE>99-99
?TXB (
?WC2 PICKREP2 4
?WWL TRACE 4,USERREP
?XB= TRACE 7,SUBREP
?XTW )
?Y*G PTREP2 7
?YMX ... LDN 3 1 ['UPPLUS 1' EXIT
?^2# ... BRN UPRETURN
?^#Q
?^SB
#2#2 [ BREAK-IN EXIT SECTION
#2RL [
#3?= XBR
#3QW VFREEBAX [FREE ANY SPARE BS
#4=G VFREEW FILE,CREATE
#4Q6 VFREEW FILE,FTRAP
#59Q VFREEW FILE,ENT
#5PB VFREE FILE,FLOCNB
#5R# ...[ CORRECTION FOR BREAK-IN WITH MULTIFILES
#5T= ... TESTMODE 5,XUPP,NOT,MULTEL [ J IF NOT MULT. ELEMENT
#5X8 ... MHUNT 3,FILE,FABSNB
#5^6 ... LDN 7 1
#634 ... SMO A1(3) [ SUBTRACT 1 FROM GEN. NO.
#652 ... SBS 7 A1-2(3) [ BEOS BRK-IN
#66Y ...XUPP
#6#S ... LDN 3 0 ['UP' EXIT
#6GN ... BRN UPRETURN
#6NL UDREP
#78= TESTREP NOFILE,UDREP1 [REPLACE NOFILE BY NAME
#7MW [ BECAUSE DIR SUPERIOR TO REQUIRED FILE DOES NOT EXIST
#87G #SKI K6USERONE>199-199
#8M6 (
#96Q LDX 2 FX2
#9LB TESTMODE AWORK4(2),RE,,REPLY
#=62 TESTREPN CANT,RE
#=KL GEOERR 1,USERCANT
#?5= )
#?JW
##4G
##J6 RE
#*3Q ACROSS REPERR,2
#*4F ...#
#*58 ...# ROUTINE TO EXIT,BEARING IN MIND SHARED FILESTORE ENHANCEMENT
#*5X ...# X3=0 => UP, X3=1 => UPPLUS 1
#*6L ...UPRETURN
#*G6 ... UPPLUS 0(3) ['UP' OR 'UPPLUS 1' EXIT
#*HB
#B32 [ ERROR CONDITIONS WITH NO ERROR REPLY SET YET
#BGL [
#C2= RNOF
#CFW TESTMODE 5,XTERM,,DIRONLY
#C^G KEEPREP 6,NOFILE
#DF6 BRN RE4
#DYQ XTERM
#FDB KEEPREP 6,TERM
#FY2 BRN RE4
#GCL VRY
#GX= KEEPREP 6,VRYWRONG
#HBW BRN RE4
#HWG XENT
#JB6 KEEPREP 6,ENTTYPE
#JTQ BRN RE4
#K*B XGEN
#KT2 KEEPREP 6,WRGEN
#L#L BRN RE4
#LS= XRAND
#M?W KEEPREP 6,WRONG
#MRG BRN RE4
#N?6 UDREP1
#NQQ KEEPREP 6,NAME
#P=B BRN RE4
#PQ2 XMULT
#Q9L KEEPREP 6,NOMULTS
#QP= BRN RE4
#R8W XMULTEM
#RNG KEEPREP 6,TEMPMULT
#S86 BRN RE4
#SMQ NODESTP
#T7B KEEPREP 6,DESTPRIV
#TM2 BRN RE4
#W6L XDESTWF
#WL= KEEPREP 6,DESTWF
#WQ7 ... BRN RE4
#WW4 ...XILLANG
#W^^ ... KEEPREP 6,ILLANG
#X5W RE4
#XKG VFREEW FILE,ENT
#Y56 ACROSS REPERR,4
#YJQ
#^4B [ ERROR CONDITIONS GIVING NAMEFORM REPLY WITH SUBSIDIARY COMMENT
#^J2 [
*23L XGENMULT
*2H= LDN 7 1
*32W BRN RE3
*3GG XMULTI
*426 LDN 7 2
*4FQ BRN RE3
*4^B XTEMMULT
*5F2 LDN 7 3
*5YL RE3
*6D= ACROSS REPERR,3
*6XW [
*7CG [
*7X6 ... MENDAREA 60,K99USERONE
*8WB #END
^^^^ ...20532707000100000000