12 22FL ... SEG USEROPEN,860,FILESTORE 4 22_= [ 15 2394 ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983 4 23DW [ 11 23YG SEGENTRY K1USEROPEN,ZENTRY 12 24D6 SEGENTRY K3USEROPEN,NEWFILE 4 24XQ [ 4 25CB [ 4 25X2 [ 16 26W= # USEROPEN OPENS FILESTORE ENTRANTS FOR COMMANDS 21 27*W [ IT CHECKS FILESTORE SECURITY (I.E. USER TRAPS, CREATING FILE IN RI 9 27TG [ DIRECTORY ETC.) 21 28*6 [ IT CHECKS THAT THE FILE IS OF THE KIND REQUIRED - PERIPHERAL TYPE/ 21 28SQ [ SERIAL OR RANDOM, FILE OR NON-FILE(MAG TAPE, EDS, ON-LINE DIRECT A 19 29#B [ K55, K54, K53 USED BY READIR MEND MACRO (VIDE MACROS HFD) 6 29S2 [ ETC. 6 2=?L [ ETC. 6 2=R= [ ETC. 2 2?=W 18 2?QG [ THIS SEGMENT HAS THE SECURE JOBWELL ENHANCEMENT WHICH 13 2#=6 [ CATERS FOR THE NEW 'SAVE' MODE. 21 2#PQ # THIS TABLE IS USED FOR PICKING THE TRAP TO CHECK APPROPRIATE TO TH 8 2*9B # OPENING MODE 17 2*P2 MODE [FOR CHECKING TRAPS 9 2B8L +CEXECUTE 9 2BN= +CREAD 9 2C7W +CREAD 9 2CMG +CAPPEND 10 2D76 +CWRITE+CREAD 10 2DLQ +CWRITE+CREAD 9 2F6B #SKI K6USEROPEN>99-99 20 2FL2 0 [#6000 IS NOT DEFINED AS A MODE 9 2G5L #SKI K6USEROPEN>99-99 17 2GK= +0 [CLEAN MODE NOT ALLOWED 7 2H4W NDIR 1,1,4HC1 20 2HJG UPM +AREPWAIT+AQUERY [XTRA MODES NEEDED FOR OPENREL 4 2J46 [ 4 2JHQ [ 21 2K3B [ KEEP MODES-USERCLEAN,CREATE,COMMUNE,REPLY,NOWAIT,DESTRUCT,EMPTY, 13 2KH2 [ LEAVE,AND MAIN MODES 4 2L2L [ 4 2LG= [ 21 2L_W [ REMOVE TERMDIR,STREAMS,UNTRAP,DIRONLY,SERONLY,NOERREP,STREAMCO 17 2MFG [ STREAMONLY,ERASE,FREEZE,OFFSET,SELF,DIR 4 2M_6 [ 4 2NDQ [ 21 2NYB NOPM [MASK TO REMOVE USEROPEN MODES NOT TO 17 2PD2 [BE GIVEN TO OPENREL 7 2PXL #02007756 7 2QC= MDDIR +ADIROPEN 21 2QWW MDOL +ADIROPEN+ALEAVE [EXTRA OPENREL MODES FOR STREAMCOMP 15 2RBG [ FREEZING 19 2RW6 [ GDR IS E-MODE FOR USEROPEN; GDESTR IS A-MODE FOR OPENREL 9 2S*Q MGDR +AGDESTR 9 2STB MASK1 #57777777 9 2T58 ...XASTER 4H**** 6 2T76 ...#UNS FTS2 4 2T94 ...#SKI 4 2T?2 ...( 5 2T*2 TABLE 10 2TSL SEGENTRY K55USEROPEN 10 2W#= 12HMANAGER 10 2WRW SEGENTRY K53USEROPEN 5 2X?G #GAP 45 4 2XH# ...) 2 2XR6 4 2Y=Q [ 11 2YQB [ USEROPEN/USEROPEX MACRO 4 2_=2 [ 13 2_PL [ K1USEROPEN IS ENTRY FROM USERONE 4 329= [ 9 32NW [ USE OF WORK SPACE 4 338G [ 13 33N6 [ AWORK1 SECOND MODE WORD E-MODES 18 347Q [ AWORK2 CONTAINS ANQDIR USED AT OKDIR & K3USEROPEN 18 34MB [ B0 SET MEANS A MULTIFILE HAS BEEN EMPTIED - 13 3572 [ IN USERCREA & USERSTRM 20 35LL [ AWORK3 SWITCHES -B1 SET-CREATE PRESERVED AS APROC-BUG 5399 20 35WD ...[ BIT 3 - DIRCLOSE REPLY FROM OPENREL (FOR LOGACCESS) 17 362* ...[ BITS 4-8 TRAPS TO BE CHECKED (LOGACCESS) 17 366= [ -FOR B0,15-23 SEE USERDIR/USERLIB 13 36KW [ AWORK4 FIRST MODE WORD A-MODES 4 375G [ 2 37K6 19 384Q [ FILE FOUND, FILE/ENT BLOCK LEFT & DIRECTORY IS TOP FILE 21 38JB [ OPEN. TAB 0 SET (IN USERDIR) AT THE BEGINNING OF THE NAME RECORD 21 3942 [ TABULATION PTR AT TAB 0 AND READ PTRS AT BEGINNING OF (AFTER HAVIN 12 39HL [ READ) THE LAST BLOCKS RECORD. 13 3=3= [ NO TAB STACK SET UP IF WORKFILE 2 3=GW 5 3?2G ZENTRY 10 3?G6 MHUNTW 3,FILE,ENT 18 3?_Q JBC NOTSYS,3,BECARE [J IF NOT IMPORTANT FILE 16 3##7 TESTMODE 5,XRAND,,FREEZE [CANT FREEZE SVFRZ 17 3#LJ TESTMODE AWORK1(2),XRAND,,SAVEFREEZE [IMP. FILES 5 3#_2 NOTSYS 15 3DBB JBC NOTEST,3,BEMDF [J IF NOT MDF 15 3DW2 TESTMODE 5,XMULT,NOT,STREAMS,STREAMONLY 4 3FT= [ 20 3G#W [ IF 'FILE' SUBMODE GIVEN USERONE CANNOT TRAP GDR WITH MULTIFILE 17 3GSG [ (ELEMENT). SO NEED TO CHECK AFTER ENT IS GIVEN 4 3H#6 [ 8 3HRQ SMO FX2 17 3J?B LDX 4 AWORK1 [GET 2ND MODE WORD 9 3JR2 BZE 4 NOTEST 18 3K=L TESTMODE 4,XRAND,,GDR [MDF/MULTEL CANT HAVE GDR 5 3KQ= NOTEST 16 3L9W JBC NINDEX,3,BEINDEX [J IF NOT INDEXED 19 3LFN ... TESTMODE 5,XRAND,,EMPTY [CANT OVERWRITE INDEXED FILES 20 3LPG ... TESTMAIN 5,YGENR,,GENERAL [DONT ALLOW CREATE EITHER EXCEPT 21 3L_# ... [BY FILEHANDLER WHICH USES GENERAL 11 3M96 ... TESTMODE 5,XRAND,,CREATE 5 3MDY ...YGENR 9 3MNQ LDX 0 EUSE1(3) 9 3N8B BNZ 0 XINDIR 11 3NN2 TESTMODE 5,XRAND,,ERASE 13 3P7L [ IF INDEXED & TERMINAL, CANT ERASE 21 3P=9 ... TESTMODE 5,TERM,,UNTRAP,DIRONLY[FILES WITH LANG **** ARE TREATED 21 3P#S ... LDX 0 ELAN(3) [DIRECTORIES FOR NON-SYSTEM OPENERS 20 3PCC ... BXE 0 XASTER(1),XINDIR [WITH THE ADDED RESTRICTION THAT 21 3PG2 ... [THEY CANNOT BE ERASED OR USED WHEN 21 3PJK ... [DIRONLY SUBMODE IS GIVEN (E.G. LD) 16 3PM= BRN TERM [J IF NOT ERASE 5 3Q6W NINDEX 9 3QLG LDX 0 EUSE1(3) 18 3R66 BNZ 0 XINDIR [J IF NOT TERMINAL FILE 17 3R8P ... TESTMODE 5,NMT,NOT,EMPTY [J IF NOT EMPTY MODE 21 3R?# ... JBS XTERMIN,3,BETEMP [MAY NOT OVERWRITE TEMP FILES (CAN 20 3R*X ... [ALLOW USERS TO CHEAT B O LOGANAL 18 3RDG ... [BY OVERWRITING MONFILES) 4 3RH5 ...NMT 19 3RKQ TESTMODE 5,TERM,NOT,DIRONLY [J IF NOT DIRONLY MODE ALSO 14 3S5B BRN XTERMIN [ERROR 5 3SK2 XINDIR 6 3SNX ...#UNS FTS2 4 3SSS ...#SKI 4 3SYP ...( 8 3T4L LDN 0 #7000 7 3TJ= ANDX 0 5 15 3W3W BZE 0 MODI [J IF EXECUTE 8 3WHG SBN 0 #3000 15 3X36 BPZ 0 MODI [J IF WRITE 12 3XGQ [ MANAGER CAN READ ALL DIRECTORIES 8 3Y2B [EXCFPT IF FREEZING 11 3Y#R TESTMODE 5,XDIR,,FREEZE 14 3YM8 TESTMODE AWORK1(2),XDIR,,SAVEFREEZE 6 3Y_L #SKI ANOUSER 17 3_F= BRUSEN NOJOB [J IF NO JOB BLOCK 18 3_YW FJOCA 2,FX2 [X2 POINTS TO JOB BLOCK 7 42DG #SKI ANOUSER<1$1 4 42Y6 ( 10 43CQ LDX 0 ALOGLEN(2) 9 43XB SBN 0 ASTJOB 18 44C2 BNZ 0 TUSER [PROPER USER IN JOBLOCK 4 44WL ) 6 45B= #SKI ANOUSER 8 45TW BRN TUSER 5 46*G NOJOB 15 46T6 [ FIDDLE X2 TO POINT TO USER NAME IN CPAT 8 47#Q LDX 2 FX2 21 47SB ADN 2 CPREFIX-JUSER [OTHERWISE PROPER USER IS CURRENT USE 5 48#2 TUSER 20 48RL [IF THE PROPER/CURRENT USER IS SAME AS THE ETRAP TESTED, MARK ATYPE 10 49?= HUNTW 3,FILE,FTRAP 9 49QW BNG 3 NOFTRAP 15 4==G TESTNAMX 3,ETRUSER1(3),JUSER(2),NOFTRAP 7 4=Q6 LDN 0 1 13 4?9Q ADS 0 ATYPE(3) [MARK 5 4?PB NOFTRAP 10 4#92 SEGENTRY K54USEROPEN 19 4#NL [ JOB UNDER :MANAGER-GIVE HIM MODE WHICH DOESN'T CHECK TRAPS 13 4*8= LDN 4 K53USEROPEN-K55USEROPEN/3 6 4*MW TESTAGAIN 13 4B7G TESTNAMX 3,TABLE(1),JUSER(2),TSTNM 9 4BM6 SETMODE 0,UNTRAP 20 4C6Q ORX 5 0 [DON'T CHECK TRAPS FOR MANAGER 8 4CLB BRN OKDIR 5 4D62 TSTNM 16 4DKL ADN 1 3 [GET NEXT NAME 9 4F5= BCT 4 TESTAGAIN 18 4FJW MODI [CHECK THAT MODES ALLOW DIRECTORY TO BE OPENED 20 4G4G TESTMODE 5,XDIR,NOT,DIRONLY,TERMDIR [DIRECTORY NOT A-LOWED 17 4GJ6 OKDIR [OK TO OPEN DIRECTORY 8 4H3Q KREPC 7,DIR 8 4HHB LDX 2 FX2 9 4J32 ORS 7 AWORK2(2) 4 4J45 ...) 6 4J58 ...#UNS FTS2 4 4J6? ...( 17 4J7B ... TESTMODE 5,OKDIR,,ERASE [ERASE ALLOWED ON DIRS 21 4J8F ... DOWN USEREXCP,3 [OTHERWISE ESTABLISH WHYS AND WHEREFOR 21 4J9J ... [ELSEWHERE. RETURNS UPPLUS 1 IF OK 8 4J=M ... BRN XDIR 19 4J?Q ... LDX 5 ACOMMUNE1(2) [RESTORE (POSSIBLY AUGMENTED) 15 4J#T ... [MODE WORD 5 4J*Y ...OKDIR 8 4JC3 ... KREPC 7,DIR 10 4JD6 ... ORS 7 AWORK2(2) 4 4JF9 ...) 4 4JGL TERM 4 4K2= [ 19 4KFW [ TEMP.CODE FOR MK 6.5-THIS SHD ALL CHANGE FOR MK7 -BUG 7335 4 4K_G [ 10 4LF6 MHUNTW 3,FILE,ENT 17 4LYQ JBC NOTAWK,3,BEWORK [J IF NOT A WORKFILE 19 4MDB TESTMODE 5,NOTAWK,NOT,CREATE [J IF CREATE MODE NOT GIVEN 21 4MY2 JBC NOTAWK,3,BEVIRGINDA [J IF WORKFILE HAS BEEN WRITTEN TO 10 4NCL CALL 6 TYPECHANGE 7 4NX= USERCRWF 17 4PBW ... BRN TC [AVOID OTHER CHECKS 8 4PWG BRN RALR 5 4QB6 NOTAWK 8 4QTQ LDN 4 #1000 21 4R*B ANDX 4 5 [X4 NON ZERO IF READ,APP,GEN,CLEAN 20 4RT2 [MAIN MODE.IE SERIAL FILE ACCESS 12 4S#L TESTMODE 5,UF1,,CREATE,EMPTY 21 4SS= CALL 6 USERTYPE [CHECK PERIPHERAL TYPE.X3=FILE/ENT ON 14 4T?W [ RETURN 18 4TRG BZE 4 TC [J IF NOT SERIAL ACCESS 16 4W?6 JBS TC,3,BESERIAL [J IF SERIAL FILE 18 4WQQ TESTMODE 5,TC,,ERASE [RANDOM FILE OK FOR ERASE 8 4X=B BRN XRAND 4 4XQ2 UF1 18 4Y9L ... JMBAC XDIRECT,3,BESERIAL,BEMT [J IF DA FILE EXISTS 21 4YP= ... BNZ 4 ORGTM [MODE IMPLIES REQUIRED FILE IS SERIAL 10 5286 HUNTW 2,FILE,CREATE 19 52MQ BNG 2 RALR [J IF NO FILE/CREATE BLOCK 19 537B ... JMBS ORGTM,2,CESERIAL,CEMT [J TO CHECK ORG OR TM DATA 5 555W XDIRECT 11 5656 TESTMODE 5,RALR,NOT,EMPTY 9 56JQ CALL 6 USERTYPE 9 56R# ... BRN ORGCHECK 5 56_W ...ORGTM 19 578G ... TESTMODE 5,TMCHECK,NOT,EMPTY [J IF FULL T/M CHECK NEEDED 5 579H ...ORGCHECK 20 57=J ... HUNTW 3,FILE,CREATE [OTHERWISE JUST CHECK MT+ SERIAL 21 57#L ... BNG 3 TC [BITS ARE IDENTICAL IN CREATE AND ENT 10 57BN ... MBSXD 6,CEMT,CESERIAL 17 57DQ ... ANDX 6 CEINF1(3) [X6=BITS IN CREATE 10 57GS ... MHUNTW 3,FILE,ENT 11 57JW ... MBSXD 0,BEMT,BESERIAL 15 57LY ... ANDX 0 EINF1(3) [BITS IN ENT 7 57P2 ... ERX 0 6 14 57R4 ... BZE 0 TC [J IF OK 10 57T6 ... KEEPREP 6,PERITYPE 8 57X8 ... BRN RE4 5 57_= ...TMCHECK 10 583L MHUNTW 3,FILE,ENT 18 58H= JBS TC,3,BEVIRGINDA [TYPE/MODE NOT SET UP YET 17 592W CALL 6 USERTYPE [CHECK PTM OF FILE 4 59GG [ 10 5=26 [ TRAP CHECKING SECTION 4 5=FQ [ 4 5=_B TC 10 5?F2 CALL 6 TYPECHANGE 20 5?YL LDN 4 #7000 [CONVERT MAIN MODE TO MODIFIER 18 5#D= ANDX 4 5 [FOR TABLE OF TRAPS 19 5#XW SRL 4 9 [X4 = 0 FOR EXECUTE MODE 8 5*CG LDX 1 FX1 7 5*X6 SMO 4 19 5BBQ LDX 7 MODE(1) [X7 CONTAINS REQUIRED TRAPS 8 5BWB SMO FX2 16 5CB2 LDX 3 AWORK1 [2ND MODE WORD 9 5CTL BZE 3 NEMODE 19 5D*= TESTMODE 3,NEMODE,NOT,GDR [IF GDR SUBMODE GIVEN, TEST 20 5DK4 ... TESTMAIN 5,NEMODE,NOT,READING [J IF NOT READING WITH CDR 17 5DSW LDN 7 CREAD+CWRITE [FOR READ,WRITE TRAPS 8 5F#G BRN MCH 5 5FS6 NEMODE 13 5G?Q TESTMODE 5,MCH,NOT,EMPTY,OFFSET 18 5GRB [ SPECIAL TRAPCHECKING FOR APPEND (OFFSET), EMPTY CASES 10 5H?2 TESTMODE 5,OFS,,OFFSET 20 5HQL LDN 7 CWRITE [TEST WRITE TRAP FOR EMPTY MODE 8 5J== BRN MCH 4 5JPW OFS 20 5K9G LDN 7 CAPPEND [TEST APPEND TRAP FOR OFFSET MODE 4 5KP6 MCH 12 5L8Q TESTMODE 5,NOTERASE,NOT,ERASE 18 5LNB LDN 7 CERASET [CHECK FOR ERASE TRAPS 7 5LQK ...#UNS ILOGACC 4 5LSS ...( 8 5LX3 ... LDCT 0 #20 8 5L_= ... SMO FX2 18 5M3F ... ORS 0 AWORK3 [SAVE TRAP CODE FOR LA 4 5M5N ...) 8 5M82 BRN MCH1 5 5MML NOTERASE 7 5MPJ ...#UNS ILOGACC 4 5MRG ...( 7 5MTD ... LDX 0 7 7 5MXB ... SRC 0 9 8 5M_# ... SMO FX2 18 5N3= ... ORS 0 AWORK3 [SAVE TRAP CODE FOR LA 4 5N58 ...) 17 5N7= [ PRE-MARK8 USED TO NOT CHECK TRAPS FOR MULTELEMENTS 13 5Q5Q TESTMODE 5,MCH1,NOT,UNTRAP,MULTEL 7 5QKB LDN 7 0 4 5R52 MCH1 10 5RJL MHUNT 2,FILE,FABSNB 14 5S4= LDN 6 #200 [BIT 16 18 5SHW ANDX 6 ATYPE(2) [X6=0 UNLESS A WORKFILE 16 5T3G [ IF NOT CREATE CASE, SHOULDNT BE FTRAPS AROUND 9 5TH6 ANDN 5 ACREATE 9 5W2Q BZE 7 NOTADJ 17 5WGB BNZ 6 NTADJ [DONT SET TABS IF WF 16 5XFL BZE 5 NTADJ [NO VALID FTRAPS 19 5YYG TABSET [FOR BACKSPACE BEFORE TRAPADD 21 5_D6 [ TAB 1 POINTS TO BEGINNING OF (I.E., HAVING JUST READ) LAST BLOCKS 18 5_XQ [ RECORD. IF NO BLOCKS RECORD TAB 1 IS SAME AS TAB 2 18 62CB TAB ,1 [TABULATION PTR -> TAB 1 5 6B6B NTADJ 6 6B6T ...#UNS JSKI29 4 6B7# ...( 17 6B7R ...# ************************************************** 14 6B98 ...# CSS SPECIAL - FILE PASSWORD SYSTEM 3 6B=K ... 10 6B#2 ... SEGENTRY K98USEROPEN 9 6B*C ... BRN NOCSSMOD 10 6BBS ... DOWN FILESECU,3 9 6BD9 ... BRN PASSFAIL 5 6BFL ...NOCSSMOD 10 6BH3 ... SEGENTRY K97USEROPEN 19 6BJD ...# _________________________________________________________ 4 6BK9 ...) 7 6BL2 CHECKTRA 9 6C5L #SKI K6USEROPEN>199-199 4 6CK= ( 10 6D4W TRACE 7,USERTRAP 11 6DJG TRACE EXEC1(2),USREXEC1 4 6F46 ) 9 6FHQ LDX 0 EXEC1(2) 7 6G3B ANDS 7 0 7 6GH2 ERX 7 0 17 6H2L ... BNZ 7 NOTR [J IF TRAPS NOT OK 16 6RRW BNZ 6 TRAPSOKWF [J IF A WORKFILE 21 6S?G [ READING/TABULATION PTRS -> TAB 0 IF NO FTRAPS. READ/TABULATION 12 6SR6 [ PTRS -> TAB 1 IF ANY FTRAPS 7 6T=Q ... TABULATE 6 6TQB TRAPSOKWF 21 6W=2 HUNT 1,FILE,FTRAP [NOT HUNTW B23 OF ATYPE MAY BE SET 9 6WPL BNG 1 NOTRADJ 8 6X9= BZE 5 XTRAP 4 6XNW [ 19 6Y8G [ BUG 3100-TG QUALIFIER MAY HAVE NO EFFECT OR TRAPS LOST IF 13 6YN6 [ FILE IS RETRIEVED & WAITED FOR. 10 6_7Q [ SO DUPLICATE FTRAP FOR 18 6_MB [ ACTIVITIES ENTERING K2USERONE & FREE FTRAP AT EXITS 20 7272 [ INEFFICIENT BUT BETTER DESIGN DEPENDS ON GREAT RECONSTRUCTION 20 72LL [ OF USEROPEN. MINIMIZE INEFFICIENCY BY DUPLICATING FTRAP ONLY 20 736= [ IF TRAPS FOUND BY CHECKTRA ABOVE ARE DIFFERENT FROM ETRAPMODES 13 73KW [ EXCEPTION HERE IS 'GROUP' (B0). 19 745G [ UNLESS TABULATION MACROS WORK AT LEVELS>0 THE METHOD OF 20 74K6 [ USING 'DIROPEN' MODE FOR OPENREL & DOING TRAPADD WHEN FILE IS 13 754Q [ OPEN SUCCESSFULLY DOES NOT WORK. 4 75JB [ 16 7642 LDX 0 ATYPE(1) [CHEK IF B23=1 7 76HL SRC 0 1 20 773= BPZ 0 TRAPCOPY [IF NOT SET, J TO DUPLICATE FTRAP 20 77GW SLL 0 1 [IF SET, UNSET IT & COMPARE TRAPS 9 782G STO 0 ATYPE(1) 10 78G6 LDX 0 ETRAPMODES(1) 9 78_Q TXU 0 EXEC1(2) 9 79FB BCC NOTRADJ 19 79_2 [ DONT DO TRAPADD IF TRAP(S) IN FTRAP ALREADY IN ETRAPMODES 5 7=DL TRAPCOPY 10 7=Y= LDX 3 ETRAPRH(1) 11 7?CW SETUPCORE 3,2,FILE,FTRAP 11 7?XG HUNT2 1,FILE,FTRAP,2 10 7#C6 LDN 1 ETRAPRH(1) 10 7#WQ LDN 2 ETRAPRH(2) 8 7*BB MOVE 1 0(3) 10 7*W2 MHUNTW 1,FILE,FTRAP 7 7B38 ...#UNS ILOGACC 18 7B8B ... BS 1,EDEFTRAP [TRAP NOT TO BE LOGGED 18 7B*L NAME 1,FILE,FREQ [TRAPADD FREES ALL FTRAPS 10 7BT= MHUNTW 1,FILE,FTRAP 8 7C#W LDX 2 FX2 5 7CSG NEMPTY 10 7D#6 NAME 1,FILE,FAPB 10 7D*C ... MHUNT 1,FILE,FABSNB 11 7DBN ... BBS 16,ATYPE(1),WFNCH 21 7DD3 ... OWNERCHECK [ CHECK OWNERSHIP WITH TRAP QUALS. 17 7DGL ... TESTREPN OK,XNOTOWN [ J IF NOT THE OWNER 5 7DK9 ...WFNCH 10 7DMT ... MHUNT 1,FILE,FAPB 8 7DRQ CHAIN 1,2 7 7F?B TRAPADD 20 7FR2 HUNT 1,FILE,FREQ [FREQ'S NORMALLY IN OFFLINE CHAIN 9 7G=L BNG 1 NOTRADJ 10 7GQ= NAME 1,FILE,FTRAP 5 7H9W NOTRADJ 9 7HPG BZE 5 NOTADJ 16 7J96 BNZ 6 NOTADJ [J IF A WORKFILE 7 7JNQ TABUNSET 19 7K8B TAB ,-1 [ALL TRACES OF TABSET REMOVED 21 7KN2 MHUNTW 1,FILE,ENT [THE FIRST OF THE TWO TABS(NOW THE 21 7L7L LDEX 3 ECOPS(1) [ONLY ONE LEFT)WAS SET IN USERDIR & 20 7N66 BZE 3 MCOPS1B3681 [REFERS TO A POSITION IMMEDIATELY 21 7NKQ NLOOPDMB123 [AFTER THE NAME RECORD.TRAPADD LEAVES 21 7P5B ... BACKSPACE [THE FILE POSITIONED HAVING JUST READ 20 7PK2 ... BCT 3 NLOOPDMB123 [THE BLOCKS RECORD.UNFORTUNATELY, 20 7Q4L MCOPS1B3681 [HOWEVER, THE ENTRY MAY HAVE BEEN 21 7QJ= TABRESET [REAPPENDED @ THE END OF DIRECTORY 21 7R3W [& DELETED FROM ITS ORIGINAL POSITION 20 7RHG [SO WE HAVE TO RECALCULATE THE 17 7S36 [POSITION WE WANT. 21 7SGQ [EVENTUALLY A MORE EFFICIENT WAY OF 20 7T2B [COPING WITH THIS MUST BE FOUND. 21 7TG2 [THIS CORRECTS B3681(GEOERR'FILEBENT' 5 7T_L NOTADJ 8 7WF= LDX 2 FX2 19 7WYW ERX 5 AWORK4(2) [GET ALL MODES EXCEPT CREATE 10 7XDG MHUNTW 3,FILE,ENT 16 7XY6 BNZ 4 NOTX [J IF NOT EXECUTE 16 7YCQ JBC RAND,3,BESERIAL [J IF RANDOM FILE 9 7YXB ADDMODE 5,READ 4 7_C2 NOTX 16 7_WL BNZ 6 NOTXWF [J IF A WORKFILE 8 82B= LDCT 6 #40 16 82TW ANDX 6 EINF1(3) [REMEMBER IF MDF 21 83*G TABULATE [POSITION AFTER NAME RECORD FOR OPENR 7 83T6 FREETAB 13 84#Q BNZ 6 SORM [MDF 5 84SB NOTXWF 8 85#2 LDX 1 FX1 21 86?= TESTMODE 5,XMULTF,,MULT [MULTI REQD BUT NOT DIR ENT FOR MDF 10 86QW TESTMODE 5,MDIR,,DIR 9 8?M6 SETMODE 4,MULTEL 7 8#6Q ANDX 4 5 20 8*62 ANDX 5 NOPM(1) [REMOVE MODES NOT USED OPENREL 9 8*KL ORX 5 UPM(1) 17 8G2= BZE 4 OPEN [J IF NOT MULTELEM 18 8GFW LDX 0 5 [MAIN MODE IS NOT CHANGED 15 8G_G ANDN 0 #7000 [MAIN MODE 8 8HF6 SBN 0 #3000 16 8HYQ BNG 0 OPEN [J IF A READ MODE 9 8JDB ORX 5 MDOL(1) 4 8JY2 OPEN 10 8KCL MHUNT 2,FILE,FABSNB 8 8KX= LDN 0 #200 9 8LBW ANDX 0 ATYPE(2) 16 8LWG BZE 0 OPEN1 [NOT A WORKFILE 8 8MB6 OPENWORX XBR,5 9 8MTQ TESTRPN2 OK,OREP 8 8N*B BRN OKW 5 8NT2 OPEN1 10 8P#L MHUNTW 3,FILE,ENT 8 8Q?W LDX 2 FX2 16 8QCR ... JBC XCARE,3,BESERIAL [J IF NOT SERIAL 21 8QHN ... TESTMODE AWORK1(2),YCARE,,USERCARE [USE CAREFUL MODE IF USERCARE 19 8QRG TESTMODE AWORK4(2),XCARE,NOT,OFFSET [J IF NOT APPENDING 17 8R?6 TESTMODE AWORK4(2),XCARE,,DESTRUCT [J IF DESTRUCT 15 8RC3 ... TESTMODE AWORK1(2),XCARE,,GDR [J IF GDR 5 8RGY ...YCARE 19 8RQQ ADDMODE 5,CAREFUL [ADD CAREFUL MODE FOR OPENREL 5 8S=B XCARE 17 8SHQ ... TESTMODE AWORK1(2),NGDESTR,NOT,GDR[J IF NOT GDR 9 8ST6 ... ADDMODE 5,GDESTR 5 8T6G ...NGDESTR 7 8T79 ...#UNS ILOGACC 4 8T7Y ...( 11 8T8M ... BBS 3,AWORK3(2),XLOG 13 8T9B ... TESTMODE AWORK4(2),XLOG,,MULTEL 9 8T=D ... LDX 1 AWORK3(2) 7 8T?G ... SLC 1 9 16 8T#J ... ANDN 1 #37 [SET TRAP CODE 16 8T*N ... LOGACCESS 2,1 [LOG IF NECESSARY 4 8TBC ...XLOG 4 8TC6 ...) 14 8TCW ... TRACEIF K6USEROPEN,199,299,5,USERMODE 8 8TP= OPENRELX XBR,5 4 8W8W OPD 9 8WNG TESTREPN OK,OREP 4 8X86 [ 20 8XMQ [ FILE EITHER CREATED (IN USERONE) & LEFT OPEN OR OPENED (ABOVE) 21 8Y7B [ AT LEVEL 0. IF DIROPEN MODE ALSO GIVEN, FILE'S DIR OPEN AT LEVEL 4 8YM2 [ 5 8_6L NEWFILE 14 8_L= [ REDUCES SIZE OF ELEMENT FOR TESTING 8 925W BZE 4 NSC 17 92KG SEGENTRY K50USEROPEN [FOR TINYMULT MACRO 8 9356 BRN NSC 7 93JQ TOPFCB2 2 9 944B STO 4 FSIZE(2) 8 94J2 LDX 2 FX2 4 953L NSC 9 95H= #SKI K6USEROPEN>99-99 4 962W ( 10 96GG HUNT 1,FILE,FLOCNB 11 9726 TRACE A1(1),USEROPEN 4 97FQ ) 4 97_B OKW 15 98F2 LDN 7 0 [NOT BRKIN 18 98YL LOBSFILE [CHARGING FOR ONLINE BS 7 99D= TOPFCB2 1 19 99XW JBS OKBS,1,BFWORK [J IF WKFILE--NO INCRECUBS 19 9=CG INCRECUBS XBS,, [INCREASE CURRENT ONLINE BS 9 9=X6 TESTRPN2 OK,NOKBS 8 9?BQ BRN OKBS 4 9?WB XBS 14 9#B2 LDX 7 GSIGN [BRKIN 5 9#TL NOKBS 7 9**= PICKREP2 6 18 9*SW NOLOBSFILE [UNSET BIT BEFORE CLOSE 11 9B#G TESTMODE 5,ZEMPTY,,EMPTY 13 9BS6 CLOSETOP [FILE 9 9C?Q BRN TESTDIR 5 9CRB ZEMPTY 21 9D?2 CLOSEABANDON [IF EMPTY MODE, GET PREVIOUS ENTRY 5 9DQL TESTDIR 12 9F== TESTMODE 5,XDIROP,NOT,DIROPEN 13 9FPW CLOSETOP [DIR 5 9G9G XDIROP 20 9GP6 [ DONT NEED TO WORRY ABOUT EMPTY CASE WITH MULTIFILES BECAUSE 19 9H8Q [ ELEMENTS ARE ERASED AND FSTREND IS CORRECT -- THE ELEMENTS 15 9HNB [ ARE CREATED IN USERCREA (NO EMPTY MODE). 18 9J82 [ ALSO DONT NEED TO CLOSE MDF SINCE CALLING ROUTINE (OR 20 9JML [ USERSTRM) WILL CLOSE THE MDF IN ERROR CASES (INCLUDES QUOTA) 8 9K7= BNG 7 XBR 8 9KLW BRN RE4 4 9L6G OKBS 2 9LL6 2 9M5Q 17 9MKB NGNC 7 1 [B0 USED ELSEWHERE 16 9N52 ANDX 7 AWORK2(2) [SO TAKE IT OUT 18 9NJL PTREP2 7 [STORE SU BSIDIARY REPLY 9 9P4= TREPN2 RANDOM,V1 9 9PHW SETREP2 RANDOM 4 9Q3G V1 13 9S22 TESTMODE AWORK4(2),V2,NOT,MULTEL 7 9SFL TOPFCA2 1 16 9S_= BS 1,BAMULT [MARK AS MULTELEM 9 9TDW #SKI K6USEROPEN>99-99 10 9TYG TRACE FX2,USERSTRM 4 9WD6 V2 16 9WMY ... LDN 4 1 [ONE FILE OPENED 11 9WXQ TESTMODE 5,UP,NOT,DIROPEN 16 9XCB [ J IF NOT WRITING TO AN ELEMENT OF A MULTIFILE 21 9XX2 [ DIRECTORY IS POSITIONED AFTER NAME RECORD FOR CREATE AND EMPTY, OTHERW 9 9YBL [ AFTER BLOCKS RECORD. 12 9YW= TESTMODE 5,V3,,EMPTY,CREATE 20 9_*W BACKSPACE 1 [POS DIRECTORY AFTER NAME RECORD 18 9_TG V3 DOWN COMPOST,4 [UPDATE MDF, TELL ACTLF 16 =2*6 TESTREP2 LF512,RE [J IF >511 LFS 8 =2SQ BRN MDIR1 2 =3#B 2 =3S2 4 =4?L MDIR 12 =4R= TESTMODE 5,XCOMPOST,,FREEZE 8 =4YX LDX 2 FX2 20 =53P ... LDN 4 1 [ONE FILE OPENED FOR SIMPLE DIR MODE 15 =56J TESTMODE AWORK1(2),MDIR1,NOT,SAVEFREEZE 16 =5#? TESTMULT XMULT [ MULTIFILE ILLEGAL 9 =5*N MHUNT 3,FILE,ENT 19 =5C5 JBC XRANDOM,3,BESERIAL [ J IF NOT SERIAL FILE 9 =5DG LDX 0 ETM(3) 9 =5FX BNZ 0 XCOMPOST 8 =5H# SETREP WRONG 17 =5JP BRN XJOIN [ AMORPHOUS FILE 5 =5L6 XRANDOM 9 =5MH SETREP RANDOM 5 =5N2 XJOIN 18 =5NF CLOSETOP [ CLOSE DIRECTORY 17 =5NN ... LDN 4 0 [NO FILE OPENED 20 =5NY BRN UPPLUS1 [ NON-SERIAL FILE ILLEGAL 5 =5QG XCOMPOST 7 =5T5 ...#UNS ILOGACC 4 =5XN ...( 15 =62? ... LDN 1 CREAD [LOG LISTFILE 8 =64W ... LOGACCESS 2,1 4 =67F ...) 15 =6=6 DOWN COMPOST,3 [SET UP ACTLF 16 =6PQ TESTREP2 LF512,RE [J IF >511 LFS 16 =6_J ... LDN 4 0 [NO FILE OPENED 16 =79B MDIR1 [SIMPLE DIR MODE 6 =7P2 ANSOK2 8 =88L BRN UP 2 =8N= 2 =97W 2 =9MG 5 ==76 USERTYPE 8 ==LQ SBX 6 FX1 10 =CH2 HUNTW 2,FILE,CREATE 8 =D2L BNG 2 US1 10 =DG= DOWN USERTYPE,1 15 =D_W BRN RE [ERROR EXIT 8 =FFG BRN UXIT 4 =F_6 US1 10 =GDQ HUNTW 2,GOUT,INFO 8 =GYB BNG 2 UXIT1 10 =HD2 DOWN USERTYPE,2 8 =HXL BRN RE 4 =JC= UXIT 10 =JWW MHUNTW 3,FILE,ENT 5 =KBG UXIT1 8 =KW6 ADX 6 FX1 7 =L*Q EXIT 6 0 4 =LTB [ 4 =M*2 [ 20 =MSL [ ROUTINE TO ZEROIZE CETM IF *FR OR *FW TO INSURE THAT NEW STUFF 16 =N#= [ CREATED WILL HAVE AMORPHOUS FORMAT. FOR OPEN 4 =NRW [ 6 =P?G TYPECHANGE 10 =PR6 HUNTW 1,FILE,CREATE 17 =Q=Q BNG 1 XHANDLER [J IF NO CREATE BLOCK 9 =QQB LDX 0 CETM(1) 8 =R=2 SRL 0 15 8 =RPL SBN 0 #462 14 =S9= BZE 0 YAMOR [J IF *FR 7 =SNW SBN 0 1 14 =SYN ... BZE 0 YAMOR [J IF *FW 7 =T8G ... SBN 0 1 15 =TD# ... BNZ 0 XHANDLER [J IF NOT *FH 5 =TN6 YAMOR 9 =W7Q STOZ CETM(1) 8 =WMB LDCT 0 #100 8 =X72 SMO FX2 18 =XLL ORS 0 AWORK3 [CETM HAS BEEN ZEROIZED 5 =Y6= XHANDLER 7 =YKW EXIT 6 0 2 =_5G 3 =_K6 ... 4 ?24Q SORM 9 ?2JB #SKI K6USEROPEN>199-199 4 ?342 ( 10 ?3HL MHUNTW 3,FILE,ENT 16 ?43= JBC XC,3,BEMULT [J IF NOT MULTEL 18 ?4GW GEOERR 1,2BITS [BOTH MDF AND MULTELEM 4 ?52G XC 4 ?5G6 ) 4 ?5_Q [ 10 ?6FB [ DONT NEED BS FOR MDF 4 ?6_2 [ 7 ?7DL VFREEBAX 19 ?8XG [ DONT GO ACROSS TO USERSTRM IF MDF SUBMODE GIVEN -> CANT BE 10 ?9C6 [ OPENING MULT, JUST MDF 10 ?9WQ ACROSS USERSTRM,1 2 ?=BB 2 ?=W2 4 ??*L RAND 9 ??T= ADDMODE 5,READR 6 ?##W #SKI IGAM-1 4 ?#SG ( 7 ?*#6 LDCT 0 4 9 ?*RQ ANDX 0 EINF1(3) 18 ?B?B BNZ 0 XMT [EXECUTE ILLEGAL ON MT 4 ?BR2 ) 9 ?C=L KREPC 7,RANDOM 18 ?CQ= ORS 7 AWORK2(2) [INSERT SUBSIDIARY REPLY 8 ?D9W BRN NOTX 2 ?DPG 2 ?F96 2 ?FNQ 2 ?G8B 4 ?GN2 UP 8 ?H7L CALL 6 VFREB 14 ?HM= TESTMODE AWORK4(2),NFRENT,,DIR,LEAVE 18 ?J6W VFREEW FILE,ENT [OPEN MAY HAVE FREED ENT 5 ?JLG NFRENT 10 ?K66 MHUNT 2,FILE,FABSNB 19 ?KKQ BBS 16,ATYPE(2),UPNF [DONT FREE FLOCNB IF WORKFILE 10 ?L5B MFREE FILE,FLOCNB 8 ?LK2 BRN XGET 4 ?M4L UPNF 21 ?MJ= [ GETDIRWORK IN USERONE NOT ACCURATE IF FILE HASNT BEEN WRITTEN TO 21 ?N3W [ SO IF NOT WRITTEN TO YET, DO SECOND GETDIRWORK TO GET RECENT INFO 12 ?NHG TESTMODE 5,XGET,NOT,DIR,LEAVE 9 ?P36 ... MFREEW FILE,ENT 7 ?QG2 GETDIRWORK 4 ?Q_L XGET 8 ?RF= LDX 2 FX2 10 ?RYW HUNTW 3,BSTB,FULLB 9 ?SDG BNG 3 NOFULL 7 ?SY6 PICKREP2 6 7 ?TCQ PREP2 7 7 ?TXB FREEBAX 10 ?WC2 MFREEW BSTB,EMPTYB 7 ?WWL PUTREP2 6 7 ?XB= PTREP2 7 5 ?XTW NOFULL 7 ?Y*G NGNC 7 1 18 ?YT6 ANDX 7 AWORK2(2) [B0 MAY BE SET-IGNORE IT 9 ?_#Q #SKI K6USEROPEN>99-99 4 ?_SB ( 7 #2#2 PICKREP2 6 9 #2RL TRACE 6,USERREP 9 #3?= TRACE 7,SUBREP 4 #3QW ) 7 #4=G PTREP2 7 5 #4G# UPPLUS1 16 #4HB ... LDN 3 1 ['UPPLUS 1' EXIT 5 #4JD ...UPPLUS 4 #4KG ...# 19 #4LJ ...# ROUTINE TO EXIT, BEARING IN MIND SHARED FILESTORE ENHANCEMENT 12 #4ML ...# X3=0 => UP, X3=1 => UPPLUS 1 18 #58L ... UPPLUS 0(3) ['UP' OR 'UPPLUS 1' EXIT 2 #59Q 2 #5PB 10 #692 [ BREAK-IN EXIT SECTION 4 #6NL XBR 8 #78= CALL 6 VFREA 15 #7MW VFREEBAX [FREE ANY BS 19 #7Q5 ... TESTMODE AWORK4(2),XFREE,NOT,MULTEL [ J IF MULT ELEMENT 10 #7S# ... MHUNT 3,FILE,FABSNB 7 #7WH ... LDN 7 1 19 #7YQ ... SMO A1(3) [ SUBTRACT 1 FROM GEN. NO. 17 #82_ ... SBS 7 A1-2(3) [ BECAUSE OF BREAK-IN 5 #858 ...XFREE 10 #87G VFREEW FILE,CREATE 15 #8FX ... LDN 3 0 ['UP' EXIT 9 #8S# ... BRN UPPLUS 2 #96Q 2 #9LB 19 #=62 [ CLEANUP ROUTINE FREES BLOCKS NOT PASSED BY CALLING ROUTINE 5 #=KL VFREA 9 #?5= VFREEW FILE,ENT 5 #?JW VFREB 10 ##4G VFREE FILE,FTRAP 7 ##J6 EXIT 6 0 5 ##N3 ...XNOTOWN 21 ##RY ... SETREP NOTOWN [ CANNOT ALTER TRAPSIF NOT THE OWNER 8 ##XT ... BRN RE 4 #*3Q RE 9 #*HB #SKI K6USEROPEN>199-199 4 #B32 ( 8 #BGL LDX 2 FX2 13 #C2= TESTMODE AWORK4(2),REPER,,REPLY 10 #CFW TESTREPN CANT,REPER 10 #C_G GEOERR 1,USERCANT 5 #DF6 REPER 4 #DYQ ) 9 #FDB ACROSS REPERR,2 19 #FY2 OREP [REPLY FROM OPENREL IS NOT OK 10 #GCL TESTREPN DIRCLOSE,RE 7 #GJS ...#UNS ILOGACC 10 #GQ2 ... SETBIT 3,AWORK3(2) 9 #GX= ACROSS USERONE,2 2 #HBW 16 #HWG [ ERROR CONDITIONS WITH NO ERROR REPLY SET YET 4 #KT2 XDIR 5 #L#L ...XTERMIN 5 #M?W XRAND 9 #MRG KEEPREP 6,WRONG 8 #N?6 BRN RE4 5 #NQQ XMULTF 9 #P=B KEEPREP 6,NOTMULT 8 #PQ2 BRN RE4 4 #Q9L RALR 9 #QP= KEEPREP 6,ALREADY 8 #R8W BRN RE4 5 #RNG WTRAPS 7 #S86 FREETAB 6 #S8Q ...#UNS JSKI29 4 #S9B ...( 18 #S=4 ...# *************************************************** 16 #S#2 ...# CSS SPECIAL MOD - FILE PASSWORD SYSTEM 8 #S*Y ... BRN NOTR 5 #SCW ...PASSFAIL 9 #SFS ... SETMODE 6,NOERREP 9 #SHQ ... ORS 6 AWORK4(2) 18 #SKN ...# ______________________________________________________ 4 #SLP ...) 4 #SMQ NOTR 7 #SNY ...#UNS ILOGACC 4 #SQ6 ...( 9 #SSR ... LDX 1 AWORK3(2) 7 #SXD ... SLC 1 9 16 #T25 ... ANDN 1 #37 [SET TRAP CODE 8 #T4S ... LOGACCESS 7,1 4 #T62 ...) 9 #T7B KEEPREP 6,NOTRAP 8 #TM2 BRN RE4 5 #W6L XMULT 9 #WL= KEEPREP 6,NOMULTS 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 5 #_J2 XTRAP 7 *23L LDN 7 0 9 *2H= ACROSS REPERR,3 4 *32W [ 4 *3GG [ 11 *426 ... MENDAREA 80,K99USEROPEN 4 *4FQ ...#END 8 ____ ...43611026000100000000