summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/guab.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/guab.cpp')
-rw-r--r--src/mame/drivers/guab.cpp110
1 files changed, 58 insertions, 52 deletions
diff --git a/src/mame/drivers/guab.cpp b/src/mame/drivers/guab.cpp
index 928d34ed4ee..76cafe36e3d 100644
--- a/src/mame/drivers/guab.cpp
+++ b/src/mame/drivers/guab.cpp
@@ -80,13 +80,18 @@ public:
m_fdc(*this, "fdc"),
m_floppy(*this, "fdc:0"),
m_palette(*this, "palette"),
- m_sound_buffer(0), m_sound_latch(false)
+ m_leds(*this, "led_%u", 0U),
+ m_sound_buffer(0),
+ m_sound_latch(false)
{ }
void guab(machine_config &config);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
+protected:
+ virtual void machine_start() override;
+
private:
EF9369_COLOR_UPDATE(ef9369_color_update);
DECLARE_WRITE16_MEMBER(tms34061_w);
@@ -110,9 +115,6 @@ private:
void guab_map(address_map &map);
- virtual void machine_start() override;
-
-
required_device<cpu_device> m_maincpu;
required_device<tms34061_device> m_tms34061;
required_device<sn76489_device> m_sn;
@@ -120,6 +122,8 @@ private:
required_device<floppy_connector> m_floppy;
required_device<palette_device> m_palette;
+ output_finder<48> m_leds;
+
uint8_t m_sound_buffer;
bool m_sound_latch;
};
@@ -304,6 +308,8 @@ uint32_t guab_state::screen_update_guab(screen_device &screen, bitmap_ind16 &bit
void guab_state::machine_start()
{
+ m_leds.resolve();
+
m_fdc->set_floppy(m_floppy->get_device());
}
@@ -359,74 +365,74 @@ INPUT_CHANGED_MEMBER( guab_state::coin_inserted )
WRITE8_MEMBER( guab_state::output1_w )
{
- output().set_value("led_0", BIT(data, 0)); // cash in (ten up: cash in)
- output().set_value("led_1", BIT(data, 1)); // cash out (ten up: cash out)
- output().set_value("led_2", BIT(data, 2));
- output().set_value("led_3", BIT(data, 3));
- output().set_value("led_4", BIT(data, 4));
- output().set_value("led_5", BIT(data, 5));
- output().set_value("led_6", BIT(data, 6)); // (ten up: 10p/100p drive)
- output().set_value("led_7", BIT(data, 7));
+ m_leds[0] = BIT(data, 0); // cash in (ten up: cash in)
+ m_leds[1] = BIT(data, 1); // cash out (ten up: cash out)
+ m_leds[2] = BIT(data, 2);
+ m_leds[3] = BIT(data, 3);
+ m_leds[4] = BIT(data, 4);
+ m_leds[5] = BIT(data, 5);
+ m_leds[6] = BIT(data, 6); // (ten up: 10p/100p drive)
+ m_leds[7] = BIT(data, 7);
}
WRITE8_MEMBER( guab_state::output2_w )
{
- output().set_value("led_8", BIT(data, 0));
- output().set_value("led_9", BIT(data, 1));
- output().set_value("led_10", BIT(data, 2)); // start (ten up: start)
- output().set_value("led_11", BIT(data, 3)); // (ten up: feature 6)
- output().set_value("led_12", BIT(data, 4)); // (ten up: feature 11)
- output().set_value("led_13", BIT(data, 5)); // (ten up: feature 13)
- output().set_value("led_14", BIT(data, 6)); // lamp a (ten up: feature 12)
- output().set_value("led_15", BIT(data, 7)); // lamp b (ten up: pass)
+ m_leds[8] = BIT(data, 0);
+ m_leds[9] = BIT(data, 1);
+ m_leds[10] = BIT(data, 2); // start (ten up: start)
+ m_leds[11] = BIT(data, 3); // (ten up: feature 6)
+ m_leds[12] = BIT(data, 4); // (ten up: feature 11)
+ m_leds[13] = BIT(data, 5); // (ten up: feature 13)
+ m_leds[14] = BIT(data, 6); // lamp a (ten up: feature 12)
+ m_leds[15] = BIT(data, 7); // lamp b (ten up: pass)
}
WRITE8_MEMBER( guab_state::output3_w )
{
- output().set_value("led_16", BIT(data, 0)); // select (ten up: collect)
- output().set_value("led_17", BIT(data, 1)); // (ten up: feature 14)
- output().set_value("led_18", BIT(data, 2)); // (ten up: feature 9)
- output().set_value("led_19", BIT(data, 3)); // (ten up: lamp a)
- output().set_value("led_20", BIT(data, 4)); // lamp c (ten up: lamp b)
- output().set_value("led_21", BIT(data, 5)); // lamp d (ten up: lamp c)
- output().set_value("led_22", BIT(data, 6));
- output().set_value("led_23", BIT(data, 7));
+ m_leds[16] = BIT(data, 0); // select (ten up: collect)
+ m_leds[17] = BIT(data, 1); // (ten up: feature 14)
+ m_leds[18] = BIT(data, 2); // (ten up: feature 9)
+ m_leds[19] = BIT(data, 3); // (ten up: lamp a)
+ m_leds[20] = BIT(data, 4); // lamp c (ten up: lamp b)
+ m_leds[21] = BIT(data, 5); // lamp d (ten up: lamp c)
+ m_leds[22] = BIT(data, 6);
+ m_leds[23] = BIT(data, 7);
}
WRITE8_MEMBER( guab_state::output4_w )
{
- output().set_value("led_24", BIT(data, 0)); // feature 1 (ten up: feature 1)
- output().set_value("led_25", BIT(data, 1)); // feature 2 (ten up: feature 10)
- output().set_value("led_26", BIT(data, 2)); // feature 3 (ten up: feature 7)
- output().set_value("led_27", BIT(data, 3)); // feature 4 (ten up: feature 2)
- output().set_value("led_28", BIT(data, 4)); // feature 5 (ten up: feature 8)
- output().set_value("led_29", BIT(data, 5)); // feature 6 (ten up: feature 3)
- output().set_value("led_30", BIT(data, 6)); // feature 7 (ten up: feature 4)
- output().set_value("led_31", BIT(data, 7)); // feature 8 (ten up: feature 5)
+ m_leds[24] = BIT(data, 0); // feature 1 (ten up: feature 1)
+ m_leds[25] = BIT(data, 1); // feature 2 (ten up: feature 10)
+ m_leds[26] = BIT(data, 2); // feature 3 (ten up: feature 7)
+ m_leds[27] = BIT(data, 3); // feature 4 (ten up: feature 2)
+ m_leds[28] = BIT(data, 4); // feature 5 (ten up: feature 8)
+ m_leds[29] = BIT(data, 5); // feature 6 (ten up: feature 3)
+ m_leds[30] = BIT(data, 6); // feature 7 (ten up: feature 4)
+ m_leds[31] = BIT(data, 7); // feature 8 (ten up: feature 5)
}
WRITE8_MEMBER( guab_state::output5_w )
{
- output().set_value("led_32", BIT(data, 0));
- output().set_value("led_33", BIT(data, 1));
- output().set_value("led_34", BIT(data, 2));
- output().set_value("led_35", BIT(data, 3));
- output().set_value("led_36", BIT(data, 4));
- output().set_value("led_37", BIT(data, 5));
- output().set_value("led_38", BIT(data, 6));
- output().set_value("led_39", BIT(data, 7)); // mech lamp (ten up: mech lamp)
+ m_leds[32] = BIT(data, 0);
+ m_leds[33] = BIT(data, 1);
+ m_leds[34] = BIT(data, 2);
+ m_leds[35] = BIT(data, 3);
+ m_leds[36] = BIT(data, 4);
+ m_leds[37] = BIT(data, 5);
+ m_leds[38] = BIT(data, 6);
+ m_leds[39] = BIT(data, 7); // mech lamp (ten up: mech lamp)
}
WRITE8_MEMBER( guab_state::output6_w )
{
- output().set_value("led_40", BIT(data, 0));
- output().set_value("led_41", BIT(data, 1));
- output().set_value("led_42", BIT(data, 2));
- output().set_value("led_43", BIT(data, 3));
- output().set_value("led_44", BIT(data, 4)); // 50p drive (ten up: 10p drive)
- output().set_value("led_45", BIT(data, 5)); // 100p drive (ten up: 100p drive)
- output().set_value("led_46", BIT(data, 6));
- output().set_value("led_47", BIT(data, 7));
+ m_leds[40] = BIT(data, 0);
+ m_leds[41] = BIT(data, 1);
+ m_leds[42] = BIT(data, 2);
+ m_leds[43] = BIT(data, 3);
+ m_leds[44] = BIT(data, 4); // 50p drive (ten up: 10p drive)
+ m_leds[45] = BIT(data, 5); // 100p drive (ten up: 100p drive)
+ m_leds[46] = BIT(data, 6);
+ m_leds[47] = BIT(data, 7);
}
static DEVICE_INPUT_DEFAULTS_START( acia_1_rs232_defaults )