This repository was archived by the owner on Oct 11, 2022. It is now read-only.
forked from nickelsworth/swag
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path0002.pas
More file actions
37 lines (31 loc) · 1.24 KB
/
Copy path0002.pas
File metadata and controls
37 lines (31 loc) · 1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{
>Hey Programmers,
> I'm trying to change the way my mouse cursor looks in one of my
>Programs from the standard block to an arrow. I looked up the inFormation
>in my interrupt list and found that I need to use Interrupt 33h (Big
>surprise) With AX = 0009h. I'm ok up to this point, but the inFormation
>lost me when is says that ES:DX->bitmap With 16 Words screen mask and 16
>Words cursor mask. Now I know what it means and have already defined the
>code For my curse, but how do I assign ES:DX to its value? (Source example
>below). Any help would be great and please E-MAIL it to me. Thanks
}
Const
ArrowCursor: Array [0..31] of Word = (
$3fff,$1fff,$fff,$7ff,$3ff,$1ff,$ff,$7f,
$3f,$1f,$f,$7,$1847,$387f,$fc3f,$fe7f,
$0,$4000,$6000,$7000,$7800,$7c00,$7e00,$7f00,
$7f80,$7fc0,$7fe0,$6730,$4300,$300,$180,$0);
HotSpotX : Word = 1;
HotSpotY : Word = 0;
Procedure ArrowMouse;
Var regs : Registers;
begin
Regs.AX := $000A;
Regs.BX := HotSpotX;
Regs.CX := HotSpotY;
{ ES:DX -> bitmap 16 Words screen mask 16 Words cusor mask }
Regs.ES := Seg(ArrowCursor); { Answer :) }
Regs.DX := ofs(ArrorCursor); { Answer :) }
intr($33,Regs);
end;