Порт 7FFD — различия между версиями
Zxdn (обсуждение | вклад) (Новая: '''Порт #7FFD (32765)''' - порт управления конфигурацией для ZX Spectrum 128K. Позволяет управлять расширенной память...) |
Alone (обсуждение | вклад) (→Назначение битов порта) |
||
(не показаны 4 промежуточные версии ещё одного участника) | |||
Строка 1: | Строка 1: | ||
− | '''Порт #7FFD (32765)''' | + | '''Порт #7FFD (32765)''' — порт управления конфигурацией для [[ZX Spectrum 128K]]. Позволяет управлять расширенной памятью и отображаемой видеостраницей. Возможна только запись в порт, чтение из порта будет возвращать различные значения в зависимости от состояния шины данных, как при чтении из любого другого несуществующего порта. |
− | == Назначение битов порта | + | == Декодирование == |
+ | На оригинальном ZX Spectrum 128K и многих клонах используется [[упрощённая дешифрация]] адреса порта, по сброшенным разрядам '''A1''' и '''A15'''. Однако, во избежание конфликтов с дополнительной аппаратурой требуется использовать указанный адрес. В частности, использование адреса #FD для управления расширенной памятью во многих программах для [[Pentagon]] привело к проблеме их совместимости с другими отечественными клонами. | ||
+ | |||
+ | На [[ZX Spectrum +2A]] и [[ZX Spectrum +3]] при декодировании адреса порта также учитывается '''A14'''. | ||
+ | |||
+ | == Назначение битов порта == | ||
*'''D0'''-'''D2''' - номер страницы [[ОЗУ]], подключенной в верхние 16 КБ памяти (с адреса #C000) | *'''D0'''-'''D2''' - номер страницы [[ОЗУ]], подключенной в верхние 16 КБ памяти (с адреса #C000) | ||
*'''D3''' - выбор отображаемой [[256x192|видеостраницы]]. 0 - страница в банке 5, 1 - в банке 7. | *'''D3''' - выбор отображаемой [[256x192|видеостраницы]]. 0 - страница в банке 5, 1 - в банке 7. | ||
*'''D4''' - номер страницы [[ПЗУ]]. 0 - [[Sinclair BASIC|BASIC128]], 1 - [[Sinclair BASIC|BASIC48]]. | *'''D4''' - номер страницы [[ПЗУ]]. 0 - [[Sinclair BASIC|BASIC128]], 1 - [[Sinclair BASIC|BASIC48]]. | ||
− | *'''D5''' - запрещение расширенной памяти. При установке бита управление расширенной памятью будет невозможно до сброса компьютера. | + | *'''D5''' - запрещение расширенной памяти (48K защёлка). При установке бита управление расширенной памятью будет невозможно до сброса компьютера. |
− | + | При расширении памяти компьютера [[Pentagon]] до 512K и 1M в выборе номера страницы используются также 6,7,5 биты порта. Расширенная память выключается установкой D2 [[порт EFF7|порта EFF7]], при этом используются страницы 0-7 в зависимости от D0-D2 порта 7FFD. D5 работает как защёлка при установленном D2 порта EFF7 и как старший бит номера страницы в противном случае. | |
− | + | ||
[[Категория:Порты]] | [[Категория:Порты]] |
Текущая версия на 20:05, 31 декабря 2009
Порт #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 и как старший бит номера страницы в противном случае.