summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatarGravatar Vas Crabb <vas@vastheman.com>2019-10-26 12:47:04 +1100
committerGravatarGravatar Vas Crabb <vas@vastheman.com>2019-10-26 12:47:04 +1100
commitf81fbdb8d4356b7a526a902726463e2f1af00615 (patch) (github)
treef73f8746dc3cd1feb81afdb3cb4e6b0b99141ea0
parentbc7c6ea17e1b38f6fb488177e01c63577fbbcf71 (diff)
downloadmame-f81fbdb8d4356b7a526a902726463e2f1af00615.tar.bz2
mame-f81fbdb8d4356b7a526a902726463e2f1af00615.zip
Make devdelegate more like devcb for configuration. This is a
fundamental change to show device delegates are configured. Device delegates are now aware of the current device during configuration and will resolve string tags relative to it. This means that device delegates need a device to be supplied on construction so they can find the machine configuration object. There's a one-dimensional array helper to make it easier to construct arrays of device delegates with the same owner. (I didn't make an n-dimensional one because I didn't hit a use case, but it would be a simple addition.) There's no more bind_relative_to member - just call resolve() like you would for a devcb. There's also no need to cast nullptr when creating a late bind device delegate. The flip side is that for an overloaded or non-capturing lambda you'll need to cast to the desired type. There is one less conditional branch in the hot path for calls for delegates bound to a function pointer of member function pointer. This comes at the cost of one additional unconditional branch in the hot path for calls to delegates bound to functoids (lambdas, functions that don't take an object reference, other callable objects). This applies to all delegates, not just device delegates. Address spaces will now print an error message if a late bind error is encountered while installing a handler. This will give the range and address range, hopefully making it easier to guess which memory map is faulty. For the simple case of allowing a device_delegate member to be configured, use a member like this: template <typename... T> void set_foo(T &&...args) { m_foo_cb.set(std::forward<T>(args)...); } For a case where different delegates need to be used depending on the function signature, see src/emu/screen.h (the screen update function setters). Device delegates now take a target specification and function pointer. The target may be: * Target omitted, implying the current device being configured. This can only be used during configuration. It will work as long as the current device is not removed/replaced. * A tag string relative to the current device being configured. This can only be used during configuration. It will not be callable until .resolve() is called. It will work as long as the current device is not removed/replaced. * A device finder (required_device/optional_device). The delegate will late bind to the current target of the device finder. It will not be callable until .resolve() is called. It will work properly if the target device is replaced, as long as the device finder's base object isn't removed/replaced. * A reference to an object. It will be callable immediately. It will work as long as the target object is not removed/replaced. The target types and restrictions are pretty similar to what you already have on object finders and devcb, so it shouldn't cause any surprises. Note that dereferencing a device finder will changes the effect. To illustrate this: ... required_device<some_device> m_dev; ... m_dev(*this, "dev") ... // will late bind to "dev" relative to *this // will work if "dev" hasn't been created yet or is replaced later // won't work if *this is removed/replaced // won't be callable until resolve() is called cb1.set(m_dev, FUNC(some_device::w)); ... // will bind to current target of m_dev // will not work if m_dev is not resolved // will not work if "dev" is replaced later // will be callable immediately cb2.set(*m_dev, FUNC(some_device::w)); ... The order of the target and name has been reversed for functoids (lambdas and other callable objects). This allows the NAME macro to be used on lambdas and functoids. For example: foo.set_something(NAME([this] (u8 data) { m_something = data; })); I realise the diagnostic messages get ugly if you use NAME on a large lambda. You can still give a literal name, you just have to place it after the lambda rather than before. This is uglier, but it's intentional. I'm trying to drive developers away from a certain style. While it's nice that you can put half the driver code in the memory map, it detracts from readability. It's hard to visualise the memory range mappings if the memory map functions are punctuated by large lambdas. There's also slightly higher overhead for calling a delegate bound to a functoid. If the code is prettier for trivial lambdas but uglier for non-trivial lambdas in address maps, it will hopefully steer people away from putting non-trivial lambdas in memory maps. There were some devices that were converted from using plain delegates without adding bind_relative_to calls. I fixed some of them (e.g. LaserDisc) but I probably missed some. These will likely crash on unresolved delegate calls. There are some devices that reset delegates at configuration complete or start time, preventing them from being set up during configuration (e.g. src/devices/video/ppu2c0x.cpp and src/devices/machine/68307.cpp). This goes against the design principles of how device delegates should be used, but I didn't change them because I don't trust myself to find all the places they're used. I've definitely broken some stuff with this (I know about asterix), so report issues and bear with me until I get it all fixed.
-rw-r--r--docs/source/initialsetup/compilingmame.rst50
-rw-r--r--scripts/genie.lua14
-rw-r--r--src/devices/bus/a1bus/a1cassette.cpp2
-rw-r--r--src/devices/bus/a1bus/a1cffa.cpp2
-rw-r--r--src/devices/bus/a2bus/a2ultraterm.cpp2
-rw-r--r--src/devices/bus/a2bus/a2videoterm.cpp2
-rw-r--r--src/devices/bus/acorn/atom/discpack.cpp2
-rw-r--r--src/devices/bus/acorn/atom/econet.cpp4
-rw-r--r--src/devices/bus/acorn/atom/sid.cpp2
-rw-r--r--src/devices/bus/acorn/cms/4080term.cpp4
-rw-r--r--src/devices/bus/acorn/cms/fdc.cpp4
-rw-r--r--src/devices/bus/acorn/cms/hires.cpp4
-rw-r--r--src/devices/bus/acorn/system/8k.cpp4
-rw-r--r--src/devices/bus/acorn/system/econet.cpp4
-rw-r--r--src/devices/bus/acorn/system/fdc.cpp2
-rw-r--r--src/devices/bus/acorn/system/vdu40.cpp6
-rw-r--r--src/devices/bus/acorn/system/vdu80.cpp10
-rw-r--r--src/devices/bus/acorn/system/vib.cpp4
-rw-r--r--src/devices/bus/amiga/zorro/a2052.cpp4
-rw-r--r--src/devices/bus/amiga/zorro/a2058.cpp4
-rw-r--r--src/devices/bus/amiga/zorro/a2065.cpp16
-rw-r--r--src/devices/bus/amiga/zorro/a2232.cpp24
-rw-r--r--src/devices/bus/amiga/zorro/buddha.cpp8
-rw-r--r--src/devices/bus/bbc/exp/mertec.cpp4
-rw-r--r--src/devices/bus/bbc/tube/tube_80286.cpp2
-rw-r--r--src/devices/bus/bbc/tube/tube_z80.cpp2
-rw-r--r--src/devices/bus/bml3/bml3kanji.cpp2
-rw-r--r--src/devices/bus/bml3/bml3mp1802.cpp4
-rw-r--r--src/devices/bus/bml3/bml3mp1805.cpp4
-rw-r--r--src/devices/bus/c64/xl80.cpp2
-rw-r--r--src/devices/bus/cbus/pc9801_118.cpp4
-rw-r--r--src/devices/bus/cbus/pc9801_26.cpp6
-rw-r--r--src/devices/bus/cbus/pc9801_86.cpp12
-rw-r--r--src/devices/bus/cbus/pc9801_amd98.cpp12
-rw-r--r--src/devices/bus/cgenie/expansion/floppy.cpp6
-rw-r--r--src/devices/bus/coco/coco_dcmodem.cpp4
-rw-r--r--src/devices/bus/coco/coco_multi.cpp2
-rw-r--r--src/devices/bus/coco/coco_orch90.cpp4
-rw-r--r--src/devices/bus/coco/coco_rs232.cpp4
-rw-r--r--src/devices/bus/coco/coco_ssc.cpp6
-rw-r--r--src/devices/bus/comx35/clm.cpp2
-rw-r--r--src/devices/bus/cpc/amdrum.cpp2
-rw-r--r--src/devices/bus/cpc/brunword4.cpp2
-rw-r--r--src/devices/bus/cpc/cpc_pds.cpp4
-rw-r--r--src/devices/bus/cpc/cpc_rs232.cpp4
-rw-r--r--src/devices/bus/cpc/cpc_ssa1.cpp6
-rw-r--r--src/devices/bus/cpc/ddi1.cpp6
-rw-r--r--src/devices/bus/cpc/doubler.cpp2
-rw-r--r--src/devices/bus/cpc/hd20.cpp6
-rw-r--r--src/devices/bus/cpc/magicsound.cpp8
-rw-r--r--src/devices/bus/cpc/musicmachine.cpp6
-rw-r--r--src/devices/bus/cpc/playcity.cpp10
-rw-r--r--src/devices/bus/cpc/smartwatch.cpp4
-rw-r--r--src/devices/bus/cpc/symbfac2.cpp10
-rw-r--r--src/devices/bus/cpc/transtape.cpp4
-rw-r--r--src/devices/bus/dmv/k220.cpp4
-rw-r--r--src/devices/bus/dmv/k230.cpp2
-rw-r--r--src/devices/bus/dmv/k806.cpp2
-rw-r--r--src/devices/bus/ecbbus/grip.cpp2
-rw-r--r--src/devices/bus/einstein/pipe/silicon_disc.cpp4
-rw-r--r--src/devices/bus/einstein/pipe/speculator.cpp12
-rw-r--r--src/devices/bus/einstein/pipe/tk02.cpp4
-rw-r--r--src/devices/bus/electron/cart/ap5.cpp4
-rw-r--r--src/devices/bus/electron/cart/romp144.cpp14
-rw-r--r--src/devices/bus/electron/plus2.cpp6
-rw-r--r--src/devices/bus/electron/rombox.cpp16
-rw-r--r--src/devices/bus/electron/romboxp.cpp8
-rw-r--r--src/devices/bus/ep64/exdos.cpp4
-rw-r--r--src/devices/bus/generic/slot.cpp24
-rw-r--r--src/devices/bus/generic/slot.h4
-rw-r--r--src/devices/bus/gio64/gio64.cpp6
-rw-r--r--src/devices/bus/hp80_io/82937.cpp2
-rw-r--r--src/devices/bus/hp9845_io/hp9845_io.cpp10
-rw-r--r--src/devices/bus/hp9845_io/hp9845_io.h2
-rw-r--r--src/devices/bus/hp_dio/hp98265a.cpp4
-rw-r--r--src/devices/bus/hp_dio/hp98543.cpp16
-rw-r--r--src/devices/bus/hp_dio/hp98544.cpp12
-rw-r--r--src/devices/bus/hp_dio/hp98550.cpp16
-rw-r--r--src/devices/bus/hp_dio/hp98603a.cpp4
-rw-r--r--src/devices/bus/hp_dio/hp98603b.cpp5
-rw-r--r--src/devices/bus/hp_dio/hp98620.cpp4
-rw-r--r--src/devices/bus/hp_dio/hp98643.cpp26
-rw-r--r--src/devices/bus/hp_dio/hp98644.cpp4
-rw-r--r--src/devices/bus/hp_dio/human_interface.cpp8
-rw-r--r--src/devices/bus/intellec4/insdatastor.cpp4
-rw-r--r--src/devices/bus/intellec4/tapereader.cpp8
-rw-r--r--src/devices/bus/interpro/keyboard/lle.cpp10
-rw-r--r--src/devices/bus/interpro/sr/edge.cpp42
-rw-r--r--src/devices/bus/interpro/sr/sr.h4
-rw-r--r--src/devices/bus/isa/3c503.cpp4
-rw-r--r--src/devices/bus/isa/3c505.cpp26
-rw-r--r--src/devices/bus/isa/adlib.cpp2
-rw-r--r--src/devices/bus/isa/aga.cpp14
-rw-r--r--src/devices/bus/isa/aha1542c.cpp7
-rw-r--r--src/devices/bus/isa/asc88.cpp8
-rw-r--r--src/devices/bus/isa/cga.cpp32
-rw-r--r--src/devices/bus/isa/chessmdr.cpp2
-rw-r--r--src/devices/bus/isa/chessmsr.cpp2
-rw-r--r--src/devices/bus/isa/com.cpp8
-rw-r--r--src/devices/bus/isa/dectalk.cpp2
-rw-r--r--src/devices/bus/isa/ega.cpp16
-rw-r--r--src/devices/bus/isa/eis_sad8852.cpp4
-rw-r--r--src/devices/bus/isa/finalchs.cpp2
-rw-r--r--src/devices/bus/isa/gblaster.cpp6
-rw-r--r--src/devices/bus/isa/gus.cpp8
-rw-r--r--src/devices/bus/isa/hdc.cpp2
-rw-r--r--src/devices/bus/isa/ibm_mfc.cpp2
-rw-r--r--src/devices/bus/isa/lpt.cpp9
-rw-r--r--src/devices/bus/isa/mc1502_fdc.cpp12
-rw-r--r--src/devices/bus/isa/mda.cpp16
-rw-r--r--src/devices/bus/isa/mpu401.cpp2
-rw-r--r--src/devices/bus/isa/myb3k_com.cpp12
-rw-r--r--src/devices/bus/isa/ne1000.cpp2
-rw-r--r--src/devices/bus/isa/ne2000.cpp2
-rw-r--r--src/devices/bus/isa/num9rev.cpp14
-rw-r--r--src/devices/bus/isa/omti8621.cpp2
-rw-r--r--src/devices/bus/isa/p1_fdc.cpp6
-rw-r--r--src/devices/bus/isa/p1_hdc.cpp4
-rw-r--r--src/devices/bus/isa/p1_sound.cpp24
-rw-r--r--src/devices/bus/isa/pc1640_iga.cpp6
-rw-r--r--src/devices/bus/isa/pcmidi.cpp4
-rw-r--r--src/devices/bus/isa/pds.cpp4
-rw-r--r--src/devices/bus/isa/pgc.cpp3
-rw-r--r--src/devices/bus/isa/s3virge.cpp2
-rw-r--r--src/devices/bus/isa/sb16.cpp20
-rw-r--r--src/devices/bus/isa/sblaster.cpp48
-rw-r--r--src/devices/bus/isa/sc499.cpp2
-rw-r--r--src/devices/bus/isa/side116.cpp2
-rw-r--r--src/devices/bus/isa/ssi2001.cpp5
-rw-r--r--src/devices/bus/isa/stereo_fx.cpp16
-rw-r--r--src/devices/bus/isa/svga_cirrus.cpp28
-rw-r--r--src/devices/bus/isa/svga_cirrus.h4
-rw-r--r--src/devices/bus/isa/svga_s3.cpp99
-rw-r--r--src/devices/bus/isa/svga_s3.h10
-rw-r--r--src/devices/bus/isa/svga_trident.cpp26
-rw-r--r--src/devices/bus/isa/svga_trident.h2
-rw-r--r--src/devices/bus/isa/svga_tseng.cpp16
-rw-r--r--src/devices/bus/isa/svga_tseng.h2
-rw-r--r--src/devices/bus/isa/trident.cpp2
-rw-r--r--src/devices/bus/isa/vga.cpp17
-rw-r--r--src/devices/bus/isa/vga.h2
-rw-r--r--src/devices/bus/isa/vga_ati.cpp361
-rw-r--r--src/devices/bus/isa/vga_ati.h10
-rw-r--r--src/devices/bus/isa/wdxt_gen.cpp2
-rw-r--r--src/devices/bus/isa/xtide.cpp4
-rw-r--r--src/devices/bus/lpci/i82371sb.cpp6
-rw-r--r--src/devices/bus/lpci/southbridge.cpp30
-rw-r--r--src/devices/bus/macpds/hyperdrive.cpp2
-rw-r--r--src/devices/bus/macpds/pds_tpdfpd.cpp4
-rw-r--r--src/devices/bus/msx_cart/arc.cpp4
-rw-r--r--src/devices/bus/msx_cart/bm_012.cpp4
-rw-r--r--src/devices/bus/msx_cart/fmpac.cpp2
-rw-r--r--src/devices/bus/msx_cart/konami.cpp6
-rw-r--r--src/devices/bus/msx_cart/korean.cpp2
-rw-r--r--src/devices/bus/msx_cart/moonsound.cpp6
-rw-r--r--src/devices/bus/msx_cart/msx_audio.cpp16
-rw-r--r--src/devices/bus/msx_cart/superloderunner.cpp2
-rw-r--r--src/devices/bus/msx_cart/yamaha.cpp2
-rw-r--r--src/devices/bus/msx_slot/disk.cpp4
-rw-r--r--src/devices/bus/msx_slot/music.cpp2
-rw-r--r--src/devices/bus/msx_slot/ram_mm.cpp4
-rw-r--r--src/devices/bus/mtx/sdx.cpp16
-rw-r--r--src/devices/bus/nasbus/avc.cpp10
-rw-r--r--src/devices/bus/nasbus/floppy.cpp6
-rw-r--r--src/devices/bus/nubus/bootbug.cpp2
-rw-r--r--src/devices/bus/nubus/nubus_48gc.cpp2
-rw-r--r--src/devices/bus/nubus/nubus_asntmc3b.cpp8
-rw-r--r--src/devices/bus/nubus/nubus_cb264.cpp4
-rw-r--r--src/devices/bus/nubus/nubus_image.cpp14
-rw-r--r--src/devices/bus/nubus/nubus_m2hires.cpp6
-rw-r--r--src/devices/bus/nubus/nubus_m2video.cpp6
-rw-r--r--src/devices/bus/nubus/nubus_radiustpd.cpp8
-rw-r--r--src/devices/bus/nubus/nubus_spec8.cpp6
-rw-r--r--src/devices/bus/nubus/nubus_specpdq.cpp4
-rw-r--r--src/devices/bus/nubus/nubus_vikbw.cpp4
-rw-r--r--src/devices/bus/nubus/nubus_wsportrait.cpp6
-rw-r--r--src/devices/bus/nubus/pds30_30hr.cpp4
-rw-r--r--src/devices/bus/nubus/pds30_cb264.cpp4
-rw-r--r--src/devices/bus/nubus/pds30_mc30.cpp4
-rw-r--r--src/devices/bus/nubus/pds30_procolor816.cpp6
-rw-r--r--src/devices/bus/nubus/pds30_sigmalview.cpp6
-rw-r--r--src/devices/bus/nubus/quadralink.cpp2
-rw-r--r--src/devices/bus/sbus/sbus.cpp6
-rw-r--r--src/devices/bus/snes_ctrl/ctrl.cpp9
-rw-r--r--src/devices/bus/snes_ctrl/ctrl.h13
-rw-r--r--src/devices/bus/spectrum/intf2.cpp2
-rw-r--r--src/devices/bus/svi3x8/slot/sv806.cpp2
-rw-r--r--src/devices/bus/tanbus/mpvdu.cpp2
-rw-r--r--src/devices/bus/tanbus/ravdu.cpp2
-rw-r--r--src/devices/bus/ti99x/990_hd.cpp16
-rw-r--r--src/devices/bus/vic20/videopak.cpp2
-rw-r--r--src/devices/bus/vme/vme_fccpu20.cpp6
-rw-r--r--src/devices/bus/vme/vme_mzr8300.cpp20
-rw-r--r--src/devices/bus/vtech/ioexp/joystick.cpp2
-rw-r--r--src/devices/bus/vtech/ioexp/printer.cpp6
-rw-r--r--src/devices/bus/vtech/memexp/memory.cpp2
-rw-r--r--src/devices/bus/vtech/memexp/rs232.cpp4
-rw-r--r--src/devices/bus/vtech/memexp/rtty.cpp6
-rw-r--r--src/devices/bus/wangpc/lvc.cpp2
-rw-r--r--src/devices/bus/wangpc/mvc.cpp2
-rw-r--r--src/devices/bus/x68k/x68k_midi.cpp2
-rw-r--r--src/devices/bus/x68k/x68k_neptunex.cpp2
-rw-r--r--src/devices/bus/x68k/x68k_scsiext.cpp2
-rw-r--r--src/devices/cpu/ccpu/ccpu.cpp3
-rw-r--r--src/devices/cpu/ccpu/ccpu.h12
-rw-r--r--src/devices/cpu/dsp16/dsp16.cpp6
-rw-r--r--src/devices/cpu/e0c6200/e0c6s46.cpp6
-rw-r--r--src/devices/cpu/e0c6200/e0c6s46.h12
-rw-r--r--src/devices/cpu/esrip/esrip.cpp3
-rw-r--r--src/devices/cpu/esrip/esrip.h12
-rw-r--r--src/devices/cpu/g65816/g65816.cpp25
-rw-r--r--src/devices/cpu/i386/athlon.cpp2
-rw-r--r--src/devices/cpu/i8085/i8085.cpp3
-rw-r--r--src/devices/cpu/i8085/i8085.h10
-rw-r--r--src/devices/cpu/i86/i186.cpp4
-rw-r--r--src/devices/cpu/lc8670/lc8670.cpp3
-rw-r--r--src/devices/cpu/lc8670/lc8670.h13
-rw-r--r--src/devices/cpu/m6502/xavix.cpp20
-rw-r--r--src/devices/cpu/m6502/xavix.h17
-rw-r--r--src/devices/cpu/m68000/m68000.h8
-rw-r--r--src/devices/cpu/m68000/m68kcpu.cpp50
-rw-r--r--src/devices/cpu/m6805/m68705.cpp4
-rw-r--r--src/devices/cpu/mcs40/mcs40.cpp4
-rw-r--r--src/devices/cpu/mcs40/mcs40.h2
-rw-r--r--src/devices/cpu/mcs48/mcs48.cpp4
-rw-r--r--src/devices/cpu/mcs48/mcs48.h11
-rw-r--r--src/devices/cpu/mcs96/i8x9x.cpp2
-rw-r--r--src/devices/cpu/mcs96/i8xc196.cpp2
-rw-r--r--src/devices/cpu/nec/v5x.cpp64
-rw-r--r--src/devices/cpu/powerpc/ppc.h6
-rw-r--r--src/devices/cpu/powerpc/ppccom.cpp10
-rw-r--r--src/devices/cpu/psx/psx.cpp16
-rw-r--r--src/devices/cpu/sh/sh2.cpp9
-rw-r--r--src/devices/cpu/sh/sh2.h21
-rw-r--r--src/devices/cpu/tms32082/tms32082.cpp7
-rw-r--r--src/devices/cpu/tms32082/tms32082.h3
-rw-r--r--src/devices/cpu/tms34010/tms34010.cpp12
-rw-r--r--src/devices/cpu/tms34010/tms34010.h70
-rw-r--r--src/devices/imagedev/diablo.cpp7
-rw-r--r--src/devices/imagedev/harddriv.cpp7
-rw-r--r--src/devices/imagedev/harddriv.h4
-rw-r--r--src/devices/imagedev/snapquik.cpp3
-rw-r--r--src/devices/imagedev/snapquik.h2
-rw-r--r--src/devices/machine/53c810.cpp9
-rw-r--r--src/devices/machine/53c810.h14
-rw-r--r--src/devices/machine/68307.cpp21
-rw-r--r--src/devices/machine/68340.cpp35
-rw-r--r--src/devices/machine/acorn_vidc.cpp2
-rw-r--r--src/devices/machine/adc083x.cpp13
-rw-r--r--src/devices/machine/adc083x.h10
-rw-r--r--src/devices/machine/adc1038.cpp3
-rw-r--r--src/devices/machine/adc1038.h11
-rw-r--r--src/devices/machine/adc1213x.cpp3
-rw-r--r--src/devices/machine/adc1213x.h10
-rw-r--r--src/devices/machine/cs4031.cpp26
-rw-r--r--src/devices/machine/dmac.cpp8
-rw-r--r--src/devices/machine/f3853.cpp3
-rw-r--r--src/devices/machine/f3853.h2
-rw-r--r--src/devices/machine/fdc37c93x.cpp4
-rw-r--r--src/devices/machine/gt64xxx.cpp28
-rw-r--r--src/devices/machine/i82357.cpp36
-rw-r--r--src/devices/machine/i82371sb.cpp4
-rw-r--r--src/devices/machine/keyboard.cpp4
-rw-r--r--src/devices/machine/keyboard.h13
-rw-r--r--src/devices/machine/laserdsc.cpp9
-rw-r--r--src/devices/machine/laserdsc.h23
-rw-r--r--src/devices/machine/lpci.cpp16
-rw-r--r--src/devices/machine/lpci.h20
-rw-r--r--src/devices/machine/mc6854.cpp7
-rw-r--r--src/devices/machine/mc6854.h13
-rw-r--r--src/devices/machine/microtch.cpp2
-rw-r--r--src/devices/machine/microtch.h10
-rw-r--r--src/devices/machine/msm6253.cpp15
-rw-r--r--src/devices/machine/msm6253.h12
-rw-r--r--src/devices/machine/myb3k_kbd.cpp5
-rw-r--r--src/devices/machine/myb3k_kbd.h13
-rw-r--r--src/devices/machine/netlist.cpp24
-rw-r--r--src/devices/machine/netlist.h16
-rw-r--r--src/devices/machine/nvram.cpp3
-rw-r--r--src/devices/machine/nvram.h12
-rw-r--r--src/devices/machine/pci.cpp12
-rw-r--r--src/devices/machine/s3c2400.cpp46
-rw-r--r--src/devices/machine/s3c2410.cpp50
-rw-r--r--src/devices/machine/s3c2440.cpp54
-rw-r--r--src/devices/machine/tc009xlvc.cpp10
-rw-r--r--src/devices/machine/terminal.cpp4
-rw-r--r--src/devices/machine/terminal.h13
-rw-r--r--src/devices/machine/timer.cpp26
-rw-r--r--src/devices/machine/timer.h65
-rw-r--r--src/devices/machine/upd7002.cpp13
-rw-r--r--src/devices/machine/upd7002.h4
-rw-r--r--src/devices/machine/vrc4373.cpp20
-rw-r--r--src/devices/machine/vrc5074.cpp16
-rw-r--r--src/devices/machine/wd7600.cpp72
-rw-r--r--src/devices/sound/bsmt2000.cpp4
-rw-r--r--src/devices/sound/bsmt2000.h10
-rw-r--r--src/devices/sound/cdp1864.cpp2
-rw-r--r--src/devices/sound/cdp1869.cpp9
-rw-r--r--src/devices/sound/cdp1869.h45
-rw-r--r--src/devices/sound/cem3394.cpp6
-rw-r--r--src/devices/sound/cem3394.h2
-rw-r--r--src/devices/sound/k054539.cpp3
-rw-r--r--src/devices/sound/k054539.h14
-rw-r--r--src/devices/sound/lc7535.cpp3
-rw-r--r--src/devices/sound/lc7535.h10
-rw-r--r--src/devices/sound/pokey.cpp22
-rw-r--r--src/devices/sound/pokey.h20
-rw-r--r--src/devices/sound/rf5c68.cpp3
-rw-r--r--src/devices/sound/rf5c68.h10
-rw-r--r--src/devices/sound/samples.cpp3
-rw-r--r--src/devices/sound/samples.h10
-rw-r--r--src/devices/video/315_5313.cpp9
-rw-r--r--src/devices/video/315_5313.h6
-rw-r--r--src/devices/video/cdp1861.cpp2
-rw-r--r--src/devices/video/clgd542x.cpp2
-rw-r--r--src/devices/video/crt9021.cpp3
-rw-r--r--src/devices/video/crt9021.h2
-rw-r--r--src/devices/video/crt9028.cpp2
-rw-r--r--src/devices/video/crtc_ega.cpp7
-rw-r--r--src/devices/video/crtc_ega.h6
-rw-r--r--src/devices/video/ef9369.cpp3
-rw-r--r--src/devices/video/ef9369.h12
-rw-r--r--src/devices/video/epic12.cpp14
-rw-r--r--src/devices/video/fixfreq.cpp2
-rw-r--r--src/devices/video/hd44780.cpp3
-rw-r--r--src/devices/video/hd44780.h13
-rw-r--r--src/devices/video/hd63484.cpp7
-rw-r--r--src/devices/video/hd63484.h2
-rw-r--r--src/devices/video/i82730.cpp3
-rw-r--r--src/devices/video/i82730.h7
-rw-r--r--src/devices/video/i8275.cpp3
-rw-r--r--src/devices/video/i8275.h15
-rw-r--r--src/devices/video/mc6845.cpp21
-rw-r--r--src/devices/video/mc6845.h10
-rw-r--r--src/devices/video/mc6847.cpp5
-rw-r--r--src/devices/video/mc6847.h11
-rw-r--r--src/devices/video/nt7534.cpp3
-rw-r--r--src/devices/video/nt7534.h2
-rw-r--r--src/devices/video/pc_vga.cpp3
-rw-r--r--src/devices/video/pc_vga.h4
-rw-r--r--src/devices/video/pcd8544.cpp5
-rw-r--r--src/devices/video/pcd8544.h2
-rw-r--r--src/devices/video/ppu2c0x.cpp12
-rw-r--r--src/devices/video/ppu2c0x.h10
-rw-r--r--src/devices/video/psx.cpp2
-rw-r--r--src/devices/video/scn2674.cpp12
-rw-r--r--src/devices/video/scn2674.h19
-rw-r--r--src/devices/video/sed1520.cpp4
-rw-r--r--src/devices/video/sed1520.h12
-rw-r--r--src/devices/video/tms9928a.cpp2
-rw-r--r--src/devices/video/tms9928a.h2
-rw-r--r--src/devices/video/upd3301.cpp3
-rw-r--r--src/devices/video/upd3301.h13
-rw-r--r--src/devices/video/upd7220.cpp6
-rw-r--r--src/devices/video/upd7220.h47
-rw-r--r--src/devices/video/v9938.cpp2
-rw-r--r--src/devices/video/virge_pci.cpp8
-rw-r--r--src/devices/video/voodoo_pci.cpp4
-rw-r--r--src/emu/addrmap.cpp186
-rw-r--r--src/emu/addrmap.h96
-rw-r--r--src/emu/devcb.h91
-rw-r--r--src/emu/devdelegate.cpp31
-rw-r--r--src/emu/devdelegate.h262
-rw-r--r--src/emu/device.cpp2
-rw-r--r--src/emu/device.h1
-rw-r--r--src/emu/device.ipp13
-rw-r--r--src/emu/didisasm.cpp4
-rw-r--r--src/emu/didisasm.h8
-rw-r--r--src/emu/diexec.cpp9
-rw-r--r--src/emu/diexec.h46
-rw-r--r--src/emu/emumem.cpp819
-rw-r--r--src/emu/emumem.h438
-rw-r--r--src/emu/emumem_hedp.h4
-rw-r--r--src/emu/emupal.cpp39
-rw-r--r--src/emu/emupal.h58
-rw-r--r--src/emu/ioport.cpp9
-rw-r--r--src/emu/ioport.h34
-rw-r--r--src/emu/screen.cpp6
-rw-r--r--src/emu/screen.h40
-rw-r--r--src/emu/tilemap.cpp122
-rw-r--r--src/emu/tilemap.h55
-rw-r--r--src/lib/util/delegate.h64
-rw-r--r--src/mame/audio/cage.cpp2
-rw-r--r--src/mame/audio/dcs.cpp11
-rw-r--r--src/mame/audio/jaguar.cpp2
-rw-r--r--src/mame/audio/leland.cpp4
-rw-r--r--src/mame/audio/lynx.cpp6
-rw-r--r--src/mame/audio/lynx.h2
-rw-r--r--src/mame/audio/midway.cpp58
-rw-r--r--src/mame/audio/midway.h17
-rw-r--r--src/mame/audio/segasnd.cpp5
-rw-r--r--src/mame/audio/sente6vb.cpp14
-rw-r--r--src/mame/drivers/1943.cpp8
-rw-r--r--src/mame/drivers/1945kiii.cpp2
-rw-r--r--src/mame/drivers/39in1.cpp2
-rw-r--r--src/mame/drivers/3x3puzzl.cpp6
-rw-r--r--src/mame/drivers/4dpi.cpp122
-rw-r--r--src/mame/drivers/4enlinea.cpp4
-rw-r--r--src/mame/drivers/5clown.cpp2
-rw-r--r--src/mame/drivers/88games.cpp6
-rw-r--r--src/mame/drivers/a2600.cpp38
-rw-r--r--src/mame/drivers/a7800.cpp105
-rw-r--r--src/mame/drivers/aa310.cpp2
-rw-r--r--src/mame/drivers/abc1600.cpp6
-rw-r--r--src/mame/drivers/abc80.cpp2
-rw-r--r--src/mame/drivers/abc80x.cpp2
-rw-r--r--src/mame/drivers/aci_ggm.cpp2
-rw-r--r--src/mame/drivers/adm23.cpp4
-rw-r--r--src/mame/drivers/aerofgt.cpp28
-rw-r--r--src/mame/drivers/aim65.cpp14
-rw-r--r--src/mame/drivers/airbustr.cpp2
-rw-r--r--src/mame/drivers/ajax.cpp6
-rw-r--r--src/mame/drivers/akkaarrh.cpp8
-rw-r--r--src/mame/drivers/albazg.cpp2
-rw-r--r--src/mame/drivers/alcat7100.cpp2
-rw-r--r--src/mame/drivers/alesis.cpp2
-rw-r--r--src/mame/drivers/aliens.cpp4
-rw-r--r--src/mame/drivers/alpha68k.cpp8
-rw-r--r--src/mame/drivers/alpha68k_n.cpp4
-rw-r--r--src/mame/drivers/alphasma.cpp2
-rw-r--r--src/mame/drivers/alphatro.cpp4
-rw-r--r--src/mame/drivers/altair.cpp2
-rw-r--r--src/mame/drivers/altos5.cpp2
-rw-r--r--src/mame/drivers/ambush.cpp6
-rw-r--r--src/mame/drivers/amstrad.cpp6
-rw-r--r--src/mame/drivers/amusco.cpp7
-rw-r--r--src/mame/drivers/amust.cpp2
-rw-r--r--src/mame/drivers/apf.cpp4
-rw-r--r--src/mame/drivers/apollo.cpp10
-rw-r--r--src/mame/drivers/apple1.cpp2
-rw-r--r--src/mame/drivers/apple2.cpp3
-rw-r--r--src/mame/drivers/apple2e.cpp2
-rw-r--r--src/mame/drivers/applix.cpp4
-rw-r--r--src/mame/drivers/apricot.cpp2
-rw-r--r--src/mame/drivers/apricotp.cpp2
-rw-r--r--src/mame/drivers/aquarium.cpp2
-rw-r--r--src/mame/drivers/arcadia.cpp12
-rw-r--r--src/mame/drivers/argo.cpp2
-rw-r--r--src/mame/drivers/arkanoid.cpp14
-rw-r--r--src/mame/drivers/armedf.cpp16
-rw-r--r--src/mame/drivers/artmagic.cpp2
-rw-r--r--src/mame/drivers/asterix.cpp4
-rw-r--r--src/mame/drivers/asteroid.cpp2
-rw-r--r--src/mame/drivers/astrof.cpp16
-rw-r--r--src/mame/drivers/astrohome.cpp6
-rw-r--r--src/mame/drivers/asuka.cpp10
-rw-r--r--src/mame/drivers/atari400.cpp56
-rw-r--r--src/mame/drivers/atarig1.cpp2
-rw-r--r--src/mame/drivers/atarig42.cpp4
-rw-r--r--src/mame/drivers/atarigt.cpp2
-rw-r--r--src/mame/drivers/atarigx2.cpp10
-rw-r--r--src/mame/drivers/atarist.cpp6
-rw-r--r--src/mame/drivers/atarittl.cpp2
-rw-r--r--src/mame/drivers/atom.cpp8
-rw-r--r--src/mame/drivers/attache.cpp2
-rw-r--r--src/mame/drivers/aussiebyte.cpp6
-rw-r--r--src/mame/drivers/ave_arb.cpp2
-rw-r--r--src/mame/drivers/avigo.cpp2
-rw-r--r--src/mame/drivers/avt.cpp2
-rw-r--r--src/mame/drivers/babbage.cpp2
-rw-r--r--src/mame/drivers/backfire.cpp14
-rw-r--r--src/mame/drivers/balsente.cpp4
-rw-r--r--src/mame/drivers/banctec.cpp4
-rw-r--r--src/mame/drivers/battlnts.cpp4
-rw-r--r--src/mame/drivers/bbc.cpp24
-rw-r--r--src/mame/drivers/bbcbc.cpp10
-rw-r--r--src/mame/drivers/berzerk.cpp8
-rw-r--r--src/mame/drivers/bestleag.cpp6
-rw-r--r--src/mame/drivers/beta.cpp4
-rw-r--r--src/mame/drivers/bfm_sc2.cpp4
-rw-r--r--src/mame/drivers/bfm_sc4.cpp8
-rw-r--r--src/mame/drivers/bigbord2.cpp2
-rw-r--r--src/mame/drivers/binbug.cpp2
-rw-r--r--src/mame/drivers/bionicc.cpp8
-rw-r--r--src/mame/drivers/bishi.cpp4
-rw-r--r--src/mame/drivers/blackt96.cpp4
-rw-r--r--src/mame/drivers/bladestl.cpp4
-rw-r--r--src/mame/drivers/blitz68k.cpp14
-rw-r--r--src/mame/drivers/blockade.cpp2
-rw-r--r--src/mame/drivers/blockhl.cpp4
-rw-r--r--src/mame/drivers/bloodbro.cpp2
-rw-r--r--src/mame/drivers/bmcpokr.cpp4
-rw-r--r--src/mame/drivers/bml3.cpp67
-rw-r--r--src/mame/drivers/bnstars.cpp16
-rw-r--r--src/mame/drivers/boogwing.cpp6
-rw-r--r--src/mame/drivers/bottom9.cpp6
-rw-r--r--src/mame/drivers/btime.cpp2
-rw-r--r--src/mame/drivers/bw12.cpp4
-rw-r--r--src/mame/drivers/bzone.cpp4
-rw-r--r--src/mame/drivers/c128.cpp4
-rw-r--r--src/mame/drivers/c2color.cpp2
-rw-r--r--src/mame/drivers/c64.cpp6
-rw-r--r--src/mame/drivers/cabaret.cpp4
-rw-r--r--src/mame/drivers/calchase.cpp14
-rw-r--r--src/mame/drivers/calcune.cpp4
-rw-r--r--src/mame/drivers/calorie.cpp4
-rw-r--r--src/mame/drivers/camplynx.cpp4
-rw-r--r--src/mame/drivers/cardline.cpp4
-rw-r--r--src/mame/drivers/carjmbre.cpp2
-rw-r--r--src/mame/drivers/casloopy.cpp2
-rw-r--r--src/mame/drivers/caswin.cpp2
-rw-r--r--src/mame/drivers/cat.cpp2
-rw-r--r--src/mame/drivers/cave.cpp2
-rw-r--r--src/mame/drivers/cb2001.cpp6
-rw-r--r--src/mame/drivers/cball.cpp2
-rw-r--r--src/mame/drivers/cbm2.cpp8
-rw-r--r--src/mame/drivers/cbuster.cpp10
-rw-r--r--src/mame/drivers/cc40.cpp4
-rw-r--r--src/mame/drivers/cd2650.cpp2
-rw-r--r--src/mame/drivers/cgc7900.cpp2
-rw-r--r--src/mame/drivers/cgenie.cpp10
-rw-r--r--src/mame/drivers/cham24.cpp2
-rw-r--r--src/mame/drivers/chanbara.cpp4
-rw-r--r--src/mame/drivers/chance32.cpp4
-rw-r--r--src/mame/drivers/channelf.cpp10
-rw-r--r--src/mame/drivers/chinagat.cpp4
-rw-r--r--src/mame/drivers/chinsan.cpp2
-rw-r--r--src/mame/drivers/chqflag.cpp6
-rw-r--r--src/mame/drivers/cinemat.cpp8
-rw-r--r--src/mame/drivers/cischeat.cpp4
-rw-r--r--src/mame/drivers/clickstart.cpp2
-rw-r--r--src/mame/drivers/clpoker.cpp4
-rw-r--r--src/mame/drivers/cmi.cpp63
-rw-r--r--src/mame/drivers/cninja.cpp40
-rw-r--r--src/mame/drivers/cntsteer.cpp8
-rw-r--r--src/mame/drivers/cobra.cpp11
-rw-r--r--src/mame/drivers/coinmstr.cpp2
-rw-r--r--src/mame/drivers/coleco.cpp2
-rw-r--r--src/mame/drivers/combatsc.cpp4
-rw-r--r--src/mame/drivers/comx35.cpp2
-rw-r--r--src/mame/drivers/coolridr.cpp4
-rw-r--r--src/mame/drivers/cosmic.cpp8
-rw-r--r--src/mame/drivers/cosmicos.cpp2
-rw-r--r--src/mame/drivers/cp1.cpp2
-rw-r--r--src/mame/drivers/cps1.cpp34
-rw-r--r--src/mame/drivers/cps2.cpp8
-rw-r--r--src/mame/drivers/cps3.cpp8
-rw-r--r--src/mame/drivers/crgolf.cpp2
-rw-r--r--src/mame/drivers/crimfght.cpp4
-rw-r--r--src/mame/drivers/crshrace.cpp2
-rw-r--r--src/mame/drivers/crvision.cpp4
-rw-r--r--src/mame/drivers/csplayh5.cpp6
-rw-r--r--src/mame/drivers/cswat.cpp6
-rw-r--r--src/mame/drivers/cultures.cpp10
-rw-r--r--src/mame/drivers/cv1k.cpp2
-rw-r--r--src/mame/drivers/cvs.cpp6
-rw-r--r--src/mame/drivers/cybertnk.cpp6
-rw-r--r--src/mame/drivers/cybiko.cpp4
-rw-r--r--src/mame/drivers/cz101.cpp2
-rw-r--r--src/mame/drivers/d6800.cpp2
-rw-r--r--src/mame/drivers/d6809.cpp2
-rw-r--r--src/mame/drivers/d9final.cpp2
-rw-r--r--src/mame/drivers/dacholer.cpp6
-rw-r--r--src/mame/drivers/dassault.cpp8
-rw-r--r--src/mame/drivers/dblewing.cpp6
-rw-r--r--src/mame/drivers/dbz.cpp6
-rw-r--r--src/mame/drivers/dccons.cpp4
-rw-r--r--src/mame/drivers/ddayjlc.cpp4
-rw-r--r--src/mame/drivers/ddealer.cpp4
-rw-r--r--src/mame/drivers/ddenlovr.cpp2
-rw-r--r--src/mame/drivers/deadang.cpp4
-rw-r--r--src/mame/drivers/dec0.cpp20
-rw-r--r--src/mame/drivers/dec8.cpp6
-rw-r--r--src/mame/drivers/deco156.cpp12
-rw-r--r--src/mame/drivers/deco32.cpp50
-rw-r--r--src/mame/drivers/deco_mlc.cpp2
-rw-r--r--src/mame/drivers/decocass.cpp8
-rw-r--r--src/mame/drivers/dectalk.cpp2
-rw-r--r--src/mame/drivers/dgn_beta.cpp2
-rw-r--r--src/mame/drivers/dietgo.cpp4
-rw-r--r--src/mame/drivers/dim68k.cpp2
-rw-r--r--src/mame/drivers/divebomb.cpp4
-rw-r--r--src/mame/drivers/djmain.cpp2
-rw-r--r--src/mame/drivers/dkong.cpp18
-rw-r--r--src/mame/drivers/dm7000.cpp4
-rw-r--r--src/mame/drivers/dmndrby.cpp2
-rw-r--r--src/mame/drivers/dmv.cpp2
-rw-r--r--src/mame/drivers/dooyong.cpp22
-rw-r--r--src/mame/drivers/dpb7000.cpp4
-rw-r--r--src/mame/drivers/dragon.cpp2
-rw-r--r--src/mame/drivers/dreambal.cpp4
-rw-r--r--src/mame/drivers/dreamwld.cpp10
-rw-r--r--src/mame/drivers/drtomy.cpp4
-rw-r--r--src/mame/drivers/drw80pkr.cpp2
-rw-r--r--src/mame/drivers/duet16.cpp2
-rw-r--r--src/mame/drivers/dunhuang.cpp4
-rw-r--r--src/mame/drivers/dynadice.cpp4
-rw-r--r--src/mame/drivers/dynax.cpp2
-rw-r--r--src/mame/drivers/ec65.cpp2
-rw-r--r--src/mame/drivers/ecoinfr.cpp3
-rw-r--r--src/mame/drivers/efdt.cpp4
-rw-r--r--src/mame/drivers/egghunt.cpp2
-rw-r--r--src/mame/drivers/eispc.cpp74
-rw-r--r--src/mame/drivers/elf.cpp4
-rw-r--r--src/mame/drivers/ep64.cpp2
-rw-r--r--src/mame/drivers/equites.cpp6
-rw-r--r--src/mame/drivers/esd16.cpp2
-rw-r--r--src/mame/drivers/esprit.cpp6
-rw-r--r--src/mame/drivers/eti660.cpp2
-rw-r--r--src/mame/drivers/ettrivia.cpp4
-rw-r--r--src/mame/drivers/excali64.cpp2
-rw-r--r--src/mame/drivers/exidy440.cpp10
-rw-r--r--src/mame/drivers/expro02.cpp2
-rw-r--r--src/mame/drivers/exprraid.cpp4
-rw-r--r--src/mame/drivers/f1gp.cpp7
-rw-r--r--src/mame/drivers/facit4440.cpp2
-rw-r--r--src/mame/drivers/falcots.cpp4
-rw-r--r--src/mame/drivers/famibox.cpp2
-rw-r--r--src/mame/drivers/fanucspmg.cpp4
-rw-r--r--src/mame/drivers/fastfred.cpp12
-rw-r--r--src/mame/drivers/fb01.cpp2
-rw-r--r--src/mame/drivers/fc100.cpp2
-rw-r--r--src/mame/drivers/fccpu30.cpp2
-rw-r--r--src/mame/drivers/fcrash.cpp12
-rw-r--r--src/mame/drivers/fidel_as12.cpp2
-rw-r--r--src/mame/drivers/fidel_cc1.cpp2
-rw-r--r--src/mame/drivers/fidel_eag68k.cpp2
-rw-r--r--src/mame/drivers/fidel_elite.cpp2
-rw-r--r--src/mame/drivers/fidel_sc12.cpp2
-rw-r--r--src/mame/drivers/fidel_sc6.cpp2
-rw-r--r--src/mame/drivers/fidel_sc9.cpp2
-rw-r--r--src/mame/drivers/fireball.cpp2
-rw-r--r--src/mame/drivers/firebeat.cpp16
-rw-r--r--src/mame/drivers/firefox.cpp2
-rw-r--r--src/mame/drivers/fitfight.cpp6
-rw-r--r--src/mame/drivers/flipjack.cpp2
-rw-r--r--src/mame/drivers/flower.cpp4
-rw-r--r--src/mame/drivers/flyball.cpp2
-rw-r--r--src/mame/drivers/fm7.cpp30
-rw-r--r--src/mame/drivers/force68k.cpp6
-rw-r--r--src/mame/drivers/fp1100.cpp4
-rw-r--r--src/mame/drivers/freeway.cpp2
-rw-r--r--src/mame/drivers/fresh.cpp4
-rw-r--r--src/mame/drivers/fs3216.cpp4
-rw-r--r--src/mame/drivers/funkball.cpp6
-rw-r--r--src/mame/drivers/funtech.cpp8
-rw-r--r--src/mame/drivers/fuukifg2.cpp2
-rw-r--r--src/mame/drivers/fuukifg3.cpp12
-rw-r--r--src/mame/drivers/gaelco.cpp6
-rw-r--r--src/mame/drivers/gaelco3d.cpp8
-rw-r--r--src/mame/drivers/galaga.cpp4
-rw-r--r--src/mame/drivers/galaxi.cpp10
-rw-r--r--src/mame/drivers/galaxian.cpp46
-rw-r--r--src/mame/drivers/galaxy.cpp4
-rw-r--r--src/mame/drivers/galivan.cpp10
-rw-r--r--src/mame/drivers/gamecom.cpp4
-rw-r--r--src/mame/drivers/gamecstl.cpp6
-rw-r--r--src/mame/drivers/gameking.cpp2
-rw-r--r--src/mame/drivers/gba.cpp34
-rw-r--r--src/mame/drivers/gcpinbal.cpp2
-rw-r--r--src/mame/drivers/geniusiq.cpp4
-rw-r--r--src/mame/drivers/ghosteo.cpp2
-rw-r--r--src/mame/drivers/giclassic.cpp6
-rw-r--r--src/mame/drivers/gijoe.cpp4
-rw-r--r--src/mame/drivers/gluck2.cpp2
-rw-r--r--src/mame/drivers/gmaster.cpp2
-rw-r--r--src/mame/drivers/goldngam.cpp4
-rw-r--r--src/mame/drivers/goldnpkr.cpp6
-rw-r--r--src/mame/drivers/goldstar.cpp40
-rw-r--r--src/mame/drivers/good.cpp4
-rw-r--r--src/mame/drivers/goodejan.cpp18
-rw-r--r--src/mame/drivers/gottlieb.cpp16
-rw-r--r--src/mame/drivers/goupil.cpp4
-rw-r--r--src/mame/drivers/gradius3.cpp4
-rw-r--r--src/mame/drivers/gridlee.cpp2
-rw-r--r--src/mame/drivers/groundfx.cpp2
-rw-r--r--src/mame/drivers/gstream.cpp6
-rw-r--r--src/mame/drivers/gstriker.cpp8
-rw-r--r--src/mame/drivers/gsword.cpp4
-rw-r--r--src/mame/drivers/gts3a.cpp2
-rw-r--r--src/mame/drivers/gunbustr.cpp2
-rw-r--r--src/mame/drivers/h19.cpp2
-rw-r--r--src/mame/drivers/h89.cpp6
-rw-r--r--src/mame/drivers/harddriv.cpp238
-rw-r--r--src/mame/drivers/hazeltin.cpp6
-rw-r--r--src/mame/drivers/headonb.cpp2
-rw-r--r--src/mame/drivers/hektor.cpp6
-rw-r--r--src/mame/drivers/hh_tms1k.cpp4
-rw-r--r--src/mame/drivers/hitme.cpp4
-rw-r--r--src/mame/drivers/hnayayoi.cpp4
-rw-r--r--src/mame/drivers/homelab.cpp6
-rw-r--r--src/mame/drivers/hornet.cpp6
-rw-r--r--src/mame/drivers/hotstuff.cpp55
-rw-r--r--src/mame/drivers/hp16500.cpp6
-rw-r--r--src/mame/drivers/hp64k.cpp2
-rw-r--r--src/mame/drivers/hp700.cpp10
-rw-r--r--src/mame/drivers/hp9825.cpp12
-rw-r--r--src/mame/drivers/hp9845.cpp4
-rw-r--r--src/mame/drivers/hp9k_3xx.cpp2
-rw-r--r--src/mame/drivers/hprot1.cpp2
-rw-r--r--src/mame/drivers/hunter16.cpp2
-rw-r--r--src/mame/drivers/hvyunit.cpp6
-rw-r--r--src/mame/drivers/hx20.cpp2
-rw-r--r--src/mame/drivers/hyprduel.cpp8
-rw-r--r--src/mame/drivers/i7000.cpp8
-rw-r--r--src/mame/drivers/ibmpcjr.cpp4
-rw-r--r--src/mame/drivers/icatel.cpp2
-rw-r--r--src/mame/drivers/icebox.cpp8
-rw-r--r--src/mame/drivers/icecold.cpp4
-rw-r--r--src/mame/drivers/igs009.cpp20
-rw-r--r--src/mame/drivers/igs011.cpp12
-rw-r--r--src/mame/drivers/igs017.cpp34
-rw-r--r--src/mame/drivers/igspoker.cpp6
-rw-r--r--src/mame/drivers/instruct.cpp2
-rw-r--r--src/mame/drivers/intellec4.cpp4
-rw-r--r--src/mame/drivers/intellect02.cpp2
-rw-r--r--src/mame/drivers/interpro.cpp10
-rw-r--r--src/mame/drivers/inufuku.cpp2
-rw-r--r--src/mame/drivers/ipds.cpp2
-rw-r--r--src/mame/drivers/iqblock.cpp4
-rw-r--r--src/mame/drivers/is48x.cpp2
-rw-r--r--src/mame/drivers/istrebiteli.cpp4
-rw-r--r--src/mame/drivers/itech32.cpp42
-rw-r--r--src/mame/drivers/itech8.cpp2
-rw-r--r--src/mame/drivers/itt1700.cpp2
-rw-r--r--src/mame/drivers/jackie.cpp8
-rw-r--r--src/mame/drivers/jaguar.cpp34
-rw-r--r--src/mame/drivers/jalmah.cpp26
-rw-r--r--src/mame/drivers/jangou.cpp2
-rw-r--r--src/mame/drivers/jazz.cpp42
-rw-r--r--src/mame/drivers/jchan.cpp4
-rw-r--r--src/mame/drivers/jclub2.cpp4
-rw-r--r--src/mame/drivers/jensen.cpp58
-rw-r--r--src/mame/drivers/jokrwild.cpp2
-rw-r--r--src/mame/drivers/jollyjgr.cpp2
-rw-r--r--src/mame/drivers/joystand.cpp4
-rw-r--r--src/mame/drivers/jr100.cpp2
-rw-r--r--src/mame/drivers/jtc.cpp2
-rw-r--r--src/mame/drivers/jubilee.cpp2
-rw-r--r--src/mame/drivers/juicebox.cpp34
-rw-r--r--src/mame/drivers/jupace.cpp2
-rw-r--r--src/mame/drivers/k28.cpp2
-rw-r--r--src/mame/drivers/kangaroo.cpp2
-rw-r--r--src/mame/drivers/karnov.cpp4
-rw-r--r--src/mame/drivers/kaypro.cpp6
-rw-r--r--src/mame/drivers/kc.cpp4
-rw-r--r--src/mame/drivers/kdt6.cpp6
-rw-r--r--src/mame/drivers/kenseim.cpp2
-rw-r--r--src/mame/drivers/kickgoal.cpp10
-rw-r--r--src/mame/drivers/kingdrby.cpp6
-rw-r--r--src/mame/drivers/koftball.cpp11
-rw-r--r--src/mame/drivers/koikoi.cpp2
-rw-r--r--src/mame/drivers/konamigx.cpp22
-rw-r--r--src/mame/drivers/konamim2.cpp8
-rw-r--r--src/mame/drivers/konin.cpp14
-rw-r--r--src/mame/drivers/konmedal.cpp8
-rw-r--r--src/mame/drivers/konmedal68k.cpp2
-rw-r--r--src/mame/drivers/ksys573.cpp2
-rw-r--r--src/mame/drivers/laserbas.cpp2
-rw-r--r--src/mame/drivers/lbeach.cpp4
-rw-r--r--src/mame/drivers/ldplayer.cpp4
-rw-r--r--src/mame/drivers/leapfrog_leappad.cpp4
-rw-r--r--src/mame/drivers/leapster.cpp2
-rw-r--r--src/mame/drivers/legionna.cpp48
-rw-r--r--src/mame/drivers/leland.cpp54
-rw-r--r--src/mame/drivers/lethal.cpp4
-rw-r--r--src/mame/drivers/lethalj.cpp6
-rw-r--r--src/mame/drivers/liberate.cpp6
-rw-r--r--src/mame/drivers/limenko.cpp14
-rw-r--r--src/mame/drivers/lola8a.cpp2
-rw-r--r--src/mame/drivers/looping.cpp4
-rw-r--r--src/mame/drivers/ltcasino.cpp4
-rw-r--r--src/mame/drivers/luckgrln.cpp8
-rw-r--r--src/mame/drivers/lviv.cpp2
-rw-r--r--src/mame/drivers/lwings.cpp4
-rw-r--r--src/mame/drivers/lynx.cpp8
-rw-r--r--src/mame/drivers/m14.cpp2
-rw-r--r--src/mame/drivers/m20.cpp2
-rw-r--r--src/mame/drivers/m3.cpp2
-rw-r--r--src/mame/drivers/m5.cpp16
-rw-r--r--src/mame/drivers/m63.cpp4
-rw-r--r--src/mame/drivers/m68705prg.cpp4
-rw-r--r--src/mame/drivers/m72.cpp16
-rw-r--r--src/mame/drivers/m90.cpp2
-rw-r--r--src/mame/drivers/macrossp.cpp4
-rw-r--r--src/mame/drivers/macs.cpp2
-rw-r--r--src/mame/drivers/magic10.cpp6
-rw-r--r--src/mame/drivers/magicfly.cpp4
-rw-r--r--src/mame/drivers/magictg.cpp12
-rw-r--r--src/mame/drivers/mainevt.cpp8
-rw-r--r--src/mame/drivers/majorpkr.cpp4
-rw-r--r--src/mame/drivers/mappy.cpp4
-rw-r--r--src/mame/drivers/marinedt.cpp2
-rw-r--r--src/mame/drivers/mastboyo.cpp2
-rw-r--r--src/mame/drivers/maygay1b.cpp2
-rw-r--r--src/mame/drivers/maygayv1.cpp2
-rw-r--r--src/mame/drivers/mbc200.cpp2
-rw-r--r--src/mame/drivers/mbc55x.cpp2
-rw-r--r--src/mame/drivers/mbee.cpp16
-rw-r--r--src/mame/drivers/mcatadv.cpp4
-rw-r--r--src/mame/drivers/mcr.cpp48
-rw-r--r--src/mame/drivers/mcr3.cpp46
-rw-r--r--src/mame/drivers/mcr68.cpp20
-rw-r--r--src/mame/drivers/mediagx.cpp66
-rw-r--r--src/mame/drivers/megadriv.cpp48
-rw-r--r--src/mame/drivers/megadriv_acbl.cpp30
-rw-r--r--src/mame/drivers/megadriv_rad.cpp4
-rw-r--r--src/mame/drivers/megaplay.cpp8
-rw-r--r--src/mame/drivers/megasys1.cpp28
-rw-r--r--src/mame/drivers/megatech.cpp36
-rw-r--r--src/mame/drivers/mekd2.cpp2
-rw-r--r--src/mame/drivers/mekd3.cpp2
-rw-r--r--src/mame/drivers/mekd4.cpp2
-rw-r--r--src/mame/drivers/merit.cpp4
-rw-r--r--src/mame/drivers/meritm.cpp6
-rw-r--r--src/mame/drivers/meritum.cpp2
-rw-r--r--src/mame/drivers/metro.cpp6
-rw-r--r--src/mame/drivers/mgames.cpp2
-rw-r--r--src/mame/drivers/mgavegas.cpp6
-rw-r--r--src/mame/drivers/mgolf.cpp2
-rw-r--r--src/mame/drivers/micro20.cpp7
-rw-r--r--src/mame/drivers/micro3d.cpp2
-rw-r--r--src/mame/drivers/microtan.cpp4
-rw-r--r--src/mame/drivers/microvsn.cpp2
-rw-r--r--src/mame/drivers/midqslvr.cpp6
-rw-r--r--src/mame/drivers/midvunit.cpp34
-rw-r--r--src/mame/drivers/midzeus.cpp10
-rw-r--r--src/mame/drivers/mikrosha.cpp4
-rw-r--r--src/mame/drivers/mil4000.cpp8
-rw-r--r--src/mame/drivers/mindset.cpp4
-rw-r--r--src/mame/drivers/miniboy7.cpp2
-rw-r--r--src/mame/drivers/mips.cpp65
-rw-r--r--src/mame/drivers/mirage.cpp4
-rw-r--r--src/mame/drivers/mjsenpu.cpp16
-rw-r--r--src/mame/drivers/ml20.cpp2
-rw-r--r--src/mame/drivers/mmm.cpp8
-rw-r--r--src/mame/drivers/model3.cpp86
-rw-r--r--src/mame/drivers/mogura.cpp2
-rw-r--r--src/mame/drivers/mole.cpp2
-rw-r--r--src/mame/drivers/monon_color.cpp2
-rw-r--r--src/mame/drivers/moo.cpp8
-rw-r--r--src/mame/drivers/mpu12wbk.cpp2
-rw-r--r--src/mame/drivers/mpu3.cpp5
-rw-r--r--src/mame/drivers/mpu4vid.cpp2
-rw-r--r--src/mame/drivers/mtx.cpp8
-rw-r--r--src/mame/drivers/multfish.cpp4
-rw-r--r--src/mame/drivers/multi16.cpp2
-rw-r--r--src/mame/drivers/multi8.cpp2
-rw-r--r--src/mame/drivers/multigam.cpp24
-rw-r--r--src/mame/drivers/munchmo.cpp2
-rw-r--r--src/mame/drivers/mx2178.cpp2
-rw-r--r--src/mame/drivers/myb3k.cpp2
-rw-r--r--src/mame/drivers/mycom.cpp2
-rw-r--r--src/mame/drivers/mystwarr.cpp24
-rw-r--r--src/mame/drivers/myvision.cpp4
-rw-r--r--src/mame/drivers/n64.cpp8
-rw-r--r--src/mame/drivers/namcona1.cpp6
-rw-r--r--src/mame/drivers/namcos11.cpp2
-rw-r--r--src/mame/drivers/namcos22.cpp6
-rw-r--r--src/mame/drivers/namcos23.cpp2
-rw-r--r--src/mame/drivers/naomi.cpp2
-rw-r--r--src/mame/drivers/nascom1.cpp8
-rw-r--r--src/mame/drivers/naughtyb.cpp8
-rw-r--r--src/mame/drivers/nc.cpp4
-rw-r--r--src/mame/drivers/neogeo.cpp208
-rw-r--r--src/mame/drivers/neogeocd.cpp6
-rw-r--r--src/mame/drivers/neopcb.cpp2
-rw-r--r--src/mame/drivers/nes.cpp26
-rw-r--r--src/mame/drivers/nes_vt.cpp12
-rw-r--r--src/mame/drivers/ngen.cpp10
-rw-r--r--src/mame/drivers/ngp.cpp8
-rw-r--r--src/mame/drivers/nibble.cpp2
-rw-r--r--src/mame/drivers/nightgal.cpp4
-rw-r--r--src/mame/drivers/ninjakd2.cpp2
-rw-r--r--src/mame/drivers/nmg5.cpp4
-rw-r--r--src/mame/drivers/nmk16.cpp62
-rw-r--r--src/mame/drivers/nokia_3310.cpp2
-rw-r--r--src/mame/drivers/novag_diablo.cpp2
-rw-r--r--src/mame/drivers/novag_sexpert.cpp2
-rw-r--r--src/mame/drivers/nsmpoker.cpp2
-rw-r--r--src/mame/drivers/nyny.cpp4
-rw-r--r--src/mame/drivers/offtwall.cpp12
-rw-r--r--src/mame/drivers/olibochu.cpp2
-rw-r--r--src/mame/drivers/olyboss.cpp2
-rw-r--r--src/mame/drivers/onetwo.cpp2
-rw-r--r--src/mame/drivers/onyx.cpp20
-rw-r--r--src/mame/drivers/opwolf.cpp4
-rw-r--r--src/mame/drivers/osborne1.cpp4
-rw-r--r--src/mame/drivers/othello.cpp2
-rw-r--r--src/mame/drivers/overdriv.cpp6
-rw-r--r--src/mame/drivers/pacman.cpp12
-rw-r--r--src/mame/drivers/palestra.cpp2
-rw-r--r--src/mame/drivers/panicr.cpp6
-rw-r--r--src/mame/drivers/paradise.cpp4
-rw-r--r--src/mame/drivers/parodius.cpp4
-rw-r--r--src/mame/drivers/partner.cpp2
-rw-r--r--src/mame/drivers/pasha2.cpp2
-rw-r--r--src/mame/drivers/pasopia.cpp2
-rw-r--r--src/mame/drivers/patapata.cpp8
-rw-r--r--src/mame/drivers/patinho_feio.cpp2
-rw-r--r--src/mame/drivers/pbaction.cpp8
-rw-r--r--src/mame/drivers/pc100.cpp5
-rw-r--r--src/mame/drivers/pc2000.cpp2
-rw-r--r--src/mame/drivers/pc6001.cpp2
-rw-r--r--src/mame/drivers/pc8001.cpp4
-rw-r--r--src/mame/drivers/pc9801.cpp4
-rw-r--r--src/mame/drivers/pcw.cpp4
-rw-r--r--src/mame/drivers/pcxt.cpp2
-rw-r--r--src/mame/drivers/pegasus.cpp20
-rw-r--r--src/mame/drivers/pencil2.cpp2
-rw-r--r--src/mame/drivers/pentagon.cpp4
-rw-r--r--src/mame/drivers/peoplepc.cpp2
-rw-r--r--src/mame/drivers/peplus.cpp4
-rw-r--r--src/mame/drivers/pet.cpp16
-rw-r--r--src/mame/drivers/pg685.cpp6
-rw-r--r--src/mame/drivers/pgm2.cpp14
-rw-r--r--src/mame/drivers/photoply.cpp7
-rw-r--r--src/mame/drivers/phunsy.cpp2
-rw-r--r--src/mame/drivers/piggypas.cpp6
-rw-r--r--src/mame/drivers/pinball2k.cpp3
-rw-r--r--src/mame/drivers/pingpong.cpp4
-rw-r--r--src/mame/drivers/pipbug.cpp2
-rw-r--r--src/mame/drivers/pipedrm.cpp2
-rw-r--r--src/mame/drivers/pipeline.cpp4
-rw-r--r--src/mame/drivers/pirates.cpp2
-rw-r--r--src/mame/drivers/piratesh.cpp6
-rw-r--r--src/mame/drivers/pkscram.cpp6
-rw-r--r--src/mame/drivers/pktgaldx.cpp4
-rw-r--r--src/mame/drivers/plus4.cpp2
-rw-r--r--src/mame/drivers/pockchal.cpp4
-rw-r--r--src/mame/drivers/pockstat.cpp2
-rw-r--r--src/mame/drivers/poisk1.cpp2
-rw-r--r--src/mame/drivers/pokemini.cpp2
-rw-r--r--src/mame/drivers/polepos.cpp2
-rw-r--r--src/mame/drivers/policetr.cpp2
-rw-r--r--src/mame/drivers/poly88.cpp2
-rw-r--r--src/mame/drivers/pong.cpp28
-rw-r--r--src/mame/drivers/popobear.cpp8
-rw-r--r--src/mame/drivers/popper.cpp4
-rw-r--r--src/mame/drivers/powerbal.cpp4
-rw-r--r--src/mame/drivers/powerins.cpp4
-rw-r--r--src/mame/drivers/ppmast93.cpp4
-rw-r--r--src/mame/drivers/prehisle.cpp12
-rw-r--r--src/mame/drivers/primo.cpp4
-rw-r--r--src/mame/drivers/psion.cpp4
-rw-r--r--src/mame/drivers/psx.cpp2
-rw-r--r--src/mame/drivers/pturn.cpp4
-rw-r--r--src/mame/drivers/pv1000.cpp4
-rw-r--r--src/mame/drivers/pv2000.cpp4
-rw-r--r--src/mame/drivers/pwrview.cpp2
-rw-r--r--src/mame/drivers/pyl601.cpp4
-rw-r--r--src/mame/drivers/pzletime.cpp4
-rw-r--r--src/mame/drivers/qdrmfgp.cpp4
-rw-r--r--src/mame/drivers/queen.cpp6
-rw-r--r--src/mame/drivers/quickpick5.cpp4
-rw-r--r--src/mame/drivers/quizpun2.cpp4
-rw-r--r--src/mame/drivers/quizshow.cpp2
-rw-r--r--src/mame/drivers/qvt102.cpp2
-rw-r--r--src/mame/drivers/qvt190.cpp2
-rw-r--r--src/mame/drivers/qx10.cpp2
-rw-r--r--src/mame/drivers/r2dtank.cpp2
-rw-r--r--src/mame/drivers/r2dx_v33.cpp6
-rw-r--r--src/mame/drivers/rabbit.cpp8
-rw-r--r--src/mame/drivers/radio86.cpp2
-rw-r--r--src/mame/drivers/raiden2.cpp18
-rw-r--r--src/mame/drivers/rainbow.cpp12
-rw-r--r--src/mame/drivers/rastan.cpp2
-rw-r--r--src/mame/drivers/rastersp.cpp4
-rw-r--r--src/mame/drivers/ravens.cpp4
-rw-r--r--src/mame/drivers/rbisland.cpp2
-rw-r--r--src/mame/drivers/rc702.cpp4
-rw-r--r--src/mame/drivers/rd100.cpp2
-rw-r--r--src/mame/drivers/rex6000.cpp4
-rw-r--r--src/mame/drivers/rmhaihai.cpp2
-rw-r--r--src/mame/drivers/rockrage.cpp4
-rw-r--r--src/mame/drivers/rohga.cpp40
-rw-r--r--src/mame/drivers/rollerg.cpp4
-rw-r--r--src/mame/drivers/rollext.cpp2
-rw-r--r--src/mame/drivers/ron.cpp2
-rw-r--r--src/mame/drivers/rt1715.cpp2
-rw-r--r--src/mame/drivers/rungun.cpp2
-rw-r--r--src/mame/drivers/rx78.cpp4
-rw-r--r--src/mame/drivers/rz1.cpp2
-rw-r--r--src/mame/drivers/safarir.cpp4
-rw-r--r--src/mame/drivers/sage2.cpp2
-rw-r--r--src/mame/drivers/saitek_corona.cpp2
-rw-r--r--src/mame/drivers/saitek_stratos.cpp2
-rw-r--r--src/mame/drivers/saitek_superstar.cpp2
-rw-r--r--src/mame/drivers/sangho.cpp2
-rw-r--r--src/mame/drivers/sanremo.cpp2
-rw-r--r--src/mame/drivers/sapi1.cpp2
-rw-r--r--src/mame/drivers/saturn.cpp62
-rw-r--r--src/mame/drivers/savquest.cpp9
-rw-r--r--src/mame/drivers/sbowling.cpp2
-rw-r--r--src/mame/drivers/sbrain.cpp2
-rw-r--r--src/mame/drivers/sbrkout.cpp2
-rw-r--r--src/mame/drivers/scopus.cpp2
-rw-r--r--src/mame/drivers/scorpion.cpp2
-rw-r--r--src/mame/drivers/seabattl.cpp2
-rw-r--r--src/mame/drivers/sega_beena.cpp2
-rw-r--r--src/mame/drivers/segac2.cpp61
-rw-r--r--src/mame/drivers/segag80r.cpp40
-rw-r--r--src/mame/drivers/segag80v.cpp58
-rw-r--r--src/mame/drivers/segaorun.cpp34
-rw-r--r--src/mame/drivers/segapico.cpp16
-rw-r--r--src/mame/drivers/segas16a.cpp18
-rw-r--r--src/mame/drivers/segas16b.cpp68
-rw-r--r--src/mame/drivers/segas18.cpp46
-rw-r--r--src/mame/drivers/segas24.cpp2
-rw-r--r--src/mame/drivers/segas32.cpp32
-rw-r--r--src/mame/drivers/segaxbd.cpp14
-rw-r--r--src/mame/drivers/seibuspi.cpp18
-rw-r--r--src/mame/drivers/seicupbl.cpp8
-rw-r--r--src/mame/drivers/sengokmj.cpp8
-rw-r--r--src/mame/drivers/seta.cpp118
-rw-r--r--src/mame/drivers/seta2.cpp2
-rw-r--r--src/mame/drivers/sfbonus.cpp10
-rw-r--r--src/mame/drivers/sg1000.cpp8
-rw-r--r--src/mame/drivers/silvmil.cpp4
-rw-r--r--src/mame/drivers/simpl156.cpp16
-rw-r--r--src/mame/drivers/simpsons.cpp4
-rw-r--r--src/mame/drivers/sk101bl.cpp2
-rw-r--r--src/mame/drivers/skyarmy.cpp2
-rw-r--r--src/mame/drivers/skylncr.cpp10
-rw-r--r--src/mame/drivers/slotcarn.cpp8
-rw-r--r--src/mame/drivers/sm1800.cpp2
-rw-r--r--src/mame/drivers/smc777.cpp2
-rw-r--r--src/mame/drivers/snes.cpp94
-rw-r--r--src/mame/drivers/snesb.cpp76
-rw-r--r--src/mame/drivers/snk68.cpp18
-rw-r--r--src/mame/drivers/snowbros.cpp8
-rw-r--r--src/mame/drivers/sorcerer.cpp4
-rw-r--r--src/mame/drivers/spartanxtec.cpp2
-rw-r--r--src/mame/drivers/spc1500.cpp4
-rw-r--r--src/mame/drivers/spdheat.cpp8
-rw-r--r--src/mame/drivers/spectrum.cpp4
-rw-r--r--src/mame/drivers/spiders.cpp2
-rw-r--r--src/mame/drivers/splash.cpp8
-rw-r--r--src/mame/drivers/spoker.cpp4
-rw-r--r--src/mame/drivers/spool99.cpp2
-rw-r--r--src/mame/drivers/sprint2.cpp4
-rw-r--r--src/mame/drivers/spy.cpp4
-rw-r--r--src/mame/drivers/spyhuntertec.cpp8
-rw-r--r--src/mame/drivers/squale.cpp2
-rw-r--r--src/mame/drivers/srmp2.cpp4
-rw-r--r--src/mame/drivers/ssem.cpp2
-rw-r--r--src/mame/drivers/sshangha.cpp4
-rw-r--r--src/mame/drivers/sshot.cpp2
-rw-r--r--src/mame/drivers/ssingles.cpp4
-rw-r--r--src/mame/drivers/stadhero.cpp2
-rw-r--r--src/mame/drivers/starfire.cpp8
-rw-r--r--src/mame/drivers/statriv2.cpp12
-rw-r--r--src/mame/drivers/storio.cpp2
-rw-r--r--src/mame/drivers/studio2.cpp12
-rw-r--r--src/mame/drivers/stuntair.cpp4
-rw-r--r--src/mame/drivers/stv.cpp40
-rw-r--r--src/mame/drivers/subsino.cpp16
-rw-r--r--src/mame/drivers/subsino2.cpp4
-rw-r--r--src/mame/drivers/supduck.cpp6
-rw-r--r--src/mame/drivers/super80.cpp6
-rw-r--r--src/mame/drivers/superchs.cpp4
-rw-r--r--src/mame/drivers/supercrd.cpp2
-rw-r--r--src/mame/drivers/superdq.cpp2
-rw-r--r--src/mame/drivers/superwng.cpp4
-rw-r--r--src/mame/drivers/supracan.cpp42
-rw-r--r--src/mame/drivers/suprgolf.cpp2
-rw-r--r--src/mame/drivers/suprnova.cpp30
-rw-r--r--src/mame/drivers/suprslam.cpp2
-rw-r--r--src/mame/drivers/surpratk.cpp4
-rw-r--r--src/mame/drivers/sv8000.cpp4
-rw-r--r--src/mame/drivers/svi318.cpp2
-rw-r--r--src/mame/drivers/svision.cpp2
-rw-r--r--src/mame/drivers/svmu.cpp2
-rw-r--r--src/mame/drivers/swtpc8212.cpp2
-rw-r--r--src/mame/drivers/sys9002.cpp2
-rw-r--r--src/mame/drivers/system1.cpp20
-rw-r--r--src/mame/drivers/system16.cpp4
-rw-r--r--src/mame/drivers/tail2nos.cpp2
-rw-r--r--src/mame/drivers/taito_f2.cpp2
-rw-r--r--src/mame/drivers/taito_l.cpp4
-rw-r--r--src/mame/drivers/taitojc.cpp6
-rw-r--r--src/mame/drivers/taitopjc.cpp4
-rw-r--r--src/mame/drivers/taitosj.cpp12
-rw-r--r--src/mame/drivers/taitowlf.cpp6
-rw-r--r--src/mame/drivers/tandy1t.cpp4
-rw-r--r--src/mame/drivers/taotaido.cpp2
-rw-r--r--src/mame/drivers/tapatune.cpp12
-rw-r--r--src/mame/drivers/tasman.cpp4
-rw-r--r--src/mame/drivers/tatsumi.cpp2
-rw-r--r--src/mame/drivers/tattack.cpp2
-rw-r--r--src/mame/drivers/tavernie.cpp2
-rw-r--r--src/mame/drivers/techno.cpp2
-rw-r--r--src/mame/drivers/testpat.cpp4
-rw-r--r--src/mame/drivers/thepit.cpp2
-rw-r--r--src/mame/drivers/thomson.cpp8
-rw-r--r--src/mame/drivers/thoop2.cpp2
-rw-r--r--src/mame/drivers/thunderx.cpp6
-rw-r--r--src/mame/drivers/ti74.cpp10
-rw-r--r--src/mame/drivers/ti85.cpp4
-rw-r--r--src/mame/drivers/ti89.cpp4
-rw-r--r--src/mame/drivers/tim100.cpp2
-rw-r--r--src/mame/drivers/timeplt.cpp2
-rw-r--r--src/mame/drivers/timex.cpp2
-rw-r--r--src/mame/drivers/tispeak.cpp12
-rw-r--r--src/mame/drivers/tmaster.cpp2
-rw-r--r--src/mame/drivers/tmc1800.cpp8
-rw-r--r--src/mame/drivers/tmnt.cpp54
-rw-r--r--src/mame/drivers/tmspoker.cpp2
-rw-r--r--src/mame/drivers/toaplan2.cpp22
-rw-r--r--src/mame/drivers/tomy_princ.cpp6
-rw-r--r--src/mame/drivers/tourvis.cpp2
-rw-r--r--src/mame/drivers/trackfld.cpp2
-rw-r--r--src/mame/drivers/travrusa.cpp2
-rw-r--r--src/mame/drivers/trs80.cpp2
-rw-r--r--src/mame/drivers/trs80dt1.cpp2
-rw-r--r--src/mame/drivers/trs80m2.cpp4
-rw-r--r--src/mame/drivers/trs80m3.cpp2
-rw-r--r--src/mame/drivers/trvmadns.cpp2
-rw-r--r--src/mame/drivers/ts803.cpp4
-rw-r--r--src/mame/drivers/tsamurai.cpp2
-rw-r--r--src/mame/drivers/tumbleb.cpp20
-rw-r--r--src/mame/drivers/tv910.cpp4
-rw-r--r--src/mame/drivers/tv950.cpp4
-rw-r--r--src/mame/drivers/tvc.cpp6
-rw-r--r--src/mame/drivers/twin16.cpp2
-rw-r--r--src/mame/drivers/ultraman.cpp8
-rw-r--r--src/mame/drivers/umipoker.cpp8
-rw-r--r--src/mame/drivers/unichamp.cpp4
-rw-r--r--src/mame/drivers/unior.cpp2
-rw-r--r--src/mame/drivers/unistar.cpp2
-rw-r--r--src/mame/drivers/usgames.cpp2
-rw-r--r--src/mame/drivers/uzebox.cpp4
-rw-r--r--src/mame/drivers/v6809.cpp4
-rw-r--r--src/mame/drivers/vamphalf.cpp68
-rw-r--r--src/mame/drivers/vaportra.cpp10
-rw-r--r--src/mame/drivers/vc4000.cpp40
-rw-r--r--src/mame/drivers/vector06.cpp6
-rw-r--r--src/mame/drivers/vendetta.cpp6
-rw-r--r--src/mame/drivers/vgmplay.cpp6
-rw-r--r--src/mame/drivers/vic20.cpp2
-rw-r--r--src/mame/drivers/victor9k.cpp2
-rw-r--r--src/mame/drivers/videopkr.cpp4
-rw-r--r--src/mame/drivers/vii.cpp8
-rw-r--r--src/mame/drivers/vip.cpp2
-rw-r--r--src/mame/drivers/viper.cpp26
-rw-r--r--src/mame/drivers/vis.cpp8
-rw-r--r--src/mame/drivers/vk100.cpp2
-rw-r--r--src/mame/drivers/vlc.cpp2
-rw-r--r--src/mame/drivers/volfied.cpp2
-rw-r--r--src/mame/drivers/voyager.cpp6
-rw-r--r--src/mame/drivers/vp60.cpp2
-rw-r--r--src/mame/drivers/vroulet.cpp2
-rw-r--r--src/mame/drivers/vtech1.cpp2
-rw-r--r--src/mame/drivers/vtech2.cpp10
-rw-r--r--src/mame/drivers/wallc.cpp6
-rw-r--r--src/mame/drivers/warpsped.cpp4
-rw-r--r--src/mame/drivers/wecleman.cpp4
-rw-r--r--src/mame/drivers/wicat.cpp2
-rw-r--r--src/mame/drivers/williams.cpp4
-rw-r--r--src/mame/drivers/wink.cpp2
-rw-r--r--src/mame/drivers/witch.cpp8
-rw-r--r--src/mame/drivers/wrally.cpp2
-rw-r--r--src/mame/drivers/wswan.cpp4
-rw-r--r--src/mame/drivers/wy100.cpp2
-rw-r--r--src/mame/drivers/wyvernf0.cpp4
-rw-r--r--src/mame/drivers/x07.cpp8
-rw-r--r--src/mame/drivers/x68k.cpp2
-rw-r--r--src/mame/drivers/xerox820.cpp4
-rw-r--r--src/mame/drivers/xexex.cpp4
-rw-r--r--src/mame/drivers/xmen.cpp8
-rw-r--r--src/mame/drivers/xor100.cpp6
-rw-r--r--src/mame/drivers/xtom3d.cpp6
-rw-r--r--src/mame/drivers/ymmu50.cpp8
-rw-r--r--src/mame/drivers/z100.cpp2
-rw-r--r--src/mame/drivers/z1013.cpp2
-rw-r--r--src/mame/drivers/z88.cpp12
-rw-r--r--src/mame/drivers/zaxxon.cpp2
-rw-r--r--src/mame/drivers/zorba.cpp2
-rw-r--r--src/mame/drivers/zr107.cpp2
-rw-r--r--src/mame/drivers/zrt80.cpp2
-rw-r--r--src/mame/drivers/zwackery.cpp4
-rw-r--r--src/mame/includes/decocass.h6
-rw-r--r--src/mame/includes/goldstar.h21
-rw-r--r--src/mame/includes/hp48.h46
-rw-r--r--src/mame/includes/megadriv.h4
-rw-r--r--src/mame/includes/newbrain.h2
-rw-r--r--src/mame/includes/segaorun.h14
-rw-r--r--src/mame/includes/segas16a.h2
-rw-r--r--src/mame/includes/segas16b.h2
-rw-r--r--src/mame/includes/segas18.h2
-rw-r--r--src/mame/includes/sprint2.h2
-rw-r--r--src/mame/includes/starfire.h21
-rw-r--r--src/mame/includes/zaxxon.h2
-rw-r--r--src/mame/machine/315-5881_crypt.cpp3
-rw-r--r--src/mame/machine/315-5881_crypt.h7
-rw-r--r--src/mame/machine/315_5195.cpp5
-rw-r--r--src/mame/machine/315_5195.h2
-rw-r--r--src/mame/machine/3dom2.cpp20
-rw-r--r--src/mame/machine/6883sam.cpp15
-rw-r--r--src/mame/machine/6883sam.h18
-rw-r--r--src/mame/machine/aim65.cpp14
-rw-r--r--src/mame/machine/amiga.cpp2
-rw-r--r--src/mame/machine/amstrad.cpp24
-rw-r--r--src/mame/machine/atarigen.cpp2
-rw-r--r--src/mame/machine/b2m.cpp8
-rw-r--r--src/mame/machine/bbc.cpp4
-rw-r--r--src/mame/machine/coco12.cpp10
-rw-r--r--src/mame/machine/decocass.cpp54
-rw-r--r--src/mame/machine/dgn_beta.cpp44
-rw-r--r--src/mame/machine/dragon.cpp6
-rw-r--r--src/mame/machine/fd1094.cpp6
-rw-r--r--src/mame/machine/gamepock.cpp17
-rw-r--r--src/mame/machine/gridkeyb.cpp4
-rw-r--r--src/mame/machine/gridkeyb.h7
-rw-r--r--src/mame/machine/hp48.cpp26
-rw-r--r--src/mame/machine/hp48_port.cpp8
-rw-r--r--src/mame/machine/hp48_port.h2
-rw-r--r--src/mame/machine/igs025.cpp4
-rw-r--r--src/mame/machine/igs025.h2
-rw-r--r--src/mame/machine/imds2ioc.cpp2
-rw-r--r--src/mame/machine/intv.cpp28
-rw-r--r--src/mame/machine/jazz_mct_adr.cpp126
-rw-r--r--src/mame/machine/kc.cpp32
-rw-r--r--src/mame/machine/konamigx.cpp2
-rw-r--r--src/mame/machine/mac.cpp4
-rw-r--r--src/mame/machine/mbee.cpp8
-rw-r--r--src/mame/machine/mega32x.cpp32
-rw-r--r--src/mame/machine/megacd.cpp40
-rw-r--r--src/mame/machine/megacdcd.cpp25
-rw-r--r--src/mame/machine/megacdcd.h25
-rw-r--r--src/mame/machine/megadriv.cpp6
-rw-r--r--src/mame/machine/mhavoc.cpp4
-rw-r--r--src/mame/machine/micro3d.cpp4
-rw-r--r--src/mame/machine/midtunit.cpp26
-rw-r--r--src/mame/machine/midwayic.cpp12
-rw-r--r--src/mame/machine/midwunit.cpp6
-rw-r--r--src/mame/machine/midxunit.cpp2
-rw-r--r--src/mame/machine/midyunit.cpp28
-rw-r--r--src/mame/machine/model1io2.cpp4
-rw-r--r--src/mame/machine/mpu4.cpp22
-rw-r--r--src/mame/machine/msx_systemflags.cpp4
-rw-r--r--src/mame/machine/mtx.cpp2
-rw-r--r--src/mame/machine/namcos1.cpp22
-rw-r--r--src/mame/machine/naomi.cpp28
-rw-r--r--src/mame/machine/nes.cpp34
-rw-r--r--src/mame/machine/ondra.cpp2
-rw-r--r--src/mame/machine/orion.cpp68
-rw-r--r--src/mame/machine/osborne1.cpp2
-rw-r--r--src/mame/machine/partner.cpp4
-rw-r--r--src/mame/machine/pce.cpp4
-rw-r--r--src/mame/machine/pecom.cpp8
-rw-r--r--src/mame/machine/pgmprot_igs025_igs012.cpp2
-rw-r--r--src/mame/machine/pgmprot_igs025_igs022.cpp6
-rw-r--r--src/mame/machine/pgmprot_igs025_igs028.cpp4
-rw-r--r--src/mame/machine/pgmprot_igs027a_type1.cpp52
-rw-r--r--src/mame/machine/pgmprot_igs027a_type2.cpp10
-rw-r--r--src/mame/machine/pgmprot_igs027a_type3.cpp17
-rw-r--r--src/mame/machine/pgmprot_orlegend.cpp2
-rw-r--r--src/mame/machine/playch10.cpp34
-rw-r--r--src/mame/machine/pp01.cpp43
-rw-r--r--src/mame/machine/rm380z.cpp2
-rw-r--r--src/mame/machine/samcoupe.cpp2
-rw-r--r--src/mame/machine/scramble.cpp28
-rw-r--r--src/mame/machine/sorcerer.cpp2
-rw-r--r--src/mame/machine/special.cpp4
-rw-r--r--src/mame/machine/st0016.cpp68
-rw-r--r--src/mame/machine/st0016.h2
-rw-r--r--src/mame/machine/stvprot.cpp2
-rw-r--r--src/mame/machine/thomson.cpp36
-rw-r--r--src/mame/machine/toaplan1.cpp2
-rw-r--r--src/mame/machine/upd65031.cpp12
-rw-r--r--src/mame/machine/upd65031.h14
-rw-r--r--src/mame/machine/vectrex.cpp4
-rw-r--r--src/mame/machine/vsnes.cpp46
-rw-r--r--src/mame/machine/wswan.cpp10
-rw-r--r--src/mame/machine/xbox_pci.cpp4
-rw-r--r--src/mame/video/1942.cpp8
-rw-r--r--src/mame/video/1943.cpp6
-rw-r--r--src/mame/video/40love.cpp2
-rw-r--r--src/mame/video/4enraya.cpp2
-rw-r--r--src/mame/video/abc1600.cpp71
-rw-r--r--src/mame/video/abc800.cpp2
-rw-r--r--src/mame/video/abc802.cpp2
-rw-r--r--src/mame/video/abc806.cpp12
-rw-r--r--src/mame/video/aeroboto.cpp2
-rw-r--r--src/mame/video/aerofgt.cpp16
-rw-r--r--src/mame/video/airbustr.cpp4
-rw-r--r--src/mame/video/airraid_dev.cpp8
-rw-r--r--src/mame/video/alpha68k.cpp2
-rw-r--r--src/mame/video/ampoker2.cpp4
-rw-r--r--src/mame/video/amspdwy.cpp2
-rw-r--r--src/mame/video/angelkds.cpp6
-rw-r--r--src/mame/video/appoooh.cpp4
-rw-r--r--src/mame/video/aquarium.cpp6
-rw-r--r--src/mame/video/aquarius.cpp2
-rw-r--r--src/mame/video/argus.cpp18
-rw-r--r--src/mame/video/arkanoid.cpp2
-rw-r--r--src/mame/video/armedf.cpp14
-rw-r--r--src/mame/video/ashnojoe.cpp12
-rw-r--r--src/mame/video/atarifb.cpp6
-rw-r--r--src/mame/video/atetris.cpp2
-rw-r--r--src/mame/video/bagman.cpp2
-rw-r--r--src/mame/video/bankp.cpp4
-rw-r--r--src/mame/video/baraduke.cpp6
-rw-r--r--src/mame/video/battlane.cpp2
-rw-r--r--src/mame/video/battlex.cpp4
-rw-r--r--src/mame/video/bbusters.cpp10
-rw-r--r--src/mame/video/bfm_adr2.cpp4
-rw-r--r--src/mame/video/bigstrkb.cpp6
-rw-r--r--src/mame/video/bking.cpp2
-rw-r--r--src/mame/video/blktiger.cpp6
-rw-r--r--src/mame/video/blmbycar.cpp4
-rw-r--r--src/mame/video/bloodbro.cpp6
-rw-r--r--src/mame/video/blueprnt.cpp2
-rw-r--r--src/mame/video/bogeyman.cpp4
-rw-r--r--src/mame/video/bombjack.cpp4
-rw-r--r--src/mame/video/bosco.cpp4
-rw-r--r--src/mame/video/brkthru.cpp4
-rw-r--r--src/mame/video/bsktball.cpp2
-rw-r--r--src/mame/video/bwing.cpp6
-rw-r--r--src/mame/video/c45.cpp4
-rw-r--r--src/mame/video/cabal.cpp4
-rw-r--r--src/mame/video/calomega.cpp2
-rw-r--r--src/mame/video/canyon.cpp2
-rw-r--r--src/mame/video/cbasebal.cpp4
-rw-r--r--src/mame/video/cclimber.cpp14
-rw-r--r--src/mame/video/centiped.cpp8
-rw-r--r--src/mame/video/chaknpop.cpp2
-rw-r--r--src/mame/video/champbas.cpp4
-rw-r--r--src/mame/video/cheekyms.cpp2
-rw-r--r--src/mame/video/circus.cpp2
-rw-r--r--src/mame/video/circusc.cpp2
-rw-r--r--src/mame/video/citycon.cpp4
-rw-r--r--src/mame/video/cloak.cpp2
-rw-r--r--src/mame/video/clshroad.cpp12
-rw-r--r--src/mame/video/combatsc.cpp12
-rw-r--r--src/mame/video/commando.cpp4
-rw-r--r--src/mame/video/compgolf.cpp4
-rw-r--r--src/mame/video/contra.cpp6
-rw-r--r--src/mame/video/cop01.cpp4
-rw-r--r--src/mame/video/cps1.cpp6
-rw-r--r--src/mame/video/crbaloon.cpp2
-rw-r--r--src/mame/video/crospang.cpp4
-rw-r--r--src/mame/video/crshrace.cpp4
-rw-r--r--src/mame/video/darius.cpp2
-rw-r--r--src/mame/video/darkmist.cpp6
-rw-r--r--src/mame/video/dbz.cpp4
-rw-r--r--src/mame/video/dcon.cpp8
-rw-r--r--src/mame/video/dday.cpp8
-rw-r--r--src/mame/video/ddragon.cpp4
-rw-r--r--src/mame/video/ddragon3.cpp7
-rw-r--r--src/mame/video/ddribble.cpp4
-rw-r--r--src/mame/video/deadang.cpp16
-rw-r--r--src/mame/video/dec8.cpp36
-rw-r--r--src/mame/video/decbac06.cpp24
-rw-r--r--src/mame/video/deckarn.cpp3
-rw-r--r--src/mame/video/deckarn.h8
-rw-r--r--src/mame/video/decmxc06.cpp3
-rw-r--r--src/mame/video/decmxc06.h8
-rw-r--r--src/mame/video/deco16ic.cpp66
-rw-r--r--src/mame/video/deco16ic.h47
-rw-r--r--src/mame/video/decocass.cpp6
-rw-r--r--src/mame/video/decodmd2.cpp4
-rw-r--r--src/mame/video/decodmd3.cpp4
-rw-r--r--src/mame/video/decospr.cpp28
-rw-r--r--src/mame/video/decospr.h4
-rw-r--r--src/mame/video/decrmc3.cpp14
-rw-r--r--src/mame/video/decrmc3.h6
-rw-r--r--src/mame/video/deniam.cpp6
-rw-r--r--src/mame/video/digdug.cpp4
-rw-r--r--src/mame/video/divebomb.cpp2
-rw-r--r--src/mame/video/djboy.cpp2
-rw-r--r--src/mame/video/dkong.cpp4
-rw-r--r--src/mame/video/docastle.cpp2
-rw-r--r--src/mame/video/dogfgt.cpp2
-rw-r--r--src/mame/video/dooyong.cpp7
-rw-r--r--src/mame/video/dooyong.h4
-rw-r--r--src/mame/video/dragrace.cpp2
-rw-r--r--src/mame/video/drgnmst.cpp6
-rw-r--r--src/mame/video/drmicro.cpp4
-rw-r--r--src/mame/video/dynduke.cpp6
-rw-r--r--src/mame/video/edevices.cpp8
-rw-r--r--src/mame/video/equites.cpp8
-rw-r--r--src/mame/video/esd16.cpp8
-rw-r--r--src/mame/video/espial.cpp4
-rw-r--r--src/mame/video/excellent_spr.cpp3
-rw-r--r--src/mame/video/excellent_spr.h8
-rw-r--r--src/mame/video/exedexes.cpp6
-rw-r--r--src/mame/video/exprraid.cpp4
-rw-r--r--src/mame/video/f1gp.cpp8
-rw-r--r--src/mame/video/fastfred.cpp8
-rw-r--r--src/mame/video/fastlane.cpp4
-rw-r--r--src/mame/video/fcombat.cpp2
-rw-r--r--src/mame/video/finalizr.cpp4
-rw-r--r--src/mame/video/firetrap.cpp6
-rw-r--r--src/mame/video/firetrk.cpp12
-rw-r--r--src/mame/video/fitfight.cpp6
-rw-r--r--src/mame/video/flkatck.cpp4
-rw-r--r--src/mame/video/flstory.cpp6
-rw-r--r--src/mame/video/freekick.cpp2
-rw-r--r--src/mame/video/fromanc2.cpp40
-rw-r--r--src/mame/video/fromance.cpp8
-rw-r--r--src/mame/video/funkybee.cpp2
-rw-r--r--src/mame/video/funworld.cpp8
-rw-r--r--src/mame/video/funybubl.cpp2
-rw-r--r--src/mame/video/fuukifg.cpp6
-rw-r--r--src/mame/video/fuukifg.h14
-rw-r--r--src/mame/video/fuukifg2.cpp6
-rw-r--r--src/mame/video/fuukifg3.cpp6
-rw-r--r--src/mame/video/gaelco.cpp12
-rw-r--r--src/mame/video/gaelco2.cpp8
-rw-r--r--src/mame/video/gaiden.cpp18
-rw-r--r--src/mame/video/galaga.cpp528
-rw-r--r--src/mame/video/galaxia.cpp4
-rw-r--r--src/mame/video/galaxian.cpp4
-rw-r--r--src/mame/video/galaxold.cpp14
-rw-r--r--src/mame/video/galivan.cpp8
-rw-r--r--src/mame/video/gaplus.cpp2
-rw-r--r--src/mame/video/gatron.cpp2
-rw-r--r--src/mame/video/gberet.cpp2
-rw-r--r--src/mame/video/gcpinbal.cpp6
-rw-r--r--src/mame/video/ginganin.cpp6
-rw-r--r--src/mame/video/gladiatr.cpp8
-rw-r--r--src/mame/video/glass.cpp4
-rw-r--r--src/mame/video/gng.cpp8
-rw-r--r--src/mame/video/goal92.cpp6
-rw-r--r--src/mame/video/goindol.cpp4
-rw-r--r--src/mame/video/goldstar.cpp46
-rw-r--r--src/mame/video/gomoku.cpp2
-rw-r--r--src/mame/video/gotcha.cpp7
-rw-r--r--src/mame/video/gottlieb.cpp4
-rw-r--r--src/mame/video/gotya.cpp2
-rw-r--r--src/mame/video/gp9001.cpp9
-rw-r--r--src/mame/video/gp9001.h5
-rw-r--r--src/mame/video/grchamp.cpp8
-rw-r--r--src/mame/video/gsword.cpp2
-rw-r--r--src/mame/video/gumbo.cpp4
-rw-r--r--src/mame/video/gundealr.cpp4
-rw-r--r--src/mame/video/gunsmoke.cpp4
-rw-r--r--src/mame/video/gyruss.cpp6
-rw-r--r--src/mame/video/hanaawas.cpp2
-rw-r--r--src/mame/video/hcastle.cpp4
-rw-r--r--src/mame/video/hexion.cpp4
-rw-r--r--src/mame/video/higemaru.cpp2
-rw-r--r--src/mame/video/himesiki.cpp2
-rw-r--r--src/mame/video/hng64.cpp24
-rw-r--r--src/mame/video/holeland.cpp4
-rw-r--r--src/mame/video/homedata.cpp48
-rw-r--r--src/mame/video/homerun.cpp2
-rw-r--r--src/mame/video/hyperspt.cpp4
-rw-r--r--src/mame/video/igs017_igs031.cpp10
-rw-r--r--src/mame/video/igs017_igs031.h19
-rw-r--r--src/mame/video/inufuku.cpp4
-rw-r--r--src/mame/video/iqblock.cpp4
-rw-r--r--src/mame/video/ironhors.cpp4
-rw-r--r--src/mame/video/jack.cpp4
-rw-r--r--src/mame/video/jackal.cpp2
-rw-r--r--src/mame/video/jailbrek.cpp2
-rw-r--r--src/mame/video/k001604.cpp12
-rw-r--r--src/mame/video/k007342.cpp16
-rw-r--r--src/mame/video/k007342.h8
-rw-r--r--src/mame/video/k007420.cpp3
-rw-r--r--src/mame/video/k007420.h8
-rw-r--r--src/mame/video/k037122.cpp13
-rw-r--r--src/mame/video/k051316.cpp21
-rw-r--r--src/mame/video/k051316.h7
-rw-r--r--src/mame/video/k051960.cpp3
-rw-r--r--src/mame/video/k051960.h7
-rw-r--r--src/mame/video/k052109.cpp9
-rw-r--r--src/mame/video/k052109.h7
-rw-r--r--src/mame/video/k053244_k053245.cpp7
-rw-r--r--src/mame/video/k053244_k053245.h9
-rw-r--r--src/mame/video/k053246_k053247_k055673.cpp11
-rw-r--r--src/mame/video/k053246_k053247_k055673.h8
-rw-r--r--src/mame/video/k054156_k054157_k056832.cpp39
-rw-r--r--src/mame/video/k054156_k054157_k056832.h7
-rw-r--r--src/mame/video/kaneko_tmap.cpp7
-rw-r--r--src/mame/video/kaneko_tmap.h5
-rw-r--r--src/mame/video/karnov.cpp8
-rw-r--r--src/mame/video/kchamp.cpp2
-rw-r--r--src/mame/video/kickgoal.cpp12
-rw-r--r--src/mame/video/kingobox.cpp8
-rw-r--r--src/mame/video/kncljoe.cpp2
-rw-r--r--src/mame/video/konamigx.cpp18
-rw-r--r--src/mame/video/kopunch.cpp4
-rw-r--r--src/mame/video/ksayakyu.cpp4
-rw-r--r--src/mame/video/kyugo.cpp4
-rw-r--r--src/mame/video/labyrunr.cpp4
-rw-r--r--src/mame/video/ladybug.cpp4
-rw-r--r--src/mame/video/ladyfrog.cpp2
-rw-r--r--src/mame/video/lasso.cpp8
-rw-r--r--src/mame/video/lastduel.cpp12
-rw-r--r--src/mame/video/legionna.cpp10
-rw-r--r--src/mame/video/leland.cpp4
-rw-r--r--src/mame/video/lemmings.cpp2
-rw-r--r--src/mame/video/liberate.cpp16
-rw-r--r--src/mame/video/lkage.cpp6
-rw-r--r--src/mame/video/lockon.cpp2
-rw-r--r--src/mame/video/lordgun.cpp8
-rw-r--r--src/mame/video/lucky74.cpp4
-rw-r--r--src/mame/video/lvcards.cpp2
-rw-r--r--src/mame/video/lwings.cpp14
-rw-r--r--src/mame/video/m10.cpp7
-rw-r--r--src/mame/video/m107.cpp2
-rw-r--r--src/mame/video/m52.cpp2
-rw-r--r--src/mame/video/m57.cpp2
-rw-r--r--src/mame/video/m58.cpp2
-rw-r--r--src/mame/video/m62.cpp66
-rw-r--r--src/mame/video/m72.cpp14
-rw-r--r--src/mame/video/m90.cpp8
-rw-r--r--src/mame/video/m92.cpp4
-rw-r--r--src/mame/video/macrossp.cpp8
-rw-r--r--src/mame/video/madalien.cpp23
-rw-r--r--src/mame/video/mainsnk.cpp4
-rw-r--r--src/mame/video/mappy.cpp6
-rw-r--r--src/mame/video/marineb.cpp2
-rw-r--r--src/mame/video/mario.cpp2
-rw-r--r--src/mame/video/markham.cpp2
-rw-r--r--src/mame/video/mb60553.cpp2
-rw-r--r--src/mame/video/mcd212.cpp3
-rw-r--r--src/mame/video/mcd212.h11
-rw-r--r--src/mame/video/mcr.cpp58
-rw-r--r--src/mame/video/mcr3.cpp6
-rw-r--r--src/mame/video/mcr68.cpp2
-rw-r--r--src/mame/video/meadows.cpp2
-rw-r--r--src/mame/video/mermaid.cpp4
-rw-r--r--src/mame/video/metlclsh.cpp4
-rw-r--r--src/mame/video/metro.cpp4
-rw-r--r--src/mame/video/microtan.cpp2
-rw-r--r--src/mame/video/mikie.cpp2
-rw-r--r--src/mame/video/mikromik.cpp2
-rw-r--r--src/mame/video/mitchell.cpp2
-rw-r--r--src/mame/video/mjkjidai.cpp2
-rw-r--r--src/mame/video/model3.cpp16
-rw-r--r--src/mame/video/mosaic.cpp4
-rw-r--r--src/mame/video/mrdo.cpp4
-rw-r--r--src/mame/video/mrjong.cpp2
-rw-r--r--src/mame/video/ms1_tmap.cpp32
-rw-r--r--src/mame/video/ms32.cpp10
-rw-r--r--src/mame/video/msisaac.cpp6
-rw-r--r--src/mame/video/mugsmash.cpp4
-rw-r--r--src/mame/video/mustache.cpp2
-rw-r--r--src/mame/video/mystston.cpp4
-rw-r--r--src/mame/video/mystwarr.cpp4
-rw-r--r--src/mame/video/namco_c123tmap.cpp18
-rw-r--r--src/mame/video/namco_c169roz.cpp16
-rw-r--r--src/mame/video/namcona1.cpp10
-rw-r--r--src/mame/video/namcos22.cpp2
-rw-r--r--src/mame/video/namcos2_roz.cpp2
-rw-r--r--src/mame/video/namcos86.cpp10
-rw-r--r--src/mame/video/nemesis.cpp4
-rw-r--r--src/mame/video/nes.cpp2
-rw-r--r--src/mame/video/newbrain.cpp8
-rw-r--r--src/mame/video/news.cpp4
-rw-r--r--src/mame/video/ninjakd2.cpp20
-rw-r--r--src/mame/video/nmk16.cpp28
-rw-r--r--src/mame/video/nmk16spr.cpp6
-rw-r--r--src/mame/video/nmk16spr.h8
-rw-r--r--src/mame/video/nova2001.cpp14
-rw-r--r--src/mame/video/nycaptor.cpp2
-rw-r--r--src/mame/video/ohmygod.cpp2
-rw-r--r--src/mame/video/ojankohs.cpp4
-rw-r--r--src/mame/video/oneshot.cpp6
-rw-r--r--src/mame/video/orbit.cpp2
-rw-r--r--src/mame/video/orca40c.cpp6
-rw-r--r--src/mame/video/pacland.cpp4
-rw-r--r--src/mame/video/pacman.cpp8
-rw-r--r--src/mame/video/pandoras.cpp2
-rw-r--r--src/mame/video/paradise.cpp15
-rw-r--r--src/mame/video/pass.cpp4
-rw-r--r--src/mame/video/pbaction.cpp4
-rw-r--r--src/mame/video/pc080sn.cpp8
-rw-r--r--src/mame/video/pc090oj.cpp3
-rw-r--r--src/mame/video/pc090oj.h10
-rw-r--r--src/mame/video/pc1512.cpp2
-rw-r--r--src/mame/video/pc_t1t.cpp4
-rw-r--r--src/mame/video/pcd.cpp6
-rw-r--r--src/mame/video/pgm.cpp4
-rw-r--r--src/mame/video/pgm2.cpp4
-rw-r--r--src/mame/video/phoenix.cpp4
-rw-r--r--src/mame/video/pingpong.cpp2
-rw-r--r--src/mame/video/pirates.cpp8
-rw-r--r--src/mame/video/pitnrun.cpp4
-rw-r--r--src/mame/video/playch10.cpp4
-rw-r--r--src/mame/video/playmark.cpp38
-rw-r--r--src/mame/video/plygonet.cpp4
-rw-r--r--src/mame/video/pokechmp.cpp2
-rw-r--r--src/mame/video/polepos.cpp4
-rw-r--r--src/mame/video/poolshrk.cpp2
-rw-r--r--src/mame/video/pooyan.cpp2
-rw-r--r--src/mame/video/popeye.cpp2
-rw-r--r--src/mame/video/portrait.cpp4
-rw-r--r--src/mame/video/powerins.cpp4
-rw-r--r--src/mame/video/prehisle.cpp6
-rw-r--r--src/mame/video/psikyo.cpp4
-rw-r--r--src/mame/video/psychic5.cpp8
-rw-r--r--src/mame/video/punchout.cpp20
-rw-r--r--src/mame/video/qix.cpp9
-rw-r--r--src/mame/video/quizdna.cpp6
-rw-r--r--src/mame/video/quizpani.cpp4
-rw-r--r--src/mame/video/raiden.cpp12
-rw-r--r--src/mame/video/raiden2.cpp8
-rw-r--r--src/mame/video/rallyx.cpp16
-rw-r--r--src/mame/video/realbrk.cpp6
-rw-r--r--src/mame/video/redclash.cpp2
-rw-r--r--src/mame/video/renegade.cpp4
-rw-r--r--src/mame/video/retofinv.cpp4
-rw-r--r--src/mame/video/rocnrope.cpp2
-rw-r--r--src/mame/video/rollrace.cpp2
-rw-r--r--src/mame/video/rpunch.cpp4
-rw-r--r--src/mame/video/runaway.cpp4
-rw-r--r--src/mame/video/rungun.cpp4
-rw-r--r--src/mame/video/sauro.cpp6
-rw-r--r--src/mame/video/sbasketb.cpp2
-rw-r--r--src/mame/video/sbugger.cpp4
-rw-r--r--src/mame/video/scotrsht.cpp2
-rw-r--r--src/mame/video/sderby.cpp6
-rw-r--r--src/mame/video/segag80r.cpp8
-rw-r--r--src/mame/video/segaic16.cpp24
-rw-r--r--src/mame/video/segaic16.h2
-rw-r--r--src/mame/video/segaic24.cpp8
-rw-r--r--src/mame/video/segas32.cpp2
-rw-r--r--src/mame/video/seibuspi.cpp8
-rw-r--r--src/mame/video/seicross.cpp2
-rw-r--r--src/mame/video/senjyo.cpp14
-rw-r--r--src/mame/video/seta.cpp8
-rw-r--r--src/mame/video/seta001.cpp3
-rw-r--r--src/mame/video/seta001.h51
-rw-r--r--src/mame/video/sf.cpp6
-rw-r--r--src/mame/video/sgi_gr1.cpp14
-rw-r--r--src/mame/video/shadfrce.cpp6
-rw-r--r--src/mame/video/shangkid.cpp2
-rw-r--r--src/mame/video/shaolins.cpp2
-rw-r--r--src/mame/video/shisen.cpp2
-rw-r--r--src/mame/video/shootout.cpp6
-rw-r--r--src/mame/video/sidearms.cpp6
-rw-r--r--src/mame/video/sidepckt.cpp2
-rw-r--r--src/mame/video/silkroad.cpp6
-rw-r--r--src/mame/video/skydiver.cpp2
-rw-r--r--src/mame/video/skykid.cpp4
-rw-r--r--src/mame/video/slapfght.cpp6
-rw-r--r--src/mame/video/snk.cpp26
-rw-r--r--src/mame/video/snk6502.cpp8
-rw-r--r--src/mame/video/snk68.cpp4
-rw-r--r--src/mame/video/snk68_spr.cpp4
-rw-r--r--src/mame/video/snk68_spr.h9
-rw-r--r--src/mame/video/snookr10.cpp6
-rw-r--r--src/mame/video/solomon.cpp4
-rw-r--r--src/mame/video/sonson.cpp2
-rw-r--r--src/mame/video/spbactn.cpp6
-rw-r--r--src/mame/video/spdodgeb.cpp2
-rw-r--r--src/mame/video/speedbal.cpp4
-rw-r--r--src/mame/video/speedspn.cpp2
-rw-r--r--src/mame/video/splash.cpp4
-rw-r--r--src/mame/video/sprint2.cpp2
-rw-r--r--src/mame/video/sprint4.cpp2
-rw-r--r--src/mame/video/sprint8.cpp36
-rw-r--r--src/mame/video/srumbler.cpp8
-rw-r--r--src/mame/video/sslam.cpp8
-rw-r--r--src/mame/video/ssozumo.cpp13
-rw-r--r--src/mame/video/ssrj.cpp6
-rw-r--r--src/mame/video/ssv.cpp2
-rw-r--r--src/mame/video/st0020.cpp24
-rw-r--r--src/mame/video/stadhero.cpp2
-rw-r--r--src/mame/video/starshp1.cpp2
-rw-r--r--src/mame/video/stfight_dev.cpp10
-rw-r--r--src/mame/video/sub.cpp2
-rw-r--r--src/mame/video/suna8.cpp6
-rw-r--r--src/mame/video/superqix.cpp8
-rw-r--r--src/mame/video/suprloco.cpp2
-rw-r--r--src/mame/video/suprnova.cpp4
-rw-r--r--src/mame/video/suprridr.cpp6
-rw-r--r--src/mame/video/suprslam.cpp4
-rw-r--r--src/mame/video/system1.cpp2
-rw-r--r--src/mame/video/system16.cpp35
-rw-r--r--src/mame/video/tagteam.cpp2
-rw-r--r--src/mame/video/tail2nos.cpp2
-rw-r--r--src/mame/video/taito_f3.cpp31
-rw-r--r--src/mame/video/taito_l.cpp6
-rw-r--r--src/mame/video/taitojc.cpp2
-rw-r--r--src/mame/video/tank8.cpp5
-rw-r--r--src/mame/video/tankbatt.cpp18
-rw-r--r--src/mame/video/tankbust.cpp4
-rw-r--r--src/mame/video/taotaido.cpp2
-rw-r--r--src/mame/video/targeth.cpp4
-rw-r--r--src/mame/video/tatsumi.cpp20
-rw-r--r--src/mame/video/tbowl.cpp6
-rw-r--r--src/mame/video/tc0080vco.cpp6
-rw-r--r--src/mame/video/tc0100scn.cpp15
-rw-r--r--src/mame/video/tc0100scn.h5
-rw-r--r--src/mame/video/tc0180vcu.cpp6
-rw-r--r--src/mame/video/tc0280grd.cpp2
-rw-r--r--src/mame/video/tc0480scp.cpp20
-rw-r--r--src/mame/video/tceptor.cpp6
-rw-r--r--src/mame/video/tecmo.cpp10
-rw-r--r--src/mame/video/tecmo16.cpp18
-rw-r--r--src/mame/video/tecmosys.cpp8
-rw-r--r--src/mame/video/tehkanwc.cpp4
-rw-r--r--src/mame/video/terracre.cpp4
-rw-r--r--src/mame/video/tetrisp2.cpp24
-rw-r--r--src/mame/video/thedeep.cpp2
-rw-r--r--src/mame/video/thepit.cpp4
-rw-r--r--src/mame/video/thoop2.cpp4
-rw-r--r--src/mame/video/tiamc1.cpp6
-rw-r--r--src/mame/video/tigeroad.cpp4
-rw-r--r--src/mame/video/timelimt.cpp4
-rw-r--r--src/mame/video/timeplt.cpp4
-rw-r--r--src/mame/video/tmap038.cpp5
-rw-r--r--src/mame/video/tmap038.h5
-rw-r--r--src/mame/video/tmnt.cpp4
-rw-r--r--src/mame/video/toaplan1.cpp8
-rw-r--r--src/mame/video/toaplan2.cpp2
-rw-r--r--src/mame/video/toki.cpp6
-rw-r--r--src/mame/video/tp84.cpp4
-rw-r--r--src/mame/video/trackfld.cpp2
-rw-r--r--src/mame/video/travrusa.cpp2
-rw-r--r--src/mame/video/triplhnt.cpp2
-rw-r--r--src/mame/video/trucocl.cpp2
-rw-r--r--src/mame/video/tryout.cpp4
-rw-r--r--src/mame/video/tsamurai.cpp6
-rw-r--r--src/mame/video/tumbleb.cpp30
-rw-r--r--src/mame/video/tunhunt.cpp2
-rw-r--r--src/mame/video/turbo.cpp4
-rw-r--r--src/mame/video/twin16.cpp6
-rw-r--r--src/mame/video/twincobr.cpp20
-rw-r--r--src/mame/video/ultratnk.cpp2
-rw-r--r--src/mame/video/unico.cpp6
-rw-r--r--src/mame/video/v1050.cpp2
-rw-r--r--src/mame/video/vastar.cpp6
-rw-r--r--src/mame/video/vball.cpp2
-rw-r--r--src/mame/video/videopin.cpp2
-rw-r--r--src/mame/video/vs920a.cpp2
-rw-r--r--src/mame/video/vsystem_spr.cpp4
-rw-r--r--src/mame/video/vsystem_spr.h2
-rw-r--r--src/mame/video/vsystem_spr2.cpp4
-rw-r--r--src/mame/video/vsystem_spr2.h2
-rw-r--r--src/mame/video/vulgus.cpp4
-rw-r--r--src/mame/video/warpwarp.cpp6
-rw-r--r--src/mame/video/wc90.cpp12
-rw-r--r--src/mame/video/wc90b.cpp6
-rw-r--r--src/mame/video/wecleman.cpp6
-rw-r--r--src/mame/video/welltris.cpp2
-rw-r--r--src/mame/video/wgp.cpp6
-rw-r--r--src/mame/video/williams.cpp2
-rw-r--r--src/mame/video/wrally.cpp4
-rw-r--r--src/mame/video/wswan.cpp10
-rw-r--r--src/mame/video/wswan.h21
-rw-r--r--src/mame/video/wwfsstar.cpp4
-rw-r--r--src/mame/video/x68k.cpp8
-rw-r--r--src/mame/video/xain.cpp6
-rw-r--r--src/mame/video/xevious.cpp4
-rw-r--r--src/mame/video/xorworld.cpp2
-rw-r--r--src/mame/video/xxmissio.cpp4
-rw-r--r--src/mame/video/xyonix.cpp2
-rw-r--r--src/mame/video/ygv608.cpp24
-rw-r--r--src/mame/video/yiear.cpp2
-rw-r--r--src/mame/video/yunsun16.cpp4
-rw-r--r--src/mame/video/yunsung8.cpp4
-rw-r--r--src/mame/video/zac2650.cpp2
-rw-r--r--src/mame/video/zaccaria.cpp2
-rw-r--r--src/mame/video/zaxxon.cpp18
-rw-r--r--src/mame/video/zerozone.cpp2
1752 files changed, 9073 insertions, 9692 deletions
diff --git a/docs/source/initialsetup/compilingmame.rst b/docs/source/initialsetup/compilingmame.rst
index 47d6d9f6da5..49c717372f1 100644
--- a/docs/source/initialsetup/compilingmame.rst
+++ b/docs/source/initialsetup/compilingmame.rst
@@ -8,19 +8,42 @@ Compiling MAME
All Platforms
-------------
-* Whenever you are changing build parameters, (such as switching between a SDL-based build and a native Windows renderer one, or adding tools to the compile list) you need to run a **make REGENIE=1** to allow the settings to be regenerated. Failure to do this will cause you very difficult to troubleshoot problems.
-
-* If you want to add various additional tools to the compile, such as *CHDMAN*, add a **TOOLS=1** to your make statement, like **make REGENIE=1 TOOLS=1**
-
-* You can do driver specific builds by using *SOURCES=<driver>* in your make statement. For instance, building Pac-Man by itself would be **make SOURCES=src/mame/drivers/pacman.cpp REGENIE=1** including the necessary *REGENIE* for rebuilding the settings.
-
-* Speeding up the compilation can be done by using more cores from your CPU. This is done with the **-j** parameter. *Note: the maximum number you should use is the number of cores your CPU has, plus one. No higher than that will speed up the compilation, and may in fact slow it down.* For instance, **make -j5** on a quad-core CPU will provide optimal speed.
-
-* Debugging information can be added to a compile using *SYMBOLS=1* though most users will not want or need to use this.
+* To compile MAME, you need a C++14 compiler and runtime library. We
+ support building with GCC version 7.2 or later and clang version 5 or
+ later. MAME should run with GNU libstdc++ version 5.1 or later.
+
+* Whenever you are changing build parameters, (such as switching between
+ a SDL-based build and a native Windows renderer one, or adding tools
+ to the compile list) you need to run a **make REGENIE=1** to allow the
+ settings to be regenerated. Failure to do this will cause you very
+ difficult to troubleshoot problems.
+
+* If you want to add various additional tools to the compile, such as
+ *CHDMAN*, add a **TOOLS=1** to your make statement, like
+ **make REGENIE=1 TOOLS=1**
+
+* You can do driver specific builds by using *SOURCES=<driver>* in your
+ make statement. For instance, building Pac-Man by itself would be
+ **make SOURCES=src/mame/drivers/pacman.cpp REGENIE=1** including the
+ necessary *REGENIE* for rebuilding the settings.
+
+* Speeding up the compilation can be done by using more cores from your
+ CPU. This is done with the **-j** parameter. *Note: a good number to
+ start with is the total number of CPU cores in your system plus one.
+ An excessive number of concurrent jobs may increase compilation time.
+ The optimal number depends on many factors, including number of CPU
+ cores, available RAM, disk and filesystem performance, and memory
+ bandwidh.* For instance, **make -j5** is a good starting point on a
+ system with a quad-core CPU.
+
+* Debugging information can be added to a compile using *SYMBOLS=1*
+ though most users will not want or need to use this. This increases
+ compile time and disk space used.
Putting all of these together, we get a couple of examples:
-Rebuilding MAME for just the Pac-Man driver, with tools, on a quad-core (e.g. i5 or i7) machine:
+Rebuilding MAME for just the Pac-Man driver, with tools, on a quad-core
+(e.g. i5 or i7) machine:
| **make SOURCES=src/mame/drivers/pacman.cpp TOOLS=1 REGENIE=1 -j5**
|
@@ -421,9 +444,6 @@ Known Issues
Issues with specific compiler versions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-* GCC 5 for Linux reports spurious errors on encountering deprecation warnings.
- Adding **DEPRECATED=0** to your build options works around this by disabling
- deprecation warnings.
* MinGW GCC 7 for Windows i386 produces spurious out-of-bounds access warnings.
Adding **NOWERROR=1** to your build options works around this by not treating
warnings as errors.
@@ -514,9 +534,9 @@ want to build MAME on a Linux distribution that still uses a version of GNU
libstdC++ that predates C++14 support. To use an alternate GCC installation to,
build MAME, set the C and C++ compilers to the full paths to the **gcc** and
**g++** commands, and add the library path to the run-time search path. If you
-installed GCC in /opt/local/gcc63, you might use a command like this:
+installed GCC in /opt/local/gcc72, you might use a command like this:
-**make OVERRIDE_CC=/opt/local/gcc63/bin/gcc OVERRIDE_CXX=/opt/local/gcc63/bin/g++ ARCHOPTS=-Wl,-R,/opt/local/gcc63/lib64**
+**make OVERRIDE_CC=/opt/local/gcc72/bin/gcc OVERRIDE_CXX=/opt/local/gcc72/bin/g++ ARCHOPTS=-Wl,-R,/opt/local/gcc72/lib64**
You can add these options to a prefix makefile if you plan to use this
configuration regularly.
diff --git a/scripts/genie.lua b/scripts/genie.lua
index b29e02f9d90..6aa28173b1d 100644
--- a/scripts/genie.lua
+++ b/scripts/genie.lua
@@ -93,16 +93,10 @@ end
function addprojectflags()
local version = str_to_version(_OPTIONS["gcc_version"])
if _OPTIONS["gcc"]~=nil and string.find(_OPTIONS["gcc"], "gcc") then
- if version >= 50100 then
- buildoptions_cpp {
- "-Wsuggest-override",
- }
- end
- if version >= 60000 then
- buildoptions_cpp {
- "-flifetime-dse=1",
- }
- end
+ buildoptions_cpp {
+ "-Wsuggest-override",
+ "-flifetime-dse=1",
+ }
end
end
diff --git a/src/devices/bus/a1bus/a1cassette.cpp b/src/devices/bus/a1bus/a1cassette.cpp
index 13140382f48..fc470ef7f94 100644
--- a/src/devices/bus/a1bus/a1cassette.cpp
+++ b/src/devices/bus/a1bus/a1cassette.cpp
@@ -72,7 +72,7 @@ a1bus_cassette_device::a1bus_cassette_device(const machine_config &mconfig, devi
void a1bus_cassette_device::device_start()
{
- install_device(0xc000, 0xc0ff, read8_delegate(FUNC(a1bus_cassette_device::cassette_r), this), write8_delegate(FUNC(a1bus_cassette_device::cassette_w), this));
+ install_device(0xc000, 0xc0ff, read8_delegate(*this, FUNC(a1bus_cassette_device::cassette_r)), write8_delegate(*this, FUNC(a1bus_cassette_device::cassette_w)));
install_bank(0xc100, 0xc1ff, "bank_a1cas", &m_rom[0]);
save_item(NAME(m_cassette_output_flipflop));
diff --git a/src/devices/bus/a1bus/a1cffa.cpp b/src/devices/bus/a1bus/a1cffa.cpp
index 105abba1eff..8c68e818531 100644
--- a/src/devices/bus/a1bus/a1cffa.cpp
+++ b/src/devices/bus/a1bus/a1cffa.cpp
@@ -68,7 +68,7 @@ a1bus_cffa_device::a1bus_cffa_device(const machine_config &mconfig, device_type
void a1bus_cffa_device::device_start()
{
- install_device(0xafe0, 0xafff, read8_delegate(FUNC(a1bus_cffa_device::cffa_r), this), write8_delegate(FUNC(a1bus_cffa_device::cffa_w), this));
+ install_device(0xafe0, 0xafff, read8_delegate(*this, FUNC(a1bus_cffa_device::cffa_r)), write8_delegate(*this, FUNC(a1bus_cffa_device::cffa_w)));
install_bank(0x9000, 0xafdf, "bank_cffa1", &m_rom[0]);
save_item(NAME(m_lastdata));
diff --git a/src/devices/bus/a2bus/a2ultraterm.cpp b/src/devices/bus/a2bus/a2ultraterm.cpp
index fd8fb2a895a..7b6caa40624 100644
--- a/src/devices/bus/a2bus/a2ultraterm.cpp
+++ b/src/devices/bus/a2bus/a2ultraterm.cpp
@@ -114,7 +114,7 @@ void a2bus_videx160_device::device_add_mconfig(machine_config &config)
m_crtc->set_screen(ULTRATERM_SCREEN_NAME);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(a2bus_videx160_device::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(a2bus_videx160_device::crtc_update_row));
m_crtc->out_vsync_callback().set(FUNC(a2bus_videx160_device::vsync_changed));
}
diff --git a/src/devices/bus/a2bus/a2videoterm.cpp b/src/devices/bus/a2bus/a2videoterm.cpp
index 64d614bc60c..b0fda659783 100644
--- a/src/devices/bus/a2bus/a2videoterm.cpp
+++ b/src/devices/bus/a2bus/a2videoterm.cpp
@@ -120,7 +120,7 @@ void a2bus_videx80_device::device_add_mconfig(machine_config &config)
m_crtc->set_screen(VIDEOTERM_SCREEN_NAME);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(9);
- m_crtc->set_update_row_callback(FUNC(a2bus_videx80_device::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(a2bus_videx80_device::crtc_update_row));
}
void a2bus_ap16_device::device_add_mconfig(machine_config &config)
diff --git a/src/devices/bus/acorn/atom/discpack.cpp b/src/devices/bus/acorn/atom/discpack.cpp
index fd33ec293a6..dd8d3021301 100644
--- a/src/devices/bus/acorn/atom/discpack.cpp
+++ b/src/devices/bus/acorn/atom/discpack.cpp
@@ -84,7 +84,7 @@ void atom_discpack_device::device_start()
address_space &space = m_bus->memspace();
space.install_device(0x0a00, 0x0a03, *m_fdc, &i8271_device::map);
- space.install_readwrite_handler(0x0a04, 0x0a04, 0, 0x1f8, 0, read8smo_delegate(FUNC(i8271_device::data_r), m_fdc.target()), write8smo_delegate(FUNC(i8271_device::data_w), m_fdc.target()));
+ space.install_readwrite_handler(0x0a04, 0x0a04, 0, 0x1f8, 0, read8smo_delegate(*m_fdc, FUNC(i8271_device::data_r)), write8smo_delegate(*m_fdc, FUNC(i8271_device::data_w)));
space.install_ram(0x2000, 0x23ff);
space.install_ram(0x2400, 0x27ff);
space.install_ram(0x3c00, 0x3fff);
diff --git a/src/devices/bus/acorn/atom/econet.cpp b/src/devices/bus/acorn/atom/econet.cpp
index 5051fd0e8e7..f615313bdad 100644
--- a/src/devices/bus/acorn/atom/econet.cpp
+++ b/src/devices/bus/acorn/atom/econet.cpp
@@ -63,8 +63,8 @@ void atom_econet_device::device_start()
{
address_space &space = m_bus->memspace();
- space.install_readwrite_handler(0xb400, 0xb403, read8sm_delegate(FUNC(mc6854_device::read), m_adlc.target()), write8sm_delegate(FUNC(mc6854_device::write), m_adlc.target()));
- space.install_read_handler(0xb404, 0xb404, read8_delegate(FUNC(atom_econet_device::statid_r), this));
+ space.install_readwrite_handler(0xb400, 0xb403, read8sm_delegate(*m_adlc, FUNC(mc6854_device::read)), write8sm_delegate(*m_adlc, FUNC(mc6854_device::write)));
+ space.install_read_handler(0xb404, 0xb404, read8_delegate(*this, FUNC(atom_econet_device::statid_r)));
}
//**************************************************************************
diff --git a/src/devices/bus/acorn/atom/sid.cpp b/src/devices/bus/acorn/atom/sid.cpp
index 8b5cd738cfe..4b0e1f7ff4d 100644
--- a/src/devices/bus/acorn/atom/sid.cpp
+++ b/src/devices/bus/acorn/atom/sid.cpp
@@ -55,5 +55,5 @@ void atom_sid_device::device_start()
{
address_space &space = m_bus->memspace();
- space.install_readwrite_handler(0xbdc0, 0xbddf, read8sm_delegate(FUNC(mos6581_device::read), m_sid.target()), write8sm_delegate(FUNC(mos6581_device::write), m_sid.target()));
+ space.install_readwrite_handler(0xbdc0, 0xbddf, read8sm_delegate(*m_sid, FUNC(mos6581_device::read)), write8sm_delegate(*m_sid, FUNC(mos6581_device::write)));
}
diff --git a/src/devices/bus/acorn/cms/4080term.cpp b/src/devices/bus/acorn/cms/4080term.cpp
index 629b4915fdd..f5ae26633e5 100644
--- a/src/devices/bus/acorn/cms/4080term.cpp
+++ b/src/devices/bus/acorn/cms/4080term.cpp
@@ -147,9 +147,9 @@ void cms_4080term_device::device_start()
{
address_space &space = m_bus->memspace();
- space.install_readwrite_handler(0xfd20, 0xfd2f, read8sm_delegate(FUNC(ef9345_device::data_r), m_ef9345.target()), write8sm_delegate(FUNC(ef9345_device::data_w), m_ef9345.target()));
+ space.install_readwrite_handler(0xfd20, 0xfd2f, read8sm_delegate(*m_ef9345, FUNC(ef9345_device::data_r)), write8sm_delegate(*m_ef9345, FUNC(ef9345_device::data_w)));
space.install_device(0xfd30, 0xfd3f, *m_via, &via6522_device::map);
- space.install_readwrite_handler(0xfd40, 0xfd4f, read8sm_delegate(FUNC(mos6551_device::read), m_acia.target()), write8sm_delegate(FUNC(mos6551_device::write), m_acia.target()));
+ space.install_readwrite_handler(0xfd40, 0xfd4f, read8sm_delegate(*m_acia, FUNC(mos6551_device::read)), write8sm_delegate(*m_acia, FUNC(mos6551_device::write)));
uint8_t *FNT = memregion("ef9345")->base();
uint16_t dest = 0x2000;
diff --git a/src/devices/bus/acorn/cms/fdc.cpp b/src/devices/bus/acorn/cms/fdc.cpp
index 833fa2b09a4..1d2c81dabf5 100644
--- a/src/devices/bus/acorn/cms/fdc.cpp
+++ b/src/devices/bus/acorn/cms/fdc.cpp
@@ -75,8 +75,8 @@ void cms_fdc_device::device_start()
{
address_space &space = m_bus->memspace();
- space.install_readwrite_handler(0xfc50, 0xfc5f, read8_delegate(FUNC(cms_fdc_device::wd1770_state_r), this), write8_delegate(FUNC(cms_fdc_device::wd1770_control_w), this));
- space.install_readwrite_handler(0xfc40, 0xfc4f, read8sm_delegate(FUNC(wd1770_device::read), m_fdc.target()), write8sm_delegate(FUNC(wd1770_device::write), m_fdc.target()));
+ space.install_readwrite_handler(0xfc50, 0xfc5f, read8_delegate(*this, FUNC(cms_fdc_device::wd1770_state_r)), write8_delegate(*this, FUNC(cms_fdc_device::wd1770_control_w)));
+ space.install_readwrite_handler(0xfc40, 0xfc4f, read8sm_delegate(*m_fdc, FUNC(wd1770_device::read)), write8sm_delegate(*m_fdc, FUNC(wd1770_device::write)));
}
diff --git a/src/devices/bus/acorn/cms/hires.cpp b/src/devices/bus/acorn/cms/hires.cpp
index 9e6e169737b..f0c23ef39b8 100644
--- a/src/devices/bus/acorn/cms/hires.cpp
+++ b/src/devices/bus/acorn/cms/hires.cpp
@@ -71,8 +71,8 @@ void cms_hires_device::device_start()
{
address_space &space = m_bus->memspace();
- space.install_readwrite_handler(0xfc10, 0xfc1f, read8sm_delegate(FUNC(ef9365_device::data_r), m_gdp.target()), write8sm_delegate(FUNC(ef9365_device::data_w), m_gdp.target()));
- space.install_write_handler(0xfc20, 0xfc2f, write8_delegate(FUNC(cms_hires_device::colour_reg_w), this));
+ space.install_readwrite_handler(0xfc10, 0xfc1f, read8sm_delegate(*m_gdp, FUNC(ef9365_device::data_r)), write8sm_delegate(*m_gdp, FUNC(ef9365_device::data_w)));
+ space.install_write_handler(0xfc20, 0xfc2f, write8_delegate(*this, FUNC(cms_hires_device::colour_reg_w)));
save_item(NAME(m_flash_state));
}
diff --git a/src/devices/bus/acorn/system/8k.cpp b/src/devices/bus/acorn/system/8k.cpp
index b8635920aab..97939b7362f 100644
--- a/src/devices/bus/acorn/system/8k.cpp
+++ b/src/devices/bus/acorn/system/8k.cpp
@@ -70,8 +70,8 @@ ioport_constructor acorn_8k_device::device_input_ports() const
void acorn_8k_device::device_add_mconfig(machine_config &config)
{
/* rom sockets */
- GENERIC_SOCKET(config, "rom0", generic_plain_slot, "acrnsys_rom", "bin,rom").set_device_load(FUNC(acorn_8k_device::rom0_load), this); // IC17
- GENERIC_SOCKET(config, "rom1", generic_plain_slot, "acrnsys_rom", "bin,rom").set_device_load(FUNC(acorn_8k_device::rom1_load), this); // IC18
+ GENERIC_SOCKET(config, "rom0", generic_plain_slot, "acrnsys_rom", "bin,rom").set_device_load(FUNC(acorn_8k_device::rom0_load)); // IC17
+ GENERIC_SOCKET(config, "rom1", generic_plain_slot, "acrnsys_rom", "bin,rom").set_device_load(FUNC(acorn_8k_device::rom1_load)); // IC18
}
diff --git a/src/devices/bus/acorn/system/econet.cpp b/src/devices/bus/acorn/system/econet.cpp
index 261fb4261a1..f617d0266ae 100644
--- a/src/devices/bus/acorn/system/econet.cpp
+++ b/src/devices/bus/acorn/system/econet.cpp
@@ -70,8 +70,8 @@ void acorn_econet_device::device_reset()
{
address_space &space = m_bus->memspace();
- space.install_readwrite_handler(0x1940, 0x1943, read8sm_delegate(FUNC(mc6854_device::read), m_adlc.target()), write8sm_delegate(FUNC(mc6854_device::write), m_adlc.target()));
- space.install_read_handler(0x1944, 0x1944, read8_delegate(FUNC(acorn_econet_device::statid_r), this));
+ space.install_readwrite_handler(0x1940, 0x1943, read8sm_delegate(*m_adlc, FUNC(mc6854_device::read)), write8sm_delegate(*m_adlc, FUNC(mc6854_device::write)));
+ space.install_read_handler(0x1944, 0x1944, read8_delegate(*this, FUNC(acorn_econet_device::statid_r)));
}
//**************************************************************************
diff --git a/src/devices/bus/acorn/system/fdc.cpp b/src/devices/bus/acorn/system/fdc.cpp
index 179b914d3cf..185a10da7d7 100644
--- a/src/devices/bus/acorn/system/fdc.cpp
+++ b/src/devices/bus/acorn/system/fdc.cpp
@@ -85,7 +85,7 @@ void acorn_fdc_device::device_reset()
address_space &space = m_bus->memspace();
space.install_device(0x0a00, 0x0a03, *m_fdc, &i8271_device::map);
- space.install_readwrite_handler(0x0a04, 0x0a04, 0, 0x1f8, 0, read8smo_delegate(FUNC(i8271_device::data_r), m_fdc.target()), write8smo_delegate(FUNC(i8271_device::data_w), m_fdc.target()));
+ space.install_readwrite_handler(0x0a04, 0x0a04, 0, 0x1f8, 0, read8smo_delegate(*m_fdc, FUNC(i8271_device::data_r)), write8smo_delegate(*m_fdc, FUNC(i8271_device::data_w)));
}
diff --git a/src/devices/bus/acorn/system/vdu40.cpp b/src/devices/bus/acorn/system/vdu40.cpp
index 916d7309dc3..dcee8cd9b53 100644
--- a/src/devices/bus/acorn/system/vdu40.cpp
+++ b/src/devices/bus/acorn/system/vdu40.cpp
@@ -38,7 +38,7 @@ void acorn_vdu40_device::device_add_mconfig(machine_config &config)
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(12);
m_crtc->out_vsync_callback().set(FUNC(acorn_vdu40_device::vsync_changed));
- m_crtc->set_update_row_callback(FUNC(acorn_vdu40_device::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(acorn_vdu40_device::crtc_update_row));
SAA5050(config, m_trom, 12_MHz_XTAL / 2);
m_trom->set_screen_size(40, 25, 40);
@@ -82,8 +82,8 @@ void acorn_vdu40_device::device_reset()
address_space &space = m_bus->memspace();
space.install_ram(0x0400, 0x07ff, m_videoram.get());
- space.install_readwrite_handler(0x0800, 0x0800, read8smo_delegate(FUNC(mc6845_device::status_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::address_w), m_crtc.target()));
- space.install_readwrite_handler(0x0801, 0x0801, read8smo_delegate(FUNC(mc6845_device::register_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::register_w), m_crtc.target()));
+ space.install_readwrite_handler(0x0800, 0x0800, read8smo_delegate(*m_crtc, FUNC(mc6845_device::status_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::address_w)));
+ space.install_readwrite_handler(0x0801, 0x0801, read8smo_delegate(*m_crtc, FUNC(mc6845_device::register_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::register_w)));
}
diff --git a/src/devices/bus/acorn/system/vdu80.cpp b/src/devices/bus/acorn/system/vdu80.cpp
index 702041c3cf1..5cf995d8d3c 100644
--- a/src/devices/bus/acorn/system/vdu80.cpp
+++ b/src/devices/bus/acorn/system/vdu80.cpp
@@ -101,7 +101,7 @@ void acorn_vdu80_device::device_add_mconfig(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(6);
- m_crtc->set_update_row_callback(FUNC(acorn_vdu80_device::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(acorn_vdu80_device::crtc_update_row));
}
@@ -152,15 +152,15 @@ void acorn_vdu80_device::device_reset()
{
space.install_ram(0xf000, 0x0f7ff, m_videoram.get());
- space.install_readwrite_handler(0xe840, 0xe840, 0, 0x3f, 0, read8smo_delegate(FUNC(mc6845_device::status_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::address_w), m_crtc.target()));
- space.install_readwrite_handler(0xe841, 0xe841, 0, 0x3e, 0, read8smo_delegate(FUNC(mc6845_device::register_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::register_w), m_crtc.target()));
+ space.install_readwrite_handler(0xe840, 0xe840, 0, 0x3f, 0, read8smo_delegate(*m_crtc, FUNC(mc6845_device::status_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::address_w)));
+ space.install_readwrite_handler(0xe841, 0xe841, 0, 0x3e, 0, read8smo_delegate(*m_crtc, FUNC(mc6845_device::register_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::register_w)));
}
else
{
space.install_ram(0x1000, 0x017ff, m_videoram.get());
- space.install_readwrite_handler(0x1840, 0x1840, 0, 0x3f, 0, read8smo_delegate(FUNC(mc6845_device::status_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::address_w), m_crtc.target()));
- space.install_readwrite_handler(0x1841, 0x1841, 0, 0x3e, 0, read8smo_delegate(FUNC(mc6845_device::register_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::register_w), m_crtc.target()));
+ space.install_readwrite_handler(0x1840, 0x1840, 0, 0x3f, 0, read8smo_delegate(*m_crtc, FUNC(mc6845_device::status_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::address_w)));
+ space.install_readwrite_handler(0x1841, 0x1841, 0, 0x3e, 0, read8smo_delegate(*m_crtc, FUNC(mc6845_device::register_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::register_w)));
}
}
diff --git a/src/devices/bus/acorn/system/vib.cpp b/src/devices/bus/acorn/system/vib.cpp
index a204cbb038c..e4ca10e6146 100644
--- a/src/devices/bus/acorn/system/vib.cpp
+++ b/src/devices/bus/acorn/system/vib.cpp
@@ -113,8 +113,8 @@ void acorn_vib_device::device_reset()
space.install_device(0x0c00, 0x0c0f, *m_via6522, &via6522_device::map);
space.install_device(0x0c10, 0x0c1f, *m_via6522, &via6522_device::map);
- space.install_readwrite_handler(0x0c20, 0x0c21, 0, 0x1e, 0, read8sm_delegate(FUNC(acia6850_device::read), m_acia.target()), write8sm_delegate(FUNC(acia6850_device::write), m_acia.target()));
- space.install_readwrite_handler(0x0c40, 0x0c43, 0, 0x1c, 0, read8sm_delegate(FUNC(i8255_device::read), m_ppi8255.target()), write8sm_delegate(FUNC(i8255_device::write), m_ppi8255.target()));
+ space.install_readwrite_handler(0x0c20, 0x0c21, 0, 0x1e, 0, read8sm_delegate(*m_acia, FUNC(acia6850_device::read)), write8sm_delegate(*m_acia, FUNC(acia6850_device::write)));
+ space.install_readwrite_handler(0x0c40, 0x0c43, 0, 0x1c, 0, read8sm_delegate(*m_ppi8255, FUNC(i8255_device::read)), write8sm_delegate(*m_ppi8255, FUNC(i8255_device::write)));
m_mc14411->timer_disable_all();
m_mc14411->timer_enable(mc14411_device::timer_id(m_txc->read()), true);
diff --git a/src/devices/bus/amiga/zorro/a2052.cpp b/src/devices/bus/amiga/zorro/a2052.cpp
index 515c568c019..4aa54e52bbc 100644
--- a/src/devices/bus/amiga/zorro/a2052.cpp
+++ b/src/devices/bus/amiga/zorro/a2052.cpp
@@ -129,7 +129,7 @@ WRITE_LINE_MEMBER( a2052_device::cfgin_w )
// install autoconfig handler
m_slot->space().install_readwrite_handler(0xe80000, 0xe8007f,
- read16_delegate(FUNC(amiga_autoconfig::autoconfig_read), static_cast<amiga_autoconfig *>(this)),
- write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast<amiga_autoconfig *>(this)), 0xffff);
+ read16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_read)),
+ write16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_write)), 0xffff);
}
}
diff --git a/src/devices/bus/amiga/zorro/a2058.cpp b/src/devices/bus/amiga/zorro/a2058.cpp
index e8d6e8c28fb..d0ecee24526 100644
--- a/src/devices/bus/amiga/zorro/a2058.cpp
+++ b/src/devices/bus/amiga/zorro/a2058.cpp
@@ -141,7 +141,7 @@ WRITE_LINE_MEMBER( a2058_device::cfgin_w )
// install autoconfig handler
m_slot->space().install_readwrite_handler(0xe80000, 0xe8007f,
- read16_delegate(FUNC(amiga_autoconfig::autoconfig_read), static_cast<amiga_autoconfig *>(this)),
- write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast<amiga_autoconfig *>(this)), 0xffff);
+ read16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_read)),
+ write16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_write)), 0xffff);
}
}
diff --git a/src/devices/bus/amiga/zorro/a2065.cpp b/src/devices/bus/amiga/zorro/a2065.cpp
index b1b747594cc..392601e1421 100644
--- a/src/devices/bus/amiga/zorro/a2065.cpp
+++ b/src/devices/bus/amiga/zorro/a2065.cpp
@@ -85,18 +85,18 @@ void a2065_device::autoconfig_base_address(offs_t address)
// install autoconfig handler to new location
m_slot->space().install_readwrite_handler(address, address + 0x7f,
- read16_delegate(FUNC(amiga_autoconfig::autoconfig_read), static_cast<amiga_autoconfig *>(this)),
- write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast<amiga_autoconfig *>(this)), 0xffff);
+ read16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_read)),
+ write16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_write)), 0xffff);
// install access to lance registers
m_slot->space().install_readwrite_handler(address + 0x4000, address + 0x4003,
- read16_delegate(FUNC(am7990_device::regs_r), &(*m_lance)),
- write16_delegate(FUNC(am7990_device::regs_w), &(*m_lance)), 0xffff);
+ read16_delegate(*m_lance, FUNC(am7990_device::regs_r)),
+ write16_delegate(*m_lance, FUNC(am7990_device::regs_w)), 0xffff);
// install access to onboard ram (32k)
m_slot->space().install_readwrite_handler(address + 0x8000, address + 0x8000 + 0x7fff,
- read16_delegate(FUNC(a2065_device::host_ram_r), this),
- write16_delegate(FUNC(a2065_device::host_ram_w), this), 0xffff);
+ read16_delegate(*this, FUNC(a2065_device::host_ram_r)),
+ write16_delegate(*this, FUNC(a2065_device::host_ram_w)), 0xffff);
// we're done
m_slot->cfgout_w(0);
@@ -124,8 +124,8 @@ WRITE_LINE_MEMBER( a2065_device::cfgin_w )
// install autoconfig handler
m_slot->space().install_readwrite_handler(0xe80000, 0xe8007f,
- read16_delegate(FUNC(amiga_autoconfig::autoconfig_read), static_cast<amiga_autoconfig *>(this)),
- write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast<amiga_autoconfig *>(this)), 0xffff);
+ read16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_read)),
+ write16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_write)), 0xffff);
}
}
diff --git a/src/devices/bus/amiga/zorro/a2232.cpp b/src/devices/bus/amiga/zorro/a2232.cpp
index 24020d7a25d..8afa7e245f3 100644
--- a/src/devices/bus/amiga/zorro/a2232.cpp
+++ b/src/devices/bus/amiga/zorro/a2232.cpp
@@ -191,24 +191,24 @@ void a2232_device::autoconfig_base_address(offs_t address)
m_slot->space().unmap_readwrite(0xe80000, 0xe8007f);
m_slot->space().install_readwrite_handler(address, address + 0x3fff,
- read16_delegate(FUNC(a2232_device::shared_ram_r), this),
- write16_delegate(FUNC(a2232_device::shared_ram_w), this), 0xffff);
+ read16_delegate(*this, FUNC(a2232_device::shared_ram_r)),
+ write16_delegate(*this, FUNC(a2232_device::shared_ram_w)), 0xffff);
m_slot->space().install_readwrite_handler(address + 0x4000, address + 0x4001,
- read16_delegate(FUNC(a2232_device::irq_ack_r), this),
- write16_delegate(FUNC(a2232_device::irq_ack_w), this), 0xffff);
+ read16_delegate(*this, FUNC(a2232_device::irq_ack_r)),
+ write16_delegate(*this, FUNC(a2232_device::irq_ack_w)), 0xffff);
m_slot->space().install_readwrite_handler(address + 0x8000, address + 0x8001,
- read16_delegate(FUNC(a2232_device::reset_low_r), this),
- write16_delegate(FUNC(a2232_device::reset_low_w), this), 0xffff);
+ read16_delegate(*this, FUNC(a2232_device::reset_low_r)),
+ write16_delegate(*this, FUNC(a2232_device::reset_low_w)), 0xffff);
m_slot->space().install_readwrite_handler(address + 0xa000, address + 0xa001,
- read16_delegate(FUNC(a2232_device::irq_r), this),
- write16_delegate(FUNC(a2232_device::irq_w), this), 0xffff);
+ read16_delegate(*this, FUNC(a2232_device::irq_r)),
+ write16_delegate(*this, FUNC(a2232_device::irq_w)), 0xffff);
m_slot->space().install_readwrite_handler(address + 0xc000, address + 0xc001,
- read16_delegate(FUNC(a2232_device::reset_high_r), this),
- write16_delegate(FUNC(a2232_device::reset_high_w), this), 0xffff);
+ read16_delegate(*this, FUNC(a2232_device::reset_high_r)),
+ write16_delegate(*this, FUNC(a2232_device::reset_high_w)), 0xffff);
// we're done
m_slot->cfgout_w(0);
@@ -237,8 +237,8 @@ WRITE_LINE_MEMBER( a2232_device::cfgin_w )
// install autoconfig handler
m_slot->space().install_readwrite_handler(0xe80000, 0xe8007f,
- read16_delegate(FUNC(amiga_autoconfig::autoconfig_read), static_cast<amiga_autoconfig *>(this)),
- write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast<amiga_autoconfig *>(this)), 0xffff);
+ read16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_read)),
+ write16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_write)), 0xffff);
}
}
diff --git a/src/devices/bus/amiga/zorro/buddha.cpp b/src/devices/bus/amiga/zorro/buddha.cpp
index 376e2824660..ddb3ba3344c 100644
--- a/src/devices/bus/amiga/zorro/buddha.cpp
+++ b/src/devices/bus/amiga/zorro/buddha.cpp
@@ -150,8 +150,8 @@ void buddha_device::autoconfig_base_address(offs_t address)
// install autoconfig handler to new location
m_slot->space().install_readwrite_handler(address, address + 0x7f,
- read16_delegate(FUNC(amiga_autoconfig::autoconfig_read), static_cast<amiga_autoconfig *>(this)),
- write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast<amiga_autoconfig *>(this)), 0xffff);
+ read16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_read)),
+ write16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_write)), 0xffff);
// install access to the rom space
m_slot->space().install_rom(address + 0x1000, address + 0xffff, memregion("bootrom")->base() + 0x1000);
@@ -182,8 +182,8 @@ WRITE_LINE_MEMBER( buddha_device::cfgin_w )
// install autoconfig handler
m_slot->space().install_readwrite_handler(0xe80000, 0xe8007f,
- read16_delegate(FUNC(amiga_autoconfig::autoconfig_read), static_cast<amiga_autoconfig *>(this)),
- write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast<amiga_autoconfig *>(this)), 0xffff);
+ read16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_read)),
+ write16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_write)), 0xffff);
}
}
diff --git a/src/devices/bus/bbc/exp/mertec.cpp b/src/devices/bus/bbc/exp/mertec.cpp
index ab9dc3c2f6e..11b3c9dccb9 100644
--- a/src/devices/bus/bbc/exp/mertec.cpp
+++ b/src/devices/bus/bbc/exp/mertec.cpp
@@ -53,8 +53,8 @@ void bbc_mertec_device::device_add_mconfig(machine_config &config)
/* adc */
UPD7002(config, m_upd7002, DERIVED_CLOCK(1, 8));
- m_upd7002->set_get_analogue_callback(FUNC(bbc_mertec_device::get_analogue_input), this);
- m_upd7002->set_eoc_callback(FUNC(bbc_mertec_device::upd7002_eoc), this);
+ m_upd7002->set_get_analogue_callback(FUNC(bbc_mertec_device::get_analogue_input));
+ m_upd7002->set_eoc_callback(FUNC(bbc_mertec_device::upd7002_eoc));
/* analogue port */
BBC_ANALOGUE_SLOT(config, m_analog, bbc_analogue_devices, nullptr);
diff --git a/src/devices/bus/bbc/tube/tube_80286.cpp b/src/devices/bus/bbc/tube/tube_80286.cpp
index e8ff167d0fb..de26a61ab48 100644
--- a/src/devices/bus/bbc/tube/tube_80286.cpp
+++ b/src/devices/bus/bbc/tube/tube_80286.cpp
@@ -62,7 +62,7 @@ void bbc_tube_80286_device::device_add_mconfig(machine_config &config)
I80286(config, m_i80286, 12_MHz_XTAL / 2);
m_i80286->set_addrmap(AS_PROGRAM, &bbc_tube_80286_device::tube_80286_mem);
m_i80286->set_addrmap(AS_IO, &bbc_tube_80286_device::tube_80286_io);
- m_i80286->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(bbc_tube_80286_device::irq_callback), this));
+ m_i80286->set_irq_acknowledge_callback(FUNC(bbc_tube_80286_device::irq_callback));
TUBE(config, m_ula);
m_ula->pnmi_handler().set_inputline(m_i80286, INPUT_LINE_NMI);
diff --git a/src/devices/bus/bbc/tube/tube_z80.cpp b/src/devices/bus/bbc/tube/tube_z80.cpp
index 06e6931c7a3..8704a1ee771 100644
--- a/src/devices/bus/bbc/tube/tube_z80.cpp
+++ b/src/devices/bus/bbc/tube/tube_z80.cpp
@@ -67,7 +67,7 @@ void bbc_tube_z80_device::device_add_mconfig(machine_config &config)
m_z80->set_addrmap(AS_PROGRAM, &bbc_tube_z80_device::tube_z80_mem);
m_z80->set_addrmap(AS_OPCODES, &bbc_tube_z80_device::tube_z80_fetch);
m_z80->set_addrmap(AS_IO, &bbc_tube_z80_device::tube_z80_io);
- m_z80->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(bbc_tube_z80_device::irq_callback), this));
+ m_z80->set_irq_acknowledge_callback(FUNC(bbc_tube_z80_device::irq_callback));
TUBE(config, m_ula);
m_ula->hirq_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_tube_slot_device::irq_w));
diff --git a/src/devices/bus/bml3/bml3kanji.cpp b/src/devices/bus/bml3/bml3kanji.cpp
index 375dcd7becf..ff1b3a9fae7 100644
--- a/src/devices/bus/bml3/bml3kanji.cpp
+++ b/src/devices/bus/bml3/bml3kanji.cpp
@@ -79,7 +79,7 @@ void bml3bus_kanji_device::device_start()
// install into memory
address_space &space_prg = m_bml3bus->space();
- space_prg.install_readwrite_handler(0xff75, 0xff76, read8_delegate( FUNC(bml3bus_kanji_device::bml3_kanji_r), this), write8_delegate(FUNC(bml3bus_kanji_device::bml3_kanji_w), this) );
+ space_prg.install_readwrite_handler(0xff75, 0xff76, read8_delegate(*this, FUNC(bml3bus_kanji_device::bml3_kanji_r)), write8_delegate(*this, FUNC(bml3bus_kanji_device::bml3_kanji_w)));
}
void bml3bus_kanji_device::device_reset()
diff --git a/src/devices/bus/bml3/bml3mp1802.cpp b/src/devices/bus/bml3/bml3mp1802.cpp
index 18fd6702871..76c96a43040 100644
--- a/src/devices/bus/bml3/bml3mp1802.cpp
+++ b/src/devices/bus/bml3/bml3mp1802.cpp
@@ -132,8 +132,8 @@ void bml3bus_mp1802_device::device_start()
// install into memory
address_space &space_prg = m_bml3bus->space();
- space_prg.install_readwrite_handler(0xff00, 0xff03, read8sm_delegate(FUNC(mb8866_device::read), m_fdc.target()), write8sm_delegate(FUNC(mb8866_device::write), m_fdc.target()));
- space_prg.install_readwrite_handler(0xff04, 0xff04, read8_delegate(FUNC(bml3bus_mp1802_device::bml3_mp1802_r), this), write8_delegate(FUNC(bml3bus_mp1802_device::bml3_mp1802_w), this));
+ space_prg.install_readwrite_handler(0xff00, 0xff03, read8sm_delegate(*m_fdc, FUNC(mb8866_device::read)), write8sm_delegate(*m_fdc, FUNC(mb8866_device::write)));
+ space_prg.install_readwrite_handler(0xff04, 0xff04, read8_delegate(*this, FUNC(bml3bus_mp1802_device::bml3_mp1802_r)), write8_delegate(*this, FUNC(bml3bus_mp1802_device::bml3_mp1802_w)));
// overwriting the main ROM (rather than using e.g. install_rom) should mean that bank switches for RAM expansion still work...
uint8_t *mainrom = device().machine().root_device().memregion("maincpu")->base();
memcpy(mainrom + 0xf800, m_rom + 0xf800, 0x800);
diff --git a/src/devices/bus/bml3/bml3mp1805.cpp b/src/devices/bus/bml3/bml3mp1805.cpp
index 4ac4dc66df6..1b3bfb1d6b1 100644
--- a/src/devices/bus/bml3/bml3mp1805.cpp
+++ b/src/devices/bus/bml3/bml3mp1805.cpp
@@ -156,8 +156,8 @@ void bml3bus_mp1805_device::device_start()
// install into memory
address_space &space_prg = m_bml3bus->space();
- space_prg.install_readwrite_handler(0xff18, 0xff1f, read8_delegate( FUNC(mc6843_device::read), (mc6843_device*)m_mc6843), write8_delegate(FUNC(mc6843_device::write), (mc6843_device*)m_mc6843) );
- space_prg.install_readwrite_handler(0xff20, 0xff20, read8_delegate( FUNC(bml3bus_mp1805_device::bml3_mp1805_r), this), write8_delegate(FUNC(bml3bus_mp1805_device::bml3_mp1805_w), this) );
+ space_prg.install_readwrite_handler(0xff18, 0xff1f, read8_delegate(*m_mc6843, FUNC(mc6843_device::read)), write8_delegate(*m_mc6843, FUNC(mc6843_device::write)));
+ space_prg.install_readwrite_handler(0xff20, 0xff20, read8_delegate(*this, FUNC(bml3bus_mp1805_device::bml3_mp1805_r)), write8_delegate(*this, FUNC(bml3bus_mp1805_device::bml3_mp1805_w)));
// overwriting the main ROM (rather than using e.g. install_rom) should mean that bank switches for RAM expansion still work...
uint8_t *mainrom = device().machine().root_device().memregion("maincpu")->base();
memcpy(mainrom + 0xf800, m_rom + 0xf800, 0x800);
diff --git a/src/devices/bus/c64/xl80.cpp b/src/devices/bus/c64/xl80.cpp
index 19a2f768a2c..8f0f35b523f 100644
--- a/src/devices/bus/c64/xl80.cpp
+++ b/src/devices/bus/c64/xl80.cpp
@@ -138,7 +138,7 @@ void c64_xl80_device::device_add_mconfig(machine_config &config)
m_crtc->set_screen(MC6845_SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(c64_xl80_device::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(c64_xl80_device::crtc_update_row));
}
diff --git a/src/devices/bus/cbus/pc9801_118.cpp b/src/devices/bus/cbus/pc9801_118.cpp
index a9271ecb0bf..2a2ec411a18 100644
--- a/src/devices/bus/cbus/pc9801_118.cpp
+++ b/src/devices/bus/cbus/pc9801_118.cpp
@@ -114,7 +114,7 @@ void pc9801_118_device::device_validity_check(validity_checker &valid) const
void pc9801_118_device::device_start()
{
- m_bus->install_io(0xa460, 0xa463, read8_delegate(FUNC(pc9801_118_device::id_r), this), write8_delegate(FUNC(pc9801_118_device::ext_w), this) );
+ m_bus->install_io(0xa460, 0xa463, read8_delegate(*this, FUNC(pc9801_118_device::id_r)), write8_delegate(*this, FUNC(pc9801_118_device::ext_w)));
save_item(NAME(m_ext_reg));
}
@@ -128,7 +128,7 @@ void pc9801_118_device::device_reset()
{
uint16_t port_base = (ioport("OPN3_DSW")->read() & 1) << 8;
m_bus->io_space().unmap_readwrite(0x0088, 0x008b, 0x100);
- m_bus->install_io(port_base + 0x0088, port_base + 0x008f, read8_delegate(FUNC(pc9801_118_device::opn3_r), this), write8_delegate(FUNC(pc9801_118_device::opn3_w), this) );
+ m_bus->install_io(port_base + 0x0088, port_base + 0x008f, read8_delegate(*this, FUNC(pc9801_118_device::opn3_r)), write8_delegate(*this, FUNC(pc9801_118_device::opn3_w)));
m_ext_reg = 1; // TODO: enabled or disabled?
}
diff --git a/src/devices/bus/cbus/pc9801_26.cpp b/src/devices/bus/cbus/pc9801_26.cpp
index 603ea4a80b3..3d70d603665 100644
--- a/src/devices/bus/cbus/pc9801_26.cpp
+++ b/src/devices/bus/cbus/pc9801_26.cpp
@@ -133,7 +133,7 @@ void pc9801_26_device::device_reset()
uint16_t port_base = (ioport("OPN_DSW")->read() & 1) << 8;
m_bus->io_space().unmap_readwrite(0x0088, 0x008b, 0x100);
- m_bus->install_io(port_base + 0x0088, port_base + 0x008b, read8_delegate(FUNC(pc9801_26_device::opn_r), this), write8_delegate(FUNC(pc9801_26_device::opn_w), this) );
+ m_bus->install_io(port_base + 0x0088, port_base + 0x008b, read8_delegate(*this, FUNC(pc9801_26_device::opn_r)), write8_delegate(*this, FUNC(pc9801_26_device::opn_w)));
}
@@ -150,7 +150,7 @@ READ8_MEMBER(pc9801_26_device::opn_r)
}
else // odd
{
- printf("Read to undefined port [%02x]\n",offset+0x188);
+ logerror("Read to undefined port [%02x]\n", offset+0x188);
return 0xff;
}
}
@@ -161,5 +161,5 @@ WRITE8_MEMBER(pc9801_26_device::opn_w)
if((offset & 5) == 0)
m_opn->write(offset >> 1, data);
else // odd
- printf("PC9801-26: Write to undefined port [%02x] %02x\n",offset+0x188,data);
+ logerror("PC9801-26: Write to undefined port [%02x] %02x\n", offset+0x188, data);
}
diff --git a/src/devices/bus/cbus/pc9801_86.cpp b/src/devices/bus/cbus/pc9801_86.cpp
index d9d6150a9fa..73f95aafc24 100644
--- a/src/devices/bus/cbus/pc9801_86.cpp
+++ b/src/devices/bus/cbus/pc9801_86.cpp
@@ -160,10 +160,10 @@ void pc9801_86_device::device_validity_check(validity_checker &valid) const
void pc9801_86_device::device_start()
{
m_bus->program_space().install_rom(0xcc000,0xcffff,memregion(this->subtag("sound_bios").c_str())->base());
- m_bus->install_io(0xa460, 0xa463, read8_delegate(FUNC(pc9801_86_device::id_r), this), write8_delegate(FUNC(pc9801_86_device::mask_w), this));
- m_bus->install_io(0xa464, 0xa46f, read8_delegate(FUNC(pc9801_86_device::pcm_r), this), write8_delegate(FUNC(pc9801_86_device::pcm_w), this));
- m_bus->install_io(0xa66c, 0xa66f, read8_delegate([this](address_space &s, offs_t o, u8 mm){ return o == 2 ? m_pcm_mute : 0xff; }, "pc9801_86_mute_r"),
- write8_delegate([this](address_space &s, offs_t o, u8 d, u8 mm){ if(o == 2) m_pcm_mute = d; }, "pc9801_86_mute_w"));
+ m_bus->install_io(0xa460, 0xa463, read8_delegate(*this, FUNC(pc9801_86_device::id_r)), write8_delegate(*this, FUNC(pc9801_86_device::mask_w)));
+ m_bus->install_io(0xa464, 0xa46f, read8_delegate(*this, FUNC(pc9801_86_device::pcm_r)), write8_delegate(*this, FUNC(pc9801_86_device::pcm_w)));
+ m_bus->install_io(0xa66c, 0xa66f, read8_delegate(*this, [this](address_space &s, offs_t o, u8 mm){ return o == 2 ? m_pcm_mute : 0xff; }, "pc9801_86_mute_r"),
+ write8_delegate(*this, [this](address_space &s, offs_t o, u8 d, u8 mm){ if(o == 2) m_pcm_mute = d; }, "pc9801_86_mute_w"));
m_dac_timer = timer_alloc();
save_item(NAME(m_count));
@@ -180,7 +180,7 @@ void pc9801_86_device::device_reset()
{
uint16_t port_base = (ioport("OPNA_DSW")->read() & 1) << 8;
m_bus->io_space().unmap_readwrite(0x0088, 0x008f, 0x100);
- m_bus->install_io(port_base + 0x0088, port_base + 0x008f, read8_delegate(FUNC(pc9801_86_device::opna_r), this), write8_delegate(FUNC(pc9801_86_device::opna_w), this) );
+ m_bus->install_io(port_base + 0x0088, port_base + 0x008f, read8_delegate(*this, FUNC(pc9801_86_device::opna_r)), write8_delegate(*this, FUNC(pc9801_86_device::opna_w)));
m_mask = 0;
m_head = m_tail = m_count = 0;
@@ -412,7 +412,7 @@ void pc9801_speakboard_device::device_start()
{
pc9801_86_device::device_start();
- m_bus->install_io(0x0588, 0x058f, read8_delegate(FUNC(pc9801_speakboard_device::opna_slave_r), this), write8_delegate(FUNC(pc9801_speakboard_device::opna_slave_w), this) );
+ m_bus->install_io(0x0588, 0x058f, read8_delegate(*this, FUNC(pc9801_speakboard_device::opna_slave_r)), write8_delegate(*this, FUNC(pc9801_speakboard_device::opna_slave_w)));
}
void pc9801_speakboard_device::device_reset()
diff --git a/src/devices/bus/cbus/pc9801_amd98.cpp b/src/devices/bus/cbus/pc9801_amd98.cpp
index ca7b32e7b4e..684dc8978df 100644
--- a/src/devices/bus/cbus/pc9801_amd98.cpp
+++ b/src/devices/bus/cbus/pc9801_amd98.cpp
@@ -134,9 +134,9 @@ void pc9801_amd98_device::device_start()
void pc9801_amd98_device::device_reset()
{
- m_bus->install_io(0x00d8, 0x00df, read8_delegate(FUNC(pc9801_amd98_device::read), this), write8_delegate(FUNC(pc9801_amd98_device::write), this) );
+ m_bus->install_io(0x00d8, 0x00df, read8_delegate(*this, FUNC(pc9801_amd98_device::read)), write8_delegate(*this, FUNC(pc9801_amd98_device::write)));
// Thexder access with following
- m_bus->install_io(0x38d8, 0x38df, read8_delegate(FUNC(pc9801_amd98_device::read), this), write8_delegate(FUNC(pc9801_amd98_device::write), this) );
+ m_bus->install_io(0x38d8, 0x38df, read8_delegate(*this, FUNC(pc9801_amd98_device::read)), write8_delegate(*this, FUNC(pc9801_amd98_device::write)));
}
@@ -154,7 +154,7 @@ READ8_MEMBER(pc9801_amd98_device::read)
return m_ay2->data_r();
}
- printf("%02x\n",offset);
+ logerror("%02x\n",offset);
return 0xff;
}
@@ -176,7 +176,7 @@ WRITE8_MEMBER(pc9801_amd98_device::write)
m_ay2->data_w(data);
break;
default:
- printf("%02x %02x\n",offset,data);
+ logerror("%02x %02x\n",offset,data);
}
}
@@ -191,11 +191,11 @@ WRITE8_MEMBER(pc9801_amd98_device::ay3_data_latch_w)
switch(data)
{
case 0x47:
- //printf("%02x addr\n",m_ay3_latch);
+ //logerror("%02x addr\n",m_ay3_latch);
m_ay3->address_w(m_ay3_latch);
break;
case 0x43:
- //printf("%02x data\n",m_ay3_latch);
+ //logerror("%02x data\n",m_ay3_latch);
m_ay3->data_w(m_ay3_latch);
break;
}
diff --git a/src/devices/bus/cgenie/expansion/floppy.cpp b/src/devices/bus/cgenie/expansion/floppy.cpp
index a25e49c7019..6238aaa936f 100644
--- a/src/devices/bus/cgenie/expansion/floppy.cpp
+++ b/src/devices/bus/cgenie/expansion/floppy.cpp
@@ -97,7 +97,7 @@ void cgenie_fdc_device::device_add_mconfig(machine_config &config)
// SOFTWARE_LIST(config, "floppy_list").set_original("cgenie_flop");
- GENERIC_SOCKET(config, "socket", generic_plain_slot, "cgenie_flop_rom", "bin,rom").set_device_load(FUNC(cgenie_fdc_device::socket_load), this);
+ GENERIC_SOCKET(config, "socket", generic_plain_slot, "cgenie_flop_rom", "bin,rom").set_device_load(FUNC(cgenie_fdc_device::socket_load));
SOFTWARE_LIST(config, "rom_list").set_original("cgenie_flop_rom");
}
@@ -147,9 +147,7 @@ void cgenie_fdc_device::device_reset()
// map extra socket
if (m_socket->exists())
- {
- m_slot->m_program->install_read_handler(0xe000, 0xefff, read8sm_delegate(FUNC(generic_slot_device::read_rom), (generic_slot_device *) m_socket));
- }
+ m_slot->m_program->install_read_handler(0xe000, 0xefff, read8sm_delegate(*m_socket, FUNC(generic_slot_device::read_rom)));
}
diff --git a/src/devices/bus/coco/coco_dcmodem.cpp b/src/devices/bus/coco/coco_dcmodem.cpp
index ab6ba20a622..4344314604b 100644
--- a/src/devices/bus/coco/coco_dcmodem.cpp
+++ b/src/devices/bus/coco/coco_dcmodem.cpp
@@ -59,8 +59,8 @@ namespace
virtual void device_start() override
{
install_readwrite_handler(0xFF6C, 0xFF6F,
- read8sm_delegate(FUNC(mos6551_device::read), (mos6551_device *)m_uart),
- write8sm_delegate(FUNC(mos6551_device::write), (mos6551_device *)m_uart));
+ read8sm_delegate(*m_uart, FUNC(mos6551_device::read)),
+ write8sm_delegate(*m_uart, FUNC(mos6551_device::write)));
}
virtual const tiny_rom_entry *device_rom_region() const override;
diff --git a/src/devices/bus/coco/coco_multi.cpp b/src/devices/bus/coco/coco_multi.cpp
index d6c5627ca11..a6705a7b751 100644
--- a/src/devices/bus/coco/coco_multi.cpp
+++ b/src/devices/bus/coco/coco_multi.cpp
@@ -252,7 +252,7 @@ coco_multipak_device::coco_multipak_device(const machine_config &mconfig, const
void coco_multipak_device::device_start()
{
// install $FF7F handler
- install_readwrite_handler(0xFF7F, 0xFF7F, read8_delegate(FUNC(coco_multipak_device::ff7f_read), this),write8_delegate(FUNC(coco_multipak_device::ff7f_write), this));
+ install_readwrite_handler(0xFF7F, 0xFF7F, read8_delegate(*this, FUNC(coco_multipak_device::ff7f_read)), write8_delegate(*this, FUNC(coco_multipak_device::ff7f_write)));
// initial state
m_select = 0xFF;
diff --git a/src/devices/bus/coco/coco_orch90.cpp b/src/devices/bus/coco/coco_orch90.cpp
index e7506be7c2b..384dd2b76d9 100644
--- a/src/devices/bus/coco/coco_orch90.cpp
+++ b/src/devices/bus/coco/coco_orch90.cpp
@@ -75,8 +75,8 @@ namespace
virtual void device_start() override
{
// install handlers
- install_write_handler(0xFF7A, 0xFF7A, write8_delegate(FUNC(coco_orch90_device::write_left), this));
- install_write_handler(0xFF7B, 0xFF7B, write8_delegate(FUNC(coco_orch90_device::write_right), this));
+ install_write_handler(0xFF7A, 0xFF7A, write8_delegate(*this, FUNC(coco_orch90_device::write_left)));
+ install_write_handler(0xFF7B, 0xFF7B, write8_delegate(*this, FUNC(coco_orch90_device::write_right)));
// Orch-90 ties CART to Q
set_line_value(line::CART, line_value::Q);
diff --git a/src/devices/bus/coco/coco_rs232.cpp b/src/devices/bus/coco/coco_rs232.cpp
index 5668034b80d..31da94f3e4f 100644
--- a/src/devices/bus/coco/coco_rs232.cpp
+++ b/src/devices/bus/coco/coco_rs232.cpp
@@ -57,8 +57,8 @@ namespace
virtual void device_start() override
{
install_readwrite_handler(0xFF68, 0xFF6B,
- read8sm_delegate(FUNC(mos6551_device::read), (mos6551_device *)m_uart),
- write8sm_delegate(FUNC(mos6551_device::write), (mos6551_device *)m_uart));
+ read8sm_delegate(*m_uart, FUNC(mos6551_device::read)),
+ write8sm_delegate(*m_uart, FUNC(mos6551_device::write)));
}
virtual const tiny_rom_entry *device_rom_region() const override;
diff --git a/src/devices/bus/coco/coco_ssc.cpp b/src/devices/bus/coco/coco_ssc.cpp
index 6dcd34a8f03..cc50f7cf6ad 100644
--- a/src/devices/bus/coco/coco_ssc.cpp
+++ b/src/devices/bus/coco/coco_ssc.cpp
@@ -211,9 +211,9 @@ coco_ssc_device::coco_ssc_device(const machine_config &mconfig, const char *tag,
void coco_ssc_device::device_start()
{
// install $FF7D-E handler
- write8_delegate wh = write8_delegate(FUNC(coco_ssc_device::ff7d_write), this);
- read8_delegate rh = read8_delegate(FUNC(coco_ssc_device::ff7d_read), this);
- install_readwrite_handler(0xFF7D, 0xFF7E, rh, wh);
+ install_readwrite_handler(0xFF7D, 0xFF7E,
+ read8_delegate(*this, FUNC(coco_ssc_device::ff7d_read)),
+ write8_delegate(*this, FUNC(coco_ssc_device::ff7d_write)));
save_item(NAME(m_reset_line));
save_item(NAME(m_tms7000_busy));
diff --git a/src/devices/bus/comx35/clm.cpp b/src/devices/bus/comx35/clm.cpp
index 745606875f0..ebf7e1f271e 100644
--- a/src/devices/bus/comx35/clm.cpp
+++ b/src/devices/bus/comx35/clm.cpp
@@ -153,7 +153,7 @@ void comx_clm_device::device_add_mconfig(machine_config &config)
m_crtc->set_screen(MC6845_SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(comx_clm_device::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(comx_clm_device::crtc_update_row));
}
diff --git a/src/devices/bus/cpc/amdrum.cpp b/src/devices/bus/cpc/amdrum.cpp
index 587577edf52..a9c612b4870 100644
--- a/src/devices/bus/cpc/amdrum.cpp
+++ b/src/devices/bus/cpc/amdrum.cpp
@@ -51,7 +51,7 @@ void cpc_amdrum_device::device_start()
{
m_slot = dynamic_cast<cpc_expansion_slot_device *>(owner());
address_space &space = m_slot->cpu().space(AS_IO);
- space.install_write_handler(0xff00,0xffff,write8_delegate(FUNC(cpc_amdrum_device::dac_w),this));
+ space.install_write_handler(0xff00,0xffff, write8_delegate(*this, FUNC(cpc_amdrum_device::dac_w)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/cpc/brunword4.cpp b/src/devices/bus/cpc/brunword4.cpp
index db5e8e1b57d..914ada94f15 100644
--- a/src/devices/bus/cpc/brunword4.cpp
+++ b/src/devices/bus/cpc/brunword4.cpp
@@ -74,7 +74,7 @@ void cpc_brunword4_device::device_start()
{
m_slot = dynamic_cast<cpc_expansion_slot_device *>(owner());
address_space &space = m_slot->cpu().space(AS_IO);
- space.install_write_handler(0xdf00,0xdfff,write8_delegate(FUNC(cpc_brunword4_device::rombank_w),this));
+ space.install_write_handler(0xdf00,0xdfff, write8_delegate(*this, FUNC(cpc_brunword4_device::rombank_w)));
}
void cpc_brunword4_device::device_reset()
diff --git a/src/devices/bus/cpc/cpc_pds.cpp b/src/devices/bus/cpc/cpc_pds.cpp
index 0509ab866dc..43f1fc2cd05 100644
--- a/src/devices/bus/cpc/cpc_pds.cpp
+++ b/src/devices/bus/cpc/cpc_pds.cpp
@@ -33,7 +33,7 @@ cpc_pds_device::cpc_pds_device(const machine_config &mconfig, const char *tag, d
device_t(mconfig, CPC_PDS, tag, owner, clock),
device_cpc_expansion_card_interface(mconfig, *this),
m_slot(nullptr),
- m_pio(*this,"pio")
+ m_pio(*this, "pio")
{
}
@@ -46,7 +46,7 @@ void cpc_pds_device::device_start()
m_slot = dynamic_cast<cpc_expansion_slot_device *>(owner());
address_space &space = m_slot->cpu().space(AS_IO);
- space.install_readwrite_handler(0xfbec,0xfbef,read8_delegate(FUNC(cpc_pds_device::pio_r),this),write8_delegate(FUNC(cpc_pds_device::pio_w),this));
+ space.install_readwrite_handler(0xfbec,0xfbef, read8_delegate(*this, FUNC(cpc_pds_device::pio_r)), write8_delegate(*this, FUNC(cpc_pds_device::pio_w)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/cpc/cpc_rs232.cpp b/src/devices/bus/cpc/cpc_rs232.cpp
index 40fc0853539..d360175cba4 100644
--- a/src/devices/bus/cpc/cpc_rs232.cpp
+++ b/src/devices/bus/cpc/cpc_rs232.cpp
@@ -106,8 +106,8 @@ void cpc_rs232_device::device_start()
m_slot = dynamic_cast<cpc_expansion_slot_device *>(owner());
address_space &space = m_slot->cpu().space(AS_IO);
- space.install_readwrite_handler(0xfadc,0xfadf,read8_delegate(FUNC(cpc_rs232_device::dart_r),this),write8_delegate(FUNC(cpc_rs232_device::dart_w),this));
- space.install_readwrite_handler(0xfbdc,0xfbdf,read8_delegate(FUNC(cpc_rs232_device::pit_r),this),write8_delegate(FUNC(cpc_rs232_device::pit_w),this));
+ space.install_readwrite_handler(0xfadc,0xfadf, read8_delegate(*this, FUNC(cpc_rs232_device::dart_r)), write8_delegate(*this, FUNC(cpc_rs232_device::dart_w)));
+ space.install_readwrite_handler(0xfbdc,0xfbdf, read8_delegate(*this, FUNC(cpc_rs232_device::pit_r)), write8_delegate(*this, FUNC(cpc_rs232_device::pit_w)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/cpc/cpc_ssa1.cpp b/src/devices/bus/cpc/cpc_ssa1.cpp
index bdfedce16ed..c009cc5a4e6 100644
--- a/src/devices/bus/cpc/cpc_ssa1.cpp
+++ b/src/devices/bus/cpc/cpc_ssa1.cpp
@@ -177,8 +177,8 @@ void cpc_ssa1_device::device_start()
m_rom = memregion("sp0256")->base();
- space.install_readwrite_handler(0xfaee,0xfaee,read8_delegate(FUNC(cpc_ssa1_device::ssa1_r),this),write8_delegate(FUNC(cpc_ssa1_device::ssa1_w),this));
- space.install_readwrite_handler(0xfbee,0xfbee,read8_delegate(FUNC(cpc_ssa1_device::ssa1_r),this),write8_delegate(FUNC(cpc_ssa1_device::ssa1_w),this));
+ space.install_readwrite_handler(0xfaee,0xfaee, read8_delegate(*this, FUNC(cpc_ssa1_device::ssa1_r)), write8_delegate(*this, FUNC(cpc_ssa1_device::ssa1_w)));
+ space.install_readwrite_handler(0xfbee,0xfbee, read8_delegate(*this, FUNC(cpc_ssa1_device::ssa1_r)), write8_delegate(*this, FUNC(cpc_ssa1_device::ssa1_w)));
}
void cpc_dkspeech_device::device_start()
@@ -188,7 +188,7 @@ void cpc_dkspeech_device::device_start()
m_rom = memregion("sp0256")->base();
- space.install_readwrite_handler(0xfbfe,0xfbfe,read8_delegate(FUNC(cpc_dkspeech_device::dkspeech_r),this),write8_delegate(FUNC(cpc_dkspeech_device::dkspeech_w),this));
+ space.install_readwrite_handler(0xfbfe,0xfbfe, read8_delegate(*this, FUNC(cpc_dkspeech_device::dkspeech_r)), write8_delegate(*this, FUNC(cpc_dkspeech_device::dkspeech_w)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/cpc/ddi1.cpp b/src/devices/bus/cpc/ddi1.cpp
index 76e09d36f34..c835a8e547f 100644
--- a/src/devices/bus/cpc/ddi1.cpp
+++ b/src/devices/bus/cpc/ddi1.cpp
@@ -75,9 +75,9 @@ void cpc_ddi1_device::device_start()
m_slot = dynamic_cast<cpc_expansion_slot_device *>(owner());
address_space &space = m_slot->cpu().space(AS_IO);
- space.install_write_handler(0xfa7e,0xfa7f,write8_delegate(FUNC(cpc_ddi1_device::motor_w),this));
- space.install_readwrite_handler(0xfb7e,0xfb7f,read8_delegate(FUNC(cpc_ddi1_device::fdc_r),this),write8_delegate(FUNC(cpc_ddi1_device::fdc_w),this));
- space.install_write_handler(0xdf00,0xdfff,write8_delegate(FUNC(cpc_ddi1_device::rombank_w),this));
+ space.install_write_handler(0xfa7e,0xfa7f, write8_delegate(*this, FUNC(cpc_ddi1_device::motor_w)));
+ space.install_readwrite_handler(0xfb7e,0xfb7f, read8_delegate(*this, FUNC(cpc_ddi1_device::fdc_r)), write8_delegate(*this, FUNC(cpc_ddi1_device::fdc_w)));
+ space.install_write_handler(0xdf00,0xdfff, write8_delegate(*this, FUNC(cpc_ddi1_device::rombank_w)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/cpc/doubler.cpp b/src/devices/bus/cpc/doubler.cpp
index e9ed2e5b5f4..ff2d9988f31 100644
--- a/src/devices/bus/cpc/doubler.cpp
+++ b/src/devices/bus/cpc/doubler.cpp
@@ -46,7 +46,7 @@ void cpc_doubler_device::device_start()
{
m_slot = dynamic_cast<cpc_expansion_slot_device *>(owner());
address_space &space = m_slot->cpu().space(AS_IO);
- space.install_read_handler(0xf0e0,0xf0e0,read8_delegate(FUNC(cpc_doubler_device::ext_tape_r),this));
+ space.install_read_handler(0xf0e0,0xf0e0, read8_delegate(*this, FUNC(cpc_doubler_device::ext_tape_r)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/cpc/hd20.cpp b/src/devices/bus/cpc/hd20.cpp
index c13ffca6b4b..582a61df262 100644
--- a/src/devices/bus/cpc/hd20.cpp
+++ b/src/devices/bus/cpc/hd20.cpp
@@ -46,7 +46,7 @@ const tiny_rom_entry *cpc_hd20_device::device_rom_region() const
cpc_hd20_device::cpc_hd20_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, CPC_HD20, tag, owner, clock),
device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr),
- m_hdc(*this,"hdc")
+ m_hdc(*this, "hdc")
{
}
@@ -58,8 +58,8 @@ void cpc_hd20_device::device_start()
{
m_slot = dynamic_cast<cpc_expansion_slot_device *>(owner());
address_space &space = m_slot->cpu().space(AS_IO);
- space.install_write_handler(0xfbe0,0xfbe4,write8_delegate(FUNC(cpc_hd20_device::hdc_w),this));
- space.install_read_handler(0xfbe0,0xfbe4,read8_delegate(FUNC(cpc_hd20_device::hdc_r),this));
+ space.install_write_handler(0xfbe0,0xfbe4, write8_delegate(*this, FUNC(cpc_hd20_device::hdc_w)));
+ space.install_read_handler(0xfbe0,0xfbe4, read8_delegate(*this, FUNC(cpc_hd20_device::hdc_r)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/cpc/magicsound.cpp b/src/devices/bus/cpc/magicsound.cpp
index 1a85915dca1..a9c06b3f123 100644
--- a/src/devices/bus/cpc/magicsound.cpp
+++ b/src/devices/bus/cpc/magicsound.cpp
@@ -89,10 +89,10 @@ void al_magicsound_device::device_start()
{
m_slot = dynamic_cast<cpc_expansion_slot_device *>(owner());
address_space &space = m_slot->cpu().space(AS_IO);
- space.install_readwrite_handler(0xf8d0,0xf8df,read8_delegate(FUNC(al_magicsound_device::dmac_r),this),write8_delegate(FUNC(al_magicsound_device::dmac_w),this));
- space.install_write_handler(0xf9d0,0xf9df,write8_delegate(FUNC(al_magicsound_device::timer_w),this));
- space.install_write_handler(0xfad0,0xfadf,write8_delegate(FUNC(al_magicsound_device::volume_w),this));
- space.install_write_handler(0xfbd0,0xfbdf,write8_delegate(FUNC(al_magicsound_device::mapper_w),this));
+ space.install_readwrite_handler(0xf8d0,0xf8df, read8_delegate(*this, FUNC(al_magicsound_device::dmac_r)), write8_delegate(*this, FUNC(al_magicsound_device::dmac_w)));
+ space.install_write_handler(0xf9d0,0xf9df, write8_delegate(*this, FUNC(al_magicsound_device::timer_w)));
+ space.install_write_handler(0xfad0,0xfadf, write8_delegate(*this, FUNC(al_magicsound_device::volume_w)));
+ space.install_write_handler(0xfbd0,0xfbdf, write8_delegate(*this, FUNC(al_magicsound_device::mapper_w)));
m_ramptr = machine().device<ram_device>(":" RAM_TAG);
diff --git a/src/devices/bus/cpc/musicmachine.cpp b/src/devices/bus/cpc/musicmachine.cpp
index 4d43f20c1fe..90361578851 100644
--- a/src/devices/bus/cpc/musicmachine.cpp
+++ b/src/devices/bus/cpc/musicmachine.cpp
@@ -61,9 +61,9 @@ void cpc_musicmachine_device::device_start()
m_slot = dynamic_cast<cpc_expansion_slot_device *>(owner());
address_space &space = m_slot->cpu().space(AS_IO);
- space.install_write_handler(0xf8e8,0xf8e8,write8_delegate(FUNC(cpc_musicmachine_device::irqsel_w),this));
- space.install_readwrite_handler(0xf8ec,0xf8ef,read8_delegate(FUNC(cpc_musicmachine_device::acia_r), this),write8_delegate(FUNC(cpc_musicmachine_device::acia_w),this));
- space.install_write_handler(0xf8f0,0xf8f0,write8_delegate(FUNC(cpc_musicmachine_device::dac_w),this));
+ space.install_write_handler(0xf8e8,0xf8e8, write8_delegate(*this, FUNC(cpc_musicmachine_device::irqsel_w)));
+ space.install_readwrite_handler(0xf8ec,0xf8ef, read8_delegate(*this, FUNC(cpc_musicmachine_device::acia_r)), write8_delegate(*this, FUNC(cpc_musicmachine_device::acia_w)));
+ space.install_write_handler(0xf8f0,0xf8f0, write8_delegate(*this, FUNC(cpc_musicmachine_device::dac_w)));
// 0xf8f4 - ADC read8_delegate
// 0xf8f8 - ADC start
}
diff --git a/src/devices/bus/cpc/playcity.cpp b/src/devices/bus/cpc/playcity.cpp
index 7d444abb03b..4a11189aacb 100644
--- a/src/devices/bus/cpc/playcity.cpp
+++ b/src/devices/bus/cpc/playcity.cpp
@@ -69,11 +69,11 @@ void cpc_playcity_device::device_start()
m_slot = dynamic_cast<cpc_expansion_slot_device *>(owner());
address_space &space = m_slot->cpu().space(AS_IO);
- space.install_readwrite_handler(0xf880,0xf883,read8_delegate(FUNC(cpc_playcity_device::ctc_r),this),write8_delegate(FUNC(cpc_playcity_device::ctc_w),this));
- space.install_readwrite_handler(0xf884,0xf884,read8_delegate(FUNC(cpc_playcity_device::ymz1_data_r),this),write8_delegate(FUNC(cpc_playcity_device::ymz1_data_w),this));
- space.install_readwrite_handler(0xf888,0xf888,read8_delegate(FUNC(cpc_playcity_device::ymz2_data_r),this),write8_delegate(FUNC(cpc_playcity_device::ymz2_data_w),this));
- space.install_write_handler(0xf984,0xf984,write8_delegate(FUNC(cpc_playcity_device::ymz1_address_w),this));
- space.install_write_handler(0xf988,0xf988,write8_delegate(FUNC(cpc_playcity_device::ymz2_address_w),this));
+ space.install_readwrite_handler(0xf880,0xf883, read8_delegate(*this, FUNC(cpc_playcity_device::ctc_r)), write8_delegate(*this, FUNC(cpc_playcity_device::ctc_w)));
+ space.install_readwrite_handler(0xf884,0xf884, read8_delegate(*this, FUNC(cpc_playcity_device::ymz1_data_r)), write8_delegate(*this, FUNC(cpc_playcity_device::ymz1_data_w)));
+ space.install_readwrite_handler(0xf888,0xf888, read8_delegate(*this, FUNC(cpc_playcity_device::ymz2_data_r)), write8_delegate(*this, FUNC(cpc_playcity_device::ymz2_data_w)));
+ space.install_write_handler(0xf984,0xf984, write8_delegate(*this, FUNC(cpc_playcity_device::ymz1_address_w)));
+ space.install_write_handler(0xf988,0xf988, write8_delegate(*this, FUNC(cpc_playcity_device::ymz2_address_w)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/cpc/smartwatch.cpp b/src/devices/bus/cpc/smartwatch.cpp
index 272b7ca953e..5b4e63df728 100644
--- a/src/devices/bus/cpc/smartwatch.cpp
+++ b/src/devices/bus/cpc/smartwatch.cpp
@@ -63,8 +63,8 @@ void cpc_smartwatch_device::device_start()
void cpc_smartwatch_device::device_reset()
{
address_space &space = m_slot->cpu().space(AS_PROGRAM);
- space.install_read_handler(0xc000,0xc001,read8_delegate(FUNC(cpc_smartwatch_device::rtc_w),this));
- space.install_read_handler(0xc004,0xc004,read8_delegate(FUNC(cpc_smartwatch_device::rtc_r),this));
+ space.install_read_handler(0xc000,0xc001, read8_delegate(*this, FUNC(cpc_smartwatch_device::rtc_w)));
+ space.install_read_handler(0xc004,0xc004, read8_delegate(*this, FUNC(cpc_smartwatch_device::rtc_r)));
m_bank = membank(":bank7");
}
diff --git a/src/devices/bus/cpc/symbfac2.cpp b/src/devices/bus/cpc/symbfac2.cpp
index a59a73bf72e..8710717de6c 100644
--- a/src/devices/bus/cpc/symbfac2.cpp
+++ b/src/devices/bus/cpc/symbfac2.cpp
@@ -90,11 +90,11 @@ void cpc_symbiface2_device::device_start()
{
m_slot = dynamic_cast<cpc_expansion_slot_device *>(owner());
address_space &space = m_slot->cpu().space(AS_IO);
- space.install_readwrite_handler(0xfd00,0xfd07,read8_delegate(FUNC(cpc_symbiface2_device::ide_cs1_r),this),write8_delegate(FUNC(cpc_symbiface2_device::ide_cs1_w),this));
- space.install_readwrite_handler(0xfd08,0xfd0f,read8_delegate(FUNC(cpc_symbiface2_device::ide_cs0_r),this),write8_delegate(FUNC(cpc_symbiface2_device::ide_cs0_w),this));
- space.install_read_handler(0xfd10,0xfd10,read8_delegate(FUNC(cpc_symbiface2_device::mouse_r),this));
- space.install_readwrite_handler(0xfd14,0xfd15,read8_delegate(FUNC(cpc_symbiface2_device::rtc_r),this),write8_delegate(FUNC(cpc_symbiface2_device::rtc_w),this));
- space.install_readwrite_handler(0xfd17,0xfd17,read8_delegate(FUNC(cpc_symbiface2_device::rom_rewrite_r),this),write8_delegate(FUNC(cpc_symbiface2_device::rom_rewrite_w),this));
+ space.install_readwrite_handler(0xfd00,0xfd07, read8_delegate(*this, FUNC(cpc_symbiface2_device::ide_cs1_r)), write8_delegate(*this, FUNC(cpc_symbiface2_device::ide_cs1_w)));
+ space.install_readwrite_handler(0xfd08,0xfd0f, read8_delegate(*this, FUNC(cpc_symbiface2_device::ide_cs0_r)), write8_delegate(*this, FUNC(cpc_symbiface2_device::ide_cs0_w)));
+ space.install_read_handler(0xfd10,0xfd10, read8_delegate(*this, FUNC(cpc_symbiface2_device::mouse_r)));
+ space.install_readwrite_handler(0xfd14,0xfd15, read8_delegate(*this, FUNC(cpc_symbiface2_device::rtc_r)), write8_delegate(*this, FUNC(cpc_symbiface2_device::rtc_w)));
+ space.install_readwrite_handler(0xfd17,0xfd17, read8_delegate(*this, FUNC(cpc_symbiface2_device::rom_rewrite_r)), write8_delegate(*this, FUNC(cpc_symbiface2_device::rom_rewrite_w)));
// set up ROM space (these can be writable, when mapped to &4000, or completely disabled, allowing the built-in ROMs to be visible)
// 32 banks of 16kB (512kB)
diff --git a/src/devices/bus/cpc/transtape.cpp b/src/devices/bus/cpc/transtape.cpp
index 78ec1f15c72..3b3d29e53c0 100644
--- a/src/devices/bus/cpc/transtape.cpp
+++ b/src/devices/bus/cpc/transtape.cpp
@@ -63,8 +63,8 @@ void cpc_transtape_device::device_start()
m_ram = make_unique_clear<uint8_t[]>(0x2000);
- m_space->install_write_handler(0xfbf0,0xfbf0,write8_delegate(FUNC(cpc_transtape_device::output_w),this));
- m_space->install_read_handler(0xfbff,0xfbff,read8_delegate(FUNC(cpc_transtape_device::input_r),this));
+ m_space->install_write_handler(0xfbf0,0xfbf0, write8_delegate(*this, FUNC(cpc_transtape_device::output_w)));
+ m_space->install_read_handler(0xfbff,0xfbff, read8_delegate(*this, FUNC(cpc_transtape_device::input_r)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/dmv/k220.cpp b/src/devices/bus/dmv/k220.cpp
index 4ba32c77950..9251d453e57 100644
--- a/src/devices/bus/dmv/k220.cpp
+++ b/src/devices/bus/dmv/k220.cpp
@@ -140,8 +140,8 @@ dmv_k220_device::dmv_k220_device(const machine_config &mconfig, const char *tag,
void dmv_k220_device::device_start()
{
address_space &space = *m_bus->m_iospace;
- space.install_readwrite_handler(0x08, 0x0b, read8sm_delegate(FUNC(pit8253_device::read), &(*m_pit)), write8sm_delegate(FUNC(pit8253_device::write), &(*m_pit)), 0);
- space.install_readwrite_handler(0x0c, 0x0f, read8sm_delegate(FUNC(i8255_device::read), &(*m_ppi)), write8sm_delegate(FUNC(i8255_device::write), &(*m_ppi)), 0);
+ space.install_readwrite_handler(0x08, 0x0b, read8sm_delegate(*m_pit, FUNC(pit8253_device::read)), write8sm_delegate(*m_pit, FUNC(pit8253_device::write)), 0);
+ space.install_readwrite_handler(0x0c, 0x0f, read8sm_delegate(*m_ppi, FUNC(i8255_device::read)), write8sm_delegate(*m_ppi, FUNC(i8255_device::write)), 0);
m_digits.resolve();
diff --git a/src/devices/bus/dmv/k230.cpp b/src/devices/bus/dmv/k230.cpp
index a58ced0492a..8c1d6e43ac3 100644
--- a/src/devices/bus/dmv/k230.cpp
+++ b/src/devices/bus/dmv/k230.cpp
@@ -148,7 +148,7 @@ void dmv_k230_device::device_start()
void dmv_k234_device::device_start()
{
dmv_k230_device::device_start();
- m_bus->m_iospace->install_readwrite_handler(0xd8, 0xdf, read8_delegate(FUNC(dmv_k234_device::snr_r), this), write8_delegate(FUNC(dmv_k234_device::snr_w), this), 0);
+ m_bus->m_iospace->install_readwrite_handler(0xd8, 0xdf, read8_delegate(*this, FUNC(dmv_k234_device::snr_r)), write8_delegate(*this, FUNC(dmv_k234_device::snr_w)), 0);
// register for state saving
save_item(NAME(m_snr));
diff --git a/src/devices/bus/dmv/k806.cpp b/src/devices/bus/dmv/k806.cpp
index 7daa744b3ff..87a0002c091 100644
--- a/src/devices/bus/dmv/k806.cpp
+++ b/src/devices/bus/dmv/k806.cpp
@@ -119,7 +119,7 @@ void dmv_k806_device::device_add_mconfig(machine_config &config)
m_mcu->p2_out_cb().set(FUNC(dmv_k806_device::port2_w));
m_mcu->t1_in_cb().set(FUNC(dmv_k806_device::portt1_r));
- TIMER(config, "mouse_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(dmv_k806_device::mouse_timer), this), attotime::from_hz(1000));
+ TIMER(config, "mouse_timer", 0).configure_periodic(FUNC(dmv_k806_device::mouse_timer), attotime::from_hz(1000));
}
//-------------------------------------------------
diff --git a/src/devices/bus/ecbbus/grip.cpp b/src/devices/bus/ecbbus/grip.cpp
index f7abc75aac5..1fcedf58ccc 100644
--- a/src/devices/bus/ecbbus/grip.cpp
+++ b/src/devices/bus/ecbbus/grip.cpp
@@ -435,7 +435,7 @@ void ecb_grip21_device::device_add_mconfig(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(ecb_grip21_device::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(ecb_grip21_device::crtc_update_row));
m_crtc->out_de_callback().set(m_sti, FUNC(z80sti_device::i1_w));
m_crtc->out_cur_callback().set(m_sti, FUNC(z80sti_device::i1_w));
diff --git a/src/devices/bus/einstein/pipe/silicon_disc.cpp b/src/devices/bus/einstein/pipe/silicon_disc.cpp
index b9017cd6e56..ff4ac92a910 100644
--- a/src/devices/bus/einstein/pipe/silicon_disc.cpp
+++ b/src/devices/bus/einstein/pipe/silicon_disc.cpp
@@ -87,8 +87,8 @@ void einstein_silicon_disc_device::device_reset()
// install i/o ports
io_space().install_device(0xf0, 0xff, *this, &einstein_silicon_disc_device::map);
io_space().install_readwrite_handler(0xfa, 0xfa, 0, 0, 0xff00,
- read8_delegate(FUNC(einstein_silicon_disc_device::ram_r), this),
- write8_delegate(FUNC(einstein_silicon_disc_device::ram_w), this));
+ read8_delegate(*this, FUNC(einstein_silicon_disc_device::ram_r)),
+ write8_delegate(*this, FUNC(einstein_silicon_disc_device::ram_w)));
}
diff --git a/src/devices/bus/einstein/pipe/speculator.cpp b/src/devices/bus/einstein/pipe/speculator.cpp
index ed35973ab12..c4afaa4ac2d 100644
--- a/src/devices/bus/einstein/pipe/speculator.cpp
+++ b/src/devices/bus/einstein/pipe/speculator.cpp
@@ -97,18 +97,18 @@ void einstein_speculator_device::device_reset()
{
// ram: range 0x1f, 0x3f, 0x5f, 0x7f, 0x9f, 0xbf, 0xdf, 0xff
io_space().install_readwrite_handler(0x1f, 0x1f, 0, 0, 0xffe0,
- read8_delegate(FUNC(einstein_speculator_device::ram_r), this),
- write8_delegate(FUNC(einstein_speculator_device::ram_w), this));
+ read8_delegate(*this, FUNC(einstein_speculator_device::ram_r)),
+ write8_delegate(*this, FUNC(einstein_speculator_device::ram_w)));
// ram: range 0x60 - 0xff
io_space().install_readwrite_handler(0x60, 0x60, 0, 0, 0xff9f,
- read8_delegate(FUNC(einstein_speculator_device::ram_r), this),
- write8_delegate(FUNC(einstein_speculator_device::ram_w), this));
+ read8_delegate(*this, FUNC(einstein_speculator_device::ram_r)),
+ write8_delegate(*this, FUNC(einstein_speculator_device::ram_w)));
// tape read/nmi write register: range 0xff
io_space().install_readwrite_handler(0xff, 0xff, 0, 0, 0xff00,
- read8_delegate(FUNC(einstein_speculator_device::tape_r), this),
- write8_delegate(FUNC(einstein_speculator_device::nmi_w), this));
+ read8_delegate(*this, FUNC(einstein_speculator_device::tape_r)),
+ write8_delegate(*this, FUNC(einstein_speculator_device::nmi_w)));
}
diff --git a/src/devices/bus/einstein/pipe/tk02.cpp b/src/devices/bus/einstein/pipe/tk02.cpp
index 0564a5eaaad..5f0a38ed27b 100644
--- a/src/devices/bus/einstein/pipe/tk02.cpp
+++ b/src/devices/bus/einstein/pipe/tk02.cpp
@@ -111,7 +111,7 @@ void tk02_device::device_add_mconfig(machine_config &config)
m_crtc->set_screen("mono");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(tk02_device::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(tk02_device::crtc_update_row));
m_crtc->out_de_callback().set(FUNC(tk02_device::de_w));
TATUNG_PIPE(config, m_pipe, DERIVED_CLOCK(1, 1), tatung_pipe_cards, nullptr);
@@ -160,7 +160,7 @@ void tk02_device::device_start()
void tk02_device::device_reset()
{
io_space().install_device(0x40, 0x4f, *this, &tk02_device::map);
- io_space().install_readwrite_handler(0x40, 0x47, 0, 0, 0xff00, read8_delegate(FUNC(tk02_device::ram_r), this), write8_delegate(FUNC(tk02_device::ram_w), this));
+ io_space().install_readwrite_handler(0x40, 0x47, 0, 0, 0xff00, read8_delegate(*this, FUNC(tk02_device::ram_r)), write8_delegate(*this, FUNC(tk02_device::ram_w)));
}
diff --git a/src/devices/bus/electron/cart/ap5.cpp b/src/devices/bus/electron/cart/ap5.cpp
index e72e9ac4e25..2929374cd48 100644
--- a/src/devices/bus/electron/cart/ap5.cpp
+++ b/src/devices/bus/electron/cart/ap5.cpp
@@ -26,9 +26,9 @@ void electron_ap5_device::device_add_mconfig(machine_config &config)
{
/* rom sockets */
GENERIC_SOCKET(config, m_romslot[0], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 14
- m_romslot[0]->set_device_load(FUNC(electron_ap5_device::rom1_load), this);
+ m_romslot[0]->set_device_load(FUNC(electron_ap5_device::rom1_load));
GENERIC_SOCKET(config, m_romslot[1], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 15
- m_romslot[1]->set_device_load(FUNC(electron_ap5_device::rom2_load), this);
+ m_romslot[1]->set_device_load(FUNC(electron_ap5_device::rom2_load));
/* via */
VIA6522(config, m_via, DERIVED_CLOCK(1, 16));
diff --git a/src/devices/bus/electron/cart/romp144.cpp b/src/devices/bus/electron/cart/romp144.cpp
index 14853d86949..de947454fd8 100644
--- a/src/devices/bus/electron/cart/romp144.cpp
+++ b/src/devices/bus/electron/cart/romp144.cpp
@@ -26,19 +26,19 @@ void electron_romp144_device::device_add_mconfig(machine_config &config)
{
/* rom sockets */
GENERIC_SOCKET(config, m_romslot[0], generic_plain_slot, "electron_rom", "bin,rom");
- m_romslot[0]->set_device_load(FUNC(electron_romp144_device::rom0), this);
+ m_romslot[0]->set_device_load(FUNC(electron_romp144_device::rom0));
GENERIC_SOCKET(config, m_romslot[1], generic_plain_slot, "electron_rom", "bin,rom");
- m_romslot[1]->set_device_load(FUNC(electron_romp144_device::rom1), this);
+ m_romslot[1]->set_device_load(FUNC(electron_romp144_device::rom1));
GENERIC_SOCKET(config, m_romslot[2], generic_plain_slot, "electron_rom", "bin,rom");
- m_romslot[2]->set_device_load(FUNC(electron_romp144_device::rom2), this);
+ m_romslot[2]->set_device_load(FUNC(electron_romp144_device::rom2));
GENERIC_SOCKET(config, m_romslot[3], generic_plain_slot, "electron_rom", "bin,rom");
- m_romslot[3]->set_device_load(FUNC(electron_romp144_device::rom3), this);
+ m_romslot[3]->set_device_load(FUNC(electron_romp144_device::rom3));
GENERIC_SOCKET(config, m_romslot[4], generic_plain_slot, "electron_rom", "bin,rom");
- m_romslot[4]->set_device_load(FUNC(electron_romp144_device::rom4), this);
+ m_romslot[4]->set_device_load(FUNC(electron_romp144_device::rom4));
GENERIC_SOCKET(config, m_romslot[5], generic_plain_slot, "electron_rom", "bin,rom");
- m_romslot[5]->set_device_load(FUNC(electron_romp144_device::rom5), this);
+ m_romslot[5]->set_device_load(FUNC(electron_romp144_device::rom5));
GENERIC_SOCKET(config, m_romslot[6], generic_plain_slot, "electron_rom", "bin,rom");
- m_romslot[6]->set_device_load(FUNC(electron_romp144_device::rom6), this);
+ m_romslot[6]->set_device_load(FUNC(electron_romp144_device::rom6));
}
//**************************************************************************
diff --git a/src/devices/bus/electron/plus2.cpp b/src/devices/bus/electron/plus2.cpp
index dd8be6e09eb..bb7d1342ebc 100644
--- a/src/devices/bus/electron/plus2.cpp
+++ b/src/devices/bus/electron/plus2.cpp
@@ -33,11 +33,11 @@ void electron_plus2_device::device_add_mconfig(machine_config &config)
{
/* rom sockets */
GENERIC_SOCKET(config, m_rom[0], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 13
- m_rom[0]->set_device_load(FUNC(electron_plus2_device::rom1_load), this);
+ m_rom[0]->set_device_load(FUNC(electron_plus2_device::rom1_load));
GENERIC_SOCKET(config, m_rom[1], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 14
- m_rom[1]->set_device_load(FUNC(electron_plus2_device::rom2_load), this);
+ m_rom[1]->set_device_load(FUNC(electron_plus2_device::rom2_load));
GENERIC_SOCKET(config, m_rom[2], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 15
- m_rom[2]->set_device_load(FUNC(electron_plus2_device::rom3_load), this);
+ m_rom[2]->set_device_load(FUNC(electron_plus2_device::rom3_load));
/* cartridges */
ELECTRON_CARTSLOT(config, m_cart[0], DERIVED_CLOCK(1, 1), electron_cart, nullptr);
diff --git a/src/devices/bus/electron/rombox.cpp b/src/devices/bus/electron/rombox.cpp
index 05d0a7c9092..920419c2d66 100644
--- a/src/devices/bus/electron/rombox.cpp
+++ b/src/devices/bus/electron/rombox.cpp
@@ -55,21 +55,21 @@ void electron_rombox_device::device_add_mconfig(machine_config &config)
{
/* rom sockets */
GENERIC_SOCKET(config, m_rom[0], generic_plain_slot, "electron_rom", "bin,rom");
- m_rom[0]->set_device_load(FUNC(electron_rombox_device::rom1_load), this);
+ m_rom[0]->set_device_load(FUNC(electron_rombox_device::rom1_load));
GENERIC_SOCKET(config, m_rom[1], generic_plain_slot, "electron_rom", "bin,rom");
- m_rom[1]->set_device_load(FUNC(electron_rombox_device::rom2_load), this);
+ m_rom[1]->set_device_load(FUNC(electron_rombox_device::rom2_load));
GENERIC_SOCKET(config, m_rom[2], generic_plain_slot, "electron_rom", "bin,rom");
- m_rom[2]->set_device_load(FUNC(electron_rombox_device::rom3_load), this);
+ m_rom[2]->set_device_load(FUNC(electron_rombox_device::rom3_load));
GENERIC_SOCKET(config, m_rom[3], generic_plain_slot, "electron_rom", "bin,rom");
- m_rom[3]->set_device_load(FUNC(electron_rombox_device::rom4_load), this);
+ m_rom[3]->set_device_load(FUNC(electron_rombox_device::rom4_load));
GENERIC_SOCKET(config, m_rom[4], generic_plain_slot, "electron_rom", "bin,rom");
- m_rom[4]->set_device_load(FUNC(electron_rombox_device::rom5_load), this);
+ m_rom[4]->set_device_load(FUNC(electron_rombox_device::rom5_load));
GENERIC_SOCKET(config, m_rom[5], generic_plain_slot, "electron_rom", "bin,rom");
- m_rom[5]->set_device_load(FUNC(electron_rombox_device::rom6_load), this);
+ m_rom[5]->set_device_load(FUNC(electron_rombox_device::rom6_load));
GENERIC_SOCKET(config, m_rom[6], generic_plain_slot, "electron_rom", "bin,rom");
- m_rom[6]->set_device_load(FUNC(electron_rombox_device::rom7_load), this);
+ m_rom[6]->set_device_load(FUNC(electron_rombox_device::rom7_load));
GENERIC_SOCKET(config, m_rom[7], generic_plain_slot, "electron_rom", "bin,rom");
- m_rom[7]->set_device_load(FUNC(electron_rombox_device::rom8_load), this);
+ m_rom[7]->set_device_load(FUNC(electron_rombox_device::rom8_load));
/* pass-through */
ELECTRON_EXPANSION_SLOT(config, m_exp, DERIVED_CLOCK(1, 1), electron_expansion_devices, nullptr);
diff --git a/src/devices/bus/electron/romboxp.cpp b/src/devices/bus/electron/romboxp.cpp
index 7581cf5b2e1..cb8fb77e81d 100644
--- a/src/devices/bus/electron/romboxp.cpp
+++ b/src/devices/bus/electron/romboxp.cpp
@@ -94,13 +94,13 @@ void electron_romboxp_device::device_add_mconfig(machine_config &config)
/* rom sockets */
GENERIC_SOCKET(config, m_rom[0], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 4/12
- m_rom[0]->set_device_load(FUNC(electron_romboxp_device::rom1_load), this);
+ m_rom[0]->set_device_load(FUNC(electron_romboxp_device::rom1_load));
GENERIC_SOCKET(config, m_rom[1], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 5/13
- m_rom[1]->set_device_load(FUNC(electron_romboxp_device::rom2_load), this);
+ m_rom[1]->set_device_load(FUNC(electron_romboxp_device::rom2_load));
GENERIC_SOCKET(config, m_rom[2], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 6/14 also ROM/RAM
- m_rom[2]->set_device_load(FUNC(electron_romboxp_device::rom3_load), this);
+ m_rom[2]->set_device_load(FUNC(electron_romboxp_device::rom3_load));
GENERIC_SOCKET(config, m_rom[3], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 7/15
- m_rom[3]->set_device_load(FUNC(electron_romboxp_device::rom4_load), this);
+ m_rom[3]->set_device_load(FUNC(electron_romboxp_device::rom4_load));
/* cartridges */
ELECTRON_CARTSLOT(config, m_cart[0], DERIVED_CLOCK(1, 1), electron_cart, nullptr); // ROM SLOT 0/1
diff --git a/src/devices/bus/ep64/exdos.cpp b/src/devices/bus/ep64/exdos.cpp
index a4487db6ba4..f443bb60693 100644
--- a/src/devices/bus/ep64/exdos.cpp
+++ b/src/devices/bus/ep64/exdos.cpp
@@ -144,8 +144,8 @@ void ep64_exdos_device::device_start()
{
m_slot->program().install_rom(0x080000, 0x087fff, m_rom->base());
- m_slot->io().install_readwrite_handler(0x10, 0x13, 0, 0x04, 0, read8sm_delegate(FUNC(wd_fdc_device_base::read), m_fdc.target()), write8sm_delegate(FUNC(wd_fdc_device_base::write), m_fdc.target()));
- m_slot->io().install_readwrite_handler(0x18, 0x18, 0, 0x04, 0, READ8_DELEGATE(ep64_exdos_device, read), WRITE8_DELEGATE(ep64_exdos_device, write));
+ m_slot->io().install_readwrite_handler(0x10, 0x13, 0, 0x04, 0, read8sm_delegate(*m_fdc, FUNC(wd_fdc_device_base::read)), write8sm_delegate(*m_fdc, FUNC(wd_fdc_device_base::write)));
+ m_slot->io().install_readwrite_handler(0x18, 0x18, 0, 0x04, 0, read8_delegate(*this, FUNC(ep64_exdos_device::read)), write8_delegate(*this, FUNC(ep64_exdos_device::write)));
}
diff --git a/src/devices/bus/generic/slot.cpp b/src/devices/bus/generic/slot.cpp
index 557e1d8dcef..9d2f6294ab2 100644
--- a/src/devices/bus/generic/slot.cpp
+++ b/src/devices/bus/generic/slot.cpp
@@ -36,11 +36,11 @@ DEFINE_DEVICE_TYPE(GENERIC_CARTSLOT, generic_cartslot_device, "generic_cartslot"
// device_generic_cart_interface - constructor
//-------------------------------------------------
-device_generic_cart_interface::device_generic_cart_interface(const machine_config &mconfig, device_t &device)
- : device_slot_card_interface(mconfig, device),
- m_rom(nullptr),
- m_rom_size(0),
- m_region(*this, DEVICE_SELF)
+device_generic_cart_interface::device_generic_cart_interface(const machine_config &mconfig, device_t &device) :
+ device_slot_card_interface(mconfig, device),
+ m_rom(nullptr),
+ m_rom_size(0),
+ m_region(*this, DEVICE_SELF)
{
}
@@ -95,17 +95,19 @@ generic_slot_device::generic_slot_device(const machine_config &mconfig, device_t
m_must_be_loaded(false),
m_width(GENERIC_ROM8_WIDTH),
m_endianness(ENDIANNESS_LITTLE),
- m_cart(nullptr)
+ m_cart(nullptr),
+ m_device_image_load(*this),
+ m_device_image_unload(*this)
{
}
-generic_socket_device::generic_socket_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : generic_slot_device(mconfig, GENERIC_SOCKET, tag, owner, clock)
+generic_socket_device::generic_socket_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ generic_slot_device(mconfig, GENERIC_SOCKET, tag, owner, clock)
{
}
-generic_cartslot_device::generic_cartslot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : generic_slot_device(mconfig, GENERIC_CARTSLOT, tag, owner, clock)
+generic_cartslot_device::generic_cartslot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ generic_slot_device(mconfig, GENERIC_CARTSLOT, tag, owner, clock)
{
}
@@ -124,6 +126,8 @@ generic_slot_device::~generic_slot_device()
void generic_slot_device::device_start()
{
m_cart = dynamic_cast<device_generic_cart_interface *>(get_card_device());
+ m_device_image_load.resolve();
+ m_device_image_unload.resolve();
}
diff --git a/src/devices/bus/generic/slot.h b/src/devices/bus/generic/slot.h
index a67fd25b9e5..9df3bf44a76 100644
--- a/src/devices/bus/generic/slot.h
+++ b/src/devices/bus/generic/slot.h
@@ -78,8 +78,8 @@ public:
generic_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
virtual ~generic_slot_device();
- template <typename... T> void set_device_load(T &&... args) { m_device_image_load = load_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_device_unload(T &&... args) { m_device_image_unload = unload_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_device_load(T &&... args) { m_device_image_load.set(std::forward<T>(args)...); }
+ template <typename... T> void set_device_unload(T &&... args) { m_device_image_unload.set(std::forward<T>(args)...); }
void set_interface(const char * interface) { m_interface = interface; }
void set_default_card(const char * def) { m_default_card = def; }
diff --git a/src/devices/bus/gio64/gio64.cpp b/src/devices/bus/gio64/gio64.cpp
index 20caf53124b..ba35bb38c9d 100644
--- a/src/devices/bus/gio64/gio64.cpp
+++ b/src/devices/bus/gio64/gio64.cpp
@@ -93,9 +93,9 @@ void gio64_device::device_start()
std::fill(std::begin(m_device_list), std::end(m_device_list), nullptr);
m_space = &space(0);
- m_space->install_readwrite_handler(0x00000000, 0x003fffff, read64_delegate(FUNC(gio64_device::no_gfx_r), this), write64_delegate(FUNC(gio64_device::no_gfx_w), this));
- m_space->install_readwrite_handler(0x00400000, 0x005fffff, read64_delegate(FUNC(gio64_device::no_exp0_r), this), write64_delegate(FUNC(gio64_device::no_exp0_w), this));
- m_space->install_readwrite_handler(0x00600000, 0x009fffff, read64_delegate(FUNC(gio64_device::no_exp1_r), this), write64_delegate(FUNC(gio64_device::no_exp1_w), this));
+ m_space->install_readwrite_handler(0x00000000, 0x003fffff, read64_delegate(*this, FUNC(gio64_device::no_gfx_r)), write64_delegate(*this, FUNC(gio64_device::no_gfx_w)));
+ m_space->install_readwrite_handler(0x00400000, 0x005fffff, read64_delegate(*this, FUNC(gio64_device::no_exp0_r)), write64_delegate(*this, FUNC(gio64_device::no_exp0_w)));
+ m_space->install_readwrite_handler(0x00600000, 0x009fffff, read64_delegate(*this, FUNC(gio64_device::no_exp1_r)), write64_delegate(*this, FUNC(gio64_device::no_exp1_w)));
}
READ64_MEMBER(gio64_device::no_gfx_r) { return ~0ULL; }
diff --git a/src/devices/bus/hp80_io/82937.cpp b/src/devices/bus/hp80_io/82937.cpp
index 171d4a62204..c150b6d36fa 100644
--- a/src/devices/bus/hp80_io/82937.cpp
+++ b/src/devices/bus/hp80_io/82937.cpp
@@ -70,7 +70,7 @@ hp82937_io_card_device::~hp82937_io_card_device()
void hp82937_io_card_device::install_read_write_handlers(address_space& space , uint16_t base_addr)
{
- space.install_readwrite_handler(base_addr , base_addr + 1 , READ8_DEVICE_DELEGATE(m_translator , hp_1mb5_device , cpu_r) , WRITE8_DEVICE_DELEGATE(m_translator , hp_1mb5_device , cpu_w));
+ space.install_readwrite_handler(base_addr, base_addr + 1, read8_delegate(*m_translator, FUNC(hp_1mb5_device::cpu_r)), write8_delegate(*m_translator, FUNC(hp_1mb5_device::cpu_w)));
}
void hp82937_io_card_device::inten()
diff --git a/src/devices/bus/hp9845_io/hp9845_io.cpp b/src/devices/bus/hp9845_io/hp9845_io.cpp
index 663c8fd9977..a8e1d43c8bc 100644
--- a/src/devices/bus/hp9845_io/hp9845_io.cpp
+++ b/src/devices/bus/hp9845_io/hp9845_io.cpp
@@ -101,9 +101,9 @@ int hp9845_io_slot_device::get_rw_handlers(read16_delegate& rhandler , write16_d
{
hp9845_io_card_device *card = dynamic_cast<hp9845_io_card_device*>(get_card_device());
- if (card != nullptr) {
- rhandler = read16_delegate(FUNC(hp9845_io_card_device::reg_r) , card);
- whandler = write16_delegate(FUNC(hp9845_io_card_device::reg_w) , card);
+ if (card) {
+ rhandler = read16_delegate(*card, FUNC(hp9845_io_card_device::reg_r));
+ whandler = write16_delegate(*card, FUNC(hp9845_io_card_device::reg_w));
return card->get_sc();
} else {
return -1;
@@ -114,7 +114,7 @@ bool hp9845_io_slot_device::has_dual_sc() const
{
hp9845_io_card_device *card = dynamic_cast<hp9845_io_card_device*>(get_card_device());
- if (card != nullptr) {
+ if (card) {
return card->has_dual_sc();
} else {
return false;
@@ -129,7 +129,7 @@ void hp9845_io_card_device::set_slot_device(hp9845_io_slot_device* dev)
m_slot_dev = dev;
}
-uint8_t hp9845_io_card_device::get_sc(void)
+uint8_t hp9845_io_card_device::get_sc()
{
return m_select_code_port->read() + HP9845_IO_FIRST_SC;
}
diff --git a/src/devices/bus/hp9845_io/hp9845_io.h b/src/devices/bus/hp9845_io/hp9845_io.h
index c62c8625563..b3018f7edf8 100644
--- a/src/devices/bus/hp9845_io/hp9845_io.h
+++ b/src/devices/bus/hp9845_io/hp9845_io.h
@@ -86,7 +86,7 @@ public:
virtual DECLARE_WRITE16_MEMBER(reg_w) = 0;
// SC getter
- uint8_t get_sc(void);
+ uint8_t get_sc();
virtual bool has_dual_sc() const;
diff --git a/src/devices/bus/hp_dio/hp98265a.cpp b/src/devices/bus/hp_dio/hp98265a.cpp
index 623f2d00be1..436fbc1c910 100644
--- a/src/devices/bus/hp_dio/hp98265a.cpp
+++ b/src/devices/bus/hp_dio/hp98265a.cpp
@@ -164,8 +164,8 @@ void dio16_98265a_device::device_reset()
program_space().install_readwrite_handler(
0x600000 + (code * 0x10000),
0x6007ff + (code * 0x10000),
- read16_delegate(FUNC(dio16_98265a_device::io_r), this),
- write16_delegate(FUNC(dio16_98265a_device::io_w), this));
+ read16_delegate(*this, FUNC(dio16_98265a_device::io_r)),
+ write16_delegate(*this, FUNC(dio16_98265a_device::io_w)));
program_space().install_device(0x6e0020, 0x6e003f, *m_spc, &mb87030_device::map, 0x00ff00ff);
m_installed_io = true;
}
diff --git a/src/devices/bus/hp_dio/hp98543.cpp b/src/devices/bus/hp_dio/hp98543.cpp
index 31251039ea6..280597f3a22 100644
--- a/src/devices/bus/hp_dio/hp98543.cpp
+++ b/src/devices/bus/hp_dio/hp98543.cpp
@@ -102,21 +102,21 @@ void dio16_98543_device::device_start()
dio().install_memory(
0x200000, 0x27ffff,
- read16_delegate(FUNC(dio16_98543_device::vram_r), this),
- write16_delegate(FUNC(dio16_98543_device::vram_w), this));
+ read16_delegate(*this, FUNC(dio16_98543_device::vram_r)),
+ write16_delegate(*this, FUNC(dio16_98543_device::vram_w)));
dio().install_memory(
0x560000, 0x563fff,
- read16_delegate(FUNC(dio16_98543_device::rom_r), this),
- write16_delegate(FUNC(dio16_98543_device::rom_w), this));
+ read16_delegate(*this, FUNC(dio16_98543_device::rom_r)),
+ write16_delegate(*this, FUNC(dio16_98543_device::rom_w)));
dio().install_memory(
0x564000, 0x565fff,
- read16_delegate(FUNC(dio16_98543_device::ctrl_r), this),
- write16_delegate(FUNC(dio16_98543_device::ctrl_w), this));
+ read16_delegate(*this, FUNC(dio16_98543_device::ctrl_r)),
+ write16_delegate(*this, FUNC(dio16_98543_device::ctrl_w)));
dio().install_memory(
0x566000, 0x567fff,
- read16_delegate(FUNC(nereid_device::ctrl_r), static_cast<nereid_device*>(m_nereid)),
- write16_delegate(FUNC(nereid_device::ctrl_w), static_cast<nereid_device*>(m_nereid)));
+ read16_delegate(*m_nereid, FUNC(nereid_device::ctrl_r)),
+ write16_delegate(*m_nereid, FUNC(nereid_device::ctrl_w)));
}
void dio16_98543_device::device_reset()
diff --git a/src/devices/bus/hp_dio/hp98544.cpp b/src/devices/bus/hp_dio/hp98544.cpp
index 9565d4632d2..83cd9f25fe7 100644
--- a/src/devices/bus/hp_dio/hp98544.cpp
+++ b/src/devices/bus/hp_dio/hp98544.cpp
@@ -101,16 +101,16 @@ void dio16_98544_device::device_start()
save_item(NAME(m_intreg));
dio().install_memory(
0x200000, 0x2fffff,
- read16_delegate(FUNC(topcat_device::vram_r), static_cast<topcat_device*>(m_topcat)),
- write16_delegate(FUNC(topcat_device::vram_w), static_cast<topcat_device*>(m_topcat)));
+ read16_delegate(*m_topcat, FUNC(topcat_device::vram_r)),
+ write16_delegate(*m_topcat, FUNC(topcat_device::vram_w)));
dio().install_memory(
0x560000, 0x563fff,
- read16_delegate(FUNC(dio16_98544_device::rom_r), this),
- write16_delegate(FUNC(dio16_98544_device::rom_w), this));
+ read16_delegate(*this, FUNC(dio16_98544_device::rom_r)),
+ write16_delegate(*this, FUNC(dio16_98544_device::rom_w)));
dio().install_memory(
0x564000, 0x567fff,
- read16_delegate(FUNC(topcat_device::ctrl_r), static_cast<topcat_device*>(m_topcat)),
- write16_delegate(FUNC(topcat_device::ctrl_w), static_cast<topcat_device*>(m_topcat)));
+ read16_delegate(*m_topcat, FUNC(topcat_device::ctrl_r)),
+ write16_delegate(*m_topcat, FUNC(topcat_device::ctrl_w)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/hp_dio/hp98550.cpp b/src/devices/bus/hp_dio/hp98550.cpp
index 28d87d5a52f..ed91b99ca3f 100644
--- a/src/devices/bus/hp_dio/hp98550.cpp
+++ b/src/devices/bus/hp_dio/hp98550.cpp
@@ -87,23 +87,23 @@ void dio32_98550_device::device_start()
dio().install_memory(
0x200000, 0x3fffff,
- read16_delegate(FUNC(dio32_98550_device::vram_r), this),
- write16_delegate(FUNC(dio32_98550_device::vram_w), this));
+ read16_delegate(*this, FUNC(dio32_98550_device::vram_r)),
+ write16_delegate(*this, FUNC(dio32_98550_device::vram_w)));
dio().install_memory(
0x560000, 0x56ffff,
- read16_delegate(FUNC(dio32_98550_device::rom_r), this),
- write16_delegate(FUNC(dio32_98550_device::rom_w), this));
+ read16_delegate(*this, FUNC(dio32_98550_device::rom_r)),
+ write16_delegate(*this, FUNC(dio32_98550_device::rom_w)));
dio().install_memory(
0x564000, 0x5648ff,
- read16_delegate(FUNC(dio32_98550_device::catseye_r), this),
- write16_delegate(FUNC(dio32_98550_device::catseye_w), this));
+ read16_delegate(*this, FUNC(dio32_98550_device::catseye_r)),
+ write16_delegate(*this, FUNC(dio32_98550_device::catseye_w)));
dio().install_memory(
0x566000, 0x5660ff,
- read16_delegate(FUNC(nereid_device::ctrl_r), &(*m_nereid)),
- write16_delegate(FUNC(nereid_device::ctrl_w), &(*m_nereid)));
+ read16_delegate(*m_nereid, FUNC(nereid_device::ctrl_r)),
+ write16_delegate(*m_nereid, FUNC(nereid_device::ctrl_w)));
}
void dio32_98550_device::device_reset()
diff --git a/src/devices/bus/hp_dio/hp98603a.cpp b/src/devices/bus/hp_dio/hp98603a.cpp
index ac04f7479bd..9295fc1606d 100644
--- a/src/devices/bus/hp_dio/hp98603a.cpp
+++ b/src/devices/bus/hp_dio/hp98603a.cpp
@@ -67,8 +67,8 @@ void dio16_98603a_device::device_reset()
{
m_rom = device().machine().root_device().memregion(this->subtag(HP98603A_ROM_REGION).c_str())->base();
dio().install_memory(0x80000, 0xfffff,
- read16_delegate(FUNC(dio16_98603a_device::rom_r), this),
- write16_delegate(FUNC(dio16_98603a_device::rom_w), this));
+ read16_delegate(*this, FUNC(dio16_98603a_device::rom_r)),
+ write16_delegate(*this, FUNC(dio16_98603a_device::rom_w)));
}
READ16_MEMBER(dio16_98603a_device::rom_r)
diff --git a/src/devices/bus/hp_dio/hp98603b.cpp b/src/devices/bus/hp_dio/hp98603b.cpp
index 6c8cff6b95a..638f5fba6e7 100644
--- a/src/devices/bus/hp_dio/hp98603b.cpp
+++ b/src/devices/bus/hp_dio/hp98603b.cpp
@@ -61,8 +61,9 @@ void dio16_98603b_device::device_start()
void dio16_98603b_device::device_reset()
{
m_rom = device().machine().root_device().memregion(this->subtag(HP98603B_ROM_REGION).c_str())->base();
- dio().install_memory(0x100000, 0x1fffff, read16_delegate(FUNC(dio16_98603b_device::rom_r), this),
- write16_delegate(FUNC(dio16_98603b_device::rom_w), this));
+ dio().install_memory(0x100000, 0x1fffff,
+ read16_delegate(*this, FUNC(dio16_98603b_device::rom_r)),
+ write16_delegate(*this, FUNC(dio16_98603b_device::rom_w)));
}
READ16_MEMBER(dio16_98603b_device::rom_r)
diff --git a/src/devices/bus/hp_dio/hp98620.cpp b/src/devices/bus/hp_dio/hp98620.cpp
index fcd0e9d95aa..8988ef56266 100644
--- a/src/devices/bus/hp_dio/hp98620.cpp
+++ b/src/devices/bus/hp_dio/hp98620.cpp
@@ -75,8 +75,8 @@ void dio16_98620_device::device_reset()
if (!m_installed_io)
{
program_space().install_readwrite_handler(0x500000, 0x50020f,
- read16_delegate(FUNC(dio16_98620_device::dma_r), this),
- write16_delegate(FUNC(dio16_98620_device::dma_w), this));
+ read16_delegate(*this, FUNC(dio16_98620_device::dma_r)),
+ write16_delegate(*this, FUNC(dio16_98620_device::dma_w)));
m_installed_io = true;
}
m_control = 0;
diff --git a/src/devices/bus/hp_dio/hp98643.cpp b/src/devices/bus/hp_dio/hp98643.cpp
index 57bc4d1a283..ae468d3d490 100644
--- a/src/devices/bus/hp_dio/hp98643.cpp
+++ b/src/devices/bus/hp_dio/hp98643.cpp
@@ -194,19 +194,19 @@ void dio16_98643_device::addrmap(address_map &map)
{
map(0x0000, 0x0001).rw(FUNC(dio16_98643_device::id_r), FUNC(dio16_98643_device::id_w));
map(0x0002, 0x0003).rw(FUNC(dio16_98643_device::sc_r), FUNC(dio16_98643_device::sc_w));
- map(0x4000, 0x4003).lrw16("lance",
- [this](address_space &space, offs_t offset, u16 mem_mask) -> u16 {
- m_sc |= REG_STATUS_ACK;
- return m_lance->regs_r(space, offset, mem_mask);
- },
- [this](address_space &space, offs_t offset, u16 data, u16 mem_mask) {
- m_sc |= REG_STATUS_ACK;
- return m_lance->regs_w(space, offset, data, mem_mask);
- });
-
- map(0x8000, 0xbfff).lrw16("lanceram",
- [this](offs_t offset) -> u16 { return m_ram[offset]; },
- [this](offs_t offset, u16 data, u16 mem_mask) { COMBINE_DATA(&m_ram[offset]); });
+ map(0x4000, 0x4003).lrw16(
+ [this] (address_space &space, offs_t offset, u16 mem_mask) -> u16 {
+ m_sc |= REG_STATUS_ACK;
+ return m_lance->regs_r(space, offset, mem_mask);
+ }, "lance_r",
+ [this] (address_space &space, offs_t offset, u16 data, u16 mem_mask) {
+ m_sc |= REG_STATUS_ACK;
+ return m_lance->regs_w(space, offset, data, mem_mask);
+ }, "lance_w");
+
+ map(0x8000, 0xbfff).lrw16(
+ NAME([this] (offs_t offset) -> u16 { return m_ram[offset]; }),
+ NAME([this] (offs_t offset, u16 data, u16 mem_mask) { COMBINE_DATA(&m_ram[offset]); }));
map(0xc000, 0xffff).rw(FUNC(dio16_98643_device::novram_r), FUNC(dio16_98643_device::novram_w));
}
diff --git a/src/devices/bus/hp_dio/hp98644.cpp b/src/devices/bus/hp_dio/hp98644.cpp
index d3c347b6d31..8545220b074 100644
--- a/src/devices/bus/hp_dio/hp98644.cpp
+++ b/src/devices/bus/hp_dio/hp98644.cpp
@@ -161,8 +161,8 @@ void dio16_98644_device::device_reset()
dio().install_memory(
0x600000 + (code * 0x10000),
0x6007ff + (code * 0x10000),
- read16_delegate(FUNC(dio16_98644_device::io_r), this),
- write16_delegate(FUNC(dio16_98644_device::io_w), this));
+ read16_delegate(*this, FUNC(dio16_98644_device::io_r)),
+ write16_delegate(*this, FUNC(dio16_98644_device::io_w)));
m_installed_io = true;
}
}
diff --git a/src/devices/bus/hp_dio/human_interface.cpp b/src/devices/bus/hp_dio/human_interface.cpp
index 509a2151a3b..3bf1823ffae 100644
--- a/src/devices/bus/hp_dio/human_interface.cpp
+++ b/src/devices/bus/hp_dio/human_interface.cpp
@@ -115,12 +115,12 @@ human_interface_device::human_interface_device(const machine_config &mconfig, de
void human_interface_device::device_start()
{
program_space().install_readwrite_handler(0x420000, 0x420003, 0x0003, 0xfffc, 0,
- read8_delegate(FUNC(upi41_cpu_device::upi41_master_r), &(*m_iocpu)),
- write8_delegate(FUNC(upi41_cpu_device::upi41_master_w), &(*m_iocpu)), 0x00ff00ff);
+ read8_delegate(*m_iocpu, FUNC(upi41_cpu_device::upi41_master_r)),
+ write8_delegate(*m_iocpu, FUNC(upi41_cpu_device::upi41_master_w)), 0x00ff00ff);
program_space().install_readwrite_handler(0x470000, 0x47001f, 0x1f, 0xffe0, 0,
- read8_delegate(FUNC(human_interface_device::gpib_r), this),
- write8_delegate(FUNC(human_interface_device::gpib_w), this), 0x00ff00ff);
+ read8_delegate(*this, FUNC(human_interface_device::gpib_r)),
+ write8_delegate(*this, FUNC(human_interface_device::gpib_w)), 0x00ff00ff);
save_item(NAME(m_hil_read));
save_item(NAME(m_kbd_nmi));
diff --git a/src/devices/bus/intellec4/insdatastor.cpp b/src/devices/bus/intellec4/insdatastor.cpp
index f271ef4b91f..9f4e3c53072 100644
--- a/src/devices/bus/intellec4/insdatastor.cpp
+++ b/src/devices/bus/intellec4/insdatastor.cpp
@@ -155,7 +155,7 @@ void imm4_22_device::map_ram_io()
{
memory_space().install_ram(start << 8, (start << 8) | 0x00ffU, m_memory);
status_space().install_ram(start << 6, (start << 6) | 0x003fU, m_status);
- ram_ports_space().install_write_handler(start << 2, (start << 2) | 0x03U, write8_delegate(FUNC(imm4_22_device::ram_out), this));
+ ram_ports_space().install_write_handler(start << 2, (start << 2) | 0x03U, write8_delegate(*this, FUNC(imm4_22_device::ram_out)));
}
offs_t const rom_ports_start(offs_t(m_rom_page) << 6);
@@ -163,7 +163,7 @@ void imm4_22_device::map_ram_io()
offs_t const rom_ports_mirror(m_rom_mirror ? 0x1f00U : 0x0700U);
rom_ports_space().install_readwrite_handler(
rom_ports_start, rom_ports_end, 0U, rom_ports_mirror, 0U,
- read8_delegate(FUNC(imm4_22_device::rom_in), this), write8_delegate(FUNC(imm4_22_device::rom_out), this));
+ read8_delegate(*this, FUNC(imm4_22_device::rom_in)), write8_delegate(*this, FUNC(imm4_22_device::rom_out)));
if (is_loaded())
map_prom();
diff --git a/src/devices/bus/intellec4/tapereader.cpp b/src/devices/bus/intellec4/tapereader.cpp
index dad9c62f494..581735b39f0 100644
--- a/src/devices/bus/intellec4/tapereader.cpp
+++ b/src/devices/bus/intellec4/tapereader.cpp
@@ -50,10 +50,10 @@ void imm4_90_device::device_start()
save_item(NAME(m_advance));
save_item(NAME(m_stepping));
- rom_ports_space().install_read_handler(0x0040U, 0x004fU, 0x0000U, 0x1f00U, 0x0000, read8_delegate(FUNC(imm4_90_device::rom4_in), this));
- rom_ports_space().install_read_handler(0x0060U, 0x006fU, 0x0000U, 0x1f00U, 0x0000, read8_delegate(FUNC(imm4_90_device::rom6_in), this));
- rom_ports_space().install_read_handler(0x0070U, 0x007fU, 0x0000U, 0x1f00U, 0x0000, read8_delegate(FUNC(imm4_90_device::rom7_in), this));
- rom_ports_space().install_write_handler(0x0040U, 0x004fU, 0x0000U, 0x1f00U, 0x0000, write8_delegate(FUNC(imm4_90_device::rom4_out), this));
+ rom_ports_space().install_read_handler(0x0040U, 0x004fU, 0x0000U, 0x1f00U, 0x0000, read8_delegate(*this, FUNC(imm4_90_device::rom4_in)));
+ rom_ports_space().install_read_handler(0x0060U, 0x006fU, 0x0000U, 0x1f00U, 0x0000, read8_delegate(*this, FUNC(imm4_90_device::rom6_in)));
+ rom_ports_space().install_read_handler(0x0070U, 0x007fU, 0x0000U, 0x1f00U, 0x0000, read8_delegate(*this, FUNC(imm4_90_device::rom7_in)));
+ rom_ports_space().install_write_handler(0x0040U, 0x004fU, 0x0000U, 0x1f00U, 0x0000, write8_delegate(*this, FUNC(imm4_90_device::rom4_out)));
}
diff --git a/src/devices/bus/interpro/keyboard/lle.cpp b/src/devices/bus/interpro/keyboard/lle.cpp
index 595130b4c74..8edfb8c1ab6 100644
--- a/src/devices/bus/interpro/keyboard/lle.cpp
+++ b/src/devices/bus/interpro/keyboard/lle.cpp
@@ -480,11 +480,11 @@ void lle_device_base::ext_map(address_map &map)
// not clear what these addresses correspond to, possibly
// used in manufacturer testing?
if (VERBOSE & LOG_GENERAL)
- map(0x7fe, 0x7ff).lw8("write",
- [this](address_space &space, offs_t offset, u8 data, u8 mem_mask)
- {
- LOG("write offset 0x%03f data 0x%02x (%s)\n", offset, data, machine().describe_context());
- });
+ map(0x7fe, 0x7ff).lw8(
+ [this] (offs_t offset, u8 data, u8 mem_mask)
+ {
+ LOG("write offset 0x%03f data 0x%02x (%s)\n", offset, data, machine().describe_context());
+ }, "write");
}
READ_LINE_MEMBER(lle_device_base::t0_r)
diff --git a/src/devices/bus/interpro/sr/edge.cpp b/src/devices/bus/interpro/sr/edge.cpp
index 4c6453a5341..b8927438efc 100644
--- a/src/devices/bus/interpro/sr/edge.cpp
+++ b/src/devices/bus/interpro/sr/edge.cpp
@@ -301,14 +301,14 @@ void edge1_device_base::map(address_map &map)
void edge1_device_base::map_dynamic(address_map &map)
{
// TODO: map using lambdas until mixed-size submaps work
- map(0x00000000, 0x0001ffff).lrw8("sram",
- [this](address_space &space, offs_t offset, u8 mem_mask) { return m_sram->read(offset); },
- [this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_sram->write(offset, data); });
+ map(0x00000000, 0x0001ffff).lrw8(
+ NAME([this](address_space &space, offs_t offset, u8 mem_mask) { return m_sram->read(offset); }),
+ NAME([this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_sram->write(offset, data); }));
- map(0x01000000, 0x013fffff).lrw8("vram",
- [this](address_space &space, offs_t offset, u8 mem_mask) { return m_vram->read((offset >> 2) | (offset & 0x3)); },
- [this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_vram->write((offset >> 2) | (offset & 0x3), data); });
+ map(0x01000000, 0x013fffff).lrw8(
+ NAME([this](address_space &space, offs_t offset, u8 mem_mask) { return m_vram->read((offset >> 2) | (offset & 0x3)); }),
+ NAME([this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_vram->write((offset >> 2) | (offset & 0x3), data); }));
//map(0x02028200, 0x0202827f).lr32("idprom",
// [this](address_space &space, offs_t offset, u8 mem_mask) { return memregion("idprom")->as_u32(offset); });
@@ -350,8 +350,8 @@ void edge2plus_processor_device_base::map(address_map &map)
{
map(0x000, 0x003).rw(FUNC(edge2plus_processor_device_base::reg0_r), FUNC(edge2plus_processor_device_base::reg0_w));
- map(0x008, 0x008).lr8("mouse_x", []() { return 0; });
- map(0x00c, 0x00c).lr8("mouse_y", []() { return 0; });
+ map(0x008, 0x008).lr8([]() { return 0; }, "mouse_x");
+ map(0x00c, 0x00c).lr8([]() { return 0; }, "mouse_y");
map(0x010, 0x01f).rw("scc", FUNC(z80scc_device::dc_ab_r), FUNC(z80scc_device::dc_ab_w)).umask32(0x000000ff);
@@ -377,18 +377,18 @@ void edge2plus_framebuffer_device_base::map_dynamic(address_map &map)
{
// TODO: map using lambdas until mixed-size submaps work
- map(0x00000000, 0x0003ffff).lrw8("sram",
- [this](address_space &space, offs_t offset, u8 mem_mask) { return m_sram->read(offset); },
- [this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_sram->write(offset, data); });
+ map(0x00000000, 0x0003ffff).lrw8(
+ NAME([this](address_space &space, offs_t offset, u8 mem_mask) { return m_sram->read(offset); }),
+ NAME([this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_sram->write(offset, data); }));
- map(0x01000000, 0x01ffffff).lrw8("vram",
- [this](address_space &space, offs_t offset, u8 mem_mask) { return m_vram->read(offset); },
- [this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_vram->write(offset, data); });
+ map(0x01000000, 0x01ffffff).lrw8(
+ NAME([this](address_space &space, offs_t offset, u8 mem_mask) { return m_vram->read(offset); }),
+ NAME([this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_vram->write(offset, data); }));
map(0x02028088, 0x0202808b).w(FUNC(edge2plus_framebuffer_device_base::select_w));
- map(0x02028200, 0x0202827f).lr32("idprom",
- [this](address_space &space, offs_t offset, u8 mem_mask) { return m_select == 0 ? memregion("idprom")->as_u32(offset) : space.unmap(); });
+ map(0x02028200, 0x0202827f).lr32(
+ NAME([this](address_space &space, offs_t offset, u8 mem_mask) { return m_select == 0 ? memregion("idprom")->as_u32(offset) : space.unmap(); }));
map(0x02028290, 0x02028293).w(FUNC(edge2plus_framebuffer_device_base::lut_select_w));
map(0x02028300, 0x02028303).w(FUNC(edge2plus_framebuffer_device_base::unk_300_w));
@@ -832,12 +832,12 @@ WRITE_LINE_MEMBER(edge2plus_processor_device_base::holda)
void edge2plus_processor_device_base::dsp1_map(address_map &map)
{
- map(0x00000, 0x3ffff).lrw8("sram",
- [this](address_space &space, offs_t offset, u8 mem_mask) { return m_sram->read(offset); },
- [this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_sram->write(offset, data); });
+ map(0x00000, 0x3ffff).lrw8(
+ NAME([this](address_space &space, offs_t offset, u8 mem_mask) { return m_sram->read(offset); }),
+ NAME([this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_sram->write(offset, data); }));
- map(0x40000, 0x7ffff).lr32("prg1",
- [this](address_space &space, offs_t offset, u32 mem_mask) { return memregion("prg1")->as_u32(offset); });
+ map(0x40000, 0x7ffff).lr32(
+ NAME([this](address_space &space, offs_t offset, u32 mem_mask) { return memregion("prg1")->as_u32(offset); }));
}
diff --git a/src/devices/bus/interpro/sr/sr.h b/src/devices/bus/interpro/sr/sr.h
index 858590f5075..feb8724547e 100644
--- a/src/devices/bus/interpro/sr/sr.h
+++ b/src/devices/bus/interpro/sr/sr.h
@@ -75,7 +75,7 @@ public:
offs_t end = start + (CBUS_SIZE - 1);
// install the idprom region
- read32_delegate idprom_r([idprom](address_space &space, offs_t offset, u32 mem_mask) { return idprom->as_u32(offset); }, idprom->name());
+ read32_delegate idprom_r(*this, [idprom] (address_space &space, offs_t offset, u32 mem_mask) { return idprom->as_u32(offset); }, idprom->name());
m_main_space->install_read_handler(start, start | 0x7f, idprom_r);
m_io_space->install_read_handler(start, start | 0x7f, idprom_r);
@@ -171,7 +171,7 @@ public:
offs_t end = start + (SRX_SIZE - 1);
// install the idprom region
- read32_delegate idprom_r([idprom](address_space &space, offs_t offset, u32 mem_mask) { return idprom->as_u32(offset); }, idprom->name());
+ read32_delegate idprom_r(*this, [idprom] (address_space &space, offs_t offset, u32 mem_mask) { return idprom->as_u32(offset); }, idprom->name());
m_main_space->install_read_handler(start | 0x7f80, start | 0x7fff, idprom_r);
m_io_space->install_read_handler(start | 0x7f80, start | 0x7fff, idprom_r);
diff --git a/src/devices/bus/isa/3c503.cpp b/src/devices/bus/isa/3c503.cpp
index 34202e2246d..44955657475 100644
--- a/src/devices/bus/isa/3c503.cpp
+++ b/src/devices/bus/isa/3c503.cpp
@@ -32,8 +32,8 @@ void el2_3c503_device::device_start() {
memset(m_rom, 0, 8*1024); // empty
m_dp8390->set_mac(mac);
set_isa_device();
- m_isa->install_device(0x0300, 0x030f, read8_delegate(FUNC(el2_3c503_device::el2_3c503_loport_r), this), write8_delegate(FUNC(el2_3c503_device::el2_3c503_loport_w), this));
- m_isa->install_device(0x0700, 0x070f, read8_delegate(FUNC(el2_3c503_device::el2_3c503_hiport_r), this), write8_delegate(FUNC(el2_3c503_device::el2_3c503_hiport_w), this));
+ m_isa->install_device(0x0300, 0x030f, read8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_loport_r)), write8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_loport_w)));
+ m_isa->install_device(0x0700, 0x070f, read8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_hiport_r)), write8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_hiport_w)));
// TODO: This is wrong, fix if anything actually uses it
// DMA can change in runtime
diff --git a/src/devices/bus/isa/3c505.cpp b/src/devices/bus/isa/3c505.cpp
index 6dd695165c2..8efc0471ff4 100644
--- a/src/devices/bus/isa/3c505.cpp
+++ b/src/devices/bus/isa/3c505.cpp
@@ -327,19 +327,19 @@ void isa16_3c505_device::map_io(address_map &map)
* A read or write to I/O location 00H will cause an active transition on
* the CA input.
*/
- map(0x0000, 0x0000).lrw8("ca",
- [this]()
- {
- m_net->ca(1);
- m_net->ca(0);
-
- return 0;
- },
- [this](u8 data)
- {
- m_net->ca(1);
- m_net->ca(0);
- });
+ map(0x0000, 0x0000).lrw8(
+ NAME([this]()
+ {
+ m_net->ca(1);
+ m_net->ca(0);
+
+ return 0;
+ }),
+ NAME([this](u8 data)
+ {
+ m_net->ca(1);
+ m_net->ca(0);
+ }));
/*
* A read or write to I/O location 80H will produce a CAS before RAS cycle
diff --git a/src/devices/bus/isa/adlib.cpp b/src/devices/bus/isa/adlib.cpp
index 6a900b0e09d..192f6091ad5 100644
--- a/src/devices/bus/isa/adlib.cpp
+++ b/src/devices/bus/isa/adlib.cpp
@@ -72,7 +72,7 @@ isa8_adlib_device::isa8_adlib_device(const machine_config &mconfig, const char *
void isa8_adlib_device::device_start()
{
set_isa_device();
- m_isa->install_device(0x0388, 0x0389, read8_delegate( FUNC(isa8_adlib_device::ym3812_16_r), this ), write8_delegate( FUNC(isa8_adlib_device::ym3812_16_w), this ) );
+ m_isa->install_device(0x0388, 0x0389, read8_delegate(*this, FUNC(isa8_adlib_device::ym3812_16_r)), write8_delegate(*this, FUNC(isa8_adlib_device::ym3812_16_w)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/isa/aga.cpp b/src/devices/bus/isa/aga.cpp
index 0e974bf5f41..78e87d54213 100644
--- a/src/devices/bus/isa/aga.cpp
+++ b/src/devices/bus/isa/aga.cpp
@@ -103,9 +103,9 @@ void isa8_aga_device::device_start()
m_videoram = std::make_unique<uint8_t[]>(0x10000);
set_isa_device();
- m_isa->install_memory(0xb0000, 0xbffff, read8_delegate(FUNC(isa8_aga_device::pc_aga_videoram_r),this), write8_delegate(FUNC(isa8_aga_device::pc_aga_videoram_w),this));
- m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(isa8_aga_device::pc_aga_mda_r), this), write8_delegate(FUNC(isa8_aga_device::pc_aga_mda_w), this));
- m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(isa8_aga_device::pc_aga_cga_r), this), write8_delegate(FUNC(isa8_aga_device::pc_aga_cga_w), this));
+ m_isa->install_memory(0xb0000, 0xbffff, read8_delegate(*this, FUNC(isa8_aga_device::pc_aga_videoram_r)), write8_delegate(*this, FUNC(isa8_aga_device::pc_aga_videoram_w)));
+ m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_aga_device::pc_aga_mda_r)), write8_delegate(*this, FUNC(isa8_aga_device::pc_aga_mda_w)));
+ m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_aga_device::pc_aga_cga_r)), write8_delegate(*this, FUNC(isa8_aga_device::pc_aga_cga_w)));
/* Initialise the cga palette */
@@ -181,9 +181,9 @@ void isa8_aga_pc200_device::device_start()
m_videoram = std::make_unique<uint8_t[]>(0x10000);
set_isa_device();
- m_isa->install_memory(0xb0000, 0xbffff, read8_delegate(FUNC(isa8_aga_pc200_device::pc200_videoram_r),this), write8_delegate(FUNC(isa8_aga_pc200_device::pc200_videoram_w),this));
- m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(isa8_aga_pc200_device::pc_aga_mda_r), this), write8_delegate(FUNC(isa8_aga_pc200_device::pc_aga_mda_w), this));
- m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(isa8_aga_pc200_device::pc200_cga_r), this), write8_delegate(FUNC(isa8_aga_pc200_device::pc200_cga_w), this));
+ m_isa->install_memory(0xb0000, 0xbffff, read8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_videoram_r)), write8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_videoram_w)));
+ m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_aga_pc200_device::pc_aga_mda_r)), write8_delegate(*this, FUNC(isa8_aga_pc200_device::pc_aga_mda_w)));
+ m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_cga_r)), write8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_cga_w)));
/* Initialise the cga palette */
@@ -271,7 +271,7 @@ void isa8_aga_device::device_add_mconfig(machine_config &config)
m_mc6845->set_screen(AGA_SCREEN_NAME);
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8);
- m_mc6845->set_update_row_callback(FUNC(isa8_aga_device::aga_update_row), this);
+ m_mc6845->set_update_row_callback(FUNC(isa8_aga_device::aga_update_row));
m_mc6845->out_hsync_callback().set(FUNC(isa8_aga_device::hsync_changed));
m_mc6845->out_vsync_callback().set(FUNC(isa8_aga_device::vsync_changed));
}
diff --git a/src/devices/bus/isa/aha1542c.cpp b/src/devices/bus/isa/aha1542c.cpp
index d5c35166b1f..d0bb112728c 100644
--- a/src/devices/bus/isa/aha1542c.cpp
+++ b/src/devices/bus/isa/aha1542c.cpp
@@ -228,7 +228,7 @@ void aha1542c_device::z84c0010_mem(address_map &map)
map(0xa000, 0xa000).portr("SWITCHES");
map(0xb000, 0xb000).w(FUNC(aha1542c_device::local_latch_w));
map(0xe000, 0xe0ff).ram(); // probably PC<->Z80 communication area
- map(0xe003, 0xe003).lr8("e003_r", []() { return 0x20; });
+ map(0xe003, 0xe003).lr8(NAME([] () { return 0x20; }));
}
u8 aha1542cp_device::eeprom_r()
@@ -377,8 +377,9 @@ void aha1542c_device::device_start()
{
set_isa_device();
m_isa->install_rom(this, 0xdc000, 0xdffff, "aha1542", "aha1542");
- m_isa->install_device(0x330, 0x333, read8_delegate(FUNC( aha1542cf_device::aha1542_r ), this),
- write8_delegate(FUNC( aha1542cf_device::aha1542_w ), this) );
+ m_isa->install_device(0x330, 0x333,
+ read8_delegate(*this, FUNC(aha1542cf_device::aha1542_r)),
+ write8_delegate(*this, FUNC(aha1542cf_device::aha1542_w)));
}
diff --git a/src/devices/bus/isa/asc88.cpp b/src/devices/bus/isa/asc88.cpp
index c04570725f8..8843aad29a1 100644
--- a/src/devices/bus/isa/asc88.cpp
+++ b/src/devices/bus/isa/asc88.cpp
@@ -53,11 +53,11 @@ void asc88_device::device_reset()
m_isa->install_rom(this, baseaddr, baseaddr | 0x37ff, "asc88", "bios");
m_isa->install_bank(baseaddr | 0x3800, baseaddr | 0x3fef, "ascram", m_ram.get());
m_isa->install_memory(baseaddr | 0x3ff0, baseaddr | 0x3ff7,
- read8sm_delegate(FUNC(ncr5380n_device::read), &*m_scsic),
- write8sm_delegate(FUNC(ncr5380n_device::write), &*m_scsic));
+ read8sm_delegate(*m_scsic, FUNC(ncr5380n_device::read)),
+ write8sm_delegate(*m_scsic, FUNC(ncr5380n_device::write)));
m_isa->install_memory(baseaddr | 0x3ff8, baseaddr | 0x3ff8,
- read8smo_delegate(FUNC(asc88_device::eeprom_r), this),
- write8smo_delegate(FUNC(asc88_device::control_w), this));
+ read8smo_delegate(*this, FUNC(asc88_device::eeprom_r)),
+ write8smo_delegate(*this, FUNC(asc88_device::control_w)));
control_w(0);
}
diff --git a/src/devices/bus/isa/cga.cpp b/src/devices/bus/isa/cga.cpp
index 78c35957884..5b825bac73f 100644
--- a/src/devices/bus/isa/cga.cpp
+++ b/src/devices/bus/isa/cga.cpp
@@ -273,10 +273,10 @@ void isa8_cga_device::device_add_mconfig(machine_config &config)
m_crtc->set_screen(nullptr);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(isa8_cga_device::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(isa8_cga_device::crtc_update_row));
m_crtc->out_hsync_callback().set(FUNC(isa8_cga_device::hsync_changed));
m_crtc->out_vsync_callback().set(FUNC(isa8_cga_device::vsync_changed));
- m_crtc->set_reconfigure_callback(FUNC(isa8_cga_device::reconfigure), this);
+ m_crtc->set_reconfigure_callback(FUNC(isa8_cga_device::reconfigure));
}
ioport_constructor isa8_cga_device::device_input_ports() const
@@ -331,7 +331,7 @@ void isa8_cga_device::device_start()
set_isa_device();
m_vram.resize(m_vram_size);
- m_isa->install_device(0x3d0, 0x3df, read8_delegate( FUNC(isa8_cga_device::io_read), this ), write8_delegate( FUNC(isa8_cga_device::io_write), this ) );
+ m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_cga_device::io_read)), write8_delegate(*this, FUNC(isa8_cga_device::io_write)));
m_isa->install_bank(0xb8000, 0xb8000 + (std::min<size_t>)(0x8000, m_vram_size) - 1, "bank_cga", &m_vram[0]);
if(m_vram_size == 0x4000)
m_isa->install_bank(0xbc000, 0xbffff, "bank_cga", &m_vram[0]);
@@ -1346,13 +1346,13 @@ void isa8_cga_pc1512_device::device_start()
{
isa8_cga_device::device_start();
- m_isa->install_device(0x3d0, 0x3df, read8_delegate( FUNC(isa8_cga_pc1512_device::io_read), this ), write8_delegate( FUNC(isa8_cga_pc1512_device::io_write), this ) );
+ m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_cga_pc1512_device::io_read)), write8_delegate(*this, FUNC(isa8_cga_pc1512_device::io_write)));
m_isa->install_bank(0xb8000, 0xbbfff, "bank1", &m_vram[0]);
address_space &space = m_isa->memspace();
- space.install_write_handler( 0xb8000, 0xbbfff, write8_delegate( FUNC(isa8_cga_pc1512_device::vram_w), this ) );
- space.install_write_handler( 0xbc000, 0xbffff, write8_delegate( FUNC(isa8_cga_pc1512_device::vram_w), this ) );
+ space.install_write_handler(0xb8000, 0xbbfff, write8_delegate(*this, FUNC(isa8_cga_pc1512_device::vram_w)));
+ space.install_write_handler(0xbc000, 0xbffff, write8_delegate(*this, FUNC(isa8_cga_pc1512_device::vram_w)));
}
void isa8_cga_pc1512_device::device_reset()
@@ -1485,7 +1485,7 @@ void isa8_wyse700_device::device_start()
{
isa8_cga_device::device_start();
- m_isa->install_device(0x3d0, 0x3df, read8_delegate( FUNC(isa8_wyse700_device::io_read), this ), write8_delegate( FUNC(isa8_wyse700_device::io_write), this ) );
+ m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_wyse700_device::io_read)), write8_delegate(*this, FUNC(isa8_wyse700_device::io_write)));
m_isa->install_bank(0xa0000, 0xaffff, "bank_wy1", &m_vram[0x00000]);
m_isa->install_bank(0xb0000, 0xbffff, "bank_cga", &m_vram[0x10000]);
}
@@ -1547,7 +1547,7 @@ void isa8_ec1841_0002_device::device_start()
{
isa8_cga_device::device_start();
- m_isa->install_device(0x3d0, 0x3df, read8_delegate( FUNC(isa8_ec1841_0002_device::io_read), this ), write8_delegate( FUNC(isa8_ec1841_0002_device::io_write), this ) );
+ m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_ec1841_0002_device::io_read)), write8_delegate(*this, FUNC(isa8_ec1841_0002_device::io_write)));
}
void isa8_ec1841_0002_device::device_reset()
@@ -1580,12 +1580,12 @@ WRITE8_MEMBER( isa8_ec1841_0002_device::io_write )
m_p3df = data;
if (data & 1) {
m_isa->install_memory(0xb8000, 0xb9fff,
- read8_delegate( FUNC(isa8_ec1841_0002_device::char_ram_read), this),
- write8_delegate(FUNC(isa8_ec1841_0002_device::char_ram_write), this) );
+ read8_delegate( *this, FUNC(isa8_ec1841_0002_device::char_ram_read)),
+ write8_delegate(*this, FUNC(isa8_ec1841_0002_device::char_ram_write)));
if(m_vram_size == 0x4000)
m_isa->install_memory(0xbc000, 0xbdfff,
- read8_delegate( FUNC(isa8_ec1841_0002_device::char_ram_read), this),
- write8_delegate(FUNC(isa8_ec1841_0002_device::char_ram_write), this) );
+ read8_delegate( *this, FUNC(isa8_ec1841_0002_device::char_ram_read)),
+ write8_delegate(*this, FUNC(isa8_ec1841_0002_device::char_ram_write)));
} else {
m_isa->install_bank(0xb8000, 0xb8000 + (std::min<size_t>)(0x8000, m_vram_size) - 1, "bank_cga", &m_vram[0]);
if(m_vram_size == 0x4000)
@@ -1699,7 +1699,7 @@ void isa8_cga_m24_device::device_add_mconfig(machine_config &config)
isa8_cga_device::device_add_mconfig(config);
subdevice<screen_device>(CGA_SCREEN_NAME)->set_raw(XTAL(14'318'181), 912, 0, 640, 462, 0, 400);
- m_crtc->set_reconfigure_callback(FUNC(isa8_cga_m24_device::reconfigure), this);
+ m_crtc->set_reconfigure_callback(FUNC(isa8_cga_m24_device::reconfigure));
}
isa8_cga_m24_device::isa8_cga_m24_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
@@ -1912,8 +1912,8 @@ const tiny_rom_entry *isa8_cga_cportiii_device::device_rom_region() const
void isa8_cga_cportiii_device::device_reset()
{
isa8_cga_m24_device::device_reset();
- m_isa->install_device(0x13c6, 0x13c7, read8_delegate(FUNC(isa8_cga_cportiii_device::port_13c6_r), this), write8_delegate(FUNC(isa8_cga_cportiii_device::port_13c6_w), this));
- m_isa->install_device(0x23c6, 0x23c7, read8_delegate(FUNC(isa8_cga_cportiii_device::port_23c6_r), this), write8_delegate(FUNC(isa8_cga_cportiii_device::port_23c6_w), this));
+ m_isa->install_device(0x13c6, 0x13c7, read8_delegate(*this, FUNC(isa8_cga_cportiii_device::port_13c6_r)), write8_delegate(*this, FUNC(isa8_cga_cportiii_device::port_13c6_w)));
+ m_isa->install_device(0x23c6, 0x23c7, read8_delegate(*this, FUNC(isa8_cga_cportiii_device::port_23c6_r)), write8_delegate(*this, FUNC(isa8_cga_cportiii_device::port_23c6_w)));
m_palette->set_pen_color(0, 100, 25, 0);
m_chr_gen_offset[0] = m_chr_gen_offset[2] = 0x0000;
m_chr_gen_offset[1] = m_chr_gen_offset[3] = 0x1000;
@@ -1947,7 +1947,7 @@ WRITE8_MEMBER(isa8_cga_cportiii_device::port_23c6_w)
{
m_mode2 = data & 1;
if(BIT(data, 3))
- m_isa->install_memory(0xb8000, 0xb9fff, read8_delegate(FUNC(isa8_cga_cportiii_device::char_ram_read), this), write8_delegate(FUNC(isa8_cga_cportiii_device::char_ram_write), this));
+ m_isa->install_memory(0xb8000, 0xb9fff, read8_delegate(*this, FUNC(isa8_cga_cportiii_device::char_ram_read)), write8_delegate(*this, FUNC(isa8_cga_cportiii_device::char_ram_write)));
else
m_isa->install_bank(0xb8000, 0xb8000 + 0x8000 - 1, "bank_cga", &m_vram[0]);
}
diff --git a/src/devices/bus/isa/chessmdr.cpp b/src/devices/bus/isa/chessmdr.cpp
index 00182d9e5ff..8af46575421 100644
--- a/src/devices/bus/isa/chessmdr.cpp
+++ b/src/devices/bus/isa/chessmdr.cpp
@@ -49,7 +49,7 @@ void isa8_chessmdr_device::device_reset()
{
// MAME doesn't allow reading ioport at device_start
u16 port = ioport("DSW")->read() * 0x40 + 0x10;
- m_isa->install_device(port, port+1, read8_delegate(FUNC(isa8_chessmdr_device::chessmdr_r), this), write8_delegate(FUNC(isa8_chessmdr_device::chessmdr_w), this));
+ m_isa->install_device(port, port+1, read8_delegate(*this, FUNC(isa8_chessmdr_device::chessmdr_r)), write8_delegate(*this, FUNC(isa8_chessmdr_device::chessmdr_w)));
m_installed = true;
}
diff --git a/src/devices/bus/isa/chessmsr.cpp b/src/devices/bus/isa/chessmsr.cpp
index bd878b18a67..fb1485045dc 100644
--- a/src/devices/bus/isa/chessmsr.cpp
+++ b/src/devices/bus/isa/chessmsr.cpp
@@ -60,7 +60,7 @@ void isa8_chessmsr_device::device_reset()
{
// MAME doesn't allow reading ioport at device_start
u16 port = ioport("DSW")->read() * 0x40 + 0x10;
- m_isa->install_device(port, port+1, read8_delegate(FUNC(isa8_chessmsr_device::chessmsr_r), this), write8_delegate(FUNC(isa8_chessmsr_device::chessmsr_w), this));
+ m_isa->install_device(port, port+1, read8_delegate(*this, FUNC(isa8_chessmsr_device::chessmsr_r)), write8_delegate(*this, FUNC(isa8_chessmsr_device::chessmsr_w)));
m_maincpu->set_unscaled_clock(ioport("CPU")->read() ? (32_MHz_XTAL) : (30_MHz_XTAL/2));
diff --git a/src/devices/bus/isa/com.cpp b/src/devices/bus/isa/com.cpp
index 6ab3c393ccd..4a1cc1ebd00 100644
--- a/src/devices/bus/isa/com.cpp
+++ b/src/devices/bus/isa/com.cpp
@@ -118,10 +118,10 @@ isa8_com_device::isa8_com_device(const machine_config &mconfig, device_type type
void isa8_com_device::device_start()
{
set_isa_device();
- m_isa->install_device(0x03f8, 0x03ff, read8sm_delegate(FUNC(ins8250_device::ins8250_r), subdevice<ins8250_uart_device>("uart_0")), write8sm_delegate(FUNC(ins8250_device::ins8250_w), subdevice<ins8250_uart_device>("uart_0")) );
- m_isa->install_device(0x02f8, 0x02ff, read8sm_delegate(FUNC(ins8250_device::ins8250_r), subdevice<ins8250_uart_device>("uart_1")), write8sm_delegate(FUNC(ins8250_device::ins8250_w), subdevice<ins8250_uart_device>("uart_1")) );
-// m_isa->install_device(0x03e8, 0x03ef, read8sm_delegate(FUNC(ins8250_device::ins8250_r), subdevice<ins8250_uart_device>("uart_2")), write8sm_delegate(FUNC(ins8250_device::ins8250_w), subdevice<ins8250_uart_device>("uart_2")) );
-// m_isa->install_device(0x02e8, 0x02ef, read8sm_delegate(FUNC(ins8250_device::ins8250_r), subdevice<ins8250_uart_device>("uart_3")), write8sm_delegate(FUNC(ins8250_device::ins8250_w), subdevice<ins8250_uart_device>("uart_3")) );
+ m_isa->install_device(0x03f8, 0x03ff, read8sm_delegate(*subdevice<ins8250_uart_device>("uart_0"), FUNC(ins8250_device::ins8250_r)), write8sm_delegate(*subdevice<ins8250_uart_device>("uart_0"), FUNC(ins8250_device::ins8250_w)));
+ m_isa->install_device(0x02f8, 0x02ff, read8sm_delegate(*subdevice<ins8250_uart_device>("uart_1"), FUNC(ins8250_device::ins8250_r)), write8sm_delegate(*subdevice<ins8250_uart_device>("uart_1"), FUNC(ins8250_device::ins8250_w)));
+// m_isa->install_device(0x03e8, 0x03ef, read8sm_delegate(*subdevice<ins8250_uart_device>("uart_2"), FUNC(ins8250_device::ins8250_r)), write8sm_delegate(*subdevice<ins8250_uart_device>("uart_2"), FUNC(ins8250_device::ins8250_w)));
+// m_isa->install_device(0x02e8, 0x02ef, read8sm_delegate(*subdevice<ins8250_uart_device>("uart_3"), FUNC(ins8250_device::ins8250_r)), write8sm_delegate(*subdevice<ins8250_uart_device>("uart_3"), FUNC(ins8250_device::ins8250_w)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/isa/dectalk.cpp b/src/devices/bus/isa/dectalk.cpp
index da45a2ec18b..07aa5181a9d 100644
--- a/src/devices/bus/isa/dectalk.cpp
+++ b/src/devices/bus/isa/dectalk.cpp
@@ -224,7 +224,7 @@ READ8_MEMBER(dectalk_isa_device::read)
void dectalk_isa_device::device_start()
{
set_isa_device();
- m_isa->install_device(0x0250, 0x0257, read8_delegate(FUNC(dectalk_isa_device::read), this), write8_delegate(FUNC(dectalk_isa_device::write), this));
+ m_isa->install_device(0x0250, 0x0257, read8_delegate(*this, FUNC(dectalk_isa_device::read)), write8_delegate(*this, FUNC(dectalk_isa_device::write)));
}
void dectalk_isa_device::device_reset()
diff --git a/src/devices/bus/isa/ega.cpp b/src/devices/bus/isa/ega.cpp
index 32175304f20..abca884e810 100644
--- a/src/devices/bus/isa/ega.cpp
+++ b/src/devices/bus/isa/ega.cpp
@@ -549,7 +549,7 @@ void isa8_ega_device::device_add_mconfig(machine_config &config)
CRTC_EGA(config, m_crtc_ega, 16.257_MHz_XTAL/8);
m_crtc_ega->set_screen(EGA_SCREEN_NAME);
m_crtc_ega->config_set_hpixels_per_column(8);
- m_crtc_ega->set_row_update_callback(FUNC(isa8_ega_device::ega_update_row), this);
+ m_crtc_ega->set_row_update_callback(FUNC(isa8_ega_device::ega_update_row));
m_crtc_ega->res_out_de_callback().set(FUNC(isa8_ega_device::de_changed));
m_crtc_ega->res_out_hsync_callback().set(FUNC(isa8_ega_device::hsync_changed));
m_crtc_ega->res_out_vsync_callback().set(FUNC(isa8_ega_device::vsync_changed));
@@ -637,9 +637,9 @@ void isa8_ega_device::device_start()
m_plane[3] = m_videoram + 0x30000;
m_isa->install_rom(this, 0xc0000, 0xc3fff, "ega", "user2");
- m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3b0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3b0_w), this));
- m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3c0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3c0_w), this));
- m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3d0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3d0_w), this));
+ m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_w)));
+ m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_w)));
+ m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_w)));
}
//-------------------------------------------------
@@ -693,7 +693,7 @@ void isa8_ega_device::install_banks()
case 0x00: /* 0xA0000, 128KB */
if ( m_misc_output & 0x02 )
{
- m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(isa8_ega_device::read), this), write8_delegate(FUNC(isa8_ega_device::write), this));
+ m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write)));
}
else
{
@@ -705,7 +705,7 @@ void isa8_ega_device::install_banks()
case 0x04: /* 0xA0000, 64KB */
if ( m_misc_output & 0x02 )
{
- m_isa->install_memory(0xa0000, 0xaffff, read8_delegate(FUNC(isa8_ega_device::read), this), write8_delegate(FUNC(isa8_ega_device::write), this));
+ m_isa->install_memory(0xa0000, 0xaffff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write)));
}
else
{
@@ -718,7 +718,7 @@ void isa8_ega_device::install_banks()
case 0x08: /* 0xB0000, 32KB */
if ( m_misc_output & 0x02 )
{
- m_isa->install_memory(0xb0000, 0xb7fff, read8_delegate(FUNC(isa8_ega_device::read), this), write8_delegate(FUNC(isa8_ega_device::write), this));
+ m_isa->install_memory(0xb0000, 0xb7fff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write)));
}
else
{
@@ -731,7 +731,7 @@ void isa8_ega_device::install_banks()
case 0x0c: /* 0xB8000, 32KB */
if ( m_misc_output & 0x02 )
{
- m_isa->install_memory(0xb8000, 0xbffff, read8_delegate(FUNC(isa8_ega_device::read), this), write8_delegate(FUNC(isa8_ega_device::write), this));
+ m_isa->install_memory(0xb8000, 0xbffff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write)));
}
else
{
diff --git a/src/devices/bus/isa/eis_sad8852.cpp b/src/devices/bus/isa/eis_sad8852.cpp
index f4d634d1033..6e22a5f6d76 100644
--- a/src/devices/bus/isa/eis_sad8852.cpp
+++ b/src/devices/bus/isa/eis_sad8852.cpp
@@ -236,8 +236,8 @@ void isa16_sad8852_device::device_reset()
{
m_isa->install_device(
0x378, 0x378, // Wrong, need to find real i/o addresses
- read8_delegate(FUNC( isa16_sad8852_device::sad8852_r ), this),
- write8_delegate(FUNC( isa16_sad8852_device::sad8852_w ), this));
+ read8_delegate(*this, FUNC(isa16_sad8852_device::sad8852_r)),
+ write8_delegate(*this, FUNC(isa16_sad8852_device::sad8852_w)));
m_irq = m_isairq->read();
m_installed = true;
}
diff --git a/src/devices/bus/isa/finalchs.cpp b/src/devices/bus/isa/finalchs.cpp
index 84b81220c42..da3cd23ec1b 100644
--- a/src/devices/bus/isa/finalchs.cpp
+++ b/src/devices/bus/isa/finalchs.cpp
@@ -58,7 +58,7 @@ void isa8_finalchs_device::device_reset()
{
// MAME doesn't allow reading ioport at device_start
u16 port = ioport("DSW")->read() * 0x10 + 0x100;
- m_isa->install_device(port, port+1, read8_delegate(FUNC(isa8_finalchs_device::finalchs_r), this), write8_delegate(FUNC(isa8_finalchs_device::finalchs_w), this));
+ m_isa->install_device(port, port+1, read8_delegate(*this, FUNC(isa8_finalchs_device::finalchs_r)), write8_delegate(*this, FUNC(isa8_finalchs_device::finalchs_w)));
m_installed = true;
}
diff --git a/src/devices/bus/isa/gblaster.cpp b/src/devices/bus/isa/gblaster.cpp
index e579070fbf6..d3035091580 100644
--- a/src/devices/bus/isa/gblaster.cpp
+++ b/src/devices/bus/isa/gblaster.cpp
@@ -104,9 +104,9 @@ isa8_gblaster_device::isa8_gblaster_device(const machine_config &mconfig, const
void isa8_gblaster_device::device_start()
{
set_isa_device();
- m_isa->install_device(0x0220, 0x0221, read8_delegate( FUNC(isa8_gblaster_device::saa1099_16_r), this ), write8_delegate( FUNC(isa8_gblaster_device::saa1099_1_16_w), this ) );
- m_isa->install_device(0x0222, 0x0223, read8_delegate( FUNC(isa8_gblaster_device::saa1099_16_r), this ), write8_delegate( FUNC(isa8_gblaster_device::saa1099_2_16_w), this ) );
- m_isa->install_device(0x0224, 0x022F, read8_delegate( FUNC(isa8_gblaster_device::detect_r), this ), write8_delegate( FUNC(isa8_gblaster_device::detect_w), this ) );
+ m_isa->install_device(0x0220, 0x0221, read8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_1_16_w)));
+ m_isa->install_device(0x0222, 0x0223, read8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_2_16_w)));
+ m_isa->install_device(0x0224, 0x022F, read8_delegate(*this, FUNC(isa8_gblaster_device::detect_r)), write8_delegate(*this, FUNC(isa8_gblaster_device::detect_w)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/isa/gus.cpp b/src/devices/bus/isa/gus.cpp
index 423c1e3629f..bb0d6e30b26 100644
--- a/src/devices/bus/isa/gus.cpp
+++ b/src/devices/bus/isa/gus.cpp
@@ -1296,10 +1296,10 @@ isa16_gus_device::isa16_gus_device(const machine_config &mconfig, const char *ta
void isa16_gus_device::device_start()
{
set_isa_device();
- m_isa->install_device(0x0200, 0x0201, read8_delegate(FUNC(isa16_gus_device::joy_r),this), write8_delegate(FUNC(isa16_gus_device::joy_w),this) );
- m_isa->install_device(0x0220, 0x022f, read8_delegate(FUNC(isa16_gus_device::board_r),this), write8_delegate(FUNC(isa16_gus_device::board_w),this) );
- m_isa->install_device(0x0320, 0x0327, read8_delegate(FUNC(isa16_gus_device::synth_r),this), write8_delegate(FUNC(isa16_gus_device::synth_w),this) );
- m_isa->install_device(0x0388, 0x0389, read8_delegate(FUNC(isa16_gus_device::adlib_r),this), write8_delegate(FUNC(isa16_gus_device::adlib_w),this) );
+ m_isa->install_device(0x0200, 0x0201, read8_delegate(*this, FUNC(isa16_gus_device::joy_r)), write8_delegate(*this, FUNC(isa16_gus_device::joy_w)));
+ m_isa->install_device(0x0220, 0x022f, read8_delegate(*this, FUNC(isa16_gus_device::board_r)), write8_delegate(*this, FUNC(isa16_gus_device::board_w)));
+ m_isa->install_device(0x0320, 0x0327, read8_delegate(*this, FUNC(isa16_gus_device::synth_r)), write8_delegate(*this, FUNC(isa16_gus_device::synth_w)));
+ m_isa->install_device(0x0388, 0x0389, read8_delegate(*this, FUNC(isa16_gus_device::adlib_r)), write8_delegate(*this, FUNC(isa16_gus_device::adlib_w)));
}
void isa16_gus_device::device_reset()
diff --git a/src/devices/bus/isa/hdc.cpp b/src/devices/bus/isa/hdc.cpp
index 2492d0eaa89..8d5d84bfe1e 100644
--- a/src/devices/bus/isa/hdc.cpp
+++ b/src/devices/bus/isa/hdc.cpp
@@ -987,7 +987,7 @@ isa8_hdc_ec1841_device::isa8_hdc_ec1841_device(const machine_config &mconfig, co
void isa8_hdc_device::device_start()
{
set_isa_device();
- m_isa->install_device(0x0320, 0x0323, read8_delegate( FUNC(isa8_hdc_device::pc_hdc_r), this ), write8_delegate( FUNC(isa8_hdc_device::pc_hdc_w), this ) );
+ m_isa->install_device(0x0320, 0x0323, read8_delegate(*this, FUNC(isa8_hdc_device::pc_hdc_r)), write8_delegate(*this, FUNC(isa8_hdc_device::pc_hdc_w)));
m_isa->set_dma_channel(3, this, false);
}
diff --git a/src/devices/bus/isa/ibm_mfc.cpp b/src/devices/bus/isa/ibm_mfc.cpp
index 40ce54ff6fc..b7f5d8e70b5 100644
--- a/src/devices/bus/isa/ibm_mfc.cpp
+++ b/src/devices/bus/isa/ibm_mfc.cpp
@@ -463,7 +463,7 @@ isa8_ibm_mfc_device::isa8_ibm_mfc_device(const machine_config &mconfig, const ch
void isa8_ibm_mfc_device::device_start()
{
set_isa_device();
- m_isa->install_device(0x2a20, 0x2a20 + 15, read8_delegate(FUNC(isa8_ibm_mfc_device::ibm_mfc_r), this), write8_delegate(FUNC(isa8_ibm_mfc_device::ibm_mfc_w), this));
+ m_isa->install_device(0x2a20, 0x2a20 + 15, read8_delegate(*this, FUNC(isa8_ibm_mfc_device::ibm_mfc_r)), write8_delegate(*this, FUNC(isa8_ibm_mfc_device::ibm_mfc_w)));
}
diff --git a/src/devices/bus/isa/lpt.cpp b/src/devices/bus/isa/lpt.cpp
index e47404a498d..5c4baf5aaeb 100644
--- a/src/devices/bus/isa/lpt.cpp
+++ b/src/devices/bus/isa/lpt.cpp
@@ -45,14 +45,11 @@ void isa8_lpt_device::device_start()
void isa8_lpt_device::device_reset()
{
m_is_primary = (ioport("DSW")->read() & 1) ? false : true;
+ pc_lpt_device &lpt(*subdevice<pc_lpt_device>("lpt"));
if (m_is_primary)
- {
- m_isa->install_device(0x0378, 0x037b, read8_delegate(FUNC(pc_lpt_device::read), subdevice<pc_lpt_device>("lpt")), write8_delegate(FUNC(pc_lpt_device::write), subdevice<pc_lpt_device>("lpt")));
- }
+ m_isa->install_device(0x0378, 0x037b, read8_delegate(lpt, FUNC(pc_lpt_device::read)), write8_delegate(lpt, FUNC(pc_lpt_device::write)));
else
- {
- m_isa->install_device(0x0278, 0x027b, read8_delegate(FUNC(pc_lpt_device::read), subdevice<pc_lpt_device>("lpt")), write8_delegate(FUNC(pc_lpt_device::write), subdevice<pc_lpt_device>("lpt")));
- }
+ m_isa->install_device(0x0278, 0x027b, read8_delegate(lpt, FUNC(pc_lpt_device::read)), write8_delegate(lpt, FUNC(pc_lpt_device::write)));
}
WRITE_LINE_MEMBER(isa8_lpt_device::pc_cpu_line)
diff --git a/src/devices/bus/isa/mc1502_fdc.cpp b/src/devices/bus/isa/mc1502_fdc.cpp
index 3f85534a72b..1760f602115 100644
--- a/src/devices/bus/isa/mc1502_fdc.cpp
+++ b/src/devices/bus/isa/mc1502_fdc.cpp
@@ -205,16 +205,12 @@ void mc1502_fdc_device::device_start()
set_isa_device();
// BIOS 5.0-5.2x
- m_isa->install_device(0x010c, 0x010f,
- read8sm_delegate(FUNC(fd1793_device::read), m_fdc.target()),
- write8sm_delegate(FUNC(fd1793_device::write), m_fdc.target()));
- m_isa->install_device(0x0100, 0x010b, read8_delegate( FUNC(mc1502_fdc_device::mc1502_fdc_r), this ), write8_delegate( FUNC(mc1502_fdc_device::mc1502_fdc_w), this ) );
+ m_isa->install_device(0x010c, 0x010f, read8sm_delegate(*m_fdc, FUNC(fd1793_device::read)), write8sm_delegate(*m_fdc, FUNC(fd1793_device::write)));
+ m_isa->install_device(0x0100, 0x010b, read8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_r)), write8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_w)));
// BIOS 5.3x
- m_isa->install_device(0x0048, 0x004b,
- read8sm_delegate(FUNC(fd1793_device::read), m_fdc.target()),
- write8sm_delegate(FUNC(fd1793_device::write), m_fdc.target()));
- m_isa->install_device(0x004c, 0x004f, read8_delegate( FUNC(mc1502_fdc_device::mc1502_fdcv2_r), this ), write8_delegate( FUNC(mc1502_fdc_device::mc1502_fdc_w), this ) );
+ m_isa->install_device(0x0048, 0x004b, read8sm_delegate(*m_fdc, FUNC(fd1793_device::read)), write8sm_delegate(*m_fdc, FUNC(fd1793_device::write)));
+ m_isa->install_device(0x004c, 0x004f, read8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdcv2_r)), write8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_w)));
motor_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mc1502_fdc_device::motor_callback),this));
motor_on = 0;
diff --git a/src/devices/bus/isa/mda.cpp b/src/devices/bus/isa/mda.cpp
index eca9cbaa5a6..a620c891580 100644
--- a/src/devices/bus/isa/mda.cpp
+++ b/src/devices/bus/isa/mda.cpp
@@ -131,7 +131,7 @@ void isa8_mda_device::device_add_mconfig(machine_config &config)
m_crtc->set_screen(MDA_SCREEN_NAME);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(9);
- m_crtc->set_update_row_callback(FUNC(isa8_mda_device::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(isa8_mda_device::crtc_update_row));
m_crtc->out_hsync_callback().set(FUNC(isa8_mda_device::hsync_changed));
m_crtc->out_vsync_callback().set(FUNC(isa8_mda_device::vsync_changed));
@@ -182,7 +182,7 @@ void isa8_mda_device::device_start()
set_isa_device();
m_videoram.resize(0x1000);
- m_isa->install_device(0x3b0, 0x3bf, read8_delegate( FUNC(isa8_mda_device::io_read), this ), write8_delegate( FUNC(isa8_mda_device::io_write), this ) );
+ m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_mda_device::io_read)), write8_delegate(*this, FUNC(isa8_mda_device::io_write)));
m_isa->install_bank(0xb0000, 0xb0fff, "bank_mda", &m_videoram[0]);
m_isa->install_bank(0xb1000, 0xb1fff, "bank_mda", &m_videoram[0]);
m_isa->install_bank(0xb2000, 0xb2fff, "bank_mda", &m_videoram[0]);
@@ -558,7 +558,7 @@ void isa8_hercules_device::device_add_mconfig(machine_config &config)
m_crtc->set_screen(HERCULES_SCREEN_NAME);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(9);
- m_crtc->set_update_row_callback(FUNC(isa8_hercules_device::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(isa8_hercules_device::crtc_update_row));
m_crtc->out_hsync_callback().set(FUNC(isa8_mda_device::hsync_changed));
m_crtc->out_vsync_callback().set(FUNC(isa8_mda_device::vsync_changed));
@@ -601,7 +601,7 @@ void isa8_hercules_device::device_start()
m_videoram.resize(0x10000);
set_isa_device();
- m_isa->install_device(0x3b0, 0x3bf, read8_delegate( FUNC(isa8_hercules_device::io_read), this ), write8_delegate( FUNC(isa8_hercules_device::io_write), this ) );
+ m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_hercules_device::io_read)), write8_delegate(*this, FUNC(isa8_hercules_device::io_write)));
m_isa->install_bank(0xb0000, 0xbffff, "bank_hercules", &m_videoram[0]);
/* Initialise the mda palette */
@@ -772,7 +772,7 @@ void isa8_ec1840_0002_device::device_add_mconfig(machine_config &config)
m_crtc->set_screen(MDA_SCREEN_NAME);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(isa8_mda_device::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(isa8_mda_device::crtc_update_row));
m_crtc->out_hsync_callback().set(FUNC(isa8_mda_device::hsync_changed));
m_crtc->out_vsync_callback().set(FUNC(isa8_mda_device::vsync_changed));
}
@@ -1094,7 +1094,7 @@ void isa8_epc_mda_device::device_add_mconfig(machine_config &config)
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(isa8_epc_mda_device::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(isa8_epc_mda_device::crtc_update_row));
m_crtc->out_hsync_callback().set(FUNC(isa8_epc_mda_device::hsync_changed));
m_crtc->out_vsync_callback().set(FUNC(isa8_epc_mda_device::vsync_changed));
@@ -1175,13 +1175,13 @@ void isa8_epc_mda_device::device_reset()
if (m_installed == false)
{
- m_isa->install_device(0x3b0, 0x3bf, read8_delegate( FUNC(isa8_epc_mda_device::io_read), this ), write8_delegate( FUNC(isa8_epc_mda_device::io_write), this ) );
+ m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_epc_mda_device::io_read)), write8_delegate(*this, FUNC(isa8_epc_mda_device::io_write)));
m_isa->install_bank(0xb0000, 0xb7fff, "bank_epc", &m_videoram[0]); // Monochrome emulation mode VRAM address
// This check allows a color monitor adapter to be installed at this address range if color emulation is disabled
if (m_color_mode & 1)
{
- m_isa->install_device(0x3d0, 0x3df, read8_delegate( FUNC(isa8_epc_mda_device::io_read), this ), write8_delegate( FUNC(isa8_epc_mda_device::io_write), this ) );
+ m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_epc_mda_device::io_read)), write8_delegate(*this, FUNC(isa8_epc_mda_device::io_write)));
m_isa->install_bank(0xb8000, 0xbffff, "bank_epc", &m_videoram[0]); // Color emulation mode VRAM address, but same 32KB areas as there are only this amount on the board
}
m_installed = true;
diff --git a/src/devices/bus/isa/mpu401.cpp b/src/devices/bus/isa/mpu401.cpp
index 2ce9e1feae2..b7a49506094 100644
--- a/src/devices/bus/isa/mpu401.cpp
+++ b/src/devices/bus/isa/mpu401.cpp
@@ -77,7 +77,7 @@ void isa8_mpu401_device::device_start()
{
set_isa_device();
- m_isa->install_device(0x330, 0x0331, READ8_DEVICE_DELEGATE(m_mpu401, mpu401_device, mpu_r), WRITE8_DEVICE_DELEGATE(m_mpu401, mpu401_device, mpu_w));
+ m_isa->install_device(0x330, 0x0331, read8_delegate(*m_mpu401, FUNC(mpu401_device::mpu_r)), write8_delegate(*m_mpu401, FUNC(mpu401_device::mpu_w)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/isa/myb3k_com.cpp b/src/devices/bus/isa/myb3k_com.cpp
index 88987e87e41..e2d6facff40 100644
--- a/src/devices/bus/isa/myb3k_com.cpp
+++ b/src/devices/bus/isa/myb3k_com.cpp
@@ -103,16 +103,16 @@ void isa8_myb3k_com_device::device_reset()
// IO base factory setting is 0x540
uint32_t base = m_iobase->read();
m_isa->install_device(base, base + 1,
- read8sm_delegate(FUNC(i8251_device::read), m_usart.target()),
- write8sm_delegate(FUNC(i8251_device::write), m_usart.target()) );
+ read8sm_delegate(*m_usart, FUNC(i8251_device::read)),
+ write8sm_delegate(*m_usart, FUNC(i8251_device::write)));
m_isa->install_device(base + 2, base + 2,
- read8_delegate(FUNC(isa8_myb3k_com_device::dce_status), this),
- write8_delegate(FUNC(isa8_myb3k_com_device::dce_control), this) );
+ read8_delegate(*this, FUNC(isa8_myb3k_com_device::dce_status)),
+ write8_delegate(*this, FUNC(isa8_myb3k_com_device::dce_control)));
m_isa->install_device(base + 4, base + 7,
- read8sm_delegate(FUNC(pit8253_device::read), subdevice<pit8253_device>("pit")),
- write8sm_delegate(FUNC(pit8253_device::write), subdevice<pit8253_device>("pit")) );
+ read8sm_delegate(*subdevice<pit8253_device>("pit"), FUNC(pit8253_device::read)),
+ write8sm_delegate(*subdevice<pit8253_device>("pit"), FUNC(pit8253_device::write)));
m_irq = m_isairq->read();
m_installed = true;
diff --git a/src/devices/bus/isa/ne1000.cpp b/src/devices/bus/isa/ne1000.cpp
index 1eaef942105..0be12869dca 100644
--- a/src/devices/bus/isa/ne1000.cpp
+++ b/src/devices/bus/isa/ne1000.cpp
@@ -31,7 +31,7 @@ void ne1000_device::device_start() {
memcpy(m_prom, mac, 6);
m_dp8390->set_mac(mac);
set_isa_device();
- m_isa->install_device(0x0300, 0x031f, read8_delegate(FUNC(ne1000_device::ne1000_port_r), this), write8_delegate(FUNC(ne1000_device::ne1000_port_w), this));
+ m_isa->install_device(0x0300, 0x031f, read8_delegate(*this, FUNC(ne1000_device::ne1000_port_r)), write8_delegate(*this, FUNC(ne1000_device::ne1000_port_w)));
}
void ne1000_device::device_reset() {
diff --git a/src/devices/bus/isa/ne2000.cpp b/src/devices/bus/isa/ne2000.cpp
index 3ad2cc592ef..246447836ba 100644
--- a/src/devices/bus/isa/ne2000.cpp
+++ b/src/devices/bus/isa/ne2000.cpp
@@ -31,7 +31,7 @@ void ne2000_device::device_start() {
memcpy(m_prom, mac, 6);
m_dp8390->set_mac(mac);
set_isa_device();
- m_isa->install16_device(0x0300, 0x031f, read16_delegate(FUNC(ne2000_device::ne2000_port_r), this), write16_delegate(FUNC(ne2000_device::ne2000_port_w), this));
+ m_isa->install16_device(0x0300, 0x031f, read16_delegate(*this, FUNC(ne2000_device::ne2000_port_r)), write16_delegate(*this, FUNC(ne2000_device::ne2000_port_w)));
}
void ne2000_device::device_reset() {
diff --git a/src/devices/bus/isa/num9rev.cpp b/src/devices/bus/isa/num9rev.cpp
index ebe44a379f4..00e22a31101 100644
--- a/src/devices/bus/isa/num9rev.cpp
+++ b/src/devices/bus/isa/num9rev.cpp
@@ -94,13 +94,13 @@ void isa8_number_9_rev_device::device_start()
{
set_isa_device();
- m_isa->install_memory(0xc0000, 0xc0001, read8sm_delegate(FUNC(upd7220_device::read), (upd7220_device *)m_upd7220), write8sm_delegate(FUNC(upd7220_device::write), (upd7220_device *)m_upd7220));
- m_isa->install_memory(0xc0100, 0xc03ff, read8_delegate(FUNC(isa8_number_9_rev_device::pal8_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::pal8_w), this));
- m_isa->install_memory(0xc0400, 0xc0401, read8_delegate(FUNC(isa8_number_9_rev_device::bank_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::bank_w), this));
- m_isa->install_memory(0xc0500, 0xc06ff, read8_delegate(FUNC(isa8_number_9_rev_device::overlay_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::overlay_w), this));
- m_isa->install_memory(0xc0700, 0xc070f, read8_delegate(FUNC(isa8_number_9_rev_device::ctrl_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::ctrl_w), this));
- m_isa->install_memory(0xc1000, 0xc3fff, read8_delegate(FUNC(isa8_number_9_rev_device::pal12_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::pal12_w), this));
- m_isa->install_memory(0xa0000, 0xaffff, read8_delegate(FUNC(isa8_number_9_rev_device::read8), this), write8_delegate(FUNC(isa8_number_9_rev_device::write8), this));
+ m_isa->install_memory(0xc0000, 0xc0001, read8sm_delegate(*m_upd7220, FUNC(upd7220_device::read)), write8sm_delegate(*m_upd7220, FUNC(upd7220_device::write)));
+ m_isa->install_memory(0xc0100, 0xc03ff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::pal8_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::pal8_w)));
+ m_isa->install_memory(0xc0400, 0xc0401, read8_delegate(*this, FUNC(isa8_number_9_rev_device::bank_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::bank_w)));
+ m_isa->install_memory(0xc0500, 0xc06ff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::overlay_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::overlay_w)));
+ m_isa->install_memory(0xc0700, 0xc070f, read8_delegate(*this, FUNC(isa8_number_9_rev_device::ctrl_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::ctrl_w)));
+ m_isa->install_memory(0xc1000, 0xc3fff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::pal12_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::pal12_w)));
+ m_isa->install_memory(0xa0000, 0xaffff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::read8)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::write8)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/isa/omti8621.cpp b/src/devices/bus/isa/omti8621.cpp
index bea87f420ee..38560f26df6 100644
--- a/src/devices/bus/isa/omti8621.cpp
+++ b/src/devices/bus/isa/omti8621.cpp
@@ -309,7 +309,7 @@ void omti8621_device::device_reset()
int esdi_base = io_bases[m_iobase->read() & 7];
// install the ESDI ports
- m_isa->install16_device(esdi_base, esdi_base + 7, read16_delegate(FUNC(omti8621_device::read), this), write16_delegate(FUNC(omti8621_device::write), this));
+ m_isa->install16_device(esdi_base, esdi_base + 7, read16_delegate(*this, FUNC(omti8621_device::read)), write16_delegate(*this, FUNC(omti8621_device::write)));
// and the onboard AT FDC ports
if (m_iobase->read() & 8)
diff --git a/src/devices/bus/isa/p1_fdc.cpp b/src/devices/bus/isa/p1_fdc.cpp
index 9b62451e65a..5d3b25b3d5a 100644
--- a/src/devices/bus/isa/p1_fdc.cpp
+++ b/src/devices/bus/isa/p1_fdc.cpp
@@ -174,10 +174,8 @@ void p1_fdc_device::device_start()
{
set_isa_device();
m_isa->install_rom(this, 0xe0000, 0xe07ff, "XXX", "p1_fdc");
- m_isa->install_device(0x00c0, 0x00c3,
- read8sm_delegate(FUNC(fd1793_device::read), m_fdc.target()),
- write8sm_delegate(FUNC(fd1793_device::write), m_fdc.target()));
- m_isa->install_device(0x00c4, 0x00c7, read8_delegate( FUNC(p1_fdc_device::p1_fdc_r), this ), write8_delegate( FUNC(p1_fdc_device::p1_fdc_w), this ) );
+ m_isa->install_device(0x00c0, 0x00c3, read8sm_delegate(*m_fdc, FUNC(fd1793_device::read)), write8sm_delegate(*m_fdc, FUNC(fd1793_device::write)));
+ m_isa->install_device(0x00c4, 0x00c7, read8_delegate(*this, FUNC(p1_fdc_device::p1_fdc_r)), write8_delegate(*this, FUNC(p1_fdc_device::p1_fdc_w)));
}
diff --git a/src/devices/bus/isa/p1_hdc.cpp b/src/devices/bus/isa/p1_hdc.cpp
index 129c7a6ce37..36f93811694 100644
--- a/src/devices/bus/isa/p1_hdc.cpp
+++ b/src/devices/bus/isa/p1_hdc.cpp
@@ -127,9 +127,7 @@ void p1_hdc_device::device_start()
{
set_isa_device();
m_isa->install_rom(this, 0xe2000, 0xe27ff, "XXX", "p1_hdc");
- m_isa->install_memory(0xd0000, 0xd0fff,
- READ8_DELEGATE(p1_hdc_device, p1_HDC_r),
- WRITE8_DELEGATE(p1_hdc_device, p1_HDC_w) );
+ m_isa->install_memory(0xd0000, 0xd0fff, read8_delegate(*this, FUNC(p1_hdc_device::p1_HDC_r)), write8_delegate(*this, FUNC(p1_hdc_device::p1_HDC_w)));
}
diff --git a/src/devices/bus/isa/p1_sound.cpp b/src/devices/bus/isa/p1_sound.cpp
index b8e37a57368..0311264fb44 100644
--- a/src/devices/bus/isa/p1_sound.cpp
+++ b/src/devices/bus/isa/p1_sound.cpp
@@ -161,28 +161,28 @@ void p1_sound_device::device_start()
// EFC00 -- ADC output
m_isa->install_memory(0xea000, 0xea01f,
- read8_delegate(FUNC(p1_sound_device::adc_r), this), // XXX not really
- write8_delegate(FUNC(p1_sound_device::dac_w), this));
+ read8_delegate(*this, FUNC(p1_sound_device::adc_r)), // XXX not really
+ write8_delegate(*this, FUNC(p1_sound_device::dac_w)));
m_isa->install_memory(0xee000, 0xee000,
- read8smo_delegate(FUNC(i8251_device::data_r), m_midi.target()),
- write8smo_delegate(FUNC(i8251_device::data_w), m_midi.target()));
+ read8smo_delegate(*m_midi, FUNC(i8251_device::data_r)),
+ write8smo_delegate(*m_midi, FUNC(i8251_device::data_w)));
m_isa->install_memory(0xee002, 0xee002,
- read8smo_delegate(FUNC(i8251_device::status_r), m_midi.target()),
- write8smo_delegate(FUNC(i8251_device::control_w), m_midi.target()));
+ read8smo_delegate(*m_midi, FUNC(i8251_device::status_r)),
+ write8smo_delegate(*m_midi, FUNC(i8251_device::control_w)));
// sync generator
m_isa->install_memory(0xef000, 0xef007,
- read8_delegate(FUNC(p1_sound_device::d14_r), this),
- write8_delegate(FUNC(p1_sound_device::d14_w), this));
+ read8_delegate(*this, FUNC(p1_sound_device::d14_r)),
+ write8_delegate(*this, FUNC(p1_sound_device::d14_w)));
// 6 music channels
m_isa->install_memory(0xef400, 0xef407,
- read8_delegate(FUNC(p1_sound_device::d16_r), this),
- write8_delegate(FUNC(p1_sound_device::d16_w), this));
+ read8_delegate(*this, FUNC(p1_sound_device::d16_r)),
+ write8_delegate(*this, FUNC(p1_sound_device::d16_w)));
m_isa->install_memory(0xef800, 0xef807,
- read8_delegate(FUNC(p1_sound_device::d17_r), this),
- write8_delegate(FUNC(p1_sound_device::d17_w), this));
+ read8_delegate(*this, FUNC(p1_sound_device::d17_r)),
+ write8_delegate(*this, FUNC(p1_sound_device::d17_w)));
}
diff --git a/src/devices/bus/isa/pc1640_iga.cpp b/src/devices/bus/isa/pc1640_iga.cpp
index dfab59f2e76..7b7b5a89354 100644
--- a/src/devices/bus/isa/pc1640_iga.cpp
+++ b/src/devices/bus/isa/pc1640_iga.cpp
@@ -102,7 +102,7 @@ void isa8_pc1640_iga_device::device_start()
m_plane[3] = m_videoram + 0x30000;
m_isa->install_rom(this, 0xc0000, 0xc7fff, "ega", "iga");
- m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3b0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3b0_w), this));
- m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3c0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3c0_w), this));
- m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3d0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3d0_w), this));
+ m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_w)));
+ m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_w)));
+ m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_w)));
}
diff --git a/src/devices/bus/isa/pcmidi.cpp b/src/devices/bus/isa/pcmidi.cpp
index 94e52ae8f51..45cc41ff4f4 100644
--- a/src/devices/bus/isa/pcmidi.cpp
+++ b/src/devices/bus/isa/pcmidi.cpp
@@ -100,8 +100,8 @@ void isa8_pcmidi_device::device_reset()
{
offs_t ioaddr = BIT(m_config->read(), 0) ? 0x300 : 0x330;
m_isa->install_device(ioaddr, ioaddr + 1,
- read8sm_delegate(FUNC(isa8_pcmidi_device::host_r), this),
- write8sm_delegate(FUNC(isa8_pcmidi_device::host_w), this));
+ read8sm_delegate(*this, FUNC(isa8_pcmidi_device::host_r)),
+ write8sm_delegate(*this, FUNC(isa8_pcmidi_device::host_w)));
set_host_irq(false);
}
diff --git a/src/devices/bus/isa/pds.cpp b/src/devices/bus/isa/pds.cpp
index 65a35db2b14..dab0f498b63 100644
--- a/src/devices/bus/isa/pds.cpp
+++ b/src/devices/bus/isa/pds.cpp
@@ -6,7 +6,7 @@
* Used to connect up to two 8-bit systems to the PC, allowing the download of assembled code directly to the
* target 8-bit system (Spectrum, CPC, MSX, C64 and maybe the BBC?)
*
- * The editor software require the ISA card to be present.
+ * The editor software requires the ISA card to be present.
*
* The PC end hardware consists of an 8-bit ISA card containing an 8255 PPI hooked up to the two connectors on the
* back of the card.
@@ -45,7 +45,7 @@ WRITE8_MEMBER(isa8_pds_device::ppi_w)
void isa8_pds_device::device_start()
{
set_isa_device();
- m_isa->install_device(0x0300, 0x0307, read8_delegate(FUNC(isa8_pds_device::ppi_r),this), write8_delegate(FUNC(isa8_pds_device::ppi_w),this) );
+ m_isa->install_device(0x0300, 0x0307, read8_delegate(*this, FUNC(isa8_pds_device::ppi_r)), write8_delegate(*this, FUNC(isa8_pds_device::ppi_w)));
}
void isa8_pds_device::device_reset()
diff --git a/src/devices/bus/isa/pgc.cpp b/src/devices/bus/isa/pgc.cpp
index 9e65cd819d0..4d7de335616 100644
--- a/src/devices/bus/isa/pgc.cpp
+++ b/src/devices/bus/isa/pgc.cpp
@@ -389,8 +389,7 @@ READ8_MEMBER(isa8_pgc_device::init_r)
membank("eram")->set_base(m_eram.get());
LOG("INIT: mapping LUT\n");
- space.install_write_handler(0xf8400, 0xf85ff,
- write8_delegate(FUNC(isa8_pgc_device::lut_w), this));
+ space.install_write_handler(0xf8400, 0xf85ff, write8_delegate(*this, FUNC(isa8_pgc_device::lut_w)));
return 0; // XXX ignored
}
diff --git a/src/devices/bus/isa/s3virge.cpp b/src/devices/bus/isa/s3virge.cpp
index 5dae6c8afa2..959e9a2e79f 100644
--- a/src/devices/bus/isa/s3virge.cpp
+++ b/src/devices/bus/isa/s3virge.cpp
@@ -73,7 +73,7 @@ void s3virge_vga_device::device_start()
vga.crtc.maximum_scan_line = 1;
// copy over interfaces
- vga.read_dipswitch = read8_delegate(); //read_dipswitch;
+ vga.read_dipswitch.set(nullptr); //read_dipswitch;
vga.svga_intf.seq_regcount = 0x1c;
vga.svga_intf.crtc_regcount = 0x19;
vga.svga_intf.vram_size = 0x400000;
diff --git a/src/devices/bus/isa/sb16.cpp b/src/devices/bus/isa/sb16.cpp
index f48cda320da..0f2123409f9 100644
--- a/src/devices/bus/isa/sb16.cpp
+++ b/src/devices/bus/isa/sb16.cpp
@@ -702,18 +702,18 @@ void sb16_lle_device::device_start()
rom[i] = rom[i] ^ xor_table[i & 0x3f];
- ymf262_device *ymf262 = subdevice<ymf262_device>("ymf262");
+ ymf262_device &ymf262 = *subdevice<ymf262_device>("ymf262");
set_isa_device();
- m_isa->install_device(0x0200, 0x0207, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice<pc_joy_device>("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice<pc_joy_device>("pc_joy")));
- m_isa->install_device(0x0226, 0x0227, read8_delegate(FUNC(sb16_lle_device::invalid_r), this), write8_delegate(FUNC(sb16_lle_device::dsp_reset_w), this));
- m_isa->install_device(0x022a, 0x022b, read8_delegate(FUNC(sb16_lle_device::host_data_r), this), write8_delegate(FUNC(sb16_lle_device::invalid_w), this) );
- m_isa->install_device(0x022c, 0x022d, read8_delegate(FUNC(sb16_lle_device::dsp_wbuf_status_r), this), write8_delegate(FUNC(sb16_lle_device::host_cmd_w), this) );
- m_isa->install_device(0x022e, 0x022f, read8_delegate(FUNC(sb16_lle_device::dsp_rbuf_status_r), this), write8_delegate(FUNC(sb16_lle_device::invalid_w), this) );
- m_isa->install_device(0x0330, 0x0331, read8_delegate(FUNC(sb16_lle_device::mpu401_r), this), write8_delegate(FUNC(sb16_lle_device::mpu401_w), this));
- m_isa->install_device(0x0388, 0x0389, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
- m_isa->install_device(0x0220, 0x0223, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
- m_isa->install_device(0x0228, 0x0229, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
+ m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_w)));
+ m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(sb16_lle_device::invalid_r)), write8_delegate(*this, FUNC(sb16_lle_device::dsp_reset_w)));
+ m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(sb16_lle_device::host_data_r)), write8_delegate(*this, FUNC(sb16_lle_device::invalid_w)) );
+ m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(sb16_lle_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(sb16_lle_device::host_cmd_w)) );
+ m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(sb16_lle_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(sb16_lle_device::invalid_w)) );
+ m_isa->install_device(0x0330, 0x0331, read8_delegate(*this, FUNC(sb16_lle_device::mpu401_r)), write8_delegate(*this, FUNC(sb16_lle_device::mpu401_w)));
+ m_isa->install_device(0x0388, 0x0389, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
+ m_isa->install_device(0x0220, 0x0223, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
+ m_isa->install_device(0x0228, 0x0229, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
m_isa->set_dma_channel(1, this, false);
m_isa->set_dma_channel(5, this, false);
m_timer = timer_alloc();
diff --git a/src/devices/bus/isa/sblaster.cpp b/src/devices/bus/isa/sblaster.cpp
index 73e98a297f8..3e4ba9beca1 100644
--- a/src/devices/bus/isa/sblaster.cpp
+++ b/src/devices/bus/isa/sblaster.cpp
@@ -1251,23 +1251,23 @@ isa16_sblaster16_device::isa16_sblaster16_device(const machine_config &mconfig,
void sb8_device::device_start()
{
- m_isa->install_device(0x0200, 0x0207, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice<pc_joy_device>("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice<pc_joy_device>("pc_joy")));
- m_isa->install_device(0x0226, 0x0227, read8_delegate(FUNC(sb_device::dsp_reset_r), this), write8_delegate(FUNC(sb_device::dsp_reset_w), this));
- m_isa->install_device(0x022a, 0x022b, read8_delegate(FUNC(sb_device::dsp_data_r), this), write8_delegate(FUNC(sb_device::dsp_data_w), this) );
- m_isa->install_device(0x022c, 0x022d, read8_delegate(FUNC(sb_device::dsp_wbuf_status_r), this), write8_delegate(FUNC(sb_device::dsp_cmd_w), this) );
- m_isa->install_device(0x022e, 0x022f, read8_delegate(FUNC(sb_device::dsp_rbuf_status_r), this), write8_delegate(FUNC(sb_device::dsp_rbuf_status_w), this) );
+ m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_w)));
+ m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(sb_device::dsp_reset_r)), write8_delegate(*this, FUNC(sb_device::dsp_reset_w)));
+ m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(sb_device::dsp_data_r)), write8_delegate(*this, FUNC(sb_device::dsp_data_w)));
+ m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(sb_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_cmd_w)));
+ m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_w)));
if(m_dsp.version >= 0x0301)
{
- ymf262_device *ymf262 = subdevice<ymf262_device>("ymf262");
+ ymf262_device &ymf262 = *subdevice<ymf262_device>("ymf262");
- m_isa->install_device(0x0388, 0x038b, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
- m_isa->install_device(0x0220, 0x0223, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
- m_isa->install_device(0x0228, 0x0229, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
+ m_isa->install_device(0x0388, 0x038b, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
+ m_isa->install_device(0x0220, 0x0223, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
+ m_isa->install_device(0x0228, 0x0229, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
}
else
{
- m_isa->install_device(0x0388, 0x0389, read8_delegate( FUNC(sb8_device::ym3812_16_r), this ), write8_delegate( FUNC(sb8_device::ym3812_16_w), this ) );
- m_isa->install_device(0x0228, 0x0229, read8_delegate( FUNC(sb8_device::ym3812_16_r), this ), write8_delegate( FUNC(sb8_device::ym3812_16_w), this ) );
+ m_isa->install_device(0x0388, 0x0389, read8_delegate(*this, FUNC(sb8_device::ym3812_16_r)), write8_delegate(*this, FUNC(sb8_device::ym3812_16_w)));
+ m_isa->install_device(0x0228, 0x0229, read8_delegate(*this, FUNC(sb8_device::ym3812_16_r)), write8_delegate(*this, FUNC(sb8_device::ym3812_16_w)));
}
sb_device::device_start();
@@ -1277,8 +1277,8 @@ void isa8_sblaster1_0_device::device_start()
{
set_isa_device();
// 1.0 always has the SAA1099s for CMS back-compatibility
- m_isa->install_device(0x0220, 0x0221, read8_delegate( FUNC(isa8_sblaster1_0_device::saa1099_16_r), this ), write8_delegate( FUNC(isa8_sblaster1_0_device::saa1099_1_16_w), this ) );
- m_isa->install_device(0x0222, 0x0223, read8_delegate( FUNC(isa8_sblaster1_0_device::saa1099_16_r), this ), write8_delegate( FUNC(isa8_sblaster1_0_device::saa1099_2_16_w), this ) );
+ m_isa->install_device(0x0220, 0x0221, read8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_1_16_w)));
+ m_isa->install_device(0x0222, 0x0223, read8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_2_16_w)));
m_isa->set_dma_channel(1, this, false);
m_dsp.version = 0x0105;
sb8_device::device_start();
@@ -1295,17 +1295,17 @@ void isa8_sblaster1_5_device::device_start()
void sb16_device::device_start()
{
- ymf262_device *ymf262 = subdevice<ymf262_device>("ymf262");
- m_isa->install_device(0x0200, 0x0207, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice<pc_joy_device>("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice<pc_joy_device>("pc_joy")));
- m_isa->install_device(0x0226, 0x0227, read8_delegate(FUNC(sb_device::dsp_reset_r), this), write8_delegate(FUNC(sb_device::dsp_reset_w), this));
- m_isa->install_device(0x022a, 0x022b, read8_delegate(FUNC(sb_device::dsp_data_r), this), write8_delegate(FUNC(sb_device::dsp_data_w), this) );
- m_isa->install_device(0x022c, 0x022d, read8_delegate(FUNC(sb_device::dsp_wbuf_status_r), this), write8_delegate(FUNC(sb_device::dsp_cmd_w), this) );
- m_isa->install_device(0x022e, 0x022f, read8_delegate(FUNC(sb_device::dsp_rbuf_status_r), this), write8_delegate(FUNC(sb_device::dsp_rbuf_status_w), this) );
- m_isa->install_device(0x0224, 0x0225, read8_delegate(FUNC(sb16_device::mixer_r), this), write8_delegate(FUNC(sb16_device::mixer_w), this));
- m_isa->install_device(0x0330, 0x0331, read8_delegate(FUNC(sb16_device::mpu401_r), this), write8_delegate(FUNC(sb16_device::mpu401_w), this));
- m_isa->install_device(0x0388, 0x038b, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
- m_isa->install_device(0x0220, 0x0223, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
- m_isa->install_device(0x0228, 0x0229, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
+ ymf262_device &ymf262 = *subdevice<ymf262_device>("ymf262");
+ m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_w)));
+ m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(sb_device::dsp_reset_r)), write8_delegate(*this, FUNC(sb_device::dsp_reset_w)));
+ m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(sb_device::dsp_data_r)), write8_delegate(*this, FUNC(sb_device::dsp_data_w)));
+ m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(sb_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_cmd_w)));
+ m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_w)));
+ m_isa->install_device(0x0224, 0x0225, read8_delegate(*this, FUNC(sb16_device::mixer_r)), write8_delegate(*this, FUNC(sb16_device::mixer_w)));
+ m_isa->install_device(0x0330, 0x0331, read8_delegate(*this, FUNC(sb16_device::mpu401_r)), write8_delegate(*this, FUNC(sb16_device::mpu401_w)));
+ m_isa->install_device(0x0388, 0x038b, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
+ m_isa->install_device(0x0220, 0x0223, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
+ m_isa->install_device(0x0228, 0x0229, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
save_item(NAME(m_mixer.data));
save_item(NAME(m_mixer.status));
diff --git a/src/devices/bus/isa/sc499.cpp b/src/devices/bus/isa/sc499.cpp
index 92f049f0402..eaa3d7ba2c4 100644
--- a/src/devices/bus/isa/sc499.cpp
+++ b/src/devices/bus/isa/sc499.cpp
@@ -389,7 +389,7 @@ void sc499_device::device_reset()
m_irq = m_irqdrq->read() & 7;
m_drq = m_irqdrq->read()>>4;
- m_isa->install_device(base, base+7, read8_delegate(FUNC(sc499_device::read), this), write8_delegate(FUNC(sc499_device::write), this));
+ m_isa->install_device(base, base+7, read8_delegate(*this, FUNC(sc499_device::read)), write8_delegate(*this, FUNC(sc499_device::write)));
m_isa->set_dma_channel(m_drq, this, true);
m_installed = true;
diff --git a/src/devices/bus/isa/side116.cpp b/src/devices/bus/isa/side116.cpp
index 19c806ec8be..e11b8588d60 100644
--- a/src/devices/bus/isa/side116.cpp
+++ b/src/devices/bus/isa/side116.cpp
@@ -121,7 +121,7 @@ void side116_device::device_reset()
// install io access
if ((m_config->read() & 0x20) == 0x20)
- m_isa->install_device(0x360, 0x36f, read8_delegate(FUNC(side116_device::read), this), write8_delegate(FUNC(side116_device::write), this));
+ m_isa->install_device(0x360, 0x36f, read8_delegate(*this, FUNC(side116_device::read)), write8_delegate(*this, FUNC(side116_device::write)));
}
diff --git a/src/devices/bus/isa/ssi2001.cpp b/src/devices/bus/isa/ssi2001.cpp
index 2c433321847..bff7a4c7d92 100644
--- a/src/devices/bus/isa/ssi2001.cpp
+++ b/src/devices/bus/isa/ssi2001.cpp
@@ -29,11 +29,10 @@ ssi2001_device::ssi2001_device(const machine_config &mconfig, const char *tag, d
void ssi2001_device::device_start()
{
set_isa_device();
- m_isa->install_device(0x0200, 0x0207, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice<pc_joy_device>("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice<pc_joy_device>("pc_joy")));
- m_isa->install_device(0x0280, 0x029F, read8sm_delegate(FUNC(mos6581_device::read), subdevice<mos6581_device>("sid6581")), write8sm_delegate(FUNC(mos6581_device::write), subdevice<mos6581_device>("sid6581")));
+ m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_w)));
+ m_isa->install_device(0x0280, 0x029F, read8sm_delegate(*subdevice<mos6581_device>("sid6581"), FUNC(mos6581_device::read)), write8sm_delegate(*subdevice<mos6581_device>("sid6581"), FUNC(mos6581_device::write)));
}
-
void ssi2001_device::device_reset()
{
}
diff --git a/src/devices/bus/isa/stereo_fx.cpp b/src/devices/bus/isa/stereo_fx.cpp
index 71ea8dfbe25..9a12302d7c0 100644
--- a/src/devices/bus/isa/stereo_fx.cpp
+++ b/src/devices/bus/isa/stereo_fx.cpp
@@ -207,16 +207,16 @@ stereo_fx_device::stereo_fx_device(const machine_config &mconfig, const char *ta
void stereo_fx_device::device_start()
{
- ym3812_device *ym3812 = subdevice<ym3812_device>("ym3812");
+ ym3812_device &ym3812 = *subdevice<ym3812_device>("ym3812");
set_isa_device();
- m_isa->install_device(0x0200, 0x0207, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice<pc_joy_device>("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice<pc_joy_device>("pc_joy")));
- m_isa->install_device(0x0226, 0x0227, read8_delegate(FUNC(stereo_fx_device::invalid_r), this), write8_delegate(FUNC(stereo_fx_device::dsp_reset_w), this));
- m_isa->install_device(0x022a, 0x022b, read8_delegate(FUNC(stereo_fx_device::dsp_data_r), this), write8_delegate(FUNC(stereo_fx_device::invalid_w), this) );
- m_isa->install_device(0x022c, 0x022d, read8_delegate(FUNC(stereo_fx_device::dsp_wbuf_status_r), this), write8_delegate(FUNC(stereo_fx_device::dsp_cmd_w), this) );
- m_isa->install_device(0x022e, 0x022f, read8_delegate(FUNC(stereo_fx_device::dsp_rbuf_status_r), this), write8_delegate(FUNC(stereo_fx_device::invalid_w), this) );
- m_isa->install_device(0x0388, 0x0389, read8sm_delegate(FUNC(ym3812_device::read), ym3812), write8sm_delegate(FUNC(ym3812_device::write), ym3812));
- m_isa->install_device(0x0228, 0x0229, read8sm_delegate(FUNC(ym3812_device::read), ym3812), write8sm_delegate(FUNC(ym3812_device::write), ym3812));
+ m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_w)));
+ m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(stereo_fx_device::invalid_r)), write8_delegate(*this, FUNC(stereo_fx_device::dsp_reset_w)));
+ m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(stereo_fx_device::dsp_data_r)), write8_delegate(*this, FUNC(stereo_fx_device::invalid_w)));
+ m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(stereo_fx_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(stereo_fx_device::dsp_cmd_w)));
+ m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(stereo_fx_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(stereo_fx_device::invalid_w)));
+ m_isa->install_device(0x0388, 0x0389, read8sm_delegate(ym3812, FUNC(ym3812_device::read)), write8sm_delegate(ym3812, FUNC(ym3812_device::write)));
+ m_isa->install_device(0x0228, 0x0229, read8sm_delegate(ym3812, FUNC(ym3812_device::read)), write8sm_delegate(ym3812, FUNC(ym3812_device::write)));
m_timer = timer_alloc();
m_timer->adjust(attotime::from_hz(2000000), 0, attotime::from_hz(2000000));
m_isa->set_dma_channel(1, this, false);
diff --git a/src/devices/bus/isa/svga_cirrus.cpp b/src/devices/bus/isa/svga_cirrus.cpp
index 7ee541184d2..74b3c581a39 100644
--- a/src/devices/bus/isa/svga_cirrus.cpp
+++ b/src/devices/bus/isa/svga_cirrus.cpp
@@ -36,7 +36,7 @@ void isa16_svga_cirrus_device::device_add_mconfig(machine_config &config)
screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480);
screen.set_screen_update("vga", FUNC(cirrus_gd5430_device::screen_update));
- CIRRUS_GD5430(config, "vga", 0).set_screen("screen");
+ CIRRUS_GD5430(config, m_vga, 0).set_screen("screen");
}
//-------------------------------------------------
@@ -59,7 +59,7 @@ const tiny_rom_entry *isa16_svga_cirrus_device::device_rom_region() const
isa16_svga_cirrus_device::isa16_svga_cirrus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, ISA16_SVGA_CIRRUS, tag, owner, clock),
device_isa16_card_interface(mconfig, *this),
- m_vga(nullptr)
+ m_vga(*this, "vga")
{
}
@@ -72,15 +72,13 @@ void isa16_svga_cirrus_device::device_start()
{
set_isa_device();
- m_vga = subdevice<cirrus_gd5430_device>("vga");
-
m_isa->install_rom(this, 0xc0000, 0xc7fff, "svga", "dm_clgd5430");
- m_isa->install_device(0x03b0, 0x03bf, read8_delegate(FUNC(cirrus_gd5430_device::port_03b0_r),m_vga), write8_delegate(FUNC(cirrus_gd5430_device::port_03b0_w),m_vga));
- m_isa->install_device(0x03c0, 0x03cf, read8_delegate(FUNC(cirrus_gd5430_device::port_03c0_r),m_vga), write8_delegate(FUNC(cirrus_gd5430_device::port_03c0_w),m_vga));
- m_isa->install_device(0x03d0, 0x03df, read8_delegate(FUNC(cirrus_gd5430_device::port_03d0_r),m_vga), write8_delegate(FUNC(cirrus_gd5430_device::port_03d0_w),m_vga));
+ m_isa->install_device(0x03b0, 0x03bf, read8_delegate(*m_vga, FUNC(cirrus_gd5430_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5430_device::port_03b0_w)));
+ m_isa->install_device(0x03c0, 0x03cf, read8_delegate(*m_vga, FUNC(cirrus_gd5430_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5430_device::port_03c0_w)));
+ m_isa->install_device(0x03d0, 0x03df, read8_delegate(*m_vga, FUNC(cirrus_gd5430_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5430_device::port_03d0_w)));
- m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(cirrus_gd5430_device::mem_r),m_vga), write8_delegate(FUNC(cirrus_gd5430_device::mem_w),m_vga));
+ m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(cirrus_gd5430_device::mem_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5430_device::mem_w)));
}
//-------------------------------------------------
@@ -116,7 +114,7 @@ void isa16_svga_cirrus_gd542x_device::device_add_mconfig(machine_config &config)
screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480);
screen.set_screen_update("vga", FUNC(cirrus_gd5428_device::screen_update));
- CIRRUS_GD5428(config, "vga", 0).set_screen("screen");
+ CIRRUS_GD5428(config, m_vga, 0).set_screen("screen");
}
//-------------------------------------------------
@@ -139,7 +137,7 @@ const tiny_rom_entry *isa16_svga_cirrus_gd542x_device::device_rom_region() const
isa16_svga_cirrus_gd542x_device::isa16_svga_cirrus_gd542x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, ISA16_SVGA_CIRRUS_GD542X, tag, owner, clock),
device_isa16_card_interface(mconfig, *this),
- m_vga(nullptr)
+ m_vga(*this, "vga")
{
}
@@ -152,15 +150,13 @@ void isa16_svga_cirrus_gd542x_device::device_start()
{
set_isa_device();
- m_vga = subdevice<cirrus_gd5428_device>("vga");
-
m_isa->install_rom(this, 0xc0000, 0xc7fff, "svga", "clgd542x");
- m_isa->install_device(0x03b0, 0x03bf, read8_delegate(FUNC(cirrus_gd5428_device::port_03b0_r),m_vga), write8_delegate(FUNC(cirrus_gd5428_device::port_03b0_w),m_vga));
- m_isa->install_device(0x03c0, 0x03cf, read8_delegate(FUNC(cirrus_gd5428_device::port_03c0_r),m_vga), write8_delegate(FUNC(cirrus_gd5428_device::port_03c0_w),m_vga));
- m_isa->install_device(0x03d0, 0x03df, read8_delegate(FUNC(cirrus_gd5428_device::port_03d0_r),m_vga), write8_delegate(FUNC(cirrus_gd5428_device::port_03d0_w),m_vga));
+ m_isa->install_device(0x03b0, 0x03bf, read8_delegate(*m_vga, FUNC(cirrus_gd5428_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5428_device::port_03b0_w)));
+ m_isa->install_device(0x03c0, 0x03cf, read8_delegate(*m_vga, FUNC(cirrus_gd5428_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5428_device::port_03c0_w)));
+ m_isa->install_device(0x03d0, 0x03df, read8_delegate(*m_vga, FUNC(cirrus_gd5428_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5428_device::port_03d0_w)));
- m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(cirrus_gd5428_device::mem_r),m_vga), write8_delegate(FUNC(cirrus_gd5428_device::mem_w),m_vga));
+ m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(cirrus_gd5428_device::mem_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5428_device::mem_w)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/isa/svga_cirrus.h b/src/devices/bus/isa/svga_cirrus.h
index 46b0cfcfc04..c1a97a5730b 100644
--- a/src/devices/bus/isa/svga_cirrus.h
+++ b/src/devices/bus/isa/svga_cirrus.h
@@ -32,7 +32,7 @@ protected:
virtual const tiny_rom_entry *device_rom_region() const override;
private:
- cirrus_gd5430_device *m_vga;
+ required_device<cirrus_gd5430_device> m_vga;
};
class isa16_svga_cirrus_gd542x_device :
@@ -55,7 +55,7 @@ protected:
virtual const tiny_rom_entry *device_rom_region() const override;
private:
- cirrus_gd5428_device *m_vga;
+ required_device<cirrus_gd5428_device> m_vga;
};
diff --git a/src/devices/bus/isa/svga_s3.cpp b/src/devices/bus/isa/svga_s3.cpp
index 0734a286998..ddac8fc77c1 100644
--- a/src/devices/bus/isa/svga_s3.cpp
+++ b/src/devices/bus/isa/svga_s3.cpp
@@ -44,9 +44,9 @@ void isa16_svga_s3_device::device_add_mconfig(machine_config &config)
{
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480);
- screen.set_screen_update("vga", FUNC(s3_vga_device::screen_update));
+ screen.set_screen_update(m_vga, FUNC(s3_vga_device::screen_update));
- S3_VGA(config, "vga", 0).set_screen("screen");
+ S3_VGA(config, m_vga, 0).set_screen("screen");
}
//-------------------------------------------------
@@ -69,7 +69,7 @@ const tiny_rom_entry *isa16_svga_s3_device::device_rom_region() const
isa16_svga_s3_device::isa16_svga_s3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, ISA16_SVGA_S3, tag, owner, clock),
device_isa16_card_interface(mconfig, *this),
- m_vga(nullptr), m_8514(nullptr)
+ m_vga(*this, "vga"), m_8514(*this, "vga:8514a")
{
}
@@ -82,32 +82,29 @@ void isa16_svga_s3_device::device_start()
{
set_isa_device();
- m_vga = subdevice<s3_vga_device>("vga");
- m_8514 = subdevice<ibm8514a_device>("vga:8514a");
-
m_isa->install_rom(this, 0xc0000, 0xc7fff, "svga", "s3_764");
- m_isa->install_device(0x03b0, 0x03bf, read8_delegate(FUNC(s3_vga_device::port_03b0_r),m_vga), write8_delegate(FUNC(s3_vga_device::port_03b0_w),m_vga));
- m_isa->install_device(0x03c0, 0x03cf, read8_delegate(FUNC(s3_vga_device::port_03c0_r),m_vga), write8_delegate(FUNC(s3_vga_device::port_03c0_w),m_vga));
- m_isa->install_device(0x03d0, 0x03df, read8_delegate(FUNC(s3_vga_device::port_03d0_r),m_vga), write8_delegate(FUNC(s3_vga_device::port_03d0_w),m_vga));
- m_isa->install16_device(0x82e8, 0x82eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_currenty_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_currenty_w),m_8514));
- m_isa->install16_device(0x86e8, 0x86eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_currentx_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_currentx_w),m_8514));
- m_isa->install16_device(0x8ae8, 0x8aeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_desty_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_desty_w),m_8514));
- m_isa->install16_device(0x8ee8, 0x8eeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_destx_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_destx_w),m_8514));
- m_isa->install16_device(0x92e8, 0x92eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_line_error_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_line_error_w),m_8514));
- m_isa->install16_device(0x96e8, 0x96eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_width_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_width_w),m_8514));
- m_isa->install16_device(0x9ae8, 0x9aeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_gpstatus_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_cmd_w),m_8514));
- m_isa->install16_device(0x9ee8, 0x9eeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_ssv_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_ssv_w),m_8514));
- m_isa->install16_device(0xa2e8, 0xa2eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_bgcolour_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_bgcolour_w),m_8514));
- m_isa->install16_device(0xa6e8, 0xa6eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_fgcolour_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_fgcolour_w),m_8514));
- m_isa->install16_device(0xaae8, 0xaaeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_write_mask_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_write_mask_w),m_8514));
- m_isa->install16_device(0xaee8, 0xaeeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_read_mask_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_read_mask_w),m_8514));
- m_isa->install16_device(0xb6e8, 0xb6eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_backmix_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_backmix_w),m_8514));
- m_isa->install16_device(0xbae8, 0xbaeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_foremix_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_foremix_w),m_8514));
- m_isa->install16_device(0xbee8, 0xbeeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_multifunc_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_multifunc_w),m_8514));
- m_isa->install16_device(0xe2e8, 0xe2eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_pixel_xfer_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_pixel_xfer_w),m_8514));
-
- m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(s3_vga_device::mem_r),m_vga), write8_delegate(FUNC(s3_vga_device::mem_w),m_vga));
+ m_isa->install_device(0x03b0, 0x03bf, read8_delegate(*m_vga, FUNC(s3_vga_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(s3_vga_device::port_03b0_w)));
+ m_isa->install_device(0x03c0, 0x03cf, read8_delegate(*m_vga, FUNC(s3_vga_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(s3_vga_device::port_03c0_w)));
+ m_isa->install_device(0x03d0, 0x03df, read8_delegate(*m_vga, FUNC(s3_vga_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(s3_vga_device::port_03d0_w)));
+ m_isa->install16_device(0x82e8, 0x82eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_currenty_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_currenty_w)));
+ m_isa->install16_device(0x86e8, 0x86eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_currentx_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_currentx_w)));
+ m_isa->install16_device(0x8ae8, 0x8aeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_desty_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_desty_w)));
+ m_isa->install16_device(0x8ee8, 0x8eeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_destx_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_destx_w)));
+ m_isa->install16_device(0x92e8, 0x92eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_line_error_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_line_error_w)));
+ m_isa->install16_device(0x96e8, 0x96eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_width_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_width_w)));
+ m_isa->install16_device(0x9ae8, 0x9aeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_gpstatus_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_cmd_w)));
+ m_isa->install16_device(0x9ee8, 0x9eeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_ssv_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_ssv_w)));
+ m_isa->install16_device(0xa2e8, 0xa2eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_bgcolour_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_bgcolour_w)));
+ m_isa->install16_device(0xa6e8, 0xa6eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_fgcolour_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_fgcolour_w)));
+ m_isa->install16_device(0xaae8, 0xaaeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_write_mask_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_write_mask_w)));
+ m_isa->install16_device(0xaee8, 0xaeeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_read_mask_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_read_mask_w)));
+ m_isa->install16_device(0xb6e8, 0xb6eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_backmix_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_backmix_w)));
+ m_isa->install16_device(0xbae8, 0xbaeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_foremix_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_foremix_w)));
+ m_isa->install16_device(0xbee8, 0xbeeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_multifunc_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_multifunc_w)));
+ m_isa->install16_device(0xe2e8, 0xe2eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_pixel_xfer_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_pixel_xfer_w)));
+
+ m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(s3_vga_device::mem_r)), write8_delegate(*m_vga, FUNC(s3_vga_device::mem_w)));
}
//-------------------------------------------------
@@ -150,9 +147,9 @@ void isa16_s3virge_device::device_add_mconfig(machine_config &config)
{
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480);
- screen.set_screen_update("vga", FUNC(s3virge_vga_device::screen_update));
+ screen.set_screen_update(m_vga, FUNC(s3virge_vga_device::screen_update));
- S3VIRGE(config, "vga", 0).set_screen("screen");
+ S3VIRGE(config, m_vga, 0).set_screen("screen");
}
//-------------------------------------------------
@@ -175,7 +172,7 @@ const tiny_rom_entry *isa16_s3virge_device::device_rom_region() const
isa16_s3virge_device::isa16_s3virge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, ISA16_S3VIRGE, tag, owner, clock),
device_isa16_card_interface(mconfig, *this),
- m_vga(nullptr)
+ m_vga(*this, "vga")
{
}
@@ -188,15 +185,13 @@ void isa16_s3virge_device::device_start()
{
set_isa_device();
- m_vga = subdevice<s3virge_vga_device>("vga");
-
m_isa->install_rom(this, 0xc0000, 0xc7fff, "svga", "s3virge");
- m_isa->install_device(0x03b0, 0x03bf, read8_delegate(FUNC(s3virge_vga_device::port_03b0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03b0_w),m_vga));
- m_isa->install_device(0x03c0, 0x03cf, read8_delegate(FUNC(s3virge_vga_device::port_03c0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03c0_w),m_vga));
- m_isa->install_device(0x03d0, 0x03df, read8_delegate(FUNC(s3virge_vga_device::port_03d0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03d0_w),m_vga));
+ m_isa->install_device(0x03b0, 0x03bf, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03b0_w)));
+ m_isa->install_device(0x03c0, 0x03cf, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03c0_w)));
+ m_isa->install_device(0x03d0, 0x03df, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03d0_w)));
- m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(s3virge_vga_device::mem_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::mem_w),m_vga));
+ m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(s3virge_vga_device::mem_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::mem_w)));
}
//-------------------------------------------------
@@ -231,9 +226,9 @@ void isa16_s3virgedx_device::device_add_mconfig(machine_config &config)
{
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480);
- screen.set_screen_update("vga", FUNC(s3virgedx_vga_device::screen_update));
+ screen.set_screen_update(m_vga, FUNC(s3virgedx_vga_device::screen_update));
- S3VIRGEDX(config, "vga", 0).set_screen("screen");
+ S3VIRGEDX(config, m_vga, 0).set_screen("screen");
}
//-------------------------------------------------
@@ -256,7 +251,7 @@ const tiny_rom_entry *isa16_s3virgedx_device::device_rom_region() const
isa16_s3virgedx_device::isa16_s3virgedx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, ISA16_S3VIRGEDX, tag, owner, clock),
device_isa16_card_interface(mconfig, *this),
- m_vga(nullptr)
+ m_vga(*this, "vga")
{
}
@@ -269,15 +264,13 @@ void isa16_s3virgedx_device::device_start()
{
set_isa_device();
- m_vga = subdevice<s3virgedx_vga_device>("vga");
-
m_isa->install_rom(this, 0xc0000, 0xc7fff, "svga", "s3virgedx");
- m_isa->install_device(0x03b0, 0x03bf, read8_delegate(FUNC(s3virge_vga_device::port_03b0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03b0_w),m_vga));
- m_isa->install_device(0x03c0, 0x03cf, read8_delegate(FUNC(s3virge_vga_device::port_03c0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03c0_w),m_vga));
- m_isa->install_device(0x03d0, 0x03df, read8_delegate(FUNC(s3virge_vga_device::port_03d0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03d0_w),m_vga));
+ m_isa->install_device(0x03b0, 0x03bf, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03b0_w)));
+ m_isa->install_device(0x03c0, 0x03cf, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03c0_w)));
+ m_isa->install_device(0x03d0, 0x03df, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03d0_w)));
- m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(s3virge_vga_device::mem_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::mem_w),m_vga));
+ m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(s3virge_vga_device::mem_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::mem_w)));
}
//-------------------------------------------------
@@ -313,9 +306,9 @@ void isa16_stealth3d2kpro_device::device_add_mconfig(machine_config &config)
{
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480);
- screen.set_screen_update("vga", FUNC(s3virgedx_rev1_vga_device::screen_update));
+ screen.set_screen_update(m_vga, FUNC(s3virgedx_rev1_vga_device::screen_update));
- S3VIRGEDX1(config, "vga", 0).set_screen("screen");
+ S3VIRGEDX1(config, m_vga, 0).set_screen("screen");
}
//-------------------------------------------------
@@ -338,7 +331,7 @@ const tiny_rom_entry *isa16_stealth3d2kpro_device::device_rom_region() const
isa16_stealth3d2kpro_device::isa16_stealth3d2kpro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, ISA16_DMS3D2KPRO, tag, owner, clock),
device_isa16_card_interface(mconfig, *this),
- m_vga(nullptr)
+ m_vga(*this, "vga")
{
}
@@ -351,15 +344,13 @@ void isa16_stealth3d2kpro_device::device_start()
{
set_isa_device();
- m_vga = subdevice<s3virgedx_vga_device>("vga");
-
m_isa->install_rom(this, 0xc0000, 0xc7fff, "svga", "stealth3d");
- m_isa->install_device(0x03b0, 0x03bf, read8_delegate(FUNC(s3virge_vga_device::port_03b0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03b0_w),m_vga));
- m_isa->install_device(0x03c0, 0x03cf, read8_delegate(FUNC(s3virge_vga_device::port_03c0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03c0_w),m_vga));
- m_isa->install_device(0x03d0, 0x03df, read8_delegate(FUNC(s3virge_vga_device::port_03d0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03d0_w),m_vga));
+ m_isa->install_device(0x03b0, 0x03bf, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03b0_w)));
+ m_isa->install_device(0x03c0, 0x03cf, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03c0_w)));
+ m_isa->install_device(0x03d0, 0x03df, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03d0_w)));
- m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(s3virge_vga_device::mem_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::mem_w),m_vga));
+ m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(s3virge_vga_device::mem_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::mem_w)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/isa/svga_s3.h b/src/devices/bus/isa/svga_s3.h
index f60141518de..3889a2ed8e8 100644
--- a/src/devices/bus/isa/svga_s3.h
+++ b/src/devices/bus/isa/svga_s3.h
@@ -35,8 +35,8 @@ protected:
virtual const tiny_rom_entry *device_rom_region() const override;
private:
- s3_vga_device *m_vga;
- ibm8514a_device *m_8514;
+ required_device<s3_vga_device> m_vga;
+ required_device<ibm8514a_device> m_8514;
};
class isa16_s3virge_device :
@@ -59,7 +59,7 @@ protected:
virtual const tiny_rom_entry *device_rom_region() const override;
private:
- s3virge_vga_device *m_vga;
+ required_device<s3virge_vga_device> m_vga;
};
class isa16_s3virgedx_device :
@@ -82,7 +82,7 @@ protected:
virtual const tiny_rom_entry *device_rom_region() const override;
private:
- s3virgedx_vga_device *m_vga;
+ required_device<s3virgedx_vga_device> m_vga;
};
class isa16_stealth3d2kpro_device :
@@ -105,7 +105,7 @@ protected:
virtual const tiny_rom_entry *device_rom_region() const override;
private:
- s3virgedx_vga_device *m_vga;
+ required_device<s3virgedx_vga_device> m_vga;
};
diff --git a/src/devices/bus/isa/svga_trident.cpp b/src/devices/bus/isa/svga_trident.cpp
index 31f2120f548..bc07c57a425 100644
--- a/src/devices/bus/isa/svga_trident.cpp
+++ b/src/devices/bus/isa/svga_trident.cpp
@@ -34,9 +34,9 @@ void isa16_svga_tgui9680_device::device_add_mconfig(machine_config &config)
{
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480);
- screen.set_screen_update("vga", FUNC(trident_vga_device::screen_update));
+ screen.set_screen_update(m_vga, FUNC(trident_vga_device::screen_update));
- TRIDENT_VGA(config, "vga", 0).set_screen("screen");
+ TRIDENT_VGA(config, m_vga, 0).set_screen("screen");
}
//-------------------------------------------------
@@ -59,7 +59,7 @@ const tiny_rom_entry *isa16_svga_tgui9680_device::device_rom_region() const
isa16_svga_tgui9680_device::isa16_svga_tgui9680_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, ISA16_SVGA_TGUI9680, tag, owner, clock),
device_isa16_card_interface(mconfig, *this),
- m_vga(nullptr)
+ m_vga(*this, "vga")
{
}
@@ -72,26 +72,24 @@ void isa16_svga_tgui9680_device::device_start()
{
set_isa_device();
- m_vga = subdevice<trident_vga_device>("vga");
-
m_isa->install_rom(this, 0xc0000, 0xc7fff, "tgui9680", "tgui9680");
- m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(trident_vga_device::port_03b0_r),m_vga), write8_delegate(FUNC(trident_vga_device::port_03b0_w),m_vga));
- m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(trident_vga_device::port_03c0_r),m_vga), write8_delegate(FUNC(trident_vga_device::port_03c0_w),m_vga));
- m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(trident_vga_device::port_03d0_r),m_vga), write8_delegate(FUNC(trident_vga_device::port_03d0_w),m_vga));
- m_isa->install_device(0x43c4, 0x43cb, read8_delegate(FUNC(trident_vga_device::port_43c6_r),m_vga), write8_delegate(FUNC(trident_vga_device::port_43c6_w),m_vga));
- m_isa->install_device(0x83c4, 0x83cb, read8_delegate(FUNC(trident_vga_device::port_83c6_r),m_vga), write8_delegate(FUNC(trident_vga_device::port_83c6_w),m_vga));
+ m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*m_vga, FUNC(trident_vga_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::port_03b0_w)));
+ m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*m_vga, FUNC(trident_vga_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::port_03c0_w)));
+ m_isa->install_device(0x3d0, 0x3df, read8_delegate(*m_vga, FUNC(trident_vga_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::port_03d0_w)));
+ m_isa->install_device(0x43c4, 0x43cb, read8_delegate(*m_vga, FUNC(trident_vga_device::port_43c6_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::port_43c6_w)));
+ m_isa->install_device(0x83c4, 0x83cb, read8_delegate(*m_vga, FUNC(trident_vga_device::port_83c6_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::port_83c6_w)));
- m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(trident_vga_device::mem_r),m_vga), write8_delegate(FUNC(trident_vga_device::mem_w),m_vga));
+ m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(trident_vga_device::mem_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::mem_w)));
// uncomment to test Windows 3.1 TGUI9440AGi driver
-// m_isa->install_memory(0x4400000, 0x45fffff, read8_delegate(FUNC(trident_vga_device::vram_r),m_vga), write8_delegate(FUNC(trident_vga_device::vram_w),m_vga));
+// m_isa->install_memory(0x4400000, 0x45fffff, read8_delegate(*m_vga, FUNC(trident_vga_device::vram_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::vram_w)));
// win95 drivers
-// m_isa->install_memory(0x4000000, 0x41fffff, read8_delegate(FUNC(trident_vga_device::vram_r),m_vga), write8_delegate(FUNC(trident_vga_device::vram_w),m_vga));
+// m_isa->install_memory(0x4000000, 0x41fffff, read8_delegate(*m_vga, FUNC(trident_vga_device::vram_r)), write8_delegate(FUNC(*m_vga, trident_vga_device::vram_w)));
// acceleration ports
- m_isa->install_device(0x2120, 0x21ff, read8_delegate(FUNC(trident_vga_device::accel_r),m_vga), write8_delegate(FUNC(trident_vga_device::accel_w),m_vga));
+ m_isa->install_device(0x2120, 0x21ff, read8_delegate(*m_vga, FUNC(trident_vga_device::accel_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::accel_w)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/isa/svga_trident.h b/src/devices/bus/isa/svga_trident.h
index d8be1458591..47019e6b16e 100644
--- a/src/devices/bus/isa/svga_trident.h
+++ b/src/devices/bus/isa/svga_trident.h
@@ -39,7 +39,7 @@ protected:
virtual const tiny_rom_entry *device_rom_region() const override;
private:
- trident_vga_device *m_vga;
+ required_device<trident_vga_device> m_vga;
};
diff --git a/src/devices/bus/isa/svga_tseng.cpp b/src/devices/bus/isa/svga_tseng.cpp
index 354643fd96d..53dc3d72a5d 100644
--- a/src/devices/bus/isa/svga_tseng.cpp
+++ b/src/devices/bus/isa/svga_tseng.cpp
@@ -33,9 +33,9 @@ void isa8_svga_et4k_device::device_add_mconfig(machine_config &config)
{
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480);
- screen.set_screen_update("vga", FUNC(tseng_vga_device::screen_update));
+ screen.set_screen_update(m_vga, FUNC(tseng_vga_device::screen_update));
- TSENG_VGA(config, "vga", 0).set_screen("screen");
+ TSENG_VGA(config, m_vga, 0).set_screen("screen");
}
//-------------------------------------------------
@@ -58,7 +58,7 @@ const tiny_rom_entry *isa8_svga_et4k_device::device_rom_region() const
isa8_svga_et4k_device::isa8_svga_et4k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, ISA8_SVGA_ET4K, tag, owner, clock),
device_isa8_card_interface(mconfig, *this),
- m_vga(nullptr)
+ m_vga(*this, "vga")
{
}
@@ -71,8 +71,6 @@ void isa8_svga_et4k_device::device_start()
{
set_isa_device();
- m_vga = subdevice<tseng_vga_device>("vga");
-
map_io();
map_ram();
map_rom();
@@ -104,14 +102,14 @@ void isa8_svga_et4k_device::remap(int space_id, offs_t start, offs_t end)
void isa8_svga_et4k_device::map_io()
{
- m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(tseng_vga_device::port_03b0_r), m_vga), write8_delegate(FUNC(tseng_vga_device::port_03b0_w), m_vga));
- m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(tseng_vga_device::port_03c0_r), m_vga), write8_delegate(FUNC(tseng_vga_device::port_03c0_w), m_vga));
- m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(tseng_vga_device::port_03d0_r), m_vga), write8_delegate(FUNC(tseng_vga_device::port_03d0_w), m_vga));
+ m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*m_vga, FUNC(tseng_vga_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(tseng_vga_device::port_03b0_w)));
+ m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*m_vga, FUNC(tseng_vga_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(tseng_vga_device::port_03c0_w)));
+ m_isa->install_device(0x3d0, 0x3df, read8_delegate(*m_vga, FUNC(tseng_vga_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(tseng_vga_device::port_03d0_w)));
}
void isa8_svga_et4k_device::map_ram()
{
- m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(tseng_vga_device::mem_r), m_vga), write8_delegate(FUNC(tseng_vga_device::mem_w), m_vga));
+ m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(tseng_vga_device::mem_r)), write8_delegate(*m_vga, FUNC(tseng_vga_device::mem_w)));
}
void isa8_svga_et4k_device::map_rom()
diff --git a/src/devices/bus/isa/svga_tseng.h b/src/devices/bus/isa/svga_tseng.h
index f83460e86ff..f267aad2634 100644
--- a/src/devices/bus/isa/svga_tseng.h
+++ b/src/devices/bus/isa/svga_tseng.h
@@ -39,7 +39,7 @@ private:
void map_io();
void map_ram();
void map_rom();
- tseng_vga_device *m_vga;
+ required_device<tseng_vga_device> m_vga;
};
diff --git a/src/devices/bus/isa/trident.cpp b/src/devices/bus/isa/trident.cpp
index a3cd123305b..9110c2205ef 100644
--- a/src/devices/bus/isa/trident.cpp
+++ b/src/devices/bus/isa/trident.cpp
@@ -169,7 +169,7 @@ void trident_vga_device::device_start()
// copy over interfaces
- vga.read_dipswitch = read8_delegate(); //read_dipswitch;
+ vga.read_dipswitch.set(nullptr); //read_dipswitch;
vga.svga_intf.vram_size = 0x200000;
vga.memory.resize(vga.svga_intf.vram_size);
diff --git a/src/devices/bus/isa/vga.cpp b/src/devices/bus/isa/vga.cpp
index 121f689d711..3fafec340b0 100644
--- a/src/devices/bus/isa/vga.cpp
+++ b/src/devices/bus/isa/vga.cpp
@@ -31,9 +31,9 @@ void isa8_vga_device::device_add_mconfig(machine_config &config)
{
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480);
- screen.set_screen_update("vga", FUNC(vga_device::screen_update));
+ screen.set_screen_update(m_vga, FUNC(vga_device::screen_update));
- VGA(config, "vga", 0).set_screen("screen");
+ VGA(config, m_vga, 0).set_screen("screen");
}
//-------------------------------------------------
@@ -55,7 +55,8 @@ const tiny_rom_entry *isa8_vga_device::device_rom_region() const
isa8_vga_device::isa8_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, ISA8_VGA, tag, owner, clock),
- device_isa8_card_interface(mconfig, *this), m_vga(nullptr)
+ device_isa8_card_interface(mconfig, *this),
+ m_vga(*this, "vga")
{
}
@@ -68,15 +69,13 @@ void isa8_vga_device::device_start()
{
set_isa_device();
- m_vga = subdevice<vga_device>("vga");
-
m_isa->install_rom(this, 0xc0000, 0xc7fff, "ibm_vga", "ibm_vga");
- m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(vga_device::port_03b0_r),m_vga), write8_delegate(FUNC(vga_device::port_03b0_w),m_vga));
- m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(vga_device::port_03c0_r),m_vga), write8_delegate(FUNC(vga_device::port_03c0_w),m_vga));
- m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(vga_device::port_03d0_r),m_vga), write8_delegate(FUNC(vga_device::port_03d0_w),m_vga));
+ m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*m_vga, FUNC(vga_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(vga_device::port_03b0_w)));
+ m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*m_vga, FUNC(vga_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(vga_device::port_03c0_w)));
+ m_isa->install_device(0x3d0, 0x3df, read8_delegate(*m_vga, FUNC(vga_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(vga_device::port_03d0_w)));
- m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(vga_device::mem_r),m_vga), write8_delegate(FUNC(vga_device::mem_w),m_vga));
+ m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(vga_device::mem_r)), write8_delegate(*m_vga, FUNC(vga_device::mem_w)));
}
//-------------------------------------------------
diff --git a/src/devices/bus/isa/vga.h b/src/devices/bus/isa/vga.h
index 856016ecc5a..4f18d8ff053 100644
--- a/src/devices/bus/isa/vga.h
+++ b/src/devices/bus/isa/vga.h</