[Back to MOUSE SWAG index] [Back to Main SWAG index] [Original]

    {
    From: se1tc@dmu.ac.uk (TC)

    >> I use TP7 and  I am learning about graphics in pascal
    >> ?1 How can I change a mouse pointer ??
    >> ?2 How can I find a source code of pascal in FTP ??
    >
    > Do you have a mouse unit that implements Int 33h subfunction 9?
    > You pass it the segment and offset of an array[0..31] of word;
    >
    > Best TP-specific suggestion I have is to locate the Sept. '85
    > issue of BYTE magazine.  It has an article (p. 161) showing how to
    > program the mouse functions.
    >
    > As for creating new mouse cursors, I found a neat little utility
    > called IGME.ZIP.  It's a graphical mouse cursor editor that
    > allows you to set individual pixels in a mouse cursor, like a drawing
    > program. It lets you test your creation by setting the mouse cursor
    > to use the one you just designed!
    >
    > The best part is that it has the option to produce CODE of the new
    > cursor mask, that you can pull into your program as a CONSTant.
    > It produces C code, but 5 minutes work changing 0x's to $ signs
    > gives you the pascal code.
    >
    > I can't remember exactly where I found it, but I think it was one
    > of the following:
    > x2ftp.oulu.fi
    > garbo.uwasa.fi
    > oak.oakland.edu
    >

    Better still (well at least it's some code to get your
    teeth into!):
    }

    procedure ChangeMousePointer; assembler;
    asm
            mov     AX,09h
            mov     BX,seg @Point
            mov     ES,BX
            mov     BX,4
            mov     CX,2
            mov     DX,offset @Point
            int     33h
            jmp     @Exit
    @Point: db  255, 255, 255, 207 { screen mask, I think }
            db  255, 135, 255, 135
            db  159, 192,  15, 192
            db   15, 224,   7, 224
            db    7, 192,   7, 128
            db    7, 128,   7, 224
            db    7, 240,  15, 248
            db   15, 252,  15, 255

            db    0,   0,   0,   0 { Cursor mask }
            db    0,  48,   0,  48 { If it goes a bit funny }
            db    0,  24,  96,  27 { swap the two around    }
            db   96,  13, 176,  13
            db  240,   6, 240,  55
            db  240,  27, 240,  15
            db  240,   7, 224,   3
            db  224,   0,  96,   0
    @Exit:
    end;

[Back to MOUSE SWAG index] [Back to Main SWAG index] [Original]