Add cc65 artifacts to repo for now
Some checks failed
Cargo Build & Test / Rust project - latest (stable) (push) Failing after 38s
Some checks failed
Cargo Build & Test / Rust project - latest (stable) (push) Failing after 38s
This commit is contained in:
184
cc65/asminc/mouse-kernel.inc
Normal file
184
cc65/asminc/mouse-kernel.inc
Normal file
@@ -0,0 +1,184 @@
|
||||
;/*****************************************************************************/
|
||||
;/* */
|
||||
;/* mouse-kernel.inc */
|
||||
;/* */
|
||||
;/* Mouse API */
|
||||
;/* */
|
||||
;/* */
|
||||
;/* */
|
||||
;/* (C) 2003-2009, Ullrich von Bassewitz */
|
||||
;/* Roemerstrasse 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
|
||||
MOUSE_ERR_INV_IOCTL ; Invalid ioctl code
|
||||
|
||||
MOUSE_ERR_COUNT ; Special: Number of error codes
|
||||
.endenum
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; The driver header
|
||||
|
||||
.struct MOUSE_HDR
|
||||
ID .byte 3 ; Contains 0x6D, 0x6F, 0x75 ("mou")
|
||||
VERSION .byte 1 ; Interface version
|
||||
LIBREF .addr ; Library reference
|
||||
JUMPTAB .struct
|
||||
INSTALL .addr
|
||||
UNINSTALL .addr
|
||||
HIDE .addr
|
||||
SHOW .addr
|
||||
SETBOX .addr
|
||||
GETBOX .addr
|
||||
MOVE .addr
|
||||
BUTTONS .addr
|
||||
POS .addr
|
||||
INFO .addr
|
||||
IOCTL .addr
|
||||
IRQ .addr
|
||||
.endstruct
|
||||
FLAGS .byte ; Mouse driver flags
|
||||
CALLBACKS .struct ; Jump instructions
|
||||
.byte ; JMP opcode
|
||||
CHIDE .addr ; Jump address
|
||||
.byte
|
||||
CSHOW .addr
|
||||
.byte
|
||||
CPREP .addr
|
||||
.byte
|
||||
CDRAW .addr
|
||||
.byte
|
||||
CMOVEX .addr
|
||||
.byte
|
||||
CMOVEY .addr
|
||||
.endstruct
|
||||
.endstruct
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; The mouse callback structure
|
||||
|
||||
.struct MOUSE_CALLBACKS
|
||||
HIDE .addr ; Hide the mouse cursor
|
||||
SHOW .addr ; Show the mouse cursor
|
||||
PREP .addr ; Prepare to move the mouse cursor
|
||||
DRAW .addr ; Draw the mouse cursor
|
||||
MOVEX .addr ; Move the mouse cursor to X coord
|
||||
MOVEY .addr ; Move the mouse cursor to Y coord
|
||||
.endstruct
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; The mouse API version, stored in MOUSE_HDR::VERSION
|
||||
|
||||
MOUSE_API_VERSION = $06
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Bitmapped mouse driver flags, stored in MOUSE_HDR::FLAGS.
|
||||
; Note: If neither of MOUSE_FLAG_XXX_IRQ is set, no interrupts are supplied
|
||||
; to the driver. If one of the bits is set, the interrupt vector MUST be
|
||||
; valid.
|
||||
; Beware: Some of the bits are tested using the BIT instruction, so do not
|
||||
; change the values without checking the code!
|
||||
|
||||
MOUSE_FLAG_EARLY_IRQ = $40 ; Enable IRQ *before* calling INSTALL
|
||||
MOUSE_FLAG_LATE_IRQ = $80 ; Enable IRQ *after* calling INSTALL
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; 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
|
||||
|
||||
.struct MOUSE_BOX
|
||||
MINX .word
|
||||
MINY .word
|
||||
MAXX .word
|
||||
MAXY .word
|
||||
.endstruct
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Variables
|
||||
|
||||
.global _mouse_drv ; Pointer to driver
|
||||
.global _mouse_hidden ; Counter, 0 = mouse is visible
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; C callable functions
|
||||
|
||||
.global _mouse_load_driver
|
||||
.global _mouse_unload
|
||||
.global _mouse_install
|
||||
.global _mouse_uninstall
|
||||
.global _mouse_geterrormsg
|
||||
.global _mouse_hide
|
||||
.global _mouse_show
|
||||
.global _mouse_setbox
|
||||
.global _mouse_getbox
|
||||
.global _mouse_move
|
||||
.global _mouse_buttons
|
||||
.global _mouse_pos
|
||||
.global _mouse_info
|
||||
.global _mouse_ioctl
|
||||
|
||||
.global _mouse_clear_ptr
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Driver entry points (asm callable)
|
||||
|
||||
.global mouse_install
|
||||
.global mouse_uninstall
|
||||
.global mouse_hide
|
||||
.global mouse_show
|
||||
.global mouse_setbox
|
||||
.global mouse_getbox
|
||||
.global mouse_move
|
||||
.global mouse_buttons
|
||||
.global mouse_pos
|
||||
.global mouse_info
|
||||
.global mouse_ioctl
|
||||
Reference in New Issue
Block a user