Программист Дамиан Купер (Damian Cooper) завершил разработку графической оболочки ZXDesk для домашнего компьютера ZX Spectrum 48K. Проект, написанный на ассемблере Z80, предоставляет полноценный рабочий стол с перекрывающимися окнами, выпадающими меню и очередью событий. Telegram-канал создателя Трешбокса про технологии
Разработчик начал работу над ZXDesk в 1980-х годах, вдохновившись графическим интерфейсом GEM от Atari ST, который был ему не по карману. Спустя четыре десятилетия проект был завершен и опубликован на GitHub. Программист отмечает, что это не порт GEM, а реализация идеи в условиях ограничений процессора Z80 с частотой 3,5 мегагерца, 48 килобайт оперативной памяти и однобитной цветности.
Система включает менеджер памяти с heap размером 8111 байт, кольцевую очередь событий на 16 слотов и сразу несколько устройств хранения данных: магнитную ленту и RAM-диск с поддержкой страниц расширенной памяти модели 128K. В состав ZXDesk входят блокнот, часы, календарь, двухпанельный файловый менеджер и панель настроек. Скриншоты системы | Изображения: mindbox77, GitHub
Купер провел детальное исследование аппаратных ограничений компьютера и обнаружил, что приоритет процессора в борьбе за ресурсы намного ниже, чем считалось ранее. Это позволило оптимизировать отрисовку окон и достичь их плавного перетаскивания. Важно отметить, что система работает на реальном ZX Spectrum, а не только в эмуляторах.
Проект доступен в открытом доступе на GitHub и уже привлек внимание сообщества ретро-компьютинга. Разработчики отмечают, что ZXDesk является одной из наиболее полных реализаций графического интерфейса для базовой модели ZX Spectrum 48K, пусть и не самой красивой.
Источник: trashbox.ru