ZXDesk: sistema operativo gráfico para ZX Spectrum 48K en ensamblador Z80

Fuentes: ZXDesk: A GUI operating system for the ZX Spectrum 48K in Z80 assembly

ZXDesk es un sistema operativo gráfico diseñado para el ZX Spectrum 48K, escrito íntegramente en ensamblador Z80. Este proyecto permite ejecutar una interfaz de escritorio funcional, incluyendo ventanas superpuestas con orden de profundidad (z-order), menús desplegables, una pila de memoria, una cola de eventos y un gestor de archivos de dos paneles, todo ello encajando en la limitación de 48 KB de RAM de la máquina original de 1982. A diferencia de los emuladores, ZXDesk opera en hardware real, aunque también es compatible con emuladores como DivMMC.

El sistema destaca por su optimización extrema para el procesador Z80 a 3.5 MHz. Utiliza una cola de eventos de 16 slots y un bucle principal sin código específico de ventana para garantizar un rendimiento constante. La gestión de memoria incluye una pila real de 8.112 bytes y un sistema de almacenamiento con backends intercambiables, como disco RAM, cinta y la memoria residual del ZX128. El proyecto incluye aplicaciones nativas como un bloc de notas, reloj, calendario y gestor de archivos, además de soporte para teclado y ratón Kempston.

La documentación técnica detalla la arquitectura de bajo nivel, incluyendo la disciplina de cuadros (frame discipline) y el uso de superficies transitorias para minimizar el uso de memoria. Incluye flags de compilación para pruebas de reproducibilidad y diagnóstico de entrada, así como una herramienta de control de script para validar la interacción de usuario. ZXDesk es un proyecto de código abierto que demuestra la viabilidad de un entorno de escritorio en hardware retro, ofreciendo datos técnicos precisos para desarrolladores que trabajan con este equipo.