-z8000, tmpz84c015: Removed MCFG macros. [Ryan Holtz]

(nw) -tumbleb: Fixed compile.
This commit is contained in:
mooglyguy 2018-12-06 20:50:08 +01:00
parent 2f43a53ee8
commit 55c8bf8e0e
9 changed files with 378 additions and 480 deletions

View File

@ -48,16 +48,16 @@ MACHINE_CONFIG_START(msx_cart_bm_012_device::device_add_mconfig)
// - PIO
// - CGC
// - WDT
MCFG_DEVICE_ADD("tmpz84c015af", TMPZ84C015, XTAL(12'000'000)/2) /* 6 MHz */
MCFG_DEVICE_PROGRAM_MAP(bm_012_memory_map)
TMPZ84C015(config, m_tmpz84c015af, XTAL(12'000'000)/2); /* 6 MHz */
m_tmpz84c015af->set_addrmap(AS_PROGRAM, &msx_cart_bm_012_device::bm_012_memory_map);
// PIO callbacks
MCFG_TMPZ84C015_IN_PA_CB(READ8("bm012_pio", z80pio_device, pa_r))
MCFG_TMPZ84C015_OUT_PA_CB(WRITE8("bm012_pio", z80pio_device, pa_w))
MCFG_TMPZ84C015_IN_PB_CB(READ8("bm012_pio", z80pio_device, pb_r))
MCFG_TMPZ84C015_OUT_PB_CB(WRITE8("bm012_pio", z80pio_device, pb_w))
MCFG_TMPZ84C015_OUT_BRDY_CB(WRITELINE("bm012_pio", z80pio_device, strobe_b))
m_tmpz84c015af->in_pa_callback().set("bm012_pio", FUNC(z80pio_device::pa_r));
m_tmpz84c015af->out_pa_callback().set("bm012_pio", FUNC(z80pio_device::pa_w));
m_tmpz84c015af->in_pb_callback().set("bm012_pio", FUNC(z80pio_device::pb_r));
m_tmpz84c015af->out_pb_callback().set("bm012_pio", FUNC(z80pio_device::pb_w));
m_tmpz84c015af->out_brdy_callback().set("bm012_pio", FUNC(z80pio_device::strobe_b));
// SIO callbacks
MCFG_TMPZ84C015_OUT_TXDA_CB(WRITELINE("mdout", midi_port_device, write_txd))
m_tmpz84c015af->out_txda_callback().set("mdout", FUNC(midi_port_device::write_txd));
// Sony CXK5864BSP-10L (8KB ram)
// Sharp LH0081A Z80A-PIO-0 - For communicating between the MSX and the TMP

View File

@ -18,88 +18,6 @@
#include "machine/z80pio.h"
/***************************************************************************
DEVICE CONFIGURATION MACROS
***************************************************************************/
// SIO callbacks
#define MCFG_TMPZ84C015_OUT_TXDA_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_txda_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_DTRA_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_dtra_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_RTSA_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_rtsa_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_WRDYA_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_wrdya_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_SYNCA_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_synca_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_TXDB_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_txdb_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_DTRB_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_dtrb_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_RTSB_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_rtsb_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_WRDYB_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_wrdyb_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_SYNCB_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_syncb_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_RXDRQA_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_rxdrqa_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_TXDRQA_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_txdrqa_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_RXDRQB_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_rxdrqb_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_TXDRQB_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_txdrqb_callback(DEVCB_##_devcb);
// CTC callbacks
#define MCFG_TMPZ84C015_ZC0_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_zc_callback<0>(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_ZC1_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_zc_callback<1>(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_ZC2_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_zc_callback<2>(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_ZC3_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_zc_callback<3>(DEVCB_##_devcb);
// PIO callbacks
#define MCFG_TMPZ84C015_IN_PA_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_in_pa_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_PA_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_pa_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_ARDY_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_ardy_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_IN_PB_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_in_pb_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_PB_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_pb_callback(DEVCB_##_devcb);
#define MCFG_TMPZ84C015_OUT_BRDY_CB(_devcb) \
downcast<tmpz84c015_device &>(*device).set_out_brdy_callback(DEVCB_##_devcb);
/***************************************************************************
TYPE DEFINITIONS
***************************************************************************/
@ -110,50 +28,33 @@ public:
tmpz84c015_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t);
// configuration helpers
template<class Object> devcb_base &set_out_txda_callback(Object &&cb) { return m_out_txda_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_out_dtra_callback(Object &&cb) { return m_out_dtra_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_out_rtsa_callback(Object &&cb) { return m_out_rtsa_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_out_wrdya_callback(Object &&cb) { return m_out_wrdya_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_out_synca_callback(Object &&cb) { return m_out_synca_cb.set_callback(std::forward<Object>(cb)); }
// SIO callbacks
auto out_txda_callback() { return m_out_txda_cb.bind(); }
auto out_dtra_callback() { return m_out_dtra_cb.bind(); }
auto out_rtsa_callback() { return m_out_rtsa_cb.bind(); }
auto out_wrdya_callback() { return m_out_wrdya_cb.bind(); }
auto out_synca_callback() { return m_out_synca_cb.bind(); }
template<class Object> devcb_base &set_out_txdb_callback(Object &&cb) { return m_out_txdb_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_out_dtrb_callback(Object &&cb) { return m_out_dtrb_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_out_rtsb_callback(Object &&cb) { return m_out_rtsb_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_out_wrdyb_callback(Object &&cb) { return m_out_wrdyb_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_out_syncb_callback(Object &&cb) { return m_out_syncb_cb.set_callback(std::forward<Object>(cb)); }
auto out_txdb_callback() { return m_out_txdb_cb.bind(); }
auto out_dtrb_callback() { return m_out_dtrb_cb.bind(); }
auto out_rtsb_callback() { return m_out_rtsb_cb.bind(); }
auto out_wrdyb_callback() { return m_out_wrdyb_cb.bind(); }
auto out_syncb_callback() { return m_out_syncb_cb.bind(); }
template<class Object> devcb_base &set_out_rxdrqa_callback(Object &&cb) { return m_out_rxdrqa_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_out_txdrqa_callback(Object &&cb) { return m_out_txdrqa_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_out_rxdrqb_callback(Object &&cb) { return m_out_rxdrqb_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_out_txdrqb_callback(Object &&cb) { return m_out_txdrqb_cb.set_callback(std::forward<Object>(cb)); }
auto out_rxdrqa_callback() { return m_out_rxdrqa_cb.bind(); }
auto out_txdrqa_callback() { return m_out_txdrqa_cb.bind(); }
auto out_rxdrqb_callback() { return m_out_rxdrqb_cb.bind(); }
auto out_txdrqb_callback() { return m_out_txdrqb_cb.bind(); }
template<unsigned N, class Object> devcb_base &set_zc_callback(Object &&cb) { return m_zc_cb[N].set_callback(std::forward<Object>(cb)); }
// CTC callbacks
template<unsigned N> auto zc_callback() { return m_zc_cb[N].bind(); }
template<class Object> devcb_base &set_in_pa_callback(Object &&cb) { return m_in_pa_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_out_pa_callback(Object &&cb) { return m_out_pa_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_out_ardy_callback(Object &&cb) { return m_out_ardy_cb.set_callback(std::forward<Object>(cb)); }
// PIO callbacks
auto in_pa_callback() { return m_in_pa_cb.bind(); }
auto out_pa_callback() { return m_out_pa_cb.bind(); }
auto out_ardy_callback() { return m_out_ardy_cb.bind(); }
template<class Object> devcb_base &set_in_pb_callback(Object &&cb) { return m_in_pb_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_out_pb_callback(Object &&cb) { return m_out_pb_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_out_brdy_callback(Object &&cb) { return m_out_brdy_cb.set_callback(std::forward<Object>(cb)); }
auto in_pb_callback() { return m_in_pb_cb.bind(); }
auto out_pb_callback() { return m_out_pb_cb.bind(); }
auto out_brdy_callback() { return m_out_brdy_cb.bind(); }

View File

@ -29,9 +29,6 @@ enum
#define Z8000_SYSCALL 0x0200 /* system call (lsb is vector) */
#define Z8000_HALT 0x0100 /* halted flag */
#define MCFG_Z8000_MO(_devcb) \
downcast<z8002_device &>(*device).set_mo_callback(DEVCB_##_devcb);
class z8002_device : public cpu_device, public z8000_disassembler::config
{
public:
@ -39,7 +36,7 @@ public:
z8002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
~z8002_device();
template <class Object> devcb_base &set_mo_callback(Object &&cb) { return m_mo_out.set_callback(std::forward<Object>(cb)); }
auto mo() { return m_mo_out.bind(); }
DECLARE_WRITE_LINE_MEMBER(mi_w) { m_mi = state; } // XXX: this has to apply in the middle of an insn for now
protected:

File diff suppressed because it is too large Load Diff

View File

@ -4775,9 +4775,9 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(dynax_state::mjelctrn)
hnoridur(config);
MCFG_DEVICE_REPLACE("maincpu", TMPZ84C015, XTAL(22'000'000) / 4)
MCFG_DEVICE_PROGRAM_MAP(nanajign_mem_map)
MCFG_DEVICE_IO_MAP(mjelctrn_io_map)
TMPZ84C015(config.replace(), m_maincpu, XTAL(22'000'000) / 4);
m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::nanajign_mem_map);
m_maincpu->set_addrmap(AS_IO, &dynax_state::mjelctrn_io_map);
MCFG_DEVICE_MODIFY("bankdev")
MCFG_DEVICE_PROGRAM_MAP(mjelctrn_banked_map)
@ -4800,10 +4800,11 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(dynax_state::mjembase)
mjelctrn(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_IO_MAP(mjembase_io_map)
MCFG_TMPZ84C015_IN_PA_CB(IOPORT("DSW1"))
MCFG_TMPZ84C015_IN_PB_CB(IOPORT("DSW2"))
tmpz84c015_device &maincpu(*subdevice<tmpz84c015_device>("maincpu"));
maincpu.set_addrmap(AS_IO, &dynax_state::mjembase_io_map);
maincpu.in_pa_callback().set_ioport("DSW1");
maincpu.in_pb_callback().set_ioport("DSW2");
// 13C
m_mainlatch->q_out_cb<3>().set(FUNC(dynax_state::coincounter_0_w));

View File

@ -3652,15 +3652,15 @@ MACHINE_CONFIG_START(royalmah_state::mjderngr)
MCFG_PALETTE_INIT_OWNER(royalmah_state,mjderngr)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(royalmah_state::janptr96)
void royalmah_state::janptr96(machine_config &config)
{
mjderngr(config);
MCFG_DEVICE_REMOVE("maincpu")
MCFG_DEVICE_ADD("maincpu", TMPZ84C015, XTAL(16'000'000)/2) /* 8 MHz? */
MCFG_DEVICE_PROGRAM_MAP(janptr96_map)
MCFG_DEVICE_IO_MAP(janptr96_iomap)
MCFG_TMPZ84C015_IN_PA_CB(READ8(*this, royalmah_state, janptr96_dsw_r))
MCFG_TMPZ84C015_OUT_PB_CB(WRITE8(*this, royalmah_state, janptr96_dswsel_w))
tmpz84c015_device &maincpu(TMPZ84C015(config.replace(), "maincpu", XTAL(16'000'000)/2)); /* 8 MHz? */
maincpu.set_addrmap(AS_PROGRAM, &royalmah_state::janptr96_map);
maincpu.set_addrmap(AS_IO, &royalmah_state::janptr96_iomap);
maincpu.in_pa_callback().set(FUNC(royalmah_state::janptr96_dsw_r));
maincpu.out_pb_callback().set(FUNC(royalmah_state::janptr96_dswsel_w));
// internal CTC channels 0 & 1 have falling edge triggers
screen_device &screen(*subdevice<screen_device>("screen"));
@ -3669,7 +3669,7 @@ MACHINE_CONFIG_START(royalmah_state::janptr96)
/* devices */
MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set(m_maincpu, FUNC(tmpz84c015_device::trg1)).invert();
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(royalmah_state::mjifb)

View File

@ -2233,11 +2233,11 @@ MACHINE_CONFIG_START(tumbleb_state::magipur)
MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_fncywld)
MCFG_SCREEN_PALETTE("palette")
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
MCFG_DECO_SPRITE_GFX_REGION(3)
MCFG_DECO_SPRITE_ISBOOTLEG(true)
MCFG_DECO_SPRITE_TRANSPEN(15)
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
DECO_SPRITE(config, m_sprgen, 0);
m_sprgen->set_gfx_region(3);
m_sprgen->set_is_bootleg(true);
m_sprgen->set_transpen(15);
m_sprgen->set_gfxdecode_tag(m_gfxdecode);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_fncywld)
MCFG_PALETTE_ADD("palette", 0x800)

View File

@ -68,13 +68,14 @@ void m24_z8000_device::z8000_io(address_map &map)
map(0x80c1, 0x80c1).rw(FUNC(m24_z8000_device::handshake_r), FUNC(m24_z8000_device::handshake_w));
}
MACHINE_CONFIG_START(m24_z8000_device::device_add_mconfig)
MCFG_DEVICE_ADD("z8000", Z8001, XTAL(8'000'000)/2)
MCFG_DEVICE_PROGRAM_MAP(z8000_prog)
MCFG_DEVICE_DATA_MAP(z8000_data)
MCFG_DEVICE_IO_MAP(z8000_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(m24_z8000_device, int_cb)
MCFG_Z8000_MO(WRITELINE(*this, m24_z8000_device, mo_w))
void m24_z8000_device::device_add_mconfig(machine_config &config)
{
Z8001(config, m_z8000, XTAL(8'000'000)/2);
m_z8000->set_addrmap(AS_PROGRAM, &m24_z8000_device::z8000_prog);
m_z8000->set_addrmap(AS_DATA, &m24_z8000_device::z8000_data);
m_z8000->set_addrmap(AS_IO, &m24_z8000_device::z8000_io);
m_z8000->set_irq_acknowledge_callback(FUNC(m24_z8000_device::int_cb));
m_z8000->mo().set(FUNC(m24_z8000_device::mo_w));
pit8253_device &pit8253(PIT8253(config, "pit8253", 0));
pit8253.set_clk<0>(19660000/15); //8251
@ -85,7 +86,7 @@ MACHINE_CONFIG_START(m24_z8000_device::device_add_mconfig)
pit8253.out_handler<2>().set(FUNC(m24_z8000_device::timer_irq_w));
I8251(config, "i8251", 0);
MACHINE_CONFIG_END
}
const uint8_t m24_z8000_device::pmem_table[16][4] =
{{0, 1, 2, 3}, {1, 2, 3, 255}, {4, 5, 6, 7}, {46, 40, 41, 42},

View File

@ -632,24 +632,6 @@ WRITE16_MEMBER(midtunit_video_device::midtunit_dma_w)
/* determine the offset */
uint32_t gfxoffset = m_dma_register[DMA_OFFSETLO] | (m_dma_register[DMA_OFFSETHI] << 16);
if (LOG_DMA)
{
if (machine().input().code_pressed(KEYCODE_L))
{
logerror("DMA command %04X: (bpp=%d skip=%d xflip=%d yflip=%d preskip=%d postskip=%d)\n",
command, (command >> 12) & 7, (command >> 7) & 1, (command >> 4) & 1, (command >> 5) & 1, (command >> 8) & 3, (command >> 10) & 3);
logerror(" offset=%08X pos=(%d,%d) w=%d h=%d clip=(%d,%d)-(%d,%d)\n", gfxoffset, m_dma_register[DMA_XSTART], m_dma_register[DMA_YSTART],
m_dma_register[DMA_WIDTH], m_dma_register[DMA_HEIGHT], m_dma_register[DMA_LEFTCLIP], m_dma_register[DMA_TOPCLIP], m_dma_register[DMA_RIGHTCLIP], m_dma_register[DMA_BOTCLIP]);
logerror(" offset=%08X pos=(%d,%d) w=%d h=%d clip=(%d,%d)-(%d,%d)\n", gfxoffset, m_dma_state.xpos, m_dma_state.ypos,
m_dma_state.width, m_dma_state.height, m_dma_state.leftclip, m_dma_state.topclip, m_dma_state.rightclip, m_dma_state.botclip);
logerror(" palette=%04X color=%04X lskip=%02X rskip=%02X xstep=%04X ystep=%04X test=%04X config=%04X\n",
m_dma_register[DMA_PALETTE], m_dma_register[DMA_COLOR],
m_dma_register[DMA_LRSKIP] >> 8, m_dma_register[DMA_LRSKIP] & 0xff,
m_dma_register[DMA_SCALE_X], m_dma_register[DMA_SCALE_Y], m_dma_register[DMA_UNKNOWN_E],
m_dma_register[DMA_CONFIG]);
logerror("----\n");
}
}
/* special case: drawing mode C doesn't need to know about any pixel data */
if ((command & 0x0f) == 0x0c)
gfxoffset = 0;
@ -667,6 +649,23 @@ if (LOG_DMA)
goto skipdma;
}
if (LOG_DMA || DEBUG_MIDTUNIT_BLITTER)
{
if (machine().input().code_pressed(KEYCODE_COLON))
{
logerror("DMA command %04X: (bpp=%d skip=%d xflip=%d yflip=%d preskip=%d postskip=%d)\n",
command, (command >> 12) & 7, (command >> 7) & 1, (command >> 4) & 1, (command >> 5) & 1, (command >> 8) & 3, (command >> 10) & 3);
logerror(" offset=%08X pos=(%d,%d) w=%d h=%d clip=(%d,%d)-(%d,%d)\n", gfxoffset, m_dma_state.xpos, m_dma_state.ypos,
m_dma_state.width, m_dma_state.height, m_dma_state.leftclip, m_dma_state.topclip, m_dma_state.rightclip, m_dma_state.botclip);
logerror(" palette=%04X color=%04X lskip=%02X rskip=%02X xstep=%04X ystep=%04X test=%04X config=%04X\n",
m_dma_register[DMA_PALETTE], m_dma_register[DMA_COLOR],
m_dma_register[DMA_LRSKIP] >> 8, m_dma_register[DMA_LRSKIP] & 0xff,
m_dma_register[DMA_SCALE_X], m_dma_register[DMA_SCALE_Y], m_dma_register[DMA_UNKNOWN_E],
m_dma_register[DMA_CONFIG]);
logerror("----\n");
}
}
/* there seems to be two types of behavior for the DMA chip */
/* for MK1 and MK2, the upper byte of the LRSKIP is the */
/* starting skip value, and the lower byte is the ending */