From a45204f19c818d6591bb97d6b7a2ef637577e853 Mon Sep 17 00:00:00 2001 From: Nathan Woods Date: Fri, 28 Dec 2012 12:02:05 +0000 Subject: [PATCH] [COCO1/2] Fixing garbled display when displaying video ram above $8000 and in ROM/RAM mode (mametesters #5031) --- src/emu/machine/ram.h | 4 ++++ src/mess/machine/coco12.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/emu/machine/ram.h b/src/emu/machine/ram.h index a144fa6cd47..fefb440d5b5 100644 --- a/src/emu/machine/ram.h +++ b/src/emu/machine/ram.h @@ -58,6 +58,10 @@ public: static UINT32 parse_string(const char *s); UINT32 default_size(void) const; const char *extra_options(void) const { return m_extra_options; } + + // read/write + UINT8 read(offs_t offset) { return m_pointer[offset % m_size]; } + void write(offs_t offset, UINT8 data) { m_pointer[offset % m_size] = data; } // inline configuration helpers static void static_set_default_size(device_t &device, const char *default_size) { downcast(device).m_default_size = default_size; } diff --git a/src/mess/machine/coco12.c b/src/mess/machine/coco12.c index c7239288d5e..f7235484566 100644 --- a/src/mess/machine/coco12.c +++ b/src/mess/machine/coco12.c @@ -80,7 +80,7 @@ WRITE_LINE_MEMBER( coco12_state::field_sync ) READ8_MEMBER( coco12_state::sam_read ) { - UINT8 data = m_sam->mpu_address_space()->read_byte(offset); + UINT8 data = m_ram->read(offset); m_vdg->as_w(data & 0x80 ? ASSERT_LINE : CLEAR_LINE); m_vdg->inv_w(data & 0x40 ? ASSERT_LINE : CLEAR_LINE); return data;