diff options
author | 2018-05-06 00:40:40 +1000 | |
---|---|---|
committer | 2018-05-06 00:51:27 +1000 | |
commit | 4ea3cd0bc1f54e47a0d38a47afac38101549e9ee (patch) | |
tree | bbadc20010b6bad48cf321b1c864655587e4b8ad /src/mame/drivers/at.cpp | |
parent | bba5127d7a73ca44fdc0dcab7286846c81206771 (diff) |
Streamline machine configuration macros - everyone's a device edition.
Start replacing special device macros with additional constructors,
starting with ISA, INTELLEC 4 and RS-232 buses.
Allow an object finder to take on the target of another object finder.
(For a combination of the previous two things in action, see either the
INTELLEC 4 driver, or the Apple 2 PC Exporter card. Also check out
looping over a device finder array to instantiate devices in some
places. Lots of things no longer need to pass tags around.)
Start supplying default clocks for things that have a standard clock or
have all clocks internal.
Eliminate the separate DEV versions of the DEVCB_ macros. Previously,
the plain versions were a shortcut for DEVICE_SELF as the target. You
can now supply a string tag (relative to current device being
configured), an object finder (takes on the base and relative tag), or
a reference to a device/interface (only do this if you know the device
won't be replaced out from under it, but that's a safe assumption for
your subdevices). In almost all cases, you can get the effect you want
by supplying *this as the target.
Eliminate sound and CPU versions of macros. They serve no useful
purpose, provide no extra checks, make error messages longer, add
indirection, and mislead newbies into thinking there's a difference.
Remove a lot of now-unnecessary ":" prefixes binding things relative to
machine root.
Clean up some miscellaneous rot.
Examples of new functionality in use in (some more subtle than others):
* src/mame/drivers/intellec4.cpp
* src/mame/drivers/tranz330.cpp
* src/mame/drivers/osboren1.cpp
* src/mame/drivers/zorba.cpp
* src/mame/devices/smioc.cpp
* src/devices/bus/a2bus/pc_xporter.cpp
* src/devices/bus/isa/isa.h
* src/devices/bus/isa/isa.h
* src/devices/bus/intellec4/intellec4.h
Diffstat (limited to 'src/mame/drivers/at.cpp')
-rw-r--r-- | src/mame/drivers/at.cpp | 304 |
1 files changed, 153 insertions, 151 deletions
diff --git a/src/mame/drivers/at.cpp b/src/mame/drivers/at.cpp index ff7042251be..5d6e129f665 100644 --- a/src/mame/drivers/at.cpp +++ b/src/mame/drivers/at.cpp @@ -423,20 +423,21 @@ static void pci_devices(device_slot_interface &device) MACHINE_CONFIG_START(at_state::ibm5170) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", I80286, XTAL(12'000'000)/2 /*6000000*/) - MCFG_CPU_PROGRAM_MAP(at16_map) - MCFG_CPU_IO_MAP(at16_io) - MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb) - MCFG_80286_SHUTDOWN(DEVWRITELINE("mb", at_mb_device, shutdown)) + MCFG_DEVICE_ADD("maincpu", I80286, XTAL(12'000'000)/2 /*6000000*/) + MCFG_DEVICE_PROGRAM_MAP(at16_map) + MCFG_DEVICE_IO_MAP(at16_io) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb) + MCFG_80286_SHUTDOWN(WRITELINE("mb", at_mb_device, shutdown)) MCFG_DEVICE_ADD("mb", AT_MB, 0) MCFG_QUANTUM_TIME(attotime::from_hz(60)) downcast<at_mb_device *>(device)->at_softlists(config); - MCFG_ISA16_SLOT_ADD("mb:isabus","isa1", pc_isa16_cards, "ega", false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa2", pc_isa16_cards, "fdc", false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa3", pc_isa16_cards, "comat", false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa4", pc_isa16_cards, "ide", false) + // FIXME: determine ISA bus clock + MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "ega", false) + MCFG_DEVICE_ADD("isa2", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "fdc", false) + MCFG_DEVICE_ADD("isa3", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "comat", false) + MCFG_DEVICE_ADD("isa4", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "ide", false) MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_IBM_PC_AT_84) /* internal ram */ @@ -447,14 +448,14 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::ibm5170a) ibm5170(config); - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_CLOCK(XTAL(16'000'000)/2) + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_CLOCK(XTAL(16'000'000)/2) MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::ews286) ibm5170(config); - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_CLOCK(XTAL(16'000'000)/2) // Exact crystal needs to be verified, 8 MHz according to specification + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_CLOCK(XTAL(16'000'000)/2) // Exact crystal needs to be verified, 8 MHz according to specification MCFG_DEVICE_MODIFY("isa2") MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc", cfg_single_1200K) // From pictures but also with a 3.5" as second floppy @@ -467,14 +468,14 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::ec1842) ibm5170(config); - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_CLOCK(12000000) + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_CLOCK(12000000) MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::ibm5162) ibm5170(config); - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_CLOCK(6000000) + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_CLOCK(6000000) MCFG_DEVICE_MODIFY("isa1") MCFG_DEVICE_SLOT_INTERFACE(pc_isa16_cards, "cga", false) MACHINE_CONFIG_END @@ -482,10 +483,10 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::ibmps1) ibm5170(config); MCFG_MACHINE_START_OVERRIDE(at_state, vrom_fix) - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_CLOCK(XTAL(10'000'000)) - MCFG_CPU_PROGRAM_MAP(at16l_map) - MCFG_CPU_IO_MAP(ps1_16_io) + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_CLOCK(XTAL(10'000'000)) + MCFG_DEVICE_PROGRAM_MAP(at16l_map) + MCFG_DEVICE_IO_MAP(ps1_16_io) MCFG_DEVICE_MODIFY("isa1") MCFG_DEVICE_SLOT_INTERFACE(pc_isa16_cards, "vga", true) MCFG_DEVICE_MODIFY("kbd") @@ -494,64 +495,64 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::atvga) ibm5170(config); - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_CLOCK(12000000) + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_CLOCK(12000000) MCFG_DEVICE_MODIFY("isa1") MCFG_DEVICE_SLOT_INTERFACE(pc_isa16_cards, "svga_et4k", false) MCFG_DEVICE_MODIFY("kbd") MCFG_DEVICE_SLOT_INTERFACE(pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL, false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa5", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa5", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) // FIXME: determine ISA bus clock MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::neat) atvga(config); - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_IO_MAP(neat_io) + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_IO_MAP(neat_io) MCFG_DEVICE_REMOVE("mb:rtc") // TODO: move this into the cs8221 MCFG_DS12885_ADD("mb:rtc") - MCFG_MC146818_IRQ_HANDLER(DEVWRITELINE("mb:pic8259_slave", pic8259_device, ir0_w)) // this is in :mb + MCFG_MC146818_IRQ_HANDLER(WRITELINE("mb:pic8259_slave", pic8259_device, ir0_w)) // this is in :mb MCFG_MC146818_CENTURY_INDEX(0x32) MCFG_CS8221_ADD("cs8221", "maincpu", "mb:isa", "bios") MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::xb42639) atvga(config); - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_CLOCK(12500000) + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_CLOCK(12500000) MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::k286i) ibm5162(config); MCFG_DEVICE_MODIFY("kbd") MCFG_DEVICE_SLOT_INTERFACE(pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL, false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa5", pc_isa16_cards, nullptr, false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa6", pc_isa16_cards, nullptr, false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa7", pc_isa16_cards, nullptr, false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa8", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa5", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) // FIXME: determine ISA bus clock + MCFG_DEVICE_ADD("isa6", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa7", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa8", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::at386) - MCFG_CPU_ADD("maincpu", I386, 12000000) - MCFG_CPU_PROGRAM_MAP(at32_map) - MCFG_CPU_IO_MAP(at32_io) - MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb) + MCFG_DEVICE_ADD("maincpu", I386, 12000000) + MCFG_DEVICE_PROGRAM_MAP(at32_map) + MCFG_DEVICE_IO_MAP(at32_io) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb) MCFG_DEVICE_ADD("mb", AT_MB, 0) MCFG_QUANTUM_TIME(attotime::from_hz(60)) downcast<at_mb_device *>(device)->at_softlists(config); MCFG_NVRAM_ADD_0FILL("nvram") - // on board devices - MCFG_ISA16_SLOT_ADD("mb:isabus","board1", pc_isa16_cards, "fdcsmc", true) - MCFG_ISA16_SLOT_ADD("mb:isabus","board2", pc_isa16_cards, "comat", true) - MCFG_ISA16_SLOT_ADD("mb:isabus","board3", pc_isa16_cards, "ide", true) - MCFG_ISA16_SLOT_ADD("mb:isabus","board4", pc_isa16_cards, "lpt", true) + // on-board devices + MCFG_DEVICE_ADD("board1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "fdcsmc", true) // FIXME: deteremine ISA bus clock + MCFG_DEVICE_ADD("board2", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "comat", true) + MCFG_DEVICE_ADD("board3", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "ide", true) + MCFG_DEVICE_ADD("board4", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "lpt", true) // ISA cards - MCFG_ISA16_SLOT_ADD("mb:isabus","isa1", pc_isa16_cards, "svga_et4k", false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa2", pc_isa16_cards, nullptr, false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa3", pc_isa16_cards, nullptr, false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa4", pc_isa16_cards, nullptr, false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa5", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "svga_et4k", false) + MCFG_DEVICE_ADD("isa2", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa3", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa4", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa5", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL) /* internal ram */ @@ -562,44 +563,44 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::at386l) at386(config); - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_PROGRAM_MAP(at32l_map) + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(at32l_map) MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::at486) at386(config); - MCFG_CPU_REPLACE("maincpu", I486, 25000000) - MCFG_CPU_PROGRAM_MAP(at32_map) - MCFG_CPU_IO_MAP(at32_io) - MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb) + MCFG_DEVICE_REPLACE("maincpu", I486, 25000000) + MCFG_DEVICE_PROGRAM_MAP(at32_map) + MCFG_DEVICE_IO_MAP(at32_io) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb) MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::at486l) at486(config); - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_PROGRAM_MAP(at32l_map) + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(at32l_map) MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::at386sx) atvga(config); - MCFG_CPU_REPLACE("maincpu", I386SX, 16000000) /* 386SX */ - MCFG_CPU_PROGRAM_MAP(at16_map) - MCFG_CPU_IO_MAP(at16_io) - MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb) + MCFG_DEVICE_REPLACE("maincpu", I386SX, 16000000) /* 386SX */ + MCFG_DEVICE_PROGRAM_MAP(at16_map) + MCFG_DEVICE_IO_MAP(at16_io) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb) MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::ct386sx) at386sx(config); - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_IO_MAP(neat_io) + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_IO_MAP(neat_io) MCFG_CS8221_ADD("cs8221", "maincpu", "mb:isa", "maincpu") MACHINE_CONFIG_END // Commodore PC 30-III MACHINE_CONFIG_START(at_state::pc30iii) ibm5170(config); - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_CLOCK(6000000) // should be XTAL(24'000'000)/2, but doesn't post with that setting + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_CLOCK(6000000) // should be XTAL(24'000'000)/2, but doesn't post with that setting MCFG_DEVICE_MODIFY("isa1") MCFG_DEVICE_SLOT_INTERFACE(pc_isa16_cards, "vga", false) // should be ATI EGA Wonder 800+ MACHINE_CONFIG_END @@ -607,70 +608,70 @@ MACHINE_CONFIG_END // Commodore PC 40-III MACHINE_CONFIG_START(at_state::pc40iii) ibm5170(config); - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_CLOCK(6000000) // should be XTAL(24'000'000)/2, but doesn't post with that setting + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_CLOCK(6000000) // should be XTAL(24'000'000)/2, but doesn't post with that setting MCFG_DEVICE_MODIFY("isa1") MCFG_DEVICE_SLOT_INTERFACE(pc_isa16_cards, "vga", false) // should be onboard Paradise VGA, see ROM declarations MACHINE_CONFIG_END MACHINE_CONFIG_START(megapc_state::megapc) - MCFG_CPU_ADD("maincpu", I386SX, XTAL(50'000'000) / 2) - MCFG_CPU_PROGRAM_MAP(megapc_map) - MCFG_CPU_IO_MAP(megapc_io) - MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("wd7600", wd7600_device, intack_cb) + MCFG_DEVICE_ADD("maincpu", I386SX, XTAL(50'000'000) / 2) + MCFG_DEVICE_PROGRAM_MAP(megapc_map) + MCFG_DEVICE_IO_MAP(megapc_io) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("wd7600", wd7600_device, intack_cb) MCFG_WD7600_ADD("wd7600",XTAL(50'000'000) / 2, ":maincpu", ":isa", ":bios", ":keybc") - MCFG_WD7600_HOLD(WRITELINE(megapc_state, wd7600_hold)); + MCFG_WD7600_HOLD(WRITELINE(*this, megapc_state, wd7600_hold)); MCFG_WD7600_NMI(INPUTLINE("maincpu", INPUT_LINE_NMI)); MCFG_WD7600_INTR(INPUTLINE("maincpu", INPUT_LINE_IRQ0)); MCFG_WD7600_CPURESET(INPUTLINE("maincpu", INPUT_LINE_RESET)); MCFG_WD7600_A20M(INPUTLINE("maincpu", INPUT_LINE_A20)); // isa dma - MCFG_WD7600_IOR(READ16(megapc_state, wd7600_ior)) - MCFG_WD7600_IOW(WRITE16(megapc_state, wd7600_iow)) - MCFG_WD7600_TC(WRITE8(megapc_state, wd7600_tc)) + MCFG_WD7600_IOR(READ16(*this, megapc_state, wd7600_ior)) + MCFG_WD7600_IOW(WRITE16(*this, megapc_state, wd7600_iow)) + MCFG_WD7600_TC(WRITE8(*this, megapc_state, wd7600_tc)) // speaker - MCFG_WD7600_SPKR(WRITELINE(megapc_state, wd7600_spkr)) + MCFG_WD7600_SPKR(WRITELINE(*this, megapc_state, wd7600_spkr)) // on board devices MCFG_DEVICE_ADD("isabus", ISA16, 0) MCFG_ISA16_CPU("maincpu") - MCFG_ISA_BUS_IOCHCK(DEVWRITELINE("wd7600", wd7600_device, iochck_w)) - MCFG_ISA_OUT_IRQ2_CB(DEVWRITELINE("wd7600", wd7600_device, irq09_w)) - MCFG_ISA_OUT_IRQ3_CB(DEVWRITELINE("wd7600", wd7600_device, irq03_w)) - MCFG_ISA_OUT_IRQ4_CB(DEVWRITELINE("wd7600", wd7600_device, irq04_w)) - MCFG_ISA_OUT_IRQ5_CB(DEVWRITELINE("wd7600", wd7600_device, irq05_w)) - MCFG_ISA_OUT_IRQ6_CB(DEVWRITELINE("wd7600", wd7600_device, irq06_w)) - MCFG_ISA_OUT_IRQ7_CB(DEVWRITELINE("wd7600", wd7600_device, irq07_w)) - MCFG_ISA_OUT_IRQ10_CB(DEVWRITELINE("wd7600", wd7600_device, irq10_w)) - MCFG_ISA_OUT_IRQ11_CB(DEVWRITELINE("wd7600", wd7600_device, irq11_w)) - MCFG_ISA_OUT_IRQ12_CB(DEVWRITELINE("wd7600", wd7600_device, irq12_w)) - MCFG_ISA_OUT_IRQ14_CB(DEVWRITELINE("wd7600", wd7600_device, irq14_w)) - MCFG_ISA_OUT_IRQ15_CB(DEVWRITELINE("wd7600", wd7600_device, irq15_w)) - MCFG_ISA_OUT_DRQ0_CB(DEVWRITELINE("wd7600", wd7600_device, dreq0_w)) - MCFG_ISA_OUT_DRQ1_CB(DEVWRITELINE("wd7600", wd7600_device, dreq1_w)) - MCFG_ISA_OUT_DRQ2_CB(DEVWRITELINE("wd7600", wd7600_device, dreq2_w)) - MCFG_ISA_OUT_DRQ3_CB(DEVWRITELINE("wd7600", wd7600_device, dreq3_w)) - MCFG_ISA_OUT_DRQ5_CB(DEVWRITELINE("wd7600", wd7600_device, dreq5_w)) - MCFG_ISA_OUT_DRQ6_CB(DEVWRITELINE("wd7600", wd7600_device, dreq6_w)) - MCFG_ISA_OUT_DRQ7_CB(DEVWRITELINE("wd7600", wd7600_device, dreq7_w)) - MCFG_ISA16_SLOT_ADD("isabus","board1", pc_isa16_cards, "fdcsmc", true) - MCFG_ISA16_SLOT_ADD("isabus","board2", pc_isa16_cards, "comat", true) - MCFG_ISA16_SLOT_ADD("isabus","board3", pc_isa16_cards, "ide", true) - MCFG_ISA16_SLOT_ADD("isabus","board4", pc_isa16_cards, "lpt", true) - MCFG_ISA16_SLOT_ADD("isabus","board5", pc_isa16_cards, "vga", true) + MCFG_ISA_BUS_IOCHCK(WRITELINE("wd7600", wd7600_device, iochck_w)) + MCFG_ISA_OUT_IRQ2_CB(WRITELINE("wd7600", wd7600_device, irq09_w)) + MCFG_ISA_OUT_IRQ3_CB(WRITELINE("wd7600", wd7600_device, irq03_w)) + MCFG_ISA_OUT_IRQ4_CB(WRITELINE("wd7600", wd7600_device, irq04_w)) + MCFG_ISA_OUT_IRQ5_CB(WRITELINE("wd7600", wd7600_device, irq05_w)) + MCFG_ISA_OUT_IRQ6_CB(WRITELINE("wd7600", wd7600_device, irq06_w)) + MCFG_ISA_OUT_IRQ7_CB(WRITELINE("wd7600", wd7600_device, irq07_w)) + MCFG_ISA_OUT_IRQ10_CB(WRITELINE("wd7600", wd7600_device, irq10_w)) + MCFG_ISA_OUT_IRQ11_CB(WRITELINE("wd7600", wd7600_device, irq11_w)) + MCFG_ISA_OUT_IRQ12_CB(WRITELINE("wd7600", wd7600_device, irq12_w)) + MCFG_ISA_OUT_IRQ14_CB(WRITELINE("wd7600", wd7600_device, irq14_w)) + MCFG_ISA_OUT_IRQ15_CB(WRITELINE("wd7600", wd7600_device, irq15_w)) + MCFG_ISA_OUT_DRQ0_CB(WRITELINE("wd7600", wd7600_device, dreq0_w)) + MCFG_ISA_OUT_DRQ1_CB(WRITELINE("wd7600", wd7600_device, dreq1_w)) + MCFG_ISA_OUT_DRQ2_CB(WRITELINE("wd7600", wd7600_device, dreq2_w)) + MCFG_ISA_OUT_DRQ3_CB(WRITELINE("wd7600", wd7600_device, dreq3_w)) + MCFG_ISA_OUT_DRQ5_CB(WRITELINE("wd7600", wd7600_device, dreq5_w)) + MCFG_ISA_OUT_DRQ6_CB(WRITELINE("wd7600", wd7600_device, dreq6_w)) + MCFG_ISA_OUT_DRQ7_CB(WRITELINE("wd7600", wd7600_device, dreq7_w)) + MCFG_DEVICE_ADD("board1",ISA16_SLOT, 0, "isabus", pc_isa16_cards, "fdcsmc", true) // FIXME: determine ISA bus clock + MCFG_DEVICE_ADD("board2",ISA16_SLOT, 0, "isabus", pc_isa16_cards, "comat", true) + MCFG_DEVICE_ADD("board3",ISA16_SLOT, 0, "isabus", pc_isa16_cards, "ide", true) + MCFG_DEVICE_ADD("board4",ISA16_SLOT, 0, "isabus", pc_isa16_cards, "lpt", true) + MCFG_DEVICE_ADD("board5",ISA16_SLOT, 0, "isabus", pc_isa16_cards, "vga", true) // ISA cards - MCFG_ISA16_SLOT_ADD("isabus","isa1", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "isabus", pc_isa16_cards, nullptr, false) MCFG_DEVICE_ADD("keybc", AT_KEYBOARD_CONTROLLER, XTAL(12'000'000)) - MCFG_AT_KEYBOARD_CONTROLLER_SYSTEM_RESET_CB(DEVWRITELINE("wd7600", wd7600_device, kbrst_w)) - MCFG_AT_KEYBOARD_CONTROLLER_GATE_A20_CB(DEVWRITELINE("wd7600", wd7600_device, gatea20_w)) - MCFG_AT_KEYBOARD_CONTROLLER_INPUT_BUFFER_FULL_CB(DEVWRITELINE("wd7600", wd7600_device, irq01_w)) - MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_CLOCK_CB(DEVWRITELINE("pc_kbdc", pc_kbdc_device, clock_write_from_mb)) - MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_DATA_CB(DEVWRITELINE("pc_kbdc", pc_kbdc_device, data_write_from_mb)) + MCFG_AT_KEYBOARD_CONTROLLER_SYSTEM_RESET_CB(WRITELINE("wd7600", wd7600_device, kbrst_w)) + MCFG_AT_KEYBOARD_CONTROLLER_GATE_A20_CB(WRITELINE("wd7600", wd7600_device, gatea20_w)) + MCFG_AT_KEYBOARD_CONTROLLER_INPUT_BUFFER_FULL_CB(WRITELINE("wd7600", wd7600_device, irq01_w)) + MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_CLOCK_CB(WRITELINE("pc_kbdc", pc_kbdc_device, clock_write_from_mb)) + MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_DATA_CB(WRITELINE("pc_kbdc", pc_kbdc_device, data_write_from_mb)) MCFG_DEVICE_ADD("pc_kbdc", PC_KBDC, 0) - MCFG_PC_KBDC_OUT_CLOCK_CB(DEVWRITELINE("keybc", at_keyboard_controller_device, keyboard_clock_w)) - MCFG_PC_KBDC_OUT_DATA_CB(DEVWRITELINE("keybc", at_keyboard_controller_device, keyboard_data_w)) + MCFG_PC_KBDC_OUT_CLOCK_CB(WRITELINE("keybc", at_keyboard_controller_device, keyboard_clock_w)) + MCFG_PC_KBDC_OUT_DATA_CB(WRITELINE("keybc", at_keyboard_controller_device, keyboard_data_w)) MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL) /* internal ram */ @@ -680,7 +681,7 @@ MACHINE_CONFIG_START(megapc_state::megapc) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) + MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) // video hardware @@ -692,17 +693,17 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(megapc_state::megapcpl) megapc(config); - MCFG_CPU_REPLACE("maincpu", I486, 66000000 / 2) - MCFG_CPU_PROGRAM_MAP(megapcpl_map) - MCFG_CPU_IO_MAP(megapcpl_io) - MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("wd7600", wd7600_device, intack_cb) + MCFG_DEVICE_REPLACE("maincpu", I486, 66000000 / 2) + MCFG_DEVICE_PROGRAM_MAP(megapcpl_map) + MCFG_DEVICE_IO_MAP(megapcpl_io) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("wd7600", wd7600_device, intack_cb) MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::megapcpla) - MCFG_CPU_ADD("maincpu", I486, 66000000 / 2) // 486SLC - MCFG_CPU_PROGRAM_MAP(at32l_map) - MCFG_CPU_IO_MAP(at32_io) - MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb) + MCFG_DEVICE_ADD("maincpu", I486, 66000000 / 2) // 486SLC + MCFG_DEVICE_PROGRAM_MAP(at32l_map) + MCFG_DEVICE_IO_MAP(at32_io) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb) MCFG_MACHINE_START_OVERRIDE(at_state, vrom_fix) MCFG_DEVICE_ADD("mb", AT_MB, 0) @@ -711,16 +712,16 @@ MACHINE_CONFIG_START(at_state::megapcpla) MCFG_NVRAM_ADD_0FILL("nvram") // on board devices - MCFG_ISA16_SLOT_ADD("mb:isabus","board1", pc_isa16_cards, "fdcsmc", true) - MCFG_ISA16_SLOT_ADD("mb:isabus","board2", pc_isa16_cards, "comat", true) - MCFG_ISA16_SLOT_ADD("mb:isabus","board3", pc_isa16_cards, "ide", true) - MCFG_ISA16_SLOT_ADD("mb:isabus","board4", pc_isa16_cards, "lpt", true) + MCFG_DEVICE_ADD("board1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "fdcsmc", true) // FIXME: determine ISA bus clock + MCFG_DEVICE_ADD("board2", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "comat", true) + MCFG_DEVICE_ADD("board3", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "ide", true) + MCFG_DEVICE_ADD("board4", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "lpt", true) // ISA cards - MCFG_ISA16_SLOT_ADD("mb:isabus","isa1", pc_isa16_cards, "svga_dm", false) // closest to the CL-GD5420 - MCFG_ISA16_SLOT_ADD("mb:isabus","isa2", pc_isa16_cards, nullptr, false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa3", pc_isa16_cards, nullptr, false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa4", pc_isa16_cards, nullptr, false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa5", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "svga_dm", false) // closest to the CL-GD5420 + MCFG_DEVICE_ADD("isa2", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa3", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa4", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa5", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL) /* internal ram */ @@ -733,10 +734,10 @@ MACHINE_CONFIG_START(at_state::megapcpla) MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::ficpio2) - MCFG_CPU_ADD("maincpu", I486, 25000000) - MCFG_CPU_PROGRAM_MAP(ficpio_map) - MCFG_CPU_IO_MAP(ficpio_io) - MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb) + MCFG_DEVICE_ADD("maincpu", I486, 25000000) + MCFG_DEVICE_PROGRAM_MAP(ficpio_map) + MCFG_DEVICE_IO_MAP(ficpio_io) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb) MCFG_DEVICE_ADD("mb", AT_MB, 0) MCFG_QUANTUM_TIME(attotime::from_hz(60)) @@ -744,7 +745,7 @@ MACHINE_CONFIG_START(at_state::ficpio2) MCFG_DEVICE_REMOVE("mb:rtc") MCFG_DS12885_ADD("mb:rtc") - MCFG_MC146818_IRQ_HANDLER(DEVWRITELINE("mb:pic8259_slave", pic8259_device, ir0_w)) // this is in :mb + MCFG_MC146818_IRQ_HANDLER(WRITELINE("mb:pic8259_slave", pic8259_device, ir0_w)) // this is in :mb MCFG_MC146818_CENTURY_INDEX(0x32) MCFG_RAM_ADD(RAM_TAG) @@ -752,21 +753,21 @@ MACHINE_CONFIG_START(at_state::ficpio2) MCFG_RAM_EXTRA_OPTIONS("1M,2M,8M,16M,32M,64M,128M") // on board devices - MCFG_ISA16_SLOT_ADD("mb:isabus","board1", pc_isa16_cards, "fdcsmc", true) - MCFG_ISA16_SLOT_ADD("mb:isabus","board2", pc_isa16_cards, "comat", true) - MCFG_ISA16_SLOT_ADD("mb:isabus","board3", pc_isa16_cards, "lpt", true) + MCFG_DEVICE_ADD("board1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "fdcsmc", true) // FIXME: determine ISA bus clock + MCFG_DEVICE_ADD("board2", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "comat", true) + MCFG_DEVICE_ADD("board3", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "lpt", true) MCFG_IDE_CONTROLLER_32_ADD("ide", ata_devices, "hdd", nullptr, true) - MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("mb:pic8259_slave", pic8259_device, ir6_w)) + MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE("mb:pic8259_slave", pic8259_device, ir6_w)) MCFG_IDE_CONTROLLER_32_ADD("ide2", ata_devices, "cdrom", nullptr, true) - MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("mb:pic8259_slave", pic8259_device, ir7_w)) + MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE("mb:pic8259_slave", pic8259_device, ir7_w)) MCFG_PCI_BUS_ADD("pcibus", 0) MCFG_PCI_BUS_DEVICE("pcibus:0", pci_devices, "vt82c505", true) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa1", pc_isa16_cards, "svga_et4k", false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa2", pc_isa16_cards, nullptr, false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa3", pc_isa16_cards, nullptr, false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa4", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "svga_et4k", false) + MCFG_DEVICE_ADD("isa2", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa3", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa4", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL) MCFG_VT82C496_ADD("chipset") @@ -777,23 +778,24 @@ MACHINE_CONFIG_END // Compaq Portable III MACHINE_CONFIG_START(at_state::comportiii) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", I80286, 48_MHz_XTAL/4 /*12000000*/) - MCFG_CPU_PROGRAM_MAP(at16_map) - MCFG_CPU_IO_MAP(at16_io) - MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb) - MCFG_80286_SHUTDOWN(DEVWRITELINE("mb", at_mb_device, shutdown)) + MCFG_DEVICE_ADD("maincpu", I80286, 48_MHz_XTAL/4 /*12000000*/) + MCFG_DEVICE_PROGRAM_MAP(at16_map) + MCFG_DEVICE_IO_MAP(at16_io) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb) + MCFG_80286_SHUTDOWN(WRITELINE("mb", at_mb_device, shutdown)) MCFG_DEVICE_ADD("mb", AT_MB, 0) MCFG_QUANTUM_TIME(attotime::from_hz(60)) downcast<at_mb_device *>(device)->at_softlists(config); - MCFG_ISA16_SLOT_ADD("mb:isabus","board1", pc_isa16_cards, "fdc", true) + // FIXME: determine ISA bus clock + MCFG_DEVICE_ADD("board1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "fdc", true) MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc", cfg_single_1200K) - MCFG_ISA16_SLOT_ADD("mb:isabus","board2", pc_isa16_cards, "comat", true) - MCFG_ISA16_SLOT_ADD("mb:isabus","board3", pc_isa16_cards, "hdc", true) - MCFG_ISA16_SLOT_ADD("mb:isabus","board4", pc_isa16_cards, "cga_cportiii", true) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa1", pc_isa16_cards, nullptr, false) - MCFG_ISA16_SLOT_ADD("mb:isabus","isa2", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("board2", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "comat", true) + MCFG_DEVICE_ADD("board3", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "hdc", true) + MCFG_DEVICE_ADD("board4", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "cga_cportiii", true) + MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) + MCFG_DEVICE_ADD("isa2", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_IBM_PC_AT_84) @@ -805,8 +807,8 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(at_state::comportii) ibm5170(config); - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_CLOCK(48_MHz_XTAL/6) + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_CLOCK(48_MHz_XTAL/6) MCFG_DEVICE_MODIFY("isa2") MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc", cfg_single_360K) MCFG_DEVICE_MODIFY("isa4") |