summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/vp415.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/vp415.cpp')
-rw-r--r--src/mame/drivers/vp415.cpp53
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 */