0 ' MARIAN.BA: Disk Catalog Librarian Copyright(C)1987, Pegasus Software 1 ' Author: Greg Limes [76606,3202] Version 2.0; Modified 05/25/87 2 ' This program is SHAREWARE. Feel free to use it, copy it, give it 3 ' to friends, and so on. If you keep it and use it, send $10 to: 4 ' Greg Limes, 1 B North San Marcos, Santa Barbara, CA 93111 5 ' You can find me at ... 6 ' Goleta Oxgate - GREG LIMES 7 ' CompuServe - 76606,3202 8 MAXFILES=2:CLEAR3000:ONERRORGOTO32:DIMF$(500),N(500):L=0:F=0:C$="":CM$="COM:98N1DNN":OK$=CHR$(17)+CHR$(28):R$=CHR$(13):RL$=R$+CHR$(10):CM$="COM:98N1DNN":CB=-186:CN=-122:OK$=CHR$(17)+CHR$(28):GOSUB46 9 CLS:PRINT"MARIAN 2.0: Disk Catalog Librarian":PRINT"Copyright (C) 1987, Pegasus Software":PRINT 10 PRINT"Read, Find, Update, Save, or Exit ...":ONINSTR(" RrFfUuSsEe",INPUT$(1))\2GOSUB11,15,19,27,31:GOTO10 11 LINEINPUT"[Read] Catalog: ";C$:IFC$=""THENRETURN 12 ONERRORGOTO33:CLOSE:OPENC$FORINPUTAS#1:ONERRORGOTO32:L=0:F=0:P=0 13 IFNOTEOF(1)THENGOSUB43:LINEINPUT#1,F$(R):N(P)=R:P=R:GOTO13 14 N(P)=0:P=0:CLOSE#1:RETURN 15 C=0:P=0:I$="":LINEINPUT"[Find] File Name: ";I$:IFI$=""THENRETURNELSER=INSTR(I$,"."):IFR>0THENI$=LEFT$(I$,R-1) 16 IFN(P)>0THENP=N(P):IFLEFT$(F$(P),LEN(I$))=I$THENC=C+1:PRINTF$(P):GOTO16ELSEGOTO16 17 IFC=0THENPRINT"Not Found"ELSEIFC=1THENPRINT" 1 Match"ELSEPRINTC"Matches" 18 GOTO15 19 I$="":LINEINPUT"[Update] Volume: ";I$:IFI$=""THENRETURN 20 V$=" "+I$:P=0 21 IFN(P)>0THENIFRIGHT$(F$(N(P)),LEN(V$))=V$THENGOSUB45:GOTO21ELSEP=N(P):GOTO21 22 GOSUB43:R0=0:GOSUB36:ONERRORGOTO32:RN=R0:P=0 23 R=RN:RN=N(R):IFR<1THEN26 24 IFN(P)>0ANDF$(N(P))0THENPRINT 40 RETURN 41 GOSUB43:F$(R)=FN$+V$:IFR0<1THENR0=R:RN=RELSEN(RN)=R:RN=R 42 RETURN 43 IFF=0THENR=L:L=L+1ELSER=F:F=N(F) 44 N(R)=0:RETURN 45 R=N(P):N(P)=N(R):N(R)=F:F=R:F$(R)="":RETURN 46 QS$="ZZ"+CHR$(7)+CHR$(0)+CHR$(248)+CHR$(13):QF$="ZZ"+CHR$(0)+CHR$(26)+SPACE$(24)+"F"+CHR$(1)+CHR$(158):QN$="ZZ"+CHR$(0)+CHR$(26)+SPACE$(24)+"F"+CHR$(2)+CHR$(157) 47 B=CB:H=(B-256)\256:ST$="":SP=VARPTR(ST$):POKESP+1,BAND255:POKESP+2,HAND255:POKESP,2:B=CB+2:H=(B-256)\256:FN$="":FP=VARPTR(FN$):POKEFP+1,BAND255:POKEFP+2,HAND255:POKEFP,9:RETURN 48 M$=QS$:DL=100:ML=4:GOSUB54:IFPEEK(CB)=18THENIFPEEK(CB+2)=0THENRETURNELSEOK=0:RETURNELSEOK=0:RETURN 49 M$=QF$:DL=1000:ML=29:GOSUB54:IFST$=OK$ANDPEEK(CB+2)>0THENRETURNELSEOK=0:RETURN 50 M$=QN$:DL=1000:ML=29:GOSUB54:IFST$=OK$ANDPEEK(CB+2)>0THENRETURNELSEOK=0:RETURN 51 CLOSE:OPENCM$FORINPUTAS1:OPENCM$FOROUTPUTAS2:RETURN 52 POKECN,0:POKECN+1,0:POKECN+2,0:RETURN 53 IFPEEK(CN)>=MLTHENRETURNELSEDL=DL-1:IFDL<1THENRETURNELSE53 54 GOSUB52:PRINT#2,M$;:GOTO53