2.4. Т а б л и ц а к о д о в ASCII П р и м е р. 10 A$=INKEY$ ─────────── 20 IF A$="" THEN 10 30 PRINT ASC(A$):GOTO 10 ┌─────┬──────────────┬─────┬──────────────┬─────┬──────────────────┐ │ Код │ Клавиша(и) │ Код │ Клавиша(и) │ Код │ Клавиша(и) │ ├─────┼──────────────┼─────┼──────────────┼─────┼──────────────────┤ │ 0 │ CTRL+@ │ 13 │ CTRL+M │ 27 │ CTRL+[ │ │ 1 │ CTRL+A │ 13 │ RETURN │ 27 │ ESC │ │ 2 │ CTRL+B │ 14 │ CTRL+N │ 28 │ CTRL+"\" │ │ 3 │ CTRL+C │ 15 │ CTRL+O │ 28 │ CTRL+SHIFT+> │ │ 4 │ CTRL+D │ 16 │ CTRL+P │ 28 │ SHIFT+"\"+> │ │ 5 │ CTRL+E │ 17 │ CTRL+Q │ 28 │ CTRL+"~" │ │ 6 │ CTRL+F │ 18 │ CTRL+R │ 28 │ ───▶ │ │ 7 │ CTRL+G │ 18 │ INS │ 29 │ CTRL+] │ │ 8 │ CTRL+H │ 19 │ CTRL+S │ 29 │ ◀─── │ │ 8 │ BS │ 20 │ CTRL+T │ 30 │ CTRL+SHIFT+"^" │ │ 9 │ CTRL+I │ 21 │ CTRL+U │ 30 │ CTRL+SHIFT+"~" │ │ 9 │ TAB │ 22 │ CTRL+V │ 30 │ "стрелка ВВЕРХ" │ │ 10 │ CTRL+J │ 23 │ CTRL+W │ 31 │ CTRL+SHIFT+"=" │ │ 11 │ CTRL+K │ 24 │ CTRL+X │ 31 │ "стрелка ВНИЗ" │ │ 11 │ CLS/HOME │ 24 │ SELECT │ 32 │ "Пробел" │ │ 12 │ CTRL+L │ 25 │ CTRL+Y │ 127│ DEL │ │ 12 │SHIFT+CLS/HOME│ 26 │ CTRL+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 │ │ │ │ │ └───┴─────┴───┴─────┴───┴─────┴───┴─────┴───┴─────┴───┴─────┴───┴─────┘ ┌─────┬───────────────┬─────┬───────────────┬─────┬───────────────┐ │ Код │ Клавиша(и) │ Код │ Клавиша(и) │ Код │ Клавиша(и) │ ├─────┼───────────────┼─────┼───────────────┼─────┼───────────────┤ │ 96 `│GRAPH+? │128 │GRAPH+G │129 │SHIFT+GRAPH+W │ │130 │GRAPH+] │131 │SHIFT+GRAPH+] │132 │GRAPH+F │ │133 │SHIFT+GRAPH+G │134 │GRAPH+O │135 │GRAPH+W │ │136 │GRAPH+D │137 │SHIFT+GRAPH+D │138 │SHIFT+GRAPH+O │ │139 ▨│SHIFT+GRAPH+J │140 ▧│GRAPH+J │141 ▼│GRAPH+U │ │142 ▲│SHIFT+GRAPH+U │143 ▶│GRAPH+C │144 ◀│SHIFT+GRAPH+C │ │145 │SHIFT+GRAPH+Y │146 │GRAPH+Y │147 ▘│SHIFT+GRAPH+T │ │148 ▗│SHIFT+GRAPH+A │149 ▝│SHIFT+GRAPH+M │150 ▖│SHIFT+GRAPH+R │ │151 ░│SHIFT+GRAPH+Z │152 Δ│SHIFT+GRAPH+N │153 ≠│SHIFT+GRAPH+I │ │154 ω│SHIFT+GRAPH+@ │155 █│GRAPH+Z │156 ▄│GRAPH+[ │ │157 ▌│GRAPH+L │158 ▐│SHIFT+GRAPH+L │159 │SHIFT+GRAPH+[ │ │160 α│GRAPH+"+" │161 β│GRAPH+"2" │162 Γ│GRAPH+"4" │ │163 π│GRAPH+">" │164 ∑│GRAPH+S │165 σ│SHIFT+GRAPH+"+"│ │166 μ│SHIFT+GRAPH+"3"│167 γ│SHIFT+GRAPH+"4"│168 Φ│SHIFT+GRAPH+"6"│ │169 ⟠│SHIFT+GRAPH+"7"│170 Ω│SHIFT+GRAPH+K │171 δ│GRAPH+"1" │ │172 ∞│GRAPH+"7" │173 𝜙│SHIFT+GRAPH+E │174 ∈│SHIFT+GRAPH+B │ │175 ⋂│GRAPH+"3" │176 ≡│SHIFT+GRAPH+= │177 ±│GRAPH+"=" │ │178 ≥│GRAPH+@ │179 ≤│GRAPH+B │180 ⎧│GRAPH+"5" │ │181 ⎭│SHIFT+GRAPH+"5"│182 ÷│SHIFT+GRAPH+< │183 ≈│SHIFT+GRAPH+> │ │184 °│SHIFT+GRAPH+Q │185 ∙│SHIFT+GRAPH+"~"│186 ﹣│SHIFT+GRAPH+S │ │187 √│GRAPH+"6" │188 ⁿ│SHIFT+GRAPH+"2"│189 ²│SHIFT+GRAPH+"1"│ │190 ∎│SHIFT+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) │ 80 │ SHIFT+GRAPH+P │ │ 65 ☺ │ GRAPH+H │ 81 ┴ │ GRAPH+I │ │ 66 ☻ │ SHIFT+GRAPH+H │ 82 ┬ │ GRAPH+E │ │ 67 ♥ │ SHIFT+GRAPH+\ │ 83 ┤ │ GRAPH+R │ │ 68 ♦ │ SHIFT+GRAPH+V │ 84 ├ │ GRAPH+A │ │ 69 ♣ │ GRAPH+\ │ 85 ┼ │ GRAPH+P │ │ 70 ♠ │ GRAPH+V │ 86 │ │ SHIFT+GRAPH+^ │ │ 71 · │ GRAPH+8 │ 87 ─ │ GRAPH+0 │ │ 72 ◘ │ SHIFT+GRAPH+8 │ 88 ┌ │ GRAPH+K │ │ 73 ○ │ GRAPH+9 │ 89 ┐ │ GRAPH+N │ │ 74 ● │ SHIFT+GRAPH+9 │ 90 └ │ GRAPH+M │ │ 75 ♂ │ GRAPH+X │ 91 ┘ │ GRAPH+T │ │ 76 ♀ │ SHIFT+GRAPH+X │ 92 ╳ │ GRAPH+~ │ │ 77 ♪ │ GRAPH+* │ 93 ╱ │ GRAPH+< │ │ 78 ♬ │ SHIFT+GRAPH+* │ 94 ╲ │ GRAPH+^ │ │ 79 ∗ │ GRAPH+Q │ 95 │ SHIFT+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"+"*", получали на экране дис- плея символ "♪",то теперь при нажатии тех же клавиш,мы получим символ "∗".