From: Mark Cave-Ayland Date: Wed, 4 Oct 2023 08:38:02 +0000 (+0100) Subject: mac_via: implement ADB_STATE_IDLE state if shift register in input mode X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=7ebfb91d8f07447dc6cd30fba0119dc07c9cd3ba;p=qmiga%2Fqemu.git mac_via: implement ADB_STATE_IDLE state if shift register in input mode NetBSD switches directly to IDLE state without switching the shift register to input mode. Duplicate the existing ADB_STATE_IDLE logic in input mode from when the shift register is in output mode which allows the ADB autopoll handler to handle the response. Signed-off-by: Mark Cave-Ayland Reviewed-by: Laurent Vivier Message-ID: <20231004083806.757242-17-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- diff --git a/hw/misc/mac_via.c b/hw/misc/mac_via.c index 9f9c2815d0..3c41d6263d 100644 --- a/hw/misc/mac_via.c +++ b/hw/misc/mac_via.c @@ -702,6 +702,12 @@ static void adb_via_send(MOS6522Q800VIA1State *v1s, int state, uint8_t data) break; case ADB_STATE_IDLE: + ms->b |= VIA1B_vADBInt; + adb_autopoll_unblock(adb_bus); + + trace_via1_adb_send("IDLE", data, + (ms->b & VIA1B_vADBInt) ? "+" : "-"); + return; }