From d7451d6d6e8078d96bcb3acb7d4264a89df0cca6 Mon Sep 17 00:00:00 2001 From: Thomas Bernard Date: Tue, 31 Dec 2019 19:16:11 +0100 Subject: [PATCH] c64load: emulate C64 KERNAL GETIN better no key is pressed --- src/c64load.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/c64load.c b/src/c64load.c index 0f23c05f..9cc97e8f 100644 --- a/src/c64load.c +++ b/src/c64load.c @@ -102,13 +102,20 @@ static byte C64_mem_read(void *context, word address) if ((c64->ram[1] & 2) && address >= 0xe000) { GFX2_Log(GFX2_WARNING, "** ROM ** read($%04x)\n", address); + // $FFE4 GETIN + // make it return 0 (an Z=1) like if no key is pressed if (address == 0xffe4) + { c64->keyjoyread++; + return 0xA9; // LDA #$xx + } + if (address == 0xffe5) + return 0x00; // 2nd byte of LDA #$00 return 0x60; // RTS } if ((c64->ram[1] & 4) && - (address >= 0xd000) && (address < 0xe000)) + (((address >= 0xd000) && (address < 0xd800)) || ((address >= 0xdc00) && (address < 0xe000)))) { if ((address & 0xff00) == 0xd000) {