From 3caa71b08120d55f0698d75af522d7fc627b8c2c Mon Sep 17 00:00:00 2001 From: Elisha Hollander Date: Fri, 20 Mar 2026 08:12:22 +0200 Subject: [PATCH] port 60h is consuming --- src/keyb.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/keyb.c b/src/keyb.c index f585c63..77abec0 100644 --- a/src/keyb.c +++ b/src/keyb.c @@ -500,11 +500,17 @@ static uint8_t keyb_command = 0; // Handle keyboard controller port reading uint8_t keyb_read_port(unsigned port) { + static uint8_t last_key = 0; if(queued_key == -1) kbhit(); debug(debug_int, "keyboard read_port: %02X (key=%04X)\n", port, 0xFFFFU & queued_key); if(port == 0x60) - return queued_key >> 8; + { + if(queued_key != -1) + last_key = queued_key >> 8; + queued_key = -1; + return last_key; + } else if(port == 0x61) return portB_ctl; // Controller B, used for speaker output else if(port == 0x64)