summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/ms9540.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/ms9540.cpp')
-rw-r--r--src/mame/drivers/ms9540.cpp31
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));
}