annotate src/mouse.c @ 6:7f12c7d084d5
fixed a small error in palman
author |
John Tsiombikas <nuclear@member.fsf.org> |
date |
Mon, 21 Nov 2011 12:11:41 +0200 (2011-11-21) |
parents |
|
children |
00d84ab1ef26 |
rev |
line source |
nuclear@0
|
1 #include "mouse.h"
|
nuclear@0
|
2
|
nuclear@0
|
3 #define INTR 0x33
|
nuclear@0
|
4
|
nuclear@0
|
5 #define QUERY 0
|
nuclear@0
|
6 #define SHOW 1
|
nuclear@0
|
7 #define HIDE 2
|
nuclear@0
|
8 #define READ 3
|
nuclear@0
|
9 #define WRITE 4
|
nuclear@0
|
10
|
nuclear@0
|
11 #define XLIM 7
|
nuclear@0
|
12 #define YLIM 8
|
nuclear@0
|
13
|
nuclear@0
|
14 int have_mouse(void)
|
nuclear@0
|
15 {
|
nuclear@0
|
16 int res;
|
nuclear@0
|
17 asm {
|
nuclear@0
|
18 mov ax, QUERY
|
nuclear@0
|
19 int INTR
|
nuclear@0
|
20 mov res, ax
|
nuclear@0
|
21 }
|
nuclear@0
|
22 return res;
|
nuclear@0
|
23 }
|
nuclear@0
|
24
|
nuclear@0
|
25 void show_mouse(int show)
|
nuclear@0
|
26 {
|
nuclear@0
|
27 int cmd = show ? SHOW : HIDE;
|
nuclear@0
|
28 asm {
|
nuclear@0
|
29 mov ax, cmd
|
nuclear@0
|
30 int INTR
|
nuclear@0
|
31 }
|
nuclear@0
|
32 }
|
nuclear@0
|
33
|
nuclear@0
|
34 int read_mouse(int *xp, int *yp)
|
nuclear@0
|
35 {
|
nuclear@0
|
36 int x, y, bn;
|
nuclear@0
|
37
|
nuclear@0
|
38 asm {
|
nuclear@0
|
39 mov ax, READ
|
nuclear@0
|
40 int INTR
|
nuclear@0
|
41 mov bn, bx
|
nuclear@0
|
42 mov x, cx
|
nuclear@0
|
43 mov y, dx
|
nuclear@0
|
44 /* XXX some sort of div by 8 in the original code ? */
|
nuclear@0
|
45 }
|
nuclear@0
|
46
|
nuclear@0
|
47 if(xp) *xp = x;
|
nuclear@0
|
48 if(yp) *yp = y;
|
nuclear@0
|
49 return bn;
|
nuclear@0
|
50 }
|
nuclear@0
|
51
|
nuclear@0
|
52 void set_mouse(int x, int y)
|
nuclear@0
|
53 {
|
nuclear@0
|
54 asm {
|
nuclear@0
|
55 mov ax, WRITE
|
nuclear@0
|
56 mov cx, x
|
nuclear@0
|
57 mov dx, y
|
nuclear@0
|
58 int INTR
|
nuclear@0
|
59 }
|
nuclear@0
|
60 }
|
nuclear@0
|
61
|
nuclear@0
|
62 void set_mouse_limits(int xmin, int ymin, int xmax, int ymax)
|
nuclear@0
|
63 {
|
nuclear@0
|
64 asm {
|
nuclear@0
|
65 mov ax, XLIM
|
nuclear@0
|
66 mov cx, xmin
|
nuclear@0
|
67 mov dx, xmax
|
nuclear@0
|
68 int INTR
|
nuclear@0
|
69 mov ax, YLIM
|
nuclear@0
|
70 mov cx, ymin
|
nuclear@0
|
71 mov dx, ymax
|
nuclear@0
|
72 int INTR
|
nuclear@0
|
73 }
|
nuclear@0
|
74 }
|