Карта портов ZX Spectrum

Материал из SpeccyWiki
Перейти к: навигация, поиск

Ниже даны "официальные" адреса портов. Однако, из-за упрощённой дешифрации адресов, применявшейся в большинстве устройств, их порты могут быть доступны и по другим адресам, и в ряде случаев конфликтовать между собой.

Порты стандартного 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

Зарубежная периферия

Зарубежные доработки

  • #BF3B - управление палитрами ULAplus
  • #FF3B - данные палитр ULAplus

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

[1]

Дисковый интерфейс 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

[2]

Дисковый интерфейс 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)

[3]

Дисковый интерфейс 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

[4]

Отечественная периферия

Порты 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 | Регистр альтернативного   | Управление состоянием нако-|
|    | состояния                 | пителя                     |
+----+---------------------------+----------------------------+

Ссылки