0 'BIBPWR.100 7/19/88 R.W.HESS (See BIBPWR.DOC) V1.2 2 MAXFILES=3:CLEAR1600:GOSUB184:DIMA$(40):A$=INKEY$:IFA$="C"THEN34ELSECLS:LFILESV 4 CLS:DEFSTRA-B:ONERRORGOTO18:GOSUB208 6 IFDSKI$(RF$)=0THEN12ELSEGOSUB124:GOSUB202:BEEP:CLS:PRINT@48," RAM BIBFYL ="DSKI$(RF$)-1"bytes":PRINT@128,"DISK BIBFYL ="DSKI$(DF$)"bytes" 7 PRINT@242,"If OK to overwrite DISK-BIBFYL with":PRINT@282,"RAM-BIBFYL press else any.";:A=INPUT$(1):IFA<>CHR$(13)THEN122 8 IFDSKI$(DF$)THENKILLDF$ 10 SAVEMDF$:KILLRF$ 12 GOSUB26:GOTO22 14 CLS:GOSUB206:RN$="Cassette ":DV$="c":DS$=" 0#":GOTO126 16 CLS:GOSUB206:RN$="Disk ":DV$="d":GOTO126 18 CLS:IFERR=52THENPRINT@135,"No BIBFYL!":END 20 IFERR=7THENPRINT@135,"Need RAM!":ENDELSEPRINTERR;ERL:END 22 A=INKEY$:IFA=""THEN22 24 I=(INSTR("SADXCPREF",A)):IFITHENONIGOTO160,94,16,80,14,104,98,122,204ELSE22 26 CLS:PRINT@15,"-BIBPWR-":PRINT@44,"nnotate":PRINT@64,"isk update":PRINT@84,"earch":PRINT@104,"ass update" 28 PRINT@173,"-ref print":PRINT@215,"ecords":PRINT@281,"

urge"; 30 PRINT@296,"iles";:PRINT@313,"xit"; 32 G=0:P$="":GOSUB124:RETURN 34 DV$="c":CLOSE:GOSUB152:GOSUB148:GOSUB184:DS$=INPUT$(6):OPENRF$FORAPPENDAS2:S=0:OPENCS$FORINPUTAS1:N=0 36 N=N+1:IFNOTEOF(1)THENLINEINPUT#1,A$(N):GOTO36 38 GOSUB56 40 IFLEFT$(I$,5)="Found"THENGOSUB60:DF$=RIGHT$(I$,6):GOSUB58:GOSUB56:GOSUB44:DF$=DF$+T$:GOSUB72:GOSUB186:GOTO50 42 IFLEFT$(I$,4)="Skip"THENDF$=RIGHT$(I$,6)+".Cc":DS$=" #":GOSUB72:GOSUB58:GOTO38:ELSEGOSUB58:GOTO38 44 IFLEFT$(I$,2)="Ok"THENT$=".Bc":RETURN 46 IFLEFT$(I$,3)="?DS"THENT$=".Dc":RETURN 48 IFLEFT$(I$,3)="?IO"THENT$=".?c":RETURN 50 CLS:GOSUB184:K$="LOAD"+Q$+"CAS:"+R$+"RUN"+Q$+"BIBPWR"+R$+"C"+DS$ 52 GOSUB54:END 54 FORI=1TOLEN(K$):POKE65449+2*I,ASC(MID$(K$,I,1)):POKE65450+2*I,0:NEXT:POKE65450,LEN(K$):RETURN 56 FORX=(65024+S)TO(65035+S):I$=I$+CHR$(PEEK(X)):NEXT:RETURN 58 I$="":S=S+40:IFS>319THENS=0 59 RETURN 60 IFRIGHT$(I$,6)="END"THENCLOSE:KILLCS$:GOTO78ELSERETURN 62 CLS:F=0:FS=0:GOSUB124:PRINT@122,"Insert DISK "CHR$(34)ID$CHR$(34)", then press ";:Q$=INPUT$(1):IFQ$<>CHR$(13)THENKILLRF$:RUN 64 CLOSE:GOSUB152:GOSUB202:LFILESTOTR$:OPENTR$FORINPUTAS1:OPENRF$FORAPPENDAS2 66 IFEOF(1)THEN70ELSELINEINPUT#1,DI$ 68 IFLEN(DI$)<>17THEN66ELSEDS$=RIGHT$(DI$,6):FS=FS+VAL(DS$):DF$=LEFT$(DI$,9):GOSUB72:GOTO66 70 CLOSE:PRINT@205,F" files; "100000-FS" bytes free.":GOSUB120:KILLTR$:GOTO78 72 F=F+1:N=1 74 IFA$(N)<>""THENIFDF$=LEFT$(A$(N),9)THENMID$(A$(N),14,6)=DS$:PRINT#2,A$(N):A$(N)=" ":RETURN:ELSEN=N+1:GOTO74 76 PRINT#2,DF$+" "+ID$+DS$:RETURN 78 CALL26041:CLS:GOSUB184:GOSUB124:PRINT@128,"Update another source? Y/N ";:A$=INPUT$(1):GOSUB208:GOSUB202:IFA$="Y"THEN158ELSEIFA$="N"THEN79ELSE78 79 GOSUB184:K$=RF$+R$+R$:GOSUB208:GOSUB54:RUNM":BIBSRT":GOSUB184:GOSUB202:GOTO158 80 CLS:PRINT@134,"PAPER READY?":GOSUB120 84 CLS:C=0:LPRINT"Cross-reference printed ";DATE$:LPRINTSTRING$(78,"="):LPRINT:LPRINT"Source ID's with last update:" 86 GOSUB154:LINEINPUT#1,O$:LINEINPUT#1,D$ 88 FORZ=2TOLEN(O$)STEP4:LPRINT" "MID$(O$,Z,4);" ";MID$(D$,(Z*2)-2,8);" ";:NEXT:LPRINT:LPRINT:LPRINT"Files:" 90 IFNOTEOF(1)THENLINEINPUT#1,PT$:LPRINTUSING"\ \";LEFT$(PT$,13);:C=C+1:GOTO90 92 LPRINT:LPRINTC"files cataloged":CLOSE:RUN 94 CLS:GOSUB208:GOSUB202:GOSUB184:IFDSKI$(RF$)THENKILLRF$ 96 LOADMDF$,F:CLOSE:J$=RF$+CHR$(0):J=VARPTR(J$):GOSUB124:CALL24079,0,PEEK(J+1)+256*PEEK(J+2) 98 CLS:GOSUB206:GOSUB208:R=0:CLS:PRINT"Currently cataloged sources and updates:";: 100 FORZ=2TOLEN(O$)STEP4:R=R+1:PRINTMID$(O$,Z,4);:P=(Z*2)-2:PRINTMID$(D$,P,8)" ";:IFR=3THENPRINT:R=0:IFCSRLIN>6THENGOSUB120:CLS:NEXTELSENEXTELSENEXT 102 GOSUB120:RUN 104 BEEP:CLS:GOSUB208:GOSUB154:GOSUB156:LINEINPUT#1,O$:LINEINPUT#1,D$:BEEP:BEEP 106 P$="":CLS:PRINT"I.D.'s filed:":FORZ=2TOLEN(O$)STEP4:PRINTMID$(O$,Z,3)" ";:NEXT:PRINT 108 PRINT:CALL17001:PRINT" Remove ALL records of?";:CALL17006:LINEINPUT" ";P$ 110 IFP$=""THENCLOSE:KILLRF$:RUN 112 IFLEN(P$)>3THENBEEP:GOTO106ELSEP$=SPACE$(3-LEN(P$))+P$ 114 FORZ=2TOLEN(O$)STEP4:IFMID$(O$,Z,3)=P$THEN116ELSENEXT 116 O$=LEFT$(O$,Z-1)+RIGHT$(O$,(LEN(O$)-(Z+3))):P=(Z*2)-2:D$=LEFT$(D$,P-1)+RIGHT$(D$,(LEN(D$)-(P+7))):PRINT#2,O$:PRINT#2,D$ 118 IFEOF(1)THEN158ELSELINEINPUT#1,IN$:IFMID$(IN$,11,3)=P$THEN118ELSEPRINT#2,IN$:GOTO118 120 GOSUB124:PRINT@280," Press Spacebar to continue.";:CALL24367:CLS:RETURN 122 CLS:CLOSE:LFILESMENU 124 SOUND(1108+(VAL(RIGHT$(TIME$,1))/2*400)),1:RETURN 126 CLS:GOSUB208:FORN=1TO40:A$(N)="":NEXT:PRINT@84,;:GOSUB124:PRINT"Enter ";RN$;:LINEINPUT"I.D. >";I$:IFI$=""THENRUN 128 IFLEN(I$)>3THENBEEP:GOTO126ELSEI$=SPACE$(3-LEN(I$))+I$:GOSUB148:GOSUB150 130 CLS:GOSUB202:GOSUB154:GOSUB156:LINEINPUT#1,O$:LINEINPUT#1,D$:N=1 132 FORZ=2TOLEN(O$)STEP4:IFMID$(O$,Z,3)=ID$THENPRINT#2,O$:GOTO136ELSENEXT:O$=O$+ID$+DV$ 134 D$=D$+DATE$:PRINT#2,O$:PRINT#2,D$:GOTO138 136 P=(Z*2)-2:D$=LEFT$(D$,P-1)+DATE$+RIGHT$(D$,(LEN(D$)-(P+7))):PRINT#2,D$ 138 IFEOF(1)THEN142ELSELINEINPUT#1,U$:IFMID$(U$,11,3)=ID$THEN140ELSEPRINT#2,U$:GOTO138 140 IFLEN(U$)>19THENMID$(U$,10,1)="<":A$(N)=U$:N=N+1:GOTO138:ELSE138 142 IFDV$="d"THEN62 144 CLOSE:OPENCS$FOROUTPUTAS1:N=0 146 N=N+1:IFA$(N)=""THENCLOSE:CLS:PRINT@120,"Insert Tape "CHR$(34)ID$CHR$(34)", press PLAY; ";:A$=INPUT$(1):IFA$<>CHR$(13)THENKILLRF$:RUNELSE50ELSEPRINT#1,A$(N):GOTO146 148 ID$="TRY":RETURN 150 FORL=1TO3:POKEPEEK(VARPTR(ID$)+1)+256*PEEK(VARPTR(ID$)+2)+L-1,ASC(MID$(I$,L,1)):NEXT:RETURN 152 DATE$=LEFT$(DATE$,6)+"88":RETURN 154 CLOSE1:OPENDF$FORINPUTAS1:RETURN 156 CLOSE2:OPENRF$FOROUTPUTAS2:RETURN 158 CLOSE:KILLDF$:SAVEMDF$:KILLRF$:RUN 160 CLS:GOSUB208:L=0:GOSUB124:GOSUB154:PRINT@125,"Search String:";:LINEINPUT" ";S$:IFS$=""THENRUN 162 GOSUB124:PRINT@205,"isplay or

rint results? 164 H$=INKEY$:IFH$="D"THENGOSUB182:GOTO174ELSEIFH$<>"P"THEN164 166 GOSUB182:LINEINPUT#1,TT$:LINEINPUT#1,TT$:TT$="" 168 IFEOF(1)THEN160 170 LINEINPUT#1,I$:IFINSTR(I$,S$)THENLPRINTI$ 172 GOTO168 174 IFEOF(1)THENGOSUB120:GOTO160 176 LINEINPUT#1,I$:IFINSTR(I$,S$)THENPRINTI$:GOSUB180 178 GOTO174 180 IFCSRLIN>6THENGOSUB120:GOSUB183:RETURNELSERETURN 182 LINEINPUT#1,TT$:LINEINPUT#1,TT$:TT$="" 183 CLS:PRINT@10,"Searching for > "S$" <":RETURN 184 Q$=CHR$(34):R$=CHR$(13):DF$=":"+"BIBFYL.DO":TR$="PWRTMP.DO":RF$="BIBFYL.DO":CS$="CASTMP.DO":RETURN 186 CLS:GOSUB124:PRINT@126,"Tape counter reading";:LINEINPUT": ";DS$ 188 IFDS$=""THENDS$=" #":RETURN 190 DS$=SPACE$(5-LEN(DS$))+DS$+"#":RETURN 202 CLS:PRINT@135,"Working...":RETURN 204 GOSUB124:CLS:LFILES:RUN 206 GOSUB154:LINEINPUT#1,O$:LINEINPUT#1,D$:IFLEFT$(O$,1)<>"#"THENERROR52ELSECLOSE:RETURN 208 CLOSE:IFDSKI$(DF$)=0THENPRINT@242," Insert "RF$" storage disk, then":GOSUB120:RETURNELSERETURN