[<>] ~~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}}