diff --git a/src/emu/machine/z80dma.c b/src/emu/machine/z80dma.c index 846ea1ce794..03dfc297566 100644 --- a/src/emu/machine/z80dma.c +++ b/src/emu/machine/z80dma.c @@ -874,7 +874,7 @@ void z80dma_device::rdy_write_callback(int state) // rdy_w - ready input //------------------------------------------------- -void z80dma_device::rdy_w(int state) +WRITE_LINE_MEMBER(z80dma_device::rdy_w) { if (LOG) logerror("Z80DMA '%s' RDY: %d Active High: %d\n", tag(), state, READY_ACTIVE_HIGH); machine().scheduler().synchronize(FUNC(static_rdy_write_callback), state, (void *)this); @@ -885,7 +885,7 @@ void z80dma_device::rdy_w(int state) // wait_w - wait input //------------------------------------------------- -void z80dma_device::wait_w(int state) +WRITE_LINE_MEMBER(z80dma_device::wait_w) { } @@ -894,19 +894,7 @@ void z80dma_device::wait_w(int state) // bai_w - bus acknowledge input //------------------------------------------------- -void z80dma_device::bai_w(int state) +WRITE_LINE_MEMBER(z80dma_device::bai_w) { } - - -//************************************************************************** -// GLOBAL STUBS -//************************************************************************** - -READ8_DEVICE_HANDLER( z80dma_r ) { return downcast(device)->read(); } -WRITE8_DEVICE_HANDLER( z80dma_w ) { downcast(device)->write(data); } - -WRITE_LINE_DEVICE_HANDLER( z80dma_rdy_w ) { downcast(device)->rdy_w(state); } -WRITE_LINE_DEVICE_HANDLER( z80dma_wait_w ) { downcast(device)->wait_w(state); } -WRITE_LINE_DEVICE_HANDLER( z80dma_bai_w ) { downcast(device)->bai_w(state); } diff --git a/src/emu/machine/z80dma.h b/src/emu/machine/z80dma.h index a0d813a055a..2b9a68b6bbf 100644 --- a/src/emu/machine/z80dma.h +++ b/src/emu/machine/z80dma.h @@ -88,9 +88,9 @@ public: DECLARE_READ8_MEMBER( read ) { return read(); } DECLARE_WRITE8_MEMBER( write ) { write(data); } - void rdy_w(int state); - void wait_w(int state); - void bai_w(int state); + DECLARE_WRITE_LINE_MEMBER(rdy_w); + DECLARE_WRITE_LINE_MEMBER(wait_w); + DECLARE_WRITE_LINE_MEMBER(bai_w); private: // device-level overrides @@ -163,23 +163,4 @@ private: // device type definition extern const device_type Z80DMA; - - -//************************************************************************** -// FUNCTION PROTOTYPES -//************************************************************************** - -// register access -DECLARE_READ8_DEVICE_HANDLER( z80dma_r ); -DECLARE_WRITE8_DEVICE_HANDLER( z80dma_w ); - -// ready -WRITE_LINE_DEVICE_HANDLER( z80dma_rdy_w ); - -// wait -WRITE_LINE_DEVICE_HANDLER( z80dma_wait_w ); - -// bus acknowledge in -WRITE_LINE_DEVICE_HANDLER( z80dma_bai_w ); - #endif diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c index e1982ff6619..a778154a11a 100644 --- a/src/mame/drivers/dkong.c +++ b/src/mame/drivers/dkong.c @@ -327,7 +327,6 @@ this is a legitimate Nintendo Kit. #include "cpu/m6502/m6502.h" #include "includes/dkong.h" #include "machine/8257dma.h" -#include "machine/z80dma.h" #include "machine/latch8.h" #include "machine/eepromser.h" @@ -754,9 +753,8 @@ READ8_MEMBER(dkong_state::strtheat_inputport_1_r) } WRITE8_MEMBER(dkong_state::dkong_z80dma_rdy_w) -{ - device_t *device = machine().device("z80dma"); - z80dma_rdy_w(device, data & 0x01); +{ + m_z80dma->rdy_w(data & 0x01); } WRITE8_MEMBER(dkong_state::nmi_mask_w) @@ -842,7 +840,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( dkong3_io_map, AS_IO, 8, dkong_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_DEVREADWRITE_LEGACY("z80dma", z80dma_r, z80dma_w) /* dma controller */ + AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("z80dma", z80dma_device, read, write) /* dma controller */ ADDRESS_MAP_END /* Epos conversions */ diff --git a/src/mame/drivers/mario.c b/src/mame/drivers/mario.c index e0ef10e1c7f..c3470d5a848 100644 --- a/src/mame/drivers/mario.c +++ b/src/mame/drivers/mario.c @@ -126,8 +126,7 @@ static Z80DMA_INTERFACE( mario_dma ) WRITE8_MEMBER(mario_state::mario_z80dma_rdy_w) { - device_t *device = machine().device("z80dma"); - z80dma_rdy_w(device, data & 0x01); + m_z80dma->rdy_w(data & 0x01); } WRITE8_MEMBER(mario_state::nmi_mask_w) @@ -181,7 +180,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( mario_io_map, AS_IO, 8, mario_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_DEVREADWRITE_LEGACY("z80dma", z80dma_r, z80dma_w) /* dma controller */ + AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("z80dma", z80dma_device, read, write) /* dma controller */ ADDRESS_MAP_END /************************************* diff --git a/src/mame/includes/dkong.h b/src/mame/includes/dkong.h index 30b348a1980..ce1a62f3dd0 100644 --- a/src/mame/includes/dkong.h +++ b/src/mame/includes/dkong.h @@ -3,6 +3,8 @@ #include "machine/tms6100.h" #include "cpu/m6502/n2a03.h" #include "machine/latch8.h" +#include "machine/z80dma.h" + /* * From the schematics: @@ -106,7 +108,8 @@ public: m_cv4(0), m_gfxdecode(*this, "gfxdecode"), m_screen(*this, "screen"), - m_palette(*this, "palette") + m_palette(*this, "palette"), + m_z80dma(*this, "z80dma") { } /* devices */ @@ -185,6 +188,7 @@ public: required_device m_gfxdecode; required_device m_screen; required_device m_palette; + optional_device m_z80dma; /* radarscp_scanline */ int m_counter; diff --git a/src/mame/includes/mario.h b/src/mame/includes/mario.h index 5c8a54c4240..439be36337a 100644 --- a/src/mame/includes/mario.h +++ b/src/mame/includes/mario.h @@ -2,6 +2,7 @@ #define MARIO_H_ #include "sound/discrete.h" +#include "machine/z80dma.h" /* * From the schematics: @@ -43,7 +44,8 @@ public: m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), m_gfxdecode(*this, "gfxdecode"), - m_palette(*this, "palette") { } + m_palette(*this, "palette"), + m_z80dma(*this, "z80dma") { } /* memory pointers */ @@ -103,6 +105,7 @@ public: required_device m_audiocpu; required_device m_gfxdecode; required_device m_palette; + required_device m_z80dma; }; /*----------- defined in audio/mario.c -----------*/ diff --git a/src/mess/drivers/abc1600.c b/src/mess/drivers/abc1600.c index 590779b7637..bff15fd3772 100644 --- a/src/mess/drivers/abc1600.c +++ b/src/mess/drivers/abc1600.c @@ -477,9 +477,9 @@ static ADDRESS_MAP_START( mac_mem, AS_PROGRAM, 8, abc1600_state ) AM_RANGE(0x1ff006, 0x1ff006) AM_MIRROR(0xf9) AM_DEVREADWRITE(SAB1797_02P_TAG, fd1797_t, data_r, data_w) AM_RANGE(0x1ff100, 0x1ff101) AM_MIRROR(0xfe) AM_DEVICE(ABC1600_MOVER_TAG, abc1600_mover_device, crtc_map) AM_RANGE(0x1ff200, 0x1ff207) AM_MIRROR(0xf8) AM_READWRITE(dart_r, dart_w) - AM_RANGE(0x1ff300, 0x1ff300) AM_MIRROR(0xff) AM_DEVREADWRITE_LEGACY(Z8410AB1_0_TAG, z80dma_r, z80dma_w) - AM_RANGE(0x1ff400, 0x1ff400) AM_MIRROR(0xff) AM_DEVREADWRITE_LEGACY(Z8410AB1_1_TAG, z80dma_r, z80dma_w) - AM_RANGE(0x1ff500, 0x1ff500) AM_MIRROR(0xff) AM_DEVREADWRITE_LEGACY(Z8410AB1_2_TAG, z80dma_r, z80dma_w) + AM_RANGE(0x1ff300, 0x1ff300) AM_MIRROR(0xff) AM_DEVREADWRITE(Z8410AB1_0_TAG, z80dma_device, read, write) + AM_RANGE(0x1ff400, 0x1ff400) AM_MIRROR(0xff) AM_DEVREADWRITE(Z8410AB1_1_TAG, z80dma_device, read, write) + AM_RANGE(0x1ff500, 0x1ff500) AM_MIRROR(0xff) AM_DEVREADWRITE(Z8410AB1_2_TAG, z80dma_device, read, write) AM_RANGE(0x1ff600, 0x1ff607) AM_MIRROR(0xf8) AM_READWRITE(scc_r, scc_w) AM_RANGE(0x1ff700, 0x1ff707) AM_MIRROR(0xf8) AM_READWRITE(cio_r, cio_w) AM_RANGE(0x1ff800, 0x1ffaff) AM_DEVICE(ABC1600_MOVER_TAG, abc1600_mover_device, io_map) @@ -538,7 +538,7 @@ static Z80DMA_INTERFACE( dma0_intf ) { DEVCB_DRIVER_LINE_MEMBER(abc1600_state, dbrq_w), DEVCB_NULL, - DEVCB_DEVICE_LINE(Z8410AB1_1_TAG, z80dma_bai_w), + DEVCB_DEVICE_LINE_MEMBER(Z8410AB1_1_TAG, z80dma_device, bai_w), DEVCB_DEVICE_MEMBER(ABC1600_MAC_TAG, abc1600_mac_device, dma0_mreq_r), DEVCB_DEVICE_MEMBER(ABC1600_MAC_TAG, abc1600_mac_device, dma0_mreq_w), DEVCB_DEVICE_MEMBER(ABC1600_MAC_TAG, abc1600_mac_device, dma0_iorq_r), @@ -568,7 +568,7 @@ static Z80DMA_INTERFACE( dma1_intf ) { DEVCB_DRIVER_LINE_MEMBER(abc1600_state, dbrq_w), DEVCB_NULL, - DEVCB_DEVICE_LINE(Z8410AB1_2_TAG, z80dma_bai_w), + DEVCB_DEVICE_LINE_MEMBER(Z8410AB1_2_TAG, z80dma_device, bai_w), DEVCB_DEVICE_MEMBER(ABC1600_MAC_TAG, abc1600_mac_device, dma1_mreq_r), DEVCB_DEVICE_MEMBER(ABC1600_MAC_TAG, abc1600_mac_device, dma1_mreq_w), DEVCB_DEVICE_MEMBER(ABC1600_MAC_TAG, abc1600_mac_device, dma1_iorq_r), diff --git a/src/mess/drivers/altos5.c b/src/mess/drivers/altos5.c index ce4c81d2111..ab31f90f54b 100644 --- a/src/mess/drivers/altos5.c +++ b/src/mess/drivers/altos5.c @@ -100,7 +100,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START(altos5_io, AS_IO, 8, altos5_state) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("z80dma", z80dma_r, z80dma_w) + AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("z80dma", z80dma_device, read, write) AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("fdc", fd1797_t, read, write) AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("z80pio_0", z80pio_device, read, write) AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE("z80ctc", z80ctc_device, read, write) diff --git a/src/mess/drivers/bigbord2.c b/src/mess/drivers/bigbord2.c index 5d1ab8ca9f8..8b9b5702125 100644 --- a/src/mess/drivers/bigbord2.c +++ b/src/mess/drivers/bigbord2.c @@ -366,7 +366,7 @@ WRITE8_MEMBER( bigbord2_state::portcc_w ) if ((data & 7) == 2) dma_rdy = m_fdc_drq; - z80dma_rdy_w(m_dma, dma_rdy); + m_dma->rdy_w(dma_rdy); } @@ -387,7 +387,7 @@ static ADDRESS_MAP_START( bigbord2_io, AS_IO, 8, bigbord2_state ) AM_RANGE(0x80, 0x83) AM_DEVREADWRITE(Z80SIO_TAG, z80sio0_device, ba_cd_r, ba_cd_w) //AM_RANGE(0x84, 0x87) AM_DEVREADWRITE(Z80CTCA_TAG, z80ctc_device, read, write) //has issues AM_RANGE(0x88, 0x8b) AM_DEVREADWRITE(Z80CTCB_TAG, z80ctc_device, read, write) - AM_RANGE(0x8C, 0x8F) AM_DEVREADWRITE_LEGACY(Z80DMA_TAG, z80dma_r, z80dma_w) + AM_RANGE(0x8C, 0x8F) AM_DEVREADWRITE(Z80DMA_TAG, z80dma_device, read, write) //AM_RANGE(0xC0, 0xC3) eprom programming port AM_RANGE(0xC4, 0xC7) AM_READ(portc4_r) AM_RANGE(0xC8, 0xCB) AM_WRITE(portc8_w) diff --git a/src/mess/drivers/bullet.c b/src/mess/drivers/bullet.c index da14dd01943..6f0cb4c6150 100644 --- a/src/mess/drivers/bullet.c +++ b/src/mess/drivers/bullet.c @@ -620,7 +620,7 @@ static ADDRESS_MAP_START( bullet_io, AS_IO, 8, bullet_state ) AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_device, read, write) AM_RANGE(0x0c, 0x0c) AM_MIRROR(0x03) AM_READWRITE(win_r, wstrobe_w) AM_RANGE(0x10, 0x13) AM_DEVREADWRITE(MB8877_TAG, mb8877_t, read, write) - AM_RANGE(0x14, 0x14) AM_DEVREADWRITE_LEGACY(Z80DMA_TAG, z80dma_r, z80dma_w) + AM_RANGE(0x14, 0x14) AM_DEVREADWRITE(Z80DMA_TAG, z80dma_device, read, write) AM_RANGE(0x15, 0x15) AM_READWRITE(brom_r, brom_w) AM_RANGE(0x16, 0x16) AM_WRITE(exdsk_w) AM_RANGE(0x17, 0x17) AM_WRITE(exdma_w) @@ -653,7 +653,7 @@ static ADDRESS_MAP_START( bulletf_io, AS_IO, 8, bulletf_state ) AM_RANGE(0x16, 0x16) AM_WRITE(xfdc_w) AM_RANGE(0x17, 0x17) AM_WRITE(mbank_w) AM_RANGE(0x19, 0x19) AM_READWRITE(scsi_r, scsi_w) - AM_RANGE(0x1a, 0x1a) AM_DEVREADWRITE_LEGACY(Z80DMA_TAG, z80dma_r, z80dma_w) + AM_RANGE(0x1a, 0x1a) AM_DEVREADWRITE(Z80DMA_TAG, z80dma_device, read, write) AM_RANGE(0x1b, 0x1b) AM_READ(hwsts_r) ADDRESS_MAP_END @@ -815,7 +815,7 @@ void bullet_state::update_dma_rdy() break; } - z80dma_rdy_w(m_dmac, rdy); + m_dmac->rdy_w(rdy); } READ8_MEMBER( bullet_state::dma_mreq_r ) @@ -879,7 +879,7 @@ void bulletf_state::update_dma_rdy() rdy = m_fdrdy; } - z80dma_rdy_w(m_dmac, rdy); + m_dmac->rdy_w(rdy); } READ8_MEMBER( bulletf_state::dma_mreq_r ) diff --git a/src/mess/drivers/p8k.c b/src/mess/drivers/p8k.c index a61a8bea357..32d12cb63f2 100644 --- a/src/mess/drivers/p8k.c +++ b/src/mess/drivers/p8k.c @@ -153,7 +153,7 @@ static ADDRESS_MAP_START(p8k_iomap, AS_IO, 8, p8k_state) AM_RANGE(0x24, 0x27) AM_READWRITE(p8k_port24_r,p8k_port24_w) AM_RANGE(0x28, 0x2b) AM_DEVREADWRITE("z80sio_1", z80sio_device, read_alt, write_alt) AM_RANGE(0x2c, 0x2f) AM_DEVREADWRITE("z80ctc_1", z80ctc_device, read, write) - AM_RANGE(0x3c, 0x3c) AM_DEVREADWRITE_LEGACY("z80dma", z80dma_r, z80dma_w) + AM_RANGE(0x3c, 0x3c) AM_DEVREADWRITE("z80dma", z80dma_device, read, write) ADDRESS_MAP_END diff --git a/src/mess/drivers/super6.c b/src/mess/drivers/super6.c index 009d662263c..d531d56a942 100644 --- a/src/mess/drivers/super6.c +++ b/src/mess/drivers/super6.c @@ -286,7 +286,7 @@ static ADDRESS_MAP_START( super6_io, AS_IO, 8, super6_state ) AM_RANGE(0x04, 0x07) AM_DEVREADWRITE(Z80PIO_TAG, z80pio_device, read, write) AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_device, read, write) AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE(WD2793_TAG, wd2793_t, read, write) - AM_RANGE(0x10, 0x10) AM_MIRROR(0x03) AM_DEVREADWRITE_LEGACY(Z80DMA_TAG, z80dma_r, z80dma_w) + AM_RANGE(0x10, 0x10) AM_MIRROR(0x03) AM_DEVREADWRITE(Z80DMA_TAG, z80dma_device, read, write) AM_RANGE(0x14, 0x14) AM_READWRITE(fdc_r, fdc_w) AM_RANGE(0x15, 0x15) AM_READ_PORT("J7") AM_WRITE(s100_w) AM_RANGE(0x16, 0x16) AM_WRITE(bank0_w) diff --git a/src/mess/drivers/trs80m2.c b/src/mess/drivers/trs80m2.c index d7df66a15df..c6491a4e93c 100644 --- a/src/mess/drivers/trs80m2.c +++ b/src/mess/drivers/trs80m2.c @@ -330,7 +330,7 @@ static ADDRESS_MAP_START( z80_io, AS_IO, 8, trs80m2_state ) AM_RANGE(0xef, 0xef) AM_WRITE(drvslt_w) AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_device, read, write) AM_RANGE(0xf4, 0xf7) AM_DEVREADWRITE(Z80SIO_TAG, z80sio0_device, cd_ba_r, cd_ba_w) - AM_RANGE(0xf8, 0xf8) AM_DEVREADWRITE_LEGACY(Z80DMA_TAG, z80dma_r, z80dma_w) + AM_RANGE(0xf8, 0xf8) AM_DEVREADWRITE(Z80DMA_TAG, z80dma_device, read, write) AM_RANGE(0xf9, 0xf9) AM_WRITE(rom_enable_w) AM_RANGE(0xfc, 0xfc) AM_READ(keyboard_r) AM_DEVWRITE(MC6845_TAG, mc6845_device, address_w) AM_RANGE(0xfd, 0xfd) AM_DEVREADWRITE(MC6845_TAG, mc6845_device, register_r, register_w) diff --git a/src/mess/drivers/x1.c b/src/mess/drivers/x1.c index 80258624bf9..2c57abf38fa 100644 --- a/src/mess/drivers/x1.c +++ b/src/mess/drivers/x1.c @@ -1059,7 +1059,7 @@ static const wd17xx_interface x1_mb8877a_interface = WRITE_LINE_MEMBER(x1_state::fdc_drq_w) { - z80dma_rdy_w(machine().device("dma"), state ^ 1); + m_dma->rdy_w(state ^ 1); } static const wd17xx_interface x1turbo_mb8877a_interface = @@ -1681,7 +1681,7 @@ READ8_MEMBER( x1_state::x1turbo_io_r ) else if(offset >= 0x1900 && offset <= 0x19ff) { return x1_sub_io_r(space, 0); } else if(offset >= 0x1a00 && offset <= 0x1aff) { return machine().device("ppi8255_0")->read(space, (offset-0x1a00) & 3); } else if(offset >= 0x1b00 && offset <= 0x1bff) { return machine().device("ay")->data_r(space, 0); } - else if(offset >= 0x1f80 && offset <= 0x1f8f) { return z80dma_r(machine().device("dma"), space, 0); } + else if(offset >= 0x1f80 && offset <= 0x1f8f) { return m_dma->read(space, 0); } else if(offset >= 0x1f90 && offset <= 0x1f93) { return machine().device("sio")->ba_cd_r(space, (offset-0x1f90) & 3); } else if(offset >= 0x1f98 && offset <= 0x1f9f) { printf("Extended SIO/CTC read %04x\n",offset); return 0xff; } else if(offset >= 0x1fa0 && offset <= 0x1fa3) { return m_ctc->read(space,offset-0x1fa0); } @@ -1734,7 +1734,7 @@ WRITE8_MEMBER( x1_state::x1turbo_io_w ) else if(offset >= 0x1c00 && offset <= 0x1cff) { machine().device("ay")->address_w(space, 0,data); } else if(offset >= 0x1d00 && offset <= 0x1dff) { x1_rom_bank_1_w(space,0,data); } else if(offset >= 0x1e00 && offset <= 0x1eff) { x1_rom_bank_0_w(space,0,data); } - else if(offset >= 0x1f80 && offset <= 0x1f8f) { z80dma_w(machine().device("dma"), space, 0,data); } + else if(offset >= 0x1f80 && offset <= 0x1f8f) { m_dma->write(space, 0,data); } else if(offset >= 0x1f90 && offset <= 0x1f93) { machine().device("sio")->ba_cd_w(space, (offset-0x1f90) & 3,data); } else if(offset >= 0x1f98 && offset <= 0x1f9f) { printf("Extended SIO/CTC write %04x %02x\n",offset,data); } else if(offset >= 0x1fa0 && offset <= 0x1fa3) { m_ctc->write(space,offset-0x1fa0,data); } diff --git a/src/mess/drivers/zorba.c b/src/mess/drivers/zorba.c index bb87bbbff9e..e0f6935ab21 100644 --- a/src/mess/drivers/zorba.c +++ b/src/mess/drivers/zorba.c @@ -126,7 +126,7 @@ static ADDRESS_MAP_START( zorba_io, AS_IO, 8, zorba_state ) //AM_RANGE(0x25, 0x25) AM_DEVREADWRITE("uart2", i8251_device, status_r, control_w) AM_RANGE(0x24, 0x25) AM_READ(keyboard_r) AM_WRITENOP AM_RANGE(0x26, 0x26) AM_WRITE(intmask_w) - AM_RANGE(0x30, 0x30) AM_DEVREADWRITE_LEGACY("dma", z80dma_r, z80dma_w) + AM_RANGE(0x30, 0x30) AM_DEVREADWRITE("dma", z80dma_device, read, write) AM_RANGE(0x40, 0x43) AM_DEVREADWRITE("fdc", fd1793_t, read, write) AM_RANGE(0x50, 0x53) AM_DEVREADWRITE("pia0", pia6821_device, read, write) AM_RANGE(0x60, 0x63) AM_DEVREADWRITE("pia1", pia6821_device, read, write) diff --git a/src/mess/includes/x1.h b/src/mess/includes/x1.h index cae1c02849d..c8523038ee4 100644 --- a/src/mess/includes/x1.h +++ b/src/mess/includes/x1.h @@ -81,7 +81,8 @@ public: m_crtc(*this, "crtc"), m_ctc(*this, "ctc"), m_gfxdecode(*this, "gfxdecode"), - m_palette(*this, "palette") + m_palette(*this, "palette"), + m_dma(*this, "dma") { } required_device m_maincpu; @@ -232,6 +233,7 @@ public: DECLARE_WRITE8_MEMBER(io_write_byte); required_device m_gfxdecode; required_device m_palette; + optional_device m_dma; }; /*----------- defined in machine/x1.c -----------*/