Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
msx:ppi [2022-09-01 21:09] 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** | ||
Строка 20: | Строка 18: | ||
Для опроса клавиатуры используются два порта — A9 и AA: | Для опроса клавиатуры используются два порта — A9 и AA: | ||
^ Регистр ^ Порт ^ Описание ^ | ^ Регистр ^ Порт ^ Описание ^ | ||
- | | A9 | B |Колонка матрицы клавиатуры (Только чтение) \\ Чтение из этого порта вернёт состояние выбранной строки клавиатуры (выбранной через порт AA) \\ Биты 0–7 соответствует одной из 8 клавиш в каждой строке матрицы клавиатуры \\ :!: **Если клавиша нажата, то соответствующий бит устанавливается в 0**| | + | | A9 | B |Колонка матрицы клавиатуры (Только чтение) \\ Чтение из этого порта вернёт состояние выбранной строки клавиатуры (выбранной через порт AA) \\ Биты 0–7 соответствует одной из 8 клавиш в каждой строке матрицы клавиатуры \\ **Если клавиша нажата, то соответствующий бит устанавливается в 0**| |
| AA | C |Строка матрицы клавиатуры, LED, Cassette (Чтение/Запись) \\ Биты 0-3 соответствуют строке матрицы клавиатуры| | | AA | C |Строка матрицы клавиатуры, LED, Cassette (Чтение/Запись) \\ Биты 0-3 соответствуют строке матрицы клавиатуры| | ||
+ | Полное описание регистров/портов приведено [[#registers|ниже]]. | ||
Пример интернациональной раскладки матрицы клавиатуры: | Пример интернациональной раскладки матрицы клавиатуры: | ||
Строка 152: | Строка 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 |:::|:::|:::| |