< -->

;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

Назад