
Cosas que hay que mejorar/arreglar:
- Comunicación bidireccional con el teclado.
- Interfaz de teclado extendido para que el clon pueda reconocer cualquier tecla de un teclado de PC (teclas de función, etc) para usarse durante el boot, o pulsaciones especiales (Ctrl-Alt-Supr, por ejemplo) para enviar reset a la CPU.
- Puerto $FF
- Cuelgues misteriosos con algunos juegos, como por ejemplo King's Valley. Me da que es algo de las interrupciones, pero tengo que comprobarlo.
Cosas que se han dicho en el hilo de incluir en el core, a ver si me acuerdo de todas:
- Interfaz SPI para leer y escribir en la SPI Flash
- Mapeador para poder acceder a la RAM shadow que se usará de ROM en el arranque normal, durante la fase de boot, para escribir en ella la ROM seleccionada
- Interfaz SPI para acceder a la SD usando la configuración de puertos de DIVMMC
- Mirror de los puertos anteriores en el espacio de puertos de ZXMMC, para compatibilidad +3e (a expensas de que realmente sea necesario, si no se pudiera parchear el +3e para los puertos del DIVMMC)
- Soporte de paginación y traps de DIVMMC: vamos, incluir todo el hardware de un DIVMMC, con los 8KB de ROM conteniendo ESXDOS y lo que dé de sí la RAM que sobre (256KB supongo que podremos usar para DIVMMC)
- Interfaz joystick Kempston/Sinclair
- Bus de expansión (multiplexar señales si no caben todas en el bus)
Cosas que no se han mencionado, pero que no costaría nada meter en el core (en cuanto a espacio se refiere):
- Switch para conmutar entre el modo normal de 3.5MHz, y un modo "turbo" a 7MHz. Podríamos ir a 14MHz (o más) si la memoria fuera más rápida, pero con la que tenemos ahora, multiplexada para funcionar a la vez con el video y con la CPU, el acceso más rápido que podemos hacer con ella son 4 ciclos de reloj del sistema. El reloj del sistema, por cierto, es de 28MHz.
- Ampliación de la interrupción por retrazo vertical, para que sea programable y dispare en una línea de pantalla preseleccionada.
- Switch para conmutar entre el modo normal, con contención en algunas páginas de memoria, y otro sin contención en ninguna de ellas.
- Sistema de sonido compatible con SpecDrum (muestras digitalizadas de 8 bits)
Cosas que tampoco se han mencionado, y que costarían espacio significativo en el core, pero que sé cómo hacerlas
- Un segundo AY-3-8912, para tener Turbo Sound
- El modo de pantalla de 256x128, 16 colores paletizados, de Radastan
- El modo HiRes (512x192) del Timex (80 columnas de texto sin despeinarse)
Cosas que tampoco se han mencionado, que costarían espacio significativo en el core, y que no sé cómo hacerlas, o no sé aún como hacerlas casar con el hard actual:
- El scroll por hardware en los modos ULA/ULAplus que definió Antonio
- Compatibilidad con el esquema de memoria de la especificación Chloe-128
- Sprites por hardware
Para todo aquello que no sean periféricos ya definidos por terceros, se va a pedir al comité de estandarización ZXI un rango de direcciones de puertos (concretamente dos puertos) de los que hay libres según lo definido en ese comité.
http://www.zxshed.co.uk/sinclairfaq/ind ... I_standard