13 22FL ... SEG ERASE,860,FILESTORE,USERCOMS 4 22_= [ 15 2394 ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983 4 23DW [ 11 23YG SEGENTRY K1ERASE,ZENTRY 11 24D6 SEGENTRY K2ERASE,ZERASTREM 11 24XQ SEGENTRY K3ERASE,ZAUTOENT 6 254Y ...#UNS EXSEX2 12 257H ... SEGENTRY K5ERASE,ZCCSECUREX 4 25=6 ...[ 14 25#P ... FSHENTRY K7ERASE,ZENTFROMB,,ZENTFROMB 4 25CB [ 11 25M8 ... SEGENTRY K11ERASE,XLEXICON 4 25X2 [ 20 26BL [THIS SEGMENT IS USED BY THE ERASE COMMAND, ERASTREM MACRO & BSA. 19 26W= [IT CHECKS FORMAT OF PARAMETERS. IF FILE IS DIRECTORY, WHETHER 20 27*W [JOBS ARE RUNNING OR THERE ARE INFERIOR NON-PSEUDO USERS (DICTJOB 20 27TG [MACRO). A MULTIFILE IS ERASED ONLY IF THE MDF IS A PARAMETER OF 8 28*6 [ THE ERASE COMMAND. 20 28SQ [USED TO CHECK FOR OWNERSHIP & RECENTLY FOR WRITE TRAP (OPTIONALLY) 21 29#B [NOW USEROPEN CHECKS FOR ERASE TRAP. OWNERSHIP CHECK WHEN ERASING A DIR 19 29S2 [THE MAXIMUM NUMBER OF PARAMETERS FOR THE ERASE COMMAND IS 24. 16 2=?L [IF ALL OK GOES DOWN TO ERASEA TO ERASE THE FILE. 4 2=R= [ 4 2?=W [ 10 2?QG [THIS IS THE COMMAND ENTRY 4 2#=6 [ 4 2#PQ [ 19 2*9B [ THIS SEGMENT CONTAINS THE LESS DUMPER FREEZING ENHANCEMENT 20 2*P2 [ WHICH OUTPUTS THE NEW MESSAGE OF THE NO. OF UNACCOUNTED JOBS 5 2B8L ZENTRY 6 2B*S ...#UNS EXSEX2 4 2BH2 ...( 17 2BN8 ... STOZ AWORK3(2) [=0 => NORMAL ERASE 21 2BTB ...X1X5MERGE [ERASE + CC SECUREX COMMANDS MERGE 4 2C2J ...) 6 2C39 ...ZENTFROMB 19 2C7W STOZ AWORK1(2) [SWITCH FOR NON-1ST PARAMETER 8 2CMG LDN 0 25 20 2D76 STO 0 AWORK2(2) [MAXIMUM NUMBER OF PARAMETERS - 1 17 2DLQ NAGAIN [MULTI-PARAMETER LOOP 17 2DWJ ... LDN 6 0 [ CLEAR TEMPDIR MARKER 7 2F6B SPARAPASS 10 2FL2 HUNT 1,CPB,CUNI 9 2G5L ... LDX 0 ANUM(1) 9 2GK= LDX 4 AWORK1(2) 16 2H4W BPZ 0 NGOING [PARAMETER EXISTS 19 2HJG BNZ 4 NO [PREVIOUS PARAMETER WAS LAST 18 2J46 BRN NO1 [NO PREVIOUS PARAMETERS 5 2JHQ NGOING 11 2K3B BXL 4 AWORK2(2),NGOES 17 2KH2 ERROR JTOOMANY [TOO MANY PARAMETERS 8 2L2L BRN NO 5 2LG= NGOES 7 2L_W LDN 3 1 9 2MFG ADS 3 AWORK1(2) 17 2M_6 BNZ 0 NGONE [NON-NULL PARAMETER 9 2NDQ ERROR JPARNULL 8 2NYB BRN NUNI 5 2PD2 NGONE 10 2PXL NAMETOP 1,FILE,FNAME 6 2Q2Q ...#UNS FTS1 7 2Q5W ... FNORM 3 6 2Q92 ...#UNS FTS1 4 2Q#6 ...#SKI 18 2QC= FNORM 2 [SET UP A FABSNB FOR FILE 10 2QWW MHUNT 2,FILE,FNAME 10 2RBG NAMETOP 2,CPB,CUNI 17 2RW6 TESTREP NAMEFORM,NUNI [ERROR IN FILENAME 6 2RY4 ...#UNS EXSEX2 4 2S22 ...( 10 2S3Y ... MHUNT 3,FILE,FABSNB 8 2S5W ... SMO FX2 9 2S7S ... LDX 0 AWORK3 21 2S9Q ... ORS 0 ATYPE(3) [IF CC SECUREX COM SET SECUREX BIT 4 2S?N ...) 17 2TSL USEROPEN XBRK,GENERAL,DIR,STREAMS,ERASE,TERMDIR 10 2W#= TESTREP2 NOFILE,PTEMP 8 2WRW REPERR2 OK 8 2X?G STUP BRN NFAB 4 2XR6 [ 4 2Y=Q OK 21 2YQB TREP2 MULTFILE,NFAB [IF OK/MULTFILE REPS, MULT IS ERASED 10 2_=2 MHUNTW 3,FILE,ENT 20 2_PL JBC TYPEFILE,3,BEMULT [CANT ERASE ELEMENT OF MULTIFILE 9 329= ERROR ERELEM 8 32NW BRN UHUH 5 338G TYPEFILE 17 33N6 JBC NOTWORK,3,BEWORK [J IF NOT WORKFILE 7 347Q ERASEWOR 8 34MB BRN NENT 5 3572 NOTWORK 9 35LL LDX 0 EUSE1(3) 20 366= BZE 0 OKOWN [NO OWNERCHECK IF NOT DIRECTORY 20 36KW OWNERCHECK [CHECK THAT THE FILE IS OWNED BY 10 36TN ... MHUNTW 3,FILE,ENT 9 375G TESTREP2 OK,OKOWN 10 37K6 ERROR ERNOTOWNER 8 384Q BRN UHUH 5 38JB OKOWN 17 3942 JBC NOTEMP,3,BETEMP [J IF NOT TEMPORARY 9 39HL LDX 0 EUSE1(3) 17 3=3= BNZ 0 NOTFILE [J IF NOT TEMP FILE 4 3=GW #SKI 4 3?2G ( 10 3?G6 FCJOB 1,FX2,,CPA 11 3?_Q SPRIVJUMP JSSTART,1,NOTEMP 4 3#FB ) 10 3#_2 ERROR ERTEMPFILE 8 3*DL BRN UHUH 5 3*Y= NOTFILE 14 3BCW LDX 6 GSIGN [TEMPDIR 5 3BXG NOTEMP 4 3CC6 #SKI 4 3CWQ ( 9 3DBB SEGENTRY K50ERASE 9 3DW2 BRN K51ERASE 7 3F*L SETUPTAB 19 3FT= TABSET [RECALL POSN (AFTER NAME REC) 18 3G#W CHECKTRAPS [CHECKS FOR WRITE TRAP 8 3GSG TESTTRAP WRITE 10 3H#6 TESTREP2 OKAY,OKTRAP 9 3HRQ ERROR ERNOTRAP 8 3J?B BRN UHUH 5 3JR2 OKTRAP 19 3K=L TABULATE [BACK TO POSN AFTER NAME REC 7 3KQ= FREETAB 9 3L9W SEGENTRY K51ERASE 4 3LPG ) 4 3M96 NOST 10 3MNQ MHUNTW 1,FILE,ENT 21 3N8B LDX 0 EUSE1(1) [TEST IF DIRECTORY IS BEING ERASED 14 3NN2 BZE 0 NOTDI [J IF NOT 20 3P7L BNG 6 NOTDI [J IF TEMP DIR, DONT OPEN DICT 17 3PM= SETNCORE 3,2,FILE,ADICT [SET UP FILE/ADICT 8 3Q6W ADN 2 A1 10 3QLG MHUNTW 1,FILE,ENT 11 3QNP ... JBC NOJL,1,BEJOB4ASTR 9 3QQY ... ERROR ERJOBL 8 3QT7 ... BRN UHUH 4 3QXB ...NOJL 10 3Q_K ... MHUNTW 1,FILE,ENT 3 3R3S ... 8 3R66 ADN 1 EUSE1 7 3RKQ MOVE 1 3 18 3S5B DICTJOB 3 [THE OLD JOBQCHEC MACRO 11 3SK2 TESTREPN INFJOB,NOTINFJOB 8 3T4L SMO FX2 18 3TJ= LDX 0 ACOMMUNE1 [ NO. OF OUTSTANDING JOBS 20 3W3W OUTNUM 0,0 [ OUTPUT AS A DECIMAL CHARACTER 18 3WHG ERROR ERINFJOB1 [ OUTPUT ERROR MESSAGE 15 3X36 BRN UHUH [ GO CLEAN UP 6 3XGQ NOTINFJOB 10 3Y2B TESTERR TOOHIGH,UHUH 5 3YG2 NOTDI 20 3Y_L LDN 7 0 [SO DIR WILL BE CLOSED IN ERASEA 8 3_F= BPZ 6 NDOWN 10 3_YW FCJOB 1,FX2,,CPA 8 42DG LDCT 0 #2 9 42Y6 ORS 0 JMISC(1) 16 43CQ ERS 0 JMISC(1) [TAKE OUT BIT 7 21 43XB [ MEANS TEMPORARY DIRECTORY DOES NOT EXIST-- USED IN USERLIB ALSO 5 44C2 NDOWN 9 44WL DOWN ERASEA,3 8 45B= BRN NFAB 8 45TW NO1 ERROR JPARMIS 4 46*G NO 6 46T6 ENDCOM 5 47#Q PTEMP 9 47SB ERROR ERNOFILE 8 48#2 BRN NFAB 4 48RL [ 18 49?= [JOBQCHEC CLOSES DICTIONARY IN ERROR CASES FOR EFFICIENCY 4 49QW [ 16 4==G UHUH CLOSETOP [CLOSE DIRECTORY 9 4=Q6 NENT MFREEW FILE,ENT 10 4?9Q NFAB MFREE FILE,FABSNB 7 4?PB NUNI UNIFREE 6 4?WJ ...#UNS FTS1 10 4#3Q ... VFREE FILE,ADJUNCTS 9 4#92 BRN NAGAIN 4 4#NL XBRK 18 4*8= GEOERR 1,ERASEBRK [CANT BREAK IN ON ERASE 6 4*9D ...#UNS EXSEX2 4 4*=L ...( 4 4*?S ...[ 21 4**2 ...[THIS IS THE ENTRY FOR THE CC SECUREX COMMAND. IT IS IDENTICAL TO ERASE 21 4*B8 ...[EXCEPT THAT B21 IS SET IN THE FABSNB BEFORE USEROPENING TO SHOW THAT 13 4*CB ...[ONLY SECUREX ENTRANTS ARE ACCEPTABLE 4 4*DJ ...[ 6 4*FQ ...ZCCSECUREX 7 4*GY ... LDN 0 4 14 4*J6 ... STO 0 AWORK3(2) [SET FLAG 9 4*K# ... BRN X1X5MERGE 4 4*LG ...) 2 4*MW 2 4B7G 4 4BM6 [ 19 4C6Q [THIS IS THE ENTRY FOR ERASTREM MACRO - USED FOR ALL MULTIFILE 18 4CLB [ERASURES. SETS UP AUTONOMOUS ACTIVITY WHICH ENTERS K3ERASE 20 4D62 [OHGN = OLD HIGHEST GENERATION NUMBER (TRUE END OF THE MULTIFILE) 20 4DKL [NHGN = NEW HIGHEST GENERATION NUMBER (CURRENT END OF THE MULTIFILE) 4 4F5= [ 4 4FJW [ 6 4G4G ZERASTREM 15 4GJ6 LDN 3 0 [N.H.G.N. - 1 7 4H3Q TOPFCB 2 4 4HHB [ 18 4J32 [IF B14=1 WHOLE MULTIFILE IS ERASED; X3 = NHGN, X5 = OHGN 10 4JGL LDX 5 FSTREND(2) 7 4K2= SLC 5 9 8 4KFW ANDN 5 #377 12 4K_G BBS 14,FSTREND(2),TERB1 10 4LF6 LDEX 3 FSTREND(2) 7 4LYQ LDX 0 3 7 4MDB SRC 0 9 10 4MY2 ERX 0 FSTREND(2) 8 4NCL LDCT 1 #377 7 4NX= ANDX 0 1 15 4PBW ERS 0 FSTREND(2) [OHGN := NHGN 19 4PWG BXL 3 5,TERB1 [IF NHGN .GE. OHGN, NO ERASE 10 4QB6 MFREE FILE,FABSNB 13 4QTQ CLOSE [MDF 9 4R*B ... BRN ZERMULTUP 4 4RT2 [ 5 4S#L TERB1 10 4SS= MHUNT 1,FILE,FABSNB 8 4T?W SMO A1(1) 15 4TRG STO 5 A1-2(1) [STORE OHGN 10 4W?6 GETACT BSA,AUTERASE 11 4WQQ LINKSET BPTR(2),TLINK3(1) 9 4X=B SMO BPTR(2) 16 4XQ2 STO 3 ACC3 [SAVE NHGN - 1 9 4Y9L LOCK BPTR(2) 9 4YP= LDX 4 BPTR(2) 8 4_8W CHANGESTR 4 7 4_NG UNLOCK 4 7 5286 LDX 2 4 6 52MQ FPUT 6 52PF ...ZERMULTUP 18 537B UP [AUTO-BSA LEFT TO PROCEED 4 53M2 [ 5 546L TLINK3 9 54L= PAIR ERASE,3 4 555W [ 4 55KG [ 17 5656 ZAUTOENT [AUTO-BSA ENTERS HERE 20 56JQ OPENDIR XBK,GENERAL,QUERY [OPEN DIR OF ELEMENT WITH OHGN 15 574B TESTREP2 OK,OK1,NOFILE,NOFIL,NAME,NODIR 21 57J2 [ OK=>GO ERASE ELEM, NOFILE=>TRY NEXT ELEM, NAME=>DIR DOES NOT EXIST 4 583L XBK 8 58H= CALL 4 XBRK 5 592W NOFIL 10 59GG MHUNT 1,FILE,FABSNB 8 5=26 SMO A1(1) 19 5=FQ BXL 3 A1-2(1),NADD [IF OHGN=NHGN, NO MORE ELEMS 5 5=_B NODIR 14 5?F2 CLOSETOP [THE MDF 9 5?YL BRN SUICIDE 4 5#D= NADD 18 5#XW LDN 5 1 [DECREASE GEN. N. & TRY 15 5*CG SMO A1(1) [NEXT ELEMENT 9 5*X6 SBS 5 A1-2(1) 9 5BBQ BRN ZAUTOENT 4 5BWB [ 2 5CB2 19 5CTL OK1 [OK TO ERASE THE MULTIFILE 20 5D*= SETNCORE 6,2,FILE,FLOCNB [A FLOCNB IS REQ'D THE FIRST TIME 15 5DSW LDN 7 0 [FIRST TIME 4 5F#G REND 10 5FS6 MHUNT 2,FILE,FLOCNB 10 5G?Q MHUNT 1,FILE,FABSNB 17 5GRB BNZ 7 NOT1 [J UNLESS FIRST TIME 8 5H?2 SMO A1(1) 9 5HQL LDN 4 A1-6(1) 8 5J== LDN 5 A1(2) 20 5JPW MOVE 4 6 [PUTS NAME FROM FABSNB TO FLOCNB 4 5K9G [ 13 5KP6 [X3 HAS NHGN-1 & A1-2 OF FABSNB HAS OHGN 4 5L8Q [ 7 5LNB LDN 7 1 8 5M82 BRN NOT2 4 5MML NOT1 16 5N7= SMO A1(1) [DECREASE OHGN 9 5NLW SBS 7 A1-2(1) 9 5P6G SBS 7 A1+4(2) 4 5PL6 NOT2 20 5Q5Q BXGE 3 A1+4(2),SDX [J IF ALL ELEMS DOWN TO X3 ERASED 9 5QKB #SKI K6ERASE>599-599 11 5R52 TRACE A1+4(2),ERASELEM 18 5RJL LDX 0 A1+4(2) [GET GENERATION NUMBER 7 5S4= SBN 0 1 15 5SHW BNZ 0 MULTELEM [J IF NOT MDF 16 5T3G STOZ A1+4(2) [GET ANY GEN. NO. 7 5TH6 GETDIR 6 21 5W2Q [ GETDIR 6 INSTEAD OF GETDIR 3 BECAUSE THE LATTER WILL ALWAYS GET 13 5WGB [ GEN. NO. = 1 WHEN MULTIFILE CASE 9 5X22 TESTREP2 OK,TYPENT 8 5XFL CALL 4 SDV 5 5X_= TYPENT 10 5YDW MHUNTW 2,FILE,ENT 18 5YYG JMBS MULTENT,2,BEMDF,BEMULT [J IF MDF OR MULTEL 21 5_D6 GEOERR 1,MIXFILES [THERE IS AN ENTRY FOR A SINGLE FILE 5 5_XQ MULTENT 20 62CB JBS RAND,2,BEMDF [MDF IS ONLY ENT LEFT, ERASE IT 15 62X2 MFREEW FILE,ENT [MULTELEM ENT 10 63BL MHUNT 2,FILE,FLOCNB 17 63W= STO 7 A1+4(2) [GENERATION NO. = 1 21 64*W LDX 6 GSIGN [MARK: DO NOT ERASE MDF, JUST MARK IT 5 64TG MULTELEM 19 65*6 GETDIR 3 [GET ENTRY WITH OHGN GIVEN 9 65SQ TESTREP2 OK,RAND 8 66#B ... BRN REND 4 67R= SDV 9 68=W GEOERR 1,MDFENT? 4 68QG [ 4 69=6 RAND 9 69PQ BNG 6 SETMDF 7 6=9B ERASEND 8 6=P2 BRN REND 18 6?8L SETMDF [REWRITE DIR ENT OF MDF 18 6?N= MHUNTW 2,FILE,ENT [WITH 'TO-BE-ERASED' BIT 9 6#7W BS 2,BEERASE 20 6#MG NAME 2,FILE,FWB [SEE ERASEA FOR STORY ON HOW MDF 15 6*76 REWRITE [GETS ERASED 9 6*LQ MFREEW FILE,FWB 4 6B6B [ 4 6BL2 SDX 15 6C5L CLOSE [DIRECTORY 13 6CK= CLOSE [MDF 10 6D4W MFREE FILE,FLOCNB 5 6DJG SUICIDE 7 6F46 SUICIDE 4 6FHQ [ 19 6FJ5 ...[ THE FOLLOWING SECTION IS AN OVERFLOW FROM ERASEA SEGMENT. IT 17 6FJD ...[ CONTAINS THE CODE FOR REMOVING AN ENTRY FROM LEXICON. 4 6FJR ...[ 5 6FK6 ...XLEXICON 15 6FKF ... SETNCORE 4,2,FILE,ASELFLEX [FOR FREELEX 8 6FKS ... ADN 2 A1 10 6FL7 ... MHUNTW 1,FILE,ENT 8 6FLG ... ADN 1 EUSE1 7 6FLT ... MOVE 1 3 20 6FM8 ... STOZ 3(2) [WE DO NOT KNOW WHERE ITS SUP. IS 16 6FMH ... OPENSYS XBRK,LEXICON,WRITE [OPEN THE LEXICON 9 6FMW ... TESTRPN2 OK,RERR 5 6FN9 ...XBFERUS 18 6FNJ ... JBS XFERUSLN,,BFERUS [J IF DUMPER IN PROGRESS 5 6FNX ...XFREELEX 18 6FP= ... FREELEX [GET RID OF LEXICON ENTRY 14 6FPK ... CLOSETOP [LEXICON 17 6FPY ... UP [BACK UP TO ERASEA 5 6FQ? ...XFERUSLN 16 6FQL ... CALL 1 XFNDFERUS [X2 -> FI,FERUS 18 6FQ_ ... POP XBFERUS,,FERUSALT [TEST IF SEMAPHORE OPEN 9 6FR# ... LDN 5 FERUSLEN 17 6FRM ... ADX 5 ALOGLEN(2) [GET NEW LENGTH IN X5 18 6FS2 ... ALTLENG 2,5,XFNDFERUS [ALTER LENGTH OF FI,FERUS 9 6FS* ... CALL 1 XFNDFERUS 10 6FSN ... MHUNTW 1,FILE,ENT 18 6FT3 ... LDX 3 2 [REMEMBER FERUS POINTER 16 6FTB ... ADN 1 EUSE1 [X1 -> USERNAME 10 6FTP ... ADX 2 FERUSRH(2) 18 6FW4 ... ADN 2 FERUSRH [X2 -> NEW RECORD ADDRESS 20 6FWC ... MOVE 1 FERUSLEN [MOVE USERNAME INTO NEW RECORD 9 6FWQ ... LDN 5 FERUSLEN 18 6FX5 ... ADS 5 FERUSRH(3) [ADD 'FERUSLEN' TO R.H. 7 6FXD ... LDN 5 1 18 6FXR ... ADS 5 FERUSNUM(3) [ADD 1 TO NO. OF ENTRIES 16 6FY6 ... VOP ,FERUSALT [RESET SEMAPHORE 9 6FYF ... BRN XFREELEX 6 6FYS ...XFNDFERUS 16 6F_7 ... LDN 2 BMISC [FIND FI,FERUS 18 6F_G ... HUNT2B 2,FI,FERUS,2 [IN MISCELLANEOUS CHAIN 7 6F_T ... EXIT 1 0 4 6G28 ...[ 10 6G2H ...RERR GEOERR 1,ERASEREP 4 6G3B [ 4 6GH2 [ 4 6H2L [ 10 6HG= ... MENDAREA 20,K99ERASE 4 6JFG #END 8 ____ ...33306414000100000000