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

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


msx:ppi

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
msx:ppi [2022-09-01 20:13]
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>​ 
-<​code>​ 
-Для опроса клавиатуры используются два порта - #A9 и #AA 
  
-ПОРТ #A9, PPI Port - Keyboard Column Inputs ​(Read Only) +Для опроса клавиатуры используются два порта — A9 и AA: 
-Чтение из этого порта вернет состояние выбранной строки клавиатуры (выбранной через порт ​#AA) +^  Регистр ​ ^  ​Порт ^  ​Описание ​ ^ 
-Биты 0-7 соответствует одной из 8 клавиш в каждой строке матрицы клавиатуры ​+|  ​A9  ​|  ​ ​|Колонка матрицы клавиатуры ​(Только чтение\\ Чтение из этого порта вернёт состояние выбранной строки клавиатуры (выбранной через порт AA) \\ Биты 07 соответствует одной из 8 клавиш в каждой строке матрицы клавиатуры ​\\ **Если клавиша нажата,​ то соответствующий бит устанавливается в 0**| 
 +|  AA  |  C  |Строка матрицы клавиатуры,​ LED, Cassette (Чтение/​Запись) \\ Биты 0-3 соответствуют строке матрицы клавиатуры| 
 +Полное описание регистров/​портов приведено [[#​registers|ниже]].
  
-PS ЕСЛИ КЛАВИША НАЖАТА,​ ТО СООТВЕТСТВУЮЩИЙ БИТ УСТАНАВЛИВАЕТСЯ В 0 +Пример интернациональной раскладки матрицы клавиатуры: 
- +| ^  ​Порт ​#A9  ​^^^^^^^^ 
- +^  Порт #AA  ^ бит ​7  ​^  бит ​6  ​^  бит ​5  ​^  бит ​4  ​^  бит ​3  ​^  бит ​2  ​^  бит ​1  ​^  бит ​ ^ 
-ПОРТ 0AAh, PPI Port C - Keyboard Row,​LED,​Cassette (Read/​Write) +^строка 0|  ​ ​|  ​ ​|  ​ ​|  ​ ​|  ​ ​|  ​ ​|  ​ ​|  ​ | 
-Биты 0-3 соответствуют строке матрицы клавиатуры +^строка 1|  ​ ​|  ​ ​|  ​ ​|  ​ ​|  ​ ​|  ​ ​|  ​ ​|  ​ | 
- +^строка 2|  ​ ​| ​ ​a ​ ​|  ​DEAD  ​|  ​ ​|  ​ ​|  ​ ​|  ​ ​|  ​' ​ | 
- +^строка 3|  ​ ​| ​ ​i ​ ​|  ​ ​|  ​ ​|  ​ ​|  ​ ​| ​ ​d ​ ​|  ​ | 
-Пример интернациональной раскладки матрицы клавиатуры +^строка 4|  ​ ​| ​ ​q ​ ​|  ​ ​|  ​ ​|  ​ ​|  ​ ​| ​ ​l ​ ​|  ​ | 
- +^строка 5|  ​ ​| ​ ​y ​ ​|  ​ ​|  ​ ​|  ​ ​|  ​ ​| ​ ​t ​ ​|  ​ | 
-ПОРТ ​#A9 bit 7  ​bit 6  ​bit 5  ​bit 4  ​bit 3  ​bit 2  ​bit 1  ​bit +^строка 6|  ​F3  ​| ​ ​F2 ​ ​|  ​F1  ​|  ​CODE  ​|  ​CAPS  ​|  ​GRAPH  ​| ​ ​CTRL ​ ​|  ​SHIFT  | 
- +^строка 7|  ​RET  ​| ​ ​SELECT ​ ​| ​ ​BS ​ ​|  ​STOP  ​|  ​TAB  ​|  ​ESC  ​| ​ ​F5 ​ ​|  ​F4  | 
-ПОРТ #AA +^строка 8|  ​→  ​| ​ ​↓ ​ ​|  ​↑  ​|  ​←  ​|  ​DEL  ​|  ​INS  ​| ​ ​HOME ​ ​|  ​SPACE  ​|
-строка 0 7            ​                  ​0  +
-строка 1 ;            ​          ​8  +
-строка 2 b a    DEAD   ​          ​'  +
-строка 3 j i    h     ​g      f e d   ​+
-строка 4 r q    p     ​o      n m l   ​+
-строка 5 z y    x     ​w      v u t   ​+
-строка 6 F3 F2    F1     ​CODE   ​CAPS   ​GRAPH  CTRL   ​SHIFT +
-строка 7 RET SELECT ​ BS     ​STOP   ​TAB ESC F5   ​F4 +
-строка 8 → ↓        ​     DEL INS HOME   ​SPACE +
- +
-PS  это пример раскладки без "​шифта"​ и не расширеной клавиатуры +
-    Более подробно см. здесь http://​map.grauw.nl/​articles/​keymatrix.php+
  
 +Это пример раскладки без "​шифта"​ и не расширенной клавиатуры:​
 +<​code>​
 ;​------------------------------------------------------- ;​-------------------------------------------------------
 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.1662052430.txt.gz · Последние изменения: 2022-09-01 20:13 — GreyWolf