mcleod_ideafix escribió:Lo tiene todo documentado en la propia web. Concretamente, en este enlace:
http://www.retroleum.co.uk/smart.zip
No sé cómo hará los accesos I/O el firmware +3e, pero si lo hace con instrucciones del tipo IN A,(nn) la cosa va a ser un poco complicada, ya que los puertos que usa este chisme son de 16 bits.
Puede que sea más sencillo alterar la descripción del circuito dentro de la CPLD para que haga "mirror" de los puertos en los que usa el ZXMMC.
La mayoría de los accesos son como dices, en el caso de IN A no es tan problemático porque con 2 bytes se soluciona siempre (precedido de un LD A, parte alta). El problema está en los OUT (nn), a que requieren de 3 a 5 bytes para arreglarlo y eso sí requiere más tiempo de ajuste.
-- Actualizado 19 Oct 2014, 23:17 --
Para colmo el puerto de habilitación no es independiente, en ese puerto se manejan más cosas. Antes de hacer el out (al puerto $faf3) habría que leerlo para no cambiar el resto de bits. Habrá que cambiar los IN por CALL ajustando un byte y luego buscar un hueco para la subrutina.
-- Actualizado 19 Oct 2014, 23:36 --
Al final la putada está en los INIR y en los OTIR, ya que la parte alta del puerto se va decrementando.