/* Mouse Control Functions    * 
 * for Commander X16 Computer */
 
/* Mouse Mode constants for mcnfg() */
#define MHIDE $00 //Hide Mouse
#define MSHOW $01 //Show Mouse - Default Cursor
#define MCSTM $FF //Show Mouse - Custom Cursor

/* Mouse Button bitmasks for mouseb *
 * 0 means button not supported     */
#define MBLEFT $01  //Left Mouse Button
#define MBMIDL $03  //Middle Mouse Button
#define MBRGHT $02  //Right Mouse Button

/* Mouse Scale Factor constants for mcnfgs() */
#define MSNONE  $00 //Do Not Change Resolution
#define MSLOW   $01 //Low Resolution (320x240)
#define MSHIGH  $02 //High Resolution (640x480)

/* Mouse Status Variables *
 * Set by mread()         */
int  mousex;  //Mouse X Position
int  mousey;  //Mouse Y Position
char mouseb;  //Mouse Button Status

/* Configure Mouse                  *
 * Args: char mode - Mouse Mode     *
 *          #MHIDE - Hide Mouse     *
 *          #MSHOW - Show Mouse     *
 *          #MCSTM - Show (Custom)  *
 * Returns: $00 - Success           *
 *          $FF - Mouse Not Present */
char mcnfg();

/* Configure Mouse and Select Scale *
 * Args: char mode - Mouse Mode     *
 *          #MHIDE - Hide Mouse     *
 *          #MSHOW - Show Mouse     *
 *          #MCSTM - Show (Custom)  *
 *        char scale - Scale Factor *
 *          #MSNONE - No Change     *
 *          #MSLOW  - 320x200       *
 *          #MSHIGH - 640x480       *
 * Returns: $00 - Success           *
 *          $FF - Mouse Not Present */
char mcnfgs();

/* Read Mouse                       *
 * Sets: mousex, mousey, mouseb     *
 * Returns: $00 - Success           *
 *          $FF - Mouse Not Present */
char mread();

/* Scan Mouse                        *
 * Retrieves mouse state for mread() *
 * Does not need to be called unless *
 * the entire default interrupt      *
 * routine is replaced.              */
char mscan();
