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

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


msx:ppi

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
msx:ppi [2022-09-01 20:50]
GreyWolf [Пример опроса клавиатуры без использования подпрограмм ПЗУ]
msx:ppi [2022-09-01 21:14] (текущий)
GreyWolf [Пример опроса клавиатуры без использования подпрограмм ПЗУ]
Строка 13: Строка 13:
 {{anchor:​work_keyboard_without_rom}} {{anchor:​work_keyboard_without_rom}}
 ===== Пример опроса клавиатуры без использования подпрограмм ПЗУ ===== ===== Пример опроса клавиатуры без использования подпрограмм ПЗУ =====
- 
-FIXME 
  
 Пример опроса клавиатуры без использования подпрограмм [[msx:​rom|]],​ автор **KoD/SDM** Пример опроса клавиатуры без использования подпрограмм [[msx:​rom|]],​ автор **KoD/SDM**
  
-Для опроса клавиатуры используются два порта ​- #A9 и #AA +Для опроса клавиатуры используются два порта ​— A9 и AA: 
- +^  Регистр  ​^  Порт ^  Описание ​ ^ 
-|<100% 10% 30% 60%>| + A9  ​|  ​ |Колонка матрицы клавиатуры ​(Только чтение\\ Чтение из этого порта вернёт состояние выбранной строки клавиатуры (выбранной через порт AA) \\ Биты 0–7 соответствует одной из 8 клавиш в каждой строке матрицы клавиатуры \\ **Если клавиша нажатато соответствующий бит устанавливается в 0**
-^  Порт ​ ^  ​Название ​ ^ Описание ​ ^ + AA  ​|  ​ |Строка матрицы клавиатуры, LED, Cassette (Чтение/Запись\\ Биты 0-3 соответствуют строке матрицы клавиатуры| 
-|#A9, PPI Port B|Keyboard Column Inputs ​(Read Only)|Чтение из этого порта вернёт состояние выбранной строки клавиатуры (выбранной через порт ​#AA) \\ Биты 0–7 соответствует одной из 8 клавиш в каждой строке матрицы клавиатуры \\ PS ЕСЛИ КЛАВИША НАЖАТАТО СООТВЕТСТВУЮЩИЙ БИТ УСТАНАВЛИВАЕТСЯ В 0| +Полное описание регистров/​портов приведено [[#​registers|ниже]].
-|#AA, PPI Port C|Keyboard Row, LED, Cassette (Read/Write)|Биты 0-3 соответствуют строке матрицы клавиатуры" +
  
-Пример интернациональной раскладки матрицы клавиатуры+Пример интернациональной раскладки матрицы клавиатуры:
 | ^  Порт #A9  ^^^^^^^^ | ^  Порт #A9  ^^^^^^^^
 ^  Порт #AA  ^ бит 7  ^  бит 6  ^  бит 5  ^  бит 4  ^  бит 3  ^  бит 2  ^  бит 1  ^  бит 0  ^ ^  Порт #AA  ^ бит 7  ^  бит 6  ^  бит 5  ^  бит 4  ^  бит 3  ^  бит 2  ^  бит 1  ^  бит 0  ^
Строка 39: Строка 35:
 ^строка 8|  →  |  ↓  |  ↑  |  ←  |  DEL  |  INS  |  HOME  |  SPACE  | ^строка 8|  →  |  ↓  |  ↑  |  ←  |  DEL  |  INS  |  HOME  |  SPACE  |
  
-PS  это пример раскладки без "​шифта"​ и не расширенной клавиатуры +Это пример раскладки без "​шифта"​ и не расширенной клавиатуры:​
- +
-Более подробно см. [[http://​map.grauw.nl/​articles/​keymatrix.php|здесь]] +
 <​code>​ <​code>​
- 
 ;​------------------------------------------------------- ;​-------------------------------------------------------
 NAMBAS EQU #​F922 ;​ адрес PNT NAMBAS EQU #​F922 ;​ адрес PNT
Строка 141: Строка 133:
  db " ​       "  db " ​       "
 ;​---------------------------------------------------------------------------- ;​----------------------------------------------------------------------------
- 
 </​code>​ </​code>​
  
-----+Более подробно см. здесь: [[http://​map.grauw.nl/​articles/​keymatrix.php|MSX Assembly Page: Keyboard matrices]]
  
-[[http://​map.grauw.nl/​articles/​keymatrix.php|MSX Assembly Page: Keyboard matrices]] 
  
 {{anchor:​registers}} {{anchor:​registers}}
Строка 152: Строка 142:
  
 Здесь приведено соответствие регистров PPI и портов ввода/​вывода:​ Здесь приведено соответствие регистров PPI и портов ввода/​вывода:​
-^  Регистр ​ ^  Порт ​ ^  Бит ​ ^  Режим \\ (ввод/​вывод)  ^  Имя ​ ^  Назначение ​  ^ +^  Регистр ​ ^  Порт ​ ^  Бит ​ ^  Режим \\ (ввод/​выход)  ^  Имя ​ ^  Назначение ​  ^ 
-|  A {{anchor:​reg_a}} ​ |  A8 {{anchor:​a8}} ​ |  0  |  ввод/​вывод  |  CS0 L   ​|Выбор слота для адресов в диапазоне 0000-3FFF|+|  A {{anchor:​reg_a}} ​ |  A8 {{anchor:​a8}} ​ |  0  |  ввод/​выход  |  CS0 L   ​|Выбор слота для адресов в диапазоне 0000-3FFF|
 |:::​|:::​| ​ 1  |:::|  CS0 H  |:::| |:::​|:::​| ​ 1  |:::|  CS0 H  |:::|
 |:::​|:::​| ​ 2  |:::|  CS1 L   ​|Выбор слота для адресов в диапазоне 4000-7FFF| |:::​|:::​| ​ 2  |:::|  CS1 L   ​|Выбор слота для адресов в диапазоне 4000-7FFF|
Строка 161: Строка 151:
 |:::​|:::​| ​ 6  |:::|  CS3 L   ​|Выбор слота для адресов в диапазоне C000-FFFF| |:::​|:::​| ​ 6  |:::|  CS3 L   ​|Выбор слота для адресов в диапазоне C000-FFFF|
 |:::​|:::​| ​ 7  |:::|  CS3 H  |:::| |:::​|:::​| ​ 7  |:::|  CS3 H  |:::|
-|  B {{anchor:​reg_b}} ​ |  A9 {{anchor:​a9}} ​ |  0  |  ввод ​ |  |Состояние строки [[msx:​russification:#​matrix|матрицы клавиатуры]],​ указанной через порт [[#AA]] битами KB1–KB3|+|  B {{anchor:​reg_b}} ​ |  A9 {{anchor:​a9}} ​ |  0  |  ввод ​ |  |Состояние строки [[msx:​russification:#​matrix|матрицы клавиатуры]],​ указанной через порт [[#AA]] битами KB1–KB3 ​\\ **Если клавиша нажата,​ то соответствующий бит устанавливается в 0**|
 |:::​|:::​| ​ 1  |:::​|:::​|:::​| |:::​|:::​| ​ 1  |:::​|:::​|:::​|
 |:::​|:::​| ​ 2  |:::​|:::​|:::​| |:::​|:::​| ​ 2  |:::​|:::​|:::​|
msx/ppi.1662054626.txt.gz · Последние изменения: 2022-09-01 20:50 — GreyWolf