Порт 7FFD

Материал из SpeccyWiki
Версия от 23:05, 31 декабря 2009; Alone (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Порт #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 и как старший бит номера страницы в противном случае.