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

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


msx:russification:russification

Это старая версия документа!


Русификация MSX

Всё описанное здесь проверено только на машинах yamaha_kuvt.

Проект на GitHub, Локальная копия

Таблица символов

Компактный вариант таблицы

Компактный вариант таблицы

Компактный вариант таблицы

0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0
0x00 1
0x01 2
0x02 3
0x03 4
0x04 5
0x05 6
0x06 7
0x07 8
0x08 9
0x09 10
0x0A 11
0x0B 12
0x0C 13
0x0D 14
0x0E 15
0x0F
1 16
0x10 17
0x11 18
0x12 19
0x13 20
0x14 21
0x15 22
0x16 23
0x17 24
0x18 25
0x19 26
0x1A 27
0x1B 28
0x1C 29
0x1D 30
0x1E 31
0x1F
2 32
0x20 33
0x21 34
0x22 35
0x23 36
0x24 37
0x25 38
0x26 39
0x27 40
0x28 41
0x29 42
0x2A 43
0x2B 44
0x2C 45
0x2D 46
0x2E 47
0x2F
3 48
0x30 49
0x31 50
0x32 51
0x33 52
0x34 53
0x35 54
0x36 55
0x37 56
0x38 57
0x39 58
0x3A 59
0x3B 60
0x3C 61
0x3D 62
0x3E 63
0x3F
4 64
0x40 65
0x41 66
0x42 67
0x43 68
0x44 69
0x45 70
0x46 71
0x47 72
0x48 73
0x49 74
0x4A 75
0x4B 76
0x4C 77
0x4D 78
0x4E 79
0x4F
5 80
0x50 81
0x51 82
0x52 83
0x53 84
0x54 85
0x55 86
0x56 87
0x57 88
0x58 89
0x59 90
0x5A 92
0x5B 92
0x5C 93
0x5D 94
0x5E 95
0x5F
6 96
0x60 97
0x61 98
0x62 99
0x63 100
0x64 101
0x65 102
0x66 103
0x67 104
0x68 105
0x69 106
0x6A 107
0x6B 108
0x6C 109
0x6D 110
0x6E 111
0x6F
7 112
0x70 113
0x71 114
0x72 115
0x73 116
0x74 117
0x75 118
0x76 119
0x77 120
0x78 121
0x79 122
0x7A 123
0x7B 124
0x7C 125
0x7D 126
0x7E 127
0x7F
8 128
0x80 129
0x81 130
0x82 131
0x83 132
0x84 133
0x85 134
0x86 135
0x87 136
0x88 137
0x89 138
0x8A 139
0x8B 140
0x8C 141
0x8D 142
0x8E 143
0x8F
9 144
0x90 145
0x91 146
0x92 147
0x93 148
0x94 149
0x95 150
0x96 151
0x97 152
0x98 153
0x99 154
0x9A 155
0x9B 156
0x9C 157
0x9D 158
0x9E 159
0x9F
A 160
0xA0 161
0xA1 162
0xA2 163
0xA3 164
0xA4 165
0xA5 166
0xA6 167
0xA7 168
0xA8 169
0xA9 170
0xAA 171
0xAB 172
0xAC 173
0xAD 174
0xAE 175
0xAF
B 176
0xB0 177
0xB1 178
0xB2 179
0xB3 180
0xB4 181
0xB5 182
0xB6 183
0xB7 184
0xB8 185
0xB9 186
0xBA 187
0xBB 188
0xBC 189
0xBD 190
0xBE 191
0xBF
C 192
0xC0 193
0xC1 194
0xC2 195
0xC3 196
0xC4 197
0xC5 198
0xC6 199
0xC7 200
0xC8 201
0xC9 202
0xCA 203
0xCB 204
0xCC 205
0xCD 207
0xCE 207
0xCF
D 208
0xD0 209
0xD1 210
0xD2 211
0xD3 212
0xD4 213
0xD5 214
0xD6 215
0xD7 216
0xD8 217
0xD9 218
0xDA 219
0xDB 220
0xDC 221
0xDD 222
0xDE 223
0xDF
E 224
0xE0 225
0xE1 226
0xE2 227
0xE3 228
0xE4 229
0xE5 230
0xE6 231
0xE7 232
0xE8 233
0xE9 234
0xEA 235
0xEB 236
0xEC 237
0xED 238
0xEE 239
0xEF
F 240
0xF0 241
0xF1 242
0xF2 243
0xF3 244
0xF4 245
0xF5 246
0xF6 247
0xF7 248
0xF8 249
0xF9 250
0xFA 251
0xFB 252
0xFC 253
0xFD 254
0xFE 255
0xFF
0x01
+
0x4n
0x0n 1)
1+65
0x01+0x41
0x01  1+66
0x01+0x42
0x02  1+67
0x01+0x43
0x03  1+68
0x01+0x44
0x04 1+69
0x01+0x45
0x04 1+70
0x01+0x46
0x06 1+71
0x01+0x47
0x07 1+72
0x01+0x48
0x08 1+73
0x01+0x49
0x09 1+74
0x01+0x4A
0x0A 1+75
0x01+0x4B
0x0B 1+76
0x01+0x4C
0x0C 1+77
0x01+0x4D
0x0D 1+78
0x01+0x4E
0x0E 1+79
0x01+0x4F
0x0F
0x01
+
0x5n
0x1n 2)
1+80
0x01+0x50
0x10 1+81
0x01+0x51
0x11 1+82
0x01+0x52
0x12 1+83
0x01+0x53
0x13 1+84
0x01+0x54
0x14 1+85
0x01+0x55
0x15 1+86
0x01+0x56
0x16 1+87
0x01+0x57
0x17 1+88
0x01+0x58
0x18 1+89
0x01+0x59
0x19 1+90
0x01+0x5A
0x1A 1+91
0x01+0x5B
0x1B 1+92
0x01+0x5C
0x1C 1+93
0x01+0x5D
0x1D 1+94
0x01+0x5E
0x1E 1+95
0x01+0x5F
0x1F

При наведении курсора на символ отображается его код:

  • десятичный
  • шестнадцатеричный
  • [шестнадцатеричный для оранжевых графических символов, этот код используется в таблице матрицы клавиатуры ]
Диапазон Цвет Описание
0x00-0x1F,
0x7F
00-31,
127
синийСпециальные (управляющие) символы
0xFF255Курсор
0x20-0x7E32-126фиолетовыйЭти символы соответствуют международной раскладке
0x80-0xBE128-190зелёныйСимволы, которые в международной таблице находятся в диапазоне 0xC0-0xFE (192-254)
0xBF-0xFE191-254красный0xBF (191) — знак валюты, 0xС0-0xFE (192-254) — русские буквы, набор символов соответствует стандарту КОИ-8
0x40-0x5F64-95оранжевыйГрафические символы, для обращение к ним используется префикс 0x01 (1).
В таблице матрицы клавиатуры и в шрифте коды этих символов без префикса, в формате 0x0n

Программа для вывод таблицы кодов символов на экран, запуск в WebMSX

Программы для вывода таблицы символов (без кодов):

ширина 16 символов, запуск в WebMSX

ширина 32 символа, запуск в WebMSX

Раскладка клавиатуры

На компьютерах стандарта MSX которые поставлялись в СССР (yamaha_kuvt) используется Фонетическая раскладка клавиатуры для русского языка.

Белые кнопки расположены клавиатуре в четыре строки, из общее число: 48 (13 + 12 + 12 + 11):

1 43
0x2B 59
0x3B
160
0xA0 165
0xA5
33
0x21 49
0x31
171
0xAB 189
0xBD
34
0x22 
0x32
161
0xA1 188
0xBC
35
0x23 51
0x33
175
0xAF 166
0xA6
191
0xBF 52
0x34
162
0xA2 167
0xA7
37
0x25 53
0x35
180
0xB4 181
0xB5
38
0x26 54
0x36
187
0xBB 168
0xA8
39
0x27 55
0x37
172
0xAC 169
0xA9
40
0x28 56
0x38
1+71
0x01+0x47 1+72
0x01+0x48
41
0x29 57
0x39
1+73
0x01+0x49 1+74
0x01+0x4A
36
0x24 48
0x30
1+87
0x01+0x57 1+95
0x01+0x5F
61
0x3D 95
0x5F
177
0xB1 176
0xB0
223
0xDF
45
0x2D 94
0x5E
1+94
0x01+0x5E 1+86
0x01+0x56
0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x00 0x0A 0x0B 0x0C
2 202
0xCA 234
0xEA
106
0x6A 74
0x4A
140
0x8C 139
0x8B
195
0xC3 227
0xE3
99
0x63 67
0x43
143
0x8F 144
0x90
213
0xD5 245
0xF5
117
0x75 85
0x55
141
0x8D 142
0x8E
203
0xCB 235
0xEB
107
0x6B 75
0x4B
1+88
0x01+0x58 170
0xAA
197
0xC5 229
0xE5
101
0x65 69
0x45
1+82
0x01+0x52 173
0xAD
207
0xCE 238
0xEE
110
0x6E 78
0x4E
1+89
0x01+0x59 152
0x98
199
0xC7 231
0xE7
103
0x67 71
0x47
128
0x80 133
0x85
219
0xDB 251
0xFB
92
0x5B 123
0x7B
156
0x9C 159
0x9F
221
0xDD 253
0xFD
93
0x5D 125
0x7D
130
0x82 131
0x83
218
0xDA 250
0xFA
122
0x7A 90
0x5A
155
0x9B 151
0x97
200
0xC8 232
0xE8
104
0x68 72
0x48
1+65
0x01+0x41 1+66
0x01+0x42
58
0x3A
42
0x2A
1+77
0x01+0x4D 1+78
0x01+0x4E
0x26 0x2C 0x1A 0x27 0x29 0x2E 0x2A 0x1E 0x24 0x25 0x0D 0x0E
3 198
0xC6 230
0xE6
102
0x66 70
0x46
132
0x84 190
0xBE
217
0xD9 249
0xF9
121
0x79 89
0x59
146
0x92 145
0x91
215
0xD7 247
0xF7
119
0x77 87
0x57
135
0x87 129
0x81
193
0xC1 225
0xE1
97
0x61 65
0x41
1+84
0x01+0x54 148
0x94
208
0xD0 240
0xF0
112
0x70 80
0x50
1+85
0x01+0x55 1+80
0x01+0x50
210
0xD2 242
0xF2
114
0x72 82
0x52
1+83
0x01+0x53 150
0x96
207
0xCF 239
0xEF
111
0x6F 79
0x4F
134
0x86 138
0x8A
204
0xCC 236
0xEC
108
0x6C 76
0x4C
157
0x9D 158
0x9E
196
0xC4 228
0xE4
100
0x64 68
0x44
136
0x88 137
0x89
214
0xD6 246
0xF6
118
0x76 86
0x56
1+70
0x01+0x46 1+68
0x01+0x44
220
0xDC 252
0xFC
92
0x5C
1+69
0x01+0x45 1+67
0x01+0x43
46
0x2E 62
0x3E
163
0xA3 183
0x16 0x28 0x19 0x1B 0x1C 0x1D 0x1F 0x20 0x21 0x0F 0x10 0x11
4 209
0xD1 241
0xF1
113
0x71 81
0x51
1+79
0x01+0x4F 184
0xB8
222
0xDE 254
0xFE
124
0x7C 126
0x7E
1+92
0x01+0x5C 185
0xB9
211
0xD3 243
0xF3
115
0x73 83
0x53
164
0xA4 186
0xBA
205
0xCD 237
0xED
109
0x6D 77
0x4D
1+90
0x01+0x5A 149
0x95
201
0xC9 233
0xE9
105
0x69 73
0x49
1+81
0x01+0x51 153
0x99
212
0xD4 244
0xF4
116
0x74 84
0x54
1+91
0x01+0x5B 147
0x93
216
0xD8 248
0xF8
120
0x78 88
0x58
1+75
0x01+0x4B 1+76
0x01+0x4C
194
0xC2 226
0xE2
98
0x62 66
0x42
179
0xB3 174
0xAE
192
0xC0 224
0xE0
64
0x40
178
0xB2 154
0x9A
60
0x3C 44
0x2C
1+93
0x01+0x5D 182
0xB6
63
0x3F 47
0x2F
96
0x60
0x2F 0x2D 0x18 0x2B 0x17 0x23 0x22 0x12 0x13 0x14 0x15

Под каждой клавишей указан её номер в матрице клавиатуры.

Матрица клавиатуры

Аппаратная реализация описана здесь.

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.

Для проверки можно использовать программы:

  1. Отображение матрицы клавиатуры (за основу взята программа Камиля Каримова. Источник, оригинал)
    kbdmtrx.bas
    kbdmtrx.bas

  2. Отображение номера строки и столбца а также порядкового номера нажатой клавиши в матрице клавиатуры (за основу взята программа 1091-01.bas
    kbdmtrxn.bas
    kbdmtrxn.bas

Примеры таблиц и скрипты здесь.


gseidler/The MSX Red Book — Figure 36: Key Numbers

Часть 1

Основная часть таблицы.

  • Строки: 0–5
  • Адрес: 0xDA5
  • Длина (байт): 288 (6 строк × 8 бит = 48 × 6 режимов)
  • Клавиши: 0x00–0x2F

Режимы:

№ п/п Диапазон внутри таблицы Описание Примечание
1 0x00–0x2F Без модификаторов
2 0x30–0x5F С нажатой клавишей SHIFT
3 0x60–0x8F С нажатой клавишей GRAPHКоды оранжевых графических символов записываются в таблицу без префикса, в формате 0x0n
4 0x90–0xBF С нажатыми клавишами GRAPH+SHIFT
5 0xC0–0xEF С нажатой клавишей РУС
6 0xF0–011F С нажатыми клавишами РУС+SHIFT

Соответствие клавиш с дано в разделе раскладка клавиатуры.

Особенности

FIXME

Раскладка клавиатуры Русская (машинопись)

  • знаки препинания набираются в верхнем ряду без использования SHIFT
  • цифры набираются при помощи SHIFT.

Раскладка клавиатуры Русская (машинопись)

Выжимаем максимум производительности из клавиатуры / Хабр 5. Русская машинопись

Часть 2

Эта таблица дополнительных клавиш.

  • Строки: 6–10
  • Адрес: 0x1033 (0x0FF8 для MSX 2 +)
  • Длина (байт): 40
  • Клавиши: 0x30–0x57

Шрифт

  • Адрес: 0x1BBF
  • Длина (байт): 2048

256 символов, 8 байт на символ.

Диапазон
(относительное смещение)
Описание Цвет в
таблице символов
0x00-0xFFГрафические символыоранжевый
0x100-0x3F7Эти символы соответствуют международной раскладкефиолетовый
0x3F8 неизвестный символ, код 0x7F (127)
0x400-0x5F7Символы международной таблицызелёный
0x5F8-0x7F7Русские буквы, набор символов соответствует стандарту КОИ-8красный

Примеры и скрипты здесь.

Конвертер текста

Конвертер текста MSX в кодировку UTF-8.

Проект был создан для работы над файлами книги start

Пока не подобраны замены для символов для режима 4 (GRAPH+SHIFT):

Код Изображение Номер строки и колонки
в матрице клавиатуры
0x855 2
0x01+0x50 3 5
0x01+0x5F 1 2

Примеры и скрипты здесь.

Ссылки

1) , 2)
в таблице матрицы клавиатуры и в шрифте
msx/russification/russification.1604919937.txt.gz · Последние изменения: 2020-11-09 14:05 — GreyWolf