Карта портов ZX Spectrum — различия между версиями
Материал из SpeccyWiki
Zxdn (обсуждение | вклад) |
Maksagor (обсуждение | вклад) (→Отечественная периферия) |
||
(не показаны 24 промежуточные версии 3 участников) | |||
Строка 1: | Строка 1: | ||
− | + | Ниже даны "официальные" адреса портов. Однако, из-за [[дешифрация адреса порта|упрощённой дешифрации]] адресов, применявшейся в большинстве устройств, их порты могут быть доступны и по другим адресам, и в ряде случаев конфликтовать между собой. | |
− | *[[Порт | + | == Порты стандартного ZX Spectrum == |
− | + | *[[Порт FE|#FE]] - [[клавиатура]], цвет [[бордюр]]а, [[бипер]], магнитофон | |
** #7FFE - полуряд Space...B | ** #7FFE - полуряд Space...B | ||
** #BFFE - полуряд Enter...H | ** #BFFE - полуряд Enter...H | ||
− | ** #DFFE - полуряд P... | + | ** #DFFE - полуряд P...Y |
** #EFFE - полуряд 0...6 | ** #EFFE - полуряд 0...6 | ||
** #F7FE - полуряд 1...5 | ** #F7FE - полуряд 1...5 | ||
Строка 11: | Строка 11: | ||
** #FDFE - полуряд A...G | ** #FDFE - полуряд A...G | ||
** #FEFE - полуряд CS...V | ** #FEFE - полуряд CS...V | ||
− | *[[Порт FF|#FF]] - порт | + | *[[Порт FF|#FF]] - порт [[атрибут]]ов |
− | == Порты ZX Spectrum | + | == Порты ZX Spectrum 128K == |
− | *[[Порт 7FFD|#7FFD]] - управление конфигурацией компьютера | + | *[[Порт 1FFD|#1FFD]] - управление конфигурацией компьютера для моделей +2A/+3 |
+ | *[[Порт 7FFD|#7FFD]] - управление конфигурацией компьютера для любых 128K моделей | ||
*[[Порт FFFD|#FFFD]] - регистр адреса [[AY-3-8910]] | *[[Порт FFFD|#FFFD]] - регистр адреса [[AY-3-8910]] | ||
*[[Порт BFFD|#BFFD]] - регистр данных [[AY-3-8910]] | *[[Порт BFFD|#BFFD]] - регистр данных [[AY-3-8910]] | ||
+ | |||
+ | == Зарубежная периферия == | ||
+ | *[[Cheetah Sweet Talker|#07]] - порт [[синтезатор речи|синтезатора речи]] [[Cheetah Sweet Talker]] | ||
+ | *[[Порт 1F|#1F]] - порт [[Kempston joystick|Kempston]]-джойстика | ||
+ | *[[Fuller Box|#3F]] - [[Fuller Box]], регистр AY-3-8912 | ||
+ | *[[Fuller Box|#5F]] - [[Fuller Box]], данные AY-3-8912 | ||
+ | *[[Fuller Box|#7F]] - [[Fuller Box]], порт джойстика | ||
+ | *[[Порт 7B|#7B]] - интерфейс для подключения принтера [[ZX Lprint III]] | ||
+ | *[[Cheetah SpecDrum|#DF]] - данные для ЦАП ударной машины [[Cheetah SpecDrum]] | ||
+ | *[[Kempston mouse|#FADF]] - [[Kempston mouse]], состояние кнопок | ||
+ | *[[Kempston mouse|#FBDF]] - [[Kempston mouse]], X-координата | ||
+ | *[[Kempston mouse|#FFDF]] - [[Kempston mouse]], Y-координата | ||
+ | *[[Порт E7|#E7]] - [[ZX Interface 1]], данные для [[микродрайв]]а | ||
+ | *[[Порт EF|#EF]] - [[ZX Interface 1]], управление [[RS232]] и сеть | ||
+ | *[[Порт F7|#F7]] - [[ZX Interface 1]], управление [[RS232]] и сеть | ||
+ | *[[Порт FB|#FB]] - интерфейс для подключения принтера [[ZX Lprint III]] | ||
+ | |||
+ | === Зарубежные доработки === | ||
+ | *[[ULAplus|#BF3B]] - управление палитрами [[ULAplus]] | ||
+ | *[[ULAplus|#FF3B]] - данные палитр ULAplus | ||
+ | |||
+ | === [[Beta Disk Interface]] === | ||
+ | Все порты - теневые, доступны только из [[ПЗУ]] [[TR-DOS]]. | ||
+ | *[[Порт 1F|#1F]] - регистр команд [[КР1818ВГ93]] | ||
+ | *[[Порт 3F|#3F]] - регистр дорожки КР1818ВГ93 | ||
+ | *[[Порт 5F|#5F]] - регистр сектора КР1818ВГ93 | ||
+ | *[[Порт 7F|#7F]] - регистр данных КР1818ВГ93 | ||
+ | *[[Порт FF|#FF]] - системный порт BDI | ||
+ | |||
+ | === Дисковый интерфейс PlusD === | ||
+ | Port In Out Notes | ||
+ | --------------------------------------------------------------------------- | ||
+ | E3h FDC status FDC command See also section 13 | ||
+ | EBh track register track | ||
+ | F3h sector regist. sector register | ||
+ | FBh data register data register | ||
+ | |||
+ | EFh b0/b1 -- drive select | ||
+ | b2 -- -- | ||
+ | b3 -- -- | ||
+ | b4 -- -- | ||
+ | b5 -- ext. select (?) | ||
+ | b6 -- printer STROBE | ||
+ | b7 -- side select | ||
+ | |||
+ | E7h mem. page in memory page out (***) | ||
+ | |||
+ | F7h b0/b6 -- printer data (8 bits) | ||
+ | b7 PRN BUSY | ||
+ | [http://zx-pk.ru/showpost.php?p=18982&postcount=45] | ||
+ | |||
+ | === Дисковый интерфейс D40/80 === | ||
+ | |||
+ | 0081 FDCCR equ 81h ;register pre prikazy radica | ||
+ | 0083 FDCTR equ 83h ;register stopy | ||
+ | 0085 FDCSR equ 85h ;register status - flagy operacii | ||
+ | 0087 FDCDR equ 87h ;register pre prenos dat | ||
+ | 0089 SELECT equ 89h ;port motorov a LED drivov | ||
+ | |||
+ | 0097 DIS55 equ 97h ;Hlavne blokovanie 8255 | ||
+ | 0099 EN55 equ 99h ;Vseobecne blokovanie 8255 | ||
+ | 007F CWR55 equ 7fh | ||
+ | 005F C55 equ 5fh | ||
+ | |||
+ | 0083 MSR EQU 83h ;fdc status | ||
+ | 0087 FDD EQU 87h ;fdc data | ||
+ | 008F FOR EQU 8fh ;fdc operation register | ||
+ | [http://zx-pk.ru/showpost.php?p=18982&postcount=45] | ||
+ | |||
+ | === Дисковый интерфейс [[DivIDE]] === | ||
+ | |||
+ | xxxx xxxx 1010 0011, 0a3h, 163 - DATA REGISTER (R/W) | ||
+ | xxxx xxxx 1010 0111, 0a7h, 167 - ERROR REGISTER (R) / FEATURES REGISTER (W) | ||
+ | xxxx xxxx 1010 1011, 0abh, 171 - SECTOR COUNT (R/W) | ||
+ | xxxx xxxx 1010 1111, 0afh, 175 - SECTOR NUMBER or LBA bits 0..7 (R/W) | ||
+ | xxxx xxxx 1011 0011, 0b3h, 179 - CYLINDER LOW or LBA bits 8..15 (R/W) '''(пересекается с General Sound)''' | ||
+ | xxxx xxxx 1011 0111, 0b7h, 183 - CYLINDER HIGH or LBA bits 16..23 (R/W) '''(пересекается с XTR-modem)''' | ||
+ | xxxx xxxx 1011 1011, 0bbh, 187 - DRIVE/HEAD or LBA bits 24..28 (R/W) '''(пересекается с General Sound)''' | ||
+ | xxxx xxxx 1011 1111, 0bfh, 191 - STATUS REGISTER (R) / COMMAND REGISTER (W) | ||
+ | xxxx xxxx 1110 0011, 0e3h, 227 - divIDE Control Register (Write Only) | ||
+ | [http://baze.au.com/divide/files/pgm_model.txt] | ||
+ | |||
+ | === Дисковый интерфейс [[MB02]] === | ||
+ | {| class="wikitable" | ||
+ | |- style="text-align: center;" | ||
+ | | desítkově || šestnáctkově || dekódování || význam | ||
+ | |- style="text-align: right;" | ||
+ | | 3 || 03 || 0xx00011 || style="text-align: left;" | obvod RTC | ||
+ | |- style="text-align: right;" | ||
+ | | 7 || 07 || 0xx00111 || style="text-align: left;" | IDE pevný disk | ||
+ | |- style="text-align: right;" | ||
+ | | 11 || 0B || 0xx01011 || style="text-align: left;" | DMA | ||
+ | |- style="text-align: right;" | ||
+ | | 15 || 0F || 00001111 || style="text-align: left;" | řadič disketové jednotky WD2797 | ||
+ | |- style="text-align: right;" | ||
+ | | 19 || 13 || 0xx10011 || style="text-align: left;" | výběr aktivní disketové jednotky, ovládání motorů, stav disketové jednotky | ||
+ | |- style="text-align: right;" | ||
+ | | 23 || 17 || 0xx10111 || style="text-align: left;" | stránkování paměti | ||
+ | |- style="text-align: right;" | ||
+ | | 47 || 2F || 00101111 || style="text-align: left;" | řadič disketové jednotky WD2797 | ||
+ | |- style="text-align: right;" | ||
+ | | 79 || 4F || 01001111 || style="text-align: left;" | řadič disketové jednotky WD2797 | ||
+ | |- style="text-align: right;" | ||
+ | | 111 || 6F || 01101111 || style="text-align: left;" | řadič disketové jednotky WD2797 | ||
+ | |- style="text-align: right;" | ||
+ | | 31 || 1F || 00011111 || style="text-align: left;" | první paralelní port 8255 | ||
+ | |- style="text-align: right;" | ||
+ | | 63 || 3F || 00111111 || style="text-align: left;" | první paralelní port 8255 | ||
+ | |- style="text-align: right;" | ||
+ | | 95 || 5F || 01011111 || style="text-align: left;" | první paralelní port 8255 | ||
+ | |- style="text-align: right;" | ||
+ | | 127 || 7F || 01111111 || style="text-align: left;" | první paralelní port 8255 | ||
+ | |- style="text-align: right;" | ||
+ | | 27 || 1B || 00011011 || style="text-align: left;" | druhý paralelní port 8255 | ||
+ | |- style="text-align: right;" | ||
+ | | 59 || 3B || 00111011 || style="text-align: left;" | druhý paralelní port 8255 | ||
+ | |- style="text-align: right;" | ||
+ | | 91 || 5B || 01011011 || style="text-align: left;" | druhý paralelní port 8255 | ||
+ | |- style="text-align: right;" | ||
+ | | 123 || 7B || 01111011 || style="text-align: left;" | druhý paralelní port 8255 | ||
+ | |} | ||
+ | |||
+ | При наличии интерфейса ZX-IDE: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- style="text-align: center;" | ||
+ | | desítkově || šestnáctkově || dekódování || význam | ||
+ | |- style="text-align: right;" | ||
+ | | 163 || A3 || 00011111 || style="text-align: left;" | datový registr | ||
+ | |- style="text-align: right;" | ||
+ | | 167 || A7 || 00111111 || style="text-align: left;" | registr parametrů | ||
+ | |- style="text-align: right;" | ||
+ | | 171 || AB || 01011111 || style="text-align: left;" | registr sektorů | ||
+ | |- style="text-align: right;" | ||
+ | | 175 || AF || 01111111 || style="text-align: left;" | registr prvního sektoru | ||
+ | |- style="text-align: right;" | ||
+ | | 179 || B3 || 00011011 || style="text-align: left;" | nižší byte registru cylindru | ||
+ | |- style="text-align: right;" | ||
+ | | 183 || B7 || 00111011 || style="text-align: left;" | vyšší byte registru cylindru | ||
+ | |- style="text-align: right;" | ||
+ | | 187 || BB || 01011011 || style="text-align: left;" | registr hlavy | ||
+ | |- style="text-align: right;" | ||
+ | | 191 || BF || 01111011 || style="text-align: left;" | příkazový/stavový registr | ||
+ | |} | ||
+ | [http://cs.wikipedia.org/wiki/MB02] | ||
== Отечественная периферия == | == Отечественная периферия == | ||
− | *[[ | + | *[[SounDrive|#0F]] - [[SounDrive]], канал A |
+ | *[[SounDrive|#1F]] - SounDrive, канал B | ||
+ | *[[SounDrive|#4F]] - SounDrive, канал C | ||
+ | *[[SounDrive|#5F]] - SounDrive, канал D | ||
+ | *<nowiki>#3F</nowiki> - один из двух каналов Profi [[Covox]] (второй - #5F?) | ||
+ | *[[General Sound|#B3]] - регистр данных [[General Sound]] | ||
*[[Порт B7|#B7]] - [[XTR-modem]] | *[[Порт B7|#B7]] - [[XTR-modem]] | ||
− | *[[ | + | *[[General Sound|#BB]] - регистр команд и статуса [[General Sound]] |
− | *[[Порт BFF7|#BFF7]] - регистр данных часов реального времени | + | *[[Covox|#DD]] - порт [[Covox]] на компьютере [[Scorpion]]? |
+ | *[[Порт 1FFD|#1FFD]] - управление конфигурацией компьютера [[Scorpion]] | ||
+ | *[[Порт 7FFD|#7FFD]] - управление конфигурацией компьютера [[Pentagon]] | ||
+ | *[[Порт BFF7|#BFF7]] - регистр данных [[часы реального времени|часов реального времени]] | ||
*[[Порт DFF7|#DFF7]] - регистр адреса часов реального времени | *[[Порт DFF7|#DFF7]] - регистр адреса часов реального времени | ||
+ | *[[Порт DFFD|#DFFD]] - управление конфигурацией компьютера [[Profi]] | ||
*[[Порт EFF7|#EFF7]] - управление ресурсами [[Pentagon|Pentagon 1024]] | *[[Порт EFF7|#EFF7]] - управление ресурсами [[Pentagon|Pentagon 1024]] | ||
− | *[[Порт | + | *[[Порт FDFD|#FDFD]] - управление конфигурацией компьютера [[ATM Turbo]] |
− | *[[ | + | *[[Covox|#FB]] - стандартный порт [[Covox]] |
− | + | ||
− | + | Порты [[Nemo IDE]]: | |
+ | +----+---------------------------+----------------------------+ | ||
+ | | | in | out | | ||
+ | +----+---------------------------+----------------------------+ | ||
+ | |#11 | Регистр данных D8-D15 | Регистр данных D8-D15 | | ||
+ | |#10 | Регистр данных D0-D7 | Регистр данных D0-D7 | | ||
+ | |#30 | Регистр ошибок | Регистр предкомпенсации (*)| | ||
+ | |#50 | Регистр счетчика секторов | Регистр счетчика секторов | | ||
+ | |#70 | Регистр номера сектора | Регистр номера сектора | | ||
+ | |#90 | Регистр номера цилиндра | Регистр номера цилиндра | '''(конфликтует с GMX[http://usenet.su/showthread.php/182840-Nemo-IDE-и-Scorpion-ZS-256])''' | ||
+ | | | (low) | (low) | | ||
+ | |#B0 | Регистр номера цилиндра | Регистр номера цилиндра | | ||
+ | | | (high) | (high) | | ||
+ | |#D0 | Регистр накопителя/головки| Регистр накопителя/головки | | ||
+ | |#F0 | Регистр состояния | Регистр команд | | ||
+ | +----+---------------------------+----------------------------+ | ||
+ | |#C8 | Регистр альтернативного | Управление состоянием нако-| | ||
+ | | | состояния | пителя | | ||
+ | +----+---------------------------+----------------------------+ | ||
== Ссылки == | == Ссылки == |
Текущая версия на 13:02, 18 сентября 2016
Ниже даны "официальные" адреса портов. Однако, из-за упрощённой дешифрации адресов, применявшейся в большинстве устройств, их порты могут быть доступны и по другим адресам, и в ряде случаев конфликтовать между собой.
Содержание
Порты стандартного ZX Spectrum
- #FE - клавиатура, цвет бордюра, бипер, магнитофон
- #7FFE - полуряд Space...B
- #BFFE - полуряд Enter...H
- #DFFE - полуряд P...Y
- #EFFE - полуряд 0...6
- #F7FE - полуряд 1...5
- #FBFE - полуряд Q...T
- #FDFE - полуряд A...G
- #FEFE - полуряд CS...V
- #FF - порт атрибутов
Порты ZX Spectrum 128K
- #1FFD - управление конфигурацией компьютера для моделей +2A/+3
- #7FFD - управление конфигурацией компьютера для любых 128K моделей
- #FFFD - регистр адреса AY-3-8910
- #BFFD - регистр данных AY-3-8910
Зарубежная периферия
- #07 - порт синтезатора речи Cheetah Sweet Talker
- #1F - порт Kempston-джойстика
- #3F - Fuller Box, регистр AY-3-8912
- #5F - Fuller Box, данные AY-3-8912
- #7F - Fuller Box, порт джойстика
- #7B - интерфейс для подключения принтера ZX Lprint III
- #DF - данные для ЦАП ударной машины Cheetah SpecDrum
- #FADF - Kempston mouse, состояние кнопок
- #FBDF - Kempston mouse, X-координата
- #FFDF - Kempston mouse, Y-координата
- #E7 - ZX Interface 1, данные для микродрайва
- #EF - ZX Interface 1, управление RS232 и сеть
- #F7 - ZX Interface 1, управление RS232 и сеть
- #FB - интерфейс для подключения принтера ZX Lprint III
Зарубежные доработки
Beta Disk Interface
Все порты - теневые, доступны только из ПЗУ TR-DOS.
- #1F - регистр команд КР1818ВГ93
- #3F - регистр дорожки КР1818ВГ93
- #5F - регистр сектора КР1818ВГ93
- #7F - регистр данных КР1818ВГ93
- #FF - системный порт BDI
Дисковый интерфейс PlusD
Port In Out Notes --------------------------------------------------------------------------- E3h FDC status FDC command See also section 13 EBh track register track F3h sector regist. sector register FBh data register data register EFh b0/b1 -- drive select b2 -- -- b3 -- -- b4 -- -- b5 -- ext. select (?) b6 -- printer STROBE b7 -- side select E7h mem. page in memory page out (***) F7h b0/b6 -- printer data (8 bits) b7 PRN BUSY
Дисковый интерфейс D40/80
0081 FDCCR equ 81h ;register pre prikazy radica 0083 FDCTR equ 83h ;register stopy 0085 FDCSR equ 85h ;register status - flagy operacii 0087 FDCDR equ 87h ;register pre prenos dat 0089 SELECT equ 89h ;port motorov a LED drivov 0097 DIS55 equ 97h ;Hlavne blokovanie 8255 0099 EN55 equ 99h ;Vseobecne blokovanie 8255 007F CWR55 equ 7fh 005F C55 equ 5fh 0083 MSR EQU 83h ;fdc status 0087 FDD EQU 87h ;fdc data 008F FOR EQU 8fh ;fdc operation register
Дисковый интерфейс DivIDE
xxxx xxxx 1010 0011, 0a3h, 163 - DATA REGISTER (R/W) xxxx xxxx 1010 0111, 0a7h, 167 - ERROR REGISTER (R) / FEATURES REGISTER (W) xxxx xxxx 1010 1011, 0abh, 171 - SECTOR COUNT (R/W) xxxx xxxx 1010 1111, 0afh, 175 - SECTOR NUMBER or LBA bits 0..7 (R/W) xxxx xxxx 1011 0011, 0b3h, 179 - CYLINDER LOW or LBA bits 8..15 (R/W) (пересекается с General Sound) xxxx xxxx 1011 0111, 0b7h, 183 - CYLINDER HIGH or LBA bits 16..23 (R/W) (пересекается с XTR-modem) xxxx xxxx 1011 1011, 0bbh, 187 - DRIVE/HEAD or LBA bits 24..28 (R/W) (пересекается с General Sound) xxxx xxxx 1011 1111, 0bfh, 191 - STATUS REGISTER (R) / COMMAND REGISTER (W) xxxx xxxx 1110 0011, 0e3h, 227 - divIDE Control Register (Write Only)
Дисковый интерфейс MB02
desítkově | šestnáctkově | dekódování | význam |
3 | 03 | 0xx00011 | obvod RTC |
7 | 07 | 0xx00111 | IDE pevný disk |
11 | 0B | 0xx01011 | DMA |
15 | 0F | 00001111 | řadič disketové jednotky WD2797 |
19 | 13 | 0xx10011 | výběr aktivní disketové jednotky, ovládání motorů, stav disketové jednotky |
23 | 17 | 0xx10111 | stránkování paměti |
47 | 2F | 00101111 | řadič disketové jednotky WD2797 |
79 | 4F | 01001111 | řadič disketové jednotky WD2797 |
111 | 6F | 01101111 | řadič disketové jednotky WD2797 |
31 | 1F | 00011111 | první paralelní port 8255 |
63 | 3F | 00111111 | první paralelní port 8255 |
95 | 5F | 01011111 | první paralelní port 8255 |
127 | 7F | 01111111 | první paralelní port 8255 |
27 | 1B | 00011011 | druhý paralelní port 8255 |
59 | 3B | 00111011 | druhý paralelní port 8255 |
91 | 5B | 01011011 | druhý paralelní port 8255 |
123 | 7B | 01111011 | druhý paralelní port 8255 |
При наличии интерфейса ZX-IDE:
desítkově | šestnáctkově | dekódování | význam |
163 | A3 | 00011111 | datový registr |
167 | A7 | 00111111 | registr parametrů |
171 | AB | 01011111 | registr sektorů |
175 | AF | 01111111 | registr prvního sektoru |
179 | B3 | 00011011 | nižší byte registru cylindru |
183 | B7 | 00111011 | vyšší byte registru cylindru |
187 | BB | 01011011 | registr hlavy |
191 | BF | 01111011 | příkazový/stavový registr |
Отечественная периферия
- #0F - SounDrive, канал A
- #1F - SounDrive, канал B
- #4F - SounDrive, канал C
- #5F - SounDrive, канал D
- #3F - один из двух каналов Profi Covox (второй - #5F?)
- #B3 - регистр данных General Sound
- #B7 - XTR-modem
- #BB - регистр команд и статуса General Sound
- #DD - порт Covox на компьютере Scorpion?
- #1FFD - управление конфигурацией компьютера Scorpion
- #7FFD - управление конфигурацией компьютера Pentagon
- #BFF7 - регистр данных часов реального времени
- #DFF7 - регистр адреса часов реального времени
- #DFFD - управление конфигурацией компьютера Profi
- #EFF7 - управление ресурсами Pentagon 1024
- #FDFD - управление конфигурацией компьютера ATM Turbo
- #FB - стандартный порт Covox
Порты Nemo IDE:
+----+---------------------------+----------------------------+ | | in | out | +----+---------------------------+----------------------------+ |#11 | Регистр данных D8-D15 | Регистр данных D8-D15 | |#10 | Регистр данных D0-D7 | Регистр данных D0-D7 | |#30 | Регистр ошибок | Регистр предкомпенсации (*)| |#50 | Регистр счетчика секторов | Регистр счетчика секторов | |#70 | Регистр номера сектора | Регистр номера сектора | |#90 | Регистр номера цилиндра | Регистр номера цилиндра | (конфликтует с GMX[5]) | | (low) | (low) | |#B0 | Регистр номера цилиндра | Регистр номера цилиндра | | | (high) | (high) | |#D0 | Регистр накопителя/головки| Регистр накопителя/головки | |#F0 | Регистр состояния | Регистр команд | +----+---------------------------+----------------------------+ |#C8 | Регистр альтернативного | Управление состоянием нако-| | | состояния | пителя | +----+---------------------------+----------------------------+