EttinOS/src/KEYCODE.INC

40 lines
518 B
Plaintext

;Reads a keypress and prints its BIOS keycode.
keycode:
;Read a keypress
mov ah, 0x0
int 0x16
;Store the keycode
mov [.scan], ah
mov [.ascii], al
;Print the prefix
mov si, .prefix
call printstr
;Convert the scancode to a hex string
mov al, [.scan]
mov di, .keycode
call byte2hex
;Convert the ascii value to a hex string
mov al, [.ascii]
mov di, .keycode
add di, 0x2
call byte2hex
;Print the keycode
mov si, .keycode
call println
ret
.prefix db "0x", 0x0
.scan db 0x0
.ascii db 0x0
.keycode times 0x5 db 0x0