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: 24 additions & 3 deletions src/mame/access/acvirus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
#include "cpu/mcs51/sab80c535.h"
#include "machine/intelfsh.h"
#include "video/hd44780.h"
#include "video/pwm.h"

#include "emupal.h"
#include "speaker.h"
Expand All @@ -91,8 +92,10 @@ class acvirus_state : public driver_device
m_rombank(*this, "rombank"),
m_row(*this, "ROW%u", 0U),
m_knob(*this, "knob_%u", 0U),
m_leds(*this, "leds"),
m_scan(0),
m_an_select(0)
m_an_select(0),
m_led_pattern(0)
{ }

void virusa(machine_config &config) ATTR_COLD;
Expand Down Expand Up @@ -122,16 +125,19 @@ class acvirus_state : public driver_device
u8 p4_r();
void p1_w(u8 data);
void p3_w(u8 data);
void p4_w(u8 data);
void p5_w(u8 data);

u8 p402_r();

void palette_init(palette_device &palette) ATTR_COLD;

required_ioport_array<32> m_knob;
optional_device<pwm_display_device> m_leds;

u8 m_scan;
u8 m_an_select;
u8 m_led_pattern;
};


Expand All @@ -142,6 +148,7 @@ void acvirus_state::machine_start()

save_item(NAME(m_scan));
save_item(NAME(m_an_select));
save_item(NAME(m_led_pattern));
}

void acvirus_state::machine_reset()
Expand Down Expand Up @@ -171,10 +178,20 @@ u8 acvirus_state::p4_r()
return m_row[m_scan & 3]->read();
}

void acvirus_state::p4_w(u8 data)
{
m_leds->write_mx(data);

if (BIT(m_scan, 3))
m_led_pattern = data;
}

void acvirus_state::p5_w(u8 data)
{
m_scan = data & 7;
m_rombank->set_entry((data >> 4) & 15);

m_scan = data & 15;
m_leds->matrix(1 << m_scan, m_led_pattern);
}

void acvirus_state::prog_map(address_map &map)
Expand All @@ -185,8 +202,9 @@ void acvirus_state::prog_map(address_map &map)

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(0x2000, 0x7fff).ram(); // TODO: RAM banks
map(0x8000, 0xffff).ram(); // TODO: RAM banks
}

void acvirus_state::dsp_p_map(address_map &map)
Expand Down Expand Up @@ -260,6 +278,7 @@ void acvirus_state::virusb(machine_config &config)
m_maincpu->port_out_cb<1>().set(FUNC(acvirus_state::p1_w));
m_maincpu->port_out_cb<3>().set(FUNC(acvirus_state::p3_w));
m_maincpu->port_in_cb<4>().set(FUNC(acvirus_state::p4_r));
m_maincpu->port_out_cb<4>().set(FUNC(acvirus_state::p4_w));
m_maincpu->port_out_cb<5>().set(FUNC(acvirus_state::p5_w));
m_maincpu->an0_func().set([this] { return m_knob[4*0 + m_an_select]->read(); });
m_maincpu->an1_func().set([this] { return m_knob[4*1 + m_an_select]->read(); });
Expand All @@ -283,6 +302,8 @@ void acvirus_state::virusb(machine_config &config)
HD44780(config, m_lcdc, 270000); // TODO: clock not measured, datasheet typical clock used
m_lcdc->set_lcd_size(2, 16);

PWM_DISPLAY(config, m_leds).set_size(8, 8);

DSP56311(config, m_dsp, 108_MHz_XTAL);
m_dsp->set_addrmap(dsp563xx_device::AS_P, &acvirus_state::dsp_p_map);
m_dsp->set_addrmap(dsp563xx_device::AS_X, &acvirus_state::dsp_x_map);
Expand Down
106 changes: 53 additions & 53 deletions src/mame/layout/virusb.lay
Original file line number Diff line number Diff line change
Expand Up @@ -600,11 +600,11 @@ license:CC0-1.0
<element ref="0_text"><bounds x="137" y="462" width="7" height="12"/></element>
<element ref="plus1_text"><bounds x="151" y="462" width="12" height="12"/></element>
<element ref="plus2_text"><bounds x="169" y="462" width="12" height="12"/></element>
<element ref="led" name="LED0"><bounds x="98.5" y="476" width="11" height="11"/></element>
<element ref="led" name="LED1"><bounds x="116.5" y="476" width="11" height="11"/></element>
<element ref="led" name="LED2"><bounds x="134.5" y="476" width="11" height="11"/></element>
<element ref="led" name="LED3"><bounds x="152.5" y="476" width="11" height="11"/></element>
<element ref="led" name="LED4"><bounds x="170.5" y="476" width="11" height="11"/></element>
<element ref="led" name="2.0"><bounds x="98.5" y="476" width="11" height="11"/></element>
<element ref="led" name="2.7"><bounds x="116.5" y="476" width="11" height="11"/></element>
<element ref="led" name="3.0"><bounds x="134.5" y="476" width="11" height="11"/></element>
<element ref="led" name="3.7"><bounds x="152.5" y="476" width="11" height="11"/></element>
<element ref="led" name="2.3"><bounds x="170.5" y="476" width="11" height="11"/></element>
<element ref="button" inputtag="ROW2" inputmask="0x01"><!-- TRANSPOSE [-] --><bounds x="95" y="495" width="45" height="45"/></element>
<element ref="button" inputtag="ROW2" inputmask="0x02"><!-- TRANSPOSE [+] --><bounds x="140" y="495" width="45" height="45"/></element>
<element ref="transpose_text"><bounds x="106" y="547" width="66" height="12"/></element>
Expand All @@ -621,25 +621,25 @@ license:CC0-1.0
<group ref="knob"><bounds x="209" y="115" width="77" height="77"/></group>
<element ref="rate_text"><bounds x="235" y="196" width="28" height="12"/></element>

<element ref="led" name="LED5"><bounds x="292" y="108" width="11" height="11"/></element>
<element ref="led" name="7.a"><bounds x="292" y="108" width="11" height="11"/></element>

<element ref="button" inputtag="ROW2" inputmask="0x20"><!-- SHAPE --><bounds x="320" y="142" width="45" height="45"/></element>
<element ref="shape_text"><bounds x="325" y="196" width="36" height="12"/></element>

<element ref="led" name="LED6"><bounds x="380" y="124" width="11" height="11"/></element>
<element ref="led" name="LED7"><bounds x="380" y="141" width="11" height="11"/></element>
<element ref="led" name="LED8"><bounds x="380" y="159" width="11" height="11"/></element>
<element ref="led" name="LED9"><bounds x="380" y="177" width="11" height="11"/></element>
<element ref="led" name="LED10"><bounds x="380" y="194" width="11" height="11"/></element>
<element ref="led" name="5.5"><bounds x="380" y="124" width="11" height="11"/></element>
<element ref="led" name="5.7"><bounds x="380" y="141" width="11" height="11"/></element>
<element ref="led" name="4.7"><bounds x="380" y="159" width="11" height="11"/></element>
<element ref="led" name="4.5"><bounds x="380" y="177" width="11" height="11"/></element>
<element ref="led" name="4.0"><bounds x="380" y="194" width="11" height="11"/></element>

<element ref="sin_wave"><bounds x="397" y="122" width="21" height="13"/></element>
<element ref="triangle_wave"><bounds x="398" y="141" width="20" height="12"/></element>
<element ref="sawtooth_wave"><bounds x="399" y="158" width="18" height="13"/></element>
<element ref="square_wave"><bounds x="399" y="176" width="19" height="13"/></element>
<element ref="wave_text"><bounds x="394" y="194" width="29" height="12"/></element>

<element ref="led" name="LED11"><bounds x="247" y="230" width="11" height="11"/></element>
<element ref="led" name="LED12"><bounds x="292" y="230" width="11" height="11"/></element>
<element ref="led" name="0.0"><bounds x="247" y="230" width="11" height="11"/></element>
<element ref="led" name="0.2"><bounds x="292" y="230" width="11" height="11"/></element>

<element ref="button" inputtag="ROW0" inputmask="0x01"><!-- EDIT --><bounds x="230" y="249" width="45" height="45"/></element>
<element ref="button" inputtag="ROW0" inputmask="0x04"><!-- ENV MODE --><bounds x="275" y="249" width="45" height="45"/></element>
Expand All @@ -651,11 +651,11 @@ license:CC0-1.0
<element ref="amount_text"><bounds x="320" y="300" width="44" height="12"/></element>


<element ref="led" name="LED13"><bounds x="380" y="232" width="11" height="11"/></element>
<element ref="led" name="LED14"><bounds x="380" y="249" width="11" height="11"/></element>
<element ref="led" name="LED15"><bounds x="380" y="266" width="11" height="11"/></element>
<element ref="led" name="LED16"><bounds x="380" y="283" width="11" height="11"/></element>
<element ref="led" name="LED17"><bounds x="380" y="300" width="11" height="11"/></element>
<element ref="led" name="2.2"><bounds x="380" y="232" width="11" height="11"/></element>
<element ref="led" name="4.2"><bounds x="380" y="249" width="11" height="11"/></element>
<element ref="led" name="4.1"><bounds x="380" y="266" width="11" height="11"/></element>
<element ref="led" name="4.4"><bounds x="380" y="283" width="11" height="11"/></element>
<element ref="led" name="5.6"><bounds x="380" y="300" width="11" height="11"/></element>

<element ref="osc_1_text"><bounds x="394" y="232" width="36" height="12"/></element>
<element ref="osc_2_text"><bounds x="394" y="249" width="36" height="12"/></element>
Expand All @@ -670,25 +670,25 @@ license:CC0-1.0
<group ref="knob"><bounds x="209" y="360" width="77" height="77"/></group>
<element ref="rate_text"><bounds x="235" y="440" width="28" height="12"/></element>

<element ref="led" name="LED18"><bounds x="292" y="353" width="11" height="11"/></element>
<element ref="led" name="7.a"><bounds x="292" y="353" width="11" height="11"/></element>

<element ref="button" inputtag="ROW2" inputmask="0x08"><!-- SHAPE --><bounds x="320" y="386" width="45" height="45"/></element>
<element ref="shape_text"><bounds x="325" y="440" width="36" height="12"/></element>

<element ref="led" name="LED19"><bounds x="380" y="369" width="11" height="11"/></element>
<element ref="led" name="LED20"><bounds x="380" y="386" width="11" height="11"/></element>
<element ref="led" name="LED21"><bounds x="380" y="403" width="11" height="11"/></element>
<element ref="led" name="LED22"><bounds x="380" y="420" width="11" height="11"/></element>
<element ref="led" name="LED23"><bounds x="380" y="437" width="11" height="11"/></element>
<element ref="led" name="4.6"><bounds x="380" y="369" width="11" height="11"/></element>
<element ref="led" name="4.3"><bounds x="380" y="386" width="11" height="11"/></element>
<element ref="led" name="3.1"><bounds x="380" y="403" width="11" height="11"/></element>
<element ref="led" name="2.5"><bounds x="380" y="420" width="11" height="11"/></element>
<element ref="led" name="3.5"><bounds x="380" y="437" width="11" height="11"/></element>

<element ref="sin_wave"><bounds x="398" y="368" width="21" height="13"/></element>
<element ref="triangle_wave"><bounds x="398" y="387" width="20" height="12"/></element>
<element ref="sawtooth_wave"><bounds x="399" y="404" width="18" height="13"/></element>
<element ref="square_wave"><bounds x="399" y="422" width="19" height="13"/></element>
<element ref="wave_text"><bounds x="398" y="438" width="29" height="12"/></element>

<element ref="led" name="LED24"><bounds x="247" y="476" width="11" height="11"/></element>
<element ref="led" name="LED25"><bounds x="292" y="476" width="11" height="11"/></element>
<element ref="led" name="0.3"><bounds x="247" y="476" width="11" height="11"/></element>
<element ref="led" name="0.6"><bounds x="292" y="476" width="11" height="11"/></element>

<element ref="button" inputtag="ROW0" inputmask="0x08"><!-- EDIT --><bounds x="230" y="495" width="45" height="45"/></element>
<element ref="button" inputtag="ROW0" inputmask="0x40"><!-- ENV MODE --><bounds x="275" y="495" width="45" height="45"/></element>
Expand All @@ -699,11 +699,11 @@ license:CC0-1.0
<element ref="mode_text"><bounds x="283" y="557" width="28" height="12"/></element>
<element ref="amount_text"><bounds x="320" y="547" width="44" height="12"/></element>

<element ref="led" name="LED26"><bounds x="380" y="478" width="11" height="11"/></element>
<element ref="led" name="LED27"><bounds x="380" y="495" width="11" height="11"/></element>
<element ref="led" name="LED28"><bounds x="380" y="512" width="11" height="11"/></element>
<element ref="led" name="LED29"><bounds x="380" y="529" width="11" height="11"/></element>
<element ref="led" name="LED30"><bounds x="380" y="547" width="11" height="11"/></element>
<element ref="led" name="2.1"><bounds x="380" y="478" width="11" height="11"/></element>
<element ref="led" name="3.6"><bounds x="380" y="495" width="11" height="11"/></element>
<element ref="led" name="2.6"><bounds x="380" y="512" width="11" height="11"/></element>
<element ref="led" name="3.4"><bounds x="380" y="529" width="11" height="11"/></element>
<element ref="led" name="2.4"><bounds x="380" y="547" width="11" height="11"/></element>

<element ref="shape_1plus2_text"><bounds x="394" y="479" width="47" height="12"/></element>
<element ref="filter_1_text"><bounds x="394" y="496" width="47" height="12"/></element>
Expand Down Expand Up @@ -752,8 +752,8 @@ license:CC0-1.0
<group ref="wave_sel_pill_text"><bounds x="613" y="301" width="50" height="13"/></group>
<element ref="slash_pw_text"><bounds x="666" y="302" width="22" height="12"/></element>

<element ref="led" name="LED31"><bounds x="733" y="230" width="11" height="11"/></element>
<element ref="led" name="LED32"><bounds x="778" y="230" width="11" height="11"/></element>
<element ref="led" name="1.0"><bounds x="733" y="230" width="11" height="11"/></element>
<element ref="led" name="1.5"><bounds x="778" y="230" width="11" height="11"/></element>

<element ref="button" inputtag="ROW1" inputmask="0x01"><!-- EDIT --><bounds x="716" y="249" width="45" height="45"/></element>
<element ref="button" inputtag="ROW1" inputmask="0x20"><!-- SYNC --><bounds x="761" y="249" width="45" height="45"/></element>
Expand Down Expand Up @@ -820,9 +820,9 @@ license:CC0-1.0
<element ref="button" inputtag="ROW2" inputmask="0x40"><!-- STORE --><bounds x="472" y="495" width="45" height="45"/></element>
<element ref="store_text"><bounds x="477" y="547" width="35" height="12"/></element>

<element ref="led" name="LED33"><bounds x="559" y="476" width="11" height="11"/></element>
<element ref="led" name="LED34"><bounds x="604" y="476" width="11" height="11"/></element>
<element ref="led" name="LED35"><bounds x="649" y="476" width="11" height="11"/></element>
<element ref="led" name="0.7"><bounds x="559" y="476" width="11" height="11"/></element>
<element ref="led" name="0.4"><bounds x="604" y="476" width="11" height="11"/></element>
<element ref="led" name="0.5"><bounds x="649" y="476" width="11" height="11"/></element>

<element ref="button" inputtag="ROW0" inputmask="0x80"><!-- EFFECTS --><bounds x="542" y="495" width="45" height="45"/></element>
<element ref="button" inputtag="ROW0" inputmask="0x10"><!-- DEMO: CTRL --><bounds x="587" y="495" width="45" height="45"/></element>
Expand All @@ -835,8 +835,8 @@ license:CC0-1.0
<element ref="gray_line"><bounds x="596" y="561" width="23" height="1"/></element>
<element ref="gray_line"><bounds x="645" y="561" width="23" height="1"/></element>

<element ref="led" name="LED36"><bounds x="715" y="476" width="11" height="11"/></element>
<element ref="led" name="LED37"><bounds x="760" y="476" width="11" height="11"/></element>
<element ref="led" name="0.1"><bounds x="715" y="476" width="11" height="11"/></element>
<element ref="led" name="1.3"><bounds x="760" y="476" width="11" height="11"/></element>

<element ref="button" inputtag="ROW0" inputmask="0x02"><!-- MULTI --><bounds x="698" y="495" width="45" height="45"/></element>
<element ref="button" inputtag="ROW1" inputmask="0x08"><!-- SINGLE --><bounds x="743" y="495" width="45" height="45"/></element>
Expand Down Expand Up @@ -897,29 +897,29 @@ license:CC0-1.0
<group ref="knob"><bounds x="1075" y="223" width="77" height="77"/></group>
<element ref="cutoff_2_text"><bounds x="1084" y="300" width="59" height="12"/></element>

<element ref="led" name="LED38"><bounds x="1197" y="230" width="11" height="11"/></element>
<element ref="led" name="1.1"><bounds x="1197" y="230" width="11" height="11"/></element>

<element ref="button" inputtag="ROW1" inputmask="0x02"><!-- EDIT --><bounds x="1180" y="249" width="45" height="45"/></element>
<element ref="edit_text"><bounds x="1188" y="300" width="29" height="12"/></element>

<element ref="button" inputtag="ROW3" inputmask="0x10"><!-- FILT 1 --><bounds x="1225" y="249" width="45" height="45"/></element>
<element ref="filt_1_text"><bounds x="1234" y="300" width="27" height="12"/></element>

<element ref="led" name="LED39"><bounds x="1284" y="230" width="11" height="11"/></element>
<element ref="led" name="5.1"><bounds x="1284" y="230" width="11" height="11"/></element>
<element ref="lp_text"><bounds x="1300" y="230" width="13" height="12"/></element>
<element ref="led" name="LED40"><bounds x="1284" y="248" width="11" height="11"/></element>
<element ref="led" name="5.0"><bounds x="1318" y="230" width="11" height="11"/></element>

<element ref="led" name="LED41"><bounds x="1284" y="266" width="11" height="11"/></element>
<element ref="led" name="6.1"><bounds x="1284" y="248" width="11" height="11"/></element>
<element ref="hp_text"><bounds x="1300" y="248" width="14" height="12"/></element>
<element ref="led" name="LED42"><bounds x="1284" y="284" width="11" height="11"/></element>
<element ref="led" name="3.2"><bounds x="1318" y="248" width="11" height="11"/></element>

<element ref="led" name="LED43"><bounds x="1318" y="230" width="11" height="11"/></element>
<element ref="led" name="3.3"><bounds x="1284" y="266" width="11" height="11"/></element>
<element ref="bp_text"><bounds x="1300" y="266" width="13" height="12"/></element>
<element ref="led" name="LED44"><bounds x="1318" y="248" width="11" height="11"/></element>
<element ref="led" name="5.3"><bounds x="1318" y="266" width="11" height="11"/></element>

<element ref="led" name="LED45"><bounds x="1318" y="266" width="11" height="11"/></element>
<element ref="led" name="6.3"><bounds x="1284" y="284" width="11" height="11"/></element>
<element ref="bs_text"><bounds x="1300" y="284" width="13" height="12"/></element>
<element ref="led" name="LED46"><bounds x="1318" y="284" width="11" height="11"/></element>
<element ref="led" name="6.0"><bounds x="1318" y="284" width="11" height="11"/></element>

<element ref="button" inputtag="ROW3" inputmask="0x20"><!-- FILT 2 --><bounds x="1345" y="249" width="45" height="45"/></element>
<element ref="filt_2_text"><bounds x="1352" y="300" width="32" height="12"/></element>
Expand All @@ -932,20 +932,20 @@ license:CC0-1.0
<element ref="filter_routing_text"><bounds x="1397" y="300" width="83" height="12"/></element>


<element ref="led" name="LED47"><bounds x="1446" y="230" width="11" height="11"/></element>
<element ref="led" name="5.2"><bounds x="1446" y="230" width="11" height="11"/></element>
<element ref="ser_4_text"><bounds x="1456" y="230" width="36" height="12"/></element>

<element ref="led" name="LED48"><bounds x="1446" y="248" width="11" height="11"/></element>
<element ref="led" name="6.2"><bounds x="1446" y="248" width="11" height="11"/></element>
<element ref="ser_6_text"><bounds x="1456" y="247" width="36" height="12"/></element>

<element ref="led" name="LED49"><bounds x="1446" y="266" width="11" height="11"/></element>
<element ref="led" name="5.4"><bounds x="1446" y="266" width="11" height="11"/></element>
<element ref="par_4_text"><bounds x="1456" y="265" width="36" height="12"/></element>

<element ref="led" name="LED50"><bounds x="1446" y="284" width="11" height="11"/></element>
<element ref="led" name="6.4"><bounds x="1446" y="284" width="11" height="11"/></element>
<element ref="split_text"><bounds x="1457" y="283" width="32" height="12"/></element>

<element ref="led" name="LED51"><bounds x="1520" y="230" width="11" height="11"/></element>
<element ref="led" name="LED52"><bounds x="1565" y="230" width="11" height="11"/></element>
<element ref="led" name="1.4"><bounds x="1520" y="230" width="11" height="11"/></element>
<element ref="led" name="1.2"><bounds x="1565" y="230" width="11" height="11"/></element>

<element ref="button" inputtag="ROW1" inputmask="0x10"><!-- SELECT (Filt1) --><bounds x="1503" y="249" width="45" height="45"/></element>
<element ref="button" inputtag="ROW1" inputmask="0x04"><!-- SELECT (Filt2) --><bounds x="1548" y="249" width="45" height="45"/></element>
Expand Down
Loading