Si, estuve probando programas que generan sonido en la ZX81, lo que no sabia antes es que usa el mismo puerto para el video, no se bien con que funcion. Sabia que con FAST no tenia video, lo que no supe hasta hace un par de dias es que la maquina genera un ruido continuo mientras tiene video. Eso es lo que me complica, mientras emito el sonido no habria problemas, pero el resto del tiempo habria que tener el video activado para que el usuario ingrese un texto, y ahi tendria que aguantarse esa interferencia. Tal vez lo pruebe igual en el futuro aunque sea para escucharlo en una maquina real, pero no tiene mucha gracia con esa interferencia.
En la Spectrum sabia que si se evita la zona de memoria afectada por el refresco del video no se tiene interrupciones, y en este caso ya no tenemos la interferencia del video en el sonido, asi que pareciera ser la maquina ideal para probar. El unico tema es el parlante, que no debe dejar apreciar mucho el sonido. Mi idea es usar PWM para generar sonido digital de 4 bits, ya escuche sonido de 1 bit desde las PCs y siempre me parecio desastroso. El sintetizador Talker de la MSX tiene ese tipo de sonido y la verdad no se le entiende casi nada.
Con el chip de la MSX ya habia probado el sintetizador en modo analogico, tal como habia hecho al principio en la C64, y sonaba mejor de lo que esperaba, pero definitivamente mejor que el Talker, incluso estando hecho en BASIC.
Lo que pensaba hacer en MSX es emitir sonido de digital de 4 bits, linealizando de alguna manera los 46 niveles de volumen posibles en el chip, ya que tiene volumen que crece exponencialmente, al contrario del SID que tiene volumen lineal, pero solo un volumen general en vez de un volumen por canal que tiene el de MSX.
Por ahora investigo el Z80 y la arquitectura basica de MSX, tambien estuve probando el emulador Spin (emulando Spectrum 48K) y descubri que tiene un ensamblador integrado, asi que seguramente alguna prueba voy a hacer ahi.
El AY-3-891x en la version actual del sintetizador no tiene desventajas con respecto al SID, al menos no por el momento, ya que solo uso el volumen para generar sonido digital, es decir que no aprovecho para nada el sonido del SID. Incluso en la C64 tengo desventajas, como que el chip de video interrumpe al procesador para leer la pantalla, razon por la cual tengo que emitir el sonido durante las lineas de barrido donde no hay interrupcion. Tambien hay dos modelos de SID que actuan de forma muy diferente para el metodo que uso para reproducir sonido digital.
En la MSX, asi como en la ZX81 y Spectrum, el sonido deberia ser el mismo que obtengo en la C64, en MSX seria con variacion directa del volumen, en ZX81 y Spectrum seria usando PWM, que permite emitir varios niveles analogicos usando una salida de 1 bit, y que es de hecho el metodo que usa el PIC para emitir sonido de 8 bits.