]> git.sur5r.net Git - cc65/blobdiff - asminc/mouse-kernel.inc
Use "override" when appending to CFLAGS, so this works even when CFLAGS is
[cc65] / asminc / mouse-kernel.inc
index 5bac16818a0069417e4bb258d60c75c26ed8bb12..91d84e06e19e31f03753f153f91076d4dca13949 100644 (file)
@@ -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
 ;------------------------------------------------------------------------------
 ; 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