100 ! MASLIB -- GENERAL-PURPOSE RETRIEVAL AND ! LISTING PROGRAM FOR MASTER FILE LIBRARY. 120 ! 08-DEC-73 J. WARDEN WABASH COLLEGE 140 DIM M%(30) 160 ON ERROR GO TO 940 180 DEF FNF$(X%,Y%)=MID(A$(A%),X%,Y%) 200 PRINT"MASTER FILE LIBRARY V01B" 220 OPEN "KB:" AS FILE 9% 240 PRINT"#"; : INPUT LINE #9%,C$ : C%=ASCII(C$)-10% : IF C%*(C%-3%)=0% THEN CLOSE 1%,2%,9% : GO TO 1560 260 C%=ASCII(RIGHT(C$,LEN(C$)))-10% : IF C%*(C%-3%)*(C%-17%)=0% THEN C$=LEFT(C$,LEN(C$)-1%) : GO TO 260 280 IF LEFT(C$,3%)="/HE" THEN 1340 300 O%=INSTR(1%,C$,"<") : IF O%=0% THEN O$="KB:" ELSE O$=LEFT(C$,O%-1%) : C$=RIGHT(C$,O%+1%) 320 P%=15% : P0%=0% 340 O%=INSTR(1%,C$,"/") : IF O%=0% THEN 1040 ELSE M$=LEFT(C$,O%-1%) : C$=RIGHT(C$,O%) 360 IF LEFT(C$,3%)="/CA" THEN C0%=1% ELSE IF LEFT(C$,4%)="/LU:" THEN C0%=2% ELSE 1040 380 O%=INSTR(1%,C$,"/OFC:") : IF O% THEN S$=MID(C$,O%+5%,3%) : S%=1% : GO TO 420 400 O%=INSTR(1%,C$,"/TYP:") : IF O% THEN S$=MID(C$,O%+5%,3%) : S%=2% : GO TO 420 420 OPEN O$ FOR OUTPUT AS FILE 2% 440 IF M$="" THEN M$="DK1:$MASLIB" 460 OPEN M$ FOR INPUT AS FILE 1% 480 FIELD #1%,127%*A% AS Z$, 127% AS A$(A%) FOR A%=0% TO 3% 500 IF C0%=2% THEN 1060 520 IF A%<3% THEN A%=A%+1% ELSE A%=0% : GET #1% 540 IF ASCII(A$(A%))=92% THEN 720 560 IF S%=1% THEN IF INSTR(1%,MID(A$(A%),88%,6%),S$)=0% THEN 520 580 IF S%=2% THEN IF S$<>MID(A$(A%),7%,3%) THEN 520 600 GOSUB 740 620 PRINT #2%,FNF$(1%,6%)+" "+FNF$(7%,3%)+" "+FNF$(88%,3%); " "+FNF$(13%,15%)+" "+FNF$(58%,30%) 640 PRINT #2%,SPACE$(15%)+FNF$(91%,3%)+" "+FNF$(28%,15%) 660 PRINT #2%,SPACE$(21%)+FNF$(43%,15%) 680 PRINT #2% 700 GO TO 520 720 CLOSE 1%,2% : S%=0% : GO TO 240 740 IF O$<>"LP:" THEN RETURN 760 IF P%<13% THEN P%=P%+1 : RETURN 780 IF P0% THEN PRINT #2%,CHR$(12%); 800 P0%=1% 820 PRINT #2%,"MASTER FILE LIBRARY ** ";DATE$(0%);" ** "; 840 IF S%=1% THEN PRINT #2%,S$;" FILES" ELSE IF S%=2% THEN PRINT #2%,S$;" TYPE FILES" ELSE PRINT #2%," ALL FILES" 860 PRINT #2% 880 PRINT #2%,"NAME TYPE OFC LOCATION DESCRIPTION" 900 PRINT #2%,"---- ---- --- -------- -----------" 920 PRINT #2% : P%=0% : RETURN 940 IF ERR<>5% THEN 1000 960 IF ERL=460% THEN PRINT "** CAN'T FIND ";M$;" **" : RESUME 240 980 IF ERL=1240% THEN PRINT "** FILE ";F1$;" NOT LOCATED ON ";D1$;A1$ : RESUME 240 1000 IF ERR=11% AND ERL=240% THEN CLOSE 9% : GO TO 1560 1020 ON ERROR GO TO 0 1040 PRINT"** RETYPE PLEASE **" : GO TO 240 1060 ! === LOOKUP ROUTINE === 1080 F1$=LEFT(RIGHT(C$,5%)+" ",6%) 1100 IF A%<3% THEN A%=A%+1% ELSE A%=0% : GET #1% 1120 IF ASCII(A$(A%))=92% THEN 1320 1140 IF LEFT(A$(A%),6%)<>F1$ THEN 1100 1160 L1$=FNF$(13%,15%) 1180 L1%=INSTR(1%,L1$,"[") : IF L1% THEN A1$=RIGHT(L1$,L1%) : L1$=LEFT(L1$,L1%-1%) 1200 D1%=INSTR(1%,L1$,":") : IF D1% THEN D1$=LEFT(L1$,D1%) 1220 IF D1$="DT:" OR D1$="DK:" THEN PRINT"FILE ";F1$;" IS ON A BACKUP ";D1$ : GO TO 240 1240 OPEN D1$+F1$+A1$ FOR INPUT AS FILE 3% 1260 CHANGE SYS(CHR$(6%)+CHR$(-8%)+CHR$(3%)) TO M% : L0%=M%(7%)+SWAP%(M%(8%)) 1280 PRINT "FILE ";F1$;" OCCUPIES";L0%;"BLOCKS" 1300 CLOSE 3% : GO TO 240 1320 PRINT"** ";F1$;" NOT IN FILE **" : CLOSE 1% : GO TO 240 1340 ! === HELP ROUTINE === 1360 &:&"MASLIB WILL LIST OR LOOK UP ANY FILE STORED IN THE": &"MASTER FILE LIBRARY. COMMAND LINE IS AS FOLLOWS:" 1380 &:&"# DEV:OUTPUT < DEV:MASLIB / SW" : & 1400 &" DEFAULT OUTPUT DEV: IS KB: AND DEFAULT MASTER": &" FILE NAME IS DK1:$MASLIB. SWITCHES ARE:":& 1420 &" /CA PRINT CATALOG OF FILES" 1440 &" /OFC:XXX PRINT ONLY FILES ASSOCIATED WITH": &" OFFICE XXX" 1460 &" /TYP:XXX PRINT ONLY FILES OF TYPE XXX" 1480 &" (/OFC: AND /TYP: SWITCHES WORK ONLY WITH /CA)" 1500 &:&" /LU:FILE LOOK UP FILE NAMED 'FILE'" 1520 &:&" /HE PRINT 'HELP' MESSAGE" 1540 & : GO TO 240 1560 END