From d5a25f279d615bb64f144cc6ee6653677f32a3b7 Mon Sep 17 00:00:00 2001 From: Nathan Woods Date: Sun, 3 Feb 2013 12:33:34 +0000 Subject: [PATCH] [COCO3] Mapped several IO reads to the floating bus (bug #05135) --- src/mess/video/gime.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/mess/video/gime.c b/src/mess/video/gime.c index 50fb2970d64..6cfe458d282 100644 --- a/src/mess/video/gime.c +++ b/src/mess/video/gime.c @@ -661,6 +661,10 @@ UINT8 gime_base_device::read(offs_t offset) case 0x20: data = read_palette_register(offset); break; + + default: + data = read_floating_bus(); + break; } return data; @@ -679,7 +683,7 @@ ATTR_FORCE_INLINE UINT8 gime_base_device::read_gime_register(offs_t offset) UINT8 result; switch(offset) { - case 2: /* Read pending IRQs */ + case 2: // read pending IRQs result = m_irq; if (result != 0x00) { @@ -688,7 +692,7 @@ ATTR_FORCE_INLINE UINT8 gime_base_device::read_gime_register(offs_t offset) } break; - case 3: /* Read pending FIRQs */ + case 3: // read pending FIRQs result = m_firq; if (result != 0x00) { @@ -697,16 +701,15 @@ ATTR_FORCE_INLINE UINT8 gime_base_device::read_gime_register(offs_t offset) } break; - case 4: /* Timer MSB/LSB; these arn't readable */ - case 5: - /* JK tells me that these values are indeterminate; and $7E appears - * to be the value most commonly returned - */ - result = 0x7E; + case 14: + case 15: + // these (I guess) are readable (Mametesters bug #05135) + result = m_gime_registers[offset]; break; default: - result = m_gime_registers[offset]; + // the others are not readable; read floating bus (Mametesters bug #05135) + result = read_floating_bus(); break; } return result; @@ -720,7 +723,7 @@ ATTR_FORCE_INLINE UINT8 gime_base_device::read_gime_register(offs_t offset) ATTR_FORCE_INLINE UINT8 gime_base_device::read_mmu_register(offs_t offset) { - return (m_mmu[offset & 0x0F] & 0x3F); + return (m_mmu[offset & 0x0F] & 0x3F) | (read_floating_bus() & 0xC0); }