USERONE867

(George Source)

Macros used: ACROSS, ADDMODE, ANSOK2, BBS, BBUS, BXE, BXL, BXU, CHAIN, CHEKPRIV, DOWN, FINDNAME, FNORM, FREEBAX, GEOERR, GETDIRWORK, HUNT, HUNTW, JBC, JBS, KEEPREP, KREPC, LONGSET, LONGSTOP, MENDAREA, MFREE, MFREEBAX, MFREEW, MHUNT, MHUNTW, NAMETOP, OPENCREX, PICKREP2, PREP2, PTREP2, PUTREP2, SECUREX, SEG, SEGENTRY, SETBIT, SETMODE, TESTMODE, TESTREP, TESTREP2, TESTRPN2, TRACE, UPPLUS, VFREE, VFREEBAX, VFREEW, WHATBACK

USERONE867.txt
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