Pasaron menos de 2 meses pero hubo un monton de cambios en la placa, no llegue a publicar la v1.1, por suerte, y ya tenemos la v1.2. Y digo por suerte, porque la v1.1 era incompatible con el soft existente, y la v1.2 vuelve a ser compatible, asi que los usuarios de la v1.0 podran modificarla y seguir usando el soft actual.
En la v1.1 decidi agregar una entrada RX para recibir datos desde el PIC, algo que no habia en la v1.0 porque los unicos datos que enviaba el PIC eran el mensaje de inicio, y el eco de lo recibido si se habilitaba ese jumper. Pero en la v1.1 ya habia un comando para consultar el modelo del sintetizador y la version del firmware, entonces necesitaba una entrada en el puerto de joystick para recibirlos.
Cuando adapte el juego REC de DamianWorf, vi que el usaba la orden PLAY para generar los tonos, y tambien una funcion de esa misma orden que le permitia saber cuando un tono terminaba de reproducirse. Como el programa era muy dependiente de esta sincronizacion con la reproduccion de sonido, tuve que ingeniarmelas para chequear rapidamente esto, razon por la cual esta conectada la salida PLAYING del sintetizador, que va a la direccion izquierda del puerto de joystick. La salida CTS del sintetizador, que se pone a 0 cuando puede recibir datos desde la MSX, esta conectada a la direccion arriba del puerto de joystick. Estas direcciones estan elegidas de forma de dar siempre un valor valido para un joystick (es decir, no use por ejemplo las direcciones arriba y abajo, que darian un valor ilegal), por lo que se puede chequear el estado del sintetizador con la orden STICK, verificando si no hay movimiento, si se mueve a la izquierda, hacia arriba, o en diagonal arriba-izquierda.
En la v1.1 tenia que agregar una entrada RX para recibir datos del PIC, y como ya no podia agregarla a las entradas izquierda-derecha-arriba-abajo, porque habria combinaciones ilegales para un joystick, lo que hice fue asignar RX a lo que era la salida de datos hacia el sintetizador (TX), que estaba en el pin 6 (boton 1 del joystick) , y asignar TX al pin que solo sirve como salida, el 8.
Estas modificaciones eran logicas, pero hacian que el soft antiguo por un lado siguiera siendo compatible a nivel BASIC, porque la orden STICK funcionaria de la misma manera, pero por otro lado se hacia incompatible en el envio de datos hacia el sintetizador, cosa que se solucionaba con otro driver en reemplazo del anterior.
En eso estaba cuando empece a experimentar con la lectura de joystick analogico de PC y luego con el modulo wifi, lo que me llevo a congelar la v1.1 y hacer una v1.2 que se adaptara mejor a los futuros cambios. En realidad podria haber sido esa la v1.1, pero como habia publicado ya el plano, era menos confuso llamarla 1.2 y cancelar la anterior.
El plano actual queda asi:
Si bien no pude hacer andar del todo la entrada de joystick analogico en este sintetizador (si funciona en el HD1), decidi dejar reservados esos pines para que si logro hacerlo andar, solo haga falta actualizar el firmware del PIC , y agregar los componentes necesarios. Como la lectura de joystick se hace en este sintetizador con las entradas de comparadores, hubo que mover varios pines de lugar, ya que esas entradas no pueden estar en cualquier pin. Tambien al destinar 2 entradas para los ejes del joystick y 2 para los botones, hubo que eliminar funciones, como el led CONFIGMODE que no tenia mucha utilidad, y los dos jumpers _ECHO (que solo es util usando el sintetizador desde una terminal) y _SPKMODE, que habia introducido en la v1.1 y nunca se llego a usar.
De las pruebas compartiendo el puerto RS232 de la C64 entre el modulo wifi y el sintetizador, surgio la necesidad de una entrada _CS, que cuando se pone a 0 habilita al sintetizador a leer y enviar datos por RS232, y si esta a 1 ignora cualquier envio y recepcion. Esta linea deberia ser controlada por una nueva salida DTR / SEL que seleccionaria si queremos "hablar" con el sintetizador o el modulo wifi, si se arma una placa dual, en este caso iria fija a masa.
Para una placa dual con sintetizador y wifi se necesitan 3 salidas: TX, RTS y DTR/SEL. Como en el puerto de joystick de la MSX hay justo 3 salidas, volvi a asignar TX en el pin 6 como en la placa de la v1.0, y asigne las nuevas RTS y DTR/SEL a los pines 7 (boton 2 del joystick) y 8 respectivamente. En esta placa los pines 7 y 8 quedan sin conectar.
La nueva entrada RX que leera datos desde el PIC, normalmente estara a 1, por lo que no deberia interferir para nada a la orden STICK que lee CTS y PLAYING. Los nuevos comandos de chequeo de modelo de sintetizador y version del firmware, asi como los futuros de lectura de joystick analogico, estan diseñados para enviar datos de a un byte a la vez y apenas se recibe un byte desde la MSX, por lo que la lectura desde la MSX se haria en un driver especial y nunca ocurriria durante la ejecucion del programa BASIC. Por eso el soft actual deberia funcionar sin problemas, ya que RX nunca recibiria nada (solo en el arranque del sintetizador, cuando la MSX tambien esta arrancando), y al no estar conectadas RTS y DTR/SEL, da igual que el driver v1.0 las ignore.
En definitiva, el que tiene un sintetizador v1.0, puede regrabar el PIC con la v1.2, adaptar las conexiones en el PIC, y agregar un cable al puerto de joystick para leer datos desde el PIC. Esto ultimo solo se va a usar en soft que todavia no esta hecho, que autodetectaria si hay un sintetizador conectado.