summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2018-05-04 03:01:32 +1000
committer Vas Crabb <vas@vastheman.com>2018-05-04 03:01:32 +1000
commit32a73f450da82c345b0f694bee311af34a5e717d (patch)
treede6259ee4c0120e992f348afcc9078e16bbe49d4 /src
parentaa96f47092f764f089c2ce9e0f26d756197150e8 (diff)
Make MCFG_DEVICE_ADD and callable device types more flexible:
* Allows defaulted clocks (see subtle example with vboy) * Allows additional constructors (see RS232 port in tranz330) * Allows use of device finder in place of tag in MCFG_DEVICE_ADD * Requires out-of-line destructor for devices using incomplete types * Requires XTAL or explicit u32 for clocks for devices with private types Devices must still define the standard constructor. When writing additional constructors, be aware that the constructor runs before device_add_mconfig in the context of the existing device, not the new device. See osborne1, zorba, tranz330, and vboy for examples of this in use. Compilation is a bit slower, but this is temporary while refactoring is in progress. Eliminated the need for MCFG_SOUND_ROUTE_EX. Removed macros from slot option configuration - they just obfuscated code and slowed it down with needless dynamic casts, but didn't actually simplify it.
Diffstat (limited to 'src')
-rw-r--r--src/devices/bus/a2bus/a2diskiing.cpp7
-rw-r--r--src/devices/bus/a2bus/a2dx1.cpp4
-rw-r--r--src/devices/bus/a2bus/a2hsscsi.cpp13
-rw-r--r--src/devices/bus/a2bus/a2sam.cpp2
-rw-r--r--src/devices/bus/a2bus/a2scsi.cpp13
-rw-r--r--src/devices/bus/a2bus/corvfdc01.cpp7
-rw-r--r--src/devices/bus/a2bus/corvfdc02.cpp7
-rw-r--r--src/devices/bus/a7800/a78_carts.h45
-rw-r--r--src/devices/bus/a800/a800_carts.h76
-rw-r--r--src/devices/bus/a800/a8sio.cpp7
-rw-r--r--src/devices/bus/a800/a8sio.h2
-rw-r--r--src/devices/bus/abcbus/abc890.cpp6
-rw-r--r--src/devices/bus/abcbus/abcbus.cpp75
-rw-r--r--src/devices/bus/abcbus/abcbus.h6
-rw-r--r--src/devices/bus/abcbus/fd2.cpp7
-rw-r--r--src/devices/bus/abcbus/lux10828.cpp15
-rw-r--r--src/devices/bus/abcbus/lux21046.cpp17
-rw-r--r--src/devices/bus/abckb/abckb.cpp13
-rw-r--r--src/devices/bus/abckb/abckb.h2
-rw-r--r--src/devices/bus/adam/exp.cpp21
-rw-r--r--src/devices/bus/adam/exp.h6
-rw-r--r--src/devices/bus/adamnet/adamnet.cpp15
-rw-r--r--src/devices/bus/adamnet/adamnet.h4
-rw-r--r--src/devices/bus/adamnet/fdc.cpp7
-rw-r--r--src/devices/bus/amiga/keyboard/keyboard.cpp27
-rw-r--r--src/devices/bus/amiga/keyboard/keyboard.h2
-rw-r--r--src/devices/bus/amiga/zorro/cards.cpp63
-rw-r--r--src/devices/bus/amiga/zorro/cards.h10
-rw-r--r--src/devices/bus/apricot/expansion/cards.cpp11
-rw-r--r--src/devices/bus/apricot/expansion/cards.h2
-rw-r--r--src/devices/bus/apricot/keyboard/keyboard.cpp7
-rw-r--r--src/devices/bus/apricot/keyboard/keyboard.h2
-rw-r--r--src/devices/bus/bbc/1mhzbus/1mhzbus.cpp31
-rw-r--r--src/devices/bus/bbc/1mhzbus/1mhzbus.h2
-rw-r--r--src/devices/bus/bbc/1mhzbus/opus3.cpp7
-rw-r--r--src/devices/bus/bbc/analogue/analogue.cpp13
-rw-r--r--src/devices/bus/bbc/analogue/analogue.h2
-rw-r--r--src/devices/bus/bbc/fdc/acorn.cpp15
-rw-r--r--src/devices/bus/bbc/fdc/cumana.cpp15
-rw-r--r--src/devices/bus/bbc/fdc/cv1797.cpp15
-rw-r--r--src/devices/bus/bbc/fdc/fdc.cpp37
-rw-r--r--src/devices/bus/bbc/fdc/fdc.h2
-rw-r--r--src/devices/bus/bbc/fdc/opus.cpp15
-rw-r--r--src/devices/bus/bbc/fdc/watford.cpp15
-rw-r--r--src/devices/bus/bbc/joyport/joyport.cpp9
-rw-r--r--src/devices/bus/bbc/joyport/joyport.h2
-rw-r--r--src/devices/bus/bbc/tube/tube.cpp44
-rw-r--r--src/devices/bus/bbc/tube/tube.h6
-rw-r--r--src/devices/bus/bbc/userport/userport.cpp15
-rw-r--r--src/devices/bus/bbc/userport/userport.h2
-rw-r--r--src/devices/bus/bml3/bml3mp1802.cpp7
-rw-r--r--src/devices/bus/bw2/exp.cpp7
-rw-r--r--src/devices/bus/bw2/exp.h3
-rw-r--r--src/devices/bus/c64/exp.cpp141
-rw-r--r--src/devices/bus/c64/exp.h4
-rw-r--r--src/devices/bus/c64/user.cpp19
-rw-r--r--src/devices/bus/c64/user.h2
-rw-r--r--src/devices/bus/cbm2/exp.cpp13
-rw-r--r--src/devices/bus/cbm2/exp.h3
-rw-r--r--src/devices/bus/cbm2/user.cpp5
-rw-r--r--src/devices/bus/cbm2/user.h3
-rw-r--r--src/devices/bus/cbmiec/c1541.cpp7
-rw-r--r--src/devices/bus/cbmiec/c1571.cpp14
-rw-r--r--src/devices/bus/cbmiec/c1581.cpp7
-rw-r--r--src/devices/bus/cbmiec/cbmiec.cpp55
-rw-r--r--src/devices/bus/cbmiec/cbmiec.h3
-rw-r--r--src/devices/bus/cbmiec/fd2000.cpp14
-rw-r--r--src/devices/bus/cbus/pc9801_86.cpp4
-rw-r--r--src/devices/bus/centronics/covox.cpp6
-rw-r--r--src/devices/bus/centronics/ctronics.cpp23
-rw-r--r--src/devices/bus/centronics/ctronics.h2
-rw-r--r--src/devices/bus/centronics/digiblst.cpp2
-rw-r--r--src/devices/bus/centronics/epson_lx810l.cpp2
-rw-r--r--src/devices/bus/cgenie/expansion/carts.cpp7
-rw-r--r--src/devices/bus/cgenie/expansion/carts.h2
-rw-r--r--src/devices/bus/cgenie/expansion/floppy.cpp17
-rw-r--r--src/devices/bus/cgenie/parallel/carts.cpp9
-rw-r--r--src/devices/bus/cgenie/parallel/carts.h2
-rw-r--r--src/devices/bus/coco/coco_fdc.cpp7
-rw-r--r--src/devices/bus/coco/coco_multi.cpp44
-rw-r--r--src/devices/bus/coco/coco_orch90.cpp4
-rw-r--r--src/devices/bus/coco/dragon_fdc.cpp23
-rw-r--r--src/devices/bus/coleco/ctrl.cpp9
-rw-r--r--src/devices/bus/coleco/ctrl.h2
-rw-r--r--src/devices/bus/coleco/exp.cpp9
-rw-r--r--src/devices/bus/coleco/exp.h2
-rw-r--r--src/devices/bus/compis/graphics.cpp9
-rw-r--r--src/devices/bus/compis/graphics.h2
-rw-r--r--src/devices/bus/compucolor/floppy.cpp14
-rw-r--r--src/devices/bus/compucolor/floppy.h2
-rw-r--r--src/devices/bus/comx35/exp.cpp21
-rw-r--r--src/devices/bus/comx35/exp.h2
-rw-r--r--src/devices/bus/comx35/fdc.cpp9
-rw-r--r--src/devices/bus/cpc/amdrum.cpp2
-rw-r--r--src/devices/bus/cpc/cpc_rom.cpp2
-rw-r--r--src/devices/bus/cpc/cpc_rs232.cpp2
-rw-r--r--src/devices/bus/cpc/cpc_ssa1.cpp2
-rw-r--r--src/devices/bus/cpc/ddi1.cpp9
-rw-r--r--src/devices/bus/cpc/magicsound.cpp2
-rw-r--r--src/devices/bus/cpc/mface2.cpp2
-rw-r--r--src/devices/bus/cpc/playcity.cpp2
-rw-r--r--src/devices/bus/ecbbus/ecbbus.cpp17
-rw-r--r--src/devices/bus/ecbbus/ecbbus.h2
-rw-r--r--src/devices/bus/econet/e01.cpp7
-rw-r--r--src/devices/bus/econet/econet.cpp9
-rw-r--r--src/devices/bus/econet/econet.h4
-rw-r--r--src/devices/bus/einstein/pipe/pipe.cpp11
-rw-r--r--src/devices/bus/einstein/pipe/pipe.h2
-rw-r--r--src/devices/bus/einstein/userport/userport.cpp9
-rw-r--r--src/devices/bus/einstein/userport/userport.h2
-rw-r--r--src/devices/bus/electron/cart/ap34.cpp9
-rw-r--r--src/devices/bus/electron/cart/cumana.cpp9
-rw-r--r--src/devices/bus/electron/cart/peg400.cpp9
-rw-r--r--src/devices/bus/electron/cart/slot.cpp29
-rw-r--r--src/devices/bus/electron/cart/slot.h2
-rw-r--r--src/devices/bus/electron/cart/stlefs.cpp9
-rw-r--r--src/devices/bus/electron/exp.cpp25
-rw-r--r--src/devices/bus/electron/exp.h2
-rw-r--r--src/devices/bus/electron/plus3.cpp9
-rw-r--r--src/devices/bus/ep64/exdos.cpp7
-rw-r--r--src/devices/bus/ep64/exp.cpp7
-rw-r--r--src/devices/bus/ep64/exp.h2
-rw-r--r--src/devices/bus/epson_sio/epson_sio.cpp9
-rw-r--r--src/devices/bus/epson_sio/epson_sio.h2
-rw-r--r--src/devices/bus/epson_sio/pf10.cpp7
-rw-r--r--src/devices/bus/epson_sio/tf20.cpp7
-rw-r--r--src/devices/bus/gamate/rom.cpp11
-rw-r--r--src/devices/bus/gamate/slot.h2
-rw-r--r--src/devices/bus/gamegear/ggext.cpp7
-rw-r--r--src/devices/bus/gamegear/ggext.h2
-rw-r--r--src/devices/bus/generic/carts.cpp25
-rw-r--r--src/devices/bus/generic/carts.h6
-rw-r--r--src/devices/bus/hexbus/hexbus.cpp7
-rw-r--r--src/devices/bus/hexbus/hexbus.h2
-rw-r--r--src/devices/bus/hexbus/hx5102.cpp7
-rw-r--r--src/devices/bus/hp80_io/hp80_io.cpp7
-rw-r--r--src/devices/bus/hp80_io/hp80_io.h2
-rw-r--r--src/devices/bus/hp80_optroms/hp80_optrom.cpp7
-rw-r--r--src/devices/bus/hp80_optroms/hp80_optrom.h2
-rw-r--r--src/devices/bus/hp9845_io/hp9845_io.cpp9
-rw-r--r--src/devices/bus/hp9845_io/hp9845_io.h2
-rw-r--r--src/devices/bus/hp_hil/hil_devices.cpp7
-rw-r--r--src/devices/bus/hp_hil/hil_devices.h2
-rw-r--r--src/devices/bus/hp_optroms/hp_optrom.cpp7
-rw-r--r--src/devices/bus/hp_optroms/hp_optrom.h2
-rw-r--r--src/devices/bus/ieee488/c2031.cpp7
-rw-r--r--src/devices/bus/ieee488/c2040.cpp7
-rw-r--r--src/devices/bus/ieee488/c8050.cpp21
-rw-r--r--src/devices/bus/ieee488/c8280.cpp7
-rw-r--r--src/devices/bus/ieee488/hp9895.cpp7
-rw-r--r--src/devices/bus/ieee488/ieee488.cpp47
-rw-r--r--src/devices/bus/ieee488/ieee488.h6
-rw-r--r--src/devices/bus/ieee488/softbox.cpp2
-rw-r--r--src/devices/bus/imi7000/imi7000.cpp7
-rw-r--r--src/devices/bus/imi7000/imi7000.h2
-rw-r--r--src/devices/bus/intellec4/intellec4.cpp11
-rw-r--r--src/devices/bus/intellec4/intellec4.h2
-rw-r--r--src/devices/bus/interpro/keyboard/keyboard.cpp9
-rw-r--r--src/devices/bus/interpro/keyboard/keyboard.h2
-rw-r--r--src/devices/bus/interpro/sr/sr_cards.cpp15
-rw-r--r--src/devices/bus/interpro/sr/sr_cards.h2
-rw-r--r--src/devices/bus/intv/slot.cpp19
-rw-r--r--src/devices/bus/intv/slot.h2
-rw-r--r--src/devices/bus/intv_ctrl/ctrl.cpp7
-rw-r--r--src/devices/bus/intv_ctrl/ctrl.h2
-rw-r--r--src/devices/bus/intv_ctrl/ecs_ctrl.cpp18
-rw-r--r--src/devices/bus/intv_ctrl/ecs_ctrl.h2
-rw-r--r--src/devices/bus/iq151/disc2.cpp7
-rw-r--r--src/devices/bus/isa/com.cpp13
-rw-r--r--src/devices/bus/isa/dectalk.cpp2
-rw-r--r--src/devices/bus/isa/fdc.cpp24
-rw-r--r--src/devices/bus/isa/isa_cards.cpp198
-rw-r--r--src/devices/bus/isa/isa_cards.h4
-rw-r--r--src/devices/bus/isa/mc1502_fdc.cpp7
-rw-r--r--src/devices/bus/isa/mufdc.cpp13
-rw-r--r--src/devices/bus/isa/myb3k_com.cpp7
-rw-r--r--src/devices/bus/isa/myb3k_fdc.cpp21
-rw-r--r--src/devices/bus/isa/omti8621.cpp13
-rw-r--r--src/devices/bus/isa/p1_fdc.cpp7
-rw-r--r--src/devices/bus/isa/p1_sound.cpp2
-rw-r--r--src/devices/bus/isa/sblaster.cpp12
-rw-r--r--src/devices/bus/isa/stereo_fx.cpp4
-rw-r--r--src/devices/bus/isa/xsu_cards.cpp94
-rw-r--r--src/devices/bus/isa/xsu_cards.h8
-rw-r--r--src/devices/bus/isbx/compis_fdc.cpp9
-rw-r--r--src/devices/bus/isbx/isbc_218a.cpp9
-rw-r--r--src/devices/bus/isbx/isbx.cpp9
-rw-r--r--src/devices/bus/isbx/isbx.h2
-rw-r--r--src/devices/bus/kc/d002.cpp5
-rw-r--r--src/devices/bus/kc/d004.cpp7
-rw-r--r--src/devices/bus/lpci/southbridge.cpp11
-rw-r--r--src/devices/bus/megadrive/ggenie.cpp15
-rw-r--r--src/devices/bus/megadrive/md_carts.cpp111
-rw-r--r--src/devices/bus/megadrive/md_carts.h2
-rw-r--r--src/devices/bus/megadrive/sk.cpp15
-rw-r--r--src/devices/bus/midi/midi.cpp14
-rw-r--r--src/devices/bus/midi/midi.h4
-rw-r--r--src/devices/bus/msx_cart/cartridge.cpp90
-rw-r--r--src/devices/bus/msx_cart/cartridge.h4
-rw-r--r--src/devices/bus/msx_cart/disk.cpp9
-rw-r--r--src/devices/bus/msx_cart/konami.cpp2
-rw-r--r--src/devices/bus/msx_cart/majutsushi.cpp2
-rw-r--r--src/devices/bus/msx_cart/msx_audio_kb.cpp9
-rw-r--r--src/devices/bus/msx_cart/msx_audio_kb.h2
-rw-r--r--src/devices/bus/nasbus/cards.cpp9
-rw-r--r--src/devices/bus/nasbus/cards.h2
-rw-r--r--src/devices/bus/nasbus/floppy.cpp9
-rw-r--r--src/devices/bus/neogeo/carts.cpp129
-rw-r--r--src/devices/bus/neogeo/carts.h2
-rw-r--r--src/devices/bus/neogeo_ctrl/ctrl.cpp44
-rw-r--r--src/devices/bus/neogeo_ctrl/ctrl.h8
-rw-r--r--src/devices/bus/nes/aladdin.cpp9
-rw-r--r--src/devices/bus/nes/datach.cpp9
-rw-r--r--src/devices/bus/nes/karastudio.cpp7
-rw-r--r--src/devices/bus/nes/nes_carts.cpp646
-rw-r--r--src/devices/bus/nes/nes_carts.h4
-rw-r--r--src/devices/bus/nes/sunsoft_dcs.cpp7
-rw-r--r--src/devices/bus/nes_ctrl/ctrl.cpp89
-rw-r--r--src/devices/bus/nes_ctrl/ctrl.h10
-rw-r--r--src/devices/bus/nes_ctrl/hori.cpp7
-rw-r--r--src/devices/bus/nes_ctrl/joypad.cpp7
-rw-r--r--src/devices/bus/newbrain/exp.cpp9
-rw-r--r--src/devices/bus/newbrain/exp.h2
-rw-r--r--src/devices/bus/newbrain/fdc.cpp7
-rw-r--r--src/devices/bus/nubus/bootbug.cpp9
-rw-r--r--src/devices/bus/nubus/quadralink.cpp9
-rw-r--r--src/devices/bus/odyssey2/slot.cpp15
-rw-r--r--src/devices/bus/odyssey2/slot.h2
-rw-r--r--src/devices/bus/oricext/jasmin.cpp7
-rw-r--r--src/devices/bus/oricext/microdisc.cpp7
-rw-r--r--src/devices/bus/oricext/oricext.cpp9
-rw-r--r--src/devices/bus/oricext/oricext.h2
-rw-r--r--src/devices/bus/pc1512/mouse.cpp7
-rw-r--r--src/devices/bus/pc1512/mouse.h2
-rw-r--r--src/devices/bus/pc_joy/pc_joy.cpp9
-rw-r--r--src/devices/bus/pc_joy/pc_joy.h2
-rw-r--r--src/devices/bus/pc_kbd/keyboards.cpp28
-rw-r--r--src/devices/bus/pc_kbd/keyboards.h4
-rw-r--r--src/devices/bus/pet/2joysnd.cpp2
-rw-r--r--src/devices/bus/pet/cass.cpp9
-rw-r--r--src/devices/bus/pet/cass.h2
-rw-r--r--src/devices/bus/pet/cb2snd.cpp2
-rw-r--r--src/devices/bus/pet/exp.cpp13
-rw-r--r--src/devices/bus/pet/exp.h2
-rw-r--r--src/devices/bus/pet/user.cpp13
-rw-r--r--src/devices/bus/pet/user.h2
-rw-r--r--src/devices/bus/plus4/c1551.cpp7
-rw-r--r--src/devices/bus/plus4/exp.cpp11
-rw-r--r--src/devices/bus/plus4/exp.h2
-rw-r--r--src/devices/bus/plus4/user.cpp9
-rw-r--r--src/devices/bus/plus4/user.h2
-rw-r--r--src/devices/bus/pofo/ccm.cpp9
-rw-r--r--src/devices/bus/pofo/ccm.h2
-rw-r--r--src/devices/bus/pofo/exp.cpp13
-rw-r--r--src/devices/bus/pofo/exp.h2
-rw-r--r--src/devices/bus/psi_kbd/psi_kbd.cpp9
-rw-r--r--src/devices/bus/psi_kbd/psi_kbd.h2
-rw-r--r--src/devices/bus/psx/ctlrport.cpp18
-rw-r--r--src/devices/bus/psx/ctlrport.h2
-rw-r--r--src/devices/bus/psx/gamebooster.cpp63
-rw-r--r--src/devices/bus/psx/multitap.h2
-rw-r--r--src/devices/bus/psx/parallel.cpp7
-rw-r--r--src/devices/bus/psx/parallel.h2
-rw-r--r--src/devices/bus/ql/exp.cpp41
-rw-r--r--src/devices/bus/ql/exp.h2
-rw-r--r--src/devices/bus/ql/rom.cpp9
-rw-r--r--src/devices/bus/ql/rom.h2
-rw-r--r--src/devices/bus/ql/sandy_superdisk.cpp7
-rw-r--r--src/devices/bus/ql/sandy_superqboard.cpp9
-rw-r--r--src/devices/bus/ql/trumpcard.cpp7
-rw-r--r--src/devices/bus/rs232/rs232.cpp23
-rw-r--r--src/devices/bus/rs232/rs232.h14
-rw-r--r--src/devices/bus/s100/dj2db.cpp7
-rw-r--r--src/devices/bus/s100/nsmdsa.cpp7
-rw-r--r--src/devices/bus/s100/nsmdsad.cpp7
-rw-r--r--src/devices/bus/s100/wunderbus.cpp2
-rw-r--r--src/devices/bus/sat_ctrl/ctrl.cpp36
-rw-r--r--src/devices/bus/sat_ctrl/ctrl.h4
-rw-r--r--src/devices/bus/sega8/ccatch.cpp7
-rw-r--r--src/devices/bus/sega8/sega8_slot.cpp104
-rw-r--r--src/devices/bus/sega8/sega8_slot.h8
-rw-r--r--src/devices/bus/sg1000_exp/sg1000exp.cpp9
-rw-r--r--src/devices/bus/sg1000_exp/sg1000exp.h2
-rw-r--r--src/devices/bus/sms_ctrl/smsctrl.cpp21
-rw-r--r--src/devices/bus/sms_ctrl/smsctrl.h2
-rw-r--r--src/devices/bus/sms_exp/smsexp.cpp7
-rw-r--r--src/devices/bus/sms_exp/smsexp.h2
-rw-r--r--src/devices/bus/snes/bsx.cpp7
-rw-r--r--src/devices/bus/snes/sgb.cpp9
-rw-r--r--src/devices/bus/snes/snes_carts.cpp83
-rw-r--r--src/devices/bus/snes/snes_carts.h2
-rw-r--r--src/devices/bus/snes/sufami.cpp7
-rw-r--r--src/devices/bus/snes_ctrl/ctrl.cpp21
-rw-r--r--src/devices/bus/snes_ctrl/ctrl.h2
-rw-r--r--src/devices/bus/snes_ctrl/multitap.cpp9
-rw-r--r--src/devices/bus/spc1000/fdd.cpp7
-rw-r--r--src/devices/bus/spectrum/exp.cpp51
-rw-r--r--src/devices/bus/spectrum/exp.h6
-rw-r--r--src/devices/bus/ss50/interface.cpp15
-rw-r--r--src/devices/bus/ss50/interface.h4
-rw-r--r--src/devices/bus/ss50/mpc.cpp2
-rw-r--r--src/devices/bus/ss50/mps.cpp2
-rw-r--r--src/devices/bus/sunkbd/sunkbd.cpp17
-rw-r--r--src/devices/bus/sunkbd/sunkbd.h2
-rw-r--r--src/devices/bus/svi3x8/expander/modules.cpp11
-rw-r--r--src/devices/bus/svi3x8/expander/modules.h2
-rw-r--r--src/devices/bus/svi3x8/slot/cards.cpp32
-rw-r--r--src/devices/bus/svi3x8/slot/cards.h4
-rw-r--r--src/devices/bus/svi3x8/slot/sv801.cpp7
-rw-r--r--src/devices/bus/ti8x/ti8x.cpp15
-rw-r--r--src/devices/bus/ti8x/ti8x.h2
-rw-r--r--src/devices/bus/ti99/colorbus/colorbus.cpp7
-rw-r--r--src/devices/bus/ti99/colorbus/colorbus.h2
-rw-r--r--src/devices/bus/ti99/gromport/gromport.cpp22
-rw-r--r--src/devices/bus/ti99/gromport/gromport.h4
-rw-r--r--src/devices/bus/ti99/internal/ioport.cpp14
-rw-r--r--src/devices/bus/ti99/internal/ioport.h4
-rw-r--r--src/devices/bus/ti99/joyport/joyport.cpp31
-rw-r--r--src/devices/bus/ti99/joyport/joyport.h6
-rw-r--r--src/devices/bus/ti99/peb/bwg.cpp11
-rw-r--r--src/devices/bus/ti99/peb/hfdc.cpp28
-rw-r--r--src/devices/bus/ti99/peb/peribox.cpp116
-rw-r--r--src/devices/bus/ti99/peb/ti_fdc.cpp7
-rw-r--r--src/devices/bus/tiki100/exp.cpp9
-rw-r--r--src/devices/bus/tiki100/exp.h2
-rw-r--r--src/devices/bus/tmc600/euro.cpp33
-rw-r--r--src/devices/bus/tmc600/euro.h2
-rw-r--r--src/devices/bus/tvc/hbf.cpp7
-rw-r--r--src/devices/bus/vcs_ctrl/ctrl.cpp17
-rw-r--r--src/devices/bus/vcs_ctrl/ctrl.h2
-rw-r--r--src/devices/bus/vic10/exp.cpp9
-rw-r--r--src/devices/bus/vic10/exp.h2
-rw-r--r--src/devices/bus/vic20/exp.cpp26
-rw-r--r--src/devices/bus/vic20/exp.h2
-rw-r--r--src/devices/bus/vic20/user.cpp9
-rw-r--r--src/devices/bus/vic20/user.h2
-rw-r--r--src/devices/bus/vidbrain/exp.cpp11
-rw-r--r--src/devices/bus/vidbrain/exp.h2
-rw-r--r--src/devices/bus/vip/byteio.cpp9
-rw-r--r--src/devices/bus/vip/byteio.h2
-rw-r--r--src/devices/bus/vip/exp.cpp25
-rw-r--r--src/devices/bus/vip/exp.h2
-rw-r--r--src/devices/bus/vme/vme.cpp20
-rw-r--r--src/devices/bus/vme/vme.h4
-rw-r--r--src/devices/bus/vme/vme_fcscsi.cpp7
-rw-r--r--src/devices/bus/vtech/ioexp/carts.cpp9
-rw-r--r--src/devices/bus/vtech/ioexp/carts.h2
-rw-r--r--src/devices/bus/vtech/memexp/carts.cpp21
-rw-r--r--src/devices/bus/vtech/memexp/carts.h2
-rw-r--r--src/devices/bus/vtech/memexp/floppy.cpp7
-rw-r--r--src/devices/bus/wangpc/wangpc.cpp21
-rw-r--r--src/devices/bus/wangpc/wangpc.h2
-rw-r--r--src/devices/cpu/e132xs/e132xs.cpp4
-rw-r--r--src/devices/cpu/e132xs/e132xs.h2
-rw-r--r--src/devices/cpu/mb86235/mb86235.cpp4
-rw-r--r--src/devices/cpu/mb86235/mb86235.h1
-rw-r--r--src/devices/cpu/powerpc/ppc.h2
-rw-r--r--src/devices/cpu/powerpc/ppccom.cpp4
-rw-r--r--src/devices/cpu/rsp/rsp.cpp4
-rw-r--r--src/devices/cpu/rsp/rsp.h1
-rw-r--r--src/devices/cpu/sh/sh2.cpp4
-rw-r--r--src/devices/cpu/sh/sh2.h13
-rw-r--r--src/devices/cpu/sharc/sharc.cpp4
-rw-r--r--src/devices/cpu/sharc/sharc.h1
-rw-r--r--src/devices/machine/ataintf.cpp9
-rw-r--r--src/devices/machine/ataintf.h2
-rw-r--r--src/devices/machine/fdc37c93x.cpp13
-rw-r--r--src/devices/machine/pdc.cpp20
-rw-r--r--src/devices/machine/roc10937.h10
-rw-r--r--src/devices/sound/ad1848.cpp4
-rw-r--r--src/devices/sound/pokey.cpp1
-rw-r--r--src/emu/devcb.h11
-rw-r--r--src/emu/devfind.h9
-rw-r--r--src/emu/device.h32
-rw-r--r--src/emu/device.ipp10
-rw-r--r--src/emu/dislot.cpp57
-rw-r--r--src/emu/dislot.h89
-rw-r--r--src/emu/disound.cpp9
-rw-r--r--src/emu/disound.h16
-rw-r--r--src/emu/mconfig.cpp40
-rw-r--r--src/emu/mconfig.h50
-rw-r--r--src/emu/speaker.h7
-rw-r--r--src/emu/validity.cpp3
-rw-r--r--src/frontend/mame/clifront.cpp6
-rw-r--r--src/frontend/mame/ui/devopt.cpp2
-rw-r--r--src/frontend/mame/ui/devopt.h4
-rw-r--r--src/frontend/mame/ui/slotopt.cpp10
-rw-r--r--src/frontend/mame/ui/slotopt.h2
-rw-r--r--src/mame/audio/alesis.cpp2
-rw-r--r--src/mame/audio/bwidow.cpp4
-rw-r--r--src/mame/audio/bzone.cpp2
-rw-r--r--src/mame/audio/csd.cpp2
-rw-r--r--src/mame/audio/gottlieb.cpp8
-rw-r--r--src/mame/audio/harddriv.cpp2
-rw-r--r--src/mame/audio/irem.cpp22
-rw-r--r--src/mame/audio/leland.cpp94
-rw-r--r--src/mame/audio/midway.cpp4
-rw-r--r--src/mame/audio/n8080.cpp6
-rw-r--r--src/mame/audio/nichisnd.cpp4
-rw-r--r--src/mame/audio/s11c_bg.cpp2
-rw-r--r--src/mame/audio/segag80r.cpp2
-rw-r--r--src/mame/audio/spacefb.cpp2
-rw-r--r--src/mame/audio/taito_en.cpp16
-rw-r--r--src/mame/audio/targ.cpp4
-rw-r--r--src/mame/audio/vboy.cpp3
-rw-r--r--src/mame/audio/vboy.h12
-rw-r--r--src/mame/audio/williams.cpp8
-rw-r--r--src/mame/audio/wpcsnd.cpp2
-rw-r--r--src/mame/audio/zaccaria.cpp14
-rw-r--r--src/mame/drivers/1942.cpp12
-rw-r--r--src/mame/drivers/20pacgal.cpp2
-rw-r--r--src/mame/drivers/4004clk.cpp2
-rw-r--r--src/mame/drivers/40love.cpp4
-rw-r--r--src/mame/drivers/4enlinea.cpp9
-rw-r--r--src/mame/drivers/8080bw.cpp2
-rw-r--r--src/mame/drivers/a2600.cpp55
-rw-r--r--src/mame/drivers/a5105.cpp7
-rw-r--r--src/mame/drivers/a7150.cpp2
-rw-r--r--src/mame/drivers/aa310.cpp25
-rw-r--r--src/mame/drivers/abc1600.cpp7
-rw-r--r--src/mame/drivers/adam.cpp2
-rw-r--r--src/mame/drivers/advision.cpp2
-rw-r--r--src/mame/drivers/agat.cpp15
-rw-r--r--src/mame/drivers/aim65.cpp10
-rw-r--r--src/mame/drivers/alpha68k.cpp12
-rw-r--r--src/mame/drivers/alphatpx.cpp21
-rw-r--r--src/mame/drivers/alphatro.cpp7
-rw-r--r--src/mame/drivers/altos486.cpp9
-rw-r--r--src/mame/drivers/altos5.cpp7
-rw-r--r--src/mame/drivers/altos8600.cpp7
-rw-r--r--src/mame/drivers/amiga.cpp7
-rw-r--r--src/mame/drivers/ampro.cpp7
-rw-r--r--src/mame/drivers/amstrad.cpp183
-rw-r--r--src/mame/drivers/amust.cpp7
-rw-r--r--src/mame/drivers/apc.cpp7
-rw-r--r--src/mame/drivers/apf.cpp18
-rw-r--r--src/mame/drivers/apple1.cpp9
-rw-r--r--src/mame/drivers/apple2.cpp106
-rw-r--r--src/mame/drivers/apple2e.cpp112
-rw-r--r--src/mame/drivers/apple2gs.cpp51
-rw-r--r--src/mame/drivers/apple3.cpp24
-rw-r--r--src/mame/drivers/applix.cpp11
-rw-r--r--src/mame/drivers/apricot.cpp9
-rw-r--r--src/mame/drivers/apricotf.cpp9
-rw-r--r--src/mame/drivers/apricotp.cpp7
-rw-r--r--src/mame/drivers/arcadia.cpp9
-rw-r--r--src/mame/drivers/aristmk5.cpp16
-rw-r--r--src/mame/drivers/armedf.cpp24
-rw-r--r--src/mame/drivers/asst128.cpp7
-rw-r--r--src/mame/drivers/astrohome.cpp30
-rw-r--r--src/mame/drivers/at.cpp7
-rw-r--r--src/mame/drivers/atari400.cpp2
-rw-r--r--src/mame/drivers/atari_s1.cpp2
-rw-r--r--src/mame/drivers/atari_s2.cpp4
-rw-r--r--src/mame/drivers/atarist.cpp7
-rw-r--r--src/mame/drivers/atlantis.cpp2
-rw-r--r--src/mame/drivers/atom.cpp7
-rw-r--r--src/mame/drivers/atpci.cpp20
-rw-r--r--src/mame/drivers/attache.cpp7
-rw-r--r--src/mame/drivers/aussiebyte.cpp7
-rw-r--r--src/mame/drivers/ax20.cpp7
-rw-r--r--src/mame/drivers/b2m.cpp7
-rw-r--r--src/mame/drivers/bbc.cpp24
-rw-r--r--src/mame/drivers/bebox.cpp16
-rw-r--r--src/mame/drivers/bigbord2.cpp7
-rw-r--r--src/mame/drivers/bigevglf.cpp2
-rw-r--r--src/mame/drivers/binbug.cpp2
-rw-r--r--src/mame/drivers/bitgraph.cpp2
-rw-r--r--src/mame/drivers/bking.cpp2
-rw-r--r--src/mame/drivers/bml3.cpp11
-rw-r--r--src/mame/drivers/btime.cpp12
-rw-r--r--src/mame/drivers/bullet.cpp31
-rw-r--r--src/mame/drivers/bw12.cpp16
-rw-r--r--src/mame/drivers/bw2.cpp7
-rw-r--r--src/mame/drivers/bwing.cpp2
-rw-r--r--src/mame/drivers/byvid.cpp2
-rw-r--r--src/mame/drivers/c128.cpp16
-rw-r--r--src/mame/drivers/c64.cpp7
-rw-r--r--src/mame/drivers/calchase.cpp8
-rw-r--r--src/mame/drivers/camplynx.cpp9
-rw-r--r--src/mame/drivers/capbowl.cpp2
-rw-r--r--src/mame/drivers/cc40.cpp2
-rw-r--r--src/mame/drivers/cchasm.cpp4
-rw-r--r--src/mame/drivers/ccs2810.cpp9
-rw-r--r--src/mame/drivers/ccs300.cpp2
-rw-r--r--src/mame/drivers/champbas.cpp8
-rw-r--r--src/mame/drivers/channelf.cpp17
-rw-r--r--src/mame/drivers/cheekyms.cpp16
-rw-r--r--src/mame/drivers/chihiro.cpp20
-rw-r--r--src/mame/drivers/chsuper.cpp2
-rw-r--r--src/mame/drivers/circusc.cpp8
-rw-r--r--src/mame/drivers/ckz80.cpp2
-rw-r--r--src/mame/drivers/cmi.cpp15
-rw-r--r--src/mame/drivers/cntsteer.cpp2
-rw-r--r--src/mame/drivers/coco12.cpp44
-rw-r--r--src/mame/drivers/coco3.cpp2
-rw-r--r--src/mame/drivers/cocoloco.cpp6
-rw-r--r--src/mame/drivers/concept.cpp11
-rw-r--r--src/mame/drivers/coolpool.cpp4
-rw-r--r--src/mame/drivers/cop01.cpp2
-rw-r--r--src/mame/drivers/cosmic.cpp8
-rw-r--r--src/mame/drivers/craft.cpp2
-rw-r--r--src/mame/drivers/crvision.cpp19
-rw-r--r--src/mame/drivers/cubeqst.cpp32
-rw-r--r--src/mame/drivers/cvs.cpp6
-rw-r--r--src/mame/drivers/cxgz80.cpp2
-rw-r--r--src/mame/drivers/cyberbal.cpp4
-rw-r--r--src/mame/drivers/cybiko.cpp6
-rw-r--r--src/mame/drivers/czk80.cpp7
-rw-r--r--src/mame/drivers/dectalk.cpp2
-rw-r--r--src/mame/drivers/dgn_beta.cpp7
-rw-r--r--src/mame/drivers/digel804.cpp4
-rw-r--r--src/mame/drivers/dim68k.cpp7
-rw-r--r--src/mame/drivers/dmax8000.cpp7
-rw-r--r--src/mame/drivers/dmv.cpp66
-rw-r--r--src/mame/drivers/dps1.cpp7
-rw-r--r--src/mame/drivers/dragon.cpp28
-rw-r--r--src/mame/drivers/duet16.cpp16
-rw-r--r--src/mame/drivers/einstein.cpp17
-rw-r--r--src/mame/drivers/elwro800.cpp7
-rw-r--r--src/mame/drivers/enmirage.cpp7
-rw-r--r--src/mame/drivers/equites.cpp4
-rw-r--r--src/mame/drivers/ertictac.cpp16
-rw-r--r--src/mame/drivers/esq1.cpp16
-rw-r--r--src/mame/drivers/esq5505.cpp39
-rw-r--r--src/mame/drivers/esqasr.cpp32
-rw-r--r--src/mame/drivers/esqkt.cpp32
-rw-r--r--src/mame/drivers/esripsys.cpp4
-rw-r--r--src/mame/drivers/et3400.cpp2
-rw-r--r--src/mame/drivers/eurocom2.cpp9
-rw-r--r--src/mame/drivers/excali64.cpp7
-rw-r--r--src/mame/drivers/exp85.cpp2
-rw-r--r--src/mame/drivers/exterm.cpp4
-rw-r--r--src/mame/drivers/fantland.cpp2
-rw-r--r--src/mame/drivers/fanucspmg.cpp7
-rw-r--r--src/mame/drivers/fccpu20.cpp49
-rw-r--r--src/mame/drivers/fccpu30.cpp9
-rw-r--r--src/mame/drivers/fidel6502.cpp18
-rw-r--r--src/mame/drivers/fidel68k.cpp6
-rw-r--r--src/mame/drivers/fidelmcs48.cpp2
-rw-r--r--src/mame/drivers/fidelz80.cpp6
-rw-r--r--src/mame/drivers/finalizr.cpp2
-rw-r--r--src/mame/drivers/firebeat.cpp11
-rw-r--r--src/mame/drivers/flstory.cpp8
-rw-r--r--src/mame/drivers/fm7.cpp7
-rw-r--r--src/mame/drivers/fmtowns.cpp7
-rw-r--r--src/mame/drivers/force68k.cpp9
-rw-r--r--src/mame/drivers/fruitpc.cpp11
-rw-r--r--src/mame/drivers/galaxian.cpp22
-rw-r--r--src/mame/drivers/galeb.cpp2
-rw-r--r--src/mame/drivers/galivan.cpp8
-rw-r--r--src/mame/drivers/gamecom.cpp6
-rw-r--r--src/mame/drivers/gb.cpp72
-rw-r--r--src/mame/drivers/gba.cpp43
-rw-r--r--src/mame/drivers/gei.cpp2
-rw-r--r--src/mame/drivers/gimix.cpp9
-rw-r--r--src/mame/drivers/gkigt.cpp2
-rw-r--r--src/mame/drivers/go2000.cpp2
-rw-r--r--src/mame/drivers/goupil.cpp7
-rw-r--r--src/mame/drivers/gp32.cpp4
-rw-r--r--src/mame/drivers/guab.cpp9
-rw-r--r--src/mame/drivers/gyruss.cpp30
-rw-r--r--src/mame/drivers/h89.cpp2
-rw-r--r--src/mame/drivers/hankin.cpp2
-rw-r--r--src/mame/drivers/harddriv.cpp4
-rw-r--r--src/mame/drivers/hec2hrp.cpp14
-rw-r--r--src/mame/drivers/hh_cop400.cpp4
-rw-r--r--src/mame/drivers/hk68v10.cpp5
-rw-r--r--src/mame/drivers/homedata.cpp6
-rw-r--r--src/mame/drivers/homelab.cpp6
-rw-r--r--src/mame/drivers/horizon.cpp23
-rw-r--r--src/mame/drivers/hp48.cpp2
-rw-r--r--src/mame/drivers/hp64k.cpp7
-rw-r--r--src/mame/drivers/hp80.cpp14
-rw-r--r--src/mame/drivers/hp9845.cpp16
-rw-r--r--src/mame/drivers/hp9k_3xx.cpp13
-rw-r--r--src/mame/drivers/hp_ipc.cpp7
-rw-r--r--src/mame/drivers/ht68k.cpp7
-rw-r--r--src/mame/drivers/hyhoo.cpp2
-rw-r--r--src/mame/drivers/hyperspt.cpp2
-rw-r--r--src/mame/drivers/ibm6580.cpp7
-rw-r--r--src/mame/drivers/ibmpcjr.cpp20
-rw-r--r--src/mame/drivers/imds2.cpp7
-rw-r--r--src/mame/drivers/indiana.cpp15
-rw-r--r--src/mame/drivers/indy_indigo2.cpp2
-rw-r--r--src/mame/drivers/instantm.cpp2
-rw-r--r--src/mame/drivers/intellec4.cpp4
-rw-r--r--src/mame/drivers/interpro.cpp36
-rw-r--r--src/mame/drivers/iq151.cpp29
-rw-r--r--src/mame/drivers/iris3130.cpp2
-rw-r--r--src/mame/drivers/ironhors.cpp8
-rw-r--r--src/mame/drivers/isbc.cpp6
-rw-r--r--src/mame/drivers/isbc8010.cpp2
-rw-r--r--src/mame/drivers/itt3030.cpp9
-rw-r--r--src/mame/drivers/jaguar.cpp15
-rw-r--r--src/mame/drivers/jankenmn.cpp2
-rw-r--r--src/mame/drivers/juicebox.cpp2
-rw-r--r--src/mame/drivers/junofrst.cpp2
-rw-r--r--src/mame/drivers/jupiter.cpp7
-rw-r--r--src/mame/drivers/kaypro.cpp11
-rw-r--r--src/mame/drivers/kc.cpp36
-rw-r--r--src/mame/drivers/kchamp.cpp2
-rw-r--r--src/mame/drivers/kdt6.cpp7
-rw-r--r--src/mame/drivers/kingobox.cpp4
-rw-r--r--src/mame/drivers/konamigx.cpp8
-rw-r--r--src/mame/drivers/ksayakyu.cpp2
-rw-r--r--src/mame/drivers/ksys573.cpp8
-rw-r--r--src/mame/drivers/ladyfrog.cpp2
-rw-r--r--src/mame/drivers/laserbas.cpp12
-rw-r--r--src/mame/drivers/lasso.cpp2
-rw-r--r--src/mame/drivers/lazercmd.cpp16
-rw-r--r--src/mame/drivers/lb186.cpp18
-rw-r--r--src/mame/drivers/leland.cpp4
-rw-r--r--src/mame/drivers/littlerb.cpp4
-rw-r--r--src/mame/drivers/looping.cpp2
-rw-r--r--src/mame/drivers/luckybal.cpp2
-rw-r--r--src/mame/drivers/m20.cpp14
-rw-r--r--src/mame/drivers/m5.cpp23
-rw-r--r--src/mame/drivers/m72.cpp2
-rw-r--r--src/mame/drivers/m90.cpp2
-rw-r--r--src/mame/drivers/mac.cpp72
-rw-r--r--src/mame/drivers/mac128.cpp2
-rw-r--r--src/mame/drivers/madalien.cpp6
-rw-r--r--src/mame/drivers/magicfly.cpp2
-rw-r--r--src/mame/drivers/magtouch.cpp11
-rw-r--r--src/mame/drivers/mappy.cpp2
-rw-r--r--src/mame/drivers/matmania.cpp4
-rw-r--r--src/mame/drivers/mbc200.cpp7
-rw-r--r--src/mame/drivers/mbc55x.cpp11
-rw-r--r--src/mame/drivers/mbee.cpp9
-rw-r--r--src/mame/drivers/mc10.cpp4
-rw-r--r--src/mame/drivers/meadows.cpp4
-rw-r--r--src/mame/drivers/megazone.cpp2
-rw-r--r--src/mame/drivers/mephistp.cpp2
-rw-r--r--src/mame/drivers/meyc8080.cpp2
-rw-r--r--src/mame/drivers/meyc8088.cpp2
-rw-r--r--src/mame/drivers/mfabfz.cpp2
-rw-r--r--src/mame/drivers/mice.cpp4
-rw-r--r--src/mame/drivers/microdec.cpp7
-rw-r--r--src/mame/drivers/microkit.cpp2
-rw-r--r--src/mame/drivers/microvsn.cpp2
-rw-r--r--src/mame/drivers/mikro80.cpp2
-rw-r--r--src/mame/drivers/mikromik.cpp7
-rw-r--r--src/mame/drivers/mini2440.cpp4
-rw-r--r--src/mame/drivers/miniforce.cpp13
-rw-r--r--src/mame/drivers/miniframe.cpp7
-rw-r--r--src/mame/drivers/mjsister.cpp2
-rw-r--r--src/mame/drivers/mk14.cpp4
-rw-r--r--src/mame/drivers/mogura.cpp4
-rw-r--r--src/mame/drivers/mpz80.cpp19
-rw-r--r--src/mame/drivers/mrgame.cpp6
-rw-r--r--src/mame/drivers/ms0515.cpp7
-rw-r--r--src/mame/drivers/msx.cpp15
-rw-r--r--src/mame/drivers/mtouchxl.cpp9
-rw-r--r--src/mame/drivers/murogem.cpp2
-rw-r--r--src/mame/drivers/murogmbl.cpp4
-rw-r--r--src/mame/drivers/mvme147.cpp7
-rw-r--r--src/mame/drivers/myb3k.cpp11
-rw-r--r--src/mame/drivers/mycom.cpp7
-rw-r--r--src/mame/drivers/mz2000.cpp7
-rw-r--r--src/mame/drivers/mz2500.cpp7
-rw-r--r--src/mame/drivers/mz3500.cpp7
-rw-r--r--src/mame/drivers/mz6500.cpp7
-rw-r--r--src/mame/drivers/mzr8105.cpp7
-rw-r--r--src/mame/drivers/namcos1.cpp4
-rw-r--r--src/mame/drivers/nanos.cpp7
-rw-r--r--src/mame/drivers/nbmj8688.cpp4
-rw-r--r--src/mame/drivers/nbmj8891.cpp2
-rw-r--r--src/mame/drivers/nbmj8900.cpp2
-rw-r--r--src/mame/drivers/nbmj8991.cpp6
-rw-r--r--src/mame/drivers/nbmj9195.cpp4
-rw-r--r--src/mame/drivers/nc.cpp7
-rw-r--r--src/mame/drivers/next.cpp20
-rw-r--r--src/mame/drivers/ngen.cpp14
-rw-r--r--src/mame/drivers/ngp.cpp4
-rw-r--r--src/mame/drivers/nightgal.cpp2
-rw-r--r--src/mame/drivers/notetaker.cpp9
-rw-r--r--src/mame/drivers/novagmcs48.cpp2
-rw-r--r--src/mame/drivers/nycaptor.cpp6
-rw-r--r--src/mame/drivers/nyny.cpp2
-rw-r--r--src/mame/drivers/octopus.cpp35
-rw-r--r--src/mame/drivers/olyboss.cpp21
-rw-r--r--src/mame/drivers/oric.cpp7
-rw-r--r--src/mame/drivers/orion.cpp7
-rw-r--r--src/mame/drivers/osbexec.cpp7
-rw-r--r--src/mame/drivers/osborne1.cpp31
-rw-r--r--src/mame/drivers/osi.cpp7
-rw-r--r--src/mame/drivers/othello.cpp2
-rw-r--r--src/mame/drivers/p8k.cpp7
-rw-r--r--src/mame/drivers/palm.cpp2
-rw-r--r--src/mame/drivers/pandoras.cpp2
-rw-r--r--src/mame/drivers/partner.cpp7
-rw-r--r--src/mame/drivers/pasopia7.cpp7
-rw-r--r--src/mame/drivers/pastelg.cpp4
-rw-r--r--src/mame/drivers/pc100.cpp7
-rw-r--r--src/mame/drivers/pc1512.cpp14
-rw-r--r--src/mame/drivers/pc8801.cpp7
-rw-r--r--src/mame/drivers/pc88va.cpp7
-rw-r--r--src/mame/drivers/pc9801.cpp37
-rw-r--r--src/mame/drivers/pcat_dyn.cpp18
-rw-r--r--src/mame/drivers/pcd.cpp9
-rw-r--r--src/mame/drivers/pce.cpp15
-rw-r--r--src/mame/drivers/pcw.cpp7
-rw-r--r--src/mame/drivers/pcw16.cpp14
-rw-r--r--src/mame/drivers/pcxt.cpp9
-rw-r--r--src/mame/drivers/peoplepc.cpp16
-rw-r--r--src/mame/drivers/pet.cpp7
-rw-r--r--src/mame/drivers/pg685.cpp14
-rw-r--r--src/mame/drivers/pimps.cpp2
-rw-r--r--src/mame/drivers/pipbug.cpp2
-rw-r--r--src/mame/drivers/pk8020.cpp7
-rw-r--r--src/mame/drivers/plus4.cpp9
-rw-r--r--src/mame/drivers/pockstat.cpp2
-rw-r--r--src/mame/drivers/polepos.cpp2
-rw-r--r--src/mame/drivers/pong.cpp6
-rw-r--r--src/mame/drivers/popeye.cpp6
-rw-r--r--src/mame/drivers/ppmast93.cpp2
-rw-r--r--src/mame/drivers/prof180x.cpp7
-rw-r--r--src/mame/drivers/prof80.cpp7
-rw-r--r--src/mame/drivers/proteus.cpp7
-rw-r--r--src/mame/drivers/pt68k4.cpp28
-rw-r--r--src/mame/drivers/pulsar.cpp9
-rw-r--r--src/mame/drivers/pwrview.cpp7
-rw-r--r--src/mame/drivers/pyl601.cpp7
-rw-r--r--src/mame/drivers/qtsbc.cpp2
-rw-r--r--src/mame/drivers/quantum.cpp4
-rw-r--r--src/mame/drivers/quasar.cpp2
-rw-r--r--src/mame/drivers/quizshow.cpp2
-rw-r--r--src/mame/drivers/qx10.cpp14
-rw-r--r--src/mame/drivers/rainbow.cpp13
-rw-r--r--src/mame/drivers/rastersp.cpp15
-rw-r--r--src/mame/drivers/rc702.cpp7
-rw-r--r--src/mame/drivers/rc759.cpp7
-rw-r--r--src/mame/drivers/replicator.cpp2
-rw-r--r--src/mame/drivers/risc2500.cpp2
-rw-r--r--src/mame/drivers/rltennis.cpp4
-rw-r--r--src/mame/drivers/rm380z.cpp7
-rw-r--r--src/mame/drivers/rmnimbus.cpp14
-rw-r--r--src/mame/drivers/route16.cpp2
-rw-r--r--src/mame/drivers/rowamet.cpp2
-rw-r--r--src/mame/drivers/royalmah.cpp2
-rw-r--r--src/mame/drivers/s11.cpp4
-rw-r--r--src/mame/drivers/s11a.cpp4
-rw-r--r--src/mame/drivers/s11b.cpp4
-rw-r--r--src/mame/drivers/s3.cpp2
-rw-r--r--src/mame/drivers/s4.cpp2
-rw-r--r--src/mame/drivers/s6.cpp2
-rw-r--r--src/mame/drivers/s6a.cpp2
-rw-r--r--src/mame/drivers/s7.cpp2
-rw-r--r--src/mame/drivers/s8.cpp2
-rw-r--r--src/mame/drivers/s8a.cpp2
-rw-r--r--src/mame/drivers/s9.cpp2
-rw-r--r--src/mame/drivers/sage2.cpp9
-rw-r--r--src/mame/drivers/samcoupe.cpp7
-rw-r--r--src/mame/drivers/sapi1.cpp2
-rw-r--r--src/mame/drivers/saturn.cpp19
-rw-r--r--src/mame/drivers/savquest.cpp7
-rw-r--r--src/mame/drivers/sbasketb.cpp2
-rw-r--r--src/mame/drivers/sbrain.cpp7
-rw-r--r--src/mame/drivers/sbrkout.cpp2
-rw-r--r--src/mame/drivers/scv.cpp19
-rw-r--r--src/mame/drivers/scyclone.cpp8
-rw-r--r--src/mame/drivers/sdk80.cpp2
-rw-r--r--src/mame/drivers/sdk86.cpp2
-rw-r--r--src/mame/drivers/seattlecmp.cpp2
-rw-r--r--src/mame/drivers/segapico.cpp22
-rw-r--r--src/mame/drivers/segas16a.cpp2
-rw-r--r--src/mame/drivers/segas24.cpp2
-rw-r--r--src/mame/drivers/seicross.cpp2
-rw-r--r--src/mame/drivers/senjyo.cpp2
-rw-r--r--src/mame/drivers/sg1000.cpp7
-rw-r--r--src/mame/drivers/shangkid.cpp2
-rw-r--r--src/mame/drivers/shisen.cpp2
-rw-r--r--src/mame/drivers/sitcom.cpp6
-rw-r--r--src/mame/drivers/slicer.cpp9
-rw-r--r--src/mame/drivers/smc777.cpp7
-rw-r--r--src/mame/drivers/snk6502.cpp2
-rw-r--r--src/mame/drivers/softbox.cpp2
-rw-r--r--src/mame/drivers/sorcerer.cpp2
-rw-r--r--src/mame/drivers/spc1000.cpp9
-rw-r--r--src/mame/drivers/special.cpp11
-rw-r--r--src/mame/drivers/specpls3.cpp7
-rw-r--r--src/mame/drivers/squale.cpp7
-rw-r--r--src/mame/drivers/ssozumo.cpp2
-rw-r--r--src/mame/drivers/sun3x.cpp7
-rw-r--r--src/mame/drivers/sun4.cpp22
-rw-r--r--src/mame/drivers/suna16.cpp24
-rw-r--r--src/mame/drivers/suna8.cpp8
-rw-r--r--src/mame/drivers/super6.cpp9
-rw-r--r--src/mame/drivers/super80.cpp7
-rw-r--r--src/mame/drivers/superslave.cpp2
-rw-r--r--src/mame/drivers/swtpc09.cpp19
-rw-r--r--src/mame/drivers/sys9002.cpp4
-rw-r--r--src/mame/drivers/tagteam.cpp2
-rw-r--r--src/mame/drivers/taito.cpp2
-rw-r--r--src/mame/drivers/taitogn.cpp13
-rw-r--r--src/mame/drivers/taitosj.cpp2
-rw-r--r--src/mame/drivers/tandy2k.cpp7
-rw-r--r--src/mame/drivers/tavernie.cpp7
-rw-r--r--src/mame/drivers/tceptor.cpp2
-rw-r--r--src/mame/drivers/tdv2324.cpp7
-rw-r--r--src/mame/drivers/terracre.cpp4
-rw-r--r--src/mame/drivers/testconsole.cpp8
-rw-r--r--src/mame/drivers/thomson.cpp17
-rw-r--r--src/mame/drivers/tiki100.cpp11
-rw-r--r--src/mame/drivers/tim011.cpp7
-rw-r--r--src/mame/drivers/tim100.cpp4
-rw-r--r--src/mame/drivers/tnzs.cpp2
-rw-r--r--src/mame/drivers/trackfld.cpp4
-rw-r--r--src/mame/drivers/tranz330.cpp10
-rw-r--r--src/mame/drivers/tricep.cpp2
-rw-r--r--src/mame/drivers/trs80.cpp7
-rw-r--r--src/mame/drivers/trs80m2.cpp9
-rw-r--r--src/mame/drivers/truco.cpp2
-rw-r--r--src/mame/drivers/trucocl.cpp2
-rw-r--r--src/mame/drivers/ts802.cpp7
-rw-r--r--src/mame/drivers/ts803.cpp7
-rw-r--r--src/mame/drivers/tsamurai.cpp10
-rw-r--r--src/mame/drivers/tsispch.cpp2
-rw-r--r--src/mame/drivers/turrett.cpp7
-rw-r--r--src/mame/drivers/tvc.cpp7
-rw-r--r--src/mame/drivers/unixpc.cpp7
-rw-r--r--src/mame/drivers/ut88.cpp2
-rw-r--r--src/mame/drivers/v1050.cpp9
-rw-r--r--src/mame/drivers/v6809.cpp7
-rw-r--r--src/mame/drivers/vboy.cpp11
-rw-r--r--src/mame/drivers/vc4000.cpp13
-rw-r--r--src/mame/drivers/vcombat.cpp4
-rw-r--r--src/mame/drivers/vector06.cpp7
-rw-r--r--src/mame/drivers/vectrex.cpp13
-rw-r--r--src/mame/drivers/vg5k.cpp2
-rw-r--r--src/mame/drivers/vidbrain.cpp2
-rw-r--r--src/mame/drivers/videopkr.cpp2
-rw-r--r--src/mame/drivers/vigilant.cpp6
-rw-r--r--src/mame/drivers/vis.cpp13
-rw-r--r--src/mame/drivers/vixen.cpp7
-rw-r--r--src/mame/drivers/wangpc.cpp7
-rw-r--r--src/mame/drivers/wheelfir.cpp4
-rw-r--r--src/mame/drivers/wicat.cpp7
-rw-r--r--src/mame/drivers/wildpkr.cpp2
-rw-r--r--src/mame/drivers/williams.cpp8
-rw-r--r--src/mame/drivers/wmg.cpp2
-rw-r--r--src/mame/drivers/wswan.cpp11
-rw-r--r--src/mame/drivers/wyvernf0.cpp2
-rw-r--r--src/mame/drivers/x1.cpp7
-rw-r--r--src/mame/drivers/x1twin.cpp7
-rw-r--r--src/mame/drivers/x68k.cpp25
-rw-r--r--src/mame/drivers/xbox.cpp18
-rw-r--r--src/mame/drivers/xerox820.cpp15
-rw-r--r--src/mame/drivers/xor100.cpp14
-rw-r--r--src/mame/drivers/xtheball.cpp2
-rw-r--r--src/mame/drivers/z100.cpp7
-rw-r--r--src/mame/drivers/z80ne.cpp7
-rw-r--r--src/mame/drivers/z88.cpp21
-rw-r--r--src/mame/drivers/zorba.cpp33
-rw-r--r--src/mame/includes/amstrad.h4
-rw-r--r--src/mame/includes/coco.h2
-rw-r--r--src/mame/machine/acs8600_ics.cpp2
-rw-r--r--src/mame/machine/apollo.cpp13
-rw-r--r--src/mame/machine/beta.cpp7
-rw-r--r--src/mame/machine/inder_sb.cpp16
-rw-r--r--src/mame/machine/isbc_208.cpp9
-rw-r--r--src/mame/machine/mega32x.cpp8
-rw-r--r--src/mame/machine/victor9k_fdc.cpp9
-rw-r--r--src/mame/video/k053246_k053247_k055673.cpp2
-rw-r--r--src/mame/video/k053246_k053247_k055673.h2
866 files changed, 5451 insertions, 4772 deletions
diff --git a/src/devices/bus/a2bus/a2diskiing.cpp b/src/devices/bus/a2bus/a2diskiing.cpp
index 0a9439bfc30..5459c4249ce 100644
--- a/src/devices/bus/a2bus/a2diskiing.cpp
+++ b/src/devices/bus/a2bus/a2diskiing.cpp
@@ -27,9 +27,10 @@ DEFINE_DEVICE_TYPE(A2BUS_DISKIING13, a2bus_diskiing13_device, "diskii13", "Apple
#define WOZFDC_TAG "wozfdc"
#define DISKII_ROM_REGION "diskii_rom"
-static SLOT_INTERFACE_START( a2_floppies )
- SLOT_INTERFACE( "525", FLOPPY_525_SD )
-SLOT_INTERFACE_END
+static void a2_floppies(device_slot_interface &device)
+{
+ device.option_add("525", FLOPPY_525_SD);
+}
ROM_START( diskiing )
ROM_REGION(0x100, DISKII_ROM_REGION, 0)
diff --git a/src/devices/bus/a2bus/a2dx1.cpp b/src/devices/bus/a2bus/a2dx1.cpp
index d2899aa8bda..d41cd92a89e 100644
--- a/src/devices/bus/a2bus/a2dx1.cpp
+++ b/src/devices/bus/a2bus/a2dx1.cpp
@@ -35,9 +35,9 @@ MACHINE_CONFIG_START(a2bus_dx1_device::device_add_mconfig)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("dacvol", DAC_8BIT_R2R, 0) // unknown DAC
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dacvol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dacvol", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
//**************************************************************************
diff --git a/src/devices/bus/a2bus/a2hsscsi.cpp b/src/devices/bus/a2bus/a2hsscsi.cpp
index 9973ea9e600..82abf6fb342 100644
--- a/src/devices/bus/a2bus/a2hsscsi.cpp
+++ b/src/devices/bus/a2bus/a2hsscsi.cpp
@@ -65,11 +65,12 @@ void a2bus_hsscsi_device::ncr5380(device_t *device)
MCFG_NCR5380N_DRQ_HANDLER(DEVWRITELINE("^^", a2bus_hsscsi_device, drq_w))
}
-static SLOT_INTERFACE_START( hsscsi_devices )
- SLOT_INTERFACE("cdrom", NSCSI_CDROM)
- SLOT_INTERFACE("harddisk", NSCSI_HARDDISK)
- SLOT_INTERFACE_INTERNAL("ncr5380", NCR5380N)
-SLOT_INTERFACE_END
+static void hsscsi_devices(device_slot_interface &device)
+{
+ device.option_add("cdrom", NSCSI_CDROM);
+ device.option_add("harddisk", NSCSI_HARDDISK);
+ device.option_add_internal("ncr5380", NCR5380N);
+}
ROM_START( hsscsi )
ROM_REGION(0x8000, SCSI_ROM_REGION, 0)
@@ -94,7 +95,7 @@ MACHINE_CONFIG_START(a2bus_hsscsi_device::device_add_mconfig)
MCFG_NSCSI_ADD("scsibus:5", hsscsi_devices, nullptr, false)
MCFG_NSCSI_ADD("scsibus:6", hsscsi_devices, "harddisk", false)
MCFG_NSCSI_ADD("scsibus:7", hsscsi_devices, "ncr5380", true)
- MCFG_DEVICE_CARD_MACHINE_CONFIG("ncr5380", ncr5380)
+ MCFG_SLOT_OPTION_MACHINE_CONFIG("ncr5380", ncr5380)
MACHINE_CONFIG_END
//-------------------------------------------------
diff --git a/src/devices/bus/a2bus/a2sam.cpp b/src/devices/bus/a2bus/a2sam.cpp
index 1a3758d2109..72b70433007 100644
--- a/src/devices/bus/a2bus/a2sam.cpp
+++ b/src/devices/bus/a2bus/a2sam.cpp
@@ -35,7 +35,7 @@ MACHINE_CONFIG_START(a2bus_sam_device::device_add_mconfig)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
//**************************************************************************
diff --git a/src/devices/bus/a2bus/a2scsi.cpp b/src/devices/bus/a2bus/a2scsi.cpp
index c7706066d5e..2cfd5c0f364 100644
--- a/src/devices/bus/a2bus/a2scsi.cpp
+++ b/src/devices/bus/a2bus/a2scsi.cpp
@@ -58,11 +58,12 @@ void a2bus_scsi_device::ncr5380(device_t *device)
MCFG_NCR5380N_DRQ_HANDLER(DEVWRITELINE("^^", a2bus_scsi_device, drq_w))
}
-static SLOT_INTERFACE_START( scsi_devices )
- SLOT_INTERFACE("cdrom", NSCSI_CDROM)
- SLOT_INTERFACE("harddisk", NSCSI_HARDDISK)
- SLOT_INTERFACE_INTERNAL("ncr5380", NCR5380N)
-SLOT_INTERFACE_END
+static void scsi_devices(device_slot_interface &device)
+{
+ device.option_add("cdrom", NSCSI_CDROM);
+ device.option_add("harddisk", NSCSI_HARDDISK);
+ device.option_add_internal("ncr5380", NCR5380N);
+}
ROM_START( scsi )
ROM_REGION(0x4000, SCSI_ROM_REGION, 0) // this is the Rev. C ROM
@@ -87,7 +88,7 @@ MACHINE_CONFIG_START(a2bus_scsi_device::device_add_mconfig)
MCFG_NSCSI_ADD("scsibus:5", scsi_devices, nullptr, false)
MCFG_NSCSI_ADD("scsibus:6", scsi_devices, "harddisk", false)
MCFG_NSCSI_ADD("scsibus:7", scsi_devices, "ncr5380", true)
- MCFG_DEVICE_CARD_MACHINE_CONFIG("ncr5380", ncr5380)
+ MCFG_SLOT_OPTION_MACHINE_CONFIG("ncr5380", ncr5380)
MACHINE_CONFIG_END
//-------------------------------------------------
diff --git a/src/devices/bus/a2bus/corvfdc01.cpp b/src/devices/bus/a2bus/corvfdc01.cpp
index 6b4ff3ed08d..10657674e04 100644
--- a/src/devices/bus/a2bus/corvfdc01.cpp
+++ b/src/devices/bus/a2bus/corvfdc01.cpp
@@ -31,9 +31,10 @@ FLOPPY_FORMATS_MEMBER( a2bus_corvfdc01_device::corv_floppy_formats )
FLOPPY_IMD_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( corv_floppies )
- SLOT_INTERFACE( "8sssd", FLOPPY_8_SSSD )
-SLOT_INTERFACE_END
+static void corv_floppies(device_slot_interface &device)
+{
+ device.option_add("8sssd", FLOPPY_8_SSSD);
+}
ROM_START( fdc01 )
ROM_REGION(0x20, FDC01_ROM_REGION, 0)
diff --git a/src/devices/bus/a2bus/corvfdc02.cpp b/src/devices/bus/a2bus/corvfdc02.cpp
index e4eb116d220..3367d18384e 100644
--- a/src/devices/bus/a2bus/corvfdc02.cpp
+++ b/src/devices/bus/a2bus/corvfdc02.cpp
@@ -34,9 +34,10 @@ FLOPPY_FORMATS_MEMBER( a2bus_corvfdc02_device::corv_floppy_formats )
FLOPPY_IMD_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( corv_floppies )
- SLOT_INTERFACE( "525dsqd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void corv_floppies(device_slot_interface &device)
+{
+ device.option_add("525dsqd", FLOPPY_525_QD);
+}
ROM_START( fdc02 )
ROM_REGION(0x20, FDC02_ROM_REGION, 0)
diff --git a/src/devices/bus/a7800/a78_carts.h b/src/devices/bus/a7800/a78_carts.h
index dc9abffbbe2..0a87249f3c0 100644
--- a/src/devices/bus/a7800/a78_carts.h
+++ b/src/devices/bus/a7800/a78_carts.h
@@ -10,31 +10,32 @@
#include "hiscore.h"
#include "cpuwiz.h"
-static SLOT_INTERFACE_START(a7800_cart)
- SLOT_INTERFACE_INTERNAL("a78_rom", A78_ROM)
- SLOT_INTERFACE_INTERNAL("a78_pokey", A78_ROM_POKEY)
- SLOT_INTERFACE_INTERNAL("a78_sg", A78_ROM_SG)
- SLOT_INTERFACE_INTERNAL("a78_sg_pokey", A78_ROM_SG_POKEY)
- SLOT_INTERFACE_INTERNAL("a78_sg_ram", A78_ROM_SG_RAM)
- SLOT_INTERFACE_INTERNAL("a78_sg9", A78_ROM_SG9)
- SLOT_INTERFACE_INTERNAL("a78_mram", A78_ROM_MRAM)
- SLOT_INTERFACE_INTERNAL("a78_abs", A78_ROM_ABSOLUTE)
- SLOT_INTERFACE_INTERNAL("a78_act", A78_ROM_ACTIVISION)
- SLOT_INTERFACE_INTERNAL("a78_hsc", A78_HISCORE)
- SLOT_INTERFACE_INTERNAL("a78_xboard", A78_XBOARD) // the actual XBoarD expansion (as passthru)
- SLOT_INTERFACE_INTERNAL("a78_xm", A78_XM) // the actual XM expansion (as passthru)
- SLOT_INTERFACE_INTERNAL("a78_megacart", A78_ROM_MEGACART)
- SLOT_INTERFACE_INTERNAL("a78_versa", A78_ROM_VERSABOARD)
+static void a7800_cart(device_slot_interface &device)
+{
+ device.option_add_internal("a78_rom", A78_ROM);
+ device.option_add_internal("a78_pokey", A78_ROM_POKEY);
+ device.option_add_internal("a78_sg", A78_ROM_SG);
+ device.option_add_internal("a78_sg_pokey", A78_ROM_SG_POKEY);
+ device.option_add_internal("a78_sg_ram", A78_ROM_SG_RAM);
+ device.option_add_internal("a78_sg9", A78_ROM_SG9);
+ device.option_add_internal("a78_mram", A78_ROM_MRAM);
+ device.option_add_internal("a78_abs", A78_ROM_ABSOLUTE);
+ device.option_add_internal("a78_act", A78_ROM_ACTIVISION);
+ device.option_add_internal("a78_hsc", A78_HISCORE);
+ device.option_add_internal("a78_xboard", A78_XBOARD); // the actual XBoarD expansion (as passthru)
+ device.option_add_internal("a78_xm", A78_XM); // the actual XM expansion (as passthru)
+ device.option_add_internal("a78_megacart", A78_ROM_MEGACART);
+ device.option_add_internal("a78_versa", A78_ROM_VERSABOARD);
// cart variants with a POKEY at 0x0450 (typically a VersaBoard variant, or an homebrew pcb)
- SLOT_INTERFACE_INTERNAL("a78_p450_t0", A78_ROM_P450)
- SLOT_INTERFACE_INTERNAL("a78_p450_t1", A78_ROM_P450_POKEY)
- SLOT_INTERFACE_INTERNAL("a78_p450_t6", A78_ROM_P450_SG_RAM)
- SLOT_INTERFACE_INTERNAL("a78_p450_ta", A78_ROM_P450_SG9)
- SLOT_INTERFACE_INTERNAL("a78_p450_vb", A78_ROM_P450_VB)
-SLOT_INTERFACE_END
+ device.option_add_internal("a78_p450_t0", A78_ROM_P450);
+ device.option_add_internal("a78_p450_t1", A78_ROM_P450_POKEY);
+ device.option_add_internal("a78_p450_t6", A78_ROM_P450_SG_RAM);
+ device.option_add_internal("a78_p450_ta", A78_ROM_P450_SG9);
+ device.option_add_internal("a78_p450_vb", A78_ROM_P450_VB);
+}
// supported devices
-SLOT_INTERFACE_EXTERN(a78_cart);
+void a78_cart(device_slot_interface &device);
#endif // MAME_BUS_A7800_A78_CARTS_H
diff --git a/src/devices/bus/a800/a800_carts.h b/src/devices/bus/a800/a800_carts.h
index 6d6e68ad6c3..d4ce87f5b54 100644
--- a/src/devices/bus/a800/a800_carts.h
+++ b/src/devices/bus/a800/a800_carts.h
@@ -10,41 +10,45 @@
#include "oss.h"
#include "sparta.h"
-static SLOT_INTERFACE_START(a800_left)
- SLOT_INTERFACE_INTERNAL("a800_8k", A800_ROM)
- SLOT_INTERFACE_INTERNAL("a800_8k_right", A800_ROM)
- SLOT_INTERFACE_INTERNAL("a800_16k", A800_ROM)
- SLOT_INTERFACE_INTERNAL("a800_phoenix", A800_ROM) // not really emulated at this stage
- SLOT_INTERFACE_INTERNAL("a800_bbsb", A800_ROM_BBSB)
- SLOT_INTERFACE_INTERNAL("a800_oss8k", A800_ROM_OSS8K)
- SLOT_INTERFACE_INTERNAL("a800_oss034m", A800_ROM_OSS34)
- SLOT_INTERFACE_INTERNAL("a800_oss043m", A800_ROM_OSS43)
- SLOT_INTERFACE_INTERNAL("a800_ossm091", A800_ROM_OSS91)
- SLOT_INTERFACE_INTERNAL("a800_williams", A800_ROM_WILLIAMS)
- SLOT_INTERFACE_INTERNAL("a800_diamond", A800_ROM_EXPRESS)
- SLOT_INTERFACE_INTERNAL("a800_express", A800_ROM_EXPRESS)
- SLOT_INTERFACE_INTERNAL("a800_sparta", A800_ROM_SPARTADOS) // this is a passthru cart with unemulated (atm) subslot
- SLOT_INTERFACE_INTERNAL("a800_blizzard", A800_ROM)
- SLOT_INTERFACE_INTERNAL("a800_turbo64", A800_ROM_TURBO)
- SLOT_INTERFACE_INTERNAL("a800_turbo128", A800_ROM_TURBO)
- SLOT_INTERFACE_INTERNAL("a800_tlink2", A800_ROM_TELELINK2)
- SLOT_INTERFACE_INTERNAL("a800_sitsa", A800_ROM_MICROCALC)
- SLOT_INTERFACE_INTERNAL("a800_corina", A800_ROM) // NOT SUPPORTED YET!
- SLOT_INTERFACE_INTERNAL("xegs", XEGS_ROM)
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START(a800_right)
- SLOT_INTERFACE_INTERNAL("a800_8k_right", A800_ROM)
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START(xegs_carts)
- SLOT_INTERFACE_INTERNAL("xegs", XEGS_ROM)
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START(a5200_carts)
- SLOT_INTERFACE_INTERNAL("a5200", A800_ROM)
- SLOT_INTERFACE_INTERNAL("a5200_2chips", A5200_ROM_2CHIPS)
- SLOT_INTERFACE_INTERNAL("a5200_bbsb", A5200_ROM_BBSB)
-SLOT_INTERFACE_END
+static void a800_left(device_slot_interface &device)
+{
+ device.option_add_internal("a800_8k", A800_ROM);
+ device.option_add_internal("a800_8k_right", A800_ROM);
+ device.option_add_internal("a800_16k", A800_ROM);
+ device.option_add_internal("a800_phoenix", A800_ROM); // not really emulated at this stage
+ device.option_add_internal("a800_bbsb", A800_ROM_BBSB);
+ device.option_add_internal("a800_oss8k", A800_ROM_OSS8K);
+ device.option_add_internal("a800_oss034m", A800_ROM_OSS34);
+ device.option_add_internal("a800_oss043m", A800_ROM_OSS43);
+ device.option_add_internal("a800_ossm091", A800_ROM_OSS91);
+ device.option_add_internal("a800_williams", A800_ROM_WILLIAMS);
+ device.option_add_internal("a800_diamond", A800_ROM_EXPRESS);
+ device.option_add_internal("a800_express", A800_ROM_EXPRESS);
+ device.option_add_internal("a800_sparta", A800_ROM_SPARTADOS); // this is a passthru cart with unemulated (atm) subslot
+ device.option_add_internal("a800_blizzard", A800_ROM);
+ device.option_add_internal("a800_turbo64", A800_ROM_TURBO);
+ device.option_add_internal("a800_turbo128", A800_ROM_TURBO);
+ device.option_add_internal("a800_tlink2", A800_ROM_TELELINK2);
+ device.option_add_internal("a800_sitsa", A800_ROM_MICROCALC);
+ device.option_add_internal("a800_corina", A800_ROM); // NOT SUPPORTED YET!
+ device.option_add_internal("xegs", XEGS_ROM);
+}
+
+static void a800_right(device_slot_interface &device)
+{
+ device.option_add_internal("a800_8k_right", A800_ROM);
+}
+
+static void xegs_carts(device_slot_interface &device)
+{
+ device.option_add_internal("xegs", XEGS_ROM);
+}
+
+static void a5200_carts(device_slot_interface &device)
+{
+ device.option_add_internal("a5200", A800_ROM);
+ device.option_add_internal("a5200_2chips", A5200_ROM_2CHIPS);
+ device.option_add_internal("a5200_bbsb", A5200_ROM_BBSB);
+}
#endif // MAME_BUS_A800_A800_CARTS_H
diff --git a/src/devices/bus/a800/a8sio.cpp b/src/devices/bus/a800/a8sio.cpp
index 0d5d248c11e..c8c7d788e48 100644
--- a/src/devices/bus/a800/a8sio.cpp
+++ b/src/devices/bus/a800/a8sio.cpp
@@ -196,6 +196,7 @@ WRITE_LINE_MEMBER( device_a8sio_card_interface::motor_w )
}
-SLOT_INTERFACE_START(a8sio_cards)
- SLOT_INTERFACE("cassette", A8SIO_CASSETTE)
-SLOT_INTERFACE_END
+void a8sio_cards(device_slot_interface &device)
+{
+ device.option_add("cassette", A8SIO_CASSETTE);
+}
diff --git a/src/devices/bus/a800/a8sio.h b/src/devices/bus/a800/a8sio.h
index 2795295bdc7..448edf5602f 100644
--- a/src/devices/bus/a800/a8sio.h
+++ b/src/devices/bus/a800/a8sio.h
@@ -142,6 +142,6 @@ public:
};
-SLOT_INTERFACE_EXTERN(a8sio_cards);
+void a8sio_cards(device_slot_interface &device);
#endif // MAME_BUS_A800_A8SIO_H
diff --git a/src/devices/bus/abcbus/abc890.cpp b/src/devices/bus/abcbus/abc890.cpp
index d318bc4b19a..8b5eaa07c78 100644
--- a/src/devices/bus/abcbus/abc890.cpp
+++ b/src/devices/bus/abcbus/abc890.cpp
@@ -71,7 +71,7 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(abc850_device::device_add_mconfig)
MCFG_ABCBUS_SLOT_ADD("io1", abcbus_cards, "abc850fdd")
MCFG_ABCBUS_SLOT_ADD("io2", abcbus_cards, "xebec")
- MCFG_DEVICE_CARD_DEFAULT_BIOS("xebec", "ro202")
+ MCFG_SLOT_OPTION_DEFAULT_BIOS("xebec", "ro202")
MCFG_ABCBUS_SLOT_ADD("io3", abcbus_cards, nullptr)
MCFG_ABCBUS_SLOT_ADD("io4", abcbus_cards, nullptr)
MCFG_ABCBUS_SLOT_ADD("io5", abcbus_cards, nullptr)
@@ -87,7 +87,7 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(abc852_device::device_add_mconfig)
MCFG_ABCBUS_SLOT_ADD("io1", abcbus_cards, "abc850fdd")
MCFG_ABCBUS_SLOT_ADD("io2", abcbus_cards, "xebec")
- MCFG_DEVICE_CARD_DEFAULT_BIOS("xebec", "basf6185")
+ MCFG_SLOT_OPTION_DEFAULT_BIOS("xebec", "basf6185")
MCFG_ABCBUS_SLOT_ADD("io3", abcbus_cards, nullptr)
MCFG_ABCBUS_SLOT_ADD("io4", abcbus_cards, nullptr)
MCFG_ABCBUS_SLOT_ADD("io5", abcbus_cards, nullptr)
@@ -103,7 +103,7 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(abc856_device::device_add_mconfig)
MCFG_ABCBUS_SLOT_ADD("io1", abcbus_cards, "abc850fdd")
MCFG_ABCBUS_SLOT_ADD("io2", abcbus_cards, "xebec")
- MCFG_DEVICE_CARD_DEFAULT_BIOS("xebec", "micr1325")
+ MCFG_SLOT_OPTION_DEFAULT_BIOS("xebec", "micr1325")
MCFG_ABCBUS_SLOT_ADD("io3", abcbus_cards, nullptr)
MCFG_ABCBUS_SLOT_ADD("io4", abcbus_cards, nullptr)
MCFG_ABCBUS_SLOT_ADD("io5", abcbus_cards, nullptr)
diff --git a/src/devices/bus/abcbus/abcbus.cpp b/src/devices/bus/abcbus/abcbus.cpp
index 2129140167c..f1a06f343e1 100644
--- a/src/devices/bus/abcbus/abcbus.cpp
+++ b/src/devices/bus/abcbus/abcbus.cpp
@@ -101,51 +101,54 @@ void abcbus_slot_device::device_start()
// SLOT_INTERFACE( abc80_cards )
//-------------------------------------------------
-SLOT_INTERFACE_START( abc80_cards )
- SLOT_INTERFACE("fd2", ABC_FD2)
- SLOT_INTERFACE("memcard", ABC_MEMORY_CARD)
- SLOT_INTERFACE("abcexp", ABC_EXPANSION_UNIT)
- SLOT_INTERFACE("16k", ABC80_16KB_RAM_CARD)
- SLOT_INTERFACE("slow", LUXOR_55_10828)
- SLOT_INTERFACE("abc830", ABC830)
- SLOT_INTERFACE("db411223", DATABOARD_4112_23)
- SLOT_INTERFACE("unidisk", UNIDISK)
- SLOT_INTERFACE("cadabc", ABC_CADMOUSE)
-SLOT_INTERFACE_END
+void abc80_cards(device_slot_interface &device)
+{
+ device.option_add("fd2", ABC_FD2);
+ device.option_add("memcard", ABC_MEMORY_CARD);
+ device.option_add("abcexp", ABC_EXPANSION_UNIT);
+ device.option_add("16k", ABC80_16KB_RAM_CARD);
+ device.option_add("slow", LUXOR_55_10828);
+ device.option_add("abc830", ABC830);
+ device.option_add("db411223", DATABOARD_4112_23);
+ device.option_add("unidisk", UNIDISK);
+ device.option_add("cadabc", ABC_CADMOUSE);
+}
//-------------------------------------------------
// SLOT_INTERFACE( abcbus_cards )
//-------------------------------------------------
-SLOT_INTERFACE_START( abcbus_cards )
- SLOT_INTERFACE("abc830", ABC830)
- SLOT_INTERFACE("abc832", ABC832)
- SLOT_INTERFACE("abc834", ABC834)
- SLOT_INTERFACE("abc838", ABC838)
- SLOT_INTERFACE("abc850", ABC850)
- SLOT_INTERFACE_INTERNAL("abc850fdd", ABC850_FLOPPY)
- SLOT_INTERFACE("abc852", ABC852)
- SLOT_INTERFACE("abc856", ABC856)
- SLOT_INTERFACE("abc890", ABC890)
- SLOT_INTERFACE("abc894", ABC894)
- SLOT_INTERFACE("db411223", DATABOARD_4112_23)
- SLOT_INTERFACE("hdc", ABC_HDC)
- SLOT_INTERFACE("sio", ABC_SIO)
- SLOT_INTERFACE("slow", LUXOR_55_10828)
- SLOT_INTERFACE("uni800", ABC_UNI800)
- SLOT_INTERFACE("unidisk", UNIDISK)
- SLOT_INTERFACE("slutprov", ABC_SLUTPROV)
- SLOT_INTERFACE("xebec", LUXOR_55_21056)
-SLOT_INTERFACE_END
+void abcbus_cards(device_slot_interface &device)
+{
+ device.option_add("abc830", ABC830);
+ device.option_add("abc832", ABC832);
+ device.option_add("abc834", ABC834);
+ device.option_add("abc838", ABC838);
+ device.option_add("abc850", ABC850);
+ device.option_add_internal("abc850fdd", ABC850_FLOPPY);
+ device.option_add("abc852", ABC852);
+ device.option_add("abc856", ABC856);
+ device.option_add("abc890", ABC890);
+ device.option_add("abc894", ABC894);
+ device.option_add("db411223", DATABOARD_4112_23);
+ device.option_add("hdc", ABC_HDC);
+ device.option_add("sio", ABC_SIO);
+ device.option_add("slow", LUXOR_55_10828);
+ device.option_add("uni800", ABC_UNI800);
+ device.option_add("unidisk", UNIDISK);
+ device.option_add("slutprov", ABC_SLUTPROV);
+ device.option_add("xebec", LUXOR_55_21056);
+}
//-------------------------------------------------
// SLOT_INTERFACE( abc1600bus_cards )
//-------------------------------------------------
-SLOT_INTERFACE_START( abc1600bus_cards )
- SLOT_INTERFACE("4105", LUXOR_4105) // SASI interface
-// SLOT_INTERFACE("4077", LUXOR_4077) // Winchester controller
-// SLOT_INTERFACE("4004", LUXOR_4004) // ICOM I/O (Z80, Z80PIO, Z80SIO/2, Z80CTC, 2 Z80DMAs, 2 PROMs, 64KB RAM)
-SLOT_INTERFACE_END
+void abc1600bus_cards(device_slot_interface &device)
+{
+ device.option_add("4105", LUXOR_4105); // SASI interface
+// device.option_add("4077", LUXOR_4077); // Winchester controller
+// device.option_add("4004", LUXOR_4004); // ICOM I/O (Z80, Z80PIO, Z80SIO/2, Z80CTC, 2 Z80DMAs, 2 PROMs, 64KB RAM)
+}
diff --git a/src/devices/bus/abcbus/abcbus.h b/src/devices/bus/abcbus/abcbus.h
index aee0c75c2fc..4556bf8ba6c 100644
--- a/src/devices/bus/abcbus/abcbus.h
+++ b/src/devices/bus/abcbus/abcbus.h
@@ -307,9 +307,9 @@ protected:
DECLARE_DEVICE_TYPE(ABCBUS_SLOT, abcbus_slot_device)
-SLOT_INTERFACE_EXTERN( abc80_cards );
-SLOT_INTERFACE_EXTERN( abcbus_cards );
-SLOT_INTERFACE_EXTERN( abc1600bus_cards );
+void abc80_cards(device_slot_interface &device);
+void abcbus_cards(device_slot_interface &device);
+void abc1600bus_cards(device_slot_interface &device);
typedef device_type_iterator<abcbus_slot_device> abcbus_slot_device_iterator;
diff --git a/src/devices/bus/abcbus/fd2.cpp b/src/devices/bus/abcbus/fd2.cpp
index 35cfe35dc12..7783a69242a 100644
--- a/src/devices/bus/abcbus/fd2.cpp
+++ b/src/devices/bus/abcbus/fd2.cpp
@@ -223,9 +223,10 @@ static const z80_daisy_config daisy_chain[] =
// SLOT_INTERFACE( abc_fd2_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( abc_fd2_floppies )
- SLOT_INTERFACE( "525sssd", FLOPPY_525_SSSD )
-SLOT_INTERFACE_END
+static void abc_fd2_floppies(device_slot_interface &device)
+{
+ device.option_add("525sssd", FLOPPY_525_SSSD);
+}
FLOPPY_FORMATS_MEMBER( abc_fd2_device::floppy_formats )
FLOPPY_ABC_FD2_FORMAT
diff --git a/src/devices/bus/abcbus/lux10828.cpp b/src/devices/bus/abcbus/lux10828.cpp
index 6928460267e..c20305dfa3c 100644
--- a/src/devices/bus/abcbus/lux10828.cpp
+++ b/src/devices/bus/abcbus/lux10828.cpp
@@ -287,13 +287,14 @@ static const z80_daisy_config daisy_chain[] =
{ nullptr }
};
-static SLOT_INTERFACE_START( abc_floppies )
- SLOT_INTERFACE( "525sssd", FLOPPY_525_SSSD )
- SLOT_INTERFACE( "525sd", FLOPPY_525_SD )
- SLOT_INTERFACE( "525ssdd", FLOPPY_525_SSDD )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
- SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD )
-SLOT_INTERFACE_END
+static void abc_floppies(device_slot_interface &device)
+{
+ device.option_add("525sssd", FLOPPY_525_SSSD);
+ device.option_add("525sd", FLOPPY_525_SD);
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("8dsdd", FLOPPY_8_DSDD);
+}
FLOPPY_FORMATS_MEMBER( luxor_55_10828_device::floppy_formats )
FLOPPY_ABC800_FORMAT
diff --git a/src/devices/bus/abcbus/lux21046.cpp b/src/devices/bus/abcbus/lux21046.cpp
index cecbf5a396e..8ae0cef2e4a 100644
--- a/src/devices/bus/abcbus/lux21046.cpp
+++ b/src/devices/bus/abcbus/lux21046.cpp
@@ -256,14 +256,15 @@ FLOPPY_FORMATS_MEMBER( luxor_55_21046_device::floppy_formats )
FLOPPY_ABC800_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( abc_floppies )
- SLOT_INTERFACE( "525sssd", FLOPPY_525_SSSD )
- SLOT_INTERFACE( "525sd", FLOPPY_525_SD )
- SLOT_INTERFACE( "525ssdd", FLOPPY_525_SSDD )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
- SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD )
-SLOT_INTERFACE_END
+static void abc_floppies(device_slot_interface &device)
+{
+ device.option_add("525sssd", FLOPPY_525_SSSD);
+ device.option_add("525sd", FLOPPY_525_SD);
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+ device.option_add("8dsdd", FLOPPY_8_DSDD);
+}
WRITE_LINE_MEMBER( luxor_55_21046_device::fdc_intrq_w )
{
diff --git a/src/devices/bus/abckb/abckb.cpp b/src/devices/bus/abckb/abckb.cpp
index ef15661ae42..f851deeffb8 100644
--- a/src/devices/bus/abckb/abckb.cpp
+++ b/src/devices/bus/abckb/abckb.cpp
@@ -142,9 +142,10 @@ WRITE_LINE_MEMBER( abc_keyboard_port_device::keydown_w )
#include "abc77.h"
#include "abc99.h"
-SLOT_INTERFACE_START( abc_keyboard_devices )
- SLOT_INTERFACE("abc800", ABC800_KEYBOARD)
- SLOT_INTERFACE("abc55", ABC55)
- SLOT_INTERFACE("abc77", ABC77)
- SLOT_INTERFACE("abc99", ABC99)
-SLOT_INTERFACE_END
+void abc_keyboard_devices(device_slot_interface &device)
+{
+ device.option_add("abc800", ABC800_KEYBOARD);
+ device.option_add("abc55", ABC55);
+ device.option_add("abc77", ABC77);
+ device.option_add("abc99", ABC99);
+}
diff --git a/src/devices/bus/abckb/abckb.h b/src/devices/bus/abckb/abckb.h
index 73c62ac6a0e..2f1256299ba 100644
--- a/src/devices/bus/abckb/abckb.h
+++ b/src/devices/bus/abckb/abckb.h
@@ -89,6 +89,6 @@ DECLARE_DEVICE_TYPE(ABC_KEYBOARD_PORT, abc_keyboard_port_device)
// supported devices
-SLOT_INTERFACE_EXTERN( abc_keyboard_devices );
+void abc_keyboard_devices(device_slot_interface &device);
#endif // MAME_BUS_ABCKB_ABCKB_H
diff --git a/src/devices/bus/adam/exp.cpp b/src/devices/bus/adam/exp.cpp
index 5c4b24481d7..c9d529a68ab 100644
--- a/src/devices/bus/adam/exp.cpp
+++ b/src/devices/bus/adam/exp.cpp
@@ -156,24 +156,27 @@ void adam_expansion_slot_device::bd_w(address_space &space, offs_t offset, uint8
// SLOT_INTERFACE( adam_slot1_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( adam_slot1_devices )
- SLOT_INTERFACE("adamlink", ADAMLINK)
-SLOT_INTERFACE_END
+void adam_slot1_devices(device_slot_interface &device)
+{
+ device.option_add("adamlink", ADAMLINK);
+}
//-------------------------------------------------
// SLOT_INTERFACE( adam_slot2_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( adam_slot2_devices )
- SLOT_INTERFACE("ide", ADAM_IDE)
-SLOT_INTERFACE_END
+void adam_slot2_devices(device_slot_interface &device)
+{
+ device.option_add("ide", ADAM_IDE);
+}
//-------------------------------------------------
// SLOT_INTERFACE( adam_slot3_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( adam_slot3_devices )
- SLOT_INTERFACE("ram", ADAM_RAM)
-SLOT_INTERFACE_END
+void adam_slot3_devices(device_slot_interface &device)
+{
+ device.option_add("ram", ADAM_RAM);
+}
diff --git a/src/devices/bus/adam/exp.h b/src/devices/bus/adam/exp.h
index e59ea191ab4..9743577e7ec 100644
--- a/src/devices/bus/adam/exp.h
+++ b/src/devices/bus/adam/exp.h
@@ -116,8 +116,8 @@ protected:
DECLARE_DEVICE_TYPE(ADAM_EXPANSION_SLOT, adam_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( adam_slot1_devices );
-SLOT_INTERFACE_EXTERN( adam_slot2_devices );
-SLOT_INTERFACE_EXTERN( adam_slot3_devices );
+void adam_slot1_devices(device_slot_interface &device);
+void adam_slot2_devices(device_slot_interface &device);
+void adam_slot3_devices(device_slot_interface &device);
#endif // MAME_BUS_ADAM_EXP_H
diff --git a/src/devices/bus/adamnet/adamnet.cpp b/src/devices/bus/adamnet/adamnet.cpp
index 832ea2309c4..7e45a72adca 100644
--- a/src/devices/bus/adamnet/adamnet.cpp
+++ b/src/devices/bus/adamnet/adamnet.cpp
@@ -257,10 +257,11 @@ WRITE_LINE_MEMBER( adamnet_device::reset_w )
#include "printer.h"
#include "spi.h"
-SLOT_INTERFACE_START( adamnet_devices )
- SLOT_INTERFACE("ddp", ADAM_DDP)
- SLOT_INTERFACE("fdc", ADAM_FDC)
- SLOT_INTERFACE("kb", ADAM_KB)
- SLOT_INTERFACE("prn", ADAM_PRN)
- SLOT_INTERFACE("spi", ADAM_SPI)
-SLOT_INTERFACE_END
+void adamnet_devices(device_slot_interface &device)
+{
+ device.option_add("ddp", ADAM_DDP);
+ device.option_add("fdc", ADAM_FDC);
+ device.option_add("kb", ADAM_KB);
+ device.option_add("prn", ADAM_PRN);
+ device.option_add("spi", ADAM_SPI);
+}
diff --git a/src/devices/bus/adamnet/adamnet.h b/src/devices/bus/adamnet/adamnet.h
index 76e42742f1c..b95fca7585d 100644
--- a/src/devices/bus/adamnet/adamnet.h
+++ b/src/devices/bus/adamnet/adamnet.h
@@ -127,8 +127,6 @@ DECLARE_DEVICE_TYPE(ADAMNET, adamnet_device)
DECLARE_DEVICE_TYPE(ADAMNET_SLOT, adamnet_slot_device)
-SLOT_INTERFACE_EXTERN( adamnet_devices );
-
-
+void adamnet_devices(device_slot_interface &device);
#endif // MAME_BUS_ADAMNET_ADAMNET_H
diff --git a/src/devices/bus/adamnet/fdc.cpp b/src/devices/bus/adamnet/fdc.cpp
index 00b0d4c64de..68d6b377062 100644
--- a/src/devices/bus/adamnet/fdc.cpp
+++ b/src/devices/bus/adamnet/fdc.cpp
@@ -117,9 +117,10 @@ FLOPPY_FORMATS_MEMBER( adam_fdc_device::floppy_formats )
FLOPPY_ADAM_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( adam_fdc_floppies )
- SLOT_INTERFACE( "525ssdd", FLOPPY_525_SSDD )
-SLOT_INTERFACE_END
+static void adam_fdc_floppies(device_slot_interface &device)
+{
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/amiga/keyboard/keyboard.cpp b/src/devices/bus/amiga/keyboard/keyboard.cpp
index 8d617350296..c3669743caa 100644
--- a/src/devices/bus/amiga/keyboard/keyboard.cpp
+++ b/src/devices/bus/amiga/keyboard/keyboard.cpp
@@ -104,16 +104,17 @@ device_amiga_keyboard_interface::~device_amiga_keyboard_interface()
// SLOT INTERFACE
//**************************************************************************
-SLOT_INTERFACE_START( amiga_keyboard_devices )
- SLOT_INTERFACE("a500_us", A500_KBD_US)
- SLOT_INTERFACE("a500_de", A500_KBD_DE)
- SLOT_INTERFACE("a500_fr", A500_KBD_FR)
- SLOT_INTERFACE("a500_it", A500_KBD_IT)
- SLOT_INTERFACE("a500_se", A500_KBD_SE)
- SLOT_INTERFACE("a500_es", A500_KBD_ES)
- SLOT_INTERFACE("a500_dk", A500_KBD_DK)
- SLOT_INTERFACE("a500_ch", A500_KBD_CH)
- SLOT_INTERFACE("a500_no", A500_KBD_NO)
- SLOT_INTERFACE("a500_gb", A500_KBD_GB)
- SLOT_INTERFACE("a1200_us", A1200_KBD)
-SLOT_INTERFACE_END
+void amiga_keyboard_devices(device_slot_interface &device)
+{
+ device.option_add("a500_us", A500_KBD_US);
+ device.option_add("a500_de", A500_KBD_DE);
+ device.option_add("a500_fr", A500_KBD_FR);
+ device.option_add("a500_it", A500_KBD_IT);
+ device.option_add("a500_se", A500_KBD_SE);
+ device.option_add("a500_es", A500_KBD_ES);
+ device.option_add("a500_dk", A500_KBD_DK);
+ device.option_add("a500_ch", A500_KBD_CH);
+ device.option_add("a500_no", A500_KBD_NO);
+ device.option_add("a500_gb", A500_KBD_GB);
+ device.option_add("a1200_us", A1200_KBD);
+}
diff --git a/src/devices/bus/amiga/keyboard/keyboard.h b/src/devices/bus/amiga/keyboard/keyboard.h
index d78d1bcc6cd..772a904f889 100644
--- a/src/devices/bus/amiga/keyboard/keyboard.h
+++ b/src/devices/bus/amiga/keyboard/keyboard.h
@@ -98,6 +98,6 @@ protected:
DECLARE_DEVICE_TYPE(AMIGA_KEYBOARD_INTERFACE, amiga_keyboard_bus_device)
// supported devices
-SLOT_INTERFACE_EXTERN( amiga_keyboard_devices );
+void amiga_keyboard_devices(device_slot_interface &device);
#endif // MAME_BUS_AMIGA_KEYBOARD_H
diff --git a/src/devices/bus/amiga/zorro/cards.cpp b/src/devices/bus/amiga/zorro/cards.cpp
index 572ee491d93..8d0c7939b01 100644
--- a/src/devices/bus/amiga/zorro/cards.cpp
+++ b/src/devices/bus/amiga/zorro/cards.cpp
@@ -16,32 +16,37 @@
#include "buddha.h"
-SLOT_INTERFACE_START( a1000_expansion_cards )
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( a500_expansion_cards )
- SLOT_INTERFACE("ar1", ACTION_REPLAY_MK1)
- SLOT_INTERFACE("ar2", ACTION_REPLAY_MK2)
- SLOT_INTERFACE("ar3", ACTION_REPLAY_MK3)
- SLOT_INTERFACE("a590", A590)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( a2000_expansion_cards )
- SLOT_INTERFACE("ar1", ACTION_REPLAY_MK1)
- SLOT_INTERFACE("ar2", ACTION_REPLAY_MK2)
- SLOT_INTERFACE("ar3", ACTION_REPLAY_MK3)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( zorro2_cards )
- SLOT_INTERFACE("a2052", A2052)
- SLOT_INTERFACE("a2091", A2091)
- SLOT_INTERFACE("a2232", A2232)
- SLOT_INTERFACE("buddha", BUDDHA)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( zorro3_cards )
- SLOT_INTERFACE("a2052", A2052)
- SLOT_INTERFACE("a2091", A2091)
- SLOT_INTERFACE("a2232", A2232)
- SLOT_INTERFACE("buddha", BUDDHA)
-SLOT_INTERFACE_END
+void a1000_expansion_cards(device_slot_interface &device)
+{
+}
+
+void a500_expansion_cards(device_slot_interface &device)
+{
+ device.option_add("ar1", ACTION_REPLAY_MK1);
+ device.option_add("ar2", ACTION_REPLAY_MK2);
+ device.option_add("ar3", ACTION_REPLAY_MK3);
+ device.option_add("a590", A590);
+}
+
+void a2000_expansion_cards(device_slot_interface &device)
+{
+ device.option_add("ar1", ACTION_REPLAY_MK1);
+ device.option_add("ar2", ACTION_REPLAY_MK2);
+ device.option_add("ar3", ACTION_REPLAY_MK3);
+}
+
+void zorro2_cards(device_slot_interface &device)
+{
+ device.option_add("a2052", A2052);
+ device.option_add("a2091", A2091);
+ device.option_add("a2232", A2232);
+ device.option_add("buddha", BUDDHA);
+}
+
+void zorro3_cards(device_slot_interface &device)
+{
+ device.option_add("a2052", A2052);
+ device.option_add("a2091", A2091);
+ device.option_add("a2232", A2232);
+ device.option_add("buddha", BUDDHA);
+}
diff --git a/src/devices/bus/amiga/zorro/cards.h b/src/devices/bus/amiga/zorro/cards.h
index 3d1e00935ca..6daa99bf265 100644
--- a/src/devices/bus/amiga/zorro/cards.h
+++ b/src/devices/bus/amiga/zorro/cards.h
@@ -27,11 +27,11 @@
#pragma once
-SLOT_INTERFACE_EXTERN( a1000_expansion_cards );
-SLOT_INTERFACE_EXTERN( a500_expansion_cards );
-SLOT_INTERFACE_EXTERN( a2000_expansion_cards );
+void a1000_expansion_cards(device_slot_interface &device);
+void a500_expansion_cards(device_slot_interface &device);
+void a2000_expansion_cards(device_slot_interface &device);
-SLOT_INTERFACE_EXTERN( zorro2_cards );
-SLOT_INTERFACE_EXTERN( zorro3_cards );
+void zorro2_cards(device_slot_interface &device);
+void zorro3_cards(device_slot_interface &device);
#endif // MAME_BUS_AMIGA_ZORRO_CARDS_H
diff --git a/src/devices/bus/apricot/expansion/cards.cpp b/src/devices/bus/apricot/expansion/cards.cpp
index eb5b71948c0..d2c35366e42 100644
--- a/src/devices/bus/apricot/expansion/cards.cpp
+++ b/src/devices/bus/apricot/expansion/cards.cpp
@@ -10,8 +10,9 @@
#include "cards.h"
#include "ram.h"
-SLOT_INTERFACE_START( apricot_expansion_cards )
- SLOT_INTERFACE("128k", APRICOT_128K_RAM)
- SLOT_INTERFACE("256k", APRICOT_256K_RAM)
- SLOT_INTERFACE("512k", APRICOT_512K_RAM)
-SLOT_INTERFACE_END
+void apricot_expansion_cards(device_slot_interface &device)
+{
+ device.option_add("128k", APRICOT_128K_RAM);
+ device.option_add("256k", APRICOT_256K_RAM);
+ device.option_add("512k", APRICOT_512K_RAM);
+}
diff --git a/src/devices/bus/apricot/expansion/cards.h b/src/devices/bus/apricot/expansion/cards.h
index 36767f81e44..0a5d0242069 100644
--- a/src/devices/bus/apricot/expansion/cards.h
+++ b/src/devices/bus/apricot/expansion/cards.h
@@ -11,6 +11,6 @@
#pragma once
-SLOT_INTERFACE_EXTERN( apricot_expansion_cards );
+void apricot_expansion_cards(device_slot_interface &device);
#endif // MAME_BUS_APRICOT_EXPANSION_CARDS_H
diff --git a/src/devices/bus/apricot/keyboard/keyboard.cpp b/src/devices/bus/apricot/keyboard/keyboard.cpp
index 87c491b6693..6f502ae7c76 100644
--- a/src/devices/bus/apricot/keyboard/keyboard.cpp
+++ b/src/devices/bus/apricot/keyboard/keyboard.cpp
@@ -101,6 +101,7 @@ device_apricot_keyboard_interface::~device_apricot_keyboard_interface()
// SLOT INTERFACE
//**************************************************************************
-SLOT_INTERFACE_START( apricot_keyboard_devices )
- SLOT_INTERFACE("hle", APRICOT_KEYBOARD_HLE)
-SLOT_INTERFACE_END
+void apricot_keyboard_devices(device_slot_interface &device)
+{
+ device.option_add("hle", APRICOT_KEYBOARD_HLE);
+}
diff --git a/src/devices/bus/apricot/keyboard/keyboard.h b/src/devices/bus/apricot/keyboard/keyboard.h
index 97896e87a33..857a78b7d1c 100644
--- a/src/devices/bus/apricot/keyboard/keyboard.h
+++ b/src/devices/bus/apricot/keyboard/keyboard.h
@@ -102,7 +102,7 @@ protected:
DECLARE_DEVICE_TYPE(APRICOT_KEYBOARD_INTERFACE, apricot_keyboard_bus_device)
// supported devices
-SLOT_INTERFACE_EXTERN( apricot_keyboard_devices );
+void apricot_keyboard_devices(device_slot_interface &device);
#endif // MAME_BUS_APRICOT_KEYBOARD_KEYBOARD_H
diff --git a/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp b/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp
index 12b7fad79ae..6fa2407aae7 100644
--- a/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp
+++ b/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp
@@ -131,18 +131,19 @@ WRITE_LINE_MEMBER(bbc_1mhzbus_slot_device::rst_w)
#include "cfa3000opt.h"
-SLOT_INTERFACE_START(bbc_1mhzbus_devices)
-// SLOT_INTERFACE("teletext", BBC_TELETEXT) /* Acorn ANE01 Teletext Adapter */
-// SLOT_INTERFACE("ieee488", BBC_IEEE488) /* Acorn ANK01 IEEE488 Interface */
-// SLOT_INTERFACE("m500", BBC_M500) /* Acorn ANV02 Music 500 */
-// SLOT_INTERFACE("m2000", BBC_M2000) /* Hybrid Music 2000 MIDI Interface */
-// SLOT_INTERFACE("m3000", BBC_M3000) /* Hybrid Music 3000 Expander */
-// SLOT_INTERFACE("m5000", BBC_M5000) /* Hybrid Music 5000 Synthesiser */
-// SLOT_INTERFACE("multiform", BBC_MULTIFORM) /* Technomatic Multiform Z80 */
- SLOT_INTERFACE("opus3", BBC_OPUS3) /* Opus Challenger 3 */
-// SLOT_INTERFACE("ramdisc", BBC_RAMDISC) /* Morley Electronics RAM Disc */
-// SLOT_INTERFACE("graduate", BBC_GRADUATE) /* The Torch Graduate G400/G800 */
- SLOT_INTERFACE("beebsid", BBC_BEEBSID) /* BeebSID */
-// SLOT_INTERFACE("prisma3", BBC_PRISMA3) /* PRISMA-3 - Millipede 1989 */
- SLOT_INTERFACE("cfa3000opt", CFA3000_OPT) /* Henson CFA 3000 Option Board */
-SLOT_INTERFACE_END
+void bbc_1mhzbus_devices(device_slot_interface &device)
+{
+// device.option_add("teletext", BBC_TELETEXT); /* Acorn ANE01 Teletext Adapter */
+// device.option_add("ieee488", BBC_IEEE488); /* Acorn ANK01 IEEE488 Interface */
+// device.option_add("m500", BBC_M500); /* Acorn ANV02 Music 500 */
+// device.option_add("m2000", BBC_M2000); /* Hybrid Music 2000 MIDI Interface */
+// device.option_add("m3000", BBC_M3000); /* Hybrid Music 3000 Expander */
+// device.option_add("m5000", BBC_M5000); /* Hybrid Music 5000 Synthesiser */
+// device.option_add("multiform", BBC_MULTIFORM); /* Technomatic Multiform Z80 */
+ device.option_add("opus3", BBC_OPUS3); /* Opus Challenger 3 */
+// device.option_add("ramdisc", BBC_RAMDISC); /* Morley Electronics RAM Disc */
+// device.option_add("graduate", BBC_GRADUATE); /* The Torch Graduate G400/G800 */
+ device.option_add("beebsid", BBC_BEEBSID); /* BeebSID */
+// device.option_add("prisma3", BBC_PRISMA3); /* PRISMA-3 - Millipede 1989 */
+ device.option_add("cfa3000opt", CFA3000_OPT); /* Henson CFA 3000 Option Board */
+}
diff --git a/src/devices/bus/bbc/1mhzbus/1mhzbus.h b/src/devices/bus/bbc/1mhzbus/1mhzbus.h
index de83f89632c..f53d015b345 100644
--- a/src/devices/bus/bbc/1mhzbus/1mhzbus.h
+++ b/src/devices/bus/bbc/1mhzbus/1mhzbus.h
@@ -163,7 +163,7 @@ protected:
// device type definition
DECLARE_DEVICE_TYPE(BBC_1MHZBUS_SLOT, bbc_1mhzbus_slot_device)
-SLOT_INTERFACE_EXTERN( bbc_1mhzbus_devices );
+void bbc_1mhzbus_devices(device_slot_interface &device);
#endif // MAME_BUS_BBC_1MHZBUS_1MHZBUS_H
diff --git a/src/devices/bus/bbc/1mhzbus/opus3.cpp b/src/devices/bus/bbc/1mhzbus/opus3.cpp
index 6aedae49556..57e6893222b 100644
--- a/src/devices/bus/bbc/1mhzbus/opus3.cpp
+++ b/src/devices/bus/bbc/1mhzbus/opus3.cpp
@@ -60,9 +60,10 @@ FLOPPY_FORMATS_MEMBER(bbc_opus3_device::floppy_formats)
FLOPPY_OPUS_DDCPM_FORMAT
FLOPPY_FORMATS_END0
-SLOT_INTERFACE_START(bbc_floppies)
- SLOT_INTERFACE("525qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+void bbc_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
ROM_START( opus3 )
diff --git a/src/devices/bus/bbc/analogue/analogue.cpp b/src/devices/bus/bbc/analogue/analogue.cpp
index fd004baab91..226bc69bf0f 100644
--- a/src/devices/bus/bbc/analogue/analogue.cpp
+++ b/src/devices/bus/bbc/analogue/analogue.cpp
@@ -111,9 +111,10 @@ void bbc_analogue_slot_device::device_reset()
#include "cfa3000a.h"
-SLOT_INTERFACE_START( bbc_analogue_devices )
- SLOT_INTERFACE("acornjoy", BBC_ACORNJOY) /* Acorn ANH01 Joysticks */
- SLOT_INTERFACE("voltmace3b", BBC_VOLTMACE3B) /* Voltmace Delta 3b "Twin" Joysticks */
-// SLOT_INTERFACE("quinkey", BBC_QUINKEY) /* Microwriter Quinkey */
- SLOT_INTERFACE("cfa3000a", CFA3000_ANLG) /* Hanson CFA 3000 Analogue */
-SLOT_INTERFACE_END
+void bbc_analogue_devices(device_slot_interface &device)
+{
+ device.option_add("acornjoy", BBC_ACORNJOY); /* Acorn ANH01 Joysticks */
+ device.option_add("voltmace3b", BBC_VOLTMACE3B); /* Voltmace Delta 3b "Twin" Joysticks */
+// device.option_add("quinkey", BBC_QUINKEY); /* Microwriter Quinkey */
+ device.option_add("cfa3000a", CFA3000_ANLG); /* Hanson CFA 3000 Analogue */
+}
diff --git a/src/devices/bus/bbc/analogue/analogue.h b/src/devices/bus/bbc/analogue/analogue.h
index ed606ff6ce7..6e9cc8a9eae 100644
--- a/src/devices/bus/bbc/analogue/analogue.h
+++ b/src/devices/bus/bbc/analogue/analogue.h
@@ -96,6 +96,6 @@ protected:
// device type definition
DECLARE_DEVICE_TYPE(BBC_ANALOGUE_SLOT, bbc_analogue_slot_device)
-SLOT_INTERFACE_EXTERN( bbc_analogue_devices );
+void bbc_analogue_devices(device_slot_interface &device);
#endif // MAME_BUS_BBC_ANALOGUE_ANALOGUE_H
diff --git a/src/devices/bus/bbc/fdc/acorn.cpp b/src/devices/bus/bbc/fdc/acorn.cpp
index 33ce43870e9..5c61ccc813a 100644
--- a/src/devices/bus/bbc/fdc/acorn.cpp
+++ b/src/devices/bus/bbc/fdc/acorn.cpp
@@ -29,13 +29,14 @@ FLOPPY_FORMATS_MEMBER( bbc_acorn8271_device::floppy_formats )
FLOPPY_FSD_FORMAT
FLOPPY_FORMATS_END0
-static SLOT_INTERFACE_START( bbc_floppies_525 )
- SLOT_INTERFACE("525sssd", FLOPPY_525_SSSD)
- SLOT_INTERFACE("525sd", FLOPPY_525_SD)
- SLOT_INTERFACE("525ssdd", FLOPPY_525_SSDD)
- SLOT_INTERFACE("525dd", FLOPPY_525_DD)
- SLOT_INTERFACE("525qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+static void bbc_floppies_525(device_slot_interface &device)
+{
+ device.option_add("525sssd", FLOPPY_525_SSSD);
+ device.option_add("525sd", FLOPPY_525_SD);
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
ROM_START( acorn8271 )
ROM_REGION(0x4000, "dfs_rom", 0)
diff --git a/src/devices/bus/bbc/fdc/cumana.cpp b/src/devices/bus/bbc/fdc/cumana.cpp
index bfe97abd240..d36cc0b820e 100644
--- a/src/devices/bus/bbc/fdc/cumana.cpp
+++ b/src/devices/bus/bbc/fdc/cumana.cpp
@@ -31,13 +31,14 @@ FLOPPY_FORMATS_MEMBER( bbc_cumanafdc_device::floppy_formats )
FLOPPY_FSD_FORMAT
FLOPPY_FORMATS_END0
-static SLOT_INTERFACE_START( bbc_floppies_525 )
- SLOT_INTERFACE("525sssd", FLOPPY_525_SSSD)
- SLOT_INTERFACE("525sd", FLOPPY_525_SD)
- SLOT_INTERFACE("525ssdd", FLOPPY_525_SSDD)
- SLOT_INTERFACE("525dd", FLOPPY_525_DD)
- SLOT_INTERFACE("525qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+static void bbc_floppies_525(device_slot_interface &device)
+{
+ device.option_add("525sssd", FLOPPY_525_SSSD);
+ device.option_add("525sd", FLOPPY_525_SD);
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
ROM_START( cumana1 )
ROM_REGION(0x4000, "dfs_rom", 0)
diff --git a/src/devices/bus/bbc/fdc/cv1797.cpp b/src/devices/bus/bbc/fdc/cv1797.cpp
index a8c3f683cb1..940595b9ff6 100644
--- a/src/devices/bus/bbc/fdc/cv1797.cpp
+++ b/src/devices/bus/bbc/fdc/cv1797.cpp
@@ -30,13 +30,14 @@ FLOPPY_FORMATS_MEMBER( bbc_cv1797_device::floppy_formats )
FLOPPY_FSD_FORMAT
FLOPPY_FORMATS_END0
-static SLOT_INTERFACE_START( bbc_floppies_525 )
- SLOT_INTERFACE("525sssd", FLOPPY_525_SSSD)
- SLOT_INTERFACE("525sd", FLOPPY_525_SD)
- SLOT_INTERFACE("525ssdd", FLOPPY_525_SSDD)
- SLOT_INTERFACE("525dd", FLOPPY_525_DD)
- SLOT_INTERFACE("525qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+static void bbc_floppies_525(device_slot_interface &device)
+{
+ device.option_add("525sssd", FLOPPY_525_SSSD);
+ device.option_add("525sd", FLOPPY_525_SD);
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
ROM_START( cv1797 )
ROM_REGION(0x4000, "dfs_rom", 0)
diff --git a/src/devices/bus/bbc/fdc/fdc.cpp b/src/devices/bus/bbc/fdc/fdc.cpp
index 38be2f36997..5db09a3903e 100644
--- a/src/devices/bus/bbc/fdc/fdc.cpp
+++ b/src/devices/bus/bbc/fdc/fdc.cpp
@@ -119,21 +119,22 @@ void bbc_fdc_slot_device::device_reset()
//#include "zdfs.h"
-SLOT_INTERFACE_START( bbc_fdc_devices )
- SLOT_INTERFACE("acorn8271", BBC_ACORN8271)
- SLOT_INTERFACE("acorn1770", BBC_ACORN1770)
- SLOT_INTERFACE("cumana1", BBC_CUMANA1)
- SLOT_INTERFACE("cumana2", BBC_CUMANA2)
- SLOT_INTERFACE("cv1797", BBC_CV1797)
- //SLOT_INTERFACE("microware", BBC_MICROWARE)
- SLOT_INTERFACE("opus8272", BBC_OPUS8272)
- SLOT_INTERFACE("opus2791", BBC_OPUS2791)
- SLOT_INTERFACE("opus2793", BBC_OPUS2793)
- SLOT_INTERFACE("opus1770", BBC_OPUS1770)
- //SLOT_INTERFACE("stl8271", BBC_STL8271)
- //SLOT_INTERFACE("stl1770_1", BBC_STL1770_1)
- //SLOT_INTERFACE("stl1770_2", BBC_STL1770_2)
- SLOT_INTERFACE("weddb2", BBC_WEDDB2)
- SLOT_INTERFACE("weddb3", BBC_WEDDB3)
- //SLOT_INTERFACE("zdfs", BBC_ZDFS)
-SLOT_INTERFACE_END
+void bbc_fdc_devices(device_slot_interface &device)
+{
+ device.option_add("acorn8271", BBC_ACORN8271);
+ device.option_add("acorn1770", BBC_ACORN1770);
+ device.option_add("cumana1", BBC_CUMANA1);
+ device.option_add("cumana2", BBC_CUMANA2);
+ device.option_add("cv1797", BBC_CV1797);
+ //device.option_add("microware", BBC_MICROWARE);
+ device.option_add("opus8272", BBC_OPUS8272);
+ device.option_add("opus2791", BBC_OPUS2791);
+ device.option_add("opus2793", BBC_OPUS2793);
+ device.option_add("opus1770", BBC_OPUS1770);
+ //device.option_add("stl8271", BBC_STL8271);
+ //device.option_add("stl1770_1", BBC_STL1770_1);
+ //device.option_add("stl1770_2", BBC_STL1770_2);
+ device.option_add("weddb2", BBC_WEDDB2);
+ device.option_add("weddb3", BBC_WEDDB3);
+ //device.option_add("zdfs", BBC_ZDFS);
+}
diff --git a/src/devices/bus/bbc/fdc/fdc.h b/src/devices/bus/bbc/fdc/fdc.h
index 2472b5582be..4e2363560ba 100644
--- a/src/devices/bus/bbc/fdc/fdc.h
+++ b/src/devices/bus/bbc/fdc/fdc.h
@@ -82,7 +82,7 @@ protected:
// device type definition
DECLARE_DEVICE_TYPE(BBC_FDC_SLOT, bbc_fdc_slot_device)
-SLOT_INTERFACE_EXTERN( bbc_fdc_devices );
+void bbc_fdc_devices(device_slot_interface &device);
#endif // MAME_BUS_BBC_FDC_FDC_H
diff --git a/src/devices/bus/bbc/fdc/opus.cpp b/src/devices/bus/bbc/fdc/opus.cpp
index 246b3ad203f..8a81c86ce74 100644
--- a/src/devices/bus/bbc/fdc/opus.cpp
+++ b/src/devices/bus/bbc/fdc/opus.cpp
@@ -39,13 +39,14 @@ FLOPPY_FORMATS_MEMBER( bbc_opusfdc_device::floppy_formats )
FLOPPY_OPUS_DDCPM_FORMAT
FLOPPY_FORMATS_END0
-static SLOT_INTERFACE_START( bbc_floppies_525 )
- SLOT_INTERFACE("525sssd", FLOPPY_525_SSSD)
- SLOT_INTERFACE("525sd", FLOPPY_525_SD)
- SLOT_INTERFACE("525ssdd", FLOPPY_525_SSDD)
- SLOT_INTERFACE("525dd", FLOPPY_525_DD)
- SLOT_INTERFACE("525qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+static void bbc_floppies_525(device_slot_interface &device)
+{
+ device.option_add("525sssd", FLOPPY_525_SSSD);
+ device.option_add("525sd", FLOPPY_525_SD);
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
ROM_START( opus8272 )
ROM_REGION(0x4000, "dfs_rom", 0)
diff --git a/src/devices/bus/bbc/fdc/watford.cpp b/src/devices/bus/bbc/fdc/watford.cpp
index fcc465c84f6..90dd63cad76 100644
--- a/src/devices/bus/bbc/fdc/watford.cpp
+++ b/src/devices/bus/bbc/fdc/watford.cpp
@@ -33,13 +33,14 @@ FLOPPY_FORMATS_MEMBER( bbc_watfordfdc_device::floppy_formats )
FLOPPY_FSD_FORMAT
FLOPPY_FORMATS_END0
-static SLOT_INTERFACE_START( bbc_floppies_525 )
- SLOT_INTERFACE("525sssd", FLOPPY_525_SSSD)
- SLOT_INTERFACE("525sd", FLOPPY_525_SD)
- SLOT_INTERFACE("525ssdd", FLOPPY_525_SSDD)
- SLOT_INTERFACE("525dd", FLOPPY_525_DD)
- SLOT_INTERFACE("525qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+static void bbc_floppies_525(device_slot_interface &device)
+{
+ device.option_add("525sssd", FLOPPY_525_SSSD);
+ device.option_add("525sd", FLOPPY_525_SD);
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
ROM_START( weddb2 )
ROM_REGION(0x4000, "dfs_rom", 0)
diff --git a/src/devices/bus/bbc/joyport/joyport.cpp b/src/devices/bus/bbc/joyport/joyport.cpp
index 2a3d3d144b6..b45b804a76c 100644
--- a/src/devices/bus/bbc/joyport/joyport.cpp
+++ b/src/devices/bus/bbc/joyport/joyport.cpp
@@ -130,7 +130,8 @@ WRITE8_MEMBER(bbc_joyport_slot_device::pb_w)
//#include "mouse.h"
-SLOT_INTERFACE_START( bbc_joyport_devices )
- SLOT_INTERFACE("joystick", BBCMC_JOYSTICK)
- //SLOT_INTERFACE("mouse", BBCMC_MOUSE)
-SLOT_INTERFACE_END
+void bbc_joyport_devices(device_slot_interface &device)
+{
+ device.option_add("joystick", BBCMC_JOYSTICK);
+ //device.option_add("mouse", BBCMC_MOUSE);
+}
diff --git a/src/devices/bus/bbc/joyport/joyport.h b/src/devices/bus/bbc/joyport/joyport.h
index 9371ee248d8..bfc93f2d9e2 100644
--- a/src/devices/bus/bbc/joyport/joyport.h
+++ b/src/devices/bus/bbc/joyport/joyport.h
@@ -106,7 +106,7 @@ protected:
// device type definition
DECLARE_DEVICE_TYPE(BBC_JOYPORT_SLOT, bbc_joyport_slot_device)
-SLOT_INTERFACE_EXTERN( bbc_joyport_devices );
+void bbc_joyport_devices(device_slot_interface &device);
#endif // MAME_BUS_BBC_JOYPORT_JOYPORT_H
diff --git a/src/devices/bus/bbc/tube/tube.cpp b/src/devices/bus/bbc/tube/tube.cpp
index 173dd4cc2b7..f3824e872cf 100644
--- a/src/devices/bus/bbc/tube/tube.cpp
+++ b/src/devices/bus/bbc/tube/tube.cpp
@@ -146,37 +146,39 @@ WRITE8_MEMBER(bbc_tube_slot_device::host_w)
// SLOT_INTERFACE( bbc_extube_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( bbc_extube_devices )
- SLOT_INTERFACE("6502", BBC_TUBE_6502) /* Acorn ANC01 6502 2nd processor */
- SLOT_INTERFACE("z80", BBC_TUBE_Z80) /* Acorn ANC04 Z80 2nd processor */
-// SLOT_INTERFACE("32016", BBC_TUBE_32016) /* Acorn ANC05 32016 2nd processor */
-// SLOT_INTERFACE("camb", BBC_TUBE_CAMB) /* Acorn ANC06 Cambridge Co-Processor */
- SLOT_INTERFACE("arm", BBC_TUBE_ARM) /* Acorn ANC13 ARM Evaluation System */
- SLOT_INTERFACE("80286", BBC_TUBE_80286) /* Acorn 80286 2nd Processor */
-// SLOT_INTERFACE("a500", BBC_TUBE_A500) /* Acorn A500 2nd Processor */
- SLOT_INTERFACE("casper", BBC_TUBE_CASPER) /* Casper 68000 2nd Processor */
- SLOT_INTERFACE("zep100", BBC_TUBE_ZEP100) /* Torch Z80 Communicator (ZEP100) */
+void bbc_extube_devices(device_slot_interface &device)
+{
+ device.option_add("6502", BBC_TUBE_6502); /* Acorn ANC01 6502 2nd processor */
+ device.option_add("z80", BBC_TUBE_Z80); /* Acorn ANC04 Z80 2nd processor */
+// device.option_add("32016", BBC_TUBE_32016); /* Acorn ANC05 32016 2nd processor */
+// device.option_add("camb", BBC_TUBE_CAMB); /* Acorn ANC06 Cambridge Co-Processor */
+ device.option_add("arm", BBC_TUBE_ARM); /* Acorn ANC13 ARM Evaluation System */
+ device.option_add("80286", BBC_TUBE_80286); /* Acorn 80286 2nd Processor */
+// device.option_add("a500", BBC_TUBE_A500); /* Acorn A500 2nd Processor */
+ device.option_add("casper", BBC_TUBE_CASPER); /* Casper 68000 2nd Processor */
+ device.option_add("zep100", BBC_TUBE_ZEP100); /* Torch Z80 Communicator (ZEP100) */
/* Acorn ANC21 Universal 2nd Processor Unit */
- SLOT_INTERFACE("65c102", BBC_TUBE_65C102) /* Acorn ADC06 65C102 co-processor */
- SLOT_INTERFACE("80186", BBC_TUBE_80186) /* Acorn ADC08 80186 co-processor */
-SLOT_INTERFACE_END
+ device.option_add("65c102", BBC_TUBE_65C102); /* Acorn ADC06 65C102 co-processor */
+ device.option_add("80186", BBC_TUBE_80186); /* Acorn ADC08 80186 co-processor */
+}
//-------------------------------------------------
// SLOT_INTERFACE( bbc_intube_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( bbc_intube_devices )
- SLOT_INTERFACE("65c102", BBC_TUBE_65C102) /* Acorn ADC06 65C102 co-processor */
- SLOT_INTERFACE("80186", BBC_TUBE_80186) /* Acorn ADC08 80186 co-processor */
-// SLOT_INTERFACE("arm7", BBC_TUBE_ARM7) /* Sprow ARM7 co-processor */
-SLOT_INTERFACE_END
+void bbc_intube_devices(device_slot_interface &device)
+{
+ device.option_add("65c102", BBC_TUBE_65C102); /* Acorn ADC06 65C102 co-processor */
+ device.option_add("80186", BBC_TUBE_80186); /* Acorn ADC08 80186 co-processor */
+// device.option_add("arm7", BBC_TUBE_ARM7); /* Sprow ARM7 co-processor */
+}
//-------------------------------------------------
// SLOT_INTERFACE( bbc_x25tube_devices )
//-------------------------------------------------
-//SLOT_INTERFACE_START( bbc_x25tube_devices )
-// SLOT_INTERFACE("x25", BBC_TUBE_X25) /* Econet X25 Gateway */
-//SLOT_INTERFACE_END
+//void bbc_x25tube_devices(device_slot_interface &device)
+// device.option_add("x25", BBC_TUBE_X25); /* Econet X25 Gateway */
+//}
diff --git a/src/devices/bus/bbc/tube/tube.h b/src/devices/bus/bbc/tube/tube.h
index 7a7d4351e1c..b60d349df47 100644
--- a/src/devices/bus/bbc/tube/tube.h
+++ b/src/devices/bus/bbc/tube/tube.h
@@ -116,9 +116,9 @@ protected:
// device type definition
DECLARE_DEVICE_TYPE(BBC_TUBE_SLOT, bbc_tube_slot_device)
-SLOT_INTERFACE_EXTERN( bbc_extube_devices );
-SLOT_INTERFACE_EXTERN( bbc_intube_devices );
-//SLOT_INTERFACE_EXTERN( bbc_x25tube_devices );
+void bbc_extube_devices(device_slot_interface &device);
+void bbc_intube_devices(device_slot_interface &device);
+//void bbc_x25tube_devices(device_slot_interface &device);
#endif // MAME_BUS_BBC_TUBE_TUBE_H
diff --git a/src/devices/bus/bbc/userport/userport.cpp b/src/devices/bus/bbc/userport/userport.cpp
index 7df5c0e7f66..6152d893cec 100644
--- a/src/devices/bus/bbc/userport/userport.cpp
+++ b/src/devices/bus/bbc/userport/userport.cpp
@@ -119,10 +119,11 @@ WRITE8_MEMBER(bbc_userport_slot_device::pb_w)
#include "cfa3000kbd.h"
-SLOT_INTERFACE_START( bbc_userport_devices )
-// SLOT_INTERFACE("amxmouse", BBC_AMXMOUSE) /* AMX Mouse */
-// SLOT_INTERFACE("m512mouse", BBC_M512MOUSE) /* Acorn Mouse (provided with Master 512) */
-// SLOT_INTERFACE("tracker", BBC_TRACKER) /* Marconi RB2 Tracker Ball / Acorn Tracker Ball */
-// SLOT_INTERFACE("music4000", BBC_MUSIC4000) /* Hybrid Music 4000 Keyboard */
- SLOT_INTERFACE("cfa3000kbd", CFA3000_KBD) /* Henson CFA 3000 Keyboard */
-SLOT_INTERFACE_END
+void bbc_userport_devices(device_slot_interface &device)
+{
+// device.option_add("amxmouse", BBC_AMXMOUSE); /* AMX Mouse */
+// device.option_add("m512mouse", BBC_M512MOUSE); /* Acorn Mouse (provided with Master 512) */
+// device.option_add("tracker", BBC_TRACKER); /* Marconi RB2 Tracker Ball / Acorn Tracker Ball */
+// device.option_add("music4000", BBC_MUSIC4000); /* Hybrid Music 4000 Keyboard */
+ device.option_add("cfa3000kbd", CFA3000_KBD); /* Henson CFA 3000 Keyboard */
+}
diff --git a/src/devices/bus/bbc/userport/userport.h b/src/devices/bus/bbc/userport/userport.h
index de2f8c4c8ff..f19911a4631 100644
--- a/src/devices/bus/bbc/userport/userport.h
+++ b/src/devices/bus/bbc/userport/userport.h
@@ -106,7 +106,7 @@ protected:
DECLARE_DEVICE_TYPE(BBC_USERPORT_SLOT, bbc_userport_slot_device)
-SLOT_INTERFACE_EXTERN( bbc_userport_devices );
+void bbc_userport_devices(device_slot_interface &device);
#endif // MAME_BUS_BBC_USERPORT_USERPORT_H
diff --git a/src/devices/bus/bml3/bml3mp1802.cpp b/src/devices/bus/bml3/bml3mp1802.cpp
index dd27a9c53ec..a6c7e4a1d2c 100644
--- a/src/devices/bus/bml3/bml3mp1802.cpp
+++ b/src/devices/bus/bml3/bml3mp1802.cpp
@@ -23,9 +23,10 @@
DEFINE_DEVICE_TYPE(BML3BUS_MP1802, bml3bus_mp1802_device, "bml3mp1802", "Hitachi MP-1802 Floppy Controller Card")
-static SLOT_INTERFACE_START( mp1802_floppies )
- SLOT_INTERFACE("dd", FLOPPY_525_DD)
-SLOT_INTERFACE_END
+static void mp1802_floppies(device_slot_interface &device)
+{
+ device.option_add("dd", FLOPPY_525_DD);
+}
WRITE_LINE_MEMBER( bml3bus_mp1802_device::bml3_wd17xx_intrq_w )
{
diff --git a/src/devices/bus/bw2/exp.cpp b/src/devices/bus/bw2/exp.cpp
index 94e7a616460..ae02f1f10fa 100644
--- a/src/devices/bus/bw2/exp.cpp
+++ b/src/devices/bus/bw2/exp.cpp
@@ -187,6 +187,7 @@ WRITE8_MEMBER( bw2_expansion_slot_device::modsel_w )
// slot devices
#include "ramcard.h"
-SLOT_INTERFACE_START( bw2_expansion_cards )
- SLOT_INTERFACE("ramcard", BW2_RAMCARD)
-SLOT_INTERFACE_END
+void bw2_expansion_cards(device_slot_interface &device)
+{
+ device.option_add("ramcard", BW2_RAMCARD);
+}
diff --git a/src/devices/bus/bw2/exp.h b/src/devices/bus/bw2/exp.h
index fe4e51298a2..5bd353c5d35 100644
--- a/src/devices/bus/bw2/exp.h
+++ b/src/devices/bus/bw2/exp.h
@@ -124,7 +124,6 @@ protected:
DECLARE_DEVICE_TYPE(BW2_EXPANSION_SLOT, bw2_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( bw2_expansion_cards );
-
+void bw2_expansion_cards(device_slot_interface &device);
#endif // MAME_BUS_BW2_EXP_H
diff --git a/src/devices/bus/c64/exp.cpp b/src/devices/bus/c64/exp.cpp
index e5e0c6b039c..7b11051da9b 100644
--- a/src/devices/bus/c64/exp.cpp
+++ b/src/devices/bus/c64/exp.cpp
@@ -368,75 +368,76 @@ int c64_expansion_slot_device::exrom_r(offs_t offset, int sphi2, int ba, int rw,
#include "xl80.h"
#include "zaxxon.h"
-SLOT_INTERFACE_START( c64_expansion_cards )
- SLOT_INTERFACE("16k", C64_16KB)
- SLOT_INTERFACE("cpm", C64_CPM)
- SLOT_INTERFACE("dqbb", C64_DQBB)
- SLOT_INTERFACE("easyflash", C64_EASYFLASH)
- SLOT_INTERFACE("georam", C64_GEORAM)
- SLOT_INTERFACE("ide64", C64_IDE64)
- SLOT_INTERFACE("midimap", C64_MIDI_MAPLIN)
- SLOT_INTERFACE("midins", C64_MIDI_NAMESOFT)
- SLOT_INTERFACE("midipp", C64_MIDI_PASSPORT)
- SLOT_INTERFACE("midisci", C64_MIDI_SCI)
- SLOT_INTERFACE("midisiel", C64_MIDI_SIEL)
- SLOT_INTERFACE("music64", C64_MUSIC64)
- SLOT_INTERFACE("neoram", C64_NEORAM)
- SLOT_INTERFACE("reu1700", C64_REU1700)
- SLOT_INTERFACE("reu1750", C64_REU1750)
- SLOT_INTERFACE("reu1764", C64_REU1764)
- SLOT_INTERFACE("sfxse", C64_SFX_SOUND_EXPANDER)
- SLOT_INTERFACE("speakez", C64_SPEAKEASY)
- SLOT_INTERFACE("supercpu", C64_SUPERCPU)
- SLOT_INTERFACE("swiftlink", C64_SWIFTLINK)
- SLOT_INTERFACE("turbo232", C64_TURBO232)
+void c64_expansion_cards(device_slot_interface &device)
+{
+ device.option_add("16k", C64_16KB);
+ device.option_add("cpm", C64_CPM);
+ device.option_add("dqbb", C64_DQBB);
+ device.option_add("easyflash", C64_EASYFLASH);
+ device.option_add("georam", C64_GEORAM);
+ device.option_add("ide64", C64_IDE64);
+ device.option_add("midimap", C64_MIDI_MAPLIN);
+ device.option_add("midins", C64_MIDI_NAMESOFT);
+ device.option_add("midipp", C64_MIDI_PASSPORT);
+ device.option_add("midisci", C64_MIDI_SCI);
+ device.option_add("midisiel", C64_MIDI_SIEL);
+ device.option_add("music64", C64_MUSIC64);
+ device.option_add("neoram", C64_NEORAM);
+ device.option_add("reu1700", C64_REU1700);
+ device.option_add("reu1750", C64_REU1750);
+ device.option_add("reu1764", C64_REU1764);
+ device.option_add("sfxse", C64_SFX_SOUND_EXPANDER);
+ device.option_add("speakez", C64_SPEAKEASY);
+ device.option_add("supercpu", C64_SUPERCPU);
+ device.option_add("swiftlink", C64_SWIFTLINK);
+ device.option_add("turbo232", C64_TURBO232);
// the following need ROMs from the software list
- SLOT_INTERFACE_INTERNAL("standard", C64_STD)
- SLOT_INTERFACE_INTERNAL("comal80", C64_COMAL80)
- SLOT_INTERFACE_INTERNAL("c128_comal80", C128_COMAL80)
- SLOT_INTERFACE_INTERNAL("cs64", C64_CURRAH_SPEECH)
- SLOT_INTERFACE_INTERNAL("dela_ep256", C64_DELA_EP256)
- SLOT_INTERFACE_INTERNAL("ep64", C64_DELA_EP64)
- SLOT_INTERFACE_INTERNAL("ep7x8", C64_DELA_EP7X8)
- SLOT_INTERFACE_INTERNAL("dinamic", C64_DINAMIC)
- SLOT_INTERFACE_INTERNAL("easycalcres", C64_EASY_CALC_RESULT)
- SLOT_INTERFACE_INTERNAL("epyxfastload", C64_EPYX_FAST_LOAD)
- SLOT_INTERFACE_INTERNAL("exos", C64_EXOS)
- SLOT_INTERFACE_INTERNAL("fcc", C64_FCC)
- SLOT_INTERFACE_INTERNAL("final", C64_FINAL)
- SLOT_INTERFACE_INTERNAL("final3", C64_FINAL3)
- SLOT_INTERFACE_INTERNAL("fun_play", C64_FUN_PLAY)
- SLOT_INTERFACE_INTERNAL("ieee488", C64_IEEE488)
- SLOT_INTERFACE_INTERNAL("kingsoft", C64_KINGSOFT)
- SLOT_INTERFACE_INTERNAL("mach5", C64_MACH5)
- SLOT_INTERFACE_INTERNAL("magic_desk", C64_MAGIC_DESK)
- SLOT_INTERFACE_INTERNAL("magic_formel", C64_MAGIC_FORMEL)
- SLOT_INTERFACE_INTERNAL("magic_voice", C64_MAGIC_VOICE)
- SLOT_INTERFACE_INTERNAL("mikroasm", C64_MIKRO_ASSEMBLER)
- SLOT_INTERFACE_INTERNAL("multiscreen", C64_MULTISCREEN)
- SLOT_INTERFACE_INTERNAL("ocean", C64_OCEAN)
- SLOT_INTERFACE_INTERNAL("pagefox", C64_PAGEFOX)
- SLOT_INTERFACE_INTERNAL("partner", C64_PARTNER)
- SLOT_INTERFACE_INTERNAL("partner128", C128_PARTNER)
- SLOT_INTERFACE_INTERNAL("prophet64", C64_PROPHET64)
- SLOT_INTERFACE_INTERNAL("ps64", C64_PS64)
- SLOT_INTERFACE_INTERNAL("rex", C64_REX)
- SLOT_INTERFACE_INTERNAL("rex_ep256", C64_REX_EP256)
- SLOT_INTERFACE_INTERNAL("ross", C64_ROSS)
- SLOT_INTERFACE_INTERNAL("silverrock", C64_SILVERROCK)
- SLOT_INTERFACE_INTERNAL("simons_basic", C64_SIMONS_BASIC)
- SLOT_INTERFACE_INTERNAL("stardos", C64_STARDOS)
- SLOT_INTERFACE_INTERNAL("struct_basic", C64_STRUCTURED_BASIC)
- SLOT_INTERFACE_INTERNAL("super_explode", C64_SUPER_EXPLODE)
- SLOT_INTERFACE_INTERNAL("super_games", C64_SUPER_GAMES)
- SLOT_INTERFACE_INTERNAL("sw8k", C64_SW8K)
- SLOT_INTERFACE_INTERNAL("system3", C64_SYSTEM3)
- SLOT_INTERFACE_INTERNAL("tdos", C64_TDOS)
- SLOT_INTERFACE_INTERNAL("vizastar", C64_VIZASTAR)
- SLOT_INTERFACE_INTERNAL("vizawrite", C64_VW64)
- SLOT_INTERFACE_INTERNAL("warp_speed", C64_WARP_SPEED)
- SLOT_INTERFACE_INTERNAL("westermann", C64_WESTERMANN)
- SLOT_INTERFACE_INTERNAL("zaxxon", C64_ZAXXON)
- SLOT_INTERFACE_INTERNAL("xl80", C64_XL80)
-SLOT_INTERFACE_END
+ device.option_add_internal("standard", C64_STD);
+ device.option_add_internal("comal80", C64_COMAL80);
+ device.option_add_internal("c128_comal80", C128_COMAL80);
+ device.option_add_internal("cs64", C64_CURRAH_SPEECH);
+ device.option_add_internal("dela_ep256", C64_DELA_EP256);
+ device.option_add_internal("ep64", C64_DELA_EP64);
+ device.option_add_internal("ep7x8", C64_DELA_EP7X8);
+ device.option_add_internal("dinamic", C64_DINAMIC);
+ device.option_add_internal("easycalcres", C64_EASY_CALC_RESULT);
+ device.option_add_internal("epyxfastload", C64_EPYX_FAST_LOAD);
+ device.option_add_internal("exos", C64_EXOS);
+ device.option_add_internal("fcc", C64_FCC);
+ device.option_add_internal("final", C64_FINAL);
+ device.option_add_internal("final3", C64_FINAL3);
+ device.option_add_internal("fun_play", C64_FUN_PLAY);
+ device.option_add_internal("ieee488", C64_IEEE488);
+ device.option_add_internal("kingsoft", C64_KINGSOFT);
+ device.option_add_internal("mach5", C64_MACH5);
+ device.option_add_internal("magic_desk", C64_MAGIC_DESK);
+ device.option_add_internal("magic_formel", C64_MAGIC_FORMEL);
+ device.option_add_internal("magic_voice", C64_MAGIC_VOICE);
+ device.option_add_internal("mikroasm", C64_MIKRO_ASSEMBLER);
+ device.option_add_internal("multiscreen", C64_MULTISCREEN);
+ device.option_add_internal("ocean", C64_OCEAN);
+ device.option_add_internal("pagefox", C64_PAGEFOX);
+ device.option_add_internal("partner", C64_PARTNER);
+ device.option_add_internal("partner128", C128_PARTNER);
+ device.option_add_internal("prophet64", C64_PROPHET64);
+ device.option_add_internal("ps64", C64_PS64);
+ device.option_add_internal("rex", C64_REX);
+ device.option_add_internal("rex_ep256", C64_REX_EP256);
+ device.option_add_internal("ross", C64_ROSS);
+ device.option_add_internal("silverrock", C64_SILVERROCK);
+ device.option_add_internal("simons_basic", C64_SIMONS_BASIC);
+ device.option_add_internal("stardos", C64_STARDOS);
+ device.option_add_internal("struct_basic", C64_STRUCTURED_BASIC);
+ device.option_add_internal("super_explode", C64_SUPER_EXPLODE);
+ device.option_add_internal("super_games", C64_SUPER_GAMES);
+ device.option_add_internal("sw8k", C64_SW8K);
+ device.option_add_internal("system3", C64_SYSTEM3);
+ device.option_add_internal("tdos", C64_TDOS);
+ device.option_add_internal("vizastar", C64_VIZASTAR);
+ device.option_add_internal("vizawrite", C64_VW64);
+ device.option_add_internal("warp_speed", C64_WARP_SPEED);
+ device.option_add_internal("westermann", C64_WESTERMANN);
+ device.option_add_internal("zaxxon", C64_ZAXXON);
+ device.option_add_internal("xl80", C64_XL80);
+}
diff --git a/src/devices/bus/c64/exp.h b/src/devices/bus/c64/exp.h
index 46c4101aabf..0824ecf67ba 100644
--- a/src/devices/bus/c64/exp.h
+++ b/src/devices/bus/c64/exp.h
@@ -195,8 +195,6 @@ protected:
// device type definition
DECLARE_DEVICE_TYPE(C64_EXPANSION_SLOT, c64_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( c64_expansion_cards );
-
-
+void c64_expansion_cards(device_slot_interface &device);
#endif
diff --git a/src/devices/bus/c64/user.cpp b/src/devices/bus/c64/user.cpp
index 543ee8bb13e..1a5975ebbf8 100644
--- a/src/devices/bus/c64/user.cpp
+++ b/src/devices/bus/c64/user.cpp
@@ -22,12 +22,13 @@
#include "geocable.h"
#include "bus/vic20/vic1011.h"
-SLOT_INTERFACE_START( c64_user_port_cards )
- SLOT_INTERFACE("4cga", C64_4CGA)
- SLOT_INTERFACE("4dxh", C64_4DXH)
- SLOT_INTERFACE("4ksa", C64_4KSA)
- SLOT_INTERFACE("4tba", C64_4TBA)
- SLOT_INTERFACE("bn1541", C64_BN1541)
- SLOT_INTERFACE("geocable", C64_GEOCABLE)
- SLOT_INTERFACE("rs232", VIC1011)
-SLOT_INTERFACE_END
+void c64_user_port_cards(device_slot_interface &device)
+{
+ device.option_add("4cga", C64_4CGA);
+ device.option_add("4dxh", C64_4DXH);
+ device.option_add("4ksa", C64_4KSA);
+ device.option_add("4tba", C64_4TBA);
+ device.option_add("bn1541", C64_BN1541);
+ device.option_add("geocable", C64_GEOCABLE);
+ device.option_add("rs232", VIC1011);
+}
diff --git a/src/devices/bus/c64/user.h b/src/devices/bus/c64/user.h
index 8e9ecf347b2..68159c099de 100644
--- a/src/devices/bus/c64/user.h
+++ b/src/devices/bus/c64/user.h
@@ -28,6 +28,6 @@
#include "bus/pet/user.h"
-SLOT_INTERFACE_EXTERN( c64_user_port_cards );
+void c64_user_port_cards(device_slot_interface &device);
#endif // MAME_BUS_C64_USER_H
diff --git a/src/devices/bus/cbm2/exp.cpp b/src/devices/bus/cbm2/exp.cpp
index 0659fbc93ed..e4246026a54 100644
--- a/src/devices/bus/cbm2/exp.cpp
+++ b/src/devices/bus/cbm2/exp.cpp
@@ -188,9 +188,10 @@ void cbm2_expansion_slot_device::write(address_space &space, offs_t offset, uint
#include "hrg.h"
#include "std.h"
-SLOT_INTERFACE_START( cbm2_expansion_cards )
- SLOT_INTERFACE("24k", CBM2_24K)
- SLOT_INTERFACE("hrga", CBM2_HRG_A)
- SLOT_INTERFACE("hrgb", CBM2_HRG_B)
- SLOT_INTERFACE_INTERNAL("standard", CBM2_STD)
-SLOT_INTERFACE_END
+void cbm2_expansion_cards(device_slot_interface &device)
+{
+ device.option_add("24k", CBM2_24K);
+ device.option_add("hrga", CBM2_HRG_A);
+ device.option_add("hrgb", CBM2_HRG_B);
+ device.option_add_internal("standard", CBM2_STD);
+}
diff --git a/src/devices/bus/cbm2/exp.h b/src/devices/bus/cbm2/exp.h
index 0b6ca30a087..6eff16c5260 100644
--- a/src/devices/bus/cbm2/exp.h
+++ b/src/devices/bus/cbm2/exp.h
@@ -128,7 +128,6 @@ protected:
DECLARE_DEVICE_TYPE(CBM2_EXPANSION_SLOT, cbm2_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( cbm2_expansion_cards );
-
+void cbm2_expansion_cards(device_slot_interface &device);
#endif // MAME_BUS_CBM2_EXP_H
diff --git a/src/devices/bus/cbm2/user.cpp b/src/devices/bus/cbm2/user.cpp
index 0c54e409901..eefb9c4d591 100644
--- a/src/devices/bus/cbm2/user.cpp
+++ b/src/devices/bus/cbm2/user.cpp
@@ -74,5 +74,6 @@ void cbm2_user_port_device::device_start()
// SLOT_INTERFACE( cbm2_user_port_cards )
//-------------------------------------------------
-SLOT_INTERFACE_START( cbm2_user_port_cards )
-SLOT_INTERFACE_END
+void cbm2_user_port_cards(device_slot_interface &device)
+{
+}
diff --git a/src/devices/bus/cbm2/user.h b/src/devices/bus/cbm2/user.h
index 3802879e822..7ebe6ddbf34 100644
--- a/src/devices/bus/cbm2/user.h
+++ b/src/devices/bus/cbm2/user.h
@@ -147,7 +147,6 @@ DECLARE_DEVICE_TYPE(CBM2_USER_PORT, cbm2_user_port_device)
// slot devices
-SLOT_INTERFACE_EXTERN( cbm2_user_port_cards );
-
+void cbm2_user_port_cards(device_slot_interface &device);
#endif // MAME_BUS_CBM2_USER_H
diff --git a/src/devices/bus/cbmiec/c1541.cpp b/src/devices/bus/cbmiec/c1541.cpp
index 4070cecebec..bbadac3b80f 100644
--- a/src/devices/bus/cbmiec/c1541.cpp
+++ b/src/devices/bus/cbmiec/c1541.cpp
@@ -754,9 +754,10 @@ WRITE_LINE_MEMBER( c1541_device_base::byte_w )
// SLOT_INTERFACE( c1540_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( c1540_floppies )
- SLOT_INTERFACE( "525ssqd", ALPS_3255190X )
-SLOT_INTERFACE_END
+static void c1540_floppies(device_slot_interface &device)
+{
+ device.option_add("525ssqd", ALPS_3255190X);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/cbmiec/c1571.cpp b/src/devices/bus/cbmiec/c1571.cpp
index 097dbc77cf8..2cbe03c58c2 100644
--- a/src/devices/bus/cbmiec/c1571.cpp
+++ b/src/devices/bus/cbmiec/c1571.cpp
@@ -564,9 +564,10 @@ WRITE_LINE_MEMBER( c1571_device::byte_w )
// SLOT_INTERFACE( c1571_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( c1571_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void c1571_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
//-------------------------------------------------
@@ -594,9 +595,10 @@ FLOPPY_FORMATS_END
// isa8bus_interface isabus_intf
//-------------------------------------------------
-static SLOT_INTERFACE_START( mini_chief_isa8_cards )
- SLOT_INTERFACE("wd1002a_wx1", ISA8_WD1002A_WX1)
-SLOT_INTERFACE_END
+static void mini_chief_isa8_cards(device_slot_interface &device)
+{
+ device.option_add("wd1002a_wx1", ISA8_WD1002A_WX1);
+}
//-------------------------------------------------
// device_add_mconfig - add device configuration
diff --git a/src/devices/bus/cbmiec/c1581.cpp b/src/devices/bus/cbmiec/c1581.cpp
index d16ca955bc0..8e9f0ec9555 100644
--- a/src/devices/bus/cbmiec/c1581.cpp
+++ b/src/devices/bus/cbmiec/c1581.cpp
@@ -248,9 +248,10 @@ WRITE8_MEMBER( c1581_device::cia_pb_w )
// SLOT_INTERFACE( c1581_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( c1581_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) // Chinon F-354-E
-SLOT_INTERFACE_END
+static void c1581_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD); // Chinon F-354-E
+}
//-------------------------------------------------
diff --git a/src/devices/bus/cbmiec/cbmiec.cpp b/src/devices/bus/cbmiec/cbmiec.cpp
index 4384dbcd1cc..c91a9d54773 100644
--- a/src/devices/bus/cbmiec/cbmiec.cpp
+++ b/src/devices/bus/cbmiec/cbmiec.cpp
@@ -497,30 +497,31 @@ int cbm_iec_device::get_signal(int signal)
#include "vic1520.h"
#include "c1526.h"
-SLOT_INTERFACE_START( cbm_iec_devices )
- SLOT_INTERFACE("c1540", C1540)
- SLOT_INTERFACE("c1541", C1541)
- SLOT_INTERFACE("c1541c", C1541C)
- SLOT_INTERFACE("c1541ii", C1541II)
- SLOT_INTERFACE("fsd1", FSD1)
- SLOT_INTERFACE("fsd2", FSD2)
- SLOT_INTERFACE("csd1", CSD1)
- SLOT_INTERFACE("c1541dd", C1541_DOLPHIN_DOS)
- SLOT_INTERFACE("c1541pd", C1541_PROFESSIONAL_DOS_V1)
- SLOT_INTERFACE("c1541pdc", C1541_PROLOGIC_DOS_CLASSIC)
- SLOT_INTERFACE("c1570", C1570)
- SLOT_INTERFACE("c1571", C1571)
- SLOT_INTERFACE("c1581", C1581)
- SLOT_INTERFACE("indusgt", INDUS_GT)
- SLOT_INTERFACE("cmdhd", CMD_HD)
- SLOT_INTERFACE("fd2000", FD2000)
- SLOT_INTERFACE("fd4000", FD4000)
- SLOT_INTERFACE("interpod", INTERPOD)
- SLOT_INTERFACE("minichief", MINI_CHIEF)
- SLOT_INTERFACE("serialbox", SERIAL_BOX)
- SLOT_INTERFACE("diag264", DIAG264_SERIAL_LOOPBACK)
- SLOT_INTERFACE("nl10", C64_NL10_INTERFACE)
- SLOT_INTERFACE("vic1515", VIC1515)
- SLOT_INTERFACE("vic1520", VIC1520)
- SLOT_INTERFACE("c1526", C1526)
-SLOT_INTERFACE_END
+void cbm_iec_devices(device_slot_interface &device)
+{
+ device.option_add("c1540", C1540);
+ device.option_add("c1541", C1541);
+ device.option_add("c1541c", C1541C);
+ device.option_add("c1541ii", C1541II);
+ device.option_add("fsd1", FSD1);
+ device.option_add("fsd2", FSD2);
+ device.option_add("csd1", CSD1);
+ device.option_add("c1541dd", C1541_DOLPHIN_DOS);
+ device.option_add("c1541pd", C1541_PROFESSIONAL_DOS_V1);
+ device.option_add("c1541pdc", C1541_PROLOGIC_DOS_CLASSIC);
+ device.option_add("c1570", C1570);
+ device.option_add("c1571", C1571);
+ device.option_add("c1581", C1581);
+ device.option_add("indusgt", INDUS_GT);
+ device.option_add("cmdhd", CMD_HD);
+ device.option_add("fd2000", FD2000);
+ device.option_add("fd4000", FD4000);
+ device.option_add("interpod", INTERPOD);
+ device.option_add("minichief", MINI_CHIEF);
+ device.option_add("serialbox", SERIAL_BOX);
+ device.option_add("diag264", DIAG264_SERIAL_LOOPBACK);
+ device.option_add("nl10", C64_NL10_INTERFACE);
+ device.option_add("vic1515", VIC1515);
+ device.option_add("vic1520", VIC1520);
+ device.option_add("c1526", C1526);
+}
diff --git a/src/devices/bus/cbmiec/cbmiec.h b/src/devices/bus/cbmiec/cbmiec.h
index 6c7d60f471b..f7d9f5d73ff 100644
--- a/src/devices/bus/cbmiec/cbmiec.h
+++ b/src/devices/bus/cbmiec/cbmiec.h
@@ -204,7 +204,6 @@ DECLARE_DEVICE_TYPE(CBM_IEC, cbm_iec_device)
DECLARE_DEVICE_TYPE(CBM_IEC_SLOT, cbm_iec_slot_device)
-SLOT_INTERFACE_EXTERN( cbm_iec_devices );
-
+void cbm_iec_devices(device_slot_interface &device);
#endif // MAME_BUS_CBMIEC_CBMIEC_H
diff --git a/src/devices/bus/cbmiec/fd2000.cpp b/src/devices/bus/cbmiec/fd2000.cpp
index 46dd1151a34..a14f69d17a6 100644
--- a/src/devices/bus/cbmiec/fd2000.cpp
+++ b/src/devices/bus/cbmiec/fd2000.cpp
@@ -194,13 +194,15 @@ WRITE8_MEMBER( fd2000_device::via_pb_w )
*/
}
-static SLOT_INTERFACE_START( fd2000_floppies )
- SLOT_INTERFACE( "35hd", FLOPPY_35_HD ) // TEAC FD-235HF
-SLOT_INTERFACE_END
+static void fd2000_floppies(device_slot_interface &device)
+{
+ device.option_add("35hd", FLOPPY_35_HD); // TEAC FD-235HF
+}
-static SLOT_INTERFACE_START( fd4000_floppies )
- SLOT_INTERFACE( "35ed", FLOPPY_35_ED ) // TEAC FD-235J
-SLOT_INTERFACE_END
+static void fd4000_floppies(device_slot_interface &device)
+{
+ device.option_add("35ed", FLOPPY_35_ED); // TEAC FD-235J
+}
/*
FLOPPY_FORMATS_MEMBER( fd2000_device::floppy_formats )
FLOPPY_D81_FORMAT
diff --git a/src/devices/bus/cbus/pc9801_86.cpp b/src/devices/bus/cbus/pc9801_86.cpp
index 4eaf1b60092..c280702414d 100644
--- a/src/devices/bus/cbus/pc9801_86.cpp
+++ b/src/devices/bus/cbus/pc9801_86.cpp
@@ -66,8 +66,8 @@ MACHINE_CONFIG_START(pc9801_86_device::device_add_mconfig)
MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // burr brown pcm61p
MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // burr brown pcm61p
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
// RAM
diff --git a/src/devices/bus/centronics/covox.cpp b/src/devices/bus/centronics/covox.cpp
index eb5259c1913..80e355b82a9 100644
--- a/src/devices/bus/centronics/covox.cpp
+++ b/src/devices/bus/centronics/covox.cpp
@@ -43,7 +43,7 @@ MACHINE_CONFIG_START(centronics_covox_device::device_add_mconfig)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
void centronics_covox_device::device_start()
@@ -93,8 +93,8 @@ MACHINE_CONFIG_START(centronics_covox_stereo_device::device_add_mconfig)
MCFG_SOUND_ADD("ldac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
void centronics_covox_stereo_device::device_start()
diff --git a/src/devices/bus/centronics/ctronics.cpp b/src/devices/bus/centronics/ctronics.cpp
index 6c99dcf0786..2a63723ec9a 100644
--- a/src/devices/bus/centronics/ctronics.cpp
+++ b/src/devices/bus/centronics/ctronics.cpp
@@ -122,14 +122,15 @@ device_centronics_peripheral_interface::~device_centronics_peripheral_interface(
#include "printer.h"
#include "covox.h"
-SLOT_INTERFACE_START(centronics_devices)
- SLOT_INTERFACE("pl80", COMX_PL80)
- SLOT_INTERFACE("ex800", EPSON_EX800)
- SLOT_INTERFACE("lx800", EPSON_LX800)
- SLOT_INTERFACE("lx810l", EPSON_LX810L)
- SLOT_INTERFACE("ap2000", EPSON_AP2000)
- SLOT_INTERFACE("p72", NEC_P72)
- SLOT_INTERFACE("printer", CENTRONICS_PRINTER)
- SLOT_INTERFACE("covox", CENTRONICS_COVOX)
- SLOT_INTERFACE("covox_stereo", CENTRONICS_COVOX_STEREO)
-SLOT_INTERFACE_END
+void centronics_devices(device_slot_interface &device)
+{
+ device.option_add("pl80", COMX_PL80);
+ device.option_add("ex800", EPSON_EX800);
+ device.option_add("lx800", EPSON_LX800);
+ device.option_add("lx810l", EPSON_LX810L);
+ device.option_add("ap2000", EPSON_AP2000);
+ device.option_add("p72", NEC_P72);
+ device.option_add("printer", CENTRONICS_PRINTER);
+ device.option_add("covox", CENTRONICS_COVOX);
+ device.option_add("covox_stereo", CENTRONICS_COVOX_STEREO);
+}
diff --git a/src/devices/bus/centronics/ctronics.h b/src/devices/bus/centronics/ctronics.h
index 1c92f34fe39..c274b3d7832 100644
--- a/src/devices/bus/centronics/ctronics.h
+++ b/src/devices/bus/centronics/ctronics.h
@@ -216,6 +216,6 @@ protected:
};
-SLOT_INTERFACE_EXTERN( centronics_devices );
+void centronics_devices(device_slot_interface &device);
#endif // MAME_BUS_CENTRONICS_CTRONICS_H
diff --git a/src/devices/bus/centronics/digiblst.cpp b/src/devices/bus/centronics/digiblst.cpp
index f99cdecb589..27bb97be119 100644
--- a/src/devices/bus/centronics/digiblst.cpp
+++ b/src/devices/bus/centronics/digiblst.cpp
@@ -43,7 +43,7 @@ MACHINE_CONFIG_START(centronics_digiblaster_device::device_add_mconfig)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
void centronics_digiblaster_device::device_start()
diff --git a/src/devices/bus/centronics/epson_lx810l.cpp b/src/devices/bus/centronics/epson_lx810l.cpp
index 45ba99fa6db..466e1351357 100644
--- a/src/devices/bus/centronics/epson_lx810l.cpp
+++ b/src/devices/bus/centronics/epson_lx810l.cpp
@@ -144,7 +144,7 @@ MACHINE_CONFIG_START(epson_lx810l_device::device_add_mconfig)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
/* gate array */
MCFG_DEVICE_ADD("e05a30", E05A30, 0)
diff --git a/src/devices/bus/cgenie/expansion/carts.cpp b/src/devices/bus/cgenie/expansion/carts.cpp
index 48779691821..c15113d34b0 100644
--- a/src/devices/bus/cgenie/expansion/carts.cpp
+++ b/src/devices/bus/cgenie/expansion/carts.cpp
@@ -11,6 +11,7 @@
#include "floppy.h"
-SLOT_INTERFACE_START( cg_exp_slot_carts )
- SLOT_INTERFACE("floppy", CGENIE_FDC)
-SLOT_INTERFACE_END
+void cg_exp_slot_carts(device_slot_interface &device)
+{
+ device.option_add("floppy", CGENIE_FDC);
+}
diff --git a/src/devices/bus/cgenie/expansion/carts.h b/src/devices/bus/cgenie/expansion/carts.h
index 6f3503bdabf..fe903089972 100644
--- a/src/devices/bus/cgenie/expansion/carts.h
+++ b/src/devices/bus/cgenie/expansion/carts.h
@@ -12,6 +12,6 @@
#pragma once
-SLOT_INTERFACE_EXTERN( cg_exp_slot_carts );
+void cg_exp_slot_carts(device_slot_interface &device);
#endif // MAME_BUS_CGENIE_EXPANSION_CARTS_H
diff --git a/src/devices/bus/cgenie/expansion/floppy.cpp b/src/devices/bus/cgenie/expansion/floppy.cpp
index 8bad4c4bad6..0a2680023df 100644
--- a/src/devices/bus/cgenie/expansion/floppy.cpp
+++ b/src/devices/bus/cgenie/expansion/floppy.cpp
@@ -43,14 +43,15 @@ FLOPPY_FORMATS_MEMBER( cgenie_fdc_device::floppy_formats )
FLOPPY_CGENIE_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( cgenie_floppies )
- SLOT_INTERFACE("sssd", FLOPPY_525_SSSD)
- SLOT_INTERFACE("sd", FLOPPY_525_SD)
- SLOT_INTERFACE("ssdd", FLOPPY_525_SSDD)
- SLOT_INTERFACE("dd", FLOPPY_525_DD)
- SLOT_INTERFACE("ssqd", FLOPPY_525_SSQD)
- SLOT_INTERFACE("qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+static void cgenie_floppies(device_slot_interface &device)
+{
+ device.option_add("sssd", FLOPPY_525_SSSD);
+ device.option_add("sd", FLOPPY_525_SD);
+ device.option_add("ssdd", FLOPPY_525_SSDD);
+ device.option_add("dd", FLOPPY_525_DD);
+ device.option_add("ssqd", FLOPPY_525_SSQD);
+ device.option_add("qd", FLOPPY_525_QD);
+}
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/cgenie/parallel/carts.cpp b/src/devices/bus/cgenie/parallel/carts.cpp
index 627d969bd2f..174f97e32ce 100644
--- a/src/devices/bus/cgenie/parallel/carts.cpp
+++ b/src/devices/bus/cgenie/parallel/carts.cpp
@@ -12,7 +12,8 @@
#include "printer.h"
-SLOT_INTERFACE_START( cg_parallel_slot_carts )
- SLOT_INTERFACE("joystick", CGENIE_JOYSTICK)
- SLOT_INTERFACE("printer", CGENIE_PRINTER)
-SLOT_INTERFACE_END
+void cg_parallel_slot_carts(device_slot_interface &device)
+{
+ device.option_add("joystick", CGENIE_JOYSTICK);
+ device.option_add("printer", CGENIE_PRINTER);
+}
diff --git a/src/devices/bus/cgenie/parallel/carts.h b/src/devices/bus/cgenie/parallel/carts.h
index 0c893368899..bc433c6dce0 100644
--- a/src/devices/bus/cgenie/parallel/carts.h
+++ b/src/devices/bus/cgenie/parallel/carts.h
@@ -12,6 +12,6 @@
#pragma once
-SLOT_INTERFACE_EXTERN( cg_parallel_slot_carts );
+void cg_parallel_slot_carts(device_slot_interface &device);
#endif // MAME_BUS_CGENIE_PARALLEL_CARTS_H
diff --git a/src/devices/bus/coco/coco_fdc.cpp b/src/devices/bus/coco/coco_fdc.cpp
index 1e3beeeb648..0f0fbc59e46 100644
--- a/src/devices/bus/coco/coco_fdc.cpp
+++ b/src/devices/bus/coco/coco_fdc.cpp
@@ -121,9 +121,10 @@ FLOPPY_FORMATS_MEMBER( coco_family_fdc_device_base::floppy_formats )
FLOPPY_SDF_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( coco_fdc_floppies )
- SLOT_INTERFACE("qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+static void coco_fdc_floppies(device_slot_interface &device)
+{
+ device.option_add("qd", FLOPPY_525_QD);
+}
MACHINE_CONFIG_START(coco_fdc_device_base::device_add_mconfig)
MCFG_WD1773_ADD(WD_TAG, XTAL(8'000'000))
diff --git a/src/devices/bus/coco/coco_multi.cpp b/src/devices/bus/coco/coco_multi.cpp
index 350897cfd3a..afe7e4c6a57 100644
--- a/src/devices/bus/coco/coco_multi.cpp
+++ b/src/devices/bus/coco/coco_multi.cpp
@@ -156,27 +156,29 @@ namespace
IMPLEMENTATION
***************************************************************************/
-static SLOT_INTERFACE_START(coco_cart_slot1_3)
- SLOT_INTERFACE("rs232", COCO_RS232)
- SLOT_INTERFACE("dcmodem", COCO_DCMODEM)
- SLOT_INTERFACE("orch90", COCO_ORCH90)
- SLOT_INTERFACE("ssc", COCO_SSC) MCFG_SLOT_OPTION_CLOCK("ssc", DERIVED_CLOCK(1, 1))
- SLOT_INTERFACE("games_master", COCO_PAK_GMC)
- SLOT_INTERFACE("banked_16k", COCO_PAK_BANKED)
- SLOT_INTERFACE("pak", COCO_PAK)
-SLOT_INTERFACE_END
-static SLOT_INTERFACE_START(coco_cart_slot4)
- SLOT_INTERFACE("cc2hdb1", COCO2_HDB1)
- SLOT_INTERFACE("cc3hdb1", COCO3_HDB1)
- SLOT_INTERFACE("fdcv11", COCO_FDC_V11)
- SLOT_INTERFACE("rs232", COCO_RS232)
- SLOT_INTERFACE("dcmodem", COCO_DCMODEM)
- SLOT_INTERFACE("orch90", COCO_ORCH90)
- SLOT_INTERFACE("ssc", COCO_SSC) MCFG_SLOT_OPTION_CLOCK("ssc", DERIVED_CLOCK(1, 1))
- SLOT_INTERFACE("games_master", COCO_PAK_GMC)
- SLOT_INTERFACE("banked_16k", COCO_PAK_BANKED)
- SLOT_INTERFACE("pak", COCO_PAK)
-SLOT_INTERFACE_END
+static void coco_cart_slot1_3(device_slot_interface &device)
+{
+ device.option_add("rs232", COCO_RS232);
+ device.option_add("dcmodem", COCO_DCMODEM);
+ device.option_add("orch90", COCO_ORCH90);
+ device.option_add("ssc", COCO_SSC).clock(DERIVED_CLOCK(1, 1));
+ device.option_add("games_master", COCO_PAK_GMC);
+ device.option_add("banked_16k", COCO_PAK_BANKED);
+ device.option_add("pak", COCO_PAK);
+}
+static void coco_cart_slot4(device_slot_interface &device)
+{
+ device.option_add("cc2hdb1", COCO2_HDB1);
+ device.option_add("cc3hdb1", COCO3_HDB1);
+ device.option_add("fdcv11", COCO_FDC_V11);
+ device.option_add("rs232", COCO_RS232);
+ device.option_add("dcmodem", COCO_DCMODEM);
+ device.option_add("orch90", COCO_ORCH90);
+ device.option_add("ssc", COCO_SSC).clock(DERIVED_CLOCK(1, 1));
+ device.option_add("games_master", COCO_PAK_GMC);
+ device.option_add("banked_16k", COCO_PAK_BANKED);
+ device.option_add("pak", COCO_PAK);
+}
MACHINE_CONFIG_START(coco_multipak_device::device_add_mconfig)
diff --git a/src/devices/bus/coco/coco_orch90.cpp b/src/devices/bus/coco/coco_orch90.cpp
index e008aa2ecbf..cc5aa959636 100644
--- a/src/devices/bus/coco/coco_orch90.cpp
+++ b/src/devices/bus/coco/coco_orch90.cpp
@@ -112,8 +112,8 @@ MACHINE_CONFIG_START(coco_orch90_device::device_add_mconfig)
MCFG_SOUND_ADD("ldac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // ls374.ic5 + r7 (8x20k) + r9 (8x10k)
MCFG_SOUND_ADD("rdac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // ls374.ic4 + r6 (8x20k) + r8 (8x10k)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/devices/bus/coco/dragon_fdc.cpp b/src/devices/bus/coco/dragon_fdc.cpp
index 8ecff41087c..d1473a8c0b6 100644
--- a/src/devices/bus/coco/dragon_fdc.cpp
+++ b/src/devices/bus/coco/dragon_fdc.cpp
@@ -143,9 +143,10 @@ namespace
LOCAL VARIABLES
***************************************************************************/
-static SLOT_INTERFACE_START(dragon_fdc_device_base)
- SLOT_INTERFACE("qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+static void dragon_fdc_drives(device_slot_interface &device)
+{
+ device.option_add("qd", FLOPPY_525_QD);
+}
MACHINE_CONFIG_START(dragon_fdc_device_base::device_add_mconfig)
@@ -154,13 +155,13 @@ MACHINE_CONFIG_START(dragon_fdc_device_base::device_add_mconfig)
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(dragon_fdc_device_base, fdc_drq_w))
MCFG_WD_FDC_FORCE_READY
- MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":0", dragon_fdc_device_base, "qd", dragon_fdc_device_base::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":0", dragon_fdc_drives, "qd", dragon_fdc_device_base::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":1", dragon_fdc_device_base, "qd", dragon_fdc_device_base::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":1", dragon_fdc_drives, "qd", dragon_fdc_device_base::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":2", dragon_fdc_device_base, "", dragon_fdc_device_base::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":2", dragon_fdc_drives, "", dragon_fdc_device_base::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":3", dragon_fdc_device_base, "", dragon_fdc_device_base::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":3", dragon_fdc_drives, "", dragon_fdc_device_base::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END
@@ -169,13 +170,13 @@ MACHINE_CONFIG_START(premier_fdc_device_base::device_add_mconfig)
MCFG_WD2791_ADD(WD2791_TAG, XTAL(2'000'000) / 2)
MCFG_WD_FDC_FORCE_READY
- MCFG_FLOPPY_DRIVE_ADD(WD2791_TAG ":0", dragon_fdc_device_base, "qd", dragon_fdc_device_base::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(WD2791_TAG ":0", dragon_fdc_drives, "qd", dragon_fdc_device_base::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD(WD2791_TAG ":1", dragon_fdc_device_base, "qd", dragon_fdc_device_base::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(WD2791_TAG ":1", dragon_fdc_drives, "qd", dragon_fdc_device_base::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD(WD2791_TAG ":2", dragon_fdc_device_base, "", dragon_fdc_device_base::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(WD2791_TAG ":2", dragon_fdc_drives, "", dragon_fdc_device_base::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD(WD2791_TAG ":3", dragon_fdc_device_base, "", dragon_fdc_device_base::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(WD2791_TAG ":3", dragon_fdc_drives, "", dragon_fdc_device_base::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END
diff --git a/src/devices/bus/coleco/ctrl.cpp b/src/devices/bus/coleco/ctrl.cpp
index 630553998de..330c7c71551 100644
--- a/src/devices/bus/coleco/ctrl.cpp
+++ b/src/devices/bus/coleco/ctrl.cpp
@@ -73,7 +73,8 @@ void colecovision_control_port_device::device_start()
#include "hand.h"
#include "sac.h"
-SLOT_INTERFACE_START( colecovision_control_port_devices )
- SLOT_INTERFACE("hand", COLECO_HAND_CONTROLLER)
- SLOT_INTERFACE("sac", COLECO_SUPER_ACTION_CONTROLLER)
-SLOT_INTERFACE_END
+void colecovision_control_port_devices(device_slot_interface &device)
+{
+ device.option_add("hand", COLECO_HAND_CONTROLLER);
+ device.option_add("sac", COLECO_SUPER_ACTION_CONTROLLER);
+}
diff --git a/src/devices/bus/coleco/ctrl.h b/src/devices/bus/coleco/ctrl.h
index 75d1610e698..9d605415cb4 100644
--- a/src/devices/bus/coleco/ctrl.h
+++ b/src/devices/bus/coleco/ctrl.h
@@ -95,7 +95,7 @@ private:
// device type definition
DECLARE_DEVICE_TYPE(COLECOVISION_CONTROL_PORT, colecovision_control_port_device)
-SLOT_INTERFACE_EXTERN( colecovision_control_port_devices );
+void colecovision_control_port_devices(device_slot_interface &device);
#endif // MAME_BUS_COLECO_CTRL_H
diff --git a/src/devices/bus/coleco/exp.cpp b/src/devices/bus/coleco/exp.cpp
index b092fd5a49b..c2878c4523a 100644
--- a/src/devices/bus/coleco/exp.cpp
+++ b/src/devices/bus/coleco/exp.cpp
@@ -136,8 +136,9 @@ uint8_t colecovision_cartridge_slot_device::bd_r(address_space &space, offs_t of
#include "std.h"
#include "xin1.h"
-SLOT_INTERFACE_START( colecovision_cartridges )
+void colecovision_cartridges(device_slot_interface &device)
+{
// the following need ROMs from the software list
- SLOT_INTERFACE_INTERNAL("standard", COLECOVISION_STANDARD)
- SLOT_INTERFACE_INTERNAL("xin1", COLECOVISION_XIN1)
-SLOT_INTERFACE_END
+ device.option_add_internal("standard", COLECOVISION_STANDARD);
+ device.option_add_internal("xin1", COLECOVISION_XIN1);
+}
diff --git a/src/devices/bus/coleco/exp.h b/src/devices/bus/coleco/exp.h
index 4c4f8db8fa8..e722dfc1234 100644
--- a/src/devices/bus/coleco/exp.h
+++ b/src/devices/bus/coleco/exp.h
@@ -120,7 +120,7 @@ protected:
// device type definition
DECLARE_DEVICE_TYPE(COLECOVISION_CARTRIDGE_SLOT, colecovision_cartridge_slot_device)
-SLOT_INTERFACE_EXTERN( colecovision_cartridges );
+void colecovision_cartridges(device_slot_interface &device);
#endif // MAME_BUS_COLECO_EXP_H
diff --git a/src/devices/bus/compis/graphics.cpp b/src/devices/bus/compis/graphics.cpp
index cf66c311632..ec8db616003 100644
--- a/src/devices/bus/compis/graphics.cpp
+++ b/src/devices/bus/compis/graphics.cpp
@@ -67,7 +67,8 @@ void compis_graphics_slot_device::device_start()
// slot devices
#include "hrg.h"
-SLOT_INTERFACE_START( compis_graphics_cards )
- SLOT_INTERFACE("hrg", COMPIS_HRG)
- SLOT_INTERFACE("uhrg", COMPIS_UHRG)
-SLOT_INTERFACE_END
+void compis_graphics_cards(device_slot_interface &device)
+{
+ device.option_add("hrg", COMPIS_HRG);
+ device.option_add("uhrg", COMPIS_UHRG);
+}
diff --git a/src/devices/bus/compis/graphics.h b/src/devices/bus/compis/graphics.h
index f42bb2bdd30..063a7d886b0 100644
--- a/src/devices/bus/compis/graphics.h
+++ b/src/devices/bus/compis/graphics.h
@@ -101,7 +101,7 @@ protected:
DECLARE_DEVICE_TYPE(COMPIS_GRAPHICS_SLOT, compis_graphics_slot_device)
-SLOT_INTERFACE_EXTERN( compis_graphics_cards );
+void compis_graphics_cards(device_slot_interface &device);
#endif // MAME_BUS_COMPIS_GRAPHICS_H
diff --git a/src/devices/bus/compucolor/floppy.cpp b/src/devices/bus/compucolor/floppy.cpp
index af789ea7e43..f454a4f092a 100644
--- a/src/devices/bus/compucolor/floppy.cpp
+++ b/src/devices/bus/compucolor/floppy.cpp
@@ -23,9 +23,10 @@ DEFINE_DEVICE_TYPE(COMPUCOLOR_FLOPPY, compucolor_floppy_device, "compc
// SLOT_INTERFACE( compucolor_floppy_port_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( compucolor_floppy_port_devices )
- SLOT_INTERFACE("floppy", COMPUCOLOR_FLOPPY)
-SLOT_INTERFACE_END
+void compucolor_floppy_port_devices(device_slot_interface &device)
+{
+ device.option_add("floppy", COMPUCOLOR_FLOPPY);
+}
//-------------------------------------------------
@@ -41,9 +42,10 @@ FLOPPY_FORMATS_END
// SLOT_INTERFACE( compucolor_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( compucolor_floppies )
- SLOT_INTERFACE_INTERNAL( "525sssd", FLOPPY_525_SSSD )
-SLOT_INTERFACE_END
+static void compucolor_floppies(device_slot_interface &device)
+{
+ device.option_add_internal("525sssd", FLOPPY_525_SSSD);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/compucolor/floppy.h b/src/devices/bus/compucolor/floppy.h
index 0a5c064acf1..e879517a30b 100644
--- a/src/devices/bus/compucolor/floppy.h
+++ b/src/devices/bus/compucolor/floppy.h
@@ -116,6 +116,6 @@ DECLARE_DEVICE_TYPE(COMPUCOLOR_FLOPPY, compucolor_floppy_device)
// slot devices
-SLOT_INTERFACE_EXTERN( compucolor_floppy_port_devices );
+void compucolor_floppy_port_devices(device_slot_interface &device);
#endif // MAME_BUS_COMPUCOLOR_FLOPPY_H
diff --git a/src/devices/bus/comx35/exp.cpp b/src/devices/bus/comx35/exp.cpp
index 8c160829bdc..1780c0fab8b 100644
--- a/src/devices/bus/comx35/exp.cpp
+++ b/src/devices/bus/comx35/exp.cpp
@@ -176,13 +176,14 @@ READ_LINE_MEMBER( comx_expansion_slot_device::ef4_r )
#include "ram.h"
#include "thermal.h"
-SLOT_INTERFACE_START( comx_expansion_cards )
- SLOT_INTERFACE("eb", COMX_EB)
- SLOT_INTERFACE("fd", COMX_FD)
- SLOT_INTERFACE("clm", COMX_CLM)
- SLOT_INTERFACE("ram", COMX_RAM)
- SLOT_INTERFACE("joy", COMX_JOY)
- SLOT_INTERFACE("prn", COMX_PRN)
- SLOT_INTERFACE("thm", COMX_THM)
- SLOT_INTERFACE("epr", COMX_EPR)
-SLOT_INTERFACE_END
+void comx_expansion_cards(device_slot_interface &device)
+{
+ device.option_add("eb", COMX_EB);
+ device.option_add("fd", COMX_FD);
+ device.option_add("clm", COMX_CLM);
+ device.option_add("ram", COMX_RAM);
+ device.option_add("joy", COMX_JOY);
+ device.option_add("prn", COMX_PRN);
+ device.option_add("thm", COMX_THM);
+ device.option_add("epr", COMX_EPR);
+}
diff --git a/src/devices/bus/comx35/exp.h b/src/devices/bus/comx35/exp.h
index fb5831e31fe..6ffa7e9b67c 100644
--- a/src/devices/bus/comx35/exp.h
+++ b/src/devices/bus/comx35/exp.h
@@ -135,7 +135,7 @@ protected:
DECLARE_DEVICE_TYPE(COMX_EXPANSION_SLOT, comx_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( comx_expansion_cards );
+void comx_expansion_cards(device_slot_interface &device);
#endif // MAME_BUS_COMX35_EXP_H
diff --git a/src/devices/bus/comx35/fdc.cpp b/src/devices/bus/comx35/fdc.cpp
index 49ea672b1ee..962ff78c6af 100644
--- a/src/devices/bus/comx35/fdc.cpp
+++ b/src/devices/bus/comx35/fdc.cpp
@@ -85,10 +85,11 @@ FLOPPY_FORMATS_MEMBER( comx_fd_device::floppy_formats )
FLOPPY_COMX35_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( comx_fd_floppies )
- SLOT_INTERFACE( "525sd35t", FLOPPY_525_SD_35T )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void comx_fd_floppies(device_slot_interface &device)
+{
+ device.option_add("525sd35t", FLOPPY_525_SD_35T);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/cpc/amdrum.cpp b/src/devices/bus/cpc/amdrum.cpp
index bf11fb5e095..df9b0a7ff5f 100644
--- a/src/devices/bus/cpc/amdrum.cpp
+++ b/src/devices/bus/cpc/amdrum.cpp
@@ -24,7 +24,7 @@ MACHINE_CONFIG_START(cpc_amdrum_device::device_add_mconfig)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
// no pass-through
MACHINE_CONFIG_END
diff --git a/src/devices/bus/cpc/cpc_rom.cpp b/src/devices/bus/cpc/cpc_rom.cpp
index cb71e375db8..af5150862e9 100644
--- a/src/devices/bus/cpc/cpc_rom.cpp
+++ b/src/devices/bus/cpc/cpc_rom.cpp
@@ -11,7 +11,7 @@
DEFINE_DEVICE_TYPE(CPC_ROM, cpc_rom_device, "cpc_rom", "CPC ROM Box")
-SLOT_INTERFACE_EXTERN(cpc_exp_cards);
+void cpc_exp_cards(device_slot_interface &device);
//**************************************************************************
// DEVICE CONFIG INTERFACE
diff --git a/src/devices/bus/cpc/cpc_rs232.cpp b/src/devices/bus/cpc/cpc_rs232.cpp
index c0914b93b68..688b1b4e2ab 100644
--- a/src/devices/bus/cpc/cpc_rs232.cpp
+++ b/src/devices/bus/cpc/cpc_rs232.cpp
@@ -9,7 +9,7 @@
#include "emu.h"
#include "cpc_rs232.h"
-SLOT_INTERFACE_EXTERN(cpc_exp_cards);
+void cpc_exp_cards(device_slot_interface &device);
//**************************************************************************
// DEVICE DEFINITIONS
diff --git a/src/devices/bus/cpc/cpc_ssa1.cpp b/src/devices/bus/cpc/cpc_ssa1.cpp
index 59369e577df..47759ac3307 100644
--- a/src/devices/bus/cpc/cpc_ssa1.cpp
+++ b/src/devices/bus/cpc/cpc_ssa1.cpp
@@ -13,7 +13,7 @@
#include "speaker.h"
-SLOT_INTERFACE_EXTERN(cpc_exp_cards);
+void cpc_exp_cards(device_slot_interface &device);
//**************************************************************************
// DEVICE DEFINITIONS
diff --git a/src/devices/bus/cpc/ddi1.cpp b/src/devices/bus/cpc/ddi1.cpp
index 7364e899efb..13bb7950077 100644
--- a/src/devices/bus/cpc/ddi1.cpp
+++ b/src/devices/bus/cpc/ddi1.cpp
@@ -8,7 +8,7 @@
#include "ddi1.h"
#include "softlist.h"
-SLOT_INTERFACE_EXTERN(cpc_exp_cards);
+void cpc_exp_cards(device_slot_interface &device);
//**************************************************************************
// DEVICE DEFINITIONS
@@ -16,9 +16,10 @@ SLOT_INTERFACE_EXTERN(cpc_exp_cards);
DEFINE_DEVICE_TYPE(CPC_DDI1, cpc_ddi1_device, "cpc_ddi1", "Amstrad DDI-1")
-static SLOT_INTERFACE_START( ddi1_floppies )
- SLOT_INTERFACE( "3ssdd", FLOPPY_3_SSDD )
-SLOT_INTERFACE_END
+static void ddi1_floppies(device_slot_interface &device)
+{
+ device.option_add("3ssdd", FLOPPY_3_SSDD);
+}
//-------------------------------------------------
// Device ROM definition
diff --git a/src/devices/bus/cpc/magicsound.cpp b/src/devices/bus/cpc/magicsound.cpp
index ef3b9cb52e0..fef6582ae11 100644
--- a/src/devices/bus/cpc/magicsound.cpp
+++ b/src/devices/bus/cpc/magicsound.cpp
@@ -59,7 +59,7 @@ MACHINE_CONFIG_START(al_magicsound_device::device_add_mconfig)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
// no pass-through(?)
MACHINE_CONFIG_END
diff --git a/src/devices/bus/cpc/mface2.cpp b/src/devices/bus/cpc/mface2.cpp
index 49cb59f54cc..98c2ded0ce8 100644
--- a/src/devices/bus/cpc/mface2.cpp
+++ b/src/devices/bus/cpc/mface2.cpp
@@ -9,7 +9,7 @@
#include "emu.h"
#include "mface2.h"
-SLOT_INTERFACE_EXTERN(cpc_exp_cards);
+void cpc_exp_cards(device_slot_interface &device);
//**************************************************************************
// DEVICE DEFINITIONS
diff --git a/src/devices/bus/cpc/playcity.cpp b/src/devices/bus/cpc/playcity.cpp
index 9ec331ffd54..66c1bd715a5 100644
--- a/src/devices/bus/cpc/playcity.cpp
+++ b/src/devices/bus/cpc/playcity.cpp
@@ -15,7 +15,7 @@
#include "speaker.h"
-SLOT_INTERFACE_EXTERN(cpc_exp_cards);
+void cpc_exp_cards(device_slot_interface &device);
//**************************************************************************
// DEVICE DEFINITIONS
diff --git a/src/devices/bus/ecbbus/ecbbus.cpp b/src/devices/bus/ecbbus/ecbbus.cpp
index 625f2e46086..c5499f1fb6c 100644
--- a/src/devices/bus/ecbbus/ecbbus.cpp
+++ b/src/devices/bus/ecbbus/ecbbus.cpp
@@ -190,11 +190,12 @@ WRITE8_MEMBER( ecbbus_device::io_w )
// slot devices
#include "grip.h"
-SLOT_INTERFACE_START( ecbbus_cards )
- SLOT_INTERFACE("grip21", ECB_GRIP21)
-/* SLOT_INTERFACE("grip25", ECB_GRIP25)
- SLOT_INTERFACE("grip26", ECB_GRIP26)
- SLOT_INTERFACE("grip31", ECB_GRIP31)
- SLOT_INTERFACE("grip562", ECB_GRIP562)
- SLOT_INTERFACE("grips115", ECB_GRIPS115)*/
-SLOT_INTERFACE_END
+void ecbbus_cards(device_slot_interface &device)
+{
+ device.option_add("grip21", ECB_GRIP21);
+/* device.option_add("grip25", ECB_GRIP25);
+ device.option_add("grip26", ECB_GRIP26);
+ device.option_add("grip31", ECB_GRIP31);
+ device.option_add("grip562", ECB_GRIP562);
+ device.option_add("grips115", ECB_GRIPS115);*/
+}
diff --git a/src/devices/bus/ecbbus/ecbbus.h b/src/devices/bus/ecbbus/ecbbus.h
index 442486c052c..b446b6ee0ae 100644
--- a/src/devices/bus/ecbbus/ecbbus.h
+++ b/src/devices/bus/ecbbus/ecbbus.h
@@ -177,7 +177,7 @@ protected:
};
-SLOT_INTERFACE_EXTERN( ecbbus_cards );
+void ecbbus_cards(device_slot_interface &device);
diff --git a/src/devices/bus/econet/e01.cpp b/src/devices/bus/econet/e01.cpp
index dd0e10b86a0..ec668e3954e 100644
--- a/src/devices/bus/econet/e01.cpp
+++ b/src/devices/bus/econet/e01.cpp
@@ -173,9 +173,10 @@ FLOPPY_FORMATS_MEMBER( econet_e01_device::floppy_formats_afs )
FLOPPY_AFS_FORMAT
FLOPPY_FORMATS_END0
-static SLOT_INTERFACE_START( e01_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) // NEC FD1036 A
-SLOT_INTERFACE_END
+static void e01_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD); // NEC FD1036 A
+}
WRITE_LINE_MEMBER( econet_e01_device::fdc_irq_w )
{
diff --git a/src/devices/bus/econet/econet.cpp b/src/devices/bus/econet/econet.cpp
index 2b9b961af88..3cc15bc224b 100644
--- a/src/devices/bus/econet/econet.cpp
+++ b/src/devices/bus/econet/econet.cpp
@@ -298,7 +298,8 @@ void econet_device::data_w(device_t *device, int state)
// slot devices
#include "e01.h"
-SLOT_INTERFACE_START( econet_devices )
- SLOT_INTERFACE("e01", ECONET_E01)
- SLOT_INTERFACE("e01s", ECONET_E01S)
-SLOT_INTERFACE_END
+void econet_devices(device_slot_interface &device)
+{
+ device.option_add("e01", ECONET_E01);
+ device.option_add("e01s", ECONET_E01S);
+}
diff --git a/src/devices/bus/econet/econet.h b/src/devices/bus/econet/econet.h
index 9bed6727da0..9b731d27b67 100644
--- a/src/devices/bus/econet/econet.h
+++ b/src/devices/bus/econet/econet.h
@@ -160,8 +160,6 @@ DECLARE_DEVICE_TYPE(ECONET, econet_device)
DECLARE_DEVICE_TYPE(ECONET_SLOT, econet_slot_device)
-SLOT_INTERFACE_EXTERN( econet_devices );
-
-
+void econet_devices(device_slot_interface &device);
#endif // MAME_BUS_ECONET_ECONET_H
diff --git a/src/devices/bus/einstein/pipe/pipe.cpp b/src/devices/bus/einstein/pipe/pipe.cpp
index 51169544ba7..b40038e650b 100644
--- a/src/devices/bus/einstein/pipe/pipe.cpp
+++ b/src/devices/bus/einstein/pipe/pipe.cpp
@@ -129,8 +129,9 @@ device_tatung_pipe_interface::~device_tatung_pipe_interface()
// SLOT INTERFACE
//**************************************************************************
-SLOT_INTERFACE_START( tatung_pipe_cards )
- SLOT_INTERFACE("silicon_disc", EINSTEIN_SILICON_DISC)
- SLOT_INTERFACE("speculator", EINSTEIN_SPECULATOR)
- SLOT_INTERFACE("tk02", TK02_80COL)
-SLOT_INTERFACE_END
+void tatung_pipe_cards(device_slot_interface &device)
+{
+ device.option_add("silicon_disc", EINSTEIN_SILICON_DISC);
+ device.option_add("speculator", EINSTEIN_SPECULATOR);
+ device.option_add("tk02", TK02_80COL);
+}
diff --git a/src/devices/bus/einstein/pipe/pipe.h b/src/devices/bus/einstein/pipe/pipe.h
index 222ebe18e0c..078a88fe004 100644
--- a/src/devices/bus/einstein/pipe/pipe.h
+++ b/src/devices/bus/einstein/pipe/pipe.h
@@ -131,6 +131,6 @@ protected:
DECLARE_DEVICE_TYPE(TATUNG_PIPE, tatung_pipe_device)
// supported devices
-SLOT_INTERFACE_EXTERN(tatung_pipe_cards);
+void tatung_pipe_cards(device_slot_interface &device);
#endif // MAME_BUS_EINSTEIN_PIPE_PIPE_H
diff --git a/src/devices/bus/einstein/userport/userport.cpp b/src/devices/bus/einstein/userport/userport.cpp
index d38dba12af9..419c24d94d4 100644
--- a/src/devices/bus/einstein/userport/userport.cpp
+++ b/src/devices/bus/einstein/userport/userport.cpp
@@ -118,7 +118,8 @@ device_einstein_userport_interface::~device_einstein_userport_interface()
// SLOT INTERFACE
//**************************************************************************
-SLOT_INTERFACE_START( einstein_userport_cards )
- SLOT_INTERFACE("mouse", EINSTEIN_MOUSE)
- SLOT_INTERFACE("speech", EINSTEIN_SPEECH)
-SLOT_INTERFACE_END
+void einstein_userport_cards(device_slot_interface &device)
+{
+ device.option_add("mouse", EINSTEIN_MOUSE);
+ device.option_add("speech", EINSTEIN_SPEECH);
+}
diff --git a/src/devices/bus/einstein/userport/userport.h b/src/devices/bus/einstein/userport/userport.h
index ea00d229b08..a0c650b2193 100644
--- a/src/devices/bus/einstein/userport/userport.h
+++ b/src/devices/bus/einstein/userport/userport.h
@@ -90,6 +90,6 @@ protected:
DECLARE_DEVICE_TYPE(EINSTEIN_USERPORT, einstein_userport_device)
// supported devices
-SLOT_INTERFACE_EXTERN(einstein_userport_cards);
+void einstein_userport_cards(device_slot_interface &device);
#endif // MAME_BUS_EINSTEIN_USERPORT_USERPORT_H
diff --git a/src/devices/bus/electron/cart/ap34.cpp b/src/devices/bus/electron/cart/ap34.cpp
index d22fd885c04..053017c3c62 100644
--- a/src/devices/bus/electron/cart/ap34.cpp
+++ b/src/devices/bus/electron/cart/ap34.cpp
@@ -34,10 +34,11 @@ FLOPPY_FORMATS_MEMBER(electron_ap34_device::floppy_formats)
FLOPPY_ACORN_ADFS_OLD_FORMAT
FLOPPY_FORMATS_END0
-SLOT_INTERFACE_START(ap34_floppies)
- SLOT_INTERFACE("35dd", FLOPPY_35_DD)
- SLOT_INTERFACE("525qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+void ap34_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
//-------------------------------------------------
// device_add_mconfig - add device configuration
diff --git a/src/devices/bus/electron/cart/cumana.cpp b/src/devices/bus/electron/cart/cumana.cpp
index ef184695f9f..94024d66053 100644
--- a/src/devices/bus/electron/cart/cumana.cpp
+++ b/src/devices/bus/electron/cart/cumana.cpp
@@ -35,10 +35,11 @@ FLOPPY_FORMATS_MEMBER(electron_cumana_device::floppy_formats)
FLOPPY_ACORN_ADFS_OLD_FORMAT
FLOPPY_FORMATS_END0
-SLOT_INTERFACE_START(cumana_floppies)
- SLOT_INTERFACE("35dd", FLOPPY_35_DD)
- SLOT_INTERFACE("525qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+void cumana_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
//-------------------------------------------------
// device_add_mconfig - add device configuration
diff --git a/src/devices/bus/electron/cart/peg400.cpp b/src/devices/bus/electron/cart/peg400.cpp
index 1bf8442421f..9e8df57c310 100644
--- a/src/devices/bus/electron/cart/peg400.cpp
+++ b/src/devices/bus/electron/cart/peg400.cpp
@@ -31,10 +31,11 @@ FLOPPY_FORMATS_MEMBER(electron_peg400_device::floppy_formats)
FLOPPY_ACORN_ADFS_OLD_FORMAT
FLOPPY_FORMATS_END0
-SLOT_INTERFACE_START(peg400_floppies)
- SLOT_INTERFACE("35dd", FLOPPY_35_DD)
- SLOT_INTERFACE("525qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+void peg400_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
//-------------------------------------------------
// device_add_mconfig - add device configuration
diff --git a/src/devices/bus/electron/cart/slot.cpp b/src/devices/bus/electron/cart/slot.cpp
index 8a13e2a4664..aae2f65594d 100644
--- a/src/devices/bus/electron/cart/slot.cpp
+++ b/src/devices/bus/electron/cart/slot.cpp
@@ -280,17 +280,18 @@ void electron_cartslot_device::write(address_space &space, offs_t offset, uint8_
#include "std.h"
-SLOT_INTERFACE_START(electron_cart)
- SLOT_INTERFACE_INTERNAL("std", ELECTRON_STDCART)
- SLOT_INTERFACE_INTERNAL("abr", ELECTRON_ABR)
- SLOT_INTERFACE_INTERNAL("ap34", ELECTRON_AP34)
- SLOT_INTERFACE_INTERNAL("aqr", ELECTRON_AQR)
- SLOT_INTERFACE_INTERNAL("click", ELECTRON_CLICK)
- SLOT_INTERFACE_INTERNAL("cumana", ELECTRON_CUMANA)
- SLOT_INTERFACE_INTERNAL("mgc", ELECTRON_MGC)
- SLOT_INTERFACE_INTERNAL("peg400", ELECTRON_PEG400)
- SLOT_INTERFACE_INTERNAL("sndexp", ELECTRON_SNDEXP)
- SLOT_INTERFACE_INTERNAL("sndexp3", ELECTRON_SNDEXP3)
- SLOT_INTERFACE_INTERNAL("sp64", ELECTRON_SP64)
- SLOT_INTERFACE_INTERNAL("stlefs", ELECTRON_STLEFS)
-SLOT_INTERFACE_END
+void electron_cart(device_slot_interface &device)
+{
+ device.option_add_internal("std", ELECTRON_STDCART);
+ device.option_add_internal("abr", ELECTRON_ABR);
+ device.option_add_internal("ap34", ELECTRON_AP34);
+ device.option_add_internal("aqr", ELECTRON_AQR);
+ device.option_add_internal("click", ELECTRON_CLICK);
+ device.option_add_internal("cumana", ELECTRON_CUMANA);
+ device.option_add_internal("mgc", ELECTRON_MGC);
+ device.option_add_internal("peg400", ELECTRON_PEG400);
+ device.option_add_internal("sndexp", ELECTRON_SNDEXP);
+ device.option_add_internal("sndexp3", ELECTRON_SNDEXP3);
+ device.option_add_internal("sp64", ELECTRON_SP64);
+ device.option_add_internal("stlefs", ELECTRON_STLEFS);
+}
diff --git a/src/devices/bus/electron/cart/slot.h b/src/devices/bus/electron/cart/slot.h
index 533c4bb4555..3b7b934ff1e 100644
--- a/src/devices/bus/electron/cart/slot.h
+++ b/src/devices/bus/electron/cart/slot.h
@@ -212,7 +212,7 @@ protected:
// device type definition
DECLARE_DEVICE_TYPE(ELECTRON_CARTSLOT, electron_cartslot_device)
-SLOT_INTERFACE_EXTERN(electron_cart);
+void electron_cart(device_slot_interface &device);
#endif // MAME_BUS_ELECTRON_CARTSLOT_H
diff --git a/src/devices/bus/electron/cart/stlefs.cpp b/src/devices/bus/electron/cart/stlefs.cpp
index 29cfdf471e1..a47dca06e67 100644
--- a/src/devices/bus/electron/cart/stlefs.cpp
+++ b/src/devices/bus/electron/cart/stlefs.cpp
@@ -34,10 +34,11 @@ FLOPPY_FORMATS_MEMBER(electron_stlefs_device::floppy_formats)
FLOPPY_ACORN_ADFS_OLD_FORMAT
FLOPPY_FORMATS_END
-SLOT_INTERFACE_START(stlefs_floppies)
- SLOT_INTERFACE("35dd", FLOPPY_35_DD)
- SLOT_INTERFACE("525qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+void stlefs_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
//-------------------------------------------------
// device_add_mconfig - add device configuration
diff --git a/src/devices/bus/electron/exp.cpp b/src/devices/bus/electron/exp.cpp
index 476eba184ca..9d78af460a9 100644
--- a/src/devices/bus/electron/exp.cpp
+++ b/src/devices/bus/electron/exp.cpp
@@ -134,15 +134,16 @@ void electron_expansion_slot_device::expbus_w(address_space &space, offs_t offse
//#include "voxbox.h"
-SLOT_INTERFACE_START( electron_expansion_devices )
- SLOT_INTERFACE("fbjoy", ELECTRON_FBJOY)
- //SLOT_INTERFACE("fbprint", ELECTRON_FBPRINT)
- //SLOT_INTERFACE("jafamode7", ELECTRON_JAFAMODE7)
- SLOT_INTERFACE("plus1", ELECTRON_PLUS1)
- SLOT_INTERFACE("plus3", ELECTRON_PLUS3)
- SLOT_INTERFACE("pwrjoy", ELECTRON_PWRJOY)
- SLOT_INTERFACE("rombox", ELECTRON_ROMBOX)
- SLOT_INTERFACE("romboxp", ELECTRON_ROMBOXP)
- SLOT_INTERFACE("m2105", ELECTRON_M2105)
- //SLOT_INTERFACE("voxbox", ELECTRON_VOXBOX)
-SLOT_INTERFACE_END
+void electron_expansion_devices(device_slot_interface &device)
+{
+ device.option_add("fbjoy", ELECTRON_FBJOY);
+ //device.option_add("fbprint", ELECTRON_FBPRINT);
+ //device.option_add("jafamode7", ELECTRON_JAFAMODE7);
+ device.option_add("plus1", ELECTRON_PLUS1);
+ device.option_add("plus3", ELECTRON_PLUS3);
+ device.option_add("pwrjoy", ELECTRON_PWRJOY);
+ device.option_add("rombox", ELECTRON_ROMBOX);
+ device.option_add("romboxp", ELECTRON_ROMBOXP);
+ device.option_add("m2105", ELECTRON_M2105);
+ //device.option_add("voxbox", ELECTRON_VOXBOX);
+}
diff --git a/src/devices/bus/electron/exp.h b/src/devices/bus/electron/exp.h
index db6d7c46248..25657cc3a06 100644
--- a/src/devices/bus/electron/exp.h
+++ b/src/devices/bus/electron/exp.h
@@ -176,7 +176,7 @@ protected:
// device type definition
DECLARE_DEVICE_TYPE(ELECTRON_EXPANSION_SLOT, electron_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( electron_expansion_devices );
+void electron_expansion_devices(device_slot_interface &device);
#endif // MAME_BUS_ELECTRON_EXP_H
diff --git a/src/devices/bus/electron/plus3.cpp b/src/devices/bus/electron/plus3.cpp
index 62c30b1ad1f..5eb2f88ccb3 100644
--- a/src/devices/bus/electron/plus3.cpp
+++ b/src/devices/bus/electron/plus3.cpp
@@ -36,10 +36,11 @@ FLOPPY_FORMATS_MEMBER(electron_plus3_device::floppy_formats)
FLOPPY_ACORN_ADFS_OLD_FORMAT
FLOPPY_FORMATS_END0
-SLOT_INTERFACE_START(electron_floppies)
- SLOT_INTERFACE("35dd", FLOPPY_35_DD)
- SLOT_INTERFACE("525qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+void electron_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
ROM_START( plus3 )
diff --git a/src/devices/bus/ep64/exdos.cpp b/src/devices/bus/ep64/exdos.cpp
index eb5b61229c9..1518130681f 100644
--- a/src/devices/bus/ep64/exdos.cpp
+++ b/src/devices/bus/ep64/exdos.cpp
@@ -93,9 +93,10 @@ FLOPPY_FORMATS_MEMBER( ep64_exdos_device::floppy_formats )
FLOPPY_EP64_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( ep64_exdos_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void ep64_exdos_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ep64/exp.cpp b/src/devices/bus/ep64/exp.cpp
index 29623ce5993..32ef220519d 100644
--- a/src/devices/bus/ep64/exp.cpp
+++ b/src/devices/bus/ep64/exp.cpp
@@ -101,6 +101,7 @@ void ep64_expansion_bus_slot_device::device_reset()
// slot devices
#include "exdos.h"
-SLOT_INTERFACE_START( ep64_expansion_bus_cards )
- SLOT_INTERFACE("exdos", EP64_EXDOS)
-SLOT_INTERFACE_END
+void ep64_expansion_bus_cards(device_slot_interface &device)
+{
+ device.option_add("exdos", EP64_EXDOS);
+}
diff --git a/src/devices/bus/ep64/exp.h b/src/devices/bus/ep64/exp.h
index 223be36d7e8..b101fa29f70 100644
--- a/src/devices/bus/ep64/exp.h
+++ b/src/devices/bus/ep64/exp.h
@@ -143,7 +143,7 @@ protected:
DECLARE_DEVICE_TYPE(EP64_EXPANSION_BUS_SLOT, ep64_expansion_bus_slot_device)
-SLOT_INTERFACE_EXTERN( ep64_expansion_bus_cards );
+void ep64_expansion_bus_cards(device_slot_interface &device);
#endif // MAME_BUS_EP64_EXP_H
diff --git a/src/devices/bus/epson_sio/epson_sio.cpp b/src/devices/bus/epson_sio/epson_sio.cpp
index 74e9294d456..32a572bb45d 100644
--- a/src/devices/bus/epson_sio/epson_sio.cpp
+++ b/src/devices/bus/epson_sio/epson_sio.cpp
@@ -111,7 +111,8 @@ WRITE_LINE_MEMBER( epson_sio_device::pout_w )
// SLOT INTERFACE
//**************************************************************************
-SLOT_INTERFACE_START( epson_sio_devices )
- SLOT_INTERFACE("pf10", EPSON_PF10)
- SLOT_INTERFACE("tf20", EPSON_TF20)
-SLOT_INTERFACE_END
+void epson_sio_devices(device_slot_interface &device)
+{
+ device.option_add("pf10", EPSON_PF10);
+ device.option_add("tf20", EPSON_TF20);
+}
diff --git a/src/devices/bus/epson_sio/epson_sio.h b/src/devices/bus/epson_sio/epson_sio.h
index 814dbf6d5fd..8da0a4b3e44 100644
--- a/src/devices/bus/epson_sio/epson_sio.h
+++ b/src/devices/bus/epson_sio/epson_sio.h
@@ -90,7 +90,7 @@ DECLARE_DEVICE_TYPE(EPSON_SIO, epson_sio_device)
// supported devices
-SLOT_INTERFACE_EXTERN( epson_sio_devices );
+void epson_sio_devices(device_slot_interface &device);
#endif // MAME_BUS_EPSON_SIO_EPSON_SIO_H
diff --git a/src/devices/bus/epson_sio/pf10.cpp b/src/devices/bus/epson_sio/pf10.cpp
index 296dea50d4c..aa358832041 100644
--- a/src/devices/bus/epson_sio/pf10.cpp
+++ b/src/devices/bus/epson_sio/pf10.cpp
@@ -61,9 +61,10 @@ const tiny_rom_entry *epson_pf10_device::device_rom_region() const
// device_add_mconfig - add device configuration
//-------------------------------------------------
-static SLOT_INTERFACE_START( pf10_floppies )
- SLOT_INTERFACE( "smd165", EPSON_SMD_165 )
-SLOT_INTERFACE_END
+static void pf10_floppies(device_slot_interface &device)
+{
+ device.option_add("smd165", EPSON_SMD_165);
+}
MACHINE_CONFIG_START(epson_pf10_device::device_add_mconfig)
MCFG_CPU_ADD("maincpu", HD6303Y, XTAL(4'915'200)) // HD63A03XF
diff --git a/src/devices/bus/epson_sio/tf20.cpp b/src/devices/bus/epson_sio/tf20.cpp
index 572baf96621..b59592d6f5b 100644
--- a/src/devices/bus/epson_sio/tf20.cpp
+++ b/src/devices/bus/epson_sio/tf20.cpp
@@ -81,9 +81,10 @@ ioport_constructor epson_tf20_device::device_input_ports() const
// device_add_mconfig - add device configuration
//-------------------------------------------------
-static SLOT_INTERFACE_START( tf20_floppies )
- SLOT_INTERFACE( "sd320", EPSON_SD_320 )
-SLOT_INTERFACE_END
+static void tf20_floppies(device_slot_interface &device)
+{
+ device.option_add("sd320", EPSON_SD_320);
+}
MACHINE_CONFIG_START(epson_tf20_device::device_add_mconfig)
MCFG_CPU_ADD("19b", Z80, XTAL_CR1 / 2) /* uPD780C */
diff --git a/src/devices/bus/gamate/rom.cpp b/src/devices/bus/gamate/rom.cpp
index 18499332bff..cda37716b5f 100644
--- a/src/devices/bus/gamate/rom.cpp
+++ b/src/devices/bus/gamate/rom.cpp
@@ -177,8 +177,9 @@ MACHINE_CONFIG_END
slot interface
-------------------------------------------------*/
-SLOT_INTERFACE_START(gamate_cart)
- SLOT_INTERFACE_INTERNAL("plain", GAMATE_ROM_PLAIN)
- SLOT_INTERFACE_INTERNAL("banked", GAMATE_ROM_BANKED)
- SLOT_INTERFACE_INTERNAL("4in1", GAMATE_ROM_4IN1)
-SLOT_INTERFACE_END
+void gamate_cart(device_slot_interface &device)
+{
+ device.option_add_internal("plain", GAMATE_ROM_PLAIN);
+ device.option_add_internal("banked", GAMATE_ROM_BANKED);
+ device.option_add_internal("4in1", GAMATE_ROM_4IN1);
+}
diff --git a/src/devices/bus/gamate/slot.h b/src/devices/bus/gamate/slot.h
index 802fdb360e3..0f48c490478 100644
--- a/src/devices/bus/gamate/slot.h
+++ b/src/devices/bus/gamate/slot.h
@@ -99,6 +99,6 @@ DECLARE_DEVICE_TYPE(GAMATE_CART_SLOT, gamate_cart_slot_device)
MCFG_DEVICE_ADD(_tag, GAMATE_CART_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
-SLOT_INTERFACE_EXTERN( gamate_cart );
+void gamate_cart(device_slot_interface &device);
#endif // MAME_BUS_GAMATE_SLOT_H
diff --git a/src/devices/bus/gamegear/ggext.cpp b/src/devices/bus/gamegear/ggext.cpp
index 4cdd0d59afc..86a8d1911a0 100644
--- a/src/devices/bus/gamegear/ggext.cpp
+++ b/src/devices/bus/gamegear/ggext.cpp
@@ -117,6 +117,7 @@ uint32_t gg_ext_port_device::pixel_r()
// SLOT_INTERFACE( gg_ext_port_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( gg_ext_port_devices )
- SLOT_INTERFACE("smsctrladp", SMS_CTRL_ADAPTOR)
-SLOT_INTERFACE_END
+void gg_ext_port_devices(device_slot_interface &device)
+{
+ device.option_add("smsctrladp", SMS_CTRL_ADAPTOR);
+}
diff --git a/src/devices/bus/gamegear/ggext.h b/src/devices/bus/gamegear/ggext.h
index ca3447d1e96..d4dae3eb277 100644
--- a/src/devices/bus/gamegear/ggext.h
+++ b/src/devices/bus/gamegear/ggext.h
@@ -115,7 +115,7 @@ protected:
DECLARE_DEVICE_TYPE(GG_EXT_PORT, gg_ext_port_device)
-SLOT_INTERFACE_EXTERN(gg_ext_port_devices);
+void gg_ext_port_devices(device_slot_interface &device);
#endif // MAME_BUS_GAMEGEAR_GGEXT_H
diff --git a/src/devices/bus/generic/carts.cpp b/src/devices/bus/generic/carts.cpp
index 032899823f8..e6b1a617eff 100644
--- a/src/devices/bus/generic/carts.cpp
+++ b/src/devices/bus/generic/carts.cpp
@@ -13,14 +13,17 @@
#include "ram.h"
-SLOT_INTERFACE_START(generic_plain_slot)
- SLOT_INTERFACE_INTERNAL("rom", GENERIC_ROM_PLAIN)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START(generic_linear_slot)
- SLOT_INTERFACE_INTERNAL("rom", GENERIC_ROM_LINEAR)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START(generic_romram_plain_slot)
- SLOT_INTERFACE_INTERNAL("rom", GENERIC_ROMRAM_PLAIN)
-SLOT_INTERFACE_END
+void generic_plain_slot(device_slot_interface &device)
+{
+ device.option_add_internal("rom", GENERIC_ROM_PLAIN);
+}
+
+void generic_linear_slot(device_slot_interface &device)
+{
+ device.option_add_internal("rom", GENERIC_ROM_LINEAR);
+}
+
+void generic_romram_plain_slot(device_slot_interface &device)
+{
+ device.option_add_internal("rom", GENERIC_ROMRAM_PLAIN);
+}
diff --git a/src/devices/bus/generic/carts.h b/src/devices/bus/generic/carts.h
index a5b4660b4dc..a859bfca0c0 100644
--- a/src/devices/bus/generic/carts.h
+++ b/src/devices/bus/generic/carts.h
@@ -12,8 +12,8 @@
#pragma once
-SLOT_INTERFACE_EXTERN( generic_plain_slot );
-SLOT_INTERFACE_EXTERN( generic_linear_slot );
-SLOT_INTERFACE_EXTERN( generic_romram_plain_slot );
+void generic_plain_slot(device_slot_interface &device);
+void generic_linear_slot(device_slot_interface &device);
+void generic_romram_plain_slot(device_slot_interface &device);
#endif // MAME_BUS_GENERIC_CARTS_H
diff --git a/src/devices/bus/hexbus/hexbus.cpp b/src/devices/bus/hexbus/hexbus.cpp
index 257a82b5054..4b1e390363a 100644
--- a/src/devices/bus/hexbus/hexbus.cpp
+++ b/src/devices/bus/hexbus/hexbus.cpp
@@ -342,7 +342,8 @@ uint8_t hexbus_chained_device::to_line_state(uint8_t data, bool bav, bool hsk)
} } // end namespace bus::hexbus
-SLOT_INTERFACE_START( hexbus_conn )
- SLOT_INTERFACE("hx5102", HX5102)
-SLOT_INTERFACE_END
+void hexbus_conn(device_slot_interface &device)
+{
+ device.option_add("hx5102", HX5102);
+}
diff --git a/src/devices/bus/hexbus/hexbus.h b/src/devices/bus/hexbus/hexbus.h
index d94a91c47a5..e6e56ea4b38 100644
--- a/src/devices/bus/hexbus/hexbus.h
+++ b/src/devices/bus/hexbus/hexbus.h
@@ -134,7 +134,7 @@ private:
} } // end namespace bus::hexbus
-SLOT_INTERFACE_EXTERN( hexbus_conn );
+void hexbus_conn(device_slot_interface &device);
DECLARE_DEVICE_TYPE_NS(HEXBUS, bus::hexbus, hexbus_device)
diff --git a/src/devices/bus/hexbus/hx5102.cpp b/src/devices/bus/hexbus/hx5102.cpp
index 2d92b86c874..d4bbbc953e3 100644
--- a/src/devices/bus/hexbus/hx5102.cpp
+++ b/src/devices/bus/hexbus/hx5102.cpp
@@ -614,9 +614,10 @@ FLOPPY_FORMATS_END
Only one fixed floppy drive in the device.
External connectors are available, though.
*/
-static SLOT_INTERFACE_START( hx5102_drive )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void hx5102_drive(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
/*
HX5102 configuration
diff --git a/src/devices/bus/hp80_io/hp80_io.cpp b/src/devices/bus/hp80_io/hp80_io.cpp
index e9ab08bb43c..8004ce06bd4 100644
--- a/src/devices/bus/hp80_io/hp80_io.cpp
+++ b/src/devices/bus/hp80_io/hp80_io.cpp
@@ -145,6 +145,7 @@ WRITE_LINE_MEMBER(hp80_io_card_device::halt_w)
#include "82937.h"
-SLOT_INTERFACE_START(hp80_io_slot_devices)
-SLOT_INTERFACE("82937_hpib" , HP82937_IO_CARD)
-SLOT_INTERFACE_END
+void hp80_io_slot_devices(device_slot_interface &device)
+{
+ device.option_add("82937_hpib" , HP82937_IO_CARD);
+}
diff --git a/src/devices/bus/hp80_io/hp80_io.h b/src/devices/bus/hp80_io/hp80_io.h
index 96cc40f562e..a1bd90f47ed 100644
--- a/src/devices/bus/hp80_io/hp80_io.h
+++ b/src/devices/bus/hp80_io/hp80_io.h
@@ -102,6 +102,6 @@ protected:
// device type definition
DECLARE_DEVICE_TYPE(HP80_IO_SLOT, hp80_io_slot_device)
-SLOT_INTERFACE_EXTERN(hp80_io_slot_devices);
+void hp80_io_slot_devices(device_slot_interface &device);
#endif // MAME_BUS_HP80_IO_HP80_IO_H
diff --git a/src/devices/bus/hp80_optroms/hp80_optrom.cpp b/src/devices/bus/hp80_optroms/hp80_optrom.cpp
index 2797e37b69d..1816f0c0244 100644
--- a/src/devices/bus/hp80_optroms/hp80_optrom.cpp
+++ b/src/devices/bus/hp80_optroms/hp80_optrom.cpp
@@ -111,6 +111,7 @@ std::string hp80_optrom_slot_device::get_default_card_software(get_default_card_
return software_get_default_slot("rom");
}
-SLOT_INTERFACE_START(hp80_optrom_slot_device)
- SLOT_INTERFACE_INTERNAL("rom", HP80_OPTROM_CART)
-SLOT_INTERFACE_END
+void hp80_optrom_slot_devices(device_slot_interface &device)
+{
+ device.option_add_internal("rom", HP80_OPTROM_CART);
+}
diff --git a/src/devices/bus/hp80_optroms/hp80_optrom.h b/src/devices/bus/hp80_optroms/hp80_optrom.h
index 2fd43456264..cb8dbd4903b 100644
--- a/src/devices/bus/hp80_optroms/hp80_optrom.h
+++ b/src/devices/bus/hp80_optroms/hp80_optrom.h
@@ -72,6 +72,6 @@ protected:
DECLARE_DEVICE_TYPE(HP80_OPTROM_SLOT, hp80_optrom_slot_device)
DECLARE_DEVICE_TYPE(HP80_OPTROM_CART, hp80_optrom_cart_device)
-SLOT_INTERFACE_EXTERN(hp80_optrom_slot_device);
+void hp80_optrom_slot_devices(device_slot_interface &device);
#endif // MAME_BUS_HP80_OPTROMS_HP80_OPTROM_H
diff --git a/src/devices/bus/hp9845_io/hp9845_io.cpp b/src/devices/bus/hp9845_io/hp9845_io.cpp
index d270ac89e4b..61e4a90d721 100644
--- a/src/devices/bus/hp9845_io/hp9845_io.cpp
+++ b/src/devices/bus/hp9845_io/hp9845_io.cpp
@@ -126,7 +126,8 @@ void hp9845_io_card_device::flg_w(int state)
#include "98035.h"
#include "98034.h"
-SLOT_INTERFACE_START(hp9845_io_slot_devices)
-SLOT_INTERFACE("98034_hpib" , HP98034_IO_CARD)
-SLOT_INTERFACE("98035_rtc" , HP98035_IO_CARD)
-SLOT_INTERFACE_END
+void hp9845_io_slot_devices(device_slot_interface &device)
+{
+ device.option_add("98034_hpib" , HP98034_IO_CARD);
+ device.option_add("98035_rtc" , HP98035_IO_CARD);
+}
diff --git a/src/devices/bus/hp9845_io/hp9845_io.h b/src/devices/bus/hp9845_io/hp9845_io.h
index d2ee55b6d39..8b4065ce9e3 100644
--- a/src/devices/bus/hp9845_io/hp9845_io.h
+++ b/src/devices/bus/hp9845_io/hp9845_io.h
@@ -109,6 +109,6 @@ protected:
// device type definition
DECLARE_DEVICE_TYPE(HP9845_IO_SLOT, hp9845_io_slot_device)
-SLOT_INTERFACE_EXTERN(hp9845_io_slot_devices);
+void hp9845_io_slot_devices(device_slot_interface &device);
#endif // MAME_BUS_HP9845_IO_HP9845_IO_H
diff --git a/src/devices/bus/hp_hil/hil_devices.cpp b/src/devices/bus/hp_hil/hil_devices.cpp
index c4a6988a6ae..4ef253de26c 100644
--- a/src/devices/bus/hp_hil/hil_devices.cpp
+++ b/src/devices/bus/hp_hil/hil_devices.cpp
@@ -6,6 +6,7 @@
#include "hlekbd.h"
-SLOT_INTERFACE_START(hp_hil_devices)
- SLOT_INTERFACE(STR_KBD_HP_INTEGRAL, HP_IPC_HLE_KEYBOARD)
-SLOT_INTERFACE_END
+void hp_hil_devices(device_slot_interface &device)
+{
+ device.option_add(STR_KBD_HP_INTEGRAL, HP_IPC_HLE_KEYBOARD);
+}
diff --git a/src/devices/bus/hp_hil/hil_devices.h b/src/devices/bus/hp_hil/hil_devices.h
index 01b74af07a4..523366e9393 100644
--- a/src/devices/bus/hp_hil/hil_devices.h
+++ b/src/devices/bus/hp_hil/hil_devices.h
@@ -19,7 +19,7 @@
#define STR_MOUSE_HP_46060B "hp_46060b" // 3-button mouse
-SLOT_INTERFACE_EXTERN(hp_hil_devices);
+void hp_hil_devices(device_slot_interface &device);
#endif // MAME_BUS_HP_HIL_HIL_DEVICES_H
diff --git a/src/devices/bus/hp_optroms/hp_optrom.cpp b/src/devices/bus/hp_optroms/hp_optrom.cpp
index 389293e7fea..58b4f556cfc 100644
--- a/src/devices/bus/hp_optroms/hp_optrom.cpp
+++ b/src/devices/bus/hp_optroms/hp_optrom.cpp
@@ -126,6 +126,7 @@ std::string hp_optrom_slot_device::get_default_card_software(get_default_card_so
return software_get_default_slot("rom");
}
-SLOT_INTERFACE_START(hp_optrom_slot_device)
- SLOT_INTERFACE_INTERNAL("rom", HP_OPTROM_CART)
-SLOT_INTERFACE_END
+void hp_optrom_slot_devices(device_slot_interface &device)
+{
+ device.option_add_internal("rom", HP_OPTROM_CART);
+}
diff --git a/src/devices/bus/hp_optroms/hp_optrom.h b/src/devices/bus/hp_optroms/hp_optrom.h
index dfc43021035..f2677884849 100644
--- a/src/devices/bus/hp_optroms/hp_optrom.h
+++ b/src/devices/bus/hp_optroms/hp_optrom.h
@@ -70,6 +70,6 @@ protected:
DECLARE_DEVICE_TYPE(HP_OPTROM_SLOT, hp_optrom_slot_device)
DECLARE_DEVICE_TYPE(HP_OPTROM_CART, hp_optrom_cart_device)
-SLOT_INTERFACE_EXTERN(hp_optrom_slot_device);
+void hp_optrom_slot_devices(device_slot_interface &device);
#endif // MAME_BUS_HP_OPTROMS_HP_OPTROM_H
diff --git a/src/devices/bus/ieee488/c2031.cpp b/src/devices/bus/ieee488/c2031.cpp
index f18f8dee9cf..5a04cef0254 100644
--- a/src/devices/bus/ieee488/c2031.cpp
+++ b/src/devices/bus/ieee488/c2031.cpp
@@ -284,9 +284,10 @@ WRITE_LINE_MEMBER( c2031_device::byte_w )
// SLOT_INTERFACE( c2031_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( c2031_floppies )
- SLOT_INTERFACE( "525ssqd", FLOPPY_525_SSQD )
-SLOT_INTERFACE_END
+static void c2031_floppies(device_slot_interface &device)
+{
+ device.option_add("525ssqd", FLOPPY_525_SSQD);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ieee488/c2040.cpp b/src/devices/bus/ieee488/c2040.cpp
index 1e4adf7f19e..b6dde567971 100644
--- a/src/devices/bus/ieee488/c2040.cpp
+++ b/src/devices/bus/ieee488/c2040.cpp
@@ -410,9 +410,10 @@ WRITE8_MEMBER( c2040_device::via_pb_w )
// SLOT_INTERFACE( c2040_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( c2040_floppies )
- SLOT_INTERFACE( "525ssqd", FLOPPY_525_SSQD )
-SLOT_INTERFACE_END
+static void c2040_floppies(device_slot_interface &device)
+{
+ device.option_add("525ssqd", FLOPPY_525_SSQD);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ieee488/c8050.cpp b/src/devices/bus/ieee488/c8050.cpp
index cb18f562f26..f97ccc61f0d 100644
--- a/src/devices/bus/ieee488/c8050.cpp
+++ b/src/devices/bus/ieee488/c8050.cpp
@@ -462,9 +462,10 @@ WRITE8_MEMBER( c8050_device::via_pb_w )
// SLOT_INTERFACE( c8050_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( c8050_floppies )
- SLOT_INTERFACE( "525ssqd", FLOPPY_525_SSQD )
-SLOT_INTERFACE_END
+static void c8050_floppies(device_slot_interface &device)
+{
+ device.option_add("525ssqd", FLOPPY_525_SSQD);
+}
//-------------------------------------------------
@@ -480,18 +481,20 @@ FLOPPY_FORMATS_END
// SLOT_INTERFACE( c8250_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( c8250_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void c8250_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
//-------------------------------------------------
// SLOT_INTERFACE( sfd1001_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( sfd1001_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) // Matsushita JU-570 / JU-570-2
-SLOT_INTERFACE_END
+static void sfd1001_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD); // Matsushita JU-570 / JU-570-2
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ieee488/c8280.cpp b/src/devices/bus/ieee488/c8280.cpp
index 4339075a24c..d032491c812 100644
--- a/src/devices/bus/ieee488/c8280.cpp
+++ b/src/devices/bus/ieee488/c8280.cpp
@@ -278,9 +278,10 @@ WRITE8_MEMBER( c8280_device::riot1_pb_w )
machine().output().set_led_value(LED_ERR, BIT(data, 5));
}
-static SLOT_INTERFACE_START( c8280_floppies )
- SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD )
-SLOT_INTERFACE_END
+static void c8280_floppies(device_slot_interface &device)
+{
+ device.option_add("8dsdd", FLOPPY_8_DSDD);
+}
FLOPPY_FORMATS_MEMBER( c8280_device::floppy_formats )
FLOPPY_C8280_FORMAT
diff --git a/src/devices/bus/ieee488/hp9895.cpp b/src/devices/bus/ieee488/hp9895.cpp
index c35f820d6fd..565fc3ee924 100644
--- a/src/devices/bus/ieee488/hp9895.cpp
+++ b/src/devices/bus/ieee488/hp9895.cpp
@@ -869,9 +869,10 @@ void hp9895_device::z80_io_map(address_map &map)
map(0x67, 0x67).r(this, FUNC(hp9895_device::switches2_r));
}
-static SLOT_INTERFACE_START(hp9895_floppies)
- SLOT_INTERFACE("8dsdd" , FLOPPY_8_DSDD)
-SLOT_INTERFACE_END
+static void hp9895_floppies(device_slot_interface &device)
+{
+ device.option_add("8dsdd" , FLOPPY_8_DSDD);
+}
static const floppy_format_type hp9895_floppy_formats[] = {
FLOPPY_MFI_FORMAT,
diff --git a/src/devices/bus/ieee488/ieee488.cpp b/src/devices/bus/ieee488/ieee488.cpp
index 7903be8fe49..fac55803e9d 100644
--- a/src/devices/bus/ieee488/ieee488.cpp
+++ b/src/devices/bus/ieee488/ieee488.cpp
@@ -400,22 +400,23 @@ uint8_t ieee488_device::get_data()
#include "shark.h"
#include "softbox.h"
-SLOT_INTERFACE_START( cbm_ieee488_devices )
- SLOT_INTERFACE("c2040", C2040)
- SLOT_INTERFACE("c3040", C3040)
- SLOT_INTERFACE("c4040", C4040)
- SLOT_INTERFACE("c8050", C8050)
- SLOT_INTERFACE("c8250", C8250)
- SLOT_INTERFACE("sfd1001", SFD1001)
- SLOT_INTERFACE("c2031", C2031)
- SLOT_INTERFACE("c8280", C8280)
- SLOT_INTERFACE("d9060", D9060)
- SLOT_INTERFACE("d9090", D9090)
- SLOT_INTERFACE("softbox", SOFTBOX)
- SLOT_INTERFACE("hardbox", HARDBOX)
- SLOT_INTERFACE("shark", MSHARK)
- SLOT_INTERFACE("c4023", C4023)
-SLOT_INTERFACE_END
+void cbm_ieee488_devices(device_slot_interface &device)
+{
+ device.option_add("c2040", C2040);
+ device.option_add("c3040", C3040);
+ device.option_add("c4040", C4040);
+ device.option_add("c8050", C8050);
+ device.option_add("c8250", C8250);
+ device.option_add("sfd1001", SFD1001);
+ device.option_add("c2031", C2031);
+ device.option_add("c8280", C8280);
+ device.option_add("d9060", D9060);
+ device.option_add("d9090", D9090);
+ device.option_add("softbox", SOFTBOX);
+ device.option_add("hardbox", HARDBOX);
+ device.option_add("shark", MSHARK);
+ device.option_add("c4023", C4023);
+}
//-------------------------------------------------
// SLOT_INTERFACE( hp_ieee488_devices )
@@ -424,9 +425,10 @@ SLOT_INTERFACE_END
// slot devices
#include "hp9895.h"
-SLOT_INTERFACE_START(hp_ieee488_devices)
- SLOT_INTERFACE("hp9895", HP9895)
-SLOT_INTERFACE_END
+void hp_ieee488_devices(device_slot_interface &device)
+{
+ device.option_add("hp9895", HP9895);
+}
//-------------------------------------------------
// SLOT_INTERFACE( remote488_devices )
@@ -435,6 +437,7 @@ SLOT_INTERFACE_END
// slot devices
#include "remote488.h"
-SLOT_INTERFACE_START(remote488_devices)
- SLOT_INTERFACE("remote488", REMOTE488)
-SLOT_INTERFACE_END
+void remote488_devices(device_slot_interface &device)
+{
+ device.option_add("remote488", REMOTE488);
+}
diff --git a/src/devices/bus/ieee488/ieee488.h b/src/devices/bus/ieee488/ieee488.h
index 94a4fbcaa21..68ec0080476 100644
--- a/src/devices/bus/ieee488/ieee488.h
+++ b/src/devices/bus/ieee488/ieee488.h
@@ -258,9 +258,9 @@ DECLARE_DEVICE_TYPE(IEEE488, ieee488_device)
DECLARE_DEVICE_TYPE(IEEE488_SLOT, ieee488_slot_device)
-SLOT_INTERFACE_EXTERN( cbm_ieee488_devices );
-SLOT_INTERFACE_EXTERN( hp_ieee488_devices );
-SLOT_INTERFACE_EXTERN( remote488_devices );
+void cbm_ieee488_devices(device_slot_interface &device);
+void hp_ieee488_devices(device_slot_interface &device);
+void remote488_devices(device_slot_interface &device);
#endif // MAME_BUS_IEEE488_IEEE488_H
diff --git a/src/devices/bus/ieee488/softbox.cpp b/src/devices/bus/ieee488/softbox.cpp
index eb002f372d8..caad857c087 100644
--- a/src/devices/bus/ieee488/softbox.cpp
+++ b/src/devices/bus/ieee488/softbox.cpp
@@ -249,7 +249,7 @@ MACHINE_CONFIG_START(softbox_device::device_add_mconfig)
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(I8251_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE(I8251_TAG, i8251_device, write_dsr))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_DEVICE_ADD(I8255_0_TAG, I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(softbox_device, ppi0_pa_r))
diff --git a/src/devices/bus/imi7000/imi7000.cpp b/src/devices/bus/imi7000/imi7000.cpp
index 95f693a571e..f96e32d3da5 100644
--- a/src/devices/bus/imi7000/imi7000.cpp
+++ b/src/devices/bus/imi7000/imi7000.cpp
@@ -98,6 +98,7 @@ void imi7000_bus_device::device_start()
#include "imi5000h.h"
-SLOT_INTERFACE_START( imi7000_devices )
- SLOT_INTERFACE("imi5000h", IMI5000H)
-SLOT_INTERFACE_END
+void imi7000_devices(device_slot_interface &device)
+{
+ device.option_add("imi5000h", IMI5000H);
+}
diff --git a/src/devices/bus/imi7000/imi7000.h b/src/devices/bus/imi7000/imi7000.h
index 90b195a2667..0559a565285 100644
--- a/src/devices/bus/imi7000/imi7000.h
+++ b/src/devices/bus/imi7000/imi7000.h
@@ -120,6 +120,6 @@ DECLARE_DEVICE_TYPE(IMI7000_SLOT, imi7000_slot_device)
// slot interface
-SLOT_INTERFACE_EXTERN( imi7000_devices );
+void imi7000_devices(device_slot_interface &device);
#endif // MAME_BUS_IMI7000_IMI7000_H
diff --git a/src/devices/bus/intellec4/intellec4.cpp b/src/devices/bus/intellec4/intellec4.cpp
index 17b2df413e0..b74256d795f 100644
--- a/src/devices/bus/intellec4/intellec4.cpp
+++ b/src/devices/bus/intellec4/intellec4.cpp
@@ -290,8 +290,9 @@ void device_univ_card_interface::set_bus(univ_bus_device &bus)
#include "prommemory.h"
#include "tapereader.h"
-SLOT_INTERFACE_START(intellec4_univ_cards)
- SLOT_INTERFACE("imm4_22", INTELLEC4_INST_DATA_STORAGE)
- SLOT_INTERFACE("imm6_26", INTELLEC4_PROM_MEMORY)
- SLOT_INTERFACE("imm4_90", INTELLEC4_TAPE_READER)
-SLOT_INTERFACE_END
+void intellec4_univ_cards(device_slot_interface &device)
+{
+ device.option_add("imm4_22", INTELLEC4_INST_DATA_STORAGE);
+ device.option_add("imm6_26", INTELLEC4_PROM_MEMORY);
+ device.option_add("imm4_90", INTELLEC4_TAPE_READER);
+}
diff --git a/src/devices/bus/intellec4/intellec4.h b/src/devices/bus/intellec4/intellec4.h
index c878d00e8c3..40b77370bb6 100644
--- a/src/devices/bus/intellec4/intellec4.h
+++ b/src/devices/bus/intellec4/intellec4.h
@@ -286,6 +286,6 @@ private:
DECLARE_DEVICE_TYPE_NS(INTELLEC4_UNIV_SLOT, bus::intellec4, univ_slot_device)
DECLARE_DEVICE_TYPE_NS(INTELLEC4_UNIV_BUS, bus::intellec4, univ_bus_device)
-SLOT_INTERFACE_EXTERN( intellec4_univ_cards );
+void intellec4_univ_cards(device_slot_interface &device);
#endif // MAME_BUS_INTELLEC4_INTELLEC4_H
diff --git a/src/devices/bus/interpro/keyboard/keyboard.cpp b/src/devices/bus/interpro/keyboard/keyboard.cpp
index e2758d135f6..518ae7176f3 100644
--- a/src/devices/bus/interpro/keyboard/keyboard.cpp
+++ b/src/devices/bus/interpro/keyboard/keyboard.cpp
@@ -57,7 +57,8 @@ device_interpro_keyboard_port_interface::~device_interpro_keyboard_port_interfac
#include "hle.h"
#include "lle.h"
-SLOT_INTERFACE_START(interpro_keyboard_devices)
- SLOT_INTERFACE("hle_en_us", INTERPRO_HLE_EN_US_KEYBOARD)
- SLOT_INTERFACE("lle_en_us", INTERPRO_LLE_EN_US_KEYBOARD)
-SLOT_INTERFACE_END
+void interpro_keyboard_devices(device_slot_interface &device)
+{
+ device.option_add("hle_en_us", INTERPRO_HLE_EN_US_KEYBOARD);
+ device.option_add("lle_en_us", INTERPRO_LLE_EN_US_KEYBOARD);
+}
diff --git a/src/devices/bus/interpro/keyboard/keyboard.h b/src/devices/bus/interpro/keyboard/keyboard.h
index 73389de6fea..f4bfc7cc0cb 100644
--- a/src/devices/bus/interpro/keyboard/keyboard.h
+++ b/src/devices/bus/interpro/keyboard/keyboard.h
@@ -60,6 +60,6 @@ protected:
DECLARE_DEVICE_TYPE(INTERPRO_KEYBOARD_PORT, interpro_keyboard_port_device)
-SLOT_INTERFACE_EXTERN(interpro_keyboard_devices);
+void interpro_keyboard_devices(device_slot_interface &device);
#endif // MAME_BUS_INTERPRO_KEYBOARD_KEYBOARD_H
diff --git a/src/devices/bus/interpro/sr/sr_cards.cpp b/src/devices/bus/interpro/sr/sr_cards.cpp
index ce15e772492..73a94821ad8 100644
--- a/src/devices/bus/interpro/sr/sr_cards.cpp
+++ b/src/devices/bus/interpro/sr/sr_cards.cpp
@@ -18,10 +18,11 @@
// other
-SLOT_INTERFACE_START(sr_cards)
- SLOT_INTERFACE("mpcb963", MPCB963)
- SLOT_INTERFACE("mpcba79", MPCBA79)
- SLOT_INTERFACE("mpcb070", MPCB070)
- SLOT_INTERFACE("mpcb071", MPCB071)
- SLOT_INTERFACE("mpcb081", MPCB081)
-SLOT_INTERFACE_END
+void sr_cards(device_slot_interface &device)
+{
+ device.option_add("mpcb963", MPCB963);
+ device.option_add("mpcba79", MPCBA79);
+ device.option_add("mpcb070", MPCB070);
+ device.option_add("mpcb071", MPCB071);
+ device.option_add("mpcb081", MPCB081);
+}
diff --git a/src/devices/bus/interpro/sr/sr_cards.h b/src/devices/bus/interpro/sr/sr_cards.h
index b7f552173d4..f06c1d4e307 100644
--- a/src/devices/bus/interpro/sr/sr_cards.h
+++ b/src/devices/bus/interpro/sr/sr_cards.h
@@ -7,6 +7,6 @@
#pragma once
// supported devices
-SLOT_INTERFACE_EXTERN(sr_cards);
+void sr_cards(device_slot_interface &device);
#endif // MAME_BUS_INTERPRO_SR_SR_CARDS_H
diff --git a/src/devices/bus/intv/slot.cpp b/src/devices/bus/intv/slot.cpp
index d86c8fe91c4..0161c90b258 100644
--- a/src/devices/bus/intv/slot.cpp
+++ b/src/devices/bus/intv/slot.cpp
@@ -535,12 +535,13 @@ WRITE16_MEMBER(intv_cart_slot_device::write_speech)
//#include "bus/intv/keycomp.h"
#include "bus/intv/voice.h"
-SLOT_INTERFACE_START(intv_cart)
- SLOT_INTERFACE_INTERNAL("intv_rom", INTV_ROM_STD)
- SLOT_INTERFACE_INTERNAL("intv_ram", INTV_ROM_RAM)
- SLOT_INTERFACE_INTERNAL("intv_gfact", INTV_ROM_GFACT)
- SLOT_INTERFACE_INTERNAL("intv_wsmlb", INTV_ROM_WSMLB)
- SLOT_INTERFACE_INTERNAL("intv_voice", INTV_ROM_VOICE)
- SLOT_INTERFACE_INTERNAL("intv_ecs", INTV_ROM_ECS)
-// SLOT_INTERFACE_INTERNAL("intv_keycomp", INTV_ROM_KEYCOMP)
-SLOT_INTERFACE_END
+void intv_cart(device_slot_interface &device)
+{
+ device.option_add_internal("intv_rom", INTV_ROM_STD);
+ device.option_add_internal("intv_ram", INTV_ROM_RAM);
+ device.option_add_internal("intv_gfact", INTV_ROM_GFACT);
+ device.option_add_internal("intv_wsmlb", INTV_ROM_WSMLB);
+ device.option_add_internal("intv_voice", INTV_ROM_VOICE);
+ device.option_add_internal("intv_ecs", INTV_ROM_ECS);
+// device.option_add_internal("intv_keycomp", INTV_ROM_KEYCOMP);
+}
diff --git a/src/devices/bus/intv/slot.h b/src/devices/bus/intv/slot.h
index 9442160625a..bdec54dab76 100644
--- a/src/devices/bus/intv/slot.h
+++ b/src/devices/bus/intv/slot.h
@@ -183,6 +183,6 @@ DECLARE_DEVICE_TYPE(INTV_CART_SLOT, intv_cart_slot_device)
MCFG_DEVICE_ADD(_tag, INTV_CART_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
-SLOT_INTERFACE_EXTERN(intv_cart);
+void intv_cart(device_slot_interface &device);
#endif // MAME_BUS_INTV_SLOT_H
diff --git a/src/devices/bus/intv_ctrl/ctrl.cpp b/src/devices/bus/intv_ctrl/ctrl.cpp
index 01b64ba6aef..122c98cf2ed 100644
--- a/src/devices/bus/intv_ctrl/ctrl.cpp
+++ b/src/devices/bus/intv_ctrl/ctrl.cpp
@@ -91,6 +91,7 @@ uint8_t intv_control_port_device::read_ctrl()
// SLOT_INTERFACE( intv_control_port_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( intv_control_port_devices )
- SLOT_INTERFACE("handctrl", INTV_HANDCTRL)
-SLOT_INTERFACE_END
+void intv_control_port_devices(device_slot_interface &device)
+{
+ device.option_add("handctrl", INTV_HANDCTRL);
+}
diff --git a/src/devices/bus/intv_ctrl/ctrl.h b/src/devices/bus/intv_ctrl/ctrl.h
index a46011845f2..4a3ce67a688 100644
--- a/src/devices/bus/intv_ctrl/ctrl.h
+++ b/src/devices/bus/intv_ctrl/ctrl.h
@@ -69,7 +69,7 @@ DECLARE_DEVICE_TYPE(INTV_CONTROL_PORT, intv_control_port_device)
-SLOT_INTERFACE_EXTERN( intv_control_port_devices );
+void intv_control_port_devices(device_slot_interface &device);
#endif // MAME_BUS_INTV_CTRL_CTRL_H
diff --git a/src/devices/bus/intv_ctrl/ecs_ctrl.cpp b/src/devices/bus/intv_ctrl/ecs_ctrl.cpp
index ea3118619f9..e90292de645 100644
--- a/src/devices/bus/intv_ctrl/ecs_ctrl.cpp
+++ b/src/devices/bus/intv_ctrl/ecs_ctrl.cpp
@@ -118,11 +118,12 @@ void intvecs_control_port_device::write_portA(uint8_t data)
// SLOT_INTERFACE( intvecs_control_port_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( intvecs_control_port_devices )
- SLOT_INTERFACE("ctrls", ECS_CTRLS)
- SLOT_INTERFACE("keybd", ECS_KEYBD)
- SLOT_INTERFACE("synth", ECS_SYNTH)
-SLOT_INTERFACE_END
+void intvecs_control_port_devices(device_slot_interface &device)
+{
+ device.option_add("ctrls", ECS_CTRLS);
+ device.option_add("keybd", ECS_KEYBD);
+ device.option_add("synth", ECS_SYNTH);
+}
@@ -139,9 +140,10 @@ SLOT_INTERFACE_END
DEFINE_DEVICE_TYPE(ECS_CTRLS, intvecs_ctrls_device, "intvecs_ctrls", "Mattel Intellivision ECS Hand Controller x2 (HACK)")
-static SLOT_INTERFACE_START( intvecs_controller )
- SLOT_INTERFACE("handctrl", INTV_HANDCTRL)
-SLOT_INTERFACE_END
+static void intvecs_controller(device_slot_interface &device)
+{
+ device.option_add("handctrl", INTV_HANDCTRL);
+}
MACHINE_CONFIG_START(intvecs_ctrls_device::device_add_mconfig)
MCFG_INTV_CONTROL_PORT_ADD("port1", intvecs_controller, "handctrl")
diff --git a/src/devices/bus/intv_ctrl/ecs_ctrl.h b/src/devices/bus/intv_ctrl/ecs_ctrl.h
index f7132c8e28b..923b5785358 100644
--- a/src/devices/bus/intv_ctrl/ecs_ctrl.h
+++ b/src/devices/bus/intv_ctrl/ecs_ctrl.h
@@ -78,7 +78,7 @@ DECLARE_DEVICE_TYPE(INTVECS_CONTROL_PORT, intvecs_control_port_device)
-SLOT_INTERFACE_EXTERN( intvecs_control_port_devices );
+void intvecs_control_port_devices(device_slot_interface &device);
//**************************************************************************
diff --git a/src/devices/bus/iq151/disc2.cpp b/src/devices/bus/iq151/disc2.cpp
index 32a21069831..d48ea10e9c2 100644
--- a/src/devices/bus/iq151/disc2.cpp
+++ b/src/devices/bus/iq151/disc2.cpp
@@ -19,9 +19,10 @@ FLOPPY_FORMATS_MEMBER( iq151_disc2_device::floppy_formats )
FLOPPY_IQ151_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( iq151_disc2_floppies )
- SLOT_INTERFACE( "8sssd", FLOPPY_8_SSSD )
-SLOT_INTERFACE_END
+static void iq151_disc2_floppies(device_slot_interface &device)
+{
+ device.option_add("8sssd", FLOPPY_8_SSSD);
+}
ROM_START( iq151_disc2 )
ROM_REGION(0x0800, "disc2", 0)
diff --git a/src/devices/bus/isa/com.cpp b/src/devices/bus/isa/com.cpp
index 3fa3a9b3ffb..d034ed600fe 100644
--- a/src/devices/bus/isa/com.cpp
+++ b/src/devices/bus/isa/com.cpp
@@ -14,12 +14,13 @@
#include "bus/rs232/null_modem.h"
#include "machine/ins8250.h"
-static SLOT_INTERFACE_START(isa_com)
- SLOT_INTERFACE("microsoft_mouse", MSFT_SERIAL_MOUSE)
- SLOT_INTERFACE("msystems_mouse", MSYSTEM_SERIAL_MOUSE)
- SLOT_INTERFACE("terminal", SERIAL_TERMINAL)
- SLOT_INTERFACE("null_modem", NULL_MODEM)
-SLOT_INTERFACE_END
+static void isa_com(device_slot_interface &device)
+{
+ device.option_add("microsoft_mouse", MSFT_SERIAL_MOUSE);
+ device.option_add("msystems_mouse", MSYSTEM_SERIAL_MOUSE);
+ device.option_add("terminal", SERIAL_TERMINAL);
+ device.option_add("null_modem", NULL_MODEM);
+}
//**************************************************************************
diff --git a/src/devices/bus/isa/dectalk.cpp b/src/devices/bus/isa/dectalk.cpp
index 0ca61665e33..4bba74af8a2 100644
--- a/src/devices/bus/isa/dectalk.cpp
+++ b/src/devices/bus/isa/dectalk.cpp
@@ -171,7 +171,7 @@ MACHINE_CONFIG_START(dectalk_isa_device::device_add_mconfig)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_12BIT_R2R, 0) MCFG_SOUND_ROUTE(0, "speaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
WRITE8_MEMBER(dectalk_isa_device::write)
diff --git a/src/devices/bus/isa/fdc.cpp b/src/devices/bus/isa/fdc.cpp
index bafe4f953e6..8d5f5cc16e5 100644
--- a/src/devices/bus/isa/fdc.cpp
+++ b/src/devices/bus/isa/fdc.cpp
@@ -19,17 +19,19 @@ FLOPPY_FORMATS_MEMBER( isa8_fdc_device::floppy_formats )
FLOPPY_NASLITE_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( pc_dd_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START( pc_hd_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
- SLOT_INTERFACE( "35hd", FLOPPY_35_HD )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void pc_dd_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("35dd", FLOPPY_35_DD);
+}
+
+static void pc_hd_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+ device.option_add("35hd", FLOPPY_35_HD);
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("35dd", FLOPPY_35_DD);
+}
isa8_fdc_device::isa8_fdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
diff --git a/src/devices/bus/isa/isa_cards.cpp b/src/devices/bus/isa/isa_cards.cpp
index 002b7fdcc29..bd9a61dfe83 100644
--- a/src/devices/bus/isa/isa_cards.cpp
+++ b/src/devices/bus/isa/isa_cards.cpp
@@ -64,104 +64,106 @@
#include "finalchs.h"
-SLOT_INTERFACE_START( pc_isa8_cards )
- SLOT_INTERFACE("mda", ISA8_MDA)
- SLOT_INTERFACE("cga", ISA8_CGA)
- SLOT_INTERFACE("cga_ec1841", ISA8_EC1841_0002)
- SLOT_INTERFACE("cga_poisk2", ISA8_CGA_POISK2)
- SLOT_INTERFACE("cga_mc1502", ISA8_CGA_MC1502)
- SLOT_INTERFACE("cga_m24", ISA8_CGA_M24)
- SLOT_INTERFACE("cga_cportiii", ISA8_CGA_CPORTIII)
- SLOT_INTERFACE("aga", ISA8_AGA)
- SLOT_INTERFACE("aga_pc200", ISA8_AGA_PC200)
- SLOT_INTERFACE("ega", ISA8_EGA)
- SLOT_INTERFACE("pgc", ISA8_PGC)
- SLOT_INTERFACE("vga", ISA8_VGA)
- SLOT_INTERFACE("svga_et4k", ISA8_SVGA_ET4K)
- SLOT_INTERFACE("num9rev",ISA8_NUM_9_REV)
- SLOT_INTERFACE("com", ISA8_COM)
- SLOT_INTERFACE("fdc", ISA8_FDC_SUPERIO)
- SLOT_INTERFACE("fdc_xt", ISA8_FDC_XT)
- SLOT_INTERFACE("fdc_at", ISA8_FDC_AT)
- SLOT_INTERFACE("fdc_smc", ISA8_FDC_SMC)
- SLOT_INTERFACE("fdc_ps2", ISA8_FDC_PS2)
- SLOT_INTERFACE("fdc344", ISA8_FDC344)
- SLOT_INTERFACE("fdcmag", ISA8_FDCMAG)
- SLOT_INTERFACE("wdxt_gen", ISA8_WDXT_GEN)
- SLOT_INTERFACE("finalchs", ISA8_FINALCHS)
- SLOT_INTERFACE("xtide", ISA8_XTIDE)
- SLOT_INTERFACE("side116", ISA8_SIDE116)
- SLOT_INTERFACE("hdc", ISA8_HDC)
- SLOT_INTERFACE("adlib", ISA8_ADLIB)
- SLOT_INTERFACE("hercules", ISA8_HERCULES)
- SLOT_INTERFACE("gblaster", ISA8_GAME_BLASTER)
- SLOT_INTERFACE("sblaster1_0", ISA8_SOUND_BLASTER_1_0)
- SLOT_INTERFACE("sblaster1_5", ISA8_SOUND_BLASTER_1_5)
- SLOT_INTERFACE("stereo_fx", ISA8_STEREO_FX)
- SLOT_INTERFACE("ssi2001", ISA8_SSI2001)
- SLOT_INTERFACE("mpu401", ISA8_MPU401)
- SLOT_INTERFACE("ne1000", NE1000)
- SLOT_INTERFACE("3c503", EL2_3C503)
- SLOT_INTERFACE("lpt", ISA8_LPT)
- SLOT_INTERFACE("ibm_mfc", ISA8_IBM_MFC)
- SLOT_INTERFACE("wd1002a_wx1", ISA8_WD1002A_WX1)
- SLOT_INTERFACE("dectalk", ISA8_DECTALK)
- SLOT_INTERFACE("pds", ISA8_PDS)
- SLOT_INTERFACE("lba_enhancer", ISA8_LBA_ENHANCER)
-SLOT_INTERFACE_END
+void pc_isa8_cards(device_slot_interface &device)
+{
+ device.option_add("mda", ISA8_MDA);
+ device.option_add("cga", ISA8_CGA);
+ device.option_add("cga_ec1841", ISA8_EC1841_0002);
+ device.option_add("cga_poisk2", ISA8_CGA_POISK2);
+ device.option_add("cga_mc1502", ISA8_CGA_MC1502);
+ device.option_add("cga_m24", ISA8_CGA_M24);
+ device.option_add("cga_cportiii", ISA8_CGA_CPORTIII);
+ device.option_add("aga", ISA8_AGA);
+ device.option_add("aga_pc200", ISA8_AGA_PC200);
+ device.option_add("ega", ISA8_EGA);
+ device.option_add("pgc", ISA8_PGC);
+ device.option_add("vga", ISA8_VGA);
+ device.option_add("svga_et4k", ISA8_SVGA_ET4K);
+ device.option_add("num9rev",ISA8_NUM_9_REV);
+ device.option_add("com", ISA8_COM);
+ device.option_add("fdc", ISA8_FDC_SUPERIO);
+ device.option_add("fdc_xt", ISA8_FDC_XT);
+ device.option_add("fdc_at", ISA8_FDC_AT);
+ device.option_add("fdc_smc", ISA8_FDC_SMC);
+ device.option_add("fdc_ps2", ISA8_FDC_PS2);
+ device.option_add("fdc344", ISA8_FDC344);
+ device.option_add("fdcmag", ISA8_FDCMAG);
+ device.option_add("wdxt_gen", ISA8_WDXT_GEN);
+ device.option_add("finalchs", ISA8_FINALCHS);
+ device.option_add("xtide", ISA8_XTIDE);
+ device.option_add("side116", ISA8_SIDE116);
+ device.option_add("hdc", ISA8_HDC);
+ device.option_add("adlib", ISA8_ADLIB);
+ device.option_add("hercules", ISA8_HERCULES);
+ device.option_add("gblaster", ISA8_GAME_BLASTER);
+ device.option_add("sblaster1_0", ISA8_SOUND_BLASTER_1_0);
+ device.option_add("sblaster1_5", ISA8_SOUND_BLASTER_1_5);
+ device.option_add("stereo_fx", ISA8_STEREO_FX);
+ device.option_add("ssi2001", ISA8_SSI2001);
+ device.option_add("mpu401", ISA8_MPU401);
+ device.option_add("ne1000", NE1000);
+ device.option_add("3c503", EL2_3C503);
+ device.option_add("lpt", ISA8_LPT);
+ device.option_add("ibm_mfc", ISA8_IBM_MFC);
+ device.option_add("wd1002a_wx1", ISA8_WD1002A_WX1);
+ device.option_add("dectalk", ISA8_DECTALK);
+ device.option_add("pds", ISA8_PDS);
+ device.option_add("lba_enhancer", ISA8_LBA_ENHANCER);
+}
-SLOT_INTERFACE_START( pc_isa16_cards )
+void pc_isa16_cards(device_slot_interface &device)
+{
// 8-bit
- SLOT_INTERFACE("mda", ISA8_MDA)
- SLOT_INTERFACE("cga", ISA8_CGA)
- SLOT_INTERFACE("cga_cportiii", ISA8_CGA_CPORTIII)
- SLOT_INTERFACE("wyse700", ISA8_WYSE700)
- SLOT_INTERFACE("ega", ISA8_EGA)
- SLOT_INTERFACE("pgc", ISA8_PGC)
- SLOT_INTERFACE("vga", ISA8_VGA)
- SLOT_INTERFACE("svga_et4k", ISA8_SVGA_ET4K)
- SLOT_INTERFACE("num9rev",ISA8_NUM_9_REV)
- SLOT_INTERFACE("com", ISA8_COM)
- SLOT_INTERFACE("comat", ISA8_COM_AT)
- SLOT_INTERFACE("fdc", ISA8_FDC_AT)
- SLOT_INTERFACE("fdc344", ISA8_FDC344)
- SLOT_INTERFACE("fdcmag", ISA8_FDCMAG)
- SLOT_INTERFACE("hdc", ISA8_HDC)
- SLOT_INTERFACE("side116", ISA8_SIDE116)
- SLOT_INTERFACE("adlib", ISA8_ADLIB)
- SLOT_INTERFACE("hercules", ISA8_HERCULES)
- SLOT_INTERFACE("gblaster", ISA8_GAME_BLASTER)
- SLOT_INTERFACE("sblaster1_0", ISA8_SOUND_BLASTER_1_0)
- SLOT_INTERFACE("sblaster1_5", ISA8_SOUND_BLASTER_1_5)
- SLOT_INTERFACE("stereo_fx", ISA8_STEREO_FX)
- SLOT_INTERFACE("ssi2001", ISA8_SSI2001)
- SLOT_INTERFACE("ne1000", NE1000)
- SLOT_INTERFACE("3c503", EL2_3C503)
- SLOT_INTERFACE("mpu401", ISA8_MPU401)
- SLOT_INTERFACE("lpt", ISA8_LPT)
- SLOT_INTERFACE("ibm_mfc", ISA8_IBM_MFC)
- SLOT_INTERFACE("fdcsmc", ISA8_FDC_SMC)
- SLOT_INTERFACE("dectalk", ISA8_DECTALK)
- SLOT_INTERFACE("pds", ISA8_PDS)
- SLOT_INTERFACE("lba_enhancer", ISA8_LBA_ENHANCER)
+ device.option_add("mda", ISA8_MDA);
+ device.option_add("cga", ISA8_CGA);
+ device.option_add("cga_cportiii", ISA8_CGA_CPORTIII);
+ device.option_add("wyse700", ISA8_WYSE700);
+ device.option_add("ega", ISA8_EGA);
+ device.option_add("pgc", ISA8_PGC);
+ device.option_add("vga", ISA8_VGA);
+ device.option_add("svga_et4k", ISA8_SVGA_ET4K);
+ device.option_add("num9rev",ISA8_NUM_9_REV);
+ device.option_add("com", ISA8_COM);
+ device.option_add("comat", ISA8_COM_AT);
+ device.option_add("fdc", ISA8_FDC_AT);
+ device.option_add("fdc344", ISA8_FDC344);
+ device.option_add("fdcmag", ISA8_FDCMAG);
+ device.option_add("hdc", ISA8_HDC);
+ device.option_add("side116", ISA8_SIDE116);
+ device.option_add("adlib", ISA8_ADLIB);
+ device.option_add("hercules", ISA8_HERCULES);
+ device.option_add("gblaster", ISA8_GAME_BLASTER);
+ device.option_add("sblaster1_0", ISA8_SOUND_BLASTER_1_0);
+ device.option_add("sblaster1_5", ISA8_SOUND_BLASTER_1_5);
+ device.option_add("stereo_fx", ISA8_STEREO_FX);
+ device.option_add("ssi2001", ISA8_SSI2001);
+ device.option_add("ne1000", NE1000);
+ device.option_add("3c503", EL2_3C503);
+ device.option_add("mpu401", ISA8_MPU401);
+ device.option_add("lpt", ISA8_LPT);
+ device.option_add("ibm_mfc", ISA8_IBM_MFC);
+ device.option_add("fdcsmc", ISA8_FDC_SMC);
+ device.option_add("dectalk", ISA8_DECTALK);
+ device.option_add("pds", ISA8_PDS);
+ device.option_add("lba_enhancer", ISA8_LBA_ENHANCER);
// 16-bit
- SLOT_INTERFACE("ide", ISA16_IDE)
- SLOT_INTERFACE("ne2000", NE2000)
- SLOT_INTERFACE("aha1542", AHA1542)
- SLOT_INTERFACE("gus",ISA16_GUS)
- SLOT_INTERFACE("sblaster_16", ISA16_SOUND_BLASTER_16)
- SLOT_INTERFACE("svga_s3", ISA16_SVGA_S3)
- SLOT_INTERFACE("s3virge", ISA16_S3VIRGE)
- SLOT_INTERFACE("s3virgedx", ISA16_S3VIRGEDX)
- SLOT_INTERFACE("dms3d2kp", ISA16_DMS3D2KPRO)
- SLOT_INTERFACE("svga_dm",ISA16_SVGA_CIRRUS)
- SLOT_INTERFACE("clgd542x",ISA16_SVGA_CIRRUS_GD542X)
- SLOT_INTERFACE("gfxultra", ISA16_VGA_GFXULTRA)
- SLOT_INTERFACE("gfxultrap", ISA16_SVGA_GFXULTRAPRO)
- SLOT_INTERFACE("tgui9680",ISA16_SVGA_TGUI9680)
- SLOT_INTERFACE("3c505", ISA16_3C505)
- SLOT_INTERFACE("mach64", ISA16_SVGA_MACH64)
- SLOT_INTERFACE("sb16_lle", ISA16_SB16)
- SLOT_INTERFACE("mcd", ISA16_MCD)
- SLOT_INTERFACE("sad8852", ISA16_SAD8852)
-SLOT_INTERFACE_END
+ device.option_add("ide", ISA16_IDE);
+ device.option_add("ne2000", NE2000);
+ device.option_add("aha1542", AHA1542);
+ device.option_add("gus",ISA16_GUS);
+ device.option_add("sblaster_16", ISA16_SOUND_BLASTER_16);
+ device.option_add("svga_s3", ISA16_SVGA_S3);
+ device.option_add("s3virge", ISA16_S3VIRGE);
+ device.option_add("s3virgedx", ISA16_S3VIRGEDX);
+ device.option_add("dms3d2kp", ISA16_DMS3D2KPRO);
+ device.option_add("svga_dm",ISA16_SVGA_CIRRUS);
+ device.option_add("clgd542x",ISA16_SVGA_CIRRUS_GD542X);
+ device.option_add("gfxultra", ISA16_VGA_GFXULTRA);
+ device.option_add("gfxultrap", ISA16_SVGA_GFXULTRAPRO);
+ device.option_add("tgui9680",ISA16_SVGA_TGUI9680);
+ device.option_add("3c505", ISA16_3C505);
+ device.option_add("mach64", ISA16_SVGA_MACH64);
+ device.option_add("sb16_lle", ISA16_SB16);
+ device.option_add("mcd", ISA16_MCD);
+ device.option_add("sad8852", ISA16_SAD8852);
+}
diff --git a/src/devices/bus/isa/isa_cards.h b/src/devices/bus/isa/isa_cards.h
index da83f77c5e1..344ed501d51 100644
--- a/src/devices/bus/isa/isa_cards.h
+++ b/src/devices/bus/isa/isa_cards.h
@@ -13,7 +13,7 @@
// supported devices
-SLOT_INTERFACE_EXTERN( pc_isa8_cards );
-SLOT_INTERFACE_EXTERN( pc_isa16_cards );
+void pc_isa8_cards(device_slot_interface &device);
+void pc_isa16_cards(device_slot_interface &device);
#endif // MAME_BUS_ISA_ISA_CARDS_H
diff --git a/src/devices/bus/isa/mc1502_fdc.cpp b/src/devices/bus/isa/mc1502_fdc.cpp
index d97985550f7..1f019bbd2b7 100644
--- a/src/devices/bus/isa/mc1502_fdc.cpp
+++ b/src/devices/bus/isa/mc1502_fdc.cpp
@@ -35,9 +35,10 @@ FLOPPY_FORMATS_MEMBER( mc1502_fdc_device::floppy_formats )
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( mc1502_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void mc1502_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
//-------------------------------------------------
// ROM( mc1502_fdc )
diff --git a/src/devices/bus/isa/mufdc.cpp b/src/devices/bus/isa/mufdc.cpp
index ee8e691c46d..197a242ce15 100644
--- a/src/devices/bus/isa/mufdc.cpp
+++ b/src/devices/bus/isa/mufdc.cpp
@@ -33,12 +33,13 @@ FLOPPY_FORMATS_MEMBER( mufdc_device::floppy_formats )
FLOPPY_NASLITE_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( drives )
- SLOT_INTERFACE("525hd", FLOPPY_525_HD)
- SLOT_INTERFACE("35hd", FLOPPY_35_HD)
- SLOT_INTERFACE("525dd", FLOPPY_525_DD)
- SLOT_INTERFACE("35dd", FLOPPY_35_DD)
-SLOT_INTERFACE_END
+static void drives(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+ device.option_add("35hd", FLOPPY_35_HD);
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("35dd", FLOPPY_35_DD);
+}
//-------------------------------------------------
// device_add_mconfig - add device configuration
diff --git a/src/devices/bus/isa/myb3k_com.cpp b/src/devices/bus/isa/myb3k_com.cpp
index 61a79abe6f2..a5daafbe7b9 100644
--- a/src/devices/bus/isa/myb3k_com.cpp
+++ b/src/devices/bus/isa/myb3k_com.cpp
@@ -16,9 +16,10 @@ TODO:
#include "machine/i8251.h"
#include "machine/pit8253.h"
-static SLOT_INTERFACE_START(isa8_myb3k_com)
- SLOT_INTERFACE("null_modem", NULL_MODEM)
-SLOT_INTERFACE_END
+static void isa8_myb3k_com(device_slot_interface &device)
+{
+ device.option_add("null_modem", NULL_MODEM);
+}
//**************************************************************************
diff --git a/src/devices/bus/isa/myb3k_fdc.cpp b/src/devices/bus/isa/myb3k_fdc.cpp
index 6396667ae23..4d6349e6c77 100644
--- a/src/devices/bus/isa/myb3k_fdc.cpp
+++ b/src/devices/bus/isa/myb3k_fdc.cpp
@@ -76,18 +76,21 @@ FLOPPY_FORMATS_MEMBER( isa8_myb3k_fdc4711_device::myb3k_floppy_formats )
FLOPPY_IMD_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( myb3k_sd_floppies )
- SLOT_INTERFACE( "525sd", FLOPPY_525_SD )
-SLOT_INTERFACE_END
+static void myb3k_sd_floppies(device_slot_interface &device)
+{
+ device.option_add("525sd", FLOPPY_525_SD);
+}
-static SLOT_INTERFACE_START( myb3k_qd_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void myb3k_qd_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
#if 0
-static SLOT_INTERFACE_START( myb3k_8inch_floppies )
- SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD )
-SLOT_INTERFACE_END
+static void myb3k_8inch_floppies(device_slot_interface &device)
+{
+ device.option_add("8dsdd", FLOPPY_8_DSDD);
+}
#endif
//-------------------------------------------------
diff --git a/src/devices/bus/isa/omti8621.cpp b/src/devices/bus/isa/omti8621.cpp
index fdb4e668580..32ab9c6a56f 100644
--- a/src/devices/bus/isa/omti8621.cpp
+++ b/src/devices/bus/isa/omti8621.cpp
@@ -195,12 +195,13 @@ std::string omti8621_device::cpu_context() const
return string_format("%d.%03d %s", s, ms, machine().describe_context());
}
-static SLOT_INTERFACE_START( pc_hd_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
- SLOT_INTERFACE( "35hd", FLOPPY_35_HD )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void pc_hd_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+ device.option_add("35hd", FLOPPY_35_HD);
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("35dd", FLOPPY_35_DD);
+}
FLOPPY_FORMATS_MEMBER( omti8621_device::floppy_formats )
FLOPPY_APOLLO_FORMAT,
diff --git a/src/devices/bus/isa/p1_fdc.cpp b/src/devices/bus/isa/p1_fdc.cpp
index 5d47a021d94..9718fc00497 100644
--- a/src/devices/bus/isa/p1_fdc.cpp
+++ b/src/devices/bus/isa/p1_fdc.cpp
@@ -35,9 +35,10 @@ FLOPPY_FORMATS_MEMBER( p1_fdc_device::floppy_formats )
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( poisk1_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void poisk1_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
//-------------------------------------------------
// ROM( p1_fdc )
diff --git a/src/devices/bus/isa/p1_sound.cpp b/src/devices/bus/isa/p1_sound.cpp
index 9fa6ea3852e..73ce5f735af 100644
--- a/src/devices/bus/isa/p1_sound.cpp
+++ b/src/devices/bus/isa/p1_sound.cpp
@@ -69,7 +69,7 @@ MACHINE_CONFIG_START(p1_sound_device::device_add_mconfig)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/devices/bus/isa/sblaster.cpp b/src/devices/bus/isa/sblaster.cpp
index 9e1260fa25b..c073424fd8d 100644
--- a/src/devices/bus/isa/sblaster.cpp
+++ b/src/devices/bus/isa/sblaster.cpp
@@ -1155,8 +1155,8 @@ MACHINE_CONFIG_START(isa8_sblaster1_0_device::device_add_mconfig)
MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_PC_JOY_ADD("pc_joy")
MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin")
@@ -1175,8 +1175,8 @@ MACHINE_CONFIG_START(isa8_sblaster1_5_device::device_add_mconfig)
MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_PC_JOY_ADD("pc_joy")
MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin")
@@ -1196,8 +1196,8 @@ MACHINE_CONFIG_START(isa16_sblaster16_device::device_add_mconfig)
MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_PC_JOY_ADD("pc_joy")
MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin")
diff --git a/src/devices/bus/isa/stereo_fx.cpp b/src/devices/bus/isa/stereo_fx.cpp
index 01e369944be..6f49baba5f0 100644
--- a/src/devices/bus/isa/stereo_fx.cpp
+++ b/src/devices/bus/isa/stereo_fx.cpp
@@ -132,8 +132,8 @@ MACHINE_CONFIG_START(stereo_fx_device::device_add_mconfig)
MCFG_SOUND_ADD("ldac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_PC_JOY_ADD("pc_joy")
MACHINE_CONFIG_END
diff --git a/src/devices/bus/isa/xsu_cards.cpp b/src/devices/bus/isa/xsu_cards.cpp
index d8839ebd4d9..1e8856e70ac 100644
--- a/src/devices/bus/isa/xsu_cards.cpp
+++ b/src/devices/bus/isa/xsu_cards.cpp
@@ -30,59 +30,63 @@
#include "xtide.h"
-SLOT_INTERFACE_START( p1_isa8_cards )
- SLOT_INTERFACE("rom", P1_ROM) // B003
- SLOT_INTERFACE("fdc", P1_FDC) // B504
- SLOT_INTERFACE("hdc", P1_HDC) // B942
- SLOT_INTERFACE("p1sound", P1_SOUND) // B623
+void p1_isa8_cards(device_slot_interface &device)
+{
+ device.option_add("rom", P1_ROM); // B003
+ device.option_add("fdc", P1_FDC); // B504
+ device.option_add("hdc", P1_HDC); // B942
+ device.option_add("p1sound", P1_SOUND); // B623
/*
- SLOT_INTERFACE("comlpt", P1_COMLPT) // B620
- SLOT_INTERFACE("joy", P1_JOY) // B621
- SLOT_INTERFACE("mouse", P1_MOUSE) // B943
- SLOT_INTERFACE("lan", P1_LAN) // B944
+ device.option_add("comlpt", P1_COMLPT); // B620
+ device.option_add("joy", P1_JOY); // B621
+ device.option_add("mouse", P1_MOUSE); // B943
+ device.option_add("lan", P1_LAN); // B944
*/
- SLOT_INTERFACE("pccom", ISA8_COM)
- SLOT_INTERFACE("pclpt", ISA8_LPT)
- SLOT_INTERFACE("xtide", ISA8_XTIDE)
-SLOT_INTERFACE_END
+ device.option_add("pccom", ISA8_COM);
+ device.option_add("pclpt", ISA8_LPT);
+ device.option_add("xtide", ISA8_XTIDE);
+}
-SLOT_INTERFACE_START( mc1502_isa8_cards )
- SLOT_INTERFACE("cga_mc1502", ISA8_CGA_MC1502)
+void mc1502_isa8_cards(device_slot_interface &device)
+{
+ device.option_add("cga_mc1502", ISA8_CGA_MC1502);
- SLOT_INTERFACE("rom", MC1502_ROM)
- SLOT_INTERFACE("fdc", MC1502_FDC)
+ device.option_add("rom", MC1502_ROM);
+ device.option_add("fdc", MC1502_FDC);
/*
- SLOT_INTERFACE("hdc", MC1502_HDC)
+ device.option_add("hdc", MC1502_HDC);
*/
- SLOT_INTERFACE("pccom", ISA8_COM)
- SLOT_INTERFACE("pclpt", ISA8_LPT)
- SLOT_INTERFACE("xtide", ISA8_XTIDE)
-SLOT_INTERFACE_END
+ device.option_add("pccom", ISA8_COM);
+ device.option_add("pclpt", ISA8_LPT);
+ device.option_add("xtide", ISA8_XTIDE);
+}
-SLOT_INTERFACE_START( ec184x_isa8_cards )
- SLOT_INTERFACE("ec1840.0002", ISA8_EC1840_0002) // MDA with downloadable font
- SLOT_INTERFACE("ec1841.0002", ISA8_EC1841_0002) // CGA with downloadable font
- SLOT_INTERFACE("ec1841.0003", ISA8_FDC_XT)
+void ec184x_isa8_cards(device_slot_interface &device)
+{
+ device.option_add("ec1840.0002", ISA8_EC1840_0002); // MDA with downloadable font
+ device.option_add("ec1841.0002", ISA8_EC1841_0002); // CGA with downloadable font
+ device.option_add("ec1841.0003", ISA8_FDC_XT);
/*
- SLOT_INTERFACE("ec1841.0010", ISA8_EC1841_0010) // 8089-based HDC
- SLOT_INTERFACE("ec1841.0003", ISA8_EC1841_0003) // FDC + mouse port
- SLOT_INTERFACE("ec1841.0004", ISA8_EC1841_0004) // BSC-like serial ports + parallel port
+ device.option_add("ec1841.0010", ISA8_EC1841_0010); // 8089-based HDC
+ device.option_add("ec1841.0003", ISA8_EC1841_0003); // FDC + mouse port
+ device.option_add("ec1841.0004", ISA8_EC1841_0004); // BSC-like serial ports + parallel port
*/
- SLOT_INTERFACE("mda", ISA8_MDA)
- SLOT_INTERFACE("hdc", ISA8_HDC_EC1841)
- SLOT_INTERFACE("pccom", ISA8_COM)
- SLOT_INTERFACE("pclpt", ISA8_LPT)
- SLOT_INTERFACE("xtide", ISA8_XTIDE)
-SLOT_INTERFACE_END
+ device.option_add("mda", ISA8_MDA);
+ device.option_add("hdc", ISA8_HDC_EC1841);
+ device.option_add("pccom", ISA8_COM);
+ device.option_add("pclpt", ISA8_LPT);
+ device.option_add("xtide", ISA8_XTIDE);
+}
-SLOT_INTERFACE_START( iskr103x_isa8_cards )
- SLOT_INTERFACE("cga_iskr1030m", ISA8_CGA_ISKR1030M)
- SLOT_INTERFACE("cga_iskr1031", ISA8_CGA_ISKR1031)
+void iskr103x_isa8_cards(device_slot_interface &device)
+{
+ device.option_add("cga_iskr1030m", ISA8_CGA_ISKR1030M);
+ device.option_add("cga_iskr1031", ISA8_CGA_ISKR1031);
/**/
- SLOT_INTERFACE("fdc_xt", ISA8_FDC_XT)
- SLOT_INTERFACE("mda", ISA8_MDA)
- SLOT_INTERFACE("hdc", ISA8_HDC)
- SLOT_INTERFACE("pccom", ISA8_COM)
- SLOT_INTERFACE("pclpt", ISA8_LPT)
- SLOT_INTERFACE("xtide", ISA8_XTIDE)
-SLOT_INTERFACE_END
+ device.option_add("fdc_xt", ISA8_FDC_XT);
+ device.option_add("mda", ISA8_MDA);
+ device.option_add("hdc", ISA8_HDC);
+ device.option_add("pccom", ISA8_COM);
+ device.option_add("pclpt", ISA8_LPT);
+ device.option_add("xtide", ISA8_XTIDE);
+}
diff --git a/src/devices/bus/isa/xsu_cards.h b/src/devices/bus/isa/xsu_cards.h
index d8b98be154c..1fc1d93571b 100644
--- a/src/devices/bus/isa/xsu_cards.h
+++ b/src/devices/bus/isa/xsu_cards.h
@@ -13,9 +13,9 @@
// supported devices
-SLOT_INTERFACE_EXTERN( p1_isa8_cards );
-SLOT_INTERFACE_EXTERN( mc1502_isa8_cards );
-SLOT_INTERFACE_EXTERN( ec184x_isa8_cards );
-SLOT_INTERFACE_EXTERN( iskr103x_isa8_cards );
+void p1_isa8_cards(device_slot_interface &device);
+void mc1502_isa8_cards(device_slot_interface &device);
+void ec184x_isa8_cards(device_slot_interface &device);
+void iskr103x_isa8_cards(device_slot_interface &device);
#endif // MAME_BUS_ISA_XSU_CARDS_H
diff --git a/src/devices/bus/isbx/compis_fdc.cpp b/src/devices/bus/isbx/compis_fdc.cpp
index 4632038ec87..df2e76069e6 100644
--- a/src/devices/bus/isbx/compis_fdc.cpp
+++ b/src/devices/bus/isbx/compis_fdc.cpp
@@ -43,10 +43,11 @@ FLOPPY_FORMATS_MEMBER( compis_fdc_device::floppy_formats )
FLOPPY_CPIS_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( compis_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
-SLOT_INTERFACE_END
+static void compis_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+ device.option_add("525hd", FLOPPY_525_HD);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/isbx/isbc_218a.cpp b/src/devices/bus/isbx/isbc_218a.cpp
index 868462b505d..95f23955890 100644
--- a/src/devices/bus/isbx/isbc_218a.cpp
+++ b/src/devices/bus/isbx/isbc_218a.cpp
@@ -43,10 +43,11 @@ FLOPPY_FORMATS_MEMBER( isbc_218a_device::floppy_formats )
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( isbc_218a_floppies )
- SLOT_INTERFACE( "8dd", FLOPPY_8_DSDD )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void isbc_218a_floppies(device_slot_interface &device)
+{
+ device.option_add("8dd", FLOPPY_8_DSDD);
+ device.option_add("525dd", FLOPPY_525_DD);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/isbx/isbx.cpp b/src/devices/bus/isbx/isbx.cpp
index ce658e6b1d3..ae3754e6d62 100644
--- a/src/devices/bus/isbx/isbx.cpp
+++ b/src/devices/bus/isbx/isbx.cpp
@@ -73,7 +73,8 @@ void isbx_slot_device::device_start()
#include "compis_fdc.h"
#include "isbc_218a.h"
-SLOT_INTERFACE_START( isbx_cards )
- SLOT_INTERFACE("fdc", COMPIS_FDC)
- SLOT_INTERFACE("fdc_218a", ISBC_218A)
-SLOT_INTERFACE_END
+void isbx_cards(device_slot_interface &device)
+{
+ device.option_add("fdc", COMPIS_FDC);
+ device.option_add("fdc_218a", ISBC_218A);
+}
diff --git a/src/devices/bus/isbx/isbx.h b/src/devices/bus/isbx/isbx.h
index 3cd74178228..1219a5fc61c 100644
--- a/src/devices/bus/isbx/isbx.h
+++ b/src/devices/bus/isbx/isbx.h
@@ -147,7 +147,7 @@ protected:
DECLARE_DEVICE_TYPE(ISBX_SLOT, isbx_slot_device)
-SLOT_INTERFACE_EXTERN( isbx_cards );
+void isbx_cards(device_slot_interface &device);
#endif // MAME_BUS_ISBX_ISBX_SLOT_H
diff --git a/src/devices/bus/kc/d002.cpp b/src/devices/bus/kc/d002.cpp
index 90b5bf7b3ce..ebc24b06f8b 100644
--- a/src/devices/bus/kc/d002.cpp
+++ b/src/devices/bus/kc/d002.cpp
@@ -46,8 +46,9 @@ static INPUT_PORTS_START( kc_d002 )
INPUT_PORTS_END
// defined in drivers/kc.c
-SLOT_INTERFACE_EXTERN(kc85_cart);
-SLOT_INTERFACE_EXTERN(kc85_exp);
+// FIXME: if src/devices depends on src/mame, you're doing it wrong!
+void kc85_cart(device_slot_interface &device);
+void kc85_exp(device_slot_interface &device);
WRITE_LINE_MEMBER(kc_d002_device::out_irq_w)
{
diff --git a/src/devices/bus/kc/d004.cpp b/src/devices/bus/kc/d004.cpp
index 9034b34b054..3831c9f2eb5 100644
--- a/src/devices/bus/kc/d004.cpp
+++ b/src/devices/bus/kc/d004.cpp
@@ -56,9 +56,10 @@ FLOPPY_FORMATS_MEMBER( kc_d004_device::floppy_formats )
FLOPPY_KC85_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( kc_d004_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void kc_d004_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
static const z80_daisy_config kc_d004_daisy_chain[] =
{
diff --git a/src/devices/bus/lpci/southbridge.cpp b/src/devices/bus/lpci/southbridge.cpp
index df23c3fd9e9..965fc3fe58b 100644
--- a/src/devices/bus/lpci/southbridge.cpp
+++ b/src/devices/bus/lpci/southbridge.cpp
@@ -496,11 +496,12 @@ WRITE8_MEMBER( southbridge_device::at_dma8237_2_w )
Extended Southbridge Device
***************************************************************************/
-static SLOT_INTERFACE_START(pc_isa_onboard)
- SLOT_INTERFACE("comat", ISA8_COM_AT)
- SLOT_INTERFACE("lpt", ISA8_LPT)
- SLOT_INTERFACE("fdcsmc", ISA8_FDC_SMC)
-SLOT_INTERFACE_END
+static void pc_isa_onboard(device_slot_interface &device)
+{
+ device.option_add("comat", ISA8_COM_AT);
+ device.option_add("lpt", ISA8_LPT);
+ device.option_add("fdcsmc", ISA8_FDC_SMC);
+}
//-------------------------------------------------
// device_add_mconfig - add device configuration
diff --git a/src/devices/bus/megadrive/ggenie.cpp b/src/devices/bus/megadrive/ggenie.cpp
index 3bbcba0206c..a6001971529 100644
--- a/src/devices/bus/megadrive/ggenie.cpp
+++ b/src/devices/bus/megadrive/ggenie.cpp
@@ -158,13 +158,14 @@ WRITE16_MEMBER(md_rom_ggenie_device::write)
}
-static SLOT_INTERFACE_START(ggenie_sub_cart)
- SLOT_INTERFACE_INTERNAL("rom", MD_STD_ROM)
- SLOT_INTERFACE_INTERNAL("rom_svp", MD_STD_ROM)
- SLOT_INTERFACE_INTERNAL("rom_sram", MD_ROM_SRAM)
- SLOT_INTERFACE_INTERNAL("rom_sramsafe", MD_ROM_SRAM)
- SLOT_INTERFACE_INTERNAL("rom_fram", MD_ROM_FRAM)
-SLOT_INTERFACE_END
+static void ggenie_sub_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", MD_STD_ROM);
+ device.option_add_internal("rom_svp", MD_STD_ROM);
+ device.option_add_internal("rom_sram", MD_ROM_SRAM);
+ device.option_add_internal("rom_sramsafe", MD_ROM_SRAM);
+ device.option_add_internal("rom_fram", MD_ROM_FRAM);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/megadrive/md_carts.cpp b/src/devices/bus/megadrive/md_carts.cpp
index 30fff82a81e..7b2e8fa333d 100644
--- a/src/devices/bus/megadrive/md_carts.cpp
+++ b/src/devices/bus/megadrive/md_carts.cpp
@@ -18,69 +18,70 @@
#include "stm95.h"
-SLOT_INTERFACE_START(md_cart)
- SLOT_INTERFACE_INTERNAL("rom", MD_STD_ROM)
- SLOT_INTERFACE_INTERNAL("rom_svp", MD_ROM_SVP)
- SLOT_INTERFACE_INTERNAL("rom_sk", MD_ROM_SK)
+void md_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", MD_STD_ROM);
+ device.option_add_internal("rom_svp", MD_ROM_SVP);
+ device.option_add_internal("rom_sk", MD_ROM_SK);
// NVRAM handling
- SLOT_INTERFACE_INTERNAL("rom_sram", MD_ROM_SRAM)
- SLOT_INTERFACE_INTERNAL("rom_sramsafe", MD_ROM_SRAM)
- SLOT_INTERFACE_INTERNAL("rom_fram", MD_ROM_FRAM)
- SLOT_INTERFACE_INTERNAL("rom_hardbl95", MD_ROM_SRAM)
- SLOT_INTERFACE_INTERNAL("rom_xinqig", MD_ROM_SRAM)
- SLOT_INTERFACE_INTERNAL("rom_sf001", MD_ROM_BEGGARP)
- SLOT_INTERFACE_INTERNAL("rom_sf002", MD_ROM_WUKONG)
- SLOT_INTERFACE_INTERNAL("rom_sf004", MD_ROM_STARODYS)
+ device.option_add_internal("rom_sram", MD_ROM_SRAM);
+ device.option_add_internal("rom_sramsafe", MD_ROM_SRAM);
+ device.option_add_internal("rom_fram", MD_ROM_FRAM);
+ device.option_add_internal("rom_hardbl95", MD_ROM_SRAM);
+ device.option_add_internal("rom_xinqig", MD_ROM_SRAM);
+ device.option_add_internal("rom_sf001", MD_ROM_BEGGARP);
+ device.option_add_internal("rom_sf002", MD_ROM_WUKONG);
+ device.option_add_internal("rom_sf004", MD_ROM_STARODYS);
// EEPROM handling (not supported fully yet)
- SLOT_INTERFACE_INTERNAL("rom_eeprom", MD_STD_EEPROM)
- SLOT_INTERFACE_INTERNAL("rom_nbajam", MD_EEPROM_NBAJAM)
- SLOT_INTERFACE_INTERNAL("rom_nbajamte", MD_EEPROM_NBAJAMTE)
- SLOT_INTERFACE_INTERNAL("rom_nflqb96", MD_EEPROM_NFLQB)
- SLOT_INTERFACE_INTERNAL("rom_cslam", MD_EEPROM_CSLAM)
- SLOT_INTERFACE_INTERNAL("rom_nhlpa", MD_EEPROM_NHLPA)
- SLOT_INTERFACE_INTERNAL("rom_blara", MD_EEPROM_BLARA)
+ device.option_add_internal("rom_eeprom", MD_STD_EEPROM);
+ device.option_add_internal("rom_nbajam", MD_EEPROM_NBAJAM);
+ device.option_add_internal("rom_nbajamte", MD_EEPROM_NBAJAMTE);
+ device.option_add_internal("rom_nflqb96", MD_EEPROM_NFLQB);
+ device.option_add_internal("rom_cslam", MD_EEPROM_CSLAM);
+ device.option_add_internal("rom_nhlpa", MD_EEPROM_NHLPA);
+ device.option_add_internal("rom_blara", MD_EEPROM_BLARA);
// J-Cart controller (Sampras Tennis)
- SLOT_INTERFACE_INTERNAL("rom_jcart", MD_JCART)
+ device.option_add_internal("rom_jcart", MD_JCART);
// J-Cart controller + EEPROM handling (not supported fully yet)
- SLOT_INTERFACE_INTERNAL("rom_codemast", MD_SEPROM_CODEMAST)
- SLOT_INTERFACE_INTERNAL("rom_mm96", MD_SEPROM_MM96)
+ device.option_add_internal("rom_codemast", MD_SEPROM_CODEMAST);
+ device.option_add_internal("rom_mm96", MD_SEPROM_MM96);
// STM95 EEPROM
- SLOT_INTERFACE_INTERNAL("rom_stm95", MD_EEPROM_STM95)
+ device.option_add_internal("rom_stm95", MD_EEPROM_STM95);
// CodeMasters 2-in-1 (reset based)
- SLOT_INTERFACE_INTERNAL("rom_cm2in1", MD_ROM_CM2IN1)
+ device.option_add_internal("rom_cm2in1", MD_ROM_CM2IN1);
// Game Genie
- SLOT_INTERFACE_INTERNAL("rom_ggenie", MD_ROM_GAMEGENIE)
+ device.option_add_internal("rom_ggenie", MD_ROM_GAMEGENIE);
// unique bankswitch
- SLOT_INTERFACE_INTERNAL("rom_ssf2", MD_ROM_SSF2)
- SLOT_INTERFACE_INTERNAL("rom_radica", MD_ROM_RADICA)
+ device.option_add_internal("rom_ssf2", MD_ROM_SSF2);
+ device.option_add_internal("rom_radica", MD_ROM_RADICA);
// pirate mappers (protection and/or bankswitch)
- SLOT_INTERFACE_INTERNAL("rom_16mj2", MD_ROM_16MJ2)
- SLOT_INTERFACE_INTERNAL("rom_bugs", MD_ROM_BUGSLIFE)
- SLOT_INTERFACE_INTERNAL("rom_chinf3", MD_ROM_CHINF3)
- SLOT_INTERFACE_INTERNAL("rom_elfwor", MD_ROM_ELFWOR)
- SLOT_INTERFACE_INTERNAL("rom_yasech", MD_ROM_YASECH)
- SLOT_INTERFACE_INTERNAL("rom_kof98", MD_ROM_KOF98)
- SLOT_INTERFACE_INTERNAL("rom_kof99", MD_ROM_KOF99)
- SLOT_INTERFACE_INTERNAL("rom_lion2", MD_ROM_LION2)
- SLOT_INTERFACE_INTERNAL("rom_lion3", MD_ROM_LION3)
- SLOT_INTERFACE_INTERNAL("rom_mcpir", MD_ROM_MCPIR)
- SLOT_INTERFACE_INTERNAL("rom_mjlov", MD_ROM_MJLOV)
- SLOT_INTERFACE_INTERNAL("rom_cjmjclub", MD_ROM_CJMJCLUB)
- SLOT_INTERFACE_INTERNAL("rom_pokea", MD_ROM_POKEA)
- SLOT_INTERFACE_INTERNAL("rom_pokestad", MD_ROM_POKESTAD)
- SLOT_INTERFACE_INTERNAL("rom_realtec", MD_ROM_REALTEC)
- SLOT_INTERFACE_INTERNAL("rom_redcl", MD_ROM_REDCL)
- SLOT_INTERFACE_INTERNAL("rom_rx3", MD_ROM_RX3)
- SLOT_INTERFACE_INTERNAL("rom_sbubl", MD_ROM_SBUBL)
- SLOT_INTERFACE_INTERNAL("rom_smb", MD_ROM_SMB)
- SLOT_INTERFACE_INTERNAL("rom_smb2", MD_ROM_SMB2)
- SLOT_INTERFACE_INTERNAL("rom_smw64", MD_ROM_SMW64)
- SLOT_INTERFACE_INTERNAL("rom_smouse", MD_ROM_SMOUSE)
- SLOT_INTERFACE_INTERNAL("rom_soulb", MD_ROM_SOULB)
- SLOT_INTERFACE_INTERNAL("rom_squir", MD_ROM_SQUIR)
- SLOT_INTERFACE_INTERNAL("rom_tekkensp", MD_ROM_TEKKENSP)
- SLOT_INTERFACE_INTERNAL("rom_topf", MD_ROM_TOPF)
+ device.option_add_internal("rom_16mj2", MD_ROM_16MJ2);
+ device.option_add_internal("rom_bugs", MD_ROM_BUGSLIFE);
+ device.option_add_internal("rom_chinf3", MD_ROM_CHINF3);
+ device.option_add_internal("rom_elfwor", MD_ROM_ELFWOR);
+ device.option_add_internal("rom_yasech", MD_ROM_YASECH);
+ device.option_add_internal("rom_kof98", MD_ROM_KOF98);
+ device.option_add_internal("rom_kof99", MD_ROM_KOF99);
+ device.option_add_internal("rom_lion2", MD_ROM_LION2);
+ device.option_add_internal("rom_lion3", MD_ROM_LION3);
+ device.option_add_internal("rom_mcpir", MD_ROM_MCPIR);
+ device.option_add_internal("rom_mjlov", MD_ROM_MJLOV);
+ device.option_add_internal("rom_cjmjclub", MD_ROM_CJMJCLUB);
+ device.option_add_internal("rom_pokea", MD_ROM_POKEA);
+ device.option_add_internal("rom_pokestad", MD_ROM_POKESTAD);
+ device.option_add_internal("rom_realtec", MD_ROM_REALTEC);
+ device.option_add_internal("rom_redcl", MD_ROM_REDCL);
+ device.option_add_internal("rom_rx3", MD_ROM_RX3);
+ device.option_add_internal("rom_sbubl", MD_ROM_SBUBL);
+ device.option_add_internal("rom_smb", MD_ROM_SMB);
+ device.option_add_internal("rom_smb2", MD_ROM_SMB2);
+ device.option_add_internal("rom_smw64", MD_ROM_SMW64);
+ device.option_add_internal("rom_smouse", MD_ROM_SMOUSE);
+ device.option_add_internal("rom_soulb", MD_ROM_SOULB);
+ device.option_add_internal("rom_squir", MD_ROM_SQUIR);
+ device.option_add_internal("rom_tekkensp", MD_ROM_TEKKENSP);
+ device.option_add_internal("rom_topf", MD_ROM_TOPF);
-SLOT_INTERFACE_INTERNAL("rom_nbajam_alt", MD_EEPROM_NBAJAM_ALT)
-SLOT_INTERFACE_END
+ device.option_add_internal("rom_nbajam_alt", MD_EEPROM_NBAJAM_ALT);
+}
diff --git a/src/devices/bus/megadrive/md_carts.h b/src/devices/bus/megadrive/md_carts.h
index 7547a015657..03401ee2952 100644
--- a/src/devices/bus/megadrive/md_carts.h
+++ b/src/devices/bus/megadrive/md_carts.h
@@ -13,6 +13,6 @@
// supported devices
-SLOT_INTERFACE_EXTERN(md_cart);
+void md_cart(device_slot_interface &device);
#endif // MAME_BUS_MEGADRIVE_MD_CARTS_H
diff --git a/src/devices/bus/megadrive/sk.cpp b/src/devices/bus/megadrive/sk.cpp
index 311de07b58e..b48163e9b94 100644
--- a/src/devices/bus/megadrive/sk.cpp
+++ b/src/devices/bus/megadrive/sk.cpp
@@ -64,14 +64,15 @@ WRITE16_MEMBER(md_rom_sk_device::write)
}
-static SLOT_INTERFACE_START(sk_sub_cart)
- SLOT_INTERFACE_INTERNAL("rom", MD_STD_ROM)
- SLOT_INTERFACE_INTERNAL("rom_svp", MD_STD_ROM)
- SLOT_INTERFACE_INTERNAL("rom_sram", MD_ROM_SRAM)
- SLOT_INTERFACE_INTERNAL("rom_sramsafe", MD_ROM_SRAM)
- SLOT_INTERFACE_INTERNAL("rom_fram", MD_ROM_FRAM)
+static void sk_sub_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", MD_STD_ROM);
+ device.option_add_internal("rom_svp", MD_STD_ROM);
+ device.option_add_internal("rom_sram", MD_ROM_SRAM);
+ device.option_add_internal("rom_sramsafe", MD_ROM_SRAM);
+ device.option_add_internal("rom_fram", MD_ROM_FRAM);
// add all types??
-SLOT_INTERFACE_END
+}
//-------------------------------------------------
diff --git a/src/devices/bus/midi/midi.cpp b/src/devices/bus/midi/midi.cpp
index baf8cf91a8e..be55f0d71a1 100644
--- a/src/devices/bus/midi/midi.cpp
+++ b/src/devices/bus/midi/midi.cpp
@@ -46,12 +46,14 @@ device_midi_port_interface::~device_midi_port_interface()
#include "bus/midi/midiinport.h"
-SLOT_INTERFACE_START(midiin_slot)
- SLOT_INTERFACE("midiin", MIDIIN_PORT)
-SLOT_INTERFACE_END
+void midiin_slot(device_slot_interface &device)
+{
+ device.option_add("midiin", MIDIIN_PORT);
+}
#include "bus/midi/midioutport.h"
-SLOT_INTERFACE_START(midiout_slot)
- SLOT_INTERFACE("midiout", MIDIOUT_PORT)
-SLOT_INTERFACE_END
+void midiout_slot(device_slot_interface &device)
+{
+ device.option_add("midiout", MIDIOUT_PORT);
+}
diff --git a/src/devices/bus/midi/midi.h b/src/devices/bus/midi/midi.h
index 52c889efbd7..114c6bf948b 100644
--- a/src/devices/bus/midi/midi.h
+++ b/src/devices/bus/midi/midi.h
@@ -61,7 +61,7 @@ protected:
DECLARE_DEVICE_TYPE(MIDI_PORT, midi_port_device)
-SLOT_INTERFACE_EXTERN(midiin_slot);
-SLOT_INTERFACE_EXTERN(midiout_slot);
+void midiin_slot(device_slot_interface &device);
+void midiout_slot(device_slot_interface &device);
#endif // MAME_BUS_MIDI_MIDI_H
diff --git a/src/devices/bus/msx_cart/cartridge.cpp b/src/devices/bus/msx_cart/cartridge.cpp
index 9f1e27c44c8..9c722e74872 100644
--- a/src/devices/bus/msx_cart/cartridge.cpp
+++ b/src/devices/bus/msx_cart/cartridge.cpp
@@ -27,46 +27,47 @@
#include "yamaha.h"
-SLOT_INTERFACE_START(msx_cart)
- SLOT_INTERFACE_INTERNAL("nomapper", MSX_CART_NOMAPPER)
- SLOT_INTERFACE_INTERNAL("msxdos2", MSX_CART_MSXDOS2)
- SLOT_INTERFACE_INTERNAL("konami_scc", MSX_CART_KONAMI_SCC)
- SLOT_INTERFACE_INTERNAL("konami", MSX_CART_KONAMI)
- SLOT_INTERFACE_INTERNAL("ascii8", MSX_CART_ASCII8)
- SLOT_INTERFACE_INTERNAL("ascii16", MSX_CART_ASCII16)
- SLOT_INTERFACE_INTERNAL("gamemaster2", MSX_CART_GAMEMASTER2)
- SLOT_INTERFACE_INTERNAL("ascii8_sram", MSX_CART_ASCII8_SRAM)
- SLOT_INTERFACE_INTERNAL("ascii16_sram", MSX_CART_ASCII16_SRAM)
- SLOT_INTERFACE_INTERNAL("rtype", MSX_CART_RTYPE)
- SLOT_INTERFACE_INTERNAL("majutsushi", MSX_CART_MAJUTSUSHI)
- SLOT_INTERFACE_INTERNAL("fmpac", MSX_CART_FMPAC)
- SLOT_INTERFACE_INTERNAL("fs_sr022", MSX_CART_FS_SR022)
- SLOT_INTERFACE_INTERNAL("superloderunner", MSX_CART_SUPERLODERUNNER)
- SLOT_INTERFACE_INTERNAL("synthesizer", MSX_CART_SYNTHESIZER)
- SLOT_INTERFACE_INTERNAL("cross_blaim", MSX_CART_CROSSBLAIM)
- SLOT_INTERFACE_INTERNAL("korean_80in1", MSX_CART_KOREAN_80IN1)
- SLOT_INTERFACE_INTERNAL("korean_90in1", MSX_CART_KOREAN_90IN1)
- SLOT_INTERFACE_INTERNAL("korean_126in1", MSX_CART_KOREAN_126IN1)
- SLOT_INTERFACE_INTERNAL("msxwrite", MSX_CART_MSXWRITE)
- SLOT_INTERFACE_INTERNAL("sound_snatcher", MSX_CART_SOUND_SNATCHER)
- SLOT_INTERFACE_INTERNAL("sound_sdsnatch", MSX_CART_SOUND_SDSNATCHER)
- SLOT_INTERFACE_INTERNAL("msxaud_hxmu900", MSX_CART_MSX_AUDIO_HXMU900)
- SLOT_INTERFACE_INTERNAL("msxaud_fsca1", MSX_CART_MSX_AUDIO_FSCA1)
- SLOT_INTERFACE_INTERNAL("msxaud_nms1205", MSX_CART_MSX_AUDIO_NMS1205)
- SLOT_INTERFACE_INTERNAL("super_swangi", MSX_CART_SUPER_SWANGI)
- SLOT_INTERFACE_INTERNAL("hfox", MSX_CART_HFOX)
- SLOT_INTERFACE_INTERNAL("keyboard_master", MSX_CART_KEYBOARD_MASTER)
- SLOT_INTERFACE_INTERNAL("holy_quran", MSX_CART_HOLY_QURAN)
- SLOT_INTERFACE_INTERNAL("dooly", MSX_CART_DOOLY)
- SLOT_INTERFACE_INTERNAL("halnote", MSX_CART_HALNOTE)
- SLOT_INTERFACE_INTERNAL("arc", MSX_CART_ARC)
- SLOT_INTERFACE_INTERNAL("disk_vy0010", MSX_CART_VY0010)
- SLOT_INTERFACE_INTERNAL("disk_fsfd1", MSX_CART_FSFD1)
- SLOT_INTERFACE_INTERNAL("disk_fsfd1a", MSX_CART_FSFD1A)
- SLOT_INTERFACE_INTERNAL("disk_fscf351", MSX_CART_FSCF351)
- SLOT_INTERFACE("bm_012", MSX_CART_BM_012)
- SLOT_INTERFACE("moonsound", MSX_CART_MOONSOUND)
-SLOT_INTERFACE_END
+void msx_cart(device_slot_interface &device)
+{
+ device.option_add_internal("nomapper", MSX_CART_NOMAPPER);
+ device.option_add_internal("msxdos2", MSX_CART_MSXDOS2);
+ device.option_add_internal("konami_scc", MSX_CART_KONAMI_SCC);
+ device.option_add_internal("konami", MSX_CART_KONAMI);
+ device.option_add_internal("ascii8", MSX_CART_ASCII8);
+ device.option_add_internal("ascii16", MSX_CART_ASCII16);
+ device.option_add_internal("gamemaster2", MSX_CART_GAMEMASTER2);
+ device.option_add_internal("ascii8_sram", MSX_CART_ASCII8_SRAM);
+ device.option_add_internal("ascii16_sram", MSX_CART_ASCII16_SRAM);
+ device.option_add_internal("rtype", MSX_CART_RTYPE);
+ device.option_add_internal("majutsushi", MSX_CART_MAJUTSUSHI);
+ device.option_add_internal("fmpac", MSX_CART_FMPAC);
+ device.option_add_internal("fs_sr022", MSX_CART_FS_SR022);
+ device.option_add_internal("superloderunner", MSX_CART_SUPERLODERUNNER);
+ device.option_add_internal("synthesizer", MSX_CART_SYNTHESIZER);
+ device.option_add_internal("cross_blaim", MSX_CART_CROSSBLAIM);
+ device.option_add_internal("korean_80in1", MSX_CART_KOREAN_80IN1);
+ device.option_add_internal("korean_90in1", MSX_CART_KOREAN_90IN1);
+ device.option_add_internal("korean_126in1", MSX_CART_KOREAN_126IN1);
+ device.option_add_internal("msxwrite", MSX_CART_MSXWRITE);
+ device.option_add_internal("sound_snatcher", MSX_CART_SOUND_SNATCHER);
+ device.option_add_internal("sound_sdsnatch", MSX_CART_SOUND_SDSNATCHER);
+ device.option_add_internal("msxaud_hxmu900", MSX_CART_MSX_AUDIO_HXMU900);
+ device.option_add_internal("msxaud_fsca1", MSX_CART_MSX_AUDIO_FSCA1);
+ device.option_add_internal("msxaud_nms1205", MSX_CART_MSX_AUDIO_NMS1205);
+ device.option_add_internal("super_swangi", MSX_CART_SUPER_SWANGI);
+ device.option_add_internal("hfox", MSX_CART_HFOX);
+ device.option_add_internal("keyboard_master", MSX_CART_KEYBOARD_MASTER);
+ device.option_add_internal("holy_quran", MSX_CART_HOLY_QURAN);
+ device.option_add_internal("dooly", MSX_CART_DOOLY);
+ device.option_add_internal("halnote", MSX_CART_HALNOTE);
+ device.option_add_internal("arc", MSX_CART_ARC);
+ device.option_add_internal("disk_vy0010", MSX_CART_VY0010);
+ device.option_add_internal("disk_fsfd1", MSX_CART_FSFD1);
+ device.option_add_internal("disk_fsfd1a", MSX_CART_FSFD1A);
+ device.option_add_internal("disk_fscf351", MSX_CART_FSCF351);
+ device.option_add("bm_012", MSX_CART_BM_012);
+ device.option_add("moonsound", MSX_CART_MOONSOUND);
+}
msx_cart_interface::msx_cart_interface(const machine_config &mconfig, device_t &device)
@@ -103,7 +104,8 @@ void msx_cart_interface::sram_alloc(uint32_t size)
// Several yamaha machines had 60 pin expansion slots. The pinouts of these slots was
// exactly the same as the regular 50 pin cartridge slots. The lowest 10 pins are simply
// not connected.
-SLOT_INTERFACE_START(msx_yamaha_60pin)
- SLOT_INTERFACE("sfg01", MSX_CART_SFG01)
- SLOT_INTERFACE("sfg05", MSX_CART_SFG05)
-SLOT_INTERFACE_END
+void msx_yamaha_60pin(device_slot_interface &device)
+{
+ device.option_add("sfg01", MSX_CART_SFG01);
+ device.option_add("sfg05", MSX_CART_SFG05);
+}
diff --git a/src/devices/bus/msx_cart/cartridge.h b/src/devices/bus/msx_cart/cartridge.h
index c80f2949732..381ec09e566 100644
--- a/src/devices/bus/msx_cart/cartridge.h
+++ b/src/devices/bus/msx_cart/cartridge.h
@@ -6,8 +6,8 @@
#pragma once
-SLOT_INTERFACE_EXTERN(msx_cart);
-SLOT_INTERFACE_EXTERN(msx_yamaha_60pin); // 60 pin expansion slots as found in yamaha machines
+void msx_cart(device_slot_interface &device);
+void msx_yamaha_60pin(device_slot_interface &device); // 60 pin expansion slots as found in yamaha machines
class msx_cart_interface : public device_slot_card_interface
diff --git a/src/devices/bus/msx_cart/disk.cpp b/src/devices/bus/msx_cart/disk.cpp
index 30ff4361e7c..24dca42fd93 100644
--- a/src/devices/bus/msx_cart/disk.cpp
+++ b/src/devices/bus/msx_cart/disk.cpp
@@ -116,10 +116,11 @@ FLOPPY_FORMATS_MEMBER( msx_cart_disk_device::floppy_formats )
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( msx_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
- SLOT_INTERFACE( "35ssdd", FLOPPY_35_SSDD )
-SLOT_INTERFACE_END
+static void msx_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+ device.option_add("35ssdd", FLOPPY_35_SSDD);
+}
msx_cart_disk_device::msx_cart_disk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
diff --git a/src/devices/bus/msx_cart/konami.cpp b/src/devices/bus/msx_cart/konami.cpp
index 7bdde846cf8..05449ab7d42 100644
--- a/src/devices/bus/msx_cart/konami.cpp
+++ b/src/devices/bus/msx_cart/konami.cpp
@@ -477,7 +477,7 @@ MACHINE_CONFIG_START(msx_cart_synthesizer_device::device_add_mconfig)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/devices/bus/msx_cart/majutsushi.cpp b/src/devices/bus/msx_cart/majutsushi.cpp
index 77baf81636a..e6d601473f2 100644
--- a/src/devices/bus/msx_cart/majutsushi.cpp
+++ b/src/devices/bus/msx_cart/majutsushi.cpp
@@ -31,7 +31,7 @@ MACHINE_CONFIG_START(msx_cart_majutsushi_device::device_add_mconfig)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.05) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/devices/bus/msx_cart/msx_audio_kb.cpp b/src/devices/bus/msx_cart/msx_audio_kb.cpp
index 2bfa98758e9..9bbae0aab93 100644
--- a/src/devices/bus/msx_cart/msx_audio_kb.cpp
+++ b/src/devices/bus/msx_cart/msx_audio_kb.cpp
@@ -308,7 +308,8 @@ DEFINE_DEVICE_TYPE(MSX_AUDIO_KB_HXMU901, msx_hxmu901_device, "hxmu901", "Toshiba
DEFINE_DEVICE_TYPE(MSX_AUDIO_KB_NMS1160, msx_nms1160_device, "nms1160", "Philips NMS-1160")
-SLOT_INTERFACE_START( msx_audio_keyboards )
- SLOT_INTERFACE("hxmu901", MSX_AUDIO_KB_HXMU901)
- SLOT_INTERFACE("nms1160", MSX_AUDIO_KB_NMS1160)
-SLOT_INTERFACE_END
+void msx_audio_keyboards(device_slot_interface &device)
+{
+ device.option_add("hxmu901", MSX_AUDIO_KB_HXMU901);
+ device.option_add("nms1160", MSX_AUDIO_KB_NMS1160);
+}
diff --git a/src/devices/bus/msx_cart/msx_audio_kb.h b/src/devices/bus/msx_cart/msx_audio_kb.h
index 139d78f486b..0746a803b40 100644
--- a/src/devices/bus/msx_cart/msx_audio_kb.h
+++ b/src/devices/bus/msx_cart/msx_audio_kb.h
@@ -46,7 +46,7 @@ protected:
};
-SLOT_INTERFACE_EXTERN( msx_audio_keyboards );
+void msx_audio_keyboards(device_slot_interface &device);
#endif // MAME_BUS_MSX_CART_MSX_AUDIO_KB_H
diff --git a/src/devices/bus/nasbus/cards.cpp b/src/devices/bus/nasbus/cards.cpp
index db6606dad50..5c48a13fb22 100644
--- a/src/devices/bus/nasbus/cards.cpp
+++ b/src/devices/bus/nasbus/cards.cpp
@@ -13,7 +13,8 @@
#include "floppy.h"
-SLOT_INTERFACE_START( nasbus_slot_cards )
- SLOT_INTERFACE("avc", NASCOM_AVC)
- SLOT_INTERFACE("floppy", NASCOM_FDC)
-SLOT_INTERFACE_END
+void nasbus_slot_cards(device_slot_interface &device)
+{
+ device.option_add("avc", NASCOM_AVC);
+ device.option_add("floppy", NASCOM_FDC);
+}
diff --git a/src/devices/bus/nasbus/cards.h b/src/devices/bus/nasbus/cards.h
index 89179c4a16f..747fa8ff984 100644
--- a/src/devices/bus/nasbus/cards.h
+++ b/src/devices/bus/nasbus/cards.h
@@ -12,6 +12,6 @@
#pragma once
-SLOT_INTERFACE_EXTERN( nasbus_slot_cards );
+void nasbus_slot_cards(device_slot_interface &device);
#endif // MAME_BUS_NASBUS_CARDS_H
diff --git a/src/devices/bus/nasbus/floppy.cpp b/src/devices/bus/nasbus/floppy.cpp
index ffa1be5fce8..55ad5c0d128 100644
--- a/src/devices/bus/nasbus/floppy.cpp
+++ b/src/devices/bus/nasbus/floppy.cpp
@@ -28,10 +28,11 @@ FLOPPY_FORMATS_MEMBER( nascom_fdc_device::floppy_formats )
FLOPPY_NASCOM_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( nascom_floppies )
- SLOT_INTERFACE("55e", TEAC_FD_55E)
- SLOT_INTERFACE("55f", TEAC_FD_55F)
-SLOT_INTERFACE_END
+static void nascom_floppies(device_slot_interface &device)
+{
+ device.option_add("55e", TEAC_FD_55E);
+ device.option_add("55f", TEAC_FD_55F);
+}
//-------------------------------------------------
// device_add_mconfig - add device configuration
diff --git a/src/devices/bus/neogeo/carts.cpp b/src/devices/bus/neogeo/carts.cpp
index ad732e966b7..356ddf60340 100644
--- a/src/devices/bus/neogeo/carts.cpp
+++ b/src/devices/bus/neogeo/carts.cpp
@@ -24,91 +24,92 @@
#include "bus/neogeo/sbp.h"
-SLOT_INTERFACE_START(neogeo_cart)
- SLOT_INTERFACE_INTERNAL("rom", NEOGEO_ROM) // Standard cart with banking
+void neogeo_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", NEOGEO_ROM); // Standard cart with banking
- SLOT_INTERFACE_INTERNAL("rom_vliner", NEOGEO_VLINER_CART) // Standard cart + RAM
- SLOT_INTERFACE_INTERNAL("rom_fatfur2", NEOGEO_FATFURY2_CART) // Custom Fatal Fury 2 protection
- SLOT_INTERFACE_INTERNAL("rom_kof98", NEOGEO_KOF98_CART) // Custom King of Fighters 98 protection
- SLOT_INTERFACE_INTERNAL("rom_mslugx", NEOGEO_MSLUGX_CART) // Custom Metal Slug X protection
+ device.option_add_internal("rom_vliner", NEOGEO_VLINER_CART); // Standard cart + RAM
+ device.option_add_internal("rom_fatfur2", NEOGEO_FATFURY2_CART); // Custom Fatal Fury 2 protection
+ device.option_add_internal("rom_kof98", NEOGEO_KOF98_CART); // Custom King of Fighters 98 protection
+ device.option_add_internal("rom_mslugx", NEOGEO_MSLUGX_CART); // Custom Metal Slug X protection
// only CMC42 for gfx
- SLOT_INTERFACE_INTERNAL("cmc42_zupapa", NEOGEO_CMC_ZUPAPA_CART)
- SLOT_INTERFACE_INTERNAL("cmc42_mslug3h", NEOGEO_CMC_MSLUG3H_CART)
- SLOT_INTERFACE_INTERNAL("cmc42_ganryu", NEOGEO_CMC_GANRYU_CART)
- SLOT_INTERFACE_INTERNAL("cmc42_s1945p", NEOGEO_CMC_S1945P_CART)
- SLOT_INTERFACE_INTERNAL("cmc42_preisle2", NEOGEO_CMC_PREISLE2_CART)
- SLOT_INTERFACE_INTERNAL("cmc42_bangbead", NEOGEO_CMC_BANGBEAD_CART)
- SLOT_INTERFACE_INTERNAL("cmc42_nitd", NEOGEO_CMC_NITD_CART)
- SLOT_INTERFACE_INTERNAL("cmc42_sengoku3", NEOGEO_CMC_SENGOKU3_CART)
- SLOT_INTERFACE_INTERNAL("cmc42_kof99k", NEOGEO_CMC_KOF99K_CART)
+ device.option_add_internal("cmc42_zupapa", NEOGEO_CMC_ZUPAPA_CART);
+ device.option_add_internal("cmc42_mslug3h", NEOGEO_CMC_MSLUG3H_CART);
+ device.option_add_internal("cmc42_ganryu", NEOGEO_CMC_GANRYU_CART);
+ device.option_add_internal("cmc42_s1945p", NEOGEO_CMC_S1945P_CART);
+ device.option_add_internal("cmc42_preisle2", NEOGEO_CMC_PREISLE2_CART);
+ device.option_add_internal("cmc42_bangbead", NEOGEO_CMC_BANGBEAD_CART);
+ device.option_add_internal("cmc42_nitd", NEOGEO_CMC_NITD_CART);
+ device.option_add_internal("cmc42_sengoku3", NEOGEO_CMC_SENGOKU3_CART);
+ device.option_add_internal("cmc42_kof99k", NEOGEO_CMC_KOF99K_CART);
// only CMC50 for gfx + audiocpu
- SLOT_INTERFACE_INTERNAL("cmc50_kof2001", NEOGEO_CMC_KOF2001_CART)
- SLOT_INTERFACE_INTERNAL("cmc50_kof2000n", NEOGEO_CMC_KOF2000N_CART)
- SLOT_INTERFACE_INTERNAL("cmc50_jockeygp", NEOGEO_CMC_JOCKEYGP_CART) // CMC50 + RAM
+ device.option_add_internal("cmc50_kof2001", NEOGEO_CMC_KOF2001_CART);
+ device.option_add_internal("cmc50_kof2000n", NEOGEO_CMC_KOF2000N_CART);
+ device.option_add_internal("cmc50_jockeygp", NEOGEO_CMC_JOCKEYGP_CART); // CMC50 + RAM
// These use SMA for prg & CMC42 for gfx
- SLOT_INTERFACE_INTERNAL("sma_kof99", NEOGEO_SMA_KOF99_CART)
- SLOT_INTERFACE_INTERNAL("sma_garou", NEOGEO_SMA_GAROU_CART)
- SLOT_INTERFACE_INTERNAL("sma_garouh", NEOGEO_SMA_GAROUH_CART)
- SLOT_INTERFACE_INTERNAL("sma_mslug3", NEOGEO_SMA_MSLUG3_CART)
+ device.option_add_internal("sma_kof99", NEOGEO_SMA_KOF99_CART);
+ device.option_add_internal("sma_garou", NEOGEO_SMA_GAROU_CART);
+ device.option_add_internal("sma_garouh", NEOGEO_SMA_GAROUH_CART);
+ device.option_add_internal("sma_mslug3", NEOGEO_SMA_MSLUG3_CART);
// These use SMA for prg & CMC50 for gfx + audiocpu
- SLOT_INTERFACE_INTERNAL("sma_kof2k", NEOGEO_SMA_KOF2000_CART)
+ device.option_add_internal("sma_kof2k", NEOGEO_SMA_KOF2000_CART);
// CMC50 for gfx + audiocpu & NEOPCM2 for YM scramble
- SLOT_INTERFACE_INTERNAL("pcm2_mslug4", NEOGEO_PCM2_MSLUG4_CART)
- SLOT_INTERFACE_INTERNAL("pcm2_rotd", NEOGEO_PCM2_ROTD_CART)
- SLOT_INTERFACE_INTERNAL("pcm2_pnyaa", NEOGEO_PCM2_PNYAA_CART)
- SLOT_INTERFACE_INTERNAL("pcm2_ms4p", NEOGEO_PCM2_MS4PLUS_CART) // regular encryption but external S1 rom = no audiocpu encryption from CMC
+ device.option_add_internal("pcm2_mslug4", NEOGEO_PCM2_MSLUG4_CART);
+ device.option_add_internal("pcm2_rotd", NEOGEO_PCM2_ROTD_CART);
+ device.option_add_internal("pcm2_pnyaa", NEOGEO_PCM2_PNYAA_CART);
+ device.option_add_internal("pcm2_ms4p", NEOGEO_PCM2_MS4PLUS_CART); // regular encryption but external S1 rom = no audiocpu encryption from CMC
// CMC50 for gfx + audiocpu & NEOPCM2 for YM scramble & additonal prg scramble
- SLOT_INTERFACE_INTERNAL("k2k2_kof2k2", NEOGEO_K2K2_KOF2002_CART)
- SLOT_INTERFACE_INTERNAL("k2k2_matrim", NEOGEO_K2K2_MATRIM_CART)
- SLOT_INTERFACE_INTERNAL("k2k2_samsh5", NEOGEO_K2K2_SAMSHO5_CART)
- SLOT_INTERFACE_INTERNAL("k2k2_sams5s", NEOGEO_K2K2_SAMSHO5SP_CART)
- SLOT_INTERFACE_INTERNAL("k2k2_kf2k2p", NEOGEO_K2K2_KF2K2PLS_CART) // regular encryption but external S1 rom = no audiocpu encryption from CMC
+ device.option_add_internal("k2k2_kof2k2", NEOGEO_K2K2_KOF2002_CART);
+ device.option_add_internal("k2k2_matrim", NEOGEO_K2K2_MATRIM_CART);
+ device.option_add_internal("k2k2_samsh5", NEOGEO_K2K2_SAMSHO5_CART);
+ device.option_add_internal("k2k2_sams5s", NEOGEO_K2K2_SAMSHO5SP_CART);
+ device.option_add_internal("k2k2_kf2k2p", NEOGEO_K2K2_KF2K2PLS_CART); // regular encryption but external S1 rom = no audiocpu encryption from CMC
// CMC50 for gfx + audiocpu & NEOPCM2 for YM scramble & PVC protection/encryption
- SLOT_INTERFACE_INTERNAL("pvc_mslug5", NEOGEO_PVC_MSLUG5_CART)
- SLOT_INTERFACE_INTERNAL("pvc_svc", NEOGEO_PVC_SVC_CART)
- SLOT_INTERFACE_INTERNAL("pvc_kf2k3", NEOGEO_PVC_KOF2003_CART)
- SLOT_INTERFACE_INTERNAL("pvc_kf2k3h", NEOGEO_PVC_KOF2003H_CART)
+ device.option_add_internal("pvc_mslug5", NEOGEO_PVC_MSLUG5_CART);
+ device.option_add_internal("pvc_svc", NEOGEO_PVC_SVC_CART);
+ device.option_add_internal("pvc_kf2k3", NEOGEO_PVC_KOF2003_CART);
+ device.option_add_internal("pvc_kf2k3h", NEOGEO_PVC_KOF2003H_CART);
// Bootleg logic for CTHD2K3 and clones
- SLOT_INTERFACE_INTERNAL("boot_cthd2k3", NEOGEO_CTHD2K3_CART)
- SLOT_INTERFACE_INTERNAL("boot_ct2k3sp", NEOGEO_CT2K3SP_CART)
- SLOT_INTERFACE_INTERNAL("boot_ct2k3sa", NEOGEO_CT2K3SA_CART)
- SLOT_INTERFACE_INTERNAL("boot_matrimbl", NEOGEO_MATRIMBL_CART) // this also uses a CMC for SFIX & additional prg scramble from kof2002
+ device.option_add_internal("boot_cthd2k3", NEOGEO_CTHD2K3_CART);
+ device.option_add_internal("boot_ct2k3sp", NEOGEO_CT2K3SP_CART);
+ device.option_add_internal("boot_ct2k3sa", NEOGEO_CT2K3SA_CART);
+ device.option_add_internal("boot_matrimbl", NEOGEO_MATRIMBL_CART); // this also uses a CMC for SFIX & additional prg scramble from kof2002
// Bootleg logic for SVC clones
- SLOT_INTERFACE_INTERNAL("boot_svcboot", NEOGEO_SVCBOOT_CART) // this also uses a PVC protection/encryption
- SLOT_INTERFACE_INTERNAL("boot_svcplus", NEOGEO_SVCPLUS_CART)
- SLOT_INTERFACE_INTERNAL("boot_svcplusa", NEOGEO_SVCPLUSA_CART)
- SLOT_INTERFACE_INTERNAL("boot_svcsplus", NEOGEO_SVCSPLUS_CART) // this also uses a PVC protection/encryption
+ device.option_add_internal("boot_svcboot", NEOGEO_SVCBOOT_CART); // this also uses a PVC protection/encryption
+ device.option_add_internal("boot_svcplus", NEOGEO_SVCPLUS_CART);
+ device.option_add_internal("boot_svcplusa", NEOGEO_SVCPLUSA_CART);
+ device.option_add_internal("boot_svcsplus", NEOGEO_SVCSPLUS_CART); // this also uses a PVC protection/encryption
// Bootleg logic for KOF2002 clones
- SLOT_INTERFACE_INTERNAL("boot_kf2k2b", NEOGEO_KOF2002B_CART)
- SLOT_INTERFACE_INTERNAL("boot_kf2k2mp", NEOGEO_KF2K2MP_CART)
- SLOT_INTERFACE_INTERNAL("boot_kf2k2mp2", NEOGEO_KF2K2MP2_CART)
+ device.option_add_internal("boot_kf2k2b", NEOGEO_KOF2002B_CART);
+ device.option_add_internal("boot_kf2k2mp", NEOGEO_KF2K2MP_CART);
+ device.option_add_internal("boot_kf2k2mp2", NEOGEO_KF2K2MP2_CART);
// Bootleg logic for KOF2003 clones
- SLOT_INTERFACE_INTERNAL("boot_kf2k3bl", NEOGEO_KF2K3BL_CART)
- SLOT_INTERFACE_INTERNAL("boot_kf2k3pl", NEOGEO_KF2K3PL_CART)
- SLOT_INTERFACE_INTERNAL("boot_kf2k3upl", NEOGEO_KF2K3UPL_CART)
+ device.option_add_internal("boot_kf2k3bl", NEOGEO_KF2K3BL_CART);
+ device.option_add_internal("boot_kf2k3pl", NEOGEO_KF2K3PL_CART);
+ device.option_add_internal("boot_kf2k3upl", NEOGEO_KF2K3UPL_CART);
// Misc carts with bootleg logic
- SLOT_INTERFACE_INTERNAL("boot_garoubl", NEOGEO_GAROUBL_CART)
- SLOT_INTERFACE_INTERNAL("boot_kof97oro", NEOGEO_KOF97ORO_CART)
- SLOT_INTERFACE_INTERNAL("boot_kf10thep", NEOGEO_KF10THEP_CART)
- SLOT_INTERFACE_INTERNAL("boot_kf2k5uni", NEOGEO_KF2K5UNI_CART)
- SLOT_INTERFACE_INTERNAL("boot_kf2k4se", NEOGEO_KF2K4SE_CART)
- SLOT_INTERFACE_INTERNAL("boot_lans2004", NEOGEO_LANS2004_CART)
- SLOT_INTERFACE_INTERNAL("boot_samsho5b", NEOGEO_SAMSHO5B_CART)
- SLOT_INTERFACE_INTERNAL("boot_mslug3b6", NEOGEO_MSLUG3B6_CART) // this also uses a CMC42 for gfx
- SLOT_INTERFACE_INTERNAL("boot_ms5plus", NEOGEO_MS5PLUS_CART) // this also uses a CMC50 for gfx + audiocpu & NEOPCM2 for YM scramble
- SLOT_INTERFACE_INTERNAL("boot_kog", NEOGEO_KOG_CART)
-
- SLOT_INTERFACE_INTERNAL("boot_kf10th", NEOGEO_KOF10TH_CART)
- SLOT_INTERFACE_INTERNAL("boot_sbp", NEOGEO_SBP_CART)
-SLOT_INTERFACE_END
+ device.option_add_internal("boot_garoubl", NEOGEO_GAROUBL_CART);
+ device.option_add_internal("boot_kof97oro", NEOGEO_KOF97ORO_CART);
+ device.option_add_internal("boot_kf10thep", NEOGEO_KF10THEP_CART);
+ device.option_add_internal("boot_kf2k5uni", NEOGEO_KF2K5UNI_CART);
+ device.option_add_internal("boot_kf2k4se", NEOGEO_KF2K4SE_CART);
+ device.option_add_internal("boot_lans2004", NEOGEO_LANS2004_CART);
+ device.option_add_internal("boot_samsho5b", NEOGEO_SAMSHO5B_CART);
+ device.option_add_internal("boot_mslug3b6", NEOGEO_MSLUG3B6_CART); // this also uses a CMC42 for gfx
+ device.option_add_internal("boot_ms5plus", NEOGEO_MS5PLUS_CART); // this also uses a CMC50 for gfx + audiocpu & NEOPCM2 for YM scramble
+ device.option_add_internal("boot_kog", NEOGEO_KOG_CART);
+
+ device.option_add_internal("boot_kf10th", NEOGEO_KOF10TH_CART);
+ device.option_add_internal("boot_sbp", NEOGEO_SBP_CART);
+}
diff --git a/src/devices/bus/neogeo/carts.h b/src/devices/bus/neogeo/carts.h
index f66b881a9b7..fd5b3704081 100644
--- a/src/devices/bus/neogeo/carts.h
+++ b/src/devices/bus/neogeo/carts.h
@@ -11,6 +11,6 @@
// supported devices
-SLOT_INTERFACE_EXTERN(neogeo_cart);
+void neogeo_cart(device_slot_interface &device);
#endif // MAME_BUS_NEOGEO_CARTS_H
diff --git a/src/devices/bus/neogeo_ctrl/ctrl.cpp b/src/devices/bus/neogeo_ctrl/ctrl.cpp
index 2a936c1fa53..023d28adaf8 100644
--- a/src/devices/bus/neogeo_ctrl/ctrl.cpp
+++ b/src/devices/bus/neogeo_ctrl/ctrl.cpp
@@ -189,23 +189,27 @@ void neogeo_ctrl_edge_port_device::write_ctrlsel(uint8_t data)
// SLOT_INTERFACE( neogeo_control_port_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( neogeo_controls )
- SLOT_INTERFACE("joy", NEOGEO_JOY)
- SLOT_INTERFACE("mahjong", NEOGEO_MJCTRL)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( neogeo_arc_edge )
- SLOT_INTERFACE("joy", NEOGEO_JOY_AC)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( neogeo_arc_edge_fixed )
- SLOT_INTERFACE("joy", NEOGEO_JOY_AC)
- SLOT_INTERFACE("dial", NEOGEO_DIAL)
- SLOT_INTERFACE("irrmaze", NEOGEO_IRRMAZE)
- SLOT_INTERFACE("kiz4p", NEOGEO_KIZ4P)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( neogeo_arc_pin15 )
- SLOT_INTERFACE("mahjong", NEOGEO_MJCTRL_AC)
- SLOT_INTERFACE("joy", NEOGEO_JOY)
-SLOT_INTERFACE_END
+void neogeo_controls(device_slot_interface &device)
+{
+ device.option_add("joy", NEOGEO_JOY);
+ device.option_add("mahjong", NEOGEO_MJCTRL);
+}
+
+void neogeo_arc_edge(device_slot_interface &device)
+{
+ device.option_add("joy", NEOGEO_JOY_AC);
+}
+
+void neogeo_arc_edge_fixed(device_slot_interface &device)
+{
+ device.option_add("joy", NEOGEO_JOY_AC);
+ device.option_add("dial", NEOGEO_DIAL);
+ device.option_add("irrmaze", NEOGEO_IRRMAZE);
+ device.option_add("kiz4p", NEOGEO_KIZ4P);
+}
+
+void neogeo_arc_pin15(device_slot_interface &device)
+{
+ device.option_add("mahjong", NEOGEO_MJCTRL_AC);
+ device.option_add("joy", NEOGEO_JOY);
+}
diff --git a/src/devices/bus/neogeo_ctrl/ctrl.h b/src/devices/bus/neogeo_ctrl/ctrl.h
index ea133f30b79..aee534d61ad 100644
--- a/src/devices/bus/neogeo_ctrl/ctrl.h
+++ b/src/devices/bus/neogeo_ctrl/ctrl.h
@@ -118,10 +118,10 @@ DECLARE_DEVICE_TYPE(NEOGEO_CTRL_EDGE_CONNECTOR, neogeo_ctrl_edge_port_device)
-SLOT_INTERFACE_EXTERN( neogeo_controls );
-SLOT_INTERFACE_EXTERN( neogeo_arc_edge );
-SLOT_INTERFACE_EXTERN( neogeo_arc_edge_fixed );
-SLOT_INTERFACE_EXTERN( neogeo_arc_pin15 );
+void neogeo_controls(device_slot_interface &device);
+void neogeo_arc_edge(device_slot_interface &device);
+void neogeo_arc_edge_fixed(device_slot_interface &device);
+void neogeo_arc_pin15(device_slot_interface &device);
#endif // MAME_BUS_NEOGEO_CTRL_CTRL_H
diff --git a/src/devices/bus/nes/aladdin.cpp b/src/devices/bus/nes/aladdin.cpp
index 3ebab2fc90b..e9d81555a72 100644
--- a/src/devices/bus/nes/aladdin.cpp
+++ b/src/devices/bus/nes/aladdin.cpp
@@ -318,10 +318,11 @@ WRITE8_MEMBER(nes_aladdin_device::write_h)
// CART SLOT
//-------------------------------------------------
-static SLOT_INTERFACE_START(ade_cart)
- SLOT_INTERFACE_INTERNAL("algn", NES_ALGN_ROM)
- SLOT_INTERFACE_INTERNAL("algq", NES_ALGQ_ROM)
-SLOT_INTERFACE_END
+static void ade_cart(device_slot_interface &device)
+{
+ device.option_add_internal("algn", NES_ALGN_ROM);
+ device.option_add_internal("algq", NES_ALGQ_ROM);
+}
MACHINE_CONFIG_START(nes_aladdin_device::device_add_mconfig)
diff --git a/src/devices/bus/nes/datach.cpp b/src/devices/bus/nes/datach.cpp
index 7cb58980960..34d615c4504 100644
--- a/src/devices/bus/nes/datach.cpp
+++ b/src/devices/bus/nes/datach.cpp
@@ -362,10 +362,11 @@ WRITE8_MEMBER(nes_datach_device::write_h)
// BARCODE READER + CART SLOT + X24C02
//-------------------------------------------------
-static SLOT_INTERFACE_START(datach_cart)
- SLOT_INTERFACE_INTERNAL("datach_rom", NES_DATACH_ROM)
- SLOT_INTERFACE_INTERNAL("datach_ep1", NES_DATACH_24C01)
-SLOT_INTERFACE_END
+static void datach_cart(device_slot_interface &device)
+{
+ device.option_add_internal("datach_rom", NES_DATACH_ROM);
+ device.option_add_internal("datach_ep1", NES_DATACH_24C01);
+}
MACHINE_CONFIG_START(nes_datach_device::device_add_mconfig)
diff --git a/src/devices/bus/nes/karastudio.cpp b/src/devices/bus/nes/karastudio.cpp
index eefd7c5d17d..1b828001078 100644
--- a/src/devices/bus/nes/karastudio.cpp
+++ b/src/devices/bus/nes/karastudio.cpp
@@ -290,9 +290,10 @@ ioport_constructor nes_karaokestudio_device::device_input_ports() const
// CART SLOT
//-------------------------------------------------
-static SLOT_INTERFACE_START(karaoke_studio_cart)
- SLOT_INTERFACE_INTERNAL("ks_exp", NES_KSEXPANSION_ROM)
-SLOT_INTERFACE_END
+static void karaoke_studio_cart(device_slot_interface &device)
+{
+ device.option_add_internal("ks_exp", NES_KSEXPANSION_ROM);
+}
MACHINE_CONFIG_START(nes_karaokestudio_device::device_add_mconfig)
diff --git a/src/devices/bus/nes/nes_carts.cpp b/src/devices/bus/nes/nes_carts.cpp
index a2434621b4c..a4a3950b98d 100644
--- a/src/devices/bus/nes/nes_carts.cpp
+++ b/src/devices/bus/nes/nes_carts.cpp
@@ -64,370 +64,372 @@
#include "mmc3_clones.h"
-SLOT_INTERFACE_START(nes_cart)
+void nes_cart(device_slot_interface &device)
+{
// HROM, NROM, RROM, SROM & STROM
- SLOT_INTERFACE_INTERNAL("nrom", NES_NROM)
+ device.option_add_internal("nrom", NES_NROM);
// Nintendo Family BASIC pcb (NROM + 2K or 4K WRAM)
- SLOT_INTERFACE_INTERNAL("hvc_basic", NES_FCBASIC)
+ device.option_add_internal("hvc_basic", NES_FCBASIC);
// Extended NROM-368 board (NROM with 46K PRG)
- SLOT_INTERFACE_INTERNAL("nrom368", NES_NROM368)
+ device.option_add_internal("nrom368", NES_NROM368);
// Game Genie
- SLOT_INTERFACE_INTERNAL("nrom_gg", NES_GGENIE)
+ device.option_add_internal("nrom_gg", NES_GGENIE);
// UNROM/UOROM
- SLOT_INTERFACE_INTERNAL("uxrom", NES_UXROM)
- SLOT_INTERFACE_INTERNAL("unrom_cc", NES_UXROM_CC)
+ device.option_add_internal("uxrom", NES_UXROM);
+ device.option_add_internal("unrom_cc", NES_UXROM_CC);
// CNROM
- SLOT_INTERFACE_INTERNAL("cnrom", NES_CNROM)
+ device.option_add_internal("cnrom", NES_CNROM);
// Bandai PT-554 (CNROM boards + special audio chip, used by Aerobics Studio)
- SLOT_INTERFACE_INTERNAL("bandai_pt554", NES_BANDAI_PT554)
+ device.option_add_internal("bandai_pt554", NES_BANDAI_PT554);
// CPROM
- SLOT_INTERFACE_INTERNAL("cprom", NES_CPROM)
+ device.option_add_internal("cprom", NES_CPROM);
// AMROM, ANROM, AOROM
- SLOT_INTERFACE_INTERNAL("axrom", NES_AXROM)
+ device.option_add_internal("axrom", NES_AXROM);
// PxROM
- SLOT_INTERFACE_INTERNAL("pxrom", NES_PXROM)
+ device.option_add_internal("pxrom", NES_PXROM);
// FxROM
- SLOT_INTERFACE_INTERNAL("fxrom", NES_FXROM)
+ device.option_add_internal("fxrom", NES_FXROM);
// BNROM
- SLOT_INTERFACE_INTERNAL("bnrom", NES_BXROM)
+ device.option_add_internal("bnrom", NES_BXROM);
// GNROM & MHROM
- SLOT_INTERFACE_INTERNAL("gxrom", NES_GXROM)
+ device.option_add_internal("gxrom", NES_GXROM);
// UN1ROM
- SLOT_INTERFACE_INTERNAL("un1rom", NES_UN1ROM)
+ device.option_add_internal("un1rom", NES_UN1ROM);
// SxROM
- SLOT_INTERFACE_INTERNAL("sxrom", NES_SXROM)
- SLOT_INTERFACE_INTERNAL("sorom", NES_SOROM)
- SLOT_INTERFACE_INTERNAL("sxrom_a", NES_SXROM_A) // in MMC1-A PRG RAM is always enabled
- SLOT_INTERFACE_INTERNAL("sorom_a", NES_SOROM_A) // in MMC1-A PRG RAM is always enabled
+ device.option_add_internal("sxrom", NES_SXROM);
+ device.option_add_internal("sorom", NES_SOROM);
+ device.option_add_internal("sxrom_a", NES_SXROM_A); // in MMC1-A PRG RAM is always enabled
+ device.option_add_internal("sorom_a", NES_SOROM_A); // in MMC1-A PRG RAM is always enabled
// TxROM
- SLOT_INTERFACE_INTERNAL("txrom", NES_TXROM)
+ device.option_add_internal("txrom", NES_TXROM);
// HKROM
- SLOT_INTERFACE_INTERNAL("hkrom", NES_HKROM)
+ device.option_add_internal("hkrom", NES_HKROM);
// TQROM
- SLOT_INTERFACE_INTERNAL("tqrom", NES_TQROM)
+ device.option_add_internal("tqrom", NES_TQROM);
// TxSROM
- SLOT_INTERFACE_INTERNAL("txsrom", NES_TXSROM)
+ device.option_add_internal("txsrom", NES_TXSROM);
// ExROM
- SLOT_INTERFACE_INTERNAL("exrom", NES_EXROM)
+ device.option_add_internal("exrom", NES_EXROM);
// RAM expansion + Disk System add-on
- SLOT_INTERFACE_INTERNAL("disksys", NES_DISKSYS)
+ device.option_add_internal("disksys", NES_DISKSYS);
// Nintendo Custom boards
- SLOT_INTERFACE_INTERNAL("pal_zz", NES_ZZ_PCB)
- SLOT_INTERFACE_INTERNAL("nes_qj", NES_QJ_PCB)
- SLOT_INTERFACE_INTERNAL("nes_event", NES_EVENT)
+ device.option_add_internal("pal_zz", NES_ZZ_PCB);
+ device.option_add_internal("nes_qj", NES_QJ_PCB);
+ device.option_add_internal("nes_event", NES_EVENT);
// Discrete Components boards
// IC_74x139x74
- SLOT_INTERFACE_INTERNAL("discrete_74x139", NES_74X139X74)
+ device.option_add_internal("discrete_74x139", NES_74X139X74);
// IC_74x377
- SLOT_INTERFACE_INTERNAL("discrete_74x377", NES_74X377)
+ device.option_add_internal("discrete_74x377", NES_74X377);
// Discrete board IC_74x161x161x32
- SLOT_INTERFACE_INTERNAL("discrete_74x161", NES_74X161X161X32)
+ device.option_add_internal("discrete_74x161", NES_74X161X161X32);
// Discrete board IC_74x161x138
- SLOT_INTERFACE_INTERNAL("bitcorp_dis", NES_74X161X138)
+ device.option_add_internal("bitcorp_dis", NES_74X161X138);
// Bandai boards
- SLOT_INTERFACE_INTERNAL("lz93d50", NES_LZ93D50)
- SLOT_INTERFACE_INTERNAL("lz93d50_ep1", NES_LZ93D50_24C01)
- SLOT_INTERFACE_INTERNAL("lz93d50_ep2", NES_LZ93D50_24C02)
- SLOT_INTERFACE_INTERNAL("fcg", NES_FCG)
- SLOT_INTERFACE_INTERNAL("fjump2", NES_FJUMP2)
- SLOT_INTERFACE_INTERNAL("datach", NES_DATACH)
- SLOT_INTERFACE_INTERNAL("karastudio", NES_KARAOKESTUDIO)
- SLOT_INTERFACE_INTERNAL("oekakids", NES_OEKAKIDS)
+ device.option_add_internal("lz93d50", NES_LZ93D50);
+ device.option_add_internal("lz93d50_ep1", NES_LZ93D50_24C01);
+ device.option_add_internal("lz93d50_ep2", NES_LZ93D50_24C02);
+ device.option_add_internal("fcg", NES_FCG);
+ device.option_add_internal("fjump2", NES_FJUMP2);
+ device.option_add_internal("datach", NES_DATACH);
+ device.option_add_internal("karastudio", NES_KARAOKESTUDIO);
+ device.option_add_internal("oekakids", NES_OEKAKIDS);
// Irem boards
- SLOT_INTERFACE_INTERNAL("g101", NES_G101)
- SLOT_INTERFACE_INTERNAL("lrog017", NES_LROG017)
- SLOT_INTERFACE_INTERNAL("h3001", NES_H3001)
- SLOT_INTERFACE_INTERNAL("holydivr", NES_HOLYDIVR)
- SLOT_INTERFACE_INTERNAL("tam_s1", NES_TAM_S1)
+ device.option_add_internal("g101", NES_G101);
+ device.option_add_internal("lrog017", NES_LROG017);
+ device.option_add_internal("h3001", NES_H3001);
+ device.option_add_internal("holydivr", NES_HOLYDIVR);
+ device.option_add_internal("tam_s1", NES_TAM_S1);
// Jaleco boards
- SLOT_INTERFACE_INTERNAL("jf11", NES_JF11)
- SLOT_INTERFACE_INTERNAL("jf13", NES_JF13)
- SLOT_INTERFACE_INTERNAL("jf16", NES_JF16)
- SLOT_INTERFACE_INTERNAL("jf17", NES_JF17)
- SLOT_INTERFACE_INTERNAL("jf17pcm", NES_JF17_ADPCM)
- SLOT_INTERFACE_INTERNAL("jf19", NES_JF19)
- SLOT_INTERFACE_INTERNAL("jf19pcm", NES_JF19_ADPCM)
- SLOT_INTERFACE_INTERNAL("ss88006", NES_SS88006)
- SLOT_INTERFACE_INTERNAL("jf23", NES_JF23)
- SLOT_INTERFACE_INTERNAL("jf24", NES_JF24)
- SLOT_INTERFACE_INTERNAL("jf29", NES_JF29)
- SLOT_INTERFACE_INTERNAL("jf33", NES_JF33)
+ device.option_add_internal("jf11", NES_JF11);
+ device.option_add_internal("jf13", NES_JF13);
+ device.option_add_internal("jf16", NES_JF16);
+ device.option_add_internal("jf17", NES_JF17);
+ device.option_add_internal("jf17pcm", NES_JF17_ADPCM);
+ device.option_add_internal("jf19", NES_JF19);
+ device.option_add_internal("jf19pcm", NES_JF19_ADPCM);
+ device.option_add_internal("ss88006", NES_SS88006);
+ device.option_add_internal("jf23", NES_JF23);
+ device.option_add_internal("jf24", NES_JF24);
+ device.option_add_internal("jf29", NES_JF29);
+ device.option_add_internal("jf33", NES_JF33);
// Konami boards
- SLOT_INTERFACE_INTERNAL("vrc1", NES_VRC1)
- SLOT_INTERFACE_INTERNAL("vrc2", NES_VRC2)
- SLOT_INTERFACE_INTERNAL("vrc3", NES_VRC3)
- SLOT_INTERFACE_INTERNAL("vrc4", NES_VRC4)
- SLOT_INTERFACE_INTERNAL("vrc6", NES_VRC6)
- SLOT_INTERFACE_INTERNAL("vrc7", NES_VRC7)
+ device.option_add_internal("vrc1", NES_VRC1);
+ device.option_add_internal("vrc2", NES_VRC2);
+ device.option_add_internal("vrc3", NES_VRC3);
+ device.option_add_internal("vrc4", NES_VRC4);
+ device.option_add_internal("vrc6", NES_VRC6);
+ device.option_add_internal("vrc7", NES_VRC7);
// Namcot boards
- SLOT_INTERFACE_INTERNAL("namcot_163", NES_NAMCOT163)
- SLOT_INTERFACE_INTERNAL("namcot_175", NES_NAMCOT175)
- SLOT_INTERFACE_INTERNAL("namcot_340", NES_NAMCOT340)
- SLOT_INTERFACE_INTERNAL("namcot_3433", NES_NAMCOT3433) // DxROM is a Nintendo board for US versions of the 3433/3443 games
- SLOT_INTERFACE_INTERNAL("namcot_3425", NES_NAMCOT3425)
- SLOT_INTERFACE_INTERNAL("namcot_3446", NES_NAMCOT3446)
+ device.option_add_internal("namcot_163", NES_NAMCOT163);
+ device.option_add_internal("namcot_175", NES_NAMCOT175);
+ device.option_add_internal("namcot_340", NES_NAMCOT340);
+ device.option_add_internal("namcot_3433", NES_NAMCOT3433); // DxROM is a Nintendo board for US versions of the 3433/3443 games
+ device.option_add_internal("namcot_3425", NES_NAMCOT3425);
+ device.option_add_internal("namcot_3446", NES_NAMCOT3446);
// Sunsoft boards
- SLOT_INTERFACE_INTERNAL("sunsoft1", NES_SUNSOFT_1)
- SLOT_INTERFACE_INTERNAL("sunsoft2", NES_SUNSOFT_2)
- SLOT_INTERFACE_INTERNAL("sunsoft3", NES_SUNSOFT_3)
- SLOT_INTERFACE_INTERNAL("sunsoft4", NES_SUNSOFT_4)
- SLOT_INTERFACE_INTERNAL("sunsoft_dcs", NES_SUNSOFT_DCS)
- SLOT_INTERFACE_INTERNAL("sunsoft_fme7", NES_SUNSOFT_FME7) // JxROM is a Nintendo board for US versions of the Sunsoft FME7 games
- SLOT_INTERFACE_INTERNAL("sunsoft5a", NES_SUNSOFT_5)
- SLOT_INTERFACE_INTERNAL("sunsoft5b", NES_SUNSOFT_5)
+ device.option_add_internal("sunsoft1", NES_SUNSOFT_1);
+ device.option_add_internal("sunsoft2", NES_SUNSOFT_2);
+ device.option_add_internal("sunsoft3", NES_SUNSOFT_3);
+ device.option_add_internal("sunsoft4", NES_SUNSOFT_4);
+ device.option_add_internal("sunsoft_dcs", NES_SUNSOFT_DCS);
+ device.option_add_internal("sunsoft_fme7", NES_SUNSOFT_FME7); // JxROM is a Nintendo board for US versions of the Sunsoft FME7 games
+ device.option_add_internal("sunsoft5a", NES_SUNSOFT_5);
+ device.option_add_internal("sunsoft5b", NES_SUNSOFT_5);
// Taito boards
- SLOT_INTERFACE_INTERNAL("tc0190fmc", NES_TC0190FMC)
- SLOT_INTERFACE_INTERNAL("tc0190fmcp", NES_TC0190FMC_PAL16R4)
- SLOT_INTERFACE_INTERNAL("tc0350fmr", NES_TC0190FMC)
- SLOT_INTERFACE_INTERNAL("x1_005", NES_X1_005) // two variants exist, depending on pin17 & pin31 connections
- SLOT_INTERFACE_INTERNAL("x1_017", NES_X1_017)
+ device.option_add_internal("tc0190fmc", NES_TC0190FMC);
+ device.option_add_internal("tc0190fmcp", NES_TC0190FMC_PAL16R4);
+ device.option_add_internal("tc0350fmr", NES_TC0190FMC);
+ device.option_add_internal("x1_005", NES_X1_005); // two variants exist, depending on pin17 & pin31 connections
+ device.option_add_internal("x1_017", NES_X1_017);
// Misc pirate boards (by AVE, Camerica, C&E, Nanjing, NTDEC, JY Company, Sachen, Tengen, TXC, Waixing, Henggendianzi, etc.)
- SLOT_INTERFACE_INTERNAL("nina001", NES_NINA001)
- SLOT_INTERFACE_INTERNAL("nina006", NES_NINA006)
- SLOT_INTERFACE_INTERNAL("bf9093", NES_BF9093)
- SLOT_INTERFACE_INTERNAL("bf9096", NES_BF9096)
- SLOT_INTERFACE_INTERNAL("goldenfive", NES_GOLDEN5)
- SLOT_INTERFACE_INTERNAL("ade", NES_ALADDIN)
- SLOT_INTERFACE_INTERNAL("cne_decathl", NES_CNE_DECATHL)
- SLOT_INTERFACE_INTERNAL("cne_fsb", NES_CNE_FSB)
- SLOT_INTERFACE_INTERNAL("cne_shlz", NES_CNE_SHLZ)
- SLOT_INTERFACE_INTERNAL("nanjing", NES_NANJING) // mapper 163
- SLOT_INTERFACE_INTERNAL("ntdec_asder", NES_NTDEC_ASDER) // mapper 112
- SLOT_INTERFACE_INTERNAL("ntdec_fh", NES_NTDEC_FH) // mapper 193
- SLOT_INTERFACE_INTERNAL("jyc_a", NES_JY_TYPEA) // mapper 90
- SLOT_INTERFACE_INTERNAL("jyc_b", NES_JY_TYPEB) // mapper 211
- SLOT_INTERFACE_INTERNAL("jyc_c", NES_JY_TYPEC) // mapper 209
- SLOT_INTERFACE_INTERNAL("sa009", NES_SACHEN_SA009)
- SLOT_INTERFACE_INTERNAL("sa0036", NES_SACHEN_SA0036)
- SLOT_INTERFACE_INTERNAL("sa0037", NES_SACHEN_SA0037)
- SLOT_INTERFACE_INTERNAL("sa72007", NES_SACHEN_SA72007)
- SLOT_INTERFACE_INTERNAL("sa72008", NES_SACHEN_SA72008)
- SLOT_INTERFACE_INTERNAL("tca01", NES_SACHEN_TCA01)
- SLOT_INTERFACE_INTERNAL("s8259a", NES_SACHEN_8259A)
- SLOT_INTERFACE_INTERNAL("s8259b", NES_SACHEN_8259B)
- SLOT_INTERFACE_INTERNAL("s8259c", NES_SACHEN_8259C)
- SLOT_INTERFACE_INTERNAL("s8259d", NES_SACHEN_8259D)
- SLOT_INTERFACE_INTERNAL("s74x374", NES_SACHEN_74X374)
- SLOT_INTERFACE_INTERNAL("s74x374a", NES_SACHEN_74X374_ALT) /* FIXME: Made up boards some different handling */
- SLOT_INTERFACE_INTERNAL("tcu01", NES_SACHEN_TCU01)
- SLOT_INTERFACE_INTERNAL("tcu02", NES_SACHEN_TCU02)
- SLOT_INTERFACE_INTERNAL("tengen_800008", NES_TENGEN_800008) /* FIXME: Is this the same as CNROM? */
- SLOT_INTERFACE_INTERNAL("tengen_800032", NES_TENGEN_800032)
- SLOT_INTERFACE_INTERNAL("tengen_800037", NES_TENGEN_800037)
- SLOT_INTERFACE_INTERNAL("txc_22211", NES_TXC_22211)
- SLOT_INTERFACE_INTERNAL("txc_dumarc", NES_TXC_DUMARACING)
- SLOT_INTERFACE_INTERNAL("txc_mjblock", NES_TXC_MJBLOCK)
- SLOT_INTERFACE_INTERNAL("txc_strikew", NES_TXC_STRIKEW)
- SLOT_INTERFACE_INTERNAL("txc_commandos", NES_TXC_COMMANDOS)
- SLOT_INTERFACE_INTERNAL("waixing_a", NES_WAIXING_A)
- SLOT_INTERFACE_INTERNAL("waixing_a1", NES_WAIXING_A1) /* FIXME: Made up boards the different CHRRAM banks (see Ji Jia Zhan Shi) */
- SLOT_INTERFACE_INTERNAL("waixing_b", NES_WAIXING_B)
- SLOT_INTERFACE_INTERNAL("waixing_c", NES_WAIXING_C)
- SLOT_INTERFACE_INTERNAL("waixing_d", NES_WAIXING_D)
- SLOT_INTERFACE_INTERNAL("waixing_e", NES_WAIXING_E)
- SLOT_INTERFACE_INTERNAL("waixing_f", NES_WAIXING_F)
- SLOT_INTERFACE_INTERNAL("waixing_g", NES_WAIXING_G)
- SLOT_INTERFACE_INTERNAL("waixing_h", NES_WAIXING_H)
- SLOT_INTERFACE_INTERNAL("waixing_h1", NES_WAIXING_H1) /* FIXME: Made up boards the different WRAM protect banks (see Shen Mi Jin San Jiao) */
- SLOT_INTERFACE_INTERNAL("waixing_i", NES_WAIXING_I)
- SLOT_INTERFACE_INTERNAL("waixing_j", NES_WAIXING_J)
- SLOT_INTERFACE_INTERNAL("waixing_sgz", NES_WAIXING_SGZ)
- SLOT_INTERFACE_INTERNAL("waixing_sgzlz", NES_WAIXING_SGZLZ)
- SLOT_INTERFACE_INTERNAL("waixing_sec", NES_WAIXING_SEC)
- SLOT_INTERFACE_INTERNAL("waixing_ffv", NES_WAIXING_FFV)
- SLOT_INTERFACE_INTERNAL("waixing_wxzs", NES_WAIXING_WXZS)
- SLOT_INTERFACE_INTERNAL("waixing_wxzs2", NES_WAIXING_WXZS2)
- SLOT_INTERFACE_INTERNAL("waixing_dq8", NES_WAIXING_DQ8)
- SLOT_INTERFACE_INTERNAL("waixing_sh2", NES_WAIXING_SH2)
- SLOT_INTERFACE_INTERNAL("fs304", NES_WAIXING_FS304) // used in Zelda 3 by Waixing
- SLOT_INTERFACE_INTERNAL("cony", NES_CONY)
- SLOT_INTERFACE_INTERNAL("yoko", NES_YOKO)
- SLOT_INTERFACE_INTERNAL("hengg_srich", NES_HENGG_SRICH)
- SLOT_INTERFACE_INTERNAL("hengg_xhzs", NES_HENGG_XHZS)
- SLOT_INTERFACE_INTERNAL("hengg_shjy3", NES_HENGG_SHJY3) // mapper 253
- SLOT_INTERFACE_INTERNAL("hes", NES_HES)
- SLOT_INTERFACE_INTERNAL("hosenkan", NES_HOSENKAN)
- SLOT_INTERFACE_INTERNAL("ks7058", NES_KS7058)
- SLOT_INTERFACE_INTERNAL("ks202", NES_KS202) // mapper 56
- SLOT_INTERFACE_INTERNAL("ks7022", NES_KS7022)// mapper 175
- SLOT_INTERFACE_INTERNAL("ks7017", NES_KS7017)
- SLOT_INTERFACE_INTERNAL("ks7032", NES_KS7032) // mapper 142
- SLOT_INTERFACE_INTERNAL("ks7012", NES_KS7012) // used in Zanac (FDS Conversion)
- SLOT_INTERFACE_INTERNAL("ks7013b", NES_KS7013B) // used in Highway Star (FDS Conversion)
- SLOT_INTERFACE_INTERNAL("ks7031", NES_KS7031) // used in Dracula II (FDS Conversion)
- SLOT_INTERFACE_INTERNAL("ks7016", NES_KS7016) // used in Exciting Basket (FDS Conversion)
- SLOT_INTERFACE_INTERNAL("ks7037", NES_KS7037) // used in Metroid (FDS Conversion)
- SLOT_INTERFACE_INTERNAL("gs2015", NES_GS2015)
- SLOT_INTERFACE_INTERNAL("gs2004", NES_GS2004)
- SLOT_INTERFACE_INTERNAL("gs2013", NES_GS2013)
- SLOT_INTERFACE_INTERNAL("tf9in1", NES_TF9IN1)
- SLOT_INTERFACE_INTERNAL("3dblock", NES_3DBLOCK) // NROM + IRQ?
- SLOT_INTERFACE_INTERNAL("racermate", NES_RACERMATE) // mapper 168
- SLOT_INTERFACE_INTERNAL("agci_50282", NES_AGCI_50282)
- SLOT_INTERFACE_INTERNAL("dreamtech01", NES_DREAMTECH01)
- SLOT_INTERFACE_INTERNAL("fukutake", NES_FUKUTAKE)
- SLOT_INTERFACE_INTERNAL("futuremedia", NES_FUTUREMEDIA)
- SLOT_INTERFACE_INTERNAL("magicseries", NES_MAGSERIES)
- SLOT_INTERFACE_INTERNAL("daou_306", NES_DAOU306)
- SLOT_INTERFACE_INTERNAL("subor0", NES_SUBOR0)
- SLOT_INTERFACE_INTERNAL("subor1", NES_SUBOR1)
- SLOT_INTERFACE_INTERNAL("subor2", NES_SUBOR2)
- SLOT_INTERFACE_INTERNAL("cc21", NES_CC21)
- SLOT_INTERFACE_INTERNAL("xiaozy", NES_XIAOZY)
- SLOT_INTERFACE_INTERNAL("edu2k", NES_EDU2K)
- SLOT_INTERFACE_INTERNAL("t230", NES_T230)
- SLOT_INTERFACE_INTERNAL("mk2", NES_MK2)
- SLOT_INTERFACE_INTERNAL("unl_whero", NES_WHERO) // mapper 27
- SLOT_INTERFACE_INTERNAL("unl_43272", NES_43272) // used in Gaau Hok Gwong Cheung
- SLOT_INTERFACE_INTERNAL("tf1201", NES_TF1201)
- SLOT_INTERFACE_INTERNAL("unl_cfight", NES_CITYFIGHT) // used by City Fighter IV
- SLOT_INTERFACE_INTERNAL("zemina", NES_ZEMINA) // mapper 190 - Magic Kid GooGoo
+ device.option_add_internal("nina001", NES_NINA001);
+ device.option_add_internal("nina006", NES_NINA006);
+ device.option_add_internal("bf9093", NES_BF9093);
+ device.option_add_internal("bf9096", NES_BF9096);
+ device.option_add_internal("goldenfive", NES_GOLDEN5);
+ device.option_add_internal("ade", NES_ALADDIN);
+ device.option_add_internal("cne_decathl", NES_CNE_DECATHL);
+ device.option_add_internal("cne_fsb", NES_CNE_FSB);
+ device.option_add_internal("cne_shlz", NES_CNE_SHLZ);
+ device.option_add_internal("nanjing", NES_NANJING); // mapper 163
+ device.option_add_internal("ntdec_asder", NES_NTDEC_ASDER); // mapper 112
+ device.option_add_internal("ntdec_fh", NES_NTDEC_FH); // mapper 193
+ device.option_add_internal("jyc_a", NES_JY_TYPEA); // mapper 90
+ device.option_add_internal("jyc_b", NES_JY_TYPEB); // mapper 211
+ device.option_add_internal("jyc_c", NES_JY_TYPEC); // mapper 209
+ device.option_add_internal("sa009", NES_SACHEN_SA009);
+ device.option_add_internal("sa0036", NES_SACHEN_SA0036);
+ device.option_add_internal("sa0037", NES_SACHEN_SA0037);
+ device.option_add_internal("sa72007", NES_SACHEN_SA72007);
+ device.option_add_internal("sa72008", NES_SACHEN_SA72008);
+ device.option_add_internal("tca01", NES_SACHEN_TCA01);
+ device.option_add_internal("s8259a", NES_SACHEN_8259A);
+ device.option_add_internal("s8259b", NES_SACHEN_8259B);
+ device.option_add_internal("s8259c", NES_SACHEN_8259C);
+ device.option_add_internal("s8259d", NES_SACHEN_8259D);
+ device.option_add_internal("s74x374", NES_SACHEN_74X374);
+ device.option_add_internal("s74x374a", NES_SACHEN_74X374_ALT); // FIXME: Made up boards some different handling
+ device.option_add_internal("tcu01", NES_SACHEN_TCU01);
+ device.option_add_internal("tcu02", NES_SACHEN_TCU02);
+ device.option_add_internal("tengen_800008", NES_TENGEN_800008); // FIXME: Is this the same as CNROM?
+ device.option_add_internal("tengen_800032", NES_TENGEN_800032);
+ device.option_add_internal("tengen_800037", NES_TENGEN_800037);
+ device.option_add_internal("txc_22211", NES_TXC_22211);
+ device.option_add_internal("txc_dumarc", NES_TXC_DUMARACING);
+ device.option_add_internal("txc_mjblock", NES_TXC_MJBLOCK);
+ device.option_add_internal("txc_strikew", NES_TXC_STRIKEW);
+ device.option_add_internal("txc_commandos", NES_TXC_COMMANDOS);
+ device.option_add_internal("waixing_a", NES_WAIXING_A);
+ device.option_add_internal("waixing_a1", NES_WAIXING_A1); // FIXME: Made up boards the different CHRRAM banks (see Ji Jia Zhan Shi)
+ device.option_add_internal("waixing_b", NES_WAIXING_B);
+ device.option_add_internal("waixing_c", NES_WAIXING_C);
+ device.option_add_internal("waixing_d", NES_WAIXING_D);
+ device.option_add_internal("waixing_e", NES_WAIXING_E);
+ device.option_add_internal("waixing_f", NES_WAIXING_F);
+ device.option_add_internal("waixing_g", NES_WAIXING_G);
+ device.option_add_internal("waixing_h", NES_WAIXING_H);
+ device.option_add_internal("waixing_h1", NES_WAIXING_H1); // FIXME: Made up boards the different WRAM protect banks (see Shen Mi Jin San Jiao)
+ device.option_add_internal("waixing_i", NES_WAIXING_I);
+ device.option_add_internal("waixing_j", NES_WAIXING_J);
+ device.option_add_internal("waixing_sgz", NES_WAIXING_SGZ);
+ device.option_add_internal("waixing_sgzlz", NES_WAIXING_SGZLZ);
+ device.option_add_internal("waixing_sec", NES_WAIXING_SEC);
+ device.option_add_internal("waixing_ffv", NES_WAIXING_FFV);
+ device.option_add_internal("waixing_wxzs", NES_WAIXING_WXZS);
+ device.option_add_internal("waixing_wxzs2", NES_WAIXING_WXZS2);
+ device.option_add_internal("waixing_dq8", NES_WAIXING_DQ8);
+ device.option_add_internal("waixing_sh2", NES_WAIXING_SH2);
+ device.option_add_internal("fs304", NES_WAIXING_FS304); // used in Zelda 3 by Waixing
+ device.option_add_internal("cony", NES_CONY);
+ device.option_add_internal("yoko", NES_YOKO);
+ device.option_add_internal("hengg_srich", NES_HENGG_SRICH);
+ device.option_add_internal("hengg_xhzs", NES_HENGG_XHZS);
+ device.option_add_internal("hengg_shjy3", NES_HENGG_SHJY3); // mapper 253
+ device.option_add_internal("hes", NES_HES);
+ device.option_add_internal("hosenkan", NES_HOSENKAN);
+ device.option_add_internal("ks7058", NES_KS7058);
+ device.option_add_internal("ks202", NES_KS202); // mapper 56
+ device.option_add_internal("ks7022", NES_KS7022); // mapper 175
+ device.option_add_internal("ks7017", NES_KS7017);
+ device.option_add_internal("ks7032", NES_KS7032); // mapper 142
+ device.option_add_internal("ks7012", NES_KS7012); // used in Zanac (FDS Conversion);
+ device.option_add_internal("ks7013b", NES_KS7013B); // used in Highway Star (FDS Conversion);
+ device.option_add_internal("ks7031", NES_KS7031); // used in Dracula II (FDS Conversion);
+ device.option_add_internal("ks7016", NES_KS7016); // used in Exciting Basket (FDS Conversion);
+ device.option_add_internal("ks7037", NES_KS7037); // used in Metroid (FDS Conversion);
+ device.option_add_internal("gs2015", NES_GS2015);
+ device.option_add_internal("gs2004", NES_GS2004);
+ device.option_add_internal("gs2013", NES_GS2013);
+ device.option_add_internal("tf9in1", NES_TF9IN1);
+ device.option_add_internal("3dblock", NES_3DBLOCK); // NROM + IRQ?
+ device.option_add_internal("racermate", NES_RACERMATE); // mapper 168
+ device.option_add_internal("agci_50282", NES_AGCI_50282);
+ device.option_add_internal("dreamtech01", NES_DREAMTECH01);
+ device.option_add_internal("fukutake", NES_FUKUTAKE);
+ device.option_add_internal("futuremedia", NES_FUTUREMEDIA);
+ device.option_add_internal("magicseries", NES_MAGSERIES);
+ device.option_add_internal("daou_306", NES_DAOU306);
+ device.option_add_internal("subor0", NES_SUBOR0);
+ device.option_add_internal("subor1", NES_SUBOR1);
+ device.option_add_internal("subor2", NES_SUBOR2);
+ device.option_add_internal("cc21", NES_CC21);
+ device.option_add_internal("xiaozy", NES_XIAOZY);
+ device.option_add_internal("edu2k", NES_EDU2K);
+ device.option_add_internal("t230", NES_T230);
+ device.option_add_internal("mk2", NES_MK2);
+ device.option_add_internal("unl_whero", NES_WHERO); // mapper 27
+ device.option_add_internal("unl_43272", NES_43272); // used in Gaau Hok Gwong Cheung
+ device.option_add_internal("tf1201", NES_TF1201);
+ device.option_add_internal("unl_cfight", NES_CITYFIGHT); // used by City Fighter IV
+ device.option_add_internal("zemina", NES_ZEMINA); // mapper 190 - Magic Kid GooGoo
// misc bootleg boards
- SLOT_INTERFACE_INTERNAL("ax5705", NES_AX5705)
- SLOT_INTERFACE_INTERNAL("sc127", NES_SC127)
- SLOT_INTERFACE_INTERNAL("mariobaby", NES_MARIOBABY)
- SLOT_INTERFACE_INTERNAL("asnicol", NES_ASN)
- SLOT_INTERFACE_INTERNAL("smb3pirate", NES_SMB3PIRATE)
- SLOT_INTERFACE_INTERNAL("btl_dninja", NES_BTL_DNINJA)
- SLOT_INTERFACE_INTERNAL("whirl2706", NES_WHIRLWIND_2706)
- SLOT_INTERFACE_INTERNAL("smb2j", NES_SMB2J)
- SLOT_INTERFACE_INTERNAL("smb2ja", NES_SMB2JA)
- SLOT_INTERFACE_INTERNAL("smb2jb", NES_SMB2JB)
- SLOT_INTERFACE_INTERNAL("09034a", NES_09034A)
- SLOT_INTERFACE_INTERNAL("tobidase", NES_TOBIDASE) // mapper 120
- SLOT_INTERFACE_INTERNAL("mmalee2", NES_MMALEE) // mapper 55?
- SLOT_INTERFACE_INTERNAL("unl_2708", NES_2708) // mapper 103
- SLOT_INTERFACE_INTERNAL("unl_lh32", NES_LH32) // used by Monty no Doki Doki Daidassou FDS conversion
- SLOT_INTERFACE_INTERNAL("unl_lh10", NES_LH10) // used in Fuuun Shaolin Kyo (FDS Conversion)
- SLOT_INTERFACE_INTERNAL("unl_lh53", NES_LH53) // used in Nazo no Murasamejou (FDS Conversion)
- SLOT_INTERFACE_INTERNAL("unl_ac08", NES_AC08) // used by Green Beret FDS conversion
- SLOT_INTERFACE_INTERNAL("unl_bb", NES_UNL_BB) // used by a few FDS conversions
- SLOT_INTERFACE_INTERNAL("sgpipe", NES_SHUIGUAN) // mapper 183
- SLOT_INTERFACE_INTERNAL("rt01", NES_RT01)
+ device.option_add_internal("ax5705", NES_AX5705);
+ device.option_add_internal("sc127", NES_SC127);
+ device.option_add_internal("mariobaby", NES_MARIOBABY);
+ device.option_add_internal("asnicol", NES_ASN);
+ device.option_add_internal("smb3pirate", NES_SMB3PIRATE);
+ device.option_add_internal("btl_dninja", NES_BTL_DNINJA);
+ device.option_add_internal("whirl2706", NES_WHIRLWIND_2706);
+ device.option_add_internal("smb2j", NES_SMB2J);
+ device.option_add_internal("smb2ja", NES_SMB2JA);
+ device.option_add_internal("smb2jb", NES_SMB2JB);
+ device.option_add_internal("09034a", NES_09034A);
+ device.option_add_internal("tobidase", NES_TOBIDASE); // mapper 120
+ device.option_add_internal("mmalee2", NES_MMALEE); // mapper 55?
+ device.option_add_internal("unl_2708", NES_2708); // mapper 103
+ device.option_add_internal("unl_lh32", NES_LH32); // used by Monty no Doki Doki Daidassou FDS conversion
+ device.option_add_internal("unl_lh10", NES_LH10); // used in Fuuun Shaolin Kyo (FDS Conversion);
+ device.option_add_internal("unl_lh53", NES_LH53); // used in Nazo no Murasamejou (FDS Conversion);
+ device.option_add_internal("unl_ac08", NES_AC08); // used by Green Beret FDS conversion
+ device.option_add_internal("unl_bb", NES_UNL_BB); // used by a few FDS conversions
+ device.option_add_internal("sgpipe", NES_SHUIGUAN); // mapper 183
+ device.option_add_internal("rt01", NES_RT01);
// misc MMC3 clone boards
- SLOT_INTERFACE_INTERNAL("dbz5", NES_REX_DBZ5)
- SLOT_INTERFACE_INTERNAL("sl1632", NES_REX_SL1632)
- SLOT_INTERFACE_INTERNAL("somari", NES_SOMARI) // mapper 116
- SLOT_INTERFACE_INTERNAL("nitra", NES_NITRA)
- SLOT_INTERFACE_INTERNAL("ks7057", NES_KS7057) // mapper 196 alt (for Street Fighter VI / Fight Street VI)
- SLOT_INTERFACE_INTERNAL("sbros11", NES_SBROS11)
- SLOT_INTERFACE_INTERNAL("unl_malisb", NES_MALISB) // used by Super Mali Splash Bomb
- SLOT_INTERFACE_INTERNAL("family4646", NES_FAMILY4646)
- SLOT_INTERFACE_INTERNAL("pikay2k", NES_PIKAY2K) // mapper 254
- SLOT_INTERFACE_INTERNAL("8237", NES_8237)
- SLOT_INTERFACE_INTERNAL("8237a", NES_NROM) // UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("sg_lionk", NES_SG_LIONK)
- SLOT_INTERFACE_INTERNAL("sg_boog", NES_SG_BOOG)
- SLOT_INTERFACE_INTERNAL("kasing", NES_KASING)
- SLOT_INTERFACE_INTERNAL("kay", NES_KAY)
- SLOT_INTERFACE_INTERNAL("h2288", NES_H2288)
- SLOT_INTERFACE_INTERNAL("unl_6035052", NES_6035052) // mapper 238?
- SLOT_INTERFACE_INTERNAL("txc_tw", NES_TXC_TW)
- SLOT_INTERFACE_INTERNAL("kof97", NES_KOF97)
- SLOT_INTERFACE_INTERNAL("kof96", NES_KOF96)
- SLOT_INTERFACE_INTERNAL("sfight3", NES_SF3)
- SLOT_INTERFACE_INTERNAL("gouder", NES_GOUDER)
- SLOT_INTERFACE_INTERNAL("sa9602b", NES_SA9602B)
- SLOT_INTERFACE_INTERNAL("unl_shero", NES_SACHEN_SHERO)
+ device.option_add_internal("dbz5", NES_REX_DBZ5);
+ device.option_add_internal("sl1632", NES_REX_SL1632);
+ device.option_add_internal("somari", NES_SOMARI); // mapper 116
+ device.option_add_internal("nitra", NES_NITRA);
+ device.option_add_internal("ks7057", NES_KS7057); // mapper 196 alt (for Street Fighter VI / Fight Street VI);
+ device.option_add_internal("sbros11", NES_SBROS11);
+ device.option_add_internal("unl_malisb", NES_MALISB); // used by Super Mali Splash Bomb
+ device.option_add_internal("family4646", NES_FAMILY4646);
+ device.option_add_internal("pikay2k", NES_PIKAY2K); // mapper 254
+ device.option_add_internal("8237", NES_8237);
+ device.option_add_internal("8237a", NES_NROM); // UNSUPPORTED
+ device.option_add_internal("sg_lionk", NES_SG_LIONK);
+ device.option_add_internal("sg_boog", NES_SG_BOOG);
+ device.option_add_internal("kasing", NES_KASING);
+ device.option_add_internal("kay", NES_KAY);
+ device.option_add_internal("h2288", NES_H2288);
+ device.option_add_internal("unl_6035052", NES_6035052); // mapper 238?
+ device.option_add_internal("txc_tw", NES_TXC_TW);
+ device.option_add_internal("kof97", NES_KOF97);
+ device.option_add_internal("kof96", NES_KOF96);
+ device.option_add_internal("sfight3", NES_SF3);
+ device.option_add_internal("gouder", NES_GOUDER);
+ device.option_add_internal("sa9602b", NES_SA9602B);
+ device.option_add_internal("unl_shero", NES_SACHEN_SHERO);
// misc multigame cart boards
- SLOT_INTERFACE_INTERNAL("benshieng", NES_BENSHIENG)
- SLOT_INTERFACE_INTERNAL("action52", NES_ACTION52)
- SLOT_INTERFACE_INTERNAL("caltron6in1", NES_CALTRON6IN1)
- SLOT_INTERFACE_INTERNAL("maxi15", NES_MAXI15) // mapper 234
- SLOT_INTERFACE_INTERNAL("rumblestation", NES_RUMBLESTATION) // mapper 46
- SLOT_INTERFACE_INTERNAL("svision16", NES_SVISION16) // mapper 53
- SLOT_INTERFACE_INTERNAL("n625092", NES_N625092)
- SLOT_INTERFACE_INTERNAL("a65as", NES_A65AS)
- SLOT_INTERFACE_INTERNAL("t262", NES_T262)
- SLOT_INTERFACE_INTERNAL("novel1", NES_NOVEL1)
- SLOT_INTERFACE_INTERNAL("novel2", NES_NOVEL2) // mapper 213... same as BMC-NOVELDIAMOND9999999IN1 board?
- SLOT_INTERFACE_INTERNAL("studyngame", NES_STUDYNGAME) // mapper 39
- SLOT_INTERFACE_INTERNAL("sgun20in1", NES_SUPERGUN20IN1)
- SLOT_INTERFACE_INTERNAL("bmc_vt5201", NES_VT5201) // mapper 60 otherwise
- SLOT_INTERFACE_INTERNAL("bmc_d1038", NES_VT5201) // mapper 60?
- SLOT_INTERFACE_INTERNAL("810544c", NES_810544C)
- SLOT_INTERFACE_INTERNAL("ntd03", NES_NTD03)
- SLOT_INTERFACE_INTERNAL("bmc_gb63", NES_BMC_GB63)
- SLOT_INTERFACE_INTERNAL("bmc_gka", NES_BMC_GKA)
- SLOT_INTERFACE_INTERNAL("bmc_gkb", NES_BMC_GKB)
- SLOT_INTERFACE_INTERNAL("bmc_ws", NES_BMC_WS)
- SLOT_INTERFACE_INTERNAL("bmc_g146", NES_BMC_G146)
- SLOT_INTERFACE_INTERNAL("bmc_11160", NES_BMC_11160)
- SLOT_INTERFACE_INTERNAL("bmc_8157", NES_BMC_8157)
- SLOT_INTERFACE_INTERNAL("bmc_hik300", NES_BMC_HIK300)
- SLOT_INTERFACE_INTERNAL("bmc_s700", NES_BMC_S700)
- SLOT_INTERFACE_INTERNAL("bmc_ball11", NES_BMC_BALL11)
- SLOT_INTERFACE_INTERNAL("bmc_22games", NES_BMC_22GAMES)
- SLOT_INTERFACE_INTERNAL("bmc_64y2k", NES_BMC_64Y2K)
- SLOT_INTERFACE_INTERNAL("bmc_12in1", NES_BMC_12IN1)
- SLOT_INTERFACE_INTERNAL("bmc_20in1", NES_BMC_20IN1)
- SLOT_INTERFACE_INTERNAL("bmc_21in1", NES_BMC_21IN1)
- SLOT_INTERFACE_INTERNAL("bmc_31in1", NES_BMC_31IN1)
- SLOT_INTERFACE_INTERNAL("bmc_35in1", NES_BMC_35IN1)
- SLOT_INTERFACE_INTERNAL("bmc_36in1", NES_BMC_36IN1)
- SLOT_INTERFACE_INTERNAL("bmc_64in1", NES_BMC_64IN1)
- SLOT_INTERFACE_INTERNAL("bmc_70in1", NES_BMC_70IN1) // mapper 236?
- SLOT_INTERFACE_INTERNAL("bmc_72in1", NES_BMC_72IN1)
- SLOT_INTERFACE_INTERNAL("bmc_76in1", NES_BMC_76IN1)
- SLOT_INTERFACE_INTERNAL("bmc_s42in1", NES_BMC_76IN1)
- SLOT_INTERFACE_INTERNAL("bmc_110in1", NES_BMC_110IN1)
- SLOT_INTERFACE_INTERNAL("bmc_150in1", NES_BMC_150IN1)
- SLOT_INTERFACE_INTERNAL("bmc_190in1", NES_BMC_190IN1)
- SLOT_INTERFACE_INTERNAL("bmc_800in1", NES_BMC_800IN1) // mapper 236?
- SLOT_INTERFACE_INTERNAL("bmc_1200in1", NES_BMC_1200IN1)
- SLOT_INTERFACE_INTERNAL("bmc_gold150", NES_BMC_GOLD150) // mapper 235 with 2M PRG
- SLOT_INTERFACE_INTERNAL("bmc_gold260", NES_BMC_GOLD260) // mapper 235 with 4M PRG
- SLOT_INTERFACE_INTERNAL("bmc_power255", NES_BMC_CH001) // mapper 63?
- SLOT_INTERFACE_INTERNAL("bmc_s22games", NES_BMC_SUPER22) // mapper 233
- SLOT_INTERFACE_INTERNAL("bmc_reset4", NES_BMC_4IN1RESET) // mapper 60 with 64k prg and 32k chr
- SLOT_INTERFACE_INTERNAL("bmc_reset42", NES_BMC_42IN1RESET) // mapper 60? or 226? or 233?
+ device.option_add_internal("benshieng", NES_BENSHIENG);
+ device.option_add_internal("action52", NES_ACTION52);
+ device.option_add_internal("caltron6in1", NES_CALTRON6IN1);
+ device.option_add_internal("maxi15", NES_MAXI15); // mapper 234
+ device.option_add_internal("rumblestation", NES_RUMBLESTATION); // mapper 46
+ device.option_add_internal("svision16", NES_SVISION16); // mapper 53
+ device.option_add_internal("n625092", NES_N625092);
+ device.option_add_internal("a65as", NES_A65AS);
+ device.option_add_internal("t262", NES_T262);
+ device.option_add_internal("novel1", NES_NOVEL1);
+ device.option_add_internal("novel2", NES_NOVEL2); // mapper 213... same as BMC-NOVELDIAMOND9999999IN1 board?
+ device.option_add_internal("studyngame", NES_STUDYNGAME); // mapper 39
+ device.option_add_internal("sgun20in1", NES_SUPERGUN20IN1);
+ device.option_add_internal("bmc_vt5201", NES_VT5201); // mapper 60 otherwise
+ device.option_add_internal("bmc_d1038", NES_VT5201); // mapper 60?
+ device.option_add_internal("810544c", NES_810544C);
+ device.option_add_internal("ntd03", NES_NTD03);
+ device.option_add_internal("bmc_gb63", NES_BMC_GB63);
+ device.option_add_internal("bmc_gka", NES_BMC_GKA);
+ device.option_add_internal("bmc_gkb", NES_BMC_GKB);
+ device.option_add_internal("bmc_ws", NES_BMC_WS);
+ device.option_add_internal("bmc_g146", NES_BMC_G146);
+ device.option_add_internal("bmc_11160", NES_BMC_11160);
+ device.option_add_internal("bmc_8157", NES_BMC_8157);
+ device.option_add_internal("bmc_hik300", NES_BMC_HIK300);
+ device.option_add_internal("bmc_s700", NES_BMC_S700);
+ device.option_add_internal("bmc_ball11", NES_BMC_BALL11);
+ device.option_add_internal("bmc_22games", NES_BMC_22GAMES);
+ device.option_add_internal("bmc_64y2k", NES_BMC_64Y2K);
+ device.option_add_internal("bmc_12in1", NES_BMC_12IN1);
+ device.option_add_internal("bmc_20in1", NES_BMC_20IN1);
+ device.option_add_internal("bmc_21in1", NES_BMC_21IN1);
+ device.option_add_internal("bmc_31in1", NES_BMC_31IN1);
+ device.option_add_internal("bmc_35in1", NES_BMC_35IN1);
+ device.option_add_internal("bmc_36in1", NES_BMC_36IN1);
+ device.option_add_internal("bmc_64in1", NES_BMC_64IN1);
+ device.option_add_internal("bmc_70in1", NES_BMC_70IN1); // mapper 236?
+ device.option_add_internal("bmc_72in1", NES_BMC_72IN1);
+ device.option_add_internal("bmc_76in1", NES_BMC_76IN1);
+ device.option_add_internal("bmc_s42in1", NES_BMC_76IN1);
+ device.option_add_internal("bmc_110in1", NES_BMC_110IN1);
+ device.option_add_internal("bmc_150in1", NES_BMC_150IN1);
+ device.option_add_internal("bmc_190in1", NES_BMC_190IN1);
+ device.option_add_internal("bmc_800in1", NES_BMC_800IN1); // mapper 236?
+ device.option_add_internal("bmc_1200in1", NES_BMC_1200IN1);
+ device.option_add_internal("bmc_gold150", NES_BMC_GOLD150); // mapper 235 with 2M PRG
+ device.option_add_internal("bmc_gold260", NES_BMC_GOLD260); // mapper 235 with 4M PRG
+ device.option_add_internal("bmc_power255", NES_BMC_CH001); // mapper 63?
+ device.option_add_internal("bmc_s22games", NES_BMC_SUPER22); // mapper 233
+ device.option_add_internal("bmc_reset4", NES_BMC_4IN1RESET); // mapper 60 with 64k prg and 32k chr
+ device.option_add_internal("bmc_reset42", NES_BMC_42IN1RESET); // mapper 60? or 226? or 233?
// misc multigame cart MMC3 clone boards
- SLOT_INTERFACE_INTERNAL("fk23c", NES_FK23C)
- SLOT_INTERFACE_INTERNAL("fk23ca", NES_FK23CA)
- SLOT_INTERFACE_INTERNAL("s24in1c03", NES_S24IN1SC03)
- SLOT_INTERFACE_INTERNAL("bmc_15in1", NES_BMC_15IN1)
- SLOT_INTERFACE_INTERNAL("bmc_sbig7in1", NES_BMC_SBIG7)
- SLOT_INTERFACE_INTERNAL("bmc_hik8in1", NES_BMC_HIK8)
- SLOT_INTERFACE_INTERNAL("bmc_hik4in1", NES_BMC_HIK4)
- SLOT_INTERFACE_INTERNAL("bmc_mario7in1", NES_BMC_MARIO7IN1)
- SLOT_INTERFACE_INTERNAL("bmc_gold7in1", NES_BMC_GOLD7IN1)
- SLOT_INTERFACE_INTERNAL("bmc_gc6in1", NES_BMC_GC6IN1)
- SLOT_INTERFACE_INTERNAL("bmc_411120c", NES_BMC_411120C)
- SLOT_INTERFACE_INTERNAL("bmc_830118c", NES_BMC_830118C)
- SLOT_INTERFACE_INTERNAL("pjoy84", NES_PJOY84)
- SLOT_INTERFACE_INTERNAL("nocash_nochr", NES_NOCHR)
- SLOT_INTERFACE_INTERNAL("nes_action53", NES_ACTION53)
- SLOT_INTERFACE_INTERNAL("nes_2a03pur", NES_2A03PURITANS)
+ device.option_add_internal("fk23c", NES_FK23C);
+ device.option_add_internal("fk23ca", NES_FK23CA);
+ device.option_add_internal("s24in1c03", NES_S24IN1SC03);
+ device.option_add_internal("bmc_15in1", NES_BMC_15IN1);
+ device.option_add_internal("bmc_sbig7in1", NES_BMC_SBIG7);
+ device.option_add_internal("bmc_hik8in1", NES_BMC_HIK8);
+ device.option_add_internal("bmc_hik4in1", NES_BMC_HIK4);
+ device.option_add_internal("bmc_mario7in1", NES_BMC_MARIO7IN1);
+ device.option_add_internal("bmc_gold7in1", NES_BMC_GOLD7IN1);
+ device.option_add_internal("bmc_gc6in1", NES_BMC_GC6IN1);
+ device.option_add_internal("bmc_411120c", NES_BMC_411120C);
+ device.option_add_internal("bmc_830118c", NES_BMC_830118C);
+ device.option_add_internal("pjoy84", NES_PJOY84);
+ device.option_add_internal("nocash_nochr", NES_NOCHR);
+ device.option_add_internal("nes_action53", NES_ACTION53);
+ device.option_add_internal("nes_2a03pur", NES_2A03PURITANS);
// other unsupported...
- SLOT_INTERFACE_INTERNAL("ninjaryu", NES_NROM) // mapper 111 - UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("unl_dance", NES_NROM) // UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("onebus", NES_NROM) // UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("pec586", NES_NROM) // UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("coolboy", NES_NROM) // UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("bmc_f15", NES_NROM) // UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("bmc_hp898f", NES_NROM) // UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("bmc_8in1", NES_NROM) // UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("unl_eh8813a", NES_NROM) // UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("unl_158b", NES_NROM) // UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("unl_drgnfgt", NES_NROM) // UNSUPPORTED
+ device.option_add_internal("ninjaryu", NES_NROM); // mapper 111 - UNSUPPORTED
+ device.option_add_internal("unl_dance", NES_NROM); // UNSUPPORTED
+ device.option_add_internal("onebus", NES_NROM); // UNSUPPORTED
+ device.option_add_internal("pec586", NES_NROM); // UNSUPPORTED
+ device.option_add_internal("coolboy", NES_NROM); // UNSUPPORTED
+ device.option_add_internal("bmc_f15", NES_NROM); // UNSUPPORTED
+ device.option_add_internal("bmc_hp898f", NES_NROM); // UNSUPPORTED
+ device.option_add_internal("bmc_8in1", NES_NROM); // UNSUPPORTED
+ device.option_add_internal("unl_eh8813a", NES_NROM); // UNSUPPORTED
+ device.option_add_internal("unl_158b", NES_NROM); // UNSUPPORTED
+ device.option_add_internal("unl_drgnfgt", NES_NROM); // UNSUPPORTED
// are there dumps of games with these boards?
- SLOT_INTERFACE_INTERNAL("bmc_hik_kof", NES_NROM) // mapper 251 - UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("bmc_13in1jy110", NES_NROM) // [mentioned in FCEUMM source - we need more info] - UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("bmc_gk_192", NES_NROM) // [mentioned in FCEUMM source - we need more info] - UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("konami_qtai", NES_NROM) // [mentioned in FCEUMM source - we need more info] - UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("unl_3d_block", NES_NROM) // [mentioned in FCEUMM source - we need more info] - UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("unl_c_n22m", NES_NROM) // [mentioned in FCEUMM source - we need more info] - UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("a9746", NES_NROM) // mapper 219 - UNSUPPORTED (no dump available)
+ device.option_add_internal("bmc_hik_kof", NES_NROM); // mapper 251 - UNSUPPORTED
+ device.option_add_internal("bmc_13in1jy110", NES_NROM); // [mentioned in FCEUMM source - we need more info] - UNSUPPORTED
+ device.option_add_internal("bmc_gk_192", NES_NROM); // [mentioned in FCEUMM source - we need more info] - UNSUPPORTED
+ device.option_add_internal("konami_qtai", NES_NROM); // [mentioned in FCEUMM source - we need more info] - UNSUPPORTED
+ device.option_add_internal("unl_3d_block", NES_NROM); // [mentioned in FCEUMM source - we need more info] - UNSUPPORTED
+ device.option_add_internal("unl_c_n22m", NES_NROM); // [mentioned in FCEUMM source - we need more info] - UNSUPPORTED
+ device.option_add_internal("a9746", NES_NROM); // mapper 219 - UNSUPPORTED (no dump available);
// legacy boards for FFE copier mappers (are there images available to fix/improve emulation?)
- SLOT_INTERFACE_INTERNAL("ffe3", NES_FFE3)
- SLOT_INTERFACE_INTERNAL("ffe4", NES_FFE4)
- SLOT_INTERFACE_INTERNAL("ffe8", NES_FFE8)
- SLOT_INTERFACE_INTERNAL("test", NES_NROM)
+ device.option_add_internal("ffe3", NES_FFE3);
+ device.option_add_internal("ffe4", NES_FFE4);
+ device.option_add_internal("ffe8", NES_FFE8);
+ device.option_add_internal("test", NES_NROM);
//
- SLOT_INTERFACE_INTERNAL("unknown", NES_NROM) // a few pirate dumps uses the wrong mapper...
-SLOT_INTERFACE_END
+ device.option_add_internal("unknown", NES_NROM); // a few pirate dumps uses the wrong mapper...
+}
-SLOT_INTERFACE_START(disksys_only)
+void disksys_only(device_slot_interface &device)
+{
// RAM expansion + Disk System add-on
- SLOT_INTERFACE("disksys", NES_DISKSYS)
-SLOT_INTERFACE_END
+ device.option_add("disksys", NES_DISKSYS);
+}
diff --git a/src/devices/bus/nes/nes_carts.h b/src/devices/bus/nes/nes_carts.h
index 421a5b12386..8114129be86 100644
--- a/src/devices/bus/nes/nes_carts.h
+++ b/src/devices/bus/nes/nes_carts.h
@@ -13,7 +13,7 @@
// supported devices
-SLOT_INTERFACE_EXTERN(nes_cart);
-SLOT_INTERFACE_EXTERN(disksys_only);
+void nes_cart(device_slot_interface &device);
+void disksys_only(device_slot_interface &device);
#endif // MAME_BUS_NES_NES_CARTS_H
diff --git a/src/devices/bus/nes/sunsoft_dcs.cpp b/src/devices/bus/nes/sunsoft_dcs.cpp
index 5f2643865dd..a933fdcfb5b 100644
--- a/src/devices/bus/nes/sunsoft_dcs.cpp
+++ b/src/devices/bus/nes/sunsoft_dcs.cpp
@@ -273,9 +273,10 @@ READ8_MEMBER(nes_sunsoft_dcs_device::read_m)
}
-static SLOT_INTERFACE_START(ntb_cart)
- SLOT_INTERFACE_INTERNAL("ntbrom", NES_NTB_ROM)
-SLOT_INTERFACE_END
+static void ntb_cart(device_slot_interface &device)
+{
+ device.option_add_internal("ntbrom", NES_NTB_ROM);
+}
diff --git a/src/devices/bus/nes_ctrl/ctrl.cpp b/src/devices/bus/nes_ctrl/ctrl.cpp
index ef491efc889..7618f89dbd7 100644
--- a/src/devices/bus/nes_ctrl/ctrl.cpp
+++ b/src/devices/bus/nes_ctrl/ctrl.cpp
@@ -165,45 +165,50 @@ void nes_control_port_device::write(uint8_t data)
// SLOT_INTERFACE( nes_control_port_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( nes_control_port1_devices )
- SLOT_INTERFACE("joypad", NES_JOYPAD)
- SLOT_INTERFACE("zapper", NES_ZAPPER)
- SLOT_INTERFACE("4score_p1p3", NES_4SCORE_P1P3)
- SLOT_INTERFACE("miracle_piano", NES_MIRACLE)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( nes_control_port2_devices )
- SLOT_INTERFACE("joypad", NES_JOYPAD)
- SLOT_INTERFACE("zapper", NES_ZAPPER)
- SLOT_INTERFACE("vaus", NES_ARKPADDLE)
- SLOT_INTERFACE("powerpad", NES_POWERPAD)
- SLOT_INTERFACE("4score_p2p4", NES_4SCORE_P2P4)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( fc_control_port1_devices )
- SLOT_INTERFACE("joypad", NES_JOYPAD)
- SLOT_INTERFACE("ccpad_left", NES_CCPAD_LEFT)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( fc_control_port2_devices )
- SLOT_INTERFACE("joypad", NES_JOYPAD)
- SLOT_INTERFACE("joypad_old", NES_FCPAD_P2)
- SLOT_INTERFACE("ccpad_right", NES_CCPAD_RIGHT)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( fc_expansion_devices )
- SLOT_INTERFACE("joypad", NES_JOYPAD)
- SLOT_INTERFACE("arcstick", NES_ARCSTICK)
- SLOT_INTERFACE("fc_keyboard", NES_FCKEYBOARD)
- SLOT_INTERFACE("zapper", NES_ZAPPER)
- SLOT_INTERFACE("vaus", NES_ARKPADDLE_FC)
- SLOT_INTERFACE("family_trainer", NES_FTRAINER)
- SLOT_INTERFACE("konamihs", NES_KONAMIHS)
- SLOT_INTERFACE("mj_panel", NES_MJPANEL)
- SLOT_INTERFACE("pachinko", NES_PACHINKO)
- SLOT_INTERFACE("partytap", NES_PARTYTAP)
- SLOT_INTERFACE("hori_twin", NES_HORITWIN)
- SLOT_INTERFACE("hori_4p", NES_HORI4P)
- SLOT_INTERFACE("barcode_battler", NES_BARCODE_BATTLER)
- SLOT_INTERFACE("subor_keyboard", NES_SUBORKEYBOARD)
-SLOT_INTERFACE_END
+void nes_control_port1_devices(device_slot_interface &device)
+{
+ device.option_add("joypad", NES_JOYPAD);
+ device.option_add("zapper", NES_ZAPPER);
+ device.option_add("4score_p1p3", NES_4SCORE_P1P3);
+ device.option_add("miracle_piano", NES_MIRACLE);
+}
+
+void nes_control_port2_devices(device_slot_interface &device)
+{
+ device.option_add("joypad", NES_JOYPAD);
+ device.option_add("zapper", NES_ZAPPER);
+ device.option_add("vaus", NES_ARKPADDLE);
+ device.option_add("powerpad", NES_POWERPAD);
+ device.option_add("4score_p2p4", NES_4SCORE_P2P4);
+}
+
+void fc_control_port1_devices(device_slot_interface &device)
+{
+ device.option_add("joypad", NES_JOYPAD);
+ device.option_add("ccpad_left", NES_CCPAD_LEFT);
+}
+
+void fc_control_port2_devices(device_slot_interface &device)
+{
+ device.option_add("joypad", NES_JOYPAD);
+ device.option_add("joypad_old", NES_FCPAD_P2);
+ device.option_add("ccpad_right", NES_CCPAD_RIGHT);
+}
+
+void fc_expansion_devices(device_slot_interface &device)
+{
+ device.option_add("joypad", NES_JOYPAD);
+ device.option_add("arcstick", NES_ARCSTICK);
+ device.option_add("fc_keyboard", NES_FCKEYBOARD);
+ device.option_add("zapper", NES_ZAPPER);
+ device.option_add("vaus", NES_ARKPADDLE_FC);
+ device.option_add("family_trainer", NES_FTRAINER);
+ device.option_add("konamihs", NES_KONAMIHS);
+ device.option_add("mj_panel", NES_MJPANEL);
+ device.option_add("pachinko", NES_PACHINKO);
+ device.option_add("partytap", NES_PARTYTAP);
+ device.option_add("hori_twin", NES_HORITWIN);
+ device.option_add("hori_4p", NES_HORI4P);
+ device.option_add("barcode_battler", NES_BARCODE_BATTLER);
+ device.option_add("subor_keyboard", NES_SUBORKEYBOARD);
+}
diff --git a/src/devices/bus/nes_ctrl/ctrl.h b/src/devices/bus/nes_ctrl/ctrl.h
index a0ca47d4d36..44b029a0042 100644
--- a/src/devices/bus/nes_ctrl/ctrl.h
+++ b/src/devices/bus/nes_ctrl/ctrl.h
@@ -93,11 +93,11 @@ DECLARE_DEVICE_TYPE(NES_CONTROL_PORT, nes_control_port_device)
downcast<nes_control_port_device &>(*device).set_brightpixel_callback(nesctrl_brightpixel_delegate(&_class::_method, #_class "::" #_method, this));
-SLOT_INTERFACE_EXTERN( nes_control_port1_devices );
-SLOT_INTERFACE_EXTERN( nes_control_port2_devices );
-SLOT_INTERFACE_EXTERN( fc_control_port1_devices );
-SLOT_INTERFACE_EXTERN( fc_control_port2_devices );
-SLOT_INTERFACE_EXTERN( fc_expansion_devices );
+void nes_control_port1_devices(device_slot_interface &device);
+void nes_control_port2_devices(device_slot_interface &device);
+void fc_control_port1_devices(device_slot_interface &device);
+void fc_control_port2_devices(device_slot_interface &device);
+void fc_expansion_devices(device_slot_interface &device);
#endif // MAME_BUS_NES_CTRL_CTRL_H
diff --git a/src/devices/bus/nes_ctrl/hori.cpp b/src/devices/bus/nes_ctrl/hori.cpp
index 9710c33deeb..80e7dd835aa 100644
--- a/src/devices/bus/nes_ctrl/hori.cpp
+++ b/src/devices/bus/nes_ctrl/hori.cpp
@@ -49,9 +49,10 @@ ioport_constructor nes_hori4p_device::device_input_ports() const
}
-static SLOT_INTERFACE_START( hori_adapter )
- SLOT_INTERFACE("joypad", NES_JOYPAD)
-SLOT_INTERFACE_END
+static void hori_adapter(device_slot_interface &device)
+{
+ device.option_add("joypad", NES_JOYPAD);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/nes_ctrl/joypad.cpp b/src/devices/bus/nes_ctrl/joypad.cpp
index 96a22ac1f66..dd1f2272e97 100644
--- a/src/devices/bus/nes_ctrl/joypad.cpp
+++ b/src/devices/bus/nes_ctrl/joypad.cpp
@@ -144,9 +144,10 @@ ioport_constructor nes_arcstick_device::device_input_ports() const
-static SLOT_INTERFACE_START( arcstick_daisy )
- SLOT_INTERFACE("arcstick", NES_ARCSTICK)
-SLOT_INTERFACE_END
+static void arcstick_daisy(device_slot_interface &device)
+{
+ device.option_add("arcstick", NES_ARCSTICK);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/newbrain/exp.cpp b/src/devices/bus/newbrain/exp.cpp
index 7a27758764a..b4675c3b89f 100644
--- a/src/devices/bus/newbrain/exp.cpp
+++ b/src/devices/bus/newbrain/exp.cpp
@@ -137,7 +137,8 @@ void newbrain_expansion_slot_device::iorq_w(address_space &space, offs_t offset,
#include "eim.h"
#include "fdc.h"
-SLOT_INTERFACE_START( newbrain_expansion_cards )
- SLOT_INTERFACE("eim", NEWBRAIN_EIM)
- SLOT_INTERFACE("fdc", NEWBRAIN_FDC)
-SLOT_INTERFACE_END
+void newbrain_expansion_cards(device_slot_interface &device)
+{
+ device.option_add("eim", NEWBRAIN_EIM);
+ device.option_add("fdc", NEWBRAIN_FDC);
+}
diff --git a/src/devices/bus/newbrain/exp.h b/src/devices/bus/newbrain/exp.h
index 219c819d575..e3ab89a35ef 100644
--- a/src/devices/bus/newbrain/exp.h
+++ b/src/devices/bus/newbrain/exp.h
@@ -117,7 +117,7 @@ protected:
DECLARE_DEVICE_TYPE(NEWBRAIN_EXPANSION_SLOT, newbrain_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( newbrain_expansion_cards );
+void newbrain_expansion_cards(device_slot_interface &device);
diff --git a/src/devices/bus/newbrain/fdc.cpp b/src/devices/bus/newbrain/fdc.cpp
index 9d59cd672bc..524bbbbeaec 100644
--- a/src/devices/bus/newbrain/fdc.cpp
+++ b/src/devices/bus/newbrain/fdc.cpp
@@ -94,9 +94,10 @@ void newbrain_fdc_device::newbrain_fdc_io(address_map &map)
// newbrain_floppies
//-------------------------------------------------
-static SLOT_INTERFACE_START( newbrain_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void newbrain_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/nubus/bootbug.cpp b/src/devices/bus/nubus/bootbug.cpp
index af507307918..e22da015577 100644
--- a/src/devices/bus/nubus/bootbug.cpp
+++ b/src/devices/bus/nubus/bootbug.cpp
@@ -18,10 +18,11 @@
#include "bus/rs232/null_modem.h"
#include "screen.h"
-static SLOT_INTERFACE_START(isa_com)
- SLOT_INTERFACE("terminal", SERIAL_TERMINAL)
- SLOT_INTERFACE("null_modem", NULL_MODEM)
-SLOT_INTERFACE_END
+static void isa_com(device_slot_interface &device)
+{
+ device.option_add("terminal", SERIAL_TERMINAL);
+ device.option_add("null_modem", NULL_MODEM);
+}
#define BOOTBUG_ROM_REGION "btbug_rom"
diff --git a/src/devices/bus/nubus/quadralink.cpp b/src/devices/bus/nubus/quadralink.cpp
index e8375b181e8..461b8e69257 100644
--- a/src/devices/bus/nubus/quadralink.cpp
+++ b/src/devices/bus/nubus/quadralink.cpp
@@ -13,10 +13,11 @@
#include "bus/rs232/null_modem.h"
#include "screen.h"
-static SLOT_INTERFACE_START(isa_com)
- SLOT_INTERFACE("terminal", SERIAL_TERMINAL)
- SLOT_INTERFACE("null_modem", NULL_MODEM)
-SLOT_INTERFACE_END
+static void isa_com(device_slot_interface &device)
+{
+ device.option_add("terminal", SERIAL_TERMINAL);
+ device.option_add("null_modem", NULL_MODEM);
+}
#define QUADRALINK_ROM_REGION "qdlink_rom"
diff --git a/src/devices/bus/odyssey2/slot.cpp b/src/devices/bus/odyssey2/slot.cpp
index b75ccdb92e2..417bb27a38b 100644
--- a/src/devices/bus/odyssey2/slot.cpp
+++ b/src/devices/bus/odyssey2/slot.cpp
@@ -244,10 +244,11 @@ WRITE8_MEMBER(o2_cart_slot_device::io_write)
#include "bus/odyssey2/chess.h"
#include "bus/odyssey2/voice.h"
-SLOT_INTERFACE_START(o2_cart)
- SLOT_INTERFACE_INTERNAL("o2_rom", O2_ROM_STD)
- SLOT_INTERFACE_INTERNAL("o2_rom12", O2_ROM_12K)
- SLOT_INTERFACE_INTERNAL("o2_rom16", O2_ROM_16K)
- SLOT_INTERFACE_INTERNAL("o2_chess", O2_ROM_CHESS)
- SLOT_INTERFACE_INTERNAL("o2_voice", O2_ROM_VOICE)
-SLOT_INTERFACE_END
+void o2_cart(device_slot_interface &device)
+{
+ device.option_add_internal("o2_rom", O2_ROM_STD);
+ device.option_add_internal("o2_rom12", O2_ROM_12K);
+ device.option_add_internal("o2_rom16", O2_ROM_16K);
+ device.option_add_internal("o2_chess", O2_ROM_CHESS);
+ device.option_add_internal("o2_voice", O2_ROM_VOICE);
+}
diff --git a/src/devices/bus/odyssey2/slot.h b/src/devices/bus/odyssey2/slot.h
index 992d55abad5..28192aa3457 100644
--- a/src/devices/bus/odyssey2/slot.h
+++ b/src/devices/bus/odyssey2/slot.h
@@ -118,6 +118,6 @@ DECLARE_DEVICE_TYPE(O2_CART_SLOT, o2_cart_slot_device)
MCFG_DEVICE_ADD(_tag, O2_CART_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
-SLOT_INTERFACE_EXTERN(o2_cart);
+void o2_cart(device_slot_interface &device);
#endif // MAME_BUS_ODYSSEY2_SLOT_H
diff --git a/src/devices/bus/oricext/jasmin.cpp b/src/devices/bus/oricext/jasmin.cpp
index 557960f5b76..7621b0adf8e 100644
--- a/src/devices/bus/oricext/jasmin.cpp
+++ b/src/devices/bus/oricext/jasmin.cpp
@@ -15,9 +15,10 @@ FLOPPY_FORMATS_MEMBER( jasmin_device::floppy_formats )
FLOPPY_ORIC_DSK_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( jasmin_floppies )
- SLOT_INTERFACE( "3dsdd", FLOPPY_3_DSDD )
-SLOT_INTERFACE_END
+static void jasmin_floppies(device_slot_interface &device)
+{
+ device.option_add("3dsdd", FLOPPY_3_DSDD);
+}
INPUT_PORTS_START( jasmin )
PORT_START("JASMIN")
diff --git a/src/devices/bus/oricext/microdisc.cpp b/src/devices/bus/oricext/microdisc.cpp
index 6f3330d7109..4254ea2b571 100644
--- a/src/devices/bus/oricext/microdisc.cpp
+++ b/src/devices/bus/oricext/microdisc.cpp
@@ -15,9 +15,10 @@ FLOPPY_FORMATS_MEMBER( microdisc_device::floppy_formats )
FLOPPY_ORIC_DSK_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( microdisc_floppies )
- SLOT_INTERFACE( "3dsdd", FLOPPY_3_DSDD )
-SLOT_INTERFACE_END
+static void microdisc_floppies(device_slot_interface &device)
+{
+ device.option_add("3dsdd", FLOPPY_3_DSDD);
+}
void microdisc_device::map(address_map &map)
{
diff --git a/src/devices/bus/oricext/oricext.cpp b/src/devices/bus/oricext/oricext.cpp
index feb7f821c69..f5623e4548a 100644
--- a/src/devices/bus/oricext/oricext.cpp
+++ b/src/devices/bus/oricext/oricext.cpp
@@ -85,7 +85,8 @@ WRITE_LINE_MEMBER(oricext_device::irq_w)
connector->irq_w(state);
}
-SLOT_INTERFACE_START(oricext_intf)
- SLOT_INTERFACE("jasmin", JASMIN)
- SLOT_INTERFACE("microdisc", MICRODISC)
-SLOT_INTERFACE_END
+void oricext_intf(device_slot_interface &device)
+{
+ device.option_add("jasmin", JASMIN);
+ device.option_add("microdisc", MICRODISC);
+}
diff --git a/src/devices/bus/oricext/oricext.h b/src/devices/bus/oricext/oricext.h
index e914ceeefb7..febcc9384e0 100644
--- a/src/devices/bus/oricext/oricext.h
+++ b/src/devices/bus/oricext/oricext.h
@@ -62,6 +62,6 @@ protected:
DECLARE_DEVICE_TYPE(ORICEXT_CONNECTOR, oricext_connector)
-SLOT_INTERFACE_EXTERN( oricext_intf );
+void oricext_intf(device_slot_interface &device);
#endif // MAME_BUS_ORICEXT_ORICEXT_H
diff --git a/src/devices/bus/pc1512/mouse.cpp b/src/devices/bus/pc1512/mouse.cpp
index 0ad17623d90..882284e89d2 100644
--- a/src/devices/bus/pc1512/mouse.cpp
+++ b/src/devices/bus/pc1512/mouse.cpp
@@ -113,6 +113,7 @@ ioport_constructor pc1512_mouse_device::device_input_ports() const
// SLOT_INTERFACE( pc1512_mouse_port_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( pc1512_mouse_port_devices )
- SLOT_INTERFACE("mouse", PC1512_MOUSE)
-SLOT_INTERFACE_END
+void pc1512_mouse_port_devices(device_slot_interface &device)
+{
+ device.option_add("mouse", PC1512_MOUSE);
+}
diff --git a/src/devices/bus/pc1512/mouse.h b/src/devices/bus/pc1512/mouse.h
index 36cf22ce9bd..ca98296f53d 100644
--- a/src/devices/bus/pc1512/mouse.h
+++ b/src/devices/bus/pc1512/mouse.h
@@ -133,6 +133,6 @@ DECLARE_DEVICE_TYPE(PC1512_MOUSE, pc1512_mouse_device)
// slot devices
-SLOT_INTERFACE_EXTERN( pc1512_mouse_port_devices );
+void pc1512_mouse_port_devices(device_slot_interface &device);
#endif // MAME_BUS_PC1512_MOUSE_H
diff --git a/src/devices/bus/pc_joy/pc_joy.cpp b/src/devices/bus/pc_joy/pc_joy.cpp
index e71395e84fe..b790af3ee4c 100644
--- a/src/devices/bus/pc_joy/pc_joy.cpp
+++ b/src/devices/bus/pc_joy/pc_joy.cpp
@@ -91,7 +91,8 @@ pc_basic_joy_device::pc_basic_joy_device(const machine_config &mconfig, const ch
{
}
-SLOT_INTERFACE_START(pc_joysticks)
- SLOT_INTERFACE("basic_joy", PC_BASIC_JOY)
- SLOT_INTERFACE("mssw_pad", PC_MSSW_PAD)
-SLOT_INTERFACE_END
+void pc_joysticks(device_slot_interface &device)
+{
+ device.option_add("basic_joy", PC_BASIC_JOY);
+ device.option_add("mssw_pad", PC_MSSW_PAD);
+}
diff --git a/src/devices/bus/pc_joy/pc_joy.h b/src/devices/bus/pc_joy/pc_joy.h
index 39a32816a82..eb7d489b9b0 100644
--- a/src/devices/bus/pc_joy/pc_joy.h
+++ b/src/devices/bus/pc_joy/pc_joy.h
@@ -18,7 +18,7 @@
MCFG_DEVICE_ADD(_tag, PC_JOY, 0) \
MCFG_DEVICE_SLOT_INTERFACE(pc_joysticks, "basic_joy", false)
-SLOT_INTERFACE_EXTERN(pc_joysticks);
+void pc_joysticks(device_slot_interface &device);
class device_pc_joy_interface : public device_slot_card_interface
{
diff --git a/src/devices/bus/pc_kbd/keyboards.cpp b/src/devices/bus/pc_kbd/keyboards.cpp
index c9bc4c33acd..7c9d32501fc 100644
--- a/src/devices/bus/pc_kbd/keyboards.cpp
+++ b/src/devices/bus/pc_kbd/keyboards.cpp
@@ -11,18 +11,20 @@
#include "pcxt83.h"
#include "pcat84.h"
-SLOT_INTERFACE_START(pc_xt_keyboards)
- SLOT_INTERFACE(STR_KBD_KEYTRONIC_PC3270, PC_KBD_KEYTRONIC_PC3270)
- SLOT_INTERFACE(STR_KBD_IBM_PC_83, PC_KBD_IBM_PC_83)
- SLOT_INTERFACE(STR_KBD_IBM_PC_XT_83, PC_KBD_IBM_PC_XT_83)
- SLOT_INTERFACE(STR_KBD_EC_1841, PC_KBD_EC_1841)
- SLOT_INTERFACE(STR_KBD_ISKR_1030, PC_KBD_ISKR_1030)
-SLOT_INTERFACE_END
+void pc_xt_keyboards(device_slot_interface &device)
+{
+ device.option_add(STR_KBD_KEYTRONIC_PC3270, PC_KBD_KEYTRONIC_PC3270);
+ device.option_add(STR_KBD_IBM_PC_83, PC_KBD_IBM_PC_83);
+ device.option_add(STR_KBD_IBM_PC_XT_83, PC_KBD_IBM_PC_XT_83);
+ device.option_add(STR_KBD_EC_1841, PC_KBD_EC_1841);
+ device.option_add(STR_KBD_ISKR_1030, PC_KBD_ISKR_1030);
+}
-SLOT_INTERFACE_START(pc_at_keyboards)
- SLOT_INTERFACE(STR_KBD_KEYTRONIC_PC3270, PC_KBD_KEYTRONIC_PC3270_AT)
- SLOT_INTERFACE(STR_KBD_MICROSOFT_NATURAL, PC_KBD_MICROSOFT_NATURAL)
- SLOT_INTERFACE(STR_KBD_IBM_PC_AT_84, PC_KBD_IBM_PC_AT_84)
- SLOT_INTERFACE(STR_KBD_IBM_3270PC_122, PC_KBD_IBM_3270PC_122)
-SLOT_INTERFACE_END
+void pc_at_keyboards(device_slot_interface &device)
+{
+ device.option_add(STR_KBD_KEYTRONIC_PC3270, PC_KBD_KEYTRONIC_PC3270_AT);
+ device.option_add(STR_KBD_MICROSOFT_NATURAL, PC_KBD_MICROSOFT_NATURAL);
+ device.option_add(STR_KBD_IBM_PC_AT_84, PC_KBD_IBM_PC_AT_84);
+ device.option_add(STR_KBD_IBM_3270PC_122, PC_KBD_IBM_3270PC_122);
+}
diff --git a/src/devices/bus/pc_kbd/keyboards.h b/src/devices/bus/pc_kbd/keyboards.h
index a2a375f96ed..a4dc98432c7 100644
--- a/src/devices/bus/pc_kbd/keyboards.h
+++ b/src/devices/bus/pc_kbd/keyboards.h
@@ -19,7 +19,7 @@
#define STR_KBD_EC_1841 "ec1841"
#define STR_KBD_ISKR_1030 "iskr1030"
-SLOT_INTERFACE_EXTERN(pc_xt_keyboards);
+void pc_xt_keyboards(device_slot_interface &device);
// PC AT protocol keyboards
// Reuses STR_KBD_KEYTRONIC_PC3270 (same keyboard in AT protocol mode by default)
@@ -28,6 +28,6 @@ SLOT_INTERFACE_EXTERN(pc_xt_keyboards);
#define STR_KBD_IBM_PC_AT_84 "pcat"
#define STR_KBD_IBM_3270PC_122 "3270pc"
-SLOT_INTERFACE_EXTERN(pc_at_keyboards);
+void pc_at_keyboards(device_slot_interface &device);
#endif // MAME_BUS_PC_KBD_KEYBOARDS_H
diff --git a/src/devices/bus/pet/2joysnd.cpp b/src/devices/bus/pet/2joysnd.cpp
index 8234878e025..db492cef523 100644
--- a/src/devices/bus/pet/2joysnd.cpp
+++ b/src/devices/bus/pet/2joysnd.cpp
@@ -97,7 +97,7 @@ MACHINE_CONFIG_START(pet_userport_joystick_and_sound_device::device_add_mconfig)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
//**************************************************************************
diff --git a/src/devices/bus/pet/cass.cpp b/src/devices/bus/pet/cass.cpp
index 67e600d71a7..52b501b68b4 100644
--- a/src/devices/bus/pet/cass.cpp
+++ b/src/devices/bus/pet/cass.cpp
@@ -98,7 +98,8 @@ WRITE_LINE_MEMBER( pet_datassette_port_device::read_w ) { m_read_handler(state);
// SLOT_INTERFACE( cbm_datassette_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( cbm_datassette_devices )
- SLOT_INTERFACE("c2n", C2N)
- SLOT_INTERFACE("c1530", C1530)
-SLOT_INTERFACE_END
+void cbm_datassette_devices(device_slot_interface &device)
+{
+ device.option_add("c2n", C2N);
+ device.option_add("c1530", C1530);
+}
diff --git a/src/devices/bus/pet/cass.h b/src/devices/bus/pet/cass.h
index c906f83754b..c843f58282b 100644
--- a/src/devices/bus/pet/cass.h
+++ b/src/devices/bus/pet/cass.h
@@ -105,6 +105,6 @@ protected:
DECLARE_DEVICE_TYPE(PET_DATASSETTE_PORT, pet_datassette_port_device)
-SLOT_INTERFACE_EXTERN( cbm_datassette_devices );
+void cbm_datassette_devices(device_slot_interface &device);
#endif // MAME_BUS_PET_CASS_H
diff --git a/src/devices/bus/pet/cb2snd.cpp b/src/devices/bus/pet/cb2snd.cpp
index a81bef5dbef..1aa6e67ea8f 100644
--- a/src/devices/bus/pet/cb2snd.cpp
+++ b/src/devices/bus/pet/cb2snd.cpp
@@ -30,7 +30,7 @@ MACHINE_CONFIG_START(pet_userport_cb2_sound_device::device_add_mconfig)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
//**************************************************************************
diff --git a/src/devices/bus/pet/exp.cpp b/src/devices/bus/pet/exp.cpp
index 90157752444..ab7cc9e04dd 100644
--- a/src/devices/bus/pet/exp.cpp
+++ b/src/devices/bus/pet/exp.cpp
@@ -208,9 +208,10 @@ int pet_expansion_slot_device::phi2()
#include "hsg.h"
#include "superpet.h"
-SLOT_INTERFACE_START( pet_expansion_cards )
- SLOT_INTERFACE("64k", PET_64K)
- SLOT_INTERFACE("hsga", CBM8000_HSG_A)
- SLOT_INTERFACE("hsgb", CBM8000_HSG_B)
- SLOT_INTERFACE("superpet", SUPERPET)
-SLOT_INTERFACE_END
+void pet_expansion_cards(device_slot_interface &device)
+{
+ device.option_add("64k", PET_64K);
+ device.option_add("hsga", CBM8000_HSG_A);
+ device.option_add("hsgb", CBM8000_HSG_B);
+ device.option_add("superpet", SUPERPET);
+}
diff --git a/src/devices/bus/pet/exp.h b/src/devices/bus/pet/exp.h
index 3e941985b16..0bf7db60f05 100644
--- a/src/devices/bus/pet/exp.h
+++ b/src/devices/bus/pet/exp.h
@@ -133,6 +133,6 @@ protected:
DECLARE_DEVICE_TYPE(PET_EXPANSION_SLOT, pet_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( pet_expansion_cards );
+void pet_expansion_cards(device_slot_interface &device);
#endif // MAME_BUS_PET_EXP_H
diff --git a/src/devices/bus/pet/user.cpp b/src/devices/bus/pet/user.cpp
index 95b98bad5bf..d0f889db0b6 100644
--- a/src/devices/bus/pet/user.cpp
+++ b/src/devices/bus/pet/user.cpp
@@ -125,9 +125,10 @@ device_pet_user_port_interface::~device_pet_user_port_interface()
#include "cb2snd.h"
#include "2joysnd.h"
-SLOT_INTERFACE_START( pet_user_port_cards )
- SLOT_INTERFACE("diag", PET_USERPORT_DIAGNOSTIC_CONNECTOR)
- SLOT_INTERFACE("petuja", PET_USERPORT_JOYSTICK_ADAPTER)
- SLOT_INTERFACE("cb2snd", PET_USERPORT_CB2_SOUND_DEVICE)
- SLOT_INTERFACE("2joysnd", PET_USERPORT_JOYSTICK_AND_SOUND_DEVICE)
-SLOT_INTERFACE_END
+void pet_user_port_cards(device_slot_interface &device)
+{
+ device.option_add("diag", PET_USERPORT_DIAGNOSTIC_CONNECTOR);
+ device.option_add("petuja", PET_USERPORT_JOYSTICK_ADAPTER);
+ device.option_add("cb2snd", PET_USERPORT_CB2_SOUND_DEVICE);
+ device.option_add("2joysnd", PET_USERPORT_JOYSTICK_AND_SOUND_DEVICE);
+}
diff --git a/src/devices/bus/pet/user.h b/src/devices/bus/pet/user.h
index 04034c492e0..d7753ad23f1 100644
--- a/src/devices/bus/pet/user.h
+++ b/src/devices/bus/pet/user.h
@@ -226,6 +226,6 @@ protected:
};
-SLOT_INTERFACE_EXTERN( pet_user_port_cards );
+void pet_user_port_cards(device_slot_interface &device);
#endif // MAME_BUS_PET_USER_H
diff --git a/src/devices/bus/plus4/c1551.cpp b/src/devices/bus/plus4/c1551.cpp
index 5ca191c0b44..d698dae475d 100644
--- a/src/devices/bus/plus4/c1551.cpp
+++ b/src/devices/bus/plus4/c1551.cpp
@@ -325,9 +325,10 @@ void c1551_device::c1551_mem(address_map &map)
// SLOT_INTERFACE( c1551_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( c1551_floppies )
- SLOT_INTERFACE( "525ssqd", FLOPPY_525_SSQD )
-SLOT_INTERFACE_END
+static void c1551_floppies(device_slot_interface &device)
+{
+ device.option_add("525ssqd", FLOPPY_525_SSQD);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/plus4/exp.cpp b/src/devices/bus/plus4/exp.cpp
index 79326a5aef1..d9ee8642eba 100644
--- a/src/devices/bus/plus4/exp.cpp
+++ b/src/devices/bus/plus4/exp.cpp
@@ -200,10 +200,11 @@ void plus4_expansion_slot_device::cd_w(address_space &space, offs_t offset, uint
#include "sid.h"
#include "std.h"
-SLOT_INTERFACE_START( plus4_expansion_cards )
- SLOT_INTERFACE("c1551", C1551)
- SLOT_INTERFACE("sid", PLUS4_SID)
+void plus4_expansion_cards(device_slot_interface &device)
+{
+ device.option_add("c1551", C1551);
+ device.option_add("sid", PLUS4_SID);
// the following need ROMs from the software list
- SLOT_INTERFACE_INTERNAL("standard", PLUS4_STD)
-SLOT_INTERFACE_END
+ device.option_add_internal("standard", PLUS4_STD);
+}
diff --git a/src/devices/bus/plus4/exp.h b/src/devices/bus/plus4/exp.h
index 4a4d583dd5b..9aa7be4d74d 100644
--- a/src/devices/bus/plus4/exp.h
+++ b/src/devices/bus/plus4/exp.h
@@ -179,6 +179,6 @@ protected:
DECLARE_DEVICE_TYPE(PLUS4_EXPANSION_SLOT, plus4_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( plus4_expansion_cards );
+void plus4_expansion_cards(device_slot_interface &device);
#endif // MAME_BUS_PLUS4_EXP_H
diff --git a/src/devices/bus/plus4/user.cpp b/src/devices/bus/plus4/user.cpp
index aa0e04d9452..ad02afdc08c 100644
--- a/src/devices/bus/plus4/user.cpp
+++ b/src/devices/bus/plus4/user.cpp
@@ -17,7 +17,8 @@
#include "diag264_lb_user.h"
#include "bus/vic20/vic1011.h"
-SLOT_INTERFACE_START( plus4_user_port_cards )
- SLOT_INTERFACE("diag264", DIAG264_USER_PORT_LOOPBACK)
- SLOT_INTERFACE("rs232", VIC1011)
-SLOT_INTERFACE_END
+void plus4_user_port_cards(device_slot_interface &device)
+{
+ device.option_add("diag264", DIAG264_USER_PORT_LOOPBACK);
+ device.option_add("rs232", VIC1011);
+}
diff --git a/src/devices/bus/plus4/user.h b/src/devices/bus/plus4/user.h
index 8aac44235de..1f398a102ae 100644
--- a/src/devices/bus/plus4/user.h
+++ b/src/devices/bus/plus4/user.h
@@ -28,6 +28,6 @@
#include "bus/vic20/user.h"
-SLOT_INTERFACE_EXTERN( plus4_user_port_cards );
+void plus4_user_port_cards(device_slot_interface &device);
#endif // MAME_BUS_PLUS4_USER_H
diff --git a/src/devices/bus/pofo/ccm.cpp b/src/devices/bus/pofo/ccm.cpp
index 9619be68712..9562ddfecd6 100644
--- a/src/devices/bus/pofo/ccm.cpp
+++ b/src/devices/bus/pofo/ccm.cpp
@@ -104,7 +104,8 @@ std::string portfolio_memory_card_slot_device::get_default_card_software(get_def
#include "ram.h"
#include "rom.h"
-SLOT_INTERFACE_START( portfolio_memory_cards )
- SLOT_INTERFACE("ram", PORTFOLIO_RAM_CARD)
- SLOT_INTERFACE("rom", PORTFOLIO_ROM_CARD)
-SLOT_INTERFACE_END
+void portfolio_memory_cards(device_slot_interface &device)
+{
+ device.option_add("ram", PORTFOLIO_RAM_CARD);
+ device.option_add("rom", PORTFOLIO_ROM_CARD);
+}
diff --git a/src/devices/bus/pofo/ccm.h b/src/devices/bus/pofo/ccm.h
index a71ac4de544..b7deab09c69 100644
--- a/src/devices/bus/pofo/ccm.h
+++ b/src/devices/bus/pofo/ccm.h
@@ -145,7 +145,7 @@ protected:
DECLARE_DEVICE_TYPE(PORTFOLIO_MEMORY_CARD_SLOT, portfolio_memory_card_slot_device)
-SLOT_INTERFACE_EXTERN( portfolio_memory_cards );
+void portfolio_memory_cards(device_slot_interface &device);
diff --git a/src/devices/bus/pofo/exp.cpp b/src/devices/bus/pofo/exp.cpp
index 37991dd8989..f8a892fbe6c 100644
--- a/src/devices/bus/pofo/exp.cpp
+++ b/src/devices/bus/pofo/exp.cpp
@@ -96,9 +96,10 @@ void portfolio_expansion_slot_device::device_reset()
#include "hpc102.h"
#include "hpc104.h"
-SLOT_INTERFACE_START( portfolio_expansion_cards )
- SLOT_INTERFACE("lpt", POFO_HPC101)
- SLOT_INTERFACE("uart", POFO_HPC102)
- SLOT_INTERFACE("ram", POFO_HPC104)
- SLOT_INTERFACE("ram2", POFO_HPC104_2)
-SLOT_INTERFACE_END
+void portfolio_expansion_cards(device_slot_interface &device)
+{
+ device.option_add("lpt", POFO_HPC101);
+ device.option_add("uart", POFO_HPC102);
+ device.option_add("ram", POFO_HPC104);
+ device.option_add("ram2", POFO_HPC104_2);
+}
diff --git a/src/devices/bus/pofo/exp.h b/src/devices/bus/pofo/exp.h
index fadf724b68f..08db6ef24ee 100644
--- a/src/devices/bus/pofo/exp.h
+++ b/src/devices/bus/pofo/exp.h
@@ -156,6 +156,6 @@ protected:
DECLARE_DEVICE_TYPE(PORTFOLIO_EXPANSION_SLOT, portfolio_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( portfolio_expansion_cards );
+void portfolio_expansion_cards(device_slot_interface &device);
#endif // MAME_BUS_POFO_EXP_H
diff --git a/src/devices/bus/psi_kbd/psi_kbd.cpp b/src/devices/bus/psi_kbd/psi_kbd.cpp
index 2b6ad60f90e..36a29518213 100644
--- a/src/devices/bus/psi_kbd/psi_kbd.cpp
+++ b/src/devices/bus/psi_kbd/psi_kbd.cpp
@@ -106,7 +106,8 @@ device_psi_keyboard_interface::~device_psi_keyboard_interface()
// SLOT INTERFACE
//**************************************************************************
-SLOT_INTERFACE_START( psi_keyboard_devices )
- SLOT_INTERFACE("ergoline", ERGOLINE_KEYBOARD)
- SLOT_INTERFACE("hle", PSI_HLE_KEYBOARD)
-SLOT_INTERFACE_END
+void psi_keyboard_devices(device_slot_interface &device)
+{
+ device.option_add("ergoline", ERGOLINE_KEYBOARD);
+ device.option_add("hle", PSI_HLE_KEYBOARD);
+}
diff --git a/src/devices/bus/psi_kbd/psi_kbd.h b/src/devices/bus/psi_kbd/psi_kbd.h
index 2381ccc97be..1b35adca1c6 100644
--- a/src/devices/bus/psi_kbd/psi_kbd.h
+++ b/src/devices/bus/psi_kbd/psi_kbd.h
@@ -109,7 +109,7 @@ protected:
DECLARE_DEVICE_TYPE(PSI_KEYBOARD_INTERFACE, psi_keyboard_bus_device)
// supported devices
-SLOT_INTERFACE_EXTERN( psi_keyboard_devices );
+void psi_keyboard_devices(device_slot_interface &device);
#endif // MAME_BUS_PSI_KBD_PSI_KBD_H
diff --git a/src/devices/bus/psx/ctlrport.cpp b/src/devices/bus/psx/ctlrport.cpp
index 328c338c45f..2c9dd6ee957 100644
--- a/src/devices/bus/psx/ctlrport.cpp
+++ b/src/devices/bus/psx/ctlrport.cpp
@@ -58,18 +58,20 @@ void psxcontrollerports_device::device_start()
// add controllers to define so they can be connected to the multitap
#define PSX_CONTROLLERS \
- SLOT_INTERFACE("digital_pad", PSX_STANDARD_CONTROLLER) \
- SLOT_INTERFACE("dualshock_pad", PSX_DUALSHOCK) \
- SLOT_INTERFACE("analog_joystick", PSX_ANALOG_JOYSTICK)
+ device.option_add("digital_pad", PSX_STANDARD_CONTROLLER); \
+ device.option_add("dualshock_pad", PSX_DUALSHOCK); \
+ device.option_add("analog_joystick", PSX_ANALOG_JOYSTICK);
-SLOT_INTERFACE_START(psx_controllers)
+void psx_controllers(device_slot_interface &device)
+{
PSX_CONTROLLERS
- SLOT_INTERFACE("multitap", PSX_MULTITAP)
-SLOT_INTERFACE_END
+ device.option_add("multitap", PSX_MULTITAP);
+}
-SLOT_INTERFACE_START(psx_controllers_nomulti)
+void psx_controllers_nomulti(device_slot_interface &device)
+{
PSX_CONTROLLERS
-SLOT_INTERFACE_END
+}
WRITE_LINE_MEMBER(psxcontrollerports_device::write_dtr)
{
diff --git a/src/devices/bus/psx/ctlrport.h b/src/devices/bus/psx/ctlrport.h
index 55c8d4473d3..3c6a44da0eb 100644
--- a/src/devices/bus/psx/ctlrport.h
+++ b/src/devices/bus/psx/ctlrport.h
@@ -12,7 +12,7 @@
MCFG_DEVICE_ADD(_tag, PSX_CONTROLLER_PORT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
-SLOT_INTERFACE_EXTERN(psx_controllers);
+void psx_controllers(device_slot_interface &device);
DECLARE_DEVICE_TYPE(PSXCONTROLLERPORTS, psxcontrollerports_device)
DECLARE_DEVICE_TYPE(PSX_CONTROLLER_PORT, psx_controller_port_device)
diff --git a/src/devices/bus/psx/gamebooster.cpp b/src/devices/bus/psx/gamebooster.cpp
index 9b50b4754a0..230ebfea49b 100644
--- a/src/devices/bus/psx/gamebooster.cpp
+++ b/src/devices/bus/psx/gamebooster.cpp
@@ -117,37 +117,38 @@ WRITE16_MEMBER(psx_gamebooster_device::exp_w)
}
}
-static SLOT_INTERFACE_START(gb_cart)
- SLOT_INTERFACE_INTERNAL("rom", GB_STD_ROM)
- SLOT_INTERFACE_INTERNAL("rom_mbc1", GB_ROM_MBC1)
- SLOT_INTERFACE_INTERNAL("rom_mbc1col", GB_ROM_MBC1)
- SLOT_INTERFACE_INTERNAL("rom_mbc2", GB_ROM_MBC2)
- SLOT_INTERFACE_INTERNAL("rom_mbc3", GB_ROM_MBC3)
- SLOT_INTERFACE_INTERNAL("rom_huc1", GB_ROM_MBC3)
- SLOT_INTERFACE_INTERNAL("rom_huc3", GB_ROM_MBC3)
- SLOT_INTERFACE_INTERNAL("rom_mbc5", GB_ROM_MBC5)
- SLOT_INTERFACE_INTERNAL("rom_mbc6", GB_ROM_MBC6)
- SLOT_INTERFACE_INTERNAL("rom_mbc7", GB_ROM_MBC7)
- SLOT_INTERFACE_INTERNAL("rom_tama5", GB_ROM_TAMA5)
- SLOT_INTERFACE_INTERNAL("rom_mmm01", GB_ROM_MMM01)
- SLOT_INTERFACE_INTERNAL("rom_m161", GB_ROM_M161)
- SLOT_INTERFACE_INTERNAL("rom_sachen1", GB_ROM_SACHEN1)
- SLOT_INTERFACE_INTERNAL("rom_sachen2", GB_ROM_SACHEN2)
- SLOT_INTERFACE_INTERNAL("rom_wisdom", GB_ROM_WISDOM)
- SLOT_INTERFACE_INTERNAL("rom_yong", GB_ROM_YONG)
- SLOT_INTERFACE_INTERNAL("rom_lasama", GB_ROM_LASAMA)
- SLOT_INTERFACE_INTERNAL("rom_atvrac", GB_ROM_ATVRAC)
- SLOT_INTERFACE_INTERNAL("rom_camera", GB_STD_ROM)
- SLOT_INTERFACE_INTERNAL("rom_188in1", GB_ROM_188IN1)
- SLOT_INTERFACE_INTERNAL("rom_sintax", GB_ROM_SINTAX)
- SLOT_INTERFACE_INTERNAL("rom_chong", GB_ROM_CHONGWU)
- SLOT_INTERFACE_INTERNAL("rom_licheng", GB_ROM_LICHENG)
- SLOT_INTERFACE_INTERNAL("rom_digimon", GB_ROM_DIGIMON)
- SLOT_INTERFACE_INTERNAL("rom_rock8", GB_ROM_ROCKMAN8)
- SLOT_INTERFACE_INTERNAL("rom_sm3sp", GB_ROM_SM3SP)
-// SLOT_INTERFACE_INTERNAL("rom_dkong5", GB_ROM_DKONG5)
-// SLOT_INTERFACE_INTERNAL("rom_unk01", GB_ROM_UNK01)
-SLOT_INTERFACE_END
+static void gb_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", GB_STD_ROM);
+ device.option_add_internal("rom_mbc1", GB_ROM_MBC1);
+ device.option_add_internal("rom_mbc1col", GB_ROM_MBC1);
+ device.option_add_internal("rom_mbc2", GB_ROM_MBC2);
+ device.option_add_internal("rom_mbc3", GB_ROM_MBC3);
+ device.option_add_internal("rom_huc1", GB_ROM_MBC3);
+ device.option_add_internal("rom_huc3", GB_ROM_MBC3);
+ device.option_add_internal("rom_mbc5", GB_ROM_MBC5);
+ device.option_add_internal("rom_mbc6", GB_ROM_MBC6);
+ device.option_add_internal("rom_mbc7", GB_ROM_MBC7);
+ device.option_add_internal("rom_tama5", GB_ROM_TAMA5);
+ device.option_add_internal("rom_mmm01", GB_ROM_MMM01);
+ device.option_add_internal("rom_m161", GB_ROM_M161);
+ device.option_add_internal("rom_sachen1", GB_ROM_SACHEN1);
+ device.option_add_internal("rom_sachen2", GB_ROM_SACHEN2);
+ device.option_add_internal("rom_wisdom", GB_ROM_WISDOM);
+ device.option_add_internal("rom_yong", GB_ROM_YONG);
+ device.option_add_internal("rom_lasama", GB_ROM_LASAMA);
+ device.option_add_internal("rom_atvrac", GB_ROM_ATVRAC);
+ device.option_add_internal("rom_camera", GB_STD_ROM);
+ device.option_add_internal("rom_188in1", GB_ROM_188IN1);
+ device.option_add_internal("rom_sintax", GB_ROM_SINTAX);
+ device.option_add_internal("rom_chong", GB_ROM_CHONGWU);
+ device.option_add_internal("rom_licheng", GB_ROM_LICHENG);
+ device.option_add_internal("rom_digimon", GB_ROM_DIGIMON);
+ device.option_add_internal("rom_rock8", GB_ROM_ROCKMAN8);
+ device.option_add_internal("rom_sm3sp", GB_ROM_SM3SP);
+// device.option_add_internal("rom_dkong5", GB_ROM_DKONG5);
+// device.option_add_internal("rom_unk01", GB_ROM_UNK01);
+}
MACHINE_CONFIG_START(psx_gamebooster_device::device_add_mconfig)
/* cartslot */
diff --git a/src/devices/bus/psx/multitap.h b/src/devices/bus/psx/multitap.h
index e4b40f1caf1..0ac7e6626f7 100644
--- a/src/devices/bus/psx/multitap.h
+++ b/src/devices/bus/psx/multitap.h
@@ -5,7 +5,7 @@
#include "ctlrport.h"
-SLOT_INTERFACE_EXTERN(psx_controllers_nomulti);
+void psx_controllers_nomulti(device_slot_interface &device);
class psx_multitap_device : public device_t,
public device_psx_controller_interface
diff --git a/src/devices/bus/psx/parallel.cpp b/src/devices/bus/psx/parallel.cpp
index 4fa5b29da66..b7947e11921 100644
--- a/src/devices/bus/psx/parallel.cpp
+++ b/src/devices/bus/psx/parallel.cpp
@@ -108,7 +108,8 @@ WRITE16_MEMBER(psx_parallel_slot_device::exp_w)
// slot devices
#include "gamebooster.h"
-SLOT_INTERFACE_START( psx_parallel_devices )
- SLOT_INTERFACE("gamebooster", PSX_GAMEBOOSTER)
-SLOT_INTERFACE_END
+void psx_parallel_devices(device_slot_interface &device)
+{
+ device.option_add("gamebooster", PSX_GAMEBOOSTER);
+}
diff --git a/src/devices/bus/psx/parallel.h b/src/devices/bus/psx/parallel.h
index 4ef05c52233..129b123ba3f 100644
--- a/src/devices/bus/psx/parallel.h
+++ b/src/devices/bus/psx/parallel.h
@@ -68,7 +68,7 @@ protected:
// device type definition
DECLARE_DEVICE_TYPE(PSX_PARALLEL_SLOT, psx_parallel_slot_device)
-SLOT_INTERFACE_EXTERN( psx_parallel_devices );
+void psx_parallel_devices(device_slot_interface &device);
#endif // MAME_BUS_PSX_PARALLEL_H
diff --git a/src/devices/bus/ql/exp.cpp b/src/devices/bus/ql/exp.cpp
index 89c73d4a08a..24b62b08015 100644
--- a/src/devices/bus/ql/exp.cpp
+++ b/src/devices/bus/ql/exp.cpp
@@ -89,23 +89,24 @@ void ql_expansion_slot_device::device_start()
#include "sandy_superqboard.h"
#include "trumpcard.h"
-SLOT_INTERFACE_START( ql_expansion_cards )
- SLOT_INTERFACE("qdisc", CST_QL_DISC_INTERFACE)
- SLOT_INTERFACE("qplus4", CST_Q_PLUS4)
- SLOT_INTERFACE("cumanafdi", CUMANA_FLOPPY_DISK_INTERFACE)
- SLOT_INTERFACE("kdi", KEMPSTON_DISK_INTERFACE)
- SLOT_INTERFACE("mpfdi", MICRO_PERIPHERALS_FLOPPY_DISK_INTERFACE)
- SLOT_INTERFACE("gold", MIRACLE_GOLD_CARD)
- SLOT_INTERFACE("pcmlqdi", PCML_Q_DISK_INTERFACE)
- SLOT_INTERFACE("qubide", QUBIDE)
- SLOT_INTERFACE("sdisk", SANDY_SUPER_DISK)
- SLOT_INTERFACE("sqboard", SANDY_SUPERQBOARD)
- SLOT_INTERFACE("sqboard512k", SANDY_SUPERQBOARD_512K)
- SLOT_INTERFACE("sqmouse", SANDY_SUPERQMOUSE)
- SLOT_INTERFACE("sqmouse512k", SANDY_SUPERQMOUSE_512K)
- SLOT_INTERFACE("opdbasic", OPD_BASIC_MASTER)
- SLOT_INTERFACE("trump", QL_TRUMP_CARD)
- SLOT_INTERFACE("trump256k", QL_TRUMP_CARD_256K)
- SLOT_INTERFACE("trump512k", QL_TRUMP_CARD_512K)
- SLOT_INTERFACE("trump768k", QL_TRUMP_CARD_768K)
-SLOT_INTERFACE_END
+void ql_expansion_cards(device_slot_interface &device)
+{
+ device.option_add("qdisc", CST_QL_DISC_INTERFACE);
+ device.option_add("qplus4", CST_Q_PLUS4);
+ device.option_add("cumanafdi", CUMANA_FLOPPY_DISK_INTERFACE);
+ device.option_add("kdi", KEMPSTON_DISK_INTERFACE);
+ device.option_add("mpfdi", MICRO_PERIPHERALS_FLOPPY_DISK_INTERFACE);
+ device.option_add("gold", MIRACLE_GOLD_CARD);
+ device.option_add("pcmlqdi", PCML_Q_DISK_INTERFACE);
+ device.option_add("qubide", QUBIDE);
+ device.option_add("sdisk", SANDY_SUPER_DISK);
+ device.option_add("sqboard", SANDY_SUPERQBOARD);
+ device.option_add("sqboard512k", SANDY_SUPERQBOARD_512K);
+ device.option_add("sqmouse", SANDY_SUPERQMOUSE);
+ device.option_add("sqmouse512k", SANDY_SUPERQMOUSE_512K);
+ device.option_add("opdbasic", OPD_BASIC_MASTER);
+ device.option_add("trump", QL_TRUMP_CARD);
+ device.option_add("trump256k", QL_TRUMP_CARD_256K);
+ device.option_add("trump512k", QL_TRUMP_CARD_512K);
+ device.option_add("trump768k", QL_TRUMP_CARD_768K);
+}
diff --git a/src/devices/bus/ql/exp.h b/src/devices/bus/ql/exp.h
index bdb9e98808a..e8aa5ea3570 100644
--- a/src/devices/bus/ql/exp.h
+++ b/src/devices/bus/ql/exp.h
@@ -141,7 +141,7 @@ protected:
DECLARE_DEVICE_TYPE(QL_EXPANSION_SLOT, ql_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( ql_expansion_cards );
+void ql_expansion_cards(device_slot_interface &device);
#endif // MAME_BUS_QL_EXP_H
diff --git a/src/devices/bus/ql/rom.cpp b/src/devices/bus/ql/rom.cpp
index 27d46b5c47b..2edf6c36cf8 100644
--- a/src/devices/bus/ql/rom.cpp
+++ b/src/devices/bus/ql/rom.cpp
@@ -117,9 +117,10 @@ std::string ql_rom_cartridge_slot_device::get_default_card_software(get_default_
#include "miracle_hd.h"
#include "std.h"
-SLOT_INTERFACE_START( ql_rom_cartridge_cards )
- SLOT_INTERFACE("mhd", MIRACLE_HARD_DISK)
+void ql_rom_cartridge_cards(device_slot_interface &device)
+{
+ device.option_add("mhd", MIRACLE_HARD_DISK);
// the following need ROMs from the software list
- SLOT_INTERFACE_INTERNAL("standard", QL_STANDARD_ROM_CARTRIDGE)
-SLOT_INTERFACE_END
+ device.option_add_internal("standard", QL_STANDARD_ROM_CARTRIDGE);
+}
diff --git a/src/devices/bus/ql/rom.h b/src/devices/bus/ql/rom.h
index 72b4d75dc2f..20774d7c3ba 100644
--- a/src/devices/bus/ql/rom.h
+++ b/src/devices/bus/ql/rom.h
@@ -117,6 +117,6 @@ protected:
// device type definition
DECLARE_DEVICE_TYPE(QL_ROM_CARTRIDGE_SLOT, ql_rom_cartridge_slot_device)
-SLOT_INTERFACE_EXTERN( ql_rom_cartridge_cards );
+void ql_rom_cartridge_cards(device_slot_interface &device);
#endif // MAME_BUS_QL_ROM_H
diff --git a/src/devices/bus/ql/sandy_superdisk.cpp b/src/devices/bus/ql/sandy_superdisk.cpp
index 5419a4f22a1..b224ae8afc0 100644
--- a/src/devices/bus/ql/sandy_superdisk.cpp
+++ b/src/devices/bus/ql/sandy_superdisk.cpp
@@ -52,9 +52,10 @@ const tiny_rom_entry *sandy_super_disk_device::device_rom_region() const
// SLOT_INTERFACE( sandy_super_disk_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( sandy_super_disk_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void sandy_super_disk_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ql/sandy_superqboard.cpp b/src/devices/bus/ql/sandy_superqboard.cpp
index 3965736bd01..92d4435aeb3 100644
--- a/src/devices/bus/ql/sandy_superqboard.cpp
+++ b/src/devices/bus/ql/sandy_superqboard.cpp
@@ -64,10 +64,11 @@ const tiny_rom_entry *sandy_superqboard_device::device_rom_region() const
// SLOT_INTERFACE( sandy_superqboard_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( sandy_superqboard_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
- SLOT_INTERFACE( "35hd", FLOPPY_35_HD )
-SLOT_INTERFACE_END
+static void sandy_superqboard_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+ device.option_add("35hd", FLOPPY_35_HD);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ql/trumpcard.cpp b/src/devices/bus/ql/trumpcard.cpp
index e1079b1826b..a853bc63fa7 100644
--- a/src/devices/bus/ql/trumpcard.cpp
+++ b/src/devices/bus/ql/trumpcard.cpp
@@ -67,9 +67,10 @@ const tiny_rom_entry *ql_trump_card_device::device_rom_region() const
// SLOT_INTERFACE( ql_trump_card_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( ql_trump_card_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void ql_trump_card_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/rs232/rs232.cpp b/src/devices/bus/rs232/rs232.cpp
index c61bb9676fd..1db03002775 100644
--- a/src/devices/bus/rs232/rs232.cpp
+++ b/src/devices/bus/rs232/rs232.cpp
@@ -168,14 +168,15 @@ device_rs232_port_interface::~device_rs232_port_interface()
#include "terminal.h"
#include "ie15.h"
-SLOT_INTERFACE_START( default_rs232_devices )
- SLOT_INTERFACE("keyboard", SERIAL_KEYBOARD)
- SLOT_INTERFACE("loopback", RS232_LOOPBACK)
- SLOT_INTERFACE("dec_loopback", DEC_RS232_LOOPBACK)
- SLOT_INTERFACE("null_modem", NULL_MODEM)
- SLOT_INTERFACE("printer", SERIAL_PRINTER)
- SLOT_INTERFACE("terminal", SERIAL_TERMINAL)
- SLOT_INTERFACE("pty", PSEUDO_TERMINAL)
- SLOT_INTERFACE("sunkbd", SUN_KBD_ADAPTOR)
- SLOT_INTERFACE("ie15", SERIAL_TERMINAL_IE15)
-SLOT_INTERFACE_END
+void default_rs232_devices(device_slot_interface &device)
+{
+ device.option_add("keyboard", SERIAL_KEYBOARD);
+ device.option_add("loopback", RS232_LOOPBACK);
+ device.option_add("dec_loopback", DEC_RS232_LOOPBACK);
+ device.option_add("null_modem", NULL_MODEM);
+ device.option_add("printer", SERIAL_PRINTER);
+ device.option_add("terminal", SERIAL_TERMINAL);
+ device.option_add("pty", PSEUDO_TERMINAL);
+ device.option_add("sunkbd", SUN_KBD_ADAPTOR);
+ device.option_add("ie15", SERIAL_TERMINAL_IE15);
+}
diff --git a/src/devices/bus/rs232/rs232.h b/src/devices/bus/rs232/rs232.h
index b73a7d817bf..1f459ec3860 100644
--- a/src/devices/bus/rs232/rs232.h
+++ b/src/devices/bus/rs232/rs232.h
@@ -119,12 +119,20 @@
class device_rs232_port_interface;
-class rs232_port_device : public device_t,
- public device_slot_interface
+class rs232_port_device : public device_t, public device_slot_interface
{
friend class device_rs232_port_interface;
public:
+ template <typename T>
+ rs232_port_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, const char *dflt)
+ : rs232_port_device(mconfig, tag, owner, 0)
+ {
+ option_reset();
+ opts(*this);
+ set_default_option(dflt);
+ set_fixed(false);
+ }
rs232_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual ~rs232_port_device();
@@ -313,6 +321,6 @@ protected:
DECLARE_DEVICE_TYPE(RS232_PORT, rs232_port_device)
-SLOT_INTERFACE_EXTERN( default_rs232_devices );
+void default_rs232_devices(device_slot_interface &device);
#endif // MAME_BUS_RS232_RS232_H
diff --git a/src/devices/bus/s100/dj2db.cpp b/src/devices/bus/s100/dj2db.cpp
index 78ac2ae6ad8..808abeb5a0b 100644
--- a/src/devices/bus/s100/dj2db.cpp
+++ b/src/devices/bus/s100/dj2db.cpp
@@ -69,9 +69,10 @@ WRITE_LINE_MEMBER( s100_dj2db_device::fr_w )
// S1602 RRC/TRC
}
-static SLOT_INTERFACE_START( s100_dj2db_floppies )
- SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD )
-SLOT_INTERFACE_END
+static void s100_dj2db_floppies(device_slot_interface &device)
+{
+ device.option_add("8dsdd", FLOPPY_8_DSDD);
+}
WRITE_LINE_MEMBER( s100_dj2db_device::fdc_intrq_w )
{
diff --git a/src/devices/bus/s100/nsmdsa.cpp b/src/devices/bus/s100/nsmdsa.cpp
index a54bbc0c1a1..3a2ab33b594 100644
--- a/src/devices/bus/s100/nsmdsa.cpp
+++ b/src/devices/bus/s100/nsmdsa.cpp
@@ -47,9 +47,10 @@ const tiny_rom_entry *s100_mds_a_device::device_rom_region() const
// SLOT_INTERFACE( mds_a_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( mds_a_floppies )
- SLOT_INTERFACE( "525sd", FLOPPY_525_SD ) // Shugart SA-400
-SLOT_INTERFACE_END
+static void mds_a_floppies(device_slot_interface &device)
+{
+ device.option_add("525sd", FLOPPY_525_SD); // Shugart SA-400
+}
//-------------------------------------------------
diff --git a/src/devices/bus/s100/nsmdsad.cpp b/src/devices/bus/s100/nsmdsad.cpp
index 80c75dd935f..21c25e7dcbc 100644
--- a/src/devices/bus/s100/nsmdsad.cpp
+++ b/src/devices/bus/s100/nsmdsad.cpp
@@ -48,9 +48,10 @@ const tiny_rom_entry *s100_mds_ad_device::device_rom_region() const
// SLOT_INTERFACE( mds_ad_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( mds_ad_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) // Shugart SA-400
-SLOT_INTERFACE_END
+static void mds_ad_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD); // Shugart SA-400
+}
//-------------------------------------------------
diff --git a/src/devices/bus/s100/wunderbus.cpp b/src/devices/bus/s100/wunderbus.cpp
index 4e0a68c4c6d..7e69c845be1 100644
--- a/src/devices/bus/s100/wunderbus.cpp
+++ b/src/devices/bus/s100/wunderbus.cpp
@@ -116,7 +116,7 @@ MACHINE_CONFIG_START(s100_wunderbus_device::device_add_mconfig)
MCFG_RS232_DSR_HANDLER(DEVWRITELINE(INS8250_1_TAG, ins8250_uart_device, dsr_w))
MCFG_RS232_RI_HANDLER(DEVWRITELINE(INS8250_1_TAG, ins8250_uart_device, ri_w))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE(INS8250_1_TAG, ins8250_uart_device, cts_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(INS8250_2_TAG, ins8250_uart_device, rx_w))
diff --git a/src/devices/bus/sat_ctrl/ctrl.cpp b/src/devices/bus/sat_ctrl/ctrl.cpp
index 93a09176aa4..ebe435655ab 100644
--- a/src/devices/bus/sat_ctrl/ctrl.cpp
+++ b/src/devices/bus/sat_ctrl/ctrl.cpp
@@ -125,20 +125,22 @@ uint16_t saturn_control_port_device::read_direct()
// SLOT_INTERFACE( saturn_controls )
//-------------------------------------------------
-SLOT_INTERFACE_START( saturn_controls )
- SLOT_INTERFACE("joypad", SATURN_JOY)
- SLOT_INTERFACE("racing", SATURN_WHEEL)
- SLOT_INTERFACE("analog", SATURN_ANALOG)
-// SLOT_INTERFACE("lightgun", SATURN_LIGHTGUN)
- SLOT_INTERFACE("trackball", SATURN_TRACK)
- SLOT_INTERFACE("keyboard", SATURN_KEYBD)
- SLOT_INTERFACE("joy_md3", SATURN_JOYMD3B)
- SLOT_INTERFACE("joy_md6", SATURN_JOYMD6B)
- SLOT_INTERFACE("mouse", SATURN_MOUSE)
- SLOT_INTERFACE("multitap", SATURN_MULTITAP)
- SLOT_INTERFACE("segatap", SATURN_SEGATAP)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( saturn_joys )
- SLOT_INTERFACE("joypad", SATURN_JOY)
-SLOT_INTERFACE_END
+void saturn_controls(device_slot_interface &device)
+{
+ device.option_add("joypad", SATURN_JOY);
+ device.option_add("racing", SATURN_WHEEL);
+ device.option_add("analog", SATURN_ANALOG);
+// device.option_add("lightgun", SATURN_LIGHTGUN);
+ device.option_add("trackball", SATURN_TRACK);
+ device.option_add("keyboard", SATURN_KEYBD);
+ device.option_add("joy_md3", SATURN_JOYMD3B);
+ device.option_add("joy_md6", SATURN_JOYMD6B);
+ device.option_add("mouse", SATURN_MOUSE);
+ device.option_add("multitap", SATURN_MULTITAP);
+ device.option_add("segatap", SATURN_SEGATAP);
+}
+
+void saturn_joys(device_slot_interface &device)
+{
+ device.option_add("joypad", SATURN_JOY);
+}
diff --git a/src/devices/bus/sat_ctrl/ctrl.h b/src/devices/bus/sat_ctrl/ctrl.h
index 13e30459c01..913664777c2 100644
--- a/src/devices/bus/sat_ctrl/ctrl.h
+++ b/src/devices/bus/sat_ctrl/ctrl.h
@@ -75,8 +75,8 @@ DECLARE_DEVICE_TYPE(SATURN_CONTROL_PORT, saturn_control_port_device)
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
-SLOT_INTERFACE_EXTERN( saturn_controls );
-SLOT_INTERFACE_EXTERN( saturn_joys );
+void saturn_controls(device_slot_interface &device);
+void saturn_joys(device_slot_interface &device);
#endif // MAME_BUS_SAT_CTRL_CTRL_H
diff --git a/src/devices/bus/sega8/ccatch.cpp b/src/devices/bus/sega8/ccatch.cpp
index f5b82e5f2b3..cbe9840bae7 100644
--- a/src/devices/bus/sega8/ccatch.cpp
+++ b/src/devices/bus/sega8/ccatch.cpp
@@ -48,9 +48,10 @@ WRITE8_MEMBER(sega8_cardcatch_device::write_cart)
logerror("Attempt to write to MyCard\n");
}
-static SLOT_INTERFACE_START(sg1000_card)
- SLOT_INTERFACE_INTERNAL("rom", SEGA8_ROM_STD)
-SLOT_INTERFACE_END
+static void sg1000_card(device_slot_interface &device)
+{
+ device.option_add_internal("rom", SEGA8_ROM_STD);
+}
MACHINE_CONFIG_START(sega8_cardcatch_device::device_add_mconfig)
MCFG_SG1000_CARD_ADD("cardslot", sg1000_card, nullptr)
diff --git a/src/devices/bus/sega8/sega8_slot.cpp b/src/devices/bus/sega8/sega8_slot.cpp
index de02af4f279..3242654b829 100644
--- a/src/devices/bus/sega8/sega8_slot.cpp
+++ b/src/devices/bus/sega8/sega8_slot.cpp
@@ -806,54 +806,58 @@ void sega8_cart_slot_device::internal_header_logging(uint8_t *ROM, uint32_t len,
#include "ccatch.h"
#include "mgear.h"
-SLOT_INTERFACE_START(sg1000_cart)
- SLOT_INTERFACE_INTERNAL("rom", SEGA8_ROM_STD)
- SLOT_INTERFACE_INTERNAL("othello", SEGA8_ROM_OTHELLO)
- SLOT_INTERFACE_INTERNAL("castle", SEGA8_ROM_CASTLE)
- SLOT_INTERFACE_INTERNAL("terebi", SEGA8_ROM_TEREBI)
- SLOT_INTERFACE_INTERNAL("level3", SEGA8_ROM_BASIC_L3)
- SLOT_INTERFACE_INTERNAL("music_editor", SEGA8_ROM_MUSIC_EDITOR)
- SLOT_INTERFACE_INTERNAL("dahjee_typea", SEGA8_ROM_DAHJEE_TYPEA)
- SLOT_INTERFACE_INTERNAL("dahjee_typeb", SEGA8_ROM_DAHJEE_TYPEB)
- SLOT_INTERFACE_INTERNAL("cardcatcher", SEGA8_ROM_CARDCATCH)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START(sg1000mk3_cart)
- SLOT_INTERFACE_INTERNAL("rom", SEGA8_ROM_STD)
- SLOT_INTERFACE_INTERNAL("terebi", SEGA8_ROM_TEREBI)
- SLOT_INTERFACE_INTERNAL("codemasters", SEGA8_ROM_CODEMASTERS)
- SLOT_INTERFACE_INTERNAL("4pak", SEGA8_ROM_4PAK)
- SLOT_INTERFACE_INTERNAL("zemina", SEGA8_ROM_ZEMINA)
- SLOT_INTERFACE_INTERNAL("nemesis", SEGA8_ROM_NEMESIS)
- SLOT_INTERFACE_INTERNAL("janggun", SEGA8_ROM_JANGGUN)
- SLOT_INTERFACE_INTERNAL("hicom", SEGA8_ROM_HICOM)
- SLOT_INTERFACE_INTERNAL("korean", SEGA8_ROM_KOREAN)
- SLOT_INTERFACE_INTERNAL("korean_nb", SEGA8_ROM_KOREAN_NB)
- SLOT_INTERFACE_INTERNAL("seojin", SEGA8_ROM_SEOJIN)
- SLOT_INTERFACE_INTERNAL("othello", SEGA8_ROM_OTHELLO)
- SLOT_INTERFACE_INTERNAL("castle", SEGA8_ROM_CASTLE)
- SLOT_INTERFACE_INTERNAL("dahjee_typea", SEGA8_ROM_DAHJEE_TYPEA)
- SLOT_INTERFACE_INTERNAL("dahjee_typeb", SEGA8_ROM_DAHJEE_TYPEB)
+void sg1000_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", SEGA8_ROM_STD);
+ device.option_add_internal("othello", SEGA8_ROM_OTHELLO);
+ device.option_add_internal("castle", SEGA8_ROM_CASTLE);
+ device.option_add_internal("terebi", SEGA8_ROM_TEREBI);
+ device.option_add_internal("level3", SEGA8_ROM_BASIC_L3);
+ device.option_add_internal("music_editor", SEGA8_ROM_MUSIC_EDITOR);
+ device.option_add_internal("dahjee_typea", SEGA8_ROM_DAHJEE_TYPEA);
+ device.option_add_internal("dahjee_typeb", SEGA8_ROM_DAHJEE_TYPEB);
+ device.option_add_internal("cardcatcher", SEGA8_ROM_CARDCATCH);
+}
+
+void sg1000mk3_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", SEGA8_ROM_STD);
+ device.option_add_internal("terebi", SEGA8_ROM_TEREBI);
+ device.option_add_internal("codemasters", SEGA8_ROM_CODEMASTERS);
+ device.option_add_internal("4pak", SEGA8_ROM_4PAK);
+ device.option_add_internal("zemina", SEGA8_ROM_ZEMINA);
+ device.option_add_internal("nemesis", SEGA8_ROM_NEMESIS);
+ device.option_add_internal("janggun", SEGA8_ROM_JANGGUN);
+ device.option_add_internal("hicom", SEGA8_ROM_HICOM);
+ device.option_add_internal("korean", SEGA8_ROM_KOREAN);
+ device.option_add_internal("korean_nb", SEGA8_ROM_KOREAN_NB);
+ device.option_add_internal("seojin", SEGA8_ROM_SEOJIN);
+ device.option_add_internal("othello", SEGA8_ROM_OTHELLO);
+ device.option_add_internal("castle", SEGA8_ROM_CASTLE);
+ device.option_add_internal("dahjee_typea", SEGA8_ROM_DAHJEE_TYPEA);
+ device.option_add_internal("dahjee_typeb", SEGA8_ROM_DAHJEE_TYPEB);
// are these SC-3000 carts below actually compatible or not? remove if not!
- SLOT_INTERFACE_INTERNAL("level3", SEGA8_ROM_BASIC_L3)
- SLOT_INTERFACE_INTERNAL("music_editor", SEGA8_ROM_MUSIC_EDITOR)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START(sms_cart)
- SLOT_INTERFACE_INTERNAL("rom", SEGA8_ROM_STD)
- SLOT_INTERFACE_INTERNAL("codemasters", SEGA8_ROM_CODEMASTERS)
- SLOT_INTERFACE_INTERNAL("4pak", SEGA8_ROM_4PAK)
- SLOT_INTERFACE_INTERNAL("zemina", SEGA8_ROM_ZEMINA)
- SLOT_INTERFACE_INTERNAL("nemesis", SEGA8_ROM_NEMESIS)
- SLOT_INTERFACE_INTERNAL("janggun", SEGA8_ROM_JANGGUN)
- SLOT_INTERFACE_INTERNAL("hicom", SEGA8_ROM_HICOM)
- SLOT_INTERFACE_INTERNAL("korean", SEGA8_ROM_KOREAN)
- SLOT_INTERFACE_INTERNAL("korean_nb", SEGA8_ROM_KOREAN_NB)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START(gg_cart)
- SLOT_INTERFACE_INTERNAL("rom", SEGA8_ROM_STD)
- SLOT_INTERFACE_INTERNAL("eeprom", SEGA8_ROM_EEPROM)
- SLOT_INTERFACE_INTERNAL("codemasters", SEGA8_ROM_CODEMASTERS)
- SLOT_INTERFACE_INTERNAL("mgear", SEGA8_ROM_MGEAR)
-SLOT_INTERFACE_END
+ device.option_add_internal("level3", SEGA8_ROM_BASIC_L3);
+ device.option_add_internal("music_editor", SEGA8_ROM_MUSIC_EDITOR);
+}
+
+void sms_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", SEGA8_ROM_STD);
+ device.option_add_internal("codemasters", SEGA8_ROM_CODEMASTERS);
+ device.option_add_internal("4pak", SEGA8_ROM_4PAK);
+ device.option_add_internal("zemina", SEGA8_ROM_ZEMINA);
+ device.option_add_internal("nemesis", SEGA8_ROM_NEMESIS);
+ device.option_add_internal("janggun", SEGA8_ROM_JANGGUN);
+ device.option_add_internal("hicom", SEGA8_ROM_HICOM);
+ device.option_add_internal("korean", SEGA8_ROM_KOREAN);
+ device.option_add_internal("korean_nb", SEGA8_ROM_KOREAN_NB);
+}
+
+void gg_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", SEGA8_ROM_STD);
+ device.option_add_internal("eeprom", SEGA8_ROM_EEPROM);
+ device.option_add_internal("codemasters", SEGA8_ROM_CODEMASTERS);
+ device.option_add_internal("mgear", SEGA8_ROM_MGEAR);
+}
diff --git a/src/devices/bus/sega8/sega8_slot.h b/src/devices/bus/sega8/sega8_slot.h
index fa26d4bed72..9b653d4887b 100644
--- a/src/devices/bus/sega8/sega8_slot.h
+++ b/src/devices/bus/sega8/sega8_slot.h
@@ -243,9 +243,9 @@ public:
// slot interfaces
-SLOT_INTERFACE_EXTERN( sg1000_cart );
-SLOT_INTERFACE_EXTERN( sg1000mk3_cart );
-SLOT_INTERFACE_EXTERN( sms_cart );
-SLOT_INTERFACE_EXTERN( gg_cart );
+void sg1000_cart(device_slot_interface &device);
+void sg1000mk3_cart(device_slot_interface &device);
+void sms_cart(device_slot_interface &device);
+void gg_cart(device_slot_interface &device);
#endif // MAME_BUS_SEGA8_SLOT_H
diff --git a/src/devices/bus/sg1000_exp/sg1000exp.cpp b/src/devices/bus/sg1000_exp/sg1000exp.cpp
index 8c8bc53f6a4..09e6e826515 100644
--- a/src/devices/bus/sg1000_exp/sg1000exp.cpp
+++ b/src/devices/bus/sg1000_exp/sg1000exp.cpp
@@ -121,7 +121,8 @@ bool sg1000_expansion_slot_device::is_writeable(uint8_t offset)
// SLOT_INTERFACE( sg1000_expansion_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( sg1000_expansion_devices )
- SLOT_INTERFACE("sk1100", SEGA_SK1100)
- SLOT_INTERFACE("fm", SEGA_FM_UNIT)
-SLOT_INTERFACE_END
+void sg1000_expansion_devices(device_slot_interface &device)
+{
+ device.option_add("sk1100", SEGA_SK1100);
+ device.option_add("fm", SEGA_FM_UNIT);
+}
diff --git a/src/devices/bus/sg1000_exp/sg1000exp.h b/src/devices/bus/sg1000_exp/sg1000exp.h
index ce8ae982980..9a21c263407 100644
--- a/src/devices/bus/sg1000_exp/sg1000exp.h
+++ b/src/devices/bus/sg1000_exp/sg1000exp.h
@@ -84,7 +84,7 @@ protected:
DECLARE_DEVICE_TYPE(SG1000_EXPANSION_SLOT, sg1000_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( sg1000_expansion_devices );
+void sg1000_expansion_devices(device_slot_interface &device);
#endif // MAME_BUS_SG1000_EXP_SG1000EXP_H
diff --git a/src/devices/bus/sms_ctrl/smsctrl.cpp b/src/devices/bus/sms_ctrl/smsctrl.cpp
index 6d760f9bf93..30b706ad390 100644
--- a/src/devices/bus/sms_ctrl/smsctrl.cpp
+++ b/src/devices/bus/sms_ctrl/smsctrl.cpp
@@ -124,13 +124,14 @@ uint32_t sms_control_port_device::pixel_r()
// SLOT_INTERFACE( sms_control_port_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( sms_control_port_devices )
- SLOT_INTERFACE("joypad", SMS_JOYPAD)
- SLOT_INTERFACE("lphaser", SMS_LIGHT_PHASER)
- SLOT_INTERFACE("paddle", SMS_PADDLE)
- SLOT_INTERFACE("sportspad", SMS_SPORTS_PAD)
- SLOT_INTERFACE("sportspadjp", SMS_SPORTS_PAD_JP)
- SLOT_INTERFACE("rapidfire", SMS_RAPID_FIRE)
- SLOT_INTERFACE("multitap", SMS_MULTITAP)
- SLOT_INTERFACE("graphic", SMS_GRAPHIC)
-SLOT_INTERFACE_END
+void sms_control_port_devices(device_slot_interface &device)
+{
+ device.option_add("joypad", SMS_JOYPAD);
+ device.option_add("lphaser", SMS_LIGHT_PHASER);
+ device.option_add("paddle", SMS_PADDLE);
+ device.option_add("sportspad", SMS_SPORTS_PAD);
+ device.option_add("sportspadjp", SMS_SPORTS_PAD_JP);
+ device.option_add("rapidfire", SMS_RAPID_FIRE);
+ device.option_add("multitap", SMS_MULTITAP);
+ device.option_add("graphic", SMS_GRAPHIC);
+}
diff --git a/src/devices/bus/sms_ctrl/smsctrl.h b/src/devices/bus/sms_ctrl/smsctrl.h
index 71cfa2059c4..9ead03ca812 100644
--- a/src/devices/bus/sms_ctrl/smsctrl.h
+++ b/src/devices/bus/sms_ctrl/smsctrl.h
@@ -110,7 +110,7 @@ protected:
DECLARE_DEVICE_TYPE(SMS_CONTROL_PORT, sms_control_port_device)
-SLOT_INTERFACE_EXTERN( sms_control_port_devices );
+void sms_control_port_devices(device_slot_interface &device);
#endif // MAME_BUS_SMS_CTRL_SMSCTRL_H
diff --git a/src/devices/bus/sms_exp/smsexp.cpp b/src/devices/bus/sms_exp/smsexp.cpp
index 89cdf8083a8..f7c4b12c159 100644
--- a/src/devices/bus/sms_exp/smsexp.cpp
+++ b/src/devices/bus/sms_exp/smsexp.cpp
@@ -86,6 +86,7 @@ void sms_expansion_slot_device::device_start()
// SLOT_INTERFACE( sms_expansion_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( sms_expansion_devices )
- SLOT_INTERFACE("genderadp", SMS_GENDER_ADAPTER)
-SLOT_INTERFACE_END
+void sms_expansion_devices(device_slot_interface &device)
+{
+ device.option_add("genderadp", SMS_GENDER_ADAPTER);
+}
diff --git a/src/devices/bus/sms_exp/smsexp.h b/src/devices/bus/sms_exp/smsexp.h
index 5ea8a344384..b53027af51e 100644
--- a/src/devices/bus/sms_exp/smsexp.h
+++ b/src/devices/bus/sms_exp/smsexp.h
@@ -87,7 +87,7 @@ protected:
DECLARE_DEVICE_TYPE(SMS_EXPANSION_SLOT, sms_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( sms_expansion_devices );
+void sms_expansion_devices(device_slot_interface &device);
#endif // MAME_BUS_SMS_EXP_SMSEXP_H
diff --git a/src/devices/bus/snes/bsx.cpp b/src/devices/bus/snes/bsx.cpp
index 691a2898413..339cee19885 100644
--- a/src/devices/bus/snes/bsx.cpp
+++ b/src/devices/bus/snes/bsx.cpp
@@ -234,9 +234,10 @@ void sns_rom_bsx_device::bsx_base::write(uint32_t offset, uint8_t data)
}
-static SLOT_INTERFACE_START(bsx_cart)
- SLOT_INTERFACE_INTERNAL("bsmempak", SNS_BSMEMPAK)
-SLOT_INTERFACE_END
+static void bsx_cart(device_slot_interface &device)
+{
+ device.option_add_internal("bsmempak", SNS_BSMEMPAK);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/snes/sgb.cpp b/src/devices/bus/snes/sgb.cpp
index d668e96b45b..f3f150e47a3 100644
--- a/src/devices/bus/snes/sgb.cpp
+++ b/src/devices/bus/snes/sgb.cpp
@@ -154,10 +154,11 @@ WRITE8_MEMBER( sns_rom_sgb_device::gb_timer_callback )
}
-static SLOT_INTERFACE_START(supergb_cart)
- SLOT_INTERFACE_INTERNAL("rom", GB_STD_ROM)
- SLOT_INTERFACE_INTERNAL("rom_mbc1", GB_ROM_MBC1)
-SLOT_INTERFACE_END
+static void supergb_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", GB_STD_ROM);
+ device.option_add_internal("rom_mbc1", GB_ROM_MBC1);
+}
MACHINE_CONFIG_START(sns_rom_sgb1_device::device_add_mconfig)
diff --git a/src/devices/bus/snes/snes_carts.cpp b/src/devices/bus/snes/snes_carts.cpp
index a450b7fe4c0..274b1e0af9b 100644
--- a/src/devices/bus/snes/snes_carts.cpp
+++ b/src/devices/bus/snes/snes_carts.cpp
@@ -22,46 +22,47 @@
#include "event.h"
-SLOT_INTERFACE_START(snes_cart)
- SLOT_INTERFACE_INTERNAL("lorom", SNS_LOROM)
- SLOT_INTERFACE_INTERNAL("lorom_bsx", SNS_LOROM_BSX) // LoROM + BS-X slot - unsupported
- SLOT_INTERFACE_INTERNAL("lorom_cx4", SNS_LOROM) // Cart + CX4 - unsupported
- SLOT_INTERFACE_INTERNAL("lorom_dsp", SNS_LOROM_NECDSP)
- SLOT_INTERFACE_INTERNAL("lorom_dsp4", SNS_LOROM_NECDSP)
- SLOT_INTERFACE_INTERNAL("lorom_obc1", SNS_LOROM_OBC1)
- SLOT_INTERFACE_INTERNAL("lorom_sa1", SNS_LOROM_SA1) // Cart + SA1 - unsupported
- SLOT_INTERFACE_INTERNAL("lorom_sdd1", SNS_LOROM_SDD1)
- SLOT_INTERFACE_INTERNAL("lorom_sfx", SNS_LOROM_SUPERFX)
- SLOT_INTERFACE_INTERNAL("lorom_sgb", SNS_LOROM_SUPERGB) // SuperGB base cart - unsupported
- SLOT_INTERFACE_INTERNAL("lorom_sgb2", SNS_LOROM_SUPERGB2) // SuperGB2 base cart - unsupported
- SLOT_INTERFACE_INTERNAL("lorom_st010", SNS_LOROM_SETA10)
- SLOT_INTERFACE_INTERNAL("lorom_st011", SNS_LOROM_SETA11)
- SLOT_INTERFACE_INTERNAL("lorom_st018", SNS_LOROM) // Cart + ST018 - unsupported
- SLOT_INTERFACE_INTERNAL("lorom_sufami", SNS_LOROM_SUFAMI) // Sufami Turbo base cart
- SLOT_INTERFACE_INTERNAL("hirom", SNS_HIROM)
- SLOT_INTERFACE_INTERNAL("hirom_bsx", SNS_HIROM_BSX) // HiROM + BS-X slot - unsupported
- SLOT_INTERFACE_INTERNAL("hirom_dsp", SNS_HIROM_NECDSP)
- SLOT_INTERFACE_INTERNAL("hirom_spc7110", SNS_HIROM_SPC7110)
- SLOT_INTERFACE_INTERNAL("hirom_spcrtc", SNS_HIROM_SPC7110_RTC)
- SLOT_INTERFACE_INTERNAL("hirom_srtc", SNS_HIROM_SRTC)
- SLOT_INTERFACE_INTERNAL("bsxrom", SNS_ROM_BSX) // BS-X base cart - partial support only
- SLOT_INTERFACE_INTERNAL("pfest94", SNS_PFEST94)
+void snes_cart(device_slot_interface &device)
+{
+ device.option_add_internal("lorom", SNS_LOROM);
+ device.option_add_internal("lorom_bsx", SNS_LOROM_BSX); // LoROM + BS-X slot - unsupported
+ device.option_add_internal("lorom_cx4", SNS_LOROM); // Cart + CX4 - unsupported
+ device.option_add_internal("lorom_dsp", SNS_LOROM_NECDSP);
+ device.option_add_internal("lorom_dsp4", SNS_LOROM_NECDSP);
+ device.option_add_internal("lorom_obc1", SNS_LOROM_OBC1);
+ device.option_add_internal("lorom_sa1", SNS_LOROM_SA1); // Cart + SA1 - unsupported
+ device.option_add_internal("lorom_sdd1", SNS_LOROM_SDD1);
+ device.option_add_internal("lorom_sfx", SNS_LOROM_SUPERFX);
+ device.option_add_internal("lorom_sgb", SNS_LOROM_SUPERGB); // SuperGB base cart - unsupported
+ device.option_add_internal("lorom_sgb2", SNS_LOROM_SUPERGB2); // SuperGB2 base cart - unsupported
+ device.option_add_internal("lorom_st010", SNS_LOROM_SETA10);
+ device.option_add_internal("lorom_st011", SNS_LOROM_SETA11);
+ device.option_add_internal("lorom_st018", SNS_LOROM); // Cart + ST018 - unsupported
+ device.option_add_internal("lorom_sufami", SNS_LOROM_SUFAMI); // Sufami Turbo base cart
+ device.option_add_internal("hirom", SNS_HIROM);
+ device.option_add_internal("hirom_bsx", SNS_HIROM_BSX); // HiROM + BS-X slot - unsupported
+ device.option_add_internal("hirom_dsp", SNS_HIROM_NECDSP);
+ device.option_add_internal("hirom_spc7110", SNS_HIROM_SPC7110);
+ device.option_add_internal("hirom_spcrtc", SNS_HIROM_SPC7110_RTC);
+ device.option_add_internal("hirom_srtc", SNS_HIROM_SRTC);
+ device.option_add_internal("bsxrom", SNS_ROM_BSX); // BS-X base cart - partial support only
+ device.option_add_internal("pfest94", SNS_PFEST94);
// pirate carts
- SLOT_INTERFACE_INTERNAL("lorom_poke", SNS_LOROM_POKEMON)
- SLOT_INTERFACE_INTERNAL("lorom_tekken2", SNS_LOROM_TEKKEN2)
- SLOT_INTERFACE_INTERNAL("lorom_sbld", SNS_LOROM_SOULBLAD)
- SLOT_INTERFACE_INTERNAL("lorom_mcpir1", SNS_LOROM_MCPIR1)
- SLOT_INTERFACE_INTERNAL("lorom_mcpir2", SNS_LOROM_MCPIR2)
- SLOT_INTERFACE_INTERNAL("lorom_20col", SNS_LOROM_20COL)
- SLOT_INTERFACE_INTERNAL("lorom_pija", SNS_LOROM_BANANA) // not working yet
- SLOT_INTERFACE_INTERNAL("lorom_bugs", SNS_LOROM_BUGSLIFE) // not working yet
+ device.option_add_internal("lorom_poke", SNS_LOROM_POKEMON);
+ device.option_add_internal("lorom_tekken2", SNS_LOROM_TEKKEN2);
+ device.option_add_internal("lorom_sbld", SNS_LOROM_SOULBLAD);
+ device.option_add_internal("lorom_mcpir1", SNS_LOROM_MCPIR1);
+ device.option_add_internal("lorom_mcpir2", SNS_LOROM_MCPIR2);
+ device.option_add_internal("lorom_20col", SNS_LOROM_20COL);
+ device.option_add_internal("lorom_pija", SNS_LOROM_BANANA); // not working yet
+ device.option_add_internal("lorom_bugs", SNS_LOROM_BUGSLIFE); // not working yet
// legacy slots to support DSPx games from fullpath
- SLOT_INTERFACE_INTERNAL("lorom_dsp1leg", SNS_LOROM_NECDSP1_LEG)
- SLOT_INTERFACE_INTERNAL("lorom_dsp1bleg",SNS_LOROM_NECDSP1B_LEG)
- SLOT_INTERFACE_INTERNAL("lorom_dsp2leg", SNS_LOROM_NECDSP2_LEG)
- SLOT_INTERFACE_INTERNAL("lorom_dsp3leg", SNS_LOROM_NECDSP3_LEG)
- SLOT_INTERFACE_INTERNAL("lorom_dsp4leg", SNS_LOROM_NECDSP4_LEG)
- SLOT_INTERFACE_INTERNAL("hirom_dsp1leg", SNS_HIROM_NECDSP1_LEG)
- SLOT_INTERFACE_INTERNAL("lorom_st10leg", SNS_LOROM_SETA10_LEG)
- SLOT_INTERFACE_INTERNAL("lorom_st11leg", SNS_LOROM_SETA11_LEG)
-SLOT_INTERFACE_END
+ device.option_add_internal("lorom_dsp1leg", SNS_LOROM_NECDSP1_LEG);
+ device.option_add_internal("lorom_dsp1bleg",SNS_LOROM_NECDSP1B_LEG);
+ device.option_add_internal("lorom_dsp2leg", SNS_LOROM_NECDSP2_LEG);
+ device.option_add_internal("lorom_dsp3leg", SNS_LOROM_NECDSP3_LEG);
+ device.option_add_internal("lorom_dsp4leg", SNS_LOROM_NECDSP4_LEG);
+ device.option_add_internal("hirom_dsp1leg", SNS_HIROM_NECDSP1_LEG);
+ device.option_add_internal("lorom_st10leg", SNS_LOROM_SETA10_LEG);
+ device.option_add_internal("lorom_st11leg", SNS_LOROM_SETA11_LEG);
+}
diff --git a/src/devices/bus/snes/snes_carts.h b/src/devices/bus/snes/snes_carts.h
index 9778bba903f..9c140899734 100644
--- a/src/devices/bus/snes/snes_carts.h
+++ b/src/devices/bus/snes/snes_carts.h
@@ -13,6 +13,6 @@
// supported devices
-SLOT_INTERFACE_EXTERN(snes_cart);
+void snes_cart(device_slot_interface &device);
#endif // MAME_BUS_SNES_SNES_CARTS_H
diff --git a/src/devices/bus/snes/sufami.cpp b/src/devices/bus/snes/sufami.cpp
index 9eb2236161c..1812b61e0fe 100644
--- a/src/devices/bus/snes/sufami.cpp
+++ b/src/devices/bus/snes/sufami.cpp
@@ -46,9 +46,10 @@ void sns_rom_strom_device::device_start()
}
-static SLOT_INTERFACE_START(sufamiturbo_cart)
- SLOT_INTERFACE_INTERNAL("strom", SNS_STROM)
-SLOT_INTERFACE_END
+static void sufamiturbo_cart(device_slot_interface &device)
+{
+ device.option_add_internal("strom", SNS_STROM);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/snes_ctrl/ctrl.cpp b/src/devices/bus/snes_ctrl/ctrl.cpp
index b0cf145072f..09079bd9c91 100644
--- a/src/devices/bus/snes_ctrl/ctrl.cpp
+++ b/src/devices/bus/snes_ctrl/ctrl.cpp
@@ -126,13 +126,14 @@ void snes_control_port_device::port_poll()
// SLOT_INTERFACE( snes_control_port_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( snes_control_port_devices )
- SLOT_INTERFACE("joypad", SNES_JOYPAD)
- SLOT_INTERFACE("mouse", SNES_MOUSE)
- SLOT_INTERFACE("multitap", SNES_MULTITAP)
- SLOT_INTERFACE("pachinko", SNES_PACHINKO)
- SLOT_INTERFACE("sscope", SNES_SUPERSCOPE)
- SLOT_INTERFACE("twintap", SNES_TWINTAP)
- SLOT_INTERFACE("barcode_battler", SNES_BARCODE_BATTLER)
- SLOT_INTERFACE("miracle_piano", SNES_MIRACLE)
-SLOT_INTERFACE_END
+void snes_control_port_devices(device_slot_interface &device)
+{
+ device.option_add("joypad", SNES_JOYPAD);
+ device.option_add("mouse", SNES_MOUSE);
+ device.option_add("multitap", SNES_MULTITAP);
+ device.option_add("pachinko", SNES_PACHINKO);
+ device.option_add("sscope", SNES_SUPERSCOPE);
+ device.option_add("twintap", SNES_TWINTAP);
+ device.option_add("barcode_battler", SNES_BARCODE_BATTLER);
+ device.option_add("miracle_piano", SNES_MIRACLE);
+}
diff --git a/src/devices/bus/snes_ctrl/ctrl.h b/src/devices/bus/snes_ctrl/ctrl.h
index 1e23d1a5ae4..ee139752f28 100644
--- a/src/devices/bus/snes_ctrl/ctrl.h
+++ b/src/devices/bus/snes_ctrl/ctrl.h
@@ -94,7 +94,7 @@ DECLARE_DEVICE_TYPE(SNES_CONTROL_PORT, snes_control_port_device)
downcast<snes_control_port_device &>(*device).set_gunlatch_callback(snesctrl_gunlatch_delegate(&_class::_method, #_class "::" #_method, this));
-SLOT_INTERFACE_EXTERN( snes_control_port_devices );
+void snes_control_port_devices(device_slot_interface &device);
#endif // MAME_BUS_SNES_CTRL_CTRL_H
diff --git a/src/devices/bus/snes_ctrl/multitap.cpp b/src/devices/bus/snes_ctrl/multitap.cpp
index 01c91cb8687..262ef56fd26 100644
--- a/src/devices/bus/snes_ctrl/multitap.cpp
+++ b/src/devices/bus/snes_ctrl/multitap.cpp
@@ -36,10 +36,11 @@ ioport_constructor snes_multitap_device::device_input_ports() const
}
-static SLOT_INTERFACE_START( snes_multitap )
- SLOT_INTERFACE("joypad", SNES_JOYPAD)
- SLOT_INTERFACE("twintap", SNES_TWINTAP)
-SLOT_INTERFACE_END
+static void snes_multitap(device_slot_interface &device)
+{
+ device.option_add("joypad", SNES_JOYPAD);
+ device.option_add("twintap", SNES_TWINTAP);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/spc1000/fdd.cpp b/src/devices/bus/spc1000/fdd.cpp
index 7d8f94e2653..21d28f2710a 100644
--- a/src/devices/bus/spc1000/fdd.cpp
+++ b/src/devices/bus/spc1000/fdd.cpp
@@ -71,9 +71,10 @@ void spc1000_fdd_exp_device::sd725_io(address_map &map)
map(0xfc, 0xff).rw("d8255_master", FUNC(i8255_device::read), FUNC(i8255_device::write));
}
-static SLOT_INTERFACE_START( sd725_floppies )
- SLOT_INTERFACE("sd320", EPSON_SD_320)
-SLOT_INTERFACE_END
+static void sd725_floppies(device_slot_interface &device)
+{
+ device.option_add("sd320", EPSON_SD_320);
+}
//-------------------------------------------------
// device_add_mconfig
diff --git a/src/devices/bus/spectrum/exp.cpp b/src/devices/bus/spectrum/exp.cpp
index 06a338ffd8a..c885bfde089 100644
--- a/src/devices/bus/spectrum/exp.cpp
+++ b/src/devices/bus/spectrum/exp.cpp
@@ -169,28 +169,31 @@ WRITE8_MEMBER(spectrum_expansion_slot_device::mreq_w)
#include "uspeech.h"
-SLOT_INTERFACE_START( spectrum_expansion_devices )
- SLOT_INTERFACE("intf1", SPECTRUM_INTF1)
- SLOT_INTERFACE("intf2", SPECTRUM_INTF2)
- SLOT_INTERFACE("fuller", SPECTRUM_FULLER)
- SLOT_INTERFACE("kempjoy", SPECTRUM_KEMPJOY)
- SLOT_INTERFACE("melodik", SPECTRUM_MELODIK)
- SLOT_INTERFACE("mikroplus", SPECTRUM_MIKROPLUS)
- SLOT_INTERFACE("protek", SPECTRUM_PROTEK)
- SLOT_INTERFACE("uslot", SPECTRUM_USLOT)
- SLOT_INTERFACE("usource", SPECTRUM_USOURCE)
- SLOT_INTERFACE("uspeech", SPECTRUM_USPEECH)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( spec128_expansion_devices )
- SLOT_INTERFACE("intf1", SPECTRUM_INTF1)
- SLOT_INTERFACE("intf2", SPECTRUM_INTF2)
- SLOT_INTERFACE("kempjoy", SPECTRUM_KEMPJOY)
- SLOT_INTERFACE("mikroplus", SPECTRUM_MIKROPLUS)
- SLOT_INTERFACE("plus2test", SPECTRUM_PLUS2TEST)
- SLOT_INTERFACE("protek", SPECTRUM_PROTEK)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( specpls3_expansion_devices )
-SLOT_INTERFACE_END
+void spectrum_expansion_devices(device_slot_interface &device)
+{
+ device.option_add("intf1", SPECTRUM_INTF1);
+ device.option_add("intf2", SPECTRUM_INTF2);
+ device.option_add("fuller", SPECTRUM_FULLER);
+ device.option_add("kempjoy", SPECTRUM_KEMPJOY);
+ device.option_add("melodik", SPECTRUM_MELODIK);
+ device.option_add("mikroplus", SPECTRUM_MIKROPLUS);
+ device.option_add("protek", SPECTRUM_PROTEK);
+ device.option_add("uslot", SPECTRUM_USLOT);
+ device.option_add("usource", SPECTRUM_USOURCE);
+ device.option_add("uspeech", SPECTRUM_USPEECH);
+}
+
+void spec128_expansion_devices(device_slot_interface &device)
+{
+ device.option_add("intf1", SPECTRUM_INTF1);
+ device.option_add("intf2", SPECTRUM_INTF2);
+ device.option_add("kempjoy", SPECTRUM_KEMPJOY);
+ device.option_add("mikroplus", SPECTRUM_MIKROPLUS);
+ device.option_add("plus2test", SPECTRUM_PLUS2TEST);
+ device.option_add("protek", SPECTRUM_PROTEK);
+}
+
+void specpls3_expansion_devices(device_slot_interface &device)
+{
+}
diff --git a/src/devices/bus/spectrum/exp.h b/src/devices/bus/spectrum/exp.h
index 1110a3e7021..80c6859fdda 100644
--- a/src/devices/bus/spectrum/exp.h
+++ b/src/devices/bus/spectrum/exp.h
@@ -137,9 +137,9 @@ protected:
// device type definition
DECLARE_DEVICE_TYPE(SPECTRUM_EXPANSION_SLOT, spectrum_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( spectrum_expansion_devices );
-SLOT_INTERFACE_EXTERN( spec128_expansion_devices );
-SLOT_INTERFACE_EXTERN( specpls3_expansion_devices );
+void spectrum_expansion_devices(device_slot_interface &device);
+void spec128_expansion_devices(device_slot_interface &device);
+void specpls3_expansion_devices(device_slot_interface &device);
#endif // MAME_BUS_SPECTRUM_EXP_H
diff --git a/src/devices/bus/ss50/interface.cpp b/src/devices/bus/ss50/interface.cpp
index 3d51f76ba53..2beb4e85770 100644
--- a/src/devices/bus/ss50/interface.cpp
+++ b/src/devices/bus/ss50/interface.cpp
@@ -213,10 +213,11 @@ ss50_card_interface::ss50_card_interface(const machine_config &mconfig, device_t
{
}
-SLOT_INTERFACE_START(ss50_default_2rs_devices)
- SLOT_INTERFACE("mpc", SS50_MPC)
- //SLOT_INTERFACE("mpl", SS50_MPL)
- //SLOT_INTERFACE("mpn", SS50_MPN)
- SLOT_INTERFACE("mps", SS50_MPS)
- //SLOT_INTERFACE("mpt", SS50_MPT)
-SLOT_INTERFACE_END
+void ss50_default_2rs_devices(device_slot_interface &device)
+{
+ device.option_add("mpc", SS50_MPC);
+ //device.option_add("mpl", SS50_MPL);
+ //device.option_add("mpn", SS50_MPN);
+ device.option_add("mps", SS50_MPS);
+ //device.option_add("mpt", SS50_MPT);
+}
diff --git a/src/devices/bus/ss50/interface.h b/src/devices/bus/ss50/interface.h
index b6917ba5f7b..5b79e00894c 100644
--- a/src/devices/bus/ss50/interface.h
+++ b/src/devices/bus/ss50/interface.h
@@ -104,7 +104,7 @@ private:
// device type definition
DECLARE_DEVICE_TYPE(SS50_INTERFACE, ss50_interface_port_device)
-SLOT_INTERFACE_EXTERN(ss50_default_2rs_devices);
-//SLOT_INTERFACE_EXTERN(ss50_default_4rs_devices);
+void ss50_default_2rs_devices(device_slot_interface &device);
+//void ss50_default_4rs_devices(device_slot_interface &device);
#endif
diff --git a/src/devices/bus/ss50/mpc.cpp b/src/devices/bus/ss50/mpc.cpp
index e78697be390..146556fc853 100644
--- a/src/devices/bus/ss50/mpc.cpp
+++ b/src/devices/bus/ss50/mpc.cpp
@@ -113,7 +113,7 @@ MACHINE_CONFIG_START(ss50_mpc_device::device_add_mconfig)
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE(ss50_mpc_device, serial_input_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_INPUT_MERGER_ALL_HIGH("outgate")
MCFG_INPUT_MERGER_OUTPUT_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd))
diff --git a/src/devices/bus/ss50/mps.cpp b/src/devices/bus/ss50/mps.cpp
index 57ef58e10f5..1650ddc89c9 100644
--- a/src/devices/bus/ss50/mps.cpp
+++ b/src/devices/bus/ss50/mps.cpp
@@ -104,7 +104,7 @@ MACHINE_CONFIG_START(ss50_mps_device::device_add_mconfig)
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("acia", acia6850_device, write_rxd))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MACHINE_CONFIG_END
diff --git a/src/devices/bus/sunkbd/sunkbd.cpp b/src/devices/bus/sunkbd/sunkbd.cpp
index 63f7509ef61..2ac0eb65b4c 100644
--- a/src/devices/bus/sunkbd/sunkbd.cpp
+++ b/src/devices/bus/sunkbd/sunkbd.cpp
@@ -91,11 +91,12 @@ device_sun_keyboard_port_interface::~device_sun_keyboard_port_interface()
#include "hlekbd.h"
-SLOT_INTERFACE_START( default_sun_keyboard_devices )
- SLOT_INTERFACE("type3hle", SUN_TYPE3_HLE_KEYBOARD)
- SLOT_INTERFACE("type4hle", SUN_TYPE4_HLE_KEYBOARD)
- SLOT_INTERFACE("type5hle", SUN_TYPE5_HLE_KEYBOARD)
- SLOT_INTERFACE("type5gbhle", SUN_TYPE5_GB_HLE_KEYBOARD)
- SLOT_INTERFACE("type5sehle", SUN_TYPE5_SE_HLE_KEYBOARD)
- SLOT_INTERFACE("type5jphle", SUN_TYPE5_JP_HLE_KEYBOARD)
-SLOT_INTERFACE_END
+void default_sun_keyboard_devices(device_slot_interface &device)
+{
+ device.option_add("type3hle", SUN_TYPE3_HLE_KEYBOARD);
+ device.option_add("type4hle", SUN_TYPE4_HLE_KEYBOARD);
+ device.option_add("type5hle", SUN_TYPE5_HLE_KEYBOARD);
+ device.option_add("type5gbhle", SUN_TYPE5_GB_HLE_KEYBOARD);
+ device.option_add("type5sehle", SUN_TYPE5_SE_HLE_KEYBOARD);
+ device.option_add("type5jphle", SUN_TYPE5_JP_HLE_KEYBOARD);
+}
diff --git a/src/devices/bus/sunkbd/sunkbd.h b/src/devices/bus/sunkbd/sunkbd.h
index 9693e95cd4e..f0a0daeeb08 100644
--- a/src/devices/bus/sunkbd/sunkbd.h
+++ b/src/devices/bus/sunkbd/sunkbd.h
@@ -76,6 +76,6 @@ protected:
DECLARE_DEVICE_TYPE(SUNKBD_PORT, sun_keyboard_port_device)
-SLOT_INTERFACE_EXTERN( default_sun_keyboard_devices );
+void default_sun_keyboard_devices(device_slot_interface &device);
#endif // MAME_DEVICES_SUNKBD_SUNKBD_H
diff --git a/src/devices/bus/svi3x8/expander/modules.cpp b/src/devices/bus/svi3x8/expander/modules.cpp
index 1fde553ae63..e701353833e 100644
--- a/src/devices/bus/svi3x8/expander/modules.cpp
+++ b/src/devices/bus/svi3x8/expander/modules.cpp
@@ -13,8 +13,9 @@
#include "sv602.h"
#include "sv603.h"
-SLOT_INTERFACE_START( svi_expander_modules )
- SLOT_INTERFACE("sv601", SV601)
- SLOT_INTERFACE("sv602", SV602)
- SLOT_INTERFACE("sv603", SV603)
-SLOT_INTERFACE_END
+void svi_expander_modules(device_slot_interface &device)
+{
+ device.option_add("sv601", SV601);
+ device.option_add("sv602", SV602);
+ device.option_add("sv603", SV603);
+}
diff --git a/src/devices/bus/svi3x8/expander/modules.h b/src/devices/bus/svi3x8/expander/modules.h
index 2534b7713f1..1c1b94d01f1 100644
--- a/src/devices/bus/svi3x8/expander/modules.h
+++ b/src/devices/bus/svi3x8/expander/modules.h
@@ -11,6 +11,6 @@
#pragma once
-SLOT_INTERFACE_EXTERN( svi_expander_modules );
+void svi_expander_modules(device_slot_interface &device);
#endif // MAME_BUS_SVI3X8_EXPANDER_MODULES_H
diff --git a/src/devices/bus/svi3x8/slot/cards.cpp b/src/devices/bus/svi3x8/slot/cards.cpp
index 5d0192f91ea..f445162b83b 100644
--- a/src/devices/bus/svi3x8/slot/cards.cpp
+++ b/src/devices/bus/svi3x8/slot/cards.cpp
@@ -17,21 +17,23 @@
#include "sv807.h"
-SLOT_INTERFACE_START( svi_slot_cards )
- SLOT_INTERFACE("sv801", SV801)
- SLOT_INTERFACE("sv802", SV802)
- SLOT_INTERFACE("sv803", SV803)
- SLOT_INTERFACE("sv805", SV805)
- SLOT_INTERFACE("sv806", SV806)
- SLOT_INTERFACE("sv807", SV807)
-SLOT_INTERFACE_END
+void svi_slot_cards(device_slot_interface &device)
+{
+ device.option_add("sv801", SV801);
+ device.option_add("sv802", SV802);
+ device.option_add("sv803", SV803);
+ device.option_add("sv805", SV805);
+ device.option_add("sv806", SV806);
+ device.option_add("sv807", SV807);
+}
// The single slot expander doesn't support the disk controller, since
// it requires its own power supply to power the disk drives
-SLOT_INTERFACE_START( sv602_slot_cards )
- SLOT_INTERFACE("sv802", SV802)
- SLOT_INTERFACE("sv803", SV803)
- SLOT_INTERFACE("sv805", SV805)
- SLOT_INTERFACE("sv806", SV806)
- SLOT_INTERFACE("sv807", SV807)
-SLOT_INTERFACE_END
+void sv602_slot_cards(device_slot_interface &device)
+{
+ device.option_add("sv802", SV802);
+ device.option_add("sv803", SV803);
+ device.option_add("sv805", SV805);
+ device.option_add("sv806", SV806);
+ device.option_add("sv807", SV807);
+}
diff --git a/src/devices/bus/svi3x8/slot/cards.h b/src/devices/bus/svi3x8/slot/cards.h
index 6bca329078b..a6bbb382804 100644
--- a/src/devices/bus/svi3x8/slot/cards.h
+++ b/src/devices/bus/svi3x8/slot/cards.h
@@ -11,7 +11,7 @@
#pragma once
-SLOT_INTERFACE_EXTERN( svi_slot_cards );
-SLOT_INTERFACE_EXTERN( sv602_slot_cards );
+void svi_slot_cards(device_slot_interface &device);
+void sv602_slot_cards(device_slot_interface &device);
#endif // MAME_BUS_SVI3X8_SLOT_CARDS_H
diff --git a/src/devices/bus/svi3x8/slot/sv801.cpp b/src/devices/bus/svi3x8/slot/sv801.cpp
index c7137d3d8d6..c47bdaf370f 100644
--- a/src/devices/bus/svi3x8/slot/sv801.cpp
+++ b/src/devices/bus/svi3x8/slot/sv801.cpp
@@ -22,9 +22,10 @@ FLOPPY_FORMATS_MEMBER( sv801_device::floppy_formats )
FLOPPY_SVI_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( svi_floppies )
- SLOT_INTERFACE("dd", FLOPPY_525_DD)
-SLOT_INTERFACE_END
+static void svi_floppies(device_slot_interface &device)
+{
+ device.option_add("dd", FLOPPY_525_DD);
+}
//-------------------------------------------------
// device_add_mconfig - add device configuration
diff --git a/src/devices/bus/ti8x/ti8x.cpp b/src/devices/bus/ti8x/ti8x.cpp
index e998ded593c..1490c76755b 100644
--- a/src/devices/bus/ti8x/ti8x.cpp
+++ b/src/devices/bus/ti8x/ti8x.cpp
@@ -612,10 +612,11 @@ void device_ti8x_link_port_byte_interface::bit_received(bool data)
#include "teeconn.h"
#include "tispeaker.h"
-SLOT_INTERFACE_START(default_ti8x_link_devices)
- SLOT_INTERFACE("bitsock", TI8X_BIT_SOCKET)
- SLOT_INTERFACE("glinkhle", TI8X_GRAPH_LINK_HLE)
- SLOT_INTERFACE("tee", TI8X_TEE_CONNECTOR)
- SLOT_INTERFACE("monospkr", TI8X_SPEAKER_MONO)
- SLOT_INTERFACE("stereospkr", TI8X_SPEAKER_STEREO)
-SLOT_INTERFACE_END
+void default_ti8x_link_devices(device_slot_interface &device)
+{
+ device.option_add("bitsock", TI8X_BIT_SOCKET);
+ device.option_add("glinkhle", TI8X_GRAPH_LINK_HLE);
+ device.option_add("tee", TI8X_TEE_CONNECTOR);
+ device.option_add("monospkr", TI8X_SPEAKER_MONO);
+ device.option_add("stereospkr", TI8X_SPEAKER_STEREO);
+}
diff --git a/src/devices/bus/ti8x/ti8x.h b/src/devices/bus/ti8x/ti8x.h
index 91b86806885..8b90a99b843 100644
--- a/src/devices/bus/ti8x/ti8x.h
+++ b/src/devices/bus/ti8x/ti8x.h
@@ -200,6 +200,6 @@ private:
};
-SLOT_INTERFACE_EXTERN( default_ti8x_link_devices );
+void default_ti8x_link_devices(device_slot_interface &device);
#endif // MAME_DEVICES_BUS_TI8X_TI8X_H
diff --git a/src/devices/bus/ti99/colorbus/colorbus.cpp b/src/devices/bus/ti99/colorbus/colorbus.cpp
index 993371f5fcd..097f4c49924 100644
--- a/src/devices/bus/ti99/colorbus/colorbus.cpp
+++ b/src/devices/bus/ti99/colorbus/colorbus.cpp
@@ -64,6 +64,7 @@ void device_ti99_colorbus_interface::interface_config_complete()
} } } // end namespace bus::ti99::colorbus
-SLOT_INTERFACE_START( ti99_colorbus_port )
- SLOT_INTERFACE("busmouse", TI99_BUSMOUSE)
-SLOT_INTERFACE_END
+void ti99_colorbus_port(device_slot_interface &device)
+{
+ device.option_add("busmouse", TI99_BUSMOUSE);
+}
diff --git a/src/devices/bus/ti99/colorbus/colorbus.h b/src/devices/bus/ti99/colorbus/colorbus.h
index 7d7dea7620c..05f69aea0c5 100644
--- a/src/devices/bus/ti99/colorbus/colorbus.h
+++ b/src/devices/bus/ti99/colorbus/colorbus.h
@@ -59,7 +59,7 @@ private:
} } } // end namespace bus::ti99::colorbus
-SLOT_INTERFACE_EXTERN(ti99_colorbus_port);
+void ti99_colorbus_port(device_slot_interface &device);
#define MCFG_COLORBUS_MOUSE_ADD( _tag ) \
MCFG_DEVICE_ADD(_tag, TI99_COLORBUS, 0) \
diff --git a/src/devices/bus/ti99/gromport/gromport.cpp b/src/devices/bus/ti99/gromport/gromport.cpp
index 0a18076ebf8..f1b4c27f788 100644
--- a/src/devices/bus/ti99/gromport/gromport.cpp
+++ b/src/devices/bus/ti99/gromport/gromport.cpp
@@ -285,13 +285,15 @@ void cartridge_connector_device::device_config_complete()
} } } // end namespace bus::ti99::gromport
-SLOT_INTERFACE_START( gromport4 )
- SLOT_INTERFACE("single", TI99_GROMPORT_SINGLE)
- SLOT_INTERFACE("multi", TI99_GROMPORT_MULTI)
- SLOT_INTERFACE("gkracker", TI99_GROMPORT_GK)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( gromport8 )
- SLOT_INTERFACE("single", TI99_GROMPORT_SINGLE)
- SLOT_INTERFACE("multi", TI99_GROMPORT_MULTI)
-SLOT_INTERFACE_END
+void gromport4(device_slot_interface &device)
+{
+ device.option_add("single", TI99_GROMPORT_SINGLE);
+ device.option_add("multi", TI99_GROMPORT_MULTI);
+ device.option_add("gkracker", TI99_GROMPORT_GK);
+}
+
+void gromport8(device_slot_interface &device)
+{
+ device.option_add("single", TI99_GROMPORT_SINGLE);
+ device.option_add("multi", TI99_GROMPORT_MULTI);
+}
diff --git a/src/devices/bus/ti99/gromport/gromport.h b/src/devices/bus/ti99/gromport/gromport.h
index 1206b231ce8..09b4a72bcde 100644
--- a/src/devices/bus/ti99/gromport/gromport.h
+++ b/src/devices/bus/ti99/gromport/gromport.h
@@ -92,8 +92,8 @@ protected:
} } } // end namespace bus::ti99::gromport
-SLOT_INTERFACE_EXTERN(gromport4);
-SLOT_INTERFACE_EXTERN(gromport8);
+void gromport4(device_slot_interface &device);
+void gromport8(device_slot_interface &device);
#define MCFG_GROMPORT4_ADD( _tag ) \
MCFG_DEVICE_ADD(_tag, TI99_GROMPORT, 0) \
diff --git a/src/devices/bus/ti99/internal/ioport.cpp b/src/devices/bus/ti99/internal/ioport.cpp
index a7964d30406..1c9714c6682 100644
--- a/src/devices/bus/ti99/internal/ioport.cpp
+++ b/src/devices/bus/ti99/internal/ioport.cpp
@@ -167,11 +167,13 @@ WRITE_LINE_MEMBER(ioport_attached_device::set_ready)
} } } // end namespace bus::ti99::internal
-SLOT_INTERFACE_START( ti99_io_port )
- SLOT_INTERFACE("peb", TI99_PERIBOX)
-SLOT_INTERFACE_END
+void ti99_io_port(device_slot_interface &device)
+{
+ device.option_add("peb", TI99_PERIBOX);
+}
-SLOT_INTERFACE_START( ti99_io_port_ev )
- SLOT_INTERFACE("peb", TI99_PERIBOX_EV)
-SLOT_INTERFACE_END
+void ti99_io_port_ev(device_slot_interface &device)
+{
+ device.option_add("peb", TI99_PERIBOX_EV);
+}
diff --git a/src/devices/bus/ti99/internal/ioport.h b/src/devices/bus/ti99/internal/ioport.h
index f63518705d4..4c21a11651e 100644
--- a/src/devices/bus/ti99/internal/ioport.h
+++ b/src/devices/bus/ti99/internal/ioport.h
@@ -87,8 +87,8 @@ private:
DECLARE_DEVICE_TYPE_NS(TI99_IOPORT, bus::ti99::internal, ioport_device)
-SLOT_INTERFACE_EXTERN(ti99_io_port);
-SLOT_INTERFACE_EXTERN(ti99_io_port_ev);
+void ti99_io_port(device_slot_interface &device);
+void ti99_io_port_ev(device_slot_interface &device);
#define MCFG_IOPORT_ADD( _tag ) \
MCFG_DEVICE_ADD(_tag, TI99_IOPORT, 0) \
diff --git a/src/devices/bus/ti99/joyport/joyport.cpp b/src/devices/bus/ti99/joyport/joyport.cpp
index 806d04e6df1..76173bf1e10 100644
--- a/src/devices/bus/ti99/joyport/joyport.cpp
+++ b/src/devices/bus/ti99/joyport/joyport.cpp
@@ -104,18 +104,21 @@ void device_ti99_joyport_interface::interface_config_complete()
} } } // end namespace bus::ti99::joyport
-SLOT_INTERFACE_START( ti99_joystick_port )
- SLOT_INTERFACE("twinjoy", TI99_JOYSTICK)
- SLOT_INTERFACE("mecmouse", TI99_MECMOUSE)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( ti99_joystick_port_gen )
- SLOT_INTERFACE("twinjoy", TI99_JOYSTICK)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START( ti99_joystick_port_994 )
- SLOT_INTERFACE("twinjoy", TI99_JOYSTICK)
- SLOT_INTERFACE("mecmouse", TI99_MECMOUSE)
- SLOT_INTERFACE("handset", TI99_HANDSET)
-SLOT_INTERFACE_END
+void ti99_joystick_port(device_slot_interface &device)
+{
+ device.option_add("twinjoy", TI99_JOYSTICK);
+ device.option_add("mecmouse", TI99_MECMOUSE);
+}
+
+void ti99_joystick_port_gen(device_slot_interface &device)
+{
+ device.option_add("twinjoy", TI99_JOYSTICK);
+}
+
+void ti99_joystick_port_994(device_slot_interface &device)
+{
+ device.option_add("twinjoy", TI99_JOYSTICK);
+ device.option_add("mecmouse", TI99_MECMOUSE);
+ device.option_add("handset", TI99_HANDSET);
+}
diff --git a/src/devices/bus/ti99/joyport/joyport.h b/src/devices/bus/ti99/joyport/joyport.h
index bf3f5bcf1f3..c455058c387 100644
--- a/src/devices/bus/ti99/joyport/joyport.h
+++ b/src/devices/bus/ti99/joyport/joyport.h
@@ -68,9 +68,9 @@ private:
} } } // end namespace bus::ti99::joyport
-SLOT_INTERFACE_EXTERN(ti99_joystick_port);
-SLOT_INTERFACE_EXTERN(ti99_joystick_port_994);
-SLOT_INTERFACE_EXTERN(ti99_joystick_port_gen);
+void ti99_joystick_port(device_slot_interface &device);
+void ti99_joystick_port_994(device_slot_interface &device);
+void ti99_joystick_port_gen(device_slot_interface &device);
DECLARE_DEVICE_TYPE_NS(TI99_JOYPORT, bus::ti99::joyport, joyport_device)
diff --git a/src/devices/bus/ti99/peb/bwg.cpp b/src/devices/bus/ti99/peb/bwg.cpp
index 6e51624d92c..36cd378860f 100644
--- a/src/devices/bus/ti99/peb/bwg.cpp
+++ b/src/devices/bus/ti99/peb/bwg.cpp
@@ -682,11 +682,12 @@ FLOPPY_FORMATS_MEMBER(snug_bwg_device::floppy_formats)
FLOPPY_TI99_TDF_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( bwg_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) // 40 tracks
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) // 80 tracks
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) // 80 tracks
-SLOT_INTERFACE_END
+static void bwg_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD); // 40 tracks
+ device.option_add("525qd", FLOPPY_525_QD); // 80 tracks
+ device.option_add("35dd", FLOPPY_35_DD); // 80 tracks
+}
ROM_START( bwg_fdc )
ROM_REGION(0x8000, TI99_DSRROM, 0)
diff --git a/src/devices/bus/ti99/peb/hfdc.cpp b/src/devices/bus/ti99/peb/hfdc.cpp
index 4ff37fe8da3..0721f0d6a3b 100644
--- a/src/devices/bus/ti99/peb/hfdc.cpp
+++ b/src/devices/bus/ti99/peb/hfdc.cpp
@@ -1051,19 +1051,21 @@ FLOPPY_FORMATS_MEMBER(myarc_hfdc_device::floppy_formats)
FLOPPY_TI99_TDF_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( hfdc_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) // 40 tracks
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) // 80 tracks
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) // 80 tracks
- SLOT_INTERFACE( "35hd", FLOPPY_35_HD ) // 80 tracks 1.4 MiB
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START( hfdc_harddisks )
- SLOT_INTERFACE( "generic", MFMHD_GENERIC ) // Generic hard disk (self-adapting to image)
- SLOT_INTERFACE( "st213", MFMHD_ST213 ) // Seagate ST-213 (10 MB)
- SLOT_INTERFACE( "st225", MFMHD_ST225 ) // Seagate ST-225 (20 MB)
- SLOT_INTERFACE( "st251", MFMHD_ST251 ) // Seagate ST-251 (40 MB)
-SLOT_INTERFACE_END
+static void hfdc_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD); // 40 tracks
+ device.option_add("525qd", FLOPPY_525_QD); // 80 tracks
+ device.option_add("35dd", FLOPPY_35_DD); // 80 tracks
+ device.option_add("35hd", FLOPPY_35_HD); // 80 tracks 1.4 MiB
+}
+
+static void hfdc_harddisks(device_slot_interface &device)
+{
+ device.option_add("generic", MFMHD_GENERIC); // Generic hard disk (self-adapting to image)
+ device.option_add("st213", MFMHD_ST213); // Seagate ST-213 (10 MB)
+ device.option_add("st225", MFMHD_ST225); // Seagate ST-225 (20 MB)
+ device.option_add("st251", MFMHD_ST251); // Seagate ST-251 (40 MB)
+}
ROM_START( ti99_hfdc )
ROM_REGION(0x4000, TI99_DSRROM, 0)
diff --git a/src/devices/bus/ti99/peb/peribox.cpp b/src/devices/bus/ti99/peb/peribox.cpp
index be2d8e0e0d2..1ada6e9a75f 100644
--- a/src/devices/bus/ti99/peb/peribox.cpp
+++ b/src/devices/bus/ti99/peb/peribox.cpp
@@ -486,21 +486,22 @@ void peribox_device::device_config_complete()
m_ready_flag = 0;
}
-SLOT_INTERFACE_START( peribox_slot )
- SLOT_INTERFACE("32kmem", TI99_32KMEM)
- SLOT_INTERFACE("myarcmem", TI99_MYARCMEM)
- SLOT_INTERFACE("samsmem", TI99_SAMSMEM)
- SLOT_INTERFACE("pcode", TI99_P_CODE)
- SLOT_INTERFACE("hsgpl", TI99_HSGPL)
- SLOT_INTERFACE("tirs232", TI99_RS232)
- SLOT_INTERFACE("speech", TI99_SPEECH)
- SLOT_INTERFACE("horizon", TI99_HORIZON)
- SLOT_INTERFACE("ide", TI99_IDE)
- SLOT_INTERFACE("usbsm", TI99_USBSM)
- SLOT_INTERFACE("bwg", TI99_BWG)
- SLOT_INTERFACE("hfdc", TI99_HFDC)
- SLOT_INTERFACE("tifdc", TI99_FDC)
-SLOT_INTERFACE_END
+void peribox_slot(device_slot_interface &device)
+{
+ device.option_add("32kmem", TI99_32KMEM);
+ device.option_add("myarcmem", TI99_MYARCMEM);
+ device.option_add("samsmem", TI99_SAMSMEM);
+ device.option_add("pcode", TI99_P_CODE);
+ device.option_add("hsgpl", TI99_HSGPL);
+ device.option_add("tirs232", TI99_RS232);
+ device.option_add("speech", TI99_SPEECH);
+ device.option_add("horizon", TI99_HORIZON);
+ device.option_add("ide", TI99_IDE);
+ device.option_add("usbsm", TI99_USBSM);
+ device.option_add("bwg", TI99_BWG);
+ device.option_add("hfdc", TI99_HFDC);
+ device.option_add("tifdc", TI99_FDC);
+}
MACHINE_CONFIG_START(peribox_device::device_add_mconfig)
MCFG_PERIBOX_SLOT_ADD( PEBSLOT2, peribox_slot )
@@ -522,22 +523,23 @@ peribox_ev_device::peribox_ev_device(const machine_config &mconfig, const char *
m_address_prefix = 0x70000;
}
-SLOT_INTERFACE_START( peribox_slotv )
- SLOT_INTERFACE("evpc", TI99_EVPC )
- SLOT_INTERFACE("32kmem", TI99_32KMEM)
- SLOT_INTERFACE("myarcmem", TI99_MYARCMEM)
- SLOT_INTERFACE("samsmem", TI99_SAMSMEM)
- SLOT_INTERFACE("pcode", TI99_P_CODE)
- SLOT_INTERFACE("hsgpl", TI99_HSGPL)
- SLOT_INTERFACE("tirs232", TI99_RS232)
- SLOT_INTERFACE("speech", TI99_SPEECH)
- SLOT_INTERFACE("horizon", TI99_HORIZON)
- SLOT_INTERFACE("ide", TI99_IDE)
- SLOT_INTERFACE("usbsm", TI99_USBSM)
- SLOT_INTERFACE("bwg", TI99_BWG)
- SLOT_INTERFACE("hfdc", TI99_HFDC)
- SLOT_INTERFACE("tifdc", TI99_FDC)
-SLOT_INTERFACE_END
+void peribox_slotv(device_slot_interface &device)
+{
+ device.option_add("evpc", TI99_EVPC);
+ device.option_add("32kmem", TI99_32KMEM);
+ device.option_add("myarcmem", TI99_MYARCMEM);
+ device.option_add("samsmem", TI99_SAMSMEM);
+ device.option_add("pcode", TI99_P_CODE);
+ device.option_add("hsgpl", TI99_HSGPL);
+ device.option_add("tirs232", TI99_RS232);
+ device.option_add("speech", TI99_SPEECH);
+ device.option_add("horizon", TI99_HORIZON);
+ device.option_add("ide", TI99_IDE);
+ device.option_add("usbsm", TI99_USBSM);
+ device.option_add("bwg", TI99_BWG);
+ device.option_add("hfdc", TI99_HFDC);
+ device.option_add("tifdc", TI99_FDC);
+}
MACHINE_CONFIG_START(peribox_ev_device::device_add_mconfig)
MCFG_PERIBOX_SLOT_ADD_DEF( PEBSLOT2, peribox_slotv, "evpc" )
@@ -565,16 +567,17 @@ peribox_gen_device::peribox_gen_device(const machine_config &mconfig, const char
// The BwG controller will not run with the Geneve due to its wait state
// logic (see bwg.c)
-SLOT_INTERFACE_START( peribox_slotg )
- SLOT_INTERFACE("memex", TI99_MEMEX)
- SLOT_INTERFACE("tirs232", TI99_RS232)
- SLOT_INTERFACE("speech", TI99_SPEECH)
- SLOT_INTERFACE("horizon", TI99_HORIZON)
- SLOT_INTERFACE("ide", TI99_IDE)
- SLOT_INTERFACE("usbsm", TI99_USBSM)
- SLOT_INTERFACE("hfdc", TI99_HFDC)
- SLOT_INTERFACE("tifdc", TI99_FDC)
-SLOT_INTERFACE_END
+void peribox_slotg(device_slot_interface &device)
+{
+ device.option_add("memex", TI99_MEMEX);
+ device.option_add("tirs232", TI99_RS232);
+ device.option_add("speech", TI99_SPEECH);
+ device.option_add("horizon", TI99_HORIZON);
+ device.option_add("ide", TI99_IDE);
+ device.option_add("usbsm", TI99_USBSM);
+ device.option_add("hfdc", TI99_HFDC);
+ device.option_add("tifdc", TI99_FDC);
+}
MACHINE_CONFIG_START(peribox_gen_device::device_add_mconfig)
MCFG_PERIBOX_SLOT_ADD( PEBSLOT2, peribox_slotg )
@@ -596,21 +599,22 @@ peribox_sg_device::peribox_sg_device(const machine_config &mconfig, const char *
m_address_prefix = 0x70000;
}
-SLOT_INTERFACE_START( peribox_slotp )
- SLOT_INTERFACE("evpc", TI99_EVPC )
- SLOT_INTERFACE("myarcmem", TI99_MYARCMEM)
- SLOT_INTERFACE("samsmem", TI99_SAMSMEM)
- SLOT_INTERFACE("pcode", TI99_P_CODE)
- SLOT_INTERFACE("hsgpl", TI99_HSGPL)
- SLOT_INTERFACE("tirs232", TI99_RS232)
- SLOT_INTERFACE("speech", TI99_SPEECH)
- SLOT_INTERFACE("horizon", TI99_HORIZON)
- SLOT_INTERFACE("ide", TI99_IDE)
- SLOT_INTERFACE("usbsm", TI99_USBSM)
- SLOT_INTERFACE("bwg", TI99_BWG)
- SLOT_INTERFACE("hfdc", TI99_HFDC)
- SLOT_INTERFACE("tifdc", TI99_FDC)
-SLOT_INTERFACE_END
+void peribox_slotp(device_slot_interface &device)
+{
+ device.option_add("evpc", TI99_EVPC);
+ device.option_add("myarcmem", TI99_MYARCMEM);
+ device.option_add("samsmem", TI99_SAMSMEM);
+ device.option_add("pcode", TI99_P_CODE);
+ device.option_add("hsgpl", TI99_HSGPL);
+ device.option_add("tirs232", TI99_RS232);
+ device.option_add("speech", TI99_SPEECH);
+ device.option_add("horizon", TI99_HORIZON);
+ device.option_add("ide", TI99_IDE);
+ device.option_add("usbsm", TI99_USBSM);
+ device.option_add("bwg", TI99_BWG);
+ device.option_add("hfdc", TI99_HFDC);
+ device.option_add("tifdc", TI99_FDC);
+}
MACHINE_CONFIG_START(peribox_sg_device::device_add_mconfig)
MCFG_PERIBOX_SLOT_ADD_DEF( PEBSLOT2, peribox_slotp, "evpc" )
diff --git a/src/devices/bus/ti99/peb/ti_fdc.cpp b/src/devices/bus/ti99/peb/ti_fdc.cpp
index b1bad0dcc9c..3bc4e297c28 100644
--- a/src/devices/bus/ti99/peb/ti_fdc.cpp
+++ b/src/devices/bus/ti99/peb/ti_fdc.cpp
@@ -439,9 +439,10 @@ FLOPPY_FORMATS_MEMBER(ti_fdc_device::floppy_formats)
FLOPPY_TI99_TDF_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( tifdc_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void tifdc_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
ROM_START( ti_fdc )
ROM_REGION(0x2000, TI99_DSRROM, 0)
diff --git a/src/devices/bus/tiki100/exp.cpp b/src/devices/bus/tiki100/exp.cpp
index d0bc91bc8bc..95aff70d106 100644
--- a/src/devices/bus/tiki100/exp.cpp
+++ b/src/devices/bus/tiki100/exp.cpp
@@ -204,7 +204,8 @@ device_tiki100bus_card_interface::device_tiki100bus_card_interface(const machine
#include "8088.h"
#include "hdc.h"
-SLOT_INTERFACE_START( tiki100_cards )
- SLOT_INTERFACE("8088", TIKI100_8088)
- SLOT_INTERFACE("hdc", TIKI100_HDC)
-SLOT_INTERFACE_END
+void tiki100_cards(device_slot_interface &device)
+{
+ device.option_add("8088", TIKI100_8088);
+ device.option_add("hdc", TIKI100_HDC);
+}
diff --git a/src/devices/bus/tiki100/exp.h b/src/devices/bus/tiki100/exp.h
index 78b2dceaa9f..f849a8c5fb5 100644
--- a/src/devices/bus/tiki100/exp.h
+++ b/src/devices/bus/tiki100/exp.h
@@ -186,6 +186,6 @@ DECLARE_DEVICE_TYPE(TIKI100_BUS, tiki100_bus_device)
-SLOT_INTERFACE_EXTERN( tiki100_cards );
+void tiki100_cards(device_slot_interface &device);
#endif // MAME_BUS_TIKI100_EXP_H
diff --git a/src/devices/bus/tmc600/euro.cpp b/src/devices/bus/tmc600/euro.cpp
index 08324160bde..aae96b0591a 100644
--- a/src/devices/bus/tmc600/euro.cpp
+++ b/src/devices/bus/tmc600/euro.cpp
@@ -59,19 +59,20 @@ void tmc600_euro_bus_slot_t::device_start()
// SLOT_INTERFACE( tmc600_euro_bus_cards )
//-------------------------------------------------
-SLOT_INTERFACE_START( tmc600_euro_bus_cards )
- //SLOT_INTERFACE("tmc710", TMC710) // 5-way expander
- //SLOT_INTERFACE("tmc720", TMC720) // 5-way expander (new model)
- //SLOT_INTERFACE("tmce200", TMCE200) // 8 KB RAM (CMOS)
- //SLOT_INTERFACE("tmce220", TMCE220) // 16/32 KB RAM/EPROM
- //SLOT_INTERFACE("tmce225", TMCE225) // 16 KB RAM (CMOS)
- //SLOT_INTERFACE("tmce250", TMCE250) // 32-way input/output
- //SLOT_INTERFACE("tmce260", TMCE260) // RS-232
- //SLOT_INTERFACE("tmce270", TMCE270) // generic ADC card (RCA CA3162 or CA3300, Teledyne 8700/01/02/03/04/05)
- //SLOT_INTERFACE("tmce2701", TMCE2701) // TMCE-270 with CA3162
- //SLOT_INTERFACE("tmce2702", TMCE2702) // TMCE-270 with CA3300
- //SLOT_INTERFACE("tmce280", TMCE280) // floppy disc controller for 3x 5.25" and 4x 8"
- //SLOT_INTERFACE("tmce285", TMCE285) // monochrome CRT controller (min. 80 cps)
- //SLOT_INTERFACE("tmce300", TMCE300) // slave computer with parallel I/O
- //SLOT_INTERFACE("tmce305", TMCE304) // slave computer with serial I/O
-SLOT_INTERFACE_END
+void tmc600_euro_bus_cards(device_slot_interface &device)
+{
+ //device.option_add("tmc710", TMC710); // 5-way expander
+ //device.option_add("tmc720", TMC720); // 5-way expander (new model)
+ //device.option_add("tmce200", TMCE200); // 8 KB RAM (CMOS)
+ //device.option_add("tmce220", TMCE220); // 16/32 KB RAM/EPROM
+ //device.option_add("tmce225", TMCE225); // 16 KB RAM (CMOS)
+ //device.option_add("tmce250", TMCE250); // 32-way input/output
+ //device.option_add("tmce260", TMCE260); // RS-232
+ //device.option_add("tmce270", TMCE270); // generic ADC card (RCA CA3162 or CA3300, Teledyne 8700/01/02/03/04/05)
+ //device.option_add("tmce2701", TMCE2701); // TMCE-270 with CA3162
+ //device.option_add("tmce2702", TMCE2702); // TMCE-270 with CA3300
+ //device.option_add("tmce280", TMCE280); // floppy disc controller for 3x 5.25" and 4x 8"
+ //device.option_add("tmce285", TMCE285); // monochrome CRT controller (min. 80 cps)
+ //device.option_add("tmce300", TMCE300); // slave computer with parallel I/O
+ //device.option_add("tmce305", TMCE304); // slave computer with serial I/O
+}
diff --git a/src/devices/bus/tmc600/euro.h b/src/devices/bus/tmc600/euro.h
index 8e7f4c7cfe8..7fe8c3c0ff6 100644
--- a/src/devices/bus/tmc600/euro.h
+++ b/src/devices/bus/tmc600/euro.h
@@ -111,7 +111,7 @@ protected:
DECLARE_DEVICE_TYPE(TMC600_EURO_BUS_SLOT, tmc600_euro_bus_slot_t)
-SLOT_INTERFACE_EXTERN( tmc600_euro_bus_cards );
+void tmc600_euro_bus_cards(device_slot_interface &device);
typedef device_type_iterator<tmc600_euro_bus_slot_t> tmc600_euro_bus_slot_t_iterator;
diff --git a/src/devices/bus/tvc/hbf.cpp b/src/devices/bus/tvc/hbf.cpp
index 90dc378056b..de73cb1712a 100644
--- a/src/devices/bus/tvc/hbf.cpp
+++ b/src/devices/bus/tvc/hbf.cpp
@@ -18,9 +18,10 @@ FLOPPY_FORMATS_MEMBER( tvc_hbf_device::floppy_formats )
FLOPPY_TVC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( tvc_hbf_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void tvc_hbf_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
ROM_START( tvc_hbf )
ROM_REGION(0x4000, "hbf", 0)
diff --git a/src/devices/bus/vcs_ctrl/ctrl.cpp b/src/devices/bus/vcs_ctrl/ctrl.cpp
index f25ef4f6545..c4f735aacb6 100644
--- a/src/devices/bus/vcs_ctrl/ctrl.cpp
+++ b/src/devices/bus/vcs_ctrl/ctrl.cpp
@@ -74,11 +74,12 @@ void vcs_control_port_device::device_start()
#include "paddles.h"
#include "wheel.h"
-SLOT_INTERFACE_START( vcs_control_port_devices )
- SLOT_INTERFACE("joy", VCS_JOYSTICK)
- SLOT_INTERFACE("pad", VCS_PADDLES)
- SLOT_INTERFACE("lp", VCS_LIGHTPEN)
- SLOT_INTERFACE("joybstr", VCS_JOYSTICK_BOOSTER)
- SLOT_INTERFACE("wheel", VCS_WHEEL)
- SLOT_INTERFACE("keypad", VCS_KEYPAD)
-SLOT_INTERFACE_END
+void vcs_control_port_devices(device_slot_interface &device)
+{
+ device.option_add("joy", VCS_JOYSTICK);
+ device.option_add("pad", VCS_PADDLES);
+ device.option_add("lp", VCS_LIGHTPEN);
+ device.option_add("joybstr", VCS_JOYSTICK_BOOSTER);
+ device.option_add("wheel", VCS_WHEEL);
+ device.option_add("keypad", VCS_KEYPAD);
+}
diff --git a/src/devices/bus/vcs_ctrl/ctrl.h b/src/devices/bus/vcs_ctrl/ctrl.h
index 972dab7ec5e..4e098548329 100644
--- a/src/devices/bus/vcs_ctrl/ctrl.h
+++ b/src/devices/bus/vcs_ctrl/ctrl.h
@@ -114,6 +114,6 @@ private:
// device type definition
DECLARE_DEVICE_TYPE(VCS_CONTROL_PORT, vcs_control_port_device)
-SLOT_INTERFACE_EXTERN( vcs_control_port_devices );
+void vcs_control_port_devices(device_slot_interface &device);
#endif // MAME_BUS_CVS_CTRL_CTRL_H
diff --git a/src/devices/bus/vic10/exp.cpp b/src/devices/bus/vic10/exp.cpp
index 0cb8e6deffb..e3af1609567 100644
--- a/src/devices/bus/vic10/exp.cpp
+++ b/src/devices/bus/vic10/exp.cpp
@@ -233,8 +233,9 @@ WRITE_LINE_MEMBER( vic10_expansion_slot_device::p0_w ) { if (m_card != nullptr)
#include "std.h"
#include "multimax.h"
-SLOT_INTERFACE_START( vic10_expansion_cards )
+void vic10_expansion_cards(device_slot_interface &device)
+{
// the following need ROMs from the software list
- SLOT_INTERFACE_INTERNAL("standard", VIC10_STD)
- SLOT_INTERFACE_INTERNAL("multimax", VIC10_MULTIMAX)
-SLOT_INTERFACE_END
+ device.option_add_internal("standard", VIC10_STD);
+ device.option_add_internal("multimax", VIC10_MULTIMAX);
+}
diff --git a/src/devices/bus/vic10/exp.h b/src/devices/bus/vic10/exp.h
index dc63a62a936..05b07924b48 100644
--- a/src/devices/bus/vic10/exp.h
+++ b/src/devices/bus/vic10/exp.h
@@ -176,6 +176,6 @@ protected:
DECLARE_DEVICE_TYPE(VIC10_EXPANSION_SLOT, vic10_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( vic10_expansion_cards );
+void vic10_expansion_cards(device_slot_interface &device);
#endif // MAME_BUS_VIC10_EXP_H
diff --git a/src/devices/bus/vic20/exp.cpp b/src/devices/bus/vic20/exp.cpp
index 93f00290a27..7bd09ca74f8 100644
--- a/src/devices/bus/vic20/exp.cpp
+++ b/src/devices/bus/vic20/exp.cpp
@@ -218,18 +218,18 @@ void vic20_expansion_slot_device::cd_w(address_space &space, offs_t offset, uint
#include "videopak.h"
#include "speakeasy.h"
-SLOT_INTERFACE_START( vic20_expansion_cards )
- SLOT_INTERFACE("exp", VIC1010)
- SLOT_INTERFACE("3k", VIC1210)
- SLOT_INTERFACE("8k", VIC1110)
- SLOT_INTERFACE("16k", VIC1111)
- SLOT_INTERFACE("fe3", VIC20_FE3)
- SLOT_INTERFACE("speakez", VIC20_SPEAKEASY)
- SLOT_INTERFACE("videopak", VIC20_VIDEO_PAK)
+void vic20_expansion_cards(device_slot_interface &device)
+{
+ device.option_add("exp", VIC1010);
+ device.option_add("3k", VIC1210);
+ device.option_add("8k", VIC1110);
+ device.option_add("16k", VIC1111);
+ device.option_add("fe3", VIC20_FE3);
+ device.option_add("speakez", VIC20_SPEAKEASY);
+ device.option_add("videopak", VIC20_VIDEO_PAK);
// the following need ROMs from the software list
- SLOT_INTERFACE_INTERNAL("standard", VIC20_STD)
- SLOT_INTERFACE_INTERNAL("ieee488", VIC1112)
- MCFG_SLOT_OPTION_CLOCK("ieee488", DERIVED_CLOCK(1, 1))
- SLOT_INTERFACE_INTERNAL("megacart", VIC20_MEGACART)
-SLOT_INTERFACE_END
+ device.option_add_internal("standard", VIC20_STD);
+ device.option_add_internal("ieee488", VIC1112).clock(DERIVED_CLOCK(1, 1));
+ device.option_add_internal("megacart", VIC20_MEGACART);
+}
diff --git a/src/devices/bus/vic20/exp.h b/src/devices/bus/vic20/exp.h
index 695db050936..fddc500e665 100644
--- a/src/devices/bus/vic20/exp.h
+++ b/src/devices/bus/vic20/exp.h
@@ -164,6 +164,6 @@ protected:
DECLARE_DEVICE_TYPE(VIC20_EXPANSION_SLOT, vic20_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( vic20_expansion_cards );
+void vic20_expansion_cards(device_slot_interface &device);
#endif // MAME_BUS_VIC20_EXP_H
diff --git a/src/devices/bus/vic20/user.cpp b/src/devices/bus/vic20/user.cpp
index cf8f1f3c817..998f45d80cc 100644
--- a/src/devices/bus/vic20/user.cpp
+++ b/src/devices/bus/vic20/user.cpp
@@ -17,7 +17,8 @@
#include "4cga.h"
#include "vic1011.h"
-SLOT_INTERFACE_START( vic20_user_port_cards )
- SLOT_INTERFACE("4cga", C64_4CGA)
- SLOT_INTERFACE("rs232", VIC1011)
-SLOT_INTERFACE_END
+void vic20_user_port_cards(device_slot_interface &device)
+{
+ device.option_add("4cga", C64_4CGA);
+ device.option_add("rs232", VIC1011);
+}
diff --git a/src/devices/bus/vic20/user.h b/src/devices/bus/vic20/user.h
index a53fec7124b..dced07a424b 100644
--- a/src/devices/bus/vic20/user.h
+++ b/src/devices/bus/vic20/user.h
@@ -28,6 +28,6 @@
#include "bus/pet/user.h"
-SLOT_INTERFACE_EXTERN( vic20_user_port_cards );
+void vic20_user_port_cards(device_slot_interface &device);
#endif // MAME_BUS_VIC20_USER_H
diff --git a/src/devices/bus/vidbrain/exp.cpp b/src/devices/bus/vidbrain/exp.cpp
index ebd4a541da0..c490c0605b2 100644
--- a/src/devices/bus/vidbrain/exp.cpp
+++ b/src/devices/bus/vidbrain/exp.cpp
@@ -188,8 +188,9 @@ void videobrain_expansion_slot_device::bo_w(address_space &space, offs_t offset,
#include "money_minder.h"
#include "timeshare.h"
-SLOT_INTERFACE_START( vidbrain_expansion_cards )
- SLOT_INTERFACE_INTERNAL("standard", VB_STD)
- SLOT_INTERFACE_INTERNAL("moneyminder", VB_MONEY_MINDER)
- SLOT_INTERFACE_INTERNAL("timeshare", VB_TIMESHARE)
-SLOT_INTERFACE_END
+void vidbrain_expansion_cards(device_slot_interface &device)
+{
+ device.option_add_internal("standard", VB_STD);
+ device.option_add_internal("moneyminder", VB_MONEY_MINDER);
+ device.option_add_internal("timeshare", VB_TIMESHARE);
+}
diff --git a/src/devices/bus/vidbrain/exp.h b/src/devices/bus/vidbrain/exp.h
index 60d1f90ec32..b7f3f5cad7a 100644
--- a/src/devices/bus/vidbrain/exp.h
+++ b/src/devices/bus/vidbrain/exp.h
@@ -159,6 +159,6 @@ protected:
DECLARE_DEVICE_TYPE(VIDEOBRAIN_EXPANSION_SLOT, videobrain_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( vidbrain_expansion_cards );
+void vidbrain_expansion_cards(device_slot_interface &device);
#endif // MAME_BUS_VIDBRAIN_EXP_H
diff --git a/src/devices/bus/vip/byteio.cpp b/src/devices/bus/vip/byteio.cpp
index c44c4825abb..7b908dad442 100644
--- a/src/devices/bus/vip/byteio.cpp
+++ b/src/devices/bus/vip/byteio.cpp
@@ -84,7 +84,8 @@ WRITE_LINE_MEMBER( vip_byteio_port_device::q_w ) { if (m_cart != nullptr) m_cart
// SLOT_INTERFACE( vip_byteio_cards )
//-------------------------------------------------
-SLOT_INTERFACE_START( vip_byteio_cards )
- //SLOT_INTERFACE("exp2", VP576_BYTEIO)
- SLOT_INTERFACE("ascii", VP620)
-SLOT_INTERFACE_END
+void vip_byteio_cards(device_slot_interface &device)
+{
+ //device.option_add("exp2", VP576_BYTEIO);
+ device.option_add("ascii", VP620);
+}
diff --git a/src/devices/bus/vip/byteio.h b/src/devices/bus/vip/byteio.h
index 08b435ac705..d2190214a2d 100644
--- a/src/devices/bus/vip/byteio.h
+++ b/src/devices/bus/vip/byteio.h
@@ -124,6 +124,6 @@ DECLARE_DEVICE_TYPE(VIP_BYTEIO_PORT, vip_byteio_port_device)
// slot devices
#include "vp620.h"
-SLOT_INTERFACE_EXTERN( vip_byteio_cards );
+void vip_byteio_cards(device_slot_interface &device);
#endif // MAME_BUS_VIP_BYTEIO_H
diff --git a/src/devices/bus/vip/exp.cpp b/src/devices/bus/vip/exp.cpp
index 5430dd482ed..3b9fce990ec 100644
--- a/src/devices/bus/vip/exp.cpp
+++ b/src/devices/bus/vip/exp.cpp
@@ -204,15 +204,16 @@ WRITE_LINE_MEMBER( vip_expansion_slot_device::run_w ) { if (m_card != nullptr) m
#include "vp595.h"
#include "vp700.h"
-SLOT_INTERFACE_START( vip_expansion_cards )
- SLOT_INTERFACE("super", VP550)
- //SLOT_INTERFACE("eprom", VP560)
- //SLOT_INTERFACE("eprommer", VP565)
- SLOT_INTERFACE("ram", VP570)
- SLOT_INTERFACE("exp", VP575)
- //SLOT_INTERFACE("exp2", VP576_EXP)
- SLOT_INTERFACE("keypad", VP585)
- SLOT_INTERFACE("color", VP590)
- SLOT_INTERFACE("simple", VP595)
- SLOT_INTERFACE("basic", VP700)
-SLOT_INTERFACE_END
+void vip_expansion_cards(device_slot_interface &device)
+{
+ device.option_add("super", VP550);
+ //device.option_add("eprom", VP560);
+ //device.option_add("eprommer", VP565);
+ device.option_add("ram", VP570);
+ device.option_add("exp", VP575);
+ //device.option_add("exp2", VP576_EXP);
+ device.option_add("keypad", VP585);
+ device.option_add("color", VP590);
+ device.option_add("simple", VP595);
+ device.option_add("basic", VP700);
+}
diff --git a/src/devices/bus/vip/exp.h b/src/devices/bus/vip/exp.h
index 4e864fc0430..98eda45bdbe 100644
--- a/src/devices/bus/vip/exp.h
+++ b/src/devices/bus/vip/exp.h
@@ -158,6 +158,6 @@ protected:
DECLARE_DEVICE_TYPE(VIP_EXPANSION_SLOT, vip_expansion_slot_device)
-SLOT_INTERFACE_EXTERN( vip_expansion_cards );
+void vip_expansion_cards(device_slot_interface &device);
#endif // MAME_BUS_VIP_EXP_H
diff --git a/src/devices/bus/vme/vme.cpp b/src/devices/bus/vme/vme.cpp
index d7d549bb34c..166b1d9781f 100644
--- a/src/devices/bus/vme/vme.cpp
+++ b/src/devices/bus/vme/vme.cpp
@@ -185,18 +185,20 @@ WRITE8_MEMBER(vme_slot_device::write8)
/* The following two slot collections be combined once we intriduce capabilities for each board */
/* Usually a VME firmware supports only a few boards so it will have its own slot collection defined */
// Controller capable boards that can go into slot1 ( or has an embedded VME bus )
-SLOT_INTERFACE_START( vme_slot1 )
-// SLOT_INTERFACE("mzr8105", VME_MZR8105)
-SLOT_INTERFACE_END
+void vme_slot1(device_slot_interface &device)
+{
+// device.option_add("mzr8105", VME_MZR8105);
+}
#endif
// All boards that can be non-controller boards, eg not driving the VME CLK etc
-SLOT_INTERFACE_START( vme_slots )
- SLOT_INTERFACE("mzr8300", VME_MZR8300)
- SLOT_INTERFACE("mvme350", VME_MVME350)
- SLOT_INTERFACE("fcisio1", VME_FCISIO1)
- SLOT_INTERFACE("fcscsi1", VME_FCSCSI1)
-SLOT_INTERFACE_END
+void vme_slots(device_slot_interface &device)
+{
+ device.option_add("mzr8300", VME_MZR8300);
+ device.option_add("mvme350", VME_MVME350);
+ device.option_add("fcisio1", VME_FCISIO1);
+ device.option_add("fcscsi1", VME_FCSCSI1);
+}
//
// VME device P1
diff --git a/src/devices/bus/vme/vme.h b/src/devices/bus/vme/vme.h
index 7fd1a24f9c8..8f86d90bd29 100644
--- a/src/devices/bus/vme/vme.h
+++ b/src/devices/bus/vme/vme.h
@@ -61,8 +61,8 @@
#define MCFG_VME_J1_CB(_devcb) \
devcb = &downcast<vme_slot_device &>(*device).set_vme_j1_callback(DEVCB_##_devcb);
-//SLOT_INTERFACE_EXTERN(vme_slot1); // Disabled until we know how to combine a board driver and a slot device.
-SLOT_INTERFACE_EXTERN(vme_slots);
+//void vme_slot1(device_slot_interface &device); // Disabled until we know how to combine a board driver and a slot device.
+void vme_slots(device_slot_interface &device);
class device_vme_card_interface; // This interface is standardized
diff --git a/src/devices/bus/vme/vme_fcscsi.cpp b/src/devices/bus/vme/vme_fcscsi.cpp
index 807d799917d..9cc50e5eb76 100644
--- a/src/devices/bus/vme/vme_fcscsi.cpp
+++ b/src/devices/bus/vme/vme_fcscsi.cpp
@@ -205,9 +205,10 @@ FLOPPY_FORMATS_MEMBER( vme_fcscsi1_card_device::floppy_formats )
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( fcscsi_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void fcscsi_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
/* ROM definitions */
diff --git a/src/devices/bus/vtech/ioexp/carts.cpp b/src/devices/bus/vtech/ioexp/carts.cpp
index ae579ba23e5..86209ad35f8 100644
--- a/src/devices/bus/vtech/ioexp/carts.cpp
+++ b/src/devices/bus/vtech/ioexp/carts.cpp
@@ -13,7 +13,8 @@
#include "printer.h"
-SLOT_INTERFACE_START( vtech_ioexp_slot_carts )
- SLOT_INTERFACE("joystick", VTECH_JOYSTICK_INTERFACE)
- SLOT_INTERFACE("printer", VTECH_PRINTER_INTERFACE)
-SLOT_INTERFACE_END
+void vtech_ioexp_slot_carts(device_slot_interface &device)
+{
+ device.option_add("joystick", VTECH_JOYSTICK_INTERFACE);
+ device.option_add("printer", VTECH_PRINTER_INTERFACE);
+}
diff --git a/src/devices/bus/vtech/ioexp/carts.h b/src/devices/bus/vtech/ioexp/carts.h
index a6195747389..dc7047a27d1 100644
--- a/src/devices/bus/vtech/ioexp/carts.h
+++ b/src/devices/bus/vtech/ioexp/carts.h
@@ -12,6 +12,6 @@
#pragma once
-SLOT_INTERFACE_EXTERN( vtech_ioexp_slot_carts );
+void vtech_ioexp_slot_carts(device_slot_interface &device);
#endif // MAME_BUS_VTECH_IOEXP_CARTS_H
diff --git a/src/devices/bus/vtech/memexp/carts.cpp b/src/devices/bus/vtech/memexp/carts.cpp
index 9ca95b56dee..41bd9d42c0f 100644
--- a/src/devices/bus/vtech/memexp/carts.cpp
+++ b/src/devices/bus/vtech/memexp/carts.cpp
@@ -16,13 +16,14 @@
#include "wordpro.h"
-SLOT_INTERFACE_START( vtech_memexp_carts )
- SLOT_INTERFACE("floppy", VTECH_FLOPPY_CONTROLLER)
- SLOT_INTERFACE("laser110_16k", VTECH_LASER110_16K)
- SLOT_INTERFACE("laser210_16k", VTECH_LASER210_16K)
- SLOT_INTERFACE("laser310_16k", VTECH_LASER310_16K)
- SLOT_INTERFACE("laser_64k", VTECH_LASER_64K)
- SLOT_INTERFACE("rs232", VTECH_RS232_INTERFACE)
- SLOT_INTERFACE("rtty", VTECH_RTTY_INTERFACE)
- SLOT_INTERFACE("wordpro", VTECH_WORDPRO)
-SLOT_INTERFACE_END
+void vtech_memexp_carts(device_slot_interface &device)
+{
+ device.option_add("floppy", VTECH_FLOPPY_CONTROLLER);
+ device.option_add("laser110_16k", VTECH_LASER110_16K);
+ device.option_add("laser210_16k", VTECH_LASER210_16K);
+ device.option_add("laser310_16k", VTECH_LASER310_16K);
+ device.option_add("laser_64k", VTECH_LASER_64K);
+ device.option_add("rs232", VTECH_RS232_INTERFACE);
+ device.option_add("rtty", VTECH_RTTY_INTERFACE);
+ device.option_add("wordpro", VTECH_WORDPRO);
+}
diff --git a/src/devices/bus/vtech/memexp/carts.h b/src/devices/bus/vtech/memexp/carts.h
index f8baa314256..b0ab76dd4d8 100644
--- a/src/devices/bus/vtech/memexp/carts.h
+++ b/src/devices/bus/vtech/memexp/carts.h
@@ -11,6 +11,6 @@
#pragma once
-SLOT_INTERFACE_EXTERN( vtech_memexp_carts );
+void vtech_memexp_carts(device_slot_interface &device);
#endif // MAME_BUS_VTECH_MEMEXP_CARTS_H
diff --git a/src/devices/bus/vtech/memexp/floppy.cpp b/src/devices/bus/vtech/memexp/floppy.cpp
index 0788a653012..51410184e6c 100644
--- a/src/devices/bus/vtech/memexp/floppy.cpp
+++ b/src/devices/bus/vtech/memexp/floppy.cpp
@@ -45,9 +45,10 @@ const tiny_rom_entry *vtech_floppy_controller_device::device_rom_region() const
// device_add_mconfig - add device configuration
//-------------------------------------------------
-static SLOT_INTERFACE_START( laser_floppies )
- SLOT_INTERFACE("525", FLOPPY_525_SSSD)
-SLOT_INTERFACE_END
+static void laser_floppies(device_slot_interface &device)
+{
+ device.option_add("525", FLOPPY_525_SSSD);
+}
MACHINE_CONFIG_START(vtech_floppy_controller_device::device_add_mconfig)
MCFG_MEMEXP_SLOT_ADD("mem")
diff --git a/src/devices/bus/wangpc/wangpc.cpp b/src/devices/bus/wangpc/wangpc.cpp
index b7acf07f94c..36ed25bfdff 100644
--- a/src/devices/bus/wangpc/wangpc.cpp
+++ b/src/devices/bus/wangpc/wangpc.cpp
@@ -262,13 +262,14 @@ device_wangpcbus_card_interface::device_wangpcbus_card_interface(const machine_c
#include "tig.h"
#include "wdc.h"
-SLOT_INTERFACE_START( wangpc_cards )
- SLOT_INTERFACE("emb", WANGPC_EMB) // extended memory board
- SLOT_INTERFACE("lic", WANGPC_LIC) // local interconnect option card
- SLOT_INTERFACE("lvc", WANGPC_LVC) // low-resolution video controller
- SLOT_INTERFACE("mcc", WANGPC_MCC) // multiport communications controller
- SLOT_INTERFACE("mvc", WANGPC_MVC) // medium-resolution video controller
- SLOT_INTERFACE("rtc", WANGPC_RTC) // remote telecommunications controller
- SLOT_INTERFACE("tig", WANGPC_TIG) // text/image/graphics controller
- SLOT_INTERFACE("wdc", WANGPC_WDC) // Winchester disk controller
-SLOT_INTERFACE_END
+void wangpc_cards(device_slot_interface &device)
+{
+ device.option_add("emb", WANGPC_EMB); // extended memory board
+ device.option_add("lic", WANGPC_LIC); // local interconnect option card
+ device.option_add("lvc", WANGPC_LVC); // low-resolution video controller
+ device.option_add("mcc", WANGPC_MCC); // multiport communications controller
+ device.option_add("mvc", WANGPC_MVC); // medium-resolution video controller
+ device.option_add("rtc", WANGPC_RTC); // remote telecommunications controller
+ device.option_add("tig", WANGPC_TIG); // text/image/graphics controller
+ device.option_add("wdc", WANGPC_WDC); // Winchester disk controller
+}
diff --git a/src/devices/bus/wangpc/wangpc.h b/src/devices/bus/wangpc/wangpc.h
index b39c79f12f2..1510eba9fbf 100644
--- a/src/devices/bus/wangpc/wangpc.h
+++ b/src/devices/bus/wangpc/wangpc.h
@@ -223,6 +223,6 @@ private:
};
-SLOT_INTERFACE_EXTERN( wangpc_cards );
+void wangpc_cards(device_slot_interface &device);
#endif // MAME_BUS_WANGPC_WANGPC_H
diff --git a/src/devices/cpu/e132xs/e132xs.cpp b/src/devices/cpu/e132xs/e132xs.cpp
index 773a240612f..f23a5a6c8e9 100644
--- a/src/devices/cpu/e132xs/e132xs.cpp
+++ b/src/devices/cpu/e132xs/e132xs.cpp
@@ -228,6 +228,10 @@ hyperstone_device::hyperstone_device(const machine_config &mconfig, const char *
{
}
+hyperstone_device::~hyperstone_device()
+{
+}
+
//-------------------------------------------------
// e116t_device - constructor
diff --git a/src/devices/cpu/e132xs/e132xs.h b/src/devices/cpu/e132xs/e132xs.h
index 31fbd483f00..57cd7516d6e 100644
--- a/src/devices/cpu/e132xs/e132xs.h
+++ b/src/devices/cpu/e132xs/e132xs.h
@@ -114,6 +114,8 @@ class hyperstone_device : public cpu_device, public hyperstone_disassembler::con
friend class e132xs_frontend;
public:
+ virtual ~hyperstone_device() override;
+
inline void ccfunc_unimplemented();
inline void ccfunc_print();
inline void ccfunc_total_cycles();
diff --git a/src/devices/cpu/mb86235/mb86235.cpp b/src/devices/cpu/mb86235/mb86235.cpp
index da543bdb92f..6fad9a71636 100644
--- a/src/devices/cpu/mb86235/mb86235.cpp
+++ b/src/devices/cpu/mb86235/mb86235.cpp
@@ -274,6 +274,10 @@ mb86235_device::mb86235_device(const machine_config &mconfig, const char *tag, d
{
}
+mb86235_device::~mb86235_device()
+{
+}
+
device_memory_interface::space_config_vector mb86235_device::memory_space_config() const
{
return space_config_vector {
diff --git a/src/devices/cpu/mb86235/mb86235.h b/src/devices/cpu/mb86235/mb86235.h
index dc583dd9b84..f0a394bed5b 100644
--- a/src/devices/cpu/mb86235/mb86235.h
+++ b/src/devices/cpu/mb86235/mb86235.h
@@ -35,6 +35,7 @@ class mb86235_device : public cpu_device
public:
// construction/destruction
mb86235_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t clock);
+ virtual ~mb86235_device() override;
void set_fifoin_tag(const char *tag) { m_fifoin.set_tag(tag); }
void set_fifoout0_tag(const char *tag) { m_fifoout0.set_tag(tag); }
diff --git a/src/devices/cpu/powerpc/ppc.h b/src/devices/cpu/powerpc/ppc.h
index bc89a287a53..97c7ed631ae 100644
--- a/src/devices/cpu/powerpc/ppc.h
+++ b/src/devices/cpu/powerpc/ppc.h
@@ -210,6 +210,8 @@ protected:
ppc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int address_bits, int data_bits, powerpc_flavor flavor, uint32_t cap, uint32_t tb_divisor, address_map_constructor internal_map);
public:
+ virtual ~ppc_device() override;
+
void set_bus_frequency(uint32_t bus_frequency) { c_bus_frequency = bus_frequency; }
void set_bus_frequency(const XTAL &xtal) { set_bus_frequency(xtal.value()); }
diff --git a/src/devices/cpu/powerpc/ppccom.cpp b/src/devices/cpu/powerpc/ppccom.cpp
index c0ed33f610b..1d4b92ad549 100644
--- a/src/devices/cpu/powerpc/ppccom.cpp
+++ b/src/devices/cpu/powerpc/ppccom.cpp
@@ -231,6 +231,10 @@ ppc_device::ppc_device(const machine_config &mconfig, device_type type, const ch
set_vtlb_fixed_entries(PPC603_FIXED_TLB_ENTRIES);
}
+ppc_device::~ppc_device()
+{
+}
+
//ppc403_device::ppc403_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
// : ppc_device(mconfig, PPC403, "PPC403", tag, owner, clock, "ppc403", 32?, 64?)
//{
diff --git a/src/devices/cpu/rsp/rsp.cpp b/src/devices/cpu/rsp/rsp.cpp
index cf04e8a2bf5..1037f33d845 100644
--- a/src/devices/cpu/rsp/rsp.cpp
+++ b/src/devices/cpu/rsp/rsp.cpp
@@ -144,6 +144,10 @@ rsp_device::rsp_device(const machine_config &mconfig, const char *tag, device_t
{
}
+rsp_device::~rsp_device()
+{
+}
+
device_memory_interface::space_config_vector rsp_device::memory_space_config() const
{
return space_config_vector {
diff --git a/src/devices/cpu/rsp/rsp.h b/src/devices/cpu/rsp/rsp.h
index 2dfa97d2cfb..8c3604473da 100644
--- a/src/devices/cpu/rsp/rsp.h
+++ b/src/devices/cpu/rsp/rsp.h
@@ -108,6 +108,7 @@ class rsp_device : public cpu_device
public:
// construction/destruction
rsp_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock);
+ virtual ~rsp_device() override;
void resolve_cb();
template <class Object> devcb_base &set_dp_reg_r_callback(Object &&cb) { return m_dp_reg_r_func.set_callback(std::forward<Object>(cb)); }
diff --git a/src/devices/cpu/sh/sh2.cpp b/src/devices/cpu/sh/sh2.cpp
index 58e5596a7f5..38f2998841d 100644
--- a/src/devices/cpu/sh/sh2.cpp
+++ b/src/devices/cpu/sh/sh2.cpp
@@ -159,6 +159,10 @@ sh2_device::sh2_device(const machine_config &mconfig, const char *tag, device_t
{
}
+sh2_device::~sh2_device()
+{
+}
+
void sh2_device::device_stop()
{
diff --git a/src/devices/cpu/sh/sh2.h b/src/devices/cpu/sh/sh2.h
index 431c9831870..75f46d2bf48 100644
--- a/src/devices/cpu/sh/sh2.h
+++ b/src/devices/cpu/sh/sh2.h
@@ -71,6 +71,7 @@ public:
// construction/destruction
sh2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual ~sh2_device() override;
void set_is_slave(int slave) { m_is_slave = slave; }
template <typename Object> void set_dma_kludge_callback(Object &&cb) { m_dma_kludge_cb = std::forward<Object>(cb); }
@@ -157,12 +158,12 @@ private:
uint32_t m_debugger_temp;
- inline uint8_t RB(offs_t A) override;
- inline uint16_t RW(offs_t A) override;
- inline uint32_t RL(offs_t A) override;
- inline void WB(offs_t A, uint8_t V) override;
- inline void WW(offs_t A, uint16_t V) override;
- inline void WL(offs_t A, uint32_t V) override;
+ virtual uint8_t RB(offs_t A) override;
+ virtual uint16_t RW(offs_t A) override;
+ virtual uint32_t RL(offs_t A) override;
+ virtual void WB(offs_t A, uint8_t V) override;
+ virtual void WW(offs_t A, uint16_t V) override;
+ virtual void WL(offs_t A, uint32_t V) override;
virtual void LDCMSR(const uint16_t opcode) override;
virtual void LDCSR(const uint16_t opcode) override;
diff --git a/src/devices/cpu/sharc/sharc.cpp b/src/devices/cpu/sharc/sharc.cpp
index 3bdbba6ad47..617f5be79a8 100644
--- a/src/devices/cpu/sharc/sharc.cpp
+++ b/src/devices/cpu/sharc/sharc.cpp
@@ -91,6 +91,10 @@ adsp21062_device::adsp21062_device(const machine_config &mconfig, const char *ta
{
}
+adsp21062_device::~adsp21062_device()
+{
+}
+
device_memory_interface::space_config_vector adsp21062_device::memory_space_config() const
{
return space_config_vector {
diff --git a/src/devices/cpu/sharc/sharc.h b/src/devices/cpu/sharc/sharc.h
index 91455cb3b6c..797899ef98e 100644
--- a/src/devices/cpu/sharc/sharc.h
+++ b/src/devices/cpu/sharc/sharc.h
@@ -94,6 +94,7 @@ public:
// construction/destruction
adsp21062_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock);
+ virtual ~adsp21062_device() override;
// configuration helpers
void set_boot_mode(const sharc_boot_mode boot_mode) { m_boot_mode = boot_mode; }
diff --git a/src/devices/machine/ataintf.cpp b/src/devices/machine/ataintf.cpp
index a6d075217ec..972dadd94d3 100644
--- a/src/devices/machine/ataintf.cpp
+++ b/src/devices/machine/ataintf.cpp
@@ -204,10 +204,11 @@ WRITE_LINE_MEMBER( abstract_ata_interface_device::write_dmack )
elem->dev()->write_dmack(state);
}
-SLOT_INTERFACE_START(ata_devices)
- SLOT_INTERFACE("hdd", IDE_HARDDISK)
- SLOT_INTERFACE("cdrom", ATAPI_CDROM)
-SLOT_INTERFACE_END
+void ata_devices(device_slot_interface &device)
+{
+ device.option_add("hdd", IDE_HARDDISK);
+ device.option_add("cdrom", ATAPI_CDROM);
+}
abstract_ata_interface_device::abstract_ata_interface_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, type, tag, owner, clock),
diff --git a/src/devices/machine/ataintf.h b/src/devices/machine/ataintf.h
index d68e4d78340..8a9f05fb846 100644
--- a/src/devices/machine/ataintf.h
+++ b/src/devices/machine/ataintf.h
@@ -55,7 +55,7 @@ DECLARE_DEVICE_TYPE(ATA_SLOT, ata_slot_device)
#define MCFG_ATA_INTERFACE_DASP_HANDLER(_devcb) \
devcb = &downcast<abstract_ata_interface_device &>(*device).set_dasp_handler(DEVCB_##_devcb);
-SLOT_INTERFACE_EXTERN(ata_devices);
+void ata_devices(device_slot_interface &device);
/***************************************************************************
DEVICE CONFIGURATION MACROS
diff --git a/src/devices/machine/fdc37c93x.cpp b/src/devices/machine/fdc37c93x.cpp
index fe620389342..9ddd01fd8d1 100644
--- a/src/devices/machine/fdc37c93x.cpp
+++ b/src/devices/machine/fdc37c93x.cpp
@@ -219,12 +219,13 @@ void fdc37c93x_device::update_dreq_mapping(int dreq, int logical)
dreq_mapping[dreq] = logical;
}
-static SLOT_INTERFACE_START(pc_hd_floppies)
- SLOT_INTERFACE("525hd", FLOPPY_525_HD)
- SLOT_INTERFACE("35hd", FLOPPY_35_HD)
- SLOT_INTERFACE("525dd", FLOPPY_525_DD)
- SLOT_INTERFACE("35dd", FLOPPY_35_DD)
-SLOT_INTERFACE_END
+static void pc_hd_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+ device.option_add("35hd", FLOPPY_35_HD);
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("35dd", FLOPPY_35_DD);
+}
FLOPPY_FORMATS_MEMBER(fdc37c93x_device::floppy_formats)
FLOPPY_PC_FORMAT,
diff --git a/src/devices/machine/pdc.cpp b/src/devices/machine/pdc.cpp
index e09f9ff1777..0c828df743d 100644
--- a/src/devices/machine/pdc.cpp
+++ b/src/devices/machine/pdc.cpp
@@ -226,20 +226,22 @@ INPUT_PORTS_END
// SLOT_INTERFACE( pdc_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( pdc_floppies )
- SLOT_INTERFACE( "35hd", FLOPPY_35_HD )
-SLOT_INTERFACE_END
+static void pdc_floppies(device_slot_interface &device)
+{
+ device.option_add("35hd", FLOPPY_35_HD);
+}
//-------------------------------------------------
// SLOT_INTERFACE( pdc_harddisks )
//-------------------------------------------------
-static SLOT_INTERFACE_START( pdc_harddisks )
- SLOT_INTERFACE( "generic", MFMHD_GENERIC ) // Generic hard disk (self-adapting to image)
- SLOT_INTERFACE( "st213", MFMHD_ST213 ) // Seagate ST-213 (10 MB)
- SLOT_INTERFACE( "st225", MFMHD_ST225 ) // Seagate ST-225 (20 MB)
- SLOT_INTERFACE( "st251", MFMHD_ST251 ) // Seagate ST-251 (40 MB)
-SLOT_INTERFACE_END
+static void pdc_harddisks(device_slot_interface &device)
+{
+ device.option_add("generic", MFMHD_GENERIC); // Generic hard disk (self-adapting to image)
+ device.option_add("st213", MFMHD_ST213); // Seagate ST-213 (10 MB)
+ device.option_add("st225", MFMHD_ST225); // Seagate ST-225 (20 MB)
+ device.option_add("st251", MFMHD_ST251); // Seagate ST-251 (40 MB)
+}
//-------------------------------------------------
// FLOPPY_FORMATS( floppy_formats )
diff --git a/src/devices/machine/roc10937.h b/src/devices/machine/roc10937.h
index 4f67cd975cd..41b468c719e 100644
--- a/src/devices/machine/roc10937.h
+++ b/src/devices/machine/roc10937.h
@@ -103,29 +103,29 @@ private:
class roc10937_device : public rocvfd_device {
public:
- roc10937_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ roc10937_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 60);
};
class msc1937_device : public rocvfd_device {
public:
- msc1937_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ msc1937_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 60);
};
class mic10937_device : public rocvfd_device {
public:
- mic10937_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ mic10937_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 60);
};
class roc10957_device : public rocvfd_device {
public:
- roc10957_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ roc10957_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 60);
void write_char(int data);
};
class s16lf01_device : public rocvfd_device {
public:
- s16lf01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ s16lf01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 60);
};
diff --git a/src/devices/sound/ad1848.cpp b/src/devices/sound/ad1848.cpp
index 30a0e59da2a..e434302b554 100644
--- a/src/devices/sound/ad1848.cpp
+++ b/src/devices/sound/ad1848.cpp
@@ -26,8 +26,8 @@ MACHINE_CONFIG_START(ad1848_device::device_add_mconfig)
MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/devices/sound/pokey.cpp b/src/devices/sound/pokey.cpp
index 6664e684933..46e686befc7 100644
--- a/src/devices/sound/pokey.cpp
+++ b/src/devices/sound/pokey.cpp
@@ -163,6 +163,7 @@
static const int clock_divisors[3] = {1, DIV_64, DIV_15};
+constexpr unsigned pokey_device::FREQ_17_EXACT;
diff --git a/src/emu/devcb.h b/src/emu/devcb.h
index fee31ce1ca4..2fd6e53ae19 100644
--- a/src/emu/devcb.h
+++ b/src/emu/devcb.h
@@ -26,11 +26,6 @@ namespace emu { namespace detail {
template <typename Delegate> struct devcb_delegate_initialiser
{
- template <typename T> struct is_device_implementation
- { static constexpr bool value = std::is_base_of<device_t, T>::value; };
- template <typename T> struct is_device_interface
- { static constexpr bool value = std::is_base_of<device_interface, T>::value && !is_device_implementation<T>::value; };
-
devcb_delegate_initialiser(char const *tag, Delegate &&delegate) : m_base(nullptr), m_delegate(std::move(delegate))
{
}
@@ -53,9 +48,9 @@ template <typename Delegate> struct devcb_delegate_initialiser
inline char const *devcb_delegate_get_tag(char const *tag) { return tag; }
template <typename T>
-inline std::enable_if_t<devcb_delegate_initialiser<bool>::is_device_implementation<T>::value, char const *> devcb_delegate_get_tag(T &device) { return DEVICE_SELF; }
+inline std::enable_if_t<is_device_implementation<T>::value, char const *> devcb_delegate_get_tag(T &device) { return DEVICE_SELF; }
template <typename T>
-inline std::enable_if_t<devcb_delegate_initialiser<bool>::is_device_interface<T>::value, char const *> devcb_delegate_get_tag(T &interface) { return DEVICE_SELF; }
+inline std::enable_if_t<is_device_interface<T>::value, char const *> devcb_delegate_get_tag(T &interface) { return DEVICE_SELF; }
template <typename DeviceClass, bool Required>
inline char const *devcb_delegate_get_tag(device_finder<DeviceClass, Required> const &finder) { return finder.finder_tag(); }
@@ -191,14 +186,12 @@ protected:
template <callback_type Type> struct tag_desc
{
- constexpr tag_desc(device_t *base, char const *tag) : m_base(base), m_tag(tag) { }
device_t *m_base;
char const *m_tag;
};
template <callback_type Type> struct line_desc
{
- constexpr line_desc(device_t *base, char const *tag, int inputnum) : m_base(base), m_tag(tag), m_inputnum(inputnum) { }
device_t *m_base;
char const *m_tag;
int m_inputnum;
diff --git a/src/emu/devfind.h b/src/emu/devfind.h
index 1e61ad1c866..9bd5ad48fde 100644
--- a/src/emu/devfind.h
+++ b/src/emu/devfind.h
@@ -540,17 +540,12 @@ public:
}
private:
- template <typename T> struct is_device_implementation
- { static constexpr bool value = std::is_base_of<device_t, T>::value; };
- template <typename T> struct is_device_interface
- { static constexpr bool value = std::is_base_of<device_interface, T>::value && !is_device_implementation<T>::value; };
-
/// \brief Check that device implementation has expected tag
/// \param [in] device Reference to device.
/// \return True if supplied device matches the configured target
/// tag, or false otherwise.
template <typename T>
- std::enable_if_t<is_device_implementation<T>::value, bool> is_expected_tag(T const &device) const
+ std::enable_if_t<emu::detail::is_device_implementation<T>::value, bool> is_expected_tag(T const &device) const
{
return this->m_base.get().subtag(this->m_tag) == device.tag();
}
@@ -560,7 +555,7 @@ private:
/// \return True if supplied mixin matches the configured target
/// tag, or false otherwise.
template <typename T>
- std::enable_if_t<is_device_interface<T>::value, bool> is_expected_tag(T const &interface) const
+ std::enable_if_t<emu::detail::is_device_interface<T>::value, bool> is_expected_tag(T const &interface) const
{
return this->m_base.get().subtag(this->m_tag) == interface.device().tag();
}
diff --git a/src/emu/device.h b/src/emu/device.h
index 3dbaa5f4e37..cc8b5209945 100644
--- a/src/emu/device.h
+++ b/src/emu/device.h
@@ -75,6 +75,17 @@ namespace emu { namespace detail {
class device_type_impl_base;
+template <typename T> struct is_device_implementation
+{
+ static constexpr bool value = std::is_base_of<device_t, T>::value;
+};
+
+template <typename T> struct is_device_interface
+{
+ static constexpr bool value = std::is_base_of<device_interface, T>::value && !is_device_implementation<T>::value;
+};
+
+
struct device_feature
{
enum type : u32
@@ -203,6 +214,8 @@ private:
device_type_impl_base *m_next;
public:
+ using exposed_type = device_t;
+
device_type_impl_base(std::nullptr_t)
: m_creator(nullptr)
, m_type(typeid(std::nullptr_t))
@@ -252,6 +265,10 @@ public:
{
return m_creator(*this, mconfig, tag, owner, clock);
}
+ std::unique_ptr<device_t> create(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) const
+ {
+ return m_creator(*this, mconfig, tag, owner, clock);
+ }
explicit operator bool() const { return bool(m_creator); }
bool operator==(device_type_impl_base const &that) const { return &that == this; }
@@ -263,9 +280,20 @@ template <class DeviceClass>
class device_type_impl : public device_type_impl_base
{
public:
+ using exposed_type = DeviceClass;
+
using device_type_impl_base::device_type_impl_base;
- template <typename... Params> DeviceClass &operator()(machine_config &config, char const *tag, Params &&... args) const;
- template <typename Exposed, bool Required, typename... Params> DeviceClass &operator()(machine_config &config, device_finder<Exposed, Required> &finder, Params &&... args) const;
+ using device_type_impl_base::create;
+ using device_type_impl_base::operator();
+
+ template <typename... Params>
+ std::unique_ptr<DeviceClass> create(machine_config &mconfig, char const *tag, device_t *owner, Params &&... args) const
+ {
+ return make_unique_clear<DeviceClass>(mconfig, tag, owner, std::forward<Params>(args)...);
+ }
+
+ template <typename... Params> DeviceClass &operator()(machine_config &mconfig, char const *tag, Params &&... args) const;
+ template <typename Exposed, bool Required, typename... Params> DeviceClass &operator()(machine_config &mconfig, device_finder<Exposed, Required> &finder, Params &&... args) const;
};
diff --git a/src/emu/device.ipp b/src/emu/device.ipp
index 848223dd0c7..4fa6b2fe1ec 100644
--- a/src/emu/device.ipp
+++ b/src/emu/device.ipp
@@ -31,17 +31,17 @@ typedef device_delegate<void (u32)> clock_update_delegate;
namespace emu { namespace detail {
template <class DeviceClass> template <typename... Params>
-DeviceClass &device_type_impl<DeviceClass>::operator()(machine_config &config, char const *tag, Params &&... args) const
+inline DeviceClass &device_type_impl<DeviceClass>::operator()(machine_config &mconfig, char const *tag, Params &&... args) const
{
- return dynamic_cast<DeviceClass &>(*config.device_add(tag, *this, std::forward<Params>(args)...));
+ return dynamic_cast<DeviceClass &>(*mconfig.device_add(tag, *this, std::forward<Params>(args)...));
}
template <class DeviceClass> template <typename Exposed, bool Required, typename... Params>
-DeviceClass &device_type_impl<DeviceClass>::operator()(machine_config &config, device_finder<Exposed, Required> &finder, Params &&... args) const
+inline DeviceClass &device_type_impl<DeviceClass>::operator()(machine_config &mconfig, device_finder<Exposed, Required> &finder, Params &&... args) const
{
std::pair<device_t &, char const *> const target(finder.finder_target());
- assert(&config.current_device() == &target.first);
- DeviceClass &result(dynamic_cast<DeviceClass &>(*config.device_add(target.second, *this, std::forward<Params>(args)...)));
+ assert(&mconfig.current_device() == &target.first);
+ DeviceClass &result(dynamic_cast<DeviceClass &>(*mconfig.device_add(target.second, *this, std::forward<Params>(args)...)));
return finder = result;
}
diff --git a/src/emu/dislot.cpp b/src/emu/dislot.cpp
index e89fd8b77bd..37acf1dfddd 100644
--- a/src/emu/dislot.cpp
+++ b/src/emu/dislot.cpp
@@ -15,8 +15,8 @@
// ctor
// -------------------------------------------------
-device_slot_interface::device_slot_interface(const machine_config &mconfig, device_t &device)
- : device_interface(device, "slot"),
+device_slot_interface::device_slot_interface(const machine_config &mconfig, device_t &device) :
+ device_interface(device, "slot"),
m_default_option(nullptr),
m_fixed(false),
m_card_device(nullptr)
@@ -37,10 +37,10 @@ device_slot_interface::~device_slot_interface()
// device_slot_option ctor
// -------------------------------------------------
-device_slot_option::device_slot_option(const char *name, const device_type &devtype):
+device_slot_interface::slot_option::slot_option(const char *name, const device_type &devtype, bool selectable) :
m_name(name),
m_devtype(devtype),
- m_selectable(true),
+ m_selectable(selectable),
m_default_bios(nullptr),
m_machine_config(nullptr),
m_input_device_defaults(nullptr),
@@ -53,14 +53,33 @@ device_slot_option::device_slot_option(const char *name, const device_type &devt
// option_add
// -------------------------------------------------
-void device_slot_interface::option_add(const char *name, const device_type &devtype)
+device_slot_interface::slot_option &device_slot_interface::option_add(const char *name, const device_type &devtype)
{
- device_slot_option *slot_option = option(name);
+ const slot_option *const existing = option(name);
+ if (existing)
+ throw emu_fatalerror("slot '%s' duplicate option '%s'\n", device().tag(), name);
+
+ if (m_options.count(name))
+ throw tag_add_exception(name);
+
+ return *m_options.emplace(name, std::make_unique<slot_option>(name, devtype, true)).first->second;
+}
+
+
+// -------------------------------------------------
+// option_add_internal
+// -------------------------------------------------
- if (slot_option != nullptr)
+device_slot_interface::slot_option &device_slot_interface::option_add_internal(const char *name, const device_type &devtype)
+{
+ const slot_option *const existing = option(name);
+ if (existing)
throw emu_fatalerror("slot '%s' duplicate option '%s'\n", device().tag(), name);
- if (m_options.count(name) != 0) throw tag_add_exception(name);
- m_options.emplace(std::make_pair(name, std::make_unique<device_slot_option>(name, devtype)));
+
+ if (m_options.count(name))
+ throw tag_add_exception(name);
+
+ return *m_options.emplace(name, std::make_unique<slot_option>(name, devtype, false)).first->second;
}
@@ -68,14 +87,13 @@ void device_slot_interface::option_add(const char *name, const device_type &devt
// option
// -------------------------------------------------
-device_slot_option *device_slot_interface::config_option(const char *name)
+device_slot_interface::slot_option *device_slot_interface::config_option(const char *name)
{
- device_slot_option *slot_option = option(name);
-
- if (slot_option == nullptr)
- throw emu_fatalerror("slot '%s' has no option '%s'\n", device().tag(), name);
+ auto const search = m_options.find(name);
+ if (search != m_options.end())
+ return search->second.get();
- return slot_option;
+ throw emu_fatalerror("slot '%s' has no option '%s'\n", device().tag(), name);
}
@@ -99,16 +117,15 @@ bool device_slot_interface::has_selectable_options() const
// option
// -------------------------------------------------
-device_slot_option *device_slot_interface::option(const char *name) const
+const device_slot_interface::slot_option *device_slot_interface::option(const char *name) const
{
- device_slot_option *result = nullptr;
if (name)
{
- auto search = m_options.find(name);
+ auto const search = m_options.find(name);
if (search != m_options.end())
- result = search->second.get();
+ return search->second.get();
}
- return result;
+ return nullptr;
}
diff --git a/src/emu/dislot.h b/src/emu/dislot.h
index f8f1d5a8a70..be10da760cd 100644
--- a/src/emu/dislot.h
+++ b/src/emu/dislot.h
@@ -13,17 +13,7 @@
// LEGACY MACROS
//**************************************************************************
-#define MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_option, _fixed) MCFG_SLOT_OPTION_RESET slot_options_##_slot_intf(device); MCFG_SLOT_DEFAULT_OPTION(_def_option) MCFG_SLOT_FIXED(_fixed)
-#define SLOT_INTERFACE_NAME(name) slot_options_##name
-#define SLOT_INTERFACE_START(name) void slot_options_##name(device_t *device) {
-#define SLOT_INTERFACE(name,device) MCFG_SLOT_OPTION_ADD(name, device)
-#define SLOT_INTERFACE_INTERNAL(name,device) MCFG_SLOT_OPTION_ADD(name, device) MCFG_SLOT_OPTION_SELECTABLE(name, false)
-#define SLOT_INTERFACE_END }
-#define SLOT_INTERFACE_EXTERN(name) void slot_options_##name(device_t *device)
-#define MCFG_DEVICE_CARD_DEFAULT_BIOS(_option, _default_bios) MCFG_SLOT_OPTION_DEFAULT_BIOS(_option, _default_bios)
-#define MCFG_DEVICE_CARD_MACHINE_CONFIG(_option, _machine_config_name) MCFG_SLOT_OPTION_MACHINE_CONFIG(_option, _machine_config_name)
-#define MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS(_option, _dev_inp_def) MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS(_option, _dev_inp_def)
-#define MCFG_DEVICE_CARD_CLOCK(_option, _clock) MCFG_SLOT_OPTION_CLOCK(_option, _clock)
+#define MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_option, _fixed) MCFG_SLOT_OPTION_RESET _slot_intf(dynamic_cast<device_slot_interface &>(*device)); MCFG_SLOT_DEFAULT_OPTION(_def_option) MCFG_SLOT_FIXED(_fixed)
//**************************************************************************
@@ -42,9 +32,6 @@
#define MCFG_SLOT_OPTION_ADD(_option, _devtype) \
dynamic_cast<device_slot_interface &>(*device).option_add(_option, _devtype);
-#define MCFG_SLOT_OPTION_SELECTABLE(_option, _selectable) \
- dynamic_cast<device_slot_interface &>(*device).set_option_selectable(_option, _selectable);
-
#define MCFG_SLOT_OPTION_DEFAULT_BIOS(_option, _default_bios) \
dynamic_cast<device_slot_interface &>(*device).set_option_default_bios(_option, _default_bios);
@@ -62,35 +49,6 @@
// TYPE DEFINITIONS
//**************************************************************************
-// ======================> device_slot_option
-
-class device_slot_option
-{
- friend class device_slot_interface;
-
-public:
- device_slot_option(const char *name, const device_type &devtype);
-
- const char *name() const { return m_name; }
- const device_type &devtype() const { return m_devtype; }
- bool selectable() const { return m_selectable; }
- const char *default_bios() const { return m_default_bios; }
- std::function<void (device_t *)> machine_config() const { return m_machine_config; }
- const input_device_default *input_device_defaults() const { return m_input_device_defaults; }
- u32 clock() const { return m_clock; }
-
-private:
- // internal state
- const char *m_name;
- const device_type &m_devtype;
- bool m_selectable;
- const char *m_default_bios;
- std::function<void (device_t *)> m_machine_config;
- const input_device_default *m_input_device_defaults;
- u32 m_clock;
-};
-
-
// ======================> get_default_card_software_hook
class get_default_card_software_hook
@@ -124,6 +82,38 @@ private:
class device_slot_interface : public device_interface
{
public:
+ class slot_option
+ {
+ public:
+ slot_option(char const *name, device_type const &devtype, bool selectable);
+
+ char const *name() const { return m_name; }
+ device_type const &devtype() const { return m_devtype; }
+ bool selectable() const { return m_selectable; }
+ char const *default_bios() const { return m_default_bios; }
+ std::function<void (device_t *)> const &machine_config() const { return m_machine_config; }
+ input_device_default const *input_device_defaults() const { return m_input_device_defaults; }
+ u32 clock() const { return m_clock; }
+
+ slot_option &default_bios(char const *default_bios) { m_default_bios = default_bios; return *this; }
+ template <typename Object> slot_option &machine_config(Object &&cb) { m_machine_config = std::forward<Object>(cb); return *this; }
+ slot_option &input_device_defaults(input_device_default const *dev_inp_def) { m_input_device_defaults = dev_inp_def; return *this; }
+ slot_option &clock(u32 clock) { m_clock = clock; return *this; }
+ slot_option &clock(XTAL clock) { clock.validate(std::string("Configuring slot option ") + m_name); m_clock = clock.value(); return *this; }
+
+ private:
+ // internal state
+ char const *const m_name;
+ device_type const m_devtype;
+ bool const m_selectable;
+ char const *m_default_bios;
+ std::function<void (device_t *)> m_machine_config;
+ input_device_default const *m_input_device_defaults;
+ u32 m_clock;
+
+ friend class device_slot_interface;
+ };
+
// construction/destruction
device_slot_interface(const machine_config &mconfig, device_t &device);
virtual ~device_slot_interface();
@@ -131,17 +121,16 @@ public:
void set_fixed(bool fixed) { m_fixed = fixed; }
void set_default_option(const char *option) { m_default_option = option; }
void option_reset() { m_options.clear(); }
- void option_add(const char *option, const device_type &devtype);
- void set_option_selectable(const char *option, bool selectable){ config_option(option)->m_selectable = selectable; }
+ slot_option &option_add(const char *option, const device_type &devtype);
+ slot_option &option_add_internal(const char *option, const device_type &devtype);
void set_option_default_bios(const char *option, const char *default_bios) { config_option(option)->m_default_bios = default_bios; }
void set_option_machine_config(const char *option, std::function<void (device_t *)> machine_config) { config_option(option)->m_machine_config = machine_config; }
void set_option_device_input_defaults(const char *option, const input_device_default *default_input) { config_option(option)->m_input_device_defaults = default_input; }
- void set_option_clock(const char *option, u32 default_clock) { config_option(option)->m_clock = default_clock; }
bool fixed() const { return m_fixed; }
bool has_selectable_options() const;
const char *default_option() const { return m_default_option; }
- const std::unordered_map<std::string, std::unique_ptr<device_slot_option>> &option_list() const { return m_options; }
- device_slot_option *option(const char *name) const;
+ const std::unordered_map<std::string, std::unique_ptr<slot_option>> &option_list() const { return m_options; }
+ const slot_option *option(const char *name) const;
virtual std::string get_default_card_software(get_default_card_software_hook &hook) const { return std::string(); }
device_t *get_card_device() const { return m_card_device; }
void set_card_device(device_t *dev) { m_card_device = dev; }
@@ -149,12 +138,12 @@ public:
private:
// internal state
- std::unordered_map<std::string,std::unique_ptr<device_slot_option>> m_options;
+ std::unordered_map<std::string,std::unique_ptr<slot_option>> m_options;
const char *m_default_option;
bool m_fixed;
device_t *m_card_device;
- device_slot_option *config_option(const char *option);
+ slot_option *config_option(const char *option);
};
// iterator
diff --git a/src/emu/disound.cpp b/src/emu/disound.cpp
index 2e16107b996..59d511e4e48 100644
--- a/src/emu/disound.cpp
+++ b/src/emu/disound.cpp
@@ -42,22 +42,25 @@ device_sound_interface::~device_sound_interface()
// add_route - send sound output to a consumer
//-------------------------------------------------
-void device_sound_interface::add_route(u32 output, const char *target, double gain, u32 input, u32 mixoutput)
+device_sound_interface &device_sound_interface::add_route(u32 output, const char *target, double gain, u32 input, u32 mixoutput)
{
assert(!device().started());
m_route_list.emplace_back(sound_route{ output, input, mixoutput, float(gain), device().mconfig().current_device(), target });
+ return *this;
}
-void device_sound_interface::add_route(u32 output, device_sound_interface &target, double gain, u32 input, u32 mixoutput)
+device_sound_interface &device_sound_interface::add_route(u32 output, device_sound_interface &target, double gain, u32 input, u32 mixoutput)
{
assert(!device().started());
m_route_list.emplace_back(sound_route{ output, input, mixoutput, float(gain), target.device(), DEVICE_SELF });
+ return *this;
}
-void device_sound_interface::add_route(u32 output, speaker_device &target, double gain, u32 input, u32 mixoutput)
+device_sound_interface &device_sound_interface::add_route(u32 output, speaker_device &target, double gain, u32 input, u32 mixoutput)
{
assert(!device().started());
m_route_list.emplace_back(sound_route{ output, input, mixoutput, float(gain), target, DEVICE_SELF });
+ return *this;
}
diff --git a/src/emu/disound.h b/src/emu/disound.h
index da968abd789..05bba47f5b1 100644
--- a/src/emu/disound.h
+++ b/src/emu/disound.h
@@ -44,10 +44,8 @@ constexpr int AUTO_ALLOC_INPUT = 65535;
#define MCFG_SOUND_REPLACE(_tag, _type, _clock) \
MCFG_DEVICE_REPLACE(_tag, _type, _clock)
-#define MCFG_SOUND_ROUTE(_output, _target, _gain) \
- dynamic_cast<device_sound_interface &>(*device).add_route(_output, _target, _gain);
-#define MCFG_SOUND_ROUTE_EX(_output, _target, _gain, _input) \
- dynamic_cast<device_sound_interface &>(*device).add_route(_output, _target, _gain, _input);
+#define MCFG_SOUND_ROUTE(_output, _target, ...) \
+ dynamic_cast<device_sound_interface &>(*device).add_route(_output, _target, __VA_ARGS__);
#define MCFG_SOUND_ROUTES_RESET() \
dynamic_cast<device_sound_interface &>(*device).reset_routes();
@@ -86,10 +84,10 @@ public:
std::vector<sound_route> const &routes() const { return m_route_list; }
// configuration helpers
- void add_route(u32 output, const char *target, double gain, u32 input = AUTO_ALLOC_INPUT, u32 mixoutput = 0);
- void add_route(u32 output, device_sound_interface &target, double gain, u32 input = AUTO_ALLOC_INPUT, u32 mixoutput = 0);
- void add_route(u32 output, speaker_device &target, double gain, u32 input = AUTO_ALLOC_INPUT, u32 mixoutput = 0);
- void reset_routes() { m_route_list.clear(); }
+ device_sound_interface &add_route(u32 output, const char *target, double gain, u32 input = AUTO_ALLOC_INPUT, u32 mixoutput = 0);
+ device_sound_interface &add_route(u32 output, device_sound_interface &target, double gain, u32 input = AUTO_ALLOC_INPUT, u32 mixoutput = 0);
+ device_sound_interface &add_route(u32 output, speaker_device &target, double gain, u32 input = AUTO_ALLOC_INPUT, u32 mixoutput = 0);
+ device_sound_interface &reset_routes() { m_route_list.clear(); return *this; }
// sound stream update overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) = 0;
@@ -154,4 +152,4 @@ protected:
typedef device_interface_iterator<device_mixer_interface> mixer_interface_iterator;
-#endif /* MAME_EMU_DISOUND_H */
+#endif // MAME_EMU_DISOUND_H
diff --git a/src/emu/mconfig.cpp b/src/emu/mconfig.cpp
index eef4a143969..546ce1c885f 100644
--- a/src/emu/mconfig.cpp
+++ b/src/emu/mconfig.cpp
@@ -73,7 +73,8 @@ machine_config::machine_config(const game_driver &gamedrv, emu_options &options)
if (selval && *selval)
{
- device_slot_option const *const option = slot.option(selval);
+ // TODO: make this thing more self-contained so it can apply itself - shouldn't need to know all this here
+ device_slot_interface::slot_option const *option = slot.option(selval);
if (option && (is_default || option->selectable()))
{
// create the device
@@ -115,11 +116,11 @@ machine_config::~machine_config()
//-------------------------------------------------
-// device_add - configuration helper to add a
-// new device
+// resolve_owner - get the actual owner and base
+// tag given tag relative to current context
//-------------------------------------------------
-device_t *machine_config::device_add(const char *tag, device_type type, u32 clock)
+std::pair<const char *, device_t *> machine_config::resolve_owner(const char *tag) const
{
assert(bool(m_current_device) == bool(m_root_device));
char const *const orig_tag = tag;
@@ -145,19 +146,30 @@ device_t *machine_config::device_add(const char *tag, device_type type, u32 cloc
}
assert(tag[0] != '\0');
+ return std::make_pair(tag, owner);
+}
+
+
+//-------------------------------------------------
+// add_device - add a new device at the correct
+// point in the hierarchy
+//-------------------------------------------------
+
+device_t *machine_config::add_device(std::unique_ptr<device_t> &&device, device_t *owner)
+{
current_device_stack context(*this);
if (owner)
{
// allocate the new device and append it to the owner's list
- device_t *const device = &owner->subdevices().m_list.append(*type(*this, tag, owner, clock).release());
- device->add_machine_configuration(*this);
- return device;
+ device_t *const result = &owner->subdevices().m_list.append(*device.release());
+ result->add_machine_configuration(*this);
+ return result;
}
else
{
// allocate the root device directly
assert(!m_root_device);
- m_root_device = type(*this, tag, nullptr, clock);
+ m_root_device = std::move(device);
driver_device *driver = dynamic_cast<driver_device *>(m_root_device.get());
if (driver)
driver->set_game_driver(m_gamedrv);
@@ -168,6 +180,18 @@ device_t *machine_config::device_add(const char *tag, device_type type, u32 cloc
//-------------------------------------------------
+// device_add - configuration helper to add a
+// new device
+//-------------------------------------------------
+
+device_t *machine_config::device_add(const char *tag, device_type type, u32 clock)
+{
+ std::pair<const char *, device_t *> const owner(resolve_owner(tag));
+ return add_device(type(*this, owner.first, owner.second, clock), owner.second);
+}
+
+
+//-------------------------------------------------
// device_replace - configuration helper to
// replace one device with a new device
//-------------------------------------------------
diff --git a/src/emu/mconfig.h b/src/emu/mconfig.h
index 0c09f4b69ab..ce3317a17b2 100644
--- a/src/emu/mconfig.h
+++ b/src/emu/mconfig.h
@@ -18,6 +18,13 @@
#ifndef MAME_EMU_MCONFIG_H
#define MAME_EMU_MCONFIG_H
+#include <cassert>
+#include <memory>
+#include <type_traits>
+#include <typeinfo>
+#include <utility>
+
+
//**************************************************************************
// CONSTANTS
//**************************************************************************
@@ -103,11 +110,26 @@ public:
return token(*this, device);
}
device_t *device_add(const char *tag, device_type type, u32 clock);
- template <typename... Params>
- device_t *device_add(const char *tag, device_type type, const XTAL &clock, Params &&... args)
+ template <typename Creator>
+ device_t *device_add(const char *tag, Creator &&type, u32 clock)
+ {
+ return device_add(tag, device_type(type), clock);
+ }
+ template <typename Creator, typename... Params>
+ auto device_add(const char *tag, Creator &&type, Params &&... args)
+ {
+ std::pair<const char *, device_t *> const owner(resolve_owner(tag));
+ auto device(type.create(*this, owner.first, owner.second, std::forward<Params>(args)...));
+ auto &result(*device);
+ assert(type.type() == typeid(result));
+ add_device(std::move(device), owner.second);
+ return &result;
+ }
+ template <typename Creator, typename... Params>
+ auto device_add(const char *tag, Creator &&type, XTAL clock, Params &&... args)
{
clock.validate(std::string("Instantiating device ") + tag);
- return device_add(tag, type, clock.value(), std::forward<Params>(args)...);
+ return device_add(tag, std::forward<Creator>(type), clock.value(), std::forward<Params>(args)...);
}
device_t *device_replace(const char *tag, device_type type, u32 clock);
device_t *device_replace(const char *tag, device_type type, const XTAL &xtal);
@@ -118,6 +140,8 @@ private:
class current_device_stack;
// internal helpers
+ std::pair<const char *, device_t *> resolve_owner(const char *tag) const;
+ device_t *add_device(std::unique_ptr<device_t> &&device, device_t *owner);
void remove_references(ATTR_UNUSED device_t &device);
// internal state
@@ -128,6 +152,22 @@ private:
};
+namespace emu { namespace detail {
+
+template <typename Tag, typename Creator, typename... Params>
+inline std::enable_if_t<emu::detail::is_device_implementation<typename std::remove_reference_t<Creator>::exposed_type>::value, typename std::remove_reference_t<Creator>::exposed_type *> device_add_impl(machine_config &mconfig, Tag &&tag, Creator &&type, Params &&... args)
+{
+ return &type(mconfig, std::forward<Tag>(tag), std::forward<Params>(args)...);
+}
+template <typename Tag, typename Creator, typename... Params>
+inline std::enable_if_t<emu::detail::is_device_interface<typename std::remove_reference_t<Creator>::exposed_type>::value, device_t *> device_add_impl(machine_config &mconfig, Tag &&tag, Creator &&type, Params &&... args)
+{
+ return &type(mconfig, std::forward<Tag>(tag), std::forward<Params>(args)...).device();
+}
+
+} } // namespace emu::detail
+
+
//*************************************************************************/
/** @name Machine config start/end macros */
//*************************************************************************/
@@ -169,8 +209,8 @@ Ends a machine_config.
config.m_default_layout = &(_layout);
// add/remove devices
-#define MCFG_DEVICE_ADD(_tag, _type, _clock) \
- device = config.device_add(_tag, _type, _clock);
+#define MCFG_DEVICE_ADD(_tag, ...) \
+ device = emu::detail::device_add_impl(config, _tag, __VA_ARGS__);
#define MCFG_DEVICE_REPLACE(_tag, _type, _clock) \
device = config.device_replace(_tag, _type, _clock);
#define MCFG_DEVICE_REMOVE(_tag) \
diff --git a/src/emu/speaker.h b/src/emu/speaker.h
index 4665dbdf2e8..2280b883250 100644
--- a/src/emu/speaker.h
+++ b/src/emu/speaker.h
@@ -53,7 +53,10 @@ public:
virtual ~speaker_device();
// inline configuration helpers
- void set_position(double x, double y, double z) { m_x = x; m_y = y; m_z = z; }
+ speaker_device &set_position(double x, double y, double z) { m_x = x; m_y = y; m_z = z; return *this; }
+ speaker_device &standard_mono() { set_position(0.0, 0.0, 1.0); return *this; }
+ speaker_device &standard_left() { set_position(-0.2, 0.0, 1.0); return *this; }
+ speaker_device &standard_right() { set_position(0.2, 0.0, 1.0); return *this; }
// internally for use by the sound system
void mix(s32 *leftmix, s32 *rightmix, int &samples_this_update, bool suppress);
@@ -80,4 +83,4 @@ protected:
typedef device_type_iterator<speaker_device> speaker_device_iterator;
-#endif /* MAME_EMU_SPEAKER_H */
+#endif // MAME_EMU_SPEAKER_H
diff --git a/src/emu/validity.cpp b/src/emu/validity.cpp
index 456cd5656b0..c5213ec8c96 100644
--- a/src/emu/validity.cpp
+++ b/src/emu/validity.cpp
@@ -1988,7 +1988,8 @@ void validity_checker::validate_devices()
{
if (subslot.fixed())
{
- device_slot_option const *const suboption = subslot.option(subslot.default_option());
+ // TODO: make this self-contained so it can apply itself
+ device_slot_interface::slot_option const *suboption = subslot.option(subslot.default_option());
if (suboption)
{
machine_config::token const tok(m_current_config->begin_configuration(subslot.device()));
diff --git a/src/frontend/mame/clifront.cpp b/src/frontend/mame/clifront.cpp
index 937d07b5ab6..a5f186dec7f 100644
--- a/src/frontend/mame/clifront.cpp
+++ b/src/frontend/mame/clifront.cpp
@@ -860,13 +860,13 @@ void cli_frontend::listslots(const std::vector<std::string> &args)
if (slot.fixed()) continue;
// build a list of user-selectable options
- std::vector<device_slot_option *> option_list;
+ std::vector<device_slot_interface::slot_option const *> option_list;
for (auto &option : slot.option_list())
if (option.second->selectable())
option_list.push_back(option.second.get());
// sort them by name
- std::sort(option_list.begin(), option_list.end(), [](device_slot_option *opt1, device_slot_option *opt2) {
+ std::sort(option_list.begin(), option_list.end(), [](device_slot_interface::slot_option const *opt1, device_slot_interface::slot_option const *opt2) {
return strcmp(opt1->name(), opt2->name()) < 0;
});
@@ -877,7 +877,7 @@ void cli_frontend::listslots(const std::vector<std::string> &args)
bool first_option = true;
// get the options and print them
- for (device_slot_option *opt : option_list)
+ for (device_slot_interface::slot_option const *opt : option_list)
{
if (first_option)
printf("%-16s %s\n", opt->name(), opt->devtype().fullname());
diff --git a/src/frontend/mame/ui/devopt.cpp b/src/frontend/mame/ui/devopt.cpp
index c546a4548a7..ac9a721e455 100644
--- a/src/frontend/mame/ui/devopt.cpp
+++ b/src/frontend/mame/ui/devopt.cpp
@@ -19,7 +19,7 @@ namespace ui {
menu
-------------------------------------------------*/
-menu_device_config::menu_device_config(mame_ui_manager &mui, render_container &container, device_slot_interface *slot, device_slot_option *option) : menu(mui, container)
+menu_device_config::menu_device_config(mame_ui_manager &mui, render_container &container, device_slot_interface *slot, device_slot_interface::slot_option const *option) : menu(mui, container)
{
m_option = option;
m_owner = slot;
diff --git a/src/frontend/mame/ui/devopt.h b/src/frontend/mame/ui/devopt.h
index 1bd3fafb627..2bb4e24c6c0 100644
--- a/src/frontend/mame/ui/devopt.h
+++ b/src/frontend/mame/ui/devopt.h
@@ -19,7 +19,7 @@ namespace ui {
class menu_device_config : public menu
{
public:
- menu_device_config(mame_ui_manager &mui, render_container &container, device_slot_interface *slot, device_slot_option *option);
+ menu_device_config(mame_ui_manager &mui, render_container &container, device_slot_interface *slot, device_slot_interface::slot_option const *option);
virtual ~menu_device_config() override;
private:
@@ -27,7 +27,7 @@ private:
virtual void handle() override;
device_slot_interface *m_owner;
- device_slot_option *m_option;
+ device_slot_interface::slot_option const *m_option;
bool m_mounted;
};
diff --git a/src/frontend/mame/ui/slotopt.cpp b/src/frontend/mame/ui/slotopt.cpp
index d61246a7661..b41e7f4c935 100644
--- a/src/frontend/mame/ui/slotopt.cpp
+++ b/src/frontend/mame/ui/slotopt.cpp
@@ -61,7 +61,7 @@ menu_slot_devices::~menu_slot_devices()
// slot option
//-------------------------------------------------
-device_slot_option *menu_slot_devices::get_current_option(device_slot_interface &slot) const
+device_slot_interface::slot_option const *menu_slot_devices::get_current_option(device_slot_interface &slot) const
{
std::string current;
@@ -184,7 +184,7 @@ void menu_slot_devices::populate(float &customtop, float &custombottom)
// name this option
std::string opt_name(DIVIDER);
- const device_slot_option *option = get_current_option(slot);
+ device_slot_interface::slot_option const *option = get_current_option(slot);
if (option)
{
opt_name = has_selectable_options
@@ -216,7 +216,7 @@ void menu_slot_devices::custom_render(void *selectedref, float top, float bottom
if (selectedref && (ITEMREF_RESET != selectedref))
{
device_slot_interface *const slot(reinterpret_cast<device_slot_interface *>(selectedref));
- device_slot_option const *const option(get_current_option(*slot));
+ device_slot_interface::slot_option const *const option(get_current_option(*slot));
char const *const text[] = { option ? option->devtype().fullname() : _("[empty slot]") };
draw_text_box(
std::begin(text), std::end(text),
@@ -251,7 +251,7 @@ void menu_slot_devices::handle()
else if (menu_event->iptkey == IPT_UI_SELECT)
{
device_slot_interface *slot = (device_slot_interface *)menu_event->itemref;
- device_slot_option *option = get_current_option(*slot);
+ device_slot_interface::slot_option const *const option = get_current_option(*slot);
if (option)
menu::stack_push<menu_device_config>(ui(), container(), slot, option);
}
@@ -268,7 +268,7 @@ void menu_slot_devices::rotate_slot_device(device_slot_interface &slot, menu_slo
// first, we need to make sure our cache of options is up to date
if (m_current_option_list_slot_tag != slot.device().tag())
{
- device_slot_option *current = get_current_option(slot);
+ device_slot_interface::slot_option const *current = get_current_option(slot);
// build the option list, including the blank option
m_current_option_list.clear();
diff --git a/src/frontend/mame/ui/slotopt.h b/src/frontend/mame/ui/slotopt.h
index 1a4421520d4..703b9b16f23 100644
--- a/src/frontend/mame/ui/slotopt.h
+++ b/src/frontend/mame/ui/slotopt.h
@@ -34,7 +34,7 @@ private:
virtual void custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2) override;
virtual void handle() override;
- device_slot_option *get_current_option(device_slot_interface &slot) const;
+ device_slot_interface::slot_option const *get_current_option(device_slot_interface &slot) const;
void set_slot_device(device_slot_interface &slot, const char *val);
void record_current_options();
bool try_refresh_current_options();
diff --git a/src/mame/audio/alesis.cpp b/src/mame/audio/alesis.cpp
index e677c3b8ebe..382b862ef8d 100644
--- a/src/mame/audio/alesis.cpp
+++ b/src/mame/audio/alesis.cpp
@@ -46,7 +46,7 @@ MACHINE_CONFIG_START(alesis_dm3ag_device::device_add_mconfig)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker2", "rspeaker2")
MCFG_SOUND_ADD("dac", PCM54HP, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker1", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker1", 1.0) // PCM54HP DAC + R63/R73-75 + Sample and hold
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
//-------------------------------------------------
diff --git a/src/mame/audio/bwidow.cpp b/src/mame/audio/bwidow.cpp
index 4d0a656d410..c89662edba0 100644
--- a/src/mame/audio/bwidow.cpp
+++ b/src/mame/audio/bwidow.cpp
@@ -155,12 +155,12 @@ MACHINE_CONFIG_START(bwidow_state::bwidow_audio)
MCFG_SOUND_ADD("pokey1", POKEY, MASTER_CLOCK / 8) /* C/D3 */
MCFG_POKEY_ALLPOT_R_CB(IOPORT("DSW0"))
MCFG_POKEY_OUTPUT_OPAMP(BW_R51, BW_C31, 5.0)
- MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
+ MCFG_SOUND_ROUTE(0, "discrete", 1.0, 0)
MCFG_SOUND_ADD("pokey2", POKEY, MASTER_CLOCK / 8) /* B3 */
MCFG_POKEY_ALLPOT_R_CB(IOPORT("DSW1"))
MCFG_POKEY_OUTPUT_OPAMP(BW_R47, BW_C32, 5.0)
- MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 1)
+ MCFG_SOUND_ROUTE(0, "discrete", 1.0, 1)
MCFG_SOUND_ADD("discrete", DISCRETE, 0)
MCFG_DISCRETE_INTF(bwidow)
diff --git a/src/mame/audio/bzone.cpp b/src/mame/audio/bzone.cpp
index fd363bef5f9..247c0cb8a31 100644
--- a/src/mame/audio/bzone.cpp
+++ b/src/mame/audio/bzone.cpp
@@ -404,7 +404,7 @@ MACHINE_CONFIG_START(bzone_state::bzone_audio)
MCFG_SOUND_ADD("pokey", POKEY, BZONE_MASTER_CLOCK / 8)
MCFG_POKEY_ALLPOT_R_CB(IOPORT("IN3"))
MCFG_POKEY_OUTPUT_RC(RES_K(10), CAP_U(0.015), 5.0)
- MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
+ MCFG_SOUND_ROUTE(0, "discrete", 1.0, 0)
MCFG_SOUND_ADD("discrete", DISCRETE, 0)
MCFG_DISCRETE_INTF(bzone)
diff --git a/src/mame/audio/csd.cpp b/src/mame/audio/csd.cpp
index e8590eb74d9..5d76e5f772e 100644
--- a/src/mame/audio/csd.cpp
+++ b/src/mame/audio/csd.cpp
@@ -48,7 +48,7 @@ MACHINE_CONFIG_START(midway_cheap_squeak_deluxe_device::device_add_mconfig)
MCFG_SOUND_ADD("dac", AD7533, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 1.0)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
//-------------------------------------------------
diff --git a/src/mame/audio/gottlieb.cpp b/src/mame/audio/gottlieb.cpp
index 52016e051d2..36960cce059 100644
--- a/src/mame/audio/gottlieb.cpp
+++ b/src/mame/audio/gottlieb.cpp
@@ -122,7 +122,7 @@ MACHINE_CONFIG_START(gottlieb_sound_r0_device::device_add_mconfig)
// sound devices
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -322,7 +322,7 @@ MACHINE_CONFIG_START(gottlieb_sound_r1_device::device_add_mconfig)
// sound devices
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -668,9 +668,9 @@ MACHINE_CONFIG_START(gottlieb_sound_r2_device::device_add_mconfig)
// sound hardware
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.075) // unknown DAC
MCFG_SOUND_ADD("dacvol", DAC_8BIT_R2R, 0) // unknown DAC
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dacvol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dacvol", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_ADD("ay1", AY8913, SOUND2_CLOCK/2)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.15)
diff --git a/src/mame/audio/harddriv.cpp b/src/mame/audio/harddriv.cpp
index 47bef45ab5b..c04d1454067 100644
--- a/src/mame/audio/harddriv.cpp
+++ b/src/mame/audio/harddriv.cpp
@@ -457,5 +457,5 @@ MACHINE_CONFIG_START(harddriv_sound_board_device::device_add_mconfig)
MCFG_SOUND_ADD("dac", AM6012, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // ls374d.75e + ls374d.90e + am6012
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/audio/irem.cpp b/src/mame/audio/irem.cpp
index 556ff0f1e63..ddd2c1acddc 100644
--- a/src/mame/audio/irem.cpp
+++ b/src/mame/audio/irem.cpp
@@ -419,27 +419,27 @@ MACHINE_CONFIG_START(m62_audio_device::device_add_mconfig)
MCFG_AY8910_RES_LOADS(2000.0, 2000.0, 2000.0)
MCFG_AY8910_PORT_A_READ_CB(READ8(irem_audio_device, soundlatch_r))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(irem_audio_device, ay8910_45M_portb_w))
- MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "snd_nl", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "snd_nl", 1.0, 2)
+ MCFG_SOUND_ROUTE(0, "snd_nl", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "snd_nl", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "snd_nl", 1.0, 2)
MCFG_SOUND_ADD("ay_45l", AY8910, XTAL(3'579'545)/4) /* verified on pcb */
MCFG_AY8910_OUTPUT_TYPE(AY8910_RESISTOR_OUTPUT)
MCFG_AY8910_RES_LOADS(2000.0, 2000.0, 2000.0)
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(irem_audio_device, ay8910_45L_porta_w))
- MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 3)
- MCFG_SOUND_ROUTE_EX(1, "snd_nl", 1.0, 4)
- MCFG_SOUND_ROUTE_EX(2, "snd_nl", 1.0, 5)
+ MCFG_SOUND_ROUTE(0, "snd_nl", 1.0, 3)
+ MCFG_SOUND_ROUTE(1, "snd_nl", 1.0, 4)
+ MCFG_SOUND_ROUTE(2, "snd_nl", 1.0, 5)
MCFG_SOUND_ADD("msm1", MSM5205, XTAL(384'000)) /* verified on pcb */
MCFG_MSM5205_VCK_CALLBACK(INPUTLINE("iremsound", INPUT_LINE_NMI)) // driven through NPN inverter
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("msm2", msm5205_device, vclk_w)) // the first MSM5205 clocks the second
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* default to 4KHz, but can be changed at run time */
- MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 6)
+ MCFG_SOUND_ROUTE(0, "snd_nl", 1.0, 6)
MCFG_SOUND_ADD("msm2", MSM5205, XTAL(384'000)) /* verified on pcb */
MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* default to 4KHz, but can be changed at run time, slave */
- MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 7)
+ MCFG_SOUND_ROUTE(0, "snd_nl", 1.0, 7)
/* NETLIST configuration using internal AY8910 resistor values */
@@ -489,18 +489,18 @@ MACHINE_CONFIG_START(m52_soundc_audio_device::device_add_mconfig)
MCFG_AY8910_RES_LOADS(470, 0, 0)
MCFG_AY8910_PORT_A_READ_CB(READ8(irem_audio_device, soundlatch_r))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(irem_audio_device, ay8910_45M_portb_w))
- MCFG_SOUND_ROUTE_EX(0, "filtermix", 1.0, 0)
+ MCFG_SOUND_ROUTE(0, "filtermix", 1.0, 0)
MCFG_SOUND_ADD("ay_45l", AY8910, XTAL(3'579'545)/4) /* verified on pcb */
MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT | AY8910_DISCRETE_OUTPUT)
MCFG_AY8910_RES_LOADS(470, 0, 0)
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(irem_audio_device, ay8910_45L_porta_w))
- MCFG_SOUND_ROUTE_EX(0, "filtermix", 1.0, 1)
+ MCFG_SOUND_ROUTE(0, "filtermix", 1.0, 1)
MCFG_SOUND_ADD("msm1", MSM5205, XTAL(384'000)) /* verified on pcb */
MCFG_MSM5205_VCK_CALLBACK(INPUTLINE("iremsound", INPUT_LINE_NMI)) // driven through NPN inverter
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* default to 4KHz, but can be changed at run time */
- MCFG_SOUND_ROUTE_EX(0, "filtermix", 1.0, 2)
+ MCFG_SOUND_ROUTE(0, "filtermix", 1.0, 2)
MCFG_SOUND_ADD("filtermix", DISCRETE, 0)
MCFG_DISCRETE_INTF(m52_sound_c)
diff --git a/src/mame/audio/leland.cpp b/src/mame/audio/leland.cpp
index 4468347039c..0e6ea63c723 100644
--- a/src/mame/audio/leland.cpp
+++ b/src/mame/audio/leland.cpp
@@ -142,20 +142,20 @@ MACHINE_CONFIG_START(leland_80186_sound_device::device_add_mconfig)
MCFG_SOUND_ADD("dac5", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // 74hc374.u35 + ad7524.u50
MCFG_SOUND_ADD("dac6", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // 74hc374.u36 + ad7524.u51
MCFG_SOUND_ADD("dac9", AD7533, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // ad7533.u64
- MCFG_SOUND_ADD("dac1vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT) // 74hc374.u17 + r2-r9 (24k,12k,6.2k,3k,1.5k,750,360,160)
- MCFG_SOUND_ADD("dac2vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) // 74hc374.u18 + r12-r19 (24k,12k,6.2k,3k,1.5k,750,360,160)
- MCFG_SOUND_ADD("dac3vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac3", -1.0, DAC_VREF_NEG_INPUT) // 74hc374.u19 + r22-r29 (24k,12k,6.2k,3k,1.5k,750,360,160)
- MCFG_SOUND_ADD("dac4vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac4", -1.0, DAC_VREF_NEG_INPUT) // 74hc374.u20 + r32-r39 (24k,12k,6.2k,3k,1.5k,750,360,160)
- MCFG_SOUND_ADD("dac5vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac5", -1.0, DAC_VREF_NEG_INPUT) // 74hc374.u21 + r42-r49 (24k,12k,6.2k,3k,1.5k,750,360,160)
- MCFG_SOUND_ADD("dac6vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac6", -1.0, DAC_VREF_NEG_INPUT) // 74hc374.u22 + r52-r59 (24k,12k,6.2k,3k,1.5k,750,360,160)
+ MCFG_SOUND_ADD("dac1vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT) // 74hc374.u17 + r2-r9 (24k,12k,6.2k,3k,1.5k,750,360,160)
+ MCFG_SOUND_ADD("dac2vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) // 74hc374.u18 + r12-r19 (24k,12k,6.2k,3k,1.5k,750,360,160)
+ MCFG_SOUND_ADD("dac3vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac3", -1.0, DAC_VREF_NEG_INPUT) // 74hc374.u19 + r22-r29 (24k,12k,6.2k,3k,1.5k,750,360,160)
+ MCFG_SOUND_ADD("dac4vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac4", -1.0, DAC_VREF_NEG_INPUT) // 74hc374.u20 + r32-r39 (24k,12k,6.2k,3k,1.5k,750,360,160)
+ MCFG_SOUND_ADD("dac5vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac5", -1.0, DAC_VREF_NEG_INPUT) // 74hc374.u21 + r42-r49 (24k,12k,6.2k,3k,1.5k,750,360,160)
+ MCFG_SOUND_ADD("dac6vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac6", -1.0, DAC_VREF_NEG_INPUT) // 74hc374.u22 + r52-r59 (24k,12k,6.2k,3k,1.5k,750,360,160)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac3vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac4vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac5vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac6vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac9", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac9", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac3vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac4vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac5vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac6vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac9", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac9", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("pit0", PIT8254, 0)
MCFG_PIT8253_CLK0(4000000)
@@ -184,23 +184,23 @@ MACHINE_CONFIG_START(redline_80186_sound_device::device_add_mconfig)
MCFG_SOUND_ADD("dac6", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
MCFG_SOUND_ADD("dac7", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
MCFG_SOUND_ADD("dac8", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
- MCFG_SOUND_ADD("dac1vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac2vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac3vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac3", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac4vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac4", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac5vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac5", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac6vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac6", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac7vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac7", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac8vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac8", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac8", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac1vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac2vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac3vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac3", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac4vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac4", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac5vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac5", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac6vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac6", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac7vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac7", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac8vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac8", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac8", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac3vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac4vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac5vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac6vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac7vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac8vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac3vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac4vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac5vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac6vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac7vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac8vol", 1.0, DAC_VREF_POS_INPUT)
MCFG_DEVICE_ADD("pit0", PIT8254, 0)
MCFG_PIT8253_CLK0(7000000)
@@ -231,16 +231,16 @@ MACHINE_CONFIG_START(ataxx_80186_sound_device::device_add_mconfig)
MCFG_SOUND_ADD("dac3", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
MCFG_SOUND_ADD("dac4", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
MCFG_SOUND_ADD("dac9", AD7533, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
- MCFG_SOUND_ADD("dac1vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac2vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac3vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac3", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac4vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac4", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac1vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac2vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac3vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac3", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac4vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac4", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac3vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac4vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac9", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac9", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac3vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac4vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac9", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac9", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("pit0", PIT8254, 0)
MCFG_PIT8253_CLK0(4000000)
@@ -258,16 +258,16 @@ MACHINE_CONFIG_START(wsf_80186_sound_device::device_add_mconfig)
MCFG_SOUND_ADD("dac3", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
MCFG_SOUND_ADD("dac4", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
MCFG_SOUND_ADD("dac9", AD7533, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
- MCFG_SOUND_ADD("dac1vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac2vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac3vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac3", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac4vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE_EX(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac4", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac1vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac2vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac3vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac3", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac4vol", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac4", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac3vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac4vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac9", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac9", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac3vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac4vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac9", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac9", -1.0, DAC_VREF_NEG_INPUT)
/* sound hardware */
MCFG_YM2151_ADD("ymsnd", 4000000)
diff --git a/src/mame/audio/midway.cpp b/src/mame/audio/midway.cpp
index 66f7a5d379b..3a6b2e461d7 100644
--- a/src/mame/audio/midway.cpp
+++ b/src/mame/audio/midway.cpp
@@ -601,7 +601,7 @@ MACHINE_CONFIG_START(midway_sounds_good_device::device_add_mconfig)
MCFG_SOUND_ADD("dac", AD7533, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 1.0) /// ad7533jn.u10
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -756,7 +756,7 @@ MACHINE_CONFIG_START(midway_turbo_cheap_squeak_device::device_add_mconfig)
MCFG_SOUND_ADD("dac", AD7533, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 1.0)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/audio/n8080.cpp b/src/mame/audio/n8080.cpp
index 46498a226cd..8fc7e54fa0a 100644
--- a/src/mame/audio/n8080.cpp
+++ b/src/mame/audio/n8080.cpp
@@ -493,7 +493,7 @@ MACHINE_CONFIG_START(n8080_state::spacefev_sound)
MCFG_SOUND_ADD("n8080_dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.15)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "n8080_dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "n8080_dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SN76477_NOISE_PARAMS(RES_K(36), RES_K(150), CAP_N(1)) // noise + filter
@@ -531,7 +531,7 @@ MACHINE_CONFIG_START(n8080_state::sheriff_sound)
MCFG_SOUND_ADD("n8080_dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.15)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "n8080_dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "n8080_dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SN76477_NOISE_PARAMS(RES_K(36), RES_K(100), CAP_N(1)) // noise + filter
@@ -572,5 +572,5 @@ MACHINE_CONFIG_START(n8080_state::helifire_sound)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("helifire_dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.15) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "helifire_dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "helifire_dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "helifire_dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "helifire_dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/audio/nichisnd.cpp b/src/mame/audio/nichisnd.cpp
index 92878424693..a7b728db8f1 100644
--- a/src/mame/audio/nichisnd.cpp
+++ b/src/mame/audio/nichisnd.cpp
@@ -101,8 +101,8 @@ MACHINE_CONFIG_START(nichisnd_device::device_add_mconfig)
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.37) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.37) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/audio/s11c_bg.cpp b/src/mame/audio/s11c_bg.cpp
index 52f5c62e6aa..6896485d8fd 100644
--- a/src/mame/audio/s11c_bg.cpp
+++ b/src/mame/audio/s11c_bg.cpp
@@ -68,7 +68,7 @@ MACHINE_CONFIG_START(s11c_bg_device::device_add_mconfig)
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("hc55516_bg", HC55516, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.5)
diff --git a/src/mame/audio/segag80r.cpp b/src/mame/audio/segag80r.cpp
index f32e5f5bc94..cc36d35b327 100644
--- a/src/mame/audio/segag80r.cpp
+++ b/src/mame/audio/segag80r.cpp
@@ -710,7 +710,7 @@ MACHINE_CONFIG_START(segag80r_state::monsterb_sound_board)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // 50K (R91-97)/100K (R98-106) ladder network
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/audio/spacefb.cpp b/src/mame/audio/spacefb.cpp
index 31ea51d8d14..157c5ba3438 100644
--- a/src/mame/audio/spacefb.cpp
+++ b/src/mame/audio/spacefb.cpp
@@ -81,7 +81,7 @@ MACHINE_CONFIG_START(spacefb_state::spacefb_audio)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("samples", SAMPLES, 0)
MCFG_SAMPLES_CHANNELS(3)
diff --git a/src/mame/audio/taito_en.cpp b/src/mame/audio/taito_en.cpp
index 8dcb483f5d7..49c7b9d487f 100644
--- a/src/mame/audio/taito_en.cpp
+++ b/src/mame/audio/taito_en.cpp
@@ -226,12 +226,12 @@ MACHINE_CONFIG_START(taito_en_device::device_add_mconfig)
MCFG_ES5505_REGION0("ensoniq.0")
MCFG_ES5505_REGION1("ensoniq.0")
MCFG_ES5505_CHANNELS(4)
- MCFG_SOUND_ROUTE_EX(0, "pump", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "pump", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "pump", 1.0, 2)
- MCFG_SOUND_ROUTE_EX(3, "pump", 1.0, 3)
- MCFG_SOUND_ROUTE_EX(4, "pump", 1.0, 4)
- MCFG_SOUND_ROUTE_EX(5, "pump", 1.0, 5)
- MCFG_SOUND_ROUTE_EX(6, "pump", 1.0, 6)
- MCFG_SOUND_ROUTE_EX(7, "pump", 1.0, 7)
+ MCFG_SOUND_ROUTE(0, "pump", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "pump", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "pump", 1.0, 2)
+ MCFG_SOUND_ROUTE(3, "pump", 1.0, 3)
+ MCFG_SOUND_ROUTE(4, "pump", 1.0, 4)
+ MCFG_SOUND_ROUTE(5, "pump", 1.0, 5)
+ MCFG_SOUND_ROUTE(6, "pump", 1.0, 6)
+ MCFG_SOUND_ROUTE(7, "pump", 1.0, 7)
MACHINE_CONFIG_END
diff --git a/src/mame/audio/targ.cpp b/src/mame/audio/targ.cpp
index ceaca255005..d8d028c9ab8 100644
--- a/src/mame/audio/targ.cpp
+++ b/src/mame/audio/targ.cpp
@@ -187,7 +187,7 @@ MACHINE_CONFIG_START(exidy_state::spectar_audio)
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
@@ -203,5 +203,5 @@ MACHINE_CONFIG_START(exidy_state::targ_audio)
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/audio/vboy.cpp b/src/mame/audio/vboy.cpp
index 38755b9208e..6a32b4f7305 100644
--- a/src/mame/audio/vboy.cpp
+++ b/src/mame/audio/vboy.cpp
@@ -191,6 +191,9 @@ static inline void mputb(uint8_t *ptr, int8_t data) { *ptr = data; }
// LIVE DEVICE
//**************************************************************************
+constexpr unsigned vboysnd_device::AUDIO_FREQ;
+
+
//-------------------------------------------------
// vboysnd_device - constructor
//-------------------------------------------------
diff --git a/src/mame/audio/vboy.h b/src/mame/audio/vboy.h
index 72793b66404..0414370bf77 100644
--- a/src/mame/audio/vboy.h
+++ b/src/mame/audio/vboy.h
@@ -13,16 +13,6 @@
//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_VBOYSND_ADD(_tag) \
- MCFG_DEVICE_ADD(_tag, VBOYSND, vboysnd_device::AUDIO_FREQ)
-
-#define MCFG_VBOYSND_REPLACE(_tag) \
- MCFG_DEVICE_REPLACE(_tag, VBOYSND, vboysnd_device::AUDIO_FREQ)
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -34,7 +24,7 @@ public:
static constexpr unsigned AUDIO_FREQ = 44100;
// construction/destruction
- vboysnd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ vboysnd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = AUDIO_FREQ);
DECLARE_READ8_MEMBER(read);
DECLARE_WRITE8_MEMBER(write);
diff --git a/src/mame/audio/williams.cpp b/src/mame/audio/williams.cpp
index 383b4936e01..515aad3e31a 100644
--- a/src/mame/audio/williams.cpp
+++ b/src/mame/audio/williams.cpp
@@ -191,7 +191,7 @@ MACHINE_CONFIG_START(williams_cvsd_sound_device::device_add_mconfig)
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("cvsd", HC55516, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.60)
@@ -509,8 +509,8 @@ MACHINE_CONFIG_START(williams_narc_sound_device::device_add_mconfig)
MCFG_SOUND_ADD("dac1", AD7224, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.25)
MCFG_SOUND_ADD("dac2", AD7224, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("cvsd", HC55516, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.60)
@@ -760,7 +760,7 @@ MACHINE_CONFIG_START(williams_adpcm_sound_device::device_add_mconfig)
MCFG_SOUND_ADD("dac", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.10)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_OKIM6295_ADD("oki", ADPCM_MASTER_CLOCK/8, PIN7_HIGH) // clock frequency & pin 7 not verified
MCFG_DEVICE_ADDRESS_MAP(0, williams_adpcm_oki_map)
diff --git a/src/mame/audio/wpcsnd.cpp b/src/mame/audio/wpcsnd.cpp
index a923bd2037e..e0b0521cede 100644
--- a/src/mame/audio/wpcsnd.cpp
+++ b/src/mame/audio/wpcsnd.cpp
@@ -78,7 +78,7 @@ MACHINE_CONFIG_START(wpcsnd_device::device_add_mconfig)
MCFG_SOUND_ADD("dac", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("hc55516", HC55516, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.5)
diff --git a/src/mame/audio/zaccaria.cpp b/src/mame/audio/zaccaria.cpp
index 01d8eb609c8..d5eeef78820 100644
--- a/src/mame/audio/zaccaria.cpp
+++ b/src/mame/audio/zaccaria.cpp
@@ -412,16 +412,16 @@ MACHINE_CONFIG_START(zac1b11142_audio_device::device_add_mconfig)
MCFG_DEVICE_MODIFY("melodypsg1")
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(zac1b11142_audio_device, ay_4g_porta_w))
- MCFG_SOUND_ROUTE_EX(0, "sound_nl", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "sound_nl", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "sound_nl", 1.0, 2)
+ MCFG_SOUND_ROUTE(0, "sound_nl", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "sound_nl", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "sound_nl", 1.0, 2)
MCFG_DEVICE_MODIFY("melodypsg2")
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(zac1b11142_audio_device, ay_4h_porta_w))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(zac1b11142_audio_device, ay_4h_portb_w))
- MCFG_SOUND_ROUTE_EX(0, "sound_nl", 1.0, 3)
- MCFG_SOUND_ROUTE_EX(1, "sound_nl", 1.0, 4)
- MCFG_SOUND_ROUTE_EX(2, "sound_nl", 1.0, 5)
+ MCFG_SOUND_ROUTE(0, "sound_nl", 1.0, 3)
+ MCFG_SOUND_ROUTE(1, "sound_nl", 1.0, 4)
+ MCFG_SOUND_ROUTE(2, "sound_nl", 1.0, 5)
MCFG_CPU_ADD("audiocpu", M6802, XTAL(3'579'545)) // verified on pcb
MCFG_CPU_PROGRAM_MAP(zac1b11142_audio_map)
@@ -433,7 +433,7 @@ MACHINE_CONFIG_START(zac1b11142_audio_device::device_add_mconfig)
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_MIXER_ROUTE(ALL_OUTPUTS, *this, 0.40, 0) // mc1408.1f
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
// There is no xtal, the clock is obtained from a RC oscillator as shown in the TMS5220 datasheet (R=100kOhm C=22pF)
// 162kHz measured on pin 3 20 minutes after power on, clock would then be 162.3*4=649.2kHz
diff --git a/src/mame/drivers/1942.cpp b/src/mame/drivers/1942.cpp
index 3834ae340bb..0906b49e065 100644
--- a/src/mame/drivers/1942.cpp
+++ b/src/mame/drivers/1942.cpp
@@ -595,17 +595,17 @@ MACHINE_CONFIG_START(_1942_state::_1942)
MCFG_AY8910_OUTPUT_TYPE(AY8910_RESISTOR_OUTPUT)
MCFG_AY8910_RES_LOADS(10000.0, 10000.0, 10000.0)
- MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "snd_nl", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "snd_nl", 1.0, 2)
+ MCFG_SOUND_ROUTE(0, "snd_nl", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "snd_nl", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "snd_nl", 1.0, 2)
MCFG_SOUND_ADD("ay2", AY8910, AUDIO_CLOCK) /* 1.5 MHz */
MCFG_AY8910_OUTPUT_TYPE(AY8910_RESISTOR_OUTPUT)
MCFG_AY8910_RES_LOADS(10000.0, 10000.0, 10000.0)
- MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 3)
- MCFG_SOUND_ROUTE_EX(1, "snd_nl", 1.0, 4)
- MCFG_SOUND_ROUTE_EX(2, "snd_nl", 1.0, 5)
+ MCFG_SOUND_ROUTE(0, "snd_nl", 1.0, 3)
+ MCFG_SOUND_ROUTE(1, "snd_nl", 1.0, 4)
+ MCFG_SOUND_ROUTE(2, "snd_nl", 1.0, 5)
/* NETLIST configuration using internal AY8910 resistor values */
diff --git a/src/mame/drivers/20pacgal.cpp b/src/mame/drivers/20pacgal.cpp
index dfed3dd3101..e3618cd5226 100644
--- a/src/mame/drivers/20pacgal.cpp
+++ b/src/mame/drivers/20pacgal.cpp
@@ -416,7 +416,7 @@ MACHINE_CONFIG_START(_20pacgal_state::_20pacgal)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/4004clk.cpp b/src/mame/drivers/4004clk.cpp
index b1385e2474f..243212fcf18 100644
--- a/src/mame/drivers/4004clk.cpp
+++ b/src/mame/drivers/4004clk.cpp
@@ -152,7 +152,7 @@ MACHINE_CONFIG_START(nixieclock_state::_4004clk)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_CLOCK_ADD("clk", 60)
MCFG_CLOCK_SIGNAL_HANDLER(INPUTLINE("maincpu", I4004_TEST_LINE))
diff --git a/src/mame/drivers/40love.cpp b/src/mame/drivers/40love.cpp
index 7c27c9207c7..eb0059b357f 100644
--- a/src/mame/drivers/40love.cpp
+++ b/src/mame/drivers/40love.cpp
@@ -765,7 +765,7 @@ MACHINE_CONFIG_START(fortyl_state::_40love)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(fortyl_state::undoukai)
@@ -831,7 +831,7 @@ MACHINE_CONFIG_START(fortyl_state::undoukai)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/*******************************************************************************/
diff --git a/src/mame/drivers/4enlinea.cpp b/src/mame/drivers/4enlinea.cpp
index 2c3df6bc81c..406ddc091a2 100644
--- a/src/mame/drivers/4enlinea.cpp
+++ b/src/mame/drivers/4enlinea.cpp
@@ -475,9 +475,10 @@ void _4enlinea_state::machine_reset()
* Machine Drivers *
***********************************/
-SLOT_INTERFACE_START( 4enlinea_isa8_cards )
- SLOT_INTERFACE_INTERNAL("4enlinea", ISA8_CGA_4ENLINEA)
-SLOT_INTERFACE_END
+void _4enlinea_isa8_cards(device_slot_interface &device)
+{
+ device.option_add_internal("4enlinea", ISA8_CGA_4ENLINEA);
+}
/* TODO: irq sources are unknown */
INTERRUPT_GEN_MEMBER(_4enlinea_state::_4enlinea_irq)
@@ -514,7 +515,7 @@ MACHINE_CONFIG_START(_4enlinea_state::_4enlinea)
MCFG_DEVICE_ADD("isa", ISA8, 0)
MCFG_ISA8_CPU("maincpu")
- MCFG_ISA8_SLOT_ADD("isa", "isa1", 4enlinea_isa8_cards, "4enlinea", true)
+ MCFG_ISA8_SLOT_ADD("isa", "isa1", _4enlinea_isa8_cards, "4enlinea", true)
/* 6845 clock is a guess, since it's a UM6845R embedded in the UM487F.
diff --git a/src/mame/drivers/8080bw.cpp b/src/mame/drivers/8080bw.cpp
index fbe26412783..92e3241de53 100644
--- a/src/mame/drivers/8080bw.cpp
+++ b/src/mame/drivers/8080bw.cpp
@@ -1582,7 +1582,7 @@ MACHINE_CONFIG_START(_8080bw_state::schaser)
MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
MCFG_SN76477_ENABLE(1) // enable
- MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
+ MCFG_SOUND_ROUTE(0, "discrete", 1.0, 0)
MCFG_SOUND_ADD("discrete", DISCRETE, 0)
MCFG_DISCRETE_INTF(schaser)
diff --git a/src/mame/drivers/a2600.cpp b/src/mame/drivers/a2600.cpp
index 15f75b2a03f..e8f29143b64 100644
--- a/src/mame/drivers/a2600.cpp
+++ b/src/mame/drivers/a2600.cpp
@@ -466,33 +466,34 @@ static INPUT_PORTS_START( a2600 )
INPUT_PORTS_END
-static SLOT_INTERFACE_START(a2600_cart)
- SLOT_INTERFACE_INTERNAL("a26_2k", A26_ROM_2K)
- SLOT_INTERFACE_INTERNAL("a26_4k", A26_ROM_4K)
- SLOT_INTERFACE_INTERNAL("a26_f4", A26_ROM_F4)
- SLOT_INTERFACE_INTERNAL("a26_f6", A26_ROM_F6)
- SLOT_INTERFACE_INTERNAL("a26_f8", A26_ROM_F8)
- SLOT_INTERFACE_INTERNAL("a26_f8sw", A26_ROM_F8_SW)
- SLOT_INTERFACE_INTERNAL("a26_fa", A26_ROM_FA)
- SLOT_INTERFACE_INTERNAL("a26_fe", A26_ROM_FE)
- SLOT_INTERFACE_INTERNAL("a26_3e", A26_ROM_3E)
- SLOT_INTERFACE_INTERNAL("a26_3f", A26_ROM_3F)
- SLOT_INTERFACE_INTERNAL("a26_e0", A26_ROM_E0)
- SLOT_INTERFACE_INTERNAL("a26_e7", A26_ROM_E7)
- SLOT_INTERFACE_INTERNAL("a26_ua", A26_ROM_UA)
- SLOT_INTERFACE_INTERNAL("a26_cv", A26_ROM_CV)
- SLOT_INTERFACE_INTERNAL("a26_dc", A26_ROM_DC)
- SLOT_INTERFACE_INTERNAL("a26_fv", A26_ROM_FV)
- SLOT_INTERFACE_INTERNAL("a26_jvp", A26_ROM_JVP)
- SLOT_INTERFACE_INTERNAL("a26_cm", A26_ROM_COMPUMATE)
- SLOT_INTERFACE_INTERNAL("a26_ss", A26_ROM_SUPERCHARGER)
- SLOT_INTERFACE_INTERNAL("a26_dpc", A26_ROM_DPC)
- SLOT_INTERFACE_INTERNAL("a26_4in1", A26_ROM_4IN1)
- SLOT_INTERFACE_INTERNAL("a26_8in1", A26_ROM_8IN1)
- SLOT_INTERFACE_INTERNAL("a26_32in1", A26_ROM_32IN1)
- SLOT_INTERFACE_INTERNAL("a26_x07", A26_ROM_X07)
- SLOT_INTERFACE_INTERNAL("a26_harmony", A26_ROM_HARMONY)
-SLOT_INTERFACE_END
+static void a2600_cart(device_slot_interface &device)
+{
+ device.option_add_internal("a26_2k", A26_ROM_2K);
+ device.option_add_internal("a26_4k", A26_ROM_4K);
+ device.option_add_internal("a26_f4", A26_ROM_F4);
+ device.option_add_internal("a26_f6", A26_ROM_F6);
+ device.option_add_internal("a26_f8", A26_ROM_F8);
+ device.option_add_internal("a26_f8sw", A26_ROM_F8_SW);
+ device.option_add_internal("a26_fa", A26_ROM_FA);
+ device.option_add_internal("a26_fe", A26_ROM_FE);
+ device.option_add_internal("a26_3e", A26_ROM_3E);
+ device.option_add_internal("a26_3f", A26_ROM_3F);
+ device.option_add_internal("a26_e0", A26_ROM_E0);
+ device.option_add_internal("a26_e7", A26_ROM_E7);
+ device.option_add_internal("a26_ua", A26_ROM_UA);
+ device.option_add_internal("a26_cv", A26_ROM_CV);
+ device.option_add_internal("a26_dc", A26_ROM_DC);
+ device.option_add_internal("a26_fv", A26_ROM_FV);
+ device.option_add_internal("a26_jvp", A26_ROM_JVP);
+ device.option_add_internal("a26_cm", A26_ROM_COMPUMATE);
+ device.option_add_internal("a26_ss", A26_ROM_SUPERCHARGER);
+ device.option_add_internal("a26_dpc", A26_ROM_DPC);
+ device.option_add_internal("a26_4in1", A26_ROM_4IN1);
+ device.option_add_internal("a26_8in1", A26_ROM_8IN1);
+ device.option_add_internal("a26_32in1", A26_ROM_32IN1);
+ device.option_add_internal("a26_x07", A26_ROM_X07);
+ device.option_add_internal("a26_harmony", A26_ROM_HARMONY);
+}
MACHINE_CONFIG_START(a2600_state::a2600_cartslot)
MCFG_VCS_CARTRIDGE_ADD("cartslot", a2600_cart, nullptr)
diff --git a/src/mame/drivers/a5105.cpp b/src/mame/drivers/a5105.cpp
index 8f2f6ff92de..d7ff5e2bbd9 100644
--- a/src/mame/drivers/a5105.cpp
+++ b/src/mame/drivers/a5105.cpp
@@ -554,9 +554,10 @@ FLOPPY_FORMATS_MEMBER( a5105_state::floppy_formats )
FLOPPY_A5105_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( a5105_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void a5105_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
static const z80_daisy_config a5105_daisy_chain[] =
{
diff --git a/src/mame/drivers/a7150.cpp b/src/mame/drivers/a7150.cpp
index 849e2c115c2..28100de1308 100644
--- a/src/mame/drivers/a7150.cpp
+++ b/src/mame/drivers/a7150.cpp
@@ -468,7 +468,7 @@ MACHINE_CONFIG_START(a7150_state::a7150)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart8251", i8251_device, write_rxd))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart8251", i8251_device, write_cts))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart8251", i8251_device, write_dsr))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("keyboard", kbd_rs232_defaults)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("keyboard", kbd_rs232_defaults)
MCFG_ISBC_215_ADD("isbc_215g", 0x4a, "maincpu")
MCFG_ISBC_215_IRQ(DEVWRITELINE("pic8259", pic8259_device, ir5_w))
diff --git a/src/mame/drivers/aa310.cpp b/src/mame/drivers/aa310.cpp
index 472fcfd372a..b8e69af9d66 100644
--- a/src/mame/drivers/aa310.cpp
+++ b/src/mame/drivers/aa310.cpp
@@ -378,10 +378,11 @@ FLOPPY_FORMATS_MEMBER( aa310_state::floppy_formats )
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( aa310_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
- SLOT_INTERFACE( "35hd", FLOPPY_35_HD )
-SLOT_INTERFACE_END
+static void aa310_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+ device.option_add("35hd", FLOPPY_35_HD);
+}
WRITE_LINE_MEMBER( archimedes_state::a310_kart_tx_w )
{
@@ -443,14 +444,14 @@ MACHINE_CONFIG_START(aa310_state::aa310)
MCFG_SOUND_ADD("dac6", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
MCFG_SOUND_ADD("dac7", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac0", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac3", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac4", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac5", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac6", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac7", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac0", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac3", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac4", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac5", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac6", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac7", -1.0, DAC_VREF_NEG_INPUT)
/* Expansion slots - 2-card backplane */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/abc1600.cpp b/src/mame/drivers/abc1600.cpp
index d5ff89756cc..1a489221a1d 100644
--- a/src/mame/drivers/abc1600.cpp
+++ b/src/mame/drivers/abc1600.cpp
@@ -775,9 +775,10 @@ WRITE8_MEMBER( abc1600_state::cio_pc_w )
m_nvram->sk_w(clock);
}
-static SLOT_INTERFACE_START( abc1600_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void abc1600_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
WRITE_LINE_MEMBER( abc1600_state::fdc_drq_w )
{
diff --git a/src/mame/drivers/adam.cpp b/src/mame/drivers/adam.cpp
index a3a9f322cf9..17face6d9cb 100644
--- a/src/mame/drivers/adam.cpp
+++ b/src/mame/drivers/adam.cpp
@@ -1084,7 +1084,7 @@ MACHINE_CONFIG_START(adam_state::adam)
MCFG_ADAMNET_SLOT_ADD("net3", adamnet_devices, "ddp")
MCFG_ADAMNET_SLOT_ADD("net4", adamnet_devices, "fdc")
MCFG_ADAMNET_SLOT_ADD("net5", adamnet_devices, "fdc")
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("fdc", drive2)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("fdc", drive2)
MCFG_ADAMNET_SLOT_ADD("net6", adamnet_devices, nullptr)
MCFG_ADAMNET_SLOT_ADD("net7", adamnet_devices, nullptr)
MCFG_ADAMNET_SLOT_ADD("net8", adamnet_devices, nullptr)
diff --git a/src/mame/drivers/advision.cpp b/src/mame/drivers/advision.cpp
index 6278c1e90a7..d5356485abb 100644
--- a/src/mame/drivers/advision.cpp
+++ b/src/mame/drivers/advision.cpp
@@ -94,7 +94,7 @@ MACHINE_CONFIG_START(advision_state::advision)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_2BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
/* cartridge */
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "advision_cart")
diff --git a/src/mame/drivers/agat.cpp b/src/mame/drivers/agat.cpp
index 43a5f93b84f..d9768d18084 100644
--- a/src/mame/drivers/agat.cpp
+++ b/src/mame/drivers/agat.cpp
@@ -1063,14 +1063,15 @@ static INPUT_PORTS_START(agat7)
PORT_INCLUDE(agat7_joystick)
INPUT_PORTS_END
-static SLOT_INTERFACE_START(agat7_cards)
+static void agat7_cards(device_slot_interface &device)
+{
// Standard cards
- SLOT_INTERFACE("a7lang", A2BUS_AGAT7LANGCARD) // Agat-7 RAM Language Card -- decimal 3.089.119
- SLOT_INTERFACE("a7ram", A2BUS_AGAT7RAM) // Agat-7 32K RAM Card -- decimal 3.089.119-01, KR565RU6D chips
- SLOT_INTERFACE("a7fdc", A2BUS_AGAT7_FDC) // Disk II clone -- decimal 3.089.105
- SLOT_INTERFACE("a7fdc840", A2BUS_AGAT840K_HLE) // 840K floppy controller -- decimal 7.104.351 or 3.089.023?
- SLOT_INTERFACE("a7ports", A2BUS_AGAT7_PORTS) // Serial-parallel card -- decimal 3.089.106
+ device.option_add("a7lang", A2BUS_AGAT7LANGCARD); // Agat-7 RAM Language Card -- decimal 3.089.119
+ device.option_add("a7ram", A2BUS_AGAT7RAM); // Agat-7 32K RAM Card -- decimal 3.089.119-01, KR565RU6D chips
+ device.option_add("a7fdc", A2BUS_AGAT7_FDC); // Disk II clone -- decimal 3.089.105
+ device.option_add("a7fdc840", A2BUS_AGAT840K_HLE); // 840K floppy controller -- decimal 7.104.351 or 3.089.023?
+ device.option_add("a7ports", A2BUS_AGAT7_PORTS); // Serial-parallel card -- decimal 3.089.106
// Printer card (agat9) -- decimal 3.089.174
// 3rd party cards
@@ -1080,7 +1081,7 @@ static SLOT_INTERFACE_START(agat7_cards)
// Nippel ADC (digital oscilloscope)
// Nippel Clock (mc146818)
// Nippel Co-processor (R65C02 clone + dual-ported RAM)
-SLOT_INTERFACE_END
+}
MACHINE_CONFIG_START(agat7_state::agat7)
MCFG_CPU_ADD("maincpu", M6502, XTAL(14'300'000) / 14)
diff --git a/src/mame/drivers/aim65.cpp b/src/mame/drivers/aim65.cpp
index 5a37b2f1758..cb6485d3654 100644
--- a/src/mame/drivers/aim65.cpp
+++ b/src/mame/drivers/aim65.cpp
@@ -194,15 +194,15 @@ MACHINE_CONFIG_START(aim65_state::aim65)
MCFG_DEFAULT_LAYOUT(layout_aim65)
/* alpha-numeric display */
- MCFG_DEVICE_ADD("ds1", DL1416T, 0)
+ MCFG_DEVICE_ADD("ds1", DL1416T, u32(0))
MCFG_DL1416_UPDATE_HANDLER(WRITE16(aim65_state, aim65_update_ds<1>))
- MCFG_DEVICE_ADD("ds2", DL1416T, 0)
+ MCFG_DEVICE_ADD("ds2", DL1416T, u32(0))
MCFG_DL1416_UPDATE_HANDLER(WRITE16(aim65_state, aim65_update_ds<2>))
- MCFG_DEVICE_ADD("ds3", DL1416T, 0)
+ MCFG_DEVICE_ADD("ds3", DL1416T, u32(0))
MCFG_DL1416_UPDATE_HANDLER(WRITE16(aim65_state, aim65_update_ds<3>))
- MCFG_DEVICE_ADD("ds4", DL1416T, 0)
+ MCFG_DEVICE_ADD("ds4", DL1416T, u32(0))
MCFG_DL1416_UPDATE_HANDLER(WRITE16(aim65_state, aim65_update_ds<4>))
- MCFG_DEVICE_ADD("ds5", DL1416T, 0)
+ MCFG_DEVICE_ADD("ds5", DL1416T, u32(0))
MCFG_DL1416_UPDATE_HANDLER(WRITE16(aim65_state, aim65_update_ds<5>))
/* Sound - wave sound only */
diff --git a/src/mame/drivers/alpha68k.cpp b/src/mame/drivers/alpha68k.cpp
index d52fba92347..89eee69e27c 100644
--- a/src/mame/drivers/alpha68k.cpp
+++ b/src/mame/drivers/alpha68k.cpp
@@ -1984,7 +1984,7 @@ MACHINE_CONFIG_START(alpha68k_state::sstingry)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(alpha68k_state::kyros)
@@ -2036,7 +2036,7 @@ MACHINE_CONFIG_START(alpha68k_state::kyros)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(alpha68k_state::jongbou)
@@ -2172,7 +2172,7 @@ MACHINE_CONFIG_START(alpha68k_state::alpha68k_II)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(alpha68k_state::btlfieldb)
@@ -2229,7 +2229,7 @@ MACHINE_CONFIG_START(alpha68k_state::alpha68k_II_gm)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(alpha68k_state::alpha68k_V)
@@ -2278,7 +2278,7 @@ MACHINE_CONFIG_START(alpha68k_state::alpha68k_V)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(alpha68k_state::alpha68k_V_sb)
@@ -2327,7 +2327,7 @@ MACHINE_CONFIG_START(alpha68k_state::alpha68k_V_sb)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(alpha68k_state::tnextspc)
diff --git a/src/mame/drivers/alphatpx.cpp b/src/mame/drivers/alphatpx.cpp
index b1d1b6dca59..e4ae3c3843e 100644
--- a/src/mame/drivers/alphatpx.cpp
+++ b/src/mame/drivers/alphatpx.cpp
@@ -1169,17 +1169,20 @@ WRITE8_MEMBER(alphatp_34_state::fdc_cmd_w)
// FLOPPY - Drive definitions
//**************************************************************************
-static SLOT_INTERFACE_START( alphatp2_floppies ) // two BASF 2471 drives
- SLOT_INTERFACE("525ssdd", FLOPPY_525_SSDD)
-SLOT_INTERFACE_END
+static void alphatp2_floppies(device_slot_interface &device) // two BASF 2471 drives
+{
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+}
-static SLOT_INTERFACE_START( alphatp2su_floppies )
- SLOT_INTERFACE("525dd", FLOPPY_525_DD)
-SLOT_INTERFACE_END
+static void alphatp2su_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
-static SLOT_INTERFACE_START( alphatp3_floppies ) // P3: two BASF 6106 drives
- SLOT_INTERFACE("525qd", FLOPPY_525_QD) // P30: two Shugart SA465-3AA drives
-SLOT_INTERFACE_END
+static void alphatp3_floppies(device_slot_interface &device) // P3: two BASF 6106 drives
+{
+ device.option_add("525qd", FLOPPY_525_QD); // P30: two Shugart SA465-3AA drives
+}
//**************************************************************************
// MACHINE - Alphatronic P1, P2, P2S, P2U and Hell 2069
diff --git a/src/mame/drivers/alphatro.cpp b/src/mame/drivers/alphatro.cpp
index f91550288f8..13ed126e1ed 100644
--- a/src/mame/drivers/alphatro.cpp
+++ b/src/mame/drivers/alphatro.cpp
@@ -693,9 +693,10 @@ FLOPPY_FORMATS_MEMBER( alphatro_state::floppy_formats )
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( alphatro_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void alphatro_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
MACHINE_CONFIG_START(alphatro_state::alphatro)
/* basic machine hardware */
diff --git a/src/mame/drivers/altos486.cpp b/src/mame/drivers/altos486.cpp
index 73746f9348b..a912487c64f 100644
--- a/src/mame/drivers/altos486.cpp
+++ b/src/mame/drivers/altos486.cpp
@@ -101,9 +101,10 @@ FLOPPY_FORMATS_MEMBER( altos486_state::floppy_formats )
FLOPPY_TD0_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( altos486_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void altos486_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
void altos486_state::altos486_mem(address_map &map)
{
@@ -186,7 +187,7 @@ MACHINE_CONFIG_START(altos486_state::altos486)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio0", z80dart_device, rxa_w))
MCFG_RS232_DCD_HANDLER(DEVWRITELINE("sio0", z80dart_device, dcda_w))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("sio0", z80dart_device, ctsa_w))
- //MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", altos486_terminal)
+ //MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", altos486_terminal)
MCFG_RS232_PORT_ADD("rs232b", default_rs232_devices, NULL)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio0", z80dart_device, rxb_w))
diff --git a/src/mame/drivers/altos5.cpp b/src/mame/drivers/altos5.cpp
index 2e8c15ceae6..1d4cef15081 100644
--- a/src/mame/drivers/altos5.cpp
+++ b/src/mame/drivers/altos5.cpp
@@ -357,9 +357,10 @@ QUICKLOAD_LOAD_MEMBER( altos5_state, altos5 )
}
-static SLOT_INTERFACE_START( altos5_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void altos5_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
WRITE_LINE_MEMBER( altos5_state::fdc_intrq_w )
{
diff --git a/src/mame/drivers/altos8600.cpp b/src/mame/drivers/altos8600.cpp
index 1912594c91c..a4deb8b808b 100644
--- a/src/mame/drivers/altos8600.cpp
+++ b/src/mame/drivers/altos8600.cpp
@@ -720,9 +720,10 @@ void altos8600_state::dmac_io(address_map &map)
map(0x0400, 0x05ff).rw(this, FUNC(altos8600_state::mmuaddr_r), FUNC(altos8600_state::mmuaddr_w));
}
-static SLOT_INTERFACE_START(altos8600_floppies)
- SLOT_INTERFACE( "8dd", FLOPPY_8_DSDD )
-SLOT_INTERFACE_END
+static void altos8600_floppies(device_slot_interface &device)
+{
+ device.option_add("8dd", FLOPPY_8_DSDD);
+}
MACHINE_CONFIG_START(altos8600_state::altos8600)
MCFG_CPU_ADD("maincpu", I8086, 5_MHz_XTAL)
diff --git a/src/mame/drivers/amiga.cpp b/src/mame/drivers/amiga.cpp
index 9409ca59563..7bbc48c355a 100644
--- a/src/mame/drivers/amiga.cpp
+++ b/src/mame/drivers/amiga.cpp
@@ -1365,9 +1365,10 @@ INPUT_PORTS_END
// MACHINE DRIVERS
//**************************************************************************
-static SLOT_INTERFACE_START( amiga_floppies )
- SLOT_INTERFACE("35dd", FLOPPY_35_DD)
-SLOT_INTERFACE_END
+static void amiga_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+}
// basic elements common to all amigas
MACHINE_CONFIG_START(amiga_state::amiga_base)
diff --git a/src/mame/drivers/ampro.cpp b/src/mame/drivers/ampro.cpp
index 7eaf2ad1784..91d0477a4b3 100644
--- a/src/mame/drivers/ampro.cpp
+++ b/src/mame/drivers/ampro.cpp
@@ -125,9 +125,10 @@ static const z80_daisy_config daisy_chain_intf[] =
{ nullptr }
};
-static SLOT_INTERFACE_START( ampro_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void ampro_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
/* Input ports */
static INPUT_PORTS_START( ampro )
diff --git a/src/mame/drivers/amstrad.cpp b/src/mame/drivers/amstrad.cpp
index 2927b07a376..1d378d3fc46 100644
--- a/src/mame/drivers/amstrad.cpp
+++ b/src/mame/drivers/amstrad.cpp
@@ -796,14 +796,16 @@ speed of 3.8 MHz */
*/
-static SLOT_INTERFACE_START( amstrad_floppies )
- SLOT_INTERFACE( "3ssdd", FLOPPY_3_SSDD )
- SLOT_INTERFACE( "35ssdd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void amstrad_floppies(device_slot_interface &device)
+{
+ device.option_add("3ssdd", FLOPPY_3_SSDD);
+ device.option_add("35ssdd", FLOPPY_35_DD);
+}
-static SLOT_INTERFACE_START( aleste_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void aleste_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+}
FLOPPY_FORMATS_MEMBER( amstrad_state::aleste_floppy_formats )
FLOPPY_MSX_FORMAT
@@ -818,87 +820,92 @@ MACHINE_CONFIG_START(amstrad_state::cpcplus_cartslot)
MCFG_SOFTWARE_LIST_ADD("cart_list", "gx4000")
MACHINE_CONFIG_END
-SLOT_INTERFACE_START(cpc464_exp_cards)
- SLOT_INTERFACE("ddi1", CPC_DDI1)
- SLOT_INTERFACE("ssa1", CPC_SSA1)
- SLOT_INTERFACE("dkspeech", CPC_DKSPEECH)
- SLOT_INTERFACE("rom", CPC_ROM)
- SLOT_INTERFACE("multiface2", CPC_MFACE2)
- SLOT_INTERFACE("pds", CPC_PDS)
- SLOT_INTERFACE("rs232", CPC_RS232)
- SLOT_INTERFACE("amsrs232", CPC_RS232_AMS)
- SLOT_INTERFACE("sf2", CPC_SYMBIFACE2)
- SLOT_INTERFACE("amdrum", CPC_AMDRUM)
- SLOT_INTERFACE("playcity", CPC_PLAYCITY)
- SLOT_INTERFACE("smartwatch", CPC_SMARTWATCH)
- SLOT_INTERFACE("brunword4", CPC_BRUNWORD_MK4)
- SLOT_INTERFACE("hd20", CPC_HD20)
- SLOT_INTERFACE("doubler", CPC_DOUBLER)
- SLOT_INTERFACE("transtape", CPC_TRANSTAPE)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START(cpc_exp_cards)
- SLOT_INTERFACE("ssa1", CPC_SSA1)
- SLOT_INTERFACE("dkspeech", CPC_DKSPEECH)
- SLOT_INTERFACE("rom", CPC_ROM)
- SLOT_INTERFACE("multiface2", CPC_MFACE2)
- SLOT_INTERFACE("pds", CPC_PDS)
- SLOT_INTERFACE("rs232", CPC_RS232)
- SLOT_INTERFACE("amsrs232", CPC_RS232_AMS)
- SLOT_INTERFACE("sf2", CPC_SYMBIFACE2)
- SLOT_INTERFACE("amdrum", CPC_AMDRUM)
- SLOT_INTERFACE("playcity", CPC_PLAYCITY)
- SLOT_INTERFACE("smartwatch", CPC_SMARTWATCH)
- SLOT_INTERFACE("brunword4", CPC_BRUNWORD_MK4)
- SLOT_INTERFACE("hd20", CPC_HD20)
- SLOT_INTERFACE("doubler", CPC_DOUBLER)
- SLOT_INTERFACE("transtape", CPC_TRANSTAPE)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START(cpcplus_exp_cards)
- SLOT_INTERFACE("ssa1", CPC_SSA1)
- SLOT_INTERFACE("dkspeech", CPC_DKSPEECH)
- SLOT_INTERFACE("rom", CPC_ROM)
- SLOT_INTERFACE("pds", CPC_PDS)
- SLOT_INTERFACE("rs232", CPC_RS232)
- SLOT_INTERFACE("amsrs232", CPC_RS232_AMS)
- SLOT_INTERFACE("sf2", CPC_SYMBIFACE2)
- SLOT_INTERFACE("amdrum", CPC_AMDRUM)
- SLOT_INTERFACE("playcity", CPC_PLAYCITY)
- SLOT_INTERFACE("smartwatch", CPC_SMARTWATCH)
- SLOT_INTERFACE("hd20", CPC_HD20)
- SLOT_INTERFACE("doubler", CPC_DOUBLER)
- SLOT_INTERFACE("transtape", CPC_TRANSTAPE) // Plus compatible?
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START(aleste_exp_cards)
- SLOT_INTERFACE("ssa1", CPC_SSA1)
- SLOT_INTERFACE("dkspeech", CPC_DKSPEECH)
- SLOT_INTERFACE("rom", CPC_ROM)
- SLOT_INTERFACE("multiface2", CPC_MFACE2)
- SLOT_INTERFACE("pds", CPC_PDS)
- SLOT_INTERFACE("rs232", CPC_RS232)
- SLOT_INTERFACE("amsrs232", CPC_RS232_AMS)
- SLOT_INTERFACE("sf2", CPC_SYMBIFACE2)
- SLOT_INTERFACE("amdrum", CPC_AMDRUM)
- SLOT_INTERFACE("playcity", CPC_PLAYCITY)
- SLOT_INTERFACE("smartwatch", CPC_SMARTWATCH)
- SLOT_INTERFACE("brunword4", CPC_BRUNWORD_MK4)
- SLOT_INTERFACE("hd20", CPC_HD20)
- SLOT_INTERFACE("doubler", CPC_DOUBLER)
- SLOT_INTERFACE("transtape", CPC_TRANSTAPE)
- SLOT_INTERFACE("magicsound", AL_MAGICSOUND)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START(amstrad_centronics_devices)
- SLOT_INTERFACE("pl80", COMX_PL80)
- SLOT_INTERFACE("ex800", EPSON_EX800)
- SLOT_INTERFACE("lx800", EPSON_LX800)
- SLOT_INTERFACE("lx810l", EPSON_LX810L)
- SLOT_INTERFACE("ap2000", EPSON_AP2000)
- SLOT_INTERFACE("printer", CENTRONICS_PRINTER)
- SLOT_INTERFACE("digiblst", CENTRONICS_DIGIBLASTER)
-SLOT_INTERFACE_END
+void cpc464_exp_cards(device_slot_interface &device)
+{
+ device.option_add("ddi1", CPC_DDI1);
+ device.option_add("ssa1", CPC_SSA1);
+ device.option_add("dkspeech", CPC_DKSPEECH);
+ device.option_add("rom", CPC_ROM);
+ device.option_add("multiface2", CPC_MFACE2);
+ device.option_add("pds", CPC_PDS);
+ device.option_add("rs232", CPC_RS232);
+ device.option_add("amsrs232", CPC_RS232_AMS);
+ device.option_add("sf2", CPC_SYMBIFACE2);
+ device.option_add("amdrum", CPC_AMDRUM);
+ device.option_add("playcity", CPC_PLAYCITY);
+ device.option_add("smartwatch", CPC_SMARTWATCH);
+ device.option_add("brunword4", CPC_BRUNWORD_MK4);
+ device.option_add("hd20", CPC_HD20);
+ device.option_add("doubler", CPC_DOUBLER);
+ device.option_add("transtape", CPC_TRANSTAPE);
+}
+
+void cpc_exp_cards(device_slot_interface &device)
+{
+ device.option_add("ssa1", CPC_SSA1);
+ device.option_add("dkspeech", CPC_DKSPEECH);
+ device.option_add("rom", CPC_ROM);
+ device.option_add("multiface2", CPC_MFACE2);
+ device.option_add("pds", CPC_PDS);
+ device.option_add("rs232", CPC_RS232);
+ device.option_add("amsrs232", CPC_RS232_AMS);
+ device.option_add("sf2", CPC_SYMBIFACE2);
+ device.option_add("amdrum", CPC_AMDRUM);
+ device.option_add("playcity", CPC_PLAYCITY);
+ device.option_add("smartwatch", CPC_SMARTWATCH);
+ device.option_add("brunword4", CPC_BRUNWORD_MK4);
+ device.option_add("hd20", CPC_HD20);
+ device.option_add("doubler", CPC_DOUBLER);
+ device.option_add("transtape", CPC_TRANSTAPE);
+}
+
+void cpcplus_exp_cards(device_slot_interface &device)
+{
+ device.option_add("ssa1", CPC_SSA1);
+ device.option_add("dkspeech", CPC_DKSPEECH);
+ device.option_add("rom", CPC_ROM);
+ device.option_add("pds", CPC_PDS);
+ device.option_add("rs232", CPC_RS232);
+ device.option_add("amsrs232", CPC_RS232_AMS);
+ device.option_add("sf2", CPC_SYMBIFACE2);
+ device.option_add("amdrum", CPC_AMDRUM);
+ device.option_add("playcity", CPC_PLAYCITY);
+ device.option_add("smartwatch", CPC_SMARTWATCH);
+ device.option_add("hd20", CPC_HD20);
+ device.option_add("doubler", CPC_DOUBLER);
+ device.option_add("transtape", CPC_TRANSTAPE); // Plus compatible?
+}
+
+void aleste_exp_cards(device_slot_interface &device)
+{
+ device.option_add("ssa1", CPC_SSA1);
+ device.option_add("dkspeech", CPC_DKSPEECH);
+ device.option_add("rom", CPC_ROM);
+ device.option_add("multiface2", CPC_MFACE2);
+ device.option_add("pds", CPC_PDS);
+ device.option_add("rs232", CPC_RS232);
+ device.option_add("amsrs232", CPC_RS232_AMS);
+ device.option_add("sf2", CPC_SYMBIFACE2);
+ device.option_add("amdrum", CPC_AMDRUM);
+ device.option_add("playcity", CPC_PLAYCITY);
+ device.option_add("smartwatch", CPC_SMARTWATCH);
+ device.option_add("brunword4", CPC_BRUNWORD_MK4);
+ device.option_add("hd20", CPC_HD20);
+ device.option_add("doubler", CPC_DOUBLER);
+ device.option_add("transtape", CPC_TRANSTAPE);
+ device.option_add("magicsound", AL_MAGICSOUND);
+}
+
+void amstrad_centronics_devices(device_slot_interface &device)
+{
+ device.option_add("pl80", COMX_PL80);
+ device.option_add("ex800", EPSON_EX800);
+ device.option_add("lx800", EPSON_LX800);
+ device.option_add("lx810l", EPSON_LX810L);
+ device.option_add("ap2000", EPSON_AP2000);
+ device.option_add("printer", CENTRONICS_PRINTER);
+ device.option_add("digiblst", CENTRONICS_DIGIBLASTER);
+}
MACHINE_CONFIG_START(amstrad_state::amstrad_base)
/* Machine hardware */
diff --git a/src/mame/drivers/amust.cpp b/src/mame/drivers/amust.cpp
index 0836ac65c6e..83b93c60246 100644
--- a/src/mame/drivers/amust.cpp
+++ b/src/mame/drivers/amust.cpp
@@ -198,9 +198,10 @@ void amust_state::io_map(address_map &map)
map(0x14, 0x17).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
}
-static SLOT_INTERFACE_START( amust_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void amust_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
/* Input ports */
static INPUT_PORTS_START( amust )
diff --git a/src/mame/drivers/apc.cpp b/src/mame/drivers/apc.cpp
index 0d982b2a1ac..95213e51826 100644
--- a/src/mame/drivers/apc.cpp
+++ b/src/mame/drivers/apc.cpp
@@ -916,9 +916,10 @@ static const floppy_format_type apc_floppy_formats[] = {
nullptr
};
-static SLOT_INTERFACE_START( apc_floppies )
- SLOT_INTERFACE( "8", FLOPPY_8_DSDD )
-SLOT_INTERFACE_END
+static void apc_floppies(device_slot_interface &device)
+{
+ device.option_add("8", FLOPPY_8_DSDD);
+}
MACHINE_CONFIG_START(apc_state::apc)
diff --git a/src/mame/drivers/apf.cpp b/src/mame/drivers/apf.cpp
index 5fc3b8ec472..2f9ff38a3fb 100644
--- a/src/mame/drivers/apf.cpp
+++ b/src/mame/drivers/apf.cpp
@@ -502,16 +502,18 @@ static INPUT_PORTS_START( apfimag )
INPUT_PORTS_END
-static SLOT_INTERFACE_START( apf_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_SSDD )
-SLOT_INTERFACE_END
+static void apf_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_SSDD);
+}
-static SLOT_INTERFACE_START(apf_cart)
- SLOT_INTERFACE_INTERNAL("std", APF_ROM_STD)
- SLOT_INTERFACE_INTERNAL("basic", APF_ROM_BASIC)
- SLOT_INTERFACE_INTERNAL("spacedst", APF_ROM_SPACEDST)
-SLOT_INTERFACE_END
+static void apf_cart(device_slot_interface &device)
+{
+ device.option_add_internal("std", APF_ROM_STD);
+ device.option_add_internal("basic", APF_ROM_BASIC);
+ device.option_add_internal("spacedst", APF_ROM_SPACEDST);
+}
MACHINE_CONFIG_START(apf_state::apfm1000)
diff --git a/src/mame/drivers/apple1.cpp b/src/mame/drivers/apple1.cpp
index fcb9f4c81c5..181880a7be0 100644
--- a/src/mame/drivers/apple1.cpp
+++ b/src/mame/drivers/apple1.cpp
@@ -588,10 +588,11 @@ static INPUT_PORTS_START( apple1 )
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Clear") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2))
INPUT_PORTS_END
-static SLOT_INTERFACE_START(apple1_cards)
- SLOT_INTERFACE("cassette", A1BUS_CASSETTE)
- SLOT_INTERFACE("cffa", A1BUS_CFFA)
-SLOT_INTERFACE_END
+static void apple1_cards(device_slot_interface &device)
+{
+ device.option_add("cassette", A1BUS_CASSETTE);
+ device.option_add("cffa", A1BUS_CFFA);
+}
MACHINE_CONFIG_START(apple1_state::apple1)
MCFG_CPU_ADD(A1_CPU_TAG, M6502, 960000) // effective CPU speed
diff --git a/src/mame/drivers/apple2.cpp b/src/mame/drivers/apple2.cpp
index a862608c252..bf78aca9a3b 100644
--- a/src/mame/drivers/apple2.cpp
+++ b/src/mame/drivers/apple2.cpp
@@ -1319,58 +1319,60 @@ static INPUT_PORTS_START( apple2p )
PORT_DIPSETTING( 0x00, "RESET" )
INPUT_PORTS_END
-static SLOT_INTERFACE_START(apple2_slot0_cards)
- SLOT_INTERFACE("lang", A2BUS_RAMCARD16K) /* Apple II RAM Language Card */
- SLOT_INTERFACE("ssram", A2BUS_RAMCARD128K) /* Saturn Systems 128K extended language card */
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START(apple2_cards)
- SLOT_INTERFACE("diskii", A2BUS_DISKII) /* Disk II Controller Card */
- SLOT_INTERFACE("diskiing", A2BUS_DISKIING) /* Disk II Controller Card, cycle-accurate version */
- SLOT_INTERFACE("diskiing13", A2BUS_DISKIING13) /* Disk II Controller Card, cycle-accurate version */
- SLOT_INTERFACE("mockingboard", A2BUS_MOCKINGBOARD) /* Sweet Micro Systems Mockingboard */
- SLOT_INTERFACE("phasor", A2BUS_PHASOR) /* Applied Engineering Phasor */
- SLOT_INTERFACE("cffa2", A2BUS_CFFA2) /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 65C02/65816 firmware */
- SLOT_INTERFACE("cffa202", A2BUS_CFFA2_6502) /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 6502 firmware */
- SLOT_INTERFACE("memexp", A2BUS_MEMEXP) /* Apple II Memory Expansion Card */
- SLOT_INTERFACE("ramfactor", A2BUS_RAMFACTOR) /* Applied Engineering RamFactor */
- SLOT_INTERFACE("thclock", A2BUS_THUNDERCLOCK) /* ThunderWare ThunderClock Plus */
- SLOT_INTERFACE("softcard", A2BUS_SOFTCARD) /* Microsoft SoftCard */
- SLOT_INTERFACE("videoterm", A2BUS_VIDEOTERM) /* Videx VideoTerm */
- SLOT_INTERFACE("ssc", A2BUS_SSC) /* Apple Super Serial Card */
- SLOT_INTERFACE("swyft", A2BUS_SWYFT) /* IAI SwyftCard */
- SLOT_INTERFACE("themill", A2BUS_THEMILL) /* Stellation Two The Mill (6809 card) */
- SLOT_INTERFACE("sam", A2BUS_SAM) /* SAM Software Automated Mouth (8-bit DAC + speaker) */
- SLOT_INTERFACE("alfam2", A2BUS_ALFAM2) /* ALF Apple Music II */
- SLOT_INTERFACE("echoii", A2BUS_ECHOII) /* Street Electronics Echo II */
- SLOT_INTERFACE("ap16", A2BUS_IBSAP16) /* IBS AP16 (German VideoTerm clone) */
- SLOT_INTERFACE("ap16alt", A2BUS_IBSAP16ALT) /* IBS AP16 (German VideoTerm clone), alternate revision */
- SLOT_INTERFACE("vtc1", A2BUS_VTC1) /* Unknown VideoTerm clone #1 */
- SLOT_INTERFACE("vtc2", A2BUS_VTC2) /* Unknown VideoTerm clone #2 */
- SLOT_INTERFACE("arcbd", A2BUS_ARCADEBOARD) /* Third Millenium Engineering Arcade Board */
- SLOT_INTERFACE("midi", A2BUS_MIDI) /* Generic 6840+6850 MIDI board */
- SLOT_INTERFACE("zipdrive", A2BUS_ZIPDRIVE) /* ZIP Technologies IDE card */
- SLOT_INTERFACE("echoiiplus", A2BUS_ECHOPLUS) /* Street Electronics Echo Plus (Echo II + Mockingboard clone) */
- SLOT_INTERFACE("scsi", A2BUS_SCSI) /* Apple II SCSI Card */
- SLOT_INTERFACE("applicard", A2BUS_APPLICARD) /* PCPI Applicard */
- SLOT_INTERFACE("aesms", A2BUS_AESMS) /* Applied Engineering Super Music Synthesizer */
- SLOT_INTERFACE("ultraterm", A2BUS_ULTRATERM) /* Videx UltraTerm (original) */
- SLOT_INTERFACE("ultratermenh", A2BUS_ULTRATERMENH) /* Videx UltraTerm (enhanced //e) */
- SLOT_INTERFACE("aevm80", A2BUS_AEVIEWMASTER80) /* Applied Engineering ViewMaster 80 */
- SLOT_INTERFACE("parallel", A2BUS_PIC) /* Apple Parallel Interface Card */
- SLOT_INTERFACE("corvus", A2BUS_CORVUS) /* Corvus flat-cable HDD interface (see notes in a2corvus.c) */
- SLOT_INTERFACE("mcms1", A2BUS_MCMS1) /* Mountain Computer Music System, card 1 of 2 */
- SLOT_INTERFACE("mcms2", A2BUS_MCMS2) /* Mountain Computer Music System, card 2 of 2. must be in card 1's slot + 1! */
- SLOT_INTERFACE("dx1", A2BUS_DX1) /* Decillonix DX-1 sampler card */
- SLOT_INTERFACE("tm2ho", A2BUS_TIMEMASTERHO) /* Applied Engineering TimeMaster II H.O. */
- SLOT_INTERFACE("mouse", A2BUS_MOUSE) /* Apple II Mouse Card */
- SLOT_INTERFACE("ezcgi", A2BUS_EZCGI) /* E-Z Color Graphics Interface */
- SLOT_INTERFACE("ezcgi9938", A2BUS_EZCGI_9938) /* E-Z Color Graphics Interface (TMS9938) */
- SLOT_INTERFACE("ezcgi9958", A2BUS_EZCGI_9958) /* E-Z Color Graphics Interface (TMS9958) */
- SLOT_INTERFACE("ssprite", A2BUS_SSPRITE) /* Synetix SuperSprite Board */
- SLOT_INTERFACE("ssbapple", A2BUS_SSBAPPLE) /* SSB Apple speech board */
-// SLOT_INTERFACE("magicmusician", A2BUS_MAGICMUSICIAN) /* Magic Musician Card */
-SLOT_INTERFACE_END
+static void apple2_slot0_cards(device_slot_interface &device)
+{
+ device.option_add("lang", A2BUS_RAMCARD16K); /* Apple II RAM Language Card */
+ device.option_add("ssram", A2BUS_RAMCARD128K); /* Saturn Systems 128K extended language card */
+}
+
+static void apple2_cards(device_slot_interface &device)
+{
+ device.option_add("diskii", A2BUS_DISKII); /* Disk II Controller Card */
+ device.option_add("diskiing", A2BUS_DISKIING); /* Disk II Controller Card, cycle-accurate version */
+ device.option_add("diskiing13", A2BUS_DISKIING13); /* Disk II Controller Card, cycle-accurate version */
+ device.option_add("mockingboard", A2BUS_MOCKINGBOARD); /* Sweet Micro Systems Mockingboard */
+ device.option_add("phasor", A2BUS_PHASOR); /* Applied Engineering Phasor */
+ device.option_add("cffa2", A2BUS_CFFA2); /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 65C02/65816 firmware */
+ device.option_add("cffa202", A2BUS_CFFA2_6502); /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 6502 firmware */
+ device.option_add("memexp", A2BUS_MEMEXP); /* Apple II Memory Expansion Card */
+ device.option_add("ramfactor", A2BUS_RAMFACTOR); /* Applied Engineering RamFactor */
+ device.option_add("thclock", A2BUS_THUNDERCLOCK); /* ThunderWare ThunderClock Plus */
+ device.option_add("softcard", A2BUS_SOFTCARD); /* Microsoft SoftCard */
+ device.option_add("videoterm", A2BUS_VIDEOTERM); /* Videx VideoTerm */
+ device.option_add("ssc", A2BUS_SSC); /* Apple Super Serial Card */
+ device.option_add("swyft", A2BUS_SWYFT); /* IAI SwyftCard */
+ device.option_add("themill", A2BUS_THEMILL); /* Stellation Two The Mill (6809 card) */
+ device.option_add("sam", A2BUS_SAM); /* SAM Software Automated Mouth (8-bit DAC + speaker) */
+ device.option_add("alfam2", A2BUS_ALFAM2); /* ALF Apple Music II */
+ device.option_add("echoii", A2BUS_ECHOII); /* Street Electronics Echo II */
+ device.option_add("ap16", A2BUS_IBSAP16); /* IBS AP16 (German VideoTerm clone) */
+ device.option_add("ap16alt", A2BUS_IBSAP16ALT); /* IBS AP16 (German VideoTerm clone), alternate revision */
+ device.option_add("vtc1", A2BUS_VTC1); /* Unknown VideoTerm clone #1 */
+ device.option_add("vtc2", A2BUS_VTC2); /* Unknown VideoTerm clone #2 */
+ device.option_add("arcbd", A2BUS_ARCADEBOARD); /* Third Millenium Engineering Arcade Board */
+ device.option_add("midi", A2BUS_MIDI); /* Generic 6840+6850 MIDI board */
+ device.option_add("zipdrive", A2BUS_ZIPDRIVE); /* ZIP Technologies IDE card */
+ device.option_add("echoiiplus", A2BUS_ECHOPLUS); /* Street Electronics Echo Plus (Echo II + Mockingboard clone) */
+ device.option_add("scsi", A2BUS_SCSI); /* Apple II SCSI Card */
+ device.option_add("applicard", A2BUS_APPLICARD); /* PCPI Applicard */
+ device.option_add("aesms", A2BUS_AESMS); /* Applied Engineering Super Music Synthesizer */
+ device.option_add("ultraterm", A2BUS_ULTRATERM); /* Videx UltraTerm (original) */
+ device.option_add("ultratermenh", A2BUS_ULTRATERMENH); /* Videx UltraTerm (enhanced //e) */
+ device.option_add("aevm80", A2BUS_AEVIEWMASTER80); /* Applied Engineering ViewMaster 80 */
+ device.option_add("parallel", A2BUS_PIC); /* Apple Parallel Interface Card */
+ device.option_add("corvus", A2BUS_CORVUS); /* Corvus flat-cable HDD interface (see notes in a2corvus.c) */
+ device.option_add("mcms1", A2BUS_MCMS1); /* Mountain Computer Music System, card 1 of 2 */
+ device.option_add("mcms2", A2BUS_MCMS2); /* Mountain Computer Music System, card 2 of 2. must be in card 1's slot + 1! */
+ device.option_add("dx1", A2BUS_DX1); /* Decillonix DX-1 sampler card */
+ device.option_add("tm2ho", A2BUS_TIMEMASTERHO); /* Applied Engineering TimeMaster II H.O. */
+ device.option_add("mouse", A2BUS_MOUSE); /* Apple II Mouse Card */
+ device.option_add("ezcgi", A2BUS_EZCGI); /* E-Z Color Graphics Interface */
+ device.option_add("ezcgi9938", A2BUS_EZCGI_9938); /* E-Z Color Graphics Interface (TMS9938) */
+ device.option_add("ezcgi9958", A2BUS_EZCGI_9958); /* E-Z Color Graphics Interface (TMS9958) */
+ device.option_add("ssprite", A2BUS_SSPRITE); /* Synetix SuperSprite Board */
+ device.option_add("ssbapple", A2BUS_SSBAPPLE); /* SSB Apple speech board */
+// device.option_add("magicmusician", A2BUS_MAGICMUSICIAN); /* Magic Musician Card */
+}
MACHINE_CONFIG_START(napple2_state::apple2_common)
/* basic machine hardware */
diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp
index 1c3d35f9c9e..f79f4fcfea5 100644
--- a/src/mame/drivers/apple2e.cpp
+++ b/src/mame/drivers/apple2e.cpp
@@ -3827,61 +3827,63 @@ INPUT_PORTS_START( apple2ep )
PORT_INCLUDE(apple2_sysconfig)
INPUT_PORTS_END
-static SLOT_INTERFACE_START(apple2_cards)
- SLOT_INTERFACE("diskii", A2BUS_DISKII) /* Disk II Controller Card */
- SLOT_INTERFACE("diskiing", A2BUS_DISKIING) /* Disk II Controller Card, cycle-accurate version */
- SLOT_INTERFACE("diskiing13", A2BUS_DISKIING13) /* Disk II Controller Card, cycle-accurate version */
- SLOT_INTERFACE("mockingboard", A2BUS_MOCKINGBOARD) /* Sweet Micro Systems Mockingboard */
- SLOT_INTERFACE("phasor", A2BUS_PHASOR) /* Applied Engineering Phasor */
- SLOT_INTERFACE("cffa2", A2BUS_CFFA2) /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 65C02/65816 firmware */
- SLOT_INTERFACE("cffa202", A2BUS_CFFA2_6502) /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 6502 firmware */
- SLOT_INTERFACE("memexp", A2BUS_MEMEXP) /* Apple II Memory Expansion Card */
- SLOT_INTERFACE("ramfactor", A2BUS_RAMFACTOR) /* Applied Engineering RamFactor */
- SLOT_INTERFACE("thclock", A2BUS_THUNDERCLOCK) /* ThunderWare ThunderClock Plus */
- SLOT_INTERFACE("softcard", A2BUS_SOFTCARD) /* Microsoft SoftCard */
- SLOT_INTERFACE("videoterm", A2BUS_VIDEOTERM) /* Videx VideoTerm */
- SLOT_INTERFACE("ssc", A2BUS_SSC) /* Apple Super Serial Card */
- SLOT_INTERFACE("swyft", A2BUS_SWYFT) /* IAI SwyftCard */
- SLOT_INTERFACE("themill", A2BUS_THEMILL) /* Stellation Two The Mill (6809 card) */
- SLOT_INTERFACE("sam", A2BUS_SAM) /* SAM Software Automated Mouth (8-bit DAC + speaker) */
- SLOT_INTERFACE("alfam2", A2BUS_ALFAM2) /* ALF Apple Music II */
- SLOT_INTERFACE("echoii", A2BUS_ECHOII) /* Street Electronics Echo II */
- SLOT_INTERFACE("ap16", A2BUS_IBSAP16) /* IBS AP16 (German VideoTerm clone) */
- SLOT_INTERFACE("ap16alt", A2BUS_IBSAP16ALT) /* IBS AP16 (German VideoTerm clone), alternate revision */
- SLOT_INTERFACE("vtc1", A2BUS_VTC1) /* Unknown VideoTerm clone #1 */
- SLOT_INTERFACE("vtc2", A2BUS_VTC2) /* Unknown VideoTerm clone #2 */
- SLOT_INTERFACE("arcbd", A2BUS_ARCADEBOARD) /* Third Millenium Engineering Arcade Board */
- SLOT_INTERFACE("midi", A2BUS_MIDI) /* Generic 6840+6850 MIDI board */
- SLOT_INTERFACE("zipdrive", A2BUS_ZIPDRIVE) /* ZIP Technologies IDE card */
- SLOT_INTERFACE("echoiiplus", A2BUS_ECHOPLUS) /* Street Electronics Echo Plus (Echo II + Mockingboard clone) */
- SLOT_INTERFACE("scsi", A2BUS_SCSI) /* Apple II SCSI Card */
- SLOT_INTERFACE("applicard", A2BUS_APPLICARD) /* PCPI Applicard */
- SLOT_INTERFACE("aesms", A2BUS_AESMS) /* Applied Engineering Super Music Synthesizer */
- SLOT_INTERFACE("ultraterm", A2BUS_ULTRATERM) /* Videx UltraTerm (original) */
- SLOT_INTERFACE("ultratermenh", A2BUS_ULTRATERMENH) /* Videx UltraTerm (enhanced //e) */
- SLOT_INTERFACE("aevm80", A2BUS_AEVIEWMASTER80) /* Applied Engineering ViewMaster 80 */
- SLOT_INTERFACE("parallel", A2BUS_PIC) /* Apple Parallel Interface Card */
- SLOT_INTERFACE("corvus", A2BUS_CORVUS) /* Corvus flat-cable HDD interface (see notes in a2corvus.c) */
- SLOT_INTERFACE("mcms1", A2BUS_MCMS1) /* Mountain Computer Music System, card 1 of 2 */
- SLOT_INTERFACE("mcms2", A2BUS_MCMS2) /* Mountain Computer Music System, card 2 of 2. must be in card 1's slot + 1! */
- SLOT_INTERFACE("dx1", A2BUS_DX1) /* Decillonix DX-1 sampler card */
- SLOT_INTERFACE("tm2ho", A2BUS_TIMEMASTERHO) /* Applied Engineering TimeMaster II H.O. */
- SLOT_INTERFACE("mouse", A2BUS_MOUSE) /* Apple II Mouse Card */
- SLOT_INTERFACE("ezcgi", A2BUS_EZCGI) /* E-Z Color Graphics Interface */
- SLOT_INTERFACE("ezcgi9938", A2BUS_EZCGI_9938) /* E-Z Color Graphics Interface (TMS9938) */
- SLOT_INTERFACE("ezcgi9958", A2BUS_EZCGI_9958) /* E-Z Color Graphics Interface (TMS9958) */
-// SLOT_INTERFACE("magicmusician", A2BUS_MAGICMUSICIAN) /* Magic Musician Card */
- SLOT_INTERFACE("pcxport", A2BUS_PCXPORTER) /* Applied Engineering PC Transporter */
- SLOT_INTERFACE("ssprite", A2BUS_SSPRITE) /* Synetix SuperSprite Board */
- SLOT_INTERFACE("ssbapple", A2BUS_SSBAPPLE) /* SSB Apple speech board */
- SLOT_INTERFACE("twarp", A2BUS_TRANSWARP) /* AE TransWarp accelerator */
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START(apple2eaux_cards)
- SLOT_INTERFACE("std80", A2EAUX_STD80COL) /* Apple IIe Standard 80 Column Card */
- SLOT_INTERFACE("ext80", A2EAUX_EXT80COL) /* Apple IIe Extended 80 Column Card */
- SLOT_INTERFACE("rw3", A2EAUX_RAMWORKS3) /* Applied Engineering RamWorks III */
-SLOT_INTERFACE_END
+static void apple2_cards(device_slot_interface &device)
+{
+ device.option_add("diskii", A2BUS_DISKII); /* Disk II Controller Card */
+ device.option_add("diskiing", A2BUS_DISKIING); /* Disk II Controller Card, cycle-accurate version */
+ device.option_add("diskiing13", A2BUS_DISKIING13); /* Disk II Controller Card, cycle-accurate version */
+ device.option_add("mockingboard", A2BUS_MOCKINGBOARD); /* Sweet Micro Systems Mockingboard */
+ device.option_add("phasor", A2BUS_PHASOR); /* Applied Engineering Phasor */
+ device.option_add("cffa2", A2BUS_CFFA2); /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 65C02/65816 firmware */
+ device.option_add("cffa202", A2BUS_CFFA2_6502); /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 6502 firmware */
+ device.option_add("memexp", A2BUS_MEMEXP); /* Apple II Memory Expansion Card */
+ device.option_add("ramfactor", A2BUS_RAMFACTOR); /* Applied Engineering RamFactor */
+ device.option_add("thclock", A2BUS_THUNDERCLOCK); /* ThunderWare ThunderClock Plus */
+ device.option_add("softcard", A2BUS_SOFTCARD); /* Microsoft SoftCard */
+ device.option_add("videoterm", A2BUS_VIDEOTERM); /* Videx VideoTerm */
+ device.option_add("ssc", A2BUS_SSC); /* Apple Super Serial Card */
+ device.option_add("swyft", A2BUS_SWYFT); /* IAI SwyftCard */
+ device.option_add("themill", A2BUS_THEMILL); /* Stellation Two The Mill (6809 card) */
+ device.option_add("sam", A2BUS_SAM); /* SAM Software Automated Mouth (8-bit DAC + speaker) */
+ device.option_add("alfam2", A2BUS_ALFAM2); /* ALF Apple Music II */
+ device.option_add("echoii", A2BUS_ECHOII); /* Street Electronics Echo II */
+ device.option_add("ap16", A2BUS_IBSAP16); /* IBS AP16 (German VideoTerm clone) */
+ device.option_add("ap16alt", A2BUS_IBSAP16ALT); /* IBS AP16 (German VideoTerm clone), alternate revision */
+ device.option_add("vtc1", A2BUS_VTC1); /* Unknown VideoTerm clone #1 */
+ device.option_add("vtc2", A2BUS_VTC2); /* Unknown VideoTerm clone #2 */
+ device.option_add("arcbd", A2BUS_ARCADEBOARD); /* Third Millenium Engineering Arcade Board */
+ device.option_add("midi", A2BUS_MIDI); /* Generic 6840+6850 MIDI board */
+ device.option_add("zipdrive", A2BUS_ZIPDRIVE); /* ZIP Technologies IDE card */
+ device.option_add("echoiiplus", A2BUS_ECHOPLUS); /* Street Electronics Echo Plus (Echo II + Mockingboard clone) */
+ device.option_add("scsi", A2BUS_SCSI); /* Apple II SCSI Card */
+ device.option_add("applicard", A2BUS_APPLICARD); /* PCPI Applicard */
+ device.option_add("aesms", A2BUS_AESMS); /* Applied Engineering Super Music Synthesizer */
+ device.option_add("ultraterm", A2BUS_ULTRATERM); /* Videx UltraTerm (original) */
+ device.option_add("ultratermenh", A2BUS_ULTRATERMENH); /* Videx UltraTerm (enhanced //e) */
+ device.option_add("aevm80", A2BUS_AEVIEWMASTER80); /* Applied Engineering ViewMaster 80 */
+ device.option_add("parallel", A2BUS_PIC); /* Apple Parallel Interface Card */
+ device.option_add("corvus", A2BUS_CORVUS); /* Corvus flat-cable HDD interface (see notes in a2corvus.c) */
+ device.option_add("mcms1", A2BUS_MCMS1); /* Mountain Computer Music System, card 1 of 2 */
+ device.option_add("mcms2", A2BUS_MCMS2); /* Mountain Computer Music System, card 2 of 2. must be in card 1's slot + 1! */
+ device.option_add("dx1", A2BUS_DX1); /* Decillonix DX-1 sampler card */
+ device.option_add("tm2ho", A2BUS_TIMEMASTERHO); /* Applied Engineering TimeMaster II H.O. */
+ device.option_add("mouse", A2BUS_MOUSE); /* Apple II Mouse Card */
+ device.option_add("ezcgi", A2BUS_EZCGI); /* E-Z Color Graphics Interface */
+ device.option_add("ezcgi9938", A2BUS_EZCGI_9938); /* E-Z Color Graphics Interface (TMS9938) */
+ device.option_add("ezcgi9958", A2BUS_EZCGI_9958); /* E-Z Color Graphics Interface (TMS9958) */
+// device.option_add("magicmusician", A2BUS_MAGICMUSICIAN); /* Magic Musician Card */
+ device.option_add("pcxport", A2BUS_PCXPORTER); /* Applied Engineering PC Transporter */
+ device.option_add("ssprite", A2BUS_SSPRITE); /* Synetix SuperSprite Board */
+ device.option_add("ssbapple", A2BUS_SSBAPPLE); /* SSB Apple speech board */
+ device.option_add("twarp", A2BUS_TRANSWARP); /* AE TransWarp accelerator */
+}
+
+static void apple2eaux_cards(device_slot_interface &device)
+{
+ device.option_add("std80", A2EAUX_STD80COL); /* Apple IIe Standard 80 Column Card */
+ device.option_add("ext80", A2EAUX_EXT80COL); /* Apple IIe Extended 80 Column Card */
+ device.option_add("rw3", A2EAUX_RAMWORKS3); /* Applied Engineering RamWorks III */
+}
MACHINE_CONFIG_START(apple2e_state::apple2e)
/* basic machine hardware */
diff --git a/src/mame/drivers/apple2gs.cpp b/src/mame/drivers/apple2gs.cpp
index 47eb5e98518..5d47280fabe 100644
--- a/src/mame/drivers/apple2gs.cpp
+++ b/src/mame/drivers/apple2gs.cpp
@@ -286,31 +286,32 @@ WRITE_LINE_MEMBER(apple2gs_state::a2bus_inh_w)
apple2_update_memory();
}
-static SLOT_INTERFACE_START(apple2_cards)
- SLOT_INTERFACE("diskii", A2BUS_DISKII) /* Disk II Controller Card */
- SLOT_INTERFACE("mockingboard", A2BUS_MOCKINGBOARD) /* Sweet Micro Systems Mockingboard */
- SLOT_INTERFACE("phasor", A2BUS_PHASOR) /* Applied Engineering Phasor */
- SLOT_INTERFACE("cffa2", A2BUS_CFFA2) /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 65C02/65816 firmware */
- SLOT_INTERFACE("cffa202", A2BUS_CFFA2_6502) /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 6502 firmware */
- SLOT_INTERFACE("memexp", A2BUS_MEMEXP) /* Apple II Memory Expansion Card */
- SLOT_INTERFACE("ramfactor", A2BUS_RAMFACTOR) /* Applied Engineering RamFactor */
- SLOT_INTERFACE("thclock", A2BUS_THUNDERCLOCK) /* ThunderWare ThunderClock Plus */
- SLOT_INTERFACE("ssc", A2BUS_SSC) /* Apple Super Serial Card */
- SLOT_INTERFACE("sam", A2BUS_SAM) /* SAM Software Automated Mouth (8-bit DAC + speaker) */
- SLOT_INTERFACE("alfam2", A2BUS_ALFAM2) /* ALF Apple Music II */
- SLOT_INTERFACE("echoii", A2BUS_ECHOII) /* Street Electronics Echo II */
- SLOT_INTERFACE("arcbd", A2BUS_ARCADEBOARD) /* Third Millenium Engineering Arcade Board */
- SLOT_INTERFACE("midi", A2BUS_MIDI) /* Generic 6840+6850 MIDI board */
- SLOT_INTERFACE("vulcan", A2BUS_VULCAN) /* AE Vulcan IDE card */
- SLOT_INTERFACE("vulcangold", A2BUS_VULCANGOLD) /* AE Vulcan Gold IDE card */
- SLOT_INTERFACE("zipdrive", A2BUS_ZIPDRIVE) /* ZIP Technologies IDE card */
- SLOT_INTERFACE("echoiiplus", A2BUS_ECHOPLUS) /* Street Electronics Echo Plus (Echo II + Mockingboard clone) */
-// SLOT_INTERFACE("mdturbo", A2BUS_UDRIVE_TURBO) /* ///SHH Systeme MicroDrive Turbo IDE card */
-
-// SLOT_INTERFACE("softcard", A2BUS_SOFTCARD) /* Microsoft SoftCard */ // appears not to be IIgs compatible?
- SLOT_INTERFACE("scsi", A2BUS_SCSI) /* Apple II SCSI Card */
- SLOT_INTERFACE("hsscsi", A2BUS_HSSCSI) /* Apple II High-Speed SCSI Card */
-SLOT_INTERFACE_END
+static void apple2_cards(device_slot_interface &device)
+{
+ device.option_add("diskii", A2BUS_DISKII); /* Disk II Controller Card */
+ device.option_add("mockingboard", A2BUS_MOCKINGBOARD); /* Sweet Micro Systems Mockingboard */
+ device.option_add("phasor", A2BUS_PHASOR); /* Applied Engineering Phasor */
+ device.option_add("cffa2", A2BUS_CFFA2); /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 65C02/65816 firmware */
+ device.option_add("cffa202", A2BUS_CFFA2_6502); /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 6502 firmware */
+ device.option_add("memexp", A2BUS_MEMEXP); /* Apple II Memory Expansion Card */
+ device.option_add("ramfactor", A2BUS_RAMFACTOR); /* Applied Engineering RamFactor */
+ device.option_add("thclock", A2BUS_THUNDERCLOCK); /* ThunderWare ThunderClock Plus */
+ device.option_add("ssc", A2BUS_SSC); /* Apple Super Serial Card */
+ device.option_add("sam", A2BUS_SAM); /* SAM Software Automated Mouth (8-bit DAC + speaker) */
+ device.option_add("alfam2", A2BUS_ALFAM2); /* ALF Apple Music II */
+ device.option_add("echoii", A2BUS_ECHOII); /* Street Electronics Echo II */
+ device.option_add("arcbd", A2BUS_ARCADEBOARD); /* Third Millenium Engineering Arcade Board */
+ device.option_add("midi", A2BUS_MIDI); /* Generic 6840+6850 MIDI board */
+ device.option_add("vulcan", A2BUS_VULCAN); /* AE Vulcan IDE card */
+ device.option_add("vulcangold", A2BUS_VULCANGOLD); /* AE Vulcan Gold IDE card */
+ device.option_add("zipdrive", A2BUS_ZIPDRIVE); /* ZIP Technologies IDE card */
+ device.option_add("echoiiplus", A2BUS_ECHOPLUS); /* Street Electronics Echo Plus (Echo II + Mockingboard clone) */
+// device.option_add("mdturbo", A2BUS_UDRIVE_TURBO); /* ///SHH Systeme MicroDrive Turbo IDE card */
+
+// device.option_add("softcard", A2BUS_SOFTCARD); /* Microsoft SoftCard */ // appears not to be IIgs compatible?
+ device.option_add("scsi", A2BUS_SCSI); /* Apple II SCSI Card */
+ device.option_add("hsscsi", A2BUS_HSSCSI); /* Apple II High-Speed SCSI Card */
+}
MACHINE_CONFIG_START(apple2gs_state::apple2gs)
/* basic machine hardware */
diff --git a/src/mame/drivers/apple3.cpp b/src/mame/drivers/apple3.cpp
index 98469e157ef..77c2cd75887 100644
--- a/src/mame/drivers/apple3.cpp
+++ b/src/mame/drivers/apple3.cpp
@@ -36,16 +36,18 @@ void apple3_state::apple3_map(address_map &map)
map(0x0000, 0xffff).rw(this, FUNC(apple3_state::apple3_memory_r), FUNC(apple3_state::apple3_memory_w));
}
-static SLOT_INTERFACE_START(apple3_cards)
- SLOT_INTERFACE("cffa2", A2BUS_CFFA2_6502) /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 6502 firmware */
- SLOT_INTERFACE("applicard", A2BUS_APPLICARD) /* PCPI Applicard */
- SLOT_INTERFACE("thclock", A2BUS_THUNDERCLOCK) /* ThunderWare ThunderClock Plus - driver assumes slot 2 by default */
- SLOT_INTERFACE("mouse", A2BUS_MOUSE) /* Apple II Mouse Card */
-SLOT_INTERFACE_END
+static void apple3_cards(device_slot_interface &device)
+{
+ device.option_add("cffa2", A2BUS_CFFA2_6502); // CFFA2000 Compact Flash for Apple II (www.dreher.net), 6502 firmware
+ device.option_add("applicard", A2BUS_APPLICARD); // PCPI Applicard
+ device.option_add("thclock", A2BUS_THUNDERCLOCK); // ThunderWare ThunderClock Plus - driver assumes slot 2 by default
+ device.option_add("mouse", A2BUS_MOUSE); // Apple II Mouse Card
+}
-static SLOT_INTERFACE_START( a3_floppies )
- SLOT_INTERFACE( "525", FLOPPY_525_SD )
-SLOT_INTERFACE_END
+static void a3_floppies(device_slot_interface &device)
+{
+ device.option_add("525", FLOPPY_525_SD);
+}
FLOPPY_FORMATS_MEMBER( apple3_state::floppy_formats )
FLOPPY_A216S_FORMAT, FLOPPY_RWTS18_FORMAT, FLOPPY_EDD_FORMAT, FLOPPY_WOZ_FORMAT
@@ -148,8 +150,8 @@ MACHINE_CONFIG_START(apple3_state::apple3)
MCFG_SOUND_ADD("bell", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
MCFG_SOUND_ADD("dac", DAC_6BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.125) // 6522.b5(pb0-pb5) + 320k,160k,80k,40k,20k,10k
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "bell", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "bell", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_TIMER_DRIVER_ADD_PERIODIC("c040", apple3_state, apple3_c040_tick, attotime::from_hz(2000))
diff --git a/src/mame/drivers/applix.cpp b/src/mame/drivers/applix.cpp
index 94634aabc4d..d4f95115a9e 100644
--- a/src/mame/drivers/applix.cpp
+++ b/src/mame/drivers/applix.cpp
@@ -743,9 +743,10 @@ FLOPPY_FORMATS_MEMBER( applix_state::floppy_formats )
FLOPPY_APPLIX_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( applix_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void applix_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+}
PALETTE_INIT_MEMBER(applix_state, applix)
@@ -873,8 +874,8 @@ MACHINE_CONFIG_START(applix_state::applix)
MCFG_SOUND_ADD("ldac", DAC0800, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // 74ls374.u20 + dac0800.u21 + 4052.u23
MCFG_SOUND_ADD("rdac", DAC0800, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // 74ls374.u20 + dac0800.u21 + 4052.u23
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
diff --git a/src/mame/drivers/apricot.cpp b/src/mame/drivers/apricot.cpp
index 16cc6d7d16d..3ad783046ce 100644
--- a/src/mame/drivers/apricot.cpp
+++ b/src/mame/drivers/apricot.cpp
@@ -250,10 +250,11 @@ FLOPPY_FORMATS_MEMBER( apricot_state::floppy_formats )
FLOPPY_APRIDISK_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( apricot_floppies )
- SLOT_INTERFACE("d31v", SONY_OA_D31V)
- SLOT_INTERFACE("d32w", SONY_OA_D32W)
-SLOT_INTERFACE_END
+static void apricot_floppies(device_slot_interface &device)
+{
+ device.option_add("d31v", SONY_OA_D31V);
+ device.option_add("d32w", SONY_OA_D32W);
+}
//**************************************************************************
diff --git a/src/mame/drivers/apricotf.cpp b/src/mame/drivers/apricotf.cpp
index 6f43e2162bc..cc29c5e5784 100644
--- a/src/mame/drivers/apricotf.cpp
+++ b/src/mame/drivers/apricotf.cpp
@@ -319,10 +319,11 @@ FLOPPY_FORMATS_MEMBER( f1_state::floppy_formats )
FLOPPY_APRIDISK_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( apricotf_floppies )
- SLOT_INTERFACE( "d31v", SONY_OA_D31V )
- SLOT_INTERFACE( "d32w", SONY_OA_D32W )
-SLOT_INTERFACE_END
+void apricotf_floppies(device_slot_interface &device)
+{
+ device.option_add("d31v", SONY_OA_D31V);
+ device.option_add("d32w", SONY_OA_D32W);
+}
diff --git a/src/mame/drivers/apricotp.cpp b/src/mame/drivers/apricotp.cpp
index e9bf1dd4d44..c1868990dcb 100644
--- a/src/mame/drivers/apricotp.cpp
+++ b/src/mame/drivers/apricotp.cpp
@@ -574,9 +574,10 @@ FLOPPY_FORMATS_MEMBER( fp_state::floppy_formats )
FLOPPY_APRIDISK_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( fp_floppies )
- SLOT_INTERFACE("d32w", SONY_OA_D32W)
-SLOT_INTERFACE_END
+static void fp_floppies(device_slot_interface &device)
+{
+ device.option_add("d32w", SONY_OA_D32W);
+}
//-------------------------------------------------
diff --git a/src/mame/drivers/arcadia.cpp b/src/mame/drivers/arcadia.cpp
index 2236e88c172..1a545ea4db6 100644
--- a/src/mame/drivers/arcadia.cpp
+++ b/src/mame/drivers/arcadia.cpp
@@ -464,10 +464,11 @@ void arcadia_state::machine_start()
}
}
-static SLOT_INTERFACE_START(arcadia_cart)
- SLOT_INTERFACE_INTERNAL("std", ARCADIA_ROM_STD)
- SLOT_INTERFACE_INTERNAL("golf", ARCADIA_ROM_GOLF)
-SLOT_INTERFACE_END
+static void arcadia_cart(device_slot_interface &device)
+{
+ device.option_add_internal("std", ARCADIA_ROM_STD);
+ device.option_add_internal("golf", ARCADIA_ROM_GOLF);
+}
MACHINE_CONFIG_START(arcadia_state::arcadia)
diff --git a/src/mame/drivers/aristmk5.cpp b/src/mame/drivers/aristmk5.cpp
index 06eb7267f0e..aa6a9e8952f 100644
--- a/src/mame/drivers/aristmk5.cpp
+++ b/src/mame/drivers/aristmk5.cpp
@@ -2101,14 +2101,14 @@ MACHINE_CONFIG_START(aristmk5_state::aristmk5)
MCFG_SOUND_ADD("dac6", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
MCFG_SOUND_ADD("dac7", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac0", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac3", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac4", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac5", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac6", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac7", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac0", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac3", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac4", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac5", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac6", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac7", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/armedf.cpp b/src/mame/drivers/armedf.cpp
index efaac40124e..4fc0769878b 100644
--- a/src/mame/drivers/armedf.cpp
+++ b/src/mame/drivers/armedf.cpp
@@ -1266,8 +1266,8 @@ MACHINE_CONFIG_START(armedf_state::terraf_sound)
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.8) // 10-pin SIP with 74HC374P latch
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.8) // 10-pin SIP with 74HC374P latch
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(armedf_state::terraf)
@@ -1353,8 +1353,8 @@ MACHINE_CONFIG_START(armedf_state::terrafjb)
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.8) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.8) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(armedf_state::terrafb)
@@ -1440,8 +1440,8 @@ MACHINE_CONFIG_START(armedf_state::armedf)
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(armedf_state::cclimbr2)
@@ -1490,8 +1490,8 @@ MACHINE_CONFIG_START(armedf_state::cclimbr2)
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(armedf_state::legion)
@@ -1540,8 +1540,8 @@ MACHINE_CONFIG_START(armedf_state::legion)
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // 10-pin SIP with 74HC374P latch
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // 10-pin SIP with 74HC374P latch
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(armedf_state::legionjb)
@@ -1588,8 +1588,8 @@ MACHINE_CONFIG_START(armedf_state::legionjb)
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(bigfghtr_state::bigfghtr)
diff --git a/src/mame/drivers/asst128.cpp b/src/mame/drivers/asst128.cpp
index 3e73e3ae57e..32dfc693bb1 100644
--- a/src/mame/drivers/asst128.cpp
+++ b/src/mame/drivers/asst128.cpp
@@ -86,9 +86,10 @@ void asst128_state::asst128_io(address_map &map)
map(0x03f4, 0x03f5).m("fdc:upd765", FUNC(upd765a_device::map));
}
-static SLOT_INTERFACE_START( asst128_floppies )
- SLOT_INTERFACE( "525ssqd", FLOPPY_525_SSQD )
-SLOT_INTERFACE_END
+static void asst128_floppies(device_slot_interface &device)
+{
+ device.option_add("525ssqd", FLOPPY_525_SSQD);
+}
FLOPPY_FORMATS_MEMBER( asst128_state::asst128_formats )
FLOPPY_ASST128_FORMAT
diff --git a/src/mame/drivers/astrohome.cpp b/src/mame/drivers/astrohome.cpp
index fcec6699453..e12c1ea1886 100644
--- a/src/mame/drivers/astrohome.cpp
+++ b/src/mame/drivers/astrohome.cpp
@@ -179,20 +179,22 @@ INPUT_PORTS_END
*
*************************************/
-static SLOT_INTERFACE_START(astrocade_cart)
- SLOT_INTERFACE_INTERNAL("rom", ASTROCADE_ROM_STD)
- SLOT_INTERFACE_INTERNAL("rom_256k", ASTROCADE_ROM_256K)
- SLOT_INTERFACE_INTERNAL("rom_512k", ASTROCADE_ROM_512K)
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START(astrocade_exp)
- SLOT_INTERFACE("blue_ram_4k", ASTROCADE_BLUERAM_4K)
- SLOT_INTERFACE("blue_ram_16k", ASTROCADE_BLUERAM_16K)
- SLOT_INTERFACE("blue_ram_32k", ASTROCADE_BLUERAM_32K)
- SLOT_INTERFACE("viper_sys1", ASTROCADE_VIPER_SYS1)
- SLOT_INTERFACE("lil_white_ram", ASTROCADE_WHITERAM)
- SLOT_INTERFACE("rl64_ram", ASTROCADE_RL64RAM)
-SLOT_INTERFACE_END
+static void astrocade_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", ASTROCADE_ROM_STD);
+ device.option_add_internal("rom_256k", ASTROCADE_ROM_256K);
+ device.option_add_internal("rom_512k", ASTROCADE_ROM_512K);
+}
+
+static void astrocade_exp(device_slot_interface &device)
+{
+ device.option_add("blue_ram_4k", ASTROCADE_BLUERAM_4K);
+ device.option_add("blue_ram_16k", ASTROCADE_BLUERAM_16K);
+ device.option_add("blue_ram_32k", ASTROCADE_BLUERAM_32K);
+ device.option_add("viper_sys1", ASTROCADE_VIPER_SYS1);
+ device.option_add("lil_white_ram", ASTROCADE_WHITERAM);
+ device.option_add("rl64_ram", ASTROCADE_RL64RAM);
+}
MACHINE_CONFIG_START(astrocde_mess_state::astrocde)
diff --git a/src/mame/drivers/at.cpp b/src/mame/drivers/at.cpp
index f1d0d71796d..ff7042251be 100644
--- a/src/mame/drivers/at.cpp
+++ b/src/mame/drivers/at.cpp
@@ -416,9 +416,10 @@ void at_state::cfg_single_360K(device_t *device)
dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option("");
}
-static SLOT_INTERFACE_START( pci_devices )
- SLOT_INTERFACE_INTERNAL("vt82c505", VT82C505)
-SLOT_INTERFACE_END
+static void pci_devices(device_slot_interface &device)
+{
+ device.option_add_internal("vt82c505", VT82C505);
+}
MACHINE_CONFIG_START(at_state::ibm5170)
/* basic machine hardware */
diff --git a/src/mame/drivers/atari400.cpp b/src/mame/drivers/atari400.cpp
index d179d64c704..a30a07a9ec1 100644
--- a/src/mame/drivers/atari400.cpp
+++ b/src/mame/drivers/atari400.cpp
@@ -2154,7 +2154,7 @@ MACHINE_CONFIG_START(a400_state::atari_common)
atari_common_nodac(config);
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.03)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)
diff --git a/src/mame/drivers/atari_s1.cpp b/src/mame/drivers/atari_s1.cpp
index c0f8595e1b2..310ee762156 100644
--- a/src/mame/drivers/atari_s1.cpp
+++ b/src/mame/drivers/atari_s1.cpp
@@ -461,7 +461,7 @@ MACHINE_CONFIG_START(atari_s1_state::atari_s1)
MCFG_SOUND_ADD("dac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.3) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
/* Video */
MCFG_DEFAULT_LAYOUT(layout_atari_s1)
diff --git a/src/mame/drivers/atari_s2.cpp b/src/mame/drivers/atari_s2.cpp
index 9c176aaaea9..ca4c6c9d898 100644
--- a/src/mame/drivers/atari_s2.cpp
+++ b/src/mame/drivers/atari_s2.cpp
@@ -494,8 +494,8 @@ MACHINE_CONFIG_START(atari_s2_state::atari_s2)
MCFG_SOUND_ADD("dac", DAC_4BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.15) // r23-r26 (68k,33k,18k,8.2k)
MCFG_SOUND_ADD("dac1", DAC_3BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.15) // r18-r20 (100k,47k,100k)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
/* Video */
MCFG_DEFAULT_LAYOUT(layout_atari_s2)
diff --git a/src/mame/drivers/atarist.cpp b/src/mame/drivers/atarist.cpp
index 6742aa2dd3b..2371d953ea0 100644
--- a/src/mame/drivers/atarist.cpp
+++ b/src/mame/drivers/atarist.cpp
@@ -2015,9 +2015,10 @@ FLOPPY_FORMATS_MEMBER( st_state::floppy_formats )
FLOPPY_ST_FORMAT, FLOPPY_MSA_FORMAT, FLOPPY_PASTI_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( atari_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void atari_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+}
diff --git a/src/mame/drivers/atlantis.cpp b/src/mame/drivers/atlantis.cpp
index 5954dd949ce..727802eaf2b 100644
--- a/src/mame/drivers/atlantis.cpp
+++ b/src/mame/drivers/atlantis.cpp
@@ -880,7 +880,7 @@ MACHINE_CONFIG_START(atlantis_state::mwskins)
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart1", ins8250_uart_device, dsr_w))
MCFG_RS232_RI_HANDLER(DEVWRITELINE("uart1", ins8250_uart_device, ri_w))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart1", ins8250_uart_device, cts_w))
- //MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("com1", mwskins_comm)
+ //MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("com1", mwskins_comm)
MCFG_RS232_PORT_ADD("com2", default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart2", ins8250_uart_device, rx_w))
diff --git a/src/mame/drivers/atom.cpp b/src/mame/drivers/atom.cpp
index c1237b8bc80..acf570a9b41 100644
--- a/src/mame/drivers/atom.cpp
+++ b/src/mame/drivers/atom.cpp
@@ -695,9 +695,10 @@ image_init_result atom_state::load_cart(device_image_interface &image, generic_s
return image_init_result::PASS;
}
-static SLOT_INTERFACE_START(atom_floppies)
- SLOT_INTERFACE("525sssd", FLOPPY_525_SSSD)
-SLOT_INTERFACE_END
+static void atom_floppies(device_slot_interface &device)
+{
+ device.option_add("525sssd", FLOPPY_525_SSSD);
+}
FLOPPY_FORMATS_MEMBER(atom_state::floppy_formats)
FLOPPY_ATOM_FORMAT
diff --git a/src/mame/drivers/atpci.cpp b/src/mame/drivers/atpci.cpp
index 1024b81bb43..3d76c709dff 100644
--- a/src/mame/drivers/atpci.cpp
+++ b/src/mame/drivers/atpci.cpp
@@ -72,15 +72,17 @@ void at586_state::superio_config(device_t *device)
}
-static SLOT_INTERFACE_START( isa_internal_devices )
- SLOT_INTERFACE("fdc37c93x", FDC37C93X)
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START( pci_devices )
- SLOT_INTERFACE_INTERNAL("i82439tx", I82439TX)
- SLOT_INTERFACE_INTERNAL("i82371ab", I82371AB)
- SLOT_INTERFACE_INTERNAL("i82371sb", I82371SB)
-SLOT_INTERFACE_END
+static void isa_internal_devices(device_slot_interface &device)
+{
+ device.option_add("fdc37c93x", FDC37C93X);
+}
+
+static void pci_devices(device_slot_interface &device)
+{
+ device.option_add_internal("i82439tx", I82439TX);
+ device.option_add_internal("i82371ab", I82371AB);
+ device.option_add_internal("i82371sb", I82371SB);
+}
void at586_state::at586_map(address_map &map)
{
diff --git a/src/mame/drivers/attache.cpp b/src/mame/drivers/attache.cpp
index b2b85861db9..dcbcee180ee 100644
--- a/src/mame/drivers/attache.cpp
+++ b/src/mame/drivers/attache.cpp
@@ -1049,9 +1049,10 @@ static const z80_daisy_config attache_daisy_chain[] =
{ nullptr }
};
-static SLOT_INTERFACE_START( attache_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void attache_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
void attache_state::driver_start()
{
diff --git a/src/mame/drivers/aussiebyte.cpp b/src/mame/drivers/aussiebyte.cpp
index db42528aeb3..d0633d0856d 100644
--- a/src/mame/drivers/aussiebyte.cpp
+++ b/src/mame/drivers/aussiebyte.cpp
@@ -419,9 +419,10 @@ WRITE_LINE_MEMBER( aussiebyte_state::fdc_drq_w )
m_dma->rdy_w(state);
}
-static SLOT_INTERFACE_START( aussiebyte_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void aussiebyte_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
/***********************************************************
diff --git a/src/mame/drivers/ax20.cpp b/src/mame/drivers/ax20.cpp
index b79cf78819d..278c3229649 100644
--- a/src/mame/drivers/ax20.cpp
+++ b/src/mame/drivers/ax20.cpp
@@ -122,9 +122,10 @@ static GFXDECODE_START( ax20 )
GFXDECODE_ENTRY( "chargen", 0x0000, ax20_charlayout, 0, 1 )
GFXDECODE_END
-static SLOT_INTERFACE_START( ax20_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void ax20_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
MACHINE_CONFIG_START(ax20_state::ax20)
/* basic machine hardware */
diff --git a/src/mame/drivers/b2m.cpp b/src/mame/drivers/b2m.cpp
index bd2c10d023e..c7bf2eea000 100644
--- a/src/mame/drivers/b2m.cpp
+++ b/src/mame/drivers/b2m.cpp
@@ -182,9 +182,10 @@ FLOPPY_FORMATS_MEMBER( b2m_state::b2m_floppy_formats )
FLOPPY_SMX_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( b2m_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void b2m_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
/* Machine driver */
diff --git a/src/mame/drivers/bbc.cpp b/src/mame/drivers/bbc.cpp
index 65d4859d90d..dec458a817f 100644
--- a/src/mame/drivers/bbc.cpp
+++ b/src/mame/drivers/bbc.cpp
@@ -764,17 +764,19 @@ FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_bbc )
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( bbc_floppies_525 )
- SLOT_INTERFACE("525sssd", FLOPPY_525_SSSD)
- SLOT_INTERFACE("525sd", FLOPPY_525_SD)
- SLOT_INTERFACE("525ssdd", FLOPPY_525_SSDD)
- SLOT_INTERFACE("525dd", FLOPPY_525_DD)
- SLOT_INTERFACE("525qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START( bbc_floppies_35 )
- SLOT_INTERFACE("35dd", FLOPPY_35_DD)
-SLOT_INTERFACE_END
+static void bbc_floppies_525(device_slot_interface &device)
+{
+ device.option_add("525sssd", FLOPPY_525_SSSD);
+ device.option_add("525sd", FLOPPY_525_SD);
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
+
+static void bbc_floppies_35(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+}
static const char *const bbc_sample_names[] =
diff --git a/src/mame/drivers/bebox.cpp b/src/mame/drivers/bebox.cpp
index a43fa382d5b..2e51eada11c 100644
--- a/src/mame/drivers/bebox.cpp
+++ b/src/mame/drivers/bebox.cpp
@@ -116,9 +116,10 @@ FLOPPY_FORMATS_MEMBER( bebox_state::floppy_formats )
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( bebox_floppies )
- SLOT_INTERFACE( "35hd", FLOPPY_35_HD )
-SLOT_INTERFACE_END
+static void bebox_floppies(device_slot_interface &device)
+{
+ device.option_add("35hd", FLOPPY_35_HD);
+}
void bebox_state::mpc105_config(device_t *device)
{
@@ -138,10 +139,11 @@ WRITE_LINE_MEMBER(bebox_state::bebox_keyboard_interrupt)
m_pic8259_1->ir1_w(state);
}
-static SLOT_INTERFACE_START( pci_devices )
- SLOT_INTERFACE_INTERNAL("mpc105", MPC105)
- SLOT_INTERFACE("cirrus", PCI_CIRRUS_SVGA)
-SLOT_INTERFACE_END
+static void pci_devices(device_slot_interface &device)
+{
+ device.option_add("mpc105", MPC105);
+ device.option_add("cirrus", PCI_CIRRUS_SVGA);
+}
MACHINE_CONFIG_START(bebox_state::bebox)
/* basic machine hardware */
diff --git a/src/mame/drivers/bigbord2.cpp b/src/mame/drivers/bigbord2.cpp
index 22f1ec6b0e1..f6efc16d38b 100644
--- a/src/mame/drivers/bigbord2.cpp
+++ b/src/mame/drivers/bigbord2.cpp
@@ -403,9 +403,10 @@ static const z80_daisy_config daisy_chain[] =
/* WD1793 Interface */
-static SLOT_INTERFACE_START( bigbord2_floppies )
- SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD )
-SLOT_INTERFACE_END
+static void bigbord2_floppies(device_slot_interface &device)
+{
+ device.option_add("8dsdd", FLOPPY_8_DSDD);
+}
/* Machine Initialization */
diff --git a/src/mame/drivers/bigevglf.cpp b/src/mame/drivers/bigevglf.cpp
index e5fc7fc70c0..bd4f5d296a3 100644
--- a/src/mame/drivers/bigevglf.cpp
+++ b/src/mame/drivers/bigevglf.cpp
@@ -443,7 +443,7 @@ MACHINE_CONFIG_START(bigevglf_state::bigevglf)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/***************************************************************************
diff --git a/src/mame/drivers/binbug.cpp b/src/mame/drivers/binbug.cpp
index 4673efec2c1..d5d2871ce2a 100644
--- a/src/mame/drivers/binbug.cpp
+++ b/src/mame/drivers/binbug.cpp
@@ -320,7 +320,7 @@ MACHINE_CONFIG_START(binbug_state::binbug)
/* Keyboard */
MCFG_RS232_PORT_ADD("keyboard", default_rs232_devices, "keyboard")
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("keyboard", keyboard)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("keyboard", keyboard)
/* Cassette */
MCFG_CASSETTE_ADD( "cassette" )
diff --git a/src/mame/drivers/bitgraph.cpp b/src/mame/drivers/bitgraph.cpp
index 9e956a85930..c9c28465ea0 100644
--- a/src/mame/drivers/bitgraph.cpp
+++ b/src/mame/drivers/bitgraph.cpp
@@ -522,7 +522,7 @@ MACHINE_CONFIG_START(bitgraph_state::bg_motherboard)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(ACIA1_TAG, acia6850_device, write_rxd))
MCFG_RS232_DCD_HANDLER(DEVWRITELINE(ACIA1_TAG, acia6850_device, write_dcd))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE(ACIA1_TAG, acia6850_device, write_cts))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("keyboard", kbd_rs232_defaults)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("keyboard", kbd_rs232_defaults)
MCFG_DEVICE_ADD(ACIA2_TAG, ACIA6850, 0)
MCFG_ACIA6850_TXD_HANDLER(DEVWRITELINE(RS232_D_TAG, rs232_port_device, write_txd))
diff --git a/src/mame/drivers/bking.cpp b/src/mame/drivers/bking.cpp
index 68507be9584..3bc2c610757 100644
--- a/src/mame/drivers/bking.cpp
+++ b/src/mame/drivers/bking.cpp
@@ -440,7 +440,7 @@ MACHINE_CONFIG_START(bking_state::bking)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(bking_state::bking3)
diff --git a/src/mame/drivers/bml3.cpp b/src/mame/drivers/bml3.cpp
index 1cb795549ae..5a3824e13c8 100644
--- a/src/mame/drivers/bml3.cpp
+++ b/src/mame/drivers/bml3.cpp
@@ -960,11 +960,12 @@ static const ay8910_interface ay8910_config =
};
#endif
-static SLOT_INTERFACE_START(bml3_cards)
- SLOT_INTERFACE("bml3mp1802", BML3BUS_MP1802) /* MP-1802 Floppy Controller Card */
- SLOT_INTERFACE("bml3mp1805", BML3BUS_MP1805) /* MP-1805 Floppy Controller Card */
- SLOT_INTERFACE("bml3kanji", BML3BUS_KANJI)
-SLOT_INTERFACE_END
+static void bml3_cards(device_slot_interface &device)
+{
+ device.option_add("bml3mp1802", BML3BUS_MP1802); // MP-1802 Floppy Controller Card
+ device.option_add("bml3mp1805", BML3BUS_MP1805); // MP-1805 Floppy Controller Card
+ device.option_add("bml3kanji", BML3BUS_KANJI);
+}
MACHINE_CONFIG_START(bml3_state::bml3_common)
diff --git a/src/mame/drivers/btime.cpp b/src/mame/drivers/btime.cpp
index 61deac62966..d156ae222fc 100644
--- a/src/mame/drivers/btime.cpp
+++ b/src/mame/drivers/btime.cpp
@@ -1315,16 +1315,16 @@ MACHINE_CONFIG_START(btime_state::btime)
MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
MCFG_AY8910_RES_LOADS(RES_K(5), RES_K(5), RES_K(5))
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(btime_state, ay_audio_nmi_enable_w))
- MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 2)
+ MCFG_SOUND_ROUTE(0, "discrete", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "discrete", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "discrete", 1.0, 2)
MCFG_SOUND_ADD("ay2", AY8910, HCLK2)
MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
MCFG_AY8910_RES_LOADS(RES_K(1), RES_K(5), RES_K(5))
- MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 3)
- MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 4)
- MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 5)
+ MCFG_SOUND_ROUTE(0, "discrete", 1.0, 3)
+ MCFG_SOUND_ROUTE(1, "discrete", 1.0, 4)
+ MCFG_SOUND_ROUTE(2, "discrete", 1.0, 5)
MCFG_SOUND_ADD("discrete", DISCRETE, 0)
MCFG_DISCRETE_INTF(btime_sound)
diff --git a/src/mame/drivers/bullet.cpp b/src/mame/drivers/bullet.cpp
index 62f0b8d91b9..19b8bffaae2 100644
--- a/src/mame/drivers/bullet.cpp
+++ b/src/mame/drivers/bullet.cpp
@@ -934,20 +934,23 @@ WRITE_LINE_MEMBER( bulletf_state::cstrb_w )
m_centronics->write_strobe(!state);
}
-static SLOT_INTERFACE_START( bullet_525_floppies )
- SLOT_INTERFACE( "525sd", FLOPPY_525_SD )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void bullet_525_floppies(device_slot_interface &device)
+{
+ device.option_add("525sd", FLOPPY_525_SD);
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
-static SLOT_INTERFACE_START( bullet_8_floppies )
- SLOT_INTERFACE( "8dssd", FLOPPY_8_DSSD )
- SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD )
-SLOT_INTERFACE_END
+static void bullet_8_floppies(device_slot_interface &device)
+{
+ device.option_add("8dssd", FLOPPY_8_DSSD);
+ device.option_add("8dsdd", FLOPPY_8_DSDD);
+}
-static SLOT_INTERFACE_START( bullet_35_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void bullet_35_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+}
WRITE_LINE_MEMBER( bullet_state::fdc_drq_w )
{
@@ -1165,7 +1168,7 @@ MACHINE_CONFIG_START(bullet_state::bullet)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
@@ -1246,7 +1249,7 @@ MACHINE_CONFIG_START(bulletf_state::bulletf)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
diff --git a/src/mame/drivers/bw12.cpp b/src/mame/drivers/bw12.cpp
index 02a3b9b00b8..3c1f6dfabaf 100644
--- a/src/mame/drivers/bw12.cpp
+++ b/src/mame/drivers/bw12.cpp
@@ -508,17 +508,19 @@ void bw12_state::machine_reset()
}
}
-static SLOT_INTERFACE_START( bw12_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_SSDD )
-SLOT_INTERFACE_END
+static void bw12_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_SSDD);
+}
FLOPPY_FORMATS_MEMBER( bw12_state::bw12_floppy_formats )
FLOPPY_BW12_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( bw14_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void bw14_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
FLOPPY_FORMATS_MEMBER( bw12_state::bw14_floppy_formats )
FLOPPY_BW12_FORMAT
@@ -571,7 +573,7 @@ MACHINE_CONFIG_START(bw12_state::common)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.125) // ls273.ic5 + mc1408.ic4
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
/* devices */
MCFG_TIMER_DRIVER_ADD(FLOPPY_TIMER_TAG, bw12_state, floppy_motor_off_tick)
diff --git a/src/mame/drivers/bw2.cpp b/src/mame/drivers/bw2.cpp
index 2ca8bb637b0..3a3328c6e4e 100644
--- a/src/mame/drivers/bw2.cpp
+++ b/src/mame/drivers/bw2.cpp
@@ -530,9 +530,10 @@ FLOPPY_FORMATS_MEMBER( bw2_state::floppy_formats )
FLOPPY_BW2_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( bw2_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) // Teac FD-35
-SLOT_INTERFACE_END
+static void bw2_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD); // Teac FD-35
+}
diff --git a/src/mame/drivers/bwing.cpp b/src/mame/drivers/bwing.cpp
index 519dd648ec8..6dbf809e1bc 100644
--- a/src/mame/drivers/bwing.cpp
+++ b/src/mame/drivers/bwing.cpp
@@ -413,7 +413,7 @@ MACHINE_CONFIG_START(bwing_state::bwing)
MCFG_SOUND_ADD("dac", DAC08, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
//****************************************************************************
diff --git a/src/mame/drivers/byvid.cpp b/src/mame/drivers/byvid.cpp
index d7f742c5017..872f4fec269 100644
--- a/src/mame/drivers/byvid.cpp
+++ b/src/mame/drivers/byvid.cpp
@@ -810,7 +810,7 @@ MACHINE_CONFIG_START(by133_state::babypac)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", ZN429E, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // U32 (Vidiot) or U6 (Cheap Squeak)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SPEAKER_STANDARD_MONO("beee")
MCFG_SOUND_ADD("beeper", BEEP, 600)
diff --git a/src/mame/drivers/c128.cpp b/src/mame/drivers/c128.cpp
index c80eaca0b95..6afdb4147dc 100644
--- a/src/mame/drivers/c128.cpp
+++ b/src/mame/drivers/c128.cpp
@@ -1599,19 +1599,21 @@ WRITE_LINE_MEMBER( c128_state::exp_reset_w )
// SLOT_INTERFACE( c128dcr_iec_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( c128dcr_iec_devices )
- SLOT_INTERFACE("c1571", C1571)
- SLOT_INTERFACE("c1571cr", C1571CR)
-SLOT_INTERFACE_END
+void c128dcr_iec_devices(device_slot_interface &device)
+{
+ device.option_add("c1571", C1571);
+ device.option_add("c1571cr", C1571CR);
+}
//-------------------------------------------------
// SLOT_INTERFACE( c128d81_iec_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( c128d81_iec_devices )
- SLOT_INTERFACE("c1563", C1563)
-SLOT_INTERFACE_END
+void c128d81_iec_devices(device_slot_interface &device)
+{
+ device.option_add("c1563", C1563);
+}
diff --git a/src/mame/drivers/c64.cpp b/src/mame/drivers/c64.cpp
index cdc4824d2e7..b9004fb54a1 100644
--- a/src/mame/drivers/c64.cpp
+++ b/src/mame/drivers/c64.cpp
@@ -1242,9 +1242,10 @@ WRITE_LINE_MEMBER( c64_state::exp_reset_w )
// SLOT_INTERFACE( sx1541_iec_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( sx1541_iec_devices )
- SLOT_INTERFACE("sx1541", SX1541)
-SLOT_INTERFACE_END
+void sx1541_iec_devices(device_slot_interface &device)
+{
+ device.option_add("sx1541", SX1541);
+}
diff --git a/src/mame/drivers/calchase.cpp b/src/mame/drivers/calchase.cpp
index c670680e5b2..c56047b7688 100644
--- a/src/mame/drivers/calchase.cpp
+++ b/src/mame/drivers/calchase.cpp
@@ -705,8 +705,8 @@ MACHINE_CONFIG_START(calchase_state::calchase)
MCFG_SOUND_ADD("ldac", DAC_12BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_12BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(calchase_state::hostinv)
@@ -732,8 +732,8 @@ MACHINE_CONFIG_START(calchase_state::hostinv)
MCFG_SOUND_ADD("ldac", DAC_12BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_12BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/camplynx.cpp b/src/mame/drivers/camplynx.cpp
index ae72292761d..9503e218318 100644
--- a/src/mame/drivers/camplynx.cpp
+++ b/src/mame/drivers/camplynx.cpp
@@ -838,9 +838,10 @@ FLOPPY_FORMATS_MEMBER( camplynx_state::camplynx_floppy_formats )
FLOPPY_CAMPLYNX_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( camplynx_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void camplynx_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
MACHINE_CONFIG_START(camplynx_state::lynx_common)
MCFG_PALETTE_ADD_3BIT_RGB("palette")
@@ -849,7 +850,7 @@ MACHINE_CONFIG_START(camplynx_state::lynx_common)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.375) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.02)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/capbowl.cpp b/src/mame/drivers/capbowl.cpp
index fa7c3a639e9..bd3cb473447 100644
--- a/src/mame/drivers/capbowl.cpp
+++ b/src/mame/drivers/capbowl.cpp
@@ -362,7 +362,7 @@ MACHINE_CONFIG_START(capbowl_state::capbowl)
MCFG_SOUND_ADD("dac", DAC0832, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/cc40.cpp b/src/mame/drivers/cc40.cpp
index bcdf399b15b..b57a96815db 100644
--- a/src/mame/drivers/cc40.cpp
+++ b/src/mame/drivers/cc40.cpp
@@ -610,7 +610,7 @@ MACHINE_CONFIG_START(cc40_state::cc40)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
/* cartridge */
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "cc40_cart")
diff --git a/src/mame/drivers/cchasm.cpp b/src/mame/drivers/cchasm.cpp
index da6f86d35f0..425c00ebace 100644
--- a/src/mame/drivers/cchasm.cpp
+++ b/src/mame/drivers/cchasm.cpp
@@ -190,8 +190,8 @@ MACHINE_CONFIG_START(cchasm_state::cchasm)
MCFG_SOUND_ADD("dac1", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_SOUND_ADD("dac2", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT)
/* 6840 PTM */
MCFG_DEVICE_ADD("6840ptm", PTM6840, CCHASM_68K_CLOCK/10)
diff --git a/src/mame/drivers/ccs2810.cpp b/src/mame/drivers/ccs2810.cpp
index 55e66b067a4..97fc1fb232a 100644
--- a/src/mame/drivers/ccs2810.cpp
+++ b/src/mame/drivers/ccs2810.cpp
@@ -896,11 +896,12 @@ DRIVER_INIT_MEMBER( ccs_state, ccs2422 )
//
//*************************************
-static SLOT_INTERFACE_START( ccs_floppies )
- SLOT_INTERFACE( "8sssd", FLOPPY_8_SSSD )
-SLOT_INTERFACE_END
+static void ccs_floppies(device_slot_interface &device)
+{
+ device.option_add("8sssd", FLOPPY_8_SSSD);
+}
- //SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
+ //device.option_add("525dd", FLOPPY_525_DD);
MACHINE_CONFIG_START(ccs_state::ccs2810)
/* basic machine hardware */
diff --git a/src/mame/drivers/ccs300.cpp b/src/mame/drivers/ccs300.cpp
index a3e5dcb5ed3..56b80845024 100644
--- a/src/mame/drivers/ccs300.cpp
+++ b/src/mame/drivers/ccs300.cpp
@@ -139,7 +139,7 @@ MACHINE_CONFIG_START(ccs300_state::ccs300)
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio", z80sio_device, rxa_w))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("sio", z80sio_device, ctsa_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal) // must be exactly here
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) // must be exactly here
MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL(4'000'000))
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
diff --git a/src/mame/drivers/champbas.cpp b/src/mame/drivers/champbas.cpp
index 4aac84a91b2..70c56d19ded 100644
--- a/src/mame/drivers/champbas.cpp
+++ b/src/mame/drivers/champbas.cpp
@@ -614,7 +614,7 @@ MACHINE_CONFIG_START(champbas_state::champbas)
MCFG_SOUND_ADD("dac", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.7) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(champbas_state::champbasj)
@@ -736,8 +736,8 @@ MACHINE_CONFIG_START(champbas_state::exctsccr)
MCFG_SOUND_ADD("dac1", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.3) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.3) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/* Bootleg running on a modified Champion Baseball board */
@@ -791,7 +791,7 @@ MACHINE_CONFIG_START(champbas_state::exctsccrb)
MCFG_SOUND_ADD("dac", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.7) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/channelf.cpp b/src/mame/drivers/channelf.cpp
index 374d61460dc..8f7c6daa3e1 100644
--- a/src/mame/drivers/channelf.cpp
+++ b/src/mame/drivers/channelf.cpp
@@ -191,14 +191,15 @@ void channelf_state::machine_start()
}
}
-static SLOT_INTERFACE_START(cf_cart)
- SLOT_INTERFACE_INTERNAL("std", CHANF_ROM_STD)
- SLOT_INTERFACE_INTERNAL("maze", CHANF_ROM_MAZE)
- SLOT_INTERFACE_INTERNAL("hangman", CHANF_ROM_HANGMAN)
- SLOT_INTERFACE_INTERNAL("chess", CHANF_ROM_CHESS)
- SLOT_INTERFACE_INTERNAL("multi_old",CHANF_ROM_MULTI_OLD)
- SLOT_INTERFACE_INTERNAL("multi", CHANF_ROM_MULTI_FINAL)
-SLOT_INTERFACE_END
+static void cf_cart(device_slot_interface &device)
+{
+ device.option_add_internal("std", CHANF_ROM_STD);
+ device.option_add_internal("maze", CHANF_ROM_MAZE);
+ device.option_add_internal("hangman", CHANF_ROM_HANGMAN);
+ device.option_add_internal("chess", CHANF_ROM_CHESS);
+ device.option_add_internal("multi_old",CHANF_ROM_MULTI_OLD);
+ device.option_add_internal("multi", CHANF_ROM_MULTI_FINAL);
+}
MACHINE_CONFIG_START(channelf_state::channelf_cart)
diff --git a/src/mame/drivers/cheekyms.cpp b/src/mame/drivers/cheekyms.cpp
index a9e1197878a..517cd3e5d41 100644
--- a/src/mame/drivers/cheekyms.cpp
+++ b/src/mame/drivers/cheekyms.cpp
@@ -157,14 +157,14 @@ MACHINE_CONFIG_START(cheekyms_state::cheekyms)
MCFG_SOUND_ADD("dac6", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_SOUND_ADD("dac7", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac0", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac3", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac4", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac5", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac6", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac7", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac0", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac4", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac5", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac6", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac7", 1.0, DAC_VREF_POS_INPUT)
#endif
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/chihiro.cpp b/src/mame/drivers/chihiro.cpp
index aaafc7e2b88..3e5b20ea55d 100644
--- a/src/mame/drivers/chihiro.cpp
+++ b/src/mame/drivers/chihiro.cpp
@@ -1827,15 +1827,17 @@ const tiny_rom_entry *sega_network_board::device_rom_region() const
return ROM_NAME(seganetw);
}
-static SLOT_INTERFACE_START(ide_baseboard)
- SLOT_INTERFACE("bb", IDE_BASEBOARD)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START(usb_baseboard)
- SLOT_INTERFACE("an2131qc", OHCI_HLEAN2131QC)
- SLOT_INTERFACE("an2131sc", OHCI_HLEAN2131SC)
- SLOT_INTERFACE("xbox_controller", OHCI_GAME_CONTROLLER)
-SLOT_INTERFACE_END
+static void ide_baseboard(device_slot_interface &device)
+{
+ device.option_add("bb", IDE_BASEBOARD);
+}
+
+void usb_baseboard(device_slot_interface &device)
+{
+ device.option_add("an2131qc", OHCI_HLEAN2131QC);
+ device.option_add("an2131sc", OHCI_HLEAN2131SC);
+ device.option_add("xbox_controller", OHCI_GAME_CONTROLLER);
+}
void chihiro_state::an2131qc_configuration(device_t *device)
{
diff --git a/src/mame/drivers/chsuper.cpp b/src/mame/drivers/chsuper.cpp
index 3bcdd3e55cf..b14df442ee9 100644
--- a/src/mame/drivers/chsuper.cpp
+++ b/src/mame/drivers/chsuper.cpp
@@ -387,7 +387,7 @@ MACHINE_CONFIG_START(chsuper_state::chsuper)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/circusc.cpp b/src/mame/drivers/circusc.cpp
index 81c2a1c707a..5bd3d21549e 100644
--- a/src/mame/drivers/circusc.cpp
+++ b/src/mame/drivers/circusc.cpp
@@ -386,14 +386,14 @@ MACHINE_CONFIG_START(circusc_state::circusc)
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
MCFG_SOUND_ADD("sn1", SN76496, XTAL(14'318'181)/8)
- MCFG_SOUND_ROUTE_EX(0, "fltdisc", 1.0, 0)
+ MCFG_SOUND_ROUTE(0, "fltdisc", 1.0, 0)
MCFG_SOUND_ADD("sn2", SN76496, XTAL(14'318'181)/8)
- MCFG_SOUND_ROUTE_EX(0, "fltdisc", 1.0, 1)
+ MCFG_SOUND_ROUTE(0, "fltdisc", 1.0, 1)
- MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE_EX(0, "fltdisc", 1.0, 2) // ls374.7g + r44+r45+r47+r48+r50+r56+r57+r58+r59 (20k) + r46+r49+r51+r52+r53+r54+r55 (10k) + upc324.3h
+ MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(0, "fltdisc", 1.0, 2) // ls374.7g + r44+r45+r47+r48+r50+r56+r57+r58+r59 (20k) + r46+r49+r51+r52+r53+r54+r55 (10k) + upc324.3h
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_ADD("fltdisc", DISCRETE, 0)
diff --git a/src/mame/drivers/ckz80.cpp b/src/mame/drivers/ckz80.cpp
index 1943b1978c2..f75d65bc98a 100644
--- a/src/mame/drivers/ckz80.cpp
+++ b/src/mame/drivers/ckz80.cpp
@@ -453,7 +453,7 @@ MACHINE_CONFIG_START(ckz80_state::master)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_2BIT_BINARY_WEIGHTED_ONES_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/cmi.cpp b/src/mame/drivers/cmi.cpp
index a8bcfe9eae7..dbf2f14acfc 100644
--- a/src/mame/drivers/cmi.cpp
+++ b/src/mame/drivers/cmi.cpp
@@ -2166,10 +2166,11 @@ WRITE_LINE_MEMBER( cmi_state::cmi_iix_vblank )
}
}
-static SLOT_INTERFACE_START( cmi2x_floppies )
- SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD )
- SLOT_INTERFACE( "8dssd", FLOPPY_8_DSSD )
-SLOT_INTERFACE_END
+static void cmi2x_floppies(device_slot_interface &device)
+{
+ device.option_add("8dsdd", FLOPPY_8_DSDD);
+ device.option_add("8dssd", FLOPPY_8_DSSD);
+}
MACHINE_CONFIG_START(cmi_state::cmi2x)
MCFG_CPU_ADD("maincpu1", MC6809E, Q209_CPU_CLOCK)
@@ -2196,11 +2197,11 @@ MACHINE_CONFIG_START(cmi_state::cmi2x)
MCFG_CPU_PROGRAM_MAP(cmi07cpu_map)
/* alpha-numeric display */
- MCFG_DEVICE_ADD("dp1", DL1416T, 0)
+ MCFG_DEVICE_ADD("dp1", DL1416T, u32(0))
MCFG_DL1416_UPDATE_HANDLER(WRITE16(cmi_state, cmi_iix_update_dp<0>))
- MCFG_DEVICE_ADD("dp2", DL1416T, 0)
+ MCFG_DEVICE_ADD("dp2", DL1416T, u32(0))
MCFG_DL1416_UPDATE_HANDLER(WRITE16(cmi_state, cmi_iix_update_dp<1>))
- MCFG_DEVICE_ADD("dp3", DL1416T, 0)
+ MCFG_DEVICE_ADD("dp3", DL1416T, u32(0))
MCFG_DL1416_UPDATE_HANDLER(WRITE16(cmi_state, cmi_iix_update_dp<2>))
/* video hardware */
diff --git a/src/mame/drivers/cntsteer.cpp b/src/mame/drivers/cntsteer.cpp
index 70dff7fd6ea..4c428204e55 100644
--- a/src/mame/drivers/cntsteer.cpp
+++ b/src/mame/drivers/cntsteer.cpp
@@ -969,7 +969,7 @@ MACHINE_CONFIG_START(cntsteer_state::cntsteer)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(cntsteer_state::zerotrgt)
diff --git a/src/mame/drivers/coco12.cpp b/src/mame/drivers/coco12.cpp
index 6ec6fc3c0f4..07ab3150fb1 100644
--- a/src/mame/drivers/coco12.cpp
+++ b/src/mame/drivers/coco12.cpp
@@ -350,30 +350,32 @@ INPUT_PORTS_END
// SLOT_INTERFACE_START(coco_cart)
//-------------------------------------------------
-SLOT_INTERFACE_START( coco_cart )
- SLOT_INTERFACE("fdc", COCO_FDC)
- SLOT_INTERFACE("fdcv11", COCO_FDC_V11)
- SLOT_INTERFACE("cc2hdb1", COCO2_HDB1)
- SLOT_INTERFACE("cc3hdb1", COCO3_HDB1)
- SLOT_INTERFACE("cp450_fdc", CP450_FDC)
- SLOT_INTERFACE("cd6809_fdc", CD6809_FDC)
- SLOT_INTERFACE("rs232", COCO_RS232)
- SLOT_INTERFACE("dcmodem", COCO_DCMODEM)
- SLOT_INTERFACE("orch90", COCO_ORCH90)
- SLOT_INTERFACE("ssc", COCO_SSC) MCFG_SLOT_OPTION_CLOCK("ssc", DERIVED_CLOCK(1, 1))
- SLOT_INTERFACE("games_master", COCO_PAK_GMC)
- SLOT_INTERFACE("banked_16k", COCO_PAK_BANKED)
- SLOT_INTERFACE("pak", COCO_PAK)
- SLOT_INTERFACE("multi", COCO_MULTIPAK) MCFG_SLOT_OPTION_CLOCK("multi", DERIVED_CLOCK(1, 1))
-SLOT_INTERFACE_END
+void coco_cart(device_slot_interface &device)
+{
+ device.option_add("fdc", COCO_FDC);
+ device.option_add("fdcv11", COCO_FDC_V11);
+ device.option_add("cc2hdb1", COCO2_HDB1);
+ device.option_add("cc3hdb1", COCO3_HDB1);
+ device.option_add("cp450_fdc", CP450_FDC);
+ device.option_add("cd6809_fdc", CD6809_FDC);
+ device.option_add("rs232", COCO_RS232);
+ device.option_add("dcmodem", COCO_DCMODEM);
+ device.option_add("orch90", COCO_ORCH90);
+ device.option_add("ssc", COCO_SSC).clock(DERIVED_CLOCK(1, 1));
+ device.option_add("games_master", COCO_PAK_GMC);
+ device.option_add("banked_16k", COCO_PAK_BANKED);
+ device.option_add("pak", COCO_PAK);
+ device.option_add("multi", COCO_MULTIPAK).clock(DERIVED_CLOCK(1, 1));
+}
//-------------------------------------------------
// SLOT_INTERFACE_START(t4426_cart)
//-------------------------------------------------
-SLOT_INTERFACE_START( t4426_cart )
- SLOT_INTERFACE("t4426", COCO_T4426)
-SLOT_INTERFACE_END
+void t4426_cart(device_slot_interface &device)
+{
+ device.option_add("t4426", COCO_T4426);
+}
//-------------------------------------------------
// MACHINE_CONFIG_START( coco_sound )
@@ -385,7 +387,7 @@ MACHINE_CONFIG_START(coco_state::coco_sound)
// 6-bit D/A: R10-15 = 10K, 20K, 40.2K, 80.6K, 162K, 324K (according to parts list); output also controls joysticks
MCFG_SOUND_ADD("dac", DAC_6BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.125)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
// Single-bit sound: R22 = 10K
MCFG_SOUND_ADD("sbs", DAC_1BIT, 0)
@@ -471,7 +473,7 @@ MACHINE_CONFIG_START(coco12_state::coco)
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, "printer")
MCFG_RS232_DCD_HANDLER(DEVWRITELINE(PIA1_TAG, pia6821_device, ca1_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("printer", printer)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("printer", printer)
MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, coco_cart, "pak")
MCFG_COCO_CARTRIDGE_CART_CB(WRITELINE(coco_state, cart_w))
diff --git a/src/mame/drivers/coco3.cpp b/src/mame/drivers/coco3.cpp
index a45d61890f4..97b91870452 100644
--- a/src/mame/drivers/coco3.cpp
+++ b/src/mame/drivers/coco3.cpp
@@ -279,7 +279,7 @@ MACHINE_CONFIG_START(coco3_state::coco3)
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, "printer")
MCFG_RS232_DCD_HANDLER(DEVWRITELINE(PIA1_TAG, pia6821_device, ca1_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("printer", printer)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("printer", printer)
MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, coco_cart, "fdcv11")
MCFG_COCO_CARTRIDGE_CART_CB(WRITELINE(coco_state, cart_w))
diff --git a/src/mame/drivers/cocoloco.cpp b/src/mame/drivers/cocoloco.cpp
index 5a028791fa7..9d897865f6c 100644
--- a/src/mame/drivers/cocoloco.cpp
+++ b/src/mame/drivers/cocoloco.cpp
@@ -543,9 +543,9 @@ MACHINE_CONFIG_START(cocoloco_state::cocoloco)
MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_AY8910_OUTPUT_TYPE(AY8910_RESISTOR_OUTPUT)
- MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "snd_nl", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "snd_nl", 1.0, 2)
+ MCFG_SOUND_ROUTE(0, "snd_nl", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "snd_nl", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "snd_nl", 1.0, 2)
/* NETLIST configuration using internal AY8910 resistor values */
diff --git a/src/mame/drivers/concept.cpp b/src/mame/drivers/concept.cpp
index 57eb691ca98..ad7b471ff3e 100644
--- a/src/mame/drivers/concept.cpp
+++ b/src/mame/drivers/concept.cpp
@@ -201,11 +201,12 @@ INPUT_PORTS_END
/* init with simple, fixed, B/W palette */
/* Is the palette black on white or white on black??? */
-SLOT_INTERFACE_START( concept_a2_cards )
- SLOT_INTERFACE("fchdd", A2BUS_CORVUS) /* Corvus flat-cable HDD interface (see notes in a2corvus.c) */
- SLOT_INTERFACE("fdc01", A2BUS_CORVFDC01) /* Corvus WD1793 floppy controller */
- SLOT_INTERFACE("fdc02", A2BUS_CORVFDC02) /* Corvus NEC765 buffered floppy controller */
-SLOT_INTERFACE_END
+void concept_a2_cards(device_slot_interface &device)
+{
+ device.option_add("fchdd", A2BUS_CORVUS); // Corvus flat-cable HDD interface (see notes in a2corvus.c)
+ device.option_add("fdc01", A2BUS_CORVFDC01); // Corvus WD1793 floppy controller
+ device.option_add("fdc02", A2BUS_CORVFDC02); // Corvus NEC765 buffered floppy controller
+}
diff --git a/src/mame/drivers/coolpool.cpp b/src/mame/drivers/coolpool.cpp
index a0f695cf5a3..db4bcd1ff31 100644
--- a/src/mame/drivers/coolpool.cpp
+++ b/src/mame/drivers/coolpool.cpp
@@ -749,7 +749,7 @@ MACHINE_CONFIG_START(coolpool_state::amerdart)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_12BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -796,7 +796,7 @@ MACHINE_CONFIG_START(coolpool_state::coolpool)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_12BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/cop01.cpp b/src/mame/drivers/cop01.cpp
index 45f2a7a2935..7fe9c133037 100644
--- a/src/mame/drivers/cop01.cpp
+++ b/src/mame/drivers/cop01.cpp
@@ -528,7 +528,7 @@ MACHINE_CONFIG_START(mightguy_state::mightguy)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) // unknown DAC
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/cosmic.cpp b/src/mame/drivers/cosmic.cpp
index afbb3894eb4..65401277dd5 100644
--- a/src/mame/drivers/cosmic.cpp
+++ b/src/mame/drivers/cosmic.cpp
@@ -1060,7 +1060,7 @@ MACHINE_CONFIG_START(cosmic_state::panic)
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
@@ -1122,7 +1122,7 @@ MACHINE_CONFIG_START(cosmic_state::cosmicg)
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // NE556
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
// Other DACs include 3-bit binary-weighted (100K/50K/25K) DAC combined with another NE556 for attack march
MACHINE_CONFIG_END
@@ -1148,7 +1148,7 @@ MACHINE_CONFIG_START(cosmic_state::magspot)
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
@@ -1184,7 +1184,7 @@ MACHINE_CONFIG_START(cosmic_state::nomnlnd)
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/craft.cpp b/src/mame/drivers/craft.cpp
index ec81337ac0f..7027718c20c 100644
--- a/src/mame/drivers/craft.cpp
+++ b/src/mame/drivers/craft.cpp
@@ -266,7 +266,7 @@ MACHINE_CONFIG_START(craft_state::craft)
MCFG_SPEAKER_STANDARD_MONO("avr8")
MCFG_SOUND_ADD("dac", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(0, "avr8", 0.25) // pd1/pd2/pd4/pd5/pd6/pd7 + 2k(x7) + 1k(x5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
ROM_START( craft )
diff --git a/src/mame/drivers/crvision.cpp b/src/mame/drivers/crvision.cpp
index 47dff8631d9..400e5a0cbed 100644
--- a/src/mame/drivers/crvision.cpp
+++ b/src/mame/drivers/crvision.cpp
@@ -722,15 +722,16 @@ void laser2001_state::machine_start()
MACHINE DRIVERS
***************************************************************************/
-static SLOT_INTERFACE_START(crvision_cart)
- SLOT_INTERFACE_INTERNAL("crv_rom4k", CRVISION_ROM_4K)
- SLOT_INTERFACE_INTERNAL("crv_rom6k", CRVISION_ROM_6K)
- SLOT_INTERFACE_INTERNAL("crv_rom8k", CRVISION_ROM_8K)
- SLOT_INTERFACE_INTERNAL("crv_rom10k", CRVISION_ROM_10K)
- SLOT_INTERFACE_INTERNAL("crv_rom12k", CRVISION_ROM_12K)
- SLOT_INTERFACE_INTERNAL("crv_rom16k", CRVISION_ROM_16K)
- SLOT_INTERFACE_INTERNAL("crv_rom18k", CRVISION_ROM_18K)
-SLOT_INTERFACE_END
+static void crvision_cart(device_slot_interface &device)
+{
+ device.option_add_internal("crv_rom4k", CRVISION_ROM_4K);
+ device.option_add_internal("crv_rom6k", CRVISION_ROM_6K);
+ device.option_add_internal("crv_rom8k", CRVISION_ROM_8K);
+ device.option_add_internal("crv_rom10k", CRVISION_ROM_10K);
+ device.option_add_internal("crv_rom12k", CRVISION_ROM_12K);
+ device.option_add_internal("crv_rom16k", CRVISION_ROM_16K);
+ device.option_add_internal("crv_rom18k", CRVISION_ROM_18K);
+}
/*-------------------------------------------------
MACHINE_CONFIG_START( creativision )
diff --git a/src/mame/drivers/cubeqst.cpp b/src/mame/drivers/cubeqst.cpp
index a6b2d534e90..f16603fff24 100644
--- a/src/mame/drivers/cubeqst.cpp
+++ b/src/mame/drivers/cubeqst.cpp
@@ -576,22 +576,22 @@ MACHINE_CONFIG_START(cubeqst_state::cubeqst)
MCFG_SOUND_ADD("rdac7", AD7521, 0) MCFG_SOUND_ROUTE(0, "rspeaker", 0.125) // ad7521jn.2d (59) + cd4051be.1d (24) + 1500pf.c15 (34) + tl074cn.1b (53) + r10k.rn1 (30)
MCFG_SOUND_ADD("ldac7", AD7521, 0) MCFG_SOUND_ROUTE(0, "lspeaker", 0.125) // ad7521jn.2d (59) + cd4051be.3d (24) + 1500pf.c6 (34) + tl074cn.3b (53) + r10k.rn3 (30)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "rdac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac0", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "ldac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac0", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "ldac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac2", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "ldac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac2", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac3", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "ldac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac3", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac4", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "ldac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac4", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac5", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "ldac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac5", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac6", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "ldac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac6", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac7", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "ldac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac7", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac0", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac0", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac3", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac3", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac4", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac4", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac5", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac5", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac6", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac6", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac7", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac7", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/cvs.cpp b/src/mame/drivers/cvs.cpp
index 37b821f7618..eb8f3dfaa0b 100644
--- a/src/mame/drivers/cvs.cpp
+++ b/src/mame/drivers/cvs.cpp
@@ -1023,9 +1023,9 @@ MACHINE_CONFIG_START(cvs_state::cvs)
MCFG_SOUND_ADD("dac2", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("dac3", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac3", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_ADD("tms", TMS5100, XTAL(640'000))
MCFG_TMS5110_DATA_CB(READLINE(cvs_state, speech_rom_read_bit))
diff --git a/src/mame/drivers/cxgz80.cpp b/src/mame/drivers/cxgz80.cpp
index 7fc17cf9435..c4865d8b3c8 100644
--- a/src/mame/drivers/cxgz80.cpp
+++ b/src/mame/drivers/cxgz80.cpp
@@ -413,7 +413,7 @@ MACHINE_CONFIG_START(cxgz80_state::ch2001)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/cyberbal.cpp b/src/mame/drivers/cyberbal.cpp
index 2013f79eabe..612dfa83e17 100644
--- a/src/mame/drivers/cyberbal.cpp
+++ b/src/mame/drivers/cyberbal.cpp
@@ -463,8 +463,8 @@ MACHINE_CONFIG_START(cyberbal_state::cyberbal)
MCFG_SOUND_ADD("rdac", AM6012, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // AM6012.6j
MCFG_SOUND_ADD("ldac", AM6012, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // AM6012.6j
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/cybiko.cpp b/src/mame/drivers/cybiko.cpp
index b6ef268fd2c..499a302cf62 100644
--- a/src/mame/drivers/cybiko.cpp
+++ b/src/mame/drivers/cybiko.cpp
@@ -429,9 +429,9 @@ MACHINE_CONFIG_START(cybiko_state::cybikov1)
/* serial debug port */
MCFG_RS232_PORT_ADD ("debug_serial", default_rs232_devices, nullptr)
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("null_modem", debug_serial)
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", debug_serial)
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("pty", debug_serial)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("null_modem", debug_serial)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", debug_serial)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("pty", debug_serial)
MCFG_DEVICE_MODIFY("debug_serial")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("maincpu:sci2", h8_sci_device, rx_w))
diff --git a/src/mame/drivers/czk80.cpp b/src/mame/drivers/czk80.cpp
index 6d4572cc9d5..033550005e8 100644
--- a/src/mame/drivers/czk80.cpp
+++ b/src/mame/drivers/czk80.cpp
@@ -183,9 +183,10 @@ DRIVER_INIT_MEMBER( czk80_state, czk80 )
membank("bankw1")->configure_entry(0, &main[0xe000]);
}
-static SLOT_INTERFACE_START( czk80_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void czk80_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
void czk80_state::kbd_put(u8 data)
{
diff --git a/src/mame/drivers/dectalk.cpp b/src/mame/drivers/dectalk.cpp
index 6339b5f8f11..dcc5fcfb179 100644
--- a/src/mame/drivers/dectalk.cpp
+++ b/src/mame/drivers/dectalk.cpp
@@ -904,7 +904,7 @@ MACHINE_CONFIG_START(dectalk_state::dectalk)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", AD7541, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.9) // ad7541.e107 (E88 10KHz OSC, handled by timer)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
/* Y2 is a 3.579545 MHz xtal for the dtmf decoder chip */
diff --git a/src/mame/drivers/dgn_beta.cpp b/src/mame/drivers/dgn_beta.cpp
index 620f5212dcb..e07012ac648 100644
--- a/src/mame/drivers/dgn_beta.cpp
+++ b/src/mame/drivers/dgn_beta.cpp
@@ -314,9 +314,10 @@ FLOPPY_FORMATS_MEMBER(dgn_beta_state::floppy_formats )
FLOPPY_DMK_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( dgnbeta_floppies )
- SLOT_INTERFACE("dd", FLOPPY_35_DD)
-SLOT_INTERFACE_END
+static void dgnbeta_floppies(device_slot_interface &device)
+{
+ device.option_add("dd", FLOPPY_35_DD);
+}
MACHINE_CONFIG_START(dgn_beta_state::dgnbeta)
/* basic machine hardware */
diff --git a/src/mame/drivers/digel804.cpp b/src/mame/drivers/digel804.cpp
index b937342f6ec..b60b53d156e 100644
--- a/src/mame/drivers/digel804.cpp
+++ b/src/mame/drivers/digel804.cpp
@@ -661,8 +661,8 @@ MACHINE_CONFIG_START(digel804_state::digel804)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("acia", mos6551_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("acia", mos6551_device, write_dsr))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("acia", mos6551_device, write_cts))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("null_modem", digel804_rs232_defaults)
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", digel804_rs232_defaults)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("null_modem", digel804_rs232_defaults)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", digel804_rs232_defaults)
MCFG_RAM_ADD(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("256K")
diff --git a/src/mame/drivers/dim68k.cpp b/src/mame/drivers/dim68k.cpp
index 45604e6ce5a..36b99503358 100644
--- a/src/mame/drivers/dim68k.cpp
+++ b/src/mame/drivers/dim68k.cpp
@@ -297,9 +297,10 @@ static GFXDECODE_START( dim68k )
GFXDECODE_ENTRY( "chargen", 0x0000, dim68k_charlayout, 0, 1 )
GFXDECODE_END
-static SLOT_INTERFACE_START( dim68k_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
-SLOT_INTERFACE_END
+static void dim68k_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+}
void dim68k_state::kbd_put(u8 data)
{
diff --git a/src/mame/drivers/dmax8000.cpp b/src/mame/drivers/dmax8000.cpp
index be4b2fbef44..bd9fc5bd8b1 100644
--- a/src/mame/drivers/dmax8000.cpp
+++ b/src/mame/drivers/dmax8000.cpp
@@ -143,9 +143,10 @@ DRIVER_INIT_MEMBER( dmax8000_state, dmax8000 )
membank("bankw0")->configure_entry(0, &main[0x0000]);
}
-static SLOT_INTERFACE_START( floppies )
- SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD )
-SLOT_INTERFACE_END
+static void floppies(device_slot_interface &device)
+{
+ device.option_add("8dsdd", FLOPPY_8_DSDD);
+}
MACHINE_CONFIG_START(dmax8000_state::dmax8000)
diff --git a/src/mame/drivers/dmv.cpp b/src/mame/drivers/dmv.cpp
index 20df4ae2852..332cf37346e 100644
--- a/src/mame/drivers/dmv.cpp
+++ b/src/mame/drivers/dmv.cpp
@@ -411,10 +411,11 @@ QUICKLOAD_LOAD_MEMBER( dmv_state, dmv )
return image_init_result::PASS;
}
-static SLOT_INTERFACE_START( dmv_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void dmv_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
void dmv_state::ifsel_r(address_space &space, int ifsel, offs_t offset, uint8_t &data)
@@ -727,38 +728,43 @@ FLOPPY_FORMATS_MEMBER( dmv_state::floppy_formats )
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START(dmv_slot1)
- SLOT_INTERFACE("k200", DMV_K200) // K200 64K RAM expansion
- SLOT_INTERFACE("k202", DMV_K202) // K202 192K RAM expansion
- SLOT_INTERFACE("k208", DMV_K208) // K208 448K RAM expansion
-SLOT_INTERFACE_END
+static void dmv_slot1(device_slot_interface &device)
+{
+ device.option_add("k200", DMV_K200); // K200 64K RAM expansion
+ device.option_add("k202", DMV_K202); // K202 192K RAM expansion
+ device.option_add("k208", DMV_K208); // K208 448K RAM expansion
+}
-static SLOT_INTERFACE_START(dmv_slot2_6)
- SLOT_INTERFACE("k210", DMV_K210) // K210 Centronics
- SLOT_INTERFACE("k211", DMV_K211) // K211 RS-232 Communications Interface
- SLOT_INTERFACE("k212", DMV_K212) // K212 RS-232 Printer Interface
- SLOT_INTERFACE("k213", DMV_K213) // K213 RS-232 Plotter Interface
- SLOT_INTERFACE("k233", DMV_K233) // K233 16K Shared RAM
- SLOT_INTERFACE("k801", DMV_K801) // K801 RS-232 Switchable Interface
- SLOT_INTERFACE("k803", DMV_K803) // K803 RTC module
- SLOT_INTERFACE("k806", DMV_K806) // K806 Mouse module
-SLOT_INTERFACE_END
+static void dmv_slot2_6(device_slot_interface &device)
+{
+ device.option_add("k210", DMV_K210); // K210 Centronics
+ device.option_add("k211", DMV_K211); // K211 RS-232 Communications Interface
+ device.option_add("k212", DMV_K212); // K212 RS-232 Printer Interface
+ device.option_add("k213", DMV_K213); // K213 RS-232 Plotter Interface
+ device.option_add("k233", DMV_K233); // K233 16K Shared RAM
+ device.option_add("k801", DMV_K801); // K801 RS-232 Switchable Interface
+ device.option_add("k803", DMV_K803); // K803 RTC module
+ device.option_add("k806", DMV_K806); // K806 Mouse module
+}
-static SLOT_INTERFACE_START(dmv_slot7)
- SLOT_INTERFACE("k220", DMV_K220) // K220 Diagnostic Module
- SLOT_INTERFACE("k231", DMV_K231) // K231 External 8088 module without interrupt controller
- SLOT_INTERFACE("k234", DMV_K234) // K234 External 68008 module
-SLOT_INTERFACE_END
+static void dmv_slot7(device_slot_interface &device)
+{
+ device.option_add("k220", DMV_K220); // K220 Diagnostic Module
+ device.option_add("k231", DMV_K231); // K231 External 8088 module without interrupt controller
+ device.option_add("k234", DMV_K234); // K234 External 68008 module
+}
-static SLOT_INTERFACE_START(dmv_slot2a)
+static void dmv_slot2a(device_slot_interface &device)
+{
-SLOT_INTERFACE_END
+}
-static SLOT_INTERFACE_START(dmv_slot7a)
- SLOT_INTERFACE("k230", DMV_K230) // K230 Internal 8088 module without interrupt controller
- SLOT_INTERFACE("k235", DMV_K235) // K235 Internal 8088 module with interrupt controller
-SLOT_INTERFACE_END
+static void dmv_slot7a(device_slot_interface &device)
+{
+ device.option_add("k230", DMV_K230); // K230 Internal 8088 module without interrupt controller
+ device.option_add("k235", DMV_K235); // K235 Internal 8088 module with interrupt controller
+}
MACHINE_CONFIG_START(dmv_state::dmv)
/* basic machine hardware */
diff --git a/src/mame/drivers/dps1.cpp b/src/mame/drivers/dps1.cpp
index 8ee696b9ef5..d276eed34bb 100644
--- a/src/mame/drivers/dps1.cpp
+++ b/src/mame/drivers/dps1.cpp
@@ -188,9 +188,10 @@ DRIVER_INIT_MEMBER( dps1_state, dps1 )
static INPUT_PORTS_START( dps1 )
INPUT_PORTS_END
-static SLOT_INTERFACE_START( floppies )
- SLOT_INTERFACE( "floppy0", FLOPPY_8_DSDD )
-SLOT_INTERFACE_END
+static void floppies(device_slot_interface &device)
+{
+ device.option_add("floppy0", FLOPPY_8_DSDD);
+}
MACHINE_CONFIG_START(dps1_state::dps1)
// basic machine hardware
diff --git a/src/mame/drivers/dragon.cpp b/src/mame/drivers/dragon.cpp
index eefef179f4a..f4339a8fb82 100644
--- a/src/mame/drivers/dragon.cpp
+++ b/src/mame/drivers/dragon.cpp
@@ -164,16 +164,17 @@ MC6847_GET_CHARROM_MEMBER( dragon200e_state::char_rom_r )
return m_char_rom->base()[(ch * 12 + line) & 0xfff];
}
-SLOT_INTERFACE_START( dragon_cart )
- SLOT_INTERFACE("dragon_fdc", DRAGON_FDC)
- SLOT_INTERFACE("premier_fdc", PREMIER_FDC)
- SLOT_INTERFACE("sdtandy_fdc", SDTANDY_FDC)
- SLOT_INTERFACE("jcbsnd", DRAGON_JCBSND) MCFG_SLOT_OPTION_CLOCK("jcbsnd", DERIVED_CLOCK(1, 1))
- SLOT_INTERFACE("ssc", COCO_SSC) MCFG_SLOT_OPTION_CLOCK("ssc", DERIVED_CLOCK(1, 1))
- SLOT_INTERFACE("orch90", COCO_ORCH90)
- SLOT_INTERFACE("gmc", COCO_PAK_GMC)
- SLOT_INTERFACE("pak", COCO_PAK)
-SLOT_INTERFACE_END
+void dragon_cart(device_slot_interface &device)
+{
+ device.option_add("dragon_fdc", DRAGON_FDC);
+ device.option_add("premier_fdc", PREMIER_FDC);
+ device.option_add("sdtandy_fdc", SDTANDY_FDC);
+ device.option_add("jcbsnd", DRAGON_JCBSND).clock(DERIVED_CLOCK(1, 1));
+ device.option_add("ssc", COCO_SSC).clock(DERIVED_CLOCK(1, 1));
+ device.option_add("orch90", COCO_ORCH90);
+ device.option_add("gmc", COCO_PAK_GMC);
+ device.option_add("pak", COCO_PAK);
+}
FLOPPY_FORMATS_MEMBER( dragon_alpha_state::dragon_formats )
FLOPPY_VDK_FORMAT,
@@ -181,9 +182,10 @@ FLOPPY_FORMATS_MEMBER( dragon_alpha_state::dragon_formats )
FLOPPY_SDF_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( dragon_alpha_floppies )
- SLOT_INTERFACE("dd", FLOPPY_35_DD)
-SLOT_INTERFACE_END
+static void dragon_alpha_floppies(device_slot_interface &device)
+{
+ device.option_add("dd", FLOPPY_35_DD);
+}
MACHINE_CONFIG_START(dragon_state::dragon_base)
MCFG_DEVICE_MODIFY(":")
diff --git a/src/mame/drivers/duet16.cpp b/src/mame/drivers/duet16.cpp
index 2ba24b6bd45..cce906a933c 100644
--- a/src/mame/drivers/duet16.cpp
+++ b/src/mame/drivers/duet16.cpp
@@ -333,13 +333,15 @@ static GFXDECODE_START(duet16)
GFXDECODE_END
-static SLOT_INTERFACE_START( duet16_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void duet16_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
-SLOT_INTERFACE_START(duet16_keyboard_devices)
- SLOT_INTERFACE("keyboard", SERIAL_KEYBOARD)
-SLOT_INTERFACE_END
+void duet16_keyboard_devices(device_slot_interface &device)
+{
+ device.option_add("keyboard", SERIAL_KEYBOARD);
+}
static DEVICE_INPUT_DEFAULTS_START(keyboard)
DEVICE_INPUT_DEFAULTS( "RS232_TXBAUD", 0xff, RS232_BAUD_1200 )
@@ -396,7 +398,7 @@ MACHINE_CONFIG_START(duet16_state::duet16)
MCFG_RS232_PORT_ADD("kbd", duet16_keyboard_devices, "keyboard")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("kbusart", i8251_device, write_rxd))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("keyboard", keyboard)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("keyboard", keyboard)
MCFG_INPUT_MERGER_ANY_HIGH("kbint")
MCFG_INPUT_MERGER_OUTPUT_HANDLER(DEVWRITELINE("pic", pic8259_device, ir5_w)) // INT2
diff --git a/src/mame/drivers/einstein.cpp b/src/mame/drivers/einstein.cpp
index 5de72a14224..72a6ad4af53 100644
--- a/src/mame/drivers/einstein.cpp
+++ b/src/mame/drivers/einstein.cpp
@@ -565,14 +565,15 @@ INPUT_PORTS_END
MACHINE DRIVERS
***************************************************************************/
-static SLOT_INTERFACE_START( einstein_floppies )
- SLOT_INTERFACE("3ss", TEAC_FD_30A)
- SLOT_INTERFACE("3ds", FLOPPY_3_DSDD)
- SLOT_INTERFACE("525ssqd", FLOPPY_525_SSQD)
- SLOT_INTERFACE("525qd", FLOPPY_525_QD)
- SLOT_INTERFACE("35ssdd", FLOPPY_35_SSDD)
- SLOT_INTERFACE("35dd", FLOPPY_35_DD)
-SLOT_INTERFACE_END
+static void einstein_floppies(device_slot_interface &device)
+{
+ device.option_add("3ss", TEAC_FD_30A);
+ device.option_add("3ds", FLOPPY_3_DSDD);
+ device.option_add("525ssqd", FLOPPY_525_SSQD);
+ device.option_add("525qd", FLOPPY_525_QD);
+ device.option_add("35ssdd", FLOPPY_35_SSDD);
+ device.option_add("35dd", FLOPPY_35_DD);
+}
MACHINE_CONFIG_START(einstein_state::einstein)
/* basic machine hardware */
diff --git a/src/mame/drivers/elwro800.cpp b/src/mame/drivers/elwro800.cpp
index 53d8d84410f..7e7a27017d1 100644
--- a/src/mame/drivers/elwro800.cpp
+++ b/src/mame/drivers/elwro800.cpp
@@ -542,9 +542,10 @@ INTERRUPT_GEN_MEMBER(elwro800_state::elwro800jr_interrupt)
device.execute().set_input_line(0, HOLD_LINE);
}
-static SLOT_INTERFACE_START( elwro800jr_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
-SLOT_INTERFACE_END
+static void elwro800jr_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+}
/* F4 Character Displayer */
static const gfx_layout elwro800_charlayout =
diff --git a/src/mame/drivers/enmirage.cpp b/src/mame/drivers/enmirage.cpp
index 6377b312179..cde7563b8f5 100644
--- a/src/mame/drivers/enmirage.cpp
+++ b/src/mame/drivers/enmirage.cpp
@@ -97,9 +97,10 @@ FLOPPY_FORMATS_MEMBER( enmirage_state::floppy_formats )
FLOPPY_ESQ8IMG_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( ensoniq_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void ensoniq_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+}
WRITE_LINE_MEMBER(enmirage_state::mirage_doc_irq)
{
diff --git a/src/mame/drivers/equites.cpp b/src/mame/drivers/equites.cpp
index e5c60bbb184..a9067d5a439 100644
--- a/src/mame/drivers/equites.cpp
+++ b/src/mame/drivers/equites.cpp
@@ -1081,8 +1081,8 @@ MACHINE_CONFIG_START(equites_state::common_sound)
MCFG_SOUND_ADD("dac1", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("samples", SAMPLES, 0)
MCFG_SAMPLES_CHANNELS(3)
diff --git a/src/mame/drivers/ertictac.cpp b/src/mame/drivers/ertictac.cpp
index 03b983d33c8..661a1fc649d 100644
--- a/src/mame/drivers/ertictac.cpp
+++ b/src/mame/drivers/ertictac.cpp
@@ -247,14 +247,14 @@ MACHINE_CONFIG_START(ertictac_state::ertictac)
MCFG_SOUND_ADD("dac6", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.05) // unknown DAC
MCFG_SOUND_ADD("dac7", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.05) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac0", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac3", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac4", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac5", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac6", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac7", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac0", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac3", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac4", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac5", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac6", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac7", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
ROM_START( ertictac )
diff --git a/src/mame/drivers/esq1.cpp b/src/mame/drivers/esq1.cpp
index 2297bcb825b..d6875199e45 100644
--- a/src/mame/drivers/esq1.cpp
+++ b/src/mame/drivers/esq1.cpp
@@ -615,14 +615,14 @@ MACHINE_CONFIG_START(esq1_state::esq1)
MCFG_ES5503_IRQ_FUNC(WRITELINE(esq1_state, esq1_doc_irq))
MCFG_ES5503_ADC_FUNC(READ8(esq1_state, esq1_adc_read))
- MCFG_SOUND_ROUTE_EX(0, "filters", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "filters", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "filters", 1.0, 2)
- MCFG_SOUND_ROUTE_EX(3, "filters", 1.0, 3)
- MCFG_SOUND_ROUTE_EX(4, "filters", 1.0, 4)
- MCFG_SOUND_ROUTE_EX(5, "filters", 1.0, 5)
- MCFG_SOUND_ROUTE_EX(6, "filters", 1.0, 6)
- MCFG_SOUND_ROUTE_EX(7, "filters", 1.0, 7)
+ MCFG_SOUND_ROUTE(0, "filters", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "filters", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "filters", 1.0, 2)
+ MCFG_SOUND_ROUTE(3, "filters", 1.0, 3)
+ MCFG_SOUND_ROUTE(4, "filters", 1.0, 4)
+ MCFG_SOUND_ROUTE(5, "filters", 1.0, 5)
+ MCFG_SOUND_ROUTE(6, "filters", 1.0, 6)
+ MCFG_SOUND_ROUTE(7, "filters", 1.0, 7)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(esq1_state::sq80)
diff --git a/src/mame/drivers/esq5505.cpp b/src/mame/drivers/esq5505.cpp
index 14fe07729e6..a87ff198055 100644
--- a/src/mame/drivers/esq5505.cpp
+++ b/src/mame/drivers/esq5505.cpp
@@ -249,9 +249,10 @@ FLOPPY_FORMATS_MEMBER( esq5505_state::floppy_formats )
FLOPPY_ESQIMG_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( ensoniq_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void ensoniq_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+}
IRQ_CALLBACK_MEMBER(esq5505_state::maincpu_irq_acknowledge_callback)
{
@@ -650,14 +651,14 @@ MACHINE_CONFIG_START(esq5505_state::vfx)
MCFG_ES5505_CHANNELS(4) /* channels */
MCFG_ES5505_IRQ_CB(WRITELINE(esq5505_state, esq5505_otis_irq)) /* irq */
MCFG_ES5505_READ_PORT_CB(READ16(esq5505_state, analog_r)) /* ADC */
- MCFG_SOUND_ROUTE_EX(0, "pump", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "pump", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "pump", 1.0, 2)
- MCFG_SOUND_ROUTE_EX(3, "pump", 1.0, 3)
- MCFG_SOUND_ROUTE_EX(4, "pump", 1.0, 4)
- MCFG_SOUND_ROUTE_EX(5, "pump", 1.0, 5)
- MCFG_SOUND_ROUTE_EX(6, "pump", 1.0, 6)
- MCFG_SOUND_ROUTE_EX(7, "pump", 1.0, 7)
+ MCFG_SOUND_ROUTE(0, "pump", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "pump", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "pump", 1.0, 2)
+ MCFG_SOUND_ROUTE(3, "pump", 1.0, 3)
+ MCFG_SOUND_ROUTE(4, "pump", 1.0, 4)
+ MCFG_SOUND_ROUTE(5, "pump", 1.0, 5)
+ MCFG_SOUND_ROUTE(6, "pump", 1.0, 6)
+ MCFG_SOUND_ROUTE(7, "pump", 1.0, 7)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(esq5505_state::eps)
@@ -729,14 +730,14 @@ MACHINE_CONFIG_START(esq5505_state::vfx32)
MCFG_ES5505_CHANNELS(4) /* channels */
MCFG_ES5505_IRQ_CB(WRITELINE(esq5505_state, esq5505_otis_irq)) /* irq */
MCFG_ES5505_READ_PORT_CB(READ16(esq5505_state, analog_r)) /* ADC */
- MCFG_SOUND_ROUTE_EX(0, "pump", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "pump", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "pump", 1.0, 2)
- MCFG_SOUND_ROUTE_EX(3, "pump", 1.0, 3)
- MCFG_SOUND_ROUTE_EX(4, "pump", 1.0, 4)
- MCFG_SOUND_ROUTE_EX(5, "pump", 1.0, 5)
- MCFG_SOUND_ROUTE_EX(6, "pump", 1.0, 6)
- MCFG_SOUND_ROUTE_EX(7, "pump", 1.0, 7)
+ MCFG_SOUND_ROUTE(0, "pump", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "pump", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "pump", 1.0, 2)
+ MCFG_SOUND_ROUTE(3, "pump", 1.0, 3)
+ MCFG_SOUND_ROUTE(4, "pump", 1.0, 4)
+ MCFG_SOUND_ROUTE(5, "pump", 1.0, 5)
+ MCFG_SOUND_ROUTE(6, "pump", 1.0, 6)
+ MCFG_SOUND_ROUTE(7, "pump", 1.0, 7)
MCFG_WD1772_ADD("wd1772", 8000000)
MCFG_FLOPPY_DRIVE_ADD("wd1772:0", ensoniq_floppies, "35dd", esq5505_state::floppy_formats)
diff --git a/src/mame/drivers/esqasr.cpp b/src/mame/drivers/esqasr.cpp
index d7330256c07..80f2a5098e1 100644
--- a/src/mame/drivers/esqasr.cpp
+++ b/src/mame/drivers/esqasr.cpp
@@ -136,14 +136,14 @@ MACHINE_CONFIG_START(esqasr_state::asr)
MCFG_ES5506_CHANNELS(4) /* channels, Not verified from real hardware */
MCFG_ES5506_IRQ_CB(WRITELINE(esqasr_state, esq5506_otto_irq)) /* irq */
MCFG_ES5506_READ_PORT_CB(READ16(esqasr_state, esq5506_read_adc))
- MCFG_SOUND_ROUTE_EX(0, "pump", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "pump", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "pump", 1.0, 2)
- MCFG_SOUND_ROUTE_EX(3, "pump", 1.0, 3)
- MCFG_SOUND_ROUTE_EX(4, "pump", 1.0, 4)
- MCFG_SOUND_ROUTE_EX(5, "pump", 1.0, 5)
- MCFG_SOUND_ROUTE_EX(6, "pump", 1.0, 6)
- MCFG_SOUND_ROUTE_EX(7, "pump", 1.0, 7)
+ MCFG_SOUND_ROUTE(0, "pump", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "pump", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "pump", 1.0, 2)
+ MCFG_SOUND_ROUTE(3, "pump", 1.0, 3)
+ MCFG_SOUND_ROUTE(4, "pump", 1.0, 4)
+ MCFG_SOUND_ROUTE(5, "pump", 1.0, 5)
+ MCFG_SOUND_ROUTE(6, "pump", 1.0, 6)
+ MCFG_SOUND_ROUTE(7, "pump", 1.0, 7)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(esqasr_state::asrx)
@@ -169,14 +169,14 @@ MACHINE_CONFIG_START(esqasr_state::asrx)
MCFG_ES5506_CHANNELS(1) /* channels */
MCFG_ES5506_IRQ_CB(WRITELINE(esqasr_state, esq5506_otto_irq)) /* irq */
MCFG_ES5506_READ_PORT_CB(READ16(esqasr_state, esq5506_read_adc))
- MCFG_SOUND_ROUTE_EX(0, "pump", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "pump", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "pump", 1.0, 2)
- MCFG_SOUND_ROUTE_EX(3, "pump", 1.0, 3)
- MCFG_SOUND_ROUTE_EX(4, "pump", 1.0, 4)
- MCFG_SOUND_ROUTE_EX(5, "pump", 1.0, 5)
- MCFG_SOUND_ROUTE_EX(6, "pump", 1.0, 6)
- MCFG_SOUND_ROUTE_EX(7, "pump", 1.0, 7)
+ MCFG_SOUND_ROUTE(0, "pump", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "pump", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "pump", 1.0, 2)
+ MCFG_SOUND_ROUTE(3, "pump", 1.0, 3)
+ MCFG_SOUND_ROUTE(4, "pump", 1.0, 4)
+ MCFG_SOUND_ROUTE(5, "pump", 1.0, 5)
+ MCFG_SOUND_ROUTE(6, "pump", 1.0, 6)
+ MCFG_SOUND_ROUTE(7, "pump", 1.0, 7)
MACHINE_CONFIG_END
static INPUT_PORTS_START( asr )
diff --git a/src/mame/drivers/esqkt.cpp b/src/mame/drivers/esqkt.cpp
index 676565be99d..dc1c8e45d89 100644
--- a/src/mame/drivers/esqkt.cpp
+++ b/src/mame/drivers/esqkt.cpp
@@ -251,14 +251,14 @@ MACHINE_CONFIG_START(esqkt_state::kt)
MCFG_ES5506_CHANNELS(4) /* channels */
MCFG_ES5506_IRQ_CB(WRITELINE(esqkt_state, esq5506_otto_irq)) /* irq */
MCFG_ES5506_READ_PORT_CB(READ16(esqkt_state, esq5506_read_adc))
- MCFG_SOUND_ROUTE_EX(0, "pump", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "pump", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "pump", 1.0, 2)
- MCFG_SOUND_ROUTE_EX(3, "pump", 1.0, 3)
- MCFG_SOUND_ROUTE_EX(4, "pump", 1.0, 4)
- MCFG_SOUND_ROUTE_EX(5, "pump", 1.0, 5)
- MCFG_SOUND_ROUTE_EX(6, "pump", 1.0, 6)
- MCFG_SOUND_ROUTE_EX(7, "pump", 1.0, 7)
+ MCFG_SOUND_ROUTE(0, "pump", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "pump", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "pump", 1.0, 2)
+ MCFG_SOUND_ROUTE(3, "pump", 1.0, 3)
+ MCFG_SOUND_ROUTE(4, "pump", 1.0, 4)
+ MCFG_SOUND_ROUTE(5, "pump", 1.0, 5)
+ MCFG_SOUND_ROUTE(6, "pump", 1.0, 6)
+ MCFG_SOUND_ROUTE(7, "pump", 1.0, 7)
MCFG_SOUND_ADD("ensoniq2", ES5506, XTAL(16'000'000))
MCFG_ES5506_REGION0("waverom") /* Bank 0 */
@@ -266,14 +266,14 @@ MACHINE_CONFIG_START(esqkt_state::kt)
MCFG_ES5506_REGION2("waverom3") /* Bank 0 */
MCFG_ES5506_REGION3("waverom4") /* Bank 1 */
MCFG_ES5506_CHANNELS(4) /* channels */
- MCFG_SOUND_ROUTE_EX(0, "pump", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "pump", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "pump", 1.0, 2)
- MCFG_SOUND_ROUTE_EX(3, "pump", 1.0, 3)
- MCFG_SOUND_ROUTE_EX(4, "pump", 1.0, 4)
- MCFG_SOUND_ROUTE_EX(5, "pump", 1.0, 5)
- MCFG_SOUND_ROUTE_EX(6, "pump", 1.0, 6)
- MCFG_SOUND_ROUTE_EX(7, "pump", 1.0, 7)
+ MCFG_SOUND_ROUTE(0, "pump", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "pump", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "pump", 1.0, 2)
+ MCFG_SOUND_ROUTE(3, "pump", 1.0, 3)
+ MCFG_SOUND_ROUTE(4, "pump", 1.0, 4)
+ MCFG_SOUND_ROUTE(5, "pump", 1.0, 5)
+ MCFG_SOUND_ROUTE(6, "pump", 1.0, 6)
+ MCFG_SOUND_ROUTE(7, "pump", 1.0, 7)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/esripsys.cpp b/src/mame/drivers/esripsys.cpp
index a06378be848..b0b64bc9ecc 100644
--- a/src/mame/drivers/esripsys.cpp
+++ b/src/mame/drivers/esripsys.cpp
@@ -698,9 +698,9 @@ MACHINE_CONFIG_START(esripsys_state::esripsys)
MCFG_SOUND_ADD("dac", MC3410, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
MCFG_SOUND_ADD("dacvol", MC3408, 0) // unknown DAC
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dacvol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dacvol", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_ADD("tms5220nl", TMS5220, 640000)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
diff --git a/src/mame/drivers/et3400.cpp b/src/mame/drivers/et3400.cpp
index a50641dbbd5..a58216dcbb4 100644
--- a/src/mame/drivers/et3400.cpp
+++ b/src/mame/drivers/et3400.cpp
@@ -233,7 +233,7 @@ MACHINE_CONFIG_START(et3400_state::et3400)
MCFG_PIA_READPA_HANDLER(READ8(et3400_state, pia_ar))
MCFG_PIA_READPB_HANDLER(READ8(et3400_state, pia_br))
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_DEVICE_ADD("displatch1", LS259, 0) // IC28
MCFG_ADDRESSABLE_LATCH_PARALLEL_OUT_CB(WRITE8(et3400_state, led_w<1>))
diff --git a/src/mame/drivers/eurocom2.cpp b/src/mame/drivers/eurocom2.cpp
index 6be6bd3bfee..dee2bb5f195 100644
--- a/src/mame/drivers/eurocom2.cpp
+++ b/src/mame/drivers/eurocom2.cpp
@@ -427,10 +427,11 @@ FLOPPY_FORMATS_MEMBER( eurocom2_state::floppy_formats )
FLOPPY_PPG_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( eurocom_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
- SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD )
-SLOT_INTERFACE_END
+static void eurocom_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+ device.option_add("8dsdd", FLOPPY_8_DSDD);
+}
MACHINE_CONFIG_START(eurocom2_state::eurocom2)
MCFG_CPU_ADD("maincpu", MC6809, XTAL(10'717'200)/2) // EXTAL = CLK/2 = 5.3586 MHz; Q = E = 1.33965 MHz
diff --git a/src/mame/drivers/excali64.cpp b/src/mame/drivers/excali64.cpp
index 36e316d3387..d966475ec46 100644
--- a/src/mame/drivers/excali64.cpp
+++ b/src/mame/drivers/excali64.cpp
@@ -240,9 +240,10 @@ FLOPPY_FORMATS_MEMBER( excali64_state::floppy_formats )
FLOPPY_EXCALI64_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( excali64_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void excali64_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
// pulses from port E4 bit 5 restart the 74123. After 3.6 secs without a pulse, the motor gets turned off.
WRITE_LINE_MEMBER( excali64_state::motor_w )
diff --git a/src/mame/drivers/exp85.cpp b/src/mame/drivers/exp85.cpp
index b222d664219..5d118c0e16e 100644
--- a/src/mame/drivers/exp85.cpp
+++ b/src/mame/drivers/exp85.cpp
@@ -203,7 +203,7 @@ MACHINE_CONFIG_START(exp85_state::exp85)
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED)
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)
diff --git a/src/mame/drivers/exterm.cpp b/src/mame/drivers/exterm.cpp
index 812866d12e3..2491e0cf19a 100644
--- a/src/mame/drivers/exterm.cpp
+++ b/src/mame/drivers/exterm.cpp
@@ -442,9 +442,9 @@ MACHINE_CONFIG_START(exterm_state::exterm)
MCFG_SOUND_ADD("dac", AD7528, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // ad7528j.e2
MCFG_SOUND_ADD("dacvol", AD7528, 0) // ad7528j.e2
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dacvol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dacvol", 1.0, DAC_VREF_POS_INPUT)
MCFG_YM2151_ADD("ymsnd", 4000000)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
diff --git a/src/mame/drivers/fantland.cpp b/src/mame/drivers/fantland.cpp
index a65083d887e..08b9d841be0 100644
--- a/src/mame/drivers/fantland.cpp
+++ b/src/mame/drivers/fantland.cpp
@@ -890,7 +890,7 @@ MACHINE_CONFIG_START(fantland_state::fantland)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/fanucspmg.cpp b/src/mame/drivers/fanucspmg.cpp
index 4af42b30450..8356ea6b07f 100644
--- a/src/mame/drivers/fanucspmg.cpp
+++ b/src/mame/drivers/fanucspmg.cpp
@@ -955,9 +955,10 @@ MC6845_UPDATE_ROW( fanucspmg_state::crtc_update_row_mono )
}
}
-static SLOT_INTERFACE_START( fanuc_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void fanuc_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
FLOPPY_FORMATS_MEMBER( fanucspmg_state::floppy_formats )
FLOPPY_IMD_FORMAT
diff --git a/src/mame/drivers/fccpu20.cpp b/src/mame/drivers/fccpu20.cpp
index 07a10e8b217..81fe06f8b26 100644
--- a/src/mame/drivers/fccpu20.cpp
+++ b/src/mame/drivers/fccpu20.cpp
@@ -118,33 +118,40 @@ static INPUT_PORTS_START (cpu20)
INPUT_PORTS_END
/* Slot interfaces */
-static SLOT_INTERFACE_START(cpu20_vme_cards)
- SLOT_INTERFACE("fccpu20", VME_FCCPU20)
-SLOT_INTERFACE_END
+static void cpu20_vme_cards(device_slot_interface &device)
+{
+ device.option_add("fccpu20", VME_FCCPU20);
+}
-static SLOT_INTERFACE_START(cpu21s_vme_cards)
- SLOT_INTERFACE("fccpu21s", VME_FCCPU21S)
-SLOT_INTERFACE_END
+static void cpu21s_vme_cards(device_slot_interface &device)
+{
+ device.option_add("fccpu21s", VME_FCCPU21S);
+}
-static SLOT_INTERFACE_START(cpu21_vme_cards)
- SLOT_INTERFACE("fccpu21", VME_FCCPU21)
-SLOT_INTERFACE_END
+static void cpu21_vme_cards(device_slot_interface &device)
+{
+ device.option_add("fccpu21", VME_FCCPU21);
+}
-static SLOT_INTERFACE_START(cpu21a_vme_cards)
- SLOT_INTERFACE("fccpu21a", VME_FCCPU21A)
-SLOT_INTERFACE_END
+static void cpu21a_vme_cards(device_slot_interface &device)
+{
+ device.option_add("fccpu21a", VME_FCCPU21A);
+}
-static SLOT_INTERFACE_START(cpu21ya_vme_cards)
- SLOT_INTERFACE("fccpu21ya", VME_FCCPU21YA)
-SLOT_INTERFACE_END
+static void cpu21ya_vme_cards(device_slot_interface &device)
+{
+ device.option_add("fccpu21ya", VME_FCCPU21YA);
+}
-static SLOT_INTERFACE_START(cpu21b_vme_cards)
- SLOT_INTERFACE("fccpu21b", VME_FCCPU21B)
-SLOT_INTERFACE_END
+static void cpu21b_vme_cards(device_slot_interface &device)
+{
+ device.option_add("fccpu21b", VME_FCCPU21B);
+}
-static SLOT_INTERFACE_START(cpu21yb_vme_cards)
- SLOT_INTERFACE("fccpu21yb", VME_FCCPU21YB)
-SLOT_INTERFACE_END
+static void cpu21yb_vme_cards(device_slot_interface &device)
+{
+ device.option_add("fccpu21yb", VME_FCCPU21YB);
+}
/* Machine configurations */
MACHINE_CONFIG_START(cpu20_state::cpu20)
diff --git a/src/mame/drivers/fccpu30.cpp b/src/mame/drivers/fccpu30.cpp
index 0bedae62ffb..6a451786644 100644
--- a/src/mame/drivers/fccpu30.cpp
+++ b/src/mame/drivers/fccpu30.cpp
@@ -647,10 +647,11 @@ void cpu30_state::update_irq_to_maincpu()
}
}
-static SLOT_INTERFACE_START(fccpu30_vme_cards)
- SLOT_INTERFACE("fcisio", VME_FCISIO1)
- SLOT_INTERFACE("fcscsi", VME_FCSCSI1)
-SLOT_INTERFACE_END
+static void fccpu30_vme_cards(device_slot_interface &device)
+{
+ device.option_add("fcisio", VME_FCISIO1);
+ device.option_add("fcscsi", VME_FCSCSI1);
+}
/*
* Machine configuration
diff --git a/src/mame/drivers/fidel6502.cpp b/src/mame/drivers/fidel6502.cpp
index b4846498888..1d24ccce6ac 100644
--- a/src/mame/drivers/fidel6502.cpp
+++ b/src/mame/drivers/fidel6502.cpp
@@ -1689,7 +1689,7 @@ MACHINE_CONFIG_START(fidel6502_state::rsc)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(fidel6502_state::csc)
@@ -1725,7 +1725,7 @@ MACHINE_CONFIG_START(fidel6502_state::csc)
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(fidel6502_state::su9)
@@ -1766,7 +1766,7 @@ MACHINE_CONFIG_START(fidel6502_state::eas)
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
/* cartridge */
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "fidel_scc")
@@ -1802,7 +1802,7 @@ MACHINE_CONFIG_START(fidel6502_state::sc9d)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
/* cartridge */
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "fidel_scc")
@@ -1860,7 +1860,7 @@ MACHINE_CONFIG_START(fidel6502_state::sc12)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
/* cartridge */
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "fidel_scc")
@@ -1903,7 +1903,7 @@ MACHINE_CONFIG_START(fidel6502_state::fexcel)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(fidel6502_state::fexcel4)
@@ -1995,7 +1995,7 @@ MACHINE_CONFIG_START(fidel6502_state::fdes2100d)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(fidel6502_state::fdes2000d)
@@ -2022,7 +2022,7 @@ MACHINE_CONFIG_START(fidel6502_state::fphantom)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(fidel6502_state::chesster)
@@ -2042,7 +2042,7 @@ MACHINE_CONFIG_START(fidel6502_state::chesster)
MCFG_SOUND_ADD("dac8", DAC_8BIT_R2R, 0) // m74hc374b1.ic1 + 8l513_02.z2
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac8", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac8", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac8", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac8", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(fidel6502_state::kishon)
diff --git a/src/mame/drivers/fidel68k.cpp b/src/mame/drivers/fidel68k.cpp
index c69102f3365..58d7d59b425 100644
--- a/src/mame/drivers/fidel68k.cpp
+++ b/src/mame/drivers/fidel68k.cpp
@@ -573,7 +573,7 @@ MACHINE_CONFIG_START(fidel68k_state::fex68k)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(fidel68k_state::fex68km2)
@@ -609,7 +609,7 @@ MACHINE_CONFIG_START(fidel68k_state::fdes2265)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(fidel68k_state::fdes2325)
@@ -644,7 +644,7 @@ MACHINE_CONFIG_START(fidel68k_state::eag)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
/* cartridge */
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "fidel_scc")
diff --git a/src/mame/drivers/fidelmcs48.cpp b/src/mame/drivers/fidelmcs48.cpp
index 72880a7e87e..e4d629d2fc9 100644
--- a/src/mame/drivers/fidelmcs48.cpp
+++ b/src/mame/drivers/fidelmcs48.cpp
@@ -165,7 +165,7 @@ MACHINE_CONFIG_START(fidelmcs48_state::sc6)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/fidelz80.cpp b/src/mame/drivers/fidelz80.cpp
index 92f5260dd27..b2f27aa25f8 100644
--- a/src/mame/drivers/fidelz80.cpp
+++ b/src/mame/drivers/fidelz80.cpp
@@ -1666,7 +1666,7 @@ MACHINE_CONFIG_START(fidelz80_state::bcc)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(fidelz80_state::scc)
@@ -1683,7 +1683,7 @@ MACHINE_CONFIG_START(fidelz80_state::scc)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(fidelz80_state::cc10)
@@ -1812,7 +1812,7 @@ MACHINE_CONFIG_START(fidelz80_state::dsc)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/finalizr.cpp b/src/mame/drivers/finalizr.cpp
index eb3db65eeb8..015c436345e 100644
--- a/src/mame/drivers/finalizr.cpp
+++ b/src/mame/drivers/finalizr.cpp
@@ -304,7 +304,7 @@ MACHINE_CONFIG_START(finalizr_state::finalizr)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.325) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/firebeat.cpp b/src/mame/drivers/firebeat.cpp
index ee4facc999e..c1e2eec1227 100644
--- a/src/mame/drivers/firebeat.cpp
+++ b/src/mame/drivers/firebeat.cpp
@@ -1167,9 +1167,10 @@ void firebeat_state::cdrom_config(device_t *device)
MCFG_SOUND_ROUTE(1, "^^rspeaker", 1.0)
}
-static SLOT_INTERFACE_START(firebeat_ata_devices)
- SLOT_INTERFACE("cdrom", ATAPI_FIXED_CDROM)
-SLOT_INTERFACE_END
+static void firebeat_ata_devices(device_slot_interface &device)
+{
+ device.option_add("cdrom", ATAPI_FIXED_CDROM);
+}
MACHINE_CONFIG_START(firebeat_state::firebeat)
@@ -1191,7 +1192,7 @@ MACHINE_CONFIG_START(firebeat_state::firebeat)
MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE(firebeat_state, ata_interrupt))
MCFG_DEVICE_MODIFY("ata:1")
- MCFG_DEVICE_CARD_MACHINE_CONFIG( "cdrom", cdrom_config )
+ MCFG_SLOT_OPTION_MACHINE_CONFIG( "cdrom", cdrom_config )
/* video hardware */
MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
@@ -1248,7 +1249,7 @@ MACHINE_CONFIG_START(firebeat_state::firebeat2)
MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE(firebeat_state, ata_interrupt))
MCFG_DEVICE_MODIFY("ata:1")
- MCFG_DEVICE_CARD_MACHINE_CONFIG( "cdrom", cdrom_config )
+ MCFG_SLOT_OPTION_MACHINE_CONFIG( "cdrom", cdrom_config )
/* video hardware */
MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
diff --git a/src/mame/drivers/flstory.cpp b/src/mame/drivers/flstory.cpp
index 63988240178..c9301bf93f9 100644
--- a/src/mame/drivers/flstory.cpp
+++ b/src/mame/drivers/flstory.cpp
@@ -801,7 +801,7 @@ MACHINE_CONFIG_START(flstory_state::flstory)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(flstory_state::onna34ro)
@@ -870,7 +870,7 @@ MACHINE_CONFIG_START(flstory_state::onna34ro)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(flstory_state::onna34ro_mcu)
@@ -950,7 +950,7 @@ MACHINE_CONFIG_START(flstory_state::victnine)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -1023,7 +1023,7 @@ MACHINE_CONFIG_START(flstory_state::rumba)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/***************************************************************************
diff --git a/src/mame/drivers/fm7.cpp b/src/mame/drivers/fm7.cpp
index 4a63438c638..b89fc431093 100644
--- a/src/mame/drivers/fm7.cpp
+++ b/src/mame/drivers/fm7.cpp
@@ -2052,9 +2052,10 @@ void fm7_state::machine_reset()
}
-static SLOT_INTERFACE_START( fm7_floppies )
- SLOT_INTERFACE("qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+static void fm7_floppies(device_slot_interface &device)
+{
+ device.option_add("qd", FLOPPY_525_QD);
+}
#define MCFG_ADDRESS_BANK(tag) \
diff --git a/src/mame/drivers/fmtowns.cpp b/src/mame/drivers/fmtowns.cpp
index ecc65e2d361..ce46712ff09 100644
--- a/src/mame/drivers/fmtowns.cpp
+++ b/src/mame/drivers/fmtowns.cpp
@@ -2736,9 +2736,10 @@ FLOPPY_FORMATS_MEMBER( towns_state::floppy_formats )
FLOPPY_FMTOWNS_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( towns_floppies )
- SLOT_INTERFACE( "35hd", FLOPPY_35_HD )
-SLOT_INTERFACE_END
+static void towns_floppies(device_slot_interface &device)
+{
+ device.option_add("35hd", FLOPPY_35_HD);
+}
static const gfx_layout fnt_chars_16x16 =
{
diff --git a/src/mame/drivers/force68k.cpp b/src/mame/drivers/force68k.cpp
index c2bf82d8590..b5326076d1c 100644
--- a/src/mame/drivers/force68k.cpp
+++ b/src/mame/drivers/force68k.cpp
@@ -528,10 +528,11 @@ image_init_result force68k_state::force68k_load_cart(device_image_interface &ima
}
-static SLOT_INTERFACE_START(fccpu1_vme_cards)
- SLOT_INTERFACE("fcisio", VME_FCISIO1)
- SLOT_INTERFACE("fcscsi", VME_FCSCSI1)
-SLOT_INTERFACE_END
+static void fccpu1_vme_cards(device_slot_interface &device)
+{
+ device.option_add("fcisio", VME_FCISIO1);
+ device.option_add("fcscsi", VME_FCSCSI1);
+}
/*
* Machine configuration
diff --git a/src/mame/drivers/fruitpc.cpp b/src/mame/drivers/fruitpc.cpp
index 43db9226b67..1fa08be7216 100644
--- a/src/mame/drivers/fruitpc.cpp
+++ b/src/mame/drivers/fruitpc.cpp
@@ -115,9 +115,10 @@ INPUT_PORTS_END
//TODO: use atmb device
WRITE8_MEMBER( fruitpc_state::dma8237_1_dack_w ){ m_isabus->dack_w(1, data); }
-static SLOT_INTERFACE_START( fruitpc_isa8_cards )
- SLOT_INTERFACE("sb15", ISA8_SOUND_BLASTER_1_5)
-SLOT_INTERFACE_END
+static void fruitpc_isa8_cards(device_slot_interface &device)
+{
+ device.option_add("sb15", ISA8_SOUND_BLASTER_1_5);
+}
static DEVICE_INPUT_DEFAULTS_START( fruitpc_sb_def )
DEVICE_INPUT_DEFAULTS("CONFIG", 0x03, 0x01)
@@ -159,8 +160,8 @@ MACHINE_CONFIG_START(fruitpc_state::fruitpc)
MCFG_ISA_OUT_DRQ3_CB(DEVWRITELINE("dma8237_1", am9517a_device, dreq3_w))
MCFG_ISA8_SLOT_ADD("isa", "isa1", fruitpc_isa8_cards, "sb15", true)
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("sb15", fruitpc_sb_def)
- MCFG_DEVICE_CARD_MACHINE_CONFIG("sb15", fruitpc_sb_conf)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("sb15", fruitpc_sb_def)
+ MCFG_SLOT_OPTION_MACHINE_CONFIG("sb15", fruitpc_sb_conf)
MACHINE_CONFIG_END
ROM_START( fruitpc )
diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp
index 11850d03e0d..623f1eb28c2 100644
--- a/src/mame/drivers/galaxian.cpp
+++ b/src/mame/drivers/galaxian.cpp
@@ -5836,9 +5836,9 @@ MACHINE_CONFIG_START(galaxian_state::konami_sound_1x_ay8910)
MCFG_AY8910_RES_LOADS(RES_K(5.1), RES_K(5.1), RES_K(5.1))
MCFG_AY8910_PORT_A_READ_CB(DEVREAD8("soundlatch", generic_latch_8_device, read))
MCFG_AY8910_PORT_B_READ_CB(READ8(galaxian_state, frogger_sound_timer_r))
- MCFG_SOUND_ROUTE_EX(0, "konami", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "konami", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "konami", 1.0, 2)
+ MCFG_SOUND_ROUTE(0, "konami", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "konami", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "konami", 1.0, 2)
MCFG_SOUND_ADD("konami", DISCRETE, 0)
MCFG_DISCRETE_INTF(konami_sound)
@@ -5861,16 +5861,16 @@ MACHINE_CONFIG_START(galaxian_state::konami_sound_2x_ay8910)
MCFG_AY8910_RES_LOADS(RES_K(5.1), RES_K(5.1), RES_K(5.1))
MCFG_AY8910_PORT_A_READ_CB(DEVREAD8("soundlatch", generic_latch_8_device, read))
MCFG_AY8910_PORT_B_READ_CB(READ8(galaxian_state, konami_sound_timer_r))
- MCFG_SOUND_ROUTE_EX(0, "konami", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "konami", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "konami", 1.0, 2)
+ MCFG_SOUND_ROUTE(0, "konami", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "konami", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "konami", 1.0, 2)
MCFG_SOUND_ADD("8910.1", AY8910, KONAMI_SOUND_CLOCK/8)
MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
MCFG_AY8910_RES_LOADS(RES_K(5.1), RES_K(5.1), RES_K(5.1))
- MCFG_SOUND_ROUTE_EX(0, "konami", 1.0, 3)
- MCFG_SOUND_ROUTE_EX(1, "konami", 1.0, 4)
- MCFG_SOUND_ROUTE_EX(2, "konami", 1.0, 5)
+ MCFG_SOUND_ROUTE(0, "konami", 1.0, 3)
+ MCFG_SOUND_ROUTE(1, "konami", 1.0, 4)
+ MCFG_SOUND_ROUTE(2, "konami", 1.0, 5)
MCFG_SOUND_ADD("konami", DISCRETE, 0)
MCFG_DISCRETE_INTF(konami_sound)
@@ -6101,7 +6101,7 @@ MACHINE_CONFIG_START(galaxian_state::kingball)
/* sound hardware */
MCFG_SOUND_ADD("dac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.53) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -6318,7 +6318,7 @@ MACHINE_CONFIG_START(galaxian_state::sfx)
/* DAC for the sample player */
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // 16-pin IC (not identified by schematics)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/galeb.cpp b/src/mame/drivers/galeb.cpp
index cfd298b49d5..5b758cdad77 100644
--- a/src/mame/drivers/galeb.cpp
+++ b/src/mame/drivers/galeb.cpp
@@ -187,7 +187,7 @@ MACHINE_CONFIG_START(galeb_state::galeb)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
/* ROM definition */
diff --git a/src/mame/drivers/galivan.cpp b/src/mame/drivers/galivan.cpp
index f9560441027..854c7bb07d9 100644
--- a/src/mame/drivers/galivan.cpp
+++ b/src/mame/drivers/galivan.cpp
@@ -475,8 +475,8 @@ MACHINE_CONFIG_START(galivan_state::galivan)
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(dangarj_state::dangarj)
@@ -535,8 +535,8 @@ MACHINE_CONFIG_START(galivan_state::ninjemak)
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/gamecom.cpp b/src/mame/drivers/gamecom.cpp
index df803979066..a5a8ba25476 100644
--- a/src/mame/drivers/gamecom.cpp
+++ b/src/mame/drivers/gamecom.cpp
@@ -280,9 +280,9 @@ MACHINE_CONFIG_START(gamecom_state::gamecom)
MCFG_SOUND_ADD("dac0", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.05) // unknown DAC (Frequency modulation)
MCFG_SOUND_ADD("dac1", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.05) // unknown DAC (Frequency modulation)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac0", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac0", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
/* cartridge */
MCFG_GENERIC_CARTSLOT_ADD("cartslot1", generic_linear_slot, "gamecom_cart")
diff --git a/src/mame/drivers/gb.cpp b/src/mame/drivers/gb.cpp
index c2042546326..60070ff82e2 100644
--- a/src/mame/drivers/gb.cpp
+++ b/src/mame/drivers/gb.cpp
@@ -499,41 +499,43 @@ static INPUT_PORTS_START( gameboy )
INPUT_PORTS_END
-static SLOT_INTERFACE_START(gb_cart)
- SLOT_INTERFACE_INTERNAL("rom", GB_STD_ROM)
- SLOT_INTERFACE_INTERNAL("rom_mbc1", GB_ROM_MBC1)
- SLOT_INTERFACE_INTERNAL("rom_mbc1col", GB_ROM_MBC1)
- SLOT_INTERFACE_INTERNAL("rom_mbc2", GB_ROM_MBC2)
- SLOT_INTERFACE_INTERNAL("rom_mbc3", GB_ROM_MBC3)
- SLOT_INTERFACE_INTERNAL("rom_huc1", GB_ROM_MBC3)
- SLOT_INTERFACE_INTERNAL("rom_huc3", GB_ROM_MBC3)
- SLOT_INTERFACE_INTERNAL("rom_mbc5", GB_ROM_MBC5)
- SLOT_INTERFACE_INTERNAL("rom_mbc6", GB_ROM_MBC6)
- SLOT_INTERFACE_INTERNAL("rom_mbc7", GB_ROM_MBC7)
- SLOT_INTERFACE_INTERNAL("rom_tama5", GB_ROM_TAMA5)
- SLOT_INTERFACE_INTERNAL("rom_mmm01", GB_ROM_MMM01)
- SLOT_INTERFACE_INTERNAL("rom_m161", GB_ROM_M161)
- SLOT_INTERFACE_INTERNAL("rom_sachen1", GB_ROM_SACHEN1)
- SLOT_INTERFACE_INTERNAL("rom_sachen2", GB_ROM_SACHEN2)
- SLOT_INTERFACE_INTERNAL("rom_wisdom", GB_ROM_WISDOM)
- SLOT_INTERFACE_INTERNAL("rom_yong", GB_ROM_YONG)
- SLOT_INTERFACE_INTERNAL("rom_lasama", GB_ROM_LASAMA)
- SLOT_INTERFACE_INTERNAL("rom_atvrac", GB_ROM_ATVRAC)
- SLOT_INTERFACE_INTERNAL("rom_camera", GB_ROM_CAMERA)
- SLOT_INTERFACE_INTERNAL("rom_188in1", GB_ROM_188IN1)
- SLOT_INTERFACE_INTERNAL("rom_sintax", GB_ROM_SINTAX)
- SLOT_INTERFACE_INTERNAL("rom_chong", GB_ROM_CHONGWU)
- SLOT_INTERFACE_INTERNAL("rom_licheng", GB_ROM_LICHENG)
- SLOT_INTERFACE_INTERNAL("rom_digimon", GB_ROM_DIGIMON)
- SLOT_INTERFACE_INTERNAL("rom_rock8", GB_ROM_ROCKMAN8)
- SLOT_INTERFACE_INTERNAL("rom_sm3sp", GB_ROM_SM3SP)
-// SLOT_INTERFACE_INTERNAL("rom_dkong5", GB_ROM_DKONG5)
-// SLOT_INTERFACE_INTERNAL("rom_unk01", GB_ROM_UNK01)
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START(megaduck_cart)
- SLOT_INTERFACE_INTERNAL("rom", MEGADUCK_ROM)
-SLOT_INTERFACE_END
+static void gb_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", GB_STD_ROM);
+ device.option_add_internal("rom_mbc1", GB_ROM_MBC1);
+ device.option_add_internal("rom_mbc1col", GB_ROM_MBC1);
+ device.option_add_internal("rom_mbc2", GB_ROM_MBC2);
+ device.option_add_internal("rom_mbc3", GB_ROM_MBC3);
+ device.option_add_internal("rom_huc1", GB_ROM_MBC3);
+ device.option_add_internal("rom_huc3", GB_ROM_MBC3);
+ device.option_add_internal("rom_mbc5", GB_ROM_MBC5);
+ device.option_add_internal("rom_mbc6", GB_ROM_MBC6);
+ device.option_add_internal("rom_mbc7", GB_ROM_MBC7);
+ device.option_add_internal("rom_tama5", GB_ROM_TAMA5);
+ device.option_add_internal("rom_mmm01", GB_ROM_MMM01);
+ device.option_add_internal("rom_m161", GB_ROM_M161);
+ device.option_add_internal("rom_sachen1", GB_ROM_SACHEN1);
+ device.option_add_internal("rom_sachen2", GB_ROM_SACHEN2);
+ device.option_add_internal("rom_wisdom", GB_ROM_WISDOM);
+ device.option_add_internal("rom_yong", GB_ROM_YONG);
+ device.option_add_internal("rom_lasama", GB_ROM_LASAMA);
+ device.option_add_internal("rom_atvrac", GB_ROM_ATVRAC);
+ device.option_add_internal("rom_camera", GB_ROM_CAMERA);
+ device.option_add_internal("rom_188in1", GB_ROM_188IN1);
+ device.option_add_internal("rom_sintax", GB_ROM_SINTAX);
+ device.option_add_internal("rom_chong", GB_ROM_CHONGWU);
+ device.option_add_internal("rom_licheng", GB_ROM_LICHENG);
+ device.option_add_internal("rom_digimon", GB_ROM_DIGIMON);
+ device.option_add_internal("rom_rock8", GB_ROM_ROCKMAN8);
+ device.option_add_internal("rom_sm3sp", GB_ROM_SM3SP);
+// device.option_add_internal("rom_dkong5", GB_ROM_DKONG5);
+// device.option_add_internal("rom_unk01", GB_ROM_UNK01);
+}
+
+static void megaduck_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", MEGADUCK_ROM);
+}
diff --git a/src/mame/drivers/gba.cpp b/src/mame/drivers/gba.cpp
index 4f671858b35..fdc931e2916 100644
--- a/src/mame/drivers/gba.cpp
+++ b/src/mame/drivers/gba.cpp
@@ -1410,23 +1410,24 @@ void gba_state::machine_start()
}
-static SLOT_INTERFACE_START(gba_cart)
- SLOT_INTERFACE_INTERNAL("gba_rom", GBA_ROM_STD)
- SLOT_INTERFACE_INTERNAL("gba_sram", GBA_ROM_SRAM)
- SLOT_INTERFACE_INTERNAL("gba_drilldoz", GBA_ROM_DRILLDOZ) // Rumble output unemulated
- SLOT_INTERFACE_INTERNAL("gba_wariotws", GBA_ROM_WARIOTWS) // Rumble output unemulated
- SLOT_INTERFACE_INTERNAL("gba_eeprom", GBA_ROM_EEPROM)
- SLOT_INTERFACE_INTERNAL("gba_eeprom_4k", GBA_ROM_EEPROM)
- SLOT_INTERFACE_INTERNAL("gba_yoshiug", GBA_ROM_YOSHIUG)
- SLOT_INTERFACE_INTERNAL("gba_eeprom_64k", GBA_ROM_EEPROM64)
- SLOT_INTERFACE_INTERNAL("gba_boktai", GBA_ROM_BOKTAI)
- SLOT_INTERFACE_INTERNAL("gba_flash", GBA_ROM_FLASH) // Panasonic
- SLOT_INTERFACE_INTERNAL("gba_flash_rtc", GBA_ROM_FLASH_RTC) // Panasonic
- SLOT_INTERFACE_INTERNAL("gba_flash_512", GBA_ROM_FLASH) // Panasonic
- SLOT_INTERFACE_INTERNAL("gba_flash_1m", GBA_ROM_FLASH1M) // Sanyo
- SLOT_INTERFACE_INTERNAL("gba_flash_1m_rtc", GBA_ROM_FLASH1M_RTC) // Sanyo
- SLOT_INTERFACE_INTERNAL("gba_3dmatrix", GBA_ROM_3DMATRIX)
-SLOT_INTERFACE_END
+static void gba_cart(device_slot_interface &device)
+{
+ device.option_add_internal("gba_rom", GBA_ROM_STD);
+ device.option_add_internal("gba_sram", GBA_ROM_SRAM);
+ device.option_add_internal("gba_drilldoz", GBA_ROM_DRILLDOZ); // Rumble output unemulated
+ device.option_add_internal("gba_wariotws", GBA_ROM_WARIOTWS); // Rumble output unemulated
+ device.option_add_internal("gba_eeprom", GBA_ROM_EEPROM);
+ device.option_add_internal("gba_eeprom_4k", GBA_ROM_EEPROM);
+ device.option_add_internal("gba_yoshiug", GBA_ROM_YOSHIUG);
+ device.option_add_internal("gba_eeprom_64k", GBA_ROM_EEPROM64);
+ device.option_add_internal("gba_boktai", GBA_ROM_BOKTAI);
+ device.option_add_internal("gba_flash", GBA_ROM_FLASH); // Panasonic
+ device.option_add_internal("gba_flash_rtc", GBA_ROM_FLASH_RTC); // Panasonic
+ device.option_add_internal("gba_flash_512", GBA_ROM_FLASH); // Panasonic
+ device.option_add_internal("gba_flash_1m", GBA_ROM_FLASH1M); // Sanyo
+ device.option_add_internal("gba_flash_1m_rtc", GBA_ROM_FLASH1M_RTC); // Sanyo
+ device.option_add_internal("gba_3dmatrix", GBA_ROM_3DMATRIX);
+}
MACHINE_CONFIG_START(gba_state::gbadv)
@@ -1451,10 +1452,10 @@ MACHINE_CONFIG_START(gba_state::gbadv)
MCFG_SOUND_ADD("ldacb", DAC_8BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("rdacb", DAC_8BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldaca", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldaca", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdaca", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdaca", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "ldacb", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldacb", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdacb", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdacb", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldaca", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldaca", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdaca", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdaca", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldacb", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldacb", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdacb", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdacb", -1.0, DAC_VREF_NEG_INPUT)
MCFG_GBA_CARTRIDGE_ADD("cartslot", gba_cart, nullptr)
MCFG_SOFTWARE_LIST_ADD("cart_list","gba")
diff --git a/src/mame/drivers/gei.cpp b/src/mame/drivers/gei.cpp
index bcb7a34ee00..104e452b8a1 100644
--- a/src/mame/drivers/gei.cpp
+++ b/src/mame/drivers/gei.cpp
@@ -1004,7 +1004,7 @@ MACHINE_CONFIG_START(gei_state::getrivia)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(gei_state::findout)
diff --git a/src/mame/drivers/gimix.cpp b/src/mame/drivers/gimix.cpp
index 995cebc3a36..d1f1cfb45a2 100644
--- a/src/mame/drivers/gimix.cpp
+++ b/src/mame/drivers/gimix.cpp
@@ -533,10 +533,11 @@ FLOPPY_FORMATS_MEMBER( gimix_state::floppy_formats )
FLOPPY_FLEX_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( gimix_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
- SLOT_INTERFACE( "8dd", FLOPPY_8_DSDD )
-SLOT_INTERFACE_END
+static void gimix_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+ device.option_add("8dd", FLOPPY_8_DSDD);
+}
#define MCFG_ADDRESS_BANK(tag) \
MCFG_DEVICE_ADD(tag, ADDRESS_MAP_BANK, 0) \
diff --git a/src/mame/drivers/gkigt.cpp b/src/mame/drivers/gkigt.cpp
index b524a67b493..ad23fb327b8 100644
--- a/src/mame/drivers/gkigt.cpp
+++ b/src/mame/drivers/gkigt.cpp
@@ -619,7 +619,7 @@ MACHINE_CONFIG_START(igt_gameking_state::igt_gameking)
MCFG_RS232_PORT_ADD("diag", default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("quart1", sc28c94_device, rx_d_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", igt_gameking)
diff --git a/src/mame/drivers/go2000.cpp b/src/mame/drivers/go2000.cpp
index 4b181acd502..478c6e99356 100644
--- a/src/mame/drivers/go2000.cpp
+++ b/src/mame/drivers/go2000.cpp
@@ -370,7 +370,7 @@ MACHINE_CONFIG_START(go2000_state::go2000)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
ROM_START( go2000 )
diff --git a/src/mame/drivers/goupil.cpp b/src/mame/drivers/goupil.cpp
index ca0f003307b..ec89e0b8812 100644
--- a/src/mame/drivers/goupil.cpp
+++ b/src/mame/drivers/goupil.cpp
@@ -445,9 +445,10 @@ static INPUT_PORTS_START( goupil_g1 )
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8')
INPUT_PORTS_END
-static SLOT_INTERFACE_START( goupil_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void goupil_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
void goupil_g1_state::machine_start()
{
diff --git a/src/mame/drivers/gp32.cpp b/src/mame/drivers/gp32.cpp
index b09ab860b91..036edd527a2 100644
--- a/src/mame/drivers/gp32.cpp
+++ b/src/mame/drivers/gp32.cpp
@@ -1694,8 +1694,8 @@ MACHINE_CONFIG_START(gp32_state::gp32)
MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_NVRAM_ADD_1FILL("nvram")
diff --git a/src/mame/drivers/guab.cpp b/src/mame/drivers/guab.cpp
index 9df666b5f28..a0a88b316e6 100644
--- a/src/mame/drivers/guab.cpp
+++ b/src/mame/drivers/guab.cpp
@@ -458,9 +458,10 @@ FLOPPY_FORMATS_MEMBER( guab_state::floppy_formats )
FLOPPY_GUAB_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( guab_floppies )
- SLOT_INTERFACE("dd", FLOPPY_35_DD)
-SLOT_INTERFACE_END
+static void guab_floppies(device_slot_interface &device)
+{
+ device.option_add("dd", FLOPPY_35_DD);
+}
//**************************************************************************
@@ -532,7 +533,7 @@ MACHINE_CONFIG_START(guab_state::guab)
MCFG_RS232_PORT_ADD("rs232_1", default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("acia6850_1", acia6850_device, write_rxd))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("acia6850_1", acia6850_device, write_cts))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("keyboard", acia_1_rs232_defaults)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("keyboard", acia_1_rs232_defaults)
MCFG_DEVICE_ADD("acia_clock", CLOCK, 153600) // source? the ptm doesn't seem to output any common baud values
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("acia6850_1", acia6850_device, write_txc))
diff --git a/src/mame/drivers/gyruss.cpp b/src/mame/drivers/gyruss.cpp
index e9291a79c7b..c7a95f6cdd6 100644
--- a/src/mame/drivers/gyruss.cpp
+++ b/src/mame/drivers/gyruss.cpp
@@ -523,39 +523,39 @@ MACHINE_CONFIG_START(gyruss_state::gyruss)
MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
MCFG_AY8910_RES_LOADS(RES_K(3.3), RES_K(3.3), RES_K(3.3))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(gyruss_state, gyruss_filter0_w))
- MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 2)
+ MCFG_SOUND_ROUTE(0, "discrete", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "discrete", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "discrete", 1.0, 2)
MCFG_SOUND_ADD("ay2", AY8910, SOUND_CLOCK/8)
MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
MCFG_AY8910_RES_LOADS(RES_K(3.3), RES_K(3.3), RES_K(3.3))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(gyruss_state, gyruss_filter1_w))
- MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 3)
- MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 4)
- MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 5)
+ MCFG_SOUND_ROUTE(0, "discrete", 1.0, 3)
+ MCFG_SOUND_ROUTE(1, "discrete", 1.0, 4)
+ MCFG_SOUND_ROUTE(2, "discrete", 1.0, 5)
MCFG_SOUND_ADD("ay3", AY8910, SOUND_CLOCK/8)
MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
MCFG_AY8910_RES_LOADS(RES_K(3.3), RES_K(3.3), RES_K(3.3))
MCFG_AY8910_PORT_A_READ_CB(READ8(gyruss_state, gyruss_portA_r))
- MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 6)
- MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 7)
- MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 8)
+ MCFG_SOUND_ROUTE(0, "discrete", 1.0, 6)
+ MCFG_SOUND_ROUTE(1, "discrete", 1.0, 7)
+ MCFG_SOUND_ROUTE(2, "discrete", 1.0, 8)
MCFG_SOUND_ADD("ay4", AY8910, SOUND_CLOCK/8)
MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
MCFG_AY8910_RES_LOADS(RES_K(3.3), RES_K(3.3), RES_K(3.3))
- MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 9)
- MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 10)
- MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 11)
+ MCFG_SOUND_ROUTE(0, "discrete", 1.0, 9)
+ MCFG_SOUND_ROUTE(1, "discrete", 1.0, 10)
+ MCFG_SOUND_ROUTE(2, "discrete", 1.0, 11)
MCFG_SOUND_ADD("ay5", AY8910, SOUND_CLOCK/8)
MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
MCFG_AY8910_RES_LOADS(RES_K(3.3), RES_K(3.3), RES_K(3.3))
- MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 12)
- MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 13)
- MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 14)
+ MCFG_SOUND_ROUTE(0, "discrete", 1.0, 12)
+ MCFG_SOUND_ROUTE(1, "discrete", 1.0, 13)
+ MCFG_SOUND_ROUTE(2, "discrete", 1.0, 14)
MCFG_SOUND_ADD("discrete", DISCRETE, 0)
MCFG_DISCRETE_INTF(gyruss_sound)
diff --git a/src/mame/drivers/h89.cpp b/src/mame/drivers/h89.cpp
index 92d1ca415c6..2dfcf4a2ef3 100644
--- a/src/mame/drivers/h89.cpp
+++ b/src/mame/drivers/h89.cpp
@@ -194,7 +194,7 @@ MACHINE_CONFIG_START(h89_state::h89)
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("ins8250", ins8250_uart_device, rx_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer", h89_state, h89_irq_timer, attotime::from_hz(100))
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hankin.cpp b/src/mame/drivers/hankin.cpp
index 312345211b9..ec88fb26bd5 100644
--- a/src/mame/drivers/hankin.cpp
+++ b/src/mame/drivers/hankin.cpp
@@ -492,7 +492,7 @@ MACHINE_CONFIG_START(hankin_state::hankin)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
/* Devices */
MCFG_DEVICE_ADD("ic10", PIA6821, 0)
diff --git a/src/mame/drivers/harddriv.cpp b/src/mame/drivers/harddriv.cpp
index 33a6a91a651..fe298971730 100644
--- a/src/mame/drivers/harddriv.cpp
+++ b/src/mame/drivers/harddriv.cpp
@@ -1629,8 +1629,8 @@ MACHINE_CONFIG_START(harddriv_state::ds3)
MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hec2hrp.cpp b/src/mame/drivers/hec2hrp.cpp
index 8ba4b81cdc5..a2efc03cfbf 100644
--- a/src/mame/drivers/hec2hrp.cpp
+++ b/src/mame/drivers/hec2hrp.cpp
@@ -404,9 +404,10 @@ FLOPPY_FORMATS_MEMBER( hec2hrp_state::minidisc_formats )
FLOPPY_HMD_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( minidisc_floppies )
- SLOT_INTERFACE("dd", FLOPPY_35_DD)
-SLOT_INTERFACE_END
+static void minidisc_floppies(device_slot_interface &device)
+{
+ device.option_add("dd", FLOPPY_35_DD);
+}
/******************************************************************************/
@@ -479,9 +480,10 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2hrp)
MACHINE_CONFIG_END
-static SLOT_INTERFACE_START( hector_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
-SLOT_INTERFACE_END
+static void hector_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+}
/*****************************************************************************/
MACHINE_CONFIG_START(hec2hrp_state::hec2mx40)
diff --git a/src/mame/drivers/hh_cop400.cpp b/src/mame/drivers/hh_cop400.cpp
index b5a009a9252..6e21b03bf47 100644
--- a/src/mame/drivers/hh_cop400.cpp
+++ b/src/mame/drivers/hh_cop400.cpp
@@ -1592,7 +1592,7 @@ MACHINE_CONFIG_START(bship82_state::bship82)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("dac", DAC_4BIT_BINARY_WEIGHTED_SIGN_MAGNITUDE, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.125) // see above
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -1814,7 +1814,7 @@ MACHINE_CONFIG_START(vidchal_state::vidchal)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("dac", DAC_4BIT_BINARY_WEIGHTED_SIGN_MAGNITUDE, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.125) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hk68v10.cpp b/src/mame/drivers/hk68v10.cpp
index b5b6e19650b..e1839b66567 100644
--- a/src/mame/drivers/hk68v10.cpp
+++ b/src/mame/drivers/hk68v10.cpp
@@ -330,8 +330,9 @@ WRITE16_MEMBER (hk68v10_state::vme_a16_w){
* Original HBUG configuration word: 0x003D = 0000 0000 0011 1101
*/
-static SLOT_INTERFACE_START(hk68_vme_cards)
-SLOT_INTERFACE_END
+static void hk68_vme_cards(device_slot_interface &device)
+{
+}
/*
* Machine configuration
diff --git a/src/mame/drivers/homedata.cpp b/src/mame/drivers/homedata.cpp
index e5e4ffbf4c3..15a3e914722 100644
--- a/src/mame/drivers/homedata.cpp
+++ b/src/mame/drivers/homedata.cpp
@@ -1259,7 +1259,7 @@ MACHINE_CONFIG_START(homedata_state::mrokumei)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -1315,7 +1315,7 @@ MACHINE_CONFIG_START(homedata_state::reikaids)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -1368,7 +1368,7 @@ MACHINE_CONFIG_START(homedata_state::pteacher)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(homedata_state::mjkinjas)
diff --git a/src/mame/drivers/homelab.cpp b/src/mame/drivers/homelab.cpp
index 0b7ea55aeaf..e501a8eb9d8 100644
--- a/src/mame/drivers/homelab.cpp
+++ b/src/mame/drivers/homelab.cpp
@@ -768,7 +768,7 @@ MACHINE_CONFIG_START(homelab_state::homelab)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
@@ -801,7 +801,7 @@ MACHINE_CONFIG_START(homelab_state::homelab3)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
@@ -834,7 +834,7 @@ MACHINE_CONFIG_START(homelab_state::brailab4)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
diff --git a/src/mame/drivers/horizon.cpp b/src/mame/drivers/horizon.cpp
index 37d70b08223..d46932a7509 100644
--- a/src/mame/drivers/horizon.cpp
+++ b/src/mame/drivers/horizon.cpp
@@ -155,16 +155,17 @@ DEVICE_INPUT_DEFAULTS_END
#include "bus/s100/seals8k.h"
//#include "bus/s100/wunderbus.h"
-static SLOT_INTERFACE_START( horizon_s100_cards )
- SLOT_INTERFACE("mdsa", S100_MDS_A)
- SLOT_INTERFACE("mdsad", S100_MDS_AD)
- //SLOT_INTERFACE("hram", S100_HRAM)
- //SLOT_INTERFACE("ram32a", S100_RAM32A)
- //SLOT_INTERFACE("ram16a", S100_RAM16A)
- //SLOT_INTERFACE("fpb", S100_FPB)
- SLOT_INTERFACE("8ksc", S100_8K_SC)
- SLOT_INTERFACE("8kscbb", S100_8K_SC_BB)
-SLOT_INTERFACE_END
+static void horizon_s100_cards(device_slot_interface &device)
+{
+ device.option_add("mdsa", S100_MDS_A);
+ device.option_add("mdsad", S100_MDS_AD);
+ //device.option_add("hram", S100_HRAM);
+ //device.option_add("ram32a", S100_RAM32A);
+ //device.option_add("ram16a", S100_RAM16A);
+ //device.option_add("fpb", S100_FPB);
+ device.option_add("8ksc", S100_8K_SC);
+ device.option_add("8kscbb", S100_8K_SC_BB);
+}
@@ -191,7 +192,7 @@ MACHINE_CONFIG_START(horizon_state::horizon)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(I8251_L_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE(I8251_L_TAG, i8251_device, write_dsr))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_DEVICE_ADD(I8251_R_TAG, I8251, 0)
MCFG_I8251_TXD_HANDLER(DEVWRITELINE(RS232_B_TAG, rs232_port_device, write_txd))
diff --git a/src/mame/drivers/hp48.cpp b/src/mame/drivers/hp48.cpp
index 626ce407925..3baa6731cc9 100644
--- a/src/mame/drivers/hp48.cpp
+++ b/src/mame/drivers/hp48.cpp
@@ -1287,7 +1287,7 @@ MACHINE_CONFIG_START(hp48_state::hp48_common)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(hp48_state::hp48gx)
diff --git a/src/mame/drivers/hp64k.cpp b/src/mame/drivers/hp64k.cpp
index 357d86e2620..ba2da530261 100644
--- a/src/mame/drivers/hp64k.cpp
+++ b/src/mame/drivers/hp64k.cpp
@@ -1376,9 +1376,10 @@ static INPUT_PORTS_START(hp64k)
PORT_DIPSETTING(0x1e , "19200")
INPUT_PORTS_END
-static SLOT_INTERFACE_START(hp64k_floppies)
- SLOT_INTERFACE("525dd" , FLOPPY_525_DD)
-SLOT_INTERFACE_END
+static void hp64k_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd" , FLOPPY_525_DD);
+}
MACHINE_CONFIG_START(hp64k_state::hp64k)
MCFG_CPU_ADD("cpu" , HP_5061_3011 , 6250000)
diff --git a/src/mame/drivers/hp80.cpp b/src/mame/drivers/hp80.cpp
index 5e8e217bcdd..94f18b34397 100644
--- a/src/mame/drivers/hp80.cpp
+++ b/src/mame/drivers/hp80.cpp
@@ -1361,7 +1361,7 @@ MACHINE_CONFIG_START(hp85_state::hp85)
MCFG_MIXER_ROUTE(ALL_OUTPUTS , "mono" , 0.5 , 0)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0)
MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_ADD("beeper" , BEEP , MASTER_CLOCK / 8192)
MCFG_MIXER_ROUTE(ALL_OUTPUTS , "mono" , 0.5 , 0)
@@ -1370,17 +1370,17 @@ MACHINE_CONFIG_START(hp85_state::hp85)
// Optional ROMs
MCFG_DEVICE_ADD("drawer1", HP80_OPTROM_SLOT, 0)
- MCFG_DEVICE_SLOT_INTERFACE(hp80_optrom_slot_device, NULL, false)
+ MCFG_DEVICE_SLOT_INTERFACE(hp80_optrom_slot_devices, NULL, false)
MCFG_DEVICE_ADD("drawer2", HP80_OPTROM_SLOT, 0)
- MCFG_DEVICE_SLOT_INTERFACE(hp80_optrom_slot_device, NULL, false)
+ MCFG_DEVICE_SLOT_INTERFACE(hp80_optrom_slot_devices, NULL, false)
MCFG_DEVICE_ADD("drawer3", HP80_OPTROM_SLOT, 0)
- MCFG_DEVICE_SLOT_INTERFACE(hp80_optrom_slot_device, NULL, false)
+ MCFG_DEVICE_SLOT_INTERFACE(hp80_optrom_slot_devices, NULL, false)
MCFG_DEVICE_ADD("drawer4", HP80_OPTROM_SLOT, 0)
- MCFG_DEVICE_SLOT_INTERFACE(hp80_optrom_slot_device, NULL, false)
+ MCFG_DEVICE_SLOT_INTERFACE(hp80_optrom_slot_devices, NULL, false)
MCFG_DEVICE_ADD("drawer5", HP80_OPTROM_SLOT, 0)
- MCFG_DEVICE_SLOT_INTERFACE(hp80_optrom_slot_device, NULL, false)
+ MCFG_DEVICE_SLOT_INTERFACE(hp80_optrom_slot_devices, NULL, false)
MCFG_DEVICE_ADD("drawer6", HP80_OPTROM_SLOT, 0)
- MCFG_DEVICE_SLOT_INTERFACE(hp80_optrom_slot_device, NULL, false)
+ MCFG_DEVICE_SLOT_INTERFACE(hp80_optrom_slot_devices, NULL, false)
// I/O slots
MCFG_HP80_IO_SLOT_ADD("slot1" , 0)
diff --git a/src/mame/drivers/hp9845.cpp b/src/mame/drivers/hp9845.cpp
index bd9bc714594..ffc02ded5d4 100644
--- a/src/mame/drivers/hp9845.cpp
+++ b/src/mame/drivers/hp9845.cpp
@@ -3772,21 +3772,21 @@ MACHINE_CONFIG_START(hp9845_base_state::hp9845_base)
// Here we do away with the distinction between LPU & PPU ROMs: in the end they
// are visible to both CPUs at the same addresses.
MCFG_DEVICE_ADD("drawer1", HP_OPTROM_SLOT, 0)
- MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_device, NULL, false)
+ MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false)
MCFG_DEVICE_ADD("drawer2", HP_OPTROM_SLOT, 0)
- MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_device, NULL, false)
+ MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false)
MCFG_DEVICE_ADD("drawer3", HP_OPTROM_SLOT, 0)
- MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_device, NULL, false)
+ MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false)
MCFG_DEVICE_ADD("drawer4", HP_OPTROM_SLOT, 0)
- MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_device, NULL, false)
+ MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false)
MCFG_DEVICE_ADD("drawer5", HP_OPTROM_SLOT, 0)
- MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_device, NULL, false)
+ MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false)
MCFG_DEVICE_ADD("drawer6", HP_OPTROM_SLOT, 0)
- MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_device, NULL, false)
+ MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false)
MCFG_DEVICE_ADD("drawer7", HP_OPTROM_SLOT, 0)
- MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_device, NULL, false)
+ MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false)
MCFG_DEVICE_ADD("drawer8", HP_OPTROM_SLOT, 0)
- MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_device, NULL, false)
+ MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false)
// I/O slots
MCFG_HP9845_IO_SLOT_ADD("slot0")
diff --git a/src/mame/drivers/hp9k_3xx.cpp b/src/mame/drivers/hp9k_3xx.cpp
index 1e9c07c1fe2..5566d158173 100644
--- a/src/mame/drivers/hp9k_3xx.cpp
+++ b/src/mame/drivers/hp9k_3xx.cpp
@@ -391,12 +391,13 @@ READ8_MEMBER(hp9k3xx_state::iocpu_test0_r)
return !m_mlc->get_int();
}
-static SLOT_INTERFACE_START(dio16_cards)
- SLOT_INTERFACE("98544", HPDIO_98544) /* 98544 High Resolution Monochrome Card */
- SLOT_INTERFACE("98603a", HPDIO_98603A) /* 98603A ROM BASIC (4.0) */
- SLOT_INTERFACE("98603b", HPDIO_98603B) /* 98603B ROM BASIC (5.1) */
- SLOT_INTERFACE("98644", HPDIO_98644) /* 98644 Async serial interface */
-SLOT_INTERFACE_END
+static void dio16_cards(device_slot_interface &device)
+{
+ device.option_add("98544", HPDIO_98544); /* 98544 High Resolution Monochrome Card */
+ device.option_add("98603a", HPDIO_98603A); /* 98603A ROM BASIC (4.0) */
+ device.option_add("98603b", HPDIO_98603B); /* 98603B ROM BASIC (5.1) */
+ device.option_add("98644", HPDIO_98644); /* 98644 Async serial interface */
+}
MACHINE_CONFIG_START(hp9k3xx_state::hp9k310)
/* basic machine hardware */
diff --git a/src/mame/drivers/hp_ipc.cpp b/src/mame/drivers/hp_ipc.cpp
index 13e159798f3..4c5da74ce81 100644
--- a/src/mame/drivers/hp_ipc.cpp
+++ b/src/mame/drivers/hp_ipc.cpp
@@ -720,9 +720,10 @@ FLOPPY_FORMATS_MEMBER( hp_ipc_state::floppy_formats )
FLOPPY_HP_IPC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( hp_ipc_floppies )
- SLOT_INTERFACE( "35dd", SONY_OA_D32W )
-SLOT_INTERFACE_END
+static void hp_ipc_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", SONY_OA_D32W);
+}
/*
* IRQ levels (page 5-4)
diff --git a/src/mame/drivers/ht68k.cpp b/src/mame/drivers/ht68k.cpp
index 17502b912b6..5bf051971de 100644
--- a/src/mame/drivers/ht68k.cpp
+++ b/src/mame/drivers/ht68k.cpp
@@ -121,9 +121,10 @@ WRITE8_MEMBER(ht68k_state::duart_output)
if (m_floppy) {m_floppy->ss_w(BIT(data,3) ? 0 : 1);}
}
-static SLOT_INTERFACE_START( ht68k_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void ht68k_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
MACHINE_CONFIG_START(ht68k_state::ht68k)
diff --git a/src/mame/drivers/hyhoo.cpp b/src/mame/drivers/hyhoo.cpp
index c486cfa5973..a6cb3173179 100644
--- a/src/mame/drivers/hyhoo.cpp
+++ b/src/mame/drivers/hyhoo.cpp
@@ -258,7 +258,7 @@ MACHINE_CONFIG_START(hyhoo_state::hyhoo)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hyperspt.cpp b/src/mame/drivers/hyperspt.cpp
index 70ef94c2062..397eb4b0474 100644
--- a/src/mame/drivers/hyperspt.cpp
+++ b/src/mame/drivers/hyperspt.cpp
@@ -341,7 +341,7 @@ MACHINE_CONFIG_START(hyperspt_state::hyperspt)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("snsnd", SN76496, XTAL(14'318'181)/8) /* verified on pcb */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
diff --git a/src/mame/drivers/ibm6580.cpp b/src/mame/drivers/ibm6580.cpp
index b6bd808fab5..042f08d5810 100644
--- a/src/mame/drivers/ibm6580.cpp
+++ b/src/mame/drivers/ibm6580.cpp
@@ -875,9 +875,10 @@ void ibm6580_state::video_start()
memset(m_p_videoram, 0x0, 0x1000);
}
-static SLOT_INTERFACE_START( dw_floppies )
- SLOT_INTERFACE( "8sssd", IBM_6360 )
-SLOT_INTERFACE_END
+static void dw_floppies(device_slot_interface &device)
+{
+ device.option_add("8sssd", IBM_6360);
+}
MACHINE_CONFIG_START(ibm6580_state::ibm6580)
MCFG_CPU_ADD("maincpu", I8086, XTAL(14'745'600)/3)
diff --git a/src/mame/drivers/ibmpcjr.cpp b/src/mame/drivers/ibmpcjr.cpp
index 1db58a6c4b8..b03932bbf6f 100644
--- a/src/mame/drivers/ibmpcjr.cpp
+++ b/src/mame/drivers/ibmpcjr.cpp
@@ -501,15 +501,17 @@ image_init_result pcjr_state::load_cart(device_image_interface &image, generic_s
}
-static SLOT_INTERFACE_START( pcjr_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START(pcjr_com)
- SLOT_INTERFACE("microsoft_mouse", MSFT_SERIAL_MOUSE)
- SLOT_INTERFACE("mousesys_mouse", MSYSTEM_SERIAL_MOUSE)
-SLOT_INTERFACE_END
+static void pcjr_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("35dd", FLOPPY_35_DD);
+}
+
+static void pcjr_com(device_slot_interface &device)
+{
+ device.option_add("microsoft_mouse", MSFT_SERIAL_MOUSE);
+ device.option_add("mousesys_mouse", MSYSTEM_SERIAL_MOUSE);
+}
static const gfx_layout pc_8_charlayout =
{
diff --git a/src/mame/drivers/imds2.cpp b/src/mame/drivers/imds2.cpp
index 703700885ed..8d220318034 100644
--- a/src/mame/drivers/imds2.cpp
+++ b/src/mame/drivers/imds2.cpp
@@ -753,9 +753,10 @@ static GFXDECODE_START(imds2)
GFXDECODE_ENTRY("gfx1" , 0x0000 , imds2_charlayout , 0 , 1)
GFXDECODE_END
-static SLOT_INTERFACE_START( imds2_floppies )
- SLOT_INTERFACE( "8sssd", FLOPPY_8_SSSD )
-SLOT_INTERFACE_END
+static void imds2_floppies(device_slot_interface &device)
+{
+ device.option_add("8sssd", FLOPPY_8_SSSD);
+}
MACHINE_CONFIG_START(imds2_state::imds2)
MCFG_CPU_ADD("ipccpu" , I8085A , IPC_XTAL_Y2 / 2) // 4 MHz
diff --git a/src/mame/drivers/indiana.cpp b/src/mame/drivers/indiana.cpp
index 8cbed13b2a4..a2ce808c564 100644
--- a/src/mame/drivers/indiana.cpp
+++ b/src/mame/drivers/indiana.cpp
@@ -71,15 +71,16 @@ DRIVER_INIT_MEMBER(indiana_state,indiana)
{
}
-SLOT_INTERFACE_START( indiana_isa_cards )
+void indiana_isa_cards(device_slot_interface &device)
+{
// 8-bit
- SLOT_INTERFACE("fdc_at", ISA8_FDC_AT)
- SLOT_INTERFACE("comat", ISA8_COM_AT)
- SLOT_INTERFACE("vga", ISA8_VGA)
+ device.option_add("fdc_at", ISA8_FDC_AT);
+ device.option_add("comat", ISA8_COM_AT);
+ device.option_add("vga", ISA8_VGA);
// 16-bit
- SLOT_INTERFACE("ide", ISA16_IDE)
-SLOT_INTERFACE_END
+ device.option_add("ide", ISA16_IDE);
+}
static DEVICE_INPUT_DEFAULTS_START( keyboard )
DEVICE_INPUT_DEFAULTS( "RS232_TXBAUD", 0xff, RS232_BAUD_1200 )
@@ -110,7 +111,7 @@ MACHINE_CONFIG_START(indiana_state::indiana)
MCFG_RS232_PORT_ADD("keyboard", default_rs232_devices, "keyboard")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(MFP_TAG, mc68901_device, write_rx))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("keyboard", keyboard)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("keyboard", keyboard)
MACHINE_CONFIG_END
/* ROM definition */
diff --git a/src/mame/drivers/indy_indigo2.cpp b/src/mame/drivers/indy_indigo2.cpp
index 6b28199cb46..b816f0415c8 100644
--- a/src/mame/drivers/indy_indigo2.cpp
+++ b/src/mame/drivers/indy_indigo2.cpp
@@ -230,7 +230,7 @@ MACHINE_CONFIG_START(ip22_state::ip225015)
MCFG_SOUND_ADD("dac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0)
MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE1, "harddisk", SCSIHD, SCSI_ID_1)
diff --git a/src/mame/drivers/instantm.cpp b/src/mame/drivers/instantm.cpp
index eba75182231..8cfc745594d 100644
--- a/src/mame/drivers/instantm.cpp
+++ b/src/mame/drivers/instantm.cpp
@@ -140,7 +140,7 @@ MACHINE_CONFIG_START(instantm_state::instantm)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/intellec4.cpp b/src/mame/drivers/intellec4.cpp
index a5bb14e76cb..daae3191a46 100644
--- a/src/mame/drivers/intellec4.cpp
+++ b/src/mame/drivers/intellec4.cpp
@@ -835,8 +835,8 @@ MACHINE_CONFIG_START(intellec4_state::intellec4)
MCFG_DEVICE_ADD("promprg", INTEL_IMM6_76, 0)
MCFG_RS232_PORT_ADD("tty", default_rs232_devices, "terminal")
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", tty)
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("null_modem", tty)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", tty)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("null_modem", tty)
MCFG_DEVICE_ADD("bus", INTELLEC4_UNIV_BUS, 518000. / 7)
MCFG_INTELLEC4_UNIV_BUS_ROM_SPACE("prgbank", AS_PROGRAM)
diff --git a/src/mame/drivers/interpro.cpp b/src/mame/drivers/interpro.cpp
index a7126aa3525..9449f6001b2 100644
--- a/src/mame/drivers/interpro.cpp
+++ b/src/mame/drivers/interpro.cpp
@@ -471,10 +471,11 @@ FLOPPY_FORMATS_MEMBER(interpro_state::floppy_formats)
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START(interpro_floppies)
- SLOT_INTERFACE("525dd", FLOPPY_525_DD)
- SLOT_INTERFACE("35hd", FLOPPY_35_HD)
-SLOT_INTERFACE_END
+static void interpro_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("35hd", FLOPPY_35_HD);
+}
MACHINE_CONFIG_START(interpro_state::interpro_scc1)
MCFG_DEVICE_MODIFY(INTERPRO_SCC1_TAG)
@@ -511,18 +512,21 @@ MACHINE_CONFIG_START(interpro_state::interpro_scc2)
MCFG_RS232_CTS_HANDLER(DEVWRITELINE(INTERPRO_SCC2_TAG, z80scc_device, ctsb_w))
MACHINE_CONFIG_END
-static SLOT_INTERFACE_START(interpro_scsi_devices)
- SLOT_INTERFACE("harddisk", NSCSI_HARDDISK)
- SLOT_INTERFACE("cdrom", NSCSI_CDROM)
-SLOT_INTERFACE_END
+static void interpro_scsi_devices(device_slot_interface &device)
+{
+ device.option_add("harddisk", NSCSI_HARDDISK);
+ device.option_add("cdrom", NSCSI_CDROM);
+}
-static SLOT_INTERFACE_START(turquoise_scsi_devices)
- SLOT_INTERFACE_INTERNAL(INTERPRO_SCSI_ADAPTER_TAG, NCR53C90A)
-SLOT_INTERFACE_END
+static void turquoise_scsi_devices(device_slot_interface &device)
+{
+ device.option_add_internal(INTERPRO_SCSI_ADAPTER_TAG, NCR53C90A);
+}
-static SLOT_INTERFACE_START(sapphire_scsi_devices)
- SLOT_INTERFACE_INTERNAL(INTERPRO_SCSI_ADAPTER_TAG, NCR53C94)
-SLOT_INTERFACE_END
+static void sapphire_scsi_devices(device_slot_interface &device)
+{
+ device.option_add_internal(INTERPRO_SCSI_ADAPTER_TAG, NCR53C94);
+}
void interpro_state::interpro_scsi_adapter(device_t *device)
{
@@ -645,7 +649,7 @@ MACHINE_CONFIG_START(turquoise_state::turquoise)
// scsi controller
MCFG_NSCSI_ADD(INTERPRO_SCSI_TAG ":7", turquoise_scsi_devices, INTERPRO_SCSI_ADAPTER_TAG, true)
- MCFG_DEVICE_CARD_MACHINE_CONFIG(INTERPRO_SCSI_ADAPTER_TAG, interpro_scsi_adapter)
+ MCFG_SLOT_OPTION_MACHINE_CONFIG(INTERPRO_SCSI_ADAPTER_TAG, interpro_scsi_adapter)
// ethernet controller
MCFG_DEVICE_ADD(INTERPRO_ETH_TAG, I82586, 0)
@@ -697,7 +701,7 @@ MACHINE_CONFIG_START(sapphire_state::sapphire)
// scsi controller
MCFG_NSCSI_ADD(INTERPRO_SCSI_TAG ":7", sapphire_scsi_devices, INTERPRO_SCSI_ADAPTER_TAG, true)
- MCFG_DEVICE_CARD_MACHINE_CONFIG(INTERPRO_SCSI_ADAPTER_TAG, interpro_scsi_adapter)
+ MCFG_SLOT_OPTION_MACHINE_CONFIG(INTERPRO_SCSI_ADAPTER_TAG, interpro_scsi_adapter)
// ethernet controller
MCFG_DEVICE_ADD(INTERPRO_ETH_TAG, I82596_LE16, XTAL(20'000'000))
diff --git a/src/mame/drivers/iq151.cpp b/src/mame/drivers/iq151.cpp
index beb89da7705..5c664519d4d 100644
--- a/src/mame/drivers/iq151.cpp
+++ b/src/mame/drivers/iq151.cpp
@@ -371,20 +371,21 @@ uint32_t iq151_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
return 0;
}
-static SLOT_INTERFACE_START(iq151_cart)
- SLOT_INTERFACE("video32", IQ151_VIDEO32) // video32
- SLOT_INTERFACE("video64", IQ151_VIDEO64) // video64
- SLOT_INTERFACE("grafik" , IQ151_GRAFIK) // Grafik
- SLOT_INTERFACE("disc2" , IQ151_DISC2) // Disc 2
- SLOT_INTERFACE("minigraf" , IQ151_MINIGRAF) // Aritma Minigraf 0507
- SLOT_INTERFACE("ms151a" , IQ151_MS151A) // MS151A XY Plotter
- SLOT_INTERFACE("staper" , IQ151_STAPER) // STAPER
- SLOT_INTERFACE("basic6" , IQ151_BASIC6) // BASIC6
- SLOT_INTERFACE("basicg" , IQ151_BASICG) // BASICG
- SLOT_INTERFACE("amos1" , IQ151_AMOS1) // AMOS cart 1
- SLOT_INTERFACE("amos2" , IQ151_AMOS2) // AMOS cart 2
- SLOT_INTERFACE("amos3" , IQ151_AMOS3) // AMOS cart 3
-SLOT_INTERFACE_END
+static void iq151_cart(device_slot_interface &device)
+{
+ device.option_add("video32", IQ151_VIDEO32); // video32
+ device.option_add("video64", IQ151_VIDEO64); // video64
+ device.option_add("grafik", IQ151_GRAFIK); // Grafik
+ device.option_add("disc2", IQ151_DISC2); // Disc 2
+ device.option_add("minigraf", IQ151_MINIGRAF); // Aritma Minigraf 0507
+ device.option_add("ms151a", IQ151_MS151A); // MS151A XY Plotter
+ device.option_add("staper", IQ151_STAPER); // STAPER
+ device.option_add("basic6", IQ151_BASIC6); // BASIC6
+ device.option_add("basicg", IQ151_BASICG); // BASICG
+ device.option_add("amos1", IQ151_AMOS1); // AMOS cart 1
+ device.option_add("amos2", IQ151_AMOS2); // AMOS cart 2
+ device.option_add("amos3", IQ151_AMOS3); // AMOS cart 3
+}
MACHINE_CONFIG_START(iq151_state::iq151)
/* basic machine hardware */
diff --git a/src/mame/drivers/iris3130.cpp b/src/mame/drivers/iris3130.cpp
index 05f8148b24a..1839263c5e0 100644
--- a/src/mame/drivers/iris3130.cpp
+++ b/src/mame/drivers/iris3130.cpp
@@ -437,7 +437,7 @@ MACHINE_CONFIG_START(sgi_ip2_state::sgi_ip2)
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("duart68681a", mc68681_device, rx_b_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", ip2_terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", ip2_terminal)
MACHINE_CONFIG_END
static INPUT_PORTS_START( sgi_ip2 )
diff --git a/src/mame/drivers/ironhors.cpp b/src/mame/drivers/ironhors.cpp
index 03f21a769fd..a01a00e63d6 100644
--- a/src/mame/drivers/ironhors.cpp
+++ b/src/mame/drivers/ironhors.cpp
@@ -413,10 +413,10 @@ MACHINE_CONFIG_START(ironhors_state::ironhors)
MCFG_SOUND_ADD("ym2203", YM2203, 18432000/6)
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(ironhors_state, filter_w))
- MCFG_SOUND_ROUTE_EX(0, "disc_ih", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "disc_ih", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "disc_ih", 1.0, 2)
- MCFG_SOUND_ROUTE_EX(3, "disc_ih", 1.0, 3)
+ MCFG_SOUND_ROUTE(0, "disc_ih", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "disc_ih", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "disc_ih", 1.0, 2)
+ MCFG_SOUND_ROUTE(3, "disc_ih", 1.0, 3)
MCFG_SOUND_ADD("disc_ih", DISCRETE, 0)
MCFG_DISCRETE_INTF(ironhors)
diff --git a/src/mame/drivers/isbc.cpp b/src/mame/drivers/isbc.cpp
index d1a4faa0f47..e71018506ca 100644
--- a/src/mame/drivers/isbc.cpp
+++ b/src/mame/drivers/isbc.cpp
@@ -380,7 +380,7 @@ MACHINE_CONFIG_START(isbc_state::isbc86)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart8251", i8251_device, write_rxd))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart8251", i8251_device, write_cts))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart8251", i8251_device, write_dsr))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", isbc86_terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", isbc86_terminal)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(isbc_state::rpc86)
@@ -414,7 +414,7 @@ MACHINE_CONFIG_START(isbc_state::rpc86)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart8251", i8251_device, write_rxd))
//MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart8251", i8251_device, write_cts))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart8251", i8251_device, write_dsr))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", isbc286_terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", isbc286_terminal)
MCFG_ISBX_SLOT_ADD("sbx1", 0, isbx_cards, nullptr)
//MCFG_ISBX_SLOT_MINTR0_CALLBACK(DEVWRITELINE("pic_0", pic8259_device, ir3_w))
@@ -535,7 +535,7 @@ MACHINE_CONFIG_START(isbc_state::isbc286)
MCFG_RS232_DCD_HANDLER(DEVWRITELINE("uart8274", i8274_new_device, dcdb_w))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart8274", i8274_new_device, ctsb_w))
#endif
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", isbc286_terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", isbc286_terminal)
MCFG_ISBX_SLOT_ADD("sbx1", 0, isbx_cards, nullptr)
MCFG_ISBX_SLOT_MINTR0_CALLBACK(DEVWRITELINE("pic_1", pic8259_device, ir3_w))
diff --git a/src/mame/drivers/isbc8010.cpp b/src/mame/drivers/isbc8010.cpp
index 6391f15f898..7d97e86b944 100644
--- a/src/mame/drivers/isbc8010.cpp
+++ b/src/mame/drivers/isbc8010.cpp
@@ -188,7 +188,7 @@ MACHINE_CONFIG_START(isbc8010_state::isbc8010)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(I8251A_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE(I8251A_TAG, i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE(I8251A_TAG, i8251_device, write_cts))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_DEVICE_ADD("usart_clock", CLOCK, XTAL(18'432'000)/60)
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(isbc8010_state, usart_clock_tick))
diff --git a/src/mame/drivers/itt3030.cpp b/src/mame/drivers/itt3030.cpp
index c5ab800c0ae..c5923b44a4e 100644
--- a/src/mame/drivers/itt3030.cpp
+++ b/src/mame/drivers/itt3030.cpp
@@ -661,10 +661,11 @@ FLOPPY_FORMATS_MEMBER( itt3030_state::itt3030_floppy_formats )
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( itt3030_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void itt3030_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
diff --git a/src/mame/drivers/jaguar.cpp b/src/mame/drivers/jaguar.cpp
index 3e4f2ba28e1..cf266c2a000 100644
--- a/src/mame/drivers/jaguar.cpp
+++ b/src/mame/drivers/jaguar.cpp
@@ -396,9 +396,10 @@ public:
DEFINE_DEVICE_TYPE(COJAG_HARDDISK, cojag_hdd, "cojag_hdd", "HDD CoJag")
-SLOT_INTERFACE_START(cojag_devices)
- SLOT_INTERFACE("hdd", COJAG_HARDDISK)
-SLOT_INTERFACE_END
+void cojag_devices(device_slot_interface &device)
+{
+ device.option_add("hdd", COJAG_HARDDISK);
+}
/*************************************
*
@@ -1844,8 +1845,8 @@ MACHINE_CONFIG_START(jaguar_state::cojagr3k)
MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(jaguar_state::cojagr3k_rom)
@@ -1891,8 +1892,8 @@ MACHINE_CONFIG_START(jaguar_state::jaguar)
MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
/* quickload */
MCFG_QUICKLOAD_ADD("quickload", jaguar_state, jaguar, "abs,bin,cof,jag,prg", 2)
diff --git a/src/mame/drivers/jankenmn.cpp b/src/mame/drivers/jankenmn.cpp
index c74db0bff83..d01457c0c46 100644
--- a/src/mame/drivers/jankenmn.cpp
+++ b/src/mame/drivers/jankenmn.cpp
@@ -413,7 +413,7 @@ MACHINE_CONFIG_START(jankenmn_state::jankenmn)
MCFG_SOUND_ADD("dac", AD7523, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/juicebox.cpp b/src/mame/drivers/juicebox.cpp
index e09efe19829..e8539384b24 100644
--- a/src/mame/drivers/juicebox.cpp
+++ b/src/mame/drivers/juicebox.cpp
@@ -322,7 +322,7 @@ MACHINE_CONFIG_START(juicebox_state::juicebox)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("s3c44b0", S3C44B0, 10000000)
MCFG_S3C44B0_GPIO_PORT_R_CB(READ32(juicebox_state, s3c44b0_gpio_port_r))
diff --git a/src/mame/drivers/junofrst.cpp b/src/mame/drivers/junofrst.cpp
index 415f11e50ef..705e10df256 100644
--- a/src/mame/drivers/junofrst.cpp
+++ b/src/mame/drivers/junofrst.cpp
@@ -451,7 +451,7 @@ MACHINE_CONFIG_START(junofrst_state::junofrst)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // 100K (R56-63)/200K (R64-71) ladder network
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_FILTER_RC_ADD("filter.0.0", 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
diff --git a/src/mame/drivers/jupiter.cpp b/src/mame/drivers/jupiter.cpp
index da9ce376529..f340242bca1 100644
--- a/src/mame/drivers/jupiter.cpp
+++ b/src/mame/drivers/jupiter.cpp
@@ -236,9 +236,10 @@ uint32_t jupiter3_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
// DEVICE CONFIGURATION
//**************************************************************************
-static SLOT_INTERFACE_START( jupiter_floppies )
- SLOT_INTERFACE( "525ssdd", FLOPPY_525_SSDD )
-SLOT_INTERFACE_END
+static void jupiter_floppies(device_slot_interface &device)
+{
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+}
//**************************************************************************
diff --git a/src/mame/drivers/kaypro.cpp b/src/mame/drivers/kaypro.cpp
index 05ea1ce4fab..9059bd0486d 100644
--- a/src/mame/drivers/kaypro.cpp
+++ b/src/mame/drivers/kaypro.cpp
@@ -187,11 +187,12 @@ static const z80_daisy_config kaypro484_daisy_chain[] =
************************************************************/
-static SLOT_INTERFACE_START( kaypro_floppies )
- SLOT_INTERFACE( "525ssdd", FLOPPY_525_SSDD )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void kaypro_floppies(device_slot_interface &device)
+{
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
MACHINE_CONFIG_START(kaypro_state::kayproii)
diff --git a/src/mame/drivers/kc.cpp b/src/mame/drivers/kc.cpp
index 4928d691ca1..31fc08ab382 100644
--- a/src/mame/drivers/kc.cpp
+++ b/src/mame/drivers/kc.cpp
@@ -75,23 +75,25 @@ static const z80_daisy_config kc85_daisy_chain[] =
{ nullptr }
};
-extern SLOT_INTERFACE_START(kc85_cart)
- SLOT_INTERFACE("standard", KC_STANDARD) // standard 8KB ROM module
- SLOT_INTERFACE("m006", KC_M006) // BASIC
- SLOT_INTERFACE("m011", KC_M011) // 64KB RAM
- SLOT_INTERFACE("m022", KC_M022) // 16KB RAM
- SLOT_INTERFACE("m032", KC_M032) // 256KB segmented RAM
- SLOT_INTERFACE("m033", KC_M033) // TypeStar
- SLOT_INTERFACE("m034", KC_M034) // 512KB segmented RAM
- SLOT_INTERFACE("m035", KC_M035) // 1MB segmented RAM
- SLOT_INTERFACE("m036", KC_M036) // 128KB segmented RAM
-SLOT_INTERFACE_END
-
-extern SLOT_INTERFACE_START(kc85_exp)
- SLOT_INTERFACE("d002", KC_D002) // D002 Bus Driver
- SLOT_INTERFACE("d004", KC_D004) // D004 Floppy Disk Interface
- SLOT_INTERFACE("d004gide", KC_D004_GIDE) // D004 Floppy Disk + GIDE Interface
-SLOT_INTERFACE_END
+void kc85_cart(device_slot_interface &device)
+{
+ device.option_add("standard", KC_STANDARD); // standard 8KB ROM module
+ device.option_add("m006", KC_M006); // BASIC
+ device.option_add("m011", KC_M011); // 64KB RAM
+ device.option_add("m022", KC_M022); // 16KB RAM
+ device.option_add("m032", KC_M032); // 256KB segmented RAM
+ device.option_add("m033", KC_M033); // TypeStar
+ device.option_add("m034", KC_M034); // 512KB segmented RAM
+ device.option_add("m035", KC_M035); // 1MB segmented RAM
+ device.option_add("m036", KC_M036); // 128KB segmented RAM
+}
+
+void kc85_exp(device_slot_interface &device)
+{
+ device.option_add("d002", KC_D002); // D002 Bus Driver
+ device.option_add("d004", KC_D004); // D004 Floppy Disk Interface
+ device.option_add("d004gide", KC_D004_GIDE); // D004 Floppy Disk + GIDE Interface
+}
MACHINE_CONFIG_START(kc_state::kc85_3)
diff --git a/src/mame/drivers/kchamp.cpp b/src/mame/drivers/kchamp.cpp
index 53b9f3186b8..07965a544d2 100644
--- a/src/mame/drivers/kchamp.cpp
+++ b/src/mame/drivers/kchamp.cpp
@@ -512,7 +512,7 @@ MACHINE_CONFIG_START(kchamp_state::kchamp)
MCFG_SOUND_ADD("dac", DAC08, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.3) // IC11
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/kdt6.cpp b/src/mame/drivers/kdt6.cpp
index f60af6c1ddc..0be9d8f4e9e 100644
--- a/src/mame/drivers/kdt6.cpp
+++ b/src/mame/drivers/kdt6.cpp
@@ -222,9 +222,10 @@ INPUT_PORTS_END
// FLOPPY
//**************************************************************************
-static SLOT_INTERFACE_START( kdt6_floppies )
- SLOT_INTERFACE("fd55f", TEAC_FD_55F)
-SLOT_INTERFACE_END
+static void kdt6_floppies(device_slot_interface &device)
+{
+ device.option_add("fd55f", TEAC_FD_55F);
+}
WRITE8_MEMBER( kdt6_state::fdc_tc_w )
{
diff --git a/src/mame/drivers/kingobox.cpp b/src/mame/drivers/kingobox.cpp
index 43a3c99c6b7..64208a14142 100644
--- a/src/mame/drivers/kingobox.cpp
+++ b/src/mame/drivers/kingobox.cpp
@@ -516,7 +516,7 @@ MACHINE_CONFIG_START(kingofb_state::kingofb)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.125) // 100K (R30-44 even)/200K (R31-45 odd) ladder network
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -575,7 +575,7 @@ MACHINE_CONFIG_START(kingofb_state::ringking)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.125) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/konamigx.cpp b/src/mame/drivers/konamigx.cpp
index 810c3d8e12b..a800d7fea07 100644
--- a/src/mame/drivers/konamigx.cpp
+++ b/src/mame/drivers/konamigx.cpp
@@ -1686,15 +1686,15 @@ MACHINE_CONFIG_START(konamigx_state::konamigx)
MCFG_DEVICE_ADD("k054539_1", K054539, XTAL(18'432'000))
MCFG_DEVICE_ROM("k054539")
MCFG_K054539_TIMER_HANDLER(WRITELINE(konamigx_state, k054539_irq_gen))
- MCFG_SOUND_ROUTE_EX(0, "dasp", 0.5, 0)
- MCFG_SOUND_ROUTE_EX(1, "dasp", 0.5, 1)
+ MCFG_SOUND_ROUTE(0, "dasp", 0.5, 0)
+ MCFG_SOUND_ROUTE(1, "dasp", 0.5, 1)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MCFG_DEVICE_ADD("k054539_2", K054539, XTAL(18'432'000))
MCFG_DEVICE_ROM("k054539")
- MCFG_SOUND_ROUTE_EX(0, "dasp", 0.5, 2)
- MCFG_SOUND_ROUTE_EX(1, "dasp", 0.5, 3)
+ MCFG_SOUND_ROUTE(0, "dasp", 0.5, 2)
+ MCFG_SOUND_ROUTE(1, "dasp", 0.5, 3)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ksayakyu.cpp b/src/mame/drivers/ksayakyu.cpp
index 226c7850a08..09c398b1c66 100644
--- a/src/mame/drivers/ksayakyu.cpp
+++ b/src/mame/drivers/ksayakyu.cpp
@@ -302,7 +302,7 @@ MACHINE_CONFIG_START(ksayakyu_state::ksayakyu)
MCFG_SOUND_ADD("dac", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
ROM_START( ksayakyu )
diff --git a/src/mame/drivers/ksys573.cpp b/src/mame/drivers/ksys573.cpp
index 9b1fee69676..135d9560181 100644
--- a/src/mame/drivers/ksys573.cpp
+++ b/src/mame/drivers/ksys573.cpp
@@ -2417,7 +2417,7 @@ MACHINE_CONFIG_START(ksys573_state::hyperbbc)
cassy(config); // The game doesn't check the security chip
MCFG_DEVICE_MODIFY( "cassette" )
- MCFG_DEVICE_CARD_MACHINE_CONFIG( "game", hyperbbc_cassette_install )
+ MCFG_SLOT_OPTION_MACHINE_CONFIG( "game", hyperbbc_cassette_install )
MACHINE_CONFIG_END
MACHINE_CONFIG_START(ksys573_state::hypbbc2p)
@@ -2425,7 +2425,7 @@ MACHINE_CONFIG_START(ksys573_state::hypbbc2p)
cassy(config);
MCFG_DEVICE_MODIFY( "cassette" )
- MCFG_DEVICE_CARD_MACHINE_CONFIG( "game", hypbbc2p_cassette_install )
+ MCFG_SLOT_OPTION_MACHINE_CONFIG( "game", hypbbc2p_cassette_install )
MACHINE_CONFIG_END
MACHINE_CONFIG_START(ksys573_state::salarymc)
@@ -2433,7 +2433,7 @@ MACHINE_CONFIG_START(ksys573_state::salarymc)
cassyi(config);
MCFG_DEVICE_MODIFY( "cassette" )
- MCFG_DEVICE_CARD_MACHINE_CONFIG( "game", salarymc_cassette_install )
+ MCFG_SLOT_OPTION_MACHINE_CONFIG( "game", salarymc_cassette_install )
MACHINE_CONFIG_END
MACHINE_CONFIG_START(ksys573_state::gchgchmp)
@@ -2451,7 +2451,7 @@ MACHINE_CONFIG_START(ksys573_state::pnchmn)
pccard1_32mb(config);
MCFG_DEVICE_MODIFY( "cassette" )
- MCFG_DEVICE_CARD_MACHINE_CONFIG( "game", punchmania_cassette_install )
+ MCFG_SLOT_OPTION_MACHINE_CONFIG( "game", punchmania_cassette_install )
MACHINE_CONFIG_END
MACHINE_CONFIG_START(ksys573_state::pnchmn2)
diff --git a/src/mame/drivers/ladyfrog.cpp b/src/mame/drivers/ladyfrog.cpp
index e0c7a3b9d82..ad56581f06c 100644
--- a/src/mame/drivers/ladyfrog.cpp
+++ b/src/mame/drivers/ladyfrog.cpp
@@ -342,7 +342,7 @@ MACHINE_CONFIG_START(ladyfrog_state::ladyfrog)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(ladyfrog_state::toucheme)
diff --git a/src/mame/drivers/laserbas.cpp b/src/mame/drivers/laserbas.cpp
index 3e8c5ef0666..44b09b776ed 100644
--- a/src/mame/drivers/laserbas.cpp
+++ b/src/mame/drivers/laserbas.cpp
@@ -455,12 +455,12 @@ MACHINE_CONFIG_START(laserbas_state::laserbas)
MCFG_SOUND_ADD("dac5", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.16)
MCFG_SOUND_ADD("dac6", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.16)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac3", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac4", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac5", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac6", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac3", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac4", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac5", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac6", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/lasso.cpp b/src/mame/drivers/lasso.cpp
index 297d96d493f..e1bd72552c7 100644
--- a/src/mame/drivers/lasso.cpp
+++ b/src/mame/drivers/lasso.cpp
@@ -582,7 +582,7 @@ MACHINE_CONFIG_START(lasso_state::wwjgtin)
/* sound hardware */
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(lasso_state::pinbo)
diff --git a/src/mame/drivers/lazercmd.cpp b/src/mame/drivers/lazercmd.cpp
index 84c884159f5..09611f0cef0 100644
--- a/src/mame/drivers/lazercmd.cpp
+++ b/src/mame/drivers/lazercmd.cpp
@@ -658,10 +658,10 @@ MACHINE_CONFIG_START(lazercmd_state::lazercmd)
MCFG_SOUND_ADD("dac2", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
MCFG_SOUND_ADD("dac3", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac0", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac3", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac0", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
@@ -695,8 +695,8 @@ MACHINE_CONFIG_START(lazercmd_state::medlanes)
MCFG_SOUND_ADD("dac2", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
MCFG_SOUND_ADD("dac3", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac3", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
@@ -730,8 +730,8 @@ MACHINE_CONFIG_START(lazercmd_state::bbonk)
MCFG_SOUND_ADD("dac2", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
MCFG_SOUND_ADD("dac3", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac3", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
/***************************************************************************
diff --git a/src/mame/drivers/lb186.cpp b/src/mame/drivers/lb186.cpp
index 220c8ee3f04..4c5735ae2b0 100644
--- a/src/mame/drivers/lb186.cpp
+++ b/src/mame/drivers/lb186.cpp
@@ -108,9 +108,10 @@ void lb186_state::lb186_io(address_map &map)
map(0x1200, 0x1200).w(this, FUNC(lb186_state::drive_sel_w));
}
-static SLOT_INTERFACE_START( lb186_floppies )
- SLOT_INTERFACE("525dd", FLOPPY_525_DD)
-SLOT_INTERFACE_END
+static void lb186_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
void lb186_state::ncr5380(device_t *device)
{
@@ -121,10 +122,11 @@ void lb186_state::ncr5380(device_t *device)
MCFG_NCR5380N_DRQ_HANDLER(DEVWRITELINE(":maincpu", i80186_cpu_device, drq0_w))
}
-static SLOT_INTERFACE_START( scsi_devices )
- SLOT_INTERFACE("harddisk", NSCSI_HARDDISK)
- SLOT_INTERFACE_INTERNAL("ncr5380", NCR5380N)
-SLOT_INTERFACE_END
+static void scsi_devices(device_slot_interface &device)
+{
+ device.option_add("harddisk", NSCSI_HARDDISK);
+ device.option_add_internal("ncr5380", NCR5380N);
+}
FLOPPY_FORMATS_MEMBER( lb186_state::floppy_formats )
FLOPPY_PC_FORMAT,
@@ -164,7 +166,7 @@ MACHINE_CONFIG_START(lb186_state::lb186)
MCFG_NSCSI_ADD("scsibus:5", scsi_devices, nullptr, false)
MCFG_NSCSI_ADD("scsibus:6", scsi_devices, nullptr, false)
MCFG_NSCSI_ADD("scsibus:7", scsi_devices, "ncr5380", true)
- MCFG_DEVICE_CARD_MACHINE_CONFIG("ncr5380", lb186_state::ncr5380)
+ MCFG_SLOT_OPTION_MACHINE_CONFIG("ncr5380", lb186_state::ncr5380)
MACHINE_CONFIG_END
ROM_START( lb186 )
diff --git a/src/mame/drivers/leland.cpp b/src/mame/drivers/leland.cpp
index aa588923fa6..f8f6fc43bf7 100644
--- a/src/mame/drivers/leland.cpp
+++ b/src/mame/drivers/leland.cpp
@@ -1043,8 +1043,8 @@ MACHINE_CONFIG_START(leland_state::leland)
MCFG_SOUND_ADD("dac0", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625) // ls374.u79 + r17-r23 (24k,12k,6.2k,3k,1.5k,750,390,180)
MCFG_SOUND_ADD("dac1", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625) // ls374.u88 + r27-r34 (24k,12k,6.2k,3k,1.5k,750,390,180)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac0", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac0", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/littlerb.cpp b/src/mame/drivers/littlerb.cpp
index cc8de0fda9b..863784d23cc 100644
--- a/src/mame/drivers/littlerb.cpp
+++ b/src/mame/drivers/littlerb.cpp
@@ -298,8 +298,8 @@ MACHINE_CONFIG_START(littlerb_state::littlerb)
MCFG_SOUND_ADD("ldac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
ROM_START( littlerb )
diff --git a/src/mame/drivers/looping.cpp b/src/mame/drivers/looping.cpp
index 7e329792df6..0e50e0c4714 100644
--- a/src/mame/drivers/looping.cpp
+++ b/src/mame/drivers/looping.cpp
@@ -685,7 +685,7 @@ MACHINE_CONFIG_START(looping_state::looping)
MCFG_SOUND_ADD("dac", DAC_2BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.15) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("sen0", LS259, 0) // B3 on sound board
MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(looping_state, looping_souint_clr))
diff --git a/src/mame/drivers/luckybal.cpp b/src/mame/drivers/luckybal.cpp
index b06cce32f84..d7ecf4d13ba 100644
--- a/src/mame/drivers/luckybal.cpp
+++ b/src/mame/drivers/luckybal.cpp
@@ -550,7 +550,7 @@ MACHINE_CONFIG_START(luckybal_state::luckybal)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC08, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // DAC 08
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/m20.cpp b/src/mame/drivers/m20.cpp
index 8713a796516..68197116455 100644
--- a/src/mame/drivers/m20.cpp
+++ b/src/mame/drivers/m20.cpp
@@ -772,18 +772,20 @@ void m20_state::machine_reset()
}
-static SLOT_INTERFACE_START( m20_floppies )
- SLOT_INTERFACE( "5dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void m20_floppies(device_slot_interface &device)
+{
+ device.option_add("5dd", FLOPPY_525_DD);
+}
FLOPPY_FORMATS_MEMBER( m20_state::floppy_formats )
FLOPPY_M20_FORMAT,
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START(keyboard)
- SLOT_INTERFACE("m20", M20_KEYBOARD)
-SLOT_INTERFACE_END
+static void keyboard(device_slot_interface &device)
+{
+ device.option_add("m20", M20_KEYBOARD);
+}
MACHINE_CONFIG_START(m20_state::m20)
/* basic machine hardware */
diff --git a/src/mame/drivers/m5.cpp b/src/mame/drivers/m5.cpp
index b42bec05d3c..5b32de5e738 100644
--- a/src/mame/drivers/m5.cpp
+++ b/src/mame/drivers/m5.cpp
@@ -980,14 +980,16 @@ FLOPPY_FORMATS_MEMBER( m5_state::floppy_formats )
FLOPPY_M5_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( m5_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void m5_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
-static SLOT_INTERFACE_START(m5_cart)
- SLOT_INTERFACE_INTERNAL("std", M5_ROM_STD)
- SLOT_INTERFACE_INTERNAL("ram", M5_ROM_RAM)
-SLOT_INTERFACE_END
+static void m5_cart(device_slot_interface &device)
+{
+ device.option_add_internal("std", M5_ROM_STD);
+ device.option_add_internal("ram", M5_ROM_RAM);
+}
//-------------------------------------------------
// z80_daisy_config m5_daisy_chain
@@ -1211,9 +1213,10 @@ FLOPPY_FORMATS_MEMBER( brno_state::floppy_formats )
FLOPPY_DSK_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( brno_floppies )
- SLOT_INTERFACE("35hd", FLOPPY_35_DD)
-SLOT_INTERFACE_END
+static void brno_floppies(device_slot_interface &device)
+{
+ device.option_add("35hd", FLOPPY_35_DD);
+}
//**************************************************************************
diff --git a/src/mame/drivers/m72.cpp b/src/mame/drivers/m72.cpp
index bc66a2b443b..263a1a8637f 100644
--- a/src/mame/drivers/m72.cpp
+++ b/src/mame/drivers/m72.cpp
@@ -1878,7 +1878,7 @@ MACHINE_CONFIG_START(m72_state::m72_audio_chips)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(m72_state::m72_base)
diff --git a/src/mame/drivers/m90.cpp b/src/mame/drivers/m90.cpp
index 286bf58795a..69a35eaef30 100644
--- a/src/mame/drivers/m90.cpp
+++ b/src/mame/drivers/m90.cpp
@@ -767,7 +767,7 @@ MACHINE_CONFIG_START(m90_state::m90)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mac.cpp b/src/mame/drivers/mac.cpp
index 18d0f433053..1ee8b801fe2 100644
--- a/src/mame/drivers/mac.cpp
+++ b/src/mame/drivers/mac.cpp
@@ -884,39 +884,43 @@ static const applefdc_interface mac_iwm_interface =
sony_read_status
};
-static SLOT_INTERFACE_START(mac_nubus_cards)
- SLOT_INTERFACE("m2video", NUBUS_M2VIDEO) /* Apple Macintosh II Video Card */
- SLOT_INTERFACE("48gc", NUBUS_48GC) /* Apple 4*8 Graphics Card */
- SLOT_INTERFACE("824gc", NUBUS_824GC) /* Apple 8*24 Graphics Card */
- SLOT_INTERFACE("cb264", NUBUS_CB264) /* RasterOps ColorBoard 264 */
- SLOT_INTERFACE("vikbw", NUBUS_VIKBW) /* Moniterm Viking board */
- SLOT_INTERFACE("image", NUBUS_IMAGE) /* Disk Image Pseudo-Card */
- SLOT_INTERFACE("specpdq", NUBUS_SPECPDQ) /* SuperMac Spectrum PDQ */
- SLOT_INTERFACE("m2hires", NUBUS_M2HIRES) /* Apple Macintosh II Hi-Resolution Card */
- SLOT_INTERFACE("spec8s3", NUBUS_SPEC8S3) /* SuperMac Spectrum/8 Series III */
-// SLOT_INTERFACE("thundergx", NUBUS_THUNDERGX) /* Radius Thunder GX (not yet) */
- SLOT_INTERFACE("radiustpd", NUBUS_RADIUSTPD) /* Radius Two Page Display */
- SLOT_INTERFACE("asmc3nb", NUBUS_ASNTMC3NB) /* Asante MC3NB Ethernet card */
- SLOT_INTERFACE("portrait", NUBUS_WSPORTRAIT) /* Apple Macintosh II Portrait video card */
- SLOT_INTERFACE("enetnb", NUBUS_APPLEENET) /* Apple NuBus Ethernet */
- SLOT_INTERFACE("bootbug", NUBUS_BOOTBUG) /* Brigent BootBug debugger card */
- SLOT_INTERFACE("quadralink", NUBUS_QUADRALINK) /* AE Quadralink serial card */
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START(mac_pds030_cards)
- SLOT_INTERFACE("cb264", PDS030_CB264SE30) // RasterOps Colorboard 264/SE30
- SLOT_INTERFACE("pc816", PDS030_PROCOLOR816) // Lapis ProColor Server 8*16 PDS
- SLOT_INTERFACE("lview", PDS030_LVIEW) // Sigma Designs L-View
- SLOT_INTERFACE("30hr", PDS030_XCEED30HR) // Micron/XCEED Technology Color 30HR
- SLOT_INTERFACE("mc30", PDS030_XCEEDMC30) // Micron/XCEED Technology MacroColor 30
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START(mac_sepds_cards)
- SLOT_INTERFACE("radiusfpd", PDS_SEDISPLAY) // Radius Full Page Display card for SE
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START(mac_lcpds_cards)
-SLOT_INTERFACE_END
+static void mac_nubus_cards(device_slot_interface &device)
+{
+ device.option_add("m2video", NUBUS_M2VIDEO); /* Apple Macintosh II Video Card */
+ device.option_add("48gc", NUBUS_48GC); /* Apple 4*8 Graphics Card */
+ device.option_add("824gc", NUBUS_824GC); /* Apple 8*24 Graphics Card */
+ device.option_add("cb264", NUBUS_CB264); /* RasterOps ColorBoard 264 */
+ device.option_add("vikbw", NUBUS_VIKBW); /* Moniterm Viking board */
+ device.option_add("image", NUBUS_IMAGE); /* Disk Image Pseudo-Card */
+ device.option_add("specpdq", NUBUS_SPECPDQ); /* SuperMac Spectrum PDQ */
+ device.option_add("m2hires", NUBUS_M2HIRES); /* Apple Macintosh II Hi-Resolution Card */
+ device.option_add("spec8s3", NUBUS_SPEC8S3); /* SuperMac Spectrum/8 Series III */
+// device.option_add("thundergx", NUBUS_THUNDERGX); /* Radius Thunder GX (not yet) */
+ device.option_add("radiustpd", NUBUS_RADIUSTPD); /* Radius Two Page Display */
+ device.option_add("asmc3nb", NUBUS_ASNTMC3NB); /* Asante MC3NB Ethernet card */
+ device.option_add("portrait", NUBUS_WSPORTRAIT); /* Apple Macintosh II Portrait video card */
+ device.option_add("enetnb", NUBUS_APPLEENET); /* Apple NuBus Ethernet */
+ device.option_add("bootbug", NUBUS_BOOTBUG); /* Brigent BootBug debugger card */
+ device.option_add("quadralink", NUBUS_QUADRALINK); /* AE Quadralink serial card */
+}
+
+static void mac_pds030_cards(device_slot_interface &device)
+{
+ device.option_add("cb264", PDS030_CB264SE30); // RasterOps Colorboard 264/SE30
+ device.option_add("pc816", PDS030_PROCOLOR816); // Lapis ProColor Server 8*16 PDS
+ device.option_add("lview", PDS030_LVIEW); // Sigma Designs L-View
+ device.option_add("30hr", PDS030_XCEED30HR); // Micron/XCEED Technology Color 30HR
+ device.option_add("mc30", PDS030_XCEEDMC30); // Micron/XCEED Technology MacroColor 30
+}
+
+static void mac_sepds_cards(device_slot_interface &device)
+{
+ device.option_add("radiusfpd", PDS_SEDISPLAY); // Radius Full Page Display card for SE
+}
+
+static void mac_lcpds_cards(device_slot_interface &device)
+{
+}
/***************************************************************************
MACHINE DRIVERS
@@ -954,7 +958,7 @@ MACHINE_CONFIG_START(mac_state::mac512ke)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_PWM, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // 2 x ls161
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
/* devices */
MCFG_RTC3430042_ADD("rtc", XTAL(32'768))
diff --git a/src/mame/drivers/mac128.cpp b/src/mame/drivers/mac128.cpp
index f88b5cd190d..3f2b3ce51fc 100644
--- a/src/mame/drivers/mac128.cpp
+++ b/src/mame/drivers/mac128.cpp
@@ -1347,7 +1347,7 @@ MACHINE_CONFIG_START(mac128_state::mac512ke)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD(DAC_TAG, DAC_8BIT_PWM, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // 2 x ls161
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, DAC_TAG, 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, DAC_TAG, -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, DAC_TAG, 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, DAC_TAG, -1.0, DAC_VREF_NEG_INPUT)
/* devices */
MCFG_RTC3430042_ADD("rtc", XTAL(32'768))
diff --git a/src/mame/drivers/madalien.cpp b/src/mame/drivers/madalien.cpp
index 2e556bdb22a..876d32de1ad 100644
--- a/src/mame/drivers/madalien.cpp
+++ b/src/mame/drivers/madalien.cpp
@@ -173,9 +173,9 @@ MACHINE_CONFIG_START(madalien_state::madalien)
MCFG_SOUND_ADD("aysnd", AY8910, SOUND_CLOCK / 4)
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(madalien_state, madalien_portA_w))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(madalien_state, madalien_portB_w))
- MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 2)
+ MCFG_SOUND_ROUTE(0, "discrete", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "discrete", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "discrete", 1.0, 2)
MCFG_SOUND_ADD("discrete", DISCRETE, 0)
MCFG_DISCRETE_INTF(madalien)
diff --git a/src/mame/drivers/magicfly.cpp b/src/mame/drivers/magicfly.cpp
index 142efc6b10a..607f0070703 100644
--- a/src/mame/drivers/magicfly.cpp
+++ b/src/mame/drivers/magicfly.cpp
@@ -967,7 +967,7 @@ MACHINE_CONFIG_START(magicfly_state::magicfly)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/magtouch.cpp b/src/mame/drivers/magtouch.cpp
index 961fad1479c..cd83d2052fd 100644
--- a/src/mame/drivers/magtouch.cpp
+++ b/src/mame/drivers/magtouch.cpp
@@ -175,9 +175,10 @@ void magtouch_state::machine_start()
machine().device<nvram_device>("nvram")->set_base(memshare("nvram")->ptr(), 0x2000);
}
-static SLOT_INTERFACE_START( magtouch_isa8_cards )
- SLOT_INTERFACE("sb15", ISA8_SOUND_BLASTER_1_5)
-SLOT_INTERFACE_END
+static void magtouch_isa8_cards(device_slot_interface &device)
+{
+ device.option_add("sb15", ISA8_SOUND_BLASTER_1_5);
+}
static DEVICE_INPUT_DEFAULTS_START( magtouch_sb_def )
DEVICE_INPUT_DEFAULTS("CONFIG", 0x03, 0x01)
@@ -224,8 +225,8 @@ MACHINE_CONFIG_START(magtouch_state::magtouch)
MCFG_ISA_OUT_DRQ3_CB(DEVWRITELINE("dma8237_1", am9517a_device, dreq3_w))
MCFG_ISA8_SLOT_ADD("isa", "isa1", magtouch_isa8_cards, "sb15", true)
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("sb15", magtouch_sb_def)
- MCFG_DEVICE_CARD_MACHINE_CONFIG("sb15", magtouch_sb_conf)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("sb15", magtouch_sb_def)
+ MCFG_SLOT_OPTION_MACHINE_CONFIG("sb15", magtouch_sb_conf)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mappy.cpp b/src/mame/drivers/mappy.cpp
index a7083a7a13b..f1ab252ccec 100644
--- a/src/mame/drivers/mappy.cpp
+++ b/src/mame/drivers/mappy.cpp
@@ -1423,7 +1423,7 @@ MACHINE_CONFIG_START(mappy_state::grobda)
/* sound hardware */
MCFG_SOUND_ADD("dac", DAC_4BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.275) // alternate route to 15XX-related DAC?
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/matmania.cpp b/src/mame/drivers/matmania.cpp
index 321877c034d..2881910e916 100644
--- a/src/mame/drivers/matmania.cpp
+++ b/src/mame/drivers/matmania.cpp
@@ -338,7 +338,7 @@ MACHINE_CONFIG_START(matmania_state::matmania)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -380,7 +380,7 @@ MACHINE_CONFIG_START(matmania_state::maniach)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mbc200.cpp b/src/mame/drivers/mbc200.cpp
index 1bf923a8834..bc35d247d86 100644
--- a/src/mame/drivers/mbc200.cpp
+++ b/src/mame/drivers/mbc200.cpp
@@ -257,9 +257,10 @@ void mbc200_state::machine_reset()
memcpy(main, roms, 0x1000);
}
-static SLOT_INTERFACE_START( mbc200_floppies )
- SLOT_INTERFACE("qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void mbc200_floppies(device_slot_interface &device)
+{
+ device.option_add("qd", FLOPPY_525_QD);
+}
MC6845_UPDATE_ROW( mbc200_state::update_row )
{
diff --git a/src/mame/drivers/mbc55x.cpp b/src/mame/drivers/mbc55x.cpp
index 590021b1d7d..b03dc34be0c 100644
--- a/src/mame/drivers/mbc55x.cpp
+++ b/src/mame/drivers/mbc55x.cpp
@@ -233,11 +233,12 @@ FLOPPY_FORMATS_END
// MBC-555-2 : 2 x 5.25" disk-drive (360 KB)
// MBC-555-3 : 2 x 5.25" disk-drive (720 KB)
-static SLOT_INTERFACE_START( mbc55x_floppies )
- SLOT_INTERFACE("ssdd", FLOPPY_525_SSDD)
- SLOT_INTERFACE("dd", FLOPPY_525_DD)
- SLOT_INTERFACE("qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+static void mbc55x_floppies(device_slot_interface &device)
+{
+ device.option_add("ssdd", FLOPPY_525_SSDD);
+ device.option_add("dd", FLOPPY_525_DD);
+ device.option_add("qd", FLOPPY_525_QD);
+}
MACHINE_CONFIG_START(mbc55x_state::mbc55x)
diff --git a/src/mame/drivers/mbee.cpp b/src/mame/drivers/mbee.cpp
index c8bd762ed01..bfa988b4e59 100644
--- a/src/mame/drivers/mbee.cpp
+++ b/src/mame/drivers/mbee.cpp
@@ -638,10 +638,11 @@ static GFXDECODE_START( premium )
GFXDECODE_ENTRY( "gfx", 0x0000, mbee_charlayout, 0, 8 )
GFXDECODE_END
-static SLOT_INTERFACE_START( mbee_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void mbee_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+ device.option_add("525qd", FLOPPY_525_QD);
+}
MACHINE_CONFIG_START(mbee_state::mbee)
diff --git a/src/mame/drivers/mc10.cpp b/src/mame/drivers/mc10.cpp
index d8dbf426ccd..373c6597cf0 100644
--- a/src/mame/drivers/mc10.cpp
+++ b/src/mame/drivers/mc10.cpp
@@ -525,7 +525,7 @@ MACHINE_CONFIG_START(mc10_state::mc10)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_CASSETTE_ADD("cassette")
MCFG_CASSETTE_FORMATS(coco_cassette_formats)
@@ -567,7 +567,7 @@ MACHINE_CONFIG_START(mc10_state::alice32)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_CASSETTE_ADD("cassette")
MCFG_CASSETTE_FORMATS(alice32_cassette_formats)
diff --git a/src/mame/drivers/meadows.cpp b/src/mame/drivers/meadows.cpp
index a89ffd74216..1af9b65f906 100644
--- a/src/mame/drivers/meadows.cpp
+++ b/src/mame/drivers/meadows.cpp
@@ -649,7 +649,7 @@ MACHINE_CONFIG_START(meadows_state::meadows)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("samples", SAMPLES, 0)
MCFG_SAMPLES_CHANNELS(2)
@@ -710,7 +710,7 @@ MACHINE_CONFIG_START(meadows_state::bowl3d)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("samples", SAMPLES, 0)
MCFG_SAMPLES_CHANNELS(2)
diff --git a/src/mame/drivers/megazone.cpp b/src/mame/drivers/megazone.cpp
index 03bc671de25..e5aa36e81fb 100644
--- a/src/mame/drivers/megazone.cpp
+++ b/src/mame/drivers/megazone.cpp
@@ -353,7 +353,7 @@ MACHINE_CONFIG_START(megazone_state::megazone)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_FILTER_RC_ADD("filter.0.0", 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
diff --git a/src/mame/drivers/mephistp.cpp b/src/mame/drivers/mephistp.cpp
index 58ad92a02a5..926ce10cb2b 100644
--- a/src/mame/drivers/mephistp.cpp
+++ b/src/mame/drivers/mephistp.cpp
@@ -194,7 +194,7 @@ MACHINE_CONFIG_START(mephisto_pinball_state::mephisto)
MCFG_SOUND_ADD("dac", DAC08, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
#ifdef UNUSED_DEFINITION
diff --git a/src/mame/drivers/meyc8080.cpp b/src/mame/drivers/meyc8080.cpp
index f4137636dc9..560d8786d55 100644
--- a/src/mame/drivers/meyc8080.cpp
+++ b/src/mame/drivers/meyc8080.cpp
@@ -602,7 +602,7 @@ MACHINE_CONFIG_START(meyc8080_state::meyc8080)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_2BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.66) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/meyc8088.cpp b/src/mame/drivers/meyc8088.cpp
index 7c5c0900fea..7591cd3648a 100644
--- a/src/mame/drivers/meyc8088.cpp
+++ b/src/mame/drivers/meyc8088.cpp
@@ -386,7 +386,7 @@ MACHINE_CONFIG_START(meyc8088_state::meyc8088)
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mfabfz.cpp b/src/mame/drivers/mfabfz.cpp
index 5b9349674f9..84061de188f 100644
--- a/src/mame/drivers/mfabfz.cpp
+++ b/src/mame/drivers/mfabfz.cpp
@@ -143,7 +143,7 @@ MACHINE_CONFIG_START(mfabfz_state::mfabfz85)
MCFG_I8085A_SID(DEVREADLINE("rs232", rs232_port_device, rxd_r))
MCFG_I8085A_SOD(DEVWRITELINE("rs232", rs232_port_device, write_txd)) MCFG_DEVCB_INVERT
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_DEVICE_ADD("uart2", I8251, 0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mice.cpp b/src/mame/drivers/mice.cpp
index 53ccec98d62..cefd0c0bac6 100644
--- a/src/mame/drivers/mice.cpp
+++ b/src/mame/drivers/mice.cpp
@@ -178,7 +178,7 @@ MACHINE_CONFIG_START(mice_state::mice)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart", i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart", i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart", i8251_device, write_cts))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", mice_terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", mice_terminal)
MCFG_DEVICE_ADD("rpt", I8155, 6.144_MHz_XTAL / 2)
MCFG_I8155_IN_PORTC_CB(IOPORT("BAUD"))
@@ -195,7 +195,7 @@ MACHINE_CONFIG_START(mice_state::mice2)
MCFG_CPU_IO_MAP(mice2_io)
MCFG_DEVICE_MODIFY("rs232")
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", mice2_terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", mice2_terminal)
MCFG_DEVICE_ADD("rttppi1", I8255, 0)
MCFG_DEVICE_ADD("rttppi2", I8255, 0)
diff --git a/src/mame/drivers/microdec.cpp b/src/mame/drivers/microdec.cpp
index 46c9e4ec955..80d3f3a48c5 100644
--- a/src/mame/drivers/microdec.cpp
+++ b/src/mame/drivers/microdec.cpp
@@ -173,9 +173,10 @@ void microdec_state::machine_reset()
m_maincpu->set_input_line_vector(0, 0x7f);
}
-static SLOT_INTERFACE_START( microdec_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
-SLOT_INTERFACE_END
+static void microdec_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+}
DRIVER_INIT_MEMBER( microdec_state, microdec )
{
diff --git a/src/mame/drivers/microkit.cpp b/src/mame/drivers/microkit.cpp
index c5b7b6c27f9..445814b69ce 100644
--- a/src/mame/drivers/microkit.cpp
+++ b/src/mame/drivers/microkit.cpp
@@ -129,7 +129,7 @@ MACHINE_CONFIG_START(microkit_state::microkit)
/* video hardware */
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "keyboard")
MCFG_RS232_RXD_HANDLER(INPUTLINE("maincpu", COSMAC_INPUT_LINE_EF4))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("keyboard", serial_keyb)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("keyboard", serial_keyb)
MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/microvsn.cpp b/src/mame/drivers/microvsn.cpp
index 8a0023422cd..b53b9690918 100644
--- a/src/mame/drivers/microvsn.cpp
+++ b/src/mame/drivers/microvsn.cpp
@@ -670,7 +670,7 @@ MACHINE_CONFIG_START(microvision_state::microvision)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_2BIT_BINARY_WEIGHTED_ONES_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "microvision_cart")
MCFG_GENERIC_MANDATORY
diff --git a/src/mame/drivers/mikro80.cpp b/src/mame/drivers/mikro80.cpp
index 45c24638eb3..3d25513ec17 100644
--- a/src/mame/drivers/mikro80.cpp
+++ b/src/mame/drivers/mikro80.cpp
@@ -208,7 +208,7 @@ MACHINE_CONFIG_START(mikro80_state::radio99)
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.12)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(mikro80_state::kristall)
diff --git a/src/mame/drivers/mikromik.cpp b/src/mame/drivers/mikromik.cpp
index 37a2b0a57c3..0811bbb61ad 100644
--- a/src/mame/drivers/mikromik.cpp
+++ b/src/mame/drivers/mikromik.cpp
@@ -407,9 +407,10 @@ FLOPPY_FORMATS_MEMBER( mm2_state::floppy_formats )
FLOPPY_MM2_FORMAT
FLOPPY_FORMATS_END
*/
-static SLOT_INTERFACE_START( mm1_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void mm1_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
//**************************************************************************
diff --git a/src/mame/drivers/mini2440.cpp b/src/mame/drivers/mini2440.cpp
index 977f2eef4f4..4f53a249620 100644
--- a/src/mame/drivers/mini2440.cpp
+++ b/src/mame/drivers/mini2440.cpp
@@ -241,8 +241,8 @@ MACHINE_CONFIG_START(mini2440_state::mini2440)
MCFG_SOUND_ADD("ldac", UDA1341TS, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // uda1341ts.u12
MCFG_SOUND_ADD("rdac", UDA1341TS, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // uda1341ts.u12
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("s3c2440", S3C2440, 12000000)
MCFG_S3C2440_PALETTE("palette")
diff --git a/src/mame/drivers/miniforce.cpp b/src/mame/drivers/miniforce.cpp
index 7632c15f1b3..a5810112340 100644
--- a/src/mame/drivers/miniforce.cpp
+++ b/src/mame/drivers/miniforce.cpp
@@ -168,12 +168,13 @@ void miniforce_state::machine_reset()
static INPUT_PORTS_START (miniforce)
INPUT_PORTS_END
-static SLOT_INTERFACE_START(miniforce_vme_cards)
- SLOT_INTERFACE("fccpu21", VME_FCCPU21)
- SLOT_INTERFACE("fcisio", VME_FCISIO1)
- SLOT_INTERFACE("fcscsi", VME_FCSCSI1)
- SLOT_INTERFACE("hcpu30", VME_HCPU30)
-SLOT_INTERFACE_END
+static void miniforce_vme_cards(device_slot_interface &device)
+{
+ device.option_add("fccpu21", VME_FCCPU21);
+ device.option_add("fcisio", VME_FCISIO1);
+ device.option_add("fcscsi", VME_FCSCSI1);
+ device.option_add("hcpu30", VME_HCPU30);
+}
/*
* Machine configuration
diff --git a/src/mame/drivers/miniframe.cpp b/src/mame/drivers/miniframe.cpp
index a9119e46b15..0c7218fcc1d 100644
--- a/src/mame/drivers/miniframe.cpp
+++ b/src/mame/drivers/miniframe.cpp
@@ -217,9 +217,10 @@ INPUT_PORTS_END
MACHINE DRIVERS
***************************************************************************/
-static SLOT_INTERFACE_START( miniframe_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void miniframe_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
MACHINE_CONFIG_START(miniframe_state::miniframe)
// basic machine hardware
diff --git a/src/mame/drivers/mjsister.cpp b/src/mame/drivers/mjsister.cpp
index 0faf7dfc82c..5c76bd6bed2 100644
--- a/src/mame/drivers/mjsister.cpp
+++ b/src/mame/drivers/mjsister.cpp
@@ -534,7 +534,7 @@ MACHINE_CONFIG_START(mjsister_state::mjsister)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/*************************************
diff --git a/src/mame/drivers/mk14.cpp b/src/mame/drivers/mk14.cpp
index 89389b2b28e..37f4c4e2bbb 100644
--- a/src/mame/drivers/mk14.cpp
+++ b/src/mame/drivers/mk14.cpp
@@ -216,8 +216,8 @@ MACHINE_CONFIG_START(mk14_state::mk14)
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_SOUND_ADD("dac8", ZN425E, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // Ferranti ZN425E
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac8", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac8", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac8", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac8", -1.0, DAC_VREF_NEG_INPUT)
/* devices */
MCFG_DEVICE_ADD("ic8", INS8154, 0)
diff --git a/src/mame/drivers/mogura.cpp b/src/mame/drivers/mogura.cpp
index 6ec4ebad7cc..df41dadcbff 100644
--- a/src/mame/drivers/mogura.cpp
+++ b/src/mame/drivers/mogura.cpp
@@ -233,8 +233,8 @@ MACHINE_CONFIG_START(mogura_state::mogura)
MCFG_SOUND_ADD("ldac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mpz80.cpp b/src/mame/drivers/mpz80.cpp
index d6942709c85..37d630d5cd3 100644
--- a/src/mame/drivers/mpz80.cpp
+++ b/src/mame/drivers/mpz80.cpp
@@ -664,15 +664,16 @@ WRITE_LINE_MEMBER( mpz80_state::s100_nmi_w )
//#include "bus/s100/nsmdsad.h"
#include "bus/s100/wunderbus.h"
-static SLOT_INTERFACE_START( mpz80_s100_cards )
- SLOT_INTERFACE("mm65k16s", S100_MM65K16S)
- SLOT_INTERFACE("wunderbus", S100_WUNDERBUS)
- SLOT_INTERFACE("dj2db", S100_DJ2DB)
- SLOT_INTERFACE("djdma", S100_DJDMA)
-// SLOT_INTERFACE("multio", S100_MULTIO)
-// SLOT_INTERFACE("hdcdma", S100_HDCDMA)
-// SLOT_INTERFACE("hdca", S100_HDCA)
-SLOT_INTERFACE_END
+static void mpz80_s100_cards(device_slot_interface &device)
+{
+ device.option_add("mm65k16s", S100_MM65K16S);
+ device.option_add("wunderbus", S100_WUNDERBUS);
+ device.option_add("dj2db", S100_DJ2DB);
+ device.option_add("djdma", S100_DJDMA);
+// device.option_add("multio", S100_MULTIO);
+// device.option_add("hdcdma", S100_HDCDMA);
+// device.option_add("hdca", S100_HDCA);
+}
diff --git a/src/mame/drivers/mrgame.cpp b/src/mame/drivers/mrgame.cpp
index 36afdd317a9..fc93b66b788 100644
--- a/src/mame/drivers/mrgame.cpp
+++ b/src/mame/drivers/mrgame.cpp
@@ -507,10 +507,10 @@ MACHINE_CONFIG_START(mrgame_state::mrgame)
MCFG_SOUND_ADD("ldac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
MCFG_SOUND_ADD("dacvol", DAC_8BIT_R2R, 0) // unknown DAC
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dacvol", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dacvol", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dacvol", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dacvol", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("tms", TMS5220, 672000) // uses a RC combination. 672k copied from jedi.h
MCFG_TMS52XX_READYQ_HANDLER(INPUTLINE("audiocpu2", Z80_INPUT_LINE_BOGUSWAIT))
diff --git a/src/mame/drivers/ms0515.cpp b/src/mame/drivers/ms0515.cpp
index b06636bffe9..2dacb5bd90e 100644
--- a/src/mame/drivers/ms0515.cpp
+++ b/src/mame/drivers/ms0515.cpp
@@ -374,9 +374,10 @@ FLOPPY_FORMATS_MEMBER( ms0515_state::floppy_formats )
FLOPPY_MS0515_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( ms0515_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void ms0515_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
uint32_t ms0515_state::screen_update_ms0515(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
diff --git a/src/mame/drivers/msx.cpp b/src/mame/drivers/msx.cpp
index 714d81a04be..6802fae7b70 100644
--- a/src/mame/drivers/msx.cpp
+++ b/src/mame/drivers/msx.cpp
@@ -1283,10 +1283,11 @@ FLOPPY_FORMATS_MEMBER( msx_state::floppy_formats )
FLOPPY_DMK_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( msx_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
- SLOT_INTERFACE( "35ssdd", FLOPPY_35_SSDD )
-SLOT_INTERFACE_END
+static void msx_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+ device.option_add("35ssdd", FLOPPY_35_SSDD);
+}
MACHINE_CONFIG_START(msx_state::msx_fd1793)
MCFG_FD1793_ADD("fdc", XTAL(4'000'000) / 4)
@@ -1362,7 +1363,7 @@ MACHINE_CONFIG_START(msx_state::msx)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
@@ -1515,7 +1516,7 @@ MACHINE_CONFIG_START(msx_state::msx2)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
@@ -1573,7 +1574,7 @@ MACHINE_CONFIG_START(msx_state::msx2p)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
diff --git a/src/mame/drivers/mtouchxl.cpp b/src/mame/drivers/mtouchxl.cpp
index d1c42c25657..5a458dba096 100644
--- a/src/mame/drivers/mtouchxl.cpp
+++ b/src/mame/drivers/mtouchxl.cpp
@@ -189,15 +189,16 @@ void mtxl_state::machine_reset()
}
#ifndef REAL_PCI_CHIPSET
-static SLOT_INTERFACE_START(mt6k_ata_devices)
- SLOT_INTERFACE("cdrom", ATAPI_FIXED_CDROM)
-SLOT_INTERFACE_END
+static void mt6k_ata_devices(device_slot_interface &device)
+{
+ device.option_add("cdrom", ATAPI_FIXED_CDROM);
+}
void mtxl_state::cdrom(device_t *device)
{
auto ide0 = dynamic_cast<device_slot_interface *>(device->subdevice("ide:0"));
ide0->option_reset();
- SLOT_INTERFACE_NAME(mt6k_ata_devices)(device->subdevice("ide:0"));
+ mt6k_ata_devices(*ide0);
ide0->set_default_option("cdrom");
ide0->set_fixed(true);
diff --git a/src/mame/drivers/murogem.cpp b/src/mame/drivers/murogem.cpp
index 4bc3473686b..9c3697236b3 100644
--- a/src/mame/drivers/murogem.cpp
+++ b/src/mame/drivers/murogem.cpp
@@ -275,7 +275,7 @@ MACHINE_CONFIG_START(murogem_state::murogem)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.375)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/murogmbl.cpp b/src/mame/drivers/murogmbl.cpp
index f35e4b3551a..130c74e6486 100644
--- a/src/mame/drivers/murogmbl.cpp
+++ b/src/mame/drivers/murogmbl.cpp
@@ -358,7 +358,7 @@ MACHINE_CONFIG_START(murogmbl_state::murogmbl)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(slotunbl_state::slotunbl)
@@ -384,7 +384,7 @@ MACHINE_CONFIG_START(slotunbl_state::slotunbl)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
ROM_START(murogmbl)
diff --git a/src/mame/drivers/mvme147.cpp b/src/mame/drivers/mvme147.cpp
index 24f692bc9e6..19622f2c960 100644
--- a/src/mame/drivers/mvme147.cpp
+++ b/src/mame/drivers/mvme147.cpp
@@ -640,9 +640,10 @@ WRITE16_MEMBER (mvme147_state::vme_a16_w){
}
#endif
-static SLOT_INTERFACE_START(mvme147_vme_cards)
- SLOT_INTERFACE("mvme350", VME_MVME350)
-SLOT_INTERFACE_END
+static void mvme147_vme_cards(device_slot_interface &device)
+{
+ device.option_add("mvme350", VME_MVME350);
+}
/*
* Machine configuration
diff --git a/src/mame/drivers/myb3k.cpp b/src/mame/drivers/myb3k.cpp
index fc95db68df6..91406b2dde7 100644
--- a/src/mame/drivers/myb3k.cpp
+++ b/src/mame/drivers/myb3k.cpp
@@ -923,11 +923,12 @@ WRITE_LINE_MEMBER (myb3k_state::centronics_select_w){
LOGCENT("%s %d - not used by machine\n", FUNCNAME, state);
}
-static SLOT_INTERFACE_START(stepone_isa_cards)
- SLOT_INTERFACE("myb3k_com", ISA8_MYB3K_COM)
- SLOT_INTERFACE("myb3k_fdc4710", ISA8_MYB3K_FDC4710)
- SLOT_INTERFACE("myb3k_fdc4711", ISA8_MYB3K_FDC4711)
-SLOT_INTERFACE_END
+static void stepone_isa_cards(device_slot_interface &device)
+{
+ device.option_add("myb3k_com", ISA8_MYB3K_COM);
+ device.option_add("myb3k_fdc4710", ISA8_MYB3K_FDC4710);
+ device.option_add("myb3k_fdc4711", ISA8_MYB3K_FDC4711);
+}
MACHINE_CONFIG_START(myb3k_state::myb3k)
/* basic machine hardware */
diff --git a/src/mame/drivers/mycom.cpp b/src/mame/drivers/mycom.cpp
index 9aaad3ce800..2dd1a851df5 100644
--- a/src/mame/drivers/mycom.cpp
+++ b/src/mame/drivers/mycom.cpp
@@ -480,9 +480,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(mycom_state::mycom_kbd)
-static SLOT_INTERFACE_START( mycom_floppies )
- SLOT_INTERFACE( "525sd", FLOPPY_525_SD )
-SLOT_INTERFACE_END
+static void mycom_floppies(device_slot_interface &device)
+{
+ device.option_add("525sd", FLOPPY_525_SD);
+}
void mycom_state::machine_start()
{
diff --git a/src/mame/drivers/mz2000.cpp b/src/mame/drivers/mz2000.cpp
index c198afcf050..23c0620ce9b 100644
--- a/src/mame/drivers/mz2000.cpp
+++ b/src/mame/drivers/mz2000.cpp
@@ -866,9 +866,10 @@ FLOPPY_FORMATS_MEMBER( mz2000_state::floppy_formats )
FLOPPY_2D_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( mz2000_floppies )
- SLOT_INTERFACE("dd", FLOPPY_525_DD)
-SLOT_INTERFACE_END
+static void mz2000_floppies(device_slot_interface &device)
+{
+ device.option_add("dd", FLOPPY_525_DD);
+}
MACHINE_CONFIG_START(mz2000_state::mz2000)
diff --git a/src/mame/drivers/mz2500.cpp b/src/mame/drivers/mz2500.cpp
index 52b0065d4b9..dbd00b2d8f1 100644
--- a/src/mame/drivers/mz2500.cpp
+++ b/src/mame/drivers/mz2500.cpp
@@ -2078,9 +2078,10 @@ WRITE_LINE_MEMBER(mz2500_state::mz2500_rtc_alarm_irq)
}
-static SLOT_INTERFACE_START( mz2500_floppies )
- SLOT_INTERFACE("dd", FLOPPY_35_DD)
-SLOT_INTERFACE_END
+static void mz2500_floppies(device_slot_interface &device)
+{
+ device.option_add("dd", FLOPPY_35_DD);
+}
MACHINE_CONFIG_START(mz2500_state::mz2500)
diff --git a/src/mame/drivers/mz3500.cpp b/src/mame/drivers/mz3500.cpp
index 7b958380d27..d9582a9c6a3 100644
--- a/src/mame/drivers/mz3500.cpp
+++ b/src/mame/drivers/mz3500.cpp
@@ -808,9 +808,10 @@ void mz3500_state::upd7220_2_map(address_map &map)
map(0x00000, 0x3ffff).ram(); // AM_SHARE("video_ram_2")
}
-static SLOT_INTERFACE_START( mz3500_floppies )
- SLOT_INTERFACE( "525ssdd", FLOPPY_525_SSDD )
-SLOT_INTERFACE_END
+static void mz3500_floppies(device_slot_interface &device)
+{
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+}
/* TODO: clocks */
MACHINE_CONFIG_START(mz3500_state::mz3500)
diff --git a/src/mame/drivers/mz6500.cpp b/src/mame/drivers/mz6500.cpp
index 8441cb4c3ba..84f379c0cf4 100644
--- a/src/mame/drivers/mz6500.cpp
+++ b/src/mame/drivers/mz6500.cpp
@@ -134,9 +134,10 @@ void mz6500_state::fdc_drq(bool state)
//printf("%02x DRQ\n",state);
}
-static SLOT_INTERFACE_START( mz6500_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
-SLOT_INTERFACE_END
+static void mz6500_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+}
void mz6500_state::upd7220_map(address_map &map)
{
diff --git a/src/mame/drivers/mzr8105.cpp b/src/mame/drivers/mzr8105.cpp
index c576a5f189f..cb6913718bb 100644
--- a/src/mame/drivers/mzr8105.cpp
+++ b/src/mame/drivers/mzr8105.cpp
@@ -199,9 +199,10 @@ void mzr8105_state::mzr8105_mem(address_map &map)
static INPUT_PORTS_START (mzr8105)
INPUT_PORTS_END
-static SLOT_INTERFACE_START(mzr8105_vme_cards)
- SLOT_INTERFACE("mzr8300", VME_MZR8300)
-SLOT_INTERFACE_END
+static void mzr8105_vme_cards(device_slot_interface &device)
+{
+ device.option_add("mzr8300", VME_MZR8300);
+}
/*
* Machine configuration
diff --git a/src/mame/drivers/namcos1.cpp b/src/mame/drivers/namcos1.cpp
index 039757fd569..7b85dc6faec 100644
--- a/src/mame/drivers/namcos1.cpp
+++ b/src/mame/drivers/namcos1.cpp
@@ -1092,8 +1092,8 @@ MACHINE_CONFIG_START(namcos1_state::ns1)
MCFG_SOUND_ADD("dac0", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // 10-pin 1Kx8R SIP with HC374 latch
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // 10-pin 1Kx8R SIP with HC374 latch
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac0", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac0", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/nanos.cpp b/src/mame/drivers/nanos.cpp
index 2ec3e84e971..12da909f4c6 100644
--- a/src/mame/drivers/nanos.cpp
+++ b/src/mame/drivers/nanos.cpp
@@ -437,9 +437,10 @@ FLOPPY_FORMATS_MEMBER( nanos_state::floppy_formats )
FLOPPY_NANOS_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( nanos_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
-SLOT_INTERFACE_END
+static void nanos_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+}
/* F4 Character Displayer */
static const gfx_layout nanos_charlayout =
diff --git a/src/mame/drivers/nbmj8688.cpp b/src/mame/drivers/nbmj8688.cpp
index be799b75311..cc93325b5b1 100644
--- a/src/mame/drivers/nbmj8688.cpp
+++ b/src/mame/drivers/nbmj8688.cpp
@@ -2489,7 +2489,7 @@ MACHINE_CONFIG_START(nbmj8688_state::NBMJDRV_4096)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(nbmj8688_state::NBMJDRV_256)
@@ -2682,7 +2682,7 @@ MACHINE_CONFIG_START(nbmj8688_state::mbmj_p16bit_LCD)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(nbmj8688_state::bijokkoy)
diff --git a/src/mame/drivers/nbmj8891.cpp b/src/mame/drivers/nbmj8891.cpp
index 377e0fe6193..6403adcc65c 100644
--- a/src/mame/drivers/nbmj8891.cpp
+++ b/src/mame/drivers/nbmj8891.cpp
@@ -2231,7 +2231,7 @@ MACHINE_CONFIG_START(nbmj8891_state::gionbana)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.37) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(nbmj8891_state::mgion)
diff --git a/src/mame/drivers/nbmj8900.cpp b/src/mame/drivers/nbmj8900.cpp
index ad793896ad3..0cbc3720f9d 100644
--- a/src/mame/drivers/nbmj8900.cpp
+++ b/src/mame/drivers/nbmj8900.cpp
@@ -335,7 +335,7 @@ MACHINE_CONFIG_START(nbmj8900_state::ohpaipee)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.42) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(nbmj8900_state::togenkyo)
diff --git a/src/mame/drivers/nbmj8991.cpp b/src/mame/drivers/nbmj8991.cpp
index bf7ee7cb4f8..1e1fd321370 100644
--- a/src/mame/drivers/nbmj8991.cpp
+++ b/src/mame/drivers/nbmj8991.cpp
@@ -1357,7 +1357,7 @@ MACHINE_CONFIG_START(nbmj8991_state::nbmjdrv1) // galkoku
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -1398,8 +1398,8 @@ MACHINE_CONFIG_START(nbmj8991_state::nbmjdrv2) // pstadium
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/nbmj9195.cpp b/src/mame/drivers/nbmj9195.cpp
index b2684385625..46dff69d586 100644
--- a/src/mame/drivers/nbmj9195.cpp
+++ b/src/mame/drivers/nbmj9195.cpp
@@ -2572,8 +2572,8 @@ MACHINE_CONFIG_START(nbmj9195_state::NBMJDRV1_base)
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(nbmj9195_state::NBMJDRV1)
diff --git a/src/mame/drivers/nc.cpp b/src/mame/drivers/nc.cpp
index e1463fd5ad3..734a5be3e86 100644
--- a/src/mame/drivers/nc.cpp
+++ b/src/mame/drivers/nc.cpp
@@ -1466,9 +1466,10 @@ static const floppy_format_type ibmpc_floppy_formats[] = {
nullptr
};
-static SLOT_INTERFACE_START( ibmpc_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void ibmpc_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
MACHINE_CONFIG_START(nc_state::nc200)
nc100(config);
diff --git a/src/mame/drivers/next.cpp b/src/mame/drivers/next.cpp
index f442d0f54ce..b497033e50a 100644
--- a/src/mame/drivers/next.cpp
+++ b/src/mame/drivers/next.cpp
@@ -981,15 +981,17 @@ FLOPPY_FORMATS_MEMBER( next_state::floppy_formats )
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( next_floppies )
- SLOT_INTERFACE( "35ed", FLOPPY_35_ED )
-SLOT_INTERFACE_END
+static void next_floppies(device_slot_interface &device)
+{
+ device.option_add("35ed", FLOPPY_35_ED);
+}
-static SLOT_INTERFACE_START( next_scsi_devices )
- SLOT_INTERFACE("cdrom", NSCSI_CDROM)
- SLOT_INTERFACE("harddisk", NSCSI_HARDDISK)
- SLOT_INTERFACE_INTERNAL("ncr5390", NCR5390)
-SLOT_INTERFACE_END
+static void next_scsi_devices(device_slot_interface &device)
+{
+ device.option_add("cdrom", NSCSI_CDROM);
+ device.option_add("harddisk", NSCSI_HARDDISK);
+ device.option_add_internal("ncr5390", NCR5390);
+}
void next_state::ncr5390(device_t *device)
{
@@ -1028,7 +1030,7 @@ MACHINE_CONFIG_START(next_state::next_base)
MCFG_NSCSI_ADD("scsibus:5", next_scsi_devices, nullptr, false)
MCFG_NSCSI_ADD("scsibus:6", next_scsi_devices, nullptr, false)
MCFG_NSCSI_ADD("scsibus:7", next_scsi_devices, "ncr5390", true)
- MCFG_DEVICE_CARD_MACHINE_CONFIG("ncr5390", ncr5390)
+ MCFG_SLOT_OPTION_MACHINE_CONFIG("ncr5390", ncr5390)
MCFG_DEVICE_ADD("net", MB8795, 0)
MCFG_MB8795_TX_IRQ_CALLBACK(WRITELINE(next_state, net_tx_irq))
diff --git a/src/mame/drivers/ngen.cpp b/src/mame/drivers/ngen.cpp
index 766e49e98c8..311aa87d137 100644
--- a/src/mame/drivers/ngen.cpp
+++ b/src/mame/drivers/ngen.cpp
@@ -916,13 +916,15 @@ void ngen_state::ngen386_io(address_map &map)
static INPUT_PORTS_START( ngen )
INPUT_PORTS_END
-static SLOT_INTERFACE_START(keyboard)
- SLOT_INTERFACE("ngen", NGEN_KEYBOARD)
-SLOT_INTERFACE_END
+static void keyboard(device_slot_interface &device)
+{
+ device.option_add("ngen", NGEN_KEYBOARD);
+}
-static SLOT_INTERFACE_START( ngen_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void ngen_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
MACHINE_CONFIG_START(ngen_state::ngen)
// basic machine hardware
diff --git a/src/mame/drivers/ngp.cpp b/src/mame/drivers/ngp.cpp
index a376910ab4a..e854a072542 100644
--- a/src/mame/drivers/ngp.cpp
+++ b/src/mame/drivers/ngp.cpp
@@ -850,8 +850,8 @@ MACHINE_CONFIG_START(ngp_state::ngp_common)
MCFG_SOUND_ADD("ldac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/nightgal.cpp b/src/mame/drivers/nightgal.cpp
index a69c050f738..de272a2dc86 100644
--- a/src/mame/drivers/nightgal.cpp
+++ b/src/mame/drivers/nightgal.cpp
@@ -840,7 +840,7 @@ MACHINE_CONFIG_START(nightgal_state::sexygal)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_REMOVE("aysnd")
diff --git a/src/mame/drivers/notetaker.cpp b/src/mame/drivers/notetaker.cpp
index 17f4ef6c115..4e47bf3d669 100644
--- a/src/mame/drivers/notetaker.cpp
+++ b/src/mame/drivers/notetaker.cpp
@@ -732,9 +732,10 @@ void notetaker_state::ep_io(address_map &map)
/* Input ports */
/* Floppy Image Interface */
-static SLOT_INTERFACE_START( notetaker_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void notetaker_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
/* Machine Start; allocate timers and savestate stuff */
void notetaker_state::machine_start()
@@ -857,7 +858,7 @@ MACHINE_CONFIG_START(notetaker_state::notetakr)
// TODO: hook DAC up to two HA2425 (sample and hold) chips and hook those up to the speakers
MCFG_SOUND_ADD("dac", DAC1200, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
DRIVER_INIT_MEMBER(notetaker_state,notetakr)
diff --git a/src/mame/drivers/novagmcs48.cpp b/src/mame/drivers/novagmcs48.cpp
index 3a1f2a95af3..0f14c0bb638 100644
--- a/src/mame/drivers/novagmcs48.cpp
+++ b/src/mame/drivers/novagmcs48.cpp
@@ -159,7 +159,7 @@ MACHINE_CONFIG_START(novagmcs48_state::presto)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(novagmcs48_state::octo)
diff --git a/src/mame/drivers/nycaptor.cpp b/src/mame/drivers/nycaptor.cpp
index 9b45538620d..282dbbcc17f 100644
--- a/src/mame/drivers/nycaptor.cpp
+++ b/src/mame/drivers/nycaptor.cpp
@@ -805,7 +805,7 @@ MACHINE_CONFIG_START(nycaptor_state::nycaptor)
// Update: of course it exists, sound board seems common Taito design.
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(nycaptor_state::cyclshtg)
@@ -877,7 +877,7 @@ MACHINE_CONFIG_START(nycaptor_state::cyclshtg)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -946,7 +946,7 @@ MACHINE_CONFIG_START(nycaptor_state::bronx)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/nyny.cpp b/src/mame/drivers/nyny.cpp
index e020eee411a..a03016a1931 100644
--- a/src/mame/drivers/nyny.cpp
+++ b/src/mame/drivers/nyny.cpp
@@ -666,7 +666,7 @@ MACHINE_CONFIG_START(nyny_state::nyny)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/octopus.cpp b/src/mame/drivers/octopus.cpp
index cb049683b74..933fe8f83ee 100644
--- a/src/mame/drivers/octopus.cpp
+++ b/src/mame/drivers/octopus.cpp
@@ -859,22 +859,25 @@ READ8_MEMBER( octopus_state::get_slave_ack )
return 0x00;
}
-static SLOT_INTERFACE_START( octopus_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
-
-static SLOT_INTERFACE_START(keyboard)
- SLOT_INTERFACE("octopus", OCTOPUS_KEYBOARD)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START(octopus_centronics_devices)
- SLOT_INTERFACE("pl80", COMX_PL80)
- SLOT_INTERFACE("ex800", EPSON_EX800)
- SLOT_INTERFACE("lx800", EPSON_LX800)
- SLOT_INTERFACE("lx810l", EPSON_LX810L)
- SLOT_INTERFACE("ap2000", EPSON_AP2000)
- SLOT_INTERFACE("printer", CENTRONICS_PRINTER)
-SLOT_INTERFACE_END
+static void octopus_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
+
+static void keyboard(device_slot_interface &device)
+{
+ device.option_add("octopus", OCTOPUS_KEYBOARD);
+}
+
+void octopus_centronics_devices(device_slot_interface &device)
+{
+ device.option_add("pl80", COMX_PL80);
+ device.option_add("ex800", EPSON_EX800);
+ device.option_add("lx800", EPSON_LX800);
+ device.option_add("lx810l", EPSON_LX810L);
+ device.option_add("ap2000", EPSON_AP2000);
+ device.option_add("printer", CENTRONICS_PRINTER);
+}
MACHINE_CONFIG_START(octopus_state::octopus)
/* basic machine hardware */
diff --git a/src/mame/drivers/olyboss.cpp b/src/mame/drivers/olyboss.cpp
index 0eb4e4ab5d1..8fb0f7aff5e 100644
--- a/src/mame/drivers/olyboss.cpp
+++ b/src/mame/drivers/olyboss.cpp
@@ -410,17 +410,20 @@ WRITE8_MEMBER( olyboss_state::fdcctrl85_w )
m_fdd1->get_device()->mon_w(!(data & 0x80));
}
-static SLOT_INTERFACE_START( bossa_floppies )
- SLOT_INTERFACE( "525ssdd", FLOPPY_525_SSDD )
-SLOT_INTERFACE_END
+static void bossa_floppies(device_slot_interface &device)
+{
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+}
-static SLOT_INTERFACE_START( bossb_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void bossb_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
-static SLOT_INTERFACE_START( bosscd_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void bosscd_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
//**************************************************************************
// MACHINE CONFIGURATION
diff --git a/src/mame/drivers/oric.cpp b/src/mame/drivers/oric.cpp
index ffc520e11f6..32a332be02f 100644
--- a/src/mame/drivers/oric.cpp
+++ b/src/mame/drivers/oric.cpp
@@ -830,9 +830,10 @@ FLOPPY_FORMATS_MEMBER( telestrat_state::floppy_formats )
FLOPPY_ORIC_DSK_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( telestrat_floppies )
- SLOT_INTERFACE( "3dsdd", FLOPPY_3_DSDD )
-SLOT_INTERFACE_END
+static void telestrat_floppies(device_slot_interface &device)
+{
+ device.option_add("3dsdd", FLOPPY_3_DSDD);
+}
MACHINE_CONFIG_START(telestrat_state::telstrat)
oric(config);
diff --git a/src/mame/drivers/orion.cpp b/src/mame/drivers/orion.cpp
index 8909988c70c..bb786b54536 100644
--- a/src/mame/drivers/orion.cpp
+++ b/src/mame/drivers/orion.cpp
@@ -86,9 +86,10 @@ FLOPPY_FORMATS_MEMBER( orion_state::orion_floppy_formats )
FLOPPY_SMX_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( orion_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void orion_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
/* Machine driver */
MACHINE_CONFIG_START(orion_state::orion128)
diff --git a/src/mame/drivers/osbexec.cpp b/src/mame/drivers/osbexec.cpp
index d8f68fc50a1..e784675a78f 100644
--- a/src/mame/drivers/osbexec.cpp
+++ b/src/mame/drivers/osbexec.cpp
@@ -469,9 +469,10 @@ WRITE_LINE_MEMBER(osbexec_state::comm_clk_a_w)
*
*/
-static SLOT_INTERFACE_START( osborne2_floppies )
- SLOT_INTERFACE( "525ssdd", FLOPPY_525_SSDD )
-SLOT_INTERFACE_END
+static void osborne2_floppies(device_slot_interface &device)
+{
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+}
TIMER_CALLBACK_MEMBER(osbexec_state::osbexec_video_callback)
diff --git a/src/mame/drivers/osborne1.cpp b/src/mame/drivers/osborne1.cpp
index 528bc0a0f85..0e97320c190 100644
--- a/src/mame/drivers/osborne1.cpp
+++ b/src/mame/drivers/osborne1.cpp
@@ -257,10 +257,11 @@ INPUT_PORTS_END
*
*/
-static SLOT_INTERFACE_START( osborne1_floppies )
- SLOT_INTERFACE("525sssd", FLOPPY_525_SSSD) // Siemens FDD 100-5, custom Osborne electronics
- SLOT_INTERFACE("525ssdd", FLOPPY_525_QD) // SSDD) // MPI 52(?), custom Osborne electronics
-SLOT_INTERFACE_END
+static void osborne1_floppies(device_slot_interface &device)
+{
+ device.option_add("525sssd", FLOPPY_525_SSSD); // Siemens FDD 100-5, custom Osborne electronics
+ device.option_add("525ssdd", FLOPPY_525_QD); // SSDD) // MPI 52(?), custom Osborne electronics
+}
/* F4 Character Displayer */
@@ -283,24 +284,24 @@ GFXDECODE_END
MACHINE_CONFIG_START(osborne1_state::osborne1)
- MCFG_CPU_ADD("maincpu", Z80, MAIN_CLOCK/4)
+ MCFG_CPU_ADD(m_maincpu, Z80, MAIN_CLOCK/4)
MCFG_CPU_PROGRAM_MAP(osborne1_mem)
MCFG_CPU_OPCODES_MAP(osborne1_op)
MCFG_CPU_IO_MAP(osborne1_io)
MCFG_Z80_SET_IRQACK_CALLBACK(WRITELINE(osborne1_state, irqack_w))
- MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green())
+ MCFG_SCREEN_ADD_MONOCHROME(m_screen, RASTER, rgb_t::green())
MCFG_SCREEN_UPDATE_DRIVER(osborne1_state, screen_update)
MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK, 1024, 0, 104*8, 260, 0, 24*10)
MCFG_SCREEN_PALETTE("palette")
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", osborne1)
+ MCFG_GFXDECODE_ADD(m_gfxdecode, "palette", osborne1)
MCFG_PALETTE_ADD_MONOCHROME_HIGHLIGHT("palette")
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ADD(m_speaker, SPEAKER_SOUND, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
- MCFG_DEVICE_ADD("pia_0", PIA6821, 0)
+ MCFG_DEVICE_ADD(m_pia0, PIA6821, 0)
MCFG_PIA_READPA_HANDLER(DEVREAD8(m_ieee, ieee488_device, dio_r))
MCFG_PIA_READPB_HANDLER(READ8(osborne1_state, ieee_pia_pb_r))
MCFG_PIA_WRITEPA_HANDLER(DEVWRITE8(m_ieee, ieee488_device, dio_w))
@@ -310,15 +311,15 @@ MACHINE_CONFIG_START(osborne1_state::osborne1)
MCFG_PIA_IRQA_HANDLER(WRITELINE(osborne1_state, ieee_pia_irq_a_func))
MCFG_IEEE488_BUS_ADD()
- MCFG_IEEE488_SRQ_CALLBACK(DEVWRITELINE("pia_0", pia6821_device, ca2_w))
+ MCFG_IEEE488_SRQ_CALLBACK(DEVWRITELINE(m_pia0, pia6821_device, ca2_w))
- MCFG_DEVICE_ADD("pia_1", PIA6821, 0)
+ MCFG_DEVICE_ADD(m_pia1, PIA6821, 0)
MCFG_PIA_WRITEPA_HANDLER(WRITE8(osborne1_state, video_pia_port_a_w))
MCFG_PIA_WRITEPB_HANDLER(WRITE8(osborne1_state, video_pia_port_b_w))
MCFG_PIA_CB2_HANDLER(WRITELINE(osborne1_state, video_pia_out_cb2_dummy))
MCFG_PIA_IRQA_HANDLER(WRITELINE(osborne1_state, video_pia_irq_a_func))
- MCFG_DEVICE_ADD("acia", ACIA6850, 0)
+ MCFG_DEVICE_ADD(m_acia, ACIA6850, 0)
MCFG_ACIA6850_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd))
MCFG_ACIA6850_RTS_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_rts))
MCFG_ACIA6850_IRQ_HANDLER(WRITELINE(osborne1_state, serial_acia_irq_func))
@@ -329,10 +330,10 @@ MACHINE_CONFIG_START(osborne1_state::osborne1)
MCFG_RS232_CTS_HANDLER(DEVWRITELINE(m_acia, acia6850_device, write_cts))
MCFG_RS232_RI_HANDLER(DEVWRITELINE(m_pia1, pia6821_device, ca2_w))
- MCFG_DEVICE_ADD("mb8877", MB8877, MAIN_CLOCK/16)
+ MCFG_DEVICE_ADD(m_fdc, MB8877, MAIN_CLOCK/16)
MCFG_WD_FDC_FORCE_READY
- MCFG_FLOPPY_DRIVE_ADD("mb8877:0", osborne1_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("mb8877:1", osborne1_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(m_floppy0, osborne1_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(m_floppy1, osborne1_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
// internal ram
MCFG_RAM_ADD(RAM_TAG)
diff --git a/src/mame/drivers/osi.cpp b/src/mame/drivers/osi.cpp
index 725c98e2980..f76d91ee4e5 100644
--- a/src/mame/drivers/osi.cpp
+++ b/src/mame/drivers/osi.cpp
@@ -686,9 +686,10 @@ void c1pmf_state::machine_start()
// disk format: 1 head, 36 tracks (? - manual displays a directory listing with 40 tracks),
// 10 sectors, 256 byte sector length, first sector id 0
-static SLOT_INTERFACE_START( osi_floppies )
- SLOT_INTERFACE("ssdd", FLOPPY_525_SSDD)
-SLOT_INTERFACE_END
+static void osi_floppies(device_slot_interface &device)
+{
+ device.option_add("ssdd", FLOPPY_525_SSDD);
+}
/* F4 Character Displayer */
static const gfx_layout osi_charlayout =
diff --git a/src/mame/drivers/othello.cpp b/src/mame/drivers/othello.cpp
index 7ffeeed445d..4132ad69575 100644
--- a/src/mame/drivers/othello.cpp
+++ b/src/mame/drivers/othello.cpp
@@ -450,7 +450,7 @@ MACHINE_CONFIG_START(othello_state::othello)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.3) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
ROM_START( othello )
diff --git a/src/mame/drivers/p8k.cpp b/src/mame/drivers/p8k.cpp
index 4065ee1c001..c6f42338f57 100644
--- a/src/mame/drivers/p8k.cpp
+++ b/src/mame/drivers/p8k.cpp
@@ -259,9 +259,10 @@ DECLARE_WRITE_LINE_MEMBER( p8k_state::fdc_irq )
m_pio2->port_b_write(state ? 0x10 : 0x00);
}
-static SLOT_INTERFACE_START( p8k_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
-SLOT_INTERFACE_END
+static void p8k_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+}
/* Input ports */
static INPUT_PORTS_START( p8k )
diff --git a/src/mame/drivers/palm.cpp b/src/mame/drivers/palm.cpp
index ae9349c1403..cee8f9e0d24 100644
--- a/src/mame/drivers/palm.cpp
+++ b/src/mame/drivers/palm.cpp
@@ -202,7 +202,7 @@ MACHINE_CONFIG_START(palm_state::palm)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_DEVICE_ADD( MC68328_TAG, MC68328, 0 ) // lsi device
MCFG_MC68328_CPU("maincpu")
diff --git a/src/mame/drivers/pandoras.cpp b/src/mame/drivers/pandoras.cpp
index 649eb6b4b11..49b9b50797f 100644
--- a/src/mame/drivers/pandoras.cpp
+++ b/src/mame/drivers/pandoras.cpp
@@ -365,7 +365,7 @@ MACHINE_CONFIG_START(pandoras_state::pandoras)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.12) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/partner.cpp b/src/mame/drivers/partner.cpp
index 3c68fdb4a59..a6598df8a8a 100644
--- a/src/mame/drivers/partner.cpp
+++ b/src/mame/drivers/partner.cpp
@@ -145,9 +145,10 @@ FLOPPY_FORMATS_MEMBER( partner_state::floppy_formats )
FLOPPY_SMX_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( partner_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void partner_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
/* F4 Character Displayer */
static const gfx_layout partner_charlayout =
diff --git a/src/mame/drivers/pasopia7.cpp b/src/mame/drivers/pasopia7.cpp
index 4edfc308b28..2ba8578adf4 100644
--- a/src/mame/drivers/pasopia7.cpp
+++ b/src/mame/drivers/pasopia7.cpp
@@ -913,9 +913,10 @@ void pasopia7_state::fdc_irq(bool state)
m_maincpu->set_input_line(INPUT_LINE_IRQ0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static SLOT_INTERFACE_START( pasopia7_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
-SLOT_INTERFACE_END
+static void pasopia7_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+}
MACHINE_CONFIG_START(pasopia7_state::p7_base)
/* basic machine hardware */
diff --git a/src/mame/drivers/pastelg.cpp b/src/mame/drivers/pastelg.cpp
index 6c6249a5a93..3b0d72d5207 100644
--- a/src/mame/drivers/pastelg.cpp
+++ b/src/mame/drivers/pastelg.cpp
@@ -432,7 +432,7 @@ MACHINE_CONFIG_START(pastelg_state::pastelg)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/*
@@ -491,7 +491,7 @@ MACHINE_CONFIG_START(pastelg_state::threeds)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/pc100.cpp b/src/mame/drivers/pc100.cpp
index 33fb115091f..8b556d2a1cf 100644
--- a/src/mame/drivers/pc100.cpp
+++ b/src/mame/drivers/pc100.cpp
@@ -490,9 +490,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(pc100_state::pc100_10hz_irq)
}
}
-static SLOT_INTERFACE_START( pc100_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void pc100_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
#define MASTER_CLOCK 6988800
diff --git a/src/mame/drivers/pc1512.cpp b/src/mame/drivers/pc1512.cpp
index 7c5765fd447..1d4d59b6938 100644
--- a/src/mame/drivers/pc1512.cpp
+++ b/src/mame/drivers/pc1512.cpp
@@ -1026,17 +1026,19 @@ WRITE_LINE_MEMBER( pc1512_base_state::write_centronics_fault )
// isa8bus_interface isabus_intf
//-------------------------------------------------
-SLOT_INTERFACE_START( pc1640_isa8_cards )
- SLOT_INTERFACE_INTERNAL("iga", ISA8_PC1640_IGA)
-SLOT_INTERFACE_END
+void pc1640_isa8_cards(device_slot_interface &device)
+{
+ device.option_add_internal("iga", ISA8_PC1640_IGA);
+}
FLOPPY_FORMATS_MEMBER( pc1512_base_state::floppy_formats )
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( pc1512_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) // Tandon TM65-2L
-SLOT_INTERFACE_END
+static void pc1512_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD); // Tandon TM65-2L
+}
diff --git a/src/mame/drivers/pc8801.cpp b/src/mame/drivers/pc8801.cpp
index 90787ebba81..2c658791750 100644
--- a/src/mame/drivers/pc8801.cpp
+++ b/src/mame/drivers/pc8801.cpp
@@ -2247,9 +2247,10 @@ GFXDECODE_END
/* Floppy Configuration */
-static SLOT_INTERFACE_START( pc88_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
-SLOT_INTERFACE_END
+static void pc88_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+}
#if 0
/* Cassette Configuration */
diff --git a/src/mame/drivers/pc88va.cpp b/src/mame/drivers/pc88va.cpp
index ea0e60d7d62..a001eedd3b7 100644
--- a/src/mame/drivers/pc88va.cpp
+++ b/src/mame/drivers/pc88va.cpp
@@ -1774,9 +1774,10 @@ FLOPPY_FORMATS_MEMBER( pc88va_state::floppy_formats )
FLOPPY_XDF_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( pc88va_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
-SLOT_INTERFACE_END
+static void pc88va_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+}
READ8_MEMBER(pc88va_state::dma_memr_cb)
{
diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp
index b52c78d5689..573364d97de 100644
--- a/src/mame/drivers/pc9801.cpp
+++ b/src/mame/drivers/pc9801.cpp
@@ -1960,26 +1960,28 @@ READ8_MEMBER(pc9801_state::unk_r)
*
****************************************/
-static SLOT_INTERFACE_START( pc9801_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
- SLOT_INTERFACE( "35hd", FLOPPY_35_HD )
-SLOT_INTERFACE_END
+static void pc9801_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("525hd", FLOPPY_525_HD);
+ device.option_add("35hd", FLOPPY_35_HD);
+}
-static SLOT_INTERFACE_START( pc9801_cbus )
+static void pc9801_cbus_devices(device_slot_interface &device)
+{
// PC-9801-14
- SLOT_INTERFACE( "pc9801_26", PC9801_26 )
- SLOT_INTERFACE( "pc9801_86", PC9801_86 )
+ device.option_add("pc9801_26", PC9801_26);
+ device.option_add("pc9801_86", PC9801_86);
// PC-9801-86
// PC-9801-26 + PC-9801-86 (?)
// PC-9801-86 + Chibi-Oto
- SLOT_INTERFACE( "pc9801_118", PC9801_118 )
+ device.option_add("pc9801_118", PC9801_118);
// Speak Board
// Spark Board
// AMD-98 (AmuseMent boarD)
- SLOT_INTERFACE( "pc9801_amd98", PC9801_AMD98 )
- SLOT_INTERFACE( "mpu_pc98", MPU_PC98 )
-SLOT_INTERFACE_END
+ device.option_add("pc9801_amd98", PC9801_AMD98);
+ device.option_add("mpu_pc98", MPU_PC98);
+}
// Jast Sound, could be put independently
@@ -2197,9 +2199,10 @@ TIMER_DEVICE_CALLBACK_MEMBER( pc9801_state::mouse_irq_cb )
}
}
-SLOT_INTERFACE_START(pc9801_atapi_devices)
- SLOT_INTERFACE("pc9801_cd", PC9801_CD)
-SLOT_INTERFACE_END
+void pc9801_atapi_devices(device_slot_interface &device)
+{
+ device.option_add("pc9801_cd", PC9801_CD);
+}
MACHINE_CONFIG_START(pc9801_state::pc9801_keyboard)
MCFG_DEVICE_ADD("keyb", PC9801_KBD, 53)
@@ -2219,8 +2222,8 @@ MACHINE_CONFIG_START(pc9801_state::pc9801_mouse)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(pc9801_state::pc9801_cbus)
- MCFG_PC9801CBUS_SLOT_ADD("cbus0", pc9801_cbus, "pc9801_26")
- MCFG_PC9801CBUS_SLOT_ADD("cbus1", pc9801_cbus, nullptr)
+ MCFG_PC9801CBUS_SLOT_ADD("cbus0", pc9801_cbus_devices, "pc9801_26")
+ MCFG_PC9801CBUS_SLOT_ADD("cbus1", pc9801_cbus_devices, nullptr)
// TODO: six max slots
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/pcat_dyn.cpp b/src/mame/drivers/pcat_dyn.cpp
index f83859e3b60..73b2cfa5e43 100644
--- a/src/mame/drivers/pcat_dyn.cpp
+++ b/src/mame/drivers/pcat_dyn.cpp
@@ -141,13 +141,15 @@ static INPUT_PORTS_START( pcat_dyn )
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_COIN1)
INPUT_PORTS_END
-static SLOT_INTERFACE_START(pcat_dyn_com)
- SLOT_INTERFACE("msmouse", MSYSTEM_SERIAL_MOUSE)
-SLOT_INTERFACE_END
+static void pcat_dyn_com(device_slot_interface &device)
+{
+ device.option_add("msmouse", MSYSTEM_SERIAL_MOUSE);
+}
-static SLOT_INTERFACE_START( pcat_dyn_isa8_cards )
- SLOT_INTERFACE("sb15", ISA8_SOUND_BLASTER_1_5)
-SLOT_INTERFACE_END
+static void pcat_dyn_isa8_cards(device_slot_interface &device)
+{
+ device.option_add("sb15", ISA8_SOUND_BLASTER_1_5);
+}
static DEVICE_INPUT_DEFAULTS_START( pcat_dyn_sb_def )
DEVICE_INPUT_DEFAULTS("CONFIG", 0x03, 0x01)
@@ -215,8 +217,8 @@ MACHINE_CONFIG_START(pcat_dyn_state::pcat_dyn)
MCFG_ISA_OUT_DRQ3_CB(DEVWRITELINE("dma8237_1", am9517a_device, dreq3_w))
MCFG_ISA8_SLOT_ADD("isa", "isa1", pcat_dyn_isa8_cards, "sb15", true)
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("sb15", pcat_dyn_sb_def)
- MCFG_DEVICE_CARD_MACHINE_CONFIG("sb15", pcat_dyn_sb_conf)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("sb15", pcat_dyn_sb_def)
+ MCFG_SLOT_OPTION_MACHINE_CONFIG("sb15", pcat_dyn_sb_conf)
MACHINE_CONFIG_END
/***************************************
diff --git a/src/mame/drivers/pcd.cpp b/src/mame/drivers/pcd.cpp
index 28c20a8e38c..83a60167487 100644
--- a/src/mame/drivers/pcd.cpp
+++ b/src/mame/drivers/pcd.cpp
@@ -478,10 +478,11 @@ void pcd_state::pcx_io(address_map &map)
// MACHINE DRIVERS
//**************************************************************************
-static SLOT_INTERFACE_START( pcd_floppies )
- SLOT_INTERFACE("55f", TEAC_FD_55F) // 80 tracks
- SLOT_INTERFACE("55g", TEAC_FD_55G) // 77 tracks
-SLOT_INTERFACE_END
+static void pcd_floppies(device_slot_interface &device)
+{
+ device.option_add("55f", TEAC_FD_55F); // 80 tracks
+ device.option_add("55g", TEAC_FD_55G); // 77 tracks
+}
FLOPPY_FORMATS_MEMBER( pcd_state::floppy_formats )
FLOPPY_PC_FORMAT
diff --git a/src/mame/drivers/pce.cpp b/src/mame/drivers/pce.cpp
index c94082daf62..77b34ea71ff 100644
--- a/src/mame/drivers/pce.cpp
+++ b/src/mame/drivers/pce.cpp
@@ -305,13 +305,14 @@ uint32_t pce_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, c
}
-static SLOT_INTERFACE_START(pce_cart)
- SLOT_INTERFACE_INTERNAL("rom", PCE_ROM_STD)
- SLOT_INTERFACE_INTERNAL("cdsys3u", PCE_ROM_CDSYS3)
- SLOT_INTERFACE_INTERNAL("cdsys3j", PCE_ROM_CDSYS3)
- SLOT_INTERFACE_INTERNAL("populous", PCE_ROM_POPULOUS)
- SLOT_INTERFACE_INTERNAL("sf2", PCE_ROM_SF2)
-SLOT_INTERFACE_END
+static void pce_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", PCE_ROM_STD);
+ device.option_add_internal("cdsys3u", PCE_ROM_CDSYS3);
+ device.option_add_internal("cdsys3j", PCE_ROM_CDSYS3);
+ device.option_add_internal("populous", PCE_ROM_POPULOUS);
+ device.option_add_internal("sf2", PCE_ROM_SF2);
+}
MACHINE_CONFIG_START(pce_state::pce_common)
/* basic machine hardware */
diff --git a/src/mame/drivers/pcw.cpp b/src/mame/drivers/pcw.cpp
index 1692dc3ee7b..3468065d24e 100644
--- a/src/mame/drivers/pcw.cpp
+++ b/src/mame/drivers/pcw.cpp
@@ -1240,9 +1240,10 @@ static INPUT_PORTS_START(pcw)
PORT_BIT( 0xff, 0x00, IPT_UNUSED)
INPUT_PORTS_END
-static SLOT_INTERFACE_START( pcw_floppies )
- SLOT_INTERFACE( "3dsdd", FLOPPY_3_DSDD )
-SLOT_INTERFACE_END
+static void pcw_floppies(device_slot_interface &device)
+{
+ device.option_add("3dsdd", FLOPPY_3_DSDD);
+}
/* PCW8256, PCW8512, PCW9256 */
MACHINE_CONFIG_START(pcw_state::pcw)
diff --git a/src/mame/drivers/pcw16.cpp b/src/mame/drivers/pcw16.cpp
index 1d2dd69184b..477735fd409 100644
--- a/src/mame/drivers/pcw16.cpp
+++ b/src/mame/drivers/pcw16.cpp
@@ -930,9 +930,10 @@ FLOPPY_FORMATS_MEMBER( pcw16_state::floppy_formats )
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( pcw16_floppies )
- SLOT_INTERFACE( "35hd", FLOPPY_35_HD )
-SLOT_INTERFACE_END
+static void pcw16_floppies(device_slot_interface &device)
+{
+ device.option_add("35hd", FLOPPY_35_HD);
+}
void pcw16_state::pcw16_io(address_map &map)
@@ -1004,9 +1005,10 @@ static INPUT_PORTS_START(pcw16)
PORT_INCLUDE( at_keyboard ) /* IN4 - IN11 */
INPUT_PORTS_END
-static SLOT_INTERFACE_START(pcw16_com)
- SLOT_INTERFACE("msystems_mouse", MSYSTEM_SERIAL_MOUSE)
-SLOT_INTERFACE_END
+static void pcw16_com(device_slot_interface &device)
+{
+ device.option_add("msystems_mouse", MSYSTEM_SERIAL_MOUSE);
+}
MACHINE_CONFIG_START(pcw16_state::pcw16)
/* basic machine hardware */
diff --git a/src/mame/drivers/pcxt.cpp b/src/mame/drivers/pcxt.cpp
index e0d5a6b6e47..9b814e5895c 100644
--- a/src/mame/drivers/pcxt.cpp
+++ b/src/mame/drivers/pcxt.cpp
@@ -486,10 +486,11 @@ void pcxt_state::machine_reset()
m_lastvalue = -1;
}
-static SLOT_INTERFACE_START( filetto_isa8_cards )
- SLOT_INTERFACE_INTERNAL("filetto", ISA8_CGA_FILETTO)
- SLOT_INTERFACE_INTERNAL("tetriskr", ISA8_CGA_TETRISKR)
-SLOT_INTERFACE_END
+static void filetto_isa8_cards(device_slot_interface &device)
+{
+ device.option_add_internal("filetto", ISA8_CGA_FILETTO);
+ device.option_add_internal("tetriskr", ISA8_CGA_TETRISKR);
+}
MACHINE_CONFIG_START(pcxt_state::filetto)
diff --git a/src/mame/drivers/peoplepc.cpp b/src/mame/drivers/peoplepc.cpp
index 3a7e6690b5e..dbd4d098a3c 100644
--- a/src/mame/drivers/peoplepc.cpp
+++ b/src/mame/drivers/peoplepc.cpp
@@ -218,17 +218,19 @@ void peoplepc_state::peoplepc_io(address_map &map)
map(0x0070, 0x0070).w(this, FUNC(peoplepc_state::dmapg_w));
}
-static SLOT_INTERFACE_START( peoplepc_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void peoplepc_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
FLOPPY_FORMATS_MEMBER( peoplepc_state::floppy_formats )
FLOPPY_IMD_FORMAT
FLOPPY_FORMATS_END
-SLOT_INTERFACE_START( peoplepc_keyboard_devices )
- SLOT_INTERFACE("keyboard", SERIAL_KEYBOARD)
-SLOT_INTERFACE_END
+void peoplepc_keyboard_devices(device_slot_interface &device)
+{
+ device.option_add("keyboard", SERIAL_KEYBOARD);
+}
static DEVICE_INPUT_DEFAULTS_START(keyboard)
DEVICE_INPUT_DEFAULTS( "RS232_TXBAUD", 0xff, RS232_BAUD_1200 )
@@ -296,7 +298,7 @@ MACHINE_CONFIG_START(peoplepc_state::olypeopl)
MCFG_RS232_PORT_ADD("kbd", peoplepc_keyboard_devices, "keyboard")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("i8251_0", i8251_device, write_rxd))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("keyboard", keyboard)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("keyboard", keyboard)
MCFG_DEVICE_ADD("i8251_1", I8251, 0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/pet.cpp b/src/mame/drivers/pet.cpp
index cb73e92d25c..3ad844da28b 100644
--- a/src/mame/drivers/pet.cpp
+++ b/src/mame/drivers/pet.cpp
@@ -1584,9 +1584,10 @@ MC6845_UPDATE_ROW( pet80_state::cbm8296_update_row )
// SLOT_INTERFACE( cbm8296d_ieee488_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( cbm8296d_ieee488_devices )
- SLOT_INTERFACE("c8250lp", C8250LP)
-SLOT_INTERFACE_END
+void cbm8296d_ieee488_devices(device_slot_interface &device)
+{
+ device.option_add("c8250lp", C8250LP);
+}
diff --git a/src/mame/drivers/pg685.cpp b/src/mame/drivers/pg685.cpp
index dbf403c5902..8c13f539e1b 100644
--- a/src/mame/drivers/pg685.cpp
+++ b/src/mame/drivers/pg685.cpp
@@ -280,13 +280,15 @@ READ8_MEMBER(pg685_state::f9f3f_r)
// FLOPPY
//**************************************************************************
-static SLOT_INTERFACE_START( pg675_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void pg675_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
-static SLOT_INTERFACE_START( pg685_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void pg685_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
READ8_MEMBER(pg685_state::f9f24_r)
diff --git a/src/mame/drivers/pimps.cpp b/src/mame/drivers/pimps.cpp
index 6d4e7dda22b..de99b376419 100644
--- a/src/mame/drivers/pimps.cpp
+++ b/src/mame/drivers/pimps.cpp
@@ -148,7 +148,7 @@ MACHINE_CONFIG_START(pimps_state::pimps)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart1", i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart1", i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart1", i8251_device, write_cts))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal) // must be exactly here
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) // must be exactly here
MCFG_DEVICE_ADD("uart2", I8251, 0)
MCFG_I8251_TXD_HANDLER(DEVWRITELINE("rs232b", rs232_port_device, write_txd))
diff --git a/src/mame/drivers/pipbug.cpp b/src/mame/drivers/pipbug.cpp
index 6be0cb7708f..c63caf19d42 100644
--- a/src/mame/drivers/pipbug.cpp
+++ b/src/mame/drivers/pipbug.cpp
@@ -168,7 +168,7 @@ MACHINE_CONFIG_START(pipbug_state::pipbug)
/* video hardware */
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(INPUTLINE("maincpu", S2650_SENSE_LINE))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
/* quickload */
MCFG_QUICKLOAD_ADD("quickload", pipbug_state, pipbug, "pgm", 1)
diff --git a/src/mame/drivers/pk8020.cpp b/src/mame/drivers/pk8020.cpp
index 1e0221916a1..43b9b724a46 100644
--- a/src/mame/drivers/pk8020.cpp
+++ b/src/mame/drivers/pk8020.cpp
@@ -171,9 +171,10 @@ FLOPPY_FORMATS_MEMBER( pk8020_state::floppy_formats )
FLOPPY_PK8020_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( pk8020_floppies )
- SLOT_INTERFACE("qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+static void pk8020_floppies(device_slot_interface &device)
+{
+ device.option_add("qd", FLOPPY_525_QD);
+}
/* Machine driver */
diff --git a/src/mame/drivers/plus4.cpp b/src/mame/drivers/plus4.cpp
index cd823f5d64a..60f0a43f2ee 100644
--- a/src/mame/drivers/plus4.cpp
+++ b/src/mame/drivers/plus4.cpp
@@ -815,10 +815,11 @@ WRITE_LINE_MEMBER( plus4_state::exp_irq_w )
// SLOT_INTERFACE( cbm_datassette_devices )
//-------------------------------------------------
-SLOT_INTERFACE_START( plus4_datassette_devices )
- SLOT_INTERFACE("c1531", C1531)
- SLOT_INTERFACE("diag264", DIAG264_CASSETTE_LOOPBACK)
-SLOT_INTERFACE_END
+void plus4_datassette_devices(device_slot_interface &device)
+{
+ device.option_add("c1531", C1531);
+ device.option_add("diag264", DIAG264_CASSETTE_LOOPBACK);
+}
diff --git a/src/mame/drivers/pockstat.cpp b/src/mame/drivers/pockstat.cpp
index dda961ce241..55373c8165d 100644
--- a/src/mame/drivers/pockstat.cpp
+++ b/src/mame/drivers/pockstat.cpp
@@ -993,7 +993,7 @@ MACHINE_CONFIG_START(pockstat_state::pockstat)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
/* cartridge */
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "pockstat_cart")
diff --git a/src/mame/drivers/polepos.cpp b/src/mame/drivers/polepos.cpp
index 0c8ce4307d0..9f7d2948aa9 100644
--- a/src/mame/drivers/polepos.cpp
+++ b/src/mame/drivers/polepos.cpp
@@ -1052,7 +1052,7 @@ MACHINE_CONFIG_START(polepos_state::topracern)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.12)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.12)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(polepos_state::polepos2bi)
diff --git a/src/mame/drivers/pong.cpp b/src/mame/drivers/pong.cpp
index 4f182270dfe..246fc77b0dc 100644
--- a/src/mame/drivers/pong.cpp
+++ b/src/mame/drivers/pong.cpp
@@ -407,7 +407,7 @@ MACHINE_CONFIG_START(pong_state::pong)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(breakout_state::breakout)
@@ -460,7 +460,7 @@ MACHINE_CONFIG_START(breakout_state::breakout)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(pong_state::pongf)
@@ -505,7 +505,7 @@ MACHINE_CONFIG_START(pong_state::pongd)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/***************************************************************************
diff --git a/src/mame/drivers/popeye.cpp b/src/mame/drivers/popeye.cpp
index 5ff43821de9..daafc6ab65a 100644
--- a/src/mame/drivers/popeye.cpp
+++ b/src/mame/drivers/popeye.cpp
@@ -622,9 +622,9 @@ MACHINE_CONFIG_START(tpp2_state::config)
MCFG_SOUND_ROUTES_RESET()
MCFG_AY8910_OUTPUT_TYPE(AY8910_RESISTOR_OUTPUT) /* Does tnx1, tpp1 & popeyebl have the same filtering? */
MCFG_AY8910_RES_LOADS(2000.0, 2000.0, 2000.0)
- MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 0)
- MCFG_SOUND_ROUTE_EX(1, "snd_nl", 1.0, 1)
- MCFG_SOUND_ROUTE_EX(2, "snd_nl", 1.0, 2)
+ MCFG_SOUND_ROUTE(0, "snd_nl", 1.0, 0)
+ MCFG_SOUND_ROUTE(1, "snd_nl", 1.0, 1)
+ MCFG_SOUND_ROUTE(2, "snd_nl", 1.0, 2)
/* NETLIST configuration using internal AY8910 resistor values */
diff --git a/src/mame/drivers/ppmast93.cpp b/src/mame/drivers/ppmast93.cpp
index adbb0156493..b9e4e71d190 100644
--- a/src/mame/drivers/ppmast93.cpp
+++ b/src/mame/drivers/ppmast93.cpp
@@ -404,7 +404,7 @@ MACHINE_CONFIG_START(ppmast93_state::ppmast93)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.3) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
ROM_START( ppmast93 )
diff --git a/src/mame/drivers/prof180x.cpp b/src/mame/drivers/prof180x.cpp
index 2bd2b0951df..fa8cbe39964 100644
--- a/src/mame/drivers/prof180x.cpp
+++ b/src/mame/drivers/prof180x.cpp
@@ -207,9 +207,10 @@ INPUT_PORTS_END
/* Video */
-static SLOT_INTERFACE_START( prof180x_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void prof180x_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+}
/*
static RTC8583_INTERFACE( rtc_intf )
diff --git a/src/mame/drivers/prof80.cpp b/src/mame/drivers/prof80.cpp
index 410bb5f5ef9..105e267ecf0 100644
--- a/src/mame/drivers/prof80.cpp
+++ b/src/mame/drivers/prof80.cpp
@@ -395,9 +395,10 @@ INPUT_PORTS_END
// upd765_interface fdc_intf
//-------------------------------------------------
-static SLOT_INTERFACE_START( prof80_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void prof80_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
diff --git a/src/mame/drivers/proteus.cpp b/src/mame/drivers/proteus.cpp
index 4ad69477300..04087a4f641 100644
--- a/src/mame/drivers/proteus.cpp
+++ b/src/mame/drivers/proteus.cpp
@@ -313,9 +313,10 @@ FLOPPY_FORMATS_MEMBER(proteus_state::floppy_formats)
FLOPPY_POLY_CPM_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START(proteus_floppies)
- SLOT_INTERFACE("8dssd", FLOPPY_8_DSSD) // Shugart SA-860
-SLOT_INTERFACE_END
+static void proteus_floppies(device_slot_interface &device)
+{
+ device.option_add("8dssd", FLOPPY_8_DSSD); // Shugart SA-860
+}
MACHINE_CONFIG_START(proteus_state::proteus)
diff --git a/src/mame/drivers/pt68k4.cpp b/src/mame/drivers/pt68k4.cpp
index cb96355d3b1..a48d4426a66 100644
--- a/src/mame/drivers/pt68k4.cpp
+++ b/src/mame/drivers/pt68k4.cpp
@@ -156,9 +156,10 @@ FLOPPY_FORMATS_MEMBER( pt68k4_state::floppy_formats )
FLOPPY_IMD_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( pt68k_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void pt68k_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
// XT keyboard interface - done in TTL instead of an 804x
WRITE_LINE_MEMBER(pt68k4_state::keyboard_clock_w)
@@ -389,16 +390,17 @@ WRITE_LINE_MEMBER(pt68k4_state::duart2_irq)
}
// these are cards supported by the HUMBUG and Monk BIOSes
-SLOT_INTERFACE_START( pt68k4_isa8_cards )
- SLOT_INTERFACE("mda", ISA8_MDA)
- SLOT_INTERFACE("cga", ISA8_CGA)
- SLOT_INTERFACE("ega", ISA8_EGA) // Monk only
- SLOT_INTERFACE("vga", ISA8_VGA) // Monk only
- SLOT_INTERFACE("fdc_at", ISA8_FDC_AT)
- SLOT_INTERFACE("wdxt_gen", ISA8_WDXT_GEN)
- SLOT_INTERFACE("lpt", ISA8_LPT)
- SLOT_INTERFACE("xtide", ISA8_XTIDE) // Monk only
-SLOT_INTERFACE_END
+void pt68k4_isa8_cards(device_slot_interface &device)
+{
+ device.option_add("mda", ISA8_MDA);
+ device.option_add("cga", ISA8_CGA);
+ device.option_add("ega", ISA8_EGA); // Monk only
+ device.option_add("vga", ISA8_VGA); // Monk only
+ device.option_add("fdc_at", ISA8_FDC_AT);
+ device.option_add("wdxt_gen", ISA8_WDXT_GEN);
+ device.option_add("lpt", ISA8_LPT);
+ device.option_add("xtide", ISA8_XTIDE); // Monk only
+}
MACHINE_CONFIG_START(pt68k4_state::pt68k2)
/* basic machine hardware */
diff --git a/src/mame/drivers/pulsar.cpp b/src/mame/drivers/pulsar.cpp
index e4c9fe0970a..15c4984aa01 100644
--- a/src/mame/drivers/pulsar.cpp
+++ b/src/mame/drivers/pulsar.cpp
@@ -179,9 +179,10 @@ static DEVICE_INPUT_DEFAULTS_START( terminal )
DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 )
DEVICE_INPUT_DEFAULTS_END
-static SLOT_INTERFACE_START( pulsar_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
-SLOT_INTERFACE_END
+static void pulsar_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+}
/* Input ports */
static INPUT_PORTS_START( pulsar )
@@ -236,7 +237,7 @@ MACHINE_CONFIG_START(pulsar_state::pulsar)
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("dart", z80dart_device, rxa_w))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("dart", z80dart_device, ctsa_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_DEVICE_ADD("brg", COM8116, XTAL(5'068'800))
// Schematic has the labels for FT and FR the wrong way around, but the pin numbers are correct.
diff --git a/src/mame/drivers/pwrview.cpp b/src/mame/drivers/pwrview.cpp
index b7b489bfed5..30411412452 100644
--- a/src/mame/drivers/pwrview.cpp
+++ b/src/mame/drivers/pwrview.cpp
@@ -397,9 +397,10 @@ void pwrview_state::pwrview_io(address_map &map)
map(0xc2e6, 0xc2e6).r(this, FUNC(pwrview_state::pitclock_r));
}
-static SLOT_INTERFACE_START(pwrview_floppies)
- SLOT_INTERFACE("525dd", FLOPPY_525_DD)
-SLOT_INTERFACE_END
+static void pwrview_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
MACHINE_CONFIG_START(pwrview_state::pwrview)
MCFG_CPU_ADD("maincpu", I80186, XTAL(16'000'000))
diff --git a/src/mame/drivers/pyl601.cpp b/src/mame/drivers/pyl601.cpp
index f2c70e7ade5..d52d3475a21 100644
--- a/src/mame/drivers/pyl601.cpp
+++ b/src/mame/drivers/pyl601.cpp
@@ -494,9 +494,10 @@ FLOPPY_FORMATS_MEMBER( pyl601_state::floppy_formats )
FLOPPY_PYLDIN_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( pyl601_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
-SLOT_INTERFACE_END
+static void pyl601_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+}
/* F4 Character Displayer */
static const gfx_layout pyl601_charlayout =
diff --git a/src/mame/drivers/qtsbc.cpp b/src/mame/drivers/qtsbc.cpp
index 98bd1d493a0..daad7dd9bd7 100644
--- a/src/mame/drivers/qtsbc.cpp
+++ b/src/mame/drivers/qtsbc.cpp
@@ -483,7 +483,7 @@ MACHINE_CONFIG_START(qtsbc_state::qtsbc)
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("usart", i8251_device, write_dsr)) // actually from pin 11, "Reverse Channel Transmit"
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_rts))
MCFG_RS232_DCD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal) // must be exactly here
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) // must be exactly here
MACHINE_CONFIG_END
/* ROM definition */
diff --git a/src/mame/drivers/quantum.cpp b/src/mame/drivers/quantum.cpp
index 87a0fbfca50..35c2efbc4a5 100644
--- a/src/mame/drivers/quantum.cpp
+++ b/src/mame/drivers/quantum.cpp
@@ -307,7 +307,7 @@ MACHINE_CONFIG_START(quantum_state::quantum)
MCFG_POKEY_POT6_R_CB(READ8(quantum_state, input_1_r))
MCFG_POKEY_POT7_R_CB(READ8(quantum_state, input_1_r))
MCFG_POKEY_OUTPUT_OPAMP(RES_K(1), 0.0, 5.0)
- MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
+ MCFG_SOUND_ROUTE(0, "discrete", 1.0, 0)
MCFG_SOUND_ADD("pokey2", POKEY, 600000)
MCFG_POKEY_POT0_R_CB(READ8(quantum_state, input_2_r))
@@ -319,7 +319,7 @@ MACHINE_CONFIG_START(quantum_state::quantum)
MCFG_POKEY_POT6_R_CB(READ8(quantum_state, input_2_r))
MCFG_POKEY_POT7_R_CB(READ8(quantum_state, input_2_r))
MCFG_POKEY_OUTPUT_OPAMP(RES_K(1), 0.0, 5.0)
- MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 1)
+ MCFG_SOUND_ROUTE(0, "discrete", 1.0, 1)
MCFG_SOUND_ADD("discrete", DISCRETE, 0)
MCFG_DISCRETE_INTF(quantum)
diff --git a/src/mame/drivers/quasar.cpp b/src/mame/drivers/quasar.cpp
index 9e878e50a12..063dced522d 100644
--- a/src/mame/drivers/quasar.cpp
+++ b/src/mame/drivers/quasar.cpp
@@ -350,7 +350,7 @@ MACHINE_CONFIG_START(quasar_state::quasar)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
ROM_START( quasar )
diff --git a/src/mame/drivers/quizshow.cpp b/src/mame/drivers/quizshow.cpp
index e33bd1fe8bb..1a1752049ca 100644
--- a/src/mame/drivers/quizshow.cpp
+++ b/src/mame/drivers/quizshow.cpp
@@ -411,7 +411,7 @@ MACHINE_CONFIG_START(quizshow_state::quizshow)
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/qx10.cpp b/src/mame/drivers/qx10.cpp
index 9492063623e..e5e421c0825 100644
--- a/src/mame/drivers/qx10.cpp
+++ b/src/mame/drivers/qx10.cpp
@@ -381,9 +381,10 @@ QUICKLOAD_LOAD_MEMBER( qx10_state, qx10 )
FDD
*/
-static SLOT_INTERFACE_START( qx10_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void qx10_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
WRITE_LINE_MEMBER( qx10_state::qx10_upd765_interrupt )
{
@@ -721,9 +722,10 @@ void qx10_state::upd7220_map(address_map &map)
map(0x00000, 0x3ffff).rw(this, FUNC(qx10_state::vram_r), FUNC(qx10_state::vram_w));
}
-static SLOT_INTERFACE_START(keyboard)
- SLOT_INTERFACE("qx10", QX10_KEYBOARD)
-SLOT_INTERFACE_END
+static void keyboard(device_slot_interface &device)
+{
+ device.option_add("qx10", QX10_KEYBOARD);
+}
MACHINE_CONFIG_START(qx10_state::qx10)
/* basic machine hardware */
diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp
index 9356e686e68..682aa5a8680 100644
--- a/src/mame/drivers/rainbow.cpp
+++ b/src/mame/drivers/rainbow.cpp
@@ -862,12 +862,13 @@ FLOPPY_IMD_FORMAT,
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START(rainbow_floppies)
-SLOT_INTERFACE("525qd", FLOPPY_525_QD) // QD means 80 tracks with DD data rate (single or double sided).
-SLOT_INTERFACE("525dd", FLOPPY_525_DD) // mimic a 5.25" PC (40 track) drive. Requires IDrive5.SYS.
-SLOT_INTERFACE("35dd", FLOPPY_35_DD) // mimic 3.5" PC drive (720K, double density). Use Impdrv3.SYS.
-SLOT_INTERFACE("525ssdd", FLOPPY_525_SSDD) // to read a single sided, (160K) PC-DOS 1 disk with MediaMaster
-SLOT_INTERFACE_END
+static void rainbow_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD); // QD means 80 tracks with DD data rate (single or double sided).
+ device.option_add("525dd", FLOPPY_525_DD); // mimic a 5.25" PC (40 track) drive. Requires IDrive5.SYS.
+ device.option_add("35dd", FLOPPY_35_DD); // mimic 3.5" PC drive (720K, double density). Use Impdrv3.SYS.
+ device.option_add("525ssdd", FLOPPY_525_SSDD); // to read a single sided, (160K) PC-DOS 1 disk with MediaMaster
+}
void rainbow_state::machine_start()
{
diff --git a/src/mame/drivers/rastersp.cpp b/src/mame/drivers/rastersp.cpp
index f792400a4e7..7d9337a9b26 100644
--- a/src/mame/drivers/rastersp.cpp
+++ b/src/mame/drivers/rastersp.cpp
@@ -848,10 +848,11 @@ void rastersp_state::ncr53c700(device_t *device)
MCFG_NCR53C7XX_HOST_WRITE(DEVWRITE32(":", rastersp_state, ncr53c700_write))
}
-static SLOT_INTERFACE_START( rastersp_scsi_devices )
- SLOT_INTERFACE("harddisk", NSCSI_HARDDISK)
- SLOT_INTERFACE_INTERNAL("ncr53c700", NCR53C7XX)
-SLOT_INTERFACE_END
+static void rastersp_scsi_devices(device_slot_interface &device)
+{
+ device.option_add("harddisk", NSCSI_HARDDISK);
+ device.option_add_internal("ncr53c700", NCR53C7XX);
+}
/*************************************
@@ -879,7 +880,7 @@ MACHINE_CONFIG_START(rastersp_state::rastersp)
MCFG_NSCSI_BUS_ADD("scsibus")
MCFG_NSCSI_ADD("scsibus:0", rastersp_scsi_devices, "harddisk", true)
MCFG_NSCSI_ADD("scsibus:7", rastersp_scsi_devices, "ncr53c700", true)
- MCFG_DEVICE_CARD_MACHINE_CONFIG("ncr53c700", ncr53c700)
+ MCFG_SLOT_OPTION_MACHINE_CONFIG("ncr53c700", ncr53c700)
/* Video */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -899,8 +900,8 @@ MACHINE_CONFIG_START(rastersp_state::rastersp)
MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/rc702.cpp b/src/mame/drivers/rc702.cpp
index d2ea326a5c3..bbe87db641d 100644
--- a/src/mame/drivers/rc702.cpp
+++ b/src/mame/drivers/rc702.cpp
@@ -322,9 +322,10 @@ void rc702_state::kbd_put(u8 data)
m_pio->strobe_a(1);
}
-static SLOT_INTERFACE_START( floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
MACHINE_CONFIG_START(rc702_state::rc702)
/* basic machine hardware */
diff --git a/src/mame/drivers/rc759.cpp b/src/mame/drivers/rc759.cpp
index 0fa535c20ea..21be59dd228 100644
--- a/src/mame/drivers/rc759.cpp
+++ b/src/mame/drivers/rc759.cpp
@@ -525,9 +525,10 @@ INPUT_PORTS_END
// MACHINE DRIVERS
//**************************************************************************
-static SLOT_INTERFACE_START( rc759_floppies )
- SLOT_INTERFACE("hd", FLOPPY_525_HD)
-SLOT_INTERFACE_END
+static void rc759_floppies(device_slot_interface &device)
+{
+ device.option_add("hd", FLOPPY_525_HD);
+}
MACHINE_CONFIG_START(rc759_state::rc759)
MCFG_CPU_ADD("maincpu", I80186, 6000000)
diff --git a/src/mame/drivers/replicator.cpp b/src/mame/drivers/replicator.cpp
index 6ddba3655d5..698f56e2601 100644
--- a/src/mame/drivers/replicator.cpp
+++ b/src/mame/drivers/replicator.cpp
@@ -643,7 +643,7 @@ MACHINE_CONFIG_START(replicator_state::replicator)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
ROM_START( replica1 )
diff --git a/src/mame/drivers/risc2500.cpp b/src/mame/drivers/risc2500.cpp
index ac1a4119fd3..71850608ccc 100644
--- a/src/mame/drivers/risc2500.cpp
+++ b/src/mame/drivers/risc2500.cpp
@@ -339,7 +339,7 @@ MACHINE_CONFIG_START(risc2500_state::risc2500)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_2BIT_BINARY_WEIGHTED_ONES_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/rltennis.cpp b/src/mame/drivers/rltennis.cpp
index 23c3b98e031..958cbe977e1 100644
--- a/src/mame/drivers/rltennis.cpp
+++ b/src/mame/drivers/rltennis.cpp
@@ -210,8 +210,8 @@ MACHINE_CONFIG_START(rltennis_state::rltennis)
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
ROM_START( rltennis )
diff --git a/src/mame/drivers/rm380z.cpp b/src/mame/drivers/rm380z.cpp
index 7e20c7081d4..725309498d0 100644
--- a/src/mame/drivers/rm380z.cpp
+++ b/src/mame/drivers/rm380z.cpp
@@ -222,9 +222,10 @@ INPUT_PORTS_END
//
//
-static SLOT_INTERFACE_START( rm380z_floppies )
- SLOT_INTERFACE("sssd", FLOPPY_525_SSSD)
-SLOT_INTERFACE_END
+static void rm380z_floppies(device_slot_interface &device)
+{
+ device.option_add("sssd", FLOPPY_525_SSSD);
+}
uint32_t rm380z_state::screen_update_rm380z(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
diff --git a/src/mame/drivers/rmnimbus.cpp b/src/mame/drivers/rmnimbus.cpp
index e7855be4868..c50c650309a 100644
--- a/src/mame/drivers/rmnimbus.cpp
+++ b/src/mame/drivers/rmnimbus.cpp
@@ -28,13 +28,15 @@
#include "formats/pc_dsk.h"
-static SLOT_INTERFACE_START(rmnimbus_floppies)
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void rmnimbus_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+}
-static SLOT_INTERFACE_START(keyboard)
- SLOT_INTERFACE("rmnkbd", RMNIMBUS_KEYBOARD)
-SLOT_INTERFACE_END
+static void keyboard(device_slot_interface &device)
+{
+ device.option_add("rmnkbd", RMNIMBUS_KEYBOARD);
+}
void rmnimbus_state::nimbus_mem(address_map &map)
{
diff --git a/src/mame/drivers/route16.cpp b/src/mame/drivers/route16.cpp
index d7abaa945ed..e64fcdb46d3 100644
--- a/src/mame/drivers/route16.cpp
+++ b/src/mame/drivers/route16.cpp
@@ -685,7 +685,7 @@ MACHINE_CONFIG_START(route16_state::stratvox)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/rowamet.cpp b/src/mame/drivers/rowamet.cpp
index 57874b4a86f..d57147bdd91 100644
--- a/src/mame/drivers/rowamet.cpp
+++ b/src/mame/drivers/rowamet.cpp
@@ -236,7 +236,7 @@ MACHINE_CONFIG_START(rowamet_state::rowamet)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/*-------------------------------------------------------------------
diff --git a/src/mame/drivers/royalmah.cpp b/src/mame/drivers/royalmah.cpp
index 57b07ce2e34..e028270fc08 100644
--- a/src/mame/drivers/royalmah.cpp
+++ b/src/mame/drivers/royalmah.cpp
@@ -3529,7 +3529,7 @@ MACHINE_CONFIG_START(royalmah_state::jansou)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(royalmah_state::dondenmj)
diff --git a/src/mame/drivers/s11.cpp b/src/mame/drivers/s11.cpp
index b96b29cb99f..32b34a6e729 100644
--- a/src/mame/drivers/s11.cpp
+++ b/src/mame/drivers/s11.cpp
@@ -449,8 +449,8 @@ MACHINE_CONFIG_START(s11_state::s11)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SPEAKER_STANDARD_MONO("speech")
MCFG_SOUND_ADD("hc55516", HC55516, 0)
diff --git a/src/mame/drivers/s11a.cpp b/src/mame/drivers/s11a.cpp
index de9adf93087..c07e7169fd8 100644
--- a/src/mame/drivers/s11a.cpp
+++ b/src/mame/drivers/s11a.cpp
@@ -241,8 +241,8 @@ MACHINE_CONFIG_START(s11a_state::s11a)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SPEAKER_STANDARD_MONO("speech")
MCFG_SOUND_ADD("hc55516", HC55516, 0)
diff --git a/src/mame/drivers/s11b.cpp b/src/mame/drivers/s11b.cpp
index 65d3d5bc227..2bb0f92a4d9 100644
--- a/src/mame/drivers/s11b.cpp
+++ b/src/mame/drivers/s11b.cpp
@@ -315,8 +315,8 @@ MACHINE_CONFIG_START(s11b_state::s11b)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SPEAKER_STANDARD_MONO("speech")
MCFG_SOUND_ADD("hc55516", HC55516, 0)
diff --git a/src/mame/drivers/s3.cpp b/src/mame/drivers/s3.cpp
index 13e013841ee..5a5b76c91ee 100644
--- a/src/mame/drivers/s3.cpp
+++ b/src/mame/drivers/s3.cpp
@@ -495,7 +495,7 @@ MACHINE_CONFIG_START(s3_state::s3a)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("pias", PIA6821, 0)
MCFG_PIA_READPB_HANDLER(READ8(s3_state,sound_r))
diff --git a/src/mame/drivers/s4.cpp b/src/mame/drivers/s4.cpp
index a9f4fdbb882..ff75edaaacb 100644
--- a/src/mame/drivers/s4.cpp
+++ b/src/mame/drivers/s4.cpp
@@ -489,7 +489,7 @@ MACHINE_CONFIG_START(s4_state::s4a)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("pias", PIA6821, 0)
MCFG_PIA_READPB_HANDLER(READ8(s4_state, sound_r))
diff --git a/src/mame/drivers/s6.cpp b/src/mame/drivers/s6.cpp
index 3c7f98571bd..f0f421ac433 100644
--- a/src/mame/drivers/s6.cpp
+++ b/src/mame/drivers/s6.cpp
@@ -459,7 +459,7 @@ MACHINE_CONFIG_START(s6_state::s6)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SPEAKER_STANDARD_MONO("speech")
MCFG_SOUND_ADD("hc55516", HC55516, 0)
diff --git a/src/mame/drivers/s6a.cpp b/src/mame/drivers/s6a.cpp
index 7fd6b295130..7689111eea6 100644
--- a/src/mame/drivers/s6a.cpp
+++ b/src/mame/drivers/s6a.cpp
@@ -442,7 +442,7 @@ MACHINE_CONFIG_START(s6a_state::s6a)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SPEAKER_STANDARD_MONO("speech")
MCFG_SOUND_ADD("hc55516", HC55516, 0)
diff --git a/src/mame/drivers/s7.cpp b/src/mame/drivers/s7.cpp
index ad45fd8e404..a88266a1af8 100644
--- a/src/mame/drivers/s7.cpp
+++ b/src/mame/drivers/s7.cpp
@@ -495,7 +495,7 @@ MACHINE_CONFIG_START(s7_state::s7)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SPEAKER_STANDARD_MONO("speech")
MCFG_SOUND_ADD("hc55516", HC55516, 0)
diff --git a/src/mame/drivers/s8.cpp b/src/mame/drivers/s8.cpp
index a58b0068b64..03bfc4a22e7 100644
--- a/src/mame/drivers/s8.cpp
+++ b/src/mame/drivers/s8.cpp
@@ -365,7 +365,7 @@ MACHINE_CONFIG_START(s8_state::s8)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("pias", PIA6821, 0)
MCFG_PIA_READPA_HANDLER(READ8(s8_state, sound_r))
diff --git a/src/mame/drivers/s8a.cpp b/src/mame/drivers/s8a.cpp
index 4178d7622d0..a9bec06fd7e 100644
--- a/src/mame/drivers/s8a.cpp
+++ b/src/mame/drivers/s8a.cpp
@@ -337,7 +337,7 @@ MACHINE_CONFIG_START(s8a_state::s8a)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("pias", PIA6821, 0)
MCFG_PIA_READPA_HANDLER(READ8(s8a_state, sound_r))
diff --git a/src/mame/drivers/s9.cpp b/src/mame/drivers/s9.cpp
index 5816970a114..d7ef5e23080 100644
--- a/src/mame/drivers/s9.cpp
+++ b/src/mame/drivers/s9.cpp
@@ -371,7 +371,7 @@ MACHINE_CONFIG_START(s9_state::s9)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SPEAKER_STANDARD_MONO("speech")
MCFG_SOUND_ADD("hc55516", HC55516, 0)
diff --git a/src/mame/drivers/sage2.cpp b/src/mame/drivers/sage2.cpp
index f6871a05c5c..7423e31b1e2 100644
--- a/src/mame/drivers/sage2.cpp
+++ b/src/mame/drivers/sage2.cpp
@@ -341,9 +341,10 @@ WRITE_LINE_MEMBER( sage2_state::br2_w )
// upd765_interface fdc_intf
//-------------------------------------------------
-static SLOT_INTERFACE_START( sage2_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) // Mitsubishi M4859
-SLOT_INTERFACE_END
+static void sage2_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD); // Mitsubishi M4859
+}
void sage2_state::update_fdc_int()
{
@@ -454,7 +455,7 @@ MACHINE_CONFIG_START(sage2_state::sage2)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(I8251_0_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE(I8251_0_TAG, i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE(I8251_0_TAG, i8251_device, write_cts))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_DEVICE_ADD(I8251_1_TAG, I8251, 0)
MCFG_I8251_TXD_HANDLER(DEVWRITELINE(RS232_B_TAG, rs232_port_device, write_txd))
diff --git a/src/mame/drivers/samcoupe.cpp b/src/mame/drivers/samcoupe.cpp
index 93089dd351b..048bd51cd0d 100644
--- a/src/mame/drivers/samcoupe.cpp
+++ b/src/mame/drivers/samcoupe.cpp
@@ -513,9 +513,10 @@ FLOPPY_FORMATS_MEMBER( samcoupe_state::floppy_formats )
FLOPPY_MGT_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( samcoupe_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void samcoupe_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+}
MACHINE_CONFIG_START(samcoupe_state::samcoupe)
diff --git a/src/mame/drivers/sapi1.cpp b/src/mame/drivers/sapi1.cpp
index f8bc4272e19..42da3b51d3a 100644
--- a/src/mame/drivers/sapi1.cpp
+++ b/src/mame/drivers/sapi1.cpp
@@ -702,7 +702,7 @@ MACHINE_CONFIG_START(sapi1_state::sapi3a)
MCFG_AY51013_AUTO_RDAV(true) // RDAV not actually tied to RDE, but pulsed by K155AG3 (=74123N): R25=22k, C14=220
MCFG_RS232_PORT_ADD("v24", default_rs232_devices, "terminal")
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)
diff --git a/src/mame/drivers/saturn.cpp b/src/mame/drivers/saturn.cpp
index d605e67d2ea..ba716313f2d 100644
--- a/src/mame/drivers/saturn.cpp
+++ b/src/mame/drivers/saturn.cpp
@@ -853,15 +853,16 @@ MACHINE_CONFIG_START(sat_console_state::saturn)
MCFG_SATURN_CONTROL_PORT_ADD("ctrl2", saturn_controls, "joypad")
MACHINE_CONFIG_END
-static SLOT_INTERFACE_START(saturn_cart)
- SLOT_INTERFACE_INTERNAL("rom", SATURN_ROM)
- SLOT_INTERFACE_INTERNAL("ram8", SATURN_DRAM_8MB)
- SLOT_INTERFACE_INTERNAL("ram32", SATURN_DRAM_32MB)
- SLOT_INTERFACE_INTERNAL("bram4", SATURN_BRAM_4MB)
- SLOT_INTERFACE_INTERNAL("bram8", SATURN_BRAM_8MB)
- SLOT_INTERFACE_INTERNAL("bram16", SATURN_BRAM_16MB)
- SLOT_INTERFACE_INTERNAL("bram32", SATURN_BRAM_32MB)
-SLOT_INTERFACE_END
+static void saturn_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", SATURN_ROM);
+ device.option_add_internal("ram8", SATURN_DRAM_8MB);
+ device.option_add_internal("ram32", SATURN_DRAM_32MB);
+ device.option_add_internal("bram4", SATURN_BRAM_4MB);
+ device.option_add_internal("bram8", SATURN_BRAM_8MB);
+ device.option_add_internal("bram16", SATURN_BRAM_16MB);
+ device.option_add_internal("bram32", SATURN_BRAM_32MB);
+}
MACHINE_CONFIG_START(sat_console_state::saturnus)
diff --git a/src/mame/drivers/savquest.cpp b/src/mame/drivers/savquest.cpp
index 80867511475..d44b66d27a6 100644
--- a/src/mame/drivers/savquest.cpp
+++ b/src/mame/drivers/savquest.cpp
@@ -807,9 +807,10 @@ WRITE_LINE_MEMBER(savquest_state::vblank_assert)
{
}
-SLOT_INTERFACE_START( savquest_isa16_cards )
- SLOT_INTERFACE("sb16", ISA16_SOUND_BLASTER_16)
-SLOT_INTERFACE_END
+void savquest_isa16_cards(device_slot_interface &device)
+{
+ device.option_add("sb16", ISA16_SOUND_BLASTER_16);
+}
MACHINE_CONFIG_START(savquest_state::savquest)
MCFG_CPU_ADD("maincpu", PENTIUM2, 450000000) // actually Pentium II 450
diff --git a/src/mame/drivers/sbasketb.cpp b/src/mame/drivers/sbasketb.cpp
index f3c4fd7c780..362ed6bba35 100644
--- a/src/mame/drivers/sbasketb.cpp
+++ b/src/mame/drivers/sbasketb.cpp
@@ -238,7 +238,7 @@ MACHINE_CONFIG_START(sbasketb_state::sbasketb)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("snsnd", SN76489, XTAL(14'318'181) / 8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
diff --git a/src/mame/drivers/sbrain.cpp b/src/mame/drivers/sbrain.cpp
index e2ee925e9d4..0da25855356 100644
--- a/src/mame/drivers/sbrain.cpp
+++ b/src/mame/drivers/sbrain.cpp
@@ -470,9 +470,10 @@ DRIVER_INIT_MEMBER( sbrain_state, sbrain )
m_bank2->configure_entry(1, &main[0x8000]);
}
-static SLOT_INTERFACE_START( sbrain_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void sbrain_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
MACHINE_RESET_MEMBER( sbrain_state, sbrain )
{
diff --git a/src/mame/drivers/sbrkout.cpp b/src/mame/drivers/sbrkout.cpp
index 563a2eda958..72f7f263720 100644
--- a/src/mame/drivers/sbrkout.cpp
+++ b/src/mame/drivers/sbrkout.cpp
@@ -590,7 +590,7 @@ MACHINE_CONFIG_START(sbrkout_state::sbrkout)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/scv.cpp b/src/mame/drivers/scv.cpp
index c70900c4ea9..2a68da51f73 100644
--- a/src/mame/drivers/scv.cpp
+++ b/src/mame/drivers/scv.cpp
@@ -647,15 +647,16 @@ static GFXDECODE_START( scv )
GFXDECODE_END
-static SLOT_INTERFACE_START(scv_cart)
- SLOT_INTERFACE_INTERNAL("rom8k", SCV_ROM8K)
- SLOT_INTERFACE_INTERNAL("rom16k", SCV_ROM16K)
- SLOT_INTERFACE_INTERNAL("rom32k", SCV_ROM32K)
- SLOT_INTERFACE_INTERNAL("rom32k_ram", SCV_ROM32K_RAM8K)
- SLOT_INTERFACE_INTERNAL("rom64k", SCV_ROM64K)
- SLOT_INTERFACE_INTERNAL("rom128k", SCV_ROM128K)
- SLOT_INTERFACE_INTERNAL("rom128k_ram", SCV_ROM128K_RAM4K)
-SLOT_INTERFACE_END
+static void scv_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom8k", SCV_ROM8K);
+ device.option_add_internal("rom16k", SCV_ROM16K);
+ device.option_add_internal("rom32k", SCV_ROM32K);
+ device.option_add_internal("rom32k_ram", SCV_ROM32K_RAM8K);
+ device.option_add_internal("rom64k", SCV_ROM64K);
+ device.option_add_internal("rom128k", SCV_ROM128K);
+ device.option_add_internal("rom128k_ram", SCV_ROM128K_RAM4K);
+}
MACHINE_CONFIG_START(scv_state::scv)
diff --git a/src/mame/drivers/scyclone.cpp b/src/mame/drivers/scyclone.cpp
index 143296021d4..87980788c95 100644
--- a/src/mame/drivers/scyclone.cpp
+++ b/src/mame/drivers/scyclone.cpp
@@ -654,16 +654,16 @@ MACHINE_CONFIG_START(scyclone_state::scyclone)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0)
MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref2", VOLTAGE_REGULATOR, 0)
MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/sdk80.cpp b/src/mame/drivers/sdk80.cpp
index e58b57ab3c1..acf7dd89e71 100644
--- a/src/mame/drivers/sdk80.cpp
+++ b/src/mame/drivers/sdk80.cpp
@@ -138,7 +138,7 @@ MACHINE_CONFIG_START(sdk80_state::sdk80)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(I8251A_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE(I8251A_TAG, i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE(I8251A_TAG, i8251_device, write_cts))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_DEVICE_ADD("usart_clock", CLOCK, XTAL(18'432'000)/60)
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(sdk80_state, usart_clock_tick))
diff --git a/src/mame/drivers/sdk86.cpp b/src/mame/drivers/sdk86.cpp
index 892f2da868b..b82d8ef2e18 100644
--- a/src/mame/drivers/sdk86.cpp
+++ b/src/mame/drivers/sdk86.cpp
@@ -162,7 +162,7 @@ MACHINE_CONFIG_START(sdk86_state::sdk86)
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(I8251_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE(I8251_TAG, i8251_device, write_dsr))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_DEVICE_ADD("usart_clock", CLOCK, XTAL(14'745'600)/3/16)
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE(I8251_TAG, i8251_device, write_txc))
diff --git a/src/mame/drivers/seattlecmp.cpp b/src/mame/drivers/seattlecmp.cpp
index 8ec37dac3fd..d04d800f264 100644
--- a/src/mame/drivers/seattlecmp.cpp
+++ b/src/mame/drivers/seattlecmp.cpp
@@ -136,7 +136,7 @@ MACHINE_CONFIG_START(seattle_comp_state::seattle)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart", i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart", i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart", i8251_device, write_cts))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal) // must be exactly here
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) // must be exactly here
MACHINE_CONFIG_END
/* ROM definition */
diff --git a/src/mame/drivers/segapico.cpp b/src/mame/drivers/segapico.cpp
index 6f7280ab75c..8c0c5d254d7 100644
--- a/src/mame/drivers/segapico.cpp
+++ b/src/mame/drivers/segapico.cpp
@@ -371,11 +371,12 @@ static INPUT_PORTS_START( pico )
INPUT_PORTS_END
-static SLOT_INTERFACE_START(pico_cart)
- SLOT_INTERFACE_INTERNAL("rom", MD_STD_ROM)
- SLOT_INTERFACE_INTERNAL("rom_sram", MD_ROM_SRAM) // not sure these are needed...
- SLOT_INTERFACE_INTERNAL("rom_sramsafe", MD_ROM_SRAM) // not sure these are needed...
-SLOT_INTERFACE_END
+static void pico_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", MD_STD_ROM);
+ device.option_add_internal("rom_sram", MD_ROM_SRAM); // not sure these are needed...
+ device.option_add_internal("rom_sramsafe", MD_ROM_SRAM); // not sure these are needed...
+}
MACHINE_START_MEMBER(pico_state,pico)
{
@@ -582,11 +583,12 @@ void copera_state::copera_mem(address_map &map)
-static SLOT_INTERFACE_START(copera_cart)
- SLOT_INTERFACE_INTERNAL("rom", MD_STD_ROM)
- SLOT_INTERFACE_INTERNAL("rom_sram", MD_ROM_SRAM) // not sure these are needed...
- SLOT_INTERFACE_INTERNAL("rom_sramsafe", MD_ROM_SRAM) // not sure these are needed...
-SLOT_INTERFACE_END
+static void copera_cart(device_slot_interface &device)
+{
+ device.option_add_internal("rom", MD_STD_ROM);
+ device.option_add_internal("rom_sram", MD_ROM_SRAM); // not sure these are needed...
+ device.option_add_internal("rom_sramsafe", MD_ROM_SRAM); // not sure these are needed...
+}
MACHINE_START_MEMBER(copera_state,copera)
{
diff --git a/src/mame/drivers/segas16a.cpp b/src/mame/drivers/segas16a.cpp
index 75be59aece4..158e7a11d67 100644
--- a/src/mame/drivers/segas16a.cpp
+++ b/src/mame/drivers/segas16a.cpp
@@ -2025,7 +2025,7 @@ MACHINE_CONFIG_START(segas16a_state::system16a)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/segas24.cpp b/src/mame/drivers/segas24.cpp
index 62db06b7ee1..a80e924849a 100644
--- a/src/mame/drivers/segas24.cpp
+++ b/src/mame/drivers/segas24.cpp
@@ -1918,7 +1918,7 @@ MACHINE_CONFIG_START(segas24_state::system24)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(segas24_state::mahmajn)
diff --git a/src/mame/drivers/seicross.cpp b/src/mame/drivers/seicross.cpp
index 8458d3eaf02..63a84493ef3 100644
--- a/src/mame/drivers/seicross.cpp
+++ b/src/mame/drivers/seicross.cpp
@@ -434,7 +434,7 @@ MACHINE_CONFIG_START(seicross_state::no_nvram)
MCFG_SOUND_ADD("dac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.12) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/senjyo.cpp b/src/mame/drivers/senjyo.cpp
index a92e373c31c..0aa1069e66b 100644
--- a/src/mame/drivers/senjyo.cpp
+++ b/src/mame/drivers/senjyo.cpp
@@ -599,7 +599,7 @@ MACHINE_CONFIG_START(senjyo_state::senjyo)
MCFG_SOUND_ADD("dac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.05) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/sg1000.cpp b/src/mame/drivers/sg1000.cpp
index e3eb180700b..fe97d63b09a 100644
--- a/src/mame/drivers/sg1000.cpp
+++ b/src/mame/drivers/sg1000.cpp
@@ -455,9 +455,10 @@ FLOPPY_FORMATS_END
floppy_interface sf7000_floppy_interface
-------------------------------------------------*/
-static SLOT_INTERFACE_START( sf7000_floppies )
- SLOT_INTERFACE( "3ssdd", FLOPPY_3_SSDD )
-SLOT_INTERFACE_END
+static void sf7000_floppies(device_slot_interface &device)
+{
+ device.option_add("3ssdd", FLOPPY_3_SSDD);
+}
/*-------------------------------------------------
MACHINE_START( sg1000 )
diff --git a/src/mame/drivers/shangkid.cpp b/src/mame/drivers/shangkid.cpp
index 16ba388275a..95ef35bdc6b 100644
--- a/src/mame/drivers/shangkid.cpp
+++ b/src/mame/drivers/shangkid.cpp
@@ -422,7 +422,7 @@ MACHINE_CONFIG_START(shangkid_state::chinhero)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("aysnd", AY8910, XTAL(18'432'000)/12) /* verified on pcb */
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(shangkid_state, chinhero_ay8910_porta_w))
diff --git a/src/mame/drivers/shisen.cpp b/src/mame/drivers/shisen.cpp
index cb5ed7f4196..0eb90bc92f4 100644
--- a/src/mame/drivers/shisen.cpp
+++ b/src/mame/drivers/shisen.cpp
@@ -260,7 +260,7 @@ MACHINE_CONFIG_START(shisen_state::shisen)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/sitcom.cpp b/src/mame/drivers/sitcom.cpp
index 6c8e3208b11..02d22b51964 100644
--- a/src/mame/drivers/sitcom.cpp
+++ b/src/mame/drivers/sitcom.cpp
@@ -371,9 +371,9 @@ MACHINE_CONFIG_START(sitcom_state::sitcom)
MCFG_I8255_IN_PORTC_CB(IOPORT("PORTC"))
// video hardware
- MCFG_DEVICE_ADD("ds0", DL1414T, 0) // left display
+ MCFG_DEVICE_ADD("ds0", DL1414T, u32(0)) // left display
MCFG_DL1414_UPDATE_HANDLER(WRITE16(sitcom_state, update_ds<0>))
- MCFG_DEVICE_ADD("ds1", DL1414T, 0) // right display
+ MCFG_DEVICE_ADD("ds1", DL1414T, u32(0)) // right display
MCFG_DL1414_UPDATE_HANDLER(WRITE16(sitcom_state, update_ds<1>))
// host interface
@@ -388,7 +388,7 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(sitcom_timer_state::sitcomtmr)
sitcom(config);
- MCFG_DEVICE_ADD("ds2", DL1414T, 0) // remote display
+ MCFG_DEVICE_ADD("ds2", DL1414T, u32(0)) // remote display
MCFG_DL1414_UPDATE_HANDLER(WRITE16(sitcom_timer_state, update_ds<2>))
MCFG_DEFAULT_LAYOUT(layout_sitcomtmr)
diff --git a/src/mame/drivers/slicer.cpp b/src/mame/drivers/slicer.cpp
index c31450db245..0187d05b858 100644
--- a/src/mame/drivers/slicer.cpp
+++ b/src/mame/drivers/slicer.cpp
@@ -83,10 +83,11 @@ void slicer_state::slicer_io(address_map &map)
map(0x0185, 0x0185).r("sasi_ctrl_in", FUNC(input_buffer_device::read));
}
-static SLOT_INTERFACE_START( slicer_floppies )
- SLOT_INTERFACE("525dd", FLOPPY_525_DD)
- SLOT_INTERFACE("8dsdd", FLOPPY_8_DSDD)
-SLOT_INTERFACE_END
+static void slicer_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+ device.option_add("8dsdd", FLOPPY_8_DSDD);
+}
MACHINE_CONFIG_START(slicer_state::slicer)
MCFG_CPU_ADD("maincpu", I80186, XTAL(16'000'000) / 2)
diff --git a/src/mame/drivers/smc777.cpp b/src/mame/drivers/smc777.cpp
index fb5c4594d5d..919fa1aabe6 100644
--- a/src/mame/drivers/smc777.cpp
+++ b/src/mame/drivers/smc777.cpp
@@ -1016,9 +1016,10 @@ INTERRUPT_GEN_MEMBER(smc777_state::vblank_irq)
}
-static SLOT_INTERFACE_START( smc777_floppies )
- SLOT_INTERFACE("ssdd", FLOPPY_35_SSDD)
-SLOT_INTERFACE_END
+static void smc777_floppies(device_slot_interface &device)
+{
+ device.option_add("ssdd", FLOPPY_35_SSDD);
+}
MACHINE_CONFIG_START(smc777_state::smc777)
diff --git a/src/mame/drivers/snk6502.cpp b/src/mame/drivers/snk6502.cpp
index 3d51c5307d4..3db13e11ee0 100644
--- a/src/mame/drivers/snk6502.cpp
+++ b/src/mame/drivers/snk6502.cpp
@@ -1071,7 +1071,7 @@ MACHINE_CONFIG_START(snk6502_state::fantasy)
// otherwise it is using the VCO for the envelope, but the VCO is not hooked up
MCFG_SN76477_ENVELOPE_PARAMS(0, 1) // envelope 1, 2
MCFG_SN76477_ENABLE(0) // enable
- MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
+ MCFG_SOUND_ROUTE(0, "discrete", 1.0, 0)
MCFG_SOUND_ADD("discrete", DISCRETE, 0)
MCFG_DISCRETE_INTF(fantasy)
diff --git a/src/mame/drivers/softbox.cpp b/src/mame/drivers/softbox.cpp
index 6b5b7970931..dcca744fc8e 100644
--- a/src/mame/drivers/softbox.cpp
+++ b/src/mame/drivers/softbox.cpp
@@ -386,7 +386,7 @@ MACHINE_CONFIG_START(softbox_state::softbox)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(I8251_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE(I8251_TAG, i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE(I8251_TAG, i8251_device, write_cts))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_DEVICE_ADD(I8255_0_TAG, I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(softbox_state, ppi0_pa_r))
diff --git a/src/mame/drivers/sorcerer.cpp b/src/mame/drivers/sorcerer.cpp
index f3e8da751dd..b4c1e25614f 100644
--- a/src/mame/drivers/sorcerer.cpp
+++ b/src/mame/drivers/sorcerer.cpp
@@ -447,7 +447,7 @@ MACHINE_CONFIG_START(sorcerer_state::sorcerer)
MCFG_AY31015_AUTO_RDAV(true)
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "null_modem")
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
/* printer */
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "covox")
diff --git a/src/mame/drivers/spc1000.cpp b/src/mame/drivers/spc1000.cpp
index 4a064b6de32..585917d6ea0 100644
--- a/src/mame/drivers/spc1000.cpp
+++ b/src/mame/drivers/spc1000.cpp
@@ -458,10 +458,11 @@ WRITE_LINE_MEMBER( spc1000_state::irq_w )
// address maps
//-------------------------------------------------
-extern SLOT_INTERFACE_START(spc1000_exp)
- SLOT_INTERFACE("fdd", SPC1000_FDD_EXP)
- SLOT_INTERFACE("vdp", SPC1000_VDP_EXP)
-SLOT_INTERFACE_END
+void spc1000_exp(device_slot_interface &device)
+{
+ device.option_add("fdd", SPC1000_FDD_EXP);
+ device.option_add("vdp", SPC1000_VDP_EXP);
+}
MACHINE_CONFIG_START(spc1000_state::spc1000)
/* basic machine hardware */
diff --git a/src/mame/drivers/special.cpp b/src/mame/drivers/special.cpp
index b66dfcc44bb..234423457f1 100644
--- a/src/mame/drivers/special.cpp
+++ b/src/mame/drivers/special.cpp
@@ -358,9 +358,10 @@ FLOPPY_FORMATS_MEMBER( special_state::specimx_floppy_formats )
FLOPPY_SMX_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( specimx_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void specimx_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
/* Machine driver */
MACHINE_CONFIG_START(special_state::special)
@@ -385,7 +386,7 @@ MACHINE_CONFIG_START(special_state::special)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
@@ -507,7 +508,7 @@ MACHINE_CONFIG_START(special_state::erik)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
diff --git a/src/mame/drivers/specpls3.cpp b/src/mame/drivers/specpls3.cpp
index 139cecad237..b3a7cd7e08b 100644
--- a/src/mame/drivers/specpls3.cpp
+++ b/src/mame/drivers/specpls3.cpp
@@ -348,9 +348,10 @@ DRIVER_INIT_MEMBER(spectrum_state,plus2)
m_floppy = 0;
}
-static SLOT_INTERFACE_START( specpls3_floppies )
- SLOT_INTERFACE( "3ssdd", FLOPPY_3_SSDD )
-SLOT_INTERFACE_END
+static void specpls3_floppies(device_slot_interface &device)
+{
+ device.option_add("3ssdd", FLOPPY_3_SSDD);
+}
/* F4 Character Displayer */
static const gfx_layout spectrum_charlayout =
diff --git a/src/mame/drivers/squale.cpp b/src/mame/drivers/squale.cpp
index 6fa00ec6102..16d9d588ed8 100644
--- a/src/mame/drivers/squale.cpp
+++ b/src/mame/drivers/squale.cpp
@@ -739,9 +739,10 @@ static INPUT_PORTS_START( squale )
INPUT_PORTS_END
-static SLOT_INTERFACE_START( squale_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void squale_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
void squale_state::machine_start()
{
diff --git a/src/mame/drivers/ssozumo.cpp b/src/mame/drivers/ssozumo.cpp
index 45b4593c789..681861c2bb4 100644
--- a/src/mame/drivers/ssozumo.cpp
+++ b/src/mame/drivers/ssozumo.cpp
@@ -234,7 +234,7 @@ MACHINE_CONFIG_START(ssozumo_state::ssozumo)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.3) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/sun3x.cpp b/src/mame/drivers/sun3x.cpp
index 95ed03e46fa..8e652c7431f 100644
--- a/src/mame/drivers/sun3x.cpp
+++ b/src/mame/drivers/sun3x.cpp
@@ -577,9 +577,10 @@ FLOPPY_FORMATS_MEMBER( sun3x_state::floppy_formats )
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( sun_floppies )
- SLOT_INTERFACE( "35hd", FLOPPY_35_HD )
-SLOT_INTERFACE_END
+static void sun_floppies(device_slot_interface &device)
+{
+ device.option_add("35hd", FLOPPY_35_HD);
+}
MACHINE_CONFIG_START(sun3x_state::sun3_80)
/* basic machine hardware */
diff --git a/src/mame/drivers/sun4.cpp b/src/mame/drivers/sun4.cpp
index 36067cfd5e7..23c08fa0c99 100644
--- a/src/mame/drivers/sun4.cpp
+++ b/src/mame/drivers/sun4.cpp
@@ -1887,15 +1887,17 @@ FLOPPY_FORMATS_MEMBER( sun4_state::floppy_formats )
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( sun_floppies )
- SLOT_INTERFACE( "35hd", FLOPPY_35_HD )
-SLOT_INTERFACE_END
+static void sun_floppies(device_slot_interface &device)
+{
+ device.option_add("35hd", FLOPPY_35_HD);
+}
-static SLOT_INTERFACE_START( sun_scsi_devices )
- SLOT_INTERFACE("cdrom", NSCSI_CDROM)
- SLOT_INTERFACE("harddisk", NSCSI_HARDDISK)
- SLOT_INTERFACE_INTERNAL("ncr5390", NCR5390)
-SLOT_INTERFACE_END
+static void sun_scsi_devices(device_slot_interface &device)
+{
+ device.option_add("cdrom", NSCSI_CDROM);
+ device.option_add("harddisk", NSCSI_HARDDISK);
+ device.option_add_internal("ncr5390", NCR5390);
+}
void sun4_state::ncr5390(device_t *device)
{
@@ -1968,7 +1970,7 @@ MACHINE_CONFIG_START(sun4_state::sun4)
MCFG_NSCSI_ADD("scsibus:5", sun_scsi_devices, nullptr, false)
MCFG_NSCSI_ADD("scsibus:6", sun_scsi_devices, nullptr, false)
MCFG_NSCSI_ADD("scsibus:7", sun_scsi_devices, "ncr5390", true)
- MCFG_DEVICE_CARD_MACHINE_CONFIG("ncr5390", ncr5390)
+ MCFG_SLOT_OPTION_MACHINE_CONFIG("ncr5390", ncr5390)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(sun4_state::sun4c)
@@ -2033,7 +2035,7 @@ MACHINE_CONFIG_START(sun4_state::sun4c)
MCFG_NSCSI_ADD("scsibus:5", sun_scsi_devices, nullptr, false)
MCFG_NSCSI_ADD("scsibus:6", sun_scsi_devices, nullptr, false)
MCFG_NSCSI_ADD("scsibus:7", sun_scsi_devices, "ncr5390", true)
- MCFG_DEVICE_CARD_MACHINE_CONFIG("ncr5390", ncr5390)
+ MCFG_SLOT_OPTION_MACHINE_CONFIG("ncr5390", ncr5390)
MCFG_SCREEN_ADD("bwtwo", RASTER)
MCFG_SCREEN_UPDATE_DRIVER(sun4_state, bw2_update)
diff --git a/src/mame/drivers/suna16.cpp b/src/mame/drivers/suna16.cpp
index eb125547a6c..33dad960941 100644
--- a/src/mame/drivers/suna16.cpp
+++ b/src/mame/drivers/suna16.cpp
@@ -863,10 +863,10 @@ MACHINE_CONFIG_START(suna16_state::bssoccer)
MCFG_SOUND_ADD("ldac2", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.2) // unknown DAC
MCFG_SOUND_ADD("rdac2", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.2) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "ldac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac2", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -922,8 +922,8 @@ MACHINE_CONFIG_START(suna16_state::uballoon)
MCFG_SOUND_ADD("ldac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/***************************************************************************
@@ -978,8 +978,8 @@ MACHINE_CONFIG_START(suna16_state::sunaq)
MCFG_SOUND_ADD("ldac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/***************************************************************************
@@ -1045,10 +1045,10 @@ MACHINE_CONFIG_START(suna16_state::bestbest)
MCFG_SOUND_ADD("ldac2", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.2) // unknown DAC
MCFG_SOUND_ADD("rdac2", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.2) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "ldac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac2", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/***************************************************************************
diff --git a/src/mame/drivers/suna8.cpp b/src/mame/drivers/suna8.cpp
index 093daeadc32..8681c1c6fd8 100644
--- a/src/mame/drivers/suna8.cpp
+++ b/src/mame/drivers/suna8.cpp
@@ -2060,10 +2060,10 @@ MACHINE_CONFIG_START(suna8_state::brickzn11)
MCFG_SOUND_ADD("ldac2", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.17) // unknown DAC
MCFG_SOUND_ADD("rdac2", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.17) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "ldac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac2", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(suna8_state::brickzn)
diff --git a/src/mame/drivers/super6.cpp b/src/mame/drivers/super6.cpp
index 75cbec4648e..6b790a64be7 100644
--- a/src/mame/drivers/super6.cpp
+++ b/src/mame/drivers/super6.cpp
@@ -395,9 +395,10 @@ WRITE8_MEMBER(super6_state::io_write_byte)
// floppy_format_type floppy_formats
//-------------------------------------------------
-static SLOT_INTERFACE_START( super6_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void super6_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_QD);
+}
WRITE_LINE_MEMBER( super6_state::fdc_intrq_w )
{
@@ -519,7 +520,7 @@ MACHINE_CONFIG_START(super6_state::super6)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
diff --git a/src/mame/drivers/super80.cpp b/src/mame/drivers/super80.cpp
index bb6f6f5531b..a10638dd482 100644
--- a/src/mame/drivers/super80.cpp
+++ b/src/mame/drivers/super80.cpp
@@ -690,9 +690,10 @@ void super80_state::machine_start()
m_cass_led.resolve();
}
-static SLOT_INTERFACE_START( super80_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void super80_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
static const char *const relay_sample_names[] =
diff --git a/src/mame/drivers/superslave.cpp b/src/mame/drivers/superslave.cpp
index b2e39d51012..ab624bec04b 100644
--- a/src/mame/drivers/superslave.cpp
+++ b/src/mame/drivers/superslave.cpp
@@ -406,7 +406,7 @@ MACHINE_CONFIG_START(superslave_state::superslave)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(Z80DART_0_TAG, z80dart_device, rxa_w))
MCFG_RS232_DCD_HANDLER(DEVWRITELINE(Z80DART_0_TAG, z80dart_device, dcda_w))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE(Z80DART_0_TAG, z80dart_device, ctsa_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(Z80DART_0_TAG, z80dart_device, rxb_w))
diff --git a/src/mame/drivers/swtpc09.cpp b/src/mame/drivers/swtpc09.cpp
index fb7db1e60f8..2c8062a3892 100644
--- a/src/mame/drivers/swtpc09.cpp
+++ b/src/mame/drivers/swtpc09.cpp
@@ -147,15 +147,16 @@ FLOPPY_FORMATS_MEMBER( swtpc09_state::floppy_formats )
FLOPPY_FORMATS_END
// todo: implement floppy controller cards as slot devices and do this properly
-static SLOT_INTERFACE_START( swtpc09_floppies )
- SLOT_INTERFACE("sssd", FLOPPY_525_SSSD) // flex 40 trks ss sd 5.25
- SLOT_INTERFACE("sssd35", FLOPPY_525_SSSD_35T) // flex 35 trks ss sd 5.25
- SLOT_INTERFACE("ssdd", FLOPPY_525_SSDD) // flex 40 trks ss dd 5.25
- SLOT_INTERFACE("dd", FLOPPY_525_DD) // flex 40 trks ds dd 5.25
- SLOT_INTERFACE("8dssd", FLOPPY_8_DSSD) // UNIFlex 8 inch ds sd
- SLOT_INTERFACE("8dsdd", FLOPPY_8_DSDD) // UNIFlex 8 inch ds dd
- SLOT_INTERFACE("35hd", FLOPPY_35_HD) // flex 1.44mb disk from swtpc emu (emulator only?)
-SLOT_INTERFACE_END
+static void swtpc09_floppies(device_slot_interface &device)
+{
+ device.option_add("sssd", FLOPPY_525_SSSD); // flex 40 trks ss sd 5.25
+ device.option_add("sssd35", FLOPPY_525_SSSD_35T); // flex 35 trks ss sd 5.25
+ device.option_add("ssdd", FLOPPY_525_SSDD); // flex 40 trks ss dd 5.25
+ device.option_add("dd", FLOPPY_525_DD); // flex 40 trks ds dd 5.25
+ device.option_add("8dssd", FLOPPY_8_DSSD); // UNIFlex 8 inch ds sd
+ device.option_add("8dsdd", FLOPPY_8_DSDD); // UNIFlex 8 inch ds dd
+ device.option_add("35hd", FLOPPY_35_HD); // flex 1.44mb disk from swtpc emu (emulator only?)
+}
/***************************************************************************
diff --git a/src/mame/drivers/sys9002.cpp b/src/mame/drivers/sys9002.cpp
index d90851fe426..9feca342338 100644
--- a/src/mame/drivers/sys9002.cpp
+++ b/src/mame/drivers/sys9002.cpp
@@ -157,7 +157,7 @@ MACHINE_CONFIG_START(sys9002_state::sys9002)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart1", i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart1", i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart1", i8251_device, write_cts))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", uart1)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", uart1)
MCFG_DEVICE_ADD("uart2", I8251, 0)
MCFG_I8251_TXD_HANDLER(DEVWRITELINE("rs232b", rs232_port_device, write_txd))
@@ -168,7 +168,7 @@ MACHINE_CONFIG_START(sys9002_state::sys9002)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart2", i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart2", i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart2", i8251_device, write_cts))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", uart2)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", uart2)
MACHINE_CONFIG_END
/* ROM definition */
diff --git a/src/mame/drivers/tagteam.cpp b/src/mame/drivers/tagteam.cpp
index f357602d65f..ca0b6614bdf 100644
--- a/src/mame/drivers/tagteam.cpp
+++ b/src/mame/drivers/tagteam.cpp
@@ -247,7 +247,7 @@ MACHINE_CONFIG_START(tagteam_state::tagteam)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/taito.cpp b/src/mame/drivers/taito.cpp
index e4edd3cba1c..2ba90a15ec8 100644
--- a/src/mame/drivers/taito.cpp
+++ b/src/mame/drivers/taito.cpp
@@ -364,7 +364,7 @@ MACHINE_CONFIG_START(taito_state::taito)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.475) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD("pia", PIA6821, 0)
//MCFG_PIA_READPA_HANDLER(READ8(taito_state, pia_pa_r))
diff --git a/src/mame/drivers/taitogn.cpp b/src/mame/drivers/taitogn.cpp
index 77e352d421b..92a3d1c70c1 100644
--- a/src/mame/drivers/taitogn.cpp
+++ b/src/mame/drivers/taitogn.cpp
@@ -686,12 +686,13 @@ void taitogn_state::taitogn_mp_map(address_map &map)
map(0x1fa10100, 0x1fa10100).r(this, FUNC(taitogn_state::gnet_mahjong_panel_r));
}
-SLOT_INTERFACE_START(slot_ataflash)
- SLOT_INTERFACE("taitopccard1", TAITO_PCCARD1)
- SLOT_INTERFACE("taitopccard2", TAITO_PCCARD2)
- SLOT_INTERFACE("taitocf", TAITO_COMPACT_FLASH)
- SLOT_INTERFACE("ataflash", ATA_FLASH_PCCARD)
-SLOT_INTERFACE_END
+void slot_ataflash(device_slot_interface &device)
+{
+ device.option_add("taitopccard1", TAITO_PCCARD1);
+ device.option_add("taitopccard2", TAITO_PCCARD2);
+ device.option_add("taitocf", TAITO_COMPACT_FLASH);
+ device.option_add("ataflash", ATA_FLASH_PCCARD);
+}
MACHINE_CONFIG_START(taitogn_state::coh3002t)
diff --git a/src/mame/drivers/taitosj.cpp b/src/mame/drivers/taitosj.cpp
index b1256844a7f..8cf6f50c14c 100644
--- a/src/mame/drivers/taitosj.cpp
+++ b/src/mame/drivers/taitosj.cpp
@@ -1826,7 +1826,7 @@ MACHINE_CONFIG_START(taitosj_state::nomcu)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.15) // 30k r-2r network
MCFG_SOUND_ADD("dacvol", DISCRETE, 0) MCFG_DISCRETE_INTF(taitosj_dacvol)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tandy2k.cpp b/src/mame/drivers/tandy2k.cpp
index 19d627b6d40..db789a65e8b 100644
--- a/src/mame/drivers/tandy2k.cpp
+++ b/src/mame/drivers/tandy2k.cpp
@@ -700,9 +700,10 @@ FLOPPY_FORMATS_MEMBER( tandy2k_state::floppy_formats )
FLOPPY_TANDY_2000_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( tandy2k_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void tandy2k_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
// Keyboard
diff --git a/src/mame/drivers/tavernie.cpp b/src/mame/drivers/tavernie.cpp
index b5ea7a9184c..e3db604a5f0 100644
--- a/src/mame/drivers/tavernie.cpp
+++ b/src/mame/drivers/tavernie.cpp
@@ -187,9 +187,10 @@ MACHINE_RESET_MEMBER( tavernie_state, ivg09)
m_pia_ivg->cb1_w(1);
}
-static SLOT_INTERFACE_START( ifd09_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void ifd09_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
// can support 3 drives
WRITE8_MEMBER( tavernie_state::ds_w )
diff --git a/src/mame/drivers/tceptor.cpp b/src/mame/drivers/tceptor.cpp
index fdbdd63e1b5..60e5c4fc512 100644
--- a/src/mame/drivers/tceptor.cpp
+++ b/src/mame/drivers/tceptor.cpp
@@ -384,7 +384,7 @@ MACHINE_CONFIG_START(tceptor_state::tceptor)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.4) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.4) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tdv2324.cpp b/src/mame/drivers/tdv2324.cpp
index fd66194ebce..af802f173cf 100644
--- a/src/mame/drivers/tdv2324.cpp
+++ b/src/mame/drivers/tdv2324.cpp
@@ -248,9 +248,10 @@ uint32_t tdv2324_state::screen_update(screen_device &screen, bitmap_rgb32 &bitma
// SLOT_INTERFACE( tdv2324_floppies )
//-------------------------------------------------
-static SLOT_INTERFACE_START( tdv2324_floppies )
- SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD )
-SLOT_INTERFACE_END
+static void tdv2324_floppies(device_slot_interface &device)
+{
+ device.option_add("8dsdd", FLOPPY_8_DSDD);
+}
diff --git a/src/mame/drivers/terracre.cpp b/src/mame/drivers/terracre.cpp
index a26cf0b0c1f..00fadbe6622 100644
--- a/src/mame/drivers/terracre.cpp
+++ b/src/mame/drivers/terracre.cpp
@@ -490,8 +490,8 @@ MACHINE_CONFIG_START(terracre_state::ym3526)
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(terracre_state::ym2203)
diff --git a/src/mame/drivers/testconsole.cpp b/src/mame/drivers/testconsole.cpp
index 9d03cf2e472..abe38b77177 100644
--- a/src/mame/drivers/testconsole.cpp
+++ b/src/mame/drivers/testconsole.cpp
@@ -185,16 +185,16 @@ MACHINE_CONFIG_START(whouse_testcons_state::whousetc)
MCFG_DEVICE_ADD("i8255", I8255, 0)
- MCFG_DEVICE_ADD("dsp0", DL1416B, 0)
+ MCFG_DEVICE_ADD("dsp0", DL1416B, u32(0))
MCFG_DL1416_UPDATE_HANDLER(WRITE16(whouse_testcons_state, update_dsp<0>))
- MCFG_DEVICE_ADD("dsp1", DL1416B, 0)
+ MCFG_DEVICE_ADD("dsp1", DL1416B, u32(0))
MCFG_DL1416_UPDATE_HANDLER(WRITE16(whouse_testcons_state, update_dsp<1>))
- MCFG_DEVICE_ADD("dsp2", DL1416B, 0)
+ MCFG_DEVICE_ADD("dsp2", DL1416B, u32(0))
MCFG_DL1416_UPDATE_HANDLER(WRITE16(whouse_testcons_state, update_dsp<2>))
- MCFG_DEVICE_ADD("dsp3", DL1416B, 0)
+ MCFG_DEVICE_ADD("dsp3", DL1416B, u32(0))
MCFG_DL1416_UPDATE_HANDLER(WRITE16(whouse_testcons_state, update_dsp<3>))
MCFG_DEFAULT_LAYOUT(layout_whousetc)
diff --git a/src/mame/drivers/thomson.cpp b/src/mame/drivers/thomson.cpp
index 9f973423720..4a04e06136b 100644
--- a/src/mame/drivers/thomson.cpp
+++ b/src/mame/drivers/thomson.cpp
@@ -608,12 +608,13 @@ FLOPPY_FORMATS_MEMBER( thomson_state::cd90_640_formats )
FLOPPY_CD90_640_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( cd90_640_floppies )
- SLOT_INTERFACE("sssd", FLOPPY_525_SSSD)
- SLOT_INTERFACE("sd", FLOPPY_525_SD)
- SLOT_INTERFACE("ssdd", FLOPPY_525_SSDD)
- SLOT_INTERFACE("dd", FLOPPY_525_DD)
-SLOT_INTERFACE_END
+static void cd90_640_floppies(device_slot_interface &device)
+{
+ device.option_add("sssd", FLOPPY_525_SSSD);
+ device.option_add("sd", FLOPPY_525_SD);
+ device.option_add("ssdd", FLOPPY_525_SSDD);
+ device.option_add("dd", FLOPPY_525_DD);
+}
/* ------------ driver ------------ */
@@ -652,8 +653,8 @@ MACHINE_CONFIG_START(thomson_state::to7)
MCFG_SOUND_ADD("buzzer", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_SOUND_ADD("dac", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC (6-bit game extension DAC)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "buzzer", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "buzzer", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
/* speech synthesis */
MCFG_SOUND_ADD("mea8000", MEA8000, 3840000)
diff --git a/src/mame/drivers/tiki100.cpp b/src/mame/drivers/tiki100.cpp
index 05b2eccc0ea..e56e1935862 100644
--- a/src/mame/drivers/tiki100.cpp
+++ b/src/mame/drivers/tiki100.cpp
@@ -628,11 +628,12 @@ FLOPPY_FORMATS_MEMBER( tiki100_state::floppy_formats )
FLOPPY_TIKI100_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( tiki100_floppies )
- SLOT_INTERFACE( "525ssdd", FLOPPY_525_SSDD )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) // Tead FD-55A
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) // Teac FD-55F
-SLOT_INTERFACE_END
+static void tiki100_floppies(device_slot_interface &device)
+{
+ device.option_add("525ssdd", FLOPPY_525_SSDD);
+ device.option_add("525dd", FLOPPY_525_DD); // Tead FD-55A
+ device.option_add("525qd", FLOPPY_525_QD); // Teac FD-55F
+}
/* AY-3-8912 Interface */
diff --git a/src/mame/drivers/tim011.cpp b/src/mame/drivers/tim011.cpp
index fd025940f76..dc64f1b40ef 100644
--- a/src/mame/drivers/tim011.cpp
+++ b/src/mame/drivers/tim011.cpp
@@ -115,9 +115,10 @@ READ8_MEMBER(tim011_state::scroll_r)
return m_scroll;
}
-static SLOT_INTERFACE_START( tim011_floppies )
- SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
-SLOT_INTERFACE_END
+static void tim011_floppies(device_slot_interface &device)
+{
+ device.option_add("35dd", FLOPPY_35_DD);
+}
static const floppy_format_type tim011_floppy_formats[] = {
FLOPPY_IMD_FORMAT,
diff --git a/src/mame/drivers/tim100.cpp b/src/mame/drivers/tim100.cpp
index e7cfe6a057f..5c66d7e6e16 100644
--- a/src/mame/drivers/tim100.cpp
+++ b/src/mame/drivers/tim100.cpp
@@ -193,7 +193,7 @@ MACHINE_CONFIG_START(tim100_state::tim100)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart_u17", i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart_u17", i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart_u17", i8251_device, write_cts))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("keyboard", tim100 )
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("keyboard", tim100)
MCFG_DEVICE_ADD("uart_u18", I8251, 0)
MCFG_I8251_TXD_HANDLER(DEVWRITELINE("rs232a", rs232_port_device, write_txd))
@@ -204,7 +204,7 @@ MACHINE_CONFIG_START(tim100_state::tim100)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart_u18", i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart_u18", i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart_u18", i8251_device, write_cts))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", tim100 )
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", tim100)
MCFG_DEVICE_ADD("uart_clock", CLOCK, 153600)
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("uart_u17", i8251_device, write_txc))
diff --git a/src/mame/drivers/tnzs.cpp b/src/mame/drivers/tnzs.cpp
index cdedfa7524b..6acaceb32f7 100644
--- a/src/mame/drivers/tnzs.cpp
+++ b/src/mame/drivers/tnzs.cpp
@@ -1711,7 +1711,7 @@ MACHINE_CONFIG_START(kabukiz_state::kabukiz)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/trackfld.cpp b/src/mame/drivers/trackfld.cpp
index 16fbd8cfffb..b254713addb 100644
--- a/src/mame/drivers/trackfld.cpp
+++ b/src/mame/drivers/trackfld.cpp
@@ -952,7 +952,7 @@ MACHINE_CONFIG_START(trackfld_state::trackfld)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // ls374.8e + r34-r47(20k) + r35-r53(10k) + r54(20k) + upc324.8f
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("snsnd", SN76496, SOUND_CLOCK/8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
@@ -1028,7 +1028,7 @@ MACHINE_CONFIG_START(trackfld_state::yieartf)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // ls374.8e + r34-r47(20k) + r35-r53(10k) + r54(20k) + upc324.8f
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("snsnd", SN76496, MASTER_CLOCK/6/2)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
diff --git a/src/mame/drivers/tranz330.cpp b/src/mame/drivers/tranz330.cpp
index 8eaaebf2ab1..3a4a623c985 100644
--- a/src/mame/drivers/tranz330.cpp
+++ b/src/mame/drivers/tranz330.cpp
@@ -172,21 +172,17 @@ void tranz330_state::tranz330(machine_config &config)
m_ctc->set_zc_callback<2>(DEVCB_WRITELINE(tranz330_state, sound_w));
m_ctc->set_intr_callback(DEVCB_DEVWRITELINE("irq", input_merger_device, in_w<2>));
- RS232_PORT(config, m_rs232, 0);
- m_rs232->option_reset();
- slot_options_default_rs232_devices(m_rs232);
- m_rs232->set_default_option(nullptr);
- m_rs232->set_fixed(false);
+ RS232_PORT(config, m_rs232, default_rs232_devices, nullptr);
m_rs232->set_rxd_handler(DEVCB_DEVWRITELINE(m_dart, z80dart_device, rxb_w));
m_rs232->set_dcd_handler(DEVCB_DEVWRITELINE(m_dart, z80dart_device, dcdb_w));
m_rs232->set_cts_handler(DEVCB_DEVWRITELINE(m_dart, z80dart_device, ctsb_w));
// video
- MIC10937(config, VFD_TAG, 60).set_port_value(0);
+ MIC10937(config, VFD_TAG).set_port_value(0);
config.m_default_layout = &layout_tranz330;
// sound
- SPEAKER(config, "mono", 0).set_position(0.0, 0.0, 1.0);
+ SPEAKER(config, "mono", 0).standard_mono();
SPEAKER_SOUND(config, "speaker", 0)
.add_route(ALL_OUTPUTS, "mono", 0.25);
}
diff --git a/src/mame/drivers/tricep.cpp b/src/mame/drivers/tricep.cpp
index cf930c2b39b..d0bab99c53a 100644
--- a/src/mame/drivers/tricep.cpp
+++ b/src/mame/drivers/tricep.cpp
@@ -110,7 +110,7 @@ MACHINE_CONFIG_START(tricep_state::tricep)
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("pci0", mc2661_device, dsr_w))
MCFG_RS232_DCD_HANDLER(DEVWRITELINE("pci0", mc2661_device, dcd_w))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("pci0", mc2661_device, cts_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MACHINE_CONFIG_END
/* ROM definition */
diff --git a/src/mame/drivers/trs80.cpp b/src/mame/drivers/trs80.cpp
index 09a3c5775e1..73583392b0b 100644
--- a/src/mame/drivers/trs80.cpp
+++ b/src/mame/drivers/trs80.cpp
@@ -600,9 +600,10 @@ FLOPPY_FORMATS_MEMBER( trs80_state::floppy_formats )
FLOPPY_DMK_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( trs80_floppies )
- SLOT_INTERFACE("sssd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+static void trs80_floppies(device_slot_interface &device)
+{
+ device.option_add("sssd", FLOPPY_525_QD);
+}
MACHINE_CONFIG_START(trs80_state::trs80) // the original model I, level I, with no extras
diff --git a/src/mame/drivers/trs80m2.cpp b/src/mame/drivers/trs80m2.cpp
index da546f91e3b..d85ef889dea 100644
--- a/src/mame/drivers/trs80m2.cpp
+++ b/src/mame/drivers/trs80m2.cpp
@@ -621,10 +621,11 @@ TIMER_DEVICE_CALLBACK_MEMBER(trs80m2_state::ctc_tick)
m_ctc->trg2(0);
}
-static SLOT_INTERFACE_START( trs80m2_floppies )
- SLOT_INTERFACE( "8ssdd", FLOPPY_8_SSDD ) // Shugart SA-800
- SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD ) // Shugart SA-850
-SLOT_INTERFACE_END
+static void trs80m2_floppies(device_slot_interface &device)
+{
+ device.option_add("8ssdd", FLOPPY_8_SSDD); // Shugart SA-800
+ device.option_add("8dsdd", FLOPPY_8_DSDD); // Shugart SA-850
+}
//-------------------------------------------------
diff --git a/src/mame/drivers/truco.cpp b/src/mame/drivers/truco.cpp
index e98057f3f56..d2816e73c86 100644
--- a/src/mame/drivers/truco.cpp
+++ b/src/mame/drivers/truco.cpp
@@ -456,7 +456,7 @@ MACHINE_CONFIG_START(truco_state::truco)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/trucocl.cpp b/src/mame/drivers/trucocl.cpp
index 5d370dde5c2..414e949ff21 100644
--- a/src/mame/drivers/trucocl.cpp
+++ b/src/mame/drivers/trucocl.cpp
@@ -169,7 +169,7 @@ MACHINE_CONFIG_START(trucocl_state::trucocl)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/***************************************************************************
diff --git a/src/mame/drivers/ts802.cpp b/src/mame/drivers/ts802.cpp
index 8166445d100..dd39d82a41b 100644
--- a/src/mame/drivers/ts802.cpp
+++ b/src/mame/drivers/ts802.cpp
@@ -138,9 +138,10 @@ WRITE8_MEMBER( ts802_state::io_write_byte )
m_io->write_byte(offset, data);
}
-static SLOT_INTERFACE_START( ts802_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void ts802_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
MACHINE_RESET_MEMBER( ts802_state, ts802 )
{
diff --git a/src/mame/drivers/ts803.cpp b/src/mame/drivers/ts803.cpp
index 20a2b33ae39..0b563ed0482 100644
--- a/src/mame/drivers/ts803.cpp
+++ b/src/mame/drivers/ts803.cpp
@@ -183,9 +183,10 @@ INPUT_PORTS_END
/* disk drive */
-static SLOT_INTERFACE_START( ts803_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void ts803_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
WRITE8_MEMBER( ts803_state::disk_0_control_w )
{
diff --git a/src/mame/drivers/tsamurai.cpp b/src/mame/drivers/tsamurai.cpp
index c45711f438d..06fbeaebd0b 100644
--- a/src/mame/drivers/tsamurai.cpp
+++ b/src/mame/drivers/tsamurai.cpp
@@ -761,8 +761,8 @@ MACHINE_CONFIG_START(tsamurai_state::tsamurai)
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -810,7 +810,7 @@ MACHINE_CONFIG_START(tsamurai_state::vsgongf)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -865,8 +865,8 @@ MACHINE_CONFIG_START(tsamurai_state::m660)
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tsispch.cpp b/src/mame/drivers/tsispch.cpp
index 3de60e48469..9766de49c87 100644
--- a/src/mame/drivers/tsispch.cpp
+++ b/src/mame/drivers/tsispch.cpp
@@ -408,7 +408,7 @@ MACHINE_CONFIG_START(tsispch_state::prose2k)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_12BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC (TODO: correctly figure out how the DAC works; apparently it is connected to the serial output of the upd7720, which will be "fun" to connect up)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
MCFG_GENERIC_TERMINAL_KEYBOARD_CB(DEVPUT("i8251a_u15", i8251_device, receive_character))
diff --git a/src/mame/drivers/turrett.cpp b/src/mame/drivers/turrett.cpp
index 1c877e3f620..d146d0a27af 100644
--- a/src/mame/drivers/turrett.cpp
+++ b/src/mame/drivers/turrett.cpp
@@ -341,9 +341,10 @@ public:
DEFINE_DEVICE_TYPE(TURRETT_HARDDISK, turrett_hdd, "turrett_hdd", "Turret Tower HDD")
-SLOT_INTERFACE_START(turrett_devices)
- SLOT_INTERFACE("hdd", TURRETT_HARDDISK)
-SLOT_INTERFACE_END
+void turrett_devices(device_slot_interface &device)
+{
+ device.option_add("hdd", TURRETT_HARDDISK);
+}
/*************************************
*
diff --git a/src/mame/drivers/tvc.cpp b/src/mame/drivers/tvc.cpp
index 64875a8a08c..f71440da574 100644
--- a/src/mame/drivers/tvc.cpp
+++ b/src/mame/drivers/tvc.cpp
@@ -760,9 +760,10 @@ QUICKLOAD_LOAD_MEMBER( tvc_state, tvc64)
}
-extern SLOT_INTERFACE_START(tvc_exp)
- SLOT_INTERFACE("hbf", TVC_HBF) // Videoton HBF floppy interface
-SLOT_INTERFACE_END
+void tvc_exp(device_slot_interface &device)
+{
+ device.option_add("hbf", TVC_HBF); // Videoton HBF floppy interface
+}
MACHINE_CONFIG_START(tvc_state::tvc)
diff --git a/src/mame/drivers/unixpc.cpp b/src/mame/drivers/unixpc.cpp
index 3a56d232efe..2c6c589113d 100644
--- a/src/mame/drivers/unixpc.cpp
+++ b/src/mame/drivers/unixpc.cpp
@@ -317,9 +317,10 @@ INPUT_PORTS_END
MACHINE DRIVERS
***************************************************************************/
-static SLOT_INTERFACE_START( unixpc_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void unixpc_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
MACHINE_CONFIG_START(unixpc_state::unixpc)
// basic machine hardware
diff --git a/src/mame/drivers/ut88.cpp b/src/mame/drivers/ut88.cpp
index 5d54df9693a..49df616377b 100644
--- a/src/mame/drivers/ut88.cpp
+++ b/src/mame/drivers/ut88.cpp
@@ -211,7 +211,7 @@ MACHINE_CONFIG_START(ut88_state::ut88)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
diff --git a/src/mame/drivers/v1050.cpp b/src/mame/drivers/v1050.cpp
index 4b93fbc93aa..24c3adc2418 100644
--- a/src/mame/drivers/v1050.cpp
+++ b/src/mame/drivers/v1050.cpp
@@ -929,10 +929,11 @@ void v1050_state::update_fdc()
// disk format: 80 tracks, 1 head, 10 sectors, 512 bytes sector length, first sector id 1
-static SLOT_INTERFACE_START( v1050_floppies )
- SLOT_INTERFACE( "525ssqd", FLOPPY_525_SSQD ) // Teac FD 55E-02-U
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) // Teac FD 55-FV-35-U
-SLOT_INTERFACE_END
+static void v1050_floppies(device_slot_interface &device)
+{
+ device.option_add("525ssqd", FLOPPY_525_SSQD); // Teac FD 55E-02-U
+ device.option_add("525qd", FLOPPY_525_QD); // Teac FD 55-FV-35-U
+}
WRITE_LINE_MEMBER( v1050_state::fdc_intrq_w )
{
diff --git a/src/mame/drivers/v6809.cpp b/src/mame/drivers/v6809.cpp
index 4b30ac80bd3..828ae6786fd 100644
--- a/src/mame/drivers/v6809.cpp
+++ b/src/mame/drivers/v6809.cpp
@@ -270,9 +270,10 @@ WRITE_LINE_MEMBER( v6809_state::speaker_w )
// m_speaker->level_w(data);
}
-static SLOT_INTERFACE_START( v6809_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void v6809_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
// *** Machine ****
diff --git a/src/mame/drivers/vboy.cpp b/src/mame/drivers/vboy.cpp
index 2db0706d211..404575393fd 100644
--- a/src/mame/drivers/vboy.cpp
+++ b/src/mame/drivers/vboy.cpp
@@ -1344,10 +1344,11 @@ TIMER_DEVICE_CALLBACK_MEMBER(vboy_state::vboy_scanlineR)
#endif
-static SLOT_INTERFACE_START(vboy_cart)
- SLOT_INTERFACE_INTERNAL("vb_rom", VBOY_ROM_STD)
- SLOT_INTERFACE_INTERNAL("vb_eeprom", VBOY_ROM_EEPROM)
-SLOT_INTERFACE_END
+static void vboy_cart(device_slot_interface &device)
+{
+ device.option_add_internal("vb_rom", VBOY_ROM_STD);
+ device.option_add_internal("vb_eeprom", VBOY_ROM_EEPROM);
+}
MACHINE_CONFIG_START(vboy_state::vboy)
@@ -1389,7 +1390,7 @@ MACHINE_CONFIG_START(vboy_state::vboy)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_VBOYSND_ADD("vbsnd")
+ MCFG_DEVICE_ADD("vbsnd", VBOYSND)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/vc4000.cpp b/src/mame/drivers/vc4000.cpp
index 11fdaaaec9b..705bc3f1d6a 100644
--- a/src/mame/drivers/vc4000.cpp
+++ b/src/mame/drivers/vc4000.cpp
@@ -517,12 +517,13 @@ QUICKLOAD_LOAD_MEMBER( vc4000_state,vc4000)
return result;
}
-static SLOT_INTERFACE_START(vc4000_cart)
- SLOT_INTERFACE_INTERNAL("std", VC4000_ROM_STD)
- SLOT_INTERFACE_INTERNAL("rom4k", VC4000_ROM_ROM4K)
- SLOT_INTERFACE_INTERNAL("ram1k", VC4000_ROM_RAM1K)
- SLOT_INTERFACE_INTERNAL("chess2", VC4000_ROM_CHESS2)
-SLOT_INTERFACE_END
+static void vc4000_cart(device_slot_interface &device)
+{
+ device.option_add_internal("std", VC4000_ROM_STD);
+ device.option_add_internal("rom4k", VC4000_ROM_ROM4K);
+ device.option_add_internal("ram1k", VC4000_ROM_RAM1K);
+ device.option_add_internal("chess2", VC4000_ROM_CHESS2);
+}
MACHINE_CONFIG_START(vc4000_state::vc4000)
diff --git a/src/mame/drivers/vcombat.cpp b/src/mame/drivers/vcombat.cpp
index 12663eb6fe5..34149e352a2 100644
--- a/src/mame/drivers/vcombat.cpp
+++ b/src/mame/drivers/vcombat.cpp
@@ -597,7 +597,7 @@ MACHINE_CONFIG_START(vcombat_state::vcombat)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_10BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -631,7 +631,7 @@ MACHINE_CONFIG_START(vcombat_state::shadfgtr)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_10BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/vector06.cpp b/src/mame/drivers/vector06.cpp
index 40d9c779a20..1cc4e725d4c 100644
--- a/src/mame/drivers/vector06.cpp
+++ b/src/mame/drivers/vector06.cpp
@@ -152,9 +152,10 @@ FLOPPY_FORMATS_MEMBER( vector06_state::floppy_formats )
FLOPPY_VECTOR06_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( vector06_floppies )
- SLOT_INTERFACE("qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+static void vector06_floppies(device_slot_interface &device)
+{
+ device.option_add("qd", FLOPPY_525_QD);
+}
/* Machine driver */
diff --git a/src/mame/drivers/vectrex.cpp b/src/mame/drivers/vectrex.cpp
index 77c2d3f011f..327e93bd347 100644
--- a/src/mame/drivers/vectrex.cpp
+++ b/src/mame/drivers/vectrex.cpp
@@ -90,11 +90,12 @@ static INPUT_PORTS_START(vectrex)
INPUT_PORTS_END
-static SLOT_INTERFACE_START(vectrex_cart)
- SLOT_INTERFACE_INTERNAL("vec_rom", VECTREX_ROM_STD)
- SLOT_INTERFACE_INTERNAL("vec_rom64k", VECTREX_ROM_64K)
- SLOT_INTERFACE_INTERNAL("vec_sram", VECTREX_ROM_SRAM)
-SLOT_INTERFACE_END
+static void vectrex_cart(device_slot_interface &device)
+{
+ device.option_add_internal("vec_rom", VECTREX_ROM_STD);
+ device.option_add_internal("vec_rom64k", VECTREX_ROM_64K);
+ device.option_add_internal("vec_sram", VECTREX_ROM_SRAM);
+}
MACHINE_CONFIG_START(vectrex_base_state::vectrex_base)
/* basic machine hardware */
@@ -112,7 +113,7 @@ MACHINE_CONFIG_START(vectrex_base_state::vectrex_base)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // mc1408.ic301 (also used for vector generation)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("ay8912", AY8912, 6_MHz_XTAL / 4)
MCFG_AY8910_PORT_A_READ_CB(IOPORT("BUTTONS"))
diff --git a/src/mame/drivers/vg5k.cpp b/src/mame/drivers/vg5k.cpp
index 416caa68ffe..2a8e0916149 100644
--- a/src/mame/drivers/vg5k.cpp
+++ b/src/mame/drivers/vg5k.cpp
@@ -392,7 +392,7 @@ MACHINE_CONFIG_START(vg5k_state::vg5k)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.125)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
/* cassette */
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
diff --git a/src/mame/drivers/vidbrain.cpp b/src/mame/drivers/vidbrain.cpp
index e4962f226a7..86c2ed09cd4 100644
--- a/src/mame/drivers/vidbrain.cpp
+++ b/src/mame/drivers/vidbrain.cpp
@@ -521,7 +521,7 @@ MACHINE_CONFIG_START(vidbrain_state::vidbrain)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_2BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.167) // 74ls74.u16 + 120k + 56k
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
// devices
MCFG_DEVICE_ADD(F3853_TAG, F3853, XTAL(4'000'000)/2)
diff --git a/src/mame/drivers/videopkr.cpp b/src/mame/drivers/videopkr.cpp
index b64eebcd605..d3aacee79e1 100644
--- a/src/mame/drivers/videopkr.cpp
+++ b/src/mame/drivers/videopkr.cpp
@@ -1304,7 +1304,7 @@ MACHINE_CONFIG_START(videopkr_state::videopkr)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.275)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/vigilant.cpp b/src/mame/drivers/vigilant.cpp
index 3f86702999c..9e46003850b 100644
--- a/src/mame/drivers/vigilant.cpp
+++ b/src/mame/drivers/vigilant.cpp
@@ -527,7 +527,7 @@ MACHINE_CONFIG_START(vigilant_state::vigilant)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(vigilant_state::buccanrs)
@@ -593,7 +593,7 @@ MACHINE_CONFIG_START(vigilant_state::buccanrs)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(vigilant_state::kikcubic)
@@ -643,7 +643,7 @@ MACHINE_CONFIG_START(vigilant_state::kikcubic)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/vis.cpp b/src/mame/drivers/vis.cpp
index fe84573ac6c..9ec7fad238a 100644
--- a/src/mame/drivers/vis.cpp
+++ b/src/mame/drivers/vis.cpp
@@ -140,8 +140,8 @@ MACHINE_CONFIG_START(vis_audio_device::device_add_mconfig)
MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
READ8_MEMBER(vis_audio_device::pcm_r)
@@ -857,10 +857,11 @@ void vis_state::at16_io(address_map &map)
map(0x031a, 0x031a).r(this, FUNC(vis_state::unk3_r));
}
-static SLOT_INTERFACE_START(vis_cards)
- SLOT_INTERFACE("visaudio", VIS_AUDIO)
- SLOT_INTERFACE("visvga", VIS_VGA)
-SLOT_INTERFACE_END
+static void vis_cards(device_slot_interface &device)
+{
+ device.option_add("visaudio", VIS_AUDIO);
+ device.option_add("visvga", VIS_VGA);
+}
// TODO: other buttons
static INPUT_PORTS_START(vis)
diff --git a/src/mame/drivers/vixen.cpp b/src/mame/drivers/vixen.cpp
index 8e8ee570d74..5289c6ce3dc 100644
--- a/src/mame/drivers/vixen.cpp
+++ b/src/mame/drivers/vixen.cpp
@@ -667,9 +667,10 @@ WRITE_LINE_MEMBER( vixen_state::atn_w )
update_interrupt();
}
-static SLOT_INTERFACE_START( vixen_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void vixen_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
WRITE_LINE_MEMBER( vixen_state::fdc_intrq_w )
{
diff --git a/src/mame/drivers/wangpc.cpp b/src/mame/drivers/wangpc.cpp
index 4b43c66f06d..27971f14339 100644
--- a/src/mame/drivers/wangpc.cpp
+++ b/src/mame/drivers/wangpc.cpp
@@ -1094,9 +1094,10 @@ WRITE_LINE_MEMBER( wangpc_state::epci_irq_w )
// upd765_interface fdc_intf
//-------------------------------------------------
-static SLOT_INTERFACE_START( wangpc_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void wangpc_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
FLOPPY_FORMATS_MEMBER( wangpc_state::floppy_formats )
FLOPPY_PC_FORMAT
diff --git a/src/mame/drivers/wheelfir.cpp b/src/mame/drivers/wheelfir.cpp
index bb899a1c156..1538001e7a1 100644
--- a/src/mame/drivers/wheelfir.cpp
+++ b/src/mame/drivers/wheelfir.cpp
@@ -769,8 +769,8 @@ MACHINE_CONFIG_START(wheelfir_state::wheelfir)
MCFG_SOUND_ADD("ldac", DAC_10BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_10BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/wicat.cpp b/src/mame/drivers/wicat.cpp
index 4c7fcba9b83..b5936c94cb0 100644
--- a/src/mame/drivers/wicat.cpp
+++ b/src/mame/drivers/wicat.cpp
@@ -288,9 +288,10 @@ static INPUT_PORTS_START( wicat )
INPUT_PORTS_END
-static SLOT_INTERFACE_START(wicat_floppies)
- SLOT_INTERFACE("525qd", FLOPPY_525_QD)
-SLOT_INTERFACE_END
+static void wicat_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
void wicat_state::driver_start()
{
diff --git a/src/mame/drivers/wildpkr.cpp b/src/mame/drivers/wildpkr.cpp
index fac8dfcbda0..96e2ae65890 100644
--- a/src/mame/drivers/wildpkr.cpp
+++ b/src/mame/drivers/wildpkr.cpp
@@ -529,7 +529,7 @@ MACHINE_CONFIG_START(wildpkr_state::tabpkr)
MCFG_SOUND_ADD("dac", AD557, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/williams.cpp b/src/mame/drivers/williams.cpp
index c8f16936117..27e48479ed4 100644
--- a/src/mame/drivers/williams.cpp
+++ b/src/mame/drivers/williams.cpp
@@ -1492,7 +1492,7 @@ MACHINE_CONFIG_START(williams_state::williams)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // mc1408.ic6
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
/* pia */
MCFG_DEVICE_ADD("pia_0", PIA6821, 0)
@@ -1711,8 +1711,8 @@ MACHINE_CONFIG_START(blaster_state::blaster)
MCFG_SOUND_ADD("ldac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) // unknown DAC
MCFG_SOUND_ADD("rdac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
@@ -1756,7 +1756,7 @@ MACHINE_CONFIG_START(williams2_state::williams2)
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
/* pia */
MCFG_DEVICE_ADD("pia_0", PIA6821, 0)
diff --git a/src/mame/drivers/wmg.cpp b/src/mame/drivers/wmg.cpp
index 02632727e6c..fa55c7a6af4 100644
--- a/src/mame/drivers/wmg.cpp
+++ b/src/mame/drivers/wmg.cpp
@@ -521,7 +521,7 @@ MACHINE_CONFIG_START(wmg_state::wmg)
MCFG_SOUND_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
/* pia */
MCFG_DEVICE_ADD("pia_0", PIA6821, 0)
diff --git a/src/mame/drivers/wswan.cpp b/src/mame/drivers/wswan.cpp
index d3b6d556e56..c0e17ac94b8 100644
--- a/src/mame/drivers/wswan.cpp
+++ b/src/mame/drivers/wswan.cpp
@@ -105,11 +105,12 @@ PALETTE_INIT_MEMBER(wscolor_state, wscolor)
}
}
-static SLOT_INTERFACE_START(wswan_cart)
- SLOT_INTERFACE_INTERNAL("ws_rom", WS_ROM_STD)
- SLOT_INTERFACE_INTERNAL("ws_sram", WS_ROM_SRAM)
- SLOT_INTERFACE_INTERNAL("ws_eeprom", WS_ROM_EEPROM)
-SLOT_INTERFACE_END
+static void wswan_cart(device_slot_interface &device)
+{
+ device.option_add_internal("ws_rom", WS_ROM_STD);
+ device.option_add_internal("ws_sram", WS_ROM_SRAM);
+ device.option_add_internal("ws_eeprom", WS_ROM_EEPROM);
+}
MACHINE_CONFIG_START(wswan_state::wswan)
/* Basic machine hardware */
diff --git a/src/mame/drivers/wyvernf0.cpp b/src/mame/drivers/wyvernf0.cpp
index 47e1eff2461..f5a86652a14 100644
--- a/src/mame/drivers/wyvernf0.cpp
+++ b/src/mame/drivers/wyvernf0.cpp
@@ -705,7 +705,7 @@ MACHINE_CONFIG_START(wyvernf0_state::wyvernf0)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/***************************************************************************
diff --git a/src/mame/drivers/x1.cpp b/src/mame/drivers/x1.cpp
index 904186c23ec..fde4a7e88a8 100644
--- a/src/mame/drivers/x1.cpp
+++ b/src/mame/drivers/x1.cpp
@@ -2194,9 +2194,10 @@ FLOPPY_FORMATS_MEMBER( x1_state::floppy_formats )
FLOPPY_2D_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( x1_floppies )
- SLOT_INTERFACE("dd", FLOPPY_525_DD)
-SLOT_INTERFACE_END
+static void x1_floppies(device_slot_interface &device)
+{
+ device.option_add("dd", FLOPPY_525_DD);
+}
MACHINE_CONFIG_START(x1_state::x1)
/* basic machine hardware */
diff --git a/src/mame/drivers/x1twin.cpp b/src/mame/drivers/x1twin.cpp
index 6a7f5f1a5e2..e0ed353dcc6 100644
--- a/src/mame/drivers/x1twin.cpp
+++ b/src/mame/drivers/x1twin.cpp
@@ -406,9 +406,10 @@ static const z80_daisy_config x1_daisy[] =
{ nullptr }
};
-static SLOT_INTERFACE_START( x1_floppies )
- SLOT_INTERFACE("dd", FLOPPY_525_DD)
-SLOT_INTERFACE_END
+static void x1_floppies(device_slot_interface &device)
+{
+ device.option_add("dd", FLOPPY_525_DD);
+}
MACHINE_CONFIG_START(x1twin_state::x1twin)
/* basic machine hardware */
diff --git a/src/mame/drivers/x68k.cpp b/src/mame/drivers/x68k.cpp
index 80be6ab2c90..976d4c031e8 100644
--- a/src/mame/drivers/x68k.cpp
+++ b/src/mame/drivers/x68k.cpp
@@ -1468,11 +1468,12 @@ WRITE_LINE_MEMBER(x68k_state::x68k_irq4_line)
logerror("EXP: IRQ4 set to %i (vector %02x)\n",state,m_current_vector[4]);
}
-static SLOT_INTERFACE_START(x68000_exp_cards)
- SLOT_INTERFACE("neptunex",X68K_NEPTUNEX) // Neptune-X ethernet adapter (ISA NE2000 bridge)
- SLOT_INTERFACE("cz6bs1",X68K_SCSIEXT) // Sharp CZ-6BS1 SCSI-1 controller
- SLOT_INTERFACE("x68k_midi",X68K_MIDI) // X68000 MIDI interface
-SLOT_INTERFACE_END
+static void x68000_exp_cards(device_slot_interface &device)
+{
+ device.option_add("neptunex", X68K_NEPTUNEX); // Neptune-X ethernet adapter (ISA NE2000 bridge)
+ device.option_add("cz6bs1", X68K_SCSIEXT); // Sharp CZ-6BS1 SCSI-1 controller
+ device.option_add("x68k_midi", X68K_MIDI); // X68000 MIDI interface
+}
void x68k_state::machine_reset()
{
@@ -1624,13 +1625,15 @@ FLOPPY_FORMATS_MEMBER( x68k_state::floppy_formats )
FLOPPY_DIM_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( x68k_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
-SLOT_INTERFACE_END
+static void x68k_floppies(device_slot_interface &device)
+{
+ device.option_add("525hd", FLOPPY_525_HD);
+}
-static SLOT_INTERFACE_START(keyboard)
- SLOT_INTERFACE("x68k", X68K_KEYBOARD)
-SLOT_INTERFACE_END
+static void keyboard(device_slot_interface &device)
+{
+ device.option_add("x68k", X68K_KEYBOARD);
+}
MACHINE_CONFIG_START(x68k_state::x68000)
/* basic machine hardware */
diff --git a/src/mame/drivers/xbox.cpp b/src/mame/drivers/xbox.cpp
index df2587fbaa9..b85dc2c2ab9 100644
--- a/src/mame/drivers/xbox.cpp
+++ b/src/mame/drivers/xbox.cpp
@@ -158,14 +158,16 @@ void xbox_state::machine_reset()
id[88] |= (1 << 2); // ultra dma mode 2 supported
}
-SLOT_INTERFACE_START(usb_xbox)
- SLOT_INTERFACE("xbox_controller", OHCI_GAME_CONTROLLER)
-SLOT_INTERFACE_END
-
-SLOT_INTERFACE_START(xbox_ata_devices)
- SLOT_INTERFACE("hdd", IDE_HARDDISK)
- SLOT_INTERFACE("cdrom", ATAPI_CDROM)
-SLOT_INTERFACE_END
+void usb_xbox(device_slot_interface &device)
+{
+ device.option_add("xbox_controller", OHCI_GAME_CONTROLLER);
+}
+
+void xbox_ata_devices(device_slot_interface &device)
+{
+ device.option_add("hdd", IDE_HARDDISK);
+ device.option_add("cdrom", ATAPI_CDROM);
+}
MACHINE_CONFIG_START(xbox_state::xbox)
xbox_base(config);
diff --git a/src/mame/drivers/xerox820.cpp b/src/mame/drivers/xerox820.cpp
index 3e91fe6e415..3f944013753 100644
--- a/src/mame/drivers/xerox820.cpp
+++ b/src/mame/drivers/xerox820.cpp
@@ -438,13 +438,14 @@ QUICKLOAD_LOAD_MEMBER( xerox820_state, xerox820 )
/* WD1771 Interface */
-static SLOT_INTERFACE_START( xerox820_floppies )
- SLOT_INTERFACE( "sa400", FLOPPY_525_SSSD_35T ) // Shugart SA-400, 35 trk drive
- SLOT_INTERFACE( "sa400l", FLOPPY_525_SSSD ) // Shugart SA-400, 40 trk drive
- SLOT_INTERFACE( "sa450", FLOPPY_525_DD ) // Shugart SA-450
- SLOT_INTERFACE( "sa800", FLOPPY_8_SSDD ) // Shugart SA-800
- SLOT_INTERFACE( "sa850", FLOPPY_8_DSDD ) // Shugart SA-850
-SLOT_INTERFACE_END
+static void xerox820_floppies(device_slot_interface &device)
+{
+ device.option_add("sa400", FLOPPY_525_SSSD_35T); // Shugart SA-400, 35 trk drive
+ device.option_add("sa400l", FLOPPY_525_SSSD); // Shugart SA-400, 40 trk drive
+ device.option_add("sa450", FLOPPY_525_DD); // Shugart SA-450
+ device.option_add("sa800", FLOPPY_8_SSDD); // Shugart SA-800
+ device.option_add("sa850", FLOPPY_8_DSDD); // Shugart SA-850
+}
void xerox820_state::update_nmi()
{
diff --git a/src/mame/drivers/xor100.cpp b/src/mame/drivers/xor100.cpp
index 1d57b537130..5278ae2d0b9 100644
--- a/src/mame/drivers/xor100.cpp
+++ b/src/mame/drivers/xor100.cpp
@@ -424,9 +424,10 @@ WRITE_LINE_MEMBER( xor100_state::ctc_z2_w )
/* WD1795-02 Interface */
-static SLOT_INTERFACE_START( xor100_floppies )
- SLOT_INTERFACE( "8ssdd", FLOPPY_8_SSDD ) // Shugart SA-100
-SLOT_INTERFACE_END
+static void xor100_floppies(device_slot_interface &device)
+{
+ device.option_add("8ssdd", FLOPPY_8_SSDD); // Shugart SA-100
+}
void xor100_state::fdc_intrq_w(bool state)
{
@@ -461,8 +462,9 @@ static DEVICE_INPUT_DEFAULTS_START( terminal )
DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 )
DEVICE_INPUT_DEFAULTS_END
-static SLOT_INTERFACE_START( xor100_s100_cards )
-SLOT_INTERFACE_END
+static void xor100_s100_cards(device_slot_interface &device)
+{
+}
/* Machine Initialization */
@@ -530,7 +532,7 @@ MACHINE_CONFIG_START(xor100_state::xor100)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(I8251_B_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE(I8251_B_TAG, i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE(I8251_B_TAG, i8251_device, write_cts))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_DEVICE_ADD(COM5016_TAG, COM8116, XTAL(5'068'800))
MCFG_COM8116_FR_HANDLER(DEVWRITELINE(I8251_A_TAG, i8251_device, write_txc))
diff --git a/src/mame/drivers/xtheball.cpp b/src/mame/drivers/xtheball.cpp
index 45417350963..b2d0e844a13 100644
--- a/src/mame/drivers/xtheball.cpp
+++ b/src/mame/drivers/xtheball.cpp
@@ -338,7 +338,7 @@ MACHINE_CONFIG_START(xtheball_state::xtheball)
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/z100.cpp b/src/mame/drivers/z100.cpp
index 2a55cb3d3d8..1c1c1f24809 100644
--- a/src/mame/drivers/z100.cpp
+++ b/src/mame/drivers/z100.cpp
@@ -666,9 +666,10 @@ void z100_state::machine_reset()
}
}
-static SLOT_INTERFACE_START( z100_floppies )
- SLOT_INTERFACE("dd", FLOPPY_525_DD)
-SLOT_INTERFACE_END
+static void z100_floppies(device_slot_interface &device)
+{
+ device.option_add("dd", FLOPPY_525_DD);
+}
MACHINE_CONFIG_START(z100_state::z100)
/* basic machine hardware */
diff --git a/src/mame/drivers/z80ne.cpp b/src/mame/drivers/z80ne.cpp
index 5491ba3d0b3..1ecf934d65d 100644
--- a/src/mame/drivers/z80ne.cpp
+++ b/src/mame/drivers/z80ne.cpp
@@ -410,9 +410,10 @@ FLOPPY_FORMATS_MEMBER( z80ne_state::floppy_formats )
FLOPPY_DMK_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( z80ne_floppies )
- SLOT_INTERFACE("sssd", FLOPPY_525_SSSD)
-SLOT_INTERFACE_END
+static void z80ne_floppies(device_slot_interface &device)
+{
+ device.option_add("sssd", FLOPPY_525_SSSD);
+}
MACHINE_CONFIG_START(z80ne_state::z80ne)
/* basic machine hardware */
diff --git a/src/mame/drivers/z88.cpp b/src/mame/drivers/z88.cpp
index cdee2567c0e..5bfa67a3e71 100644
--- a/src/mame/drivers/z88.cpp
+++ b/src/mame/drivers/z88.cpp
@@ -612,16 +612,17 @@ READ8_MEMBER(z88_state::kb_r)
return data;
}
-static SLOT_INTERFACE_START(z88_cart)
- SLOT_INTERFACE("32krom", Z88_32K_ROM) // 32KB ROM cart
- SLOT_INTERFACE("128krom", Z88_128K_ROM) // 128KB ROM cart
- SLOT_INTERFACE("256krom", Z88_256K_ROM) // 256KB ROM cart
- SLOT_INTERFACE("32kram", Z88_32K_RAM) // 32KB RAM cart
- SLOT_INTERFACE("128kram", Z88_128K_RAM) // 128KB RAM cart
- SLOT_INTERFACE("512kram", Z88_512K_RAM) // 512KB RAM cart
- SLOT_INTERFACE("1024kram", Z88_1024K_RAM) // 1024KB RAM cart
- SLOT_INTERFACE("1024kflash", Z88_1024K_FLASH) // 1024KB Flash cart
-SLOT_INTERFACE_END
+static void z88_cart(device_slot_interface &device)
+{
+ device.option_add("32krom", Z88_32K_ROM); // 32KB ROM cart
+ device.option_add("128krom", Z88_128K_ROM); // 128KB ROM cart
+ device.option_add("256krom", Z88_256K_ROM); // 256KB ROM cart
+ device.option_add("32kram", Z88_32K_RAM); // 32KB RAM cart
+ device.option_add("128kram", Z88_128K_RAM); // 128KB RAM cart
+ device.option_add("512kram", Z88_512K_RAM); // 512KB RAM cart
+ device.option_add("1024kram", Z88_1024K_RAM); // 1024KB RAM cart
+ device.option_add("1024kflash", Z88_1024K_FLASH); // 1024KB Flash cart
+}
MACHINE_CONFIG_START(z88_state::z88)
/* basic machine hardware */
diff --git a/src/mame/drivers/zorba.cpp b/src/mame/drivers/zorba.cpp
index 01e5ead77be..ec360fcea3b 100644
--- a/src/mame/drivers/zorba.cpp
+++ b/src/mame/drivers/zorba.cpp
@@ -108,9 +108,10 @@ INPUT_PORTS_START( zorba )
INPUT_PORTS_END
-SLOT_INTERFACE_START( zorba_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+void zorba_floppies(device_slot_interface &device)
+{
+ device.option_add("525dd", FLOPPY_525_DD);
+}
// F4 Character Displayer
@@ -136,7 +137,7 @@ GFXDECODE_END
MACHINE_CONFIG_START(zorba_state::zorba)
// basic machine hardware
- MCFG_CPU_ADD("maincpu", Z80, 24_MHz_XTAL / 6)
+ MCFG_CPU_ADD(m_maincpu, Z80, 24_MHz_XTAL / 6)
MCFG_CPU_PROGRAM_MAP(zorba_mem)
MCFG_CPU_IO_MAP(zorba_io)
@@ -145,11 +146,11 @@ MACHINE_CONFIG_START(zorba_state::zorba)
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_UPDATE_DEVICE("crtc", i8275_device, screen_update)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", zorba)
- MCFG_PALETTE_ADD_MONOCHROME_HIGHLIGHT("palette")
+ MCFG_PALETTE_ADD_MONOCHROME_HIGHLIGHT(m_palette)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("beeper", BEEP, 800) // should be horizontal frequency / 16, so depends on CRTC parameters
+ MCFG_SOUND_ADD(m_beep, BEEP, 800) // should be horizontal frequency / 16, so depends on CRTC parameters
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_INPUT_MERGER_ANY_HIGH("irq0")
@@ -160,7 +161,7 @@ MACHINE_CONFIG_START(zorba_state::zorba)
MCFG_INPUT_MERGER_OUTPUT_HANDLER(WRITELINE(zorba_state, irq_w<2>))
/* devices */
- MCFG_DEVICE_ADD("dma", Z80DMA, 24_MHz_XTAL / 6)
+ MCFG_DEVICE_ADD(m_dma, Z80DMA, 24_MHz_XTAL / 6)
// busack on cpu connects to bai pin
MCFG_Z80DMA_OUT_BUSREQ_CB(WRITELINE(zorba_state, busreq_w)) //connects to busreq on cpu
MCFG_Z80DMA_OUT_INT_CB(DEVWRITELINE("irq0", input_merger_device, in_w<0>))
@@ -170,33 +171,33 @@ MACHINE_CONFIG_START(zorba_state::zorba)
MCFG_Z80DMA_IN_IORQ_CB(READ8(zorba_state, io_read_byte))
MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(zorba_state, io_write_byte))
- MCFG_DEVICE_ADD("uart0", I8251, 0) // U32 COM port J2
+ MCFG_DEVICE_ADD(m_uart0, I8251, 0) // U32 COM port J2
MCFG_I8251_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd)) // TODO: this line has a LED attached
MCFG_I8251_DTR_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
MCFG_I8251_RTS_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_rts))
MCFG_I8251_RXRDY_HANDLER(WRITELINE(zorba_state, tx_rx_rdy_w<1>))
MCFG_I8251_TXRDY_HANDLER(WRITELINE(zorba_state, tx_rx_rdy_w<0>))
- MCFG_DEVICE_ADD("uart1", I8251, 0) // U31 printer port J3
+ MCFG_DEVICE_ADD(m_uart1, I8251, 0) // U31 printer port J3
MCFG_I8251_TXD_HANDLER(DEVWRITELINE("serprn", rs232_port_device, write_txd))
MCFG_I8251_RTS_HANDLER(DEVWRITELINE("serprn", rs232_port_device, write_rts))
MCFG_I8251_RXRDY_HANDLER(WRITELINE(zorba_state, tx_rx_rdy_w<3>))
MCFG_I8251_TXRDY_HANDLER(WRITELINE(zorba_state, tx_rx_rdy_w<2>))
- MCFG_DEVICE_ADD("uart2", I8251, 0) // U30 serial keyboard J6
+ MCFG_DEVICE_ADD(m_uart2, I8251, 0) // U30 serial keyboard J6
MCFG_I8251_TXD_HANDLER(DEVWRITELINE("keyboard", zorba_keyboard_device, txd_w))
MCFG_I8251_RXRDY_HANDLER(WRITELINE(zorba_state, tx_rx_rdy_w<5>))
MCFG_I8251_TXRDY_HANDLER(WRITELINE(zorba_state, tx_rx_rdy_w<4>))
// port A - disk select etc, beeper
// port B - parallel interface
- MCFG_DEVICE_ADD("pia0", PIA6821, 0)
+ MCFG_DEVICE_ADD(m_pia0, PIA6821, 0)
MCFG_PIA_WRITEPA_HANDLER(WRITE8(zorba_state, pia0_porta_w))
MCFG_PIA_WRITEPB_HANDLER(DEVWRITE8("parprndata", output_latch_device, write))
MCFG_PIA_CB2_HANDLER(DEVWRITELINE("parprn", centronics_device, write_strobe))
// IEEE488 interface
- MCFG_DEVICE_ADD("pia1", PIA6821, 0)
+ MCFG_DEVICE_ADD(m_pia1, PIA6821, 0)
MCFG_PIA_READPA_HANDLER(DEVREAD8(m_ieee, ieee488_device, dio_r)) // TODO: gated with PB1
MCFG_PIA_WRITEPA_HANDLER(DEVWRITE8(m_ieee, ieee488_device, dio_w)) // TODO: gated with PB1
MCFG_PIA_READPB_HANDLER(READ8(zorba_state, pia1_portb_r))
@@ -218,7 +219,7 @@ MACHINE_CONFIG_START(zorba_state::zorba)
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE(m_uart2, i8251_device, write_rxc))
// CRTC
- MCFG_DEVICE_ADD("crtc", I8275, 14.318'181_MHz_XTAL / 7)
+ MCFG_DEVICE_ADD(m_crtc, I8275, 14.318'181_MHz_XTAL / 7)
MCFG_I8275_CHARACTER_WIDTH(8)
MCFG_I8275_DRAW_CHARACTER_CALLBACK_OWNER(zorba_state, zorba_update_chr)
MCFG_I8275_DRQ_CALLBACK(DEVWRITELINE(m_dma, z80dma_device, rdy_w))
@@ -226,12 +227,12 @@ MACHINE_CONFIG_START(zorba_state::zorba)
MCFG_VIDEO_SET_SCREEN("screen")
// Floppies
- MCFG_FD1793_ADD("fdc", 24_MHz_XTAL / 24)
+ MCFG_FD1793_ADD(m_fdc, 24_MHz_XTAL / 24)
MCFG_WD_FDC_INTRQ_CALLBACK(DEVWRITELINE("irq2", input_merger_device, in_w<0>))
MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("irq2", input_merger_device, in_w<1>))
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", zorba_floppies, "525dd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(m_floppy0, zorba_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", zorba_floppies, "525dd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(m_floppy1, zorba_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
// J1 IEEE-488
diff --git a/src/mame/includes/amstrad.h b/src/mame/includes/amstrad.h
index 85705534e8c..94ffc948eb5 100644
--- a/src/mame/includes/amstrad.h
+++ b/src/mame/includes/amstrad.h
@@ -335,7 +335,7 @@ protected:
/*----------- defined in machine/amstrad.c -----------*/
-SLOT_INTERFACE_EXTERN(cpc_exp_cards);
-SLOT_INTERFACE_EXTERN(cpcplus_exp_cards);
+void cpc_exp_cards(device_slot_interface &device);
+void cpcplus_exp_cards(device_slot_interface &device);
#endif // MAME_INCLUDES_AMSTRAD_H
diff --git a/src/mame/includes/coco.h b/src/mame/includes/coco.h
index 2e06453f102..357e68ee12b 100644
--- a/src/mame/includes/coco.h
+++ b/src/mame/includes/coco.h
@@ -36,7 +36,7 @@ INPUT_PORTS_EXTERN( coco_joystick );
INPUT_PORTS_EXTERN( coco_rtc );
INPUT_PORTS_EXTERN( coco_beckerport );
-SLOT_INTERFACE_EXTERN( coco_cart );
+void coco_cart(device_slot_interface &device);
// constants
#define JOYSTICK_DELTA 10
diff --git a/src/mame/machine/acs8600_ics.cpp b/src/mame/machine/acs8600_ics.cpp
index 3077ea0027c..febe3f3b4af 100644
--- a/src/mame/machine/acs8600_ics.cpp
+++ b/src/mame/machine/acs8600_ics.cpp
@@ -128,7 +128,7 @@ MACHINE_CONFIG_START(acs8600_ics_device::device_add_mconfig)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio1", z80sio_device, rxa_w))
MCFG_RS232_DCD_HANDLER(DEVWRITELINE("sio1", z80sio_device, dcda_w))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("sio1", z80sio_device, ctsa_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", altos8600_terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", altos8600_terminal)
MCFG_RS232_PORT_ADD("rs2321b", default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio1", z80sio_device, rxb_w))
diff --git a/src/mame/machine/apollo.cpp b/src/mame/machine/apollo.cpp
index 2a6035b84d7..411ff71afd8 100644
--- a/src/mame/machine/apollo.cpp
+++ b/src/mame/machine/apollo.cpp
@@ -1048,11 +1048,12 @@ void apollo_ni::set_node_id_from_disk()
#undef VERBOSE
#define VERBOSE 0
-static SLOT_INTERFACE_START(apollo_isa_cards)
- SLOT_INTERFACE("wdc", ISA16_OMTI8621_APOLLO) // Combo ESDI/AT floppy controller
- SLOT_INTERFACE("ctape", ISA8_SC499) // Archive SC499 cartridge tape
- SLOT_INTERFACE("3c505", ISA16_3C505) // 3Com 3C505 Ethernet card
-SLOT_INTERFACE_END
+static void apollo_isa_cards(device_slot_interface &device)
+{
+ device.option_add("wdc", ISA16_OMTI8621_APOLLO); // Combo ESDI/AT floppy controller
+ device.option_add("ctape", ISA8_SC499); // Archive SC499 cartridge tape
+ device.option_add("3c505", ISA16_3C505); // 3Com 3C505 Ethernet card
+}
MACHINE_CONFIG_START(apollo_state::common)
// configuration MUST be reset first !
@@ -1181,7 +1182,7 @@ MACHINE_CONFIG_START(apollo_state::apollo_terminal)
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(APOLLO_SIO_TAG, apollo_sio, rx_b_w))
- MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", apollo_terminal)
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", apollo_terminal)
MACHINE_CONFIG_END
DRIVER_INIT_MEMBER(apollo_state,apollo)
diff --git a/src/mame/machine/beta.cpp b/src/mame/machine/beta.cpp
index b4935bc213d..575b7d23c52 100644
--- a/src/mame/machine/beta.cpp
+++ b/src/mame/machine/beta.cpp
@@ -175,9 +175,10 @@ FLOPPY_FORMATS_MEMBER(beta_disk_device::floppy_formats)
FLOPPY_TRD_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( beta_disk_floppies )
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
-SLOT_INTERFACE_END
+static void beta_disk_floppies(device_slot_interface &device)
+{
+ device.option_add("525qd", FLOPPY_525_QD);
+}
ROM_START( beta_disk )
diff --git a/src/mame/machine/inder_sb.cpp b/src/mame/machine/inder_sb.cpp
index 4ac836b222a..6e00261d965 100644
--- a/src/mame/machine/inder_sb.cpp
+++ b/src/mame/machine/inder_sb.cpp
@@ -165,15 +165,15 @@ MACHINE_CONFIG_START(inder_sb_device::device_add_mconfig)
MCFG_SOUND_ADD("dac1", DAC_8BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("dac2", DAC_8BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("dac3", DAC_8BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
- MCFG_SOUND_ADD("dac0vol", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE_EX(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac0", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac1vol", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE_EX(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac1", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac2vol", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
- MCFG_SOUND_ADD("dac3vol", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE_EX(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac3", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac0vol", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac0", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac1vol", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac2vol", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
+ MCFG_SOUND_ADD("dac3vol", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac3", -1.0, DAC_VREF_NEG_INPUT) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "dac0vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac1vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac2vol", 1.0, DAC_VREF_POS_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "dac3vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac0vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac1vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac2vol", 1.0, DAC_VREF_POS_INPUT)
+ MCFG_SOUND_ROUTE(0, "dac3vol", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/machine/isbc_208.cpp b/src/mame/machine/isbc_208.cpp
index 12600e2bd67..7cd4022f294 100644
--- a/src/mame/machine/isbc_208.cpp
+++ b/src/mame/machine/isbc_208.cpp
@@ -23,10 +23,11 @@ FLOPPY_FORMATS_MEMBER( isbc_208_device::floppy_formats )
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( isbc_208_floppies )
- SLOT_INTERFACE( "8dd", FLOPPY_8_DSDD )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
-SLOT_INTERFACE_END
+static void isbc_208_floppies(device_slot_interface &device)
+{
+ device.option_add("8dd", FLOPPY_8_DSDD);
+ device.option_add("525dd", FLOPPY_525_DD);
+}
MACHINE_CONFIG_START(isbc_208_device::device_add_mconfig)
MCFG_DEVICE_ADD("dmac", AM9517A, XTAL(8'000'000)/4)
diff --git a/src/mame/machine/mega32x.cpp b/src/mame/machine/mega32x.cpp
index 402aff23d58..a042c31ed17 100644
--- a/src/mame/machine/mega32x.cpp
+++ b/src/mame/machine/mega32x.cpp
@@ -1787,8 +1787,8 @@ MACHINE_CONFIG_START(sega_32x_ntsc_device::device_add_mconfig)
MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, ":lspeaker", 0.4) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, ":rspeaker", 0.4) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
_32X_INTERLEAVE_LEVEL
MACHINE_CONFIG_END
@@ -1817,8 +1817,8 @@ MACHINE_CONFIG_START(sega_32x_pal_device::device_add_mconfig)
MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, ":lspeaker", 0.4) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, ":rspeaker", 0.4) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
_32X_INTERLEAVE_LEVEL
MACHINE_CONFIG_END
diff --git a/src/mame/machine/victor9k_fdc.cpp b/src/mame/machine/victor9k_fdc.cpp
index 5e9bf3ddb55..caf82b6cbf6 100644
--- a/src/mame/machine/victor9k_fdc.cpp
+++ b/src/mame/machine/victor9k_fdc.cpp
@@ -144,10 +144,11 @@ void victor_9000_fdc_device::unload1_cb(floppy_image_device *device)
m_via4->write_cb1(1);
}
-static SLOT_INTERFACE_START( victor9k_floppies )
- SLOT_INTERFACE( "525ssqd", FLOPPY_525_SSQD ) // Tandon TM100-3 with custom electronics
- SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) // Tandon TM100-4 with custom electronics
-SLOT_INTERFACE_END
+static void victor9k_floppies(device_slot_interface &device)
+{
+ device.option_add("525ssqd", FLOPPY_525_SSQD); // Tandon TM100-3 with custom electronics
+ device.option_add("525qd", FLOPPY_525_QD); // Tandon TM100-4 with custom electronics
+}
FLOPPY_FORMATS_MEMBER( victor_9000_fdc_device::floppy_formats )
FLOPPY_VICTOR_9000_FORMAT
diff --git a/src/mame/video/k053246_k053247_k055673.cpp b/src/mame/video/k053246_k053247_k055673.cpp
index 410e517c7fe..06168cdf99e 100644
--- a/src/mame/video/k053246_k053247_k055673.cpp
+++ b/src/mame/video/k053246_k053247_k055673.cpp
@@ -1065,7 +1065,7 @@ void k055673_device::device_start()
DEFINE_DEVICE_TYPE(K053247, k053247_device, "k053247", "K053246/K053247 Sprite Generator")
-device_type const K053246 = K053247;
+decltype(K053247) K053246 = K053247;
k053247_device::k053247_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: k053247_device(mconfig, K053247, tag, owner, clock)
diff --git a/src/mame/video/k053246_k053247_k055673.h b/src/mame/video/k053246_k053247_k055673.h
index 00ef8b8b224..079781c410f 100644
--- a/src/mame/video/k053246_k053247_k055673.h
+++ b/src/mame/video/k053246_k053247_k055673.h
@@ -470,7 +470,7 @@ protected:
};
DECLARE_DEVICE_TYPE(K053247, k053247_device)
-extern device_type const K053246;
+DECLARE_DEVICE_TYPE(K053246, k053247_device)
class k055673_device : public k053247_device
{