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