1
2; ===============================================================
3; Aug 2003
4; ===============================================================
5;
6; void in_mouse_amx_setpos(uint16_t x, uint16_t y)
7;
8; Set the mouse coordinate.
9;
10; ===============================================================
11
12SECTION code_clib
13SECTION code_input
14
15PUBLIC asm_in_mouse_amx_setpos
16
17EXTERN __input_amx_mouse_x, __input_amx_mouse_y
18
19asm_in_mouse_amx_setpos:
20
21   ; enter : de = x
22   ;         bc = y
23   ;
24   ; uses  : af, bc, de
25
26test_x:
27
28   inc d
29   dec d
30   jr z, test_y
31
32adjust_x:
33
34   ld de,$ff00
35
36test_y:
37
38   inc b
39   djnz adjust_y
40
41   ld a,c
42   cp 192
43   jr c, set_xy
44
45adjust_y:
46
47   ld bc,191*256
48
49set_xy:
50
51   ld (__input_amx_mouse_x),de   ; atomic
52   ld (__input_amx_mouse_y),bc   ; atomic
53
54   ret
55