Despues de ver que las interrupciones quedaban habilitadas y provocaban distorsion en el sonido, pude solucionarlo temporalmente volviendolas a deshabilitar en la parte del programa donde se interrumpia. Me puse a ver como pasarle parametros a la rutina en codigo maquina desde MSX-BASIC, y vi que no era complicado pasar una cadena a traves de la instruccion USR. Cuando estaba implementando eso encontre el error del programa, me habia olvidado una llamada a la rutina de la ROM de la Spectrum para cambiar el color de borde, asi que de milagro no hacia cosas peores.
Como sea salio rapido esta version en la parte de pasaje de parametros, el BASIC le dice que tipo de valor se le paso, si no es alfanumerico el programa retorna, si tiene longitud 0 tambien, y si es algo valido lo reproduce.
Como en las otras versiones del programa, el sintetizador se ejecuta en la direccion de carga, en este caso $A000, el programa BASIC esta comentado, hay que ejecutar DEF USR0=&HA000, y DEF USR1=&HA003 si se quiere tener acceso a las dos rutinas (la segunda es la demostracion que muestra al principio). Si solo se va a usar el sintetizador, se puede hacer DEF USR=&HA000 ya que no va a haber otra rutina en CM.
Para reproducir un texto basta con colocarlo en A$=USR0(TEXTO), donde A$ es una variable cualquiera y solo sirve para recibir lo que retorna USR0, para que no de error el BASIC, y TEXTO puede ser una variable alfanumerica, una cadena literal o cualquier expresion que devuelva una cadena.
Por ejemplo:
A$=USR0("OLA")
A$=USR0(T$)
A$=USR0("OLA"+T$)
Si solo se usa una rutina, USR0 se reemplaza por USR.
El sintetizador solo acepta textos en mayusculas, si se presiona ENTER sin ingresar un texto, se repite el anterior, si hubiera uno, y si se ingresa * se sale del programa.
Otro detalle es que la instruccion INPUT no permite ingresar comas, que para el sintetizador son comandos validos, que representan una pausa de 1/4 de segundo. Si se quiere usar estos signos hay que escribir el texto entre comillas y ahi lo toma perfectamente.
La imagen esta hecha para un diskette de 360K, voy a ver si lo puedo probar en la Talent despues. Esta es la beta 4, para unificar con las otras versiones, y si anda todo bien va a pasar a ser la version 1.0, lo que por ahi tengo que ajustar son los colores, le puse colores similares a los de Spectrum pero en esta maquina se ven descoloridos, voy a tener que elegirlos mejor.
]tavmsx360.zip[/file]