summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/macs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/macs.cpp')
-rw-r--r--src/mame/drivers/macs.cpp47
1 files changed, 23 insertions, 24 deletions
diff --git a/src/mame/drivers/macs.cpp b/src/mame/drivers/macs.cpp
index cffce4b66a1..f125fbb37a1 100644
--- a/src/mame/drivers/macs.cpp
+++ b/src/mame/drivers/macs.cpp
@@ -67,15 +67,15 @@ class macs_state : public driver_device
{
public:
macs_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_cart_bank(0),
- m_ram2(*this, "ram2"),
- m_maincpu(*this,"maincpu"),
- m_cart1(*this, "slot_a"),
- m_cart2(*this, "slot_b"),
- m_rombank(*this, "rombank%u", 1),
- m_rambank(*this, "rambank%u", 1)
- { }
+ : driver_device(mconfig, type, tag)
+ , m_cart_bank(0)
+ , m_ram2(*this, "ram2")
+ , m_maincpu(*this,"maincpu")
+ , m_cart1(*this, "slot_a")
+ , m_cart2(*this, "slot_b")
+ , m_rombank(*this, "rombank%u", 1)
+ , m_rambank(*this, "rambank%u", 1)
+ { }
void macs(machine_config &config);
@@ -96,7 +96,7 @@ private:
DECLARE_WRITE8_MEMBER(macs_output_w);
DECLARE_MACHINE_RESET(macs);
DECLARE_MACHINE_START(macs);
- ST0016_DMA_OFFS_CB(dma_offset);
+ uint8_t dma_offset();
uint32_t screen_update_macs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -494,31 +494,30 @@ uint32_t macs_state::screen_update_macs(screen_device &screen, bitmap_ind16 &bit
}
-ST0016_DMA_OFFS_CB(macs_state::dma_offset)
+uint8_t macs_state::dma_offset()
{
return m_cart_bank;
}
MACHINE_CONFIG_START(macs_state::macs)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",ST0016_CPU,8000000) /* 8 MHz ? */
- MCFG_DEVICE_PROGRAM_MAP(macs_mem)
- MCFG_DEVICE_IO_MAP(macs_io)
- MCFG_ST0016_DMA_OFFS_CB(macs_state, dma_offset)
-
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", macs_state, irq0_line_hold)
+ ST0016_CPU(config, m_maincpu, 8000000); // 8 MHz ?
+ m_maincpu->set_memory_map(&macs_state::macs_mem);
+ m_maincpu->set_io_map(&macs_state::macs_io);
+ m_maincpu->set_dma_offs_callback(FUNC(macs_state::dma_offset), this);
MCFG_MACHINE_START_OVERRIDE(macs_state, macs)
MCFG_MACHINE_RESET_OVERRIDE(macs_state, macs)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(128*8, 128*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 128*8-1, 0*8, 128*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(macs_state, screen_update_macs)
- MCFG_SCREEN_PALETTE("maincpu:palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(128*8, 128*8);
+ screen.set_visarea(0*8, 128*8-1, 0*8, 128*8-1);
+ screen.set_screen_update(FUNC(macs_state::screen_update_macs));
+ screen.set_palette("maincpu:palette");
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0, HOLD_LINE); // FIXME: HOLD_LINE is bad juju
MCFG_GENERIC_CARTSLOT_ADD_WITH_DEFAULT("slot_a", generic_plain_slot, "macs_cart", "rom")
MCFG_SET_IMAGE_LOADABLE(false)