надо как-то вызвать из прерывания 09h (IRQ 1) процедуру (или запустить программу), использующую функцию 08h (чтение символа без эха) прерывания 21h (DOS).
Вроде, из-за этого у меня прога и виснет...
тело моего обработчика 09h:
Код: Выделить всё
S_CODE equ 1Fh
int09h proc
push ax
in al,60h
cmp al,S_CODE
je s
oldhandler_jmp:
pop ax
jmp cs :o ldhandler
s:
push es
push ax
xor ax,ax
mov es,ax
pop ax
mov ah,es:[417h]
pop es
test ah,04h
jz oldhandler_jmp
call test
in al,61h
mov ah,al
or al,80h
out 61h,al
xchg ah,al
out 61h,al
mov al,20h
out 20h,al
pop ax
iret
oldhandler dd 00h
int09h endp
Код: Выделить всё
setint proc
push ax
push bx
push dx
push si
push es
mov si,offset oldhandler
mov ax,3509h
int 21h
mov [si],bx
mov [si+2],es
mov ax,2509h
mov dx,offset int09h
int 21h
pop es
pop si
pop dx
pop bx
pop ax
ret
setint endp