summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2020-06-12 20:15:23 -0400
committer AJR <ajrhacker@users.noreply.github.com>2020-06-12 20:18:08 -0400
commite8099980769fad7f435988934c298e8c7bca7519 (patch)
tree185ba1ad41a5e04c2ee959496de3664a58c3010c
parent18f663e49b698f67507d1c7b61936de146100916 (diff)
icatel: Fix address map (nw)
Note that this causes the LCD to display nothing, but the previous behavior definitely wasn't correct.
-rw-r--r--src/mame/drivers/icatel.cpp54
1 files changed, 19 insertions, 35 deletions
diff --git a/src/mame/drivers/icatel.cpp b/src/mame/drivers/icatel.cpp
index ea72135a482..e20cde566cb 100644
--- a/src/mame/drivers/icatel.cpp
+++ b/src/mame/drivers/icatel.cpp
@@ -56,16 +56,12 @@ private:
uint8_t cn8_extension_r();
void cn8_extension_w(uint8_t data);
- uint8_t modem_r();
- void modem_w(uint8_t data);
+ uint8_t modem_r(offs_t offset);
+ void modem_w(offs_t offset, uint8_t data);
- uint8_t ci8_r();
void ci8_w(uint8_t data);
-
+ void ci12_w(uint8_t data);
uint8_t ci15_r();
- void ci15_w(uint8_t data);
-
- uint8_t ci16_r();
void ci16_w(uint8_t data);
void icatel_palette(palette_device &palette) const;
@@ -88,13 +84,14 @@ void icatel_state::i80c31_prg(address_map &map)
void icatel_state::i80c31_io(address_map &map)
{
map(0x0000, 0x3FFF).ram();
- map(0x8000, 0x8002).ram(); /* HACK! */
- map(0x8040, 0x8041).mirror(0x3F1E).w(m_lcdc, FUNC(hd44780_device::write)); // not sure yet. CI12 (73LS273)
- map(0x8060, 0x8060).mirror(0x3F1F).rw(FUNC(icatel_state::ci8_r), FUNC(icatel_state::ci8_w));
- map(0x8080, 0x8080).mirror(0x3F1F).rw(FUNC(icatel_state::ci16_r), FUNC(icatel_state::ci16_w)); // card reader (?)
- map(0x80C0, 0x80C0).mirror(0x3F1F).rw(FUNC(icatel_state::ci15_r), FUNC(icatel_state::ci15_w)); // 74LS244 (tristate buffer)
+ map(0x8000, 0x8001).mirror(0x3F3C).w(m_lcdc, FUNC(hd44780_device::write));
+ map(0x8002, 0x8003).mirror(0x3F3C).r(m_lcdc, FUNC(hd44780_device::read));
+ map(0x8040, 0x8040).mirror(0x3F1F).w(FUNC(icatel_state::ci12_w)); // 74LS273
+ map(0x8060, 0x8060).mirror(0x3F1F).w(FUNC(icatel_state::ci8_w));
+ map(0x8080, 0x8080).mirror(0x3F1F).w(FUNC(icatel_state::ci16_w)); // card reader (?)
+ map(0x80C0, 0x80C0).mirror(0x3F1F).r(FUNC(icatel_state::ci15_r)); // 74LS244 (tristate buffer)
map(0xC000, 0xCFFF).rw(FUNC(icatel_state::cn8_extension_r), FUNC(icatel_state::cn8_extension_w));
- map(0xE000, 0xEFFF).rw(FUNC(icatel_state::modem_r), FUNC(icatel_state::modem_w));
+ map(0xE000, 0xE0FF).mirror(0xF00).rw(FUNC(icatel_state::modem_r), FUNC(icatel_state::modem_w));
}
void icatel_state::i80c31_data(address_map &map)
@@ -156,32 +153,33 @@ void icatel_state::cn8_extension_w(uint8_t data)
//----------------------------------------
-uint8_t icatel_state::modem_r()
+uint8_t icatel_state::modem_r(offs_t offset)
{
/* TODO: Implement-me! */
logerror("read: modem\n");
return 0;
}
-void icatel_state::modem_w(uint8_t data)
+void icatel_state::modem_w(offs_t offset, uint8_t data)
{
/* TODO: Implement-me! */
- logerror("write: modem [%02x]\n", data);
+ logerror("write: modem %02x:[%02x]\n", offset, data);
}
//----------------------------------------
-uint8_t icatel_state::ci8_r()
+void icatel_state::ci8_w(uint8_t data)
{
/* TODO: Implement-me! */
- logerror("read: ci8\n");
- return 0;
+ logerror("write: ci8 [%02x]\n", data);
}
-void icatel_state::ci8_w(uint8_t data)
+//----------------------------------------
+
+void icatel_state::ci12_w(uint8_t data)
{
/* TODO: Implement-me! */
- logerror("write: ci8 [%02x]\n", data);
+ logerror("write: ci12 [%02x]\n", data);
}
//----------------------------------------
@@ -194,22 +192,8 @@ uint8_t icatel_state::ci15_r()
return (1 << 3) | (1 << 0);
}
-void icatel_state::ci15_w(uint8_t data)
-{
- /* TODO: Implement-me! */
- logerror("write: ci15 [%02x]\n", data);
-}
-
//----------------------------------------
-uint8_t icatel_state::ci16_r()
-{
- /* TODO: Implement-me! */
- // seems to be the card reader.
- logerror("read: ci16\n");
- return 0;
-}
-
void icatel_state::ci16_w(uint8_t data)
{
/* TODO: Implement-me! */