New working machine added

---------
A-One Arrange Ball/Tandy Zingo/LJN Computer Impulse [hap, Sean Riddle]
This commit is contained in:
hap 2017-07-07 18:24:26 +02:00
parent 7c46c30c80
commit 5461e46882
2 changed files with 84 additions and 5 deletions

View File

@ -154,6 +154,7 @@
#include "7in1ss.lh"
#include "amaztron.lh" // clickable
#include "arcmania.lh"
#include "arrball.lh"
#include "astro.lh"
#include "bankshot.lh"
#include "bcheetah.lh"
@ -558,13 +559,15 @@ MACHINE_CONFIG_END
/***************************************************************************
A-One LSI Arrange Ball
* PCB label Kaken, PT-249
* TMS1000NLL MP0166 (die label 1000B, MP0166)
* 2-digit 7seg LED display + 22 LEDs, 1-bit sound
known releases:
- Japan/World: Arrange Ball (black case)
- USA(1): Computer Impulse, published by LJN (white case)
- USA(2): Zingo (model 60-2123), published by Tandy (red case)
- USA(1): 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)
{ }
void prepare_display();
DECLARE_WRITE16_MEMBER(write_r);
DECLARE_WRITE16_MEMBER(write_o);
DECLARE_READ8_MEMBER(read_k);
@ -582,24 +586,50 @@ public:
// 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)
{
// 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)
{
// O0-O6: digit segments/led data
m_o = data;
prepare_display();
}
READ8_MEMBER(arrball_state::read_k)
{
return 0;
// K: multiplexed inputs (actually just 1)
return read_inputs(1);
}
// config
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
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_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 */
MCFG_SPEAKER_STANDARD_MONO("mono")

View 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>