Cod de scanare ( cod de scanare în engleză ) - în computerele compatibile IBM , codul atribuit fiecărei taste, cu care driverul tastaturii recunoaște ce tastă a fost apăsată. Când este apăsată orice tastă, controlerul tastaturii recunoaște tasta și trimite codul ei de scanare la portul 60h. Când o tastă este eliberată, controlerul de tastatură al formatului învechit IBM PC/XT trimite un cod de scanare mărit cu 80h către același port, iar formatul mai nou IBM PC/AT trimite doi octeți: F0h și un cod de scanare (scanare a tastaturii AT). codurile diferă de asemenea de XT, vezi tabel). Unele chei generează nu unul, ci mai multe coduri de scanare (de exemplu, dreapta , , , ambele , precum și ,AltCtrl↵ Enter⊞ Win≣ MenuInsert, Delete, Page Up, Page Down, Home, End, săgețile și toate tastele ACPI și multimedia generează două coduri de scanare, primul dintre care este E0, cheia PrtScrgenerează 4 coduri de scanare, iar cheia Pause chiar 6 coduri de scanare). Fiecare octet scris pe portul 60h generează o întrerupere hardware int 09h.
Codurile de scanare sunt conectate la fiecare tastă la nivel hardware și nu depind de starea indicatorilor ⇪ Caps Lockși Num Locksau Scroll Lockde starea tastelor de control ( ⇧ Shift, Alt, Ctrl).
Toate codurile de scanare de mai jos sunt în hexazecimal .
Majoritatea codurilor de scanare de pe o tastatură XT corespund locației fizice a tastelor, începând cu tastele Esc (cod 01) și tastele numerice 1-9 (codurile 02-0A). De exemplu, tastele din al doilea rând ( Tab ↹ Q W E R T Y U I O P [ ] ↵ Enter) au coduri de scanare secvenţială 0F-1C (15-28 în zecimală).
Pe tastaturi cu un aspect diferit (de exemplu, AZERTY ), codurile de scanare corespund locației tastelor: de exemplu, Acodul de scanare francez este același cu cel american Q. Conversia codurilor de scanare în coduri ale tastelor apăsate este gestionată de sistemul de operare sau BIOS .
În toate sistemele de operare Microsoft, codurile de scanare din setul 2 (AT) sunt convertite în coduri de scanare din setul 1 (XT), iar toate aplicațiile primesc coduri de scanare din setul 1. [1]
Cheie | Cod push XT | Codul de lansare XT | Cod de apăsare AT | Codul de eliberare AT |
---|---|---|---|---|
Tastatura principală | ||||
A | 1E | 9E | 1C | F0.1C |
B | treizeci | B0 | 32 | F0.32 |
C | 2E | AE | 21 | F0.21 |
D | douăzeci | A0 | 23 | F0.23 |
E | 12 | 92 | 24 | F0.24 |
F | 21 | A1 | 2B | F0.2B |
G | 22 | A2 | 34 | F0.34 |
H | 23 | A3 | 33 | F0.33 |
I | 17 | 97 | 43 | F0.43 |
J | 24 | A4 | 3B | F0.3B |
K | 25 | A5 | 42 | F0.42 |
L | 26 | A6 | 4B | F0.4B |
M | 32 | B2 | 3A | F0.3A |
N | 31 | B1 | 31 | F0.31 |
O | optsprezece | 98 | 44 | F0.44 |
P | 19 | 99 | 4D | F0.4D |
Q | zece | 90 | cincisprezece | F0.15 |
R | 13 | 93 | 2D | F0.2D |
S | 1F | 9F | 1B | F0.1B |
T | paisprezece | 94 | 2C | F0.2C |
U | 16 | 96 | 3C | F0.3C |
V | 2F | AF | 2A | F0.2A |
W | unsprezece | 91 | 1D | F0.1D |
X | 2D | ANUNȚ | 22 | F0.22 |
Y | cincisprezece | 95 | 35 | F0,35 |
Z | 2C | AC | 1A | F0.1A |
0 | 0B | 8B | 45 | F0,45 |
1 | 02 | 82 | 16 | F0.16 |
2 | 03 | 83 | 1E | F0.1E |
3 | 04 | 84 | 26 | F0.26 |
4 | 05 | 85 | 25 | F0.25 |
5 | 06 | 86 | 2E | F0.2E |
6 | 07 | 87 | 36 | F0.36 |
7 | 08 | 88 | 3D | F0.3D |
8 | 09 | 89 | 3E | F0.3E |
9 | 0A | 8A | 46 | F0.46 |
~ | 29 | 89 | 0E | F0.0E |
- | 0C | 8C | 4E | F0.4E |
= | 0D | 82 | 55 | F0,55 |
\ | 2B | AB | 5D | F0.5D |
[ | 1A | 9A | 54 | F0.54 |
] | 1B | 9B | 5B | F0.5B |
; | 27 | A7 | 4C | F0.4C |
' | 28 | A8 | 52 | F0.52 |
, | 33 | B3 | 41 | F0.41 |
. | 34 | B4 | 49 | F0.49 |
/ | 35 | B5 | 4A | F0.4A |
BS | 0E | 8E | 66 | F0.66 |
Space | 39 | B9 | 29 | F0.29 |
Tab ↹ | 0F | 8F | 0D | F0.0D |
⇪ Caps Lock | 3A | BA | 58 | F0.58 |
Stânga⇧ Shift | 2A | AA | 12 | F0.12 |
StângaCtrl | 1D | 9D | paisprezece | F0.14 |
StângaAlt | 38 | B8 | unsprezece | F0.11 |
Stânga⊞ Win | E0.5B | E0,DB | E0.1F | E0,F0,1F |
Dreapta⇧ Shift | 36 | B6 | 59 | F0.59 |
DreaptaCtrl | E0.1D | E0.9D | E0.14 | E0,F0,14 |
DreaptaAlt | E0.38 | E0,B8 | E0.11 | E0,F0,11 |
Dreapta⊞ Win | E0,5C | E0,DC | E0.27 | E0,F0,27 |
≣ Menu | E0.5D | E0,DD | E0.2F | E0,F0,2F |
↵ Enter | 1C | 9C | 5A | F0.5A |
Esc | 01 | 81 | 76 | F0.76 |
F1 | 3B | BB | 05 | F0.05 |
F2 | 3C | î.Hr | 06 | F0.06 |
F3 | 3D | BD | 04 | F0.04 |
F4 | 3E | FI | 0C | F0.0C |
F5 | 3F | bf | 03 | F0.03 |
F6 | 40 | C0 | 0B | F0.0B |
F7 | 41 | C1 | 83 | F0.83 |
F8 | 42 | C2 | 0A | F0.0A |
F9 | 43 | C3 | 01 | F0.01 |
F10 | 44 | C4 | 09 | F0.09 |
F11 | 57 | D7 | 78 | F0,78 |
F12 | 58 | D8 | 07 | F0.07 |
PrtScr | E0.2A, E0.37 | E0,B7,E0,AA | E0,12, E0,7C | E0,F0.7C,E0,F0.12 |
Alt+PrtScr | 54 (în loc de PrtScr,
cod cheieAlt generate separat) |
D4 (în loc de PrtScr,
cod cheieAlt generate separat) |
? | ? |
Ctrl+ PrtScr,
⇧ Shift+PrtScr ( SysReq) |
E0.37 (în loc de PrtScr,
cod pentru Ctrlsau⇧ Shift generate separat) |
E0,B7 (în loc de PrtScr,
cod pentru Ctrlsau⇧ Shift generate separat) |
? | ? |
Scroll Lock | 46 | C6 | 7E | F0.7E |
Pause | E1,1D,45, E1,9D,C5 | — | E1,14,77, E1,F0,14,F0,77 | — |
Ctrl+Break
( Ctrl+ Pause) |
E0.46 (în loc de Break,
cod cheieCtrl generate separat) |
E0,C6 (în loc de Break,
cod cheieCtrl generate separat) |
? | ? |
Insert | E0,52 | E0,D2 | E0,70 | E0,F0,70 |
Home | E0,47 | E0,C7 | E0.6C | E0,F0,6C |
End | E0.4F | E0,CF | E0,69 | E0,F0,69 |
Page Up | E0.49 | E0,C9 | E0.7D | E0,F0,7D |
Page Down | E0,51 | E0,D1 | E0.7A | E0,F0,7A |
Delete | E0,53 | E0,D3 | E0.71 | E0,F0,71 |
↑ | E0,48 | E0,C8 | E0,75 | E0,F0,75 |
← | E0.4B | E0,CB | E0.6B | E0,F0,6B |
↓ | E0,50 | E0,D0 | E0.72 | E0,F0,72 |
→ | E0.4D | E0,CD | E0,74 | E0,F0,74 |
Tastatură numerică | ||||
Num Lock | 45 | C5 | 77 | F0.77 |
/ | E0,35 | E0,B5 | E0.4A | E0,F0,4A |
* | 37 | B7 | 7C | F0.7C |
- | 4A | CA | 7B | F0.7B |
+ | 4E | CE | 79 | F0,79 |
↵ Enter | E0.1C | E0.9C | E0.5A | E0,F0,5A |
. | 53 | D3 | 71 | F0.71 |
0 | 52 | D2 | 70 | F0,70 |
1 | 4F | CF | 69 | F0.69 |
2 | cincizeci | D0 | 72 | F0.72 |
3 | 51 | D1 | 7A | F0.7A |
4 | 4B | CB | 6B | F0.6B |
5 | 4C | CC | 73 | F0.73 |
6 | 4D | CD | 74 | F0.74 |
7 | 47 | C7 | 6C | F0.6C |
8 | 48 | C8 | 75 | F0,75 |
9 | 49 | C9 | 7D | F0.7D |
cheile ACPI | ||||
Power | E0.5E | E0,DE | E0.37 | E0,F0,37 |
Sleep | E0.5F | E0,DF | E0.3F | E0,F0,3F |
Wake | E0.63 | E0,E3 | E0.5E | E0,F0,5E |
Taste multimedia | ||||
Controlul jucătorului | ||||
piesa urmatoare | E0.19 | E0,99 | E0, 4D | E0,F0,4D |
Piesa anterioară | E0.10 | E0,90 | E0.15 | E0,F0,15 |
Stop | E0.24 | E0,A4 | E0.3B | E0,F0,3B |
Redare/Pauză | E0.22 | E0,A2 | E0.34 | E0,F0,34 |
Sunet activat/dezactivat | E0.20 | E0,A0 | E0.23 | E0,F0,23 |
Da volumul mai tare | E0,30 | E0,B0 | E0.32 | E0,F0,32 |
Da volumul mai incet | E0.2E | E0,AE | E0.21 | E0,F0,21 |
Controlul browserului | ||||
Căutare | E0,65 | E0,E5 | E0.10 | E0,F0,10 |
Pagina principala | E0.32 | E0,B2 | E0.3A | E0,F0,3A |
Înapoi | E0.6A | E0,EA | E0.38 | E0,F0,38 |
Redirecţiona | E0,69 | E0,E9 | E0,30 | E0,F0,30 |
Stop | E0,68 | E0, E8 | E0.28 | E0,F0,28 |
Reîmprospăta | E0,67 | E0,E7 | E0.20 | E0,F0,20 |
Marcaje | E0,66 | E0, E6 | E0.18 | E0,F0,18 |
Managementul aplicațiilor | ||||
Media Select | E0.6D | E0,ED | E0,50 | E0,F0,50 |
E0.6C | E0,EC | E0,48 | E0,F0,48 | |
Calculator | E0.21 | E0,A1 | E0.2B | E0,F0,2B |
Calculatorul meu | E0.6B | E0,EB | E0,40 | E0,F0,40 |
În DOS pur, tasta Pausegenerează 6 coduri de scanare când este apăsată și nu generează coduri de scanare când este ținută și eliberată. În Windows (inclusiv în VMware și DOSBox), tasta Pausefuncționează la fel ca oricare alta: atunci când este apăsată și menținută, generează coduri de scanare E1,1D,45, iar atunci când este eliberată, generează E1,9D,C5.
Codurile tastelor ↓, ↑, ←, →, Home, End, Page Up, Page Down, Insert, Deletepot conține, pe lângă cele indicate în tabel, suplimentar: E0,2A - la apăsare (înainte de codul principal), E0,AA - la eliberare (după codul principal) . Și când țineți apăsată tasta ⇧ Shift, invers: E0,AA - când este apăsată (înainte de codul principal), E0.2A - când este eliberată (după codul principal), codul cheii ⇧ Shifteste generat separat.