Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
msx:io_ports [2020-11-05 10:42] GreyWolf [MSX — Порты ввода/вывода] |
msx:io_ports [2022-05-21 22:11] (текущий) GreyWolf |
||
---|---|---|---|
Строка 3: | Строка 3: | ||
FIXME | FIXME | ||
- | Микропроцессор [[tag:z80|]] позволяет подключить к шинам адресов до 256 портов ввода/вывода. | + | Микропроцессор [[zilog_z80:zilog_z80|Z80]] позволяет подключить к шинам адресов до 256 портов ввода/вывода. |
- | Порты — это устройства сопряжения, при помощи которых микропроцессор [[tag:z80|]] может обмениваться информацией с другими микропроцессорами или устройствами. | + | Порты — это устройства сопряжения, при помощи которых микропроцессор [[zilog_z80:zilog_z80|Z80]] может обмениваться информацией с другими микропроцессорами или устройствами. |
- | Порт хранит восьмиразрядное значение (байт) и может использоваться для чтения информации, её записи, или и того, и другого. | + | Порт хранит восьмиразрядное значение (байт) и может использоваться для чтения информации, её записи, или и того и другого. |
Порты хранят восьмибитное значение. Ниже приводится список портов. | Порты хранят восьмибитное значение. Ниже приводится список портов. | ||
Строка 162: | Строка 162: | ||
| 8F | | | 8F | | ||
| | | | | | | | | | | | ||
- | | 90 | З |Строб OUT (b0) длиной OUT (вывод)| [[msx:printer|Принтер]] | | + | | 90 | З |Строб OUT (b0) длиной OUT (вывод)| [[msx:printer:printer|Принтер]] | |
|:::| Ч |Статус IN (b1) 1=BUSY (занято)|:::| | |:::| Ч |Статус IN (b1) 1=BUSY (занято)|:::| | ||
| 91 | З |Вывод символа на принтер|:::| | | 91 | З |Вывод символа на принтер|:::| | ||
Строка 186: | Строка 186: | ||
| 9F | | | 9F | | ||
| | | | | | | | | | | | ||
- | | A0 | З |Длина адреса, номер регистра| [[msx:psg|PSG]] | | + | | A0 | З |Длина адреса, номер регистра| [[msx:psg:psg|PSG]] | |
| A1 | З |Запись данных в регистр|:::| | | A1 | З |Запись данных в регистр|:::| | ||
| A2 | Ч |Чтение данных из портов 14 и 15|:::| | | A2 | Ч |Чтение данных из портов 14 и 15|:::| | ||
Строка 196: | Строка 196: | ||
| A7 | | | A7 | | ||
| | | | | | | | | | | | ||
- | | A8 | З/Ч |Запись/чтение данных [[msx:ppi#reg_a|PPI порт A]]| [[msx:ppi|PPI]] | | + | | A8 | З/Ч |Запись/чтение [[msx:ppi#reg_a|PPI порт A]]| [[msx:ppi|PPI]] | |
|:::|:::|:::|:::| | |:::|:::|:::|:::| | ||
| A9 | З/Ч |Запись/чтение [[msx:ppi#reg_b|PPI порт B]]|:::| | | A9 | З/Ч |Запись/чтение [[msx:ppi#reg_b|PPI порт B]]|:::| | ||
- | | AA | З/Ч |Запись/чтение [[msx:ppi#reg_b|PPI порт C]]|:::| | + | | AA | З/Ч |Запись/чтение [[msx:ppi#reg_c|PPI порт C]]|:::| |
- | | AB | З |Запись в регистр режима PPI|:::| | + | | AB | З/Ч |Запись/чтение [[msx:ppi#reg_m|регистр режима PPI]]|:::| |
- | |:::| Ч |Чтение из регистра режима PPI|:::| | + | |
| | | | | | | | | | | | ||
| AC | |Двигатель (мотор) MSX \\ (1chipMSX I/O)| | | | AC | |Двигатель (мотор) MSX \\ (1chipMSX I/O)| | | ||
Строка 289: | Строка 288: | ||
| F2 | | | F2 | | ||
| F3 | | | F3 | | ||
- | | F4 | | + | | F4 | Используется в [[msx:msx_2_plus#port_f4|MSX 2 +]]||| |
| | | | | | | | | | | | ||
| F5 | З |b0 Kanji ROM| Контроль системы | | | F5 | З |b0 Kanji ROM| Контроль системы | | ||
Строка 316: | Строка 315: | ||
| FB | | | FB | | ||
| | | | | | | | | | | | ||
- | | FC | З/Ч |Управление физическими страницами ОЗУ| [[msx:mapper|Маппер]] | | + | | FC | З/Ч |Управление физическими страницами ОЗУ| [[msx:ram:ram#mapper|Маппер]] | |
| FD | З/Ч |:::|:::| | | FD | З/Ч |:::|:::| | ||
| FE | З/Ч |:::|:::| | | FE | З/Ч |:::|:::| | ||
| FF | З/Ч |:::|:::| | | FF | З/Ч |:::|:::| | ||
+ | |||
+ | ====== Карта портов ввода / вывода ====== | ||
+ | |||
+ | {{msx:datapack:files:1_1_5_36.svg|}} | ||
+ | |||
+ | ===== Замечания о назначении адресов ввода/вывода ===== | ||
+ | FIXME | ||
+ | |||
+ | Адреса ввода/вывода от 40h до FFh используются системой. Свободные (не связанные с устройствами) порты в этом диапазоне считаются зарезервированными для будущего расширения системы. Подробнее см. «Карта ввода/вывода» в конце данного руководства. | ||
+ | |||
+ | Программное обеспечение, которое напрямую обращается к портам ввода/вывода, может вызвать проблемы совместимости с некоторыми типами аппаратных платформ. Следовательно, все устройства ввода/вывода всегда должны быть доступны через различные функции BIOS для создания аппаратно-независимого программного обеспечения. | ||
+ | |||
+ | Для выполнения критичных по быстродействию операций по управлению видеопроцессором допускается напрямую использовать порты ввода/вывода. Однако в этом случае необходимо уточнить адреса портов видеопроцессора для чтения и записи, проверив значения по адресам 0006h и 0007h в MAIN ROM. Для получения дополнительной информации см. «Раздел 4. VDP». | ||
+ | |||
+ | Порты ввода/вывода от 00h до 3Fh доступны для пользователя, но в первую очередь используйте возможность отображения регистров устройств в адресное пространство, чтобы избежать подключения нескольких периферийных устройств к одному и тому же порту. | ||
+ | |||
+ | Контроллер гибких дисков (FDC) может использовать порты ввода/вывода, но в этом случае схема должна иметь возможность отключения дополнительным внешним сигналом. Если контроллер будет занимать порты ввода/вывода только при необходимости обращении к нему, это позволяет системе одновременно использовать несколько различных контроллеров гибких дисков. | ||
+ | |||
+ | Если адрес ввода/вывода необходимо использовать в предлагаемом к продаже устройстве, он должен быть назначен ASCII System Division, Inc. Пожалуйста, свяжитесь с нами перед разработкой устройства, чтобы получить назначенные адреса портов ввода/вывода. | ||
+ | |||
+ | ====== Добавление портов ввода/вывода ====== | ||
+ | |||
+ | При добавлении нового устройства может возникнуть проблема: как назначать номера портов ввода/вывода, если это устройство не является стандартным и для него не назначены порты в какой-либо спецификации. Адреса портов ввода/вывода от 40h до FFh зарезервированы для стандартного оборудования системы MSX и не могут быть использованы, если данное оборудование не является стандартным оборудованием. | ||
+ | |||
+ | Адреса портов ввода/вывода от 00H до 3FH не используются в архитектуре MSX и могут быть использованы для пользовательских аппаратных решений, однако следует учитывать то, что несколько однотипных устройств или устройств, разработанных по несогласованным спецификациям, могут конфликтовать и приводить к неработоспособности системы. | ||
+ | |||
+ | Чтобы избежать этого, используйте отображение регистров устройств в адресное пространство. | ||
====== Ссылки ====== | ====== Ссылки ====== | ||
+ | **[[msx:datapack:datapack|]]** | ||
[[http://problemkaputt.de/portar.htm#ioportsummary|Portar MSX Tech Doc — I/O Port Summary]] | [[http://problemkaputt.de/portar.htm#ioportsummary|Portar MSX Tech Doc — I/O Port Summary]] |