Something like this perhaps… typos not withstanding I have no idea if this will compile but it should be sort of close and put you on the path.
[code]PA0 CON 0 ’ pauses
PA1 CON 1
PA2 CON 2
PA3 CON 3
PA4 CON 4
PA5 CON 5
PA6 CON 6
Fast CON 7
Slow CON 8
Stress CON 14
Relax CON 15
_Wait CON 16 ’ note underscore
Soft CON 18
Volume CON 20
Speed CON 21
Pitch CON 22
Bend CON 23
PortCtr CON 24
Port CON 25
Repeat CON 26
CallPhr CON 28
GotoPhr CON 29
Delay CON 30
Reset CON 31
IY CON 128
IH CON 129
EY CON 130
EH_ CON 131
AY CON 132
AX CON 133
UX CON 134
OH CON 135
AW CON 136
OW CON 137
UH CON 138
UW CON 139
MM CON 140
NE CON 141
NO CON 142
NGE CON 143
NGO CON 144
LE CON 145
LO CON 146
WW CON 147
RR CON 148
IYRR CON 149
EYRR CON 150
AXRR CON 151
AWRR CON 152
OWRR CON 153
EYIY CON 154
OHIY CON 155
OWIY CON 156
OHIH CON 157
IYEH CON 158
EHLL CON 159
IYUW CON 160
AXUW CON 161
IHWW CON 162
AYWW CON 163
OWWW CON 164
JH CON 165
VV CON 166
ZZ CON 167
ZH CON 168
DH_ CON 169
BE CON 170
BO CON 171
EB CON 172
OB CON 173
DE CON 174
DO CON 175 ’ note underscore
ED CON 176
OD CON 177
GE CON 178
GO CON 179
EG CON 180
OG CON 181
CH CON 182
HE CON 183
HO CON 184
WH CON 185
FF CON 186
SE CON 187
SO CON 188
SH CON 189
TH CON 190
TT CON 191
TU CON 192
TS CON 193
KE CON 194
KO CON 195
EK CON 196
OK CON 197
PE CON 198
PO CON 199
RO CON 200
R1 CON 201
R2 CON 202
R3 CON 203
R4 CON 204
R5 CON 205
R6 CON 206
R7 CON 207
R8 CON 208
R9 CON 209
A0 CON 210
A1 CON 211
A2 CON 212
A3 CON 213
A4 CON 214
A5 CON 215
A6 CON 216
A7 CON 217
A8 CON 218
A9 CON 219
_B0 CON 220 ’ note underscore
_B1 CON 221
_B2 CON 222
_B3 CON 223
_B4 CON 224
_B5 CON 225
_B6 CON 226
_B7 CON 227
_B8 CON 228
_B9 CON 229
C0 CON 230
C1 CON 231
C2 CON 232
C3 CON 233
C4 CON 234
C5 CON 235
C6 CON 236
C7 CON 237
C8 CON 238
C9 CON 239
D0 CON 240 ’ DTMF tones
D1 CON 241
D2 CON 242
D3 CON 243
D4 CON 244
D5 CON 245
D6 CON 246
D7 CON 247
D8 CON 248
D9 CON 249
D10 CON 250
D11 CON 251
M0 CON 252 ’ sonar ping
M1 CON 253 ’ pistol shot
M2 CON 254 ’ WOW
EOS CON 255
; nice names for I/O pins
TX CON P2 ; pin we talk to the SJ with
RDY CON P0 ; goes high when “ready”
; define a table of phonemes, the first element in the table is the number of phonemes
TestPhrase ByteTable 22,VV,AXRR,SH,SH,EY,NE,PA5,WW,WW,UX,NE,PO,OWIY,NE,TT,TT,PA5,OWWW,PA2,PA2,PA2,PA2
; get some loop control variables to make things snappy
MyPin var byte
pCount var byte
pIndex var byte
; make a beep
Do
MyPin = RDY ; read the state of the ready pin
If MyPin = 1 Then ; if SJ is ready to accept a byte
SEROUT TX, N9600, [_B9] ; Sound BEEP phoneme
While MyPin <> 1 ; Otherwise loop again
; now set out limit to the number of phonemes plus 1
pCount = TestPhrase(0) + 1
; now step through each phoneme starting at the SECOND entry in the table
For pIndex = 1 to pCount
Do
MyPin = RDY ; read the state of the ready pin
If MyPin = 1 Then ; if SJ is ready to accept a byte
SEROUT TX, N9600, [TestPhrase(pIndex)] ; send the phoneme
While MyPin <> 1 ; otherwise loop again
Pause 20 ; value depends on how long SJ takes to reset ready pin after receiving a character
Next ; increments pIndex and loops until it reaches pCount
; all done.
END
[/code]