diff options
Diffstat (limited to 'src/mame/drivers/phc25.cpp')
-rw-r--r-- | src/mame/drivers/phc25.cpp | 70 |
1 files changed, 38 insertions, 32 deletions
diff --git a/src/mame/drivers/phc25.cpp b/src/mame/drivers/phc25.cpp index ca346dd36c0..ce75201c8c5 100644 --- a/src/mame/drivers/phc25.cpp +++ b/src/mame/drivers/phc25.cpp @@ -308,11 +308,12 @@ void phc25_state::video_start() /* Machine Driver */ -MACHINE_CONFIG_START(phc25_state::phc25) +void phc25_state::phc25(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(phc25_mem) - MCFG_DEVICE_IO_MAP(phc25_io) + Z80(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &phc25_state::phc25_mem); + m_maincpu->set_addrmap(AS_IO, &phc25_state::phc25_io); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -320,51 +321,56 @@ MACHINE_CONFIG_START(phc25_state::phc25) psg.port_a_read_callback().set_ioport("JOY0"); psg.port_b_read_callback().set_ioport("JOY1"); psg.add_route(ALL_OUTPUTS, "mono", 1.00); - WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.15); + WAVE(config, "wave", m_cassette).add_route(ALL_OUTPUTS, "mono", 0.15); /* devices */ - MCFG_CASSETTE_ADD("cassette") - MCFG_CASSETTE_FORMATS(phc25_cassette_formats) - MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED) - MCFG_CASSETTE_INTERFACE("phc25_cass") + CASSETTE(config, m_cassette); + m_cassette->set_formats(phc25_cassette_formats); + m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); + m_cassette->set_interface("phc25_cass"); - MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") - MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, phc25_state, write_centronics_busy)) + CENTRONICS(config, m_centronics, centronics_devices, "printer"); + m_centronics->busy_handler().set(FUNC(phc25_state::write_centronics_busy)); - MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) + output_latch_device ¢_data_out(OUTPUT_LATCH(config, "cent_data_out")); + m_centronics->set_output_latch(cent_data_out); /* internal ram */ RAM(config, RAM_TAG).set_default_size("16K"); /* software lists */ - MCFG_SOFTWARE_LIST_ADD("cass_list", "phc25_cass") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "cass_list").set_original("phc25_cass"); +} -MACHINE_CONFIG_START(phc25_state::pal) +void phc25_state::pal(machine_config &config) +{ phc25(config); /* video hardware */ - MCFG_SCREEN_MC6847_PAL_ADD(SCREEN_TAG, MC6847_TAG) - - MCFG_DEVICE_ADD(MC6847_TAG, MC6847_PAL, XTAL(4'433'619)) - MCFG_MC6847_FSYNC_CALLBACK(WRITELINE(*this, phc25_state, irq_w)) - MCFG_MC6847_INPUT_CALLBACK(READ8(*this, phc25_state, video_ram_r)) - MCFG_MC6847_CHARROM_CALLBACK(phc25_state, pal_char_rom_r) - MCFG_MC6847_FIXED_MODE(mc6847_pal_device::MODE_GM2 | mc6847_pal_device::MODE_GM1 | mc6847_pal_device::MODE_INTEXT) + SCREEN(config, "screen", SCREEN_TYPE_RASTER); + + MC6847_PAL(config, m_vdg, XTAL(4'433'619)); + m_vdg->set_screen("screen"); + m_vdg->fsync_wr_callback().set(FUNC(phc25_state::irq_w)); + m_vdg->input_callback().set(FUNC(phc25_state::video_ram_r)); + m_vdg->set_get_char_rom(FUNC(phc25_state::pal_char_rom_r)); + m_vdg->set_get_fixed_mode(mc6847_pal_device::MODE_GM2 | mc6847_pal_device::MODE_GM1 | mc6847_pal_device::MODE_INTEXT); // other lines not connected -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(phc25_state::ntsc) +void phc25_state::ntsc(machine_config &config) +{ phc25(config); /* video hardware */ - MCFG_SCREEN_MC6847_NTSC_ADD(SCREEN_TAG, MC6847_TAG) - - MCFG_DEVICE_ADD(MC6847_TAG, MC6847_NTSC, XTAL(3'579'545)) - MCFG_MC6847_FSYNC_CALLBACK(WRITELINE(*this, phc25_state, irq_w)) - MCFG_MC6847_INPUT_CALLBACK(READ8(*this, phc25_state, video_ram_r)) - MCFG_MC6847_CHARROM_CALLBACK(phc25_state, ntsc_char_rom_r) - MCFG_MC6847_FIXED_MODE(mc6847_ntsc_device::MODE_GM2 | mc6847_ntsc_device::MODE_GM1 | mc6847_ntsc_device::MODE_INTEXT) + SCREEN(config, "screen", SCREEN_TYPE_RASTER); + + MC6847_NTSC(config, m_vdg, XTAL(3'579'545)); + m_vdg->set_screen("screen"); + m_vdg->fsync_wr_callback().set(FUNC(phc25_state::irq_w)); + m_vdg->input_callback().set(FUNC(phc25_state::video_ram_r)); + m_vdg->set_get_char_rom(FUNC(phc25_state::ntsc_char_rom_r)); + m_vdg->set_get_fixed_mode(mc6847_ntsc_device::MODE_GM2 | mc6847_ntsc_device::MODE_GM1 | mc6847_ntsc_device::MODE_INTEXT); // other lines not connected -MACHINE_CONFIG_END +} /* ROMs */ |