X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=asminc%2Fmouse-kernel.inc;h=91d84e06e19e31f03753f153f91076d4dca13949;hb=8806c31e4a00785be628ea8cde35fa4c94cc2ab6;hp=5bac16818a0069417e4bb258d60c75c26ed8bb12;hpb=424e9fedc8ac16b62dec47d030a6cab74d8b88d5;p=cc65 diff --git a/asminc/mouse-kernel.inc b/asminc/mouse-kernel.inc index 5bac16818..91d84e06e 100644 --- a/asminc/mouse-kernel.inc +++ b/asminc/mouse-kernel.inc @@ -2,14 +2,14 @@ ;/* */ ;/* mouse-kernel.inc */ ;/* */ -;/* Mouse API */ +;/* Mouse API */ ;/* */ ;/* */ ;/* */ -;/* (C) 2003-2004 Ullrich von Bassewitz */ -;/* Römerstraße 52 */ -;/* D-70794 Filderstadt */ -;/* EMail: uz@cc65.org */ +;/* (C) 2003-2009, Ullrich von Bassewitz */ +;/* Roemerstrasse 52 */ +;/* D-70794 Filderstadt */ +;/* EMail: uz@cc65.org */ ;/* */ ;/* */ ;/* */ @@ -46,6 +46,8 @@ 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 ;------------------------------------------------------------------------------ @@ -59,7 +61,8 @@ UNINSTALL .addr HIDE .addr SHOW .addr - BOX .addr + SETBOX .addr + GETBOX .addr MOVE .addr BUTTONS .addr POS .addr @@ -67,6 +70,7 @@ IOCTL .addr IRQ .addr .endstruct + FLAGS .byte ; Mouse driver flags CALLBACKS .struct ; Jump instructions .byte ; JMP opcode CHIDE .addr ; Jump address @@ -92,7 +96,18 @@ ;------------------------------------------------------------------------------ ; The mouse API version, stored in MOUSE_HDR::VERSION -MOUSE_API_VERSION = $00 +MOUSE_API_VERSION = $02 + +;------------------------------------------------------------------------------ +; 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 @@ -113,6 +128,12 @@ MOUSE_BTN_RIGHT = $01 BUTTONS .byte .endstruct +.struct MOUSE_BOX + MINX .word + MINY .word + MAXX .word + MAXY .word +.endstruct ;------------------------------------------------------------------------------ ; Variables @@ -127,23 +148,28 @@ MOUSE_BTN_RIGHT = $01 .global _mouse_unload .global _mouse_install .global _mouse_uninstall + .global _mouse_geterrormsg .global _mouse_hide .global _mouse_show - .global _mouse_box + .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 +; Driver entry points (asm callable) .global mouse_install .global mouse_uninstall .global mouse_hide .global mouse_show - .global mouse_box + .global mouse_setbox + .global mouse_getbox .global mouse_move .global mouse_buttons .global mouse_pos