From e8099980769fad7f435988934c298e8c7bca7519 Mon Sep 17 00:00:00 2001 From: AJR Date: Fri, 12 Jun 2020 20:15:23 -0400 Subject: icatel: Fix address map (nw) Note that this causes the LCD to display nothing, but the previous behavior definitely wasn't correct. --- src/mame/drivers/icatel.cpp | 54 ++++++++++++++++----------------------------- 1 file 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! */ -- cgit v1.2.3