Это старая версия документа!
Проект на GitHub, Локальная копия
Всё описанное здесь проверено только на машинах yamaha_kuvt.
Раскладка клавиатуры Русская (машинопись)
Раскладка клавиатуры Русская (машинопись)
Выжимаем максимум производительности из клавиатуры / Хабр 5. Русская машинопись
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | ||||||||||||||||
1 | ||||||||||||||||
2 | ||||||||||||||||
3 | ||||||||||||||||
4 | ||||||||||||||||
5 | ||||||||||||||||
6 | ||||||||||||||||
7 | ||||||||||||||||
8 | ||||||||||||||||
9 | ||||||||||||||||
A | ||||||||||||||||
B | ||||||||||||||||
C | ||||||||||||||||
D | ||||||||||||||||
E | ||||||||||||||||
F | ||||||||||||||||
0x01 + 0x4n 0x0n 1) | ||||||||||||||||
0x01 + 0x5n 0x1n 2) |
При наведении курсора на символ отображается его код:
Диапазон | Цвет | Описание | |
---|---|---|---|
0x00-0x1F, 0x7F | 00-31, 127 | синий | Специальные (управляющие) символы |
0xFF | 255 | Курсор | |
0x20-0x7E | 32-126 | фиолетовый | Эти символы соответствуют международной раскладке |
0x80-0xBE | 128-190 | зелёный | Символы, которые в международной таблице находятся в диапазоне 0xC0-0xFE (192-254) |
0xBF-0xFE | 191-254 | красный | 0xBF (191) — знак валюты, 0xС0-0xFE (192-254) — русские буквы, набор символов соответствует стандарту КОИ-8 |
0x40-0x5F | 64-95 | оранжевый | Графические символы, для обращение к ним используется префикс 0x01 (1). В таблице матрицы клавиатуры и в шрифте коды этих символов без префикса, в формате 0x0n |
Программа для вывод таблицы кодов символов на экран, запуск в WebMSX
Программы для вывода таблицы символов (без кодов):
ширина 16 символов, запуск в WebMSX
ширина 32 символа, запуск в WebMSX
На компьютерах стандарта MSX которые поставлялись в СССР (yamaha_kuvt) используется Фонетическая раскладка клавиатуры для русского языка.
Белые кнопки расположены клавиатуре в четыре строки, из общее число: 48 (13 + 12 + 12 + 11):
Под каждой клавишей указан её номер в матрице клавиатуры.
Y № строки | Адрес байта | X № бита | Адрес строки в ПЗУ / Таблица |
||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||||
0 | FBE5 | & 6 | % 5 | ¤ 4 | # 3 | " 2 | ! 1 | + ; | ) 9 | Часть 1 | |
№ | 0x07 | 0x06 | 0x05 | 0x04 | 0x03 | 0x02 | 0x01 | 0x00 | |||
1 | FBE6 | V Ж | * : | H Х | - ^ Ъ | = _ | $ 0 | ( 8 | ' 7 |
||
№ | 0x0F | 0x0E | 0x0D | 0x0C | 0x0B | 0x0A | 0x09 | 0x08 | |||
2 | FBE7 | I И | F Ф | ? / | < , | @ Ю | B Б | > . | \ Э |
||
№ | 0x17 | 0x16 | 0x15 | 0x14 | 0x13 | 0x12 | 0x11 | 0x10 | |||
3 | FBE8 | O О | [ { Ш | R Р | P П | A А | U У | W В | S С |
||
№ | 0x1F | 0x1E | 0x1D | 0x1C | 0x1B | 0x1A | 0x19 | 0x18 | |||
4 | FBE9 | K К | J Й | Z З | ] } Щ | T Т | X Ь | D Д | L Л |
||
№ | 0x27 | 0x26 | 0x25 | 0x24 | 0x23 | 0x22 | 0x21 | 0x20 | |||
5 | FBEA | Q Я | N Н | | ~ Ч | C Ц | M М | G Г | E Е | Y Ы |
||
№ | 0x2F | 0x2E | 0x2D | 0x2C | 0x2B | 0x2A | 0x29 | 0x28 | |||
6 | FBEB | F3 | F2 | F1 | РУС | CAPS | GRAPH | CTRL | SHIFT | 0x1033 | Часть 2 |
№ | 0x37 | 0x36 | 0x35 | 0x34 | 0x33 | 0x32 | 0x31 | 0x30 | |||
7 | FBEC | RET | SELECT | BS | STOP | TAB | ESC | F5 | F4 | 0x103B | |
№ | 0x3F | 0x3E | 0x3D | 0x3C | 0x3B | 0x3A | 0x39 | 0x38 | |||
8 | FBED | → | ↓ | ↑ | ← | DEL | INS | HOME | SPACE | 0x1043 | |
№ | 0x47 | 0x46 | 0x45 | 0x44 | 0x43 | 0x42 | 0x41 | 0x40 | |||
9 | FBEE | 4 | 3 | 2 | 1 | 0 | / | + | * | 0x104B | |
№ | 0x4F | 0x4E | 0x4D | 0x4C | 0x4B | 0x4A | 0x49 | 0x48 | |||
10 | FBEF | . | , | - | 9 | 8 | 7 | 6 | 5 | 0x1053 | |
№ | 0x57 | 0x56 | 0x55 | 0x54 | 0x53 | 0x52 | 0x51 | 0x50 |
Аппаратная реализация:
Считывание состояния матрицы происходит по строкам (Y), каждая строка это байт (8 бит) это столбцы (X). Указание строки происходит установкой на выход с её номером (Y 0–9) низкого уровня (0), каждая нажатая кнопка даёт низкий уровень (0). Опрос строк происходит с частотой кадровых импульсов видео-генератора.
Работа с клавиатурой проходит через порты PPI.
Для проверки можно использовать программы:
Отображение матрицы клавиатуры (за основу взята программа Камиля Каримова. Источник, оригинал)
kbdmtrx.bas
kbdmtrx.bas
Отображение номера строки и столбца а также порядкового номера нажатой клавиши в матрице клавиатуры (за основу взята программа 1091-01.bas
kbdmtrxn.bas
kbdmtrxn.bas
Примеры таблиц и скрипты здесь.
Основная часть таблицы.
Режимы:
№ п/п | Диапазон внутри таблицы | Описание | Примечание |
---|---|---|---|
1 | 0x00–0x2F | Без модификаторов | |
2 | 0x30–0x5F | С нажатой клавишей SHIFT | |
3 | 0x60–0x8F | С нажатой клавишей GRAPH | Коды оранжевых графических символов записываются в таблицу без префикса, в формате 0x0n |
4 | 0x90–0xBF | С нажатыми клавишами GRAPH+SHIFT | |
5 | 0xC0–0xEF | С нажатой клавишей РУС | |
6 | 0xF0–011F | С нажатыми клавишами РУС+SHIFT |
Соответствие клавиш с дано в разделе раскладка клавиатуры.
Эта таблица дополнительных клавиш.
256 символов, 8 байт на символ.
Диапазон (относительное смещение) | Описание | Цвет в таблице символов |
---|---|---|
0x00-0xFF | Графические символы | оранжевый |
0x100-0x3F7 | Эти символы соответствуют международной раскладке | фиолетовый |
0x3F8 | неизвестный символ, код 0x7F (127) | — |
0x400-0x5F7 | Символы международной таблицы | зелёный |
0x5F8-0x7F7 | Русские буквы, набор символов соответствует стандарту КОИ-8 | красный |
Примеры и скрипты здесь.
Конвертер текста MSX в кодировку UTF-8.
Проект был создан для работы над файлами книги start
Пока не подобраны замены для символов для режима 4 (GRAPH+SHIFT):
Примеры и скрипты здесь.
gseidler/The-MSX-Red-Book — Keyboard Matrix
Program 5.1 (Graham Bland — MSX Programmin (1986), ISBN 0-273-02302-0)
MSX Assembly Page — Keyboard matrices
msxblue.com — Russian MSX Keyboard
http://podrezov.com/msx2plus/top.jpg
Change msx keyboard layout / matrix
Подключение PS/2 клавиатуры к MSX
Change msx keyboard layout / matrix
zx-pk.ru MSX: Разное - Страница 20