summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2016-03-05 11:00:51 +0100
committer hap <happppp@users.noreply.github.com>2016-03-05 11:01:13 +0100
commit80b569fb2b499fd0026e4e571bd99bd1c67ff370 (patch)
treeaee76da74bffa0765cd2ab6f9b2126902de9db3d
parentf5fd732de6f2a5b520e98337049c875f0a2a58a5 (diff)
hh_cop400: ctstein WIP
-rw-r--r--src/mame/drivers/hh_cop400.cpp55
-rw-r--r--src/mame/layout/ctstein.lay23
2 files changed, 75 insertions, 3 deletions
diff --git a/src/mame/drivers/hh_cop400.cpp b/src/mame/drivers/hh_cop400.cpp
index fcf3eabc189..74f513bb824 100644
--- a/src/mame/drivers/hh_cop400.cpp
+++ b/src/mame/drivers/hh_cop400.cpp
@@ -17,6 +17,7 @@
#include "sound/speaker.h"
// internal artwork
+#include "ctstein.lh" // clickable
#include "einvaderc.lh" // test-layout(but still playable)
#include "funjacks.lh"
#include "funrlgl.lh"
@@ -245,26 +246,74 @@ public:
ctstein_state(const machine_config &mconfig, device_type type, const char *tag)
: hh_cop400_state(mconfig, type, tag)
{ }
+
+ DECLARE_WRITE8_MEMBER(write_g);
+ DECLARE_WRITE8_MEMBER(write_l);
+ DECLARE_WRITE_LINE_MEMBER(write_sk);
+ DECLARE_READ8_MEMBER(read_l);
};
// handlers
-//..
+WRITE8_MEMBER(ctstein_state::write_g)
+{
+ // G0-G2: input mux
+ m_inp_mux = ~data & 7;
+}
+
+WRITE8_MEMBER(ctstein_state::write_l)
+{
+ // L0-L3: button lamps
+ display_matrix(4, 1, data & 0xf, 1);
+}
+
+READ8_MEMBER(ctstein_state::read_l)
+{
+ // L4-L7: multiplexed inputs
+ return read_inputs(3) << 4 | 0xf;
+}
+
+WRITE_LINE_MEMBER(ctstein_state::write_sk)
+{
+ // SK: speaker out
+ m_speaker->level_w(state);
+}
// config
static INPUT_PORTS_START( ctstein )
+ PORT_START("IN.0") // D0 port L
+ PORT_CONFNAME( 0x0f, 0x01, DEF_STR( Difficulty ) )
+ PORT_CONFSETTING( 0x01, "1" )
+ PORT_CONFSETTING( 0x02, "2" )
+ PORT_CONFSETTING( 0x04, "3" )
+ PORT_CONFSETTING( 0x08, "4" )
+
+ PORT_START("IN.1") // D1 port L
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON6 )
+ PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("IN.2") // D2 port L
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 )
INPUT_PORTS_END
static MACHINE_CONFIG_START( ctstein, ctstein_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", COP421, 1000000) // approximation - RC osc. R=12K to +6V, C=100pf to GND
+ MCFG_CPU_ADD("maincpu", COP421, 2000000) // approximation - RC osc. R=12K to +6V, C=100pf to GND
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
+ MCFG_COP400_WRITE_G_CB(WRITE8(ctstein_state, write_g))
+ MCFG_COP400_WRITE_L_CB(WRITE8(ctstein_state, write_l))
+ MCFG_COP400_WRITE_SK_CB(WRITELINE(ctstein_state, write_sk))
+ MCFG_COP400_READ_L_CB(READ8(ctstein_state, read_l))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
-// MCFG_DEFAULT_LAYOUT(layout_ctstein)
+ MCFG_DEFAULT_LAYOUT(layout_ctstein)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/layout/ctstein.lay b/src/mame/layout/ctstein.lay
new file mode 100644
index 00000000000..c65fae22176
--- /dev/null
+++ b/src/mame/layout/ctstein.lay
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="led" defstate="0">
+ <disk state="0"><color red="0.2" green="0.04" blue="0.046" /></disk>
+ <disk state="1"><color red="1.0" green="0.2" blue="0.23" /></disk>
+ </element>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="0" right="100" top="0" bottom="100" />
+
+ <bezel name="0.0" element="led"><bounds x="1" y="1" width="1" height="1" /></bezel>
+ <bezel name="0.1" element="led"><bounds x="2" y="1" width="1" height="1" /></bezel>
+ <bezel name="0.2" element="led"><bounds x="3" y="1" width="1" height="1" /></bezel>
+ <bezel name="0.3" element="led"><bounds x="4" y="1" width="1" height="1" /></bezel>
+
+ </view>
+</mamelayout>