0 REM**THIS PROGRAM IS WRITTEN FOR THE **TRS-80 MODEL 100 PORTABLE 1 CLEAR(5000):MAXFILES=2:DEFINTI,J,K 2 MV=175:DEFSTRF,V:DIMV(MV,1) 3 FV="VOC.DO":FT="TEL.DO" 5 ER=1 6 CLS:PRINT@95,"HIT KEY" 7 A$=INKEY$:A=RND(3):IFA$=""THEN6 9 GOSUB70:GOSUB970 10 CLS 11 PRINTTAB(12);"MENU" 20 PRINT"1)EDIT INPUT FILE" 25 PRINT"2)VOC SCAN TEL FILE" 26 PRINT"3)TALK" 27 PRINT"4)END" 28 PRINT"5)HELP" 40 IFER=1THEN ONERROR GOTO 65000 50 INPUTA 55 ONAGOTO100,200,500,980,800 60 GOTO10 70 CLS 71 PRINT@90,"AUTOMATIC MOUTH" 72 PRINT@130,"AN AI PROGRAM BY:" 73 PRINT@180,"BRUCE GREENBERG" 74 PRINT@210,"COMPUSERVE ID=76606,3613" 78 FORI=0TO3000:NEXT 79 RETURN 100 REMEDIT IFILE 102 ER=1 104 CLS:PRINT"FILES:":FILES 105 INPUT"FILE NAME TO STUDY";FI$ 106 FI$=FI$+".DO" 107 AF=0:INPUT"STOP AFTER EACH LINE?(Y)";A$:IFA$="Y"THENAF=1 108 IFER=1THENON ERROR GOTO 180 110 OPENFI$FORINPUTAS1 115 OPEN"TEL.DO"FOROUTPUTAS2 120 CLS: 124 IFEOF(1)THEN160 125 INPUT#1,A$:A$=" "+A$+" " 126 D$=" ":FORI=1TOLEN(A$):B$=MID$(A$,I,1):C$=" " 127 IF(B$>="a"ANDB$<="z")OR(B$>="A"ANDB$<="Z")ORB$="! "ORB$="."ORB$="?"THENC$=B$ 128 IFRIGHT$(D$,1)<>" "ANDC$=" "THEND$=D$+C$ 129 IFC$<>" "THEND$=D$+C$ 130 NEXTI 131 IFD$=""THEN150 134 PRINTD$ 135 IFAF=0THEN PRINT#2,D$ 140 B$=INKEY$:IFB$=""ANDAF=1THEN140 141 IFB$="E"THEN160 145 IFB$=" "ANDAF=1THENPRINT#2,D$ 150 A$=INKEY$:IFA$>""THENIFASC(A$)=27THEN160 155 GOTO124 160 CLOSE1,2 165 INPUT"KILL INPUT FILE";A$ 170 IFA$="YES"THENKILLFI$ 175 RUN 180 PRINT"SORRY-I CANT FIND THAT FILE!" 181 PRINT"PLEASE USE .DO FILES" 182 PRINT"-DONT ADD THE .DO EXTENTION!!!" 183 INPUT"";A$ 185 RUN 200 REMVOC SCAN 201 IFER=1THENONERRORGOTO204 203 GOTO210 204 PRINT"THERE IS'ENT A PROPERLY CREATED" 205 PRINT"TEL.DO FILE IN MEMORY" 206 PRINT"PLEASE SEE HELP.." 207 INPUT"";A$ 208 RUN 210 OPENFTFORINPUTAS1 211 IFEOF(1)THEN400 212 INPUT#1,VA:PRINTVA:BEEP 213 A1=-1:A2=0 215 REM ME 220 B$="" 230 IFVA=""THEN211 235 A$=LEFT$(VA,1) 240 VA=RIGHT$(VA,LEN(VA)-1) 250 IFA$<>" "THENB$=B$+A$:GOTO230 260 IFB$=""THEN215 270 AF=-1 275 FORI=0TOIV 280 IFV(I,0)=B$THENAF=I:I=IV 290 NEXT 300 IFAF=-1ANDIV=MVTHENBEEP:GOTO215 305 IFAF=-1THENIV=IV+1:V(IV,0)=B$:V(IV,1)="":AF=IV 320 IFAF<81THENAV=AF+45:ELSEAV=AF+48 325 IFA1>-1THENIFLEN(V(A1,1))<250THENV(A1,1)=V(A1,1)+CHR$(AV) 326 A1=AF:A2=AV 330 A$=INKEY$:IFA$>""THENIFASC(A$)=27THEN400 340 GOTO215 400 CLOSE1:GOTO10 500 REMTALK 501 CLS 502 PRINT@85,"HIT

TO TURN PRINTER ON/OFF" 503 PRINT@125,"HOLD TO EXIT" 504 PRINT@165,"ANY OTHER KEY WILL STOP/START" 505 FORI=0TO3000:NEXT 550 W=RND(3)*IV+1 560 W$=V(W,0):W1$=V(W,1) 570 IFW$>""THENPRINTW$;" ";:IFPF=1THENLPRINTW$;" "; 575 IFW$="."ORW$="?"ORW$="!"THENPRINTW$:GOSUB700:W$="":IFRND(3)>.1THEN550 585 IFW1$=""THENPRINT".":W$=".":GOSUB700:GOTO550 586 IFRND(3)>.92THENPRINT"?":W$="?":GOSUB700:GOTO550 590 W2$=MID$(W1$,1+LEN(W1$)*RND(3),1) 595 T=ASC(W2$) 600 IFT<127THENT=T-45:ELSET=T-129 610 W=T 630 AT=FRE(3) 640 GOTO560 700 IFPF=1THENLPRINTW$ 710 AT$=INKEY$:IFAT$=""THENRETURN 711 IFASC(AT$)=27THENRUN 712 IFAT$="P"THENPF=-PF:RETURN 713 AT$=INKEY$:IFAT$=""THEN713 714 RETURN 800 REMHELP 801 CLS:PRINT 802 RESTORE 803 READA$ 804 IFA$="END"THEN10 805 IFA$="*"THENBEEP:INPUT"";A$:CLS:PRINT:GOTO803 806 PRINTA$ 807 GOTO803 810 DATATHIS PROGRAM WILL SCAN A TEXT FILE,LEARNING IT'S VOCABULARY 812 DATAAND MAKEING NOTE OF THE WORD THAT,FOLLOWS EACH WORD. 813 DATAIT THEN CREATES TEXT BY STRINGING,TOGEATHER WORDS THAT FOLLOW 815 DATA*,YOU MUST HAVE AS MUCH FREE MEMORY AS,THE TEXT YOU WANT TO SCAN. 817 DATAFIRST USE SELECTION 1 TO EDIT THE FILE,THE EDITED VERSION- 819 DATAREADABLE BY THE PROGRAM,WILL BE IN TEL.DO 821 DATA*,THEN USE SELECTION 2 WHICH WILL SCAN,TEL.DO FOR IT'S VOCABULARY 823 DATA*,I RECOMEND YOU USE END(SELECTION 4),AFTER A TIME CONSUMING VOC SCAN 825 DATAAS AN ERROR WOULD LOSE THE VOC ARRAY,*,NOW YOU NEED ONLY TYPE SELECTION 3,FOR THE PROGRAM TO CREATE TEXT 827 DATA*,NOTE:,ONCE THE ORIGINAL FILE IS EDITED,INTO THE TEL.DO FILE 829 DATATHE ORIGINAL MAY BE DELETED,*,AND...ONCE THE TEL.DO FILE 831 DATAHAS BEEN SCANED INTO THE VOC.DO FILE,IT TOO MAY BE DELETED 835 DATA*,YOU MAY SCAN MORE FILES INTO VOC.DO 837 DATABY FOLLOWING THE EDIT-SCAN PROCEDURE,AT ANY TIME,BUT THE VOCABULARY 838 DATAIS LIMITED TO THE FIRST 175 WORDS SCANED 840 DATA*,NOTE ALSO,HOLDING THE ESC KEY,DURRING ANY FUNCTION 842 DATAWILL RETURN YOU TO THE MENU,WITHOUT DATA LOSS 849 DATA*,,,* HAVE FUN * 850 DATA* 890 DATAEND 970 REMLOAD VOC 971 IFER=1THENONERRORGOTO978 972 OPENFVFORINPUTAS1 973 PRINT"LOADING":IV=0 974 INPUT#1,A$:INPUT#1,B$:IFA$<>"END"THENV(IV,0)=A$:V(IV,1)=B$:IV=IV+1:GOTO974 976 CLOSE1 977 RETURN 978 IFER=1THENONERRORGOTO65000 979 OPENFVFOROUTPUTAS1:PRINT#1,"END":PRINT#1,"END":CLOSE1:GOTO972 980 REMSAVEVOC 982 OPENFVFOROUTPUTAS1 983 FORJ=0TOIV 984 PRINT#1,V(J,0):PRINT#1,V(J,1) 985 NEXT 986 PRINT#1,"END":PRINT#1,"END" 988 CLOSE1:END 65000 REM ME 65001 BEEP:CLS 65002 PRINT"STRANGE ERROR!!!!" 65003 INPUT"";A$ 65004 RUN