diff options
Diffstat (limited to 'src/mame/drivers/r2dtank.cpp')
-rw-r--r-- | src/mame/drivers/r2dtank.cpp | 39 |
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 +} |