BIOS-Tastencodes in DOS ermitteln

Nachdem wir Ihnen eine Routine vorgestellt haben, die Ihnen die echten »Scan«-Codes jeder beliebigen Taste liefert, zeigen wir Ihnen jetzt ein Programm, das Ihnen verrät, was der installierte Tastaturtreibers aus diesen Codes macht. BIOS zeigt für jede gedrückte Taste den Code, den jedes Anwenderprogramm oder auch z.B. ANSI.SYS abfragen kann, vierstellig hexadezimal an. Die ersten beiden Hex-Ziffern liefern normalerweise den Abtast-Code (in »SCAN« der sogenannte »Runterdrück«-Code, dort also der erste Wert), die letzten beiden den ASCII-Code. Bei Sondertasten, den Funktionstasten beispielsweise, ist der ASCII-Wert 0, während der »erweiterte« Code in den ersten beiden Ziffern steht. Die Taste ESC beendet BIOS. Bevor Sie die Werte zum Beispiel in unserem Tip »KEYIN« verwenden können, müssen Sie sie noch in das dezimale Zahlensystem umrechnen, wobei Sie sich natürlich CONVERT zuhilfe nehmen können. Achtung! Im Unterschied zu SCAN.DEB funktionieren mit BIOS die Tastenkombinationen mit speziellen Bedeutungen wie [Druck] oder [Strg] + [Alt] + [Entf].

Name: BIOS.DEB
Funktion: Liefert den hexadezimalen BIOS-Code einer Taste.
Übersetzung: DEBUG <BIOS.DEB
Prüfsumme: 672F
Anwendung: BIOS
Einschränkungen: ./.
A
MOV AH,0            ;100
INT 16              ;102
MOV CX,404          ;104
ROL AX,CL           ;107
PUSH AX             ;109
AND AL,F            ;10A
ADD AL,30           ;10C
CMP AL,39           ;10E
JBE 114             ;110
ADD AL,27           ;112
INT 29              ;114
POP AX              ;116
DEC CH              ;117
JNZ 107             ;119
CMP AL,1B           ;11B
MOV AL,D            ;11D
INT 29              ;11F
MOV AL,A            ;121
INT 29              ;123
JNZ 100             ;125
RET                 ;127

RCX
28
NBIOS.COM
W
Q

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