Порт 7FFD
Порт #7FFD (32765) — порт управления конфигурацией для ZX Spectrum 128K. Позволяет управлять расширенной памятью и отображаемой видеостраницей. Возможна только запись в порт, чтение из порта будет возвращать различные значения в зависимости от состояния шины данных, как при чтении из любого другого несуществующего порта.
Декодирование
На оригинальном ZX Spectrum 128K и многих клонах используется упрощённая дешифрация адреса порта, по сброшенным разрядам A1 и A15. Однако, во избежание конфликтов с дополнительной аппаратурой требуется использовать указанный адрес. В частности, использование адреса #FD для управления расширенной памятью во многих программах для Pentagon привело к проблеме их совместимости с другими отечественными клонами.
На ZX Spectrum +2A и ZX Spectrum +3 при декодировании адреса порта также учитывается A14.
Назначение битов порта
- D0-D2 - номер страницы ОЗУ, подключенной в верхние 16 КБ памяти (с адреса #C000)
- D3 - выбор отображаемой видеостраницы. 0 - страница в банке 5, 1 - в банке 7.
- D4 - номер страницы ПЗУ. 0 - BASIC128, 1 - BASIC48.
- D5 - запрещение расширенной памяти (48K защёлка). При установке бита управление расширенной памятью будет невозможно до сброса компьютера.
При расширении памяти компьютера Pentagon до 512K и 1M в выборе номера страницы используются также 6,7,5 биты порта. Расширенная память выключается установкой D2 порта EFF7, при этом используются страницы 0-7 в зависимости от D0-D2 порта 7FFD. D5 работает как защёлка при установленном D2 порта EFF7 и как старший бит номера страницы в противном случае.