summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/myb3k.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/myb3k.cpp')
-rw-r--r--src/mame/drivers/myb3k.cpp67
1 files changed, 36 insertions, 31 deletions
diff --git a/src/mame/drivers/myb3k.cpp b/src/mame/drivers/myb3k.cpp
index 8581c56f6d5..b3639487930 100644
--- a/src/mame/drivers/myb3k.cpp
+++ b/src/mame/drivers/myb3k.cpp
@@ -930,7 +930,8 @@ static void stepone_isa_cards(device_slot_interface &device)
device.option_add("myb3k_fdc4711", ISA8_MYB3K_FDC4711);
}
-MACHINE_CONFIG_START(myb3k_state::myb3k)
+void myb3k_state::myb3k(machine_config &config)
+{
/* basic machine hardware */
I8088(config, m_maincpu, XTAL(14'318'181) / 3); /* 14.3182 main crystal divided by three through a 8284A */
m_maincpu->set_addrmap(AS_PROGRAM, &myb3k_state::myb3k_map);
@@ -941,7 +942,7 @@ MACHINE_CONFIG_START(myb3k_state::myb3k)
RAM(config, RAM_TAG).set_default_size("256K").set_extra_options("128K, 256K");
/* Interrupt controller */
- PIC8259(config, m_pic8259, 0);
+ PIC8259(config, m_pic8259);
m_pic8259->out_int_callback().set(FUNC(myb3k_state::pic_int_w));
/* Parallel port */
@@ -970,7 +971,7 @@ MACHINE_CONFIG_START(myb3k_state::myb3k)
m_dma8257->out_dack_cb<3>().set(FUNC(myb3k_state::dack3_w));
/* Timer */
- PIT8253(config, m_pit8253, 0);
+ PIT8253(config, m_pit8253);
m_pit8253->set_clk<0>(XTAL(14'318'181) / 12.0); /* TIMINT straight into IRQ0 */
m_pit8253->out_handler<0>().set(m_pic8259, FUNC(pic8259_device::ir0_w));
m_pit8253->set_clk<1>(XTAL(14'318'181) / 12.0); /* speaker if port c bit 5 is low */
@@ -987,7 +988,8 @@ MACHINE_CONFIG_START(myb3k_state::myb3k)
/* ISA8+ Expansion bus */
ISA8(config, m_isabus, 0);
- m_isabus->set_cputag("maincpu");
+ m_isabus->set_memspace("maincpu", AS_PROGRAM);
+ m_isabus->set_iospace("maincpu", AS_IO);
m_isabus->irq2_callback().set(m_pic8259, FUNC(pic8259_device::ir2_w));
m_isabus->irq3_callback().set(m_pic8259, FUNC(pic8259_device::ir3_w));
m_isabus->irq4_callback().set(m_pic8259, FUNC(pic8259_device::ir4_w));
@@ -999,50 +1001,53 @@ MACHINE_CONFIG_START(myb3k_state::myb3k)
m_isabus->drq2_callback().set("dma", FUNC(i8257_device::dreq2_w));
m_isabus->drq3_callback().set("dma", FUNC(i8257_device::dreq3_w));
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", stepone_isa_cards, "myb3k_fdc4711", false) // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "isa", stepone_isa_cards, "myb3k_com", false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "isa", stepone_isa_cards, nullptr, false)
+ ISA8_SLOT(config, "isa1", 0, m_isabus, stepone_isa_cards, "myb3k_fdc4711", false); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa2", 0, m_isabus, stepone_isa_cards, "myb3k_com", false);
+ ISA8_SLOT(config, "isa3", 0, m_isabus, stepone_isa_cards, nullptr, false);
/* Centronics */
- MCFG_DEVICE_ADD (m_centronics, CENTRONICS, centronics_devices, "printer")
- MCFG_CENTRONICS_ACK_HANDLER (WRITELINE (*this, myb3k_state, centronics_ack_w))
- MCFG_CENTRONICS_BUSY_HANDLER (WRITELINE (*this, myb3k_state, centronics_busy_w))
- MCFG_CENTRONICS_PERROR_HANDLER (WRITELINE (*this, myb3k_state, centronics_perror_w))
- MCFG_CENTRONICS_SELECT_HANDLER (WRITELINE (*this, myb3k_state, centronics_select_w))
- MCFG_CENTRONICS_OUTPUT_LATCH_ADD ("cent_data_out", "centronics")
+
+ CENTRONICS(config, m_centronics, centronics_devices, "printer");
+ m_centronics->ack_handler().set(FUNC(myb3k_state::centronics_ack_w));
+ m_centronics->busy_handler().set(FUNC(myb3k_state::centronics_busy_w));
+ m_centronics->perror_handler().set(FUNC(myb3k_state::centronics_perror_w));
+ m_centronics->select_handler().set(FUNC(myb3k_state::centronics_select_w));
+
+ output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
+ m_centronics->set_output_latch(cent_data_out);
/* Sound */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.00);
/* Keyboard */
- MCFG_DEVICE_ADD("myb3k_keyboard", MYB3K_KEYBOARD, 0)
- MCFG_MYB3K_KEYBOARD_CB(PUT(myb3k_state, kbd_set_data_and_interrupt))
+ MYB3K_KEYBOARD(config, m_kb, 0);
+ m_kb->set_keyboard_callback(FUNC(myb3k_state::kbd_set_data_and_interrupt));
/* Monitor */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(14'318'181) / 3, 600, 0, 600, 400, 0, 400)
- MCFG_SCREEN_UPDATE_DEVICE("crtc", h46505_device, screen_update)
-MACHINE_CONFIG_END
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(XTAL(14'318'181) / 3, 600, 0, 600, 400, 0, 400);
+ m_screen->set_screen_update("crtc", FUNC(h46505_device::screen_update));
+}
-MACHINE_CONFIG_START(myb3k_state::jb3000)
+void myb3k_state::jb3000(machine_config &config)
+{
myb3k(config);
/* Keyboard */
- MCFG_DEVICE_REPLACE("myb3k_keyboard", JB3000_KEYBOARD, 0)
- MCFG_MYB3K_KEYBOARD_CB(PUT(myb3k_state, kbd_set_data_and_interrupt))
-
-MACHINE_CONFIG_END
+ JB3000_KEYBOARD(config.replace(), m_kb, 0);
+ m_kb->set_keyboard_callback(FUNC(myb3k_state::kbd_set_data_and_interrupt));
+}
-MACHINE_CONFIG_START(myb3k_state::stepone)
+void myb3k_state::stepone(machine_config &config)
+{
myb3k(config);
/* Keyboard */
- MCFG_DEVICE_REPLACE("myb3k_keyboard", STEPONE_KEYBOARD, 0)
- MCFG_MYB3K_KEYBOARD_CB(PUT(myb3k_state, kbd_set_data_and_interrupt))
+ STEPONE_KEYBOARD(config.replace(), m_kb, 0);
+ m_kb->set_keyboard_callback(FUNC(myb3k_state::kbd_set_data_and_interrupt));
/* software lists */
- MCFG_SOFTWARE_LIST_ADD("stepone_flop_list", "stepone_flop")
-MACHINE_CONFIG_END
+ SOFTWARE_LIST(config, "stepone_flop_list").set_original("stepone_flop");
+}
/* ROM definitions, ROM area is 8 x 8Kb and can be populated with 2732 mask ROMs or 2764s */
ROM_START( myb3k )