icatel: Fix address map (nw)

Note that this causes the LCD to display nothing, but the previous behavior definitely wasn't correct.
This commit is contained in:
AJR 2020-06-12 20:15:23 -04:00
parent 18f663e49b
commit e809998076

View File

@ -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,28 +153,21 @@ 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()
{
/* TODO: Implement-me! */
logerror("read: ci8\n");
return 0;
}
void icatel_state::ci8_w(uint8_t data)
{
/* TODO: Implement-me! */
@ -186,6 +176,14 @@ void icatel_state::ci8_w(uint8_t data)
//----------------------------------------
void icatel_state::ci12_w(uint8_t data)
{
/* TODO: Implement-me! */
logerror("write: ci12 [%02x]\n", data);
}
//----------------------------------------
uint8_t icatel_state::ci15_r()
{
/* TODO: Implement-me! */
@ -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! */