summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/r2dtank.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/r2dtank.cpp')
-rw-r--r--src/mame/drivers/r2dtank.cpp39
1 files changed, 21 insertions, 18 deletions
diff --git a/src/mame/drivers/r2dtank.cpp b/src/mame/drivers/r2dtank.cpp
index 7714c7d9f44..dff5a7cfa5a 100644
--- a/src/mame/drivers/r2dtank.cpp
+++ b/src/mame/drivers/r2dtank.cpp
@@ -30,6 +30,9 @@ other = M5L8226 (x2)
RAM = 4116 (x11)
----------------------------------------------------
+
+XTAL values appear to be 3579.545 (X1) and 11.200 (X2).
+
********************************************************************/
#include "emu.h"
@@ -49,7 +52,7 @@ RAM = 4116 (x11)
#define LOG_AUDIO_COMM (0)
-#define MAIN_CPU_MASTER_CLOCK (11200000)
+#define MAIN_CPU_MASTER_CLOCK (11.2_MHz_XTAL)
#define PIXEL_CLOCK (MAIN_CPU_MASTER_CLOCK / 2)
#define CRTC_CLOCK (MAIN_CPU_MASTER_CLOCK / 16)
@@ -198,10 +201,10 @@ READ8_MEMBER(r2dtank_state::AY8910_port_r)
uint8_t ret = 0;
if (m_AY8910_selected & 0x08)
- ret = m_ay1->data_r(space, 0);
+ ret = m_ay1->data_r();
if (m_AY8910_selected & 0x10)
- ret = m_ay2->data_r(space, 0);
+ ret = m_ay2->data_r();
return ret;
}
@@ -210,10 +213,10 @@ READ8_MEMBER(r2dtank_state::AY8910_port_r)
WRITE8_MEMBER(r2dtank_state::AY8910_port_w)
{
if (m_AY8910_selected & 0x08)
- m_ay1->data_address_w(space, m_AY8910_selected >> 2, data);
+ m_ay1->data_address_w(m_AY8910_selected >> 2, data);
if (m_AY8910_selected & 0x10)
- m_ay2->data_address_w(space, m_AY8910_selected >> 2, data);
+ m_ay2->data_address_w(m_AY8910_selected >> 2, data);
}
@@ -324,7 +327,7 @@ MC6845_UPDATE_ROW( r2dtank_state::crtc_update_row )
WRITE8_MEMBER(r2dtank_state::pia_comp_w)
{
- m_pia_main->write(machine().dummy_space(), offset, ~data);
+ m_pia_main->write(offset, ~data);
}
@@ -442,19 +445,20 @@ INPUT_PORTS_END
*
*************************************/
-MACHINE_CONFIG_START(r2dtank_state::r2dtank)
- MCFG_DEVICE_ADD("maincpu", M6809,3000000) /* ?? too fast ? */
- MCFG_DEVICE_PROGRAM_MAP(r2dtank_main_map)
+void r2dtank_state::r2dtank(machine_config &config)
+{
+ MC6809(config, m_maincpu, MAIN_CPU_MASTER_CLOCK / 4); // divider guessed
+ m_maincpu->set_addrmap(AS_PROGRAM, &r2dtank_state::r2dtank_main_map);
- MCFG_DEVICE_ADD("audiocpu", M6802,3000000) /* ?? */
- MCFG_DEVICE_PROGRAM_MAP(r2dtank_audio_map)
+ M6802(config, m_audiocpu, 3.579545_MHz_XTAL);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &r2dtank_state::r2dtank_audio_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 256, 0, 256, 256, 0, 256) /* temporary, CRTC will configure screen */
- MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(PIXEL_CLOCK, 360, 0, 256, 276, 0, 224);
+ screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update));
PALETTE(config, m_palette, palette_device::BGR_3BIT);
@@ -496,16 +500,15 @@ MACHINE_CONFIG_START(r2dtank_state::r2dtank)
GENERIC_LATCH_8(config, m_soundlatch);
GENERIC_LATCH_8(config, m_soundlatch2);
- AY8910(config, m_ay1, (4000000 / 4));
+ AY8910(config, m_ay1, 3.579545_MHz_XTAL / 4); // probably E clock from MC6802
m_ay1->port_a_read_callback().set_ioport("DSWB");
m_ay1->add_route(ALL_OUTPUTS, "mono", 0.25);
- AY8910(config, m_ay2, (4000000 / 4));
+ AY8910(config, m_ay2, 3.579545_MHz_XTAL / 4);
m_ay2->port_a_read_callback().set_ioport("IN1");
m_ay2->port_b_read_callback().set_ioport("DSWA");
m_ay2->add_route(ALL_OUTPUTS, "mono", 0.25);
-
-MACHINE_CONFIG_END
+}