diff options
Diffstat (limited to 'src/mame/drivers/myb3k.cpp')
-rw-r--r-- | src/mame/drivers/myb3k.cpp | 67 |
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 ¢_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 ) |