aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier <dev.git@javispedro.com>2024-07-07 20:32:40 +0200
committerJavier <dev.git@javispedro.com>2024-07-07 20:32:40 +0200
commitf4e51d0e9e21a6938e29b4af78f1dcca7f85e925 (patch)
tree5a29d34b074e3b4614b1ac7715bc4f7026e81dd4
parent0af940aae4938289e7a4a11354ef9a6db4ee5140 (diff)
downloadvbados-f4e51d0e9e21a6938e29b4af78f1dcca7f85e925.tar.gz
vbados-f4e51d0e9e21a6938e29b4af78f1dcca7f85e925.zip
mouse: start with cursor centered on screen as per spec
-rw-r--r--int33.h19
-rw-r--r--mousetsr.c4
2 files changed, 21 insertions, 2 deletions
diff --git a/int33.h b/int33.h
index 2755379..2c34a6d 100644
--- a/int33.h
+++ b/int33.h
@@ -265,6 +265,13 @@ static void int33_set_mouse_speed(int16_t x, int16_t y);
__parm [cx] [dx] \
__modify [ax]
+static void int33_set_speed_double_threshold(uint16_t th);
+#pragma aux int33_set_speed_double_threshold = \
+ "mov ax, 0x13" \
+ "int 0x33" \
+ __parm [dx] \
+ __modify [ax]
+
static uint16_t int33_get_mouse_status_size(void);
#pragma aux int33_get_mouse_status_size = \
"mov bx, 0" \
@@ -294,6 +301,18 @@ static void int33_set_sensitivity(uint16_t sens_x, uint16_t sens_y, uint16_t dou
__parm [bx] [cx] [dx] \
__modify [ax]
+static void int33_get_sensitivity(uint16_t *sens_x, uint16_t *sens_y, uint16_t *double_speed_threshold);
+#pragma aux int33_get_sensitivity = \
+ "push dx" \
+ "mov ax, 0x1B" \
+ "int 0x33" \
+ "mov [si], bx" \
+ "mov [di], cx" \
+ "pop bx" \
+ "mov [bx], dx" \
+ __parm [si] [di] [dx] \
+ __modify [ax]
+
static uint16_t int33_get_driver_version(void);
#pragma aux int33_get_driver_version = \
"mov bx, 0" \
diff --git a/mousetsr.c b/mousetsr.c
index c4a4c55..cac1808 100644
--- a/mousetsr.c
+++ b/mousetsr.c
@@ -1126,8 +1126,8 @@ static void reset_mouse_settings()
static void reset_mouse_state()
{
int i;
- data.pos.x = data.min.x;
- data.pos.y = data.min.y;
+ data.pos.x = data.min.x + (data.max.x - data.min.x) / 2;
+ data.pos.y = data.min.y + (data.max.y - data.min.y) / 2;
data.pos_frac.x = 0;
data.pos_frac.y = 0;
data.delta.x = 0;