harddriv.c: converted to use modern n68681 device. [Osso]

This commit is contained in:
Fabio Priuli 2013-06-24 19:55:23 +00:00
parent c06ba9d40f
commit efab6d13a5
3 changed files with 18 additions and 17 deletions

View File

@ -326,7 +326,6 @@ Notes:
#include "emu.h" #include "emu.h"
#include "machine/atarigen.h" #include "machine/atarigen.h"
#include "machine/asic65.h" #include "machine/asic65.h"
#include "machine/68681.h"
#include "audio/atarijsa.h" #include "audio/atarijsa.h"
#include "sound/dac.h" #include "sound/dac.h"
#include "includes/slapstic.h" #include "includes/slapstic.h"
@ -408,12 +407,13 @@ static const dsp32_config dsp32c_config =
* *
*************************************/ *************************************/
static const duart68681_config duart_config = static const duartn68681_config duart_config =
{ {
harddriv_duart_irq_handler, /* irq callback */ DEVCB_DRIVER_LINE_MEMBER(harddriv_state, harddriv_duart_irq_handler), /* irq callback */
NULL, /* serial transmit */ DEVCB_NULL, /* serial transmit A */
NULL, /* output port */ DEVCB_NULL, /* serial transmit B */
NULL /* input port */ DEVCB_NULL, /* input port */
DEVCB_NULL, /* output port */
}; };
@ -437,7 +437,7 @@ static ADDRESS_MAP_START( driver_68k_map, AS_PROGRAM, 16, harddriv_state )
AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE_LEGACY(hd68k_adc12_r, hd68k_adc_control_w) AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE_LEGACY(hd68k_adc12_r, hd68k_adc_control_w)
AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(hd68k_gsp_io_r, hd68k_gsp_io_w) AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(hd68k_gsp_io_r, hd68k_gsp_io_w)
AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE_LEGACY(hd68k_msp_io_r, hd68k_msp_io_w) AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE_LEGACY(hd68k_msp_io_r, hd68k_msp_io_w)
AM_RANGE(0xff0000, 0xff001f) AM_DEVREADWRITE8_LEGACY("duart68681", duart68681_r, duart68681_w, 0xff00) AM_RANGE(0xff0000, 0xff001f) AM_DEVREADWRITE8("duartn68681", duartn68681_device, read, write, 0xff00)
AM_RANGE(0xff4000, 0xff4fff) AM_READWRITE_LEGACY(hd68k_zram_r, hd68k_zram_w) AM_SHARE("eeprom") AM_RANGE(0xff4000, 0xff4fff) AM_READWRITE_LEGACY(hd68k_zram_r, hd68k_zram_w) AM_SHARE("eeprom")
AM_RANGE(0xff8000, 0xffffff) AM_RAM AM_RANGE(0xff8000, 0xffffff) AM_RAM
ADDRESS_MAP_END ADDRESS_MAP_END
@ -485,7 +485,7 @@ static ADDRESS_MAP_START( multisync_68k_map, AS_PROGRAM, 16, harddriv_state )
AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE_LEGACY(hd68k_adc12_r, hd68k_adc_control_w) AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE_LEGACY(hd68k_adc12_r, hd68k_adc_control_w)
AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(hd68k_gsp_io_r, hd68k_gsp_io_w) AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(hd68k_gsp_io_r, hd68k_gsp_io_w)
AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE_LEGACY(hd68k_msp_io_r, hd68k_msp_io_w) AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE_LEGACY(hd68k_msp_io_r, hd68k_msp_io_w)
AM_RANGE(0xff0000, 0xff001f) AM_DEVREADWRITE8_LEGACY("duart68681", duart68681_r, duart68681_w, 0xff00) AM_RANGE(0xff0000, 0xff001f) AM_DEVREADWRITE8("duartn68681", duartn68681_device, read, write, 0xff00)
AM_RANGE(0xff4000, 0xff4fff) AM_READWRITE_LEGACY(hd68k_zram_r, hd68k_zram_w) AM_SHARE("eeprom") AM_RANGE(0xff4000, 0xff4fff) AM_READWRITE_LEGACY(hd68k_zram_r, hd68k_zram_w) AM_SHARE("eeprom")
AM_RANGE(0xff8000, 0xffffff) AM_RAM AM_RANGE(0xff8000, 0xffffff) AM_RAM
ADDRESS_MAP_END ADDRESS_MAP_END
@ -523,7 +523,7 @@ static ADDRESS_MAP_START( multisync2_68k_map, AS_PROGRAM, 16, harddriv_state )
AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE_LEGACY(hd68k_adc12_r, hd68k_adc_control_w) AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE_LEGACY(hd68k_adc12_r, hd68k_adc_control_w)
AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(hd68k_gsp_io_r, hd68k_gsp_io_w) AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(hd68k_gsp_io_r, hd68k_gsp_io_w)
AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE_LEGACY(hd68k_msp_io_r, hd68k_msp_io_w) AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE_LEGACY(hd68k_msp_io_r, hd68k_msp_io_w)
AM_RANGE(0xfc0000, 0xfc001f) AM_DEVREADWRITE8_LEGACY("duart68681", duart68681_r, duart68681_w, 0xff00) AM_RANGE(0xfc0000, 0xfc001f) AM_DEVREADWRITE8("duartn68681", duartn68681_device, read, write, 0xff00)
AM_RANGE(0xfd0000, 0xfd0fff) AM_MIRROR(0x004000) AM_READWRITE_LEGACY(hd68k_zram_r, hd68k_zram_w) AM_SHARE("eeprom") AM_RANGE(0xfd0000, 0xfd0fff) AM_MIRROR(0x004000) AM_READWRITE_LEGACY(hd68k_zram_r, hd68k_zram_w) AM_SHARE("eeprom")
AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END ADDRESS_MAP_END
@ -1353,7 +1353,7 @@ static MACHINE_CONFIG_START( driver_nomsp, harddriv_state )
MCFG_MACHINE_RESET_OVERRIDE(harddriv_state,harddriv) MCFG_MACHINE_RESET_OVERRIDE(harddriv_state,harddriv)
MCFG_NVRAM_ADD_1FILL("eeprom") MCFG_NVRAM_ADD_1FILL("eeprom")
MCFG_DUART68681_ADD("duart68681", XTAL_3_6864MHz, duart_config) MCFG_DUARTN68681_ADD("duartn68681", XTAL_3_6864MHz, duart_config)
/* video hardware */ /* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)

View File

@ -11,6 +11,7 @@
#include "cpu/dsp32/dsp32.h" #include "cpu/dsp32/dsp32.h"
#include "sound/dac.h" #include "sound/dac.h"
#include "machine/atarigen.h" #include "machine/atarigen.h"
#include "machine/n68681.h"
#define HARDDRIV_MASTER_CLOCK XTAL_32MHz #define HARDDRIV_MASTER_CLOCK XTAL_32MHz
#define HARDDRIV_GSP_CLOCK XTAL_48MHz #define HARDDRIV_GSP_CLOCK XTAL_48MHz
@ -46,7 +47,8 @@ public:
m_gsp_paletteram_hi(*this, "gsp_palram_hi"), m_gsp_paletteram_hi(*this, "gsp_palram_hi"),
m_ds3sdsp_internal_timer(*this, "ds3sdsp_timer"), m_ds3sdsp_internal_timer(*this, "ds3sdsp_timer"),
m_ds3xdsp_internal_timer(*this, "ds3xdsp_timer"), m_ds3xdsp_internal_timer(*this, "ds3xdsp_timer"),
m_dac(*this, "dac") { } m_dac(*this, "dac"),
m_duart(*this, "duartn68681") { }
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<tms34010_device> m_gsp; required_device<tms34010_device> m_gsp;
@ -261,6 +263,8 @@ public:
TIMER_CALLBACK_MEMBER(rddsp32_sync_cb); TIMER_CALLBACK_MEMBER(rddsp32_sync_cb);
DECLARE_WRITE16_MEMBER(hdsnddsp_dac_w); DECLARE_WRITE16_MEMBER(hdsnddsp_dac_w);
optional_device<dac_device> m_dac; optional_device<dac_device> m_dac;
required_device<duartn68681_device> m_duart;
DECLARE_WRITE_LINE_MEMBER(harddriv_duart_irq_handler);
}; };
@ -296,8 +300,6 @@ DECLARE_WRITE16_HANDLER( hdc68k_wheel_edge_reset_w );
DECLARE_READ16_HANDLER( hd68k_zram_r ); DECLARE_READ16_HANDLER( hd68k_zram_r );
DECLARE_WRITE16_HANDLER( hd68k_zram_w ); DECLARE_WRITE16_HANDLER( hd68k_zram_w );
void harddriv_duart_irq_handler(device_t *device, int state, UINT8 vector);
DECLARE_WRITE16_HANDLER( hdgsp_io_w ); DECLARE_WRITE16_HANDLER( hdgsp_io_w );
DECLARE_WRITE16_HANDLER( hdgsp_protection_w ); DECLARE_WRITE16_HANDLER( hdgsp_protection_w );

View File

@ -484,11 +484,10 @@ WRITE16_HANDLER( hd68k_zram_w )
* *
*************************************/ *************************************/
void harddriv_duart_irq_handler(device_t *device, int state, UINT8 vector) WRITE_LINE_MEMBER(harddriv_state::harddriv_duart_irq_handler)
{ {
harddriv_state *hd_state = device->machine().driver_data<harddriv_state>(); m_duart_irq_state = state;
hd_state->m_duart_irq_state = state; update_interrupts();
hd_state->update_interrupts();
} }