10 DEFFNS="SPCFIDDLE" 20 DEFFND="SPCFID" 30 MODE128 40 OSCLI"K.0|MM|M":OSCLI"FX138,0,128" 50 REM 1 2 7 9 8 3 4 6 5 60 L%=&72FA 70 PROCQ 80 $&3701="**" 90 $&72F1="**" 100 REPEAT 110 L%=L%+1 120 A%=?L% 130 PRINT"&";~L%;" CODE=";A%;" ";:IF A%>32 PRINT TAB(32)CHR$A% ELSE PRINT 140 B$=GET$ 150 IFB$="M"THEN PROCMENU:B$="J" 160 IFB$="J"THEN PROCQ 170 IFB$="C" THEN PROCCHNGE 180 IFB$=":" PROCP 190 IFB$="@":PRINTTAB(45,15);"SAY WHAT?";:INPUTS$:OSCLI"*SAY "+S$:VDU31,45,15:PRINTSPC(30):VDU31,0,30:L%=L%-1 200 IFB$="[":PRINTTAB(45,15);"SPEAK WHAT?";:INPUTS$:OSCLI"*SPEAK "+S$:VDU31,45,15:PRINTSPC(30):VDU31,0,30:L%=L%-1 210 UNTIL FALSE 220 END 230 DEFPROCCHNGE 240 FORDEL%=1TO100:NEXT:PRINT TAB(0,30);" INPUT NEW CHR FOR ";~L%:AA$=GET$:AA%=ASC(AA$) 250 VDU31,0,30:PRINTSPC(50):VDU31,0,30 260 ?L%=AA% 270 L%=L%-1 280 ENDPROC 290 DEFPROCP:B%=L%-2 300 VDU23,7,1,2,0,0,0,0,0,0,23,7,1,2,0,0,0,0,0,0,31,0,1 310 L%=L%-31:A%=?L%:PRINT"&";~L%;" CODE=";A%;" ";:IF A%>32 PRINT TAB(32)CHR$A% ELSE PRINT 320 VDU31,0,31:L%=B%:ENDPROC 330 DEFPROCQ:INPUT"WHERE? "PLC$:IF LEFT$(PLC$,1)="&" C%=FNHX ELSE C%=VAL(PLC$) 340 L%=C%-31:CLS:FOR IL%=0 TO 30:A%=?L%:PRINT"&";~L%;" CODE=";A%;" ";:IF A%>32 PRINT TAB(32)CHR$A% ELSE PRINT 350 L%=L%+1:NEXT 360 L%=L%-1 370 ENDPROC 380 DEFFNHX 390 PLC$="000"+MID$(PLC$,2):PLC$=RIGHT$(PLC$,4):D%=0:FORHL%=1TO4:E%=ASC(MID$(PLC$,HL%)) 400 IFE%>57 E%=E%-55 ELSE E%=E%-48 410 D%=D%*16+E%:NEXT:=D% 420 DEFPROCMENU 430 REPEAT:CLS:PRINT'"SPEECH FIDDLE BY C.J.RICHARDSON."'"1 _ LOAD ROMSPEECH"'"2 _ LOAD SPEECH"'"3 _ CHANGE DATA" 440 PRINT"4 _ TRANSFER DATA FROM SPEECH AREA TO SRAM AREA THEN TO SRRAM"'"5 _ SAVE SRRAM"'"6 _ SAVE SPEECH" 450 PRINT"7 _ COPY SWR RAM TO &2000 FOR EDITING"'"8 _ FIND LAST STARS"'"9 _ PUT SRRAM DATA INTO SPEECH DATA AREA" 460 PRINT"? ";:REPEAT:D$=GET$:F%=VAL(D$):UNTILF%>0AND F%<10:PRINTD$;" HANG ON!" 470 IFF%=1:OSCLI".":INPUT "NAME OF SRRAM "D$:PRINT"CTRL BREAK AFTER DRIVE STOPS!":OSCLI"*SRLOAD "+D$+" 8000 6Q" 480 IFF%=2:OSCLI".":INPUT "NAME OF SPEECH "D$:OSCLI"*RUN "+D$ 500 IFF%=4:G%=&72F8:FORLLL%=&3F2A TO &4B00:?LLL%=?G%:G%=G%+1:NEXT:OSCLI"*SRWRITE 2000 5000 8000 6" 510 IFF%=5:OSCLI".":INPUT"SR NAME "D$:OSCLI"*SRSAVE "+D$+" 8000 BFFF 6Q" 520 IFF%=6:OSCLI".":INPUT" SPEECH NAME TO SAVE "D$:OSCLI"*SAVE "+D$+" 5500 7800 6000" 530 IF F%=7: *SRREAD 2000 5000 8000 6 540 IF F%=8:PROCGTM:PRINT"SPACE TO CONTINUE":REPEATUNTILGET 550 IF F%=9:G%=&72F8:FORLLL%=&3F2A TO &4B00:?G%=?LLL%:G%=G%+1:NEXT 560 UNTILF%=3:ENDPROC 610 DEFPROCGTM:H%=&3700:REPEATH%=H%+1:UNTILCHR$(?H%)="*" AND CHR$(?(H%+1))="*" OR H%=&7000:PRINT"LAST SRAMSTAR IS AT &";~H%+1 620 SPRGL%=&72F0:REPEAT SPRGL%=SPRGL%+1:UNTILCHR$(?SPRGL%)="*" AND CHR$(?(SPRGL%+1))="*" OR SPRGL%=&8000:PRINT"LAST SPEECH STAR IS AT &";~SPRGL%+1:ENDPROC