home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ahoy 1986 September
/
Ahoy_Magazine_86-09_1986_Double_L.d64
/
Speech64
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
3KB
|
118 lines
10 rem speech64
20 rem by scott c. baggs
30 gosub 4000 :rem poke ml routines
35 poke49358,5 : rem set pitch
40 print chr$(147): rem clear screen
50 print tab(14);"* speech64 *"
52 print:print:print
54 print tab(14);"1 record word":print tab(14);"2 playback word"
55 print tab(14);"3 load data ":print tab(14);"4 save data "
58 geta$:ifa$=""thengoto 58
59 ifa$>"4"thengoto 58
60 on val(a$) gosub 200,70,400,1000
65 goto40
70 rem playback prameters
100 srt=64 : gosub110
102 poke53265,peek(53265)and239 :rem blank screen
105 sys49287 : rem playback
106 poke53265,peek(53265)or16 :rem enable screen
108 return
110 a=49154 : rem $c002
120 pokea,0:pokea+1,srt :pokea+3,srt +24 :pokea+2,0 : return
200 rem record
210 print "record - press play on cassette"
215 if(peek(1)and16)=16then 215 :rem wait
220 srt=64: gosub110
230 print "start tape": sys49200
240 return
400 rem load data
420 input "filename";fln$
425 input"device number #8[157][157][157]";dv
430 load+fln$,dv,1
480 return
1000 print"[147]save speech data"
1005 input"device number #8[157][157][157]";dv
1010 input"file to save ";f$:iff$=""then1010
1015 rem loc. of f$
1020 poke187,peek(71):poke188,peek(72)
1025 rem cslc. pointer to f$
1030 fa=peek(187)+256*peek(188)
1035 rem set filename length
1040 poke183,peek(fa)
1055 rem set fn. pointer
1060 poke187,peek(fa+1):poke188,peek(fa+2)
1070 rem
1080 sa$="4000"
1090 n$=sa$:gosub2000:sl=bl:sh=bh
1095 rem
1100 ea$="5800"
1110 n$=ea$:gosub2000:el=bl:eh=bh
1115 rem set strt add. ptr.
1120 poke251,sl:poke252,sh
1125 rem set dev. & s.a.
1130 poke186,dv:poke185,1
1135 rem set .a,.x,&.y
1140 poke780,251:poke781,el:poke782,eh
1150 sys65496:rem go do save ($ffd8)
1160 return
1999 rem
2000 rem hex -> 2 bytes (dec.)
2010 :
2020 n=0
2030 fori=1tolen(n$)
2040 :x=asc(mid$(n$,i))-48
2050 :n=16*n+x+7*(x>9)
2060 next
2100 bh=int(n/256):bl=n-256*bh
2110 return
4000 fori=49152 to 49371
4010 read q
4020 poke i,q
4030 next i
4040 return
4090 rem data for ml routines
5000 data 0 , 255 , 0 , 64 , 0
5010 data 88 , 5 , 255 , 0 , 255
5020 data 0 , 255 , 0 , 0 , 0
5030 data 255 , 0 , 1 , 2 , 4
5040 data 8 , 16 , 32 , 64 , 128
5050 data 255 , 0 , 255 , 0 , 255
5060 data 0 , 255 , 0 , 254 , 253
5070 data 251 , 247 , 239 , 223 , 191
5080 data 127 , 255 , 187 , 255 , 3
5090 data 255 , 32 , 255 , 173 , 17
5100 data 208 , 41 , 239 , 141 , 17
5110 data 208 , 120 , 32 , 192 , 192
5120 data 173 , 13 , 220 , 240 , 251
5130 data 162 , 16 , 173 , 13 , 220
5140 data 208 , 6 , 202 , 240 , 241
5150 data 76 , 67 , 192 , 162 , 8
5160 data 32 , 205 , 192 , 173 , 13
5170 data 220 , 41 , 16 , 240 , 10
5180 data 177 , 2 , 29 , 16 , 192
5190 data 145 , 2 , 76 , 110 , 192
5200 data 177 , 2 , 61 , 32 , 192
5210 data 145 , 2 , 76 , 110 , 192
5220 data 202 , 208 , 223 , 200 , 208
5230 data 218 , 230 , 3 , 165 , 3
5240 data 205 , 5 , 192 , 208 , 209
5250 data 88 , 173 , 17 , 208 , 9
5260 data 16 , 141 , 17 , 208 , 96
5270 data 120 , 32 , 192 , 192 , 162
5280 data 8 , 32 , 205 , 192 , 177
5290 data 2 , 61 , 16 , 192 , 240
5300 data 12 , 169 , 15 , 141 , 24
5310 data 212 , 76 , 159 , 192 , 234
5320 data 76 , 175 , 192 , 169 , 0
5330 data 141 , 24 , 212 , 76 , 171
5340 data 192 , 234 , 76 , 175 , 192
5350 data 202 , 208 , 219 , 200 , 208
5360 data 214 , 230 , 3 , 165 , 3
5370 data 205 , 5 , 192 , 208 , 205
5380 data 88 , 96 , 173 , 2 , 192
5390 data 133 , 2 , 173 , 3 , 192
5400 data 133 , 3 , 160 , 0 , 96
5410 data 169 , 5 , 141 , 0 , 192
5420 data 206 , 0 , 192 , 173 , 0
5430 data 192 , 208 , 248 , 96 , 255