(This tutorial was originally written in 2004 and featured in http://asm.inightmare.org/)
In this tutorial I’ll cover mouse usage in DOS applications. If you want to test the program in real DOS mode (without windows running) you’ll need CuteMouse drivers that can be downloaded here.
mov ax,0 int 33h ; mouse interrupt ; (if AX=FFFFh mouse is installed, if 0000 not, DX - number of mouse buttons) cmp ax,0 ja pmouse ; if AX > 0 lets start! mov ah,4ch int 21h ;else just exit pmouse: mov ax,03 ; function to get mouse position and buttons int 33h mov ax,dx ; Y coord to AX mov dx,320 mul dx ; multiply AX by 320 add ax,cx ; add X coord ; (Now currsor position is in AX, lets draw the pixel there) mov di,ax mov ax,0A000h mov es,ax mov dl,12 ; red color ;) mov es:[di],dl ; and we have the pixel drawn
By default mouse resolution is 640x200, lets set it to 320x200 (monitor height is already set, lets just set the width)
mov ax, 7 mov cx,0 ; min pos mov dx,320 ; max pos int 33h
And height can be set:
mov ax, 8 mov cx,0 mov dx,200 int 33h
The source for this tutorial can be found here.