Scan-Code in DOS ermitteln

Einen Algorithmus, um die Scan-Codes beliebiger Tasten zu ermitteln, möchten wir Ihnen mit SCAN.DEB vorstellen. So haben Programmierer beispielsweise die Möglichkeit, die Funktionstasten F11 und F12 in ihre Anwendungen einzubeziehen, obwohl sie sich auf vielen PCs häufig nicht belegen lassen. Weil die Tastatur für jede Taste einen »Runterdrück«- und einen »Loslaß«-Code liefert, erhalten Sie pro Tastendruck zwei hexadezimale Werte, wodurch Sie noch mehr Möglichkeiten zur Programmierung bekommen. [Strg] + [Alt] + [Entf] bleibt wie alle anderen Tastenkombinationen wirkungslos – SCAN liefert Ihnen dagegen die entsprechenden Scan-Codes. Mit der ESC-Taste beenden Sie SCAN.

Name: SCAN.DEB
Funktion: Liefert den echten »Runterdrück«- und »Loslaß«-Code jeder (!) Taste.
Übersetzung: DEBUG <SCAN.DEB
Prüfsumme: 5EC0
Anwendung: SCAN
Einschränkungen: ./.
A
MOV ES,AX           ;100
MOV SI,13E          ;102
MOV DI,CS           ;105
CALL 131            ;107
MOV BX,10FF         ;10A
INC BL              ;10D
CMP BX,[143]        ;10F
JZ 10F              ;113
CALL 15E            ;115
MOV AL,[BX]         ;118
MOV AH,0            ;11A
DIV BH              ;11C
MOV [126],AH        ;11E
CALL 160            ;122
MOV AL,0            ;125
CALL 160            ;127
CALL 15E            ;12A
DEC By[BX]          ;12D
JNZ 10D             ;12F
CLI                 ;131
ES:XCHG SI,[24]     ;132
ES:XCHG DI,[26]     ;137
STI                 ;13C
RET                 ;13D
PUSH AX             ;13E
PUSH BX             ;13F
IN AL,60            ;140
MOV BX,1000         ;142
CS:MOV [BX],AL      ;145
CS:INC By[143]      ;148
IN AL,61            ;14D
OR AL,80            ;14F
OUT 61,AL           ;151
XOR AL,80           ;153
OUT 61,AL           ;155
MOV AL,20           ;157
OUT 20,AL           ;159
POP BX              ;15B
POP AX              ;15C
IRET                ;15D
MOV AL,FD           ;15E
ADD AL,30           ;160
CMP AL,39           ;162
JBE 168             ;164
ADD AL,27           ;166
MOV AH,E            ;168
INT 10              ;16A
RET                 ;16C

RCX
6D
NSCAN.COM
W
Q

Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot