====== Русификация MSX ====== Всё описанное здесь проверено только на машинах [[msx:yamaha_kuvt:|]]. {{anchor:symbol_table}} ====== Таблица символов ====== {{msx_font-russian.png|Компактный вариант таблицы}} | ^ 0 ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 6 ^ 7 ^ 8 ^ 9 ^ A ^ B ^ C ^ D ^ E ^ F ^ ^ 0 | {{00.png|0 0x00}} | {{01.png|1 0x01}} | {{02.png|2 0x02}} | {{03.png|3 0x03}} | {{04.png|4 0x04}} | {{05.png|5 0x05}} | {{06.png|6 0x06}} | {{07.png|7 0x07}} | {{08.png|8 0x08}} | {{09.png|9 0x09}} | {{0a.png|10 0x0A}} | {{0b.png|11 0x0B}} | {{0c.png|12 0x0C}} | {{0d.png|13 0x0D}} | {{0e.png|14 0x0E}} | {{0f.png|15 0x0F}} | ^ 1 | {{10.png|16 0x10}} | {{11.png|17 0x11}} | {{12.png|18 0x12}} | {{13.png|19 0x13}} | {{14.png|20 0x14}} | {{15.png|21 0x15}} | {{16.png|22 0x16}} | {{17.png|23 0x17}} | {{18.png|24 0x18}} | {{19.png|25 0x19}} | {{1a.png|26 0x1A}} | {{1b.png|27 0x1B}} | {{1c.png|28 0x1C}} | {{1d.png|29 0x1D}} | {{1e.png|30 0x1E}} | {{1f.png|31 0x1F}} | ^ 2 | {{20.png|32 0x20}} | {{21.png|33 0x21}} | {{22.png|34 0x22}} | {{23.png|35 0x23}} | {{24.png|36 0x24}} | {{25.png|37 0x25}} | {{26.png|38 0x26}} | {{27.png|39 0x27}} | {{28.png|40 0x28}} | {{29.png|41 0x29}} | {{2a.png|42 0x2A}} | {{2b.png|43 0x2B}} | {{2c.png|44 0x2C}} | {{2d.png|45 0x2D}} | {{2e.png|46 0x2E}} | {{2f.png|47 0x2F}} | ^ 3 | {{30.png|48 0x30}} | {{31.png|49 0x31}} | {{32.png|50 0x32}} | {{33.png|51 0x33}} | {{34.png|52 0x34}} | {{35.png|53 0x35}} | {{36.png|54 0x36}} | {{37.png|55 0x37}} | {{38.png|56 0x38}} | {{39.png|57 0x39}} | {{3a.png|58 0x3A}} | {{3b.png|59 0x3B}} | {{3c.png|60 0x3C}} | {{3d.png|61 0x3D}} | {{3e.png|62 0x3E}} | {{3f.png|63 0x3F}} | ^ 4 | {{40.png|64 0x40}} | {{41.png|65 0x41}} | {{42.png|66 0x42}} | {{43.png|67 0x43}} | {{44.png|68 0x44}} | {{45.png|69 0x45}} | {{46.png|70 0x46}} | {{47.png|71 0x47}} | {{48.png|72 0x48}} | {{49.png|73 0x49}} | {{4a.png|74 0x4A}} | {{4b.png|75 0x4B}} | {{4c.png|76 0x4C}} | {{4d.png|77 0x4D}} | {{4e.png|78 0x4E}} | {{4f.png|79 0x4F}} | ^ 5 | {{50.png|80 0x50}} | {{51.png|81 0x51}} | {{52.png|82 0x52}} | {{53.png|83 0x53}} | {{54.png|84 0x54}} | {{55.png|85 0x55}} | {{56.png|86 0x56}} | {{57.png|87 0x57}} | {{58.png|88 0x58}} | {{59.png|89 0x59}} | {{5a.png|90 0x5A}} | {{5b.png|92 0x5B}} | {{5c.png|92 0x5C}} | {{5d.png|93 0x5D}} | {{5e.png|94 0x5E}} | {{5f.png|95 0x5F}} | ^ 6 | {{60.png|96 0x60}} | {{61.png|97 0x61}} | {{62.png|98 0x62}} | {{63.png|99 0x63}} | {{64.png|100 0x64}} | {{65.png|101 0x65}} | {{66.png|102 0x66}} | {{67.png|103 0x67}} | {{68.png|104 0x68}} | {{69.png|105 0x69}} | {{6a.png|106 0x6A}} | {{6b.png|107 0x6B}} | {{6c.png|108 0x6C}} | {{6d.png|109 0x6D}} | {{6e.png|110 0x6E}} | {{6f.png|111 0x6F}} | ^ 7 | {{70.png|112 0x70}} | {{71.png|113 0x71}} | {{72.png|114 0x72}} | {{73.png|115 0x73}} | {{74.png|116 0x74}} | {{75.png|117 0x75}} | {{76.png|118 0x76}} | {{77.png|119 0x77}} | {{78.png|120 0x78}} | {{79.png|121 0x79}} | {{7a.png|122 0x7A}} | {{7b.png|123 0x7B}} | {{7c.png|124 0x7C}} | {{7d.png|125 0x7D}} | {{7e.png|126 0x7E}} | {{7f.png|127 0x7F}} | ^ 8 | {{80.png|128 0x80}} | {{81.png|129 0x81}} | {{82.png|130 0x82}} | {{83.png|131 0x83}} | {{84.png|132 0x84}} | {{85.png|133 0x85}} | {{86.png|134 0x86}} | {{87.png|135 0x87}} | {{88.png|136 0x88}} | {{89.png|137 0x89}} | {{8a.png|138 0x8A}} | {{8b.png|139 0x8B}} | {{8c.png|140 0x8C}} | {{8d.png|141 0x8D}} | {{8e.png|142 0x8E}} | {{8f.png|143 0x8F}} | ^ 9 | {{90.png|144 0x90}} | {{91.png|145 0x91}} | {{92.png|146 0x92}} | {{93.png|147 0x93}} | {{94.png|148 0x94}} | {{95.png|149 0x95}} | {{96.png|150 0x96}} | {{97.png|151 0x97}} | {{98.png|152 0x98}} | {{99.png|153 0x99}} | {{9a.png|154 0x9A}} | {{9b.png|155 0x9B}} | {{9c.png|156 0x9C}} | {{9d.png|157 0x9D}} | {{9e.png|158 0x9E}} | {{9f.png|159 0x9F}} | ^ A | {{a0.png|160 0xA0}} | {{a1.png|161 0xA1}} | {{a2.png|162 0xA2}} | {{a3.png|163 0xA3}} | {{a4.png|164 0xA4}} | {{a5.png|165 0xA5}} | {{a6.png|166 0xA6}} | {{a7.png|167 0xA7}} | {{a8.png|168 0xA8}} | {{a9.png|169 0xA9}} | {{aa.png|170 0xAA}} | {{ab.png|171 0xAB}} | {{ac.png|172 0xAC}} | {{ad.png|173 0xAD}} | {{ae.png|174 0xAE}} | {{af.png|175 0xAF}} | ^ B | {{b0.png|176 0xB0}} | {{b1.png|177 0xB1}} | {{b2.png|178 0xB2}} | {{b3.png|179 0xB3}} | {{b4.png|180 0xB4}} | {{b5.png|181 0xB5}} | {{b6.png|182 0xB6}} | {{b7.png|183 0xB7}} | {{b8.png|184 0xB8}} | {{b9.png|185 0xB9}} | {{ba.png|186 0xBA}} | {{bb.png|187 0xBB}} | {{bc.png|188 0xBC}} | {{bd.png|189 0xBD}} | {{be.png|190 0xBE}} | {{bf.png|191 0xBF}} | ^ C | {{c0.png|192 0xC0}} | {{c1.png|193 0xC1}} | {{c2.png|194 0xC2}} | {{c3.png|195 0xC3}} | {{c4.png|196 0xC4}} | {{c5.png|197 0xC5}} | {{c6.png|198 0xC6}} | {{c7.png|199 0xC7}} | {{c8.png|200 0xC8}} | {{c9.png|201 0xC9}} | {{ca.png|202 0xCA}} | {{cb.png|203 0xCB}} | {{cc.png|204 0xCC}} | {{cd.png|205 0xCD}} | {{ce.png|207 0xCE}} | {{cf.png|207 0xCF}} | ^ D | {{d0.png|208 0xD0}} | {{d1.png|209 0xD1}} | {{d2.png|210 0xD2}} | {{d3.png|211 0xD3}} | {{d4.png|212 0xD4}} | {{d5.png|213 0xD5}} | {{d6.png|214 0xD6}} | {{d7.png|215 0xD7}} | {{d8.png|216 0xD8}} | {{d9.png|217 0xD9}} | {{da.png|218 0xDA}} | {{db.png|219 0xDB}} | {{dc.png|220 0xDC}} | {{dd.png|221 0xDD}} | {{de.png|222 0xDE}} | {{df.png|223 0xDF}} | ^ E | {{e0.png|224 0xE0}} | {{e1.png|225 0xE1}} | {{e2.png|226 0xE2}} | {{e3.png|227 0xE3}} | {{e4.png|228 0xE4}} | {{e5.png|229 0xE5}} | {{e6.png|230 0xE6}} | {{e7.png|231 0xE7}} | {{e8.png|232 0xE8}} | {{e9.png|233 0xE9}} | {{ea.png|234 0xEA}} | {{eb.png|235 0xEB}} | {{ec.png|236 0xEC}} | {{ed.png|237 0xED}} | {{ee.png|238 0xEE}} | {{ef.png|239 0xEF}} | ^ F | {{f0.png|240 0xF0}} | {{f1.png|241 0xF1}} | {{f2.png|242 0xF2}} | {{f3.png|243 0xF3}} | {{f4.png|244 0xF4}} | {{f5.png|245 0xF5}} | {{f6.png|246 0xF6}} | {{f7.png|247 0xF7}} | {{f8.png|248 0xF8}} | {{f9.png|249 0xF9}} | {{fa.png|250 0xFA}} | {{fb.png|251 0xFB}} | {{fc.png|252 0xFC}} | {{fd.png|253 0xFD}} | {{fe.png|254 0xFE}} | {{ff.png|255 0xFF}} | ^ 0x01 \\ + \\ 0x4n \\ 0x0n ((в [[#matrix|таблице матрицы клавиатуры]] и в [[#font|шрифте]])) | | {{0141.png|1+65 0x01+0x41 0x01 }} | {{0142.png|1+66 0x01+0x42 0x02 }} | {{0143.png|1+67 0x01+0x43 0x03 }} | {{0144.png|1+68 0x01+0x44 0x04}} | {{0145.png|1+69 0x01+0x45 0x04}} | {{0146.png|1+70 0x01+0x46 0x06}} | {{0147.png|1+71 0x01+0x47 0x07}} | {{0148.png|1+72 0x01+0x48 0x08}} | {{0149.png|1+73 0x01+0x49 0x09}} | {{014a.png|1+74 0x01+0x4A 0x0A}} | {{014b.png|1+75 0x01+0x4B 0x0B}} | {{014C.png|1+76 0x01+0x4C 0x0C}} | {{014d.png|1+77 0x01+0x4D 0x0D}} | {{014e.png|1+78 0x01+0x4E 0x0E}} | {{014f.png|1+79 0x01+0x4F 0x0F}} | ^ 0x01 \\ + \\ 0x5n \\ 0x1n ((в [[#matrix|таблице матрицы клавиатуры]] и в [[#font|шрифте]])) | {{0150.png|1+80 0x01+0x50 0x10}} | {{0151.png|1+81 0x01+0x51 0x11}} | {{0152.png|1+82 0x01+0x52 0x12}} | {{0153.png|1+83 0x01+0x53 0x13}} | {{0154.png|1+84 0x01+0x54 0x14}} | {{0155.png|1+85 0x01+0x55 0x15}} | {{0156.png|1+86 0x01+0x56 0x16}} | {{0157.png|1+87 0x01+0x57 0x17}} | {{0158.png|1+88 0x01+0x58 0x18}} | {{0159.png|1+89 0x01+0x59 0x19}} | {{015a.png|1+90 0x01+0x5A 0x1A}} | {{015b.png|1+91 0x01+0x5B 0x1B}} | {{015c.png|1+92 0x01+0x5C 0x1C}} | {{015d.png|1+93 0x01+0x5D 0x1D}} | {{015e.png|1+94 0x01+0x5E 0x1E}} | {{015f.png|1+95 0x01+0x5F 0x1F}} | При наведении курсора на символ отображается его код: * десятичный * шестнадцатеричный * [шестнадцатеричный для оранжевых графических символов, этот код используется в [[#matrix|таблице матрицы клавиатуры]] ] ^ Диапазон ^^ Цвет ^ Описание ^ |0x00-0x1F, \\ 0x7F|00-31,\\ 127|@#0e34f1:синий|Специальные (управляющие) символы| |0xFF|255|:::|Курсор| |0x20-0x7E|32-126|@#9a01a0:фиолетовый|Эти символы соответствуют международной раскладке| |0x80-0xBE|128-190|@#248e5b:зелёный|Символы, которые в международной таблице находятся в диапазоне 0xC0-0xFE (192-254)| |0xBF-0xFE|191-254|@#d74d54:красный|0xBF (191) — знак валюты, 0xС0-0xFE (192-254) — русские буквы, набор символов соответствует стандарту [[KOI-8:KOI-8]]| |0x40-0x5F|64-95|@#f5873d:оранжевый|Графические символы, для обращение к ним используется префикс 0x01 (1). \\ В [[#matrix|таблице матрицы клавиатуры]] и в [[#font|шрифте]] коды этих символов без префикса, в формате 0x0n| {{msx2scrn.bas|Программа для вывод таблицы кодов символов на экран}}, [[+tab|wmsx>?DISK_FILES=/_media/msx/russification/msxfont.bas&BASIC_RUN=msxfont.bas|запуск в WebMSX]] Программы для вывода таблицы символов (без кодов): * {{msxfont1.bas|ширина 16 символов}}, [[+tab|wmsx>?DISK_FILES=/_media/msx/russification/msxfont1.bas&BASIC_RUN=msxfont1.bas|запуск в WebMSX]] * {{msxfont2.bas|ширина 32 символа}}, [[+tab|wmsx>?DISK_FILES=/_media/msx/russification/msxfont2.bas&BASIC_RUN=msxfont2.bas|запуск в WebMSX]] Программы для вывода таблицы символов (с кодами): * **{{ascii2.bas|ASCII2.BAS — для SCREEN 5}}, [[+tab|wmsx>?DISK_FILES=/_media/msx/russification/ascii2.bas&BASIC_RUN=ascii2.bas|запуск в WebMSX]]** * {{ascii.bas|ASCII.BAS — для SCREEN 2}}, [[+tab|wmsx>?DISK_FILES=/_media/msx/russification/ascii.bas&BASIC_RUN=ascii.bas|запуск в WebMSX]] * {{asciis1.bas|ASCIIS1.BAS — для SCREEN 1}}, [[+tab|wmsx>?DISK_FILES=/_media/msx/russification/asciis1.bas&BASIC_RUN=asciis1.bas|запуск в WebMSX]] ---- [[http://marmsx.msxall.com/basic/english.php|ASCII table generator (© MarMSX, 2020-03)]], [[http://marmsx.msxall.com/basic/ascii.zip|оригинал]] {{anchor:keyboard_layout}} ====== Раскладка клавиатуры ====== На компьютерах стандарта MSX которые поставлялись в СССР ([[msx:yamaha_kuvt:yamaha_kuvt|]]) используется [[keyboard_layout_ru_phonetic:keyboard_layout_ru_phonetic|]]. Белые кнопки расположены клавиатуре в четыре строки, из общее число: 48 (13 + 12 + 12 + 11): |<100%>| ^ 1 || {{2b.png|43 0x2B}} {{3b.png|59 0x3B}} \\ {{a0.png|160 0xA0}} {{a5.png|165 0xA5}} || {{21.png|33 0x21}} {{31.png|49 0x31}} \\ {{ab.png|171 0xAB}} {{bd.png|189 0xBD}} || {{22.png|34 0x22}} {{32.png| 0x32}} \\ {{a1.png|161 0xA1}} {{bc.png|188 0xBC}} || {{23.png|35 0x23}} {{33.png|51 0x33}} \\ {{af.png|175 0xAF}} {{a6.png|166 0xA6}} || {{bf.png|191 0xBF}} {{34.png|52 0x34}} \\ {{a2.png|162 0xA2}} {{a7.png|167 0xA7}} || {{25.png|37 0x25}} {{35.png|53 0x35}} \\ {{b4.png|180 0xB4}} {{b5.png|181 0xB5}} || {{26.png|38 0x26}} {{36.png|54 0x36}} \\ {{bb.png|187 0xBB}} {{a8.png|168 0xA8}} || {{27.png|39 0x27}} {{37.png|55 0x37}} \\ {{ac.png|172 0xAC}} {{a9.png|169 0xA9}} || {{28.png|40 0x28}} {{38.png|56 0x38}} \\ {{0147.png|1+71 0x01+0x47}} {{0148.png|1+72 0x01+0x48}} || {{29.png|41 0x29}} {{39.png|57 0x39}} \\ {{0149.png|1+73 0x01+0x49}} {{014a.png|1+74 0x01+0x4A}} || {{24.png|36 0x24}} {{30.png|48 0x30}} \\ {{0157.png|1+87 0x01+0x57}} {{015f.png|1+95 0x01+0x5F}} || {{3d.png|61 0x3D}} {{5f.png|95 0x5F}} \\ {{b1.png|177 0xB1}} {{b0.png|176 0xB0}} || {{df.png|223 0xDF}} \\ {{2d.png|45 0x2D}} {{5e.png|94 0x5E}} \\ {{015e.png|1+94 0x01+0x5E}} {{0156.png|1+86 0x01+0x56}} ||| ^:::| 0x01 || 0x02 || 0x03 || 0x04 || 0x05 || 0x06 || 0x07 || 0x08 || 0x09 || 0x00 || 0x0A || 0x0B || 0x0C |||| ^ 2 ||| {{ca.png|202 0xCA}} {{ea.png|234 0xEA}} \\ {{6a.png|106 0x6A}} {{4a.png|74 0x4A}} \\ {{8c.png|140 0x8C}} {{8b.png|139 0x8B}} || {{c3.png|195 0xC3}} {{e3.png|227 0xE3}} \\ {{63.png|99 0x63}} {{43.png|67 0x43}} \\ {{8f.png|143 0x8F}} {{90.png|144 0x90}} || {{d5.png|213 0xD5}} {{f5.png|245 0xF5}} \\ {{75.png|117 0x75}} {{55.png|85 0x55}} \\ {{8d.png|141 0x8D}} {{8e.png|142 0x8E}} || {{cb.png|203 0xCB}} {{eb.png|235 0xEB}} \\ {{6b.png|107 0x6B}} {{4b.png|75 0x4B}} \\ {{0158.png|1+88 0x01+0x58}} {{aa.png|170 0xAA}} || {{c5.png|197 0xC5}} {{e5.png|229 0xE5}} \\ {{65.png|101 0x65}} {{45.png|69 0x45}} \\ {{0152.png|1+82 0x01+0x52}} {{ad.png|173 0xAD}} || {{ce.png|207 0xCE}} {{ee.png|238 0xEE}} \\ {{6e.png|110 0x6E}} {{4e.png|78 0x4E}} \\ {{0159.png|1+89 0x01+0x59}} {{98.png|152 0x98}} || {{c7.png|199 0xC7}} {{e7.png|231 0xE7}} \\ {{67.png|103 0x67}} {{47.png|71 0x47}} \\ {{80.png|128 0x80}} {{85.png|133 0x85}} || {{db.png|219 0xDB}} {{fb.png|251 0xFB}} \\ {{5b.png|92 0x5B}} {{7b.png|123 0x7B}} \\ {{9c.png|156 0x9C}} {{9f.png|159 0x9F}} || {{dd.png|221 0xDD}} {{fd.png|253 0xFD}} \\ {{5d.png|93 0x5D}} {{7d.png|125 0x7D}} \\ {{82.png|130 0x82}} {{83.png|131 0x83}} || {{da.png|218 0xDA}} {{fa.png|250 0xFA}} \\ {{7a.png|122 0x7A}} {{5a.png|90 0x5A}} \\ {{9b.png|155 0x9B}} {{97.png|151 0x97}} || {{c8.png|200 0xC8}} {{e8.png|232 0xE8}} \\ {{68.png|104 0x68}} {{48.png|72 0x48}} \\ {{0141.png|1+65 0x01+0x41}} {{0142.png|1+66 0x01+0x42}} || {{3a.png|58 0x3A}} \\ {{2a.png|42 0x2A}} \\ {{014d.png|1+77 0x01+0x4D}} {{014e.png|1+78 0x01+0x4E}} |||| ^:::||| 0x26 || 0x2C || 0x1A || 0x27 || 0x29 || 0x2E || 0x2A || 0x1E || 0x24 || 0x25 || 0x0D || 0x0E |||| ^ 3 |||| {{c6.png|198 0xC6}} {{e6.png|230 0xE6}} \\ {{66.png|102 0x66}} {{46.png|70 0x46}} \\ {{84.png|132 0x84}} {{be.png|190 0xBE}} || {{d9.png|217 0xD9}} {{f9.png|249 0xF9}} \\ {{79.png|121 0x79}} {{59.png|89 0x59}} \\ {{92.png|146 0x92}} {{91.png|145 0x91}} || {{d7.png|215 0xD7}} {{f7.png|247 0xF7}} \\ {{77.png|119 0x77}} {{57.png|87 0x57}} \\ {{87.png|135 0x87}} {{81.png|129 0x81}} || {{c1.png|193 0xC1}} {{e1.png|225 0xE1}} \\ {{61.png|97 0x61}} {{41.png|65 0x41}} \\ {{0154.png|1+84 0x01+0x54}} {{94.png|148 0x94}} || {{d0.png|208 0xD0}} {{f0.png|240 0xF0}} \\ {{70.png|112 0x70}} {{50.png|80 0x50}} \\ {{0155.png|1+85 0x01+0x55}} {{0150.png|1+80 0x01+0x50}} || {{d2.png|210 0xD2}} {{f2.png|242 0xF2}} \\ {{72.png|114 0x72}} {{52.png|82 0x52}} \\ {{0153.png|1+83 0x01+0x53}} {{96.png|150 0x96}} || {{cf.png|207 0xCF}} {{ef.png|239 0xEF}} \\ {{6f.png|111 0x6F}} {{4f.png|79 0x4F}} \\ {{86.png|134 0x86}} {{8a.png|138 0x8A}} || {{cc.png|204 0xCC}} {{ec.png|236 0xEC}} \\ {{6c.png|108 0x6C}} {{4c.png|76 0x4C}} \\ {{9d.png|157 0x9D}} {{9e.png|158 0x9E}} || {{c4.png|196 0xC4}} {{e4.png|228 0xE4}} \\ {{64.png|100 0x64}} {{44.png|68 0x44}} \\ {{88.png|136 0x88}} {{89.png|137 0x89}} || {{d6.png|214 0xD6}} {{f6.png|246 0xF6}} \\ {{76.png|118 0x76}} {{56.png|86 0x56}} \\ {{0146.png|1+70 0x01+0x46}} {{0144.png|1+68 0x01+0x44}} || {{dc.png|220 0xDC}} {{fc.png|252 0xFC}} \\ {{5c.png|92 0x5C}} \\ {{0145.png|1+69 0x01+0x45}} {{0143.png|1+67 0x01+0x43}} || {{2e.png|46 0x2E}} {{3e.png|62 0x3E}} \\ {{a3.png|163 0xA3}} {{b7.png|183}} ||| ^:::|||| 0x16 || 0x28 || 0x19 || 0x1B || 0x1C || 0x1D || 0x1F || 0x20 || 0x21 || 0x0F || 0x10 || 0x11 ||| ^ 4 ||||| ​{{d1.png|209 0xD1}} {{f1.png|241 0xF1}} \\ {{71.png|113 0x71}} {{51.png|81 0x51}} \\ {{014f.png|1+79 0x01+0x4F}} {{b8.png|184 0xB8}} || {{de.png|222 0xDE}} {{fe.png|254 0xFE}} \\ {{7c.png|124 0x7C}} {{7e.png|126 0x7E}} \\ {{015c.png|1+92 0x01+0x5C}} {{b9.png|185 0xB9}} || {{d3.png|211 0xD3}} {{f3.png|243 0xF3}} \\ {{73.png|115 0x73}} {{53.png|83 0x53}} \\ {{a4.png|164 0xA4}} {{ba.png|186 0xBA}} || {{cd.png|205 0xCD}} {{ed.png|237 0xED}} \\ {{6d.png|109 0x6D}} {{4d.png|77 0x4D}} \\ {{015a.png|1+90 0x01+0x5A}} {{95.png|149 0x95}} || {{c9.png|201 0xC9}} {{e9.png|233 0xE9}} \\ {{69.png|105 0x69}} {{49.png|73 0x49}} \\ {{0151.png|1+81 0x01+0x51}} {{99.png|153 0x99}} || {{d4.png|212 0xD4}} {{f4.png|244 0xF4}} \\ {{74.png|116 0x74}} {{54.png|84 0x54}} \\ {{015b.png|1+91 0x01+0x5B}} {{93.png|147 0x93}} || {{d8.png|216 0xD8}} {{f8.png|248 0xF8}} \\ {{78.png|120 0x78}} {{58.png|88 0x58}} \\ {{014b.png|1+75 0x01+0x4B}} {{014c.png|1+76 0x01+0x4C}} || {{c2.png|194 0xC2}} {{e2.png|226 0xE2}} \\ {{62.png|98 0x62}} {{42.png|66 0x42}} \\ {{b3.png|179 0xB3}} {{ae.png|174 0xAE}} || {{c0.png|192 0xC0}} {{e0.png|224 0xE0}} \\ {{40.png|64 0x40}} \\ {{b2.png|178 0xB2}} {{9a.png|154 0x9A}} || {{3c.png|60 0x3C}} {{2c.png|44 0x2C}}\\ {{015d.png|1+93 0x01+0x5D}} {{b6.png|182 0xB6}} || {{3f.png|63 0x3F}} {{2f.png|47 0x2F}} \\ {{60.png|96 0x60}} |||| ^:::||||| 0x2F || 0x2D || 0x18 || 0x2B || 0x17 || 0x23 || 0x22 || 0x12 || 0x13 || 0x14 || 0x15 |||| Под каждой клавишей указан её номер в [[#matrix|матрице клавиатуры]]. {{msx-keyboard-japanese-layout-1.png|}} \\ [[http://kb.gr8bit.ru/KB0004/msx-keyboard-japanese-layout-1.png|оригинал]] {{msx-keyboard-russian-layout-2.png|}} \\ [[http://kb.gr8bit.ru/KB0004/msx-keyboard-russian-layout-2.png|оригинал]] {{msx-keyboard-russian-layout-3.png|}} \\ [[http://kb.gr8bit.ru/KB0004/msx-keyboard-russian-layout-3.png|оригинал]] {{anchor:distinctive_features}} ===== Отличительные особенности ===== Цифры, точка и запятая нажимаются в верхнем регистре — с SHIFT. Возможные причины этого: * "В верхнем регистре на пишущих машинках располагались заглавные буквы, редко используемые знаки и цифры. Знаки препинания всегда располагались в нижнем регистре." \\ Источник: [[https://www.artlebedev.ru/kovodstvo/sections/105/#13|Ководство, § 105. Трагедия запятой]] * "Следует отметить, что на пишущей машинке цифры печатаются в верхнем регистре (то есть при нажатой клавише перевода регистра);" \\ Источник [[wpru>Любава_(пишущая_машинка)#Клавиатура|Любава (пишущая машинка)]] * Раскладка клавиатуры Русская (машинопись): * знаки препинания набираются в верхнем ряду без использования SHIFT * цифры набираются при помощи SHIFT. Источники: * [[https://klavogonki.ru/wiki/Раскладка_клавиатуры#.D0.A0.D1.83.D1.81.D1.81.D0.BA.D0.B0.D1.8F_.28.D0.BC.D0.B0.D1.88.D0.B8.D0.BD.D0.BE.D0.BF.D0.B8.D1.81.D1.8C.29|Раскладка клавиатуры Русская (машинопись)]] * [[https://habr.com/ru/post/175075/|Выжимаем максимум производительности из клавиатуры / Хабр 5. Русская машинопись]] {{anchor:matrix}} ====== Матрица клавиатуры ====== ^ **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 | [[#Часть 2]] | ^:::^ //№// | 0x37 | 0x36 | 0x35 | 0x34 | 0x33 | 0x32 | 0x31 | 0x30 |:::| ^ 7 ^ FBEC | RET | SELECT | BS | STOP | TAB | ESC | F5 | F4 |:::| ^:::^ //№// | 0x3F | 0x3E | 0x3D | 0x3C | 0x3B | 0x3A | 0x39 | 0x38 |:::| ^ 8 ^ FBED | → | ↓ | ↑ | ← | DEL | INS | HOME | SPACE |:::| ^:::^ //№// | 0x47 | 0x46 | 0x45 | 0x44 | 0x43 | 0x42 | 0x41 | 0x40 |:::| ^ 9 ^ FBEE | 4 | 3 | 2 | 1 | 0 | / | + | * |:::| ^:::^ //№// | 0x4F | 0x4E | 0x4D | 0x4C | 0x4B | 0x4A | 0x49 | 0x48 |:::| ^ 10 ^ FBEF | . | , | - | 9 | 8 | 7 | 6 | 5 |:::| ^:::^ //№// | 0x57 | 0x56 | 0x55 | 0x54 | 0x53 | 0x52 | 0x51 | 0x50 |:::| **Аппаратная реализация**: \\ Считывание состояния матрицы происходит по строкам (Y), каждая строка это байт (8 бит) это столбцы (X). Указание строки происходит установкой на выход с её номером (Y 0–9) низкого уровня (0), каждая нажатая кнопка даёт низкий уровень (0). Опрос строк происходит с частотой кадровых импульсов видео-генератора. Работа с клавиатурой проходит через порты [[msx:ppi|PPI]]. Для проверки можно использовать программы: - Программа из [[msx:basic_dialogue_programming_language:010#e1091-01|книги]]: \\ {{msx:basic_dialogue_programming_language:examples:1091-01.bas|}} \\ [[+tab|wmsxbpge>1091-01.bas]] - Отображение матрицы клавиатуры (за основу взята программа Камиля Каримова. [[http://caro.su/msx/kbd4msx.htm|Источник]], {{kbdmtrx1.bas|оригинал}}) \\ {{kbdmtrx.bas|}} \\ [[+tab|wmsx>?DISK_FILES=/_media/msx/russification/kbdmtrx.bas&BASIC_RUN=kbdmtrx.bas|kbdmtrx.bas]] - Отображение номера строки и столбца а также порядкового номера нажатой клавиши в матрице клавиатуры (за основу взята программа {{msx:basic_dialogue_programming_language:examples:1091-01.bas|}} \\ {{kbdmtrxn.bas|}} \\ [[+tab|wmsx>?DISK_FILES=/_media/msx/russification/kbdmtrxn.bas&BASIC_RUN=kbdmtrxn.bas|kbdmtrxn.bas]] Примеры таблиц и скрипты [[msx:russification:keyboard:keyboard|здесь]]. ---- [[https://github.com/gseidler/The-MSX-Red-Book/blob/master/images/CH04F36.svg|gseidler/The MSX Red Book — Figure 36: Key Numbers]] ===== Часть 1 ===== Основная часть таблицы. * Строки: 0–5 * Адрес: 0xDA5 * Длина (байт): 288 (6 строк × 8 бит = 48 × 6 режимов) * Клавиши: 0x00–0x2F {{anchor:tables1}} Режимы: ^ № п/п ^ Диапазон внутри таблицы ^ Описание ^ Примечание ^ | 1 | 0x00–0x2F |Без модификаторов| | 2 | 0x30–0x5F |С нажатой клавишей SHIFT| | 3 | 0x60–0x8F |С нажатой клавишей GRAPH|Коды оранжевых графических символов записываются в таблицу без префикса, в формате 0x0n| | 4 | 0x90–0xBF |С нажатыми клавишами GRAPH + SHIFT|:::| | 5 | 0xC0–0xEF |С нажатой клавишей РУС| | 6 | 0xF0–011F |С нажатыми клавишами РУС + SHIFT| Соответствие клавиш с дано [[#keyboard_layout|здесь]]. ===== Часть 2 ===== Таблица дополнительных клавиш * Строки: 6–10 * Адрес: 0x1033 (0x0FF8 для [[msx:msx_2_plus|]]) * Длина (байт): 40 * Клавиши: 0x30–0x57 {{anchor:font}} ====== Шрифт ====== * Адрес: 0x1BBF * Длина (байт): 2048 256 символов, 8 байт на символ. ^ Диапазон \\ (относительное смещение) ^ Описание ^ Цвет в \\ [[#symbol_table|таблице символов]] ^ |0x00-0xFF|Графические символы|@#f5873d:оранжевый| |0x100-0x3F7|Эти символы соответствуют международной раскладке|@#9a01a0:фиолетовый| |0x400-0x5F7|Символы международной таблицы|@#248e5b:зелёный| |0x5F8-0x7F7|Русские буквы, набор символов соответствует стандарту [[KOI-8:KOI-8]]|@#d74d54:красный| |0x3F8|{{:msx:russification:7f_.png|}} код 0x7F (127) — этот символ назначен клавише Del, поэтому его нет смысла ставить в таблицу [[#matrix|матрицы клавиатуры]]|| {{:msx:russification:font.bin|Шрифт}} Примеры и скрипты [[msx:russification:font:font|здесь]] {{anchor:converter}} ====== Конвертер текста ====== Конвертер текста MSX в кодировку UTF-8. Проект был создан для работы над файлами книги [[:msx:basic_dialogue_programming_language:|]] Пока не подобраны замены для символов для режима 4 (GRAPH + SHIFT): ^ Код ^ Изображение ^ Номер строки и колонки\\ в матрице клавиатуры ^ |0x85|{{85.png}}|5 2| |0x01+0x50 |{{0150.png}}|3 5| |0x01+0x5F |{{015f.png}}|1 2| Примеры и скрипты [[msx:russification:converter:converter|здесь]] ====== Ссылки ====== **[[github>gseidler/The-MSX-Red-Book/blob/master/the_msx_red_book.md#keyboard_matrix|gseidler/The-MSX-Red-Book — Keyboard Matrix]]** [[msxorg>wiki/MSX_font|MSX font]] [[msxorg>wiki/Keyboard|Keyboard]] [[http://www.ateijelo.com/blog/2016/09/13/making-an-msx-font|Making an MSX font]] {{char-set.bas |Program 5.1}} (Graham Bland — MSX Programmin (1986), ISBN 0-273-02302-0) **[[http://map.grauw.nl/articles/keymatrix.php|MSX Assembly Page — Keyboard matrices]]** [[http://www.msxblue.com/manual/russiankeyboard_c.htm|msxblue.com — Russian MSX Keyboard ]] http://podrezov.com/msx2plus/top.jpg **[[msxorg>forum/msx-talk/general-discussion/change-msx-keyboard-layout-matrix|Change msx keyboard layout / matrix]]** **[[http://www.caro.su/msx/kbd4msx.htm|Подключение PS/2 клавиатуры к MSX]]** [[msxorg>forum/msx-talk/general-discussion/change-msx-keyboard-layout-matrix|Change msx keyboard layout / matrix]] [[msxorg>forum/development/msx-development/international-turbo-r-bios|'international' turbo r bios]] FIXME [[zxpkru>/threads/25517-msx-raznoe/page20.html|zx-pk.ru MSX: Разное - Страница 20]] [[msxorg>forum/development/msx-development/searching-public-domain-8x8-char-set?page=1|Searching for: "Public Domain" 8x8 char-set]] [[msxorg>wiki/Shift_JIS_font#Romajis.2C_Kanas.2C_Cyrillic_.26_special_characters|Shift JIS code]] [[zxpkru>/threads/18453-rassovo-vernyj-shrift-dlya-yis503|Рассово верный шрифт для YIS503]] [[github>mr-GreyWolf/MSX-Russification|Проект на GitHub]] **[[http://kb.gr8bit.ru/KB0004/GR8BIT-KB0004-Using-GR8BIT-Language-Pack-and-PS2-Keyboard.html|Using GR8BIT Language Pack and PS/2 Keyboard: GR8BIT KB0004]]** {{tag>Topic Russification MSX}}