+;/*****************************************************************************/
+;/* */
+;/* mouse-kernel.inc */
+;/* */
+;/* Mouse API */
+;/* */
+;/* */
+;/* */
+;/* (C) 2003 Ullrich von Bassewitz */
+;/* Römerstraße 52 */
+;/* D-70794 Filderstadt */
+;/* EMail: uz@cc65.org */
+;/* */
+;/* */
+;/* */
+;/* */
+;/* This software is provided 'as-is', without any expressed or implied */
+;/* warranty. In no event will the authors be held liable for any damages */
+;/* arising from the use of this software. */
+;/* */
+;/* Permission is granted to anyone to use this software for any purpose, */
+;/* including commercial applications, and to alter it and redistribute it */
+;/* freely, subject to the following restrictions: */
+;/* */
+;/* 1. The origin of this software must not be misrepresented; you must not */
+;/* claim that you wrote the original software. If you use this software */
+;/* in a product, an acknowledgment in the product documentation would be */
+;/* appreciated but is not required. */
+;/* 2. Altered source versions must be plainly marked as such, and must not */
+;/* be misrepresented as being the original software. */
+;/* 3. This notice may not be removed or altered from any source */
+;/* distribution. */
+;/* */
+;/*****************************************************************************/
+
+
+
+
+;------------------------------------------------------------------------------
+; Error codes
+
+.enum
+ MOUSE_ERR_OK ; No error
+ MOUSE_ERR_NO_DRIVER ; No driver available
+ MOUSE_ERR_CANNOT_LOAD ; Error loading driver
+ MOUSE_ERR_INV_DRIVER ; Invalid driver
+ MOUSE_ERR_NO_DEVICE ; Mouse hardware not found
+.endenum
+
+;------------------------------------------------------------------------------
+; The driver header
+
+.struct MOUSE_HDR
+ ID .byte 3 ; Contains 0x6D, 0x6F, 0x75 ("mou")
+ VERSION .byte 1 ; Interface version
+ JUMPTAB .struct
+ INSTALL .addr
+ UNINSTALL .addr
+ HIDE .addr
+ SHOW .addr
+ BOX .addr
+ MOVE .addr
+ BUTTONS .addr
+ POS .addr
+ INFO .addr
+ .endstruct
+.endstruct
+
+;------------------------------------------------------------------------------
+; The mouse API version, stored in MOUSE_HDR::VERSION
+
+MOUSE_API_VERSION = $00
+
+;------------------------------------------------------------------------------
+; Mouse button definitions
+
+MOUSE_BTN_LEFT = $10
+MOUSE_BTN_RIGHT = $01
+
+;------------------------------------------------------------------------------
+; Structures used to return data from the mouse driver
+
+.struct MOUSE_POS
+ XCOORD .word
+ YCOORD .word
+.endstruct
+
+.struct MOUSE_INFO
+ POS .tag MOUSE_POS
+ BUTTONS .byte
+.endstruct
+
+
+;------------------------------------------------------------------------------
+; Variables
+
+ .global _mouse_drv ; Pointer to driver
+
+;------------------------------------------------------------------------------
+; C callable functions
+
+ .global _mouse_set_callbacks
+ .global _mouse_load_driver
+ .global _mouse_unload
+ .global _mouse_install
+ .global _mouse_uninstall
+ .global _mouse_hide
+ .global _mouse_show
+ .global _mouse_box
+ .global _mouse_move
+ .global _mouse_buttons
+ .global _mouse_pos
+ .global _mouse_info
+
+;------------------------------------------------------------------------------
+; Driver entry points
+
+ .global mouse_install
+ .global mouse_uninstall
+ .global mouse_hide
+ .global mouse_show
+ .global mouse_box
+ .global mouse_move
+ .global mouse_buttons
+ .global mouse_pos
+ .global mouse_info
+
+