[net.micro.amiga] SetMouse2

kodiak@amiga.UUCP (Robert [Kodiak] R. Burns) (04/09/86)

/*********************************************************************/
/*                                                                   */
/*  ProgramName:   SetMouse                                          */
/*                                                                   */
/*  Purpose:       To indicate that the mouse is connected to a      */
/*                 specific game port                                */
/*                                                                   */
/*  Programmer:    Kodiak, Commodore-Amiga Inc.                      */
/*                                                                   */
/*  PlagiarPolicy: You got it, use it however you want.              */
/*                                                                   */
/*********************************************************************/

#include "exec/types.h"
#include "exec/nodes.h"
#include "exec/lists.h"
#include "exec/ports.h"
#include "exec/io.h"

#include "devices/input.h"

struct IOStdReq ior;
struct MsgPort  iorp;

main(argc, argv)
int argc;
char *argv[];
{
    UBYTE port;

    /**/
    /* this is not intended to be a tutorial about how to get arguments
    /* from either the CLI or workbench, so I'll just hard code this to
    /* set the mouse port to port '2' (the right mouse port).  Assign
    /* the value port = 0; to set port '1' (the left mouse port).
    /**/
    port = 1;

    /* Open the input device */
    if (OpenDevice("input.device", 0, &ior, 0) != 0)
    {
	exit(20);
    }

    /* set up the message port in the I/O request */
    iorp.mp_Node.ln_Type = NT_MSGPORT;
    iorp.mp_Flags = 0;
    if ((iorp.mp_SigBit = AllocSignal(-1)) < 0) {
	CloseDevice(&ior);
	exit(20);
    }
    iorp.mp_SigTask = (struct Task *) FindTask((char *) NULL);
    NewList(&iorp.mp_MsgList);
    ior.io_Message.mn_ReplyPort = &iorp;

    /* initiate the I/O request to change the mouse port */
    ior.io_Command = IND_SETMPORT;
    ior.io_Data = &port;
    ior.io_Length = 1;
    DoIO(&ior);

    /* clean up */
    CloseDevice(&ior);
    FreeSignal(iorp.mp_SigBit);
}