Rewrite of AT keyboard controller polling.

This commit is contained in:
OBattler
2020-08-04 04:01:54 +02:00
parent 4fe66cdd38
commit 949e145be3
4 changed files with 172 additions and 91 deletions

View File

@@ -190,7 +190,7 @@ ps2_write(uint8_t val, void *priv)
case 0xff: /* reset */
dev->mode = MODE_STREAM;
dev->flags &= 0x88;
mouse_queue_start = mouse_queue_end = 0;
keyboard_at_mouse_reset();
keyboard_at_adddata_mouse(0xfa);
keyboard_at_adddata_mouse(0xaa);
keyboard_at_adddata_mouse(0x00);
@@ -236,7 +236,7 @@ ps2_poll(int x, int y, int z, int b, void *priv)
dev->y -= y;
dev->z -= z;
if ((dev->mode == MODE_STREAM) && (dev->flags & FLAG_ENABLED) &&
(((mouse_queue_end - mouse_queue_start) & 0x0f) < 13)) {
(keyboard_at_mouse_pos() < 13)) {
dev->b = b;
if (dev->x > 255) dev->x = 255;