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

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


msx:ppi

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
msx:ppi [2022-09-01 20:33]
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**
-<​hidden>​ 
- 
-Для опроса клавиатуры используются два порта - #A9 и #AA 
- 
-ПОРТ #A9, PPI Port B - Keyboard Column Inputs (Read Only) 
-Чтение из этого порта вернет состояние выбранной строки клавиатуры (выбранной через порт #AA) 
-Биты 0-7 соответствует одной из 8 клавиш в каждой строке матрицы клавиатуры ​ 
- 
-PS ЕСЛИ КЛАВИША НАЖАТА,​ ТО СООТВЕТСТВУЮЩИЙ БИТ УСТАНАВЛИВАЕТСЯ В 0 
- 
- 
-ПОРТ 0AAh, PPI Port C - Keyboard Row,​LED,​Cassette (Read/​Write) 
-Биты 0-3 соответствуют строке матрицы клавиатуры 
- 
  
-Пример интернациональной раскладки матрицы клавиатуры+Для опроса клавиатуры используются два порта — A9 и AA: 
 +^  Регистр  ​^ ​ Порт ^  Описание  ^ 
 +|  A9  |  B  |Колонка матрицы клавиатуры (Только чтение) \\ Чтение из этого порта вернёт состояние выбранной ​строки клавиатуры (выбранной через порт AA) \\ Биты 0–7 соответствует одной из 8 клавиш в каждой строке матрицы клавиатуры \\ **Если клавиша нажата,​ то соответствующий бит устанавливается в 0**| 
 +|  AA  |  C  |Строка ​матрицы клавиатуры, LED, Cassette (Чтение/​Запись) \\ Биты 0-3 соответствуют строке матрицы клавиатуры| 
 +Полное описание регистров/​портов приведено [[#​registers|ниже]].
  
-ОРТ ​#A9^bit 7^bit 6^bit 5^bit 4^bit 3^bit 2^bit 1^bit 0+Пример интернациональной раскладки матрицы клавиатуры:​ 
-^ПОРТ #AA^+ Порт ​#A9  ^^^^^^^^ 
 +^  Порт #AA  ^ бит ​  ​бит ​  ​бит ​  ​бит ​  ​бит ​  ​бит ​  ​бит ​  ​бит ​ ^
 ^строка 0|  7  |  6  |  5  |  4  |  3  |  2  |  1  |  0  | ^строка 0|  7  |  6  |  5  |  4  |  3  |  2  |  1  |  0  |
 ^строка 1|  ;  |  ]  |  [  |  \  |  =  |  -  |  9  |  8  | ^строка 1|  ;  |  ]  |  [  |  \  |  =  |  -  |  9  |  8  |
Строка 46: Строка 35:
 ^строка 8|  →  |  ↓  |  ↑  |  ←  |  DEL  |  INS  |  HOME  |  SPACE  | ^строка 8|  →  |  ↓  |  ↑  |  ←  |  DEL  |  INS  |  HOME  |  SPACE  |
  
 +Это пример раскладки без "​шифта"​ и не расширенной клавиатуры:​
 <​code>​ <​code>​
-PS  это пример раскладки без "​шифта"​ и не расширеной клавиатуры 
-    Более подробно см. здесь http://​map.grauw.nl/​articles/​keymatrix.php 
- 
 ;​------------------------------------------------------- ;​-------------------------------------------------------
 NAMBAS EQU #​F922 ;​ адрес PNT NAMBAS EQU #​F922 ;​ адрес PNT
Строка 146: Строка 133:
  db " ​       "  db " ​       "
 ;​---------------------------------------------------------------------------- ;​----------------------------------------------------------------------------
- 
 </​code>​ </​code>​
  
-</hidden>​ +Более подробно см. здесь: [[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}}
Строка 159: Строка 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|
Строка 168: Строка 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.1662053620.txt.gz · Последние изменения: 2022-09-01 20:33 — GreyWolf