Карта портов ZX Spectrum — различия между версиями

Материал из SpeccyWiki
Перейти к: навигация, поиск
(Порты стандартного ZX Spectrum)
(Отечественная периферия)
 
(не показано 17 промежуточных версии 3 участников)
Строка 1: Строка 1:
 +
Ниже даны "официальные" адреса портов. Однако, из-за [[дешифрация адреса порта|упрощённой дешифрации]] адресов, применявшейся в большинстве устройств, их порты могут быть доступны и по другим адресам, и в ряде случаев конфликтовать между собой.
 +
 
== Порты стандартного ZX Spectrum ==
 
== Порты стандартного ZX Spectrum ==
 
*[[Порт FE|#FE]] - [[клавиатура]], цвет [[бордюр]]а, [[бипер]], магнитофон
 
*[[Порт FE|#FE]] - [[клавиатура]], цвет [[бордюр]]а, [[бипер]], магнитофон
 
** #7FFE - полуряд Space...B
 
** #7FFE - полуряд Space...B
 
** #BFFE - полуряд Enter...H
 
** #BFFE - полуряд Enter...H
** #DFFE - полуряд P...V
+
** #DFFE - полуряд P...Y
 
** #EFFE - полуряд 0...6
 
** #EFFE - полуряд 0...6
 
** #F7FE - полуряд 1...5
 
** #F7FE - полуряд 1...5
Строка 18: Строка 20:
  
 
== Зарубежная периферия ==
 
== Зарубежная периферия ==
 +
*[[Cheetah Sweet Talker|#07]] - порт [[синтезатор речи|синтезатора речи]] [[Cheetah Sweet Talker]]
 
*[[Порт 1F|#1F]] - порт [[Kempston joystick|Kempston]]-джойстика
 
*[[Порт 1F|#1F]] - порт [[Kempston joystick|Kempston]]-джойстика
*[[Порт E7|#E7]] - [[ZX Interface 1]], данные для микродрайва
+
*[[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]] и сеть
 
*[[Порт EF|#EF]] - [[ZX Interface 1]], управление [[RS232]] и сеть
 
*[[Порт F7|#F7]] - [[ZX Interface 1]], управление [[RS232]] и сеть
 
*[[Порт F7|#F7]] - [[ZX Interface 1]], управление [[RS232]] и сеть
 
*[[Порт FB|#FB]] - интерфейс для подключения принтера [[ZX Lprint III]]
 
*[[Порт 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]
  
 
== Отечественная периферия ==
 
== Отечественная периферия ==
  
*[[Порт 0F|#0F]] - [[SounDrive]], канал A
+
*[[SounDrive|#0F]] - [[SounDrive]], канал A
*[[Порт 1F|#1F]] - SounDrive, канал B
+
*[[SounDrive|#1F]] - SounDrive, канал B
*[[Порт 4F|#4F]] - SounDrive, канал C
+
*[[SounDrive|#4F]] - SounDrive, канал C
*[[Порт 5F|#5F]] - SounDrive, канал D
+
*[[SounDrive|#5F]] - SounDrive, канал D
*[[Порт B3|#B3]] - регистр данных [[General Sound]]
+
*<nowiki>#3F</nowiki> - один из двух каналов Profi [[Covox]] (второй - #5F?)
 +
*[[General Sound|#B3]] - регистр данных [[General Sound]]
 
*[[Порт B7|#B7]] - [[XTR-modem]]
 
*[[Порт B7|#B7]] - [[XTR-modem]]
*[[Порт BB|#BB]] - регистр команд и статуса [[General Sound]]
+
*[[General Sound|#BB]] - регистр команд и статуса [[General Sound]]
 +
*[[Covox|#DD]] - порт [[Covox]] на компьютере [[Scorpion]]?
 
*[[Порт 1FFD|#1FFD]] - управление конфигурацией компьютера [[Scorpion]]
 
*[[Порт 1FFD|#1FFD]] - управление конфигурацией компьютера [[Scorpion]]
 
*[[Порт 7FFD|#7FFD]] - управление конфигурацией компьютера [[Pentagon]]
 
*[[Порт 7FFD|#7FFD]] - управление конфигурацией компьютера [[Pentagon]]
*[[Порт BFF7|#BFF7]] - регистр данных часов реального времени
+
*[[Порт BFF7|#BFF7]] - регистр данных [[часы реального времени|часов реального времени]]
 
*[[Порт DFF7|#DFF7]] - регистр адреса часов реального времени
 
*[[Порт DFF7|#DFF7]] - регистр адреса часов реального времени
 
*[[Порт DFFD|#DFFD]] - управление конфигурацией компьютера [[Profi]]
 
*[[Порт DFFD|#DFFD]] - управление конфигурацией компьютера [[Profi]]
 
*[[Порт EFF7|#EFF7]] - управление ресурсами [[Pentagon|Pentagon 1024]]
 
*[[Порт EFF7|#EFF7]] - управление ресурсами [[Pentagon|Pentagon 1024]]
*[[Порт FADF|#FADF]] - [[Kempston mouse]], состояние кнопок
+
*[[Порт FDFD|#FDFD]] - управление конфигурацией компьютера [[ATM Turbo]]
*[[Порт FBDF|#FBDF]] - [[Kempston mouse]], X-координата
+
*[[Covox|#FB]] - стандартный порт [[Covox]]
*[[Порт FDDF|#FDDF]] - управление конфигурацией компьютера [[ATM Turbo]]
+
*[[Порт FFDF|#FFDF]] - [[Kempston mouse]], Y-координата
+
*[[Порт FB|#FB]] - стандартный порт [[Covox]]
+
  
== Beta Disk Interface ==
+
Порты [[Nemo IDE]]:
Все порты - теневые, доступны только из [[ПЗУ]] [[TR-DOS]].
+
+----+---------------------------+----------------------------+
*[[Порт 1F|#1F]] - регистр команд [[КР1818ВГ93]]
+
|    |        in                |        out                |
*[[Порт 3F|#3F]] - регистр дорожки КР1818ВГ93
+
+----+---------------------------+----------------------------+
*[[Порт 5F|#5F]] - регистр сектора КР1818ВГ93
+
|#11 | Регистр данных D8-D15    | Регистр данных D8-D15      |
*[[Порт 7F|#7F]] - регистр данных КР1818ВГ93
+
|#10 | Регистр данных D0-D7      | Регистр данных D0-D7      |
*[[Порт FF|#FF]] - системный порт BDI
+
|#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

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

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

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

Ссылки