Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 22 additions & 5 deletions src/mame/access/acvirus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ class acvirus_state : public driver_device
void prog_map(address_map &map) ATTR_COLD;
void data_map(address_map &map) ATTR_COLD;

u8 p1_r();
void p1_w(u8 data);
void p5_w(u8 data);

u8 p402_r();
Expand All @@ -123,6 +125,20 @@ void acvirus_state::machine_reset()
{
}

u8 acvirus_state::p1_r()
{
return 0; // m_lcdc ready?
}

void acvirus_state::p1_w(u8 data)
{
m_lcdc->db_w(((data << 3) & 0xf0) | 0x08);
m_lcdc->e_w(BIT(data, 5));
m_lcdc->rw_w(BIT(data, 6));
m_lcdc->rs_w(BIT(data, 7));
}


void acvirus_state::p5_w(u8 data)
{
m_rombank->set_entry((data >> 4) & 15);
Expand Down Expand Up @@ -155,13 +171,10 @@ void acvirus_state::virusa(machine_config &config)
SAB80C535(config, m_maincpu, XTAL(12'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &acvirus_state::prog_map);
m_maincpu->set_addrmap(AS_DATA, &acvirus_state::data_map);
m_maincpu->port_in_cb<1>().set(FUNC(acvirus_state::p1_r));
m_maincpu->port_out_cb<1>().set(FUNC(acvirus_state::p1_w));
m_maincpu->port_out_cb<5>().set(FUNC(acvirus_state::p5_w));

/*
This may be hooked either to memorymap or to some of the ports:
map(0x?, 0x?).rw("lcdc", FUNC(hd44780_device::data_r), FUNC(hd44780_device::data_w)).umask16(0x00ff);
map(0x?, 0x?).rw("lcdc", FUNC(hd44780_device::control_r), FUNC(hd44780_device::control_w)).umask16(0x00ff);
*/
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
screen.set_refresh_hz(60);
screen.set_screen_update("lcdc", FUNC(hd44780_device::screen_update));
Expand All @@ -186,6 +199,8 @@ void acvirus_state::virusb(machine_config &config)
SAB80C535(config, m_maincpu, XTAL(12'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &acvirus_state::prog_map);
m_maincpu->set_addrmap(AS_DATA, &acvirus_state::data_map);
m_maincpu->port_in_cb<1>().set(FUNC(acvirus_state::p1_r));
m_maincpu->port_out_cb<1>().set(FUNC(acvirus_state::p1_w));
m_maincpu->port_out_cb<5>().set(FUNC(acvirus_state::p5_w));

screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
Expand Down Expand Up @@ -214,6 +229,8 @@ void acvirus_state::virusc(machine_config &config)
SAB80C535(config, m_maincpu, XTAL(24'000'000)); // 515 really
m_maincpu->set_addrmap(AS_PROGRAM, &acvirus_state::prog_map);
m_maincpu->set_addrmap(AS_DATA, &acvirus_state::data_map);
m_maincpu->port_in_cb<1>().set(FUNC(acvirus_state::p1_r));
m_maincpu->port_out_cb<1>().set(FUNC(acvirus_state::p1_w));
m_maincpu->port_out_cb<5>().set(FUNC(acvirus_state::p5_w));

screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
Expand Down
2 changes: 1 addition & 1 deletion src/mame/layout/virusb.lay
Original file line number Diff line number Diff line change
Expand Up @@ -735,7 +735,7 @@ license:CC0-1.0
<element ref="black_rect"><bounds x="517" y="344" width="255" height="82"/></element>
<element ref="screen_metalic_border"><bounds x="523" y="346" width="243" height="78"/></element>
<element ref="screen_green_border"><bounds x="537" y="359" width="215" height="53"/></element>
<screen index="0"><bounds x="548" y="369" width="192" height="32"/></screen>
<screen index="0"><bounds x="548" y="370" width="192" height="34"/></screen>
<repeat count="2">
<param name="y" start="369" increment="18" />
<repeat count="16">
Expand Down
Loading