diff --git a/src/mame/drivers/informer_213.cpp b/src/mame/drivers/informer_213.cpp index f6d9268bbd8..3803f7ae877 100644 --- a/src/mame/drivers/informer_213.cpp +++ b/src/mame/drivers/informer_213.cpp @@ -97,6 +97,8 @@ private: uint16_t m_cursor_addr; uint8_t m_screen_ctrl; uint8_t m_firq_vector; + + memory_access<16, 0, 0, ENDIANNESS_BIG>::specific m_program; }; @@ -162,8 +164,10 @@ uint32_t informer_213_state::screen_update(screen_device &screen, bitmap_rgb32 & else addr = m_vram_start_addr2 + y * 80 + x; - uint8_t code = m_vram[addr - 0x6000]; - uint8_t attr = m_aram[addr - 0x6000]; + uint8_t code = m_program.read_byte(addr); + uint8_t attr = m_program.read_byte(addr+0x1000); + + logerror("%02d.%02d %04x %02x %02x\n", x, y, addr, code, attr); if (code == 0xc0 || code == 0xe8) line_attr = attr; @@ -359,6 +363,8 @@ void informer_213_state::machine_start() m_nvram[1]->set_base(m_banked_ram.get(), 0x800); + m_maincpu->space(AS_PROGRAM).specific(m_program); + // register for save states save_item(NAME(m_vram_start_addr)); save_item(NAME(m_vram_start_addr2)); @@ -366,11 +372,20 @@ void informer_213_state::machine_start() save_item(NAME(m_cursor_addr)); save_item(NAME(m_screen_ctrl)); save_item(NAME(m_firq_vector)); + save_item(NAME(m_cursor_start)); + save_item(NAME(m_cursor_end)); } void informer_213_state::machine_reset() { m_firq_vector = 0x00; + m_vram_start_addr = 0x0084; + m_vram_start_addr2 = 0x0084; + m_vram_end_addr = 0xffff; + m_cursor_start = 0x20; + m_cursor_end = 0x09; + m_cursor_addr = 0xffff; + m_screen_ctrl = 0x18; }