Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
msx:ppi [2022-09-01 20:53] 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 | B |Колонка матрицы клавиатуры (Только чтение) \\ Чтение из этого порта вернёт состояние выбранной строки клавиатуры (выбранной через порт AA) \\ Биты 0–7 соответствует одной из 8 клавиш в каждой строке матрицы клавиатуры \\ **Если клавиша нажата, то соответствующий бит устанавливается в 0**| |
- | ^ Порт ^ Название ^ Описание ^ | + | | AA | C |Строка матрицы клавиатуры, 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 ^ | ||
Строка 146: | Строка 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| | ||
Строка 155: | Строка 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 |:::|:::|:::| |