I have added the SPEECH to MLC and the PreCompiler (so the "16 bytes in fast ram" problem is solved).
Just a little video, I modified the SCROLL program to make it talk. You can see that MLC has enough power to manage 3 sprites, build a scroll from the character definitions and talk at the same time.
With the PreCompiler, to use a standard word from the SPEECH ROM, you just have to type this:
SAY &wHELLOAs the precompiler has a database with the standard words, it will turn this to
SAY &H351AThat is the rom address of this word.
If you want to make it say a whole sentence, here is the minimal program:
startdata ; define a table with the words addresses words &wI &wAM &wTHE words &wTEXAS_INSTRUMENTS &wHOME &wCOMPUTER enddata A FOR I 0 5 GETTABLE A(I) W ; get address of next word SAY W ; say word REPEAT TALKING? ; wait while computer is talking UNTIL<> NEXT ; go to next word
You can still define your own words with the byte definitions using SAYUSER. Here is the one taken from the E/A manual:
startdata ; defines a table with the byte definitions word 118 ; first word is the number of bytes bytes 166,209,198,37,104,82,151 bytes 206,91,138,224,232,116,186 bytes 18,85,130,204,247,169,124,180 bytes 116,239,185,183,184,197,45,20,32,131 bytes 7,7,90,29,179,6,60,206,91,77 bytes 136,166,108,126,167,181,81,155,177,233 bytes 230,0,4,170,236,1,11,0,170,100 bytes 53,247,66,175,185,104,185,26,150,25 bytes 208,101,228,106,86,121,192,234,147,57 bytes 95,83,228,141,111,118,139,83,151,106 bytes 102,156,181,251,216,167,58,135,185,84 bytes 49,209,106,4,0,6,200,54,194,0 bytes 59,176,192,3,0,0 enddata A ; A will be the name of the bloc sayuser A,1 ; say words, 1=from CPU RAM
Last, you can SAY a user definition located in VDP RAM (for example your string$) using
SAYUSER vdp_address, -1
I will put everything on my page...
Guillaume.














