mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
New working machine added
--------- A-One Arrange Ball/Tandy Zingo/LJN Computer Impulse [hap, Sean Riddle]
This commit is contained in:
parent
7c46c30c80
commit
5461e46882
@ -154,6 +154,7 @@
|
|||||||
#include "7in1ss.lh"
|
#include "7in1ss.lh"
|
||||||
#include "amaztron.lh" // clickable
|
#include "amaztron.lh" // clickable
|
||||||
#include "arcmania.lh"
|
#include "arcmania.lh"
|
||||||
|
#include "arrball.lh"
|
||||||
#include "astro.lh"
|
#include "astro.lh"
|
||||||
#include "bankshot.lh"
|
#include "bankshot.lh"
|
||||||
#include "bcheetah.lh"
|
#include "bcheetah.lh"
|
||||||
@ -558,13 +559,15 @@ MACHINE_CONFIG_END
|
|||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
A-One LSI Arrange Ball
|
A-One LSI Arrange Ball
|
||||||
|
* PCB label Kaken, PT-249
|
||||||
* TMS1000NLL MP0166 (die label 1000B, MP0166)
|
* TMS1000NLL MP0166 (die label 1000B, MP0166)
|
||||||
* 2-digit 7seg LED display + 22 LEDs, 1-bit sound
|
* 2-digit 7seg LED display + 22 LEDs, 1-bit sound
|
||||||
|
|
||||||
known releases:
|
known releases:
|
||||||
- Japan/World: Arrange Ball (black case)
|
- Japan/World: Arrange Ball (black case)
|
||||||
- USA(1): Computer Impulse, published by LJN (white case)
|
- USA(1): Zingo (model 60-2123), published by Tandy (red case)
|
||||||
- USA(2): Zingo (model 60-2123), published by Tandy (red case)
|
- USA(2): Computer Impulse, published by LJN (white case)
|
||||||
|
- Germany: Fixball, unknown publisher, same as LJN version
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -575,6 +578,7 @@ public:
|
|||||||
: hh_tms1k_state(mconfig, type, tag)
|
: hh_tms1k_state(mconfig, type, tag)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
void prepare_display();
|
||||||
DECLARE_WRITE16_MEMBER(write_r);
|
DECLARE_WRITE16_MEMBER(write_r);
|
||||||
DECLARE_WRITE16_MEMBER(write_o);
|
DECLARE_WRITE16_MEMBER(write_o);
|
||||||
DECLARE_READ8_MEMBER(read_k);
|
DECLARE_READ8_MEMBER(read_k);
|
||||||
@ -582,24 +586,50 @@ public:
|
|||||||
|
|
||||||
// handlers
|
// handlers
|
||||||
|
|
||||||
|
void arrball_state::prepare_display()
|
||||||
|
{
|
||||||
|
set_display_segmask(0x10, 0x7f);
|
||||||
|
set_display_segmask(0x20, 0x06); // left digit only segments B and C
|
||||||
|
display_matrix(7, 7, m_o, m_r);
|
||||||
|
}
|
||||||
|
|
||||||
WRITE16_MEMBER(arrball_state::write_r)
|
WRITE16_MEMBER(arrball_state::write_r)
|
||||||
{
|
{
|
||||||
|
// R8: input mux (always set)
|
||||||
|
m_inp_mux = data >> 8 & 1;
|
||||||
|
|
||||||
|
// R9,R10: speaker out
|
||||||
|
m_speaker->level_w(data >> 9 & 3);
|
||||||
|
|
||||||
|
// R0-R6: digit/led select
|
||||||
|
m_r = data;
|
||||||
|
prepare_display();
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE16_MEMBER(arrball_state::write_o)
|
WRITE16_MEMBER(arrball_state::write_o)
|
||||||
{
|
{
|
||||||
|
// O0-O6: digit segments/led data
|
||||||
|
m_o = data;
|
||||||
|
prepare_display();
|
||||||
}
|
}
|
||||||
|
|
||||||
READ8_MEMBER(arrball_state::read_k)
|
READ8_MEMBER(arrball_state::read_k)
|
||||||
{
|
{
|
||||||
return 0;
|
// K: multiplexed inputs (actually just 1)
|
||||||
|
return read_inputs(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// config
|
// config
|
||||||
|
|
||||||
static INPUT_PORTS_START( arrball )
|
static INPUT_PORTS_START( arrball )
|
||||||
|
PORT_START("IN.0") // R8
|
||||||
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Shot")
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Stop")
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||||
|
PORT_CONFNAME( 0x08, 0x00, "Speed" )
|
||||||
|
PORT_CONFSETTING( 0x00, "Slow" )
|
||||||
|
PORT_CONFSETTING( 0x08, "Fast" )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static const s16 arrball_speaker_levels[4] = { 0, 0x7fff, -0x8000, 0 };
|
static const s16 arrball_speaker_levels[4] = { 0, 0x7fff, -0x8000, 0 };
|
||||||
@ -613,7 +643,7 @@ static MACHINE_CONFIG_START( arrball )
|
|||||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(arrball_state, write_o))
|
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(arrball_state, write_o))
|
||||||
|
|
||||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
||||||
//MCFG_DEFAULT_LAYOUT(layout_arrball)
|
MCFG_DEFAULT_LAYOUT(layout_arrball)
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
49
src/mame/layout/arrball.lay
Normal file
49
src/mame/layout/arrball.lay
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<mamelayout version="2">
|
||||||
|
|
||||||
|
<!-- define elements -->
|
||||||
|
|
||||||
|
<element name="digit" defstate="0">
|
||||||
|
<led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
<element name="led" defstate="0">
|
||||||
|
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
|
||||||
|
<disk state="0"><color red="0.1" green="0.01" blue="0.015" /></disk>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- build screen -->
|
||||||
|
|
||||||
|
<view name="Internal Layout">
|
||||||
|
<bounds left="0" right="18" top="0" bottom="36" />
|
||||||
|
|
||||||
|
<bezel name="0.0" element="led"><bounds x="0" y="10" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="0.1" element="led"><bounds x="2" y="10" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="0.2" element="led"><bounds x="4" y="10" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="0.3" element="led"><bounds x="6" y="10" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="1.0" element="led"><bounds x="0" y="12" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="1.1" element="led"><bounds x="2" y="12" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="1.2" element="led"><bounds x="4" y="12" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="1.3" element="led"><bounds x="6" y="12" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="2.0" element="led"><bounds x="0" y="14" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="2.1" element="led"><bounds x="2" y="14" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="2.2" element="led"><bounds x="4" y="14" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="2.3" element="led"><bounds x="6" y="14" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="3.0" element="led"><bounds x="0" y="16" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="3.1" element="led"><bounds x="2" y="16" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="3.2" element="led"><bounds x="4" y="16" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="3.3" element="led"><bounds x="6" y="16" width="1" height="1" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="6.0" element="led"><bounds x="8" y="16" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="6.1" element="led"><bounds x="8" y="14" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="6.2" element="led"><bounds x="8" y="12" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="6.3" element="led"><bounds x="8" y="10" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="6.4" element="led"><bounds x="8" y="8" width="1" height="1" /></bezel>
|
||||||
|
<bezel name="6.5" element="led"><bounds x="6" y="8" width="1" height="1" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="digit5" element="digit"><bounds x="0" y="0" width="4" height="6" /></bezel>
|
||||||
|
<bezel name="digit4" element="digit"><bounds x="4" y="0" width="4" height="6" /></bezel>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</mamelayout>
|
Loading…
Reference in New Issue
Block a user