;funkeyb.asm
;Устанавливает обработчик прерывания клавиатуры
;вместо прерывания системного таймера (на INT 08h)
;Работает только из-под ДОС, не из-под Windows.
.model tiny
.code
.186
org 100h
start:
mov ax, 1600h
int 2Fh
test al, al
jz no_windows
mov ax, 1827h
mov bx, offset message_err
mov cx, message_length/2
unxor:
xor word ptr [bx], ax
inc bx
inc bx
loop unxor
mov ah, 9
mov dx, offset message_err
int 21h
jmp short exit_prg
no_windows:
mov ax, 3509h
int 21h
push es
pop ds
mov dx, bx
mov ax, 2508h
int 21h
exit_prg:
ret
nop
message_err db "ҐµЏґ‡µЏЅ8єъ‡8€ш‰»Зё‹ґ‡8Зё†¶Её‚ъъ‰іЛІ‰8…8cWt8ЗЅЃ°‹Ѕ8"
db "µ‚8Џї·‰јOHoPyPk6$"
message_length = $ - message_err
; "Внимание! Эта программа работает только в DOS режиме! "
; "(не из под Wowwaws)." x XOR 27h 18h
end start