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