-unsigned char __fastcall__ mouse_init (unsigned char port,
- unsigned char sprite,
- unsigned char type);
-/* Setup the mouse interrupt handler. If the sprite value is != zero, the
- * mouse routines will manage the sprite with this number. That means, it
- * is moved if the mouse is moved (provided that the mouse cursor is visible),
- * and switched on and off in the show and hide functions.
- * The port parameter gives the joystick port used for the mouse and is only
- * needed to read the mouse button state.
- * The type parameter is needed on some systems to determine the type of
- * the mouse connected to the given port.
- * After calling this function, the mouse is invisble, the cursor is placed
- * at 0/0 (upper left corner), and the bounding box is reset to cover the
- * whole screen. Call mouse_show once to make the mouse cursor visible.
- * The function will return zero if a mouse was not found and a non zero
- * value if the mouse was found and initialized (or if there is no way to
- * detect a mouse reliably).
- */
-
-void __fastcall__ mouse_done (void);
-/* Disable the mouse, remove the interrupt handler. This function MUST be
- * called before terminating the program, otherwise odd things may happen.
- * If in doubt, install an exit handler (using atexit) that calls this
- * function.
- */
-
-void __fastcall__ mouse_hide (void);
-/* Hide the mouse. This function doesn't do anything visible if no sprite is
- * used. The function manages a counter and may be called more than once.
- * For each call to mouse_hide there must be a call to mouse_show to make
- * the mouse visible again.
- */
-
-void __fastcall__ mouse_show (void);
-/* Show the mouse. This function doesn't do anything visible if no sprite is
- * used. See mouse_hide for more information.
- */
-
-void __fastcall__ mouse_box (int minx, int miny, int maxx, int maxy);
+/* The default mouse callbacks */
+extern const struct mouse_callbacks mouse_def_callbacks;
+
+#if defined(__CBM__)
+
+/* The default mouse pointer shape used by the default mouse callbacks */
+extern const unsigned char mouse_def_pointershape[63];
+
+/* The default mouse pointer color used by the default mouse callbacks */
+extern const unsigned char mouse_def_pointercolor;
+
+#endif
+
+/* The name of the standard mouse driver for a platform */
+extern const char mouse_stddrv[];
+
+/* The address of the static standard mouse driver for a platform */
+extern const void mouse_static_stddrv[];
+
+
+
+/*****************************************************************************/
+/* Functions */
+/*****************************************************************************/
+
+
+
+unsigned char __fastcall__ mouse_load_driver (const struct mouse_callbacks* c,
+ const char* driver);
+/* Load and install a mouse driver, return an error code. */
+
+unsigned char mouse_unload (void);
+/* Uninstall, then unload the currently loaded driver. */
+
+unsigned char __fastcall__ mouse_install (const struct mouse_callbacks* c,
+ void* driver);
+/* Install an already loaded driver. Return an error code. */
+
+unsigned char mouse_uninstall (void);
+/* Uninstall the currently loaded driver. Return an error code. */
+
+const char* __fastcall__ mouse_geterrormsg (unsigned char code);
+/* Get an error message describing the error in code. */
+
+void mouse_hide (void);
+/* Hide the mouse. The function manages a counter and may be called more than
+** once. For each call to mouse_hide there must be a call to mouse_show to make
+** the mouse visible again.
+*/
+
+void mouse_show (void);
+/* Show the mouse. See mouse_hide() for more information. */
+
+void __fastcall__ mouse_setbox (const struct mouse_box* box);