summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/hh_tms1k.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/hh_tms1k.cpp')
-rw-r--r--src/mame/drivers/hh_tms1k.cpp1105
1 files changed, 670 insertions, 435 deletions
diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp
index 81968875a22..a9246a2a36d 100644
--- a/src/mame/drivers/hh_tms1k.cpp
+++ b/src/mame/drivers/hh_tms1k.cpp
@@ -31,7 +31,7 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm
@MP0168 TMS1000 1979, Conic Multisport/Tandy Sports Arena (model 60-2158)
@MP0170 TMS1000 1979, Conic Football
*MP0220 TMS1000 1980, Tomy Teacher
- *MP0230 TMS1000 1980, Entex Blast It (6015)
+ @MP0230 TMS1000 1980, Entex Blast It (6015)
@MP0271 TMS1000 1982, Radio Shack Monkey See
@MP0907 TMS1000 1979, Conic Basketball (101-006)
@MP0908 TMS1000 1979, Conic Electronic I.Q.
@@ -211,6 +211,7 @@ TODO:
#include "bankshot.lh"
#include "bcheetah.lh"
#include "bigtrak.lh"
+#include "blastit.lh"
#include "bship.lh" // clickable
#include "cmsport.lh"
#include "cnbaskb.lh"
@@ -431,11 +432,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void matchnum(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void matchnum(machine_config &config);
};
// handlers
@@ -515,18 +518,18 @@ INPUT_PORTS_END
void matchnum_state::matchnum(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 325000); // approximation - RC osc. R=47K, C=47pF
m_maincpu->k().set(FUNC(matchnum_state::read_k));
m_maincpu->r().set(FUNC(matchnum_state::write_r));
m_maincpu->o().set(FUNC(matchnum_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(4, 8);
m_display->set_segmask(0xf, 0x7f);
config.set_default_layout(layout_matchnum);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
static const double speaker_levels[4] = { 0.0, 1.0, -1.0, 0.0 };
@@ -572,11 +575,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void arrball(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void arrball(machine_config &config);
};
// handlers
@@ -626,19 +631,19 @@ INPUT_PORTS_END
void arrball_state::arrball(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 325000); // approximation - RC osc. R=47K, C=47pF
m_maincpu->k().set(FUNC(arrball_state::read_k));
m_maincpu->r().set(FUNC(arrball_state::write_r));
m_maincpu->o().set(FUNC(arrball_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(7, 7);
m_display->set_segmask(0x10, 0x7f);
m_display->set_segmask(0x20, 0x06); // left digit only segments B and C
config.set_default_layout(layout_arrball);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
static const double speaker_levels[4] = { 0.0, 1.0, -1.0, 0.0 };
@@ -692,11 +697,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void mathmagi(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void mathmagi(machine_config &config);
};
// handlers
@@ -793,19 +800,19 @@ static const u16 mathmagi_output_pla[0x20] =
void mathmagi_state::mathmagi(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 175000); // approximation - RC osc. R=68K, C=82pF
m_maincpu->set_output_pla(mathmagi_output_pla);
m_maincpu->k().set(FUNC(mathmagi_state::read_k));
m_maincpu->r().set(FUNC(mathmagi_state::write_r));
m_maincpu->o().set(FUNC(mathmagi_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(11, 7);
m_display->set_segmask(0xff, 0x7f);
config.set_default_layout(layout_mathmagi);
- /* no sound! */
+ // no sound!
}
// roms
@@ -933,16 +940,15 @@ INPUT_PORTS_END
void bcheetah_state::bcheetah(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 100000); // approximation - RC osc. R=47K, C=47pF
m_maincpu->k().set(FUNC(bcheetah_state::read_k));
m_maincpu->r().set(FUNC(bcheetah_state::write_r));
m_maincpu->o().set(FUNC(bcheetah_state::write_o));
- /* no visual feedback! */
config.set_default_layout(layout_bcheetah);
- /* no sound! */
+ // no sound!
}
// roms
@@ -1099,18 +1105,18 @@ INPUT_PORTS_END
void palmf31_state::palmf31(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1040(config, m_maincpu, 250000); // approximation
m_maincpu->k().set(FUNC(palmf31_state::read_k));
m_maincpu->o().set(FUNC(palmf31_state::write_o));
m_maincpu->r().set(FUNC(palmf31_state::write_r));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 8);
m_display->set_segmask(0x1ff, 0xff);
config.set_default_layout(layout_palmf31);
- /* no sound! */
+ // no sound!
}
// roms
@@ -1267,18 +1273,18 @@ INPUT_PORTS_END
void palmmd8_state::palmmd8(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1070(config, m_maincpu, 250000); // approximation - RC osc. R=56K, C=68pf
m_maincpu->k().set(FUNC(palmmd8_state::read_k));
m_maincpu->o().set(FUNC(palmmd8_state::write_o));
m_maincpu->r().set(FUNC(palmmd8_state::write_r));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(21, 8);
m_display->set_segmask(0xfffff, 0xff);
config.set_default_layout(layout_palmmd8);
- /* no sound! */
+ // no sound!
}
// roms
@@ -1316,11 +1322,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void amaztron(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void amaztron(machine_config &config);
};
// handlers
@@ -1408,18 +1416,18 @@ INPUT_PORTS_END
void amaztron_state::amaztron(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 300000); // approximation - RC osc. R=33K?, C=100pF
m_maincpu->k().set(FUNC(amaztron_state::read_k));
m_maincpu->r().set(FUNC(amaztron_state::write_r));
m_maincpu->o().set(FUNC(amaztron_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(4, 7);
m_display->set_segmask(0xc, 0x7f);
config.set_default_layout(layout_amaztron);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -1459,11 +1467,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void zodiac(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void zodiac(machine_config &config);
};
// handlers
@@ -1561,18 +1571,18 @@ INPUT_PORTS_END
void zodiac_state::zodiac(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 500000); // approximation - RC osc. R=18K, C=100pF
m_maincpu->k().set(FUNC(zodiac_state::read_k));
m_maincpu->r().set(FUNC(zodiac_state::write_r));
m_maincpu->o().set(FUNC(zodiac_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(10, 8);
m_display->set_segmask(0xff, 0x7f);
config.set_default_layout(layout_zodiac);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -1616,11 +1626,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void cqback(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void cqback(machine_config &config);
};
// handlers
@@ -1692,19 +1704,19 @@ INPUT_PORTS_END
void cqback_state::cqback(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 310000); // approximation - RC osc. R=33K, C=100pF
m_maincpu->k().set(FUNC(cqback_state::read_k));
m_maincpu->r().set(FUNC(cqback_state::write_r));
m_maincpu->o().set(FUNC(cqback_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 11);
m_display->set_segmask(0x1ff, 0xff);
m_display->set_bri_levels(0.003, 0.03); // offense leds are brighter
config.set_default_layout(layout_cqback);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -1748,11 +1760,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void h2hfootb(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void h2hfootb(machine_config &config);
};
// handlers
@@ -1824,19 +1838,19 @@ INPUT_PORTS_END
void h2hfootb_state::h2hfootb(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 310000); // approximation - RC osc. R=39K, C=100pF
m_maincpu->k().set(FUNC(h2hfootb_state::read_k));
m_maincpu->r().set(FUNC(h2hfootb_state::write_r));
m_maincpu->o().set(FUNC(h2hfootb_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 9);
m_display->set_segmask(0x1ff, 0x7f);
m_display->set_bri_levels(0.003, 0.03); // offense leds are brighter
config.set_default_layout(layout_h2hfootb);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -1881,30 +1895,29 @@ public:
m_cap_empty_timer(*this, "cap_empty")
{ }
+ void h2hbaskb(machine_config &config);
+ void h2hhockey(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+
+private:
required_device<timer_device> m_cap_empty_timer;
TIMER_DEVICE_CALLBACK_MEMBER(cap_empty_callback);
- bool m_cap_state;
- attotime m_cap_charge;
+ bool m_cap_state = false;
+ attotime m_cap_charge = attotime::zero;
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void h2hbaskb(machine_config &config);
- void h2hhockey(machine_config &config);
-
-protected:
- virtual void machine_start() override;
};
void h2hbaskb_state::machine_start()
{
hh_tms1k_state::machine_start();
- // zerofill/register for savestates
- m_cap_state = false;
- m_cap_charge = attotime::zero;
-
+ // register for savestates
save_item(NAME(m_cap_state));
save_item(NAME(m_cap_charge));
}
@@ -2011,7 +2024,7 @@ INPUT_PORTS_END
void h2hbaskb_state::h2hbaskb(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 375000); // approximation - RC osc. R=43K, C=100pF
m_maincpu->k().set(FUNC(h2hbaskb_state::read_k));
m_maincpu->r().set(FUNC(h2hbaskb_state::write_r));
@@ -2019,12 +2032,12 @@ void h2hbaskb_state::h2hbaskb(machine_config &config)
TIMER(config, "cap_empty").configure_generic(FUNC(h2hbaskb_state::cap_empty_callback));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(6+6, 7);
m_display->set_segmask(0xc0, 0x7f);
config.set_default_layout(layout_h2hbaskb);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -2082,17 +2095,19 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
- void update_display();
- void write_r(u16 data);
- void write_o(u16 data);
- u8 read_k();
+ void h2hbaseb(machine_config &config);
- void set_clock();
DECLARE_INPUT_CHANGED_MEMBER(skill_switch) { set_clock(); }
- void h2hbaseb(machine_config &config);
protected:
virtual void machine_reset() override;
+
+private:
+ void set_clock();
+ void update_display();
+ void write_r(u16 data);
+ void write_o(u16 data);
+ u8 read_k();
};
void h2hbaseb_state::machine_reset()
@@ -2176,18 +2191,18 @@ INPUT_PORTS_END
void h2hbaseb_state::h2hbaseb(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1170(config, m_maincpu, 350000); // see set_clock
m_maincpu->k().set(FUNC(h2hbaseb_state::read_k));
m_maincpu->r().set(FUNC(h2hbaseb_state::write_r));
m_maincpu->o().set(FUNC(h2hbaseb_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 9);
m_display->set_segmask(0x1ff, 0x7f);
config.set_default_layout(layout_h2hbaseb);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -2226,11 +2241,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void h2hboxing(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void h2hboxing(machine_config &config);
};
// handlers
@@ -2301,18 +2318,18 @@ INPUT_PORTS_END
void h2hboxing_state::h2hboxing(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 350000); // approximation - RC osc. R=39K, C=100pF
m_maincpu->k().set(FUNC(h2hboxing_state::read_k));
m_maincpu->r().set(FUNC(h2hboxing_state::write_r));
m_maincpu->o().set(FUNC(h2hboxing_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(11, 8);
m_display->set_segmask(0x600, 0x7f);
config.set_default_layout(layout_h2hboxing);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -2367,6 +2384,12 @@ public:
m_pinout(0)
{ }
+ void quizwizc(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+
+private:
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
u16 m_pinout; // cartridge R pins
@@ -2374,10 +2397,6 @@ public:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void quizwizc(machine_config &config);
-
-protected:
- virtual void machine_start() override;
};
void quizwizc_state::machine_start()
@@ -2483,23 +2502,23 @@ INPUT_PORTS_END
void quizwizc_state::quizwizc(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 300000); // approximation - RC osc. R=43K, C=100pF
m_maincpu->k().set(FUNC(quizwizc_state::read_k));
m_maincpu->r().set(FUNC(quizwizc_state::write_r));
m_maincpu->o().set(FUNC(quizwizc_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(10+1, 8);
m_display->set_segmask(0x3c0, 0x7f);
config.set_default_layout(layout_quizwizc);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
- /* cartridge */
+ // cartridge
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "quizwiz_cart"));
cartslot.set_must_be_loaded(true);
cartslot.set_device_load(FUNC(quizwizc_state::cart_load));
@@ -2555,6 +2574,12 @@ public:
m_pinout(0)
{ }
+ void tc4(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+
+private:
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
u8 m_pinout; // cartridge K pins
@@ -2562,10 +2587,6 @@ public:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void tc4(machine_config &config);
-
-protected:
- virtual void machine_start() override;
};
void tc4_state::machine_start()
@@ -2670,24 +2691,24 @@ INPUT_PORTS_END
void tc4_state::tc4(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1400(config, m_maincpu, 450000); // approximation - RC osc. R=27.3K, C=100pF
m_maincpu->k().set(FUNC(tc4_state::read_k));
m_maincpu->r().set(FUNC(tc4_state::write_r));
m_maincpu->o().set(FUNC(tc4_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(10, 9);
m_display->set_segmask(0x3a0, 0x7f);
m_display->set_bri_levels(0.005, 0.05); // offense leds are brighter
config.set_default_layout(layout_tc4);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
- /* cartridge */
+ // cartridge
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "tc4_cart"));
cartslot.set_must_be_loaded(true); // system won't power on without cartridge
cartslot.set_device_load(FUNC(tc4_state::cart_load));
@@ -2734,11 +2755,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void cnbaskb(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void cnbaskb(machine_config &config);
};
// handlers
@@ -2800,19 +2823,19 @@ INPUT_PORTS_END
void cnbaskb_state::cnbaskb(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 375000); // approximation - RC osc. R=39K, C=47pF
m_maincpu->k().set(FUNC(cnbaskb_state::read_k));
m_maincpu->r().set(FUNC(cnbaskb_state::write_r));
m_maincpu->o().set(FUNC(cnbaskb_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 7);
m_display->set_segmask(0x180, 0x7f);
m_display->set_bri_levels(0.01, 0.1); // player led is brighter
config.set_default_layout(layout_cnbaskb);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -2859,11 +2882,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void cmsport(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void cmsport(machine_config &config);
};
// handlers
@@ -2927,19 +2952,19 @@ INPUT_PORTS_END
void cmsport_state::cmsport(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 350000); // approximation - RC osc. R=47K, C=47pF
m_maincpu->k().set(FUNC(cmsport_state::read_k));
m_maincpu->r().set(FUNC(cmsport_state::write_r));
m_maincpu->o().set(FUNC(cmsport_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 8);
m_display->set_segmask(0x60, 0x7f);
m_display->set_bri_levels(0.01, 0.1); // player led is brighter
config.set_default_layout(layout_cmsport);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -2989,6 +3014,9 @@ public:
m_ds8874(*this, "ds8874")
{ }
+ void cnfball(machine_config &config);
+
+private:
required_device<ds8874_device> m_ds8874;
void ds8874_output_w(u16 data);
@@ -2996,7 +3024,6 @@ public:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void cnfball(machine_config &config);
};
// handlers
@@ -3068,13 +3095,13 @@ INPUT_PORTS_END
void cnfball_state::cnfball(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 350000); // approximation - RC osc. R=39K, C=47pF
m_maincpu->k().set(FUNC(cnfball_state::read_k));
m_maincpu->r().set(FUNC(cnfball_state::write_r));
m_maincpu->o().set(FUNC(cnfball_state::write_o));
- /* video hardware */
+ // video hardware
DS8874(config, m_ds8874).write_output().set(FUNC(cnfball_state::ds8874_output_w));
PWM_DISPLAY(config, m_display).set_size(9, 8+3);
m_display->set_segmask(0xc3, 0x7f);
@@ -3082,7 +3109,7 @@ void cnfball_state::cnfball(machine_config &config)
m_display->set_bri_levels(0.01, 0.1); // player led is brighter
config.set_default_layout(layout_cnfball);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
static const double speaker_levels[4] = { 0.0, 1.0, -1.0, 0.0 };
@@ -3129,11 +3156,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void cnfball2(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void cnfball2(machine_config &config);
};
// handlers
@@ -3202,18 +3231,18 @@ INPUT_PORTS_END
void cnfball2_state::cnfball2(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 325000); // approximation - RC osc. R=47K, C=47pF
m_maincpu->k().set(FUNC(cnfball2_state::read_k));
m_maincpu->r().set(FUNC(cnfball2_state::write_r));
m_maincpu->o().set(FUNC(cnfball2_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 11);
m_display->set_segmask(0x1ff, 0xff);
config.set_default_layout(layout_cnfball2);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -3261,11 +3290,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void eleciq(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void eleciq(machine_config &config);
};
// handlers
@@ -3351,18 +3382,18 @@ INPUT_PORTS_END
void eleciq_state::eleciq(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 325000); // approximation - RC osc. R=47K, C=50pF
m_maincpu->k().set(FUNC(eleciq_state::read_k));
m_maincpu->r().set(FUNC(eleciq_state::write_r));
m_maincpu->o().set(FUNC(eleciq_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 7);
m_display->set_segmask(0x180, 0x7f);
config.set_default_layout(layout_eleciq);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -3403,10 +3434,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void qfire(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void qfire(machine_config &config);
};
// handlers
@@ -3465,18 +3498,18 @@ INPUT_PORTS_END
void qfire_state::qfire(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 375000); // approximation - RC osc. R=39K, C=47pF
m_maincpu->k().set(FUNC(qfire_state::read_k));
m_maincpu->r().set(FUNC(qfire_state::write_r));
m_maincpu->o().set(FUNC(qfire_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(3, 7);
m_display->set_segmask(3, 0x7f);
config.set_default_layout(layout_qfire);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -3517,11 +3550,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void esoccer(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void esoccer(machine_config &config);
};
// handlers
@@ -3583,19 +3618,19 @@ INPUT_PORTS_END
void esoccer_state::esoccer(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 350000); // approximation - RC osc. R=47K, C=33pF
m_maincpu->k().set(FUNC(esoccer_state::read_k));
m_maincpu->r().set(FUNC(esoccer_state::write_r));
m_maincpu->o().set(FUNC(esoccer_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(10, 7);
m_display->set_segmask(0x300, 0x7f);
m_display->set_bri_levels(0.01, 0.1); // player led is brighter
config.set_default_layout(layout_esoccer);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -3655,11 +3690,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void ebball(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void ebball(machine_config &config);
};
// handlers
@@ -3731,18 +3768,18 @@ INPUT_PORTS_END
void ebball_state::ebball(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 375000); // approximation - RC osc. R=43K, C=47pF
m_maincpu->k().set(FUNC(ebball_state::read_k));
m_maincpu->r().set(FUNC(ebball_state::write_r));
m_maincpu->o().set(FUNC(ebball_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 7);
m_display->set_segmask(0x100, 0x7f);
config.set_default_layout(layout_ebball);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -3798,11 +3835,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void ebball2(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void ebball2(machine_config &config);
};
// handlers
@@ -3867,18 +3906,18 @@ INPUT_PORTS_END
void ebball2_state::ebball2(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 350000); // approximation - RC osc. R=47K, C=47pF
m_maincpu->k().set(FUNC(ebball2_state::read_k));
m_maincpu->r().set(FUNC(ebball2_state::write_r));
m_maincpu->o().set(FUNC(ebball2_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(10, 8);
m_display->set_segmask(7, 0x7f);
config.set_default_layout(layout_ebball2);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -3939,17 +3978,19 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
- void update_display();
- void write_r(u16 data);
- void write_o(u16 data);
- u8 read_k();
+ void ebball3(machine_config &config);
- void set_clock();
DECLARE_INPUT_CHANGED_MEMBER(skill_switch) { set_clock(); }
- void ebball3(machine_config &config);
protected:
virtual void machine_reset() override;
+
+private:
+ void set_clock();
+ void update_display();
+ void write_r(u16 data);
+ void write_o(u16 data);
+ u8 read_k();
};
void ebball3_state::machine_reset()
@@ -4036,32 +4077,32 @@ static INPUT_PORTS_START( ebball3 )
PORT_START("IN.2") // R2
PORT_CONFNAME( 0x01, 0x01, DEF_STR( Players ) )
- PORT_CONFSETTING( 0x01, "1" ) // Auto
- PORT_CONFSETTING( 0x00, "2" ) // Manual
+ PORT_CONFSETTING( 0x01, "1" ) // AUTO
+ PORT_CONFSETTING( 0x00, "2" ) // MAN
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Bunt")
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.3") // fake
PORT_CONFNAME( 0x01, 0x00, DEF_STR( Difficulty ) ) PORT_CHANGED_MEMBER(DEVICE_SELF, ebball3_state, skill_switch, 0)
- PORT_CONFSETTING( 0x00, "Amateur" )
- PORT_CONFSETTING( 0x01, "Professional" )
+ PORT_CONFSETTING( 0x00, "1" ) // AM
+ PORT_CONFSETTING( 0x01, "2" ) // PRO
INPUT_PORTS_END
void ebball3_state::ebball3(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 340000); // see set_clock
m_maincpu->k().set(FUNC(ebball3_state::read_k));
m_maincpu->r().set(FUNC(ebball3_state::write_r));
m_maincpu->o().set(FUNC(ebball3_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(10+2, 7);
m_display->set_segmask(3, 0x7f);
m_display->set_segmask(0xc00, 0x22);
config.set_default_layout(layout_ebball3);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -4113,11 +4154,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void esbattle(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void esbattle(machine_config &config);
};
// handlers
@@ -4174,18 +4217,18 @@ INPUT_PORTS_END
void esbattle_state::esbattle(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 425000); // approximation - RC osc. R=47K, C=33pF
m_maincpu->k().set(FUNC(esbattle_state::read_k));
m_maincpu->r().set(FUNC(esbattle_state::write_r));
m_maincpu->o().set(FUNC(esbattle_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(10, 8);
m_display->set_segmask(0x300, 0x7f);
config.set_default_layout(layout_esbattle);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -4209,6 +4252,112 @@ ROM_END
/***************************************************************************
+ Entex Blast It
+ * TMS1000 MP0230 (die label 1000B, MP0230)
+ * 3 7seg LEDs, 49 other LEDs (both under an overlay mask), 1-bit sound
+
+***************************************************************************/
+
+class blastit_state : public hh_tms1k_state
+{
+public:
+ blastit_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_tms1k_state(mconfig, type, tag)
+ { }
+
+ void blastit(machine_config &config);
+
+private:
+ void update_display();
+ void write_r(u16 data);
+ void write_o(u16 data);
+ u8 read_k();
+};
+
+// handlers
+
+void blastit_state::update_display()
+{
+ m_display->matrix(m_r >> 1, m_o);
+}
+
+void blastit_state::write_r(u16 data)
+{
+ // R3: input mux
+ m_inp_mux = data >> 3 & 1;
+
+ // R0: speaker out
+ m_speaker->level_w(data & 1);
+
+ // R1-R7: led select
+ // R8-R10: digit select
+ m_r = data;
+ update_display();
+}
+
+void blastit_state::write_o(u16 data)
+{
+ // O0-O6: led state
+ m_o = data;
+ update_display();
+}
+
+u8 blastit_state::read_k()
+{
+ // K: multiplexed inputs
+ return read_inputs(1);
+}
+
+// config
+
+static INPUT_PORTS_START( blastit )
+ PORT_START("IN.0") // R3
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
+ PORT_CONFNAME( 0x08, 0x08, DEF_STR( Difficulty ) )
+ PORT_CONFSETTING( 0x08, "1" ) // AM
+ PORT_CONFSETTING( 0x00, "2" ) // PRO
+INPUT_PORTS_END
+
+void blastit_state::blastit(machine_config &config)
+{
+ // basic machine hardware
+ TMS1000(config, m_maincpu, 425000); // approximation - RC osc. R=47K, C=33pF
+ m_maincpu->k().set(FUNC(blastit_state::read_k));
+ m_maincpu->r().set(FUNC(blastit_state::write_r));
+ m_maincpu->o().set(FUNC(blastit_state::write_o));
+
+ // video hardware
+ PWM_DISPLAY(config, m_display).set_size(10, 7);
+ m_display->set_segmask(0x380, 0x7f);
+ m_display->set_bri_levels(0.01, 0.115); // ball/paddle is slightly brighter
+ config.set_default_layout(layout_blastit);
+
+ // sound hardware
+ SPEAKER(config, "mono").front_center();
+ SPEAKER_SOUND(config, m_speaker);
+ m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
+}
+
+// roms
+
+ROM_START( blastit )
+ ROM_REGION( 0x0400, "maincpu", 0 )
+ ROM_LOAD( "mp0230", 0x0000, 0x0400, CRC(1eb5f473) SHA1(76cd8c0e04368aa2150d428018643e1d0b9adda0) )
+
+ ROM_REGION( 867, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms1000_common2_micro.pla", 0, 867, CRC(d33da3cf) SHA1(13c4ebbca227818db75e6db0d45b66ba5e207776) )
+ ROM_REGION( 365, "maincpu:opla", 0 )
+ ROM_LOAD( "tms1000_blastit_output.pla", 0, 365, CRC(fa8081df) SHA1(99706d5ad58a76d47446576fac18964e602171c8) )
+ROM_END
+
+
+
+
+
+/***************************************************************************
+
Entex Space Invader
* TMS1100 MP1211 (die label same)
* 3 7seg LEDs, LED matrix and overlay mask, 1-bit sound
@@ -4226,16 +4375,17 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
- void update_display();
- void write_r(u16 data);
- void write_o(u16 data);
-
- void set_clock();
DECLARE_INPUT_CHANGED_MEMBER(skill_switch) { set_clock(); }
void einvader(machine_config &config);
protected:
virtual void machine_reset() override;
+
+private:
+ void set_clock();
+ void update_display();
+ void write_r(u16 data);
+ void write_o(u16 data);
};
void einvader_state::machine_reset()
@@ -4285,19 +4435,19 @@ static INPUT_PORTS_START( einvader )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
PORT_CONFNAME( 0x08, 0x00, DEF_STR( Difficulty ) ) PORT_CHANGED_MEMBER(DEVICE_SELF, einvader_state, skill_switch, 0)
- PORT_CONFSETTING( 0x00, "Amateur" )
- PORT_CONFSETTING( 0x08, "Professional" )
+ PORT_CONFSETTING( 0x00, "1" ) // amateur
+ PORT_CONFSETTING( 0x08, "2" ) // professional
INPUT_PORTS_END
void einvader_state::einvader(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 320000); // see set_clock
m_maincpu->k().set_ioport("IN.0");
m_maincpu->r().set(FUNC(einvader_state::write_r));
m_maincpu->o().set(FUNC(einvader_state::write_o));
- /* video hardware */
+ // video hardware
screen_device &mask(SCREEN(config, "mask", SCREEN_TYPE_SVG));
mask.set_refresh_hz(60);
mask.set_size(945, 1080);
@@ -4308,7 +4458,7 @@ void einvader_state::einvader(machine_config &config)
m_display->set_bri_levels(0.01, 0.1); // ufo/player explosion is brighter
config.set_default_layout(layout_einvader);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -4350,11 +4500,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void efootb4(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void efootb4(machine_config &config);
};
// handlers
@@ -4422,21 +4574,21 @@ static INPUT_PORTS_START( efootb4 )
PORT_CONFSETTING( 0x01, "1" ) // Auto
PORT_CONFSETTING( 0x00, "2" ) // Manual
PORT_CONFNAME( 0x02, 0x00, DEF_STR( Difficulty ) )
- PORT_CONFSETTING( 0x00, "Amateur" )
- PORT_CONFSETTING( 0x02, "Professional" )
+ PORT_CONFSETTING( 0x00, "1" ) // amateur
+ PORT_CONFSETTING( 0x02, "2" ) // professional
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START ) PORT_NAME("Status")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
void efootb4_state::efootb4(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1670(config, m_maincpu, 400000); // approximation - RC osc. R=42K, C=47pF
m_maincpu->k().set(FUNC(efootb4_state::read_k));
m_maincpu->r().set(FUNC(efootb4_state::write_r));
m_maincpu->o().set(FUNC(efootb4_state::write_o));
- /* video hardware */
+ // video hardware
screen_device &mask(SCREEN(config, "mask", SCREEN_TYPE_SVG));
mask.set_refresh_hz(60);
mask.set_size(1920, 904);
@@ -4446,7 +4598,7 @@ void efootb4_state::efootb4(machine_config &config)
m_display->set_segmask(0xfc00, 0x7f);
config.set_default_layout(layout_efootb4);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -4498,11 +4650,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void ebaskb2(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void ebaskb2(machine_config &config);
};
// handlers
@@ -4544,8 +4698,8 @@ u8 ebaskb2_state::read_k()
static INPUT_PORTS_START( ebaskb2 )
PORT_START("IN.0") // R6
PORT_CONFNAME( 0x01, 0x01, DEF_STR( Difficulty ) )
- PORT_CONFSETTING( 0x01, "Amateur" )
- PORT_CONFSETTING( 0x00, "Professional" )
+ PORT_CONFSETTING( 0x01, "1" ) // amateur
+ PORT_CONFSETTING( 0x00, "2" ) // professional
PORT_CONFNAME( 0x02, 0x02, DEF_STR( Players ) )
PORT_CONFSETTING( 0x02, "1" ) // Auto
PORT_CONFSETTING( 0x00, "2" ) // Manual
@@ -4572,19 +4726,19 @@ INPUT_PORTS_END
void ebaskb2_state::ebaskb2(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 360000); // approximation - RC osc. R=33K, C=82pF
m_maincpu->k().set(FUNC(ebaskb2_state::read_k));
m_maincpu->r().set(FUNC(ebaskb2_state::write_r));
m_maincpu->o().set(FUNC(ebaskb2_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(10, 7);
m_display->set_segmask(0xf, 0x7f);
m_display->set_bri_levels(0.01, 0.1); // ball carrier led is brighter
config.set_default_layout(layout_ebaskb2);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -4641,18 +4795,20 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
- void update_display();
- void write_r(u16 data);
- void write_o(u16 data);
- u8 read_k();
-
- void set_clock();
- DECLARE_INPUT_CHANGED_MEMBER(skill_switch) { set_clock(); }
void raisedvl(machine_config &config);
void ebknight(machine_config &config);
+ DECLARE_INPUT_CHANGED_MEMBER(skill_switch) { set_clock(); }
+
protected:
virtual void machine_reset() override;
+
+private:
+ void set_clock();
+ void update_display();
+ void write_r(u16 data);
+ void write_o(u16 data);
+ u8 read_k();
};
void raisedvl_state::machine_reset()
@@ -4726,18 +4882,18 @@ INPUT_PORTS_END
void raisedvl_state::raisedvl(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 350000); // see set_clock
m_maincpu->k().set(FUNC(raisedvl_state::read_k));
m_maincpu->r().set(FUNC(raisedvl_state::write_r));
m_maincpu->o().set(FUNC(raisedvl_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(10, 7);
m_display->set_segmask(7, 0x7f);
config.set_default_layout(layout_raisedvl);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -4808,11 +4964,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void f2pbball(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void f2pbball(machine_config &config);
};
// handlers
@@ -4878,18 +5036,18 @@ INPUT_PORTS_END
void f2pbball_state::f2pbball(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 325000); // approximation - RC osc. R=51K, C=39pF
m_maincpu->k().set(FUNC(f2pbball_state::read_k));
m_maincpu->r().set(FUNC(f2pbball_state::write_r));
m_maincpu->o().set(FUNC(f2pbball_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 8);
m_display->set_segmask(0x1e0, 0x7f);
config.set_default_layout(layout_f2pbball);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -4930,17 +5088,19 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
- void update_display();
- void write_r(u16 data);
- void write_o(u16 data);
- u8 read_k();
+ void f3in1(machine_config &config);
- void set_clock();
DECLARE_INPUT_CHANGED_MEMBER(skill_switch) { set_clock(); }
- void f3in1(machine_config &config);
protected:
virtual void machine_reset() override;
+
+private:
+ void set_clock();
+ void update_display();
+ void write_r(u16 data);
+ void write_o(u16 data);
+ u8 read_k();
};
void f3in1_state::machine_reset()
@@ -5017,25 +5177,25 @@ static INPUT_PORTS_START( f3in1 )
PORT_START("IN.4") // fake
PORT_CONFNAME( 0x01, 0x00, DEF_STR( Difficulty ) ) PORT_CHANGED_MEMBER(DEVICE_SELF, f3in1_state, skill_switch, 0)
- PORT_CONFSETTING( 0x00, "Regular" ) // REG
- PORT_CONFSETTING( 0x01, "Professional" ) // PROF
+ PORT_CONFSETTING( 0x00, "1" ) // REG
+ PORT_CONFSETTING( 0x01, "2" ) // PROF
INPUT_PORTS_END
void f3in1_state::f3in1(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 300000); // see set_clock
m_maincpu->k().set(FUNC(f3in1_state::read_k));
m_maincpu->r().set(FUNC(f3in1_state::write_r));
m_maincpu->o().set(FUNC(f3in1_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(10, 8);
m_display->set_segmask(0x3c0, 0x7f);
m_display->set_bri_levels(0.003, 0.05); // player led is brighter
config.set_default_layout(layout_f3in1);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -5078,16 +5238,17 @@ public:
m_beeper(*this, "beeper")
{ }
+ void gpoker(machine_config &config);
+
+protected:
+ virtual void machine_reset() override;
+
required_device<beep_device> m_beeper;
void update_display();
virtual void write_r(u16 data);
virtual void write_o(u16 data);
virtual u8 read_k();
- void gpoker(machine_config &config);
-
-protected:
- virtual void machine_reset() override;
};
void gpoker_state::machine_reset()
@@ -5186,18 +5347,18 @@ INPUT_PORTS_END
void gpoker_state::gpoker(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1370(config, m_maincpu, 375000); // approximation - RC osc. R=47K, C=47pF
m_maincpu->k().set(FUNC(gpoker_state::read_k));
m_maincpu->r().set(FUNC(gpoker_state::write_r));
m_maincpu->o().set(FUNC(gpoker_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(11, 14);
m_display->set_segmask(0x7ff, 0x20ff); // 7seg + bottom-right diagonal
config.set_default_layout(layout_gpoker);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
BEEP(config, m_beeper, 2400); // astable multivibrator - C1 and C2 are 0.003uF, R1 and R4 are 1K, R2 and R3 are 100K
m_beeper->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -5239,8 +5400,10 @@ public:
gpoker_state(mconfig, type, tag)
{ }
- virtual void write_r(u16 data) override;
void gjackpot(machine_config &config);
+
+private:
+ virtual void write_r(u16 data) override;
};
// handlers
@@ -5315,11 +5478,11 @@ void gjackpot_state::gjackpot(machine_config &config)
{
gpoker(config);
- /* basic machine hardware */
+ // basic machine hardware
TMS1670(config.replace(), m_maincpu, 375000); // approximation - RC osc. R=47K, C=47pF
- m_maincpu->k().set(FUNC(gpoker_state::read_k));
+ m_maincpu->k().set(FUNC(gjackpot_state::read_k));
m_maincpu->r().set(FUNC(gjackpot_state::write_r));
- m_maincpu->o().set(FUNC(gpoker_state::write_o));
+ m_maincpu->o().set(FUNC(gjackpot_state::write_o));
config.set_default_layout(layout_gjackpot);
}
@@ -5365,11 +5528,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void ginv(machine_config &config);
+
+private:
void update_display();
virtual void write_r(u16 data);
virtual void write_o(u16 data);
virtual u8 read_k();
- void ginv(machine_config &config);
};
// handlers
@@ -5429,13 +5594,13 @@ INPUT_PORTS_END
void ginv_state::ginv(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1370(config, m_maincpu, 350000); // approximation - RC osc. R=47K, C=47pF
m_maincpu->k().set(FUNC(ginv_state::read_k));
m_maincpu->r().set(FUNC(ginv_state::write_r));
m_maincpu->o().set(FUNC(ginv_state::write_o));
- /* video hardware */
+ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
screen.set_refresh_hz(60);
screen.set_size(236, 1080);
@@ -5443,7 +5608,7 @@ void ginv_state::ginv(machine_config &config)
PWM_DISPLAY(config, m_display).set_size(9, 12);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -5489,11 +5654,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void ginv1000(machine_config &config);
+
+private:
void update_display();
virtual void write_r(u16 data);
virtual void write_o(u16 data);
virtual u8 read_k();
- void ginv1000(machine_config &config);
};
// handlers
@@ -5554,13 +5721,13 @@ INPUT_PORTS_END
void ginv1000_state::ginv1000(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1370(config, m_maincpu, 350000); // approximation
m_maincpu->k().set(FUNC(ginv1000_state::read_k));
m_maincpu->r().set(FUNC(ginv1000_state::write_r));
m_maincpu->o().set(FUNC(ginv1000_state::write_o));
- /* video hardware */
+ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
screen.set_refresh_hz(60);
screen.set_size(226, 1080);
@@ -5568,7 +5735,7 @@ void ginv1000_state::ginv1000(machine_config &config)
PWM_DISPLAY(config, m_display).set_size(10, 12);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -5615,6 +5782,9 @@ public:
m_expander(*this, "expander")
{ }
+ void ginv2000(machine_config &config);
+
+private:
required_device<tms1024_device> m_expander;
void expander_w(offs_t offset, u8 data);
@@ -5622,7 +5792,6 @@ public:
virtual void write_r(u16 data);
virtual void write_o(u16 data);
virtual u8 read_k();
- void ginv2000(machine_config &config);
};
// handlers
@@ -5690,7 +5859,7 @@ INPUT_PORTS_END
void ginv2000_state::ginv2000(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1370(config, m_maincpu, 425000); // approximation - RC osc. R=36K, C=47pF
m_maincpu->k().set(FUNC(ginv2000_state::read_k));
m_maincpu->r().set(FUNC(ginv2000_state::write_r));
@@ -5702,7 +5871,7 @@ void ginv2000_state::ginv2000(machine_config &config)
m_expander->write_port6_callback().set(FUNC(ginv2000_state::expander_w));
m_expander->write_port7_callback().set(FUNC(ginv2000_state::expander_w));
- /* video hardware */
+ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
screen.set_refresh_hz(60);
screen.set_size(364, 1080);
@@ -5710,7 +5879,7 @@ void ginv2000_state::ginv2000(machine_config &config)
PWM_DISPLAY(config, m_display).set_size(10, 16);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -5760,11 +5929,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void fxmcr165(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void fxmcr165(machine_config &config);
};
// handlers
@@ -5851,18 +6022,18 @@ INPUT_PORTS_END
void fxmcr165_state::fxmcr165(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 400_kHz_XTAL);
m_maincpu->k().set(FUNC(fxmcr165_state::read_k));
m_maincpu->r().set(FUNC(fxmcr165_state::write_r));
m_maincpu->o().set(FUNC(fxmcr165_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1+1, 7);
m_display->set_segmask(1, 0x7f);
config.set_default_layout(layout_fxmcr165);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -5906,10 +6077,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void elecdet(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void elecdet(machine_config &config);
};
// handlers
@@ -5990,19 +6163,19 @@ INPUT_PORTS_END
void elecdet_state::elecdet(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS0980(config, m_maincpu, 425000); // approximation
m_maincpu->k().set(FUNC(elecdet_state::read_k));
m_maincpu->r().set(FUNC(elecdet_state::write_r));
m_maincpu->o().set(FUNC(elecdet_state::write_o));
- m_maincpu->power_off().set(FUNC(hh_tms1k_state::auto_power_off));
+ m_maincpu->power_off().set(FUNC(elecdet_state::auto_power_off));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(7, 7);
m_display->set_segmask(0x7f, 0x7f);
config.set_default_layout(layout_elecdet);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
static const double speaker_levels[4] = { 0.0, 0.5, 0.5, 1.0};
@@ -6049,11 +6222,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void starwbc(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void starwbc(machine_config &config);
};
// handlers
@@ -6136,18 +6311,18 @@ INPUT_PORTS_END
void starwbc_state::starwbc(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 350000); // approximation - RC osc. R=51K, C=47pF
m_maincpu->k().set(FUNC(starwbc_state::read_k));
m_maincpu->r().set(FUNC(starwbc_state::write_r));
m_maincpu->o().set(FUNC(starwbc_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(10, 8);
m_display->set_segmask(0x140, 0x7f);
config.set_default_layout(layout_starwbc);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -6197,11 +6372,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void astro(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void astro(machine_config &config);
};
// handlers
@@ -6286,18 +6463,18 @@ INPUT_PORTS_END
void astro_state::astro(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1470(config, m_maincpu, 450000); // approximation - RC osc. R=4.7K, C=33pF
m_maincpu->k().set(FUNC(astro_state::read_k));
m_maincpu->r().set(FUNC(astro_state::write_r));
m_maincpu->o().set(FUNC(astro_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(10, 8);
m_display->set_segmask(0x3ff, 0xff);
config.set_default_layout(layout_astro);
- /* no sound! */
+ // no sound!
}
// roms
@@ -6349,11 +6526,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void elecbowl(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void elecbowl(machine_config &config);
};
// handlers
@@ -6447,20 +6626,20 @@ static const u16 elecbowl_output_pla[0x20] =
void elecbowl_state::elecbowl(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 350000); // approximation - RC osc. R=33K, C=100pF
m_maincpu->set_output_pla(elecbowl_output_pla);
m_maincpu->k().set(FUNC(elecbowl_state::read_k));
m_maincpu->r().set(FUNC(elecbowl_state::write_r));
m_maincpu->o().set(FUNC(elecbowl_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(7, 8);
m_display->set_segmask(0xf, 0x7f);
m_display->set_segmask(0x10, 0x06); // 1
config.set_default_layout(layout_elecbowl);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -6505,12 +6684,14 @@ public:
m_lcd(*this, "lcd")
{ }
+ void horseran(machine_config &config);
+
+private:
required_device<hlcd0569_device> m_lcd;
void lcd_output_w(offs_t offset, u32 data);
void write_r(u16 data);
u8 read_k();
- void horseran(machine_config &config);
};
// handlers
@@ -6613,12 +6794,12 @@ INPUT_PORTS_END
void horseran_state::horseran(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 300000); // approximation - RC osc. R=56K, C=47pF
m_maincpu->k().set(FUNC(horseran_state::read_k));
m_maincpu->r().set(FUNC(horseran_state::write_r));
- /* video hardware */
+ // video hardware
HLCD0569(config, m_lcd, 1100); // C=0.022uF
m_lcd->write_cols().set(FUNC(horseran_state::lcd_output_w));
@@ -6626,7 +6807,7 @@ void horseran_state::horseran(machine_config &config)
m_display->set_segmask(0x3f<<3, 0x7f);
config.set_default_layout(layout_horseran);
- /* no sound! */
+ // no sound!
}
// roms
@@ -6663,10 +6844,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void mdndclab(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void mdndclab(machine_config &config);
};
// handlers
@@ -6806,16 +6989,15 @@ INPUT_PORTS_END
void mdndclab_state::mdndclab(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 475000); // approximation - RC osc. R=27K, C=100pF
m_maincpu->k().set(FUNC(mdndclab_state::read_k));
m_maincpu->r().set(FUNC(mdndclab_state::write_r));
m_maincpu->o().set(FUNC(mdndclab_state::write_o));
- /* no visual feedback! */
config.set_default_layout(layout_mdndclab); // playing board
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -6862,10 +7044,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void comp4(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void comp4(machine_config &config);
};
// handlers
@@ -6921,17 +7105,17 @@ INPUT_PORTS_END
void comp4_state::comp4(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS0970(config, m_maincpu, 250000); // approximation
m_maincpu->k().set(FUNC(comp4_state::read_k));
m_maincpu->r().set(FUNC(comp4_state::write_r));
m_maincpu->o().set(FUNC(comp4_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 11);
config.set_default_layout(layout_comp4);
- /* no sound! */
+ // no sound!
}
// roms
@@ -6982,10 +7166,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void bship(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void bship(machine_config &config);
};
// handlers
@@ -7088,17 +7274,17 @@ INPUT_PORTS_END
void bship_state::bship(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 200000); // approximation - RC osc. R=100K, C=47pF
m_maincpu->k().set(FUNC(bship_state::read_k));
m_maincpu->r().set(FUNC(bship_state::write_r));
m_maincpu->o().set(FUNC(bship_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 1);
config.set_default_layout(layout_bship);
- /* sound hardware */
+ // sound hardware
// TODO
}
@@ -7138,12 +7324,14 @@ public:
m_sn(*this, "sn76477")
{ }
+ void bshipb(machine_config &config);
+
+private:
required_device<sn76477_device> m_sn;
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void bshipb(machine_config &config);
};
// handlers
@@ -7204,17 +7392,17 @@ u8 bshipb_state::read_k()
void bshipb_state::bshipb(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 200000); // approximation - RC osc. R=100K, C=47pF
m_maincpu->k().set(FUNC(bshipb_state::read_k));
m_maincpu->r().set(FUNC(bshipb_state::write_r));
m_maincpu->o().set(FUNC(bshipb_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 1);
config.set_default_layout(layout_bship);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SN76477(config, m_sn);
m_sn->set_noise_params(RES_K(47), RES_K(100), CAP_P(47)); // R18, R17, C8
@@ -7272,9 +7460,11 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void simon(machine_config &config);
+
+private:
void write_r(u16 data);
u8 read_k();
- void simon(machine_config &config);
};
// handlers
@@ -7341,16 +7531,16 @@ INPUT_PORTS_END
void simon_state::simon(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 350000); // approximation - RC osc. R=33K, C=100pF
m_maincpu->k().set(FUNC(simon_state::read_k));
m_maincpu->r().set(FUNC(simon_state::write_r));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 4);
config.set_default_layout(layout_simon);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -7400,15 +7590,17 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
- void write_r(u16 data);
- u8 read_k();
+ void ssimon(machine_config &config);
- void set_clock();
DECLARE_INPUT_CHANGED_MEMBER(speed_switch) { set_clock(); }
- void ssimon(machine_config &config);
protected:
virtual void machine_reset() override;
+
+private:
+ void set_clock();
+ void write_r(u16 data);
+ u8 read_k();
};
void ssimon_state::machine_reset()
@@ -7508,16 +7700,16 @@ INPUT_PORTS_END
void ssimon_state::ssimon(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 275000); // see set_clock
m_maincpu->k().set(FUNC(ssimon_state::read_k));
m_maincpu->r().set(FUNC(ssimon_state::write_r));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 4);
config.set_default_layout(layout_ssimon);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -7578,7 +7770,7 @@ private:
void write_o(u16 data);
u8 read_k();
- int m_gearbox_pos;
+ int m_gearbox_pos = 0;
bool sensor_state() { return m_gearbox_pos < 0 && m_display->element_on(0, 0); }
TIMER_DEVICE_CALLBACK_MEMBER(gearbox_sim_tick);
@@ -7593,14 +7785,14 @@ void bigtrak_state::machine_start()
{
hh_tms1k_state::machine_start();
+ // resolve handlers
m_left_motor_forward.resolve();
m_left_motor_reverse.resolve();
m_right_motor_forward.resolve();
m_right_motor_reverse.resolve();
m_ext_out.resolve();
- // zerofill/register for savestates
- m_gearbox_pos = 0;
+ // register for savestates
save_item(NAME(m_gearbox_pos));
}
@@ -7718,7 +7910,7 @@ INPUT_PORTS_END
void bigtrak_state::bigtrak(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 200000); // approximation - RC osc. R=83K, C=100pF
m_maincpu->k().set(FUNC(bigtrak_state::read_k));
m_maincpu->r().set(FUNC(bigtrak_state::write_r));
@@ -7726,11 +7918,11 @@ void bigtrak_state::bigtrak(machine_config &config)
TIMER(config, "gearbox").configure_periodic(FUNC(bigtrak_state::gearbox_sim_tick), attotime::from_msec(1));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 2);
config.set_default_layout(layout_bigtrak);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
static const double speaker_levels[8] = { 0.0, 1.0/3.0, 1.0/3.0, 2.0/3.0, 1.0/3.0, 2.0/3.0, 2.0/3.0, 1.0 };
@@ -7796,11 +7988,11 @@ private:
output_finder<> m_card_pos_out;
output_finder<> m_motor_on_out;
- int m_motor_pos;
- int m_motor_pos_prev;
- int m_motor_decay;
- bool m_motor_on;
- bool m_sensor_blind;
+ int m_motor_pos = 0;
+ int m_motor_pos_prev = -1;
+ int m_motor_decay = 0;
+ bool m_motor_on = false;
+ bool m_sensor_blind = false;
TIMER_DEVICE_CALLBACK_MEMBER(motor_sim_tick);
@@ -7817,13 +8009,6 @@ void mbdtower_state::machine_start()
m_card_pos_out.resolve();
m_motor_on_out.resolve();
- // zerofill
- m_motor_pos = 0;
- m_motor_pos_prev = -1;
- m_motor_decay = 0;
- m_motor_on = false;
- m_sensor_blind = false;
-
// register for savestates
save_item(NAME(m_motor_pos));
/* save_item(NAME(m_motor_pos_prev)); */ // don't save!
@@ -7972,7 +8157,7 @@ INPUT_PORTS_END
void mbdtower_state::mbdtower(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1400(config, m_maincpu, 425000); // approximation - RC osc. R=43K, C=56pF
m_maincpu->k().set(FUNC(mbdtower_state::read_k));
m_maincpu->r().set(FUNC(mbdtower_state::write_r));
@@ -7980,12 +8165,12 @@ void mbdtower_state::mbdtower(machine_config &config)
TIMER(config, "tower_motor").configure_periodic(FUNC(mbdtower_state::motor_sim_tick), attotime::from_msec(3500/0x80)); // ~3.5sec for a full rotation
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(3, 7);
m_display->set_segmask(6, 0x7f);
config.set_default_layout(layout_mbdtower);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -8025,10 +8210,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void arcmania(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void arcmania(machine_config &config);
};
// handlers
@@ -8096,17 +8283,17 @@ INPUT_PORTS_END
void arcmania_state::arcmania(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 250000); // approximation - RC osc. R=56K, C=100pF
m_maincpu->k().set(FUNC(arcmania_state::read_k));
m_maincpu->r().set(FUNC(arcmania_state::write_r));
m_maincpu->o().set(FUNC(arcmania_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 9);
config.set_default_layout(layout_arcmania);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
static const double speaker_levels[8] = { 0.0, 1.0/3.0, 1.0/3.0, 2.0/3.0, 1.0/3.0, 2.0/3.0, 2.0/3.0, 1.0 };
@@ -8149,10 +8336,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void cnsector(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void cnsector(machine_config &config);
};
// handlers
@@ -8228,18 +8417,18 @@ INPUT_PORTS_END
void cnsector_state::cnsector(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS0970(config, m_maincpu, 250000); // approximation
m_maincpu->k().set(FUNC(cnsector_state::read_k));
m_maincpu->r().set(FUNC(cnsector_state::write_r));
m_maincpu->o().set(FUNC(cnsector_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(10, 8);
m_display->set_segmask(0x3f, 0xff);
config.set_default_layout(layout_cnsector);
- /* no sound! */
+ // no sound!
}
// roms
@@ -8291,10 +8480,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void merlin(machine_config &config);
+
+protected:
virtual void write_r(u16 data);
virtual void write_o(u16 data);
virtual u8 read_k();
- void merlin(machine_config &config);
};
// handlers
@@ -8358,17 +8549,17 @@ INPUT_PORTS_END
void merlin_state::merlin(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 350000); // approximation - RC osc. R=33K, C=100pF
m_maincpu->k().set(FUNC(merlin_state::read_k));
m_maincpu->r().set(FUNC(merlin_state::write_r));
m_maincpu->o().set(FUNC(merlin_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 11);
config.set_default_layout(layout_merlin);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
static const double speaker_levels[8] = { 0.0, 1.0/3.0, 1.0/3.0, 2.0/3.0, 1.0/3.0, 2.0/3.0, 2.0/3.0, 1.0 };
@@ -8439,7 +8630,7 @@ void mmerlin_state::mmerlin(machine_config &config)
{
merlin(config);
- /* basic machine hardware */
+ // basic machine hardware
TMS1400(config.replace(), m_maincpu, 425000); // approximation - RC osc. R=30K, C=100pF
m_maincpu->k().set(FUNC(mmerlin_state::read_k));
m_maincpu->r().set(FUNC(mmerlin_state::write_r));
@@ -8483,10 +8674,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void pbmastm(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void pbmastm(machine_config &config);
};
// handlers
@@ -8551,17 +8744,17 @@ INPUT_PORTS_END
void pbmastm_state::pbmastm(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 300000); // approximation - RC osc. R=56K, C=47pF
m_maincpu->k().set(FUNC(pbmastm_state::read_k));
m_maincpu->r().set(FUNC(pbmastm_state::write_r));
m_maincpu->o().set(FUNC(pbmastm_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 10);
config.set_default_layout(layout_pbmastm);
- /* no sound! */
+ // no sound!
}
// roms
@@ -8600,10 +8793,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void stopthief(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void stopthief(machine_config &config);
};
// handlers
@@ -8673,19 +8868,19 @@ INPUT_PORTS_END
void stopthief_state::stopthief(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS0980(config, m_maincpu, 425000); // approximation
m_maincpu->k().set(FUNC(stopthief_state::read_k));
m_maincpu->r().set(FUNC(stopthief_state::write_r));
m_maincpu->o().set(FUNC(stopthief_state::write_o));
- m_maincpu->power_off().set(FUNC(hh_tms1k_state::auto_power_off));
+ m_maincpu->power_off().set(FUNC(stopthief_state::auto_power_off));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(3, 7);
m_display->set_segmask(7, 0x7f);
config.set_default_layout(layout_stopthief);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
static const double speaker_levels[7] = { 1.0/7.0, 1.0/6.0, 1.0/5.0, 1.0/4.0, 1.0/3.0, 1.0/2.0, 1.0 };
@@ -8753,11 +8948,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void bankshot(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void bankshot(machine_config &config);
};
// handlers
@@ -8823,18 +9020,18 @@ INPUT_PORTS_END
void bankshot_state::bankshot(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1400(config, m_maincpu, 475000); // approximation - RC osc. R=24K, C=100pF
m_maincpu->k().set(FUNC(bankshot_state::read_k));
m_maincpu->r().set(FUNC(bankshot_state::write_r));
m_maincpu->o().set(FUNC(bankshot_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(11, 8);
m_display->set_bri_levels(0.01, 0.08); // cue ball is brigher
config.set_default_layout(layout_bankshot);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -8895,11 +9092,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void splitsec(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void splitsec(machine_config &config);
};
// handlers
@@ -8954,17 +9153,17 @@ INPUT_PORTS_END
void splitsec_state::splitsec(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1400(config, m_maincpu, 475000); // approximation - RC osc. R=24K, C=100pF
m_maincpu->k().set(FUNC(splitsec_state::read_k));
m_maincpu->r().set(FUNC(splitsec_state::write_r));
m_maincpu->o().set(FUNC(splitsec_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(8, 7);
config.set_default_layout(layout_splitsec);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -9004,10 +9203,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void lostreas(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void lostreas(machine_config &config);
};
// handlers
@@ -9079,17 +9280,17 @@ INPUT_PORTS_END
void lostreas_state::lostreas(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 425000); // approximation - RC osc. R=39K, C=47pF
m_maincpu->k().set(FUNC(lostreas_state::read_k));
m_maincpu->r().set(FUNC(lostreas_state::write_r));
m_maincpu->o().set(FUNC(lostreas_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 11);
config.set_default_layout(layout_lostreas);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -9142,10 +9343,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void alphie(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void alphie(machine_config &config);
};
// handlers
@@ -9224,18 +9427,18 @@ static const u16 alphie_output_pla[0x20] =
void alphie_state::alphie(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 350000); // approximation
m_maincpu->set_output_pla(alphie_output_pla);
m_maincpu->k().set(FUNC(alphie_state::read_k));
m_maincpu->r().set(FUNC(alphie_state::write_r));
m_maincpu->o().set(FUNC(alphie_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 5);
config.set_default_layout(layout_alphie);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -9276,11 +9479,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void tcfball(machine_config &config);
+
+protected:
void update_display();
virtual void write_r(u16 data);
virtual void write_o(u16 data);
virtual u8 read_k();
- void tcfball(machine_config &config);
};
// handlers
@@ -9345,20 +9550,20 @@ INPUT_PORTS_END
void tcfball_state::tcfball(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 375000); // approximation - RC osc. R=56K, C=24pF
m_maincpu->k().set(FUNC(tcfball_state::read_k));
m_maincpu->r().set(FUNC(tcfball_state::write_r));
m_maincpu->o().set(FUNC(tcfball_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(11, 8);
m_display->set_segmask(0x77, 0x7f);
m_display->set_segmask(0x08, 0xff); // R3 has DP
m_display->set_bri_levels(0.003, 0.03); // offense leds are brighter
config.set_default_layout(layout_tcfball);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -9421,7 +9626,7 @@ void tcfballa_state::tcfballa(machine_config &config)
{
tcfball(config);
- /* basic machine hardware */
+ // basic machine hardware
m_maincpu->set_clock(375000); // approximation - RC osc. R=47K, C=50pF
config.set_default_layout(layout_tcfballa);
@@ -9480,11 +9685,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void tandy12(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void tandy12(machine_config &config);
};
// handlers
@@ -9590,18 +9797,18 @@ static const u16 tandy12_output_pla[0x20] =
void tandy12_state::tandy12(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 400000); // approximation - RC osc. R=39K, C=47pF
m_maincpu->set_output_pla(tandy12_output_pla);
m_maincpu->k().set(FUNC(tandy12_state::read_k));
m_maincpu->r().set(FUNC(tandy12_state::write_r));
m_maincpu->o().set(FUNC(tandy12_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 13);
config.set_default_layout(layout_tandy12);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -9646,10 +9853,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void monkeysee(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void monkeysee(machine_config &config);
};
// handlers
@@ -9712,17 +9921,17 @@ INPUT_PORTS_END
void monkeysee_state::monkeysee(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 250000); // approximation - RC osc. R=68K, C=47pF
m_maincpu->k().set(FUNC(monkeysee_state::read_k));
m_maincpu->r().set(FUNC(monkeysee_state::write_r));
m_maincpu->o().set(FUNC(monkeysee_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 2);
config.set_default_layout(layout_monkeysee);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -9765,13 +9974,15 @@ public:
m_speech(*this, "speech")
{ }
+ void speechp(machine_config &config);
+
+private:
required_device<s14001a_device> m_speech;
void update_display();
virtual void write_r(u16 data);
virtual void write_o(u16 data);
virtual u8 read_k();
- void speechp(machine_config &config);
};
// handlers
@@ -9873,18 +10084,18 @@ INPUT_PORTS_END
void speechp_state::speechp(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 400000); // approximation - RC osc. R=39K, C=47pF
m_maincpu->k().set(FUNC(speechp_state::read_k));
m_maincpu->r().set(FUNC(speechp_state::write_r));
m_maincpu->o().set(FUNC(speechp_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 8);
m_display->set_segmask(0x1ff, 0xff);
config.set_default_layout(layout_speechp);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
S14001A(config, m_speech, 25000); // approximation
m_speech->add_route(ALL_OUTPUTS, "mono", 0.75);
@@ -9928,11 +10139,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void tisr16(machine_config &config);
+
+private:
void update_display();
void write_o(u16 data);
void write_r(u16 data);
u8 read_k();
- void tisr16(machine_config &config);
};
// handlers
@@ -10107,18 +10320,18 @@ INPUT_PORTS_END
void tisr16_state::tisr16(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 300000); // approximation - RC osc. R=43K, C=68pf (note: tisr16ii MCU RC osc. is different: R=30K, C=100pf, same freq)
m_maincpu->k().set(FUNC(tisr16_state::read_k));
m_maincpu->o().set(FUNC(tisr16_state::write_o));
m_maincpu->r().set(FUNC(tisr16_state::write_r));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(12, 8);
m_display->set_segmask(0xfff, 0xff);
config.set_default_layout(layout_tisr16);
- /* no sound! */
+ // no sound!
}
// roms
@@ -10270,26 +10483,26 @@ INPUT_PORTS_END
void ti1250_state::ti1250(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS0950(config, m_maincpu, 200000); // approximation - RC osc. R=68K, C=68pf
m_maincpu->k().set(FUNC(ti1250_state::read_k));
m_maincpu->o().set(FUNC(ti1250_state::write_o));
m_maincpu->r().set(FUNC(ti1250_state::write_r));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 8);
m_display->set_segmask(0xff, 0xff);
m_display->set_segmask(0x100, 0x40); // R8 only has segment G connected
config.set_default_layout(layout_ti1250);
- /* no sound! */
+ // no sound!
}
void ti1250_state::ti1270(machine_config &config)
{
ti1250(config);
- /* basic machine hardware */
+ // basic machine hardware
TMS0970(config.replace(), m_maincpu, 250000); // approximation
m_maincpu->k().set(FUNC(ti1250_state::read_k));
m_maincpu->o().set(FUNC(ti1250_state::write_o));
@@ -10447,18 +10660,18 @@ INPUT_PORTS_END
void ti25503_state::ti25503(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1040(config, m_maincpu, 250000); // approximation
m_maincpu->k().set(FUNC(ti25503_state::read_k));
m_maincpu->o().set(FUNC(ti25503_state::write_o));
m_maincpu->r().set(FUNC(ti25503_state::write_r));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 8);
m_display->set_segmask(0x1ff, 0xff);
config.set_default_layout(layout_ti25503);
- /* no sound! */
+ // no sound!
}
// roms
@@ -10599,18 +10812,18 @@ INPUT_PORTS_END
void ti5100_state::ti5100(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1070(config, m_maincpu, 250000); // approximation
m_maincpu->k().set(FUNC(ti5100_state::read_k));
m_maincpu->o().set(FUNC(ti5100_state::write_o));
m_maincpu->r().set(FUNC(ti5100_state::write_r));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(11, 9);
m_display->set_segmask(0x7ff, 0xff);
config.set_default_layout(layout_ti5100);
- /* no sound! */
+ // no sound!
}
// roms
@@ -10869,20 +11082,20 @@ INPUT_PORTS_END
void ti30_state::ti30(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS0980(config, m_maincpu, 400000); // guessed
m_maincpu->k().set(FUNC(ti30_state::read_k));
m_maincpu->o().set(FUNC(ti30_state::write_o));
m_maincpu->r().set(FUNC(ti30_state::write_r));
- m_maincpu->power_off().set(FUNC(hh_tms1k_state::auto_power_off));
+ m_maincpu->power_off().set(FUNC(ti30_state::auto_power_off));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 8);
m_display->set_segmask(0x1fe, 0xff);
m_display->set_segmask(0x001, 0xe2); // 1st digit only has segments B,F,G,DP
config.set_default_layout(layout_ti30);
- /* no sound! */
+ // no sound!
}
// roms
@@ -11018,18 +11231,18 @@ INPUT_PORTS_END
void ti1000_state::ti1000(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1990(config, m_maincpu, 250000); // approximation
m_maincpu->k().set(FUNC(ti1000_state::read_k));
m_maincpu->o().set(FUNC(ti1000_state::write_o));
m_maincpu->r().set(FUNC(ti1000_state::write_r));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(8, 8);
m_display->set_segmask(0xff, 0xff);
config.set_default_layout(layout_ti1270);
- /* no sound! */
+ // no sound!
}
// roms
@@ -11069,6 +11282,7 @@ public:
void wizatron(machine_config &config);
+protected:
virtual void write_o(u16 data);
virtual void write_r(u16 data);
virtual u8 read_k();
@@ -11135,19 +11349,19 @@ INPUT_PORTS_END
void wizatron_state::wizatron(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS0970(config, m_maincpu, 250000); // approximation
m_maincpu->k().set(FUNC(wizatron_state::read_k));
m_maincpu->o().set(FUNC(wizatron_state::write_o));
m_maincpu->r().set(FUNC(wizatron_state::write_r));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 7);
m_display->set_segmask(0x1ff^8, 0x7f);
m_display->set_segmask(8, 0x41); // equals sign
config.set_default_layout(layout_wizatron);
- /* no sound! */
+ // no sound!
}
// roms
@@ -11232,7 +11446,7 @@ void lilprof_state::lilprof(machine_config &config)
{
wizatron(config);
- /* basic machine hardware */
+ // basic machine hardware
m_maincpu->k().set(FUNC(lilprof_state::read_k));
m_maincpu->o().set(FUNC(lilprof_state::write_o));
}
@@ -11351,18 +11565,18 @@ INPUT_PORTS_END
void lilprof78_state::lilprof78(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1990(config, m_maincpu, 250000); // approximation
m_maincpu->k().set(FUNC(lilprof78_state::read_k));
m_maincpu->o().set(FUNC(lilprof78_state::write_o));
m_maincpu->r().set(FUNC(lilprof78_state::write_r));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 7);
m_display->set_segmask(0x1ff, 0x7f);
config.set_default_layout(layout_wizatron);
- /* no sound! */
+ // no sound!
}
// roms
@@ -11405,10 +11619,11 @@ public:
m_ram(*this, "ram")
{ }
- required_device<tmc0999_device> m_ram;
-
void ti1680(machine_config &config);
+private:
+ required_device<tmc0999_device> m_ram;
+
virtual void update_display();
virtual void write_o(u16 data);
virtual void write_r(u16 data);
@@ -11496,21 +11711,21 @@ INPUT_PORTS_END
void ti1680_state::ti1680(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1980(config, m_maincpu, 300000); // approximation
m_maincpu->k().set(FUNC(ti1680_state::read_k));
m_maincpu->o().set(FUNC(ti1680_state::write_o));
m_maincpu->r().set(FUNC(ti1680_state::write_r));
- m_maincpu->power_off().set(FUNC(hh_tms1k_state::auto_power_off));
+ m_maincpu->power_off().set(FUNC(ti1680_state::auto_power_off));
TMC0999(config, m_ram);
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 9);
m_display->set_segmask(0x1fe, 0xff);
config.set_default_layout(layout_ti1680);
- /* no sound! */
+ // no sound!
}
// roms
@@ -11548,6 +11763,7 @@ public:
void dataman(machine_config &config);
+protected:
virtual void update_display();
virtual void write_o(u16 data);
virtual void write_r(u16 data);
@@ -11627,19 +11843,19 @@ INPUT_PORTS_END
void dataman_state::dataman(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1980(config, m_maincpu, 300000); // patent says 300kHz
m_maincpu->k().set(FUNC(dataman_state::read_k));
m_maincpu->o().set(FUNC(dataman_state::write_o));
m_maincpu->r().set(FUNC(dataman_state::write_r));
- m_maincpu->power_off().set(FUNC(hh_tms1k_state::auto_power_off));
+ m_maincpu->power_off().set(FUNC(dataman_state::auto_power_off));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 8);
m_display->set_segmask(0x1ff, 0x7f);
config.set_default_layout(layout_dataman);
- /* no sound! */
+ // no sound!
}
// roms
@@ -11714,12 +11930,12 @@ void mathmarv_state::mathmarv(machine_config &config)
{
dataman(config);
- /* basic machine hardware */
+ // basic machine hardware
m_maincpu->r().set(FUNC(mathmarv_state::write_r));
config.set_default_layout(layout_mathmarv);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
}
@@ -11766,10 +11982,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void timaze(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void timaze(machine_config &config);
};
// handlers
@@ -11804,18 +12022,18 @@ INPUT_PORTS_END
void timaze_state::timaze(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 200000); // approximation - RC osc. R=80K, C=27pF
m_maincpu->k().set(FUNC(timaze_state::read_k));
m_maincpu->r().set(FUNC(timaze_state::write_r));
m_maincpu->o().set(FUNC(timaze_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 8);
m_display->set_segmask(1, 0x5c);
config.set_default_layout(layout_timaze);
- /* no sound! */
+ // no sound!
}
// roms
@@ -11854,13 +12072,14 @@ public:
m_60hz(*this, "ac_line")
{ }
- void write_r(u16 data);
- void write_o(u16 data);
- u8 read_k();
void tithermos(machine_config &config);
private:
required_device<clock_device> m_60hz;
+
+ void write_r(u16 data);
+ void write_o(u16 data);
+ u8 read_k();
};
// handlers
@@ -11959,7 +12178,7 @@ INPUT_PORTS_END
void tithermos_state::tithermos(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS0970(config, m_maincpu, 250000); // approximation
m_maincpu->k().set(FUNC(tithermos_state::read_k));
m_maincpu->r().set(FUNC(tithermos_state::write_r));
@@ -11967,12 +12186,12 @@ void tithermos_state::tithermos(machine_config &config)
CLOCK(config, "ac_line", 60);
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(4, 7);
m_display->set_segmask(0xf, 0x7f);
config.set_default_layout(layout_tithermos);
- /* no sound! */
+ // no sound!
}
// roms
@@ -12016,10 +12235,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void subwars(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
- void subwars(machine_config &config);
};
// handlers
@@ -12059,18 +12280,18 @@ INPUT_PORTS_END
void subwars_state::subwars(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1200(config, m_maincpu, 550000); // approximation - RC osc. R=24K, C=47pF
m_maincpu->k().set_ioport("IN.0");
m_maincpu->r().set(FUNC(subwars_state::write_r));
m_maincpu->o().set(FUNC(subwars_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(13, 7);
m_display->set_segmask(0xf, 0x7f);
config.set_default_layout(layout_subwars);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -12113,10 +12334,12 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void copycat(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void copycat(machine_config &config);
};
// handlers
@@ -12176,17 +12399,17 @@ INPUT_PORTS_END
void copycat_state::copycat(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000(config, m_maincpu, 320000); // approximation - RC osc. R=47K, C=47pF
m_maincpu->k().set(FUNC(copycat_state::read_k));
m_maincpu->r().set(FUNC(copycat_state::write_r));
m_maincpu->o().set(FUNC(copycat_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 4);
config.set_default_layout(layout_copycat);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
static const double speaker_levels[4] = { 0.0, 1.0, -1.0, 0.0 };
@@ -12235,9 +12458,11 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void copycatm2(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
- void copycatm2(machine_config &config);
};
// handlers
@@ -12266,17 +12491,17 @@ INPUT_PORTS_END
void copycatm2_state::copycatm2(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1730(config, m_maincpu, 275000); // approximation - RC osc. R=100K, C=47pF
m_maincpu->k().set_ioport("IN.0");
m_maincpu->r().set(FUNC(copycatm2_state::write_r));
m_maincpu->o().set(FUNC(copycatm2_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 4);
config.set_default_layout(layout_copycatm2);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
static const double speaker_levels[4] = { 0.0, 1.0, -1.0, 0 };
@@ -12320,9 +12545,11 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void ditto(machine_config &config);
+
+private:
void write_r(u16 data);
void write_o(u16 data);
- void ditto(machine_config &config);
};
// handlers
@@ -12351,17 +12578,17 @@ INPUT_PORTS_END
void ditto_state::ditto(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1700(config, m_maincpu, 275000); // approximation - RC osc. R=100K, C=47pF
m_maincpu->k().set_ioport("IN.0");
m_maincpu->r().set(FUNC(ditto_state::write_r));
m_maincpu->o().set(FUNC(ditto_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(1, 4);
config.set_default_layout(layout_ditto);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
static const double speaker_levels[4] = { 0.0, 1.0, -1.0, 0 };
@@ -12408,11 +12635,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void ss7in1(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void ss7in1(machine_config &config);
};
// handlers
@@ -12480,19 +12709,19 @@ INPUT_PORTS_END
void ss7in1_state::ss7in1(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1400(config, m_maincpu, 450000); // approximation - RC osc. R=47K, C=47pF
m_maincpu->k().set(FUNC(ss7in1_state::read_k));
m_maincpu->r().set(FUNC(ss7in1_state::write_r));
m_maincpu->o().set(FUNC(ss7in1_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 8);
m_display->set_segmask(0xf, 0x7f);
m_display->set_bri_levels(0.005, 0.05); // player led is brighter
config.set_default_layout(layout_7in1ss);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -12557,30 +12786,29 @@ public:
m_expander(*this, "expander")
{ }
+ void tbreakup(machine_config &config);
+
+ DECLARE_INPUT_CHANGED_MEMBER(skill_switch) { set_clock(); }
+
+protected:
+ virtual void machine_reset() override;
+ virtual void machine_start() override;
+
+private:
required_device<tms1025_device> m_expander;
- u8 m_exp_port[7];
+ u8 m_exp_port[7] = { };
void expander_w(offs_t offset, u8 data);
+ void set_clock();
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
-
- void set_clock();
- DECLARE_INPUT_CHANGED_MEMBER(skill_switch) { set_clock(); }
- void tbreakup(machine_config &config);
-
-protected:
- virtual void machine_reset() override;
- virtual void machine_start() override;
};
void tbreakup_state::machine_start()
{
hh_tms1k_state::machine_start();
-
- // zerofill/register for savestates
- memset(m_exp_port, 0, sizeof(m_exp_port));
save_item(NAME(m_exp_port));
}
@@ -12674,7 +12902,7 @@ INPUT_PORTS_END
void tbreakup_state::tbreakup(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1040(config, m_maincpu, 325000); // see set_clock
m_maincpu->k().set(FUNC(tbreakup_state::read_k));
m_maincpu->r().set(FUNC(tbreakup_state::write_r));
@@ -12689,12 +12917,12 @@ void tbreakup_state::tbreakup(machine_config &config)
m_expander->write_port6_callback().set(FUNC(tbreakup_state::expander_w));
m_expander->write_port7_callback().set(FUNC(tbreakup_state::expander_w));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(2+6+6, 8);
m_display->set_segmask(3, 0x7f);
config.set_default_layout(layout_tbreakup);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -12752,13 +12980,15 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void phpball(machine_config &config);
+
+ DECLARE_INPUT_CHANGED_MEMBER(flipper_button) { update_display(); }
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
-
- DECLARE_INPUT_CHANGED_MEMBER(flipper_button) { update_display(); }
- void phpball(machine_config &config);
};
// handlers
@@ -12814,18 +13044,18 @@ INPUT_PORTS_END
void phpball_state::phpball(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 375000); // approximation - RC osc. R=47K, C=47pF
m_maincpu->k().set(FUNC(phpball_state::read_k));
m_maincpu->r().set(FUNC(phpball_state::write_r));
m_maincpu->o().set(FUNC(phpball_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(11, 7);
m_display->set_segmask(7, 0x7f);
config.set_default_layout(layout_phpball);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -12867,11 +13097,13 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
+ void ssports4(machine_config &config);
+
+private:
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void ssports4(machine_config &config);
};
// handlers
@@ -12954,19 +13186,19 @@ INPUT_PORTS_END
void ssports4_state::ssports4(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1100(config, m_maincpu, 375000); // approximation - RC osc. R=47K, C=47pF
m_maincpu->k().set(FUNC(ssports4_state::read_k));
m_maincpu->r().set(FUNC(ssports4_state::write_r));
m_maincpu->o().set(FUNC(ssports4_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(10, 9);
m_display->set_segmask(0x303, 0x7f);
m_display->set_bri_levels(0.003, 0.03); // offense leds are brighter
config.set_default_layout(layout_ssports4);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -13009,17 +13241,19 @@ public:
hh_tms1k_state(mconfig, type, tag)
{ }
- void update_halt();
+ void xl25(machine_config &config);
+
DECLARE_INPUT_CHANGED_MEMBER(k4_button) { update_halt(); }
+protected:
+ virtual void machine_reset() override;
+
+private:
+ void update_halt();
void update_display();
void write_r(u16 data);
void write_o(u16 data);
u8 read_k();
- void xl25(machine_config &config);
-
-protected:
- virtual void machine_reset() override;
};
void xl25_state::machine_reset()
@@ -13136,17 +13370,17 @@ INPUT_PORTS_END
void xl25_state::xl25(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
TMS1000C(config, m_maincpu, 300000); // approximation - RC osc. R=5.6K, C=47pF
m_maincpu->k().set(FUNC(xl25_state::read_k));
m_maincpu->r().set(FUNC(xl25_state::write_r));
m_maincpu->o().set(FUNC(xl25_state::write_o));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(10, 3);
config.set_default_layout(layout_xl25);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
@@ -13209,6 +13443,7 @@ CONS( 1979, ebball, 0, 0, ebball, ebball, ebball_state, emp
CONS( 1979, ebball2, 0, 0, ebball2, ebball2, ebball2_state, empty_init, "Entex", "Electronic Baseball 2 (Entex)", MACHINE_SUPPORTS_SAVE )
CONS( 1980, ebball3, 0, 0, ebball3, ebball3, ebball3_state, empty_init, "Entex", "Electronic Baseball 3 (Entex)", MACHINE_SUPPORTS_SAVE )
CONS( 1979, esbattle, 0, 0, esbattle, esbattle, esbattle_state, empty_init, "Entex", "Space Battle (Entex)", MACHINE_SUPPORTS_SAVE )
+CONS( 1980, blastit, 0, 0, blastit, blastit, blastit_state, empty_init, "Entex", "Blast It", MACHINE_SUPPORTS_SAVE )
CONS( 1980, einvader, 0, 0, einvader, einvader, einvader_state, empty_init, "Entex", "Space Invader (Entex, TMS1100 version)", MACHINE_SUPPORTS_SAVE )
CONS( 1980, efootb4 , 0, 0, efootb4, efootb4, efootb4_state, empty_init, "Entex", "Color Football 4 (Entex)", MACHINE_SUPPORTS_SAVE )
CONS( 1980, ebaskb2 , 0, 0, ebaskb2, ebaskb2, ebaskb2_state, empty_init, "Entex", "Electronic Basketball 2 (Entex)", MACHINE_SUPPORTS_SAVE )