0 'UTLDIC.BA Copyright 1986 David W. Willman 1 CLEAR256:GOSUB30:PRINT"Insert Dictionary disk #1 in drive then":GOSUB28 2 MAXFILES=2:CW=80:WN=INT((CW-4)/25):DIMW$(WN):DIMF(25):DN=1:ONERRORGOTO64:FORN=65TO90:GOSUB29:GOSUB69:CLOSE:F(N-65)=DN:NEXT 3 GOSUB30:PRINT" 1. Look-up individual words.":PRINT" 2. Remove individual words.":PRINT" 3. Print words in files.":PRINT" 4. Count words in files.":PRINT" 5. Return to Menu." 4 PRINT:PRINT" Please make selection:";:C$=INPUT$(1):C=VAL(C$):C$="print":IFC<1ORC>5THEN3ELSEIFC=5THEN35ELSEIFC=4THENC$="count" 5 IFC=1THENC$="look-up":GOTO17ELSEIFC=2THENC$="remove":GOTO17ELSEA=0 6 CLS:GOSUB49:IFA=29THEN35ELSEIFA=28THEN3 7 TC=0:IFA=26ORA=27THENFORN=65TO90ELSEFORN=65+ATO65+A 8 PRINT@280,SPACE$(38);:FC=0:PT$="C":LL=65:PG=1:GOSUB29:GOSUB72:IFC=3THEN12ELSEPRINT@240,"Words in "F$" ="SPACE$(10); 9 PRINT@262,FC:IFNOTEOF(1)THENLINEINPUT#1,A$:FC=FC+1:GOTO9 10 CLOSE:TC=TC+FC:IFA<>26THENBEEP 11 GOSUB73:NEXT:IFA<26THENGOSUB28:GOTO6ELSEPRINT@240,"Total words in dictionary ="TC:GOSUB28:GOTO6 12 PRINT@240,"Printing words in "F$:LPRINT"Dictionary file "F$;SPACE$(CW-54);DATE$;SPACE$(8)"Page "PG:LPRINT:LPRINT:CL=3 13 FORM=1TOWN:W$(M)="":NEXT:M=1 14 IFM>WNTHEN15ELSEIFEOF(1)THENGOSUB57:PT$="C":GOTO16ELSEGOSUB36:W$(M)=W$:M=M+1:GOTO14 15 GOSUB57:IFCL64ANDA<91THENLC=1 19 NEXT:IFLC=1THENGOSUB30:GOSUB31:PRINTCHR$(34);B$;CHR$(34)" is not all":PRINT"lower case. ";:GOTO61 20 LC=0:FORN=1TOLEN(B$):A=ASC(MID$(B$,N,1)):IFA>96ANDA<123THEN21ELSEIFA=39ORA=45THEN21ELSELC=1 21 NEXT:IFLC=1THENGOSUB30:GOSUB31:PRINTCHR$(34);B$;CHR$(34)" contains an":PRINT"illegal character. ";:GOTO61 22 A=ASC(LEFT$(B$,1)):IFA<97ORA>122THENGOSUB30:GOSUB31:PRINTCHR$(34);B$;CHR$(34)" does not start":PRINT"with a letter. ";:GOTO61 23 N=A-32:GOSUB29:GOSUB72:CLS:PRINT@40,"Searching Dictionary file "F$:IFC=2THEND$=C$:GOTO25ELSED$="foun" 24 IFEOF(1)THENCLOSE:GOTO62ELSELINEINPUT#1,W$:IFB$=W$THENCLOSE:GOTO63ELSEIFW$>B$THENCLOSE:GOTO62ELSE24 25 LC=0:FC=0 26 W=FC:OPEN"DIC-TP.DO"FOROUTPUTAS2:GOSUB66 27 IFLC=0THEN62ELSE63 28 PRINT"Hit any key to continue.(Q=Quit)";:K$=INPUT$(1):IFK$="Q"ORK$="q"THEN35ELSERETURN 29 F$="0:DICT-"+CHR$(N)+".DO":RETURN 30 BEEP:CLS:PRINT:RETURN 31 PRINTCHR$(27)"p";:RETURN 32 PRINTCHR$(27)"q";:RETURN 33 IFF$=A$THENGOSUB31:PRINT"File "F$" was not found.":GOSUB32:GOSUB28:GOTO35ELSE71 34 GOSUB31:PRINT"Error #"ERR"in Line #"ERL:GOSUB32:RETURN 35 CLEAR256:MAXFILES=1:MENU 36 LINEINPUT#1,W$ 37 IFLEN(W$)>21THENRETURNELSEW$=W$+" ":GOTO37 38 PRINT"DICT-"CHR$(N)"."; 39 GOSUB32:PRINT" ";:RETURN 40 PRINT" All ";:GOTO39 41 PRINT" Each ";:GOTO39 42 PRINT" Exit ";:GOTO39 43 PRINT" Menu ";:GOTO39 44 N=65+A:PRINT@0+A*8,;:IFA=26THEN40ELSEIFA=27THEN41ELSEIFA=28THEN42ELSEIFA=29THEN43ELSE38 45 IFB=29ANDA=0THENA=29:RETURNELSEIFB=29THENA=A-1:RETURN 46 IFB=31ANDA>24THENA=A-25:RETURNELSEIFB=31THENA=A+5:RETURN 47 IFB=30ANDA<5THENA=25+A:RETURNELSEIFB=30THENA=A-5:RETURN 48 IFA=29THENA=0:RETURNELSEA=A+1:RETURN 49 PRINT@0,;:FORN=65TO90:IFN=65+ATHENGOSUB31 50 GOSUB38:NEXT:IFA=26THENGOSUB31 51 GOSUB40:IFA=27THENGOSUB31 52 GOSUB41:IFA=28THENGOSUB31 53 GOSUB42:IFA=29THENGOSUB31 54 GOSUB43:BEEP:PRINT@240,"Select file to be "C$"ed":PRINT"with arrow keys then enter."; 55 B$=INKEY$:IFB$=""THEN55ELSEB=ASC(B$):IFB=13THENRETURNELSEIFB>32ORB<28THEN55 56 GOSUB44:GOSUB45:GOSUB31:GOSUB44:GOTO55 57 FORM=1TOWN:LPRINTSPACE$(4);W$(M);:NEXT:LPRINT:CL=CL+1:RETURN 58 IFPT$="S"ANDCL>LLTHENPRINT@280,;:BEEP:GOSUB28:PRINT@280,SPACE$(37);:RETURNELSEIFCL>LLTHENRETURNELSELPRINT:CL=CL+1:GOTO58 59 GOSUB31:PRINT"Please insert Dictionary disk #"STR$(DN)".":GOSUB32:RETURN 60 GOSUB31:PRINT"Please remove disk then turn on drive.":GOSUB32:RETURN 61 PRINT"Please try again.":GOSUB32:GOTO18 62 GOSUB31:PRINTCHR$(34);B$;CHR$(34)" was not found.":GOSUB32:GOSUB28:GOTO17 63 GOSUB31:PRINTCHR$(34);B$;CHR$(34)" was "D$"d.":GOSUB32:GOSUB28:GOTO17 64 IFERR=7THEN65ELSEGOSUB70:GOSUB30:IFERR=52THEN33ELSEIFERR=68THENGOSUB59:GOSUB28:GOTO2ELSEIFERR=71THENGOSUB60:GOSUB28:GOTO1ELSEGOSUB34:GOSUB28:GOTO35 65 GOSUB31:BEEP:PRINT"Out of Memory.":GOSUB32:GOSUB28:GOTO35 66 IFEOF(1)THENGOSUB67:RETURNELSELINEINPUT#1,W$:FC=FC+1:IFW$=B$THENLC=1:GOTO66ELSEPRINT#2,W$:GOTO66 67 IFLC=1THENCLOSE:OPEN"DIC-TP.DO"FORINPUTAS1:OPENF$FOROUTPUTAS2 68 IFEOF(1)THENCLOSE:KILL"DIC-TP.DO":RETURNELSELINEINPUT#1,W$:PRINT#2,W$:GOTO68 69 OPENF$FORINPUTAS1:RETURN 70 FORK=1TO600:NEXT:RETURN 71 DN=DN+1:GOSUB59:GOSUB28:A$=F$:RETURN 72 IFF(N-65)=DNTHEN69ELSEDN=F(N-65):PRINT@240,;:GOSUB59:BEEP:GOSUB28:A$=F$:PRINT@240,SPACE$(78);:GOTO69 73 IFA<27THENRETURNELSEPRINT"[EOF] ";:GOTO28