Микропроцессор Z80 позволяет подключить к шинам адресов до 256 портов ввода/вывода.
Порты — это устройства сопряжения, при помощи которых микропроцессор Z80 может обмениваться информацией с другими микропроцессорами или устройствами.
Порт хранит восьмиразрядное значение (байт) и может использоваться для чтения информации, её записи, или и того и другого.
Порты хранят восьмибитное значение. Ниже приводится список портов.
Порт | Режим (чтение/запись) | Назначение | Устройство |
---|---|---|---|
00 | Ч/З | Чтение/запись из/в порт данных (8251) | RS 232C |
01 | Ч/З | Порт команд/состояния (8251) | |
02 | Ч | Номер компьютера, таймер | |
З | Запись в регистр маски прерываний | ||
03 | |||
04 | Ч/З | Счетчик 0 (8253) | |
05 | Ч/З | Счетчик 1 (8253) | |
06 | Ч/З | Счетчик 2 (8253) | |
07 | З | Запись в регистр вида(mode) (8253) | |
08 | З | Запись в регистр режимов | |
09 | З | Команда | MSX 2 |
0A | |||
0B | |||
0C | |||
0D | |||
0E | |||
0F | |||
10 | |||
11 | |||
12 | Ч | Состояние | |
13 | |||
14 | Ч/З | Данные | |
15 | |||
16 | |||
17 | |||
18 | |||
19 | |||
1A | |||
1B | |||
1C | |||
1D | |||
1E | |||
1F | |||
20 | |||
21 | |||
22 | |||
23 | |||
24 | |||
25 | |||
26 | |||
27 | |||
28 | |||
29 | |||
2A | |||
2B | |||
2C | |||
2D | Ч | Версия ПЗУ. MSX 1 = 0, MSX 2 × 0 | |
2E | |||
2F | |||
30 | |||
31 | |||
32 | |||
33 | |||
34 | |||
35 | |||
36 | |||
37 | |||
38 | |||
39 | |||
3A | |||
3B | |||
3C | |||
3D | |||
3E | |||
3F | |||
40 | З/Ч | Регистр номера ID устройства | |
41 | З | Поддержка защелки адреса ОЗУ | S1985 (YM3814) |
42 | Ч/З | Поддержка READ/WRITE данных ОЗУ | |
46 | З | Бит — отображающая функция | |
47 | Ч | Код цвета | |
З | Бит — шаблон/ FG,BG код цвета | ||
48 | |||
49 | |||
4A | |||
4B | |||
4C | |||
4D | |||
4E | |||
4F | |||
50 | |||
51 | |||
52 | |||
53 | |||
54 | |||
55 | |||
56 | |||
57 | |||
58 | |||
59 | |||
5A | |||
5B | |||
5C | |||
5D | |||
5E | |||
5F | |||
60 | |||
61 | |||
62 | |||
63 | |||
64 | |||
65 | |||
66 | |||
67 | |||
68 | |||
69 | |||
6A | |||
6B | |||
6C | |||
6D | |||
6E | |||
6F | |||
70 | |||
71 | |||
72 | |||
73 | |||
74 | |||
75 | |||
76 | |||
77 | |||
78 | |||
79 | |||
7A | |||
7B | |||
7C | |||
7D | |||
7E | |||
7F | |||
80 | Данные для 8251 | RS 232C | |
81 | Статус/команда для 8251 | ||
82 | Статус чтения/ маска прерывания | ||
83 | Не используется | ||
84 | 8253 | ||
85 | 8253 | ||
86 | 8253 | ||
87 | 8253 | ||
88 | Порты I/O для адаптера Yamaha V9938 (VDP) на MSX 1 | VDP | |
89 | |||
8A | |||
8B | |||
8C | Порты для модема | Модем | |
8D | |||
8E | |||
8F | |||
90 | З | Строб OUT (b0) длиной OUT (вывод) | Принтер |
Ч | Статус IN (b1) 1=BUSY (занято) | ||
91 | З | Вывод символа на принтер | |
90 | |||
91 | |||
92 | |||
93 | |||
94 | |||
95 | |||
96 | |||
97 | |||
98 | З | Запись данных в память VRAM | VDP |
Ч | Чтение данных из памяти VRAM | ||
99 | З | Установка команды, адреса | |
Ч | Чтение статуса | ||
9A | З | Установка палитры цветов | |
9B | З | Косвенная запись во внутр. регистр | |
9C | |||
9D | |||
9E | |||
9F | |||
A0 | З | Длина адреса, номер регистра | PSG |
A1 | З | Запись данных в регистр | |
A2 | Ч | Чтение данных из портов 14 и 15 | |
A3 | |||
A4 | |||
A5 | |||
A6 | |||
A7 | |||
A8 | З/Ч | Запись/чтение PPI порт A | PPI |
A9 | З/Ч | Запись/чтение PPI порт B | |
AA | З/Ч | Запись/чтение PPI порт C | |
AB | З/Ч | Запись/чтение регистр режима PPI | |
AC | Двигатель (мотор) MSX (1chipMSX I/O) | ||
AD | |||
AE | |||
AF | |||
B0 | Порт A, адрес (А0..А7) | Расширение памяти PPI 8255 (SONY X8255) |
|
B1 | Порт B, адрес, управление, R/W | ||
B2 | Порт C, адрес (A11..A12), данные | ||
B3 | Установка вида | ||
B4 | З | Календарь,часы. Защелка адреса | Календарь |
B5 | Ч | Данные | |
З | Данные | ||
B6 | |||
B7 | |||
B8 | Ч/З | Управление световым пером (SANYO) | |
B9 | Ч/З | ||
BA | Ч/З | ||
BB | З | ||
BC | Порт А | Управление VHD (JVCX8255) | |
BD | Порт B | ||
BE | Порт C | ||
BF | Установка режима | ||
C0 | MSX-AUDIO | ||
C1 | |||
C2 | |||
C3 | |||
C4 | |||
C5 | |||
C6 | |||
C7 | |||
C8 | MSX Interface. (Asynchronous Serial Interface) UART ? | ||
C9 | |||
CA | |||
CB | |||
CC | |||
CD | |||
CE | |||
CF | |||
D0 | Контроллер флоппи-диска (FDC) | ||
D1 | |||
D2 | |||
D3 | |||
D4 | |||
D5 | |||
D6 | |||
D7 | |||
D8 | З | b5-b0 младшие биты адреса | Kanji ROM (TOSHIBA) |
D9 | З | b5-b0 старшие биты адреса | |
Ч | b7-b0 данные | ||
DA | Для будущих расширений Kanji | ||
DB | |||
DC | |||
DD | |||
DE | |||
DF | |||
E0 | |||
E1 | |||
E2 | |||
E3 | |||
E4 | |||
E5 | |||
E6 | |||
E7 | |||
E8 | |||
E9 | |||
EA | |||
EB | |||
EC | |||
ED | |||
EE | |||
EF | |||
F0 | |||
F1 | |||
F2 | |||
F3 | |||
F4 | Используется в MSX 2 + | ||
F5 | З | b0 Kanji ROM | Контроль системы |
З | b1 резерв для kanji | ||
З | b2 MSX-Audio | ||
З | b3 superimpose | ||
З | b4 интерфейс MSX | ||
З | b5 RS-232C | ||
З | b6 световое перо | ||
З | b7 CLOCK-IC, часы (только MSX-2) | ||
F6 | Шина ввода/вывода цвета | CB | |
F7 | З | b0 Включение смешивания Audio R | Управление A/V |
З | b1 Выключение смешивания Audio L | ||
З | b2 Выбор видеовхода (21p RGB) | ||
Ч | b3 Детекция видеовхода | ||
З | b4 Управление A/V (TV) | ||
З | b5 Управление Ym | ||
З | b6 Инверсия бита 4 VDP–регистра 9 | ||
З | b7 Инверсия бита 5 VDP–регистра 9 | ||
F8 | |||
F9 | |||
FA | |||
FB | |||
FC | З/Ч | Управление физическими страницами ОЗУ | Маппер |
FD | З/Ч | ||
FE | З/Ч | ||
FF | З/Ч |
Адреса ввода/вывода от 40h до FFh используются системой. Свободные (не связанные с устройствами) порты в этом диапазоне считаются зарезервированными для будущего расширения системы. Подробнее см. «Карта ввода/вывода» в конце данного руководства.
Программное обеспечение, которое напрямую обращается к портам ввода/вывода, может вызвать проблемы совместимости с некоторыми типами аппаратных платформ. Следовательно, все устройства ввода/вывода всегда должны быть доступны через различные функции BIOS для создания аппаратно-независимого программного обеспечения.
Для выполнения критичных по быстродействию операций по управлению видеопроцессором допускается напрямую использовать порты ввода/вывода. Однако в этом случае необходимо уточнить адреса портов видеопроцессора для чтения и записи, проверив значения по адресам 0006h и 0007h в MAIN ROM. Для получения дополнительной информации см. «Раздел 4. VDP».
Порты ввода/вывода от 00h до 3Fh доступны для пользователя, но в первую очередь используйте возможность отображения регистров устройств в адресное пространство, чтобы избежать подключения нескольких периферийных устройств к одному и тому же порту.
Контроллер гибких дисков (FDC) может использовать порты ввода/вывода, но в этом случае схема должна иметь возможность отключения дополнительным внешним сигналом. Если контроллер будет занимать порты ввода/вывода только при необходимости обращении к нему, это позволяет системе одновременно использовать несколько различных контроллеров гибких дисков.
Если адрес ввода/вывода необходимо использовать в предлагаемом к продаже устройстве, он должен быть назначен ASCII System Division, Inc. Пожалуйста, свяжитесь с нами перед разработкой устройства, чтобы получить назначенные адреса портов ввода/вывода.
При добавлении нового устройства может возникнуть проблема: как назначать номера портов ввода/вывода, если это устройство не является стандартным и для него не назначены порты в какой-либо спецификации. Адреса портов ввода/вывода от 40h до FFh зарезервированы для стандартного оборудования системы MSX и не могут быть использованы, если данное оборудование не является стандартным оборудованием.
Адреса портов ввода/вывода от 00H до 3FH не используются в архитектуре MSX и могут быть использованы для пользовательских аппаратных решений, однако следует учитывать то, что несколько однотипных устройств или устройств, разработанных по несогласованным спецификациям, могут конфликтовать и приводить к неработоспособности системы.
Чтобы избежать этого, используйте отображение регистров устройств в адресное пространство.