1 ; THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
\r
2 ; SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
\r
3 ; END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
\r
4 ; ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
\r
5 ; IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
\r
6 ; SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
\r
7 ; FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
\r
8 ; CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS
\r
9 ; AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
\r
10 ; COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
\r
11 ;***************************************************************************
\r
12 ;***************************************************************************
\r
14 ;***** M O U S E . A S M *****
\r
16 ;***** Contains routines for a mouse interface. *****
\r
19 ;***** PROCEDURES *****
\r
21 ;***** VARIABLES *****
\r
24 ;***** CONSTANTS *****
\r
27 ;***************************************************************************
\r
28 ;***************************************************************************
\r
32 ;************************************************************************
\r
33 ;**************** FLAT MODEL DATA SEGMENT STUFF *************************
\r
34 ;************************************************************************
\r
36 _DATA SEGMENT BYTE PUBLIC USE32 'DATA'
\r
38 rcsid db "$Id: mouse.asm,v 1.1.1.1 2001-01-19 03:30:14 bradleyb Exp $"
\r
40 MOUSE_EVENT STRUCT 2
\r
47 NumberOfButtons dw ?
\r
49 MyEvent MOUSE_EVENT < >
\r
59 ;************************************************************************
\r
60 ;**************** FLAT MODEL CODE SEGMENT STUFF *************************
\r
61 ;************************************************************************
\r
63 _TEXT SEGMENT BYTE PUBLIC USE32 'CODE'
\r
73 xor ax, ax ; Reset mouse
\r
75 mov NumberOfButtons, bx
\r
83 mov ax, 0020h ; Enable driver
\r
95 PUBLIC mouse_get_pos_
\r
106 mov ax, 03h ; Get Mouse Position and Button Status
\r
108 ; bx = buttons, cx = x, dx = y
\r
122 PUBLIC mouse_get_delta_
\r
134 mov eax, 0bh ; Read Mouse Motion Counters
\r
149 PUBLIC mouse_get_btns_
\r
157 mov ax, 03h ; Get Mouse Position and Button Status
\r
159 ; bx = buttons, cx = x, dx = y
\r
170 PUBLIC mouse_close_
\r
178 mov ax, 01fh ; Disable mouse driver
\r
197 mov MyEvent.MouseDX, cx
\r
198 mov MyEvent.MouseDY, dx
\r
199 mov MyEvent.MouseButtons, bx
\r
200 mov MyEvent.MouseFlags, ax
\r
202 mov eax, offset MyEvent
\r
204 call MyEventHandler
\r
211 PUBLIC mouse_set_handler_
\r
213 mouse_set_handler_:
\r
221 mov MyEventHandler, edx
\r
223 mov ecx, eax ; Event flags
\r
227 mov ax, 0Ch ; Set User-defined Mouse Event Handler
\r
238 PUBLIC mouse_clear_handler_
\r
240 mouse_clear_handler_:
\r
248 mov MyEventHandler, 0
\r
250 mov ecx, 0 ; Event flags
\r
254 mov ax, 0Ch ; Set User-defined Mouse Event Handler
\r
266 PUBLIC mouse_set_limits_
\r
275 push edx ; Save Vertical stuff
\r
291 ;extern void mouse_set_pos( short x, short y);
\r
294 PUBLIC mouse_set_pos_
\r