Инструменты пользователя

Инструменты сайта


msx:io_ports

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
msx:io_ports [2020-10-23 14:27]
GreyWolf
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  |  З  |Запись ​данных в порт A|  [[msx:​ppi|PPI]] ​8255  | +|  A8  |  З/Ч  ​|Запись/чтение [[msx:​ppi#​reg_a|PPI ​порт A]]|  [[msx:​ppi|PPI]] ​ | 
-|:::|  ​Ч  ​|Чтение данных из порта A|:::| +|:::|:::|:::|:::| 
-|  A9  |  З  |Запись ​данных в порт B|:::| +|  A9  |  З/Ч  ​|Записьтение ​[[msx:​ppi#​reg_b|PPI ​порт B]]|:::| 
-|:::|  Ч  |Чтение ​данных из порта B|:::| +|  AA  |  З/Ч  ​|Записьтение ​[[msx:​ppi#​reg_c|PPI ​порт C]]|:::| 
-|  AA  |  З  |Запись ​данных в порт C|:::| +|  AB  |  З/Ч  ​|Запись/чтение [[msx:ppi#reg_m|регистр режима PPI]]|:::|
-|:::|  Ч  |Чтение ​данных из порта C|:::| +
-|  AB  |  З  |Запись ​в регистр режима PPI|:::| +
-|:::|  Ч  |Чтение из регистра режима PPI|:::|+
 | | | | | | | | | |
 |  AC  | |Двигатель (мотор) MSX \\ (1chipMSX I/O)| | |  AC  | |Двигатель (мотор) MSX \\ (1chipMSX I/O)| |
Строка 291: Строка 288:
 |  F2  | |  F2  |
 |  F3  | |  F3  |
-|  F4  |+|  F4  ​| Используется в [[msx:​msx_2_plus#​port_f4|MSX 2 +]]|||
 | | | | | | | | | |
 |  F5  |  З  |b0 Kanji ROM|  Контроль системы ​ | |  F5  |  З  |b0 Kanji ROM|  Контроль системы ​ |
Строка 318: Строка 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]]
Строка 339: Строка 364:
  
  
-{{tag>​MSX }}+{{tag>​MSX ​Norm}}
msx/io_ports.1603452422.txt.gz · Последние изменения: 2020-10-23 14:27 — GreyWolf