Scan code ( engelsk skanningskod ) - i IBM-kompatibla datorer , koden som tilldelats varje tangent, med vilken tangentbordsdrivrutinen känner igen vilken tangent som trycktes. När någon tangent trycks ned känner tangentbordskontrollen igen tangenten och skickar dess skanningskod till port 60h. När en tangent släpps, skickar tangentbordskontrollen för det föråldrade IBM PC/XT -formatet en skanningskod ökad med 80h till samma port, och det nyare IBM PC/AT -formatet skickar två byte: F0h och en skanningskod (AT-tangentbordsskanning koder skiljer sig också från XT, se tabell). Vissa nycklar genererar inte en utan flera skanningskoder (till exempel höger Alt, Ctrl, ↵ Enter, båda , samt , , , , , , , pilar och alla ACPI- och multimedianycklar genererar två skanningskoder, varav den första är E0, nyckeln genererar 4 skanningskoder och nyckeln genererar även 6 skanningskoder). Varje byte som skrivs till port 60h genererar ett hårdvaruavbrott int 09h. ⊞ Win≣ MenuInsertDeletePage UpPage DownHomeEndPrtScrPause
Skanningskoder är fastanslutna till varje tangent på hårdvarunivå och beror inte på statusen för indikatorerna eller ⇪ Caps Lockpå kontrollknapparnas tillstånd ( , , ). Num LockScroll Lock⇧ ShiftAltCtrl
Alla skanningskoder nedan är hexadecimala .
De flesta skanningskoderna på ett XT-tangentbord motsvarar den fysiska platsen för tangenterna, som börjar med Esc-tangenterna (kod 01) och siffertangenterna 1-9 (koderna 02-0A). Till exempel har tangenterna på andra raden ( Tab ↹ Q W E R T Y U I O P [ ] ↵ Enter) sekventiella skanningskoder 0F-1C (15-28 i decimaler).
På tangentbord med en annan layout (till exempel AZERTY ) motsvarar skanningskoderna platsen för tangenterna: till exempel är den franska Askanningskoden densamma som den amerikanska Q. Omvandlingen av skanningskoder till koder för nedtryckta tangenter hanteras av OS eller BIOS .
I alla Microsofts operativsystem konverteras skanningskoder från set 2 (AT) till skanningskoder från set 1 (XT), och alla applikationer får skanningskoder från set 1. [1]
Nyckel | XT push-kod | Släpp kod XT | AT Tryck Kod | Släpp kod AT |
---|---|---|---|---|
Huvudtangentbord | ||||
A | 1E | 9E | 1C | F0,1C |
B | trettio | B0 | 32 | F0,32 |
C | 2E | AE | 21 | F0,21 |
D | tjugo | 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 | arton | 98 | 44 | F0,44 |
P | 19 | 99 | 4D | F0.4D |
Q | tio | 90 | femton | F0,15 |
R | 13 | 93 | 2D | F0.2D |
S | 1F | 9F | IB | F0.1B |
T | fjorton | 94 | 2C | F0,2C |
U | 16 | 96 | 3C | F0,3C |
V | 2F | AF | 2A | F0.2A |
W | elva | 91 | 1D | F0.1D |
X | 2D | AD | 22 | F0,22 |
Y | femton | 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 |
] | IB | 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 |
Vänster⇧ Shift | 2A | AA | 12 | F0.12 |
VänsterCtrl | 1D | 9D | fjorton | F0.14 |
VänsterAlt | 38 | B8 | elva | F0.11 |
Vänster⊞ Win | E0.5B | E0,DB | E0.1F | E0,F0,1F |
Höger⇧ Shift | 36 | B6 | 59 | F0,59 |
HögerCtrl | E0.1D | E0.9D | E0.14 | E0,F0,14 |
HögerAlt | E0,38 | E0,B8 | E0.11 | E0,F0,11 |
Höger⊞ 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 | före Kristus | 06 | F0,06 |
F3 | 3D | BD | 04 | F0,04 |
F4 | 3E | VARA | 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 (istället för PrtScr,
nyckelkodAlt genereras separat) |
D4 (istället för PrtScr,
nyckelkodAlt genereras separat) |
? | ? |
Ctrl+ PrtScr,
⇧ Shift+PrtScr ( SysReq) |
E0.37 (istället för PrtScr,
kod för Ctrleller⇧ Shift genereras separat) |
E0,B7 (istället för PrtScr,
kod för Ctrleller⇧ Shift genereras separat) |
? | ? |
Scroll Lock | 46 | C6 | 7E | F0.7E |
Pause | E1,1D,45,E1,9D,C5 | — | E1,14,77, El,F0,14,F0,77 | — |
Ctrl+Break
( Ctrl+ Pause) |
E0.46 (istället för Break,
nyckelkodCtrl genereras separat) |
E0,C6 (istället för Break,
nyckelkodCtrl genereras 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,Dl | 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 |
Numerisk knappsats | ||||
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 | femtio | 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 |
ACPI-nycklar | ||||
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 |
Multimedia nycklar | ||||
Spelarkontroll | ||||
nästa spår | E0,19 | E0,99 | E0, 4D | E0,F0,4D |
Föregående spår | E0.10 | E0,90 | E0,15 | E0,F0,15 |
Sluta | E0.24 | E0,A4 | E0.3B | E0,F0,3B |
Spela/Pausa | E0.22 | E0,A2 | E0,34 | E0,F0,34 |
Ljud på/av | E0,20 | E0,A0 | E0.23 | E0,F0,23 |
Höj volymen | E0,30 | E0,B0 | E0,32 | E0,F0,32 |
Sänk volymen | E0.2E | E0,AE | E0.21 | E0,F0,21 |
Webbläsarkontroll | ||||
Sök | E0,65 | E0, E5 | E0.10 | E0,F0,10 |
Hemsida | E0,32 | E0,B2 | E0.3A | E0,F0,3A |
Tillbaka | E0.6A | E0,EA | E0,38 | E0,F0,38 |
Fram | E0,69 | E0, E9 | E0,30 | E0,F0,30 |
Sluta | E0,68 | E0, E8 | E0,28 | E0,F0,28 |
Uppdatera | E0,67 | E0, E7 | E0,20 | E0,F0,20 |
Bokmärken | E0,66 | E0, E6 | E0.18 | E0,F0,18 |
Applikationshantering | ||||
Media Välj | E0.6D | E0,ED | E0,50 | E0,F0,50 |
E-post | E0,6C | E0,EC | E0,48 | E0,F0,48 |
Kalkylator | E0.21 | E0,A1 | E0.2B | E0,F0,2B |
Min dator | E0.6B | E0,EB | E0,40 | E0,F0,40 |
I ren DOS Pausegenererar tangenten 6 skanningskoder när den trycks ned och genererar inga skanningskoder när den hålls ned och släpps. Under Windows (inklusive i VMware och DOSBox) fungerar nyckeln Pausepå samma sätt som alla andra: när den hålls nedtryckt genererar den skanningskoder E1,1D,45 och när den släpps genererar den E1,9D,C5.
Nyckelkoder ↓, ↑, ←, →, Home, End, Page Up, Page Down, Insert, Deletekan, utöver de som anges i tabellen, dessutom innehålla: E0,2A - när den trycks ned (före huvudkoden), E0,AA - när den släpps (efter huvudkoden) . Och när du håller ⇧ Shiftknappen intryckt, vice versa: E0,AA - när den trycks ned (före huvudkoden), E0.2A - när den släpps (efter huvudkoden), ⇧ Shiftgenereras nyckelkoden separat.