[<>]
~~TOC wide~~
====== Приложение 2 — 2.4. Таблица кодов ASCII ======
__//Пример.//__
10 A$=INKEY$
20 IF A$="" THEN 10
30 PRINT ASC(A$):GOTO 10
|<100% 2em 10em 0em 2em 10em 0em 2em 10em>|
^ Код ^ Клавиша(и) | ^ Код ^ Клавиша(и) | ^ Код ^ Клавиша(и) ^
| 0|CTRL+@|:::| 13|CTRL+M|:::| 27|CTRL+[|
| 1|CTRL+A|:::|:::|'Ввод '⏎|:::|:::|ESC|
| 2|CTRL+B|:::| 14|CTRL+N|:::| 28|CTRL+ \|
| 3|CTRL+C|:::| 15|CTRL+O|:::|:::|CTRL+SHIFT+ > |
| 4|CTRL+D|:::| 16|CTRL+P|:::|:::| SHIFT+ \ + >|
| 5|CTRL+E|:::| 17|CTRL+Q|:::|:::|CTRL+ ~|
| 6|CTRL+F|:::| 18|CTRL+R|:::|:::|→|
| 7|CTRL+G|:::|:::|INS|:::| 29|CTRL+]|
| 8|CTRL+H|:::| 19|CTRL+s|:::|:::|←|
|:::|BS|:::| 20|CTRL+T|:::| 30|CTRL+SHIFT+ ^|
| 9|CTRL+I|:::| 21|CTRL+U|:::|:::|CTRL+SHIFT+ ~|
|:::|TAB|:::| 22|CTRL+V|:::|:::|↑|
| 10|CTRL+J|:::| 23|CTRL+W|:::| 31|CTRL+SHIFT+ = |
| 11|CTRL+K|:::| 24|CTRL+X|:::|:::|↓|
|:::|CLS/HOME|:::|:::|SELECT|:::| 32|Пробел|
| 12|CTRL+L|:::| 25|CTRL+Y|:::| 127|DEL|
|:::|SHIFT+CLS/HOME|:::| 26|CTRL+Z|:::|||
__//Пример.//__
10 FOR K=&H20 TO &HFF:? CHR$(K);"";K:NEXT K
|<100%>|
^ Код ^ Клав. | ^ Код ^ Клав. | ^ Код ^ Клав. | ^ Код ^ Клав. | ^ Код ^ Клав. | ^ Код ^ Клав. | ^ Код ^ Клав. ^
| 33| ! |:::| 38| & |:::| 43| + |:::| 48| 0 |:::| 53| 5 |:::| 58| : | | ||
| 34| " |:::| 39| ' |:::| 44| , |:::| 49| 1 |:::| 54| 6 |:::| 59| ; |:::|:::||
| 35| # |:::| 40| ( |:::| 45| - |:::| 50| 2 |:::| 55| 7 |:::| 60| < |:::|:::||
| 36| $ |:::| 41| ) |:::| 46| . |:::| 51| 3 |:::| 56| 8 |:::| 61| = |:::|:::||
| 37| % |:::| 42| * |:::| 47| / |:::| 52| 4 |:::| 57| 9 |:::| 62| > |:::| 63| ? |
| ||:::| ||:::| ||:::| ||:::| ||:::| ||:::| ||
| 64| @ |:::| 73| I |:::| 82| R |:::| 91| [ |:::| ||:::| 105| i |:::| 114| r |
| 65| A |:::| 74| J |:::| 83| S |:::| 92| \ |:::| 97| a |:::| 106| j |:::| 115| s |
| 66| B |:::| 75| K |:::| 84| T |:::| 93| ] |:::| 98| b |:::| 107| k |:::| 116| t |
| 67| C |:::| 76| L |:::| 85| U |:::| 94| %% ^ %% |:::| 99| c |:::| 108| l |:::| 117| u |
| 68| D |:::| 77| M |:::| 86| V |:::| 95| _ |:::| 100| d |:::| 109| m |:::| 118| v |
| 69| E |:::| 78| N |:::| 87| W |:::| 96| ` |:::| 101| e |:::| 110| n |:::| 119| w |
| 70| F |:::| 79| O |:::| 88| X |:::| ||:::| 102| f |:::| 111| o |:::| 120| x |
| 71| G |:::| 80| P |:::| 89| Y | |:::||:::| 103| g |:::| 112| p |:::| 121| y |
| 72| H |:::| 81| Q |:::| 90| Z | |:::||:::| 104| h |:::| 113| q |:::| 122| z |
| ||:::| ||:::| ||:::| ||:::| ||:::| ||:::| ||
| 123| { |:::| 124| %% | %% |:::| 125| } |:::| 126| ~ |:::| 127| DEL |:::| ||:::| ||
|<100% 2em 2em 10em 0em 2em 2em 10em 0em 2em 2em 10em>|
^ Код ^^ Клавиша(и) | ^ Код ^^ Клавиша(и) | ^ Код ^^ Клавиша(и) ^
| 96|{{msx:russification:60.png?nolink|0x60}}|GRAPH+?|:::| 128|{{msx:russification:80.png?nolink|0x80}}|GRAPH+G|:::| 129|{{msx:russification:81.png?nolink|0x81}}|SHIFT+GRAPH+W|
| 130|{{msx:russification:82.png?nolink|0x82}}|GRAPH+]|:::| 131|{{msx:russification:83.png?nolink|0x83}}|SHIFT+GRAPH+]|:::| 132|{{msx:russification:84.png?nolink|0x84}}|GRAPH+F|
| 133|{{msx:russification:85.png?nolink|0x85}}|SHIFT+GRAPH+G|:::| 134|{{msx:russification:86.png?nolink|0x86}}|GRAPH+O|:::| 135|{{msx:russification:87.png?nolink|0x87}}|GRAPH+W|
| 136|{{msx:russification:88.png?nolink|0x88}}|GRAPH+D|:::| 137|{{msx:russification:89.png?nolink|0x89}}|SHIFT+GRAPH+D|:::| 138|{{msx:russification:8A.png?nolink|0x8A}}|SHIFT+GRAPH+O|
| 139|{{msx:russification:8B.png?nolink|0x8B}}|SHIFT+GRAPH+J|:::| 140|{{msx:russification:8C.png?nolink|0x8C}}|GRAPH+J|:::| 141|{{msx:russification:8D.png?nolink|0x8D}}|GRAPH+U|
| 142|{{msx:russification:8E.png?nolink|0x8E}}|SHIFT+GRAPH+U|:::| 143|{{msx:russification:8F.png?nolink|0x8F}}|GRAPH+c|:::| 144|{{msx:russification:90.png?nolink|0x90}}|SHIFT+GRAPH+c|
| 145|{{msx:russification:91.png?nolink|0x91}}|SHIFT+GRAPH+Y|:::| 146|{{msx:russification:92.png?nolink|0x92}}|GRAPH+Y|:::| 147|{{msx:russification:93.png?nolink|0x93}}|SHIFT+GRAPH+T|
| 148|{{msx:russification:94.png?nolink|0x94}}|SHIFT+GRAPH+a|:::| 149|{{msx:russification:95.png?nolink|0x95}}|SHIFT+GRAPH+M|:::| 150|{{msx:russification:96.png?nolink|0x96}}|SHIFT+GRAPH+R|
| 151|{{msx:russification:97.png?nolink|0x97}}|SHIFT+GRAPH+Z|:::| 152|{{msx:russification:98.png?nolink|0x98}}|SHIFT+GRAPH+N|:::| 153|{{msx:russification:99.png?nolink|0x99}}|SHIFT+GRAPH+I|
| 154|{{msx:russification:9A.png?nolink|0x9A}}|SHIFT+GRAPH+@|:::| 155|{{msx:russification:9B.png?nolink|0x9B}}|GRAPH+Z|:::| 156|{{msx:russification:9C.png?nolink|0x9C}}|GRAPH+[|
| 157|{{msx:russification:9D.png?nolink|0x9D}}|GRAPH+L|:::| 158|{{msx:russification:9E.png?nolink|0x9E}}|SHIFT+GRAPH+L|:::| 159|{{msx:russification:9F.png?nolink|0x9F}}|SHIFT+GRAPH+[|
| 160|{{msx:russification:A0.png?nolink|0xA0}}|GRAPH++|:::| 161|{{msx:russification:A1.png?nolink|0xA1}}|GRAPH+2|:::| 162|{{msx:russification:A2.png?nolink|0xA2}}|GRAPH+4|
| 163|{{msx:russification:A3.png?nolink|0xA3}}|GRAPH+>|:::| 164|{{msx:russification:A4.png?nolink|0xA4}}|GRAPH+s|:::| 165|{{msx:russification:A5.png?nolink|0xA5}}|SHIFT+GRAPH++|
| 166|{{msx:russification:A6.png?nolink|0xA6}}|SHIFT+GRAPH+3|:::| 167|{{msx:russification:A7.png?nolink|0xA7}}|SHIFT+GRAPH+4|:::| 168|{{msx:russification:A8.png?nolink|0xA8}}|SHIFT+GRAPH+6|
| 169|{{msx:russification:A9.png?nolink|0xA9}}|SHIFT+GRAPH+7|:::| 170|{{msx:russification:AA.png?nolink|0xAA}}|SHIFT+GRAPH+K|:::| 171|{{msx:russification:AB.png?nolink|0xAB}}|GRAPH+1|
| 172|{{msx:russification:AC.png?nolink|0xAC}}|GRAPH+7|:::| 173|{{msx:russification:AD.png?nolink|0xAD}}|SHIFT+GRAPH+E|:::| 174|{{msx:russification:AE.png?nolink|0xAE}}|SHIFT+GRAPH+B|
| 175|{{msx:russification:AF.png?nolink|0xAF}}|GRAPH+3|:::| 176|{{msx:russification:B0.png?nolink|0xB0}}|SHIFT+GRAPH+=|:::| 177|{{msx:russification:B1.png?nolink|0xB1}}|GRAPH+=|
| 178|{{msx:russification:B2.png?nolink|0xB2}}|GRAPH+@|:::| 179|{{msx:russification:B3.png?nolink|0xB3}}|GRAPH+B|:::| 180|{{msx:russification:B4.png?nolink|0xB4}}|GRAPH+5|
| 181|{{msx:russification:B5.png?nolink|0xB5}}|SHIFT+GRAPH+5|:::| 182|{{msx:russification:B6.png?nolink|0xB6}}|SHIFT+GRAPH + < |:::| 183|{{msx:russification:B7.png?nolink|0xB7}}|SHIFT+GRAPH+ > |
| 184|{{msx:russification:B8.png?nolink|0xB8}}|SHIFT+GRAPH+Q|:::| 185|{{msx:russification:B9.png?nolink|0xB9}}|SHIFT+GRAPH+ ~ |:::| 186|{{msx:russification:BA.png?nolink|0xBA}}|SHIFT+GRAPH+s|
| 187|{{msx:russification:BB.png?nolink|0xBB}}|GRAPH+6|:::| 188|{{msx:russification:BC.png?nolink|0xBC}}|SHIFT+GRAPH+2|:::| 189|{{msx:russification:BD.png?nolink|0xBD}}|SHIFT+GRAPH+1|
| 190|{{msx:russification:BE.png?nolink|0xBE}}|SHIFT+GRAPH+F|:::| |||||||
|<100%>|
^ Код ^ Клав. | ^ Код ^ Клав. | ^ Код ^ Клав. | ^ Код ^ Клав. | ^ Код ^ Клав. | ^ Код ^ Клав. | ^ Код ^ Клав. ^
| 191| ¤ |:::| 201| и |:::| 211| с |:::| 221| щ |:::| 231| Г |:::| 241| Я |:::| 251| Ш |
| 192| ю |:::| 202| й |:::| 212| т |:::| 222| ч |:::| 232| Х |:::| 242| Р |:::| 252| Э |
| 193| а |:::| 203| к |:::| 213| у |:::| 223| ъ |:::| 233| И |:::| 243| С |:::| 253| Щ |
| 194| б |:::| 204| л |:::| 214| ж |:::| 224| Ю |:::| 234| Й |:::| 244| Т |:::| 254| Ч |
| 195| ц |:::| 205| м |:::| 215| в |:::| 225| А |:::| 235| К |:::| 245| У |:::|||
| 196| д |:::| 206| н |:::| 216| ь |:::| 226| Б |:::| 236| Л |:::| 246| Ж |:::|||
| 197| е |:::| 207| о |:::| 217| ы |:::| 227| Ц |:::| 237| М |:::| 247| В |:::|||
| 198| ф |:::| 208| п |:::| 218| з |:::| 228| Д |:::| 238| Н |:::| 248| Ь |:::|||
| 199| г |:::| 209| я |:::| 219| ш |:::| 229| Е |:::| 239| О |:::| 249| Ы |:::|||
| 200| х |:::| 210| р |:::| 220| э |:::| 230| Ф |:::| 240| П |:::| 250| З |:::|||
И, наконец,... символ {{msx:russification:FF.png?nolink|}} с кодом 255 ("эхо"— курсор).
Этот символ обладает удивительнейшим свойством!Вначале вызовем его на экран:
locate 10,2:print chr$(255)
█ ◀─── это "эхо"-курсор (почти как настоящий!)
Оk
█ ◀─── а это "настоящий" курсор!
Теперь, нажав клавиши GRAPH+8, увидим на экране следующее:
locate 10,2:print chr$(255)
█
Ok
·█
Переместим "настоящий" курсор на одну позицию влево, и увидим...
locate 10,2:print chr$(255)
◘
Оk
◘
т.е., если "настоящий" курсор перемещается на некоторый символ, то данный символ высвечивается на "эхо"-курсоре! Заметим, что такой эффект не наблюдается, если компьютер выполнит командную строку:
locate 10,2:print chr$(155)
__//Примеры.//__ А теперь о применении кодов управляющих символов!
-
PRINT CHR$(12)' Имитация нажатия клавиши "CLS"
-
10 'Имитация нажатия клавиши "TAB"
20 LOCATE 0,1:PRINT"RRRRRRRRR":A$=INPUT$(1)
30 LOCATE 0,1:PRINT CHR$(9)
-
5 'Имитация нажатия клавиши "BS"
10 LOCATE 10,5,1:PRINT "И"
20 FOR I=1 TO 1000:NEXT
30 LOCATE 11,5,1:A$=INPUT$(1):PRINT CHR$(127)
- PRINT CHR$(11)' Имитация нажатия клавиши "HOME"
-
10 PRINT:PRINT CHR$(28);CHR$(28);"k"; 'В п р а в о!
20 PRINT CHR$(30);"е"; 'В в е р х!
30 PRINT CHR$(31);CHR$(31);CHR$(31);"r";'В н и з!
40 PRINT CHR$(29);CHR$(29);"b"; 'В л е в о!
Попробуйте подобным образом имитировать нажатие клавиш INS и DEL!
Заметим, что некоторые управляющие клавиши имеют два кода, так:
* клавиши CTRL+SHIFT+E имеют код CHR$(25)+CHR$(5)
* клавиши CTRL+SHIFT+W имеют код CHR$(19)+CHR$(23)
* клавиши CTRL+SHIFT+D имеют код CHR$(12)+CHR$(4)
Кроме перечисленных выше "простых" символов (с кодами 33-255),на клавиатуре имеются символы, называемые //графическими//. В отличие от "простого" символа (имеющего один код) графический символ имеет два кода.
Первый код графического символа называется //кодом заголовка// и всегда имеет значение, равное 1, а уже второй код задает конкретный символ.
__//Пример.//__
10 FOR N=&H40 TO &H5F:?CHR$(1)+CHR$(N);"";:NEXT N
В таблице приведены графические символы и их вторые коды.
|<50% 2em 2em 10em 0em 2em 2em 10em>|
^ Код ^^ Клавиша(и) | ^ Код ^^ Клавиша(и) ^
| 64| |''CHR$(32)''|:::| 80|{{msx:russification:0150.png?nolink|}}|SHIFT+GRAPH+P|
| 65|{{msx:russification:0141.png?nolink|}}|GRAPH+H|:::| 81|{{msx:russification:0151.png?nolink|}}|GRAPH+I|
| 66|{{msx:russification:0142.png?nolink|}}|SHIFT+GRAPH+H|:::| 82|{{msx:russification:0152.png?nolink|}}|GRAPH+E|
| 67|{{msx:russification:0143.png?nolink|}}|SHIFT+GRAPH+\|:::| 83|{{msx:russification:0153.png?nolink|}}|GRAPH+R|
| 68|{{msx:russification:0144.png?nolink|}}|SHIFT+GRAPH+V|:::| 84|{{msx:russification:0154.png?nolink|}}|GRAPH+A|
| 69|{{msx:russification:0145.png?nolink|}}|GRAPH+\|:::| 85|{{msx:russification:0155.png?nolink|}}|GRAPH+P|
| 70|{{msx:russification:0146.png?nolink|}}|GRAPH+V|:::| 86|{{msx:russification:0156.png?nolink|}}|SHIFT+GRAPH+^|
| 71|{{msx:russification:0147.png?nolink|}}|GRAPH+8|:::| 87|{{msx:russification:0157.png?nolink|}}|GRAPH+0|
| 72|{{msx:russification:0148.png?nolink|}}|SHIFT+GRAPH+8|:::| 88|{{msx:russification:0158.png?nolink|}}|GRAPH+K|
| 73|{{msx:russification:0149.png?nolink|}}|GRAPH+9|:::| 89|{{msx:russification:0159.png?nolink|}}|GRAPH+N|
| 74|{{msx:russification:014A.png?nolink|}}|SHIFT+GRAPH+9|:::| 90|{{msx:russification:015A.png?nolink|}}|GRAPH+M|
| 75|{{msx:russification:014B.png?nolink|}}|GRAPH+X|:::| 91|{{msx:russification:015B.png?nolink|}}|GRAPH+T|
| 76|{{msx:russification:014C.png?nolink|}}|SHIFT+GRAPH+X|:::| 92|{{msx:russification:015C.png?nolink|}}|GRAPH+~|
| 77|{{msx:russification:014D.png?nolink|}}|GRAPH+*|:::| 93|{{msx:russification:015D.png?nolink|}}|GRAPH+< |
| 78|{{msx:russification:014E.png?nolink|}}|SHIFT+GRAPH+*|:::| 94|{{msx:russification:015E.png?nolink|}}|GRAPH+^|
| 79|{{msx:russification:014F.png?nolink|}}|GRAPH+Q|:::| 95|{{msx:russification:015F.png?nolink|}}|SHIFT+GRAPH+0|
Приведем примеры вызова графических символов:
?CHR$(1)+CHR$(77) ?CHR$(1)+CHR$(76) ?CHR$(1);"D" ?CHR$(1);CHR$(68)
♪ ♀ ♦ ♦
Ok Ok Ok Ok
Отметим одну интересную особенность графических символов. Выше (смотрите [[011#n1113|раздел XI.1.3.]]) расказывалось о том, что можно изменять шаблоны символов с кодами от 32 до 254. Оказыватся, можно изменять шаблоны и графических символов. Информация о них находится в ячейках видеопамяти от 2048·(1-N) до 2048·(1-N)+31, где N — номер режима экрана (0 или 1).
Например:
FOR I=0 TO 7:VPOKE 2048+(77-64)*8+I,VPEEK(2048+(79-64)*8+I):NEXT
Если раньше мы, нажав на клавиши GRAPH+*, получали на экране дисплея символ {{msx:russification:014D.png?nolink|}}, то теперь при нажатии тех же клавиш, мы получим символ {{msx:russification:014F.png?nolink|}}.
8-) Дополнительную информацию по теме можно найти [[msx:russification:#symbol_table|здесь]].
----
[<>]
{{tag>MSX msxbdpl}}