aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2006-09-12 20:50:31 -0700
committerH. Peter Anvin <hpa@zytor.com>2006-09-12 20:50:31 -0700
commit945c3ef306e89e08798e99fe800406bf89d16ab8 (patch)
tree998d329f55f67eb34a3ec60c1fd20f3f138c5422
parentf12313f310db53a9d85df09acb0ca045849d2205 (diff)
downloadsyslinux-945c3ef306e89e08798e99fe800406bf89d16ab8.tar.gz
syslinux-945c3ef306e89e08798e99fe800406bf89d16ab8.tar.xz
syslinux-945c3ef306e89e08798e99fe800406bf89d16ab8.zip
com32/ansicon: actually mode the cursor...
-rw-r--r--com32/lib/sys/ansicon_write.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/com32/lib/sys/ansicon_write.c b/com32/lib/sys/ansicon_write.c
index 43b7c18b..1fab2ac1 100644
--- a/com32/lib/sys/ansicon_write.c
+++ b/com32/lib/sys/ansicon_write.c
@@ -99,11 +99,13 @@ int __ansicon_open(struct file_info *fp)
ireg.eax.w[0] = 0x0005;
__intcall(0x22, &ireg, NULL);
- /* Get cursor shape */
+ /* Get cursor shape and position */
ireg.eax.b[1] = 0x03;
ireg.ebx.b[1] = BIOS_PAGE;
__intcall(0x10, &ireg, &oreg);
cursor_type = oreg.ecx.w[0];
+ ti.ts->xy.x = oreg.edx.b[0];
+ ti.ts->xy.y = oreg.edx.b[1];
}
}
@@ -183,8 +185,8 @@ static void ansicon_set_cursor(int x, int y, int visible)
if (xy.x != x || xy.y != y) {
ireg.eax.b[1] = 0x02;
ireg.ebx.b[1] = page;
- ireg.edx.b[1] = xy.y;
- ireg.edx.b[0] = xy.x;
+ ireg.edx.b[1] = y;
+ ireg.edx.b[0] = x;
__intcall(0x10, &ireg, NULL);
}
}