summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/cmi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/cmi.cpp')
-rw-r--r--src/mame/drivers/cmi.cpp108
1 files changed, 54 insertions, 54 deletions
diff --git a/src/mame/drivers/cmi.cpp b/src/mame/drivers/cmi.cpp
index cb7cbc5eca0..148e0386fd8 100644
--- a/src/mame/drivers/cmi.cpp
+++ b/src/mame/drivers/cmi.cpp
@@ -1519,7 +1519,7 @@ READ8_MEMBER( cmi_state::cmi02_r )
{
if (ch_mask & (1 << i))
{
- return m_channels[i]->read(space, offset & 0x1f, 0xff);
+ return m_channels[i]->read(offset & 0x1f);
}
}
@@ -1530,7 +1530,7 @@ READ8_MEMBER( cmi_state::cmi02_r )
switch (offset)
{
case 0x20: case 0x21: case 0x22: case 0x23:
- return m_cmi02_pia[0]->read(space, offset & 3);
+ return m_cmi02_pia[0]->read(offset & 3);
case 0x26:
m_maincpu2->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
@@ -1543,10 +1543,10 @@ READ8_MEMBER( cmi_state::cmi02_r )
return 0xff;
case 0x28: case 0x29: case 0x2a: case 0x2b:
- return m_cmi02_pia[1]->read(space, offset & 3);
+ return m_cmi02_pia[1]->read(offset & 3);
case 0x38: case 0x39: case 0x3a: case 0x3b: case 0x3c: case 0x3d: case 0x3e: case 0x3f:
- return m_cmi02_ptm->read(space, offset & 7);
+ return m_cmi02_ptm->read(offset & 7);
default:
logerror("CMI02 R: %x\n", offset);
@@ -1564,7 +1564,7 @@ WRITE8_MEMBER( cmi_state::cmi02_w )
for (int i = 0; i < 8; ++i)
{
if (ch_mask & (1 << i))
- m_channels[i]->write(space, offset & 0x1f, data, 0xff);
+ m_channels[i]->write(offset & 0x1f, data);
}
}
else
@@ -1572,11 +1572,11 @@ WRITE8_MEMBER( cmi_state::cmi02_w )
switch (offset)
{
case 0x20: case 0x21: case 0x22: case 0x23:
- m_cmi02_pia[0]->write(space, offset & 3, data);
+ m_cmi02_pia[0]->write(offset & 3, data);
break;
case 0x28: case 0x29: case 0x2a: case 0x2b:
- m_cmi02_pia[1]->write(space, offset & 3, data);
+ m_cmi02_pia[1]->write(offset & 3, data);
break;
case 0x30:
@@ -1595,7 +1595,7 @@ WRITE8_MEMBER( cmi_state::cmi02_w )
break;
case 0x38: case 0x39: case 0x3a: case 0x3b: case 0x3c: case 0x3d: case 0x3e: case 0x3f:
- m_cmi02_ptm->write(space, offset & 7, data);
+ m_cmi02_ptm->write(offset & 7, data);
break;
default:
@@ -1674,22 +1674,22 @@ void cmi_state::install_peripherals(int cpunum)
else
space->install_readwrite_handler(0xfc5f, 0xfc5f, read8_delegate(FUNC(cmi_state::map_r<0>),this), write8_delegate(FUNC(cmi_state::map_w<0>),this));
- space->install_readwrite_handler(0xfc80, 0xfc83, read8_delegate(FUNC(mos6551_device::read),m_q133_acia[0].target()), write8_delegate(FUNC(mos6551_device::write),m_q133_acia[0].target()));
- space->install_readwrite_handler(0xfc84, 0xfc87, read8_delegate(FUNC(mos6551_device::read),m_q133_acia[1].target()), write8_delegate(FUNC(mos6551_device::write),m_q133_acia[1].target()));
- space->install_readwrite_handler(0xfc88, 0xfc8b, read8_delegate(FUNC(mos6551_device::read),m_q133_acia[2].target()), write8_delegate(FUNC(mos6551_device::write),m_q133_acia[2].target()));
- space->install_readwrite_handler(0xfc8c, 0xfc8f, read8_delegate(FUNC(mos6551_device::read),m_q133_acia[3].target()), write8_delegate(FUNC(mos6551_device::write),m_q133_acia[3].target()));
- space->install_readwrite_handler(0xfc90, 0xfc97, read8_delegate(FUNC(ptm6840_device::read),m_q133_ptm.target()), write8_delegate(FUNC(ptm6840_device::write),m_q133_ptm.target()));
+ space->install_readwrite_handler(0xfc80, 0xfc83, read8sm_delegate(FUNC(mos6551_device::read),m_q133_acia[0].target()), write8sm_delegate(FUNC(mos6551_device::write),m_q133_acia[0].target()));
+ space->install_readwrite_handler(0xfc84, 0xfc87, read8sm_delegate(FUNC(mos6551_device::read),m_q133_acia[1].target()), write8sm_delegate(FUNC(mos6551_device::write),m_q133_acia[1].target()));
+ space->install_readwrite_handler(0xfc88, 0xfc8b, read8sm_delegate(FUNC(mos6551_device::read),m_q133_acia[2].target()), write8sm_delegate(FUNC(mos6551_device::write),m_q133_acia[2].target()));
+ space->install_readwrite_handler(0xfc8c, 0xfc8f, read8sm_delegate(FUNC(mos6551_device::read),m_q133_acia[3].target()), write8sm_delegate(FUNC(mos6551_device::write),m_q133_acia[3].target()));
+ space->install_readwrite_handler(0xfc90, 0xfc97, read8sm_delegate(FUNC(ptm6840_device::read),m_q133_ptm.target()), write8sm_delegate(FUNC(ptm6840_device::write),m_q133_ptm.target()));
space->install_readwrite_handler(0xfcbc, 0xfcbc, read8_delegate(FUNC(cmi_state::cmi07_r),this), write8_delegate(FUNC(cmi_state::cmi07_w),this));
space->install_read_handler(0xfcc0, 0xfcc3, read8_delegate(FUNC(cmi_state::lightpen_r),this));
- space->install_readwrite_handler(0xfcc4, 0xfcc7, read8_delegate(FUNC(pia6821_device::read),m_q219_pia.target()), write8_delegate(FUNC(pia6821_device::write),m_q219_pia.target()));
- space->install_readwrite_handler(0xfcc8, 0xfccf, read8_delegate(FUNC(ptm6840_device::read),m_q219_ptm.target()), write8_delegate(FUNC(ptm6840_device::write),m_q219_ptm.target()));
+ space->install_readwrite_handler(0xfcc4, 0xfcc7, read8sm_delegate(FUNC(pia6821_device::read),m_q219_pia.target()), write8sm_delegate(FUNC(pia6821_device::write),m_q219_pia.target()));
+ space->install_readwrite_handler(0xfcc8, 0xfccf, read8sm_delegate(FUNC(ptm6840_device::read),m_q219_ptm.target()), write8sm_delegate(FUNC(ptm6840_device::write),m_q219_ptm.target()));
space->install_readwrite_handler(0xfcd0, 0xfcdc, read8_delegate(FUNC(cmi_state::video_r),this), write8_delegate(FUNC(cmi_state::video_w),this));
space->install_readwrite_handler(0xfce0, 0xfce1, read8_delegate(FUNC(cmi_state::fdc_r),this), write8_delegate(FUNC(cmi_state::fdc_w),this));
space->nop_readwrite(0xfce2, 0xfcef); // Monitor ROM will attempt to detect floppy disk controller cards in this entire range
- space->install_readwrite_handler(0xfcf0, 0xfcf7, read8_delegate(FUNC(pia6821_device::read),m_q133_pia[0].target()), write8_delegate(FUNC(pia6821_device::write),m_q133_pia[0].target()));
- space->install_readwrite_handler(0xfcf8, 0xfcff, read8_delegate(FUNC(pia6821_device::read),m_q133_pia[1].target()), write8_delegate(FUNC(pia6821_device::write),m_q133_pia[1].target()));
+ space->install_readwrite_handler(0xfcf0, 0xfcf7, read8sm_delegate(FUNC(pia6821_device::read),m_q133_pia[0].target()), write8sm_delegate(FUNC(pia6821_device::write),m_q133_pia[0].target()));
+ space->install_readwrite_handler(0xfcf8, 0xfcff, read8sm_delegate(FUNC(pia6821_device::read),m_q133_pia[1].target()), write8sm_delegate(FUNC(pia6821_device::write),m_q133_pia[1].target()));
space->install_write_handler(0xfcfc, 0xfcfc, write8_delegate(FUNC(cmi_state::i8214_cpu1_w),this));
space->install_write_handler(0xfcfd, 0xfcfd, write8_delegate(FUNC(cmi_state::i8214_cpu2_w),this));
@@ -2158,43 +2158,44 @@ static void cmi2x_floppies(device_slot_interface &device)
device.option_add("8dssd", FLOPPY_8_DSSD);
}
-MACHINE_CONFIG_START(cmi_state::cmi2x)
- MCFG_DEVICE_ADD("maincpu1", MC6809E, Q209_CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(maincpu1_map)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cmi_state, cpu1_interrupt_callback)
- MCFG_QUANTUM_PERFECT_CPU("maincpu1")
+void cmi_state::cmi2x(machine_config &config)
+{
+ MC6809E(config, m_maincpu1, Q209_CPU_CLOCK);
+ m_maincpu1->set_addrmap(AS_PROGRAM, &cmi_state::maincpu1_map);
+ m_maincpu1->set_irq_acknowledge_callback(FUNC(cmi_state::cpu1_interrupt_callback));
+ config.m_perfect_cpu_quantum = subtag("maincpu1");
- MCFG_DEVICE_ADD("maincpu2", MC6809E, Q209_CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(maincpu2_map)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cmi_state, cpu2_interrupt_callback)
- MCFG_QUANTUM_PERFECT_CPU("maincpu2")
+ MC6809E(config, m_maincpu2, Q209_CPU_CLOCK);
+ m_maincpu2->set_addrmap(AS_PROGRAM, &cmi_state::maincpu2_map);
+ m_maincpu2->set_irq_acknowledge_callback(FUNC(cmi_state::cpu2_interrupt_callback));
+ config.m_perfect_cpu_quantum = subtag("maincpu2");
- MCFG_DEVICE_ADD("muskeys", M6802, 4_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(muskeys_map)
+ M6802(config, m_muskeyscpu, 4_MHz_XTAL);
+ m_muskeyscpu->set_addrmap(AS_PROGRAM, &cmi_state::muskeys_map);
- MCFG_DEVICE_ADD("alphakeys", M6802, 3.84_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(alphakeys_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(cmi_state, irq0_line_hold, 3.84_MHz_XTAL / 400) // TODO: PIA controls this
+ M6802(config, m_alphakeyscpu, 3.84_MHz_XTAL);
+ m_alphakeyscpu->set_addrmap(AS_PROGRAM, &cmi_state::alphakeys_map);
+ m_alphakeyscpu->set_periodic_int(FUNC(cmi_state::irq0_line_hold), attotime::from_hz(3.84_MHz_XTAL / 400)); // TODO: PIA controls this
- MCFG_DEVICE_ADD("smptemidi", M68000, 20_MHz_XTAL / 2)
- MCFG_DEVICE_PROGRAM_MAP(midicpu_map)
+ M68000(config, m_midicpu, 20_MHz_XTAL / 2);
+ m_midicpu->set_addrmap(AS_PROGRAM, &cmi_state::midicpu_map);
- MCFG_DEVICE_ADD("cmi07cpu", MC6809E, Q209_CPU_CLOCK) // ?
- MCFG_DEVICE_PROGRAM_MAP(cmi07cpu_map)
+ MC6809E(config, m_cmi07cpu, Q209_CPU_CLOCK); // ?
+ m_cmi07cpu->set_addrmap(AS_PROGRAM, &cmi_state::cmi07cpu_map);
/* alpha-numeric display */
- MCFG_DEVICE_ADD("dp1", DL1416T, u32(0))
- MCFG_DL1416_UPDATE_HANDLER(WRITE16(*this, cmi_state, cmi_iix_update_dp<0>))
- MCFG_DEVICE_ADD("dp2", DL1416T, u32(0))
- MCFG_DL1416_UPDATE_HANDLER(WRITE16(*this, cmi_state, cmi_iix_update_dp<1>))
- MCFG_DEVICE_ADD("dp3", DL1416T, u32(0))
- MCFG_DL1416_UPDATE_HANDLER(WRITE16(*this, cmi_state, cmi_iix_update_dp<2>))
+ DL1416T(config, m_dp1, u32(0));
+ m_dp1->update().set(FUNC(cmi_state::cmi_iix_update_dp<0>));
+ DL1416T(config, m_dp2, u32(0));
+ m_dp2->update().set(FUNC(cmi_state::cmi_iix_update_dp<1>));
+ DL1416T(config, m_dp3, u32(0));
+ m_dp3->update().set(FUNC(cmi_state::cmi_iix_update_dp<2>));
/* video hardware */
- MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green())
- MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBLANK_END, HBLANK_START, VTOTAL, VBLANK_END, VBLANK_START)
- MCFG_SCREEN_UPDATE_DRIVER(cmi_state, screen_update_cmi2x)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cmi_state, cmi_iix_vblank))
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER, rgb_t::green());
+ m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBLANK_END, HBLANK_START, VTOTAL, VBLANK_END, VBLANK_START);
+ m_screen->set_screen_update(FUNC(cmi_state::screen_update_cmi2x));
+ m_screen->screen_vblank().set(FUNC(cmi_state::cmi_iix_vblank));
PALETTE(config, m_palette, palette_device::MONOCHROME);
@@ -2238,8 +2239,8 @@ MACHINE_CONFIG_START(cmi_state::cmi2x)
m_cmi02_ptm->o2_callback().set(FUNC(cmi_state::cmi02_ptm_o2));
m_cmi02_ptm->irq_callback().set(FUNC(cmi_state::cmi02_ptm_irq));
- MCFG_DEVICE_ADD("mkbd_acia_clock", CLOCK, 1.8432_MHz_XTAL / 12)
- MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, cmi_state, mkbd_acia_clock))
+ clock_device &mkbd_acia_clock(CLOCK(config, "mkbd_acia_clock", 1.8432_MHz_XTAL / 12));
+ mkbd_acia_clock.signal_handler().set(FUNC(cmi_state::mkbd_acia_clock));
for (auto &acia : m_q133_acia)
MOS6551(config, acia, 1.8432_MHz_XTAL).set_xtal(1.8432_MHz_XTAL);
@@ -2265,8 +2266,7 @@ MACHINE_CONFIG_START(cmi_state::cmi2x)
m_acia_mkbd_kbd->rts_handler().set("ank_pia", FUNC(pia6821_device::ca2_w));
m_acia_mkbd_kbd->irq_handler().set(FUNC(cmi_state::mkbd_kbd_acia_int));
- MCFG_INPUT_MERGER_ANY_HIGH("irqs")
- MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("alphakeys", M6802_IRQ_LINE))
+ INPUT_MERGER_ANY_HIGH(config, "irqs").output_handler().set_inputline(m_alphakeyscpu, M6802_IRQ_LINE);
m_ank_pia->readpa_handler().set(FUNC(cmi_state::ank_col_r));
m_ank_pia->readcb1_handler().set(FUNC(cmi_state::ank_rts_r));
@@ -2275,8 +2275,8 @@ MACHINE_CONFIG_START(cmi_state::cmi2x)
m_ank_pia->irqa_handler().set("irqs", FUNC(input_merger_device::in_w<0>));
m_ank_pia->irqb_handler().set("irqs", FUNC(input_merger_device::in_w<1>));
- MCFG_DEVICE_ADD("ank_pia_clock", CLOCK, 9600)
- MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE("ank_pia", pia6821_device, ca1_w))
+ clock_device &ank_pia_clock(CLOCK(config, "ank_pia_clock", 9600));
+ ank_pia_clock.signal_handler().set(m_ank_pia, FUNC(pia6821_device::ca1_w));
PTM6840(config, m_cmi07_ptm, 2000000); // ptm_cmi07_config TODO
m_cmi07_ptm->irq_callback().set(FUNC(cmi_state::cmi07_irq));
@@ -2284,8 +2284,8 @@ MACHINE_CONFIG_START(cmi_state::cmi2x)
FD1791(config, m_wd1791, 16_MHz_XTAL / 8); // wd1791_interface
m_wd1791->intrq_wr_callback().set(FUNC(cmi_state::wd1791_irq));
m_wd1791->drq_wr_callback().set(FUNC(cmi_state::wd1791_drq));
- MCFG_FLOPPY_DRIVE_ADD("wd1791:0", cmi2x_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("wd1791:1", cmi2x_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
+ FLOPPY_CONNECTOR(config, "wd1791:0", cmi2x_floppies, "8dsdd", floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, "wd1791:1", cmi2x_floppies, "8dsdd", floppy_image_device::default_floppy_formats);
/* Musical keyboard */
PIA6821(config, m_cmi10_pia_u20, 0);
@@ -2325,7 +2325,7 @@ MACHINE_CONFIG_START(cmi_state::cmi2x)
cmi01a_device &cmi01a_7(CMI01A_CHANNEL_CARD(config, "cmi01a_7", 0));
cmi01a_7.add_route(ALL_OUTPUTS, "mono", 0.25);
cmi01a_7.irq_callback().set(FUNC(cmi_state::channel_irq<0>));
-MACHINE_CONFIG_END
+}
ROM_START( cmi2x )
/* Q133 Processor control card */