diff options
Diffstat (limited to 'src/mame/drivers/pc8801.cpp')
-rw-r--r-- | src/mame/drivers/pc8801.cpp | 79 |
1 files changed, 38 insertions, 41 deletions
diff --git a/src/mame/drivers/pc8801.cpp b/src/mame/drivers/pc8801.cpp index 327f2044fe4..874ffa4b93d 100644 --- a/src/mame/drivers/pc8801.cpp +++ b/src/mame/drivers/pc8801.cpp @@ -1476,23 +1476,23 @@ WRITE8_MEMBER(pc8801_state::pc8801_rtc_w) READ8_MEMBER(pc8801_state::pc8801_sound_board_r) { if(m_has_opna) - return m_opna->read(offset); + return m_opna->read(space, offset); - return (offset & 2) ? 0xff : m_opn->read(offset); + return (offset & 2) ? 0xff : m_opn->read(space, offset); } WRITE8_MEMBER(pc8801_state::pc8801_sound_board_w) { if(m_has_opna) - m_opna->write(offset,data); + m_opna->write(space, offset,data); else if((offset & 2) == 0) - m_opn->write(offset, data); + m_opn->write(space, offset, data); } READ8_MEMBER(pc8801_state::pc8801_opna_r) { if(m_has_opna && (offset & 2) == 0) - return m_opna->read((offset & 1) | ((offset & 4) >> 1)); + return m_opna->read(space, (offset & 1) | ((offset & 4) >> 1)); return 0xff; } @@ -1500,7 +1500,7 @@ READ8_MEMBER(pc8801_state::pc8801_opna_r) WRITE8_MEMBER(pc8801_state::pc8801_opna_w) { if(m_has_opna && (offset & 2) == 0) - m_opna->write((offset & 1) | ((offset & 4) >> 1),data); + m_opna->write(space, (offset & 1) | ((offset & 4) >> 1),data); else if(m_has_opna && offset == 2) { m_sound_irq_mask = ((data & 0x80) == 0); @@ -2340,22 +2340,21 @@ WRITE_LINE_MEMBER( pc8801_state::rxrdy_w ) // ... } -void pc8801_state::pc8801(machine_config &config) -{ +MACHINE_CONFIG_START(pc8801_state::pc8801) /* main CPU */ - Z80(config, m_maincpu, MASTER_CLOCK); /* 4 MHz */ - m_maincpu->set_addrmap(AS_PROGRAM, &pc8801_state::pc8801_mem); - m_maincpu->set_addrmap(AS_IO, &pc8801_state::pc8801_io); - m_maincpu->set_vblank_int("screen", FUNC(pc8801_state::pc8801_vrtc_irq)); - m_maincpu->set_irq_acknowledge_callback(FUNC(pc8801_state::pc8801_irq_callback)); + MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK) /* 4 MHz */ + MCFG_DEVICE_PROGRAM_MAP(pc8801_mem) + MCFG_DEVICE_IO_MAP(pc8801_io) + MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc8801_state, pc8801_vrtc_irq) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc8801_state,pc8801_irq_callback) /* sub CPU(5 inch floppy drive) */ - Z80(config, m_fdccpu, MASTER_CLOCK); /* 4 MHz */ - m_fdccpu->set_addrmap(AS_PROGRAM, &pc8801_state::pc8801fdc_mem); - m_fdccpu->set_addrmap(AS_IO, &pc8801_state::pc8801fdc_io); + MCFG_DEVICE_ADD(m_fdccpu, Z80, MASTER_CLOCK) /* 4 MHz */ + MCFG_DEVICE_PROGRAM_MAP(pc8801fdc_mem) + MCFG_DEVICE_IO_MAP(pc8801fdc_io) - //config.m_minimum_quantum = attotime::from_hz(300000); - config.m_perfect_cpu_quantum = subtag("maincpu"); + //MCFG_QUANTUM_TIME(attotime::from_hz(300000)) + MCFG_QUANTUM_PERFECT_CPU("maincpu") i8255_device &d8255_master(I8255(config, "d8255_master")); d8255_master.in_pa_callback().set("d8255_slave", FUNC(i8255_device::pb_r)); @@ -2376,25 +2375,25 @@ void pc8801_state::pc8801(machine_config &config) I8214(config, I8214_TAG, MASTER_CLOCK); #endif UPD1990A(config, m_rtc); - //CENTRONICS(config, "centronics", centronics_devices, "printer"); - CASSETTE(config, m_cassette); - m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED); + //MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer") + MCFG_CASSETTE_ADD("cassette") + MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED) - SOFTWARE_LIST(config, "tape_list").set_original("pc8801_cass"); + MCFG_SOFTWARE_LIST_ADD("tape_list","pc8801_cass") i8251_device &i8251(I8251(config, I8251_TAG, 0)); i8251.txd_handler().set(FUNC(pc8801_state::txdata_callback)); i8251.rts_handler().set(FUNC(pc8801_state::rxrdy_w)); - FLOPPY_CONNECTOR(config, "upd765:0", pc88_floppies, "525hd", floppy_image_device::default_floppy_formats); - FLOPPY_CONNECTOR(config, "upd765:1", pc88_floppies, "525hd", floppy_image_device::default_floppy_formats); - SOFTWARE_LIST(config, "disk_list").set_original("pc8801_flop"); + MCFG_FLOPPY_DRIVE_ADD("upd765:0", pc88_floppies, "525hd", floppy_image_device::default_floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("upd765:1", pc88_floppies, "525hd", floppy_image_device::default_floppy_formats) + MCFG_SOFTWARE_LIST_ADD("disk_list","pc8801_flop") /* video hardware */ - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(PIXEL_CLOCK_24KHz,848,0,640,448,0,400); - m_screen->set_screen_update(FUNC(pc8801_state::screen_update)); - m_screen->set_palette(m_palette); + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK_24KHz,848,0,640,448,0,400) + MCFG_SCREEN_UPDATE_DRIVER(pc8801_state, screen_update) + MCFG_SCREEN_PALETTE(m_palette) GFXDECODE(config, "gfxdecode", m_palette, gfx_pc8801); PALETTE(config, m_palette, FUNC(pc8801_state::pc8801_palette), 0x10); @@ -2415,28 +2414,26 @@ void pc8801_state::pc8801(machine_config &config) m_opna->port_b_read_callback().set(FUNC(pc8801_state::opn_portb_r)); m_opna->add_route(ALL_OUTPUTS, "mono", 1.00); - BEEP(config, m_beeper, 2400).add_route(ALL_OUTPUTS, "mono", 0.10); + MCFG_DEVICE_ADD("beeper", BEEP, 2400) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - TIMER(config, "rtc_timer").configure_periodic(FUNC(pc8801_state::pc8801_rtc_irq), attotime::from_hz(600)); -} + MCFG_TIMER_DRIVER_ADD_PERIODIC("rtc_timer", pc8801_state, pc8801_rtc_irq, attotime::from_hz(600)) +MACHINE_CONFIG_END -void pc8801_state::pc8801fh(machine_config &config) -{ +MACHINE_CONFIG_START(pc8801_state::pc8801fh) pc8801(config); MCFG_MACHINE_RESET_OVERRIDE(pc8801_state, pc8801_clock_speed ) -} +MACHINE_CONFIG_END -void pc8801_state::pc8801ma(machine_config &config) -{ +MACHINE_CONFIG_START(pc8801_state::pc8801ma) pc8801(config); MCFG_MACHINE_RESET_OVERRIDE(pc8801_state, pc8801_dic ) -} +MACHINE_CONFIG_END -void pc8801_state::pc8801mc(machine_config &config) -{ +MACHINE_CONFIG_START(pc8801_state::pc8801mc) pc8801(config); MCFG_MACHINE_RESET_OVERRIDE(pc8801_state, pc8801_cdrom ) -} +MACHINE_CONFIG_END /* TODO: clean this up */ |