From 5e7b2a33bb6b67df6900e2c850270ae86e08d77c Mon Sep 17 00:00:00 2001 From: Zane Kaminski Date: Sat, 22 May 2021 17:38:23 -0400 Subject: [PATCH] Repeated key press / USB Wombat fix --- rdisk.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/rdisk.c b/rdisk.c index 243b0f4..7c0cca8 100644 --- a/rdisk.c +++ b/rdisk.c @@ -15,11 +15,18 @@ static void RDDecodeSettings(Ptr unmountEN, Ptr mountEN, Ptr ramEN, Ptr dbgEN, P RDiskReadXPRAM(1, 4, &legacy_startup); RDiskReadXPRAM(1, 5, &legacy_ram); + // Sample R and A keys repeatedly + char r = 0, a = 0; + for (long i = 0; i < 100000; i++) { + r = r | RDiskIsRPressed(); + a = a | RDiskIsAPressed(); + } + // Decode settings: unmount (don't boot), mount (after boot), RAM disk - if (RDiskIsRPressed()) { // R boots from ROM disk + if (r) { // R boots from ROM disk *unmountEN = 0; // Don't unmount so we boot from this drive *mountEN = 0; // No need to mount later since we are boot disk - *ramEN = RDiskIsAPressed(); // A enables RAM disk + *ramEN = a; // A enables RAM disk } else { if (legacy_startup & 0x01) { // Boot from ROM disk *unmountEN = 0; // Don't unmount so we boot from this drive