«Программирование мыши в режиме прерываний.»
.586
code segment use16
assume CS
main proc
push CS
pop DS
mov AX,350Ch
int 21h
mov word ptr old_Oc,BX
mov word ptr old_Oc+2,ES
mov AX,25ОСЬ
mov DX,offset new_0c
int 21h
mov AH,01h
int 21h
mov AX,250Ch
lds DX,old_Oc
int 21h
mov AX,4C00h
int 21h
main endp
new_0c proc
pusha
push DS
push ES
mov DX,3F8h
in AL,DX
cmp AL, 60h
cmp AL, 5Oh
je rbtn
outret:pop ES
mov AL,20h
out 20h,AL
рора
iret
Ibtn: mov АН, 1Eh
mov SI,offset msgdn
jmp commn
rbtn: mov AH,2Eh
mov SI,offset msgdn
commn: mov BX,OB800h
mov ES,BX
push CS
pop DS
mov CX,6
mov DI,2000
cld
scr: lodsb
stosw
loop scr
jmp outret
new_0c endp
old_0c dd 0
msgdn db "Левая!"
msgup db "Правая"
code ends
stk segment stack
dw 128 dup(O)
stk ends
end main