diff options
Diffstat (limited to 'src/mame/drivers/ms9540.cpp')
-rw-r--r-- | src/mame/drivers/ms9540.cpp | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/src/mame/drivers/ms9540.cpp b/src/mame/drivers/ms9540.cpp index 8515038fbcb..4476248e999 100644 --- a/src/mame/drivers/ms9540.cpp +++ b/src/mame/drivers/ms9540.cpp @@ -41,9 +41,15 @@ public: void ms9540(machine_config &config); private: + uint8_t latch_1e001_r(); + void latch_1e001_w(u8 data); + uint8_t latch_1f001_r(); + void latch_1f001_w(u8 data); void kbd_put(u8 data); void mem_map(address_map &map); uint8_t m_term_data; + uint8_t m_latch_1e001; + uint8_t m_latch_1f001; virtual void machine_reset() override; required_shared_ptr<uint16_t> m_p_base; required_device<cpu_device> m_maincpu; @@ -51,13 +57,36 @@ private: }; +uint8_t ms9540_state::latch_1e001_r() +{ + return m_latch_1e001; +} + +void ms9540_state::latch_1e001_w(uint8_t data) +{ + logerror("%s: $1e001 <- #$%02x\n", machine().describe_context(), data); + m_latch_1e001 = data; +} + +uint8_t ms9540_state::latch_1f001_r() +{ + return m_latch_1f001; +} + +void ms9540_state::latch_1f001_w(uint8_t data) +{ + logerror("%s: $1f001 <- #$%02x\n", machine().describe_context(), data); + m_latch_1f001 = data; +} + void ms9540_state::mem_map(address_map &map) { map.unmap_value_high(); - map.global_mask(0xffffff); map(0x000000, 0x00ffff).ram().share("rambase"); map(0x010000, 0x013fff).rom().region("9540", 0); map(0x018000, 0x018fff).ram(); + map(0x01e001, 0x01e001).rw(FUNC(ms9540_state::latch_1e001_r), FUNC(ms9540_state::latch_1e001_w)); + map(0x01f001, 0x01f001).rw(FUNC(ms9540_state::latch_1f001_r), FUNC(ms9540_state::latch_1f001_w)); } |