New Working machine added

--------------------
Coleco Electronic Quarterback [hap, Sean Riddle]
This commit is contained in:
hap 2016-02-15 21:24:58 +01:00
parent 3f04c5f932
commit fec7343484
7 changed files with 457 additions and 141 deletions

View File

@ -294,4 +294,4 @@ ROM_END
******************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
COMP( 1989, feagv2, 0, 0, eag, eag, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde (model 6114)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
COMP( 1989, feagv2, 0, 0, eag, eag, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde (model 6114-2/3/4)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

View File

@ -47,7 +47,7 @@
MP3403 TMS1100 1978, Marx Electronic Bowling -> elecbowl.cpp
@MP3404 TMS1100 1978, Parker Brothers Merlin
@MP3405 TMS1100 1979, Coleco Amaze-A-Tron
*MP3415 TMS1100 1978, Coleco Electronic Quarterback
@MP3415 TMS1100 1978, Coleco Electronic Quarterback
@MP3438A TMS1100 1979, Kenner Star Wars Electronic Battle Command
MP3450A TMS1100 1979, MicroVision cartridge: Blockbuster
MP3454 TMS1100 1979, MicroVision cartridge: Star Trek Phaser Strike
@ -115,6 +115,7 @@
#include "bigtrak.lh"
#include "cnsector.lh"
#include "comp4.lh"
#include "cqback.lh"
#include "ebball.lh"
#include "ebball2.lh"
#include "ebball3.lh"
@ -316,6 +317,19 @@ UINT8 hh_tms1k_state::read_inputs(int columns)
return ret;
}
UINT8 hh_tms1k_state::read_rotated_inputs(int columns, UINT8 rowmask)
{
UINT8 ret = 0;
UINT16 colmask = (1 << columns) - 1;
// read selected input columns
for (int i = 0; i < 8; i++)
if (1 << i & rowmask && m_inp_matrix[i]->read() & m_inp_mux & colmask)
ret |= 1 << i;
return ret;
}
// devices with a TMS0980 can auto power-off
@ -671,6 +685,231 @@ MACHINE_CONFIG_END
/***************************************************************************
Coleco Electronic Quarterback
* TMS1100NLL MP3415 (die labeled MP3415)
* 9-digit LED grid, 1bit sound
known releases:
- USA(1): Electronic Quarterback
- USA(2): Electronic Touchdown, distributed by Sears
***************************************************************************/
class cqback_state : public hh_tms1k_state
{
public:
cqback_state(const machine_config &mconfig, device_type type, const char *tag)
: hh_tms1k_state(mconfig, type, tag)
{ }
void prepare_display();
DECLARE_WRITE16_MEMBER(write_r);
DECLARE_WRITE16_MEMBER(write_o);
DECLARE_READ8_MEMBER(read_k);
};
// handlers
void cqback_state::prepare_display()
{
// R9 selects between segments B/C or A'/D'
UINT16 seg = m_o;
if (m_r & 0x200)
seg = (m_o << 7 & 0x300) | (m_o & 0xf9);
set_display_segmask(0x1ff, 0xff);
display_matrix(11, 9, seg, m_r & 0x1ff);
}
WRITE16_MEMBER(cqback_state::write_r)
{
// R10: speaker out
m_speaker->level_w(data >> 10 & 1);
// R0-R4: input mux
m_inp_mux = data & 0x1f;
// R0-R9: select digit/segment
m_r = data;
prepare_display();
}
WRITE16_MEMBER(cqback_state::write_o)
{
// O0-O7: digit segments
m_o = data;
prepare_display();
}
READ8_MEMBER(cqback_state::read_k)
{
// K: multiplexed inputs, rotated matrix
return read_rotated_inputs(5);
}
// config
static INPUT_PORTS_START( cqback )
PORT_START("IN.0") // K1
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_NAME("P1 Left/Right")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Kick/Pass")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START ) PORT_NAME("Display")
PORT_START("IN.1") // K2
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_TOGGLE PORT_NAME("Play Selector") // pass
PORT_BIT( 0x02, 0x02, IPT_SPECIAL ) PORT_CONDITION("IN.1", 0x01, EQUALS, 0x00) // run/kick
PORT_START("IN.2") // K4
PORT_CONFNAME( 0x03, 0x02, "Skill Level" )
PORT_CONFSETTING( 0x02, "1" )
PORT_CONFSETTING( 0x01, "2" )
PORT_START("IN.3") // K8
PORT_CONFNAME( 0x01, 0x00, "Factory Test" )
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x01, DEF_STR( On ) ) // TP1-TP2
INPUT_PORTS_END
static MACHINE_CONFIG_START( cqback, cqback_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", TMS1100, 310000) // approximation - RC osc. R=33K, C=100pf
MCFG_TMS1XXX_READ_K_CB(READ8(cqback_state, read_k))
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(cqback_state, write_r))
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(cqback_state, write_o))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_cqback)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
/***************************************************************************
Coleco Head to Head Football
* TMS1100NLLE (rev. E!) MP3460 (die labeled MP3460)
* 2*SN75492N LED display drivers, 9-digit LED grid, 1bit sound
known releases:
- USA(1): Head to Head Football
- USA(2): Team Play Football, distributed by Sears
LED electronic football game. To distinguish between offense and defense,
offense blips (should) appear brighter. The hardware is similar to cqback.
***************************************************************************/
class h2hfootb_state : public hh_tms1k_state
{
public:
h2hfootb_state(const machine_config &mconfig, device_type type, const char *tag)
: hh_tms1k_state(mconfig, type, tag)
{ }
void prepare_display();
DECLARE_WRITE16_MEMBER(write_r);
DECLARE_WRITE16_MEMBER(write_o);
DECLARE_READ8_MEMBER(read_k);
};
// handlers
void h2hfootb_state::prepare_display()
{
set_display_segmask(0x1ff, 0x7f);
display_matrix(9, 9, m_o | (m_r >> 1 & 0x100), m_r & 0x1ff);
}
WRITE16_MEMBER(h2hfootb_state::write_r)
{
// R10: speaker out
m_speaker->level_w(data >> 10 & 1);
// R0-R8: input mux
m_inp_mux = data & 0x1ff;
// R0-R8: select led
// R9: led between digits
m_r = data;
prepare_display();
}
WRITE16_MEMBER(h2hfootb_state::write_o)
{
// O0-O7: digit segments A-G,A'
m_o = data;
prepare_display();
}
READ8_MEMBER(h2hfootb_state::read_k)
{
// K: multiplexed inputs, rotated matrix
return read_rotated_inputs(9);
}
// config
static INPUT_PORTS_START( h2hfootb )
PORT_START("IN.0") // K1
PORT_CONFNAME( 0x03, 0x01, "Players" )
PORT_CONFSETTING( 0x01, "1" )
PORT_CONFSETTING( 0x02, "2" )
PORT_START("IN.1") // K2
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_TOGGLE PORT_NAME("P1 Play Selector") // pass
PORT_BIT( 0x02, 0x02, IPT_SPECIAL ) PORT_CONDITION("IN.1", 0x01, EQUALS, 0x00) // run/kick
PORT_START("IN.2") // K4
PORT_CONFNAME( 0x03, 0x01, "Skill Level" )
PORT_CONFSETTING( 0x01, "1" )
PORT_CONFSETTING( 0x02, "2" )
PORT_START("IN.3") // K8
PORT_BIT( 0x001, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_NAME("P1 Left/Right")
PORT_BIT( 0x002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY
PORT_BIT( 0x004, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
PORT_BIT( 0x008, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Kick/Pass")
PORT_BIT( 0x010, IP_ACTIVE_HIGH, IPT_START ) PORT_NAME("Display")
PORT_BIT( 0x020, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL PORT_16WAY
PORT_BIT( 0x040, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_COCKTAIL PORT_16WAY
PORT_BIT( 0x080, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL PORT_16WAY
PORT_BIT( 0x100, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL PORT_16WAY
INPUT_PORTS_END
static MACHINE_CONFIG_START( h2hfootb, h2hfootb_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", TMS1100, 310000) // approximation - RC osc. R=39K, C=100pf, but unknown RC curve
MCFG_TMS1XXX_READ_K_CB(READ8(h2hfootb_state, read_k))
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(h2hfootb_state, write_r))
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(h2hfootb_state, write_o))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_h2hfootb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
/***************************************************************************
Coleco Head to Head Baseball
@ -707,8 +946,8 @@ protected:
void h2hbaseb_state::prepare_display()
{
memset(m_display_segmask, ~0, sizeof(m_display_segmask));
display_matrix_seg(9, 9, (m_r & 0x100) | m_o, (m_r & 0xff) | (m_r >> 1 & 0x100), 0x7f);
set_display_segmask(0x1ff, 0x7f);
display_matrix(9, 9, (m_r & 0x100) | m_o, (m_r & 0xff) | (m_r >> 1 & 0x100));
}
WRITE16_MEMBER(h2hbaseb_state::write_r)
@ -758,7 +997,7 @@ static INPUT_PORTS_START( h2hbaseb )
PORT_START("IN.3") // R7
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Curve") // these two buttons appear twice on the board
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Fast Pitch")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Fast Pitch") // "
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.4") // Vss!
@ -811,123 +1050,6 @@ MACHINE_CONFIG_END
/***************************************************************************
Coleco Head to Head Football
* TMS1100NLLE (rev. E!) MP3460 (die labeled MP3460)
* 2*SN75492N LED display drivers, 9-digit LED grid, 1bit sound
LED electronic football game. To distinguish between offense and defense,
offense blips (should) appear brighter.
***************************************************************************/
class h2hfootb_state : public hh_tms1k_state
{
public:
h2hfootb_state(const machine_config &mconfig, device_type type, const char *tag)
: hh_tms1k_state(mconfig, type, tag)
{ }
void prepare_display();
DECLARE_WRITE16_MEMBER(write_r);
DECLARE_WRITE16_MEMBER(write_o);
DECLARE_READ8_MEMBER(read_k);
};
// handlers
void h2hfootb_state::prepare_display()
{
memset(m_display_segmask, ~0, sizeof(m_display_segmask));
display_matrix_seg(9, 9, m_o | (m_r >> 1 & 0x100), (m_r & 0x1ff), 0x7f);
}
WRITE16_MEMBER(h2hfootb_state::write_r)
{
// R10: speaker out
m_speaker->level_w(data >> 10 & 1);
// R0-R8: input mux
m_inp_mux = data & 0x1ff;
// R0-R8: select led
// R9: led between digits
m_r = data;
prepare_display();
}
WRITE16_MEMBER(h2hfootb_state::write_o)
{
// O0-O7: digit segments A-G,A'
m_o = data;
prepare_display();
}
READ8_MEMBER(h2hfootb_state::read_k)
{
// K: multiplexed inputs
UINT8 k = 0;
// compared to the usual setup, the button matrix is rotated
for (int i = 0; i < 4; i++)
if (m_inp_matrix[i]->read() & m_inp_mux)
k |= 1 << i;
return k;
}
// config
static INPUT_PORTS_START( h2hfootb )
PORT_START("IN.0") // K1
PORT_CONFNAME( 0x03, 0x01, "Players" )
PORT_CONFSETTING( 0x01, "1" )
PORT_CONFSETTING( 0x02, "2" )
PORT_START("IN.1") // K2
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_TOGGLE PORT_NAME("P1 Play Selector") // pass
PORT_BIT( 0x02, 0x02, IPT_SPECIAL ) PORT_CONDITION("IN.1", 0x01, EQUALS, 0x00) // run/kick
PORT_START("IN.2") // K4
PORT_CONFNAME( 0x03, 0x01, "Skill Level" )
PORT_CONFSETTING( 0x01, "1" )
PORT_CONFSETTING( 0x02, "2" )
PORT_START("IN.3") // K8
PORT_BIT( 0x001, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_NAME("P1 Left/Right")
PORT_BIT( 0x002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY
PORT_BIT( 0x004, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
PORT_BIT( 0x008, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Kick/Pass")
PORT_BIT( 0x010, IP_ACTIVE_HIGH, IPT_START ) PORT_NAME("Display")
PORT_BIT( 0x020, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL PORT_16WAY
PORT_BIT( 0x040, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_COCKTAIL PORT_16WAY
PORT_BIT( 0x080, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL PORT_16WAY
PORT_BIT( 0x100, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL PORT_16WAY
INPUT_PORTS_END
static MACHINE_CONFIG_START( h2hfootb, h2hfootb_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", TMS1100, 325000) // approximation - RC osc. R=39K, C=100pf, but unknown RC curve
MCFG_TMS1XXX_READ_K_CB(READ8(h2hfootb_state, read_k))
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(h2hfootb_state, write_r))
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(h2hfootb_state, write_o))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_h2hfootb)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
/***************************************************************************
Coleco Total Control 4
@ -4532,14 +4654,14 @@ ROM_START( amaztron )
ROM_END
ROM_START( h2hbaseb )
ROM_START( cqback )
ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD( "mp1525", 0x0000, 0x0800, CRC(b5d6bf9b) SHA1(2cc9f35f077c1209c46d16ec853af87e4725c2fd) )
ROM_LOAD( "mp3415.u4", 0x0000, 0x0800, CRC(65ebdabf) SHA1(9b5cf5adaf9132ced87f611ae8c3148b9b62ba89) )
ROM_REGION( 867, "maincpu:mpla", 0 )
ROM_LOAD( "tms1100_common1_micro.pla", 0, 867, CRC(62445fc9) SHA1(d6297f2a4bc7a870b76cc498d19dbb0ce7d69fec) )
ROM_LOAD( "tms1100_common3_micro.pla", 0, 867, CRC(03574895) SHA1(04407cabfb3adee2ee5e4218612cb06c12c540f4) )
ROM_REGION( 365, "maincpu:opla", 0 )
ROM_LOAD( "tms1100_h2hbaseb_output.pla", 0, 365, CRC(cb3d7e38) SHA1(6ab4a7c52e6010b7c7158463cb499973e52ff556) )
ROM_LOAD( "tms1100_cqback_output.pla", 0, 365, CRC(c6dcbfd0) SHA1(593b6b7de981a28d1b4a33336b39df92d02ed4f4) )
ROM_END
@ -4554,6 +4676,17 @@ ROM_START( h2hfootb )
ROM_END
ROM_START( h2hbaseb )
ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD( "mp1525", 0x0000, 0x0800, CRC(b5d6bf9b) SHA1(2cc9f35f077c1209c46d16ec853af87e4725c2fd) )
ROM_REGION( 867, "maincpu:mpla", 0 )
ROM_LOAD( "tms1100_common1_micro.pla", 0, 867, CRC(62445fc9) SHA1(d6297f2a4bc7a870b76cc498d19dbb0ce7d69fec) )
ROM_REGION( 365, "maincpu:opla", 0 )
ROM_LOAD( "tms1100_h2hbaseb_output.pla", 0, 365, CRC(cb3d7e38) SHA1(6ab4a7c52e6010b7c7158463cb499973e52ff556) )
ROM_END
ROM_START( tc4 )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "mp7334", 0x0000, 0x1000, CRC(923f3821) SHA1(a9ae342d7ff8dae1dedcd1e4984bcfae68586581) )
@ -4896,8 +5029,9 @@ ROM_END
COMP( 1980, mathmagi, 0, 0, mathmagi, mathmagi, driver_device, 0, "APF Electronics Inc.", "Mathemagician", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
CONS( 1979, amaztron, 0, 0, amaztron, amaztron, driver_device, 0, "Coleco", "Amaze-A-Tron", MACHINE_SUPPORTS_SAVE )
CONS( 1980, h2hbaseb, 0, 0, h2hbaseb, h2hbaseb, driver_device, 0, "Coleco", "Head to Head Baseball", MACHINE_SUPPORTS_SAVE )
CONS( 1978, cqback, 0, 0, cqback, cqback, driver_device, 0, "Coleco", "Electronic Quarterback", MACHINE_SUPPORTS_SAVE )
CONS( 1980, h2hfootb, 0, 0, h2hfootb, h2hfootb, driver_device, 0, "Coleco", "Head to Head Football", MACHINE_SUPPORTS_SAVE )
CONS( 1980, h2hbaseb, 0, 0, h2hbaseb, h2hbaseb, driver_device, 0, "Coleco", "Head to Head Baseball", MACHINE_SUPPORTS_SAVE )
CONS( 1981, tc4, 0, 0, tc4, tc4, driver_device, 0, "Coleco", "Total Control 4", MACHINE_SUPPORTS_SAVE )
CONS( 1979, ebball, 0, 0, ebball, ebball, driver_device, 0, "Entex", "Electronic Baseball (Entex)", MACHINE_SUPPORTS_SAVE )

View File

@ -63,8 +63,8 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(display_decay_tick);
void display_update();
void set_display_size(int maxx, int maxy);
void set_display_segmask(UINT32 digits, UINT32 mask);
void display_matrix(int maxx, int maxy, UINT32 setx, UINT32 sety);
void display_matrix_seg(int maxx, int maxy, UINT32 setx, UINT32 sety, UINT16 segmask);
bool m_power_on;
UINT8 m_inp_mux;
@ -101,7 +101,7 @@ void k28_state::machine_start()
memset(m_display_state, 0, sizeof(m_display_state));
memset(m_display_cache, ~0, sizeof(m_display_cache));
memset(m_display_decay, 0, sizeof(m_display_decay));
memset(m_display_segmask, ~0, sizeof(m_display_segmask)); // !
memset(m_display_segmask, 0, sizeof(m_display_segmask));
m_power_on = false;
m_inp_mux = 0;
@ -237,6 +237,17 @@ void k28_state::set_display_size(int maxx, int maxy)
m_display_maxy = maxy;
}
void k28_state::set_display_segmask(UINT32 digits, UINT32 mask)
{
// set a segment mask per selected digit, but leave unselected ones alone
for (int i = 0; i < 0x20; i++)
{
if (digits & 1)
m_display_segmask[i] = mask;
digits >>= 1;
}
}
void k28_state::display_matrix(int maxx, int maxy, UINT32 setx, UINT32 sety)
{
set_display_size(maxx, maxy);
@ -249,15 +260,6 @@ void k28_state::display_matrix(int maxx, int maxy, UINT32 setx, UINT32 sety)
display_update();
}
void k28_state::display_matrix_seg(int maxx, int maxy, UINT32 setx, UINT32 sety, UINT16 segmask)
{
// expects m_display_segmask to be not-0
for (int y = 0; y < maxy; y++)
m_display_segmask[y] &= segmask;
display_matrix(maxx, maxy, setx, sety);
}
/***************************************************************************
@ -356,7 +358,8 @@ WRITE8_MEMBER(k28_state::mcu_prog_w)
// output 16-24: digit select
UINT16 digit_sel = (UINT16)(m_vfd_shiftreg >> 10) & 0x1ff;
display_matrix_seg(16, 9, seg_data, digit_sel, 0x3fff);
set_display_segmask(0x1ff, 0x3fff);
display_matrix(16, 9, seg_data, digit_sel);
// output 25: power-off request on falling edge
if (~m_vfd_shiftreg & m_vfd_shiftreg_out & 0x200)

View File

@ -41,6 +41,7 @@ public:
bool m_power_led;
UINT8 read_inputs(int columns);
UINT8 read_rotated_inputs(int columns, UINT8 rowmask = 0xf);
virtual DECLARE_INPUT_CHANGED_MEMBER(power_button);
virtual DECLARE_WRITE_LINE_MEMBER(auto_power_off);

178
src/mame/layout/cqback.lay Normal file
View File

@ -0,0 +1,178 @@
<?xml version="1.0"?>
<mamelayout version="2">
<!-- define elements -->
<element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element>
<element name="static_white"><rect><color red="0.8" green="0.8" blue="0.8" /></rect></element>
<element name="static_green"><rect><color red="0.1" green="0.5" blue="0.2" /></rect></element>
<element name="static_orange"><rect><color red="0.8" green="0.25" blue="0.1" /></rect></element>
<element name="text_down">
<rect><color red="0.8" green="0.8" blue="0.8" /></rect>
<text string="DOWN"><color red="0.8" green="0.25" blue="0.1" /></text>
</element>
<element name="text_home">
<rect><color red="0.8" green="0.8" blue="0.8" /></rect>
<text string="HOME"><color red="0.8" green="0.25" blue="0.1" /></text>
</element>
<element name="text_yards">
<rect><color red="0.8" green="0.8" blue="0.8" /></rect>
<text string="YARDS TO GO"><color red="0.8" green="0.25" blue="0.1" /></text>
</element>
<element name="text_time">
<rect><color red="0.8" green="0.8" blue="0.8" /></rect>
<text string="TIME REMAINING"><color red="0.8" green="0.25" blue="0.1" /></text>
</element>
<element name="text_field">
<rect><color red="0.8" green="0.8" blue="0.8" /></rect>
<text string="FIELD POS."><color red="0.8" green="0.25" blue="0.1" /></text>
</element>
<element name="text_visitor">
<rect><color red="0.8" green="0.8" blue="0.8" /></rect>
<text string="VISITOR"><color red="0.8" green="0.25" blue="0.1" /></text>
</element>
<element name="text_p1">
<rect><color red="0.06" green="0.3" blue="0.12" /></rect>
<text string="PL SEL:">
<bounds x="0.0" y="0.17" width="1.0" height="0.6" />
<color red="0.7" green="0.7" blue="0.8" />
</text>
</element>
<element name="text_p2" defstate="0">
<rect><color red="0.06" green="0.3" blue="0.12" /></rect>
<text state="0" string="RUN/KICK">
<bounds x="0.0" y="0.17" width="1.0" height="0.6" />
<color red="0.82" green="0.82" blue="0.82" />
</text>
<text state="1" string="PASS">
<bounds x="0.0" y="0.17" width="1.0" height="0.6" />
<color red="0.82" green="0.82" blue="0.82" />
</text>
</element>
<element name="digit" defstate="0">
<led7seg><color red="1.0" green="0.25" blue="0.26" /></led7seg>
</element>
<element name="seg" defstate="0">
<rect state="0"><color red="0.13" green="0.0325" blue="0.0338" /></rect>
<rect state="1"><color red="1.0" green="0.25" blue="0.26" /></rect>
</element>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="-9" right="393" top="-130" bottom="156" />
<bezel element="static_black">
<bounds left="-9" right="393" top="-130" bottom="156" />
</bezel>
<!-- bezel -->
<bezel element="static_white"><bounds left="-9" right="393" top="-130" bottom="-60" /></bezel>
<bezel element="static_green"><bounds left="-9" right="393" top="111" bottom="156" /></bezel>
<bezel element="text_down"><bounds x="-5" y="-126" width="86" height="19" /></bezel>
<bezel element="text_yards"><bounds x="107" y="-126" width="170" height="19" /></bezel>
<bezel element="text_field"><bounds x="301" y="-126" width="90" height="19" /></bezel>
<bezel element="text_home"><bounds x="-5" y="-92" width="86" height="19" /></bezel>
<bezel element="text_time"><bounds x="107" y="-92" width="170" height="19" /></bezel>
<bezel element="text_visitor"><bounds x="301" y="-92" width="90" height="19" /></bezel>
<bezel element="text_p1"><bounds x="301" y="130" width="40" height="16" /></bezel>
<bezel element="text_p2" inputtag="IN.1" inputmask="0x01">
<bounds x="339" y="130" width="50" height="16" />
</bezel>
<bezel element="static_orange"><bounds left="-9" right="393" top="-102" bottom="-96" /></bezel>
<bezel element="static_white"><bounds left="-9" right="393" top="-61" bottom="-51" /></bezel>
<bezel element="static_green"><bounds left="-9" right="393" top="-67" bottom="-61" /></bezel>
<bezel element="static_white"><bounds left="-9" right="393" top="110" bottom="120" /></bezel>
<bezel element="static_white"><bounds x="-9" y="-52" width="4" height="163" /></bezel>
<bezel element="static_white"><bounds x="37" y="-52" width="2" height="163" /></bezel>
<bezel element="static_white"><bounds x="81" y="-52" width="2" height="163" /></bezel>
<bezel element="static_white"><bounds x="125" y="-52" width="2" height="163" /></bezel>
<bezel element="static_white"><bounds x="169" y="-52" width="2" height="163" /></bezel>
<bezel element="static_white"><bounds x="213" y="-52" width="2" height="163" /></bezel>
<bezel element="static_white"><bounds x="257" y="-52" width="2" height="163" /></bezel>
<bezel element="static_white"><bounds x="301" y="-52" width="2" height="163" /></bezel>
<bezel element="static_white"><bounds x="345" y="-52" width="2" height="163" /></bezel>
<bezel element="static_white"><bounds x="389" y="-52" width="4" height="163" /></bezel>
<bezel element="static_white"><bounds x="36" y="2" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="36" y="29" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="36" y="56" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="80" y="2" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="80" y="29" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="80" y="56" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="124" y="2" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="124" y="29" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="124" y="56" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="168" y="2" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="168" y="29" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="168" y="56" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="212" y="2" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="212" y="29" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="212" y="56" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="256" y="2" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="256" y="29" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="256" y="56" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="300" y="2" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="300" y="29" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="300" y="56" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="344" y="2" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="344" y="29" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="344" y="56" width="4" height="1" /></bezel>
<!-- leds -->
<bezel name="digit0" element="digit"><bounds x="3" y="-15.5" width="24" height="32" /></bezel>
<bezel name="0.8" element="seg"><bounds x="7" y="42.5" width="15" height="3" /></bezel>
<bezel name="0.9" element="seg"><bounds x="7" y="71.5" width="15" height="3" /></bezel>
<bezel name="digit1" element="digit"><bounds x="47" y="-15.5" width="24" height="32" /></bezel>
<bezel name="1.8" element="seg"><bounds x="51" y="42.5" width="15" height="3" /></bezel>
<bezel name="1.9" element="seg"><bounds x="51" y="71.5" width="15" height="3" /></bezel>
<bezel name="digit2" element="digit"><bounds x="91" y="-15.5" width="24" height="32" /></bezel>
<bezel name="2.8" element="seg"><bounds x="95" y="42.5" width="15" height="3" /></bezel>
<bezel name="2.9" element="seg"><bounds x="95" y="71.5" width="15" height="3" /></bezel>
<bezel name="digit3" element="digit"><bounds x="135" y="-15.5" width="24" height="32" /></bezel>
<bezel name="3.8" element="seg"><bounds x="139" y="42.5" width="15" height="3" /></bezel>
<bezel name="3.9" element="seg"><bounds x="139" y="71.5" width="15" height="3" /></bezel>
<bezel name="digit4" element="digit"><bounds x="179" y="-15.5" width="24" height="32" /></bezel>
<bezel name="4.8" element="seg"><bounds x="183" y="42.5" width="15" height="3" /></bezel>
<bezel name="4.9" element="seg"><bounds x="183" y="71.5" width="15" height="3" /></bezel>
<bezel name="digit5" element="digit"><bounds x="223" y="-15.5" width="24" height="32" /></bezel>
<bezel name="5.8" element="seg"><bounds x="227" y="42.5" width="15" height="3" /></bezel>
<bezel name="5.9" element="seg"><bounds x="227" y="71.5" width="15" height="3" /></bezel>
<bezel name="digit6" element="digit"><bounds x="267" y="-15.5" width="24" height="32" /></bezel>
<bezel name="6.8" element="seg"><bounds x="271" y="42.5" width="15" height="3" /></bezel>
<bezel name="6.9" element="seg"><bounds x="271" y="71.5" width="15" height="3" /></bezel>
<bezel name="digit7" element="digit"><bounds x="311" y="-15.5" width="24" height="32" /></bezel>
<bezel name="7.8" element="seg"><bounds x="315" y="42.5" width="15" height="3" /></bezel>
<bezel name="7.9" element="seg"><bounds x="315" y="71.5" width="15" height="3" /></bezel>
<bezel name="digit8" element="digit"><bounds x="355" y="-15.5" width="24" height="32" /></bezel>
<bezel name="8.8" element="seg"><bounds x="359" y="42.5" width="15" height="3" /></bezel>
<bezel name="8.9" element="seg"><bounds x="359" y="71.5" width="15" height="3" /></bezel>
</view>
</mamelayout>

View File

@ -34,7 +34,7 @@
<element name="text_p1">
<rect><color red="0.24" green="0.4" blue="0.24" /></rect>
<text string="P1 SEL:">
<text string="PL SEL:">
<bounds x="0.0" y="0.17" width="1.0" height="0.6" />
<color red="0.7" green="0.7" blue="0.8" />
</text>
@ -139,7 +139,6 @@
<bezel element="static_white"><bounds x="344" y="29" width="4" height="1" /></bezel>
<bezel element="static_white"><bounds x="344" y="56" width="4" height="1" /></bezel>
<!-- leds -->
<bezel name="0.5" element="seg"><bounds x="0" y="0" width="5" height="20" /></bezel>

View File

@ -2283,6 +2283,7 @@ gnwmndon // Nintendo
// hh_tms1k
mathmagi // APF
amaztron // Coleco
cqback // Coleco
h2hbaseb // Coleco
h2hfootb // Coleco
tc4 // Coleco