14 225X ... SEG ERASEA,8,C DONG,USERCOMS,G400 4 229S ...[ 16 22*P ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 4 22FL ...[ 3 22KH ... 6 22PD ...#UNS G400 14 22T* ...[ THIS CHAPTER MODIFIED FOR G3PLUS-IH MK2 4 22_= [ 4 23DW [ 11 23YG SEGENTRY K1ERASEA,ZERASEND 12 24D6 SEGENTRY K2ERASEA,ZERASEMAC 12 24XQ SEGENTRY K3ERASEA,ZERASESEG 4 26BL [ 19 26W= [ THIS SEGMENT IS USED BY THE ERASE COMMAND, ERASE MACRO AND 8 27*W [ ERASEND MACRO. 4 27TG [ 21 28*6 [ CHECKS IF THE USER IS PERMITTED TO WRITE TO THE FILE AND IF SO, 20 28SQ [ THE FILE IS REMOVED FROM THE FILESTORE. WHEN THE FILE TO BE 20 29#B [ ERASED IS IN USE, THE TO-BE-ERASED BIT IS SET IN ITS DIRECTORY 19 29S2 [ ENTRY. IF IT IS A DIRECTORY, THE TO-BE-ERASED BIT IS ALSO 14 2=?L [ SET IN ITS ENTRY IN THE DICTIONARY. 20 2=R= [ IF A DIRECTORY IS TO BE ERASED, ALL THE FILES INFERIOR TO IT 8 2?=W [ ARE ERASED. 4 2?QG [ 16 2*9B [ AWORK2 IS AMOUNT OF ADDITIONAL WORDS FOR GLIST 16 2*P2 [ AWORK3 INDICATES THAT A FILE IS MARKED T.B.E. 12 2*YS ...[ AND MARKS COMMAND ENTRY 21 2B8L [ AWORK4 CONTAINS NO. OF FROZEN MULTELS UNDER A DIR. TO BE ERASED 4 2BN= [ 4 2C7W [ 19 2CMG MGERASE +GERASE [TO BE ERASED BIT IN DICT ENT 8 2D76 NC1 4HC1 4 2DLQ [ 4 2F6B [ 11 2FL2 [ ENTRY FOR ERASEND MACRO 20 2G5L [ A FABSNB NAMES THE FILE TO BE ERASED AND ITS DIRECTORY IS OPEN 4 2GK= [ 5 2H4W ZERASEND 9 2HJG STOZ AWORK3(2) 16 2J46 STOZ AWORK1(2) [NON-AUTONOMOUS 9 2JHQ STOZ AWORK2(2) 20 2K3B LDCT 7 #400 [REMEMBER TO LEAVE DIRECTORY OPEN 10 2KH2 MHUNTW 1,FILE,ENT 17 2L2L JBC SETBIT1,1,BEERASE [J IF MARKED T.B.E. 8 2LG= LDX 0 GSIGN 18 2L_W STO 0 AWORK3(2) [ALREADY MARKED T.B.E. 5 2MFG SETBIT1 9 2M_6 LDX 0 EUSE1(1) 16 2NDQ BZE 0 STM [TERMINAL FILE 4 2NYB [ 21 2PD2 [ TEMP DIR HAS NO DICT ENTRY, ONLY LEXICON ENTRY; SO J BIT SETTING 16 2PXL JBS TEMPUS,1,BETEMP [J IF TMEPORARY 9 2QC= LDX 0 AWORK3(2) 20 2QWW BNG 0 TORY [IF ALREADY MARKED NO DICT OPEN 21 2RBG CALL 5 OPDCT [OPEN DICT TO SET TO-BE-ERASED BIT 16 2RW6 BRN TORY [J TO MAIN PATH 4 32NW [ 13 338G [ THIS IS THE ENTRY FOR ERASE MACRO 20 33N6 [ A FABSNB NAMES THE FILE TO BE ERASED; HAVE TO OPEN DIRECTORY 4 347Q [ 4 34MB [ 6 3572 ZERASEMAC 9 35LL STOZ AWORK1(2) 5 366= QMERGE 9 36KW STOZ AWORK3(2) 9 375G STOZ AWORK2(2) 14 37K6 OPENDIR XBRK,GENERAL,QUERY,ERASING 9 384Q TESTRPN2 OK,XITB 19 38JB LDN 7 0 [DIR TO BE CLOSED IN ERASEA 10 3942 MHUNTW 1,FILE,ENT 21 39HL LDN 3 0 [TO BACKSPACE AT DEPTH 0,IF TERMINAL 18 3=3= JBC SETBIT2,1,BEERASE [J IF NOT MARKED T.B.E. 8 3=GW LDX 0 GSIGN 9 3?2G STO 0 AWORK3(2) 8 3?G6 BRN NTERM 5 3?_Q SETBIT2 9 3#FB LDX 0 EUSE1(1) 19 3#_2 BZE 0 NTERM [J IF TERMINAL FILE ERASURE 16 3*DL JBS NTERM,1,BETEMP [J IF TEMPORARY 21 3*Y= CALL 5 OPDCT [OPEN DICTIONARY FOR DIRECTORY ERASUR 10 3BCW MHUNTW 1,FILE,ENT 5 3BXG MAINST 21 3CC6 LDN 3 1 [TO BACKSPACE AT DEPTH 1,WHEN DICT OP 16 3CWQ NTERM LDEX 6 ECOPS(1) [GET NO OF COPIES 8 3DBB BZE 6 USER1 5 3DW2 SPABA 21 3F*L BACKSPACE 0(3) [ & USE IT TO RE-POSITION DIRECTORY 18 3FT= BCT 6 SPABA [ JUST AFTER 1ST RECORD 4 3G#W USER 10 3GSG MHUNTW 1,FILE,ENT 5 3H#6 USER1 9 3HRQ LDX 0 EUSE1(1) 17 3J?B BZE 0 STM [J IF TERMINAL FILE 17 3JR2 JBC TORY,1,BETEMP [J IF NOT TEMPORARY 9 3K=L BRN TEMPUS 2 3KQ= 2 3L9W 19 3LPG [ ENTRY FROM ERASE SEGMENT. DIRECTORY, DICTIONARY ARE OPEN. 4 3M96 [ 6 3MNQ ZERASESEG 9 3N8B STOZ AWORK1(2) 9 3NN2 STOZ AWORK2(2) 7 3NPY ...#UNS ILOGACC 4 3NRW ...( 7 3NTS ... LDN 0 1 16 3NXQ ... STO 0 AWORK3(2) [COMMAND ENTRY 4 3N_N ...) 7 3P3L ...#UNS ILOGACC 4 3P5J ...#SKI 9 3P7L STOZ AWORK3(2) 10 3PM= MHUNTW 1,FILE,ENT 18 3Q6W ... JBC USER1,1,BEERASE [J IF NOT MARKED T.B.E. 8 3RKQ LDX 0 GSIGN 7 3RNW ...#UNS ILOGACC 17 3RS2 ... ORS 0 AWORK3(2) [ALREADY MARKED T.B.E 7 3RX6 ...#UNS ILOGACC 4 3S2= ...#SKI 18 3S5B STO 0 AWORK3(2) [ALREADY MARKED T.B.E. 9 3SK2 LDX 0 EUSE1(1) 17 3T4L BZE 0 STM [J IF TERMINAL FILE 16 3TJ= JBS TEMPUS,1,BETEMP [J IF TMEPORARY 19 3W3W CLOSETOP [DICTIONARY--NO BIT-SETTING 8 3WHG BRN TORY 2 3X36 2 3XGQ 5 3Y2B TEMPUS 20 3YG2 ORX 7 0 [SET BIT TO REMIND US OF TEMP DIR 18 3Y_L ... CALL 5 TESTBRK [TEST FOR INHIBIT BREAKIN 14 3_F= ... BRN TOR1A [BREAKIN 9 45TW BRN SETLEV 4 46*G STM 21 46T6 NGN 6 1 [X6 IS -VE FOR TERMINAL FILE ERASE 17 46T_ ...# ************************************************** 15 46WS ...# THE FOLLOWING IS A FRIG TO TRAP SOMEONE OR 16 46XM ...# SOMETHING WHO IS ERASING :SYSTEM.INCINDEX ON THE 6 46YG ...# A-SERVICE 4 46_* ...# 7 4728 ... LDX 3 1 8 4733 ... LDX 1 FX1 20 473W ... TESTNAMX 3,SYSINC+3(1),ELOC1(3),NOTINC,5 [J IF NOT INCINDEX 9 4743 ... LDX 5 EGEN(3) 7 4748 ... SBN 5 1 19 474* ... BNZ 5 NOTINC [J IF NOT GEN 1 19 474G ... TESTNAMX 1,SYSINC+6(1),ELAN(3),NOTINC,5 [J IF NOT LANG B1 7 474P ... TOPFCB 3 19 475J ... TESTNAMX 3,SYSINC(1),FME1(3),NOTINC,5 [J IF NOT :SYSTEM 11 476C ... GEOERR BRIEFPM,INCINDER 14 477= ...SYSINC 28HSYSTEM INCINDEX B1 5 4785 ...NOTINC 10 478Y ... MHUNTW 1,FILE,ENT 4 479R ...# 7 47=L ...# END OF FRIG 17 47?F ...# ************************************************** 7 47?W ...#UNS ILOGACC 4 47?Y ...( 9 47#2 ... LDX 0 AWORK3(2) 7 47#4 ... ANDN 0 1 8 47#6 ... BZE 0 NOLOG 9 47#? ... CALL 5 XLOGAC 5 47#D ...NOLOG 4 47#K ...) 10 47#Q LDX 0 EAUTOCOUNT(1) 10 47JJ ... ORX 0 ESAVECOUNT(1) 16 47SB BNZ 0 SERB [J IF FILE FROZEN 9 48#2 LDX 0 ESER(1) 18 48RL BNZ 0 MAGTA [J IF A MAG TAPE ENTRY 6 48YS ...#UNS EXSEX2 18 4962 ... JBS SECUREXER,1,BEEXO [DONT OPENEMPTY SECUREXS 12 496W ... JBC NOTINDEXED,1,BEINDEX 7 497Q ... FREECORE 1 18 498L ... SETMODE 1,GENERAL,REPLY,LEAVE [OTHER MODES INAPPROP 9 499G ... BRN YINDEXED 6 49=B ...NOTINDEXED 8 49?= LDCT 3 #40 14 49QW ANDX 3 EINF1(1) [MDF BIT 7 4==G FREECORE 1 15 4=Q6 BZE 3 TERF [J IF NOT MDF 9 4?9Q CALL 5 ONLYMDF 19 4?PB BRN NEG [J IF MDF NOT ONLY ENT LEFT 5 4#92 VFRENT 13 4#NL FREECORE 1 [ENT 4 4*8= TERF 13 4*MW SETMODE 1,WRITE,EMPTY,REPLY,LEAVE 5 4*XN ...YINDEXED 13 4B7G ADDMODE 1,DIROPEN,ERASING,DIREPLY 21 4C6Q [TO LEAVE DIRENT & OPEN IN SPITE OF 19 4CLB [TO-BE-ERASED BIT BEING SET 18 4D62 [& NOT CLOSE DIRECTORY 21 4DKL [I DONT KNOW WHY NOWAIT; EMPTY NEVER 6 4DMT ...#UNS G400 4 4DQ4 ...( 19 4DS? ... ADDMODE 1,ERASE [ADDITIONAL MODE TO SET FCB 19 4DWG ... [TO BE ERASED BIT FOR CLOSETOP 15 4DYP ... [AND HOOK CODE 4 4F2Y ...) 18 4F5= OPENENDX XBRK,1 [OPEN AND EMPTY THE FILE 10 4FJW MFREE FILE,FLOCNB 4 4G4G REPS 17 4GJ6 TESTREP CANT,SERB [J IF ALREADY OPEN 18 4H3Q TESTREPN OK,RERR [GEOERR IF OTHER REPLY 7 4HHB CLOSESHORT 6 4HR8 ...SECUREXER 20 4J32 LDN 3 0 [ACCESS FILE AT DEPTH 0 IN NTRYD 20 4JGL CALL 5 NTRYD [DELETE ENTRIES IN ITS DIRECTORY 20 4K2= MHUNTW 1,FILE,ENT [CHEK IF MULTEL WAS JUST DELETED 20 4KFW BPZ 6 NEG4 [J IF NOT TERMINAL FILE ERASURE 17 4K_G JBC NEG4,1,BEMULT [J IF NOT MULTELEM 20 4LF6 [CHEK IF MULTEL JUST DELETED WAS PREVIOUSLY MARKED T.B.E.. IF NOT 20 4LYQ [THE MDF WILL BE ERASED BY THE ERASE SEGMENT COMING DOWN AGAIN OR 19 4MDB [DIRECTORY ERASURE PATH COMING THRU AGAIN. SO NO CHEK TO SEE IF 14 4MY2 [MDF IS LAST FILE OF SAME NAME/LANG LEFT. 18 4NCL JBC NEG4,1,BEERASE [J IF NOT MARKED T.B.E. 7 4NX= FREECORE 1 9 4PBW CALL 5 ONLYMDF 19 4PWG BRN NEG [J IF MDF NOT ONLY ENT LEFT 18 4QB6 [ORIGINALLY THE MDF WAS ERASED IF IT WAS THE ONLY ENTRY LEFT 19 4QTQ [BUT SEE USERSTRM FOR BUG 9884 NOTES--SOLO MDF'S MAY BE LEFT. 17 4R*B JBS ONLYENT,1,BEERASE [J IF MARKED T.B.E. 8 4RT2 CALL 5 XMDF 8 4S#L BRN NEG 5 4SS= ONLYENT 10 4T?W MHUNT 2,FILE,FABSNB 7 4TRG LDN 0 1 8 4W?6 SMO A1(2) 20 4WQQ STO 0 A1-2(2) [SET GEN. NO. = 1 FOR OPENENDX 19 4X=B BRN VFRENT [NOT TO STM--MDF NEVER FROZEN 4 4XQ2 NEG4 7 4Y9L FREECORE 1 4 4YP= NEG 8 4_8W BPZ 6 READ 4 4_NG XITT 17 5286 BNG 7 XITA [J IF ERASEND ENTRY 18 52MQ CLOSETOP [CLOSE SUPERIOR DIRECTORY 4 537B XITA 8 53M2 SETREP OK 5 574B UP 4 5=26 SERB 9 5=FQ LDX 0 AWORK3(2) 18 5=_B BPZ 0 TSER [J IF NOT MARKED T.B.E. 9 5?F2 MFREEW FILE,ENT 8 5?YL BRN NEG 4 5#D= TSER 8 5#XW CALL 5 TOBEB 8 5*CG BRN NEG 5 5*X6 MAGTA 10 5BBQ GEOERR 1,ERAS XMT 5 5BWB NTRYD 21 5CB2 SBX 5 FX1 [ROUTINE TO DELETE ALL RECORDS OF A 21 5CTL [ENTRY IN THE FILE OPEN AT LEVEL 0(3) 21 5D*= [POSITIONED ON FIRST BLOCKS REC OF TH 20 5DSW ADX 7 3 [PRESERVE X3 IN L.S. END OF X7 10 5F#G MHUNTW 1,FILE,ENT 9 5FS6 LDEX 4 ECOPS(1) 17 5G?Q ... JBC NCOPS,1,BEINDEX [ J IF NOT INDEXED 7 5HQL ADN 4 1 5 5J== NCOPS 8 5JPW #SKI K6ERASE>99-99 11 5K9G TRACE ELOC1(1),ERASE 21 5KP6 ADX 4 ENUSE(1) [X4 = COUNT OF RECORDS IN THIS DIRENT 18 5L29 ... ADN 4 1 [ ADD 1 FOR NAME RECORD 5 5L?# ...XSTEP 17 5LJC ... LDEX 3 7 [ RESTORE FILE DEPTH 21 5LTG ... STEP 0(3) [ STEP TO E-O-F OR NEXT NAME RECORD 17 5M6K ... BZE 3 XENDFILE [ J IF END OF FILE 10 5MCN ... LDX 0 EDESCRIBE(3) 18 5MNR ... BZE 0 XENDFILE [ J IF NEXT NAME RECORD 8 5M_W ... BRN XSTEP 5 5N=_ ...XENDFILE 17 5NJ4 ... LDEX 3 7 [ RESTORE FILE DEPTH 21 5NT7 ... BACKSPACE 0(3) [ THIS POINTS US TO VERY LAST RECORD 4 5P6G XDEL 8 5PL6 DELETE 0(3) 8 5Q5Q BCT 4 XDEL 10 5QKB MHUNTW 1,FILE,ENT 9 5R52 LDX 0 EUSE1(1) 16 5RJL BZE 0 TLON1 [J. IF NOT DIR 17 5S4= JBC TLON1,1,BETEMP [J UNLESS TEMPORARY 9 5SHW LDX 2 JOBNO(2) 17 5T3G BZE 2 TLON1 [ ENTERED AFTER EJ 7 5TH6 LDX 3 1 8 5W2Q JOBLOCK 2,0 16 5WGB BNG 0 TLON1 [ENTERED AFTER EJ 7 5X22 LDX 1 0 10 5XFL LDX 0 ALOGLEN(1) 9 5X_= SBN 0 ASTJOB 15 5YDW BZE 0 TLON [J IF NO USER 9 5YYG LDX 0 ELOC1(3) 9 5_D6 LDX 2 ELOC2(3) 9 5_XQ LDX 4 ELOC3(3) 9 62CB TXU 0 JNAME(1) 10 62X2 TXU 2 JNAME+1(1) 10 63BL TXU 4 JNAME+2(1) 18 63W= BCS TLON [J. IF NOT THE TEMPDIR. 8 64*W LDCT 0 #002 9 64TG ANDX 0 JMISC(1) 17 65*6 ERS 0 JMISC(1) [UNSET TD BIT IF SET 4 65SQ TLON 14 66#B LDX 1 3 [RESET X1 13 66S2 LDEX 3 7 [& X3 5 67?L TLON1 8 67R= LDCT 0 #700 13 68=W ANDX 7 0 [& X7 10 68QG LONGON #12,ELOC1(1) 8 69=6 ADX 5 FX1 7 69PQ EXIT 5 0 4 6=9B TOR1 19 6=P2 LDX 0 AWORK3(2) [IF T.B.E. BIT ALREADY SET 17 6?8L BNG 0 TOR1A [DICTIONARY NOT OPEN 16 6?N= CLOSETOP [CLOSE DICTIONARY 5 6#7W TOR1A 15 6#MG BNG 7 TOR2 [J IF ERASEND 16 6*76 CLOSETOP [CLOSE DIRECTORY 4 6*LQ TOR2 5 6F46 UP 4 6HG= TORY 18 6H_W ... CALL 5 TESTBRK [TEST FOR INHIBIT BREAKIN 14 6JFG ... BRN TOR1 [BREAKIN 9 6MC= LDX 0 AWORK3(2) 21 6MWW BNG 0 SETLEV [SKIP NEXT IF ALREADY MARKED T.B.E. 18 6NBG ... CALL 5 RDICT [READ DICTIONARY ENTRY 17 6Q*2 LDX 0 MGERASE(1) [SET TO-BE-ERASED BIT 17 6QSL ORS 0 CERASE(2) [IN THE DICTIONARY 10 6R#= NAME 2,FILE,FWB 7 6RRW REWRITE 9 6S?G MFREEW FILE,FWB 16 6SR6 CLOSETOP [CLOSE DICTIONARY 5 6T=Q SETLEV 15 6TQB LDN 6 0 [SET LEVEL=0 10 6W=2 MHUNTW 1,FILE,ENT 7 6W?Y ...#UNS ILOGACC 4 6W*W ...( 9 6WCS ... LDX 0 AWORK3(2) 16 6WFQ ... BNG 0 NLOGACC [J IF ALREADY TBE 15 6WHN ... CALL 5 XLOGAC [LOG ACCESS 5 6WKL ...NLOGACC 4 6WMJ ...) 17 6WPL LDX 0 EAUTOCOUNT(1) [IF FILE IS FROZEN 10 6W_D ... ORX 0 ESAVECOUNT(1) 17 6X9= BNZ 0 NOPE [DON'T TRY TO OPEN IT 21 6XNW SETNCORE 6,2,FILE,FLOCNB [GET LOCAL NAME OF DIRECTORY TO-BE-ER 10 6Y8G MHUNT 1,FILE,FABSNB 9 6YN6 ADX 1 HDREC(1) 8 6_7Q ADN 1 A1-6 8 6_MB ADN 2 A1 17 7272 MOVE 1 6 [ & MOVE IT TO FLOCNB 21 72LL MFREEW FILE,ENT [FREE ENT BLOCK-OPENREL (LEAVE) GETS 4 736= OREL 14 73KW SETMODE 1,GENERAL,REPLY,LEAVE,DIROPEN 14 745G ADDMODE 1,ERASING,QUERY,DIREPLY,ERASE 20 74K6 [TO LEAVE DIRENT AND MUST OPEN 18 754Q [AND NOT CLOSE DIRECTORY 17 75JB OPENRELD XBRK,1 [OPEN NEXT DIRECTORY 18 7642 TESTREP2 CANT,NOPE [J IF IT CANT BE OPENED 18 76HL TESTRPN2 OK,RERR [GEOERR IF OTHER REPLY 17 773= STOZ AWORK4(2) [NO FROZEN MULTELS 21 77GW BACKSPACE 1 [REPOSITION DIRECTORY ABOVE TO JUST A 21 782G [1ST RECORD (OPENREL-LEAVE MOVED IT) 6 78G6 READ STEP 17 78_Q BZE 3 TRICY [J WHEN END OF FILE 10 79FB LDX 0 ERES-A1(3) 18 79_2 BNZ 0 READ [J IF NOT A 1ST RECORD 7 7=DL LDN 4 0 18 7=Y= STOZ AWORK3(2) [FREE TO MARK INFERIORS 20 7?CW ... JBC NOWLAC,3,BNERASE [J IF NOT ALREADY MARKED T.B.E. 8 7?XG LDX 4 GSIGN 9 7#C6 STO 4 AWORK3(2) 5 7#WQ SETBIT4 17 7*6J ... JBS TAPE,3,BNLIB [J IF TAPE ENTRANT 16 7*BB LDX 0 EAUTOCOUNT-A1(3) [TEST IF FROZEN 11 7*L8 ... ORX 0 ESAVECOUNT-A1(3) 14 7*W2 BZE 0 TFTST [J IF NOT 17 7B*L JBC READAGAIN,3,BNMULT [J IF NOT MULTELEM 7 7BT= LDN 0 1 18 7C#W ADS 0 AWORK4(2) [ANOTHER MULTEL FROZEN 6 7CSG READAGAIN 19 7D#6 BNG 4 READ [J IF ALREADY MARKED T.B.E. 7 7DRQ READAGAIN 10 7F?B MHUNTW 1,FILE,FRB 10 7FR2 NAME 1,FILE,ENT 5 7G=L MARKMDF 21 7GQ= CALL 5 TOBEB [SET TO-BE-ERASED BIT IN DIRECTORY 17 7H9W BRN READ [J TO GET NEXT DIRENT 5 7H?4 ...NOWLAC 6 7H#= ...#UNS ILOGACC 4 7H*D ...( 19 7HBL ... JBS SETBIT4,3,BNMULT [DONT LOG MULTIFILE ELEMENTS 20 7HCS ... READAGAIN [NOT MULT ELEM - WANT PROPER ENT 10 7HF2 ... MHUNTW 1,FILE,FRB 10 7HG8 ... NAME 1,FILE,ENT 19 7HHB ... CALL 5 XLOGAC [BEFORE LOGACCESS IF APPLIC 9 7HJJ ... MFREEW FILE,ENT 16 7HKQ ... STEPAGAIN [RESET POINTER 4 7HLY ...) 9 7HN6 ... BRN SETBIT4 5 7HPG TFTST 21 7J96 HUNT 2,FILE,FLOCNB [MOVE LOCALNAME OF THE NEXT DIRECTORY 19 7JNQ LDX 0 ELAN-A1(3) [ INCLUDING LANG WORD 9 7K8B STO 0 A1+5(2) 20 7KN2 LDN 1 ELOC1-A1(3) [ DOWN THE TREE INTO THE FLOCNB 8 7L7L ADN 2 A1 7 7LM= MOVE 1 5 10 7M6W LDX 0 EUSE1-A1(3) 16 7MLG BZE 0 TERMF [TERMINAL FILE 16 7N66 ADN 6 1 [ADD 1 TO LEVEL 18 7NKQ BRN OREL [J TO OPEN NEXT DIRECTORY 4 7P5B NOPE 9 7PK2 LDX 0 AWORK3(2) 18 7Q4L BPZ 0 TOB [J IF NOT MARKED T.B.E. 9 7QJ= MFREEW FILE,ENT 8 7R3W BRN VELEV 4 7RHG TOB 8 7S36 CALL 5 TOBEB 8 7SGQ VELEV BNZ 6 VCONT 10 7SQJ ... MFREE FILE,FLOCNB 21 7T2B BBS 2,7,XITT [J IF WE HAVE NOT INHIBITED BRK-IN 19 7TG2 PERMITBRK [MK2**** ALLOW FOR BREAK IN 8 7T_L BRN XITT 18 7WF= VCONT SBN 6 1 [SUBTRACT 1 FROM LEVEL 16 7WYW BRN READ [READ NEXT DIRENT 5 7XDG TERMF 6 7XY6 ...#UNS EXSEX2 18 7YCQ ... JBS SECUREX1,3,BNEXO [DONT OPENEMPTY SECUREXS 15 7YXB JBC TERM1,3,BNMDF [J IF NOT MDF 8 7_C2 LDX 2 FX2 9 7_WL LDX 0 AWORK4(2) 20 82B= BZE 0 TERM1 [J IF NO PREVIOUS FROZEN MULTELS 9 82TW CALL 5 ONLYMDF 19 83*G BRN MDFMARK [J IF MDF NOT ONLY ENTRY LEFT 13 83T6 FREECORE 1 [ENT 18 84#Q BRN TERM1 [J TO ERASE/DELETE MDF 5 84SB MDFMARK 20 85#2 GETDIR 3 [RE-POSITIONS READING POINTERS 20 85RL [ AT HAVING JUST READ NAME RECORD OF THE MDF. ALSO GIVES ENT 18 86?= BRN MARKMDF [USE THIS ENT FOR REWRITE 6 86#_ ...#UNS EXSEX2 4 86BN ...( 5 86DC ...SECUREX1 7 86G6 ... READAGAIN 10 86HT ... MHUNTW 3,FILE,FRB 10 86KJ ... NAME 3,FILE,ENT 9 86M? ... BRN SECUREXER 4 86P2 ...) 4 86QW TAPE 4 87=G [ 21 87Q6 [ IF TAPE ALREADY MARKED TO BE RETURNED,DONT RETURN AGAIN-BUG 6418 4 889Q [ 17 88PB JBS READ,3,BNERASE [J IF MARKED T.B.E. 10 8992 MHUNTW 1,FILE,ENT 20 89NL JBS READ,1,BEINFPROC [J IF INFERIORS BEING PROCESSED 20 8=8= [MEANS MAG TAPES BEING RETURNED OR DIRECTORY WITH MAG TAPES BEING 21 8=MW [RETURNED. RETURNB GOES AUTONOMOUS AND MAY NOT MARK TO-BE-RETURNED BIT 14 8?7G [BEFORE ERASEND MACRO DONE AGAIN BY CLOSE. 9 8?C# ... LDX 5 ESERN(3) 21 8?M6 LDX 0 ESER(1) [PICK UP MAGTAPE MARKER FROM DIRENT 21 8#6Q BNZ 0 XFIRST [J UNLESS FIRST MAG. TAPE IN THIS DIR 9 8#LB STO 5 ESER(1) 11 8*62 SETNCORE 4,2,FILE,FABSNB 7 8*KL LDN 0 4 8 8B5= STO 0 A1(2) 16 8BJW MHUNTW 1,FILE,ENT [FOR SUPERIOR DIR 8 8C4G ADN 1 EUSE1 8 8CJ6 ADN 2 A1+1 21 8D3Q MOVE 1 3 [FABSNB NAMES DIRECTORY FOR RETURN 11 8DHB SETNCORE 5,3,AONBS,GLIST 19 8F32 LDN 0 1 [MAY AS WELL USE THE 3 EXTRA 20 8FGL STO 0 A1(3) [WORDS - LEST THERE BE MORE MTS. 9 8G2= STOZ A1+2(3) 9 8GFW STOZ A1+3(3) 9 8G_G STOZ A1+4(3) 5 8HF6 SERIN 8 8HYQ SMO A1(3) 17 8JDB STO 5 A1(3) [INSERT SERIAL NUMBER 8 8JY2 BRN READ 5 8KCL XFIRST 10 8KX= MHUNTW 3,AONBS,GLIST 7 8LBW LDN 0 1 8 8LWG ADX 0 A1(3) 18 8MB6 STO 0 A1(3) [INCREMENT REC. HEADER 18 8MTQ BXL 0 ALOGLEN(3),SERIN [J IF NO ALTLEN NEEDED 8 8N*B LDX 2 FX2 8 8NT2 LDN 1 16 9 8P#L ADS 1 AWORK2(2) 9 8PS= ADX 0 AWORK2(2) 10 8Q?W STO 0 ACOMMUNE1(2) 13 8QRG ALTLENG 3,ACOMMUNE1(2),REALTGLIST 10 8R?6 MHUNTW 3,AONBS,GLIST 8 8RQQ BRN SERIN 5 8S=B TERM1 17 8S#_ ... JBC SETMODES,3,BNINDEX [ J IF NOT INDEXED 8 8SCJ ... LDCT 1 #777 19 8SG7 ... ANDX 1 ECOPS-A1(3) [ IF INDEXED SHOULD BE EMPTY 16 8SJQ ... BZE 1 XNOBLOX [ J IF FILE EMPTY 9 8SM* ... GEOERR 1,INDEXED 5 8SPY ...XNOBLOX 16 8SSH ... SETMODE 1,DIROPEN,ERASING,GENERAL,REPLY,LEAVE 9 8SX6 ... BRN OPENEMPTY 5 8S_P ...SETMODES 17 8T4# ... SETMODE 1,DIROPEN,ERASING,WRITE,REPLY,EMPTY,LEAVE 6 8T6X ...OPENEMPTY 18 8T9L OPENRELD XBRK,1 [OPEN AND EMPTY THE FILE 8 8TP= BRN REPS 6 8W8W TRICY REWIND 14 8WNG MHUNTW 1,FILE,ENT [FOR DIR 9 8X86 LDX 0 ESER(1) 15 8XMQ BZE 0 NOMTS [J IF NONE 9 8Y7B STOZ ESER(1) 7 8YM2 RETURNB 5 8_6L NOMTS 6 8_L= STEP 20 925W BZE 3 MPTY [J IF TOP DIRECTORY IS NOW EMPTY 19 92KG MHUNTW 1,FILE,ENT [REWRITE DIRECTORY ENTRY WITH 21 9356 MBS 1,BEERASE,BEINFPROC [T.B.E. & INFERIORS BEING PROCESSED 10 93JQ NAME 1,FILE,FWB 14 944B [ CLOSE WILL UPDATE BLOCKS/INDEX RECORDS 4 94J2 #SKI 7 953L LDN 4 0 7 95H= REWRITE 1 4 962W #SKI 4 96GG ( 18 9726 BZE 4 NOCOP [J IF NO BLOCKS RECORD 21 97FQ STEP 1 [THE BLOCKS RECORD MUST BE UPDATED 15 97_B TOPFCB2 2 [FROM THE FCB 10 98F2 MHUNTW 3,FILE,FWB 9 98YL LDX 4 HDREC(2) 10 99D= SBN 4 FBLKS-A1-2 17 99XW STO 4 A1(3) [SET RECORD HEADER 10 9=CG LDX 0 ALOGLEN(3) 9 9=X6 BXGE 0 4,OKLN 10 9?BQ ALTLENG 3,4,REALTFWB 7 9?WB TOPFCB2 2 10 9#B2 MHUNTW 3,FILE,FWB 4 9#TL OKLN 8 9**= LDX 1 A1(3) 8 9*SW ADN 2 BSPRE 8 9B#G ADN 3 A1+1 18 9BS6 MOVE 2 511(1) [MOVE BLOCK NOS ACROSS 7 9C?Q REPLACE 1 5 9CRB NOCOP 4 9D?2 ) 20 9DQL CLOSETOP [DIR--CAREFUL UPDATING FOR CLOSE 9 9F== MFREEW FILE,FWB 8 9FPW BRN VELEV 7 9G9G MPTY CLOSESHORT 19 9GP6 BBS 1,7,ONLYLEX [NO DICT.ENTRY FOR A TEMP.DIR 8 9H8Q CALL 5 OPDCT 5 9J82 ONLYLEX 17 9JML ... DOWN ERASE,11 [REMOVE LEXICON ENTRY 16 9TDW BBS 1,7,NODENT [J IF TEMP.DIR 18 9TYG ... CALL 5 RDICT [READ DICTIONARY ENTRY 9 9WD6 ... LDX 0 CPSEU(2) 16 9XX2 BNG 0 PSEU1 [J IF PSEUDO USER 7 9YBL BUDGERASE 10 9YW= MFREEW FILE,ADICTENT 8 9_*W ... CALL 5 RDICT 5 =3#B PSEU1 16 =3S2 ... FREECORE 2 [FREE ADICTENT 20 =4?L DELETE [DELETE THIS USER'S ENTRY IN DICT 16 =4R= CLOSETOP [CLOSE DICTIONARY 5 =5=W NODENT 20 =5QG LDN 3 0 [ACCESS FILE AT DEPTH 0 IN NTRYD 21 =6=6 CALL 5 NTRYD [DELETE FILE'S ENTRIES IN ITS DIRECTO 6 =6=P ...#UNS FNSAD 4 =6?# ...( 21 =6?X ... BNZ 6 TEMPDIRECT [J IF NOT TOP LEVEL OF ERASE JUST DON 17 =6#G ... BBS 1,7,TEMPDIRECT [AND IF TEMPORARY DIR 17 =6*5 ... TOPFCA2 3 [X3-> FCA OF SUP DIR 21 =6*N ... QKTABSET 3,AWORK2(2),AWORK3(2) [SAVE DIR POSN IN CASE ERASE MACRO 6 =6B? ... REWIND 5 =6BW ...SCANDIR 6 =6CF ... STEP 19 =6D4 ... BZE 3 SCANEND [J IF REACHED END OF SUP DIR 11 =6DM ... BWNZ ERESN(3),SCANDIR 18 =6F= ... BWNZ EUSE1N(3),YDIRIN [J IF STILL AN INFERIOR 9 =6FT ... BRN SCANDIR 5 =6GD ...SCANEND 8 =6H3 ... TOPFCAB2 3,2 20 =6HL ... BS 2,BFDIRUPDATE [SINCE NO LONGER AN INFERIOR TAKE 16 =6J9 ... BC 2,BFDIRBELOW [OUT INFERIOR BIT 9 =6JS ... BRN SCANFIN 5 =6KC ...YDIRIN 7 =6L2 ... TOPFCA2 3 5 =6LK ...SCANFIN 8 =6M8 ... LDX 2 FX2 13 =6MR ... QKTABULATE 3,AWORK2(2),AWORK3(2) 6 =6NB ...TEMPDIRECT 4 =6N_ ...) 9 =6PQ MFREEW FILE,ENT 8 =79B BRN VELEV 4 =7P2 [ 4 =88L [ 13 =8N= [ V A R I O U S R O U T I N E S 4 =97W [ 4 =9MG [ 19 ==76 [ CHECKS IF THE MDF ENTRY IN A DIRECTORY IS THE ONLY FILE 10 ==LQ [ OF A MULTIFILE LEFT 5 =?6B ONLYMDF 8 =?L2 SBX 5 FX1 10 =#5L MHUNT 1,FILE,FLOCNB 19 =#K= LDX 4 A1+4(1) [SAVE ORIGINAL GENERATION NO. 18 =*4W STOZ A1+4(1) [ASK FOR ANY GENERATION 21 =*JG [ INSTEAD OF GET HIGHEST GEN. NO.. THE FORMER WILL GET THE FIRST 20 =B46 [ GEN. NO. FOUND OF THE GIVEN NAME/LANG. CODE. BUT WITH PRESENT 17 =BHQ [ INDEXING THE FIRST GEN. NO. WILL BE THE HIGHEST 21 =C3B [ GET HIGHEST GEN. NO. WILL FIND THE HIGHEST GEN. NO. OF GIVEN NAME 15 =CH2 [ AND THEN SEARCH FOR LANGUAGE CODE GIVEN. 20 =D2L GETDIR 6 [LIKE GETDIR 3 BUT FOR MULTIFILES 9 =DG= TESTREP2 OK,XENTOK 9 =D_W GEOERR 1,MDFENT? 5 =FFG XENTOK 10 =F_6 MHUNTW 1,FILE,ENT 16 =GDQ JMBS MULTI,1,BEMDF,BEMULT [J IF MULTIFILE 21 =GYB GEOERR 1,FILEMIXD [SINGLE/MULTIFILE OF SAME NAME/LANG. 5 =HD2 MULTI 14 =HXL SLL 0 3 [MDF BIT 8 =JC= ADX 5 FX1 15 =JWW BPZ 0 XMDF [J IF NOT MDF 16 =KBG [USE THIS FLOCNB SINCE IT ALREADY HAS GEN. NO. = 1 7 =KW6 EXIT 5 1 4 =L*Q XMDF 13 =LTB FREECORE 1 [ENT 10 =M*2 MHUNT 1,FILE,FLOCNB 20 =MSL STO 4 A1+4(1) [RESTORE ORIGINAL GEN. NO. GIVEN 7 =N#= EXIT 5 0 4 =NRW [ 4 =P?G [ 20 =PR6 OPDCT SBX 5 FX1 [ROUTINE FOR OPENING DICTIONARY 17 =Q=Q ... OPENSYS XBRK,DICTIONARY,GENERAL [OPEN DICTIONARY 9 =SNW TESTRPN2 OK,RERR 8 =TN6 ADX 5 FX1 7 =W7Q EXIT 5 0 19 =WMB ...[ ROUTINE TO SET UP FILE/ADICT BLOCK AND READ DICTIONARY ENTRY 8 =X72 ...RDICT SBX 5 FX1 11 =XLL SETNCORE 3,2,FILE,ADICT 8 =Y6= ADN 2 A1 19 =YKW MHUNTW 1,FILE,ENT [MOVE USERNAME TO ADICT BLOCK 8 =_5G ADN 1 EUSE1 7 =_K6 MOVE 1 3 7 =_P3 ... READDICT 9 =_SY ... TESTRPN2 OK,RERR 11 =_YT ... MHUNTW 2,FILE,ADICTENT 8 ?24Q ADX 5 FX1 7 ?2JB EXIT 5 0 4 ?342 [ 4 ?3HL [ 21 ?43= TOBEB SBX 5 FX1 [ROUTINE TO SET TO-BE-ERASED BIT IN 9 ?477 ... FCBFIND 2,NOTFCB 9 ?4?4 ... BS 2,BFERASE 5 ?4B_ ...NOTFCB 21 ?4GW MHUNTW 1,FILE,ENT [TOP FILE WHICH HAS JUST READ DIRENT 16 ?52G BS 1,BEERASE [SET T.B.E. BIT 10 ?5G6 NAME 1,FILE,FWB 7 ?5_Q REWRITE 9 ?6FB MFREEW FILE,FWB 8 ?6_2 ADX 5 FX1 7 ?7DL EXIT 5 0 4 ?7Y= XITB 9 ?8CW SETREP2 NOFILE 4 ?8XG #SKI 4 ?9C6 ( 9 ?9WQ LDX 0 AWORK1(2) 17 ?=BB BNG 0 QSUICIDE [J.IF SUICIDE BIT SET 4 ?=W2 ) 5 ??*L UP 5 ??BH ...TESTBRK 8 ??CD ... LDX 2 FX2 9 ??D* ... LDCH 0 ATYPE(2) 9 ??F= ... SBN 0 CPAT/64 8 ??G7 ... BNZ 0 NCPAT 9 ??H4 ... TESTINBRK NCPAT 9 ??H_ ... INHIBITBRK YBRK 8 ??JW ... BRN YEXIT 5 ??KR ...NCPAT 8 ??LN ... LDCT 0 #100 7 ??MK ... ORX 7 0 5 ??NG ...YEXIT 7 ??PC ... EXIT 5 1 4 ??Q# ...YBRK 7 ??R9 ... EXIT 5 0 3 ??S6 ... 17 ??T= XBRK GEOERR 1,ERASEBRK [BREAKIN NOT ALLOWED 10 ?##W RERR GEOERR 1,ERASEREP 6 ?DPG REALTGLIST 10 ?F96 MHUNTW 2,AONBS,GLIST 7 ?FNQ EXIT 1 0 5 ?G8B REALTFWB 10 ?GN2 MHUNTW 2,FILE,FWB 7 ?H7L EXIT 1 0 7 ?WCN ...#UNS ILOGACC 4 ?WDB ...( 4 ?WF4 ...[ 18 ?WFQ ...[ THIS ROUTINE CONTAINS THE LOGACCESS MACRO. ON ENTRY 19 ?WGD ...[ X1 POINTS TO FILE/ENT AND X5 IS LINK ACCUMULATOR. ON EXIT 17 ?WH6 ...[ X0 IS DESTROYED, X1 STILL POINTS TO ENT, X2 = FX2 19 ?WHS ...[ X3 - X7 UNCHANGED. ACCESS WILL HAVE BEEN LOGGED IF APPROP. 4 ?WJG ...[ 5 ?WK8 ...XLOGAC 18 ?WKW ... JBS XLAEXIT,1,BETEMP [DONT LOG TEMPORARY FILES 16 ?WLJ ... LDN 2 4 [ERASE = CODE 4 10 ?WM= ... JBC XDOLA,1,BEEXO 16 ?WMY ... LDN 2 5 [CC SX = CODE 5 5 ?WNL ...XDOLA 8 ?WP# ... SBX 5 FX1 19 ?WQ2 ... LOGACCESS 0(2) [LOG THIS ACCESS IF APPLIC 8 ?WQN ... ADX 5 FX1 10 ?WRB ... MHUNTW 1,FILE,ENT 5 ?WS4 ...XLAEXIT 7 ?WSQ ... EXIT 5 0 4 ?WTD ...) 4 ?WWL [ 4 ?XB= [ 10 ?XTW ... MENDAREA 20,K99ERASEA 4 ?YT6 #END 8 ____ ...06430711000200000000