Wheel support in DOS real-mode mouse drivers API version 1.0 Summary: This document describes an extension for the commonly used INT 33h Mouse API to add wheel (Z axis) support. This draft introduces extra functions and additions to the standard INT 33 API. These new and changed functions are mentioned in the technote.txt as the WheelAPI. --------------------------------------------------------------------- New functions: INT 33/0011 - Check wheel support and get capabilities flags AX = 003Fh Return: AX = 574Dh ('WM' in assembly) if Wheel API is supported by driver BX = Capabilities flag (all bits reserved) CX = Capabilities flag Bit(s) Description ------ ----------- 0 Pointing device supports wheel 1-15 Reserved Note: this function should be called before accessing other wheel features --------------------------------------------------------------------- Changes in the original INT 33h functions: INT 33/0000 - Reset driver and read status Note: this call clears the wheel movement counter INT 33/0003 - Get cursor position, buttons status and wheel counter AX = 0003h Return: BL = buttons status BH = 8-bit signed counter of wheel movement since last call CX = column DX = row Notes: returned wheel counter contains all wheel movements accumulated since the last call to INT 33/AX=0003h, INT 33/AX=0005h/BX=-1 or INT 33/AX=0006h/BX=-1 positive value of wheel counter means downward wheel movement this call clears the wheel movement counter INT 33/0005 - Get button press or wheel movement data AX = 0005h BX = button number or -1 for wheel Return: AL = buttons states AH = 8-bit signed counter of wheel movement ---button info--- BX = number of times specified button has been pressed since last call CX = column where specified button was last pressed DX = row where specified button was last pressed ---wheel info--- BX = 16-bit signed counter of wheel movement since last call CX = column where wheel was last moved DX = row where wheel was last moved Notes: returned wheel counters contains all wheel movements accumulated since the last call to INT 33/AX=0003h, INT 33/AX=0005h/BX=-1 or INT 33/AX=0006h/BX=-1 positive value of wheel counter means downward wheel movement this call clears the wheel movement counter for BX=-1 INT 33/0006 - Get button release or wheel movement data AX = 0006h BX = button number or -1 for wheel Return: AL = buttons states AH = 8-bit signed counter of wheel movement ---button info--- BX = number of times specified button has been released since last call CX = column where specified button was last released DX = row where specified button was last released ---wheel info--- BX = 16-bit signed counter of wheel movement since last call CX = column where wheel was last moved DX = row where wheel was last moved Notes: returned wheel counters contains all wheel movements accumulated since the last call to INT 33/AX=0003h, INT 33/AX=0005h/BX=-1 or INT 33/AX=0006h/BX=-1 positive value of wheel counter means downward wheel movement this call clears the wheel movement counter for BX=-1 INT 33/000C - Define User Interrupt Routine INT 33/0014 - Exchange User Interrupt Routines Notes: on entry, bit 7 of CX (call mask) indicates that the user routine will be called on a wheel movement the user routine will be called with BH holding the 8-bit signed counter of wheel movement since the last call of the routine INT 33/0021 - Software reset Note: this call clears the wheel movement counter