tms9927: converted to use inline configs. nw.
This commit is contained in:
parent
cc8edf5ac2
commit
479c09a79c
@ -39,6 +39,8 @@ tms9927_device::tms9927_device(const machine_config &mconfig, const char *tag, d
|
|||||||
: device_t(mconfig, TMS9927, "TMS9927 VTC", tag, owner, clock, "tms9927", __FILE__),
|
: device_t(mconfig, TMS9927, "TMS9927 VTC", tag, owner, clock, "tms9927", __FILE__),
|
||||||
device_video_interface(mconfig, *this),
|
device_video_interface(mconfig, *this),
|
||||||
m_write_vsyn(*this),
|
m_write_vsyn(*this),
|
||||||
|
m_hpixels_per_column(0),
|
||||||
|
m_selfload_region(NULL),
|
||||||
m_reset(0)
|
m_reset(0)
|
||||||
{
|
{
|
||||||
memset(m_reg, 0x00, sizeof(m_reg));
|
memset(m_reg, 0x00, sizeof(m_reg));
|
||||||
@ -48,6 +50,8 @@ tms9927_device::tms9927_device(const machine_config &mconfig, device_type type,
|
|||||||
: device_t(mconfig, type, name, tag, owner, clock, shortname, source),
|
: device_t(mconfig, type, name, tag, owner, clock, shortname, source),
|
||||||
device_video_interface(mconfig, *this),
|
device_video_interface(mconfig, *this),
|
||||||
m_write_vsyn(*this),
|
m_write_vsyn(*this),
|
||||||
|
m_hpixels_per_column(0),
|
||||||
|
m_selfload_region(NULL),
|
||||||
m_reset(0)
|
m_reset(0)
|
||||||
{
|
{
|
||||||
memset(m_reg, 0x00, sizeof(m_reg));
|
memset(m_reg, 0x00, sizeof(m_reg));
|
||||||
@ -69,22 +73,6 @@ crt5057_device::crt5057_device(const machine_config &mconfig, const char *tag, d
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// device_config_complete - perform any
|
|
||||||
// operations now that the configuration is
|
|
||||||
// complete
|
|
||||||
//-------------------------------------------------
|
|
||||||
|
|
||||||
void tms9927_device::device_config_complete()
|
|
||||||
{
|
|
||||||
// inherit a copy of the static data
|
|
||||||
const tms9927_interface *intf = reinterpret_cast<const tms9927_interface *>(static_config());
|
|
||||||
|
|
||||||
assert(intf != NULL);
|
|
||||||
|
|
||||||
*static_cast<tms9927_interface *>(this) = *intf;
|
|
||||||
}
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// device_start - device-specific startup
|
// device_start - device-specific startup
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
@ -14,17 +14,15 @@
|
|||||||
#define MCFG_TMS9927_VSYN_CALLBACK(_write) \
|
#define MCFG_TMS9927_VSYN_CALLBACK(_write) \
|
||||||
devcb = &tms9927_device::set_vsyn_wr_callback(*device, DEVCB2_##_write);
|
devcb = &tms9927_device::set_vsyn_wr_callback(*device, DEVCB2_##_write);
|
||||||
|
|
||||||
/* interface */
|
#define MCFG_TMS9927_CHAR_WIDTH(_pixels) \
|
||||||
struct tms9927_interface
|
tms9927_device::set_char_width(*device, _pixels);
|
||||||
{
|
|
||||||
int m_hpixels_per_column; /* number of pixels per video memory address */
|
#define MCFG_TMS9927_REGION(_tag) \
|
||||||
const char *m_selfload_region; /* name of the region with self-load data */
|
tms9927_device::set_region_tag(*device, _tag);
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class tms9927_device : public device_t,
|
class tms9927_device : public device_t,
|
||||||
public device_video_interface,
|
public device_video_interface
|
||||||
public tms9927_interface
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
tms9927_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
tms9927_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
@ -33,6 +31,9 @@ public:
|
|||||||
|
|
||||||
template<class _Object> static devcb2_base &set_vsyn_wr_callback(device_t &device, _Object object) { return downcast<tms9927_device &>(device).m_write_vsyn.set_callback(object); }
|
template<class _Object> static devcb2_base &set_vsyn_wr_callback(device_t &device, _Object object) { return downcast<tms9927_device &>(device).m_write_vsyn.set_callback(object); }
|
||||||
|
|
||||||
|
static void set_char_width(device_t &device, int pixels) { downcast<tms9927_device &>(device).m_hpixels_per_column = pixels; }
|
||||||
|
static void set_region_tag(device_t &device, const char *tag) { downcast<tms9927_device &>(device).m_selfload_region = tag; }
|
||||||
|
|
||||||
DECLARE_WRITE8_MEMBER(write);
|
DECLARE_WRITE8_MEMBER(write);
|
||||||
DECLARE_READ8_MEMBER(read);
|
DECLARE_READ8_MEMBER(read);
|
||||||
|
|
||||||
@ -42,7 +43,6 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
// device-level overrides
|
// device-level overrides
|
||||||
virtual void device_config_complete();
|
|
||||||
virtual void device_start();
|
virtual void device_start();
|
||||||
virtual void device_stop();
|
virtual void device_stop();
|
||||||
virtual void device_reset();
|
virtual void device_reset();
|
||||||
@ -59,6 +59,8 @@ private:
|
|||||||
void generic_access(address_space &space, offs_t offset);
|
void generic_access(address_space &space, offs_t offset);
|
||||||
|
|
||||||
devcb2_write_line m_write_vsyn;
|
devcb2_write_line m_write_vsyn;
|
||||||
|
int m_hpixels_per_column; /* number of pixels per video memory address */
|
||||||
|
const char *m_selfload_region; /* name of the region with self-load data */
|
||||||
|
|
||||||
// internal state
|
// internal state
|
||||||
const UINT8 *m_selfload;
|
const UINT8 *m_selfload;
|
||||||
@ -106,15 +108,4 @@ public:
|
|||||||
extern const device_type CRT5057;
|
extern const device_type CRT5057;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define MCFG_TMS9927_ADD(_tag, _clock, _config) \
|
|
||||||
MCFG_DEVICE_ADD(_tag, TMS9927, _clock) \
|
|
||||||
MCFG_DEVICE_CONFIG(_config)
|
|
||||||
|
|
||||||
#define MCFG_TMS9927_RECONFIG(_tag, _clock, _config) \
|
|
||||||
MCFG_DEVICE_MODIFY(_tag) \
|
|
||||||
MCFG_DEVICE_CLOCK(_clock) \
|
|
||||||
MCFG_DEVICE_CONFIG(_config)
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -564,21 +564,6 @@ static GFXDECODE_START( vertical )
|
|||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
|
||||||
*
|
|
||||||
* TMS9927 interface
|
|
||||||
*
|
|
||||||
*************************************/
|
|
||||||
|
|
||||||
static const tms9927_interface tms9927_intf =
|
|
||||||
{
|
|
||||||
8,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
*
|
*
|
||||||
* Machine drivers
|
* Machine drivers
|
||||||
@ -610,7 +595,8 @@ static MACHINE_CONFIG_START( statriv2, statriv2_state )
|
|||||||
MCFG_SCREEN_UPDATE_DRIVER(statriv2_state, screen_update_statriv2)
|
MCFG_SCREEN_UPDATE_DRIVER(statriv2_state, screen_update_statriv2)
|
||||||
MCFG_SCREEN_PALETTE("palette")
|
MCFG_SCREEN_PALETTE("palette")
|
||||||
|
|
||||||
MCFG_TMS9927_ADD("tms", MASTER_CLOCK/2, tms9927_intf)
|
MCFG_DEVICE_ADD("tms", TMS9927, MASTER_CLOCK/2)
|
||||||
|
MCFG_TMS9927_CHAR_WIDTH(8)
|
||||||
|
|
||||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", horizontal)
|
MCFG_GFXDECODE_ADD("gfxdecode", "palette", horizontal)
|
||||||
MCFG_PALETTE_ADD("palette", 2*64)
|
MCFG_PALETTE_ADD("palette", 2*64)
|
||||||
|
@ -424,13 +424,6 @@ static const samples_interface natodef_samples_interface =
|
|||||||
natodef_sample_names
|
natodef_sample_names
|
||||||
};
|
};
|
||||||
|
|
||||||
static const tms9927_interface tms9927_intf =
|
|
||||||
{
|
|
||||||
8,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( sharkatt, thief_state )
|
static MACHINE_CONFIG_START( sharkatt, thief_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
@ -448,11 +441,11 @@ static MACHINE_CONFIG_START( sharkatt, thief_state )
|
|||||||
MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief)
|
MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief)
|
||||||
MCFG_SCREEN_PALETTE("palette")
|
MCFG_SCREEN_PALETTE("palette")
|
||||||
|
|
||||||
MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf)
|
MCFG_DEVICE_ADD("tms", TMS9927, MASTER_CLOCK/4)
|
||||||
|
MCFG_TMS9927_CHAR_WIDTH(8)
|
||||||
|
|
||||||
MCFG_PALETTE_ADD("palette", 16)
|
MCFG_PALETTE_ADD("palette", 16)
|
||||||
|
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
|
||||||
@ -484,11 +477,11 @@ static MACHINE_CONFIG_START( thief, thief_state )
|
|||||||
MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief)
|
MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief)
|
||||||
MCFG_SCREEN_PALETTE("palette")
|
MCFG_SCREEN_PALETTE("palette")
|
||||||
|
|
||||||
MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf)
|
MCFG_DEVICE_ADD("tms", TMS9927, MASTER_CLOCK/4)
|
||||||
|
MCFG_TMS9927_CHAR_WIDTH(8)
|
||||||
|
|
||||||
MCFG_PALETTE_ADD("palette", 16)
|
MCFG_PALETTE_ADD("palette", 16)
|
||||||
|
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
|
||||||
@ -520,11 +513,11 @@ static MACHINE_CONFIG_START( natodef, thief_state )
|
|||||||
MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief)
|
MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief)
|
||||||
MCFG_SCREEN_PALETTE("palette")
|
MCFG_SCREEN_PALETTE("palette")
|
||||||
|
|
||||||
MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf)
|
MCFG_DEVICE_ADD("tms", TMS9927, MASTER_CLOCK/4)
|
||||||
|
MCFG_TMS9927_CHAR_WIDTH(8)
|
||||||
|
|
||||||
MCFG_PALETTE_ADD("palette", 16)
|
MCFG_PALETTE_ADD("palette", 16)
|
||||||
|
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
|
||||||
|
@ -880,12 +880,6 @@ static const z80_daisy_config attache_daisy_chain[] =
|
|||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
static const tms9927_interface crtc_interface =
|
|
||||||
{
|
|
||||||
8, // guessing for now
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
static SLOT_INTERFACE_START( attache_floppies )
|
static SLOT_INTERFACE_START( attache_floppies )
|
||||||
SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
|
SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
|
||||||
SLOT_INTERFACE_END
|
SLOT_INTERFACE_END
|
||||||
@ -989,7 +983,8 @@ static MACHINE_CONFIG_START( attache, attache_state )
|
|||||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", attache_floppies, "525dd", floppy_image_device::default_floppy_formats)
|
MCFG_FLOPPY_DRIVE_ADD("fdc:0", attache_floppies, "525dd", floppy_image_device::default_floppy_formats)
|
||||||
MCFG_FLOPPY_DRIVE_ADD("fdc:1", attache_floppies, "525dd", floppy_image_device::default_floppy_formats)
|
MCFG_FLOPPY_DRIVE_ADD("fdc:1", attache_floppies, "525dd", floppy_image_device::default_floppy_formats)
|
||||||
|
|
||||||
MCFG_TMS9927_ADD("crtc", 12324000, crtc_interface)
|
MCFG_DEVICE_ADD("crtc", TMS9927, 12324000)
|
||||||
|
MCFG_TMS9927_CHAR_WIDTH(8)
|
||||||
|
|
||||||
MCFG_NVRAM_ADD_0FILL("nvram")
|
MCFG_NVRAM_ADD_0FILL("nvram")
|
||||||
|
|
||||||
|
@ -320,12 +320,6 @@ UINT32 compucolor2_state::screen_update(screen_device &screen, bitmap_rgb32 &bit
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct tms9927_interface crtc_intf =
|
|
||||||
{
|
|
||||||
6, // pixels per video memory address
|
|
||||||
NULL // self-load data
|
|
||||||
};
|
|
||||||
|
|
||||||
READ8_MEMBER( compucolor2_state::xi_r )
|
READ8_MEMBER( compucolor2_state::xi_r )
|
||||||
{
|
{
|
||||||
UINT8 data = 0xff;
|
UINT8 data = 0xff;
|
||||||
@ -465,8 +459,9 @@ static MACHINE_CONFIG_START( compucolor2, compucolor2_state )
|
|||||||
MCFG_SCREEN_UPDATE_DRIVER(compucolor2_state, screen_update)
|
MCFG_SCREEN_UPDATE_DRIVER(compucolor2_state, screen_update)
|
||||||
MCFG_SCREEN_SIZE(64*6, 32*8)
|
MCFG_SCREEN_SIZE(64*6, 32*8)
|
||||||
MCFG_SCREEN_VISIBLE_AREA(0, 64*6-1, 0, 32*8-1)
|
MCFG_SCREEN_VISIBLE_AREA(0, 64*6-1, 0, 32*8-1)
|
||||||
|
|
||||||
MCFG_DEVICE_ADD(CRT5027_TAG, CRT5027, XTAL_17_9712MHz/2)
|
MCFG_DEVICE_ADD(CRT5027_TAG, CRT5027, XTAL_17_9712MHz/2)
|
||||||
MCFG_DEVICE_CONFIG(crtc_intf)
|
MCFG_TMS9927_CHAR_WIDTH(6)
|
||||||
MCFG_TMS9927_VSYN_CALLBACK(DEVWRITELINE(TMS5501_TAG, tms5501_device, sens_w))
|
MCFG_TMS9927_VSYN_CALLBACK(DEVWRITELINE(TMS5501_TAG, tms5501_device, sens_w))
|
||||||
MCFG_VIDEO_SET_SCREEN("screen")
|
MCFG_VIDEO_SET_SCREEN("screen")
|
||||||
|
|
||||||
|
@ -589,12 +589,6 @@ static SLOT_INTERFACE_START( itt3030_floppies )
|
|||||||
SLOT_INTERFACE_END
|
SLOT_INTERFACE_END
|
||||||
|
|
||||||
|
|
||||||
static struct tms9927_interface crtc_intf =
|
|
||||||
{
|
|
||||||
16, // pixels per video memory address
|
|
||||||
NULL // "self-load data"?
|
|
||||||
};
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( itt3030, itt3030_state )
|
static MACHINE_CONFIG_START( itt3030, itt3030_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
@ -620,8 +614,10 @@ static MACHINE_CONFIG_START( itt3030, itt3030_state )
|
|||||||
MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE)
|
MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE)
|
||||||
MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(8)
|
MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(8)
|
||||||
MCFG_ADDRESS_MAP_BANK_STRIDE(0x10000)
|
MCFG_ADDRESS_MAP_BANK_STRIDE(0x10000)
|
||||||
|
|
||||||
MCFG_DEVICE_ADD("crt5027", CRT5027, XTAL_6MHz)
|
MCFG_DEVICE_ADD("crt5027", CRT5027, XTAL_6MHz)
|
||||||
MCFG_DEVICE_CONFIG(crtc_intf)
|
MCFG_TMS9927_CHAR_WIDTH(16)
|
||||||
|
|
||||||
MCFG_FD1791x_ADD("fdc", XTAL_20MHz / 20)
|
MCFG_FD1791x_ADD("fdc", XTAL_20MHz / 20)
|
||||||
MCFG_WD_FDC_FORCE_READY
|
MCFG_WD_FDC_FORCE_READY
|
||||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", itt3030_floppies, "525dd", itt3030_state::itt3030_floppy_formats)
|
MCFG_FLOPPY_DRIVE_ADD("fdc:0", itt3030_floppies, "525dd", itt3030_state::itt3030_floppy_formats)
|
||||||
|
@ -235,17 +235,6 @@ UINT32 tdv2324_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap,
|
|||||||
// DEVICE CONFIGURATION
|
// DEVICE CONFIGURATION
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// tms9927_interface vtac_intf
|
|
||||||
//-------------------------------------------------
|
|
||||||
|
|
||||||
static const tms9927_interface vtac_intf =
|
|
||||||
{
|
|
||||||
8,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// SLOT_INTERFACE( tdv2324_floppies )
|
// SLOT_INTERFACE( tdv2324_floppies )
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
@ -286,7 +275,8 @@ static MACHINE_CONFIG_START( tdv2324, tdv2324_state )
|
|||||||
|
|
||||||
MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette")
|
MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette")
|
||||||
|
|
||||||
MCFG_TMS9927_ADD(TMS9937NL_TAG, XTAL_25_39836MHz, vtac_intf)
|
MCFG_DEVICE_ADD(TMS9937NL_TAG, TMS9927, XTAL_25_39836MHz)
|
||||||
|
MCFG_TMS9927_CHAR_WIDTH(8)
|
||||||
|
|
||||||
// devices
|
// devices
|
||||||
MCFG_PIC8259_ADD(P8259A_TAG, NULL, VCC, NULL)
|
MCFG_PIC8259_ADD(P8259A_TAG, NULL, VCC, NULL)
|
||||||
|
Loading…
Reference in New Issue
Block a user