summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Robbbert <robbbert@users.noreply.github.com>2012-09-16 11:11:29 +0000
committer Robbbert <robbbert@users.noreply.github.com>2012-09-16 11:11:29 +0000
commit3361d9e4dd3da3f564c820d4d482379c5441dd84 (patch)
treee8f52216653853ee16e8274acfab18da9f00460b /src
parent96ebed6493073be4ea3a4281a3bfb01a131f7835 (diff)
heavymtl: saving my work so far
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/rowamet.c57
-rw-r--r--src/mame/layout/rowamet.lay38
2 files changed, 50 insertions, 45 deletions
diff --git a/src/mame/drivers/rowamet.c b/src/mame/drivers/rowamet.c
index 11293e1a93e..c316f0d313a 100644
--- a/src/mame/drivers/rowamet.c
+++ b/src/mame/drivers/rowamet.c
@@ -5,6 +5,11 @@
PinMAME used as reference (couldn't find a manual)
+ToDO:
+- Inputs
+- Outputs
+- Fix display
+- Doesn't boot properly
*************************************************************************************/
@@ -26,7 +31,11 @@ public:
DECLARE_READ8_MEMBER(sound_r);
DECLARE_READ8_MEMBER(switch_r);
DECLARE_WRITE8_MEMBER(mute_w);
+ DECLARE_READ8_MEMBER(io_r);
+ DECLARE_WRITE8_MEMBER(io_w);
UINT8 m_out_offs;
+ UINT8 m_sndcmd;
+ UINT8 m_io[16];
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_cpu2;
required_shared_ptr<UINT8> m_p_ram;
@@ -46,7 +55,10 @@ public:
static ADDRESS_MAP_START( rowamet_map, AS_PROGRAM, 8, rowamet_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2800, 0x2808) AM_READ(switch_r)
- AM_RANGE(0x4000, 0x40ff) AM_RAM AM_SHARE("ram")
+ AM_RANGE(0x4000, 0x407f) AM_RAM
+ AM_RANGE(0x4080, 0x408f) AM_RAM AM_SHARE("ram")
+ AM_RANGE(0x4090, 0x409f) AM_READWRITE(io_r,io_w)
+ AM_RANGE(0x40a0, 0x40ff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( rowamet_sub_map, AS_PROGRAM, 8, rowamet_state )
@@ -66,7 +78,7 @@ INPUT_PORTS_END
READ8_MEMBER( rowamet_state::sound_r )
{
- return (m_p_ram[0x92] >> 4) | (m_p_ram[0x93] & 0xf0);
+ return m_sndcmd;
}
READ8_MEMBER( rowamet_state::switch_r )
@@ -77,10 +89,28 @@ READ8_MEMBER( rowamet_state::switch_r )
WRITE8_MEMBER( rowamet_state::mute_w )
{
machine().sound().system_enable(~data);
- printf("%X ",data);
}
-//m_cpu2->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
+READ8_MEMBER( rowamet_state::io_r )
+{
+ return m_io[offset];
+}
+
+WRITE8_MEMBER( rowamet_state::io_w )
+{
+ m_io[offset] = data;
+
+ if (offset == 2)
+ {
+ UINT8 cmd = (m_io[2]>>4) | (m_io[3] & 0xf0);
+ if (cmd != m_sndcmd)
+ {
+ m_sndcmd = cmd;
+ machine().device("cpu2")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
+ }
+ }
+}
+
void rowamet_state::machine_reset()
{
}
@@ -93,22 +123,11 @@ static TIMER_DEVICE_CALLBACK( rowamet_timer )
{
static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0, 0, 0, 0, 0, 0 };
rowamet_state *state = timer.machine().driver_data<rowamet_state>();
- state->m_out_offs++;
- if (state->m_out_offs > 0x9f)
- state->m_out_offs = 0x80;
+ state->m_out_offs &= 15;
- if (state->m_out_offs < 0x90)
- {
- UINT8 digit = state->m_out_offs << 1;
- output_set_digit_value(digit, patterns[state->m_p_ram[state->m_out_offs]>>4]);
- output_set_digit_value(++digit, patterns[state->m_p_ram[state->m_out_offs]&15]);
- }
- //else
- //if (state->m_out_offs == 0x90)
- // timer.machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE);
- //else
- //if (state->m_out_offs == 0x9f)
- // timer.machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
+ UINT8 digit = state->m_out_offs << 1;
+ output_set_digit_value(digit, patterns[state->m_p_ram[state->m_out_offs]>>4]);
+ output_set_digit_value(++digit, patterns[state->m_p_ram[state->m_out_offs++]&15]);
}
static MACHINE_CONFIG_START( rowamet, rowamet_state )
diff --git a/src/mame/layout/rowamet.lay b/src/mame/layout/rowamet.lay
index 5c8a9996db3..39fd1c49127 100644
--- a/src/mame/layout/rowamet.lay
+++ b/src/mame/layout/rowamet.lay
@@ -16,13 +16,14 @@
<color red="0.0" green="0.0" blue="0.0" />
</rect>
</element>
- <element name="P0"><text string="Balls"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+ <element name="P0"><text string="Ball"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element>
- <element name="P7"><text string="High Score"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+ <element name="P7"><text string="Match"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+ <element name="P8"><text string="Player"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<view name="Default Layout">
@@ -114,39 +115,23 @@
<bounds left="230" top="225" right="264" bottom="264" />
</bezel>
- <!-- High Score -->
- <bezel name="digit24" element="digit">
+ <!-- Player -->
+ <bezel name="digit27" element="digit">
<bounds left="10" top="285" right="44" bottom="324" />
</bezel>
- <bezel name="digit25" element="digit">
- <bounds left="54" top="285" right="88" bottom="324" />
- </bezel>
+
+ <!-- Match -->
<bezel name="digit26" element="digit">
- <bounds left="98" top="285" right="132" bottom="324" />
- </bezel>
- <bezel name="digit27" element="digit">
- <bounds left="142" top="285" right="176" bottom="324" />
- </bezel>
- <bezel name="digit28" element="digit">
- <bounds left="186" top="285" right="220" bottom="324" />
- </bezel>
- <bezel name="digit29" element="digit">
<bounds left="230" top="285" right="264" bottom="324" />
</bezel>
<!-- Credits -->
- <bezel name="digit30" element="digit">
+ <bezel name="digit25" element="digit">
<bounds left="10" top="345" right="44" bottom="384" />
</bezel>
- <bezel name="digit31" element="digit">
- <bounds left="54" top="345" right="88" bottom="384" />
- </bezel>
- <!-- Match / Balls Left -->
- <bezel name="digit32" element="digit">
- <bounds left="186" top="345" right="220" bottom="384" />
- </bezel>
- <bezel name="digit33" element="digit">
+ <!-- Ball -->
+ <bezel name="digit24" element="digit">
<bounds left="230" top="345" right="264" bottom="384" />
</bezel>
<bezel element="P0"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
@@ -155,6 +140,7 @@
<bezel element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
<bezel element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
<bezel element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
- <bezel element="P7"><bounds left="100" right="180" top="270" bottom="282" /></bezel>
+ <bezel element="P7"><bounds left="200" right="258" top="270" bottom="282" /></bezel>
+ <bezel element="P8"><bounds left="30" right="88" top="270" bottom="282" /></bezel>
</view>
</mamelayout>