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

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


msx:basic_dialogue_programming_language:204

Первая страницаПредыдущая страницаНазад к обзоруСледующая страницаПоследняя страница

Приложение 2 — 2.4. Таблица кодов ASCII

Пример.

10 A$=INKEY$
20 IF A$="" THEN 10
30 PRINT ASC(A$):GOTO 10
Код Клавиша(и) Код Клавиша(и) Код Клавиша(и)
0CTRL+@ 13CTRL+M 27CTRL+[
1CTRL+AltВвод ESC
2CTRL+B 14CTRL+N 28CTRL+\
3CTRL+Ctrl 15CTRL+OCTRL+SHIFT+>
4CTRL+D 16CTRL+P SHIFT+\+>
5CTRL+E 17CTRL+QCTRL+~
6CTRL+F 18CTRL+R
7CTRL+GINS 29CTRL+]
8CTRL+H 19CTRL+S
BS 20CTRL+T 30CTRL+SHIFT+^
9CTRL+I 21CTRL+UCTRL+SHIFT+~
TAB 22CTRL+V
10CTRL+J 23CTRL+W 31CTRL+SHIFT+=
11CTRL+K 24CTRL+X
CLS/HOMESELECT 32Пробел
12CTRL+L 25CTRL+Y 127DEL
SHIFT+CLS/HOME 26CTRL+Z

Пример.

10 FOR K=&H20 TO &HFF:? CHR$(K);"";K:NEXT K
Код Клав. Код Клав. Код Клав. Код Клав. Код Клав. Код Клав. Код Клав.
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
Код Клавиша(и) Код Клавиша(и) Код Клавиша(и)
960x60GRAPH+? 1280x80GRAPH+G 1290x81SHIFT+GRAPH+W
1300x82GRAPH+] 1310x83SHIFT+GRAPH+] 1320x84GRAPH+F
1330x85SHIFT+GRAPH+G 1340x86GRAPH+O 1350x87GRAPH+W
1360x88GRAPH+D 1370x89SHIFT+GRAPH+D 1380x8ASHIFT+GRAPH+O
1390x8BSHIFT+GRAPH+J 1400x8CGRAPH+J 1410x8DGRAPH+U
1420x8ESHIFT+GRAPH+U 1430x8FGRAPH+C 1440x90SHIFT+GRAPH+C
1450x91SHIFT+GRAPH+Y 1460x92GRAPH+Y 1470x93SHIFT+GRAPH+T
1480x94SHIFT+GRAPH+A 1490x95SHIFT+GRAPH+M 1500x96SHIFT+GRAPH+R
1510x97SHIFT+GRAPH+Z 1520x98SHIFT+GRAPH+N 1530x99SHIFT+GRAPH+I
1540x9ASHIFT+GRAPH+@ 1550x9BGRAPH+Z 1560x9CGRAPH+[
1570x9DGRAPH+L 1580x9ESHIFT+GRAPH+L 1590x9FSHIFT+GRAPH+[
1600xA0GRAPH++ 1610xA1GRAPH+2 1620xA2GRAPH+4
1630xA3GRAPH+> 1640xA4GRAPH+S 1650xA5SHIFT+GRAPH++
1660xA6SHIFT+GRAPH+3 1670xA7SHIFT+GRAPH+4 1680xA8SHIFT+GRAPH+6
1690xA9SHIFT+GRAPH+7 1700xAASHIFT+GRAPH+K 1710xABGRAPH+1
1720xACGRAPH+7 1730xADSHIFT+GRAPH+E 1740xAESHIFT+GRAPH+B
1750xAFGRAPH+3 1760xB0SHIFT+GRAPH+= 1770xB1GRAPH+=
1780xB2GRAPH+@ 1790xB3GRAPH+B 1800xB4GRAPH+5
1810xB5SHIFT+GRAPH+5 1820xB6SHIFT+GRAPH+< 1830xB7SHIFT+GRAPH+>
1840xB8SHIFT+GRAPH+Q 1850xB9SHIFT+GRAPH+~ 1860xBASHIFT+GRAPH+S
1870xBBGRAPH+6 1880xBCSHIFT+GRAPH+2 1890xBDSHIFT+GRAPH+1
1900xBESHIFT+GRAPH+F
Код Клав. Код Клав. Код Клав. Код Клав. Код Клав. Код Клав. Код Клав.
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 З

И, наконец,… символ с кодом 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)

Примеры. А теперь о применении кодов управляющих символов!

  1. PRINT CHR$(12)' Имитация нажатия клавиши "CLS"
  2. 10 'Имитация нажатия клавиши "TAB"
    20 LOCATE 0,1:PRINT"RRRRRRRRR":A$=INPUT$(1)
    30 LOCATE 0,1:PRINT CHR$(9)
  3. 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)
  4. PRINT CHR$(11)' Имитация нажатия клавиши "HOME"
  5. 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

В таблице приведены графические символы и их вторые коды.

Код Клавиша(и) Код Клавиша(и)
64 CHR$(32) 80SHIFT+GRAPH+P
65GRAPH+H 81GRAPH+I
66SHIFT+GRAPH+H 82GRAPH+E
67SHIFT+GRAPH+\ 83GRAPH+R
68SHIFT+GRAPH+V 84GRAPH+Alt
69GRAPH+\ 85GRAPH+P
70GRAPH+V 86SHIFT+GRAPH+^
71GRAPH+8 87GRAPH+0
72SHIFT+GRAPH+8 88GRAPH+K
73GRAPH+9 89GRAPH+N
74SHIFT+GRAPH+9 90GRAPH+M
75GRAPH+X 91GRAPH+T
76SHIFT+GRAPH+X 92GRAPH+~
77GRAPH+* 93GRAPH+<
78SHIFT+GRAPH+* 94GRAPH+^
79GRAPH+Q 95SHIFT+GRAPH+0

Приведем примеры вызова графических символов:

?CHR$(1)+CHR$(77)   ?CHR$(1)+CHR$(76)   ?CHR$(1);"D"   ?CHR$(1);CHR$(68)
♪                   ♀                   ♦              ♦
Ok                  Ok                  Ok             Ok

Отметим одну интересную особенность графических символов. Выше (смотрите раздел 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+*, получали на экране дисплея символ , то теперь при нажатии тех же клавиш, мы получим символ .

8-) Дополнительную информацию по теме можно найти здесь.


Первая страницаПредыдущая страницаНазад к обзоруСледующая страницаПоследняя страница

msx/basic_dialogue_programming_language/204.txt · Последние изменения: 2023-06-12 01:13 — GreyWolf