diff options
Diffstat (limited to 'src/mame/drivers/vp415.cpp')
-rw-r--r-- | src/mame/drivers/vp415.cpp | 53 |
1 files changed, 27 insertions, 26 deletions
diff --git a/src/mame/drivers/vp415.cpp b/src/mame/drivers/vp415.cpp index 2708b42affc..acc47971e58 100644 --- a/src/mame/drivers/vp415.cpp +++ b/src/mame/drivers/vp415.cpp @@ -489,11 +489,12 @@ static INPUT_PORTS_START( vp415 ) PORT_DIPSETTING( 0x00, "Off" ) INPUT_PORTS_END -MACHINE_CONFIG_START(vp415_state::vp415) +void vp415_state::vp415(machine_config &config) +{ // Module W: CPU Datagrabber - MCFG_DEVICE_ADD(DATACPU_TAG, Z80, XTAL(8'000'000)/2) // 8MHz through a /2 flip-flop divider, per schematic - MCFG_DEVICE_PROGRAM_MAP(z80_program_map) - MCFG_DEVICE_IO_MAP(z80_io_map) + Z80(config, m_datacpu, XTAL(8'000'000)/2); // 8MHz through a /2 flip-flop divider, per schematic + m_datacpu->set_addrmap(AS_PROGRAM, &vp415_state::z80_program_map); + m_datacpu->set_addrmap(AS_IO, &vp415_state::z80_io_map); I8041(config, m_datamcu, XTAL(4'000'000)); // Verified on schematic m_datamcu->p1_in_cb().set(FUNC(vp415_state::data_mcu_port1_r)); @@ -502,17 +503,17 @@ MACHINE_CONFIG_START(vp415_state::vp415) m_datamcu->p2_out_cb().set(FUNC(vp415_state::data_mcu_port2_w)); m_datamcu->set_addrmap(AS_PROGRAM, &vp415_state::datamcu_program_map); - MCFG_DEVICE_ADD(SCSI_TAG, NCR5385, XTAL(8'000'000)/2) // Same clock signal as above, per schematic - MCFG_NCR5385_INT_CB(WRITELINE(*this, vp415_state, cpu_int1_w)) + NCR5385(config, m_scsi, XTAL(8'000'000)/2); // Same clock signal as above, per schematic + m_scsi->irq().set(FUNC(vp415_state::cpu_int1_w)); // Module S: Control - MCFG_DEVICE_ADD(CTRLCPU_TAG, I8031, XTAL(11'059'200)) // 11.059MHz, per schematic - MCFG_MCS51_PORT_P1_OUT_CB(WRITE8(*this, vp415_state, ctrl_cpu_port1_w)); - MCFG_MCS51_PORT_P1_IN_CB(READ8(*this, vp415_state, ctrl_cpu_port1_r)); - MCFG_MCS51_PORT_P3_OUT_CB(WRITE8(*this, vp415_state, ctrl_cpu_port3_w)); - MCFG_MCS51_PORT_P3_IN_CB(READ8(*this, vp415_state, ctrl_cpu_port3_r)); - MCFG_DEVICE_PROGRAM_MAP(ctrl_program_map) - MCFG_DEVICE_IO_MAP(ctrl_io_map) + I8031(config, m_ctrlcpu, XTAL(11'059'200)); // 11.059MHz, per schematic + m_ctrlcpu->port_out_cb<1>().set(FUNC(vp415_state::ctrl_cpu_port1_w));; + m_ctrlcpu->port_in_cb<1>().set(FUNC(vp415_state::ctrl_cpu_port1_r)); + m_ctrlcpu->port_out_cb<3>().set(FUNC(vp415_state::ctrl_cpu_port3_w)); + m_ctrlcpu->port_in_cb<3>().set(FUNC(vp415_state::ctrl_cpu_port3_r)); + m_ctrlcpu->set_addrmap(AS_PROGRAM, &vp415_state::ctrl_program_map); + m_ctrlcpu->set_addrmap(AS_IO, &vp415_state::ctrl_io_map); I8041(config, m_ctrlmcu, XTAL(4'000'000)); // Verified on schematic m_ctrlmcu->p1_in_cb().set(FUNC(vp415_state::ctrl_mcu_port1_r)); @@ -522,11 +523,11 @@ MACHINE_CONFIG_START(vp415_state::vp415) m_ctrlmcu->set_addrmap(AS_PROGRAM, &vp415_state::ctrlmcu_program_map); // Module R: Drive - MCFG_DEVICE_ADD(DRIVECPU_TAG, I8031, XTAL(12'000'000)) // 12MHz, per schematic - MCFG_MCS51_PORT_P1_OUT_CB(WRITE8(*this, vp415_state, drive_cpu_port1_w)); - MCFG_MCS51_PORT_P3_OUT_CB(WRITE8(*this, vp415_state, drive_cpu_port3_w)); - MCFG_DEVICE_PROGRAM_MAP(drive_program_map) - MCFG_DEVICE_IO_MAP(drive_io_map) + I8031(config, m_drivecpu, XTAL(12'000'000)); // 12MHz, per schematic + m_drivecpu->port_out_cb<1>().set(FUNC(vp415_state::drive_cpu_port1_w)); + m_drivecpu->port_out_cb<3>().set(FUNC(vp415_state::drive_cpu_port3_w)); + m_drivecpu->set_addrmap(AS_PROGRAM, &vp415_state::drive_program_map); + m_drivecpu->set_addrmap(AS_IO, &vp415_state::drive_io_map); i8155_device &i8155(I8155(config, I8155_TAG, 0)); i8155.out_pa_callback().set(CHARGEN_TAG, FUNC(mb88303_device::da_w)); @@ -538,18 +539,18 @@ MACHINE_CONFIG_START(vp415_state::vp415) ppi.out_pb_callback().set(FUNC(vp415_state::drive_i8255_pb_w)); ppi.in_pc_callback().set(FUNC(vp415_state::drive_i8255_pc_r)); - MCFG_DEVICE_ADD(CHARGEN_TAG, MB88303, 0) + MB88303(config, m_chargen, 0); saa1043_device &saa1043(SAA1043(config, SYNCGEN_TAG, XTAL(5'000'000))); saa1043.v2_callback().set(FUNC(vp415_state::refv_w)); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_UPDATE_DRIVER(vp415_state, screen_update) - MCFG_SCREEN_SIZE(320, 240) - MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(320, 240); + screen.set_visarea(0, 319, 0, 239); + screen.set_screen_update(FUNC(vp415_state::screen_update)); +} ROM_START(vp415) /* Module R */ |