/* 

    Busy Maustreiber for a2410 !

    name   : mouse.c
    path   : daten:c_src/a2410
    author : jürgen schober
    date   : 18.10.1994
    last changed : 19.10.1994

*/

#include <stdio.h>
#include <stdlib.h>
#include <exec/types.h>
#include <exec/memory.h>
#include <intuition/intuitionbase.h>

#include <pragmas/exec_pragmas.h>
#include <pragmas/graphics_pragmas.h>
#include <pragmas/intuition_pragmas.h>

#include <a2410/devtiga.h>
#include <a2410/typedefs.h>
#include "gfx_pragmas.h"
#include "graphics.h"

struct Library *GfxBase=NULL,*GraphicsBase=NULL;
struct IntuitionBase *IntuitionBase=NULL;

/* own Prototypes */

void CloseTiga(void);

void main(int argc, char **argv)
{
    int x,y;
    int i;
    struct ColorMap *cm;
    UWORD *colortable;

    onbreak(CloseTiga);

	if (!(GfxBase=(struct Library *)OpenLibrary("graphics.library",0))) CloseTiga();
 	if (!(IntuitionBase=(struct IntuitionBase *)OpenLibrary("intuition.library",0)))  CloseTiga();
    if (!(GraphicsBase=(struct Library *)OpenLibrary("gfx.library",0l))) CloseTiga();

    cm = IntuitionBase->ActiveScreen->ViewPort.ColorMap;

    colortable = (UWORD *)cm->ColorTable;
    for (i=0;i<cm->Count;i++)
        GfxSetRGB4(NULL,i,((colortable[i] & 0x0f00)>>8),((colortable[i] & 0x00f0)>>4),(colortable[i] & 0x000f));

    GfxPointerXY(NULL,IntuitionBase->ActiveScreen->MouseX,IntuitionBase->ActiveScreen->MouseY);

    for (;;)
    {
        chkabort();
        x=IntuitionBase->ActiveScreen->MouseX;
        y=IntuitionBase->ActiveScreen->MouseY;
        GfxPointerXY(NULL,x,y);
    }
}/*main*/

void CloseTiga(void)
{
    if (GfxBase)        CloseLibrary(GfxBase);
    if (IntuitionBase)  CloseLibrary((struct Library*)IntuitionBase);
    if (GraphicsBase)   CloseLibrary(GraphicsBase);
    exit(0); 
}

