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
16 changes: 13 additions & 3 deletions src/mame/access/acvirus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,11 @@ class acvirus_state : public driver_device
acvirus_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_banked_ram(*this, "banked_ram", 4 * 0x8000, ENDIANNESS_LITTLE),
m_lcdc(*this, "lcdc"),
m_dsp(*this, "dsp"),
m_rombank(*this, "rombank"),
m_rambank(*this, "rambank"),
m_row(*this, "ROW%u", 0U),
m_knob(*this, "knob_%u", 0U),
m_leds(*this, "leds"),
Expand All @@ -110,9 +112,11 @@ class acvirus_state : public driver_device

private:
required_device<sab80c535_device> m_maincpu;
memory_share_creator<u8> m_banked_ram;
required_device<hd44780_device> m_lcdc;
required_device<dsp563xx_device> m_dsp;
required_memory_bank m_rombank;
required_memory_bank m_rambank;
required_ioport_array<4> m_row;

void prog_map(address_map &map) ATTR_COLD;
Expand Down Expand Up @@ -146,6 +150,9 @@ void acvirus_state::machine_start()
m_rombank->configure_entries(0, 16, memregion("maincpu")->base(), 0x8000);
m_rombank->set_entry(3);

m_rambank->configure_entries(0, 4, m_banked_ram, 0x8000);
m_rambank->set_entry(0);

save_item(NAME(m_scan));
save_item(NAME(m_an_select));
save_item(NAME(m_led_pattern));
Expand Down Expand Up @@ -190,6 +197,9 @@ void acvirus_state::p5_w(u8 data)
{
m_rombank->set_entry((data >> 4) & 15);

if (BIT(data, 3))
m_rambank->set_entry((data >> 4) & 3);

m_scan = data & 15;
m_leds->matrix(1 << m_scan, m_led_pattern);
}
Expand All @@ -204,7 +214,7 @@ void acvirus_state::data_map(address_map &map)
{
map(0x0000, 0x7fff).ram();
map(0x0400, 0x0407).rw(m_dsp, FUNC(dsp563xx_device::hi08_r), FUNC(dsp563xx_device::hi08_w));
map(0x8000, 0xffff).ram(); // TODO: RAM banks
map(0x8000, 0xffff).bankrw(m_rambank);
}

void acvirus_state::dsp_p_map(address_map &map)
Expand Down Expand Up @@ -377,10 +387,10 @@ INPUT_PORTS_START( virusa_knobs )
PORT_ADJUSTER(64, "Osc 2: Wave/PW") PORT_MINMAX(0, 127)

PORT_START("knob_9")
PORT_ADJUSTER(64, "Osc 2 Semitone") PORT_MINMAX(0, 127)
PORT_ADJUSTER(64, "Osc 2 Detune") PORT_MINMAX(0, 127)

PORT_START("knob_10")
PORT_ADJUSTER(64, "Osc 2 Detune") PORT_MINMAX(0, 127)
PORT_ADJUSTER(64, "Osc 2 Semitone") PORT_MINMAX(0, 127)

PORT_START("knob_11")
PORT_ADJUSTER(64, "Osc 2 FM Amount") PORT_MINMAX(0, 127)
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 @@ -64,7 +64,7 @@ license:CC0-1.0
<element name="transparent"><rect><color red="0.0" green="0.0" blue="0.0" alpha="0.0"/></rect></element>
<element name="knob_outer"><disk><color red="0.0" green="0.0" blue="0.0" alpha="0.0"/></disk></element>
<element name="knob_value">
<simplecounter maxstate="100" digits="1"><color red="0.8" green="0.8" blue="0.8"/></simplecounter>
<simplecounter maxstate="127" digits="1"><color red="0.8" green="0.8" blue="0.8"/></simplecounter>
</element>
<group name="knob">
<element ref="knob_outer" id="knob_~knob_input~"><bounds x="0" y="0" width="68" height="68"/></element>
Expand Down
Loading