Mejoras recientes de FUZIX para el Amstrad CPC
Durante los últimos meses, he seguido trabajando en el port de FUZIX para el Amstrad CPC. Aún no tengo pensado sacar una nueva versión, ya que primero quiero completar y estabilizar el soporte de red para la M4Board. Sin embargo, el estado actual del repositorio ya incluye cambios significativos en el rendimiento, la consola, el almacenamiento y la compatibilidad con el hardware.
Principales cambios:
Rendimiento y sistema
El diseño de la terminal virtual ahora utiliza 80×25 caracteres, junto con una serie de pequeñas mejoras relacionadas.
El código que se invoca desde la interrupción del sistema ahora solo salta a interrupt_high mientras la señal vsync está activa. Esto reduce la frecuencia efectiva de las interrupciones de 300 Hz a 50 Hz, evita problemas de reentrada y mejora de forma considerable el rendimiento general.
Se ha optimizado la rutina ldir_far para que utilice la pila al mover datos entre páginas de memoria, lo que reduce el coste por byte transferido.
Consola y vídeo
Revisión completa del controlador de consola del CPC:
Soporte para cuatro TTYs.
Gestión de color.
Cursor de bloque.
Se ha corregido la representación visual de los caracteres con el atributo inverso.
Se ha añadido una entrada fuzixcpc a termcap, lo que permite a las aplicaciones compatibles con termcap identificar correctamente las capacidades de la consola del Amstrad CPC y definir los glifos de cpc para los símbolos ACS, de modo que las aplicaciones curses puedan renderizarlos.
Almacenamiento y RTC
Se ha añadido un dispositivo de bloques para tarjetas SD de la M4Board.
Se ha implementado un dispositivo de disco M4Board respaldado por un archivo de imagen.
Soporte de reloj en tiempo real (RTC) añadido tanto para M4Board como para Symbiface.
Se ha mejorado el dispositivo de bloques CH376 que admite USIfAC, ULIfAC y Albireo.
El controlador de dispositivos de bloques para m4 y ch376 ahora puede utilizar la capa FAT32 nativa para montar imágenes de disco respaldadas por archivos como dispositivo raíz.
Estado actual
La tarea principal que queda pendiente es completar el soporte de red para la M4Board. Una vez terminado y probado correctamente, prepararé un lanzamiento con una configuración más estable y autosuficiente junto con las imágenes de disco. Además, migrar el código para compilar con el Fuzix Compiler Kit en lugar de SDCC está en la lista de tareas pendientes.
Mientras tanto, cualquiera que quiera probar el estado actual de desarrollo puede compilarlo siguiendo las instrucciones que mantiene salvogendut para el emulador 1984 (¡¡gracias @salvogendut!!):
El documento explica el entorno de compilación y el flujo de trabajo necesarios para compilar y ejecutar el port actual para CPC de FUZIX con el emulador 1984.