summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Peter Ferrie <peter.ferrie@gmail.com>2019-02-25 17:39:26 -0800
committer Peter Ferrie <peter.ferrie@gmail.com>2019-02-25 17:39:26 -0800
commit8fc8ae62a7130cc00510fec3359988d29c7ed40e (patch)
tree47e6eb73bbf6149b1c3127f558480bb40250e565
parent2bfb89de779328883e343e6579cb7fd901846411 (diff)
parentb46ab2b76723070542ad4d7869c8685b72e11017 (diff)
Merge branch 'master' of https://github.com/mamedev/mame
-rw-r--r--[-rwxr-xr-x]hash/a800.xml0
-rw-r--r--[-rwxr-xr-x]hash/a800_flop.xml0
-rw-r--r--hash/ekara_japan.xml292
-rw-r--r--hash/ekara_japan_a.xml8
-rw-r--r--hash/ekara_japan_bh.xml8
-rw-r--r--hash/ekara_japan_d.xml2
-rw-r--r--hash/ekara_japan_g.xml10
-rw-r--r--hash/ekara_japan_m.xml8
-rw-r--r--hash/ekara_japan_p.xml2
-rw-r--r--hash/ekara_japan_sp.xml10
-rw-r--r--hash/ekara_japan_web.xml6
-rw-r--r--hash/gamate.xml2
-rw-r--r--[-rwxr-xr-x]hash/ibm5150.xml24
-rw-r--r--hash/ibm5170.xml4
-rw-r--r--hash/jpopira_jp.xml4
-rw-r--r--hash/leapfrog_leappad_cart.xml84
-rw-r--r--[-rwxr-xr-x]hash/msx1_cass.xml0
-rw-r--r--hash/pc98.xml1186
-rw-r--r--hash/pc98_cd.xml37
-rw-r--r--hash/sega_beena_cart.xml4
-rw-r--r--[-rwxr-xr-x]hash/timex_dock.xml0
-rw-r--r--hash/vgmplay.xml2
-rw-r--r--plugins/cheatfind/init.lua144
-rw-r--r--src/devices/bus/acorn/bus.cpp2
-rw-r--r--src/devices/bus/acorn/bus.h6
-rw-r--r--src/devices/bus/amiga/zorro/buddha.cpp8
-rw-r--r--src/devices/bus/bbc/1mhzbus/1mhzbus.cpp16
-rw-r--r--src/devices/bus/bbc/1mhzbus/1mhzbus.h16
-rw-r--r--src/devices/bus/bbc/1mhzbus/beebsid.cpp16
-rw-r--r--src/devices/bus/bbc/1mhzbus/beebsid.h8
-rw-r--r--src/devices/bus/bbc/1mhzbus/cfa3000opt.cpp2
-rw-r--r--src/devices/bus/bbc/1mhzbus/cfa3000opt.h2
-rw-r--r--src/devices/bus/bbc/1mhzbus/emrmidi.cpp4
-rw-r--r--src/devices/bus/bbc/1mhzbus/emrmidi.h4
-rw-r--r--src/devices/bus/bbc/1mhzbus/ieee488.cpp24
-rw-r--r--src/devices/bus/bbc/1mhzbus/ieee488.h16
-rw-r--r--src/devices/bus/bbc/1mhzbus/m2000.cpp16
-rw-r--r--src/devices/bus/bbc/1mhzbus/m2000.h8
-rw-r--r--src/devices/bus/bbc/1mhzbus/opus3.cpp8
-rw-r--r--src/devices/bus/bbc/1mhzbus/opus3.h8
-rw-r--r--src/devices/bus/bbc/1mhzbus/sprite.cpp4
-rw-r--r--src/devices/bus/bbc/1mhzbus/sprite.h4
-rw-r--r--src/devices/bus/bbc/exp/mertec.cpp8
-rw-r--r--src/devices/bus/bbc/tube/tube.cpp8
-rw-r--r--src/devices/bus/bbc/tube/tube.h8
-rw-r--r--src/devices/bus/bbc/tube/tube_6502.cpp16
-rw-r--r--src/devices/bus/bbc/tube/tube_6502.h8
-rw-r--r--src/devices/bus/bbc/tube/tube_80186.cpp8
-rw-r--r--src/devices/bus/bbc/tube/tube_80186.h4
-rw-r--r--src/devices/bus/bbc/tube/tube_80286.cpp15
-rw-r--r--src/devices/bus/bbc/tube/tube_80286.h8
-rw-r--r--src/devices/bus/bbc/tube/tube_arm.cpp12
-rw-r--r--src/devices/bus/bbc/tube/tube_arm.h8
-rw-r--r--src/devices/bus/bbc/tube/tube_casper.cpp4
-rw-r--r--src/devices/bus/bbc/tube/tube_casper.h4
-rw-r--r--src/devices/bus/bbc/tube/tube_rc6502.cpp12
-rw-r--r--src/devices/bus/bbc/tube/tube_rc6502.h8
-rw-r--r--src/devices/bus/bbc/tube/tube_z80.cpp14
-rw-r--r--src/devices/bus/bbc/tube/tube_z80.h10
-rw-r--r--src/devices/bus/bbc/tube/tube_zep100.cpp18
-rw-r--r--src/devices/bus/bbc/tube/tube_zep100.h18
-rw-r--r--src/devices/bus/bw2/exp.cpp24
-rw-r--r--src/devices/bus/bw2/exp.h24
-rw-r--r--src/devices/bus/bw2/ramcard.cpp6
-rw-r--r--src/devices/bus/bw2/ramcard.h6
-rw-r--r--src/devices/bus/cgenie/expansion/expansion.cpp22
-rw-r--r--src/devices/bus/cgenie/expansion/expansion.h8
-rw-r--r--src/devices/bus/compis/graphics.h40
-rw-r--r--src/devices/bus/compis/hrg.cpp8
-rw-r--r--src/devices/bus/compis/hrg.h4
-rw-r--r--src/devices/bus/dmv/dmvbus.cpp8
-rw-r--r--src/devices/bus/dmv/dmvbus.h8
-rw-r--r--src/devices/bus/dmv/k210.cpp4
-rw-r--r--src/devices/bus/dmv/k210.h4
-rw-r--r--src/devices/bus/dmv/k233.cpp2
-rw-r--r--src/devices/bus/dmv/k233.h2
-rw-r--r--src/devices/bus/dmv/k801.cpp8
-rw-r--r--src/devices/bus/dmv/k801.h8
-rw-r--r--src/devices/bus/dmv/k803.cpp8
-rw-r--r--src/devices/bus/dmv/k803.h4
-rw-r--r--src/devices/bus/dmv/k806.cpp8
-rw-r--r--src/devices/bus/dmv/k806.h4
-rw-r--r--src/devices/bus/einstein/pipe/pipe.cpp44
-rw-r--r--src/devices/bus/einstein/pipe/pipe.h9
-rw-r--r--src/devices/bus/einstein/pipe/tk02.cpp3
-rw-r--r--src/devices/bus/ekara/slot.cpp2
-rw-r--r--src/devices/bus/ekara/slot.h4
-rw-r--r--src/devices/bus/electron/cart/abr.cpp4
-rw-r--r--src/devices/bus/electron/cart/abr.h4
-rw-r--r--src/devices/bus/electron/cart/ap34.cpp8
-rw-r--r--src/devices/bus/electron/cart/ap34.h6
-rw-r--r--src/devices/bus/electron/cart/ap5.cpp16
-rw-r--r--src/devices/bus/electron/cart/ap5.h4
-rw-r--r--src/devices/bus/electron/cart/aqr.cpp4
-rw-r--r--src/devices/bus/electron/cart/aqr.h4
-rw-r--r--src/devices/bus/electron/cart/click.cpp8
-rw-r--r--src/devices/bus/electron/cart/click.h4
-rw-r--r--src/devices/bus/electron/cart/cumana.cpp13
-rw-r--r--src/devices/bus/electron/cart/cumana.h6
-rw-r--r--src/devices/bus/electron/cart/mgc.cpp4
-rw-r--r--src/devices/bus/electron/cart/mgc.h4
-rw-r--r--src/devices/bus/electron/cart/peg400.cpp8
-rw-r--r--src/devices/bus/electron/cart/peg400.h6
-rw-r--r--src/devices/bus/electron/cart/slot.cpp8
-rw-r--r--src/devices/bus/electron/cart/slot.h8
-rw-r--r--src/devices/bus/electron/cart/sndexp.cpp4
-rw-r--r--src/devices/bus/electron/cart/sndexp.h4
-rw-r--r--src/devices/bus/electron/cart/sndexp3.cpp4
-rw-r--r--src/devices/bus/electron/cart/sndexp3.h4
-rw-r--r--src/devices/bus/electron/cart/sp64.cpp4
-rw-r--r--src/devices/bus/electron/cart/sp64.h4
-rw-r--r--src/devices/bus/electron/cart/std.cpp2
-rw-r--r--src/devices/bus/electron/cart/std.h2
-rw-r--r--src/devices/bus/electron/cart/stlefs.cpp8
-rw-r--r--src/devices/bus/electron/cart/stlefs.h6
-rw-r--r--src/devices/bus/electron/cart/tube.cpp8
-rw-r--r--src/devices/bus/electron/cart/tube.h4
-rw-r--r--src/devices/bus/electron/exp.cpp8
-rw-r--r--src/devices/bus/electron/exp.h8
-rw-r--r--src/devices/bus/electron/fbjoy.cpp2
-rw-r--r--src/devices/bus/electron/fbjoy.h2
-rw-r--r--src/devices/bus/electron/m2105.cpp4
-rw-r--r--src/devices/bus/electron/m2105.h4
-rw-r--r--src/devices/bus/electron/plus1.cpp32
-rw-r--r--src/devices/bus/electron/plus1.h4
-rw-r--r--src/devices/bus/electron/plus2.cpp36
-rw-r--r--src/devices/bus/electron/plus2.h4
-rw-r--r--src/devices/bus/electron/plus3.cpp12
-rw-r--r--src/devices/bus/electron/plus3.h6
-rw-r--r--src/devices/bus/electron/pwrjoy.cpp4
-rw-r--r--src/devices/bus/electron/pwrjoy.h4
-rw-r--r--src/devices/bus/electron/rombox.cpp8
-rw-r--r--src/devices/bus/electron/rombox.h4
-rw-r--r--src/devices/bus/electron/romboxp.cpp36
-rw-r--r--src/devices/bus/electron/romboxp.h6
-rw-r--r--src/devices/bus/isa/num9rev.cpp2
-rw-r--r--src/devices/bus/isbx/compis_fdc.cpp14
-rw-r--r--src/devices/bus/isbx/compis_fdc.h8
-rw-r--r--src/devices/bus/isbx/isbc_218a.cpp18
-rw-r--r--src/devices/bus/isbx/isbc_218a.h12
-rw-r--r--src/devices/bus/isbx/isbx.h24
-rw-r--r--src/devices/bus/nasbus/nasbus.cpp22
-rw-r--r--src/devices/bus/nasbus/nasbus.h8
-rw-r--r--src/devices/bus/nes/2a03pur.cpp4
-rw-r--r--src/devices/bus/nes/2a03pur.h4
-rw-r--r--src/devices/bus/nes/act53.cpp4
-rw-r--r--src/devices/bus/nes/act53.h4
-rw-r--r--src/devices/bus/nes/aladdin.cpp14
-rw-r--r--src/devices/bus/nes/aladdin.h8
-rw-r--r--src/devices/bus/nes/ave.cpp6
-rw-r--r--src/devices/bus/nes/ave.h6
-rw-r--r--src/devices/bus/nes/bandai.cpp26
-rw-r--r--src/devices/bus/nes/bandai.h22
-rw-r--r--src/devices/bus/nes/benshieng.cpp2
-rw-r--r--src/devices/bus/nes/benshieng.h2
-rw-r--r--src/devices/bus/nes/bootleg.cpp98
-rw-r--r--src/devices/bus/nes/bootleg.h98
-rw-r--r--src/devices/bus/nes/camerica.cpp6
-rw-r--r--src/devices/bus/nes/camerica.h8
-rw-r--r--src/devices/bus/nes/cne.cpp8
-rw-r--r--src/devices/bus/nes/cne.h8
-rw-r--r--src/devices/bus/nes/cony.cpp12
-rw-r--r--src/devices/bus/nes/cony.h12
-rw-r--r--src/devices/bus/nes/datach.cpp18
-rw-r--r--src/devices/bus/nes/datach.h10
-rw-r--r--src/devices/bus/nes/discrete.cpp8
-rw-r--r--src/devices/bus/nes/discrete.h8
-rw-r--r--src/devices/bus/nes/disksys.cpp12
-rw-r--r--src/devices/bus/nes/disksys.h12
-rw-r--r--src/devices/bus/nes/ggenie.cpp38
-rw-r--r--src/devices/bus/nes/ggenie.h22
-rw-r--r--src/devices/bus/nes/henggedianzi.cpp8
-rw-r--r--src/devices/bus/nes/henggedianzi.h8
-rw-r--r--src/devices/bus/nes/hes.cpp2
-rw-r--r--src/devices/bus/nes/hes.h2
-rw-r--r--src/devices/bus/nes/hosenkan.cpp2
-rw-r--r--src/devices/bus/nes/hosenkan.h2
-rw-r--r--src/devices/bus/nes/irem.cpp10
-rw-r--r--src/devices/bus/nes/irem.h10
-rw-r--r--src/devices/bus/nes/jaleco.cpp22
-rw-r--r--src/devices/bus/nes/jaleco.h28
-rw-r--r--src/devices/bus/nes/jy.cpp20
-rw-r--r--src/devices/bus/nes/jy.h14
-rw-r--r--src/devices/bus/nes/kaiser.cpp48
-rw-r--r--src/devices/bus/nes/kaiser.h46
-rw-r--r--src/devices/bus/nes/karastudio.cpp16
-rw-r--r--src/devices/bus/nes/karastudio.h10
-rw-r--r--src/devices/bus/nes/konami.cpp24
-rw-r--r--src/devices/bus/nes/konami.h16
-rw-r--r--src/devices/bus/nes/legacy.cpp12
-rw-r--r--src/devices/bus/nes/legacy.h14
-rw-r--r--src/devices/bus/nes/mmc1.cpp24
-rw-r--r--src/devices/bus/nes/mmc1.h18
-rw-r--r--src/devices/bus/nes/mmc2.cpp6
-rw-r--r--src/devices/bus/nes/mmc2.h6
-rw-r--r--src/devices/bus/nes/mmc3.cpp28
-rw-r--r--src/devices/bus/nes/mmc3.h20
-rw-r--r--src/devices/bus/nes/mmc3_clones.cpp202
-rw-r--r--src/devices/bus/nes/mmc3_clones.h112
-rw-r--r--src/devices/bus/nes/mmc5.cpp24
-rw-r--r--src/devices/bus/nes/mmc5.h20
-rw-r--r--src/devices/bus/nes/multigame.cpp128
-rw-r--r--src/devices/bus/nes/multigame.h122
-rw-r--r--src/devices/bus/nes/namcot.cpp44
-rw-r--r--src/devices/bus/nes/namcot.h40
-rw-r--r--src/devices/bus/nes/nanjing.cpp4
-rw-r--r--src/devices/bus/nes/nanjing.h4
-rw-r--r--src/devices/bus/nes/nes_slot.cpp63
-rw-r--r--src/devices/bus/nes/nes_slot.h46
-rw-r--r--src/devices/bus/nes/ntdec.cpp4
-rw-r--r--src/devices/bus/nes/ntdec.h4
-rw-r--r--src/devices/bus/nes/nxrom.cpp35
-rw-r--r--src/devices/bus/nes/nxrom.h28
-rw-r--r--src/devices/bus/nes/pirate.cpp48
-rw-r--r--src/devices/bus/nes/pirate.h46
-rw-r--r--src/devices/bus/nes/pt554.cpp2
-rw-r--r--src/devices/bus/nes/pt554.h2
-rw-r--r--src/devices/bus/nes/racermate.cpp2
-rw-r--r--src/devices/bus/nes/racermate.h2
-rw-r--r--src/devices/bus/nes/rcm.cpp12
-rw-r--r--src/devices/bus/nes/rcm.h14
-rw-r--r--src/devices/bus/nes/rexsoft.cpp8
-rw-r--r--src/devices/bus/nes/rexsoft.h10
-rw-r--r--src/devices/bus/nes/sachen.cpp26
-rw-r--r--src/devices/bus/nes/sachen.h34
-rw-r--r--src/devices/bus/nes/somari.cpp16
-rw-r--r--src/devices/bus/nes/somari.h12
-rw-r--r--src/devices/bus/nes/subor.cpp12
-rw-r--r--src/devices/bus/nes/subor.h10
-rw-r--r--src/devices/bus/nes/sunsoft.cpp26
-rw-r--r--src/devices/bus/nes/sunsoft.h24
-rw-r--r--src/devices/bus/nes/sunsoft_dcs.cpp20
-rw-r--r--src/devices/bus/nes/sunsoft_dcs.h12
-rw-r--r--src/devices/bus/nes/taito.cpp18
-rw-r--r--src/devices/bus/nes/taito.h14
-rw-r--r--src/devices/bus/nes/tengen.cpp8
-rw-r--r--src/devices/bus/nes/tengen.h8
-rw-r--r--src/devices/bus/nes/txc.cpp16
-rw-r--r--src/devices/bus/nes/txc.h16
-rw-r--r--src/devices/bus/nes/waixing.cpp46
-rw-r--r--src/devices/bus/nes/waixing.h36
-rw-r--r--src/devices/bus/nes/zemina.cpp2
-rw-r--r--src/devices/bus/nes/zemina.h2
-rw-r--r--src/devices/bus/pofo/ccm.h8
-rw-r--r--src/devices/bus/pofo/exp.h8
-rw-r--r--src/devices/bus/pofo/hpc101.cpp4
-rw-r--r--src/devices/bus/pofo/hpc101.h4
-rw-r--r--src/devices/bus/pofo/hpc102.cpp8
-rw-r--r--src/devices/bus/pofo/hpc102.h4
-rw-r--r--src/devices/bus/pofo/hpc104.cpp12
-rw-r--r--src/devices/bus/pofo/hpc104.h4
-rw-r--r--src/devices/bus/pofo/ram.cpp4
-rw-r--r--src/devices/bus/pofo/ram.h4
-rw-r--r--src/devices/bus/pofo/rom.cpp2
-rw-r--r--src/devices/bus/pofo/rom.h2
-rw-r--r--src/devices/bus/ql/cst_q_plus4.cpp20
-rw-r--r--src/devices/bus/ql/cst_q_plus4.h4
-rw-r--r--src/devices/bus/ql/cst_qdisc.cpp4
-rw-r--r--src/devices/bus/ql/cst_qdisc.h4
-rw-r--r--src/devices/bus/ql/cumana_fdi.cpp4
-rw-r--r--src/devices/bus/ql/cumana_fdi.h4
-rw-r--r--src/devices/bus/ql/exp.h8
-rw-r--r--src/devices/bus/ql/kempston_di.cpp4
-rw-r--r--src/devices/bus/ql/kempston_di.h4
-rw-r--r--src/devices/bus/ql/miracle_gold_card.cpp4
-rw-r--r--src/devices/bus/ql/miracle_gold_card.h4
-rw-r--r--src/devices/bus/ql/miracle_hd.cpp4
-rw-r--r--src/devices/bus/ql/miracle_hd.h4
-rw-r--r--src/devices/bus/ql/mp_fdi.cpp4
-rw-r--r--src/devices/bus/ql/mp_fdi.h4
-rw-r--r--src/devices/bus/ql/opd_basic_master.cpp4
-rw-r--r--src/devices/bus/ql/opd_basic_master.h4
-rw-r--r--src/devices/bus/ql/pcml_qdisk.cpp4
-rw-r--r--src/devices/bus/ql/pcml_qdisk.h4
-rw-r--r--src/devices/bus/ql/qubide.cpp4
-rw-r--r--src/devices/bus/ql/qubide.h4
-rw-r--r--src/devices/bus/ql/rom.h8
-rw-r--r--src/devices/bus/ql/sandy_superdisk.cpp4
-rw-r--r--src/devices/bus/ql/sandy_superdisk.h4
-rw-r--r--src/devices/bus/ql/sandy_superqboard.cpp4
-rw-r--r--src/devices/bus/ql/sandy_superqboard.h4
-rw-r--r--src/devices/bus/ql/std.cpp2
-rw-r--r--src/devices/bus/ql/std.h2
-rw-r--r--src/devices/bus/ql/trumpcard.cpp4
-rw-r--r--src/devices/bus/ql/trumpcard.h4
-rw-r--r--src/devices/bus/s100/dj2db.cpp8
-rw-r--r--src/devices/bus/s100/dj2db.h8
-rw-r--r--src/devices/bus/s100/djdma.cpp2
-rw-r--r--src/devices/bus/s100/djdma.h2
-rw-r--r--src/devices/bus/s100/mm65k16s.cpp4
-rw-r--r--src/devices/bus/s100/mm65k16s.h4
-rw-r--r--src/devices/bus/s100/nsmdsa.cpp2
-rw-r--r--src/devices/bus/s100/nsmdsa.h2
-rw-r--r--src/devices/bus/s100/nsmdsad.cpp2
-rw-r--r--src/devices/bus/s100/nsmdsad.h2
-rw-r--r--src/devices/bus/s100/s100.cpp16
-rw-r--r--src/devices/bus/s100/s100.h16
-rw-r--r--src/devices/bus/s100/seals8k.cpp8
-rw-r--r--src/devices/bus/s100/wunderbus.cpp16
-rw-r--r--src/devices/bus/s100/wunderbus.h4
-rw-r--r--src/devices/bus/spectrum/exp.cpp28
-rw-r--r--src/devices/bus/spectrum/exp.h5
-rw-r--r--src/devices/bus/spectrum/fuller.cpp2
-rw-r--r--src/devices/bus/spectrum/intf1.cpp2
-rw-r--r--src/devices/bus/spectrum/melodik.cpp2
-rw-r--r--src/devices/bus/spectrum/uslot.cpp2
-rw-r--r--src/devices/bus/vidbrain/exp.cpp8
-rw-r--r--src/devices/bus/vidbrain/exp.h22
-rw-r--r--src/devices/bus/vidbrain/money_minder.cpp4
-rw-r--r--src/devices/bus/vidbrain/money_minder.h4
-rw-r--r--src/devices/bus/vidbrain/std.cpp2
-rw-r--r--src/devices/bus/vidbrain/std.h2
-rw-r--r--src/devices/bus/vidbrain/timeshare.cpp4
-rw-r--r--src/devices/bus/vidbrain/timeshare.h4
-rw-r--r--src/devices/bus/vsmile/vsmile_slot.cpp2
-rw-r--r--src/devices/bus/vtech/ioexp/ioexp.cpp11
-rw-r--r--src/devices/bus/vtech/ioexp/ioexp.h4
-rw-r--r--src/devices/bus/vtech/memexp/floppy.cpp3
-rw-r--r--src/devices/bus/vtech/memexp/memexp.cpp44
-rw-r--r--src/devices/bus/vtech/memexp/memexp.h9
-rw-r--r--src/devices/bus/wangpc/emb.cpp8
-rw-r--r--src/devices/bus/wangpc/emb.h8
-rw-r--r--src/devices/bus/wangpc/lic.cpp8
-rw-r--r--src/devices/bus/wangpc/lic.h8
-rw-r--r--src/devices/bus/wangpc/lvc.cpp8
-rw-r--r--src/devices/bus/wangpc/lvc.h8
-rw-r--r--src/devices/bus/wangpc/mcc.cpp12
-rw-r--r--src/devices/bus/wangpc/mcc.h4
-rw-r--r--src/devices/bus/wangpc/mvc.cpp8
-rw-r--r--src/devices/bus/wangpc/mvc.h8
-rw-r--r--src/devices/bus/wangpc/rtc.cpp8
-rw-r--r--src/devices/bus/wangpc/rtc.h8
-rw-r--r--src/devices/bus/wangpc/tig.cpp24
-rw-r--r--src/devices/bus/wangpc/tig.h8
-rw-r--r--src/devices/bus/wangpc/wangpc.cpp24
-rw-r--r--src/devices/bus/wangpc/wangpc.h40
-rw-r--r--src/devices/bus/wangpc/wdc.cpp28
-rw-r--r--src/devices/bus/wangpc/wdc.h12
-rw-r--r--src/devices/cpu/i386/cpuidmsrs.hxx18
-rw-r--r--src/devices/cpu/i86/i186.h2
-rw-r--r--src/devices/machine/8042kbdc.h2
-rw-r--r--src/devices/machine/mm58167.cpp4
-rw-r--r--src/devices/machine/mm58167.h4
-rw-r--r--src/devices/machine/nscsi_cd.cpp2
-rw-r--r--src/devices/machine/spg110.cpp34
-rw-r--r--src/devices/machine/timekpr.cpp2
-rw-r--r--src/devices/machine/tube.cpp8
-rw-r--r--src/devices/machine/tube.h8
-rw-r--r--src/devices/sound/ay8910.cpp96
-rw-r--r--src/devices/sound/ics2115.cpp8
-rw-r--r--src/devices/sound/vrc6.cpp2
-rw-r--r--src/devices/sound/vrc6.h2
-rw-r--r--src/devices/video/crt9028.cpp2
-rw-r--r--src/devices/video/upd7220.cpp8
-rw-r--r--src/devices/video/upd7220.h8
-rw-r--r--src/emu/divideo.h9
-rw-r--r--src/emu/screen.h13
-rw-r--r--src/lib/netlist/analog/nld_bjt.cpp10
-rw-r--r--src/lib/netlist/analog/nlid_fourterm.cpp24
-rw-r--r--src/lib/netlist/analog/nlid_fourterm.h2
-rw-r--r--src/lib/netlist/analog/nlid_twoterm.cpp4
-rw-r--r--src/lib/netlist/analog/nlid_twoterm.h22
-rw-r--r--src/lib/netlist/build/makefile10
-rw-r--r--src/lib/netlist/devices/nld_2102A.cpp2
-rw-r--r--src/lib/netlist/devices/nld_4020.cpp2
-rw-r--r--src/lib/netlist/devices/nld_74107.cpp4
-rw-r--r--src/lib/netlist/devices/nld_74161.cpp2
-rw-r--r--src/lib/netlist/devices/nld_74174.cpp2
-rw-r--r--src/lib/netlist/devices/nld_74175.cpp2
-rw-r--r--src/lib/netlist/devices/nld_74192.cpp4
-rw-r--r--src/lib/netlist/devices/nld_74193.cpp4
-rw-r--r--src/lib/netlist/devices/nld_74194.cpp2
-rw-r--r--src/lib/netlist/devices/nld_7448.cpp2
-rw-r--r--src/lib/netlist/devices/nld_7490.cpp2
-rw-r--r--src/lib/netlist/devices/nld_7497.cpp4
-rw-r--r--src/lib/netlist/devices/nld_log.cpp2
-rw-r--r--src/lib/netlist/devices/nld_mm5837.cpp4
-rw-r--r--src/lib/netlist/devices/nld_ne555.cpp2
-rw-r--r--src/lib/netlist/devices/nld_r2r_dac.cpp2
-rw-r--r--src/lib/netlist/devices/nld_schmitt.cpp8
-rw-r--r--src/lib/netlist/devices/nld_tms4800.cpp2
-rw-r--r--src/lib/netlist/devices/nlid_proxy.cpp4
-rw-r--r--src/lib/netlist/devices/nlid_system.h11
-rw-r--r--src/lib/netlist/devices/nlid_truthtable.cpp4
-rw-r--r--src/lib/netlist/nl_base.cpp10
-rw-r--r--src/lib/netlist/nl_base.h32
-rw-r--r--src/lib/netlist/nl_config.h2
-rw-r--r--src/lib/netlist/nl_setup.h8
-rw-r--r--src/lib/netlist/nltypes.h10
-rw-r--r--src/lib/netlist/plib/gmres.h28
-rw-r--r--src/lib/netlist/plib/mat_cr.h13
-rw-r--r--src/lib/netlist/plib/palloc.h204
-rw-r--r--src/lib/netlist/plib/parray.h7
-rw-r--r--src/lib/netlist/plib/pconfig.h10
-rw-r--r--src/lib/netlist/plib/pfmtlog.h2
-rw-r--r--src/lib/netlist/plib/plists.h4
-rw-r--r--src/lib/netlist/plib/pmatrix2d.h84
-rw-r--r--src/lib/netlist/plib/pmempool.h8
-rw-r--r--src/lib/netlist/plib/pstream.h2
-rw-r--r--src/lib/netlist/plib/ptime.h12
-rw-r--r--src/lib/netlist/plib/ptypes.h82
-rw-r--r--src/lib/netlist/plib/putil.h33
-rw-r--r--src/lib/netlist/prg/nltool.cpp2
-rw-r--r--src/lib/netlist/solver/nld_matrix_solver.cpp32
-rw-r--r--src/lib/netlist/solver/nld_matrix_solver.h159
-rw-r--r--src/lib/netlist/solver/nld_ms_direct.h4
-rw-r--r--src/lib/netlist/solver/nld_ms_gcr.h22
-rw-r--r--src/lib/netlist/solver/nld_ms_gmres.h20
-rw-r--r--src/lib/netlist/solver/nld_ms_sm.h2
-rw-r--r--src/lib/netlist/solver/nld_ms_sor.h16
-rw-r--r--src/lib/netlist/solver/nld_ms_w.h2
-rw-r--r--src/lib/netlist/solver/nld_solver.cpp2
-rw-r--r--src/lib/netlist/solver/nld_solver.h2
-rw-r--r--src/lib/netlist/tools/nl_convert.cpp2
-rw-r--r--src/mame/drivers/acrnsys.cpp10
-rw-r--r--src/mame/drivers/apc.cpp8
-rw-r--r--src/mame/drivers/attckufo.cpp33
-rw-r--r--src/mame/drivers/bw2.cpp34
-rw-r--r--src/mame/drivers/c2color.cpp18
-rw-r--r--src/mame/drivers/cdi.cpp206
-rw-r--r--src/mame/drivers/cgenie.cpp6
-rw-r--r--src/mame/drivers/chessmst.cpp86
-rw-r--r--src/mame/drivers/cms.cpp2
-rw-r--r--src/mame/drivers/compis.cpp40
-rw-r--r--src/mame/drivers/dec0.cpp252
-rw-r--r--src/mame/drivers/dmv.cpp56
-rw-r--r--src/mame/drivers/einstein.cpp6
-rw-r--r--src/mame/drivers/fastfred.cpp2
-rw-r--r--src/mame/drivers/fidel_cc10.cpp6
-rw-r--r--src/mame/drivers/fidel_cc7.cpp12
-rw-r--r--src/mame/drivers/fidel_csc.cpp174
-rw-r--r--src/mame/drivers/fidel_elite.cpp477
-rw-r--r--src/mame/drivers/fidel_excel.cpp2
-rw-r--r--src/mame/drivers/fidel_vcc.cpp109
-rw-r--r--src/mame/drivers/fidel_vsc.cpp55
-rw-r--r--src/mame/drivers/gaelco2.cpp2
-rw-r--r--src/mame/drivers/gambl186.cpp25
-rw-r--r--src/mame/drivers/gamtor.cpp20
-rw-r--r--src/mame/drivers/hh_melps4.cpp34
-rw-r--r--src/mame/drivers/hh_sm510.cpp91
-rw-r--r--src/mame/drivers/ibmpcjr.cpp9
-rw-r--r--src/mame/drivers/intellect02.cpp8
-rw-r--r--src/mame/drivers/intv.cpp74
-rw-r--r--src/mame/drivers/leapfrog_leappad.cpp36
-rw-r--r--src/mame/drivers/mikromik.cpp4
-rw-r--r--src/mame/drivers/model2.cpp77
-rw-r--r--src/mame/drivers/mpz80.cpp8
-rw-r--r--src/mame/drivers/naomi.cpp8
-rw-r--r--src/mame/drivers/nascom1.cpp18
-rw-r--r--src/mame/drivers/nes.cpp20
-rw-r--r--src/mame/drivers/p112.cpp27
-rw-r--r--src/mame/drivers/p2000t.cpp55
-rw-r--r--src/mame/drivers/p8k.cpp26
-rw-r--r--src/mame/drivers/palestra.cpp4
-rw-r--r--src/mame/drivers/palmz22.cpp24
-rw-r--r--src/mame/drivers/pangofun.cpp18
-rw-r--r--src/mame/drivers/panicr.cpp28
-rw-r--r--src/mame/drivers/paradise.cpp62
-rw-r--r--src/mame/drivers/paranoia.cpp25
-rw-r--r--src/mame/drivers/pasha2.cpp36
-rw-r--r--src/mame/drivers/paso1600.cpp30
-rw-r--r--src/mame/drivers/pasopia.cpp19
-rw-r--r--src/mame/drivers/pasopia7.cpp44
-rw-r--r--src/mame/drivers/pass.cpp40
-rw-r--r--src/mame/drivers/pastelg.cpp56
-rw-r--r--src/mame/drivers/patapata.cpp31
-rw-r--r--src/mame/drivers/pbaction.cpp22
-rw-r--r--src/mame/drivers/pc.cpp170
-rw-r--r--src/mame/drivers/pc100.cpp13
-rw-r--r--src/mame/drivers/pc1512.cpp90
-rw-r--r--src/mame/drivers/pc2000.cpp2
-rw-r--r--src/mame/drivers/pc4.cpp23
-rw-r--r--src/mame/drivers/pc6001.cpp81
-rw-r--r--src/mame/drivers/pc8001.cpp48
-rw-r--r--src/mame/drivers/pc8401a.cpp22
-rw-r--r--src/mame/drivers/pc8801.cpp47
-rw-r--r--src/mame/drivers/pc88va.cpp46
-rw-r--r--src/mame/drivers/pcat_nit.cpp26
-rw-r--r--src/mame/drivers/pce220.cpp75
-rw-r--r--src/mame/drivers/pcfx.cpp17
-rw-r--r--src/mame/drivers/pcktgal.cpp2
-rw-r--r--src/mame/drivers/pcm.cpp19
-rw-r--r--src/mame/drivers/pcw16.cpp25
-rw-r--r--src/mame/drivers/pcxt.cpp33
-rw-r--r--src/mame/drivers/pdp11.cpp10
-rw-r--r--src/mame/drivers/pegasus.cpp26
-rw-r--r--src/mame/drivers/pentagon.cpp21
-rw-r--r--src/mame/drivers/perq.cpp5
-rw-r--r--src/mame/drivers/peyper.cpp13
-rw-r--r--src/mame/drivers/pg685.cpp59
-rw-r--r--src/mame/drivers/pgm.cpp2
-rw-r--r--src/mame/drivers/pgm3.cpp32
-rw-r--r--src/mame/drivers/photon.cpp30
-rw-r--r--src/mame/drivers/photon2.cpp27
-rw-r--r--src/mame/drivers/photoply.cpp17
-rw-r--r--src/mame/drivers/pinball2k.cpp20
-rw-r--r--src/mame/drivers/pingpong.cpp35
-rw-r--r--src/mame/drivers/pinkiri8.cpp37
-rw-r--r--src/mame/drivers/pirates.cpp28
-rw-r--r--src/mame/drivers/piratesh.cpp2
-rw-r--r--src/mame/drivers/pitagjr.cpp23
-rw-r--r--src/mame/drivers/pk8000.cpp29
-rw-r--r--src/mame/drivers/pk8020.cpp29
-rw-r--r--src/mame/drivers/pktgaldx.cpp80
-rw-r--r--src/mame/drivers/playmark.cpp224
-rw-r--r--src/mame/drivers/plus4.cpp12
-rw-r--r--src/mame/drivers/pmi80.cpp11
-rw-r--r--src/mame/drivers/pntnpuzl.cpp18
-rw-r--r--src/mame/drivers/pockchal.cpp22
-rw-r--r--src/mame/drivers/pockstat.cpp16
-rw-r--r--src/mame/drivers/pofo.cpp42
-rw-r--r--src/mame/drivers/poisk1.cpp22
-rw-r--r--src/mame/drivers/pokechmp.cpp20
-rw-r--r--src/mame/drivers/poker72.cpp25
-rw-r--r--src/mame/drivers/poly.cpp24
-rw-r--r--src/mame/drivers/poly88.cpp34
-rw-r--r--src/mame/drivers/polyplay.cpp17
-rw-r--r--src/mame/drivers/poolshrk.cpp27
-rw-r--r--src/mame/drivers/pooyan.cpp24
-rw-r--r--src/mame/drivers/popobear.cpp34
-rw-r--r--src/mame/drivers/popper.cpp21
-rw-r--r--src/mame/drivers/portrait.cpp29
-rw-r--r--src/mame/drivers/potgoldu.cpp12
-rw-r--r--src/mame/drivers/powerbal.cpp80
-rw-r--r--src/mame/drivers/powerstack.cpp9
-rw-r--r--src/mame/drivers/pp01.cpp27
-rw-r--r--src/mame/drivers/ppmast93.cpp38
-rw-r--r--src/mame/drivers/prestige.cpp51
-rw-r--r--src/mame/drivers/primo.cpp70
-rw-r--r--src/mame/drivers/prof180x.cpp23
-rw-r--r--src/mame/drivers/prof80.cpp2
-rw-r--r--src/mame/drivers/progolf.cpp38
-rw-r--r--src/mame/drivers/proteus.cpp15
-rw-r--r--src/mame/drivers/proteus3.cpp23
-rw-r--r--src/mame/drivers/pse.cpp10
-rw-r--r--src/mame/drivers/psion.cpp84
-rw-r--r--src/mame/drivers/pturn.cpp31
-rw-r--r--src/mame/drivers/puckpkmn.cpp32
-rw-r--r--src/mame/drivers/punchout.cpp58
-rw-r--r--src/mame/drivers/pv1000.cpp12
-rw-r--r--src/mame/drivers/pv2000.cpp10
-rw-r--r--src/mame/drivers/pv9234.cpp24
-rw-r--r--src/mame/drivers/pwrview.cpp19
-rw-r--r--src/mame/drivers/px4.cpp37
-rw-r--r--src/mame/drivers/px8.cpp43
-rw-r--r--src/mame/drivers/pzletime.cpp26
-rw-r--r--src/mame/drivers/ql.cpp54
-rw-r--r--src/mame/drivers/quakeat.cpp32
-rw-r--r--src/mame/drivers/queen.cpp8
-rw-r--r--src/mame/drivers/quizdna.cpp53
-rw-r--r--src/mame/drivers/quizo.cpp28
-rw-r--r--src/mame/drivers/quizpani.cpp31
-rw-r--r--src/mame/drivers/qvt70.cpp9
-rw-r--r--src/mame/drivers/qx10.cpp8
-rw-r--r--src/mame/drivers/r2dtank.cpp20
-rw-r--r--src/mame/drivers/rad_eu3a05.cpp28
-rw-r--r--src/mame/drivers/rad_eu3a14.cpp42
-rw-r--r--src/mame/drivers/radio86.cpp59
-rw-r--r--src/mame/drivers/rainbow.cpp63
-rw-r--r--src/mame/drivers/rampart.cpp28
-rw-r--r--src/mame/drivers/ramtek.cpp10
-rw-r--r--src/mame/drivers/rbisland.cpp75
-rw-r--r--src/mame/drivers/rbmk.cpp42
-rw-r--r--src/mame/drivers/rc702.cpp15
-rw-r--r--src/mame/drivers/rcorsair.cpp34
-rw-r--r--src/mame/drivers/rd110.cpp19
-rw-r--r--src/mame/drivers/realbrk.cpp64
-rw-r--r--src/mame/drivers/redalert.cpp48
-rw-r--r--src/mame/drivers/relief.cpp29
-rw-r--r--src/mame/drivers/retofinv.cpp69
-rw-r--r--src/mame/drivers/rex6000.cpp46
-rw-r--r--src/mame/drivers/rgum.cpp25
-rw-r--r--src/mame/drivers/riscpc.cpp131
-rw-r--r--src/mame/drivers/rltennis.cpp26
-rw-r--r--src/mame/drivers/rm380z.cpp52
-rw-r--r--src/mame/drivers/rmnimbus.cpp2
-rw-r--r--src/mame/drivers/rmt32.cpp23
-rw-r--r--src/mame/drivers/rockrage.cpp38
-rw-r--r--src/mame/drivers/rocnrope.cpp26
-rw-r--r--src/mame/drivers/rohga.cpp176
-rw-r--r--src/mame/drivers/rollext.cpp31
-rw-r--r--src/mame/drivers/rollrace.cpp40
-rw-r--r--src/mame/drivers/ron.cpp22
-rw-r--r--src/mame/drivers/roul.cpp33
-rw-r--r--src/mame/drivers/royalmah.cpp259
-rw-r--r--src/mame/drivers/rpunch.cpp63
-rw-r--r--src/mame/drivers/rt1715.cpp22
-rw-r--r--src/mame/drivers/rx78.cpp30
-rw-r--r--src/mame/drivers/rzone.cpp51
-rw-r--r--src/mame/drivers/sc1.cpp154
-rw-r--r--src/mame/drivers/sc2.cpp275
-rw-r--r--src/mame/drivers/sega_beena.cpp12
-rw-r--r--src/mame/drivers/segas16b.cpp4
-rw-r--r--src/mame/drivers/segasp.cpp8
-rw-r--r--src/mame/drivers/spec128.cpp17
-rw-r--r--src/mame/drivers/specpls3.cpp7
-rw-r--r--src/mame/drivers/spectrum.cpp4
-rw-r--r--src/mame/drivers/tandy1t.cpp115
-rw-r--r--src/mame/drivers/timex.cpp12
-rw-r--r--src/mame/drivers/unixpc.cpp50
-rw-r--r--src/mame/drivers/vii.cpp60
-rw-r--r--src/mame/drivers/vtech1.cpp32
-rw-r--r--src/mame/drivers/vtech2.cpp2
-rw-r--r--src/mame/drivers/wangpc.cpp4
-rw-r--r--src/mame/drivers/wrlshunt.cpp136
-rw-r--r--src/mame/drivers/xavix.cpp6
-rw-r--r--src/mame/drivers/xavix2.cpp6
-rw-r--r--src/mame/includes/apple3.h16
-rw-r--r--src/mame/includes/dec0.h6
-rw-r--r--src/mame/includes/fidelbase.h7
-rw-r--r--src/mame/includes/spectrum.h2
-rw-r--r--src/mame/includes/xavix.h6
-rw-r--r--src/mame/layout/fidel_bv3.lay2
-rw-r--r--src/mame/layout/fidel_eas_priv.lay456
-rw-r--r--src/mame/layout/fidel_vbrc.lay2
-rw-r--r--[-rwxr-xr-x]src/mame/layout/md6802.lay548
-rw-r--r--src/mame/layout/modulab.lay646
-rw-r--r--src/mame/layout/sc1.lay84
-rw-r--r--src/mame/layout/sc2.lay79
-rw-r--r--src/mame/machine/apple3.cpp24
-rw-r--r--src/mame/machine/bbc.cpp8
-rw-r--r--src/mame/machine/electron.cpp16
-rw-r--r--src/mame/machine/nes.cpp22
-rw-r--r--src/mame/machine/qimi.cpp6
-rw-r--r--src/mame/machine/qimi.h4
-rw-r--r--src/mame/machine/sgi.cpp16
-rw-r--r--src/mame/machine/vtech2.cpp3
-rw-r--r--src/mame/machine/xavix.cpp2
-rw-r--r--src/mame/mame.lst57
-rw-r--r--src/mame/video/cps1.cpp2
-rw-r--r--src/mame/video/dec0.cpp16
-rw-r--r--src/mame/video/decbac06.cpp32
-rw-r--r--src/mame/video/light.cpp8
-rw-r--r--src/mame/video/light.h4
-rw-r--r--src/mame/video/newport.cpp136
-rw-r--r--src/mame/video/newport.h18
-rw-r--r--src/mame/video/pc9801.cpp4
-rw-r--r--src/osd/modules/input/input_sdl.cpp514
-rw-r--r--src/tools/imgtool/modules/rt11.cpp124
-rw-r--r--src/tools/testkeys.cpp482
640 files changed, 9765 insertions, 8794 deletions
diff --git a/hash/a800.xml b/hash/a800.xml
index 24c34811c7c..24c34811c7c 100755..100644
--- a/hash/a800.xml
+++ b/hash/a800.xml
diff --git a/hash/a800_flop.xml b/hash/a800_flop.xml
index 39b1d2846aa..39b1d2846aa 100755..100644
--- a/hash/a800_flop.xml
+++ b/hash/a800_flop.xml
diff --git a/hash/ekara_japan.xml b/hash/ekara_japan.xml
index 580c23e2c6f..cd796e9d39e 100644
--- a/hash/ekara_japan.xml
+++ b/hash/ekara_japan.xml
@@ -30,17 +30,22 @@
Some Japanese carts have a number starting with S (S-x on case, SCxxxx-xxx part numbers) (see ekara_japan_s.xml) (for e-kara - custom presentation)
M (M-x on case, MCxxxx-xxx part numbers) (see ekara_japan_m.xml) (for e-kara - custom presentation)
- EN (EN-X on case, no part numbers) (see ekara_japan_en.xml) (for e-kara - custom presentation) (check other compatibility)
+ EN (EN-X on case, no part numbers) (see ekara_japan_en.xml) (for e-kara - custom presentation)
+ BH (BG-XX on case, BH-xxxx on PCB) (see ekara_japan_bh.xml) (for e-kara - custom presentation)
+ GK (GK-X on case) (see ekara_japan_gk.xml) (for e-kara / e-pitch - custom presentation)
G (G-x on case, GCxxxx-xxx part numbers) (see ekara_japan_g.xml) (for e-kara, Popira / 2)
P (P-x on case, PCxxxx-xxx part numbers) (see ekara_japan_p.xml) (for e-kara, Popira / 2, DDR Family Mat)
D (D-x on case, DCxxxx-xxx part numbers) (see ekara_japan_d.xml) (for e-kara, Popira / 2, Taiko De Popira)
SP (SP-x on case, no part numbers) (see ekara_japan_sp.xml) (for e-kara, Popira / 2, Taiko de Popira, Jumping Popira)
-
+ A (A-x on case, Pichi Pichi Pitch series)(see ekara_japan_a.xml) (for e-kara / e-pitch)
+ JP (JP-x on case) (see ekara_japan_jp.xml) (for Jumping Popira Only)
+
these exist but haven't got any
- Some Japanese carts have a number starting with JP (for Jumping Popira Only?)
- A (for Pichi Pichi Pitch Only?)
+ Some Japanese carts have a number starting with
KE (for Kids Lyric book device Only?)
KD (for e-kara?)
+ PR (seen a PR-02 AYY) (what is it?)
+ KR (seen a KR-1) (bundled with later units?)
(there are others, need to document them)
@@ -59,6 +64,7 @@
The EC number is printed on the left side of the cart label, as well as in the serial code
early carts don't have a number printed on the box, only the title, after a certain point a number was added (when?)
+ Only known undumped carts in main series are 58, 64, 81, 83, 84, 85 (assuming highest number is 85)
.. *EC0001-JPM J-Pop Mix Volume 1
.. *EC0002-JPM J-Pop Mix Volume 2
@@ -76,12 +82,12 @@
.. *EC0013-JPM J-Pop Mix Volume 8
.. *EC0014-ATS Artist Selection Volume 1 - untranslated artist
.. *EC0015-ATS Artist Selection Volume 2 - untranslated artist
- .. EC0016-ENK ENK Volume 2
- .. EC0017-G73 1973-75 Volume 1
+ .. *EC0016-ENK ENK Volume 2
+ .. *EC0017-G73 1973-75 Volume 1
.. *EC0018-G82 1982-84 Volume 1
- .. EC0019-BSC Graduation Encouragement Volume 1
+ .. *EC0019-BSC Graduation Encouragement Volume 1
- .. EC0020-KID Kid's Mix Volume 2
+ .. *EC0020-KID Kid's Mix Volume 2
.. *EC0021-JPM J-Pop Mix Volume 9
.. *EC0022-JPM J-Pop Mix Volume 10
23 *EC0023-JPM J-Pop Mix Volume 11
@@ -89,7 +95,7 @@
25 *EC0025-JPM J-Pop Mix Volume 13
26 *EC0026-JPM J-Pop Mix Volume 14
27 *EC0027-JPM J-Pop Mix Volume 15
- 28 EC0028-JPM J-Pop Mix Volume 16
+ 28 *EC0028-JPM J-Pop Mix Volume 16
29 *EC0029-ATS Artist Selection Volume 3 - Dreams Come True
30 *EC0030-ENK ENK Volume 3
@@ -100,13 +106,13 @@
35 *EC0035-ATS Artist Selection Volume 5 - Matsuda Seiko
36 *EC0036-ATS Artist Selection Volume 6 - KinKi Kids
37 *EC0037-ENK ENK Volume 4
- 38 EC0038-BSC Graduation Encouragement Volume 2
- 39 EC0039-ATS Artist Selection Volume 7 - B'z
+ 38 *EC0038-BSC Graduation Encouragement Volume 2
+ 39 *EC0039-ATS Artist Selection Volume 7 - B'z
- 40 EC0040-JPM J-Pop Mix Volume 18
+ 40 *EC0040-JPM J-Pop Mix Volume 18
41 *EC0041-ATS Artist Selection Volume 8 - untranslated artist
42 *EC0042-JPM J-Pop Mix Volume 19
- 43 EC0043-ENK ENK Volume 5
+ 43 *EC0043-ENK ENK Volume 5
44 *EC0044-ATS Artist Selection Volume 9 - Every Little Thing
45 *EC0045-ATS Artist Selection Volume 10 - Mr. Children
46 *EC0046-JPM J-Pop Mix Volume 20
@@ -114,16 +120,16 @@
48 *EC0048-ENK ENK Volume 6
49 *EC0049-ATS Artist Selection Volume 11 - Judy and Mary
- 50 EC0050-ATS Artist Selection Volume 12 - The Beatles
+ 50 *EC0050-ATS Artist Selection Volume 12 - The Beatles
51 *EC0051-JPM J-Pop Mix Volume 21
52 *EC0052-ENK ENK Volume 7
- 53 EC0053-JPM J-Pop Mix Volume 22
+ 53 *EC0053-JPM J-Pop Mix Volume 22
54 *EC0054-JPM J-Pop Mix Volume 23
- 55 EC0055-ATS Artist Selection Volume 13 - Tube
- 56 EC0056-JPM J-Pop Mix Volume 24
- 57 EC0057-ATS Artist Selection Volume 14 - SMAP (should be Vol 14? sales sheet still lists 13 tho)
+ 55 *EC0055-ATS Artist Selection Volume 13 - Tube
+ 56 *EC0056-JPM J-Pop Mix Volume 24
+ 57 *EC0057-ATS Artist Selection Volume 14 - SMAP (should be Vol 14? sales sheet still lists 13 tho)
58 EC0058-ENK ENK Volume 8
- 59 EC0059-JPM J-Pop Mix Volume 25
+ 59 *EC0059-JPM J-Pop Mix Volume 25
60 *EC0060-JPM J-Pop Mix Volume 26
61 *EC0061-JPM J-Pop Mix Volume 27
@@ -181,24 +187,6 @@
***********************************************************************************
- Japanese cart listing (by A code)
-
- These are for Pichi Pichi Pitch
- (not e-kara compatible?)
-
- https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10109392860
-
- A-1 (unknown)
- A-2 (unknown)
- A-3 (unknown)
- A-4 (unknown)
- A-5 (unknown)
- A-6 (unknown)
- A-7 (unknown)
- A-8 (unknown)
-
- ***********************************************************************************
-
-->
<!-- Japanese e-kara cartridges EC series -->
@@ -258,17 +246,6 @@
</part>
</software>
- <software name="ec0011">
- <description>J-Pop Mix Volume 6 (Japan) (EC0011-JPM)</description>
- <year>2000</year>
- <publisher>Takara</publisher>
- <part name="cart" interface="ekara_cart">
- <dataarea name="rom" size="0x100000">
- <rom name="ec0011-jpm.u1" size="0x100000" crc="5d0ca1e7" sha1="0c1bf33b3a436da2c19bd7171ab1a234a623987c" offset="0" />
- </dataarea>
- </part>
- </software>
-
<software name="ec0006">
<description>ENK Volume 1 (Japan) (EC0006-ENK)</description>
<year>2000</year>
@@ -324,6 +301,17 @@
</part>
</software>
+ <software name="ec0011">
+ <description>J-Pop Mix Volume 6 (Japan) (EC0011-JPM)</description>
+ <year>2000</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="ec0011-jpm.u1" size="0x100000" crc="5d0ca1e7" sha1="0c1bf33b3a436da2c19bd7171ab1a234a623987c" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="ec0012">
<description>J-Pop Mix Volume 7 (Japan) (EC0012-JPM)</description>
<year>2000</year>
@@ -368,10 +356,28 @@
</part>
</software>
- <!-- EC0016-ENK ENK Volume 2 -->
-
- <!-- EC0017-G73 1973-75 Volume 1 -->
-
+ <software name="ec0016">
+ <description>ENK Volume 2 (Japan) (EC0016-ENK)</description>
+ <year>2000</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="ec0016-enk.u1" size="0x100000" crc="1bac5cc7" sha1="d80e266d079ea2e8a5acb8c1ed97a94c5d31e6ec" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="ec0017">
+ <description>1973-75 Volume 1 (Japan) (EC0017-G73)</description>
+ <year>2000</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="ec0017-g73.u1" size="0x100000" crc="7f4efd49" sha1="32403cf65f4ae372da64cef25e03ddd66cdffa25" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="ec0018">
<description>1982-84 Volume 1 (Japan) (EC0018-G82)</description>
<year>2000</year>
@@ -383,10 +389,28 @@
</part>
</software>
- <!-- EC0019-BSC Graduation Encouragement Volume 1 -->
-
- <!-- EC0020-KID Kid's Mix Volume 2 -->
-
+ <software name="ec0019">
+ <description>Graduation Encouragement Volume 1 (Japan) (EC0019-BSC)</description>
+ <year>2000</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="ec0019-bsc.u1" size="0x100000" crc="c7de4c19" sha1="2cfc8c8b684f7b5ddac384840665fae97b8d9829" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="ec0020">
+ <description>Kid's Mix Volume 2 (Japan) (EC0020-KID)</description>
+ <year>2000</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="ec0020-kid.u1" size="0x100000" crc="ed3e5c2c" sha1="c9ca415b50a7b87d8bf54beb3c9f794bd928e489" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="ec0021">
<description>J-Pop Mix Volume 9 (Japan) (EC0021-JPM)</description>
<year>2000</year>
@@ -464,7 +488,16 @@
</part>
</software>
- <!-- EC0028-JPM J-Pop Mix Volume 16 -->
+ <software name="ec0028">
+ <description>J-Pop Mix Volume 16 (Japan) (EC0028-JPM)</description>
+ <year>2000</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="ec0028-jpm.u1" size="0x100000" crc="f671ce7e" sha1="d901d6196d7864f5e512fbb6d539ec0580417385" offset="0" />
+ </dataarea>
+ </part>
+ </software>
<software name="ec0029">
<description>Artist Selection Volume 3 (Dreams Come True) (Japan) (EC0029-ATS)</description>
@@ -565,11 +598,38 @@
</part>
</software>
- <!-- EC0038-BSC Graduation Encouragement Volume 2 -->
-
- <!-- EC0039-ATS Artist Selection Volume 7 - B's -->
-
- <!-- EC0040-JPM J-Pop Mix Volume 18 -->
+ <software name="ec0038">
+ <description>Graduation Encouragement Volume 2 (Japan) (EC0038-BSC)</description>
+ <year>2000</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="ec0038-bsc.u1" size="0x100000" crc="34817291" sha1="a6069419bf3fd143fb247ba625c41b42000cda27" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="ec0039">
+ <description>Artist Selection Volume 7 (B'z) (Japan) (EC0039-ATS)</description>
+ <year>2000</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="ec0039-ats.u1" size="0x100000" crc="aa50b08a" sha1="91a97c0591e137e50b20f052b402ce52b70a16eb" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="ec0040">
+ <description>J-Pop Mix Volume 18 (Japan) (EC0040-JPM)</description>
+ <year>2000</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="ec0040-jpm.u1" size="0x100000" crc="e2cb7232" sha1="c9c1f7d316f0c239c659632296695081e50b85e5" offset="0" />
+ </dataarea>
+ </part>
+ </software>
<software name="ec0041">
<description>Artist Selection Volume 8 (unknown) (Japan) (EC0041-ATS)</description>
@@ -593,7 +653,16 @@
</part>
</software>
- <!-- EC0043-ENK ENK Volume 5 -->
+ <software name="ec0043">
+ <description>ENK Volume 5 (Japan) (EC0043-ENK)</description>
+ <year>2001</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="ec0043-enk.u1" size="0x100000" crc="c730037d" sha1="c283b99fe4ae51adc3e13a6fae4eaffb891ec20d" offset="0" />
+ </dataarea>
+ </part>
+ </software>
<software name="ec0044">
<description>Artist Selection Volume 9 (Every Little Thing) (Japan) (EC0044-ATS)</description>
@@ -664,8 +733,18 @@
</part>
</software>
- <!-- EC0050-ATS Artist Selection Volume 12 - The Beatles -->
-
+ <software name="ec0050">
+ <description>Artist Selection Volume 12 (The Beatles) (Japan) (EC0050-ATS)</description>
+ <year>2001</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x200000">
+ <rom name="ec0050-ats.u1" size="0x200000" crc="56ce5d3a" sha1="c499bae5faa00e0987b89185d0e2ec142054773a" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+
<software name="ec0051">
<description>J-Pop Mix Volume 21 (Japan) (EC0051-JPM)</description>
<year>2001</year>
@@ -688,7 +767,16 @@
</part>
</software>
- <!-- EC0053-JPM J-Pop Mix Volume 22 -->
+ <software name="ec0053">
+ <description>J-Pop Mix Volume 22 (Japan) (EC0053-JPM)</description>
+ <year>2001</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="ec0053-jpm.u1" size="0x100000" crc="6f799665" sha1="bf029d5c10efb8b76bff7dda0806bf943d0fff01" offset="0" />
+ </dataarea>
+ </part>
+ </software>
<software name="ec0054">
<description>J-Pop Mix Volume 23 (Japan) (EC0054-JPM)</description>
@@ -701,16 +789,52 @@
</part>
</software>
- <!-- EC0055-ATS Artist Selection Volume 13 - Tube -->
-
- <!-- EC0056-JPM J-Pop Mix Volume 24 -->
-
- <!-- EC0057-ATS Artist Selection Volume 14 - SMAP -->
-
+ <software name="ec0055">
+ <description>Artist Selection Volume 13 (Tube) (Japan) (EC0055-ATS)</description>
+ <year>2001</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="ec0055-ats.u1" size="0x100000" crc="af6b0f2a" sha1="719bd1bc88517e4e067e99416547afe9ca1ff93f" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="ec0056">
+ <description>J-Pop Mix Volume 24 (Japan) (EC0056-JPM)</description>
+ <year>2001</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="ec0056-jpm.u1" size="0x100000" crc="8c0b175b" sha1="697d7eb50a84001ddb66f50a50c682c63c21ed60" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="ec0057">
+ <description>Artist Selection Volume 14 (SMAP) (Japan) (EC0057-ATS)</description>
+ <year>2001</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="ec0057-ats.u1" size="0x100000" crc="15345511" sha1="7e5197a8f7a0ec0160d7f5214428b153f35619f6" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<!-- EC0058-ENK ENK Volume 8 -->
- <!-- EC0059-JPM J-Pop Mix Volume 25 -->
-
+ <software name="ec0059">
+ <description>J-Pop Mix Volume 25 (Japan) (EC0059-JPM)</description>
+ <year>2001</year>
+ <publisher>Takara</publisher>
+ <part name="cart" interface="ekara_cart">
+ <dataarea name="rom" size="0x100000">
+ <rom name="ec0059-jpm.u1" size="0x100000" crc="e72ab46f" sha1="ef1fc7fba2beae7549edce697b12dd3b48dd1103" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="ec0060">
<description>J-Pop Mix Volume 26 (Japan) (EC0060-JPM)</description>
<year>2001</year>
@@ -721,7 +845,7 @@
</dataarea>
</part>
</software>
-
+
<software name="ec0061">
<description>J-Pop Mix Volume 27 (Japan) (EC0061-JPM)</description>
<year>2001</year>
@@ -743,7 +867,7 @@
</dataarea>
</part>
</software>
-
+
<software name="ec0063">
<description>J-Pop Mix Volume 29 (Japan) (EC0063-JPM)</description>
<year>2001</year>
@@ -767,7 +891,7 @@
</dataarea>
</part>
</software>
-
+
<software name="ec0066">
<description>J-Pop Mix Volume 31 (Japan) (EC0066-JPM)</description>
<year>2001</year>
@@ -778,7 +902,7 @@
</dataarea>
</part>
</software>
-
+
<software name="ec0067">
<description>J-Pop Mix Volume 32 (Japan) (EC0067-JPM)</description>
<year>2001</year>
@@ -811,7 +935,7 @@
</dataarea>
</part>
</software>
-
+
<software name="ec0070">
<description>J-Pop Mix Volume 34 (Japan) (EC0070-JPM)</description>
<year>2001</year>
@@ -866,7 +990,7 @@
</dataarea>
</part>
</software>
-
+
<software name="ec0075">
<description>J-Pop Mix Volume 38 (Japan) (EC0075-JPM)</description>
<year>2001</year>
@@ -876,7 +1000,7 @@
<rom name="ec0075-jpm.u1" size="0x100000" crc="cbb8e615" sha1="5fbbfbf4278ce7e289d859e389808b155bb16e4a" offset="0" />
</dataarea>
</part>
- </software>
+ </software>
<software name="ec0076">
<description>J-Pop Mix Volume 39 (Japan) (EC0076-JPM)</description>
@@ -888,7 +1012,7 @@
</dataarea>
</part>
</software>
-
+
<software name="ec0077">
<description>Artist Selection Volume 15 - unknown artist (Japan) (EC0077-ATS)</description>
<year>2001</year>
@@ -898,8 +1022,8 @@
<rom name="ec0077-ats.u1" size="0x100000" crc="368b0daf" sha1="8274a06ca2e3dbcd5176ac1b916be4a5a0df12ef" offset="0" />
</dataarea>
</part>
- </software>
-
+ </software>
+
<software name="ec0078">
<description>J-Pop Mix Volume 40 (Japan) (EC0078-JPM)</description>
<year>2001</year>
diff --git a/hash/ekara_japan_a.xml b/hash/ekara_japan_a.xml
index 2324b434556..762b0c45126 100644
--- a/hash/ekara_japan_a.xml
+++ b/hash/ekara_japan_a.xml
@@ -8,7 +8,7 @@
Japanese cart listing (by A code) (A-x on cartridge)
These are for use with e-pitch / e-kara (e-pitch internal ROM is the same as e-kara Japan, just button layout is changed)
-
+
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10109392860
A-1 Pichi Pichi Pitch vol.1 / ã´ã¡ã´ã¡ãƒ”ッãƒvol.1
@@ -33,7 +33,7 @@
</dataarea>
</part>
</software>
-
+
<software name="a4" supported="no">
<description>A-4 Pichi Pichi Pitch Pure Chapter 1 (Japan)</description>
<year>2004</year>
@@ -44,7 +44,7 @@
<rom name="ekaraa4.bin" size="0x200000" crc="03dcc45a" sha1="ae884128c09b4fc7521f0010bbe9624419a3d0b8" offset="0" />
</dataarea>
</part>
- </software>
+ </software>
<software name="a5">
<description>A-5 Pichi Pichi Pitch Karaoke Party (Japan)</description>
@@ -67,6 +67,6 @@
<rom name="ekaraa7.bin" size="0x200000" crc="5b59900e" sha1="fdb8148211f00d0119b9ad082bf8fd348d509800" offset="0" />
</dataarea>
</part>
- </software>
+ </software>
</softwarelist>
diff --git a/hash/ekara_japan_bh.xml b/hash/ekara_japan_bh.xml
index a35b13a7c70..b033c4713b8 100644
--- a/hash/ekara_japan_bh.xml
+++ b/hash/ekara_japan_bh.xml
@@ -9,7 +9,7 @@
A secondary 4-digit naming scheme BHxxxx (no extension) appears on a sticker on the cartridge PCB only
For e-kara only
-
+
These are probably all just titled 'Best Hit Collection'
BH-01 (unknown)
@@ -33,7 +33,7 @@
</dataarea>
</part>
</software>
-
+
<software name="bh03">
<description>BH-03 Best Hit Collection (Japan)</description>
<year>2005</year>
@@ -43,7 +43,7 @@
<rom name="bh03.bin" size="0x100000" crc="d17cafd4" sha1="b74fd0f77a726547d4001d4177a5ccd2ea35536a" offset="0" />
</dataarea>
</part>
- </software>
+ </software>
<software name="bh05">
<description>BH-05 Best Hit Collection (Japan)</description>
@@ -65,6 +65,6 @@
<rom name="bh06.bin" size="0x100000" crc="6e264ecb" sha1="6c3e4253565242c0c6dcdab7698f5b1e28544b2e" offset="0" />
</dataarea>
</part>
- </software>
+ </software>
</softwarelist>
diff --git a/hash/ekara_japan_d.xml b/hash/ekara_japan_d.xml
index 117e86adab7..e80e98b9f00 100644
--- a/hash/ekara_japan_d.xml
+++ b/hash/ekara_japan_d.xml
@@ -18,7 +18,7 @@
*D-1 DC0001-BHT BHT (Best Artists?) Volume 8 (most other BHT carts are in G series, or P series)
*D-2 DC0002-BAT BAT Volume 6
- *D-3 DC0003-BHT BHT (Best Artists?) Volume 9
+ *D-3 DC0003-BHT BHT (Best Artists?) Volume 9
D-4 DC0004-TPJ TV Pop Volume 8
*D-5 DC0005-TPJ TV Pop Volume 9
D-6 DC0006-BHT BHT (Best Artists?) Volume 10
diff --git a/hash/ekara_japan_g.xml b/hash/ekara_japan_g.xml
index 6a0e12cfdaf..9d2aa468479 100644
--- a/hash/ekara_japan_g.xml
+++ b/hash/ekara_japan_g.xml
@@ -110,7 +110,7 @@
</dataarea>
</part>
</software>
-
+
<software name="gc0008a" cloneof="gc0008">
<description>MIN Volume 1 (Japan) (GC0008-MIN) (set 2)</description>
<year>2001</year>
@@ -120,7 +120,7 @@
<rom name="gc0008-min(alt).u1" size="0x200000" crc="b34d1721" sha1="3621f02423f55c43d1b16855c01189719ddbcb6e" offset="0" />
</dataarea>
</part>
- </software>
+ </software>
<!-- Notes from Sean
@@ -133,7 +133,7 @@
e-Kara units, Popira, Taiko de Popira and DDR all of them have pin 4 of the cart connector going to VCC and pin 32 going to ground. So none of them can communicate with the SEEPROM in G10
Popira 2 however can make use of these pins -->
-
+
<software name="gc0010">
<description>BAT Volume 4 (Japan) (GC0010-BAT)</description>
<year>2002</year>
@@ -183,7 +183,7 @@
</dataarea>
</part>
</software>
-
+
<software name="gc0017">
<description>TV Pop Volume 6 (Japan) (GC0017-TPJ)</description>
<year>2002</year>
@@ -194,6 +194,6 @@
<rom name="gc0017-tpj.u1" size="0x100000" crc="2c7d00a2" sha1="5976b9f3a95afb3b23f1d1d996de0b7aa41ee25c" offset="0" />
</dataarea>
</part>
- </software>
+ </software>
</softwarelist>
diff --git a/hash/ekara_japan_m.xml b/hash/ekara_japan_m.xml
index f46f458b793..3be3576dbe8 100644
--- a/hash/ekara_japan_m.xml
+++ b/hash/ekara_japan_m.xml
@@ -54,7 +54,7 @@
</dataarea>
</part>
</software>
-
+
<software name="mc0006">
<description>KSM Mini Volume 2 (Japan) (MC0006-KSM)</description>
<year>2003</year>
@@ -64,7 +64,7 @@
<rom name="mc0006-ksm.u1" size="0x080000" crc="6d3c8c02" sha1="568a0e156a2189156149578277b6d615fe4e157f" offset="0" />
</dataarea>
</part>
- </software>
+ </software>
<software name="mc0012">
<description>Artist Mini Volume 7 (untranslated artist) (Japan) (MC0012-ATM)</description>
@@ -87,7 +87,7 @@
</dataarea>
</part>
</software>
-
+
<software name="mc0014">
<description>Artist Mini Volume 8 (BoA) (Japan) (MC0014-ATM)</description>
<year>2003</year>
@@ -97,6 +97,6 @@
<rom name="mc0014-atm.u1" size="0x080000" crc="170e02af" sha1="02b38146db7d74727f7dccf6dcc3d004979210a1" offset="0" />
</dataarea>
</part>
- </software>
+ </software>
</softwarelist>
diff --git a/hash/ekara_japan_p.xml b/hash/ekara_japan_p.xml
index 2995bb8d5b6..7b87f3cb076 100644
--- a/hash/ekara_japan_p.xml
+++ b/hash/ekara_japan_p.xml
@@ -50,7 +50,7 @@
</dataarea>
</part>
</software>
-
+
<software name="pc0003">
<description>ENB Volume 1 (Japan) (PC0003-ENB)</description>
<year>2001</year>
diff --git a/hash/ekara_japan_sp.xml b/hash/ekara_japan_sp.xml
index e5f67af4a96..f0fa50dfb0f 100644
--- a/hash/ekara_japan_sp.xml
+++ b/hash/ekara_japan_sp.xml
@@ -44,7 +44,7 @@
</dataarea>
</part>
</software>
-
+
<software name="sp03">
<description>SP-03 Super Cartridge (Japan)</description>
<year>2004</year>
@@ -55,8 +55,8 @@
<rom name="sp03.u1" size="0x200000" crc="cd7dbbaf" sha1="cc62c10f8f83015e4c472bc41e9a1fd7ac497655" offset="0" />
</dataarea>
</part>
- </software>
-
+ </software>
+
<software name="sp04">
<description>SP-04 Super Cartridge (Japan)</description>
<year>2004</year>
@@ -67,6 +67,6 @@
<rom name="sp04.u1" size="0x200000" crc="77818ddb" sha1="708980b1ae30864bd3395ef663de1c57ecbc113c" offset="0" />
</dataarea>
</part>
- </software>
-
+ </software>
+
</softwarelist>
diff --git a/hash/ekara_japan_web.xml b/hash/ekara_japan_web.xml
index 34e7103c6e6..9ba3f9f10b9 100644
--- a/hash/ekara_japan_web.xml
+++ b/hash/ekara_japan_web.xml
@@ -27,9 +27,9 @@
</dataarea>
</part>
</software>
-
+
<!-- this one has some songs programmed into it (TODO, list them here for reference) -->
-
+
<software name="ekaraweb12a">
<description>e-kara Web cartridge 12M (used, with 7 Songs) (Japan)</description>
<year>2003</year>
@@ -39,6 +39,6 @@
<rom name="ekaraweb3.bin" size="0x100000" crc="a6a095b9" sha1="709d7edb5799b97127502408bec698663b902462" offset="0" />
</dataarea>
</part>
- </software>
+ </software>
</softwarelist>
diff --git a/hash/gamate.xml b/hash/gamate.xml
index 20534013173..17f601498c8 100644
--- a/hash/gamate.xml
+++ b/hash/gamate.xml
@@ -546,7 +546,7 @@ C1066 - ??
</dataarea>
</part>
</software>
-
+
<software name="famous7">
<description>Famous 7</description>
<year>1993</year>
diff --git a/hash/ibm5150.xml b/hash/ibm5150.xml
index 0516e41135b..23a399ad960 100755..100644
--- a/hash/ibm5150.xml
+++ b/hash/ibm5150.xml
@@ -3592,7 +3592,7 @@ Known PC Booter Games Not Dumped, Or Dumped and Lost when Demonlord's Site went
</dataarea>
</part>
</software>
-
+
<software name="strecalc">
<description>StretchCalc</description>
<year>1983</year>
@@ -7132,7 +7132,7 @@ has been replaced with an all-zero block. -->
</dataarea>
</part>
</software>
-
+
<software name="brdtale">
<description>The Bard's Tale - Tales of the Unknown (5.25")</description>
<year>1987</year>
@@ -7409,7 +7409,7 @@ has been replaced with an all-zero block. -->
</dataarea>
</part>
</software>
-
+
<software name="budokan">
<description>Budokan - The Martial Spirit</description>
<year>1989</year>
@@ -7420,7 +7420,7 @@ has been replaced with an all-zero block. -->
</dataarea>
</part>
</software>
-
+
<software name="budokana" cloneof="budokan">
<description>Budokan - The Martial Spirit (Big Games release)</description>
<year>1989</year>
@@ -8171,7 +8171,7 @@ has been replaced with an all-zero block. -->
</dataarea>
</part>
</software>
-
+
<software name="gunboata" cloneof="gunboat">
<description>Gunboat: River Combat Simulation (Hit Squad release)</description>
<year>1990</year>
@@ -8357,7 +8357,7 @@ has been replaced with an all-zero block. -->
</dataarea>
</part>
</software>
-
+
<software name="shogun">
<description>James Clavell's Shogun (set 1)</description>
<year>1987</year>
@@ -9271,7 +9271,7 @@ has been replaced with an all-zero block. -->
</dataarea>
</part>
</software>
-
+
<software name="monopoly">
<description>Monopoly v2.00 (Shareware)</description>
<year>1989</year>
@@ -9298,7 +9298,7 @@ has been replaced with an all-zero block. -->
</dataarea>
</part>
</software>
-
+
<software name="montypyt35" cloneof="montypyt">
<description>Monty Python's Flying Circus (3.5")</description>
<year>1990</year>
@@ -10279,7 +10279,7 @@ has been replaced with an all-zero block. -->
</dataarea>
</part>
</software>
-
+
<software name="bartvssma" cloneof="bartvssm">
<description>The Simpsons - Bart vs. the Space Mutants (Hit-Squad release)</description>
<year>1991</year>
@@ -11038,7 +11038,7 @@ has been replaced with an all-zero block. -->
</dataarea>
</part>
</software>
-
+
<software name="xenon">
<description>Xenon (5.25")</description>
<year>1988</year>
@@ -11056,7 +11056,7 @@ has been replaced with an all-zero block. -->
</dataarea>
</part>
</software>
-
+
<software name="xenon35" cloneof="xenon">
<description>Xenon (16 Blitz Plus release) (3.5")</description>
<year>1990</year>
@@ -11123,7 +11123,7 @@ has been replaced with an all-zero block. -->
</dataarea>
</part>
</software>
-
+
<software name="zoola" cloneof="zool">
<description>Zool (Big Games release)</description>
<year>1993</year>
diff --git a/hash/ibm5170.xml b/hash/ibm5170.xml
index c2239a98a2d..6b6de203046 100644
--- a/hash/ibm5170.xml
+++ b/hash/ibm5170.xml
@@ -10747,7 +10747,7 @@
</dataarea>
</part>
</software>
-
+
<software name="micromc2">
<description>Micro Machines 2: Turbo Tournament</description>
<year>1995</year>
@@ -11301,7 +11301,7 @@
</dataarea>
</part>
</software>
-
+
<software name="monkeyit" cloneof="monkeyk">
<description>The Secret of Monkey Island (Italian)</description>
<year>1991</year>
diff --git a/hash/jpopira_jp.xml b/hash/jpopira_jp.xml
index f3dade22f25..90c0b1b18f8 100644
--- a/hash/jpopira_jp.xml
+++ b/hash/jpopira_jp.xml
@@ -29,7 +29,7 @@
</dataarea>
</part>
</software>
-
+
<software name="jp02">
<description>JP-02 (Japan)</description>
<year>2004</year>
@@ -41,5 +41,5 @@
</dataarea>
</part>
</software>
-
+
</softwarelist>
diff --git a/hash/leapfrog_leappad_cart.xml b/hash/leapfrog_leappad_cart.xml
index be280d97d50..792afdc2c6a 100644
--- a/hash/leapfrog_leappad_cart.xml
+++ b/hash/leapfrog_leappad_cart.xml
@@ -2,6 +2,19 @@
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<softwarelist name="leapfrog_leappad_cart" description="LeapFrog LeapPad cartridges">
+ <software name="hititmstro" supported="no">
+ <description>Music - Hit it, Maestro! (UK)</description>
+ <year>2001</year>
+ <publisher>LeapFrog</publisher>
+ <info name="serial" value="500-00090 RVB"/>
+ <part name="cart" interface="leapfrog_leappad_cart">
+ <feature name="u1" value="MX23L3211B"/> <!-- ROM on epoxy blob, but type silkscreened on the PCB -->
+ <dataarea name="rom" size="0x400000">
+ <rom name="500-00090 RVB - Music - Hit it, Maestro!.bin" size="0x400000" crc="a2770684" sha1="4f389c6dbcd3ff2a647a6d18df86c472444074e4" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="tadshop" supported="no">
<description>Pre Math - Tad goes shopping (UK)</description>
<year>2001</year>
@@ -81,6 +94,34 @@
</part>
</software>
+ <!-- Same ROM as 500-00263 - Phonics - Leap's Friends From A to Z -->
+ <software name="prlpfrnds" supported="no">
+ <description>Pre Reading - Leap's Friends From A to Z (UK)</description>
+ <year>2002</year>
+ <publisher>LeapFrog</publisher>
+ <info name="serial" value="500-00804"/>
+ <part name="cart" interface="leapfrog_leappad_cart">
+ <feature name="u1" value="LeapFrog 2000 8M DIE ROM"/> <!-- ROM on epoxy blob, but type silkscreened on the PCB -->
+ <dataarea name="rom" size="0x100000">
+ <rom name="500-00804 - Pre Reading - Leap's Friends From A to Z.bin" size="0x100000" crc="cea3f327" sha1="c49779322dd046ef67bef93d144d2d07251eeadf" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="findnemo" supported="no">
+ <description>Reading - Disney/Pixar Finding Nemo (UK)</description>
+ <year>2003</year>
+ <publisher>LeapFrog</publisher>
+ <info name="serial" value="500-01148"/>
+ <part name="cart" interface="leapfrog_leappad_cart">
+ <feature name="pcb" value="335-13845-40"/>
+ <feature name="u1" value="MR27V1602E"/> <!-- ROM on epoxy blob, but type silkscreened on the PCB -->
+ <dataarea name="rom" size="0x200000">
+ <rom name="500-01148 - Reading - Finding Nemo.bin" size="0x200000" crc="b299286b" sha1="3e8c63486f5646f65b5f86efeee4a6ee9d979f32" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="leapsbond" supported="no">
<description>Leap's Pond - Activity &amp; Game Book (UK)</description>
<year>2003</year>
@@ -96,6 +137,19 @@
</part>
</software>
+ <software name="hoppop" supported="no">
+ <description>Hop on Pop - Based on the Book by Dr. Seuss (UK)</description>
+ <year>2004</year>
+ <publisher>LeapFrog</publisher>
+ <info name="serial" value="500-10438"/>
+ <part name="cart" interface="leapfrog_leappad_cart">
+ <feature name="u1" value="MR27V3202J-03-01"/> <!-- ROM on epoxy blob, but type silkscreened on the PCB -->
+ <dataarea name="rom" size="0x400000">
+ <rom name="500-10438 - Hop on Pop.bin" size="0x400000" crc="49308dc4" sha1="50864fdd604f6b88a0545df45663cae60e30c0e4" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="dinosaurg" supported="no">
<description>Leap und die Welt der Dinosaurier (Germany)</description>
<year>2004</year>
@@ -111,6 +165,21 @@
</part>
</software>
+ <software name="abcabent" supported="no">
+ <description>ABC-Abenteuer (Germany)</description>
+ <year>2003</year>
+ <publisher>LeapFrog</publisher>
+ <info name="serial" value="500-10717 UBL"/>
+ <part name="cart" interface="leapfrog_leappad_cart">
+ <feature name="pcb" value="57000-003-2911"/>
+ <feature name="pcb_rev" value="REV.01"/>
+ <feature name="u1" value="Sunplus32m"/> <!-- ROM on epoxy blob, but type silkscreened on the PCB -->
+ <dataarea name="rom" size="0x400000">
+ <rom name="500-10717 UBL - ABC-Abenteuer (GER).bin" size="0x400000" crc="6c5c0180" sha1="3cfacb759d3cac16e52aad4629f0759bb8817f1a" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="tadsgngt" supported="no">
<description>Tad's Good Night (UK)</description>
<year>1999</year>
@@ -141,6 +210,21 @@
</part>
</software>
+ <software name="wwyoubbe" supported="no">
+ <description>What will you be? (UK)</description>
+ <year>2004</year>
+ <publisher>LeapFrog</publisher>
+ <info name="serial" value="500-10760"/>
+ <part name="cart" interface="leapfrog_leappad_cart">
+ <feature name="pcb" value="30388-003-0032"/>
+ <feature name="pcb_rev" value="REV:00"/>
+ <feature name="u1" value="MX12L1611B"/> <!-- ROM on epoxy blob, but type silkscreened on the PCB -->
+ <dataarea name="rom" size="0x200000">
+ <rom name="500-10760 - What will you be.bin" size="0x200000" crc="b6b36f74" sha1="5d017a501b7feabd8c4d90b8672af19c3d321f41" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="angelg" supported="no">
<description>Das Angel-Abenteuer (Germany)</description>
<year>2002</year>
diff --git a/hash/msx1_cass.xml b/hash/msx1_cass.xml
index b8be81e6fda..b8be81e6fda 100755..100644
--- a/hash/msx1_cass.xml
+++ b/hash/msx1_cass.xml
diff --git a/hash/pc98.xml b/hash/pc98.xml
index 9642650c18d..91643dfd13e 100644
--- a/hash/pc98.xml
+++ b/hash/pc98.xml
@@ -855,10 +855,10 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="cobol" supported="no">
- <description>Microfocus Level II COBOL</description>
- <year>19??</year>
- <publisher>&lt;unknown&gt;</publisher>
+ <software name="cobol">
+ <description>Level II COBOL V2.1</description>
+ <year>1984</year>
+ <publisher>Micro Focus</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1261568">
<rom name="lebel 2 cobol.dsk" size="1261568" crc="09d3f7e7" sha1="71067543b229f996f6cea08b36de3f0ec6f17921" offset="0" />
@@ -921,7 +921,7 @@ only have some part of Windows file and a Video driver(CLGD?).
</software>
<software name="copyaid">
- <description>Copy AID98II v2.20</description>
+ <description>Copy Aid 98 II v2.20</description>
<year>19??</year>
<publisher>&lt;unknown&gt;</publisher>
<part name="flop1" interface="floppy_5_25">
@@ -8705,7 +8705,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="cal">
+ <!-- Black screen on boot -->
+ <software name="cal" supported="no">
<description>Cal</description>
<year>1990</year>
<publisher>ãƒãƒ¼ãƒ‡ã‚£ãƒ¼ã‚½ãƒ•ãƒˆ (Birdy Soft)</publisher>
@@ -8725,7 +8726,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="cal2">
+ <!-- Black screen on boot -->
+ <software name="cal2" supported="no">
<description>Cal II</description>
<year>1991</year>
<publisher>ãƒãƒ¼ãƒ‡ã‚£ãƒ¼ã‚½ãƒ•ãƒˆ (Birdy Soft)</publisher>
@@ -8757,12 +8759,108 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="camisole">
+ <software name="cal3">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Cal III - Kanketsuhen</description>
+ <year>1993</year>
+ <publisher>ãƒãƒ¼ãƒ‡ã‚£ãƒ¼ã‚½ãƒ•ãƒˆ (Birdy Soft)</publisher>
+ <info name="alt_title" value="キャルIII 完çµç·¨" />
+ <info name="release" value="19930710" />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Disk A"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cal iii kanketsuhen (disk a).hdm" size="1261568" crc="faf9a4e5" sha1="30a368d5047f31d6c35f9472ca7a6593b1405677" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Disk B"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cal iii kanketsuhen (disk b).hdm" size="1261568" crc="40297c12" sha1="b641660b5aff02a1900d06979806ab5f465cf069" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Disk C"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cal iii kanketsuhen (disk c).hdm" size="1261568" crc="082562bd" sha1="711bfea5d13735ee9f135d3943b7c0160180b75e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop4" interface="floppy_5_25">
+ <feature name="part_id" value="Disk D"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cal iii kanketsuhen (disk d).hdm" size="1261568" crc="d745ed9c" sha1="77d8004110afb2d317673e8a32317aad15dacb7f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop5" interface="floppy_5_25">
+ <feature name="part_id" value="Disk E"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cal iii kanketsuhen (disk e).hdm" size="1261568" crc="7a2d7325" sha1="ac0df6501eeb703c049ef556d86b909db5fc6ff3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop6" interface="floppy_5_25">
+ <feature name="part_id" value="Disk F"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cal iii kanketsuhen (disk f).hdm" size="1261568" crc="d45dbe21" sha1="e6fb08319b53c7a3a2555684b19f4d10eaf284da" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop7" interface="floppy_5_25">
+ <feature name="part_id" value="Disk G"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cal iii kanketsuhen (disk g).hdm" size="1261568" crc="9f48372b" sha1="04f57dd72b234cf2c57da33a32cc7293f10906fd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop8" interface="floppy_5_25">
+ <feature name="part_id" value="Disk H"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cal iii kanketsuhen (disk h).hdm" size="1261568" crc="0fcae064" sha1="970f352923b67944b1b9a5a1c9b2c2c264140601" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="caltiny">
+ <description>Cal Gaiden - Tiny Steps Behind the Cal</description>
+ <year>1993</year>
+ <publisher>ãƒãƒ¼ãƒ‡ã‚£ãƒ¼ã‚½ãƒ•ãƒˆ (Birdy Soft)</publisher>
+ <info name="alt_title" value="ã‚­ãƒ£ãƒ«å¤–ä¼ ã‚¿ã‚¤ãƒ‹ã‚£ã‚¹ãƒ†ãƒƒãƒ—" />
+ <info name="release" value="19930724" />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Disk A"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cal gaiden - tiny steps behind the cal (disk a).hdm" size="1261568" crc="64876810" sha1="23666652a81acc5a5c31d66f372014fbff528900" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Disk B"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cal gaiden - tiny steps behind the cal (disk b).hdm" size="1261568" crc="9c438b25" sha1="bc2427fdabe988ff976f07c16fa1eba8229a7891" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Disk C"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cal gaiden - tiny steps behind the cal (disk c).hdm" size="1261568" crc="7cb00c34" sha1="b2616a627ed9e5313fa0088b3c3e12ed3faec69a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop4" interface="floppy_5_25">
+ <feature name="part_id" value="Disk D"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cal gaiden - tiny steps behind the cal (disk d).hdm" size="1261568" crc="f3a27716" sha1="239478afe0dc960eadc105f6ae5c6948d029c523" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop5" interface="floppy_5_25">
+ <feature name="part_id" value="Disk E"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cal gaiden - tiny steps behind the cal (disk e).hdm" size="1261568" crc="b31f0fe3" sha1="a54045acdb2ccea09a8d5d7371b0e0f0be9e3145" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="camisole" supported="partial">
<description>Camisole</description>
<year>1992</year>
<publisher>フラット (Flat)</publisher>
<info name="alt_title" value="キャミソール" />
<info name="release" value="199211xx" />
+ <info name="usage" value="Run FDINST.BAT to copy system files (requires DOS 3.3) or HDINST.BAT to install to HDD" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="System Disk"/>
<dataarea name="flop" size="1265664">
@@ -8783,6 +8881,33 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
+ <software name="capefude">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Capcom Tokoton Efude</description>
+ <year>1992</year>
+ <publisher>カプコン (Capcom)</publisher>
+ <info name="alt_title" value="カプコンã¨ã“ã¨ã‚“絵筆" />
+ <info name="usage" value="Requires DOS 3.3, later versions don't work. Run INST.BAT to install to floppy or HDD." />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="System Disk"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="capcom tokoton efude (system disk).hdm" size="1261568" crc="5275b066" sha1="ac6e9c9ff4d051cee1258977dcfa37be3c93e98d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Font Disk"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="capcom tokoton efude (font disk).hdm" size="1261568" crc="c19b68ad" sha1="5ad912e01b62c02bbbd5bdb923bf95f7af8ced88" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Illustration Disk"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="capcom tokoton efude (illustration disk).hdm" size="1261568" crc="c5435914" sha1="1a774a601412bb85fb5ba1d3eb23741806d6ee37" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="cdaisen2">
<description>Campaign Version Daisenryaku II</description>
<year>1989</year>
@@ -8898,7 +9023,7 @@ only have some part of Windows file and a Video driver(CLGD?).
<software name="canvas98">
<description>Canvas 98</description>
- <year>19??</year>
+ <year>1992</year>
<publisher>&lt;unknown&gt;</publisher>
<info name="alt_title" value="キャンãƒã‚™ã‚¹98" />
<part name="flop1" interface="floppy_5_25">
@@ -8915,6 +9040,7 @@ only have some part of Windows file and a Video driver(CLGD?).
<publisher>アグミックス (Agumix)</publisher>
<info name="alt_title" value="キャラメルクエスト ~冥天宮ã®å¥³ç¥žåƒï½ž" />
<info name="release" value="19910514" />
+ <info name="usage" value="Requires 5 MHz GDC clock" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1281968">
@@ -8955,31 +9081,13 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="carata" cloneof="carat">
- <description>Carat - Magical Blocks (Alt)</description>
- <year>1992</year>
- <publisher>カスタム (Custom)</publisher>
- <info name="alt_title" value="キャラット MAGICAL BLOCKS" />
- <info name="release" value="19920522" />
- <part name="flop1" interface="floppy_5_25">
- <feature name="part_id" value="Disk A"/>
- <dataarea name="flop" size="1265664">
- <rom name="disk_a.fdi" size="1265664" crc="f37ba8e9" sha1="ca4048cf256f1ce415e72f75da8e006b92875335" offset="0" />
- </dataarea>
- </part>
- <part name="flop2" interface="floppy_5_25">
- <feature name="part_id" value="Disk B"/>
- <dataarea name="flop" size="1265664">
- <rom name="disk_b.fdi" size="1265664" crc="a6b9c72f" sha1="19518f0e3df9469500ad116c9934c5f72d1c4fe5" offset="0" />
- </dataarea>
- </part>
- </software>
-
- <software name="cardbust">
+ <!-- Black screen on boot, but works if installed to HDD -->
+ <software name="cardbust" supported="no">
<description>Card Buster</description>
<year>1993</year>
<publisher>F-88</publisher>
<info name="alt_title" value="カードãƒã‚¹ã‚¿ãƒ¼" />
+ <info name="usage" value="Run HDINST.BAT to install to HDD" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1265664">
<rom name="cbuster1.fdi" size="1265664" crc="e0e6e4a5" sha1="baebdace730a63f5d796e5f2397531911721edc9" offset="0" />
@@ -9006,7 +9114,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="carmnjpn">
+ <!-- Runs only on 286-class and older machines (e.g. PC-9801F, PC-9801UX), otherwise gives a "Packed file is corrupt" error. -->
+ <software name="carmnjpn" supported="partial">
<description>Carmen Sandiego in Japan - Hannin Sagashite Nihon Zenkoku</description>
<year>1989</year>
<publisher>ブロダーãƒãƒ³ãƒ‰ã‚¸ãƒ£ãƒ‘ン (Brøderbund Japan)</publisher>
@@ -9026,7 +9135,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="carmine">
+ <!-- Runs too fast on anything except (presumably) a 8086 CPU, but it doesn't boot on the PC-9801F -->
+ <software name="carmine" supported="partial">
<description>Carmine</description>
<year>1986</year>
<publisher>マイクロキャビン (Microcabin)</publisher>
@@ -9046,6 +9156,7 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
+ <!-- Some in-game music sounds wrong -->
<software name="caroll">
<description>Caroll</description>
<year>1990</year>
@@ -9071,6 +9182,7 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
+ <!-- Runs too fast on anything except (presumably) a 8086 CPU, but it doesn't boot on the PC-9801F -->
<software name="castle">
<description>The Castle and Princess.</description>
<year>1985</year>
@@ -9144,7 +9256,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="catsp1">
+ <!-- Seems to work only on 286-based machines (e.g. PC-9801UX) -->
+ <software name="catsp1" supported="partial">
<description>Cat's Part-1</description>
<year>1993</year>
<publisher>Cat's Pro.</publisher>
@@ -9189,6 +9302,46 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
+ <!-- "データ・ファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" (data file not found) on PC-9801UX, "Packed file is corrupt" on anything else -->
+ <software name="centurio" supported="no">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Centurion - Defender of Rome</description>
+ <year>1993</year>
+ <publisher>エレクトロニック・アーツ・ビクター (Electronic Arts Victor)</publisher>
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 1"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="centurion - defender of rome (disk 1).hdm" size="1261568" crc="77341e91" sha1="fc43641a58461010cb8c847e6cc12ae06f32627e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 2"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="centurion - defender of rome (disk 2).hdm" size="1261568" crc="f72f4d2f" sha1="09ef0eb5dd24662c2e8e01c044ba9ce851a59ebe" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <!-- Crashes MAME on PC-9801UX, "Packed file is corrupt" on anything else -->
+ <software name="centurioa" cloneof="centurio" supported="no">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Centurion - Defender of Rome (Alt)</description>
+ <year>1993</year>
+ <publisher>エレクトロニック・アーツ・ビクター (Electronic Arts Victor)</publisher>
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 1"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="centurion - defender of rome [set 1] (disk 1).hdm" size="1261568" crc="749f444f" sha1="f208014c28bb547e1f0878f8b02bfca289269078" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 2"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="centurion - defender of rome [set 1] (disk 2).hdm" size="1261568" crc="6ad76831" sha1="890727e49bbf9ad580f07960f602cced34bfa9bf" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="chakra">
<description>Chakra</description>
<year>1993</year>
@@ -9215,7 +9368,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="ckrynn">
+ <!-- Can't change disks, so it's not possible to save or load characters -->
+ <software name="ckrynn" supported="no">
<description>Champions of Krynn</description>
<year>1992</year>
<publisher>ãƒãƒ‹ãƒ¼ã‚­ãƒ£ãƒ‹ã‚ªãƒ³ (Pony Canyon)</publisher>
@@ -9255,9 +9409,10 @@ only have some part of Windows file and a Video driver(CLGD?).
</software>
<software name="charaedt">
- <description>Character Editor 98˜</description>
+ <description>Character Editor 98</description>
<year>19??</year>
<publisher>&lt;unknown&gt;</publisher>
+ <info name="usage" value="From DOS, use SYS.EXE to copy system files to this disk, then boot from it." />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1281968">
<rom name="master.d88" size="1281968" crc="a7c13f87" sha1="40205073275081b966bcc3b395c560add8799488" offset="0" />
@@ -9266,10 +9421,11 @@ only have some part of Windows file and a Video driver(CLGD?).
</software>
<software name="chartsuk">
- <description>Character Tsukuru</description>
+ <description>Character Tsukuuru</description>
<year>19??</year>
<publisher>アスキー (ASCII)</publisher>
<info name="alt_title" value="キャラクターツクール98" />
+ <info name="usage" value="Run INSTALL.EXE to make the disk bootable or install to HDD" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Main"/>
<dataarea name="flop" size="1265664">
@@ -9398,6 +9554,7 @@ only have some part of Windows file and a Video driver(CLGD?).
<publisher>ペガサスジャパン (Pegasus Japan)</publisher>
<info name="alt_title" value="ãƒã‚§ãƒƒã‚¯ã‚·ãƒƒã‚¯ã‚¹ï¼’ 碧空ã®ç‹¼" />
<info name="release" value="19940311" />
+ <info name="usage" value="Run SYSMENU.EXE from DOS to create a bootable disk or install to HDD" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1281968">
@@ -9418,7 +9575,7 @@ only have some part of Windows file and a Video driver(CLGD?).
<publisher>ペガサスジャパン (Pegasus Japan)</publisher>
<info name="alt_title" value="ãƒã‚§ãƒƒã‚¯ã‚·ãƒƒã‚¯ã‚¹ï¼’ シナリオ集Vï½ï½Œï¼Žï¼‘" />
<info name="release" value="19940715" />
- <info name="usage" value="Requires &quot;Check Six 2&quot; to work" />
+ <info name="usage" value="Requires &quot;Check Six 2&quot; to work. Either boot the game with Scenario Disk on drive 2, or run HDDINST.EXE to install the expansion to HDD." />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Scenario Disk"/>
<dataarea name="flop" size="1281968">
@@ -9426,7 +9583,7 @@ only have some part of Windows file and a Video driver(CLGD?).
</dataarea>
</part>
<part name="flop2" interface="floppy_5_25">
- <feature name="part_id" value="Visual? Up Disk"/>
+ <feature name="part_id" value="Update Disk"/>
<dataarea name="flop" size="1281968">
<rom name="c62_vup.d88" size="1281968" crc="b197931c" sha1="066279dfa1c369f90ea8902118434b752af3babd" offset="0" />
</dataarea>
@@ -9439,6 +9596,7 @@ only have some part of Windows file and a Video driver(CLGD?).
<publisher>ペガサスジャパン (Pegasus Japan)</publisher>
<info name="alt_title" value="ãƒã‚§ãƒƒã‚¯ã‚·ãƒƒã‚¯ã‚¹ï¼’SP" />
<info name="release" value="19940715" />
+ <info name="usage" value="This release includes the &quot;Scenario Shuu Vol. 1&quot;. To use it, boot the game with Disk 3 on drive 2." />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1281968">
@@ -9459,7 +9617,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="cherryb">
+ <!-- Asks for Disk 1 just after boot. None of the disks work. -->
+ <software name="cherryb" supported="no">
<description>Cherry Bomb - Chou Ojousama Sayaka-chan Nanpa Daisakusen</description>
<year>1994</year>
<publisher>ペパーミント・Kids (Peppermint Kids)</publisher>
@@ -9581,12 +9740,60 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="chimesq">
+ <!-- Doesn't recognize disk changes - cannot get past the opening sequence -->
+ <software name="ikochan" supported="no">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Chikyuu Bouei Shoujo Iko-chan - UFO Daisakusen</description>
+ <year>1992</year>
+ <publisher>グラムス (Glams)</publisher>
+ <info name="alt_title" value="地çƒé˜²è¡›å°‘女イコã¡ã‚ƒã‚“ ~UFO大作戦~" />
+ <info name="release" value="19921204" />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 1"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="chikyuu bouei shoujo iko-chan - ufo daisakusen (disk 1).hdm" size="1261568" crc="947a6bd5" sha1="e911ce2cd3ad48e23959ff548904ab1ce043a32d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Opening Disk"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="chikyuu bouei shoujo iko-chan - ufo daisakusen (opening disk).hdm" size="1261568" crc="b4245989" sha1="13d722557d76e41468a23a73535ce46ec6046959" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 2"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="chikyuu bouei shoujo iko-chan - ufo daisakusen (disk 2).hdm" size="1261568" crc="4c3a8eab" sha1="f9c7ec2edc25dda23aec41eafb0a8a4cd9eaf8b8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop4" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 3"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="chikyuu bouei shoujo iko-chan - ufo daisakusen (disk 3).hdm" size="1261568" crc="e37f9622" sha1="d61df75e138d07717e1048eabb935a8d9dcff24a" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop5" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 4"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="chikyuu bouei shoujo iko-chan - ufo daisakusen (disk 4).hdm" size="1261568" crc="303cb5e4" sha1="87bc49c89ea1893bc295eb5b417a224a1184f06d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop6" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 5"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="chikyuu bouei shoujo iko-chan - ufo daisakusen (disk 5).hdm" size="1261568" crc="f7339955" sha1="8e0ad26853bf239ba43c377e4825435dc87b6ca0" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <!-- Seems to be missing a disk labeled Data 3 -->
+ <software name="chimesq" supported="no">
<description>Chime's Quest</description>
<year>1992</year>
<publisher>ログインソフト (Login Soft)</publisher>
<info name="alt_title" value="ãƒãƒ£ã‚¤ãƒ ã‚ºã‚¯ã‚¨ã‚¹ãƒˆ" />
<info name="release" value="199202xx" />
+ <info name="usage" value="Run INSTALL.EXE from DOS to create a bootable disk or install to HDD" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="System Disk"/>
<dataarea name="flop" size="1265664">
@@ -9607,7 +9814,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="chittyt">
+ <!-- This probably requires 3.5" floppy emulation -->
+ <software name="chittyt" supported="no">
<description>Chitty Chitty Train</description>
<year>1993</year>
<publisher>ビッツー (Bit²)</publisher>
@@ -9645,6 +9853,32 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
+ <software name="samadhia" cloneof="samadhi">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Chou Shinri Samâdhi (Alt)</description>
+ <year>1994</year>
+ <publisher>M.M.S. ~ Mighty Mycom System</publisher>
+ <info name="alt_title" value="超心ç†ã‚µãƒžãƒ¼ãƒ‡ã‚£" />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 1"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="choushinri samadhi (disk 1).hdm" size="1261568" crc="49dbc03c" sha1="6bc706cba4b4925e68442cc5a0c8c3824fab8d13" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 2"/>
+ <dataarea name="flop" size="1281968">
+ <rom name="sam2.d88" size="1281968" crc="f9141450" sha1="abfb5ebdefda35aec7d0d409559ae0aafe54fbc7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 3"/>
+ <dataarea name="flop" size="1281968">
+ <rom name="sam3.d88" size="1281968" crc="493182fe" sha1="a15cf7e78f284b3431de40f18e5ec7e4ba9da196" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="macroscp">
<description>Choujikuu Yousai Macross - Complete Pack HD Senyou</description>
<year>1995</year>
@@ -9765,6 +9999,135 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
+ <software name="chiemi">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Chiemi</description>
+ <year>1993</year>
+ <publisher>フェアリーテール レッドゾーン (Fairytale Red-Zone)</publisher>
+ <info name="alt_title" value="稚æµç¾Ž" />
+ <info name="release" value="19931119" />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Disk A"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="chiemi (disk a).hdm" size="1261568" crc="2fbd0bc2" sha1="e9945ca48de22912f6ecb7c88349c6343c9253b3" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Disk B"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="chiemi (disk b).hdm" size="1261568" crc="59ff6a43" sha1="7c0bba83b3fad8ce21060d88dec1fa443ed91d61" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Disk C"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="chiemi (disk c).hdm" size="1261568" crc="06958ffb" sha1="0f8823aac65d01662982db89ff43a81ff7e7ae9f" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop4" interface="floppy_5_25">
+ <feature name="part_id" value="Disk D"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="chiemi (disk d).hdm" size="1261568" crc="eb822798" sha1="5dc837196f7a0c077bb38758cc9df50ff0ed9cfa" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <!--
+ The Cherry Jam sets are completely different. The parent set is self-booting (MEGDOS-based), while the alternate set runs from standard DOS and requires HDD installation.
+ The alternate set has files dated in the year 2000, so it's either a late reprint or an unofficial repack.
+ -->
+ <software name="chrryjam">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Cherry Jam - Kanojo ga Hadaka ni Kigaetara</description>
+ <year>1996</year>
+ <publisher>ジャム (Jam)</publisher>
+ <info name="alt_title" value="ãƒã‚§ãƒªãƒ¼ã‚¸ãƒ£ãƒ  ~彼女ãŒè£¸ã«ç€æ›¿ãˆãŸã‚‰ï½ž" />
+ <info name="release" value="19960802" />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Disk A"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cherry jam [set 2] (disk a).hdm" size="1261568" crc="6d73c760" sha1="47c58fde54d8b28b816b0416df34d93a9151c70d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Disk B"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cherry jam [set 2] (disk b).hdm" size="1261568" crc="0023fbb2" sha1="bff2987e865e29156cc03bea9d83ea5196f79ffb" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Disk C"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cherry jam [set 2] (disk c).hdm" size="1261568" crc="9545cf95" sha1="6f80ec1f4ea171adc896ed88f09786d794456a76" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop4" interface="floppy_5_25">
+ <feature name="part_id" value="Disk D"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cherry jam [set 2] (disk d).hdm" size="1261568" crc="5bf428bb" sha1="c3973ab94b6125587f61bbffd7b047bf027932e6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop5" interface="floppy_5_25">
+ <feature name="part_id" value="Disk E"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cherry jam [set 2] (disk e).hdm" size="1261568" crc="b8c0af46" sha1="98bef3153e6deab0ef83b272e44941f0bb042af0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop6" interface="floppy_5_25">
+ <feature name="part_id" value="Disk F"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cherry jam [set 2] (disk f).hdm" size="1261568" crc="8f656f71" sha1="96851fa3f7fcafd88a3e2c36a169e79cdfa933fb" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="chrryjama" cloneof="chrryjam">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Cherry Jam - Kanojo ga Hadaka ni Kigaetara (Alt)</description>
+ <year>1996</year>
+ <publisher>ジャム (Jam)</publisher>
+ <info name="alt_title" value="ãƒã‚§ãƒªãƒ¼ã‚¸ãƒ£ãƒ  ~彼女ãŒè£¸ã«ç€æ›¿ãˆãŸã‚‰ï½ž" />
+ <info name="release" value="19960802" />
+ <info name="usage" value="Run INSTALL.BAT from DOS" />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 1"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cherry jam [set 1] (disk 1).hdm" size="1261568" crc="116eff2e" sha1="22f2abf5d242bf5f9cd66ad25e3f0ae14302695e" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 2"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cherry jam [set 1] (disk 2).hdm" size="1261568" crc="7cc04b92" sha1="2e320a6eeeff720f85aacfa4bf8286126128e8f2" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 3"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cherry jam [set 1] (disk 3).hdm" size="1261568" crc="9e18026a" sha1="7c589d3dba5b36724b6837113accb17fbf9f9264" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop4" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 4"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cherry jam [set 1] (disk 4).hdm" size="1261568" crc="31a0e0d4" sha1="0923a295fc3d12f3c4b8045c90a593dba5714d73" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop5" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 5"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cherry jam [set 1] (disk 5).hdm" size="1261568" crc="f196fccf" sha1="444fe0b738d0e3fe914b1d281b278e07d110fd89" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop6" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 6"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cherry jam [set 1] (disk 6).hdm" size="1261568" crc="bc622248" sha1="14da5a59f068e48ff9f40cda4d940098d454d882" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <!-- Seems to work only on 286-based machines (e.g. PC-9801UX) -->
<software name="christin">
<description>Christine</description>
<year>1986</year>
@@ -9784,6 +10147,7 @@ only have some part of Windows file and a Video driver(CLGD?).
<publisher>アシッドプラン (Acid Plan)</publisher>
<info name="alt_title" value="クロムパラダイス 銀白色ã®æ¥½åœ’" />
<info name="release" value="19960319" />
+ <info name="usage" value="Run INS.BAT from DOS to install to HDD" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1265664">
@@ -9840,6 +10204,7 @@ only have some part of Windows file and a Video driver(CLGD?).
<publisher>アシッドプラン (Acid Plan)</publisher>
<info name="alt_title" value="クロムパラダイス 銀白色ã®æ¥½åœ’" />
<info name="release" value="19960319" />
+ <info name="usage" value="Run INS.BAT from DOS to install to HDD" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1265664">
@@ -9895,6 +10260,7 @@ only have some part of Windows file and a Video driver(CLGD?).
<year>1996</year>
<publisher>アシッドプラン (Acid Plan)</publisher>
<info name="alt_title" value="クロムパラダイス 銀白色ã®æ¥½åœ’ スペシャル" />
+ <info name="usage" value="Expansion disk for Chrome Paradise. Run OMAKE.BAT from DOS to install to HDD" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1265664">
@@ -9916,31 +10282,31 @@ only have some part of Windows file and a Video driver(CLGD?).
<info name="alt_title" value="サークルメイト" />
<info name="release" value="19940513" />
<part name="flop1" interface="floppy_5_25">
- <feature name="part_id" value="Disk 1"/>
+ <feature name="part_id" value="Disk A"/>
<dataarea name="flop" size="1265664">
<rom name="circle_m_01.fdi" size="1265664" crc="6166e1b8" sha1="dee6fb3fe0786f447c4b4c6572209741823c9678" offset="0" />
</dataarea>
</part>
<part name="flop2" interface="floppy_5_25">
- <feature name="part_id" value="Disk 2"/>
+ <feature name="part_id" value="Disk B"/>
<dataarea name="flop" size="1265664">
<rom name="circle_m_02.fdi" size="1265664" crc="05adcf50" sha1="2ecf1765f5cc13ce994bc6e8bc4ac747c7514002" offset="0" />
</dataarea>
</part>
<part name="flop3" interface="floppy_5_25">
- <feature name="part_id" value="Disk 3"/>
+ <feature name="part_id" value="Disk C"/>
<dataarea name="flop" size="1265664">
<rom name="circle_m_03.fdi" size="1265664" crc="9a6f62e6" sha1="f6592348072c45634fb799d4c2b7394b0edc5e46" offset="0" />
</dataarea>
</part>
<part name="flop4" interface="floppy_5_25">
- <feature name="part_id" value="Disk 4"/>
+ <feature name="part_id" value="Disk D"/>
<dataarea name="flop" size="1265664">
<rom name="circle_m_04.fdi" size="1265664" crc="68bd64ec" sha1="1d27c837a9d74ee19cdbf62c83567c3fe0c72f0a" offset="0" />
</dataarea>
</part>
<part name="flop5" interface="floppy_5_25">
- <feature name="part_id" value="Disk 5"/>
+ <feature name="part_id" value="Disk E"/>
<dataarea name="flop" size="1265664">
<rom name="circle_m_05.fdi" size="1265664" crc="738ddb9a" sha1="325b32741b33f270d1c010b31190767acfb0cf6c" offset="0" />
</dataarea>
@@ -9979,12 +10345,14 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="civ">
- <description>Sid Meyer's Civilization</description>
+ <!-- Running the game from floppy doesn't work, it doesn't recognize the disks properly. Works from HDD. -->
+ <software name="civ" supported="partial">
+ <description>Sid Meier's Civilization</description>
<year>1992</year>
<publisher>マイクロプローズジャパン (MicroProse Japan)</publisher>
<info name="alt_title" value="シヴィライゼーション" />
<info name="release" value="19920925" />
+ <info name="usage" value="Run INSTALL.BAT from DOS to install to HDD" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1265664">
@@ -10029,7 +10397,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="classrod">
+ <!-- Asks for a "game disk" after booting - is it missing a disk? -->
+ <software name="classrod" supported="no">
<description>Classic Road</description>
<year>1992</year>
<publisher>ビクター音楽産業 (Victor Musical Industries)</publisher>
@@ -10042,12 +10411,14 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="classro2">
+ <!-- Doesn't recognize the save disk. Works from HDD. -->
+ <software name="classro2" supported="partial">
<description>Classic Road 2</description>
<year>1992</year>
<publisher>ビクターエンタテインメント (Victor Entertainment)</publisher>
<info name="alt_title" value="クラシック・ロード2" />
<info name="release" value="19930827" />
+ <info name="usage" value="Run CR2_INST.EXE from DOS to install to HDD" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Start Disk"/>
<dataarea name="flop" size="1265664">
@@ -10068,7 +10439,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="classro3">
+ <!-- Hangs while booting -->
+ <software name="classro3" supported="no">
<description>Classic Road 3</description>
<year>1994</year>
<publisher>ビクターエンタテインメント (Victor Entertainment)</publisher>
@@ -10107,7 +10479,42 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="cluju">
+ <software name="clavie">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Ce'st la vie</description>
+ <year>1995</year>
+ <publisher>メイビーソフト (May-Be Soft)</publisher>
+ <info name="alt_title" value="セラヴィ" />
+ <info name="release" value="19950228" />
+ <info name="usage" value="Run INSTALL.EXE to copy DOS files to disk A" />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Disk A"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="c'est la vie (disk a).hdm" size="1261568" crc="5b5e58f8" sha1="74ff0419d3cc4279dab7b1030244c6330ec04ac6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Disk B"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="c'est la vie (disk b).hdm" size="1261568" crc="3d24c95f" sha1="53803e850f7cae9b2f8d7678b92e0f779e3fd0d4" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Disk C"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="c'est la vie (disk c).hdm" size="1261568" crc="5d99259a" sha1="3374f58c30910614989a964ba2ad4897b52a8d58" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop4" interface="floppy_5_25">
+ <feature name="part_id" value="Disk D"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="c'est la vie (disk d).hdm" size="1261568" crc="bbaed2f7" sha1="20748e177d23df8b654d947a64d1dac749e54a20" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <!-- Runs too fast on anything except the PC-9801F, but the text doesn't display correctly -->
+ <software name="cluju" supported="partial">
<description>Cluju</description>
<year>1988</year>
<publisher>ザインソフト (Xain Soft)</publisher>
@@ -10179,6 +10586,38 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
+ <software name="cocktai2">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Cocktail Soft - Zoukan-gou 2</description>
+ <year>1992</year>
+ <publisher>カクテル・ソフト (Cocktail Soft)</publisher>
+ <info name="alt_title" value="カクテルソフトï¼å¢—刊å·2ï¼" />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Disk A"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cocktail soft zoukangou 2 (disk a).hdm" size="1261568" crc="3a461314" sha1="5d097ea77f850ed6cc0acf56bf207c85ca717678" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Disk B"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cocktail soft zoukangou 2 (disk b).hdm" size="1261568" crc="e1e5f601" sha1="6ee0d45469ec9b07e10f015b80763eb373f54184" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Disk C"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cocktail soft zoukangou 2 (disk c).hdm" size="1261568" crc="f84abdff" sha1="80835f10e9d86fb237698cabcca7f38ae5a354b0" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop4" interface="floppy_5_25">
+ <feature name="part_id" value="Disk D"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cocktail soft zoukangou 2 (disk d).hdm" size="1261568" crc="bfc00e9e" sha1="0abaa22cf8a5cb7fff3126903906d5bd3c7ffecc" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="colld">
<description>Collector D</description>
<year>1993</year>
@@ -10262,10 +10701,10 @@ only have some part of Windows file and a Video driver(CLGD?).
</software>
<software name="colconq">
- <description>Colonial Conquest</description>
+ <description>Sekai Seifuku - Colonial Conquest</description>
<year>1989</year>
<publisher>ビクター音楽産業 (Victor Musical Industries)</publisher>
- <info name="alt_title" value="世界å¾æœ ~ Sekai Seifuku" />
+ <info name="alt_title" value="世界å¾æœ COLONIAL CONQUEST" />
<info name="release" value="19891121" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1265664">
@@ -10278,7 +10717,7 @@ only have some part of Windows file and a Video driver(CLGD?).
<description>Columns - Taisen Mode-tsuki</description>
<year>1991</year>
<publisher>システムソフト (SystemSoft)</publisher>
- <info name="alt_title" value="コラムス 対戦モード付ã" />
+ <info name="alt_title" value="コラムス 対戦モード付" />
<info name="release" value="19910726" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1281968">
@@ -10287,19 +10726,6 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="columnsa" cloneof="columns">
- <description>Columns - Taisen Mode-tsuki (Alt)</description>
- <year>1991</year>
- <publisher>システムソフト (SystemSoft)</publisher>
- <info name="alt_title" value="コラムス 対戦モード付ã" />
- <info name="release" value="19910726" />
- <part name="flop1" interface="floppy_5_25">
- <dataarea name="flop" size="1281968">
- <rom name="columns (1991)(system soft).d88" size="1281968" crc="f9f64013" sha1="5cef58509ef3eb7479f6e9f5badca73d54ed0769" offset="0" />
- </dataarea>
- </part>
- </software>
-
<software name="commhq">
<description>Command H.Q.</description>
<year>1992</year>
@@ -10313,7 +10739,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="company">
+ <!-- The user disk creation process doesn't work correctly. It's not possible to start the game without it. -->
+ <software name="company" supported="no">
<description>Company</description>
<year>1993</year>
<publisher>ジーエーエム (GAM)</publisher>
@@ -10353,6 +10780,45 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
+ <!-- This is a driver disk for a PC-9801-86-compatible PCMCIA sound card -->
+ <software name="fmc98drv" supported="no">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Computer Technica FMC-98 Sound Card Driver Utility</description>
+ <year>1995?</year>
+ <publisher>コンピュータテクニカ (Computer Technica)</publisher>
+ <part name="flop1" interface="floppy_5_25">
+ <dataarea name="flop" size="1261568">
+ <rom name="computer technica fmc-98 sound card driver utility.hdm" size="1261568" crc="7bc24877" sha1="50e0bd8568c3705c7911c1f66d80dd9c7d9b4bca" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="concert">
+ <description>Concert</description>
+ <year>1994</year>
+ <publisher>アーヴォリオ (Aypio)</publisher>
+ <info name="alt_title" value="コンサート" />
+ <info name="release" value="19940415" />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Disk A"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="concert (disk a).hdm" size="1261568" crc="de0e3da4" sha1="6d028c3e9d6e791ad6097c01abb9be12913d3e90" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Disk B"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="concert (disk b).hdm" size="1261568" crc="2eb04395" sha1="687c3449c40d5d602498bc5c9313e566adc129c6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Disk C"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="concert (disk c).hdm" size="1261568" crc="a7618bb5" sha1="1c7caee2cebc96a0ab9591e610a55d07265fa1d4" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="constgp">
<description>Constructors Grand Prix</description>
<year>1992</year>
@@ -10360,25 +10826,38 @@ only have some part of Windows file and a Video driver(CLGD?).
<info name="alt_title" value="コンストラクターズグランプリ" />
<info name="release" value="199209xx" />
<part name="flop1" interface="floppy_5_25">
- <feature name="part_id" value="Disk 1"/>
+ <feature name="part_id" value="System Disk"/>
<dataarea name="flop" size="1265664">
<rom name="disk_1.fdi" size="1265664" crc="3b45a8bc" sha1="f8e82747f5f74e9d3a52005dea758f6f7c592f7e" offset="0" />
</dataarea>
</part>
<part name="flop2" interface="floppy_5_25">
- <feature name="part_id" value="Disk 2"/>
+ <feature name="part_id" value="Data Disk"/>
<dataarea name="flop" size="1265664">
<rom name="disk_2.fdi" size="1265664" crc="54df3337" sha1="b6c60da8a745bae7350711f35362c7b00965ab2f" offset="0" />
</dataarea>
</part>
<part name="flop3" interface="floppy_5_25">
- <feature name="part_id" value="Disk 3"/>
+ <feature name="part_id" value="Course Data Disk"/>
<dataarea name="flop" size="1265664">
<rom name="disk_3.fdi" size="1265664" crc="f49df6d7" sha1="e2e54c54c6787d360c4697a270471d75417a31c9" offset="0" />
</dataarea>
</part>
</software>
+ <!-- This is a driver disk for a memory expansion board -->
+ <software name="superems" supported="no">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Contec Super EMS</description>
+ <year>1991?</year>
+ <publisher>Contec</publisher>
+ <part name="flop1" interface="floppy_5_25">
+ <dataarea name="flop" size="1261568">
+ <rom name="contec super ems.hdm" size="1261568" crc="7268cb3d" sha1="96268d65624519a16dd0737f6042c6c30e75c671" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="continen">
<description>Continental</description>
<year>1992</year>
@@ -10411,6 +10890,7 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
+ <!-- Seems to work only on 286-based machines (e.g. PC-9801UX) -->
<software name="cospsyco">
<description>Cosmic Psycho</description>
<year>1991</year>
@@ -10469,6 +10949,47 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
+ <!-- The original version comes in 2DD disks and boots to a black screen. The single-disk 2HD conversion is probably unofficial, but it works in MAME. -->
+ <software name="cranston" supported="no">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Cranston Manor</description>
+ <year>1983</year>
+ <publisher>スタークラフト (Starcraft)</publisher>
+ <info name="release" value="198310xx" />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Boot Disk"/>
+ <dataarea name="flop" size="348848">
+ <rom name="cranston manor (boot disk).d88" size="348848" crc="f914c48b" sha1="446a234f36465708df4ffabc0848b84a45cf6426" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 2"/>
+ <dataarea name="flop" size="344496">
+ <rom name="cranston manor (disk 1).d88" size="344496" crc="35d74464" sha1="4524d7d9f8f8db4929dc6a435c795c1db5de8e85" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 2"/>
+ <dataarea name="flop" size="348848">
+ <rom name="cranston manor (disk 2).d88" size="348848" crc="e1f04287" sha1="1fb1f14763b97058bc19c6bc18bb075f99baee85" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="cranstonh" cloneof="cranston">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Cranston Manor (2HD conversion)</description>
+ <year>1983</year>
+ <publisher>スタークラフト (Starcraft)</publisher>
+ <info name="release" value="198310xx" />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Boot Disk"/>
+ <dataarea name="flop" size="1086448">
+ <rom name="cranston manor (2hd conversion).d88" size="1086448" crc="902547c1" sha1="02357b934962e5071a31787634041c8b9b3982dc" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="crescent">
<description>Crescent</description>
<year>1993</year>
@@ -10527,7 +11048,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="cresmoona" cloneof="cresmoon">
+ <!-- This set has a non-standard disk layout with 26 sectors per track, probably used as copy protection -->
+ <software name="cresmoona" cloneof="cresmoon" supported="no">
<description>Crescent Moon Girl (Alt Format)</description>
<year>1989</year>
<publisher>アリスソフト (AliceSoft)</publisher>
@@ -10553,34 +11075,35 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
+ <!-- Not sure if the Master Disk is needed. It seems to be the same as the Game Disk with some small differences. -->
<software name="crimson3">
- <description>Crimson 3</description>
+ <description>Crimson III</description>
<year>1990</year>
<publisher>クリスタルソフト (Xtal Soft)</publisher>
- <info name="alt_title" value="クリムゾン3" />
+ <info name="alt_title" value="クリムゾンIII" />
<info name="release" value="19901019" />
<part name="flop1" interface="floppy_5_25">
- <feature name="part_id" value="Main?"/>
+ <feature name="part_id" value="Opening Disk"/>
<dataarea name="flop" size="1281968">
- <rom name="crmsn3ma.d88" size="1281968" crc="1f842921" sha1="05b3dd59f8d43e41431d93fe509b72829fa37628" offset="0" />
+ <rom name="crmsn3op.d88" size="1281968" crc="d96b595a" sha1="632d4b5805bb80ca463cb5b6914f1889d768e2c9" offset="0" />
</dataarea>
</part>
<part name="flop2" interface="floppy_5_25">
- <feature name="part_id" value="Game"/>
+ <feature name="part_id" value="Game Disk"/>
<dataarea name="flop" size="1281968">
<rom name="crmsn3ga.d88" size="1281968" crc="4c630dd5" sha1="835190e3aa49fb0ad0ee2703008ab3f569d68127" offset="0" />
</dataarea>
</part>
<part name="flop3" interface="floppy_5_25">
- <feature name="part_id" value="Opening"/>
+ <feature name="part_id" value="Scenario Disk"/>
<dataarea name="flop" size="1281968">
- <rom name="crmsn3op.d88" size="1281968" crc="d96b595a" sha1="632d4b5805bb80ca463cb5b6914f1889d768e2c9" offset="0" />
+ <rom name="crmsn3sc.d88" size="1281968" crc="5fe3cc91" sha1="ec2314e1c47205cdf93acc9e149220c88d9f920a" offset="0" />
</dataarea>
</part>
<part name="flop4" interface="floppy_5_25">
- <feature name="part_id" value="Scenario"/>
+ <feature name="part_id" value="Master Disk"/>
<dataarea name="flop" size="1281968">
- <rom name="crmsn3sc.d88" size="1281968" crc="5fe3cc91" sha1="ec2314e1c47205cdf93acc9e149220c88d9f920a" offset="0" />
+ <rom name="crmsn3ma.d88" size="1281968" crc="1f842921" sha1="05b3dd59f8d43e41431d93fe509b72829fa37628" offset="0" />
</dataarea>
</part>
</software>
@@ -10675,6 +11198,41 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
+ <!-- Doesn't recognize disk changes. Works when installed to HDD. -->
+ <software name="crw" supported="partial">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>CRW - Metal Jacket</description>
+ <year>1994</year>
+ <publisher>ウィズ (Wiz)</publisher>
+ <info name="alt_title" value="CRW メタルジャケット" />
+ <info name="release" value="19941007" />
+ <info name="usage" value="Run INSTHD.BAT from DOS" />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="System Disk"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="crw metal jacket (system disk).hdm" size="1261568" crc="18596a5f" sha1="7cbe59ee59ea7bb8e20a525500d2484b49a8f339" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Demo Disk"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="crw metal jacket (demo disk).hdm" size="1261568" crc="301b0bc8" sha1="ee8cdea2177a21f16ec3218690b12219063980b6" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Data 1 Disk"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="crw metal jacket (data disk 1).hdm" size="1261568" crc="c016d0b3" sha1="a915fe83817da7809aaf1729e862fd1211395e8d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop4" interface="floppy_5_25">
+ <feature name="part_id" value="Data 2 Disk"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="crw metal jacket (data disk 2).hdm" size="1261568" crc="831e1762" sha1="fa5d09204ca2a9129bf432bfd494022f4224fee7" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="cryschas">
<description>Crystal Chaser - Tenkuu no Mashoukyuu</description>
<year>1991</year>
@@ -10716,7 +11274,7 @@ only have some part of Windows file and a Video driver(CLGD?).
</software>
<software name="crystdr2">
- <description>Crystal Dream II - Maou no Genei</description>
+ <description>Crystal Dream II - Maou no Gen'ei</description>
<year>1990</year>
<publisher>ストライカー (Striker)</publisher>
<info name="alt_title" value="クリスタルドリーム2 魔王ã®å¹»å½±" />
@@ -10728,6 +11286,7 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
+ <!-- Seems to work only on 286-based machines (e.g. PC-9801UX) -->
<software name="crystqst">
<description>Crystal Quest</description>
<year>1992</year>
@@ -10834,12 +11393,60 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="crystan">
- <description>Crystania Shinou Densetsu</description>
+ <!-- The installer tends to hang when it asks for a new disk -->
+ <software name="crystnia" supported="no">
+ <!-- Origin: Neo Kobe Collection -->
+ <description>Shin'ou Densetsu Crystania</description>
+ <year>1995</year>
+ <publisher>システムソフト (SystemSoft)</publisher>
+ <info name="alt_title" value="神王ä¼èª¬ã‚¯ãƒªã‚¹ã‚¿ãƒ‹ã‚¢" />
+ <info name="release" value="19950707" />
+ <info name="usage" value="Requires a serial number printed on the registration card. Run INST.EXE from DOS to install." />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 1"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="shinou densetsu crystania (disk 1).hdm" size="1261568" crc="a57693e3" sha1="4037a645a546d1105c59dea060ce07574aad4f6d" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 2"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="shinou densetsu crystania (disk 2).hdm" size="1261568" crc="c4e4a7aa" sha1="d261072de27ee40c7f390603cfbe14436033b592" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 3"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="shinou densetsu crystania (disk 3).hdm" size="1261568" crc="c6a80d42" sha1="149af04b5af0584d3c740868fc3c8414e63c5dff" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop4" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 4"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="shinou densetsu crystania (disk 4).hdm" size="1261568" crc="8434172d" sha1="1f72621573586cf91681776969de330affb4f679" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop5" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 5"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="shinou densetsu crystania (disk 5).hdm" size="1261568" crc="6221e43b" sha1="e48bd66b3417bd426b9ae6a68c26ec0bd0062337" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop6" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 6"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="shinou densetsu crystania (disk 6).hdm" size="1261568" crc="884f6025" sha1="b3a570887ac3313144aaf89b415a654609e712d7" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="crystapk" supported="no">
+ <description>Shin'ou Densetsu Crystania - Powerup Kit</description>
<year>1995</year>
<publisher>システムソフト (SystemSoft)</publisher>
<info name="alt_title" value="神王ä¼èª¬ã‚¯ãƒªã‚¹ã‚¿ãƒ‹ã‚¢" />
<info name="release" value="19950707" />
+ <info name="usage" value="Expansion disk for Shin'ou Densetsu Crystania" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1261730">
<rom name="disk_1.dcp" size="1261730" crc="5bb9147e" sha1="6ce67cd222c9643c8c17ae081a6bde95e1c7cfdd" offset="0" />
@@ -10873,6 +11480,7 @@ only have some part of Windows file and a Video driver(CLGD?).
<publisher>クィーンソフト (Queensoft)</publisher>
<info name="alt_title" value="カース" />
<info name="release" value="19941216" />
+ <info name="usage" value="Run DOSINS.EXE to copy system files or HDINS.EXE to install to HDD" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1265664">
@@ -11032,6 +11640,38 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
+ <software name="dennogak">
+ <description>Cybernetic Hi-School / Dennou Gakuen</description>
+ <year>1989</year>
+ <publisher>ガイナックス (Gainax)</publisher>
+ <info name="alt_title" value="電脳学園" />
+ <info name="release" value="19890715" />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Disk C"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cybernetic hi-school (disk c - boot).hdm" size="1261568" crc="329f6806" sha1="9db2322bd24a22ca01449d25a3c5b626261306db" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Disk A"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cybernetic hi-school (disk a).hdm" size="1261568" crc="82643986" sha1="57726aabacaeeaef558c57543374e3a85a8e1975" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Disk B"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cybernetic hi-school (disk b).hdm" size="1261568" crc="c320269e" sha1="6c54266f040027ab3dbb7fe0694c35fe67a0acc5" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop4" interface="floppy_5_25">
+ <feature name="part_id" value="Disk D"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="cybernetic hi-school (disk d).hdm" size="1261568" crc="85c1752d" sha1="85eecf94799b646ee4fc95cc0b787abfd6cfa6c3" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="dennog20">
<description>Cybernetic Hi-School / Dennou Gakuen Ver. 2.0</description>
<year>1990</year>
@@ -24637,7 +25277,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="chilambl">
+ <!-- The intro music starts to play, but nothing shows up on screen and eventually the game hangs -->
+ <software name="chilambl" supported="no">
<description>Libros de Chilam Balam</description>
<year>1992</year>
<publisher>ライトスタッフ (Right Stuff)</publisher>
@@ -46790,6 +47431,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
+ <!-- Fails to boot after copying DOS files. Doesn't recognize the system disk. -->
<software name="candy3" supported="no">
<description>Candy 3</description>
<year>19??</year>
@@ -46814,30 +47456,32 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="cgtsuku" supported="no">
- <description>CG Tsukuruu 3D</description>
+ <software name="cgtsuku">
+ <description>CG Tsukuuru 3D</description>
<year>19??</year>
<publisher>アスキー (ASCII)</publisher>
<info name="alt_title" value="CGツクール3D" />
+ <info name="usage" value="From DOS, run INSTALL.EXE to create a bootable disk or INSTHD.EXE to install to HDD" />
<part name="flop1" interface="floppy_5_25">
- <feature name="part_id" value="Disk I"/>
+ <feature name="part_id" value="Install Disk"/>
<dataarea name="flop" size="1329680">
<rom name="cg_i.nfd" size="1329680" crc="60d844b4" sha1="1755f9690ede25744aa254b1768a941a469a9131" offset="0" />
</dataarea>
</part>
<part name="flop2" interface="floppy_5_25">
- <feature name="part_id" value="Disk S"/>
+ <feature name="part_id" value="Sample Disk"/>
<dataarea name="flop" size="1329680">
<rom name="cg_s.nfd" size="1329680" crc="aec8568a" sha1="2dc9097451cc22886fcc1727bfd9580b8684e810" offset="0" />
</dataarea>
</part>
</software>
- <software name="chaltt2" supported="no">
+ <software name="chaltt2">
<description>Challenge the Touch-Type 2</description>
<year>19??</year>
- <publisher>アスキー (ASCII)</publisher>
- <info name="alt_title" value="ãƒãƒ£ãƒ¬ãƒ³ã‚¸ãƒ»ã‚¶ タッãƒã‚¿ã‚¤ãƒ—" />
+ <publisher>日本マイコン販売 (Nihon Micom Hanbai)</publisher>
+ <info name="alt_title" value="ãƒãƒ£ãƒ¬ãƒ³ã‚¸ãƒ»ã‚¶ タッãƒã‚¿ã‚¤ãƒ— 2" />
+ <info name="usage" value="Run TOUCH.BAT from DOS" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1261568">
<rom name="challenge_touch-typing_2.hdm" size="1261568" crc="a0889c39" sha1="96bae27716f4b773f62cb2ec332c73c72caf9f06" offset="0" />
@@ -46845,7 +47489,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="charadem" supported="no">
+ <software name="charadem">
<description>Charade Magic</description>
<year>1992</year>
<publisher>ãƒãƒ¼ãƒˆã‚½ãƒ•ãƒˆ (Heart Soft)</publisher>
@@ -46858,20 +47502,20 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</dataarea>
</part>
<part name="flop2" interface="floppy_5_25">
- <feature name="part_id" value="Disk 1"/>
+ <feature name="part_id" value="Data Disk 1"/>
<dataarea name="flop" size="1329680">
<rom name="charadem_1.nfd" size="1329680" crc="576a5bf3" sha1="769d1f50e20da74c62efcbaaa6f7bcab728fef81" offset="0" />
</dataarea>
</part>
<part name="flop3" interface="floppy_5_25">
- <feature name="part_id" value="Disk 2"/>
+ <feature name="part_id" value="Data Disk 2"/>
<dataarea name="flop" size="1329680">
<rom name="charadem_2.nfd" size="1329680" crc="6354d3a9" sha1="50a55a6ff9f9ea11b8d939becf3821ae67725d62" offset="0" />
</dataarea>
</part>
</software>
- <software name="check6d" cloneof="check6" supported="no">
+ <software name="check6d" cloneof="check6">
<description>Check Six (Demo)</description>
<year>1993?</year>
<publisher>ペガサスジャパン (Pegasus Japan)</publisher>
@@ -46889,6 +47533,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
+ <!-- The mouse cursor doesn't work correctly -->
<software name="choubaku" supported="no">
<description>Chou·Baku</description>
<year>1993</year>
@@ -46897,26 +47542,26 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
<info name="release" value="19930731" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
- <dataarea name="flop" size="1329680">
- <rom name="choubaku_a.nfd" size="1329680" crc="105afd8e" sha1="76d8f3efc46526069eb133e5dfea3c3c8bc2d882" offset="0" />
+ <dataarea name="flop" size="1261568">
+ <rom name="chou-baku (disk 1).hdm" size="1261568" crc="90b33778" sha1="85498dc3a4f789d111476b5410833169df8c998f" offset="0" />
</dataarea>
</part>
<part name="flop2" interface="floppy_5_25">
<feature name="part_id" value="Disk B"/>
- <dataarea name="flop" size="1329680">
- <rom name="choubaku_b.nfd" size="1329680" crc="8f11b2d1" sha1="b2fdf1a266c0d4f671dbc6af4c39e1b3f7b2c3f1" offset="0" />
+ <dataarea name="flop" size="1261568">
+ <rom name="chou-baku (disk 2).hdm" size="1261568" crc="a4d91eae" sha1="744b2cce07f4202553a22b540401efb4a3521bcc" offset="0" />
</dataarea>
</part>
<part name="flop3" interface="floppy_5_25">
<feature name="part_id" value="Disk C"/>
- <dataarea name="flop" size="1329680">
- <rom name="choubaku_c.nfd" size="1329680" crc="77580e01" sha1="614c9f3904f143e3189a4859e1537dcdc14c9d77" offset="0" />
+ <dataarea name="flop" size="1261568">
+ <rom name="chou-baku (disk 3).hdm" size="1261568" crc="7dfbbfb5" sha1="95b3fd28b5118d5d442ae9638b2885da7dff501e" offset="0" />
</dataarea>
</part>
<part name="flop4" interface="floppy_5_25">
<feature name="part_id" value="Disk D"/>
- <dataarea name="flop" size="1329680">
- <rom name="choubaku_d.nfd" size="1329680" crc="4b7d9d36" sha1="0224bceca47fe413122f19cd74e629bca3fa94ee" offset="0" />
+ <dataarea name="flop" size="1261568">
+ <rom name="chou-baku (disk 4).hdm" size="1261568" crc="90a05adb" sha1="5d5f398b0ab289825fcd4ed51bb2e5c4ffb7dcdd" offset="0" />
</dataarea>
</part>
</software>
@@ -46959,11 +47604,23 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="compecon" supported="no">
+ <software name="clipper">
+ <description>Clipper - Takepon no Ochimono Puzzle</description>
+ <year>19??</year>
+ <publisher>&lt;unknown&gt;</publisher>
+ <part name="flop1" interface="floppy_5_25">
+ <dataarea name="flop" size="1261568">
+ <rom name="clipper - takepon no ochimono puzzle.hdm" size="1261568" crc="4fee4078" sha1="75ddf68afbcfc7942d86969a253618586dbdf10e" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
+ <software name="compecon">
<description>Computer Aided Economics</description>
<year>19??</year>
<publisher>&lt;unknown&gt;</publisher>
<info name="alt_title" value="コンピュータエコノミクス" />
+ <info name="usage" value="Run CAE.EXE from DOS" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1261568">
<rom name="computer_aided_economics.hdm" size="1261568" crc="4d5c369c" sha1="7d9dc63be2eb97fc5107aeab5cd68466a014963e" offset="0" />
@@ -46971,7 +47628,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="crw2" supported="no">
+ <software name="crw2">
<description>CRW 2</description>
<year>1995</year>
<publisher>ウィズ (Wiz)</publisher>
@@ -46983,37 +47640,40 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</dataarea>
</part>
<part name="flop2" interface="floppy_5_25">
- <feature name="part_id" value="Disk 1"/>
+ <feature name="part_id" value="Demo Disk"/>
<dataarea name="flop" size="1329680">
- <rom name="crw2_1.nfd" size="1329680" crc="54d7916e" sha1="c77acf0fa98ea618404ff8a5038300bbab5ae5f1" offset="0" />
+ <rom name="crw2_demo.nfd" size="1329680" crc="5ecfad42" sha1="e942bd2b18559e0839f29841b17af6e0e1f1e754" offset="0" />
</dataarea>
</part>
<part name="flop3" interface="floppy_5_25">
- <feature name="part_id" value="Disk 2"/>
+ <feature name="part_id" value="Data Disk 1"/>
<dataarea name="flop" size="1329680">
- <rom name="crw2_2.nfd" size="1329680" crc="ba8969af" sha1="903268dc5c3e6735c46ddcac5aa93a3ff4961038" offset="0" />
+ <rom name="crw2_1.nfd" size="1329680" crc="54d7916e" sha1="c77acf0fa98ea618404ff8a5038300bbab5ae5f1" offset="0" />
</dataarea>
</part>
<part name="flop4" interface="floppy_5_25">
- <feature name="part_id" value="Disk 3"/>
+ <feature name="part_id" value="Data Disk 2"/>
<dataarea name="flop" size="1329680">
- <rom name="crw2_3.nfd" size="1329680" crc="c358b6f7" sha1="9be92868d254878c656c5db6d17b84c0849ed597" offset="0" />
+ <rom name="crw2_2.nfd" size="1329680" crc="ba8969af" sha1="903268dc5c3e6735c46ddcac5aa93a3ff4961038" offset="0" />
</dataarea>
</part>
<part name="flop5" interface="floppy_5_25">
- <feature name="part_id" value="Demo Disk"/>
+ <feature name="part_id" value="Data Disk 3"/>
<dataarea name="flop" size="1329680">
- <rom name="crw2_demo.nfd" size="1329680" crc="5ecfad42" sha1="e942bd2b18559e0839f29841b17af6e0e1f1e754" offset="0" />
+ <rom name="crw2_3.nfd" size="1329680" crc="c358b6f7" sha1="9be92868d254878c656c5db6d17b84c0849ed597" offset="0" />
</dataarea>
</part>
+
</software>
+ <!-- The installer hangs on disk change most of the time -->
<software name="crystadx" supported="no">
- <description>Crystania - Shinou Densetsu DX</description>
+ <description>Shin'ou Densetsu Crystania DX</description>
<year>1995</year>
<publisher>システムソフト (SystemSoft)</publisher>
<info name="alt_title" value="神王ä¼èª¬ã‚¯ãƒªã‚¹ã‚¿ãƒ‹ã‚¢" />
<info name="release" value="19951215" />
+ <info name="usage" value="Requires HDD installation and a serial number. Run INST.EXE from DOS to install." />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1261568">
@@ -47074,14 +47734,79 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
<rom name="crys_10.hdm" size="1261568" crc="418e51f5" sha1="15098e62f4a715478eb3e4bce51532ced2b86574" offset="0" />
</dataarea>
</part>
- <part name="flop11" interface="floppy_5_25">
- <feature name="part_id" value="Disk x1"/>
+ </software>
+
+ <!-- The installer tends to hang when it asks for a new disk -->
+ <software name="crystadxc" cloneof="crystadx" supported="no">
+ <description>Shin'ou Densetsu Crystania DX (cracked)</description>
+ <year>1995</year>
+ <publisher>システムソフト (SystemSoft)</publisher>
+ <info name="alt_title" value="神王ä¼èª¬ã‚¯ãƒªã‚¹ã‚¿ãƒ‹ã‚¢" />
+ <info name="release" value="19951215" />
+ <info name="usage" value="Requires HDD installation. Run INST.EXE from DOS to install." />
+ <part name="flop1" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1261568">
<rom name="crys_x1.hdm" size="1261568" crc="1fc8279f" sha1="b7c03b3999ed1409c0399b7dacd11d2469778707" offset="0" />
</dataarea>
</part>
+ <part name="flop2" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 2"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="crys_02.hdm" size="1261568" crc="80e0e9a0" sha1="f9b97cc109d8636e08513b50eebf38cbc885afa9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop3" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 3"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="crys_03.hdm" size="1261568" crc="a1a26860" sha1="7fedc856bdbb5aa3e12ed79467b346945c7c5001" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop4" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 4"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="crys_04.hdm" size="1261568" crc="9a5acf4d" sha1="3282291d347400d8c2a633fc3d5af81b833fcae9" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop5" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 5"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="crys_05.hdm" size="1261568" crc="f76c252d" sha1="bc83810bb2e1ae1f00321e614ab1a76bc8981ff7" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop6" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 6"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="crys_06.hdm" size="1261568" crc="a99032d9" sha1="edcca5719cf35cc35d6355565977535be82c3189" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop7" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 7"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="crys_07.hdm" size="1261568" crc="adf2c753" sha1="9255b9e8349ac40a272bebb5be89d9ea93eeb27b" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop8" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 8"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="crys_08.hdm" size="1261568" crc="fd134725" sha1="6ec4db9ded61035719c17a2ef5e33366d5640da8" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop9" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 9"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="crys_09.hdm" size="1261568" crc="cadd3efe" sha1="469bd068a004930816b8489f1644f2592fc61bbd" offset="0" />
+ </dataarea>
+ </part>
+ <part name="flop10" interface="floppy_5_25">
+ <feature name="part_id" value="Disk 10"/>
+ <dataarea name="flop" size="1261568">
+ <rom name="crys_10.hdm" size="1261568" crc="418e51f5" sha1="15098e62f4a715478eb3e4bce51532ced2b86574" offset="0" />
+ </dataarea>
+ </part>
</software>
+ <!-- Seems to be some kind of antivirus software. Fails to boot with ワクãƒãƒ³ãƒ—ログラムã®å®Ÿè¡ŒãŒã§ãã¾ã›ã‚“ (cannot execute the vaccine program) error -->
<software name="cybervac" supported="no">
<description>Cyber Vaccine Itekomashi</description>
<year>19??</year>
@@ -50121,6 +50846,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
+ <!-- This probably requires 3.5" floppy emulation -->
<software name="cessna" supported="no">
<description>Nihon Juudan Cessna Flight</description>
<year>1988</year>
@@ -53436,7 +54162,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cancanb2" supported="no">
+ <software name="cancanb2">
<description>Can Can Bunny 2 - Superior</description>
<year>1990</year>
<publisher>カクテル・ソフト (Cocktail Soft)</publisher>
@@ -53455,7 +54181,8 @@ SPACE EMPIRE
</part>
</software>
- <software name="cancanb4" supported="no">
+ <!-- Seems to work only on 286-based machines (e.g. PC-9801UX) -->
+ <software name="cancanb4" supported="partial">
<description>Can Can Bunny 4 - Premiere</description>
<year>1992</year>
<publisher>カクテル・ソフト (Cocktail Soft)</publisher>
@@ -53487,39 +54214,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cancanb4a" cloneof="cancanb4" supported="no">
- <description>Can Can Bunny 4 - Premiere (Alt Disk 1)</description>
- <year>1992</year>
- <publisher>カクテル・ソフト (Cocktail Soft)</publisher>
- <info name="alt_title" value="ãゃんãゃんãƒãƒ‹ãƒ¼ï¼” プルミエール" />
- <info name="release" value="19920730" />
- <part name="flop1" interface="floppy_5_25">
- <feature name="part_id" value="Disk A"/>
- <dataarea name="flop" size="1172476">
- <rom name="can can bunny 4 - premiere (1992)(cocktail)(disk 1 of 4)(disk a)[a].fdd" size="1172476" crc="62a77a80" sha1="0c1adf0f8a38d8ff11eddbdf1841f7130d374295" offset="0" />
- </dataarea>
- </part>
- <part name="flop2" interface="floppy_5_25">
- <feature name="part_id" value="Disk B"/>
- <dataarea name="flop" size="1306620">
- <rom name="can can bunny 4 - premiere (1992)(cocktail)(disk 2 of 4)(disk b).fdd" size="1306620" crc="e7b95d1b" sha1="73511ee88df33b70e91fea62191c849c329232c1" offset="0" />
- </dataarea>
- </part>
- <part name="flop3" interface="floppy_5_25">
- <feature name="part_id" value="Disk C"/>
- <dataarea name="flop" size="1307644">
- <rom name="can can bunny 4 - premiere (1992)(cocktail)(disk 3 of 4)(disk c).fdd" size="1307644" crc="6e1784fd" sha1="fef5d15f25d4a16845429a5e629b465c2d1a6e0b" offset="0" />
- </dataarea>
- </part>
- <part name="flop4" interface="floppy_5_25">
- <feature name="part_id" value="Disk D"/>
- <dataarea name="flop" size="1300476">
- <rom name="can can bunny 4 - premiere (1992)(cocktail)(disk 4 of 4)(disk d).fdd" size="1300476" crc="d5c591bf" sha1="ba10ae553aa9228c4ca6a85036e41781d59fd1ad" offset="0" />
- </dataarea>
- </part>
- </software>
-
- <software name="cancanb5" supported="no">
+ <software name="cancanb5">
<description>Can Can Bunny 5 - Extra</description>
<year>1993</year>
<publisher>カクテル・ソフト (Cocktail Soft)</publisher>
@@ -53575,7 +54270,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cancan55" supported="no">
+ <software name="cancan55">
<description>Can Can Bunny 5½ - Limited</description>
<year>1994</year>
<publisher>カクテル・ソフト (Cocktail Soft)</publisher>
@@ -53595,12 +54290,13 @@ SPACE EMPIRE
</part>
</software>
- <software name="canaan" supported="no">
+ <software name="canaan">
<description>Canaan - Yakusoku no Chi</description>
<year>1997</year>
<publisher>フォア・ナイン (Fournine)</publisher>
<info name="alt_title" value="カナン ~約æŸã®åœ°ï½ž" />
<info name="release" value="19970411" />
+ <info name="usage" value="Requires HDD installation. Run HDINST.EXE from DOS." />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
<dataarea name="flop" size="1197052">
@@ -53675,7 +54371,8 @@ SPACE EMPIRE
</part>
</software>
- <software name="charade" supported="no">
+ <!-- Mouse doesn't work correctly; it can more or less be played with the keyboard -->
+ <software name="charade" supported="partial">
<description>Charade</description>
<year>1995</year>
<publisher>アップルパイï¼ã‚³ãƒ¼ãƒ’ーã¶ã‚Œã„ã (Apple Pie / Coffee Break)</publisher>
@@ -53713,7 +54410,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cherrymo" supported="no">
+ <software name="cherrymo">
<description>Cherry Moderate</description>
<year>1996</year>
<publisher>ユーコム (Ucom)</publisher>
@@ -53751,8 +54448,8 @@ SPACE EMPIRE
</part>
</software>
- <software name="cherrymod" cloneof="cherrymo" supported="no">
- <description>Cherry Moderate (Demo?)</description>
+ <software name="cherrymod" cloneof="cherrymo">
+ <description>Cherry Moderate (Demo)</description>
<year>1996</year>
<publisher>ユーコム (Ucom)</publisher>
<part name="flop1" interface="floppy_5_25">
@@ -53788,12 +54485,13 @@ SPACE EMPIRE
</part>
</software>
- <software name="chushaki" supported="no">
+ <software name="chushaki">
<description>Chuushaki - Hirasawa Nurse School</description>
<year>1996</year>
<publisher>アーヴォリオ (Aypio)</publisher>
<info name="alt_title" value="注射器" />
<info name="release" value="19960726" />
+ <info name="usage" value="Run INSTALL.BAT from DOS" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
<dataarea name="flop" size="1145852">
@@ -53826,12 +54524,13 @@ SPACE EMPIRE
</part>
</software>
- <software name="clonedol" supported="no">
+ <software name="clonedol">
<description>Clone Doll - Kagai Juugyou</description>
<year>1995</year>
<publisher>スペースプロジェクト (Space Project)</publisher>
<info name="alt_title" value="クローンドール 課外授業" />
<info name="release" value="19951221" />
+ <info name="usage" value="Run INST.EXE from DOS" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="684028">
@@ -53870,7 +54569,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="coin" supported="no">
+ <software name="coin">
<description>Coin</description>
<year>1996</year>
<publisher>アンジェ (Ange)</publisher>
@@ -53895,7 +54594,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cominhrt" supported="no">
+ <software name="cominhrt">
<description>Coming Heart</description>
<year>1995</year>
<publisher>メイビーソフト (May-Be Soft)</publisher>
@@ -53921,7 +54620,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="creastar" supported="no">
+ <software name="creastar">
<description>CrEastar - Planets in Legend</description>
<year>1989</year>
<publisher>ボーステック (Bothtec)</publisher>
@@ -53941,7 +54640,8 @@ SPACE EMPIRE
</part>
</software>
- <software name="customt2" supported="no">
+ <!-- Seems to work only on 286-based machines (e.g. PC-9801UX) -->
+ <software name="customt2">
<description>Custom Mate 2</description>
<year>1994</year>
<publisher>カクテル・ソフト (Cocktail Soft)</publisher>
@@ -53997,68 +54697,13 @@ SPACE EMPIRE
</part>
</software>
- <software name="customt2a" cloneof="customt2" supported="no">
- <description>Custom Mate 2 (Alt Disk 1)</description>
- <year>1994</year>
- <publisher>カクテル・ソフト (Cocktail Soft)</publisher>
- <info name="alt_title" value="カスタムメイト2" />
- <info name="release" value="19941021" />
- <part name="flop1" interface="floppy_5_25">
- <feature name="part_id" value="Disk A"/>
- <dataarea name="flop" size="1002492">
- <rom name="custom mate 2 (1994)(cocktail)(disk 1 of 8)(disk a)[a].fdd" size="1002492" crc="ba64d876" sha1="22c1bc1aea4ec43d589dc771cc707a9e4f12107e" offset="0" />
- </dataarea>
- </part>
- <part name="flop2" interface="floppy_5_25">
- <feature name="part_id" value="Disk B"/>
- <dataarea name="flop" size="1218556">
- <rom name="custom mate 2 (1994)(cocktail)(disk 2 of 8)(disk b).fdd" size="1218556" crc="451ecf8b" sha1="36d2dc3691c23bcc7d56d501b43509bb6c85aaff" offset="0" />
- </dataarea>
- </part>
- <part name="flop3" interface="floppy_5_25">
- <feature name="part_id" value="Disk C"/>
- <dataarea name="flop" size="1279996">
- <rom name="custom mate 2 (1994)(cocktail)(disk 3 of 8)(disk c).fdd" size="1279996" crc="e860f306" sha1="4f1c5cec7dc4387317431acce237855bc4263af5" offset="0" />
- </dataarea>
- </part>
- <part name="flop4" interface="floppy_5_25">
- <feature name="part_id" value="Disk D"/>
- <dataarea name="flop" size="989180">
- <rom name="custom mate 2 (1994)(cocktail)(disk 4 of 8)(disk d).fdd" size="989180" crc="e61d9eb0" sha1="3105d2156389f32bfea0dbafd0817b1d69a41b58" offset="0" />
- </dataarea>
- </part>
- <part name="flop5" interface="floppy_5_25">
- <feature name="part_id" value="Disk E"/>
- <dataarea name="flop" size="1147900">
- <rom name="custom mate 2 (1994)(cocktail)(disk 5 of 8)(disk e).fdd" size="1147900" crc="5268e706" sha1="dc12719b8c32d19012996cfe4b312f7d312cf95d" offset="0" />
- </dataarea>
- </part>
- <part name="flop6" interface="floppy_5_25">
- <feature name="part_id" value="Disk F"/>
- <dataarea name="flop" size="869372">
- <rom name="custom mate 2 (1994)(cocktail)(disk 6 of 8)(disk f).fdd" size="869372" crc="af259f5e" sha1="4a64f120e44eaf2aab511b0b0f11c7a67511abf3" offset="0" />
- </dataarea>
- </part>
- <part name="flop7" interface="floppy_5_25">
- <feature name="part_id" value="Disk G"/>
- <dataarea name="flop" size="1140732">
- <rom name="custom mate 2 (1994)(cocktail)(disk 7 of 8)(disk g).fdd" size="1140732" crc="f8c9d4ee" sha1="0c51900f3be3b2a4d2a9772bc95ebc05647aa9ed" offset="0" />
- </dataarea>
- </part>
- <part name="flop8" interface="floppy_5_25">
- <feature name="part_id" value="Disk H"/>
- <dataarea name="flop" size="863228">
- <rom name="custom mate 2 (1994)(cocktail)(disk 8 of 8)(disk h).fdd" size="863228" crc="c9e494ba" sha1="c58c12014640aa142dfa0be4f57ca55e7664de26" offset="0" />
- </dataarea>
- </part>
- </software>
-
- <software name="customt3" supported="no">
+ <software name="customt3">
<description>Custom Mate 3</description>
<year>1995</year>
<publisher>カクテル・ソフト (Cocktail Soft)</publisher>
<info name="alt_title" value="カスタムメイト3" />
<info name="release" value="19951208" />
+ <info name="usage" value="Run INSTALL.EXE from DOS" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
<dataarea name="flop" size="1068028">
@@ -54115,12 +54760,13 @@ SPACE EMPIRE
</part>
</software>
- <software name="cyberill" supported="no">
+ <software name="cyberill">
<description>Cyber Illusion</description>
<year>1995</year>
<publisher>パールソフト (Pearl Soft)</publisher>
<info name="alt_title" value="サイãƒãƒ¼ã‚¤ãƒªãƒ¥ãƒ¼ã‚¸ãƒ§ãƒ³" />
<info name="release" value="19950922" />
+ <info name="usage" value="Create a bootable DOS floppy and boot from it with disk B on drive 2, then run FDINST.EXE. To install to HDD, mount disk B and run HDINST.EXE." />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
<dataarea name="flop" size="1284092">
@@ -60554,7 +61200,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmus20" supported="no">
+ <software name="cmus20">
<description>Computer Music Vol. 20</description>
<year>19??</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61168,7 +61814,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9111" supported="no">
+ <software name="cmag9111">
<description>SoftBank C Magazine 1991-11</description>
<year>1991</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61179,7 +61825,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9201" supported="no">
+ <software name="cmag9201">
<description>SoftBank C Magazine 1992-01</description>
<year>1992</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61190,7 +61836,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9202" supported="no">
+ <software name="cmag9202">
<description>SoftBank C Magazine 1992-02</description>
<year>1992</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61201,7 +61847,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9203" supported="no">
+ <software name="cmag9203">
<description>SoftBank C Magazine 1992-03</description>
<year>1992</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61212,7 +61858,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9204" supported="no">
+ <software name="cmag9204">
<description>SoftBank C Magazine 1992-04</description>
<year>1992</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61223,7 +61869,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9205" supported="no">
+ <software name="cmag9205">
<description>SoftBank C Magazine 1992-05</description>
<year>1992</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61234,7 +61880,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9206" supported="no">
+ <software name="cmag9206">
<description>SoftBank C Magazine 1992-06</description>
<year>1992</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61245,7 +61891,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9207" supported="no">
+ <software name="cmag9207">
<description>SoftBank C Magazine 1992-07</description>
<year>1992</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61256,7 +61902,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9209" supported="no">
+ <software name="cmag9209">
<description>SoftBank C Magazine 1992-09</description>
<year>1992</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61267,7 +61913,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9210" supported="no">
+ <software name="cmag9210">
<description>SoftBank C Magazine 1992-10</description>
<year>1992</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61285,7 +61931,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9211" supported="no">
+ <software name="cmag9211">
<description>SoftBank C Magazine 1992-11</description>
<year>1992</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61296,7 +61942,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9212" supported="no">
+ <software name="cmag9212">
<description>SoftBank C Magazine 1992-12</description>
<year>1992</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61307,7 +61953,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9301" supported="no">
+ <software name="cmag9301">
<description>SoftBank C Magazine 1993-01</description>
<year>1993</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61318,7 +61964,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9404" supported="no">
+ <software name="cmag9404">
<description>SoftBank C Magazine 1994-04</description>
<year>1993</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61329,7 +61975,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9405" supported="no">
+ <software name="cmag9405">
<description>SoftBank C Magazine 1994-05</description>
<year>1993</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -61340,7 +61986,7 @@ SPACE EMPIRE
</part>
</software>
- <software name="cmag9406" supported="no">
+ <software name="cmag9406">
<description>SoftBank C Magazine 1994-06</description>
<year>1993</year>
<publisher>&lt;coverdisk&gt;</publisher>
@@ -62112,7 +62758,8 @@ SPACE EMPIRE
</part>
</software>
- <software name="car2gp">
+ <!-- This game is supposed to play sound effects through the beeper, but in MAME it just outputs a constant beep -->
+ <software name="car2gp" supported="partial">
<description>Car II Grand Prix</description>
<year>1992</year>
<publisher>ãƒã‚¤ã‚ªã²ã‚ƒãパーセント (Bio 100%)</publisher>
@@ -62123,7 +62770,8 @@ SPACE EMPIRE
</part>
</software>
- <software name="carax92">
+ <!-- This game is supposed to play sound effects through the beeper, but in MAME it just outputs a constant beep -->
+ <software name="carax92" supported="partial">
<description>Carax 92</description>
<year>1992</year>
<publisher>ãƒã‚¤ã‚ªã²ã‚ƒãパーセント (Bio 100%)</publisher>
@@ -62134,7 +62782,8 @@ SPACE EMPIRE
</part>
</software>
- <software name="crayshot">
+ <!-- This probably requires 3.5" floppy emulation -->
+ <software name="crayshot" supported="no">
<description>Cray Shoot</description>
<year>19??</year>
<publisher>ãƒã‚¤ã‚ªã²ã‚ƒãパーセント (Bio 100%)</publisher>
@@ -62444,7 +63093,8 @@ SPACE EMPIRE
</part>
</software>
- <software name="carrothu">
+ <!-- This game plays music through the beeper, but it doesn't work in MAME - it just outputs a constant beep -->
+ <software name="carrothu" supported="partial">
<description>Carrot Hunting</description>
<year>19??</year>
<publisher>&lt;unofficial&gt;</publisher>
@@ -63309,10 +63959,11 @@ doujin?!?
</part>
</software>
- <software name="cpw" supported="no">
+ <software name="cpw">
<description>Cal Piss Water - Ayashii CG Shuu</description>
<year>19??</year>
<publisher>&lt;doujin&gt;</publisher>
+ <info name="usage" value="Run CG.BAT from DOS" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1261568">
<rom name="cal_piss_water_half.hdm" size="1261568" crc="f8496f00" sha1="e72d013dfbb01481db99cc8df4b36dccb6d81577" offset="0" />
@@ -63344,7 +63995,8 @@ doujin?!?
</part>
</software>
- <software name="cgesc">
+ <!-- This probably requires 3.5" floppy emulation -->
+ <software name="cgesc" supported="no">
<description>C.G. Gallery 7 - Escort</description>
<year>1992</year>
<publisher>&lt;doujin&gt;</publisher>
@@ -63356,11 +64008,12 @@ doujin?!?
</part>
</software>
- <software name="cgmast98" supported="no">
+ <software name="cgmast98">
<description>C.G. Gallery Master_98</description>
<year>1991</year>
<publisher>&lt;doujin&gt;</publisher>
<info name="author" value="MMK" />
+ <info name="usage" value="Run MMK.BAT from DOS" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1261568">
<rom name="mmk_cg_gallery_master_98.hdm" size="1261568" crc="e3c082ad" sha1="cf09482ec79819210db52b4bf2ff3cfbe4ac959b" offset="0" />
@@ -63400,6 +64053,7 @@ doujin?!?
<publisher>&lt;doujin&gt;</publisher>
<info name="author" value="ソフトã•ãƒ¼ãる クレージュ ~ Soft Circle Courreges" />
<info name="alt_title" value="地下室ã®ã„ã‘ã«ãˆ" />
+ <info name="usage" value="Run RUN.BAT from DOS" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1265664">
<rom name="chikaike.fdi" size="1265664" crc="67f8303d" sha1="7782ac3b8479f12c14b3012c95810e81dbd39c92" offset="0" />
@@ -63407,7 +64061,8 @@ doujin?!?
</part>
</software>
- <software name="chinghai">
+ <!-- This probably requires 3.5" floppy emulation -->
+ <software name="chinghai" supported="no">
<description>ChingHai</description>
<year>19??</year>
<publisher>&lt;doujin&gt;</publisher>
@@ -63432,6 +64087,7 @@ doujin?!?
</part>
</software>
+ <!-- This probably requires 3.5" floppy emulation -->
<software name="collonc2" supported="no">
<description>Collon Club 2</description>
<year>19??</year>
@@ -63444,7 +64100,8 @@ doujin?!?
</part>
</software>
- <software name="collonc3">
+ <!-- This probably requires 3.5" floppy emulation -->
+ <software name="collonc3" supported="no">
<description>Collon Club 3</description>
<year>19??</year>
<publisher>&lt;doujin&gt;</publisher>
@@ -63457,9 +64114,10 @@ doujin?!?
</software>
<software name="crazylab">
- <description>Crazy Labyrinth</description>
- <year>19??</year>
+ <description>Kyouki no Meikyuu</description>
+ <year>1996</year>
<publisher>&lt;doujin&gt;</publisher>
+ <info name="alt_title" value="ç‹‚æ°—ã®è¿·å®®" />
<info name="author" value="Cats' Organization" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1265664">
@@ -65604,19 +66262,6 @@ doujin?!?
<!-- INCOMPLETE SETS -->
- <software name="cal3" supported="no">
- <description>Cal III (Incomplete)</description>
- <year>1991</year>
- <publisher>ãƒãƒ¼ãƒ‡ã‚£ãƒ¼ã‚½ãƒ•ãƒˆ (Birdy Soft)</publisher>
- <info name="alt_title" value="キャル3" />
- <info name="release" value="19930710" />
- <part name="flop1" interface="floppy_5_25">
- <dataarea name="flop" size="1298608">
- <rom name="key_disk.d88" size="1298608" crc="1e71eb38" sha1="77950fc1805d6ce3a4767e8fe3d9b1dfa644478c" offset="0" />
- </dataarea>
- </part>
- </software>
-
<!-- this should contain 3 disks. it was accompanied by an HDI image -->
<software name="gsekigah" supported="no">
<description>Gassen Sekigahara (Incomplete)</description>
@@ -65778,19 +66423,6 @@ doujin?!?
</part>
</software>
- <software name="tokio2" supported="no">
- <description>Tokio 2 - Kaitaku Imin Boshuuchuu (Incomplete)</description>
- <year>1995</year>
- <publisher>アートディンク (Artdink)</publisher>
- <info name="alt_title" value="トキオ2 開拓移民募集中ï¼" />
- <info name="release" value="19950914" />
- <part name="flop1" interface="floppy_5_25">
- <dataarea name="flop" size="1265664">
- <rom name="boot.fdi" size="1265664" crc="011f2cb8" sha1="f86c50b0f1537eca1fe7bd7680b5a14805739f97" offset="0" />
- </dataarea>
- </part>
- </software>
-
<!-- this should contain 5 disks. it was accompanied by an HDI image -->
<software name="wangsp" supported="no">
<description>Wrestle Angels Special (Incomplete)</description>
diff --git a/hash/pc98_cd.xml b/hash/pc98_cd.xml
index edc26cc1409..de88ca06f2d 100644
--- a/hash/pc98_cd.xml
+++ b/hash/pc98_cd.xml
@@ -1098,6 +1098,43 @@
</part>
</software>
+ <software name="cyberwar">
+ <!--
+ Origin: Neo Kobe Collection
+ <rom name="cyber war (disc 1).ccd" size="771" crc="b00b4fc3" sha1="c0ca2f35f7f2c623a2cffefd00199fad85040ba8"/>
+ <rom name="cyber war (disc 1).cue" size="79" crc="4aa9158f" sha1="22e5bcad2ba79f857a7e025ca8d5dc75bbfa8894"/>
+ <rom name="cyber war (disc 1).img" size="614424720" crc="5513bd0a" sha1="21d2a3f27fa043cc8a486e47a236181eb15cbabb"/>
+ <rom name="cyber war (disc 1).sub" size="25078560" crc="81fb6f2b" sha1="93f38cd1fe5730af8918cc32e51cdc0c40645a0a"/>
+ <rom name="cyber war (disc 2).ccd" size="772" crc="209cd755" sha1="f78e9fe3536b4a7c5841636ea1ca0728b4a39222"/>
+ <rom name="cyber war (disc 2).cue" size="79" crc="63566323" sha1="1c22a830eb3307507db202142a5227816cd4750f"/>
+ <rom name="cyber war (disc 2).img" size="668755920" crc="0c1db581" sha1="88a733ef4014db7e827f13137fda1ac4a5bd6eb6"/>
+ <rom name="cyber war (disc 2).sub" size="27296160" crc="65914b39" sha1="eed5a88ae1fb798da6f9486565cad66be0f39f90"/>
+ <rom name="cyber war (disc 3).ccd" size="771" crc="ec671429" sha1="a84b25f3956ca6219fd54bda5f3632b758c7529f"/>
+ <rom name="cyber war (disc 3).cue" size="79" crc="7bfcb147" sha1="2913f71b0ddd72be5df2e6ce588662fe33f08c7b"/>
+ <rom name="cyber war (disc 3).img" size="698953248" crc="4fdbd398" sha1="463d2708b3e4a2581ea21ea90c2921f90d3a60bc"/>
+ <rom name="cyber war (disc 3).sub" size="28528704" crc="1ae19b0c" sha1="3dd896aeab94d76dd58c564333bac22d70ec71ee"/>
+ -->
+ <description>Cyberwar</description>
+ <year>1995</year>
+ <publisher>塚本å‰å½¦äº‹å‹™æ‰€ (Tsukamoto Yoshihiko Jimusho)</publisher>
+ <info name="alt_title" value="サイãƒãƒ¼ã‚¦ã‚©ãƒ¼" />
+ <part name="cdrom1" interface="cdrom">
+ <diskarea name="cdrom">
+ <disk name="cyber war (disc 1)" sha1="4b62409f228d06e30c4099d984863be76039a72b"/>
+ </diskarea>
+ </part>
+ <part name="cdrom2" interface="cdrom">
+ <diskarea name="cdrom">
+ <disk name="cyber war (disc 2)" sha1="4bc9c31c839caf73dc27dc05133656a4db6eac74"/>
+ </diskarea>
+ </part>
+ <part name="cdrom3" interface="cdrom">
+ <diskarea name="cdrom">
+ <disk name="cyber war (disc 3)" sha1="0547eda244bcb5e11b4d9381cd5f372fb3fb8485"/>
+ </diskarea>
+ </part>
+ </software>
+
<!-- Hybrid disc, also included in fmtowns_cd.xml -->
<software name="dangel">
<!--
diff --git a/hash/sega_beena_cart.xml b/hash/sega_beena_cart.xml
index ed5245bd853..95d46c8abbe 100644
--- a/hash/sega_beena_cart.xml
+++ b/hash/sega_beena_cart.xml
@@ -3,8 +3,8 @@
<softwarelist name="sega_beena_cart" description="Sega Beena Cartridges">
<!-- you must byteswap ROMs to see text, due to endian? -->
-
- <software name="fpc" supported="no">
+
+ <software name="fpc" supported="no">
<description>Fresh Pretty Cure</description> <!-- is this the correct title? -->
<year>2009</year>
<publisher>Sega</publisher>
diff --git a/hash/timex_dock.xml b/hash/timex_dock.xml
index 08d5b11a705..08d5b11a705 100755..100644
--- a/hash/timex_dock.xml
+++ b/hash/timex_dock.xml
diff --git a/hash/vgmplay.xml b/hash/vgmplay.xml
index 9c98d6a576b..c991909a30c 100644
--- a/hash/vgmplay.xml
+++ b/hash/vgmplay.xml
@@ -227454,7 +227454,7 @@
</dataarea>
</part>
</software>
-
+
<!-- Project.org 2612 VGM Archives located at http://project2612.org/list.php
Also https://archive.org/details/Project2612CompleteArchive20180623681Sets.7z -->
diff --git a/plugins/cheatfind/init.lua b/plugins/cheatfind/init.lua
index dd09da404a7..276193acc13 100644
--- a/plugins/cheatfind/init.lua
+++ b/plugins/cheatfind/init.lua
@@ -259,17 +259,17 @@ function cheatfind.startplugin()
local devtable = {}
local devsel = 1
local devcur = 1
-
-
+
+
--local formtable = { " I1", " i1", "<I2", ">I2", "<i2", ">i2", "<I4", ">I4", "<i4", ">i4", "<I8", ">I8", "<i8", ">i8", }-- " <f", " >f", " <d", " >d" }
--local formname = { "u8", "s8", "little u16", "big u16", "little s16", "big s16",
- -- "little u32", "big u32", "little s32", "big s32", "little u64", "big u64", "little s64", "big s64", }
- -- -- "little float", "big float", "little double", "big double" }
+ -- "little u32", "big u32", "little s32", "big s32", "little u64", "big u64", "little s64", "big s64", }
+ -- -- "little float", "big float", "little double", "big double" }
-- Reordered into likelyhood of use order: unsigned byte by big endian unsigned by little endian unsigned then unsigned in same order
local formtable = { " I1", ">I2", ">I4", ">I8", "<I2", "<I4", "<I8", " i1", ">i2", ">i4", ">i8", "<i2", "<i4", "<i8", }-- " <f", " >f", " <d", " >d" }
- local formname = { "u8", "big u16", "big u32", "big u64", "little u16", "little u32",
- "little u64", "s8", "big s16", "big s32", "big s64", "little s16", "little s32", "little s64", }
-
+ local formname = { "u8", "big u16", "big u32", "big u64", "little u16", "little u32",
+ "little u64", "s8", "big s16", "big s32", "big s64", "little s16", "little s32", "little s64", }
+
local width = 1
local bcd = 0
local align = 0
@@ -278,16 +278,16 @@ function cheatfind.startplugin()
local value = 0
local leftop = 1
local rightop = 1
- local leftop_text = "Slot 1"
- local rightop_text = "Slot 1"
- local value_text = ""
- local expression_text = "Slot 1 < Slot 1"
+ local leftop_text = "Slot 1"
+ local rightop_text = "Slot 1"
+ local value_text = ""
+ local expression_text = "Slot 1 < Slot 1"
local pausetable = { "Automatic", "Manual" }
local pausesel = 1
- local pokevaltable = { "Slot 1 Value", "Last Slot Value", "0x00", "0x01", "0x02", "0x03", "0x04", "0x05", "0x06", "0x07", "0x08", "0x09", "0x63 (Decimal 99)", "0x99 (BCD 99)",
+ local pokevaltable = { "Slot 1 Value", "Last Slot Value", "0x00", "0x01", "0x02", "0x03", "0x04", "0x05", "0x06", "0x07", "0x08", "0x09", "0x63 (Decimal 99)", "0x99 (BCD 99)",
"0xFF (Decimal 255)" , "0x3E7 (Decimal 999)", "0x999 (BCD 999)", "0x270F (Decimal 9999)", "0x9999 (BCD 9999)", "0xFFFF (Decimal 65535)" }
local pokevalsel = 1
-
+
local matches = {}
local matchsel = 0
local matchpg = 0
@@ -350,12 +350,12 @@ function cheatfind.startplugin()
end
emu.register_start(start)
-
+
local menu_is_showing = false
- local tabbed_out = false
-
+ local tabbed_out = false
+
local function menu_populate()
- if pausesel == 1 then
+ if pausesel == 1 then
emu.pause()
menu_is_showing = true
end
@@ -504,24 +504,24 @@ function cheatfind.startplugin()
local m = { _("Pause Mode"), pausetable[pausesel], 0 }
menu_lim(pausesel, 1, pausetable, m)
local function f(event)
- if (event == "left" or event == "right") then
+ if (event == "left" or event == "right") then
if pausesel == 1 then
pausesel = 2
menu_is_showing = false
manager:machine():popmessage(_("Manually pause & unpause the game when needed with the pause hotkey"))
- else
+ else
pausesel = 1
emu.pause()
- end
+ end
end
return true
end
- return m, f
- end
+ return m, f
+ end
+
+
-
-
menu[#menu + 1] = function()
local function f(event)
local ret = false
@@ -542,7 +542,7 @@ function cheatfind.startplugin()
leftop_text = "Slot 1"
rightop_text = "Slot 1"
value_text = ""
- expression_text = "Slot 1 < Slot 1"
+ expression_text = "Slot 1 < Slot 1"
matchsel = 0
return true
end
@@ -550,9 +550,9 @@ function cheatfind.startplugin()
local opsel = 1
return { _("Start new search"), "", 0 }, f
end
-
-
+
+
if #menu_blocks ~= 0 then
menu[#menu + 1] = function() return { "---", "", "off" }, nil end
menu[#menu + 1] = function()
@@ -562,7 +562,7 @@ function cheatfind.startplugin()
menu_blocks[num][#menu_blocks[num] + 1] = cheat.save(devtable[devcur].space, region.offset, region.size)
end
manager:machine():popmessage(string.format(_("Memory State saved to Slot %d"), #menu_blocks[1]))
-
+
if (leftop == #menu_blocks[1] - 1 and rightop == #menu_blocks[1] - 2 ) then
leftop = #menu_blocks[1]
rightop = #menu_blocks[1]-1
@@ -571,7 +571,7 @@ function cheatfind.startplugin()
rightop = #menu_blocks[1]
elseif (leftop == #menu_blocks[1] - 1 ) then
leftop = #menu_blocks[1]
- elseif (rightop == #menu_blocks[1] - 1) then
+ elseif (rightop == #menu_blocks[1] - 1) then
rightop = #menu_blocks[1]
end
leftop_text = string.format("Slot %d", leftop)
@@ -618,27 +618,27 @@ function cheatfind.startplugin()
return true
end
end
-
+
if optable[opsel] == "lt" then
if (value == 0 ) then
- expression_text = string.format("%s < %s", leftop_text, rightop_text)
- else
- expression_text = string.format("%s == %s - %d", leftop_text, rightop_text, value)
- end
+ expression_text = string.format("%s < %s", leftop_text, rightop_text)
+ else
+ expression_text = string.format("%s == %s - %d", leftop_text, rightop_text, value)
+ end
elseif optable[opsel] == "gt" then
if (value == 0 ) then
- expression_text = string.format("%s > %s", leftop_text, rightop_text)
- else
- expression_text = string.format("%s == %s + %d", leftop_text, rightop_text, value)
- end
+ expression_text = string.format("%s > %s", leftop_text, rightop_text)
+ else
+ expression_text = string.format("%s == %s + %d", leftop_text, rightop_text, value)
+ end
elseif optable[opsel] == "eq" then
expression_text = string.format("%s == %s", leftop_text, rightop_text)
elseif optable[opsel] == "ne" then
if (value == 0 ) then
- expression_text = string.format("%s != %s", leftop_text, rightop_text)
- else
- expression_text = string.format("%s == %s +/- %d", leftop_text, rightop_text, value)
- end
+ expression_text = string.format("%s != %s", leftop_text, rightop_text)
+ else
+ expression_text = string.format("%s == %s +/- %d", leftop_text, rightop_text, value)
+ end
elseif optable[opsel] == "beq" then
expression_text = string.format("%s BITWISE== %s", leftop_text, rightop_text)
elseif optable[opsel] == "bne" then
@@ -651,10 +651,10 @@ function cheatfind.startplugin()
expression_text = string.format("%s == %d", leftop_text, value)
elseif optable[opsel] == "nev" then
string.format("%s != %d", leftop_text, value)
- end
+ end
return { _("Perform Compare : ") .. expression_text, "", 0 }, f
end
- menu[#menu + 1] = function() return { "---", "", "off" }, nil end
+ menu[#menu + 1] = function() return { "---", "", "off" }, nil end
menu[#menu + 1] = function()
local m = { _(leftop), "", 0 }
menu_lim(leftop, 1, #menu_blocks[1], m)
@@ -712,7 +712,7 @@ function cheatfind.startplugin()
m = { _("Value"), value, "" }
else
m = { _("Difference"), value, "" }
- end
+ end
local max = 100 -- max value?
menu_lim(value, 0, max, m)
if value == 0 and optable[opsel]:sub(3, 3) ~= "v" then
@@ -726,7 +726,7 @@ function cheatfind.startplugin()
menu_lim(width, 1, #formtable, m)
return m, function(event) local r width, r = incdec(event, width, 1, #formtable) return r end
end
-
+
menu[#menu + 1] = function()
local m = { _("Test/Write Poke Value"), pokevaltable[pokevalsel], 0 }
menu_lim(pokevalsel, 1, #pokevaltable, m)
@@ -741,19 +741,19 @@ function cheatfind.startplugin()
elseif pokevalsel == 3 then
manager:machine():popmessage(_("Use this if you want to poke 0x00"))
elseif pokevalsel == 4 then
- manager:machine():popmessage(_("Use this if you want to poke 0x01"))
+ manager:machine():popmessage(_("Use this if you want to poke 0x01"))
elseif pokevalsel == 5 then
manager:machine():popmessage(_("Use this if you want to poke 0x02"))
elseif pokevalsel == 6 then
- manager:machine():popmessage(_("Use this if you want to poke 0x03"))
+ manager:machine():popmessage(_("Use this if you want to poke 0x03"))
elseif pokevalsel == 7 then
manager:machine():popmessage(_("Use this if you want to poke 0x04"))
elseif pokevalsel == 8 then
- manager:machine():popmessage(_("Use this if you want to poke 0x05"))
+ manager:machine():popmessage(_("Use this if you want to poke 0x05"))
elseif pokevalsel == 9 then
manager:machine():popmessage(_("Use this if you want to poke 0x06"))
elseif pokevalsel == 10 then
- manager:machine():popmessage(_("Use this if you want to poke 0x07"))
+ manager:machine():popmessage(_("Use this if you want to poke 0x07"))
elseif pokevalsel == 11 then
manager:machine():popmessage(_("Use this if you want to poke 0x08"))
elseif pokevalsel == 12 then
@@ -763,7 +763,7 @@ function cheatfind.startplugin()
elseif pokevalsel == 14 then
manager:machine():popmessage(_("Use this if you want to poke 0x99 (BCD 99)"))
elseif pokevalsel == 15 then
- manager:machine():popmessage(_("Use this if you want to poke 0xFF (Decimal 255)"))
+ manager:machine():popmessage(_("Use this if you want to poke 0xFF (Decimal 255)"))
elseif pokevalsel == 16 then
manager:machine():popmessage(_("Use this if you want to poke 0x3E7 (Decimal 999)"))
elseif pokevalsel == 17 then
@@ -773,15 +773,15 @@ function cheatfind.startplugin()
elseif pokevalsel == 19 then
manager:machine():popmessage(_("Use this if you want to poke 0x9999 (BCD 9999)"))
elseif pokevalsel == 20 then
- manager:machine():popmessage(_("Use this if you want to poke 0xFFFF (Decimal 65535)"))
+ manager:machine():popmessage(_("Use this if you want to poke 0xFFFF (Decimal 65535)"))
end
end
return r
end
return m, f
end
-
-
+
+
menu[#menu + 1] = function()
if optable[opsel] == "bne" or optable[opsel] == "beq" then
return nil
@@ -873,12 +873,12 @@ function cheatfind.startplugin()
local function match_exec(match)
local dev = devtable[devcur]
-
+
local wid = formtable[width]:sub(3, 3)
local widchar
local pokevalue
local form
-
+
if pokevalsel == 1 then
pokevalue = match.oldval
elseif pokevalsel == 2 then
@@ -914,25 +914,25 @@ function cheatfind.startplugin()
elseif pokevalsel == 17 and wid == "1" then
pokevalue = 153
elseif pokevalsel == 18 and wid == "1" then
- pokevalue = 99
+ pokevalue = 99
elseif pokevalsel == 19 and wid == "1" then
- pokevalue = 153
+ pokevalue = 153
elseif pokevalsel == 20 and wid == "1" then
- pokevalue = 255
+ pokevalue = 255
elseif pokevalsel == 16 then
- pokevalue = 999
+ pokevalue = 999
elseif pokevalsel == 17 then
- pokevalue = 2457
+ pokevalue = 2457
elseif pokevalsel == 18 then
- pokevalue = 9999
+ pokevalue = 9999
elseif pokevalsel == 19 then
- pokevalue = 39321
+ pokevalue = 39321
elseif pokevalsel == 20 then
- pokevalue = 65535
+ pokevalue = 65535
end
-
+
local cheat = { desc = string.format(_("Test Cheat %08X:%02X"), match.addr, pokevalue), script = {} }
-
+
if wid == "2" then
wid = "u16"
form = "%08x %04x"
@@ -958,7 +958,7 @@ function cheatfind.startplugin()
form = "%08x %02x"
widchar = "b"
end
-
+
if getmetatable(dev.space).__name:match("device_t") then
cheat.ram = { ram = dev.tag }
cheat.script.run = "ram:write(" .. match.addr .. "," .. pokevalue .. ")"
@@ -1001,7 +1001,7 @@ function cheatfind.startplugin()
cheat_save.json = json.stringify({[1] = cheat}, {indent = true})
cheat_save.xml = string.format("<mamecheat version=\"1\">\n <cheat desc=\"%%s\">\n <script state=\"run\">\n <action>%s.pp%s@%X=%X</action>\n </script>\n </cheat>\n</mamecheat>", dev.tag:sub(2), widchar, match.addr, match.newval)
cheat_save.simple = string.format("%s,%s,%X,%s,%X,%%s\n", setname, dev.tag, match.addr, widchar, pokevalue)
- cheat_save.dat = string.format(":%s:40000000:%X:%08X:FFFFFFFF:%%s\n", setname, match.addr, pokevalue)
+ cheat_save.dat = string.format(":%s:40000000:%X:%08X:FFFFFFFF:%%s\n", setname, match.addr, pokevalue)
manager:machine():popmessage(string.format(_("Default name is %s"), cheat_save.name))
return true
else
@@ -1026,7 +1026,7 @@ function cheatfind.startplugin()
match.mode = 1
end
local modes = { _("Test"), _("Write"), _("Watch") }
- local m = { string.format("%08x" .. bitwidth .. bitwidth, match.addr, match.oldval,
+ local m = { string.format("%08x" .. bitwidth .. bitwidth, match.addr, match.oldval,
match.newval), modes[match.mode], 0 }
menu_lim(match.mode, 1, #modes, m)
local function f(event)
@@ -1081,12 +1081,12 @@ function cheatfind.startplugin()
local height = mame_manager:ui():get_line_height()
for num, watch in ipairs(watches) do
screen:draw_text("left", num * height, string.format(watch.format, watch.addr, watch.func()))
- end
+ end
if tabbed_out and manager:ui():is_menu_active() then
emu.pause()
menu_is_showing = true
tabbed_out = false
- end
+ end
end)
emu.register_periodic(function ()
if menu_is_showing and not manager:ui():is_menu_active() then
@@ -1094,7 +1094,7 @@ function cheatfind.startplugin()
menu_is_showing = false
tabbed_out = true
end
- end)
+ end)
end
return exports
diff --git a/src/devices/bus/acorn/bus.cpp b/src/devices/bus/acorn/bus.cpp
index ed759be82af..2ecb509c30f 100644
--- a/src/devices/bus/acorn/bus.cpp
+++ b/src/devices/bus/acorn/bus.cpp
@@ -80,7 +80,7 @@ DEFINE_DEVICE_TYPE(ACORN_BUS, acorn_bus_device, "acorn_bus", "Acorn Bus")
acorn_bus_device::acorn_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, ACORN_BUS, tag, owner, clock)
- , m_maincpu(*this, finder_base::DUMMY_TAG)
+ , m_space(*this, finder_base::DUMMY_TAG, -1)
, m_out_irq_cb(*this)
, m_out_nmi_cb(*this)
{
diff --git a/src/devices/bus/acorn/bus.h b/src/devices/bus/acorn/bus.h
index 9ebcafdad73..149da10d447 100644
--- a/src/devices/bus/acorn/bus.h
+++ b/src/devices/bus/acorn/bus.h
@@ -64,11 +64,11 @@ public:
acorn_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// inline configuration
- template <typename T> void set_cputag(T &&tag) { m_maincpu.set_tag(std::forward<T>(tag)); }
+ template <typename T> void set_space(T &&tag, int spacenum) { m_space.set_tag(std::forward<T>(tag), spacenum); }
auto out_irq_callback() { return m_out_irq_cb.bind(); }
auto out_nmi_callback() { return m_out_nmi_cb.bind(); }
- address_space &memspace() const { return m_maincpu->space(AS_PROGRAM); }
+ address_space &memspace() const { return *m_space; }
DECLARE_WRITE_LINE_MEMBER(irq_w);
DECLARE_WRITE_LINE_MEMBER(nmi_w);
@@ -81,7 +81,7 @@ protected:
virtual void device_reset() override;
// internal state
- required_device<cpu_device> m_maincpu;
+ required_address_space m_space;
devcb_write_line m_out_irq_cb;
devcb_write_line m_out_nmi_cb;
diff --git a/src/devices/bus/amiga/zorro/buddha.cpp b/src/devices/bus/amiga/zorro/buddha.cpp
index 65c5be6a383..376e2824660 100644
--- a/src/devices/bus/amiga/zorro/buddha.cpp
+++ b/src/devices/bus/amiga/zorro/buddha.cpp
@@ -231,8 +231,8 @@ READ16_MEMBER( buddha_device::ide_0_interrupt_r )
data = m_ide_0_interrupt << 15;
-// if (VERBOSE)
-// logerror("ide_0_interrupt_r %04x [mask = %04x]\n", data, mem_mask);
+// if (VERBOSE)
+// logerror("ide_0_interrupt_r %04x [mask = %04x]\n", data, mem_mask);
return data;
}
@@ -243,8 +243,8 @@ READ16_MEMBER( buddha_device::ide_1_interrupt_r )
data = m_ide_1_interrupt << 15;
-// if (VERBOSE)
-// logerror("ide_1_interrupt_r %04x [mask = %04x]\n", data, mem_mask);
+// if (VERBOSE)
+// logerror("ide_1_interrupt_r %04x [mask = %04x]\n", data, mem_mask);
return data;
}
diff --git a/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp b/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp
index ae0557dc580..41e9bc0e8cb 100644
--- a/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp
+++ b/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp
@@ -92,18 +92,18 @@ void bbc_1mhzbus_slot_device::device_reset()
// read
//-------------------------------------------------
-READ8_MEMBER(bbc_1mhzbus_slot_device::fred_r)
+uint8_t bbc_1mhzbus_slot_device::fred_r(offs_t offset)
{
if (m_card)
- return m_card->fred_r(space, offset);
+ return m_card->fred_r(offset);
else
return 0xff;
}
-READ8_MEMBER(bbc_1mhzbus_slot_device::jim_r)
+uint8_t bbc_1mhzbus_slot_device::jim_r(offs_t offset)
{
if (m_card)
- return m_card->jim_r(space, offset);
+ return m_card->jim_r(offset);
else
return 0xff;
}
@@ -112,16 +112,16 @@ READ8_MEMBER(bbc_1mhzbus_slot_device::jim_r)
// write
//-------------------------------------------------
-WRITE8_MEMBER(bbc_1mhzbus_slot_device::fred_w)
+void bbc_1mhzbus_slot_device::fred_w(offs_t offset, uint8_t data)
{
if (m_card)
- m_card->fred_w(space, offset, data);
+ m_card->fred_w(offset, data);
}
-WRITE8_MEMBER(bbc_1mhzbus_slot_device::jim_w)
+void bbc_1mhzbus_slot_device::jim_w(offs_t offset, uint8_t data)
{
if (m_card)
- m_card->jim_w(space, offset, data);
+ m_card->jim_w(offset, data);
}
//-------------------------------------------------
diff --git a/src/devices/bus/bbc/1mhzbus/1mhzbus.h b/src/devices/bus/bbc/1mhzbus/1mhzbus.h
index ad435876bf0..80e48425973 100644
--- a/src/devices/bus/bbc/1mhzbus/1mhzbus.h
+++ b/src/devices/bus/bbc/1mhzbus/1mhzbus.h
@@ -107,10 +107,10 @@ public:
auto irq_handler() { return m_irq_handler.bind(); }
auto nmi_handler() { return m_nmi_handler.bind(); }
- virtual DECLARE_READ8_MEMBER(fred_r);
- virtual DECLARE_WRITE8_MEMBER(fred_w);
- virtual DECLARE_READ8_MEMBER(jim_r);
- virtual DECLARE_WRITE8_MEMBER(jim_w);
+ virtual uint8_t fred_r(offs_t offset);
+ virtual void fred_w(offs_t offset, uint8_t data);
+ virtual uint8_t jim_r(offs_t offset);
+ virtual void jim_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER( irq_w ) { m_irq_handler(state); }
DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_nmi_handler(state); }
@@ -134,10 +134,10 @@ private:
class device_bbc_1mhzbus_interface : public device_slot_card_interface
{
public:
- virtual DECLARE_READ8_MEMBER(fred_r) { return 0xff; }
- virtual DECLARE_WRITE8_MEMBER(fred_w) { }
- virtual DECLARE_READ8_MEMBER(jim_r) { return 0xff; }
- virtual DECLARE_WRITE8_MEMBER(jim_w) { }
+ virtual uint8_t fred_r(offs_t offset) { return 0xff; }
+ virtual void fred_w(offs_t offset, uint8_t data) { }
+ virtual uint8_t jim_r(offs_t offset) { return 0xff; }
+ virtual void jim_w(offs_t offset, uint8_t data) { }
protected:
device_bbc_1mhzbus_interface(const machine_config &mconfig, device_t &device);
diff --git a/src/devices/bus/bbc/1mhzbus/beebsid.cpp b/src/devices/bus/bbc/1mhzbus/beebsid.cpp
index fe1fa7a876a..d50449ede99 100644
--- a/src/devices/bus/bbc/1mhzbus/beebsid.cpp
+++ b/src/devices/bus/bbc/1mhzbus/beebsid.cpp
@@ -65,7 +65,7 @@ void bbc_beebsid_device::device_start()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(bbc_beebsid_device::fred_r)
+uint8_t bbc_beebsid_device::fred_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -74,31 +74,31 @@ READ8_MEMBER(bbc_beebsid_device::fred_r)
data = m_sid->read(offset);
}
- data &= m_1mhzbus->fred_r(space, offset);
+ data &= m_1mhzbus->fred_r(offset);
return data;
}
-WRITE8_MEMBER(bbc_beebsid_device::fred_w)
+void bbc_beebsid_device::fred_w(offs_t offset, uint8_t data)
{
if (offset >= 0x20 && offset < 0x40)
{
m_sid->write(offset, data);
}
- m_1mhzbus->fred_w(space, offset, data);
+ m_1mhzbus->fred_w(offset, data);
}
-READ8_MEMBER(bbc_beebsid_device::jim_r)
+uint8_t bbc_beebsid_device::jim_r(offs_t offset)
{
uint8_t data = 0xff;
- data &= m_1mhzbus->jim_r(space, offset);
+ data &= m_1mhzbus->jim_r(offset);
return data;
}
-WRITE8_MEMBER(bbc_beebsid_device::jim_w)
+void bbc_beebsid_device::jim_w(offs_t offset, uint8_t data)
{
- m_1mhzbus->jim_w(space, offset, data);
+ m_1mhzbus->jim_w(offset, data);
}
diff --git a/src/devices/bus/bbc/1mhzbus/beebsid.h b/src/devices/bus/bbc/1mhzbus/beebsid.h
index d78d5486c10..107e875abde 100644
--- a/src/devices/bus/bbc/1mhzbus/beebsid.h
+++ b/src/devices/bus/bbc/1mhzbus/beebsid.h
@@ -34,10 +34,10 @@ protected:
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
- virtual DECLARE_READ8_MEMBER(fred_r) override;
- virtual DECLARE_WRITE8_MEMBER(fred_w) override;
- virtual DECLARE_READ8_MEMBER(jim_r) override;
- virtual DECLARE_WRITE8_MEMBER(jim_w) override;
+ virtual uint8_t fred_r(offs_t offset) override;
+ virtual void fred_w(offs_t offset, uint8_t data) override;
+ virtual uint8_t jim_r(offs_t offset) override;
+ virtual void jim_w(offs_t offset, uint8_t data) override;
private:
required_device<bbc_1mhzbus_slot_device> m_1mhzbus;
diff --git a/src/devices/bus/bbc/1mhzbus/cfa3000opt.cpp b/src/devices/bus/bbc/1mhzbus/cfa3000opt.cpp
index 0946d9cdf82..e5ac755e006 100644
--- a/src/devices/bus/bbc/1mhzbus/cfa3000opt.cpp
+++ b/src/devices/bus/bbc/1mhzbus/cfa3000opt.cpp
@@ -98,7 +98,7 @@ void cfa3000_opt_device::device_start()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(cfa3000_opt_device::fred_r)
+uint8_t cfa3000_opt_device::fred_r(offs_t offset)
{
uint8_t data = 0xff;
diff --git a/src/devices/bus/bbc/1mhzbus/cfa3000opt.h b/src/devices/bus/bbc/1mhzbus/cfa3000opt.h
index 5a4e413754b..64913e95604 100644
--- a/src/devices/bus/bbc/1mhzbus/cfa3000opt.h
+++ b/src/devices/bus/bbc/1mhzbus/cfa3000opt.h
@@ -35,7 +35,7 @@ protected:
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
- virtual DECLARE_READ8_MEMBER(fred_r) override;
+ virtual uint8_t fred_r(offs_t offset) override;
private:
required_ioport m_opt;
diff --git a/src/devices/bus/bbc/1mhzbus/emrmidi.cpp b/src/devices/bus/bbc/1mhzbus/emrmidi.cpp
index a0e4b07a04d..6cfbacf23da 100644
--- a/src/devices/bus/bbc/1mhzbus/emrmidi.cpp
+++ b/src/devices/bus/bbc/1mhzbus/emrmidi.cpp
@@ -81,7 +81,7 @@ void bbc_emrmidi_device::device_start()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(bbc_emrmidi_device::fred_r)
+uint8_t bbc_emrmidi_device::fred_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -93,7 +93,7 @@ READ8_MEMBER(bbc_emrmidi_device::fred_r)
return data;
}
-WRITE8_MEMBER(bbc_emrmidi_device::fred_w)
+void bbc_emrmidi_device::fred_w(offs_t offset, uint8_t data)
{
if (offset >= 0xf0 && offset < 0xf2)
{
diff --git a/src/devices/bus/bbc/1mhzbus/emrmidi.h b/src/devices/bus/bbc/1mhzbus/emrmidi.h
index bbc41992948..341e487ce24 100644
--- a/src/devices/bus/bbc/1mhzbus/emrmidi.h
+++ b/src/devices/bus/bbc/1mhzbus/emrmidi.h
@@ -36,8 +36,8 @@ protected:
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
- virtual DECLARE_READ8_MEMBER(fred_r) override;
- virtual DECLARE_WRITE8_MEMBER(fred_w) override;
+ virtual uint8_t fred_r(offs_t offset) override;
+ virtual void fred_w(offs_t offset, uint8_t data) override;
private:
DECLARE_WRITE_LINE_MEMBER(write_acia_clock);
diff --git a/src/devices/bus/bbc/1mhzbus/ieee488.cpp b/src/devices/bus/bbc/1mhzbus/ieee488.cpp
index 3c280c06ad7..3aae6fe2f54 100644
--- a/src/devices/bus/bbc/1mhzbus/ieee488.cpp
+++ b/src/devices/bus/bbc/1mhzbus/ieee488.cpp
@@ -197,7 +197,7 @@ void bbc_b488_device::device_start()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(bbc_ieee488_device::fred_r)
+uint8_t bbc_ieee488_device::fred_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -206,37 +206,37 @@ READ8_MEMBER(bbc_ieee488_device::fred_r)
data = m_tms9914->read(offset & 0x07);
}
- data &= m_1mhzbus->fred_r(space, offset);
+ data &= m_1mhzbus->fred_r(offset);
return data;
}
-WRITE8_MEMBER(bbc_ieee488_device::fred_w)
+void bbc_ieee488_device::fred_w(offs_t offset, uint8_t data)
{
if (offset >= 0x20 && offset < 0x28)
{
m_tms9914->write(offset & 0x07, data);
}
- m_1mhzbus->fred_w(space, offset, data);
+ m_1mhzbus->fred_w(offset, data);
}
-READ8_MEMBER(bbc_ieee488_device::jim_r)
+uint8_t bbc_ieee488_device::jim_r(offs_t offset)
{
uint8_t data = 0xff;
- data &= m_1mhzbus->jim_r(space, offset);
+ data &= m_1mhzbus->jim_r(offset);
return data;
}
-WRITE8_MEMBER(bbc_ieee488_device::jim_w)
+void bbc_ieee488_device::jim_w(offs_t offset, uint8_t data)
{
- m_1mhzbus->jim_w(space, offset, data);
+ m_1mhzbus->jim_w(offset, data);
}
-READ8_MEMBER(bbc_b488_device::fred_r)
+uint8_t bbc_b488_device::fred_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -248,7 +248,7 @@ READ8_MEMBER(bbc_b488_device::fred_r)
return data;
}
-WRITE8_MEMBER(bbc_b488_device::fred_w)
+void bbc_b488_device::fred_w(offs_t offset, uint8_t data)
{
if (offset >= 0x20 && offset < 0x28)
{
@@ -257,7 +257,7 @@ WRITE8_MEMBER(bbc_b488_device::fred_w)
}
-//READ8_MEMBER(bbc_procyon_device::fred_r)
+//uint8_t bbc_procyon_device::fred_r(offs_t offset)
//{
//uint8_t data = 0xff;
@@ -269,7 +269,7 @@ WRITE8_MEMBER(bbc_b488_device::fred_w)
//return data;
//}
-//WRITE8_MEMBER(bbc_procyon_device::fred_w)
+//void bbc_procyon_device::fred_w(offs_t offset, uint8_t data)
//{
//if (offset >= 0x20 && offset < 0x28)
//{
diff --git a/src/devices/bus/bbc/1mhzbus/ieee488.h b/src/devices/bus/bbc/1mhzbus/ieee488.h
index 05a9e60c928..9b810b4bf8d 100644
--- a/src/devices/bus/bbc/1mhzbus/ieee488.h
+++ b/src/devices/bus/bbc/1mhzbus/ieee488.h
@@ -42,10 +42,10 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
- virtual DECLARE_READ8_MEMBER(fred_r) override;
- virtual DECLARE_WRITE8_MEMBER(fred_w) override;
- virtual DECLARE_READ8_MEMBER(jim_r) override;
- virtual DECLARE_WRITE8_MEMBER(jim_w) override;
+ virtual uint8_t fred_r(offs_t offset) override;
+ virtual void fred_w(offs_t offset, uint8_t data) override;
+ virtual uint8_t jim_r(offs_t offset) override;
+ virtual void jim_w(offs_t offset, uint8_t data) override;
private:
required_device<ieee488_device> m_ieee;
@@ -69,8 +69,8 @@ protected:
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
- virtual DECLARE_READ8_MEMBER(fred_r) override;
- virtual DECLARE_WRITE8_MEMBER(fred_w) override;
+ virtual uint8_t fred_r(offs_t offset) override;
+ virtual void fred_w(offs_t offset, uint8_t data) override;
private:
required_device<ieee488_device> m_ieee;
@@ -94,8 +94,8 @@ private:
// virtual void device_add_mconfig(machine_config &config) override;
// virtual const tiny_rom_entry *device_rom_region() const override;
//
-// virtual DECLARE_READ8_MEMBER(fred_r) override;
-// virtual DECLARE_WRITE8_MEMBER(fred_w) override;
+// virtual uint8_t fred_r(offs_t offset) override;
+// virtual void fred_w(offs_t offset, uint8_t data) override;
//
//private:
// required_device<ieee488_device> m_ieee;
diff --git a/src/devices/bus/bbc/1mhzbus/m2000.cpp b/src/devices/bus/bbc/1mhzbus/m2000.cpp
index c842673486f..8203cada22e 100644
--- a/src/devices/bus/bbc/1mhzbus/m2000.cpp
+++ b/src/devices/bus/bbc/1mhzbus/m2000.cpp
@@ -91,7 +91,7 @@ void bbc_m2000_device::device_start()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(bbc_m2000_device::fred_r)
+uint8_t bbc_m2000_device::fred_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -113,12 +113,12 @@ READ8_MEMBER(bbc_m2000_device::fred_r)
}
}
- data &= m_1mhzbus->fred_r(space, offset);
+ data &= m_1mhzbus->fred_r(offset);
return data;
}
-WRITE8_MEMBER(bbc_m2000_device::fred_w)
+void bbc_m2000_device::fred_w(offs_t offset, uint8_t data)
{
if (offset >= 0x08 && offset < 0x10)
{
@@ -138,21 +138,21 @@ WRITE8_MEMBER(bbc_m2000_device::fred_w)
}
}
- m_1mhzbus->fred_w(space, offset, data);
+ m_1mhzbus->fred_w(offset, data);
}
-READ8_MEMBER(bbc_m2000_device::jim_r)
+uint8_t bbc_m2000_device::jim_r(offs_t offset)
{
uint8_t data = 0xff;
- data &= m_1mhzbus->jim_r(space, offset);
+ data &= m_1mhzbus->jim_r(offset);
return data;
}
-WRITE8_MEMBER(bbc_m2000_device::jim_w)
+void bbc_m2000_device::jim_w(offs_t offset, uint8_t data)
{
- m_1mhzbus->jim_w(space, offset, data);
+ m_1mhzbus->jim_w(offset, data);
}
WRITE_LINE_MEMBER(bbc_m2000_device::write_acia_clock)
diff --git a/src/devices/bus/bbc/1mhzbus/m2000.h b/src/devices/bus/bbc/1mhzbus/m2000.h
index f476c92dac5..eeee1034a4e 100644
--- a/src/devices/bus/bbc/1mhzbus/m2000.h
+++ b/src/devices/bus/bbc/1mhzbus/m2000.h
@@ -38,10 +38,10 @@ protected:
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
- virtual DECLARE_READ8_MEMBER(fred_r) override;
- virtual DECLARE_WRITE8_MEMBER(fred_w) override;
- virtual DECLARE_READ8_MEMBER(jim_r) override;
- virtual DECLARE_WRITE8_MEMBER(jim_w) override;
+ virtual uint8_t fred_r(offs_t offset) override;
+ virtual void fred_w(offs_t offset, uint8_t data) override;
+ virtual uint8_t jim_r(offs_t offset) override;
+ virtual void jim_w(offs_t offset, uint8_t data) override;
private:
DECLARE_WRITE_LINE_MEMBER(write_acia_clock);
diff --git a/src/devices/bus/bbc/1mhzbus/opus3.cpp b/src/devices/bus/bbc/1mhzbus/opus3.cpp
index 65a8a3134ec..77f21ac199a 100644
--- a/src/devices/bus/bbc/1mhzbus/opus3.cpp
+++ b/src/devices/bus/bbc/1mhzbus/opus3.cpp
@@ -159,7 +159,7 @@ void bbc_opusa_device::device_start()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(bbc_opus3_device::fred_r)
+uint8_t bbc_opus3_device::fred_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -175,7 +175,7 @@ READ8_MEMBER(bbc_opus3_device::fred_r)
return data;
}
-WRITE8_MEMBER(bbc_opus3_device::fred_w)
+void bbc_opus3_device::fred_w(offs_t offset, uint8_t data)
{
floppy_image_device *floppy = nullptr;
@@ -219,7 +219,7 @@ WRITE_LINE_MEMBER(bbc_opus3_device::fdc_drq_w)
m_slot->nmi_w((m_fdc_drq && m_fdc_ie) ? ASSERT_LINE : CLEAR_LINE);
}
-READ8_MEMBER(bbc_opus3_device::jim_r)
+uint8_t bbc_opus3_device::jim_r(offs_t offset)
{
if ((m_ramdisk_page << 8) < m_ramdisk->size())
return m_ramdisk->read((m_ramdisk_page << 8) + offset);
@@ -227,7 +227,7 @@ READ8_MEMBER(bbc_opus3_device::jim_r)
return 0xff;
}
-WRITE8_MEMBER(bbc_opus3_device::jim_w)
+void bbc_opus3_device::jim_w(offs_t offset, uint8_t data)
{
if ((m_ramdisk_page << 8) < m_ramdisk->size())
m_ramdisk->write((m_ramdisk_page << 8) + offset, data);
diff --git a/src/devices/bus/bbc/1mhzbus/opus3.h b/src/devices/bus/bbc/1mhzbus/opus3.h
index ef7a2174f5c..7d287f1622c 100644
--- a/src/devices/bus/bbc/1mhzbus/opus3.h
+++ b/src/devices/bus/bbc/1mhzbus/opus3.h
@@ -39,10 +39,10 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
- virtual DECLARE_READ8_MEMBER(fred_r) override;
- virtual DECLARE_WRITE8_MEMBER(fred_w) override;
- virtual DECLARE_READ8_MEMBER(jim_r) override;
- virtual DECLARE_WRITE8_MEMBER(jim_w) override;
+ virtual uint8_t fred_r(offs_t offset) override;
+ virtual void fred_w(offs_t offset, uint8_t data) override;
+ virtual uint8_t jim_r(offs_t offset) override;
+ virtual void jim_w(offs_t offset, uint8_t data) override;
private:
DECLARE_FLOPPY_FORMATS(floppy_formats);
diff --git a/src/devices/bus/bbc/1mhzbus/sprite.cpp b/src/devices/bus/bbc/1mhzbus/sprite.cpp
index a32ee0bc828..ee7f5f292e7 100644
--- a/src/devices/bus/bbc/1mhzbus/sprite.cpp
+++ b/src/devices/bus/bbc/1mhzbus/sprite.cpp
@@ -69,7 +69,7 @@ void bbc_sprite_device::device_reset()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(bbc_sprite_device::fred_r)
+uint8_t bbc_sprite_device::fred_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -85,7 +85,7 @@ READ8_MEMBER(bbc_sprite_device::fred_r)
return data;
}
-WRITE8_MEMBER(bbc_sprite_device::fred_w)
+void bbc_sprite_device::fred_w(offs_t offset, uint8_t data)
{
switch (offset)
{
diff --git a/src/devices/bus/bbc/1mhzbus/sprite.h b/src/devices/bus/bbc/1mhzbus/sprite.h
index 11fb532ac9d..02b0cff5dc2 100644
--- a/src/devices/bus/bbc/1mhzbus/sprite.h
+++ b/src/devices/bus/bbc/1mhzbus/sprite.h
@@ -34,8 +34,8 @@ protected:
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
- virtual DECLARE_READ8_MEMBER(fred_r) override;
- virtual DECLARE_WRITE8_MEMBER(fred_w) override;
+ virtual uint8_t fred_r(offs_t offset) override;
+ virtual void fred_w(offs_t offset, uint8_t data) override;
private:
required_device<tms9129_device> m_vdp;
diff --git a/src/devices/bus/bbc/exp/mertec.cpp b/src/devices/bus/bbc/exp/mertec.cpp
index 3c8a110707a..f3e2187ecd5 100644
--- a/src/devices/bus/bbc/exp/mertec.cpp
+++ b/src/devices/bus/bbc/exp/mertec.cpp
@@ -116,22 +116,22 @@ void bbc_mertec_device::upd7002_eoc(int data)
READ8_MEMBER(bbc_mertec_device::fred_r)
{
- return m_2mhzbus->fred_r(space, offset);
+ return m_2mhzbus->fred_r(offset);
}
WRITE8_MEMBER(bbc_mertec_device::fred_w)
{
- m_2mhzbus->fred_w(space, offset, data);
+ m_2mhzbus->fred_w(offset, data);
}
READ8_MEMBER(bbc_mertec_device::jim_r)
{
- return m_2mhzbus->jim_r(space, offset);
+ return m_2mhzbus->jim_r(offset);
}
WRITE8_MEMBER(bbc_mertec_device::jim_w)
{
- m_2mhzbus->jim_w(space, offset, data);
+ m_2mhzbus->jim_w(offset, data);
}
READ8_MEMBER(bbc_mertec_device::sheila_r)
diff --git a/src/devices/bus/bbc/tube/tube.cpp b/src/devices/bus/bbc/tube/tube.cpp
index 2ac1bf5fb15..c0ff49915a6 100644
--- a/src/devices/bus/bbc/tube/tube.cpp
+++ b/src/devices/bus/bbc/tube/tube.cpp
@@ -92,10 +92,10 @@ void bbc_tube_slot_device::device_reset()
// host_r
//-------------------------------------------------
-READ8_MEMBER(bbc_tube_slot_device::host_r)
+uint8_t bbc_tube_slot_device::host_r(offs_t offset)
{
if (m_card)
- return m_card->host_r(space, offset);
+ return m_card->host_r(offset);
else
return 0xfe;
}
@@ -104,10 +104,10 @@ READ8_MEMBER(bbc_tube_slot_device::host_r)
// host_w
//-------------------------------------------------
-WRITE8_MEMBER(bbc_tube_slot_device::host_w)
+void bbc_tube_slot_device::host_w(offs_t offset, uint8_t data)
{
if (m_card)
- m_card->host_w(space, offset, data);
+ m_card->host_w(offset, data);
}
diff --git a/src/devices/bus/bbc/tube/tube.h b/src/devices/bus/bbc/tube/tube.h
index 954867f0b7f..e0d66907cb6 100644
--- a/src/devices/bus/bbc/tube/tube.h
+++ b/src/devices/bus/bbc/tube/tube.h
@@ -66,8 +66,8 @@ public:
// callbacks
auto irq_handler() { return m_irq_handler.bind(); }
- DECLARE_READ8_MEMBER( host_r );
- DECLARE_WRITE8_MEMBER( host_w );
+ uint8_t host_r(offs_t offset);
+ void host_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER( irq_w ) { m_irq_handler(state); }
@@ -90,8 +90,8 @@ class device_bbc_tube_interface : public device_slot_card_interface
{
public:
// reading and writing
- virtual DECLARE_READ8_MEMBER(host_r) { return 0xfe; }
- virtual DECLARE_WRITE8_MEMBER(host_w) { }
+ virtual uint8_t host_r(offs_t offset) { return 0xfe; }
+ virtual void host_w(offs_t offset, uint8_t data) { }
protected:
device_bbc_tube_interface(const machine_config &mconfig, device_t &device);
diff --git a/src/devices/bus/bbc/tube/tube_6502.cpp b/src/devices/bus/bbc/tube/tube_6502.cpp
index 8120ab16812..99852ca8d90 100644
--- a/src/devices/bus/bbc/tube/tube_6502.cpp
+++ b/src/devices/bus/bbc/tube/tube_6502.cpp
@@ -168,27 +168,27 @@ void bbc_tube_6502_device::device_reset()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(bbc_tube_6502_device::host_r)
+uint8_t bbc_tube_6502_device::host_r(offs_t offset)
{
- return m_ula->host_r(space, offset);
+ return m_ula->host_r(offset);
}
-WRITE8_MEMBER(bbc_tube_6502_device::host_w)
+void bbc_tube_6502_device::host_w(offs_t offset, uint8_t data)
{
- m_ula->host_w(space, offset, data);
+ m_ula->host_w(offset, data);
}
-READ8_MEMBER(bbc_tube_6502_device::tube_r)
+uint8_t bbc_tube_6502_device::tube_r(offs_t offset)
{
// Disable ROM on first access
if (!machine().side_effects_disabled())
m_bankdev->set_bank(1);
- return m_ula->parasite_r(space, offset);
+ return m_ula->parasite_r(offset);
}
-WRITE8_MEMBER(bbc_tube_6502_device::tube_w)
+void bbc_tube_6502_device::tube_w(offs_t offset, uint8_t data)
{
- m_ula->parasite_w(space, offset, data);
+ m_ula->parasite_w(offset, data);
}
diff --git a/src/devices/bus/bbc/tube/tube_6502.h b/src/devices/bus/bbc/tube/tube_6502.h
index 244eb9f2105..abb907ef3bd 100644
--- a/src/devices/bus/bbc/tube/tube_6502.h
+++ b/src/devices/bus/bbc/tube/tube_6502.h
@@ -52,11 +52,11 @@ protected:
void add_common_devices(machine_config &config);
- virtual DECLARE_READ8_MEMBER( host_r ) override;
- virtual DECLARE_WRITE8_MEMBER( host_w ) override;
+ virtual uint8_t host_r(offs_t offset) override;
+ virtual void host_w(offs_t offset, uint8_t data) override;
- virtual DECLARE_READ8_MEMBER( tube_r );
- virtual DECLARE_WRITE8_MEMBER( tube_w );
+ virtual uint8_t tube_r(offs_t offset);
+ virtual void tube_w(offs_t offset, uint8_t data);
required_device<cpu_device> m_maincpu;
required_device<address_map_bank_device> m_bankdev;
diff --git a/src/devices/bus/bbc/tube/tube_80186.cpp b/src/devices/bus/bbc/tube/tube_80186.cpp
index 4721d48e534..85331ab1b2a 100644
--- a/src/devices/bus/bbc/tube/tube_80186.cpp
+++ b/src/devices/bus/bbc/tube/tube_80186.cpp
@@ -126,12 +126,12 @@ void bbc_tube_80186_device::device_reset()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(bbc_tube_80186_device::host_r)
+uint8_t bbc_tube_80186_device::host_r(offs_t offset)
{
- return m_ula->host_r(space, offset);
+ return m_ula->host_r(offset);
}
-WRITE8_MEMBER(bbc_tube_80186_device::host_w)
+void bbc_tube_80186_device::host_w(offs_t offset, uint8_t data)
{
- m_ula->host_w(space, offset, data);
+ m_ula->host_w(offset, data);
}
diff --git a/src/devices/bus/bbc/tube/tube_80186.h b/src/devices/bus/bbc/tube/tube_80186.h
index 3081acbddac..42f757e75e4 100644
--- a/src/devices/bus/bbc/tube/tube_80186.h
+++ b/src/devices/bus/bbc/tube/tube_80186.h
@@ -40,8 +40,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
- virtual DECLARE_READ8_MEMBER( host_r ) override;
- virtual DECLARE_WRITE8_MEMBER( host_w ) override;
+ virtual uint8_t host_r(offs_t offset) override;
+ virtual void host_w(offs_t offset, uint8_t data) override;
private:
required_device<i80186_cpu_device> m_i80186;
diff --git a/src/devices/bus/bbc/tube/tube_80286.cpp b/src/devices/bus/bbc/tube/tube_80286.cpp
index f38761341f5..e8ff167d0fb 100644
--- a/src/devices/bus/bbc/tube/tube_80286.cpp
+++ b/src/devices/bus/bbc/tube/tube_80286.cpp
@@ -129,24 +129,25 @@ void bbc_tube_80286_device::device_reset()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(bbc_tube_80286_device::host_r)
+uint8_t bbc_tube_80286_device::host_r(offs_t offset)
{
- return m_ula->host_r(space, offset);
+ return m_ula->host_r(offset);
}
-WRITE8_MEMBER(bbc_tube_80286_device::host_w)
+void bbc_tube_80286_device::host_w(offs_t offset, uint8_t data)
{
- m_ula->host_w(space, offset, data);
+ m_ula->host_w(offset, data);
}
-READ8_MEMBER(bbc_tube_80286_device::disable_boot_rom)
+uint8_t bbc_tube_80286_device::disable_boot_rom()
{
- m_i80286->space(AS_PROGRAM).install_ram(0xc0000, 0xfffff, m_ram->pointer() + 0xc0000);
+ if (!machine().side_effects_disabled())
+ m_i80286->space(AS_PROGRAM).install_ram(0xc0000, 0xfffff, m_ram->pointer() + 0xc0000);
return 0xff;
}
-WRITE8_MEMBER(bbc_tube_80286_device::irq_latch_w)
+void bbc_tube_80286_device::irq_latch_w(uint8_t data)
{
m_irq_latch = data;
}
diff --git a/src/devices/bus/bbc/tube/tube_80286.h b/src/devices/bus/bbc/tube/tube_80286.h
index da2d807477b..a6e952d6bf2 100644
--- a/src/devices/bus/bbc/tube/tube_80286.h
+++ b/src/devices/bus/bbc/tube/tube_80286.h
@@ -38,8 +38,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
- virtual DECLARE_READ8_MEMBER( host_r ) override;
- virtual DECLARE_WRITE8_MEMBER( host_w ) override;
+ virtual uint8_t host_r(offs_t offset) override;
+ virtual void host_w(offs_t offset, uint8_t data) override;
private:
uint8_t m_irq_latch;
@@ -51,8 +51,8 @@ private:
required_device<ram_device> m_ram;
required_memory_region m_bootstrap;
- DECLARE_READ8_MEMBER( disable_boot_rom );
- DECLARE_WRITE8_MEMBER( irq_latch_w );
+ uint8_t disable_boot_rom();
+ void irq_latch_w(uint8_t data);
void tube_80286_io(address_map &map);
void tube_80286_mem(address_map &map);
diff --git a/src/devices/bus/bbc/tube/tube_arm.cpp b/src/devices/bus/bbc/tube/tube_arm.cpp
index 444e188a657..463a82713be 100644
--- a/src/devices/bus/bbc/tube/tube_arm.cpp
+++ b/src/devices/bus/bbc/tube/tube_arm.cpp
@@ -120,18 +120,18 @@ void bbc_tube_arm_device::device_reset()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(bbc_tube_arm_device::host_r)
+uint8_t bbc_tube_arm_device::host_r(offs_t offset)
{
- return m_ula->host_r(space, offset);
+ return m_ula->host_r(offset);
}
-WRITE8_MEMBER(bbc_tube_arm_device::host_w)
+void bbc_tube_arm_device::host_w(offs_t offset, uint8_t data)
{
- m_ula->host_w(space, offset, data);
+ m_ula->host_w(offset, data);
}
-READ8_MEMBER(bbc_tube_arm_device::ram_r)
+uint8_t bbc_tube_arm_device::ram_r(offs_t offset)
{
uint8_t data;
@@ -143,7 +143,7 @@ READ8_MEMBER(bbc_tube_arm_device::ram_r)
return data;
}
-WRITE8_MEMBER(bbc_tube_arm_device::ram_w)
+void bbc_tube_arm_device::ram_w(offs_t offset, uint8_t data)
{
/* clear ROM select on first write */
if (!machine().side_effects_disabled()) m_rom_select = false;
diff --git a/src/devices/bus/bbc/tube/tube_arm.h b/src/devices/bus/bbc/tube/tube_arm.h
index 7b58d2b40bd..8470fec84ef 100644
--- a/src/devices/bus/bbc/tube/tube_arm.h
+++ b/src/devices/bus/bbc/tube/tube_arm.h
@@ -38,8 +38,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
- virtual DECLARE_READ8_MEMBER( host_r ) override;
- virtual DECLARE_WRITE8_MEMBER( host_w ) override;
+ virtual uint8_t host_r(offs_t offset) override;
+ virtual void host_w(offs_t offset, uint8_t data) override;
private:
required_device<arm_cpu_device> m_arm;
@@ -49,8 +49,8 @@ private:
bool m_rom_select;
- DECLARE_READ8_MEMBER( ram_r );
- DECLARE_WRITE8_MEMBER( ram_w );
+ uint8_t ram_r(offs_t offset);
+ void ram_w(offs_t offset, uint8_t data);
void tube_arm_mem(address_map &map);
};
diff --git a/src/devices/bus/bbc/tube/tube_casper.cpp b/src/devices/bus/bbc/tube/tube_casper.cpp
index db84143f553..f6bb4bdce84 100644
--- a/src/devices/bus/bbc/tube/tube_casper.cpp
+++ b/src/devices/bus/bbc/tube/tube_casper.cpp
@@ -109,12 +109,12 @@ void bbc_tube_casper_device::device_start()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(bbc_tube_casper_device::host_r)
+uint8_t bbc_tube_casper_device::host_r(offs_t offset)
{
return m_via6522_0->read(offset & 0xf);
}
-WRITE8_MEMBER(bbc_tube_casper_device::host_w)
+void bbc_tube_casper_device::host_w(offs_t offset, uint8_t data)
{
m_via6522_0->write(offset & 0xf, data);
}
diff --git a/src/devices/bus/bbc/tube/tube_casper.h b/src/devices/bus/bbc/tube/tube_casper.h
index e464f4a8c68..965ac703355 100644
--- a/src/devices/bus/bbc/tube/tube_casper.h
+++ b/src/devices/bus/bbc/tube/tube_casper.h
@@ -36,8 +36,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
- virtual DECLARE_READ8_MEMBER( host_r ) override;
- virtual DECLARE_WRITE8_MEMBER( host_w ) override;
+ virtual uint8_t host_r(offs_t offset) override;
+ virtual void host_w(offs_t offset, uint8_t data) override;
private:
required_device<cpu_device> m_m68000;
diff --git a/src/devices/bus/bbc/tube/tube_rc6502.cpp b/src/devices/bus/bbc/tube/tube_rc6502.cpp
index 80061f8a5ca..c567be6f98a 100644
--- a/src/devices/bus/bbc/tube/tube_rc6502.cpp
+++ b/src/devices/bus/bbc/tube/tube_rc6502.cpp
@@ -233,23 +233,23 @@ void bbc_tube_rc6502_device::device_reset()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(bbc_tube_rc6502_device::host_r)
+uint8_t bbc_tube_rc6502_device::host_r(offs_t offset)
{
- return m_ula->host_r(space, offset);
+ return m_ula->host_r(offset);
}
-WRITE8_MEMBER(bbc_tube_rc6502_device::host_w)
+void bbc_tube_rc6502_device::host_w(offs_t offset, uint8_t data)
{
- m_ula->host_w(space, offset, data);
+ m_ula->host_w(offset, data);
}
-READ8_MEMBER(bbc_tube_rc6502_device::config_r)
+uint8_t bbc_tube_rc6502_device::config_r()
{
return m_banknum;
}
-WRITE8_MEMBER(bbc_tube_rc6502_device::register_w)
+void bbc_tube_rc6502_device::register_w(uint8_t data)
{
switch (data & 0x06)
{
diff --git a/src/devices/bus/bbc/tube/tube_rc6502.h b/src/devices/bus/bbc/tube/tube_rc6502.h
index 77542cf4a45..eadb460cc96 100644
--- a/src/devices/bus/bbc/tube/tube_rc6502.h
+++ b/src/devices/bus/bbc/tube/tube_rc6502.h
@@ -47,11 +47,11 @@ protected:
void add_common_devices(machine_config &config);
- virtual DECLARE_READ8_MEMBER( host_r ) override;
- virtual DECLARE_WRITE8_MEMBER( host_w ) override;
+ virtual uint8_t host_r(offs_t offset) override;
+ virtual void host_w(offs_t offset, uint8_t data) override;
- DECLARE_READ8_MEMBER(config_r);
- DECLARE_WRITE8_MEMBER(register_w);
+ uint8_t config_r();
+ void register_w(uint8_t data);
void tube_rc6502_bank(address_map &map);
diff --git a/src/devices/bus/bbc/tube/tube_z80.cpp b/src/devices/bus/bbc/tube/tube_z80.cpp
index cc6f87527bf..06e6931c7a3 100644
--- a/src/devices/bus/bbc/tube/tube_z80.cpp
+++ b/src/devices/bus/bbc/tube/tube_z80.cpp
@@ -134,18 +134,18 @@ void bbc_tube_z80_device::device_reset()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(bbc_tube_z80_device::host_r)
+uint8_t bbc_tube_z80_device::host_r(offs_t offset)
{
- return m_ula->host_r(space, offset);
+ return m_ula->host_r(offset);
}
-WRITE8_MEMBER(bbc_tube_z80_device::host_w)
+void bbc_tube_z80_device::host_w(offs_t offset, uint8_t data)
{
- m_ula->host_w(space, offset, data);
+ m_ula->host_w(offset, data);
}
-READ8_MEMBER(bbc_tube_z80_device::opcode_r)
+uint8_t bbc_tube_z80_device::opcode_r(offs_t offset)
{
if (!machine().side_effects_disabled())
{
@@ -158,7 +158,7 @@ READ8_MEMBER(bbc_tube_z80_device::opcode_r)
}
-READ8_MEMBER(bbc_tube_z80_device::mem_r)
+uint8_t bbc_tube_z80_device::mem_r(offs_t offset)
{
uint8_t data;
@@ -170,7 +170,7 @@ READ8_MEMBER(bbc_tube_z80_device::mem_r)
return data;
}
-WRITE8_MEMBER(bbc_tube_z80_device::mem_w)
+void bbc_tube_z80_device::mem_w(offs_t offset, uint8_t data)
{
m_ram->pointer()[offset] = data;
}
diff --git a/src/devices/bus/bbc/tube/tube_z80.h b/src/devices/bus/bbc/tube/tube_z80.h
index e35dfa02ef4..536e506d43d 100644
--- a/src/devices/bus/bbc/tube/tube_z80.h
+++ b/src/devices/bus/bbc/tube/tube_z80.h
@@ -40,8 +40,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
- virtual DECLARE_READ8_MEMBER( host_r ) override;
- virtual DECLARE_WRITE8_MEMBER( host_w ) override;
+ virtual uint8_t host_r(offs_t offset) override;
+ virtual void host_w(offs_t offset, uint8_t data) override;
private:
IRQ_CALLBACK_MEMBER( irq_callback );
@@ -54,9 +54,9 @@ private:
bool m_rom_enabled;
- DECLARE_READ8_MEMBER( mem_r );
- DECLARE_WRITE8_MEMBER( mem_w );
- DECLARE_READ8_MEMBER( opcode_r );
+ uint8_t mem_r(offs_t offset);
+ void mem_w(offs_t offset, uint8_t data);
+ uint8_t opcode_r(offs_t offset);
void tube_z80_fetch(address_map &map);
void tube_z80_io(address_map &map);
diff --git a/src/devices/bus/bbc/tube/tube_zep100.cpp b/src/devices/bus/bbc/tube/tube_zep100.cpp
index 6ec898bb705..f11f0af6415 100644
--- a/src/devices/bus/bbc/tube/tube_zep100.cpp
+++ b/src/devices/bus/bbc/tube/tube_zep100.cpp
@@ -146,12 +146,12 @@ void bbc_tube_zep100_device::device_reset()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(bbc_tube_zep100_device::host_r)
+uint8_t bbc_tube_zep100_device::host_r(offs_t offset)
{
return m_via->read(offset & 0x0f);
}
-WRITE8_MEMBER(bbc_tube_zep100_device::host_w)
+void bbc_tube_zep100_device::host_w(offs_t offset, uint8_t data)
{
if (offset & 0x10)
m_z80->reset();
@@ -160,7 +160,7 @@ WRITE8_MEMBER(bbc_tube_zep100_device::host_w)
}
-READ8_MEMBER(bbc_tube_zep100_device::mem_r)
+uint8_t bbc_tube_zep100_device::mem_r(offs_t offset)
{
uint8_t data;
@@ -172,13 +172,13 @@ READ8_MEMBER(bbc_tube_zep100_device::mem_r)
return data;
}
-WRITE8_MEMBER(bbc_tube_zep100_device::mem_w)
+void bbc_tube_zep100_device::mem_w(offs_t offset, uint8_t data)
{
m_ram->pointer()[offset] = data;
}
-READ8_MEMBER(bbc_tube_zep100_device::io_r)
+uint8_t bbc_tube_zep100_device::io_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -190,23 +190,23 @@ READ8_MEMBER(bbc_tube_zep100_device::io_r)
return data;
}
-WRITE8_MEMBER(bbc_tube_zep100_device::io_w)
+void bbc_tube_zep100_device::io_w(offs_t offset, uint8_t data)
{
m_ppi->write(offset & 0x03, data);
}
-WRITE8_MEMBER(bbc_tube_zep100_device::via_pb_w)
+void bbc_tube_zep100_device::via_pb_w(uint8_t data)
{
m_port_b = data;
}
-READ8_MEMBER(bbc_tube_zep100_device::ppi_pb_r)
+uint8_t bbc_tube_zep100_device::ppi_pb_r()
{
return m_port_b;
}
-WRITE8_MEMBER(bbc_tube_zep100_device::ppi_pc_w)
+void bbc_tube_zep100_device::ppi_pc_w(uint8_t data)
{
m_via->write_ca1(BIT(data, 7));
m_via->write_cb1(BIT(data, 1));
diff --git a/src/devices/bus/bbc/tube/tube_zep100.h b/src/devices/bus/bbc/tube/tube_zep100.h
index 24b07ea4269..b7f881fcfac 100644
--- a/src/devices/bus/bbc/tube/tube_zep100.h
+++ b/src/devices/bus/bbc/tube/tube_zep100.h
@@ -43,8 +43,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
- virtual DECLARE_READ8_MEMBER( host_r ) override;
- virtual DECLARE_WRITE8_MEMBER( host_w ) override;
+ virtual uint8_t host_r(offs_t offset) override;
+ virtual void host_w(offs_t offset, uint8_t data) override;
bool m_rom_enabled;
@@ -57,14 +57,14 @@ private:
uint8_t m_port_b;
- DECLARE_READ8_MEMBER( mem_r );
- DECLARE_WRITE8_MEMBER( mem_w );
- DECLARE_READ8_MEMBER( io_r );
- DECLARE_WRITE8_MEMBER( io_w );
+ uint8_t mem_r(offs_t offset);
+ void mem_w(offs_t offset, uint8_t data);
+ uint8_t io_r(offs_t offset);
+ void io_w(offs_t offset, uint8_t data);
- DECLARE_WRITE8_MEMBER( via_pb_w );
- DECLARE_READ8_MEMBER( ppi_pb_r );
- DECLARE_WRITE8_MEMBER( ppi_pc_w );
+ void via_pb_w(uint8_t data);
+ uint8_t ppi_pb_r();
+ void ppi_pc_w(uint8_t data);
void tube_zep100_io(address_map &map);
void tube_zep100_mem(address_map &map);
diff --git a/src/devices/bus/bw2/exp.cpp b/src/devices/bus/bw2/exp.cpp
index ae02f1f10fa..50f776b066e 100644
--- a/src/devices/bus/bw2/exp.cpp
+++ b/src/devices/bus/bw2/exp.cpp
@@ -95,11 +95,11 @@ void bw2_expansion_slot_device::device_reset()
// cd_r - cartridge data read
//-------------------------------------------------
-uint8_t bw2_expansion_slot_device::cd_r(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6)
+uint8_t bw2_expansion_slot_device::cd_r(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6)
{
if (m_cart != nullptr)
{
- data = m_cart->bw2_cd_r(space, offset, data, ram2, ram3, ram4, ram5, ram6);
+ data = m_cart->bw2_cd_r(offset, data, ram2, ram3, ram4, ram5, ram6);
}
return data;
@@ -110,11 +110,11 @@ uint8_t bw2_expansion_slot_device::cd_r(address_space &space, offs_t offset, uin
// cd_w - cartridge data write
//-------------------------------------------------
-void bw2_expansion_slot_device::cd_w(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6)
+void bw2_expansion_slot_device::cd_w(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6)
{
if (m_cart != nullptr)
{
- m_cart->bw2_cd_w(space, offset, data, ram2, ram3, ram4, ram5, ram6);
+ m_cart->bw2_cd_w(offset, data, ram2, ram3, ram4, ram5, ram6);
}
}
@@ -123,13 +123,13 @@ void bw2_expansion_slot_device::cd_w(address_space &space, offs_t offset, uint8_
// slot_r - slot read
//-------------------------------------------------
-READ8_MEMBER( bw2_expansion_slot_device::slot_r )
+uint8_t bw2_expansion_slot_device::slot_r(offs_t offset)
{
uint8_t data = 0xff;
if (m_cart != nullptr)
{
- data = m_cart->bw2_slot_r(space, offset);
+ data = m_cart->bw2_slot_r(offset);
}
return data;
@@ -140,11 +140,11 @@ READ8_MEMBER( bw2_expansion_slot_device::slot_r )
// slot_w - slot write
//-------------------------------------------------
-WRITE8_MEMBER( bw2_expansion_slot_device::slot_w )
+void bw2_expansion_slot_device::slot_w(offs_t offset, uint8_t data)
{
if (m_cart != nullptr)
{
- m_cart->bw2_slot_w(space, offset, data);
+ m_cart->bw2_slot_w(offset, data);
}
}
@@ -153,13 +153,13 @@ WRITE8_MEMBER( bw2_expansion_slot_device::slot_w )
// modsel_r - modsel read
//-------------------------------------------------
-READ8_MEMBER( bw2_expansion_slot_device::modsel_r )
+uint8_t bw2_expansion_slot_device::modsel_r(offs_t offset)
{
uint8_t data = 0xff;
if (m_cart != nullptr)
{
- data = m_cart->bw2_modsel_r(space, offset);
+ data = m_cart->bw2_modsel_r(offset);
}
return data;
@@ -170,11 +170,11 @@ READ8_MEMBER( bw2_expansion_slot_device::modsel_r )
// modsel_w - modsel write
//-------------------------------------------------
-WRITE8_MEMBER( bw2_expansion_slot_device::modsel_w )
+void bw2_expansion_slot_device::modsel_w(offs_t offset, uint8_t data)
{
if (m_cart != nullptr)
{
- m_cart->bw2_modsel_w(space, offset, data);
+ m_cart->bw2_modsel_w(offset, data);
}
}
diff --git a/src/devices/bus/bw2/exp.h b/src/devices/bus/bw2/exp.h
index 70c8bf55f50..d37e5c66879 100644
--- a/src/devices/bus/bw2/exp.h
+++ b/src/devices/bus/bw2/exp.h
@@ -76,14 +76,14 @@ public:
virtual ~bw2_expansion_slot_device();
// computer interface
- uint8_t cd_r(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6);
- void cd_w(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6);
+ uint8_t cd_r(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6);
+ void cd_w(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6);
- DECLARE_READ8_MEMBER( slot_r );
- DECLARE_WRITE8_MEMBER( slot_w );
+ uint8_t slot_r(offs_t offset);
+ void slot_w(offs_t offset, uint8_t data);
- DECLARE_READ8_MEMBER( modsel_r );
- DECLARE_WRITE8_MEMBER( modsel_w );
+ uint8_t modsel_r(offs_t offset);
+ void modsel_w(offs_t offset, uint8_t data);
protected:
// device-level overrides
@@ -103,14 +103,14 @@ public:
// construction/destruction
virtual ~device_bw2_expansion_slot_interface();
- virtual uint8_t bw2_cd_r(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) { return data; };
- virtual void bw2_cd_w(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) { };
+ virtual uint8_t bw2_cd_r(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) { return data; }
+ virtual void bw2_cd_w(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) { }
- virtual uint8_t bw2_slot_r(address_space &space, offs_t offset) { return 0xff; }
- virtual void bw2_slot_w(address_space &space, offs_t offset, uint8_t data) { }
+ virtual uint8_t bw2_slot_r(offs_t offset) { return 0xff; }
+ virtual void bw2_slot_w(offs_t offset, uint8_t data) { }
- virtual uint8_t bw2_modsel_r(address_space &space, offs_t offset) { return 0xff; }
- virtual void bw2_modsel_w(address_space &space, offs_t offset, uint8_t data) { }
+ virtual uint8_t bw2_modsel_r(offs_t offset) { return 0xff; }
+ virtual void bw2_modsel_w(offs_t offset, uint8_t data) { }
protected:
device_bw2_expansion_slot_interface(const machine_config &mconfig, device_t &device);
diff --git a/src/devices/bus/bw2/ramcard.cpp b/src/devices/bus/bw2/ramcard.cpp
index b59159cd5b1..48de6cffdec 100644
--- a/src/devices/bus/bw2/ramcard.cpp
+++ b/src/devices/bus/bw2/ramcard.cpp
@@ -88,7 +88,7 @@ void bw2_ramcard_device::device_reset()
// bw2_cd_r - cartridge data read
//-------------------------------------------------
-uint8_t bw2_ramcard_device::bw2_cd_r(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6)
+uint8_t bw2_ramcard_device::bw2_cd_r(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6)
{
if (!ram2)
{
@@ -107,7 +107,7 @@ uint8_t bw2_ramcard_device::bw2_cd_r(address_space &space, offs_t offset, uint8_
// bw2_cd_r - cartridge data write
//-------------------------------------------------
-void bw2_ramcard_device::bw2_cd_w(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6)
+void bw2_ramcard_device::bw2_cd_w(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6)
{
if (m_en && !ram5)
{
@@ -120,7 +120,7 @@ void bw2_ramcard_device::bw2_cd_w(address_space &space, offs_t offset, uint8_t d
// bw2_slot_w - slot write
//-------------------------------------------------
-void bw2_ramcard_device::bw2_slot_w(address_space &space, offs_t offset, uint8_t data)
+void bw2_ramcard_device::bw2_slot_w(offs_t offset, uint8_t data)
{
m_en = 1;
m_bank = data & 0x0f;
diff --git a/src/devices/bus/bw2/ramcard.h b/src/devices/bus/bw2/ramcard.h
index 9ac2b0433fa..029d9b91feb 100644
--- a/src/devices/bus/bw2/ramcard.h
+++ b/src/devices/bus/bw2/ramcard.h
@@ -37,9 +37,9 @@ protected:
virtual void device_reset() override;
// device_bw2_expansion_slot_interface overrides
- virtual uint8_t bw2_cd_r(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) override;
- virtual void bw2_cd_w(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) override;
- virtual void bw2_slot_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t bw2_cd_r(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) override;
+ virtual void bw2_cd_w(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) override;
+ virtual void bw2_slot_w(offs_t offset, uint8_t data) override;
private:
required_memory_region m_rom;
diff --git a/src/devices/bus/cgenie/expansion/expansion.cpp b/src/devices/bus/cgenie/expansion/expansion.cpp
index 366b1513aca..3a7665f7c2b 100644
--- a/src/devices/bus/cgenie/expansion/expansion.cpp
+++ b/src/devices/bus/cgenie/expansion/expansion.cpp
@@ -30,8 +30,8 @@ DEFINE_DEVICE_TYPE(CG_EXP_SLOT, cg_exp_slot_device, "cg_exp_slot", "Colour Genie
cg_exp_slot_device::cg_exp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, CG_EXP_SLOT, tag, owner, clock),
device_slot_interface(mconfig, *this),
- m_program(nullptr),
- m_io(nullptr),
+ m_program(*this, finder_base::DUMMY_TAG, -1),
+ m_io(*this, finder_base::DUMMY_TAG, -1),
m_cart(nullptr),
m_int_handler(*this),
m_nmi_handler(*this),
@@ -67,24 +67,6 @@ void cg_exp_slot_device::device_reset()
{
}
-//-------------------------------------------------
-// set_program_space - set address space we are attached to
-//-------------------------------------------------
-
-void cg_exp_slot_device::set_program_space(address_space *program)
-{
- m_program = program;
-}
-
-//-------------------------------------------------
-// set_io_space - set address space we are attached to
-//-------------------------------------------------
-
-void cg_exp_slot_device::set_io_space(address_space *io)
-{
- m_io = io;
-}
-
//**************************************************************************
// CARTRIDGE INTERFACE
diff --git a/src/devices/bus/cgenie/expansion/expansion.h b/src/devices/bus/cgenie/expansion/expansion.h
index 86c4d42d41f..3f61b275c19 100644
--- a/src/devices/bus/cgenie/expansion/expansion.h
+++ b/src/devices/bus/cgenie/expansion/expansion.h
@@ -64,8 +64,8 @@ public:
cg_exp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual ~cg_exp_slot_device();
- void set_program_space(address_space *program);
- void set_io_space(address_space *io);
+ template <typename T> void set_program_space(T &&tag, int spacenum) { m_program.set_tag(std::forward<T>(tag), spacenum); }
+ template <typename T> void set_io_space(T &&tag, int spacenum) { m_io.set_tag(std::forward<T>(tag), spacenum); }
// callbacks
auto int_handler() { return m_int_handler.bind(); }
@@ -77,8 +77,8 @@ public:
DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_nmi_handler(state); }
DECLARE_WRITE_LINE_MEMBER( reset_w ) { m_reset_handler(state); }
- address_space *m_program;
- address_space *m_io;
+ required_address_space m_program;
+ required_address_space m_io;
protected:
// device-level overrides
diff --git a/src/devices/bus/compis/graphics.h b/src/devices/bus/compis/graphics.h
index c5b414d1fab..0f3f2b104b1 100644
--- a/src/devices/bus/compis/graphics.h
+++ b/src/devices/bus/compis/graphics.h
@@ -24,16 +24,16 @@ class compis_graphics_slot_device;
class device_compis_graphics_card_interface : public device_slot_card_interface
{
public:
- virtual uint8_t mcs0_r(address_space &space, offs_t offset) { return 0xff; }
- virtual void mcs0_w(address_space &space, offs_t offset, uint8_t data) { }
- virtual uint8_t mcs1_r(address_space &space, offs_t offset) { return 0xff; }
- virtual void mcs1_w(address_space &space, offs_t offset, uint8_t data) { }
- virtual uint16_t pcs3_r(address_space &space, offs_t offset) { return 0xff; }
- virtual void pcs3_w(address_space &space, offs_t offset, uint16_t data) { }
- virtual uint8_t pcs6_6_r(address_space &space, offs_t offset) { return 0xff; }
- virtual void pcs6_6_w(address_space &space, offs_t offset, uint8_t data) { }
- virtual uint8_t dma_ack_r(address_space &space, offs_t offset) { return 0xff; }
- virtual void dma_ack_w(address_space &space, offs_t offset, uint8_t data) { }
+ virtual uint8_t mcs0_r(offs_t offset) { return 0xff; }
+ virtual void mcs0_w(offs_t offset, uint8_t data) { }
+ virtual uint8_t mcs1_r(offs_t offset) { return 0xff; }
+ virtual void mcs1_w(offs_t offset, uint8_t data) { }
+ virtual uint16_t pcs3_r(offs_t offset) { return 0xff; }
+ virtual void pcs3_w(offs_t offset, uint16_t data) { }
+ virtual uint8_t pcs6_6_r(offs_t offset) { return 0xff; }
+ virtual void pcs6_6_w(offs_t offset, uint8_t data) { }
+ virtual uint8_t dma_ack_r(offs_t offset) { return 0xff; }
+ virtual void dma_ack_w(offs_t offset, uint8_t data) { }
protected:
// construction/destruction
@@ -64,16 +64,16 @@ public:
auto drq() { return m_write_dma_request.bind(); }
// computer interface
- DECLARE_READ8_MEMBER( mcs0_r ) { return m_card ? m_card->mcs0_r(space, offset) : 0xff; }
- DECLARE_WRITE8_MEMBER( mcs0_w ) { if (m_card) m_card->mcs0_w(space, offset, data); }
- DECLARE_READ8_MEMBER( mcs1_r ) { return m_card ? m_card->mcs1_r(space, offset) : 0xff; }
- DECLARE_WRITE8_MEMBER( mcs1_w ) { if (m_card) m_card->mcs1_w(space, offset, data); }
- DECLARE_READ16_MEMBER( pcs3_r ) { return m_card ? m_card->pcs3_r(space, offset) : 0xff; }
- DECLARE_WRITE16_MEMBER( pcs3_w ) { if (m_card) m_card->pcs3_w(space, offset, data); }
- DECLARE_READ8_MEMBER( pcs6_6_r ) { return m_card ? m_card->pcs6_6_r(space, offset) : 0xff; }
- DECLARE_WRITE8_MEMBER( pcs6_6_w ) { if (m_card) m_card->pcs6_6_w(space, offset, data); }
- DECLARE_READ8_MEMBER( dma_ack_r ) { return m_card ? m_card->dma_ack_r(space, offset) : 0xff; }
- DECLARE_WRITE8_MEMBER( dma_ack_w ) { if (m_card) m_card->dma_ack_w(space, offset, data); }
+ uint8_t mcs0_r(offs_t offset) { return m_card ? m_card->mcs0_r(offset) : 0xff; }
+ void mcs0_w(offs_t offset, uint8_t data) { if (m_card) m_card->mcs0_w(offset, data); }
+ uint8_t mcs1_r(offs_t offset) { return m_card ? m_card->mcs1_r(offset) : 0xff; }
+ void mcs1_w(offs_t offset, uint8_t data) { if (m_card) m_card->mcs1_w(offset, data); }
+ uint8_t pcs3_r(offs_t offset) { return m_card ? m_card->pcs3_r(offset) : 0xff; }
+ void pcs3_w(offs_t offset, uint8_t data) { if (m_card) m_card->pcs3_w(offset, data); }
+ uint8_t pcs6_6_r(offs_t offset) { return m_card ? m_card->pcs6_6_r(offset) : 0xff; }
+ void pcs6_6_w(offs_t offset, uint8_t data) { if (m_card) m_card->pcs6_6_w(offset, data); }
+ uint8_t dma_ack_r(offs_t offset) { return m_card ? m_card->dma_ack_r(offset) : 0xff; }
+ void dma_ack_w(offs_t offset, uint8_t data) { if (m_card) m_card->dma_ack_w(offset, data); }
// card interface
DECLARE_WRITE_LINE_MEMBER( dma_request_w ) { m_write_dma_request(state); }
diff --git a/src/devices/bus/compis/hrg.cpp b/src/devices/bus/compis/hrg.cpp
index e9898709097..7aa8aa72f7e 100644
--- a/src/devices/bus/compis/hrg.cpp
+++ b/src/devices/bus/compis/hrg.cpp
@@ -165,12 +165,12 @@ void compis_hrg_device::device_reset()
// pcs6_6_r -
//-------------------------------------------------
-uint8_t compis_hrg_device::pcs6_6_r(address_space &space, offs_t offset)
+uint8_t compis_hrg_device::pcs6_6_r(offs_t offset)
{
uint8_t data = 0xff;
if (offset < 2)
- data = m_crtc->read(space, offset & 0x01);
+ data = m_crtc->read(offset & 0x01);
else
// monochrome only, hblank? vblank?
if(offset == 2)
@@ -202,10 +202,10 @@ uint8_t compis_hrg_device::pcs6_6_r(address_space &space, offs_t offset)
// pcs6_6_w -
//-------------------------------------------------
-void compis_hrg_device::pcs6_6_w(address_space &space, offs_t offset, uint8_t data)
+void compis_hrg_device::pcs6_6_w(offs_t offset, uint8_t data)
{
//logerror("%s PCS 6:6 write %04x : %02x\n", machine().describe_context(), offset, data);
// 0x336 is likely the color plane register
- if (offset < 2) m_crtc->write(space, offset & 0x01, data);
+ if (offset < 2) m_crtc->write(offset & 0x01, data);
}
diff --git a/src/devices/bus/compis/hrg.h b/src/devices/bus/compis/hrg.h
index c48830be10c..98ef784df14 100644
--- a/src/devices/bus/compis/hrg.h
+++ b/src/devices/bus/compis/hrg.h
@@ -41,8 +41,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// device_compis_graphics_card_interface overrides
- virtual uint8_t pcs6_6_r(address_space &space, offs_t offset) override;
- virtual void pcs6_6_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t pcs6_6_r(offs_t offset) override;
+ virtual void pcs6_6_w(offs_t offset, uint8_t data) override;
required_device<upd7220_device> m_crtc;
required_device<palette_device> m_palette;
diff --git a/src/devices/bus/dmv/dmvbus.cpp b/src/devices/bus/dmv/dmvbus.cpp
index de328f6df06..7ad4ae3a2bb 100644
--- a/src/devices/bus/dmv/dmvbus.cpp
+++ b/src/devices/bus/dmv/dmvbus.cpp
@@ -279,10 +279,10 @@ void dmvcart_slot_device::ram_write(uint8_t cas, offs_t offset, uint8_t data)
IO read
-------------------------------------------------*/
-void dmvcart_slot_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data)
+void dmvcart_slot_device::io_read(int ifsel, offs_t offset, uint8_t &data)
{
if (m_cart)
- m_cart->io_read(space, ifsel, offset, data);
+ m_cart->io_read(ifsel, offset, data);
}
@@ -290,10 +290,10 @@ void dmvcart_slot_device::io_read(address_space &space, int ifsel, offs_t offset
IO write
-------------------------------------------------*/
-void dmvcart_slot_device::io_write(address_space &space, int ifsel, offs_t offset, uint8_t data)
+void dmvcart_slot_device::io_write(int ifsel, offs_t offset, uint8_t data)
{
if (m_cart)
- m_cart->io_write(space, ifsel, offset, data);
+ m_cart->io_write(ifsel, offset, data);
}
/*-------------------------------------------------
diff --git a/src/devices/bus/dmv/dmvbus.h b/src/devices/bus/dmv/dmvbus.h
index 17acae097e7..22c81767151 100644
--- a/src/devices/bus/dmv/dmvbus.h
+++ b/src/devices/bus/dmv/dmvbus.h
@@ -25,8 +25,8 @@ public:
virtual bool read(offs_t offset, uint8_t &data) { return false; }
virtual bool write(offs_t offset, uint8_t data) { return false; }
- virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) { }
- virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) { }
+ virtual void io_read(int ifsel, offs_t offset, uint8_t &data) { }
+ virtual void io_write(int ifsel, offs_t offset, uint8_t data) { }
// slot 1
virtual void ram_read(uint8_t cas, offs_t offset, uint8_t &data) { }
@@ -87,8 +87,8 @@ public:
virtual bool write(offs_t offset, uint8_t data);
virtual void ram_read(uint8_t cas, offs_t offset, uint8_t &data);
virtual void ram_write(uint8_t cas, offs_t offset, uint8_t data);
- virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data);
- virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data);
+ virtual void io_read(int ifsel, offs_t offset, uint8_t &data);
+ virtual void io_write(int ifsel, offs_t offset, uint8_t data);
virtual void hold_w(int state);
virtual void switch16_w(int state);
virtual void timint_w(int state);
diff --git a/src/devices/bus/dmv/k210.cpp b/src/devices/bus/dmv/k210.cpp
index 1c3955bdf04..d73f2dfb9a9 100644
--- a/src/devices/bus/dmv/k210.cpp
+++ b/src/devices/bus/dmv/k210.cpp
@@ -99,13 +99,13 @@ void dmv_k210_device::device_add_mconfig(machine_config &config)
m_centronics->set_output_latch(*m_cent_data_out);
}
-void dmv_k210_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data)
+void dmv_k210_device::io_read(int ifsel, offs_t offset, uint8_t &data)
{
if (ifsel == 0)
data = m_ppi->read(offset & 0x03);
}
-void dmv_k210_device::io_write(address_space &space, int ifsel, offs_t offset, uint8_t data)
+void dmv_k210_device::io_write(int ifsel, offs_t offset, uint8_t data)
{
if (ifsel == 0)
m_ppi->write(offset & 0x03, data);
diff --git a/src/devices/bus/dmv/k210.h b/src/devices/bus/dmv/k210.h
index dcc51a374ed..501178f6fcf 100644
--- a/src/devices/bus/dmv/k210.h
+++ b/src/devices/bus/dmv/k210.h
@@ -33,8 +33,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// dmvcart_interface overrides
- virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override;
- virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override;
+ virtual void io_read(int ifsel, offs_t offset, uint8_t &data) override;
+ virtual void io_write(int ifsel, offs_t offset, uint8_t data) override;
private:
DECLARE_READ8_MEMBER(porta_r);
diff --git a/src/devices/bus/dmv/k233.cpp b/src/devices/bus/dmv/k233.cpp
index 2ba68d3f53f..2c8b13cff00 100644
--- a/src/devices/bus/dmv/k233.cpp
+++ b/src/devices/bus/dmv/k233.cpp
@@ -54,7 +54,7 @@ void dmv_k233_device::device_reset()
m_enabled = false;
}
-void dmv_k233_device::io_write(address_space &space, int ifsel, offs_t offset, uint8_t data)
+void dmv_k233_device::io_write(int ifsel, offs_t offset, uint8_t data)
{
if (ifsel == 1)
m_enabled = !m_enabled;
diff --git a/src/devices/bus/dmv/k233.h b/src/devices/bus/dmv/k233.h
index 8aa2f0d235b..e73ae71a9df 100644
--- a/src/devices/bus/dmv/k233.h
+++ b/src/devices/bus/dmv/k233.h
@@ -27,7 +27,7 @@ protected:
virtual void device_reset() override;
// dmvcart_interface overrides
- virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override;
+ virtual void io_write(int ifsel, offs_t offset, uint8_t data) override;
virtual bool read(offs_t offset, uint8_t &data) override;
virtual bool write(offs_t offset, uint8_t data) override;
diff --git a/src/devices/bus/dmv/k801.cpp b/src/devices/bus/dmv/k801.cpp
index 64098400288..7c4892f4fb0 100644
--- a/src/devices/bus/dmv/k801.cpp
+++ b/src/devices/bus/dmv/k801.cpp
@@ -206,7 +206,7 @@ WRITE_LINE_MEMBER(dmv_k801_device::epci_irq_w)
m_bus->m_out_irq_cb(state);
}
-void dmv_k801_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data)
+void dmv_k801_device::io_read(int ifsel, offs_t offset, uint8_t &data)
{
uint8_t dsw = m_dsw->read() & 0x0f;
if ((dsw >> 1) == ifsel && BIT(offset, 3) == BIT(dsw, 0))
@@ -218,7 +218,7 @@ void dmv_k801_device::io_read(address_space &space, int ifsel, offs_t offset, ui
}
}
-void dmv_k801_device::io_write(address_space &space, int ifsel, offs_t offset, uint8_t data)
+void dmv_k801_device::io_write(int ifsel, offs_t offset, uint8_t data)
{
uint8_t dsw = m_dsw->read() & 0x0f;
if ((dsw >> 1) == ifsel && BIT(offset, 3) == BIT(dsw, 0))
@@ -230,7 +230,7 @@ void dmv_k801_device::io_write(address_space &space, int ifsel, offs_t offset, u
}
}
-void dmv_k211_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data)
+void dmv_k211_device::io_read(int ifsel, offs_t offset, uint8_t &data)
{
uint8_t jumpers = m_dsw->read() & 0x03;
if ((BIT(jumpers, 0) && ifsel == 0) || (BIT(jumpers, 1) && ifsel == 1))
@@ -242,7 +242,7 @@ void dmv_k211_device::io_read(address_space &space, int ifsel, offs_t offset, ui
}
}
-void dmv_k211_device::io_write(address_space &space, int ifsel, offs_t offset, uint8_t data)
+void dmv_k211_device::io_write(int ifsel, offs_t offset, uint8_t data)
{
uint8_t jumpers = m_dsw->read() & 0x03;
if ((BIT(jumpers, 0) && ifsel == 0) || (BIT(jumpers, 1) && ifsel == 1))
diff --git a/src/devices/bus/dmv/k801.h b/src/devices/bus/dmv/k801.h
index 26f314b2149..db4b557bbb1 100644
--- a/src/devices/bus/dmv/k801.h
+++ b/src/devices/bus/dmv/k801.h
@@ -36,8 +36,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// dmvcart_interface overrides
- virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override;
- virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override;
+ virtual void io_read(int ifsel, offs_t offset, uint8_t &data) override;
+ virtual void io_write(int ifsel, offs_t offset, uint8_t data) override;
required_device<mc2661_device> m_epci;
required_device<rs232_port_device> m_rs232;
@@ -67,8 +67,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// dmvcart_interface overrides
- virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override;
- virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override;
+ virtual void io_read(int ifsel, offs_t offset, uint8_t &data) override;
+ virtual void io_write(int ifsel, offs_t offset, uint8_t data) override;
};
// ======================> dmv_k212_device
diff --git a/src/devices/bus/dmv/k803.cpp b/src/devices/bus/dmv/k803.cpp
index b56f0daf156..d0cf9cff336 100644
--- a/src/devices/bus/dmv/k803.cpp
+++ b/src/devices/bus/dmv/k803.cpp
@@ -90,23 +90,23 @@ ioport_constructor dmv_k803_device::device_input_ports() const
return INPUT_PORTS_NAME( dmv_k803 );
}
-void dmv_k803_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data)
+void dmv_k803_device::io_read(int ifsel, offs_t offset, uint8_t &data)
{
uint8_t dsw = m_dsw->read() & 0x0f;
if ((dsw >> 1) == ifsel && BIT(offset, 3) == BIT(dsw, 0))
{
if (offset & 0x04)
- data = m_rtc->read(space, ((m_latch & 0x07) << 2) | (offset & 0x03));
+ data = m_rtc->read(((m_latch & 0x07) << 2) | (offset & 0x03));
}
}
-void dmv_k803_device::io_write(address_space &space, int ifsel, offs_t offset, uint8_t data)
+void dmv_k803_device::io_write(int ifsel, offs_t offset, uint8_t data)
{
uint8_t dsw = m_dsw->read() & 0x0f;
if ((dsw >> 1) == ifsel && BIT(offset, 3) == BIT(dsw, 0))
{
if (offset & 0x04)
- m_rtc->write(space, ((m_latch & 0x07) << 2) | (offset & 0x03), data);
+ m_rtc->write(((m_latch & 0x07) << 2) | (offset & 0x03), data);
else
{
m_latch = data;
diff --git a/src/devices/bus/dmv/k803.h b/src/devices/bus/dmv/k803.h
index 0e1e190e89f..e8455646d1e 100644
--- a/src/devices/bus/dmv/k803.h
+++ b/src/devices/bus/dmv/k803.h
@@ -31,8 +31,8 @@ protected:
virtual ioport_constructor device_input_ports() const override;
virtual void device_add_mconfig(machine_config &config) override;
- virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override;
- virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override;
+ virtual void io_read(int ifsel, offs_t offset, uint8_t &data) override;
+ virtual void io_write(int ifsel, offs_t offset, uint8_t data) override;
void update_int();
diff --git a/src/devices/bus/dmv/k806.cpp b/src/devices/bus/dmv/k806.cpp
index 62cf3f97ea4..a747efa24f4 100644
--- a/src/devices/bus/dmv/k806.cpp
+++ b/src/devices/bus/dmv/k806.cpp
@@ -128,19 +128,19 @@ const tiny_rom_entry *dmv_k806_device::device_rom_region() const
return ROM_NAME( dmv_k806 );
}
-void dmv_k806_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data)
+void dmv_k806_device::io_read(int ifsel, offs_t offset, uint8_t &data)
{
uint8_t jumpers = m_jumpers->read();
if (BIT(jumpers, ifsel) && ((!BIT(offset, 3) && BIT(jumpers, 5)) || (BIT(offset, 3) && BIT(jumpers, 6))))
- data = m_mcu->upi41_master_r(space, offset & 1);
+ data = m_mcu->upi41_master_r(machine().dummy_space(), offset & 1);
}
-void dmv_k806_device::io_write(address_space &space, int ifsel, offs_t offset, uint8_t data)
+void dmv_k806_device::io_write(int ifsel, offs_t offset, uint8_t data)
{
uint8_t jumpers = m_jumpers->read();
if (BIT(jumpers, ifsel) && ((!BIT(offset, 3) && BIT(jumpers, 5)) || (BIT(offset, 3) && BIT(jumpers, 6))))
{
- m_mcu->upi41_master_w(space, offset & 1, data);
+ m_mcu->upi41_master_w(machine().dummy_space(), offset & 1, data);
m_bus->m_out_int_cb(CLEAR_LINE);
}
}
diff --git a/src/devices/bus/dmv/k806.h b/src/devices/bus/dmv/k806.h
index da178a2945d..082d56b11a6 100644
--- a/src/devices/bus/dmv/k806.h
+++ b/src/devices/bus/dmv/k806.h
@@ -35,8 +35,8 @@ protected:
virtual ioport_constructor device_input_ports() const override;
virtual void device_add_mconfig(machine_config &config) override;
- virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override;
- virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override;
+ virtual void io_read(int ifsel, offs_t offset, uint8_t &data) override;
+ virtual void io_write(int ifsel, offs_t offset, uint8_t data) override;
private:
DECLARE_READ_LINE_MEMBER(portt1_r);
diff --git a/src/devices/bus/einstein/pipe/pipe.cpp b/src/devices/bus/einstein/pipe/pipe.cpp
index b40038e650b..d521d146325 100644
--- a/src/devices/bus/einstein/pipe/pipe.cpp
+++ b/src/devices/bus/einstein/pipe/pipe.cpp
@@ -33,8 +33,8 @@ DEFINE_DEVICE_TYPE(TATUNG_PIPE, tatung_pipe_device, "tatung_pipe", "Tatung Pipe
tatung_pipe_device::tatung_pipe_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, TATUNG_PIPE, tag, owner, clock),
device_slot_interface(mconfig, *this),
- m_program(nullptr),
- m_io(nullptr),
+ m_program(*this, finder_base::DUMMY_TAG, -1),
+ m_io(*this, finder_base::DUMMY_TAG, -1),
m_card(nullptr),
m_int_handler(*this),
m_nmi_handler(*this),
@@ -51,6 +51,28 @@ tatung_pipe_device::~tatung_pipe_device()
}
//-------------------------------------------------
+// device_config_complete - perform any
+// operations now that the configuration is
+// complete
+//-------------------------------------------------
+
+void tatung_pipe_device::device_config_complete()
+{
+ // for passthrough connectors, use the parent slot's spaces
+ if (dynamic_cast<device_tatung_pipe_interface *>(owner()) != nullptr)
+ {
+ auto parent = dynamic_cast<tatung_pipe_device *>(owner()->owner());
+ if (parent != nullptr)
+ {
+ if (m_program.finder_tag() == finder_base::DUMMY_TAG)
+ m_program.set_tag(parent->m_program, parent->m_program.spacenum());
+ if (m_io.finder_tag() == finder_base::DUMMY_TAG)
+ m_io.set_tag(parent->m_io, parent->m_io.spacenum());
+ }
+ }
+}
+
+//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
@@ -83,24 +105,6 @@ WRITE_LINE_MEMBER( tatung_pipe_device::host_int_w )
m_card->int_w(state);
}
-//-------------------------------------------------
-// set_program_space - set address space we are attached to
-//-------------------------------------------------
-
-void tatung_pipe_device::set_program_space(address_space *program)
-{
- m_program = program;
-}
-
-//-------------------------------------------------
-// set_io_space - set address space we are attached to
-//-------------------------------------------------
-
-void tatung_pipe_device::set_io_space(address_space *io)
-{
- m_io = io;
-}
-
//**************************************************************************
// CARD INTERFACE
diff --git a/src/devices/bus/einstein/pipe/pipe.h b/src/devices/bus/einstein/pipe/pipe.h
index e0ce7e9a6f7..f0c32bd0043 100644
--- a/src/devices/bus/einstein/pipe/pipe.h
+++ b/src/devices/bus/einstein/pipe/pipe.h
@@ -68,8 +68,8 @@ public:
}
virtual ~tatung_pipe_device();
- void set_program_space(address_space *program);
- void set_io_space(address_space *io);
+ template <typename T> void set_program_space(T &&tag, int spacenum) { m_program.set_tag(std::forward<T>(tag), spacenum); }
+ template <typename T> void set_io_space(T &&tag, int spacenum) { m_io.set_tag(std::forward<T>(tag), spacenum); }
// callbacks
auto int_handler() { return m_int_handler.bind(); }
@@ -86,11 +86,12 @@ public:
protected:
// device-level overrides
+ virtual void device_config_complete() override;
virtual void device_start() override;
virtual void device_reset() override;
- address_space *m_program;
- address_space *m_io;
+ required_address_space m_program;
+ required_address_space m_io;
device_tatung_pipe_interface *m_card;
diff --git a/src/devices/bus/einstein/pipe/tk02.cpp b/src/devices/bus/einstein/pipe/tk02.cpp
index d0926f2e320..311c3099011 100644
--- a/src/devices/bus/einstein/pipe/tk02.cpp
+++ b/src/devices/bus/einstein/pipe/tk02.cpp
@@ -159,9 +159,6 @@ void tk02_device::device_start()
void tk02_device::device_reset()
{
- m_pipe->set_io_space(&io_space());
- m_pipe->set_program_space(&program_space());
-
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));
}
diff --git a/src/devices/bus/ekara/slot.cpp b/src/devices/bus/ekara/slot.cpp
index 6748ee935cc..5140e3f28ab 100644
--- a/src/devices/bus/ekara/slot.cpp
+++ b/src/devices/bus/ekara/slot.cpp
@@ -273,5 +273,5 @@ WRITE_LINE_MEMBER(ekara_cart_slot_device::write_scl)
READ_LINE_MEMBER(ekara_cart_slot_device::read_sda )
{
- return m_cart->read_sda();
+ return m_cart->read_sda();
}
diff --git a/src/devices/bus/ekara/slot.h b/src/devices/bus/ekara/slot.h
index 5a619b7d800..945a5175d4b 100644
--- a/src/devices/bus/ekara/slot.h
+++ b/src/devices/bus/ekara/slot.h
@@ -36,7 +36,7 @@ public:
virtual DECLARE_READ8_MEMBER(read_extra) { return 0xff; }
virtual DECLARE_WRITE8_MEMBER(write_extra) { }
- virtual DECLARE_WRITE_LINE_MEMBER(write_sda) { }
+ virtual DECLARE_WRITE_LINE_MEMBER(write_sda) { }
virtual DECLARE_WRITE_LINE_MEMBER(write_scl) { }
//virtual DECLARE_WRITE_LINE_MEMBER( write_wc )
virtual DECLARE_READ_LINE_MEMBER( read_sda ) { return 0; }
@@ -107,7 +107,7 @@ public:
virtual DECLARE_READ8_MEMBER(read_extra);
virtual DECLARE_WRITE8_MEMBER(write_extra);
- virtual DECLARE_WRITE_LINE_MEMBER(write_sda);
+ virtual DECLARE_WRITE_LINE_MEMBER(write_sda);
virtual DECLARE_WRITE_LINE_MEMBER(write_scl);
//virtual DECLARE_WRITE_LINE_MEMBER( write_wc );
virtual DECLARE_READ_LINE_MEMBER( read_sda );
diff --git a/src/devices/bus/electron/cart/abr.cpp b/src/devices/bus/electron/cart/abr.cpp
index e820b513ff1..1d2455e56c1 100644
--- a/src/devices/bus/electron/cart/abr.cpp
+++ b/src/devices/bus/electron/cart/abr.cpp
@@ -46,7 +46,7 @@ void electron_abr_device::device_start()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_abr_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_abr_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
@@ -62,7 +62,7 @@ uint8_t electron_abr_device::read(address_space &space, offs_t offset, int infc,
// write - cartridge data write
//-------------------------------------------------
-void electron_abr_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
+void electron_abr_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
{
if (infc)
{
diff --git a/src/devices/bus/electron/cart/abr.h b/src/devices/bus/electron/cart/abr.h
index 39652c8a4af..3ef92c95a8d 100644
--- a/src/devices/bus/electron/cart/abr.h
+++ b/src/devices/bus/electron/cart/abr.h
@@ -32,8 +32,8 @@ protected:
virtual void device_start() override;
// electron_cart_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
private:
bool m_bank_locked[2];
diff --git a/src/devices/bus/electron/cart/ap34.cpp b/src/devices/bus/electron/cart/ap34.cpp
index d4f43c5c573..694df390266 100644
--- a/src/devices/bus/electron/cart/ap34.cpp
+++ b/src/devices/bus/electron/cart/ap34.cpp
@@ -81,7 +81,7 @@ void electron_ap34_device::device_start()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_ap34_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_ap34_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
@@ -116,14 +116,14 @@ uint8_t electron_ap34_device::read(address_space &space, offs_t offset, int infc
// write - cartridge data write
//-------------------------------------------------
-void electron_ap34_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
+void electron_ap34_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
{
if (infc)
{
switch (offset & 0xff)
{
case 0xc0:
- wd1770_control_w(space, 0, data);
+ wd1770_control_w(data);
break;
case 0xc4:
case 0xc5:
@@ -147,7 +147,7 @@ void electron_ap34_device::write(address_space &space, offs_t offset, uint8_t da
// IMPLEMENTATION
//**************************************************************************
-WRITE8_MEMBER(electron_ap34_device::wd1770_control_w)
+void electron_ap34_device::wd1770_control_w(uint8_t data)
{
floppy_image_device *floppy = nullptr;
diff --git a/src/devices/bus/electron/cart/ap34.h b/src/devices/bus/electron/cart/ap34.h
index fe20faaf3fe..69b47514487 100644
--- a/src/devices/bus/electron/cart/ap34.h
+++ b/src/devices/bus/electron/cart/ap34.h
@@ -36,11 +36,11 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// electron_cart_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
private:
- DECLARE_WRITE8_MEMBER(wd1770_control_w);
+ void wd1770_control_w(uint8_t data);
DECLARE_FLOPPY_FORMATS(floppy_formats);
required_device<wd1770_device> m_fdc;
diff --git a/src/devices/bus/electron/cart/ap5.cpp b/src/devices/bus/electron/cart/ap5.cpp
index f613eade1f1..660587c7642 100644
--- a/src/devices/bus/electron/cart/ap5.cpp
+++ b/src/devices/bus/electron/cart/ap5.cpp
@@ -82,13 +82,13 @@ void electron_ap5_device::device_start()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_ap5_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_ap5_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
if (infc)
{
- data = m_1mhzbus->fred_r(space, offset);
+ data = m_1mhzbus->fred_r(offset);
switch (offset & 0xf0)
{
@@ -97,13 +97,13 @@ uint8_t electron_ap5_device::read(address_space &space, offs_t offset, int infc,
break;
case 0xe0:
- data &= m_tube->host_r(space, offset & 0x0f);
+ data &= m_tube->host_r(offset & 0x0f);
break;
}
}
else if (infd)
{
- data = m_1mhzbus->jim_r(space, offset);
+ data = m_1mhzbus->jim_r(offset);
}
else if (oe)
{
@@ -121,11 +121,11 @@ uint8_t electron_ap5_device::read(address_space &space, offs_t offset, int infc,
// write - cartridge data write
//-------------------------------------------------
-void electron_ap5_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
+void electron_ap5_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
{
if (infc)
{
- m_1mhzbus->fred_w(space, offset, data);
+ m_1mhzbus->fred_w(offset, data);
switch (offset & 0xf0)
{
@@ -134,13 +134,13 @@ void electron_ap5_device::write(address_space &space, offs_t offset, uint8_t dat
break;
case 0xe0:
- m_tube->host_w(space, offset & 0x0f, data);
+ m_tube->host_w(offset & 0x0f, data);
break;
}
}
else if (infd)
{
- m_1mhzbus->jim_w(space, offset, data);
+ m_1mhzbus->jim_w(offset, data);
}
}
diff --git a/src/devices/bus/electron/cart/ap5.h b/src/devices/bus/electron/cart/ap5.h
index 054ba777707..846f3fbc649 100644
--- a/src/devices/bus/electron/cart/ap5.h
+++ b/src/devices/bus/electron/cart/ap5.h
@@ -37,8 +37,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// electron_cart_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
private:
image_init_result load_rom(device_image_interface &image, generic_slot_device *slot);
diff --git a/src/devices/bus/electron/cart/aqr.cpp b/src/devices/bus/electron/cart/aqr.cpp
index f42afa6dd98..8be0176efc4 100644
--- a/src/devices/bus/electron/cart/aqr.cpp
+++ b/src/devices/bus/electron/cart/aqr.cpp
@@ -48,7 +48,7 @@ void electron_aqr_device::device_start()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_aqr_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_aqr_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
@@ -64,7 +64,7 @@ uint8_t electron_aqr_device::read(address_space &space, offs_t offset, int infc,
// write - cartridge data write
//-------------------------------------------------
-void electron_aqr_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
+void electron_aqr_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
{
if (infc)
{
diff --git a/src/devices/bus/electron/cart/aqr.h b/src/devices/bus/electron/cart/aqr.h
index b25f68b92c0..820f967b5cf 100644
--- a/src/devices/bus/electron/cart/aqr.h
+++ b/src/devices/bus/electron/cart/aqr.h
@@ -32,8 +32,8 @@ protected:
virtual void device_start() override;
// electron_cart_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
private:
uint8_t m_page_register;
diff --git a/src/devices/bus/electron/cart/click.cpp b/src/devices/bus/electron/cart/click.cpp
index c8366a90ed4..25df0aa611d 100644
--- a/src/devices/bus/electron/cart/click.cpp
+++ b/src/devices/bus/electron/cart/click.cpp
@@ -88,7 +88,7 @@ void electron_click_device::device_reset()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_click_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_click_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
@@ -98,7 +98,7 @@ uint8_t electron_click_device::read(address_space &space, offs_t offset, int inf
{
case 0xf8:
case 0xf9:
- data = m_rtc->read(space, offset & 0x01);
+ data = m_rtc->read(machine().dummy_space(), offset & 0x01);
break;
case 0xfc:
data = m_page_register;
@@ -127,7 +127,7 @@ uint8_t electron_click_device::read(address_space &space, offs_t offset, int inf
// write - cartridge data write
//-------------------------------------------------
-void electron_click_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
+void electron_click_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
{
if (infc)
{
@@ -135,7 +135,7 @@ void electron_click_device::write(address_space &space, offs_t offset, uint8_t d
{
case 0xf8:
case 0xf9:
- m_rtc->write(space, offset & 0x01, data);
+ m_rtc->write(machine().dummy_space(), offset & 0x01, data);
break;
case 0xfc:
m_page_register = data;
diff --git a/src/devices/bus/electron/cart/click.h b/src/devices/bus/electron/cart/click.h
index f3a589b4a74..cb7dd114687 100644
--- a/src/devices/bus/electron/cart/click.h
+++ b/src/devices/bus/electron/cart/click.h
@@ -41,8 +41,8 @@ protected:
virtual void device_reset() override;
// electron_cart_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
private:
required_device<mc146818_device> m_rtc;
diff --git a/src/devices/bus/electron/cart/cumana.cpp b/src/devices/bus/electron/cart/cumana.cpp
index 200fc6d8abe..dc965f6cb1d 100644
--- a/src/devices/bus/electron/cart/cumana.cpp
+++ b/src/devices/bus/electron/cart/cumana.cpp
@@ -87,7 +87,7 @@ void electron_cumana_device::device_start()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_cumana_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_cumana_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
@@ -103,7 +103,7 @@ uint8_t electron_cumana_device::read(address_space &space, offs_t offset, int in
break;
case 0x98:
case 0x9c:
- data = m_rtc->read(space, BIT(offset, 2));
+ data = m_rtc->read(machine().dummy_space(), BIT(offset, 2));
break;
}
}
@@ -134,7 +134,7 @@ uint8_t electron_cumana_device::read(address_space &space, offs_t offset, int in
// write - cartridge data write
//-------------------------------------------------
-void electron_cumana_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
+void electron_cumana_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
{
if (infc)
{
@@ -147,12 +147,11 @@ void electron_cumana_device::write(address_space &space, offs_t offset, uint8_t
m_fdc->write(offset & 0x03, data);
break;
case 0x94:
- wd1793_control_w(space, 0, data);
+ wd1793_control_w(data);
break;
case 0x98:
case 0x9c:
- m_rtc->write(space, BIT(offset, 2), data);
- break;
+ m_rtc->write(machine().dummy_space(), BIT(offset, 2), data);
break;
}
}
@@ -170,7 +169,7 @@ void electron_cumana_device::write(address_space &space, offs_t offset, uint8_t
// IMPLEMENTATION
//**************************************************************************
-WRITE8_MEMBER(electron_cumana_device::wd1793_control_w)
+void electron_cumana_device::wd1793_control_w(uint8_t data)
{
floppy_image_device *floppy = nullptr;
diff --git a/src/devices/bus/electron/cart/cumana.h b/src/devices/bus/electron/cart/cumana.h
index 3780d4ff172..9a3bc2ab834 100644
--- a/src/devices/bus/electron/cart/cumana.h
+++ b/src/devices/bus/electron/cart/cumana.h
@@ -37,11 +37,11 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// electron_cart_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
private:
- DECLARE_WRITE8_MEMBER(wd1793_control_w);
+ void wd1793_control_w(uint8_t data);
DECLARE_FLOPPY_FORMATS(floppy_formats);
required_device<fd1793_device> m_fdc;
diff --git a/src/devices/bus/electron/cart/mgc.cpp b/src/devices/bus/electron/cart/mgc.cpp
index 9c7d79c0dc4..5f80559c47a 100644
--- a/src/devices/bus/electron/cart/mgc.cpp
+++ b/src/devices/bus/electron/cart/mgc.cpp
@@ -65,7 +65,7 @@ void electron_mgc_device::device_reset()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_mgc_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_mgc_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
@@ -82,7 +82,7 @@ uint8_t electron_mgc_device::read(address_space &space, offs_t offset, int infc,
// write - cartridge data write
//-------------------------------------------------
-void electron_mgc_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
+void electron_mgc_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
{
if (infc)
{
diff --git a/src/devices/bus/electron/cart/mgc.h b/src/devices/bus/electron/cart/mgc.h
index a5e5ed1be8f..bf23aa34391 100644
--- a/src/devices/bus/electron/cart/mgc.h
+++ b/src/devices/bus/electron/cart/mgc.h
@@ -33,8 +33,8 @@ protected:
virtual void device_reset() override;
// electron_cart_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
private:
uint8_t m_page_latch;
diff --git a/src/devices/bus/electron/cart/peg400.cpp b/src/devices/bus/electron/cart/peg400.cpp
index eb41e5e8730..abca703474a 100644
--- a/src/devices/bus/electron/cart/peg400.cpp
+++ b/src/devices/bus/electron/cart/peg400.cpp
@@ -79,7 +79,7 @@ void electron_peg400_device::device_start()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_peg400_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_peg400_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
@@ -122,14 +122,14 @@ uint8_t electron_peg400_device::read(address_space &space, offs_t offset, int in
// write - cartridge data write
//-------------------------------------------------
-void electron_peg400_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
+void electron_peg400_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
{
if (infc)
{
switch (offset & 0xff)
{
case 0xc0:
- wd1770_control_w(space, 0, data);
+ wd1770_control_w(data);
break;
case 0xc4:
case 0xc5:
@@ -153,7 +153,7 @@ void electron_peg400_device::write(address_space &space, offs_t offset, uint8_t
// IMPLEMENTATION
//**************************************************************************
-WRITE8_MEMBER(electron_peg400_device::wd1770_control_w)
+void electron_peg400_device::wd1770_control_w(uint8_t data)
{
floppy_image_device *floppy = nullptr;
diff --git a/src/devices/bus/electron/cart/peg400.h b/src/devices/bus/electron/cart/peg400.h
index e24e5a0a911..035947a1e59 100644
--- a/src/devices/bus/electron/cart/peg400.h
+++ b/src/devices/bus/electron/cart/peg400.h
@@ -34,11 +34,11 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// electron_cart_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
private:
- DECLARE_WRITE8_MEMBER(wd1770_control_w);
+ void wd1770_control_w(uint8_t data);
DECLARE_FLOPPY_FORMATS(floppy_formats);
DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
diff --git a/src/devices/bus/electron/cart/slot.cpp b/src/devices/bus/electron/cart/slot.cpp
index 99969e990cb..00ead3b654a 100644
--- a/src/devices/bus/electron/cart/slot.cpp
+++ b/src/devices/bus/electron/cart/slot.cpp
@@ -229,13 +229,13 @@ std::string electron_cartslot_device::get_default_card_software(get_default_card
// read - cartridge read
//-------------------------------------------------
-uint8_t electron_cartslot_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_cartslot_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
if (m_cart != nullptr)
{
- data = m_cart->read(space, offset, infc, infd, romqa, oe, oe2);
+ data = m_cart->read(offset, infc, infd, romqa, oe, oe2);
}
return data;
@@ -245,11 +245,11 @@ uint8_t electron_cartslot_device::read(address_space &space, offs_t offset, int
// write - cartridge write
//-------------------------------------------------
-void electron_cartslot_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
+void electron_cartslot_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
{
if (m_cart != nullptr)
{
- m_cart->write(space, offset, data, infc, infd, romqa, oe, oe2);
+ m_cart->write(offset, data, infc, infd, romqa, oe, oe2);
}
}
diff --git a/src/devices/bus/electron/cart/slot.h b/src/devices/bus/electron/cart/slot.h
index 39eabf39a08..d31bc16258c 100644
--- a/src/devices/bus/electron/cart/slot.h
+++ b/src/devices/bus/electron/cart/slot.h
@@ -158,8 +158,8 @@ public:
virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override;
// reading and writing
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2);
- virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2);
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2);
+ virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2);
DECLARE_WRITE_LINE_MEMBER(irq_w) { m_irq_handler(state); }
DECLARE_WRITE_LINE_MEMBER(nmi_w) { m_nmi_handler(state); }
@@ -182,8 +182,8 @@ public:
virtual ~device_electron_cart_interface();
// reading and writing
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { return 0xff; }
- virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { }
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { return 0xff; }
+ virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { }
void rom_alloc(uint32_t size, const char *tag);
void ram_alloc(uint32_t size);
diff --git a/src/devices/bus/electron/cart/sndexp.cpp b/src/devices/bus/electron/cart/sndexp.cpp
index f1f7c6f951e..4ba27cb4825 100644
--- a/src/devices/bus/electron/cart/sndexp.cpp
+++ b/src/devices/bus/electron/cart/sndexp.cpp
@@ -89,7 +89,7 @@ void electron_sndexp_device::device_start()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_sndexp_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_sndexp_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
@@ -126,7 +126,7 @@ uint8_t electron_sndexp_device::read(address_space &space, offs_t offset, int in
// write - cartridge data write
//-------------------------------------------------
-void electron_sndexp_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
+void electron_sndexp_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
{
if (infc)
{
diff --git a/src/devices/bus/electron/cart/sndexp.h b/src/devices/bus/electron/cart/sndexp.h
index 6baece10fbe..5627c2ff734 100644
--- a/src/devices/bus/electron/cart/sndexp.h
+++ b/src/devices/bus/electron/cart/sndexp.h
@@ -33,8 +33,8 @@ protected:
virtual ioport_constructor device_input_ports() const override;
// electron_cart_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
private:
required_device<sn76489_device> m_sn;
diff --git a/src/devices/bus/electron/cart/sndexp3.cpp b/src/devices/bus/electron/cart/sndexp3.cpp
index b132cd40ce6..afaf927e443 100644
--- a/src/devices/bus/electron/cart/sndexp3.cpp
+++ b/src/devices/bus/electron/cart/sndexp3.cpp
@@ -62,7 +62,7 @@ void electron_sndexp3_device::device_start()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_sndexp3_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_sndexp3_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
@@ -85,7 +85,7 @@ uint8_t electron_sndexp3_device::read(address_space &space, offs_t offset, int i
// write - cartridge data write
//-------------------------------------------------
-void electron_sndexp3_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
+void electron_sndexp3_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
{
if (infc)
{
diff --git a/src/devices/bus/electron/cart/sndexp3.h b/src/devices/bus/electron/cart/sndexp3.h
index ae5ec7c1d40..95d437b63e2 100644
--- a/src/devices/bus/electron/cart/sndexp3.h
+++ b/src/devices/bus/electron/cart/sndexp3.h
@@ -32,8 +32,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// electron_cart_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
private:
required_device<sn76489_device> m_sn;
diff --git a/src/devices/bus/electron/cart/sp64.cpp b/src/devices/bus/electron/cart/sp64.cpp
index 11bd0d26f25..9b5d497999e 100644
--- a/src/devices/bus/electron/cart/sp64.cpp
+++ b/src/devices/bus/electron/cart/sp64.cpp
@@ -55,7 +55,7 @@ void electron_sp64_device::device_reset()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_sp64_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_sp64_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
@@ -90,7 +90,7 @@ uint8_t electron_sp64_device::read(address_space &space, offs_t offset, int infc
// write - cartridge data write
//-------------------------------------------------
-void electron_sp64_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
+void electron_sp64_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
{
if (infc)
{
diff --git a/src/devices/bus/electron/cart/sp64.h b/src/devices/bus/electron/cart/sp64.h
index e7e1c227d4c..68954fc9d30 100644
--- a/src/devices/bus/electron/cart/sp64.h
+++ b/src/devices/bus/electron/cart/sp64.h
@@ -33,8 +33,8 @@ protected:
virtual void device_reset() override;
// electron_cart_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
private:
uint8_t m_page_register;
diff --git a/src/devices/bus/electron/cart/std.cpp b/src/devices/bus/electron/cart/std.cpp
index 3c498acbab2..f2b7333f347 100644
--- a/src/devices/bus/electron/cart/std.cpp
+++ b/src/devices/bus/electron/cart/std.cpp
@@ -43,7 +43,7 @@ void electron_stdcart_device::device_start()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_stdcart_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_stdcart_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
diff --git a/src/devices/bus/electron/cart/std.h b/src/devices/bus/electron/cart/std.h
index 9d9a5e1381c..3fc9cefbcd9 100644
--- a/src/devices/bus/electron/cart/std.h
+++ b/src/devices/bus/electron/cart/std.h
@@ -31,7 +31,7 @@ protected:
virtual void device_start() override;
// electron_cart_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
};
// device type definition
diff --git a/src/devices/bus/electron/cart/stlefs.cpp b/src/devices/bus/electron/cart/stlefs.cpp
index 6eba01c8527..47566871a9d 100644
--- a/src/devices/bus/electron/cart/stlefs.cpp
+++ b/src/devices/bus/electron/cart/stlefs.cpp
@@ -83,7 +83,7 @@ void electron_stlefs_device::device_start()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_stlefs_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_stlefs_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
@@ -111,14 +111,14 @@ uint8_t electron_stlefs_device::read(address_space &space, offs_t offset, int in
// write - cartridge data write
//-------------------------------------------------
-void electron_stlefs_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
+void electron_stlefs_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
{
if (infc)
{
switch (offset & 0xff)
{
case 0xc0:
- wd1770_control_w(space, 0, data);
+ wd1770_control_w(data);
break;
case 0xc4:
case 0xc5:
@@ -137,7 +137,7 @@ void electron_stlefs_device::write(address_space &space, offs_t offset, uint8_t
// IMPLEMENTATION
//**************************************************************************
-WRITE8_MEMBER(electron_stlefs_device::wd1770_control_w)
+void electron_stlefs_device::wd1770_control_w(uint8_t data)
{
floppy_image_device *floppy = nullptr;
diff --git a/src/devices/bus/electron/cart/stlefs.h b/src/devices/bus/electron/cart/stlefs.h
index a476ee50ea3..421850943e2 100644
--- a/src/devices/bus/electron/cart/stlefs.h
+++ b/src/devices/bus/electron/cart/stlefs.h
@@ -36,11 +36,11 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// electron_cart_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
private:
- DECLARE_WRITE8_MEMBER(wd1770_control_w);
+ void wd1770_control_w(uint8_t data);
DECLARE_FLOPPY_FORMATS(floppy_formats);
required_device<wd1770_device> m_fdc;
diff --git a/src/devices/bus/electron/cart/tube.cpp b/src/devices/bus/electron/cart/tube.cpp
index 99d4f8ba9d2..02dcd00275d 100644
--- a/src/devices/bus/electron/cart/tube.cpp
+++ b/src/devices/bus/electron/cart/tube.cpp
@@ -56,7 +56,7 @@ void electron_tube_device::device_start()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_tube_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_tube_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
{
uint8_t data = 0xff;
@@ -64,7 +64,7 @@ uint8_t electron_tube_device::read(address_space &space, offs_t offset, int infc
{
if (offset >= 0xe0 && offset < 0xf0)
{
- data = m_tube->host_r(space, offset & 0x0f);
+ data = m_tube->host_r(offset & 0x0f);
}
}
else if (oe2)
@@ -79,13 +79,13 @@ uint8_t electron_tube_device::read(address_space &space, offs_t offset, int infc
// write - cartridge data write
//-------------------------------------------------
-void electron_tube_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
+void electron_tube_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
{
if (infc)
{
if (offset >= 0xe0 && offset < 0xf0)
{
- m_tube->host_w(space, offset & 0x0f, data);
+ m_tube->host_w(offset & 0x0f, data);
}
}
}
diff --git a/src/devices/bus/electron/cart/tube.h b/src/devices/bus/electron/cart/tube.h
index c77017f9598..1d239ef5215 100644
--- a/src/devices/bus/electron/cart/tube.h
+++ b/src/devices/bus/electron/cart/tube.h
@@ -32,8 +32,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// electron_cart_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override;
+ virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override;
private:
required_device<bbc_tube_slot_device> m_tube;
diff --git a/src/devices/bus/electron/exp.cpp b/src/devices/bus/electron/exp.cpp
index afa58d9c40a..d2cd0abc824 100644
--- a/src/devices/bus/electron/exp.cpp
+++ b/src/devices/bus/electron/exp.cpp
@@ -75,13 +75,13 @@ void electron_expansion_slot_device::device_reset()
// expbus_r - expansion data read
//-------------------------------------------------
-uint8_t electron_expansion_slot_device::expbus_r(address_space &space, offs_t offset)
+uint8_t electron_expansion_slot_device::expbus_r(offs_t offset)
{
uint8_t data = 0xff;
if (m_card != nullptr)
{
- data = m_card->expbus_r(space, offset);
+ data = m_card->expbus_r(offset);
}
return data;
@@ -91,11 +91,11 @@ uint8_t electron_expansion_slot_device::expbus_r(address_space &space, offs_t of
// expbus_w - expansion data write
//-------------------------------------------------
-void electron_expansion_slot_device::expbus_w(address_space &space, offs_t offset, uint8_t data)
+void electron_expansion_slot_device::expbus_w(offs_t offset, uint8_t data)
{
if (m_card != nullptr)
{
- m_card->expbus_w(space, offset, data);
+ m_card->expbus_w(offset, data);
}
}
diff --git a/src/devices/bus/electron/exp.h b/src/devices/bus/electron/exp.h
index 9902784a532..a3bfc045b3a 100644
--- a/src/devices/bus/electron/exp.h
+++ b/src/devices/bus/electron/exp.h
@@ -117,8 +117,8 @@ public:
auto irq_handler() { return m_irq_handler.bind(); }
auto nmi_handler() { return m_nmi_handler.bind(); }
- uint8_t expbus_r(address_space &space, offs_t offset);
- void expbus_w(address_space &space, offs_t offset, uint8_t data);
+ uint8_t expbus_r(offs_t offset);
+ void expbus_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER( irq_w ) { m_irq_handler(state); }
DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_nmi_handler(state); }
@@ -141,8 +141,8 @@ private:
class device_electron_expansion_interface : public device_slot_card_interface
{
public:
- virtual uint8_t expbus_r(address_space &space, offs_t offset) { return 0xff; }
- virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) { }
+ virtual uint8_t expbus_r(offs_t offset) { return 0xff; }
+ virtual void expbus_w(offs_t offset, uint8_t data) { }
protected:
device_electron_expansion_interface(const machine_config &mconfig, device_t &device);
diff --git a/src/devices/bus/electron/fbjoy.cpp b/src/devices/bus/electron/fbjoy.cpp
index ce9de6b9081..e5a4042cfeb 100644
--- a/src/devices/bus/electron/fbjoy.cpp
+++ b/src/devices/bus/electron/fbjoy.cpp
@@ -67,7 +67,7 @@ void electron_fbjoy_device::device_start()
// expbus_r - expansion data read
//-------------------------------------------------
-uint8_t electron_fbjoy_device::expbus_r(address_space &space, offs_t offset)
+uint8_t electron_fbjoy_device::expbus_r(offs_t offset)
{
uint8_t data = 0xff;
diff --git a/src/devices/bus/electron/fbjoy.h b/src/devices/bus/electron/fbjoy.h
index 0f475cfbef9..d9faaa6cd15 100644
--- a/src/devices/bus/electron/fbjoy.h
+++ b/src/devices/bus/electron/fbjoy.h
@@ -33,7 +33,7 @@ public:
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
- virtual uint8_t expbus_r(address_space &space, offs_t offset) override;
+ virtual uint8_t expbus_r(offs_t offset) override;
protected:
// device-level overrides
diff --git a/src/devices/bus/electron/m2105.cpp b/src/devices/bus/electron/m2105.cpp
index f1358b78a88..a5edb8e3232 100644
--- a/src/devices/bus/electron/m2105.cpp
+++ b/src/devices/bus/electron/m2105.cpp
@@ -154,7 +154,7 @@ void electron_m2105_device::device_reset()
// expbus_r - expansion data read
//-------------------------------------------------
-uint8_t electron_m2105_device::expbus_r(address_space &space, offs_t offset)
+uint8_t electron_m2105_device::expbus_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -214,7 +214,7 @@ uint8_t electron_m2105_device::expbus_r(address_space &space, offs_t offset)
// expbus_w - expansion data write
//-------------------------------------------------
-void electron_m2105_device::expbus_w(address_space &space, offs_t offset, uint8_t data)
+void electron_m2105_device::expbus_w(offs_t offset, uint8_t data)
{
switch (offset >> 12)
{
diff --git a/src/devices/bus/electron/m2105.h b/src/devices/bus/electron/m2105.h
index c40ae58c686..c09f4722eab 100644
--- a/src/devices/bus/electron/m2105.h
+++ b/src/devices/bus/electron/m2105.h
@@ -41,8 +41,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
- virtual uint8_t expbus_r(address_space &space, offs_t offset) override;
- virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t expbus_r(offs_t offset) override;
+ virtual void expbus_w(offs_t offset, uint8_t data) override;
private:
required_memory_region m_exp_rom;
diff --git a/src/devices/bus/electron/plus1.cpp b/src/devices/bus/electron/plus1.cpp
index 3e395722bcd..a96ad20c656 100644
--- a/src/devices/bus/electron/plus1.cpp
+++ b/src/devices/bus/electron/plus1.cpp
@@ -163,7 +163,7 @@ void electron_plus1_device::device_start()
// expbus_r - expansion data read
//-------------------------------------------------
-uint8_t electron_plus1_device::expbus_r(address_space &space, offs_t offset)
+uint8_t electron_plus1_device::expbus_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -177,18 +177,18 @@ uint8_t electron_plus1_device::expbus_r(address_space &space, offs_t offset)
{
case 0:
case 1:
- data = m_cart_sk2->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0);
+ data = m_cart_sk2->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0);
break;
case 2:
case 3:
- data = m_cart_sk1->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0);
+ data = m_cart_sk1->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0);
break;
case 12:
data = m_exp_rom->base()[offset & 0x1fff];
break;
case 13:
- data &= m_cart_sk1->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1);
- data &= m_cart_sk2->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1);
+ data &= m_cart_sk1->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1);
+ data &= m_cart_sk2->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1);
break;
}
break;
@@ -197,8 +197,8 @@ uint8_t electron_plus1_device::expbus_r(address_space &space, offs_t offset)
switch (offset >> 8)
{
case 0xfc:
- data &= m_cart_sk1->read(space, offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0);
- data &= m_cart_sk2->read(space, offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0);
+ data &= m_cart_sk1->read(offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0);
+ data &= m_cart_sk2->read(offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0);
if (offset == 0xfc70)
{
@@ -211,8 +211,8 @@ uint8_t electron_plus1_device::expbus_r(address_space &space, offs_t offset)
break;
case 0xfd:
- data &= m_cart_sk1->read(space, offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0);
- data &= m_cart_sk2->read(space, offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0);
+ data &= m_cart_sk1->read(offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0);
+ data &= m_cart_sk2->read(offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0);
break;
}
}
@@ -225,7 +225,7 @@ uint8_t electron_plus1_device::expbus_r(address_space &space, offs_t offset)
// expbus_w - expansion data write
//-------------------------------------------------
-void electron_plus1_device::expbus_w(address_space &space, offs_t offset, uint8_t data)
+void electron_plus1_device::expbus_w(offs_t offset, uint8_t data)
{
switch (offset >> 12)
{
@@ -237,11 +237,11 @@ void electron_plus1_device::expbus_w(address_space &space, offs_t offset, uint8_
{
case 0:
case 1:
- m_cart_sk2->write(space, offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0);
+ m_cart_sk2->write(offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0);
break;
case 2:
case 3:
- m_cart_sk1->write(space, offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0);
+ m_cart_sk1->write(offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0);
break;
}
break;
@@ -250,8 +250,8 @@ void electron_plus1_device::expbus_w(address_space &space, offs_t offset, uint8_
switch (offset >> 8)
{
case 0xfc:
- m_cart_sk1->write(space, offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0);
- m_cart_sk2->write(space, offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0);
+ m_cart_sk1->write(offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0);
+ m_cart_sk2->write(offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0);
if (offset == 0xfc70)
{
@@ -264,8 +264,8 @@ void electron_plus1_device::expbus_w(address_space &space, offs_t offset, uint8_
break;
case 0xfd:
- m_cart_sk1->write(space, offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0);
- m_cart_sk2->write(space, offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0);
+ m_cart_sk1->write(offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0);
+ m_cart_sk2->write(offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0);
break;
case 0xfe:
diff --git a/src/devices/bus/electron/plus1.h b/src/devices/bus/electron/plus1.h
index 63e065446e5..e211594a2c6 100644
--- a/src/devices/bus/electron/plus1.h
+++ b/src/devices/bus/electron/plus1.h
@@ -37,8 +37,8 @@ protected:
virtual const tiny_rom_entry *device_rom_region() const override;
virtual ioport_constructor device_input_ports() const override;
- virtual uint8_t expbus_r(address_space &space, offs_t offset) override;
- virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t expbus_r(offs_t offset) override;
+ virtual void expbus_w(offs_t offset, uint8_t data) override;
private:
u8 status_r();
diff --git a/src/devices/bus/electron/plus2.cpp b/src/devices/bus/electron/plus2.cpp
index 2ff48b19bc0..040ec58eb35 100644
--- a/src/devices/bus/electron/plus2.cpp
+++ b/src/devices/bus/electron/plus2.cpp
@@ -98,7 +98,7 @@ void electron_plus2_device::device_start()
// expbus_r - expansion data read
//-------------------------------------------------
-uint8_t electron_plus2_device::expbus_r(address_space &space, offs_t offset)
+uint8_t electron_plus2_device::expbus_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -112,15 +112,15 @@ uint8_t electron_plus2_device::expbus_r(address_space &space, offs_t offset)
{
case 4:
case 5:
- data = m_cart[1]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0);
+ data = m_cart[1]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0);
break;
case 6:
case 7:
- data = m_cart[0]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0);
+ data = m_cart[0]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0);
break;
case 13:
- data &= m_cart[0]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1);
- data &= m_cart[1]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1);
+ data &= m_cart[0]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1);
+ data &= m_cart[1]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1);
case 14:
case 15:
data &= m_rom[m_romsel - 13]->read_rom(offset & 0x3fff);
@@ -132,8 +132,8 @@ uint8_t electron_plus2_device::expbus_r(address_space &space, offs_t offset)
switch (offset >> 8)
{
case 0xfc:
- data &= m_cart[0]->read(space, offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0);
- data &= m_cart[1]->read(space, offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0);
+ data &= m_cart[0]->read(offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0);
+ data &= m_cart[1]->read(offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0);
if (offset >= 0xfcb0 && offset < 0xfcc0)
{
@@ -142,13 +142,13 @@ uint8_t electron_plus2_device::expbus_r(address_space &space, offs_t offset)
break;
case 0xfd:
- data &= m_cart[0]->read(space, offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0);
- data &= m_cart[1]->read(space, offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0);
+ data &= m_cart[0]->read(offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0);
+ data &= m_cart[1]->read(offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0);
break;
}
}
- data &= m_exp->expbus_r(space, offset);
+ data &= m_exp->expbus_r(offset);
return data;
}
@@ -158,7 +158,7 @@ uint8_t electron_plus2_device::expbus_r(address_space &space, offs_t offset)
// expbus_w - expansion data write
//-------------------------------------------------
-void electron_plus2_device::expbus_w(address_space &space, offs_t offset, uint8_t data)
+void electron_plus2_device::expbus_w(offs_t offset, uint8_t data)
{
switch (offset >> 12)
{
@@ -170,11 +170,11 @@ void electron_plus2_device::expbus_w(address_space &space, offs_t offset, uint8_
{
case 4:
case 5:
- m_cart[1]->write(space, offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0);
+ m_cart[1]->write(offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0);
break;
case 6:
case 7:
- m_cart[0]->write(space, offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0);
+ m_cart[0]->write(offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0);
break;
}
break;
@@ -183,8 +183,8 @@ void electron_plus2_device::expbus_w(address_space &space, offs_t offset, uint8_
switch (offset >> 8)
{
case 0xfc:
- m_cart[0]->write(space, offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0);
- m_cart[1]->write(space, offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0);
+ m_cart[0]->write(offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0);
+ m_cart[1]->write(offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0);
if (offset >= 0xfcb0 && offset < 0xfcc0)
{
@@ -193,8 +193,8 @@ void electron_plus2_device::expbus_w(address_space &space, offs_t offset, uint8_
break;
case 0xfd:
- m_cart[0]->write(space, offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0);
- m_cart[1]->write(space, offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0);
+ m_cart[0]->write(offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0);
+ m_cart[1]->write(offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0);
break;
case 0xfe:
@@ -206,7 +206,7 @@ void electron_plus2_device::expbus_w(address_space &space, offs_t offset, uint8_
}
}
- m_exp->expbus_w(space, offset, data);
+ m_exp->expbus_w(offset, data);
}
diff --git a/src/devices/bus/electron/plus2.h b/src/devices/bus/electron/plus2.h
index 22e2e11e816..235ecd4f218 100644
--- a/src/devices/bus/electron/plus2.h
+++ b/src/devices/bus/electron/plus2.h
@@ -36,8 +36,8 @@ protected:
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
- virtual uint8_t expbus_r(address_space &space, offs_t offset) override;
- virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t expbus_r(offs_t offset) override;
+ virtual void expbus_w(offs_t offset, uint8_t data) override;
private:
image_init_result load_rom(device_image_interface &image, generic_slot_device *slot);
diff --git a/src/devices/bus/electron/plus3.cpp b/src/devices/bus/electron/plus3.cpp
index 14f5b73c957..5996e357389 100644
--- a/src/devices/bus/electron/plus3.cpp
+++ b/src/devices/bus/electron/plus3.cpp
@@ -117,7 +117,7 @@ void electron_plus3_device::device_start()
// expbus_r - expansion data read
//-------------------------------------------------
-uint8_t electron_plus3_device::expbus_r(address_space &space, offs_t offset)
+uint8_t electron_plus3_device::expbus_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -137,7 +137,7 @@ uint8_t electron_plus3_device::expbus_r(address_space &space, offs_t offset)
data = m_fdc->read(offset & 0x03);
}
- data &= m_exp->expbus_r(space, offset);
+ data &= m_exp->expbus_r(offset);
return data;
}
@@ -146,13 +146,13 @@ uint8_t electron_plus3_device::expbus_r(address_space &space, offs_t offset)
// expbus_w - expansion data write
//-------------------------------------------------
-void electron_plus3_device::expbus_w(address_space &space, offs_t offset, uint8_t data)
+void electron_plus3_device::expbus_w(offs_t offset, uint8_t data)
{
- m_exp->expbus_w(space, offset, data);
+ m_exp->expbus_w(offset, data);
if (offset == 0xfcc0)
{
- wd1770_status_w(space, offset, data);
+ wd1770_status_w(data);
}
else if (offset >= 0xfcc4 && offset < 0xfcc8)
{
@@ -169,7 +169,7 @@ void electron_plus3_device::expbus_w(address_space &space, offs_t offset, uint8_
// IMPLEMENTATION
//**************************************************************************
-WRITE8_MEMBER(electron_plus3_device::wd1770_status_w)
+void electron_plus3_device::wd1770_status_w(uint8_t data)
{
floppy_image_device *floppy = nullptr;
diff --git a/src/devices/bus/electron/plus3.h b/src/devices/bus/electron/plus3.h
index 9c8004afab8..44de595a3db 100644
--- a/src/devices/bus/electron/plus3.h
+++ b/src/devices/bus/electron/plus3.h
@@ -34,11 +34,11 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
- virtual uint8_t expbus_r(address_space &space, offs_t offset) override;
- virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t expbus_r(offs_t offset) override;
+ virtual void expbus_w(offs_t offset, uint8_t data) override;
private:
- DECLARE_WRITE8_MEMBER(wd1770_status_w);
+ void wd1770_status_w(uint8_t data);
DECLARE_FLOPPY_FORMATS(floppy_formats);
required_device<electron_expansion_slot_device> m_exp;
diff --git a/src/devices/bus/electron/pwrjoy.cpp b/src/devices/bus/electron/pwrjoy.cpp
index 2be3f645c55..1ff7ab79566 100644
--- a/src/devices/bus/electron/pwrjoy.cpp
+++ b/src/devices/bus/electron/pwrjoy.cpp
@@ -78,7 +78,7 @@ void electron_pwrjoy_device::device_start()
// expbus_r - expansion data read
//-------------------------------------------------
-uint8_t electron_pwrjoy_device::expbus_r(address_space &space, offs_t offset)
+uint8_t electron_pwrjoy_device::expbus_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -102,7 +102,7 @@ uint8_t electron_pwrjoy_device::expbus_r(address_space &space, offs_t offset)
// expbus_w - expansion data write
//-------------------------------------------------
-void electron_pwrjoy_device::expbus_w(address_space &space, offs_t offset, uint8_t data)
+void electron_pwrjoy_device::expbus_w(offs_t offset, uint8_t data)
{
if (offset == 0xfe05)
{
diff --git a/src/devices/bus/electron/pwrjoy.h b/src/devices/bus/electron/pwrjoy.h
index 0b654f77791..abc91cf3e2b 100644
--- a/src/devices/bus/electron/pwrjoy.h
+++ b/src/devices/bus/electron/pwrjoy.h
@@ -32,8 +32,8 @@ public:
virtual const tiny_rom_entry *device_rom_region() const override;
virtual ioport_constructor device_input_ports() const override;
- virtual uint8_t expbus_r(address_space &space, offs_t offset) override;
- virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t expbus_r(offs_t offset) override;
+ virtual void expbus_w(offs_t offset, uint8_t data) override;
protected:
// device-level overrides
diff --git a/src/devices/bus/electron/rombox.cpp b/src/devices/bus/electron/rombox.cpp
index b3aff05d035..35f94b08d13 100644
--- a/src/devices/bus/electron/rombox.cpp
+++ b/src/devices/bus/electron/rombox.cpp
@@ -117,7 +117,7 @@ void electron_rombox_device::device_reset()
// expbus_r - expansion data read
//-------------------------------------------------
-uint8_t electron_rombox_device::expbus_r(address_space &space, offs_t offset)
+uint8_t electron_rombox_device::expbus_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -155,7 +155,7 @@ uint8_t electron_rombox_device::expbus_r(address_space &space, offs_t offset)
}
}
- data &= m_exp->expbus_r(space, offset);
+ data &= m_exp->expbus_r(offset);
return data;
}
@@ -164,9 +164,9 @@ uint8_t electron_rombox_device::expbus_r(address_space &space, offs_t offset)
// expbus_w - expansion data write
//-------------------------------------------------
-void electron_rombox_device::expbus_w(address_space &space, offs_t offset, uint8_t data)
+void electron_rombox_device::expbus_w(offs_t offset, uint8_t data)
{
- m_exp->expbus_w(space, offset, data);
+ m_exp->expbus_w(offset, data);
if (offset == 0xfe05)
{
diff --git a/src/devices/bus/electron/rombox.h b/src/devices/bus/electron/rombox.h
index 961cab59ba4..65ed2fa80d8 100644
--- a/src/devices/bus/electron/rombox.h
+++ b/src/devices/bus/electron/rombox.h
@@ -35,8 +35,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
- virtual uint8_t expbus_r(address_space &space, offs_t offset) override;
- virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t expbus_r(offs_t offset) override;
+ virtual void expbus_w(offs_t offset, uint8_t data) override;
private:
image_init_result load_rom(device_image_interface &image, generic_slot_device *slot);
diff --git a/src/devices/bus/electron/romboxp.cpp b/src/devices/bus/electron/romboxp.cpp
index d7e2798c082..7917ae3d539 100644
--- a/src/devices/bus/electron/romboxp.cpp
+++ b/src/devices/bus/electron/romboxp.cpp
@@ -160,7 +160,7 @@ void electron_romboxp_device::device_reset()
// expbus_r - expansion data read
//-------------------------------------------------
-uint8_t electron_romboxp_device::expbus_r(address_space &space, offs_t offset)
+uint8_t electron_romboxp_device::expbus_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -174,11 +174,11 @@ uint8_t electron_romboxp_device::expbus_r(address_space &space, offs_t offset)
{
case 0:
case 1:
- data = m_cart[1]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0);
+ data = m_cart[1]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0);
break;
case 2:
case 3:
- data = m_cart[0]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0);
+ data = m_cart[0]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0);
break;
case 4:
case 5:
@@ -193,8 +193,8 @@ uint8_t electron_romboxp_device::expbus_r(address_space &space, offs_t offset)
data = m_exp_rom->base()[offset & 0x1fff];
break;
case 13:
- data &= m_cart[0]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1);
- data &= m_cart[1]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1);
+ data &= m_cart[0]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1);
+ data &= m_cart[1]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1);
case 14:
case 15:
if (m_rom_base == 12)
@@ -209,18 +209,18 @@ uint8_t electron_romboxp_device::expbus_r(address_space &space, offs_t offset)
switch (offset >> 8)
{
case 0xfc:
- data &= m_cart[0]->read(space, offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0);
- data &= m_cart[1]->read(space, offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0);
+ data &= m_cart[0]->read(offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0);
+ data &= m_cart[1]->read(offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0);
if (offset == 0xfc72)
{
- data &= status_r(space, offset);
+ data &= status_r();
}
break;
case 0xfd:
- data &= m_cart[0]->read(space, offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0);
- data &= m_cart[1]->read(space, offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0);
+ data &= m_cart[0]->read(offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0);
+ data &= m_cart[1]->read(offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0);
break;
}
}
@@ -232,7 +232,7 @@ uint8_t electron_romboxp_device::expbus_r(address_space &space, offs_t offset)
// expbus_w - expansion data write
//-------------------------------------------------
-void electron_romboxp_device::expbus_w(address_space &space, offs_t offset, uint8_t data)
+void electron_romboxp_device::expbus_w(offs_t offset, uint8_t data)
{
switch (offset >> 12)
{
@@ -244,11 +244,11 @@ void electron_romboxp_device::expbus_w(address_space &space, offs_t offset, uint
{
case 0:
case 1:
- m_cart[1]->write(space, offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0);
+ m_cart[1]->write(offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0);
break;
case 2:
case 3:
- m_cart[0]->write(space, offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0);
+ m_cart[0]->write(offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0);
break;
}
break;
@@ -257,8 +257,8 @@ void electron_romboxp_device::expbus_w(address_space &space, offs_t offset, uint
switch (offset >> 8)
{
case 0xfc:
- m_cart[0]->write(space, offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0);
- m_cart[1]->write(space, offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0);
+ m_cart[0]->write(offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0);
+ m_cart[1]->write(offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0);
if (offset == 0xfc71)
{
@@ -267,8 +267,8 @@ void electron_romboxp_device::expbus_w(address_space &space, offs_t offset, uint
break;
case 0xfd:
- m_cart[0]->write(space, offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0);
- m_cart[1]->write(space, offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0);
+ m_cart[0]->write(offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0);
+ m_cart[1]->write(offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0);
break;
case 0xfe:
@@ -285,7 +285,7 @@ void electron_romboxp_device::expbus_w(address_space &space, offs_t offset, uint
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER(electron_romboxp_device::status_r)
+uint8_t electron_romboxp_device::status_r()
{
// Status: b7: printer Busy
return (m_centronics_busy << 7) | 0x7f;
diff --git a/src/devices/bus/electron/romboxp.h b/src/devices/bus/electron/romboxp.h
index 66c9904e1b9..f5905bc47bf 100644
--- a/src/devices/bus/electron/romboxp.h
+++ b/src/devices/bus/electron/romboxp.h
@@ -40,11 +40,11 @@ protected:
virtual const tiny_rom_entry *device_rom_region() const override;
virtual ioport_constructor device_input_ports() const override;
- virtual uint8_t expbus_r(address_space &space, offs_t offset) override;
- virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t expbus_r(offs_t offset) override;
+ virtual void expbus_w(offs_t offset, uint8_t data) override;
private:
- DECLARE_READ8_MEMBER(status_r);
+ uint8_t status_r();
DECLARE_WRITE_LINE_MEMBER(busy_w);
image_init_result load_rom(device_image_interface &image, generic_slot_device *slot);
diff --git a/src/devices/bus/isa/num9rev.cpp b/src/devices/bus/isa/num9rev.cpp
index 16aab8762fe..ebe44a379f4 100644
--- a/src/devices/bus/isa/num9rev.cpp
+++ b/src/devices/bus/isa/num9rev.cpp
@@ -94,7 +94,7 @@ void isa8_number_9_rev_device::device_start()
{
set_isa_device();
- m_isa->install_memory(0xc0000, 0xc0001, read8_delegate(FUNC(upd7220_device::read), (upd7220_device *)m_upd7220), write8_delegate(FUNC(upd7220_device::write), (upd7220_device *)m_upd7220));
+ 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));
diff --git a/src/devices/bus/isbx/compis_fdc.cpp b/src/devices/bus/isbx/compis_fdc.cpp
index e1d464a37c2..86e15584e8d 100644
--- a/src/devices/bus/isbx/compis_fdc.cpp
+++ b/src/devices/bus/isbx/compis_fdc.cpp
@@ -106,14 +106,14 @@ void compis_fdc_device::device_reset()
// mcs0_r - chip select 0 read
//-------------------------------------------------
-uint8_t compis_fdc_device::mcs0_r(address_space &space, offs_t offset)
+uint8_t compis_fdc_device::mcs0_r(offs_t offset)
{
uint8_t data = 0xff;
switch (BIT(offset, 0))
{
- case 0: data = m_fdc->msr_r(space, 0); break;
- case 1: data = m_fdc->fifo_r(space, 0); break;
+ case 0: data = m_fdc->msr_r(machine().dummy_space(), 0); break;
+ case 1: data = m_fdc->fifo_r(machine().dummy_space(), 0); break;
}
return data;
@@ -124,11 +124,11 @@ uint8_t compis_fdc_device::mcs0_r(address_space &space, offs_t offset)
// mcs0_w - chip select 0 write
//-------------------------------------------------
-void compis_fdc_device::mcs0_w(address_space &space, offs_t offset, uint8_t data)
+void compis_fdc_device::mcs0_w(offs_t offset, uint8_t data)
{
switch (BIT(offset, 0))
{
- case 1: m_fdc->fifo_w(space, 0, data); break;
+ case 1: m_fdc->fifo_w(machine().dummy_space(), 0, data); break;
}
}
@@ -137,7 +137,7 @@ void compis_fdc_device::mcs0_w(address_space &space, offs_t offset, uint8_t data
// mdack_r - DMA acknowledge read
//-------------------------------------------------
-uint8_t compis_fdc_device::mdack_r(address_space &space, offs_t offset)
+uint8_t compis_fdc_device::mdack_r(offs_t offset)
{
return m_fdc->dma_r();
}
@@ -147,7 +147,7 @@ uint8_t compis_fdc_device::mdack_r(address_space &space, offs_t offset)
// mdack_w - DMA acknowledge write
//-------------------------------------------------
-void compis_fdc_device::mdack_w(address_space &space, offs_t offset, uint8_t data)
+void compis_fdc_device::mdack_w(offs_t offset, uint8_t data)
{
m_fdc->dma_w(data);
}
diff --git a/src/devices/bus/isbx/compis_fdc.h b/src/devices/bus/isbx/compis_fdc.h
index 7f33cdd1160..af1d71a3af2 100644
--- a/src/devices/bus/isbx/compis_fdc.h
+++ b/src/devices/bus/isbx/compis_fdc.h
@@ -40,10 +40,10 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// device_isbx_card_interface overrides
- virtual uint8_t mcs0_r(address_space &space, offs_t offset) override;
- virtual void mcs0_w(address_space &space, offs_t offset, uint8_t data) override;
- virtual uint8_t mdack_r(address_space &space, offs_t offset) override;
- virtual void mdack_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t mcs0_r(offs_t offset) override;
+ virtual void mcs0_w(offs_t offset, uint8_t data) override;
+ virtual uint8_t mdack_r(offs_t offset) override;
+ virtual void mdack_w(offs_t offset, uint8_t data) override;
virtual void opt0_w(int state) override;
virtual void opt1_w(int state) override;
diff --git a/src/devices/bus/isbx/isbc_218a.cpp b/src/devices/bus/isbx/isbc_218a.cpp
index 9b142fa95ae..e7380cf075b 100644
--- a/src/devices/bus/isbx/isbc_218a.cpp
+++ b/src/devices/bus/isbx/isbc_218a.cpp
@@ -111,14 +111,14 @@ void isbc_218a_device::device_reset()
// mcs0_r - chip select 0 read
//-------------------------------------------------
-uint8_t isbc_218a_device::mcs0_r(address_space &space, offs_t offset)
+uint8_t isbc_218a_device::mcs0_r(offs_t offset)
{
uint8_t data = 0xff;
switch (BIT(offset, 0))
{
- case 0: data = m_fdc->msr_r(space, 0); break;
- case 1: data = m_fdc->fifo_r(space, 0); break;
+ case 0: data = m_fdc->msr_r(machine().dummy_space(), 0); break;
+ case 1: data = m_fdc->fifo_r(machine().dummy_space(), 0); break;
}
return data;
@@ -129,11 +129,11 @@ uint8_t isbc_218a_device::mcs0_r(address_space &space, offs_t offset)
// mcs0_w - chip select 0 write
//-------------------------------------------------
-void isbc_218a_device::mcs0_w(address_space &space, offs_t offset, uint8_t data)
+void isbc_218a_device::mcs0_w(offs_t offset, uint8_t data)
{
switch (BIT(offset, 0))
{
- case 1: m_fdc->fifo_w(space, 0, data); break;
+ case 1: m_fdc->fifo_w(machine().dummy_space(), 0, data); break;
}
}
@@ -142,7 +142,7 @@ void isbc_218a_device::mcs0_w(address_space &space, offs_t offset, uint8_t data)
// mcs1_r - chip select 1 read
//-------------------------------------------------
-uint8_t isbc_218a_device::mcs1_r(address_space &space, offs_t offset)
+uint8_t isbc_218a_device::mcs1_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -159,7 +159,7 @@ uint8_t isbc_218a_device::mcs1_r(address_space &space, offs_t offset)
// mcs1_w - chip select 1 write
//-------------------------------------------------
-void isbc_218a_device::mcs1_w(address_space &space, offs_t offset, uint8_t data)
+void isbc_218a_device::mcs1_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -182,7 +182,7 @@ void isbc_218a_device::mcs1_w(address_space &space, offs_t offset, uint8_t data)
// mdack_r - DMA acknowledge read
//-------------------------------------------------
-uint8_t isbc_218a_device::mdack_r(address_space &space, offs_t offset)
+uint8_t isbc_218a_device::mdack_r(offs_t offset)
{
return m_fdc->dma_r();
}
@@ -192,7 +192,7 @@ uint8_t isbc_218a_device::mdack_r(address_space &space, offs_t offset)
// mdack_w - DMA acknowledge write
//-------------------------------------------------
-void isbc_218a_device::mdack_w(address_space &space, offs_t offset, uint8_t data)
+void isbc_218a_device::mdack_w(offs_t offset, uint8_t data)
{
m_fdc->dma_w(data);
}
diff --git a/src/devices/bus/isbx/isbc_218a.h b/src/devices/bus/isbx/isbc_218a.h
index 5d0a617e989..bdf37c52806 100644
--- a/src/devices/bus/isbx/isbc_218a.h
+++ b/src/devices/bus/isbx/isbc_218a.h
@@ -40,12 +40,12 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// device_isbx_card_interface overrides
- virtual uint8_t mcs0_r(address_space &space, offs_t offset) override;
- virtual void mcs0_w(address_space &space, offs_t offset, uint8_t data) override;
- virtual uint8_t mcs1_r(address_space &space, offs_t offset) override;
- virtual void mcs1_w(address_space &space, offs_t offset, uint8_t data) override;
- virtual uint8_t mdack_r(address_space &space, offs_t offset) override;
- virtual void mdack_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t mcs0_r(offs_t offset) override;
+ virtual void mcs0_w(offs_t offset, uint8_t data) override;
+ virtual uint8_t mcs1_r(offs_t offset) override;
+ virtual void mcs1_w(offs_t offset, uint8_t data) override;
+ virtual uint8_t mdack_r(offs_t offset) override;
+ virtual void mdack_w(offs_t offset, uint8_t data) override;
virtual void opt0_w(int state) override;
private:
diff --git a/src/devices/bus/isbx/isbx.h b/src/devices/bus/isbx/isbx.h
index d62d9515fe1..0535e461cd7 100644
--- a/src/devices/bus/isbx/isbx.h
+++ b/src/devices/bus/isbx/isbx.h
@@ -47,12 +47,12 @@ class isbx_slot_device;
class device_isbx_card_interface : public device_slot_card_interface
{
public:
- virtual uint8_t mcs0_r(address_space &space, offs_t offset) { return 0xff; }
- virtual void mcs0_w(address_space &space, offs_t offset, uint8_t data) { }
- virtual uint8_t mcs1_r(address_space &space, offs_t offset) { return 0xff; }
- virtual void mcs1_w(address_space &space, offs_t offset, uint8_t data) { }
- virtual uint8_t mdack_r(address_space &space, offs_t offset) { return 0xff; }
- virtual void mdack_w(address_space &space, offs_t offset, uint8_t data) { }
+ virtual uint8_t mcs0_r(offs_t offset) { return 0xff; }
+ virtual void mcs0_w(offs_t offset, uint8_t data) { }
+ virtual uint8_t mcs1_r(offs_t offset) { return 0xff; }
+ virtual void mcs1_w(offs_t offset, uint8_t data) { }
+ virtual uint8_t mdack_r(offs_t offset) { return 0xff; }
+ virtual void mdack_w(offs_t offset, uint8_t data) { }
virtual int opt0_r() { return 1; }
virtual void opt0_w(int state) { }
virtual int opt1_r() { return 1; }
@@ -92,12 +92,12 @@ public:
auto mwait() { return m_write_mwait.bind(); }
// computer interface
- DECLARE_READ8_MEMBER( mcs0_r ) { return m_card ? m_card->mcs0_r(space, offset) : 0xff; }
- DECLARE_WRITE8_MEMBER( mcs0_w ) { if (m_card) m_card->mcs0_w(space, offset, data); }
- DECLARE_READ8_MEMBER( mcs1_r ) { return m_card ? m_card->mcs1_r(space, offset) : 0xff; }
- DECLARE_WRITE8_MEMBER( mcs1_w ) { if (m_card) m_card->mcs1_w(space, offset, data); }
- DECLARE_READ8_MEMBER( mdack_r ) { return m_card ? m_card->mdack_r(space, offset) : 0xff; }
- DECLARE_WRITE8_MEMBER( mdack_w ) { if (m_card) m_card->mdack_w(space, offset, data); }
+ uint8_t mcs0_r(offs_t offset) { return m_card ? m_card->mcs0_r(offset) : 0xff; }
+ void mcs0_w(offs_t offset, uint8_t data) { if (m_card) m_card->mcs0_w(offset, data); }
+ uint8_t mcs1_r(offs_t offset) { return m_card ? m_card->mcs1_r(offset) : 0xff; }
+ void mcs1_w(offs_t offset, uint8_t data) { if (m_card) m_card->mcs1_w(offset, data); }
+ uint8_t mdack_r(offs_t offset) { return m_card ? m_card->mdack_r(offset) : 0xff; }
+ void mdack_w(offs_t offset, uint8_t data) { if (m_card) m_card->mdack_w(offset, data); }
DECLARE_READ_LINE_MEMBER( mpst_r ) { return m_card == nullptr; }
DECLARE_READ_LINE_MEMBER( opt0_r ) { return m_card ? m_card->opt0_r() : 1; }
DECLARE_WRITE_LINE_MEMBER( opt0_w ) { if (m_card) m_card->opt0_w(state); }
diff --git a/src/devices/bus/nasbus/nasbus.cpp b/src/devices/bus/nasbus/nasbus.cpp
index 817e486af8f..ed6cf27bc7a 100644
--- a/src/devices/bus/nasbus/nasbus.cpp
+++ b/src/devices/bus/nasbus/nasbus.cpp
@@ -61,8 +61,8 @@ DEFINE_DEVICE_TYPE(NASBUS, nasbus_device, "nasbus", "NASBUS Backplane")
nasbus_device::nasbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, NASBUS, tag, owner, clock),
- m_program(nullptr),
- m_io(nullptr),
+ m_program(*this, finder_base::DUMMY_TAG, -1),
+ m_io(*this, finder_base::DUMMY_TAG, -1),
m_ram_disable_handler(*this)
{
}
@@ -104,24 +104,6 @@ void nasbus_device::add_card(device_nasbus_card_interface *card)
m_dev.append(*card);
}
-//-------------------------------------------------
-// set_program_space - set address space we are attached to
-//-------------------------------------------------
-
-void nasbus_device::set_program_space(address_space *program)
-{
- m_program = program;
-}
-
-//-------------------------------------------------
-// set_io_space - set address space we are attached to
-//-------------------------------------------------
-
-void nasbus_device::set_io_space(address_space *io)
-{
- m_io = io;
-}
-
// callbacks from slot device to the host
WRITE_LINE_MEMBER( nasbus_device::ram_disable_w ) { m_ram_disable_handler(state); }
diff --git a/src/devices/bus/nasbus/nasbus.h b/src/devices/bus/nasbus/nasbus.h
index bdeb39a879f..c2c11e2db9a 100644
--- a/src/devices/bus/nasbus/nasbus.h
+++ b/src/devices/bus/nasbus/nasbus.h
@@ -149,8 +149,8 @@ public:
void add_card(device_nasbus_card_interface *card);
- void set_program_space(address_space *program);
- void set_io_space(address_space *io);
+ template <typename T> void set_program_space(T &&tag, int spacenum) { m_program.set_tag(std::forward<T>(tag), spacenum); }
+ template <typename T> void set_io_space(T &&tag, int spacenum) { m_io.set_tag(std::forward<T>(tag), spacenum); }
// from cards
DECLARE_WRITE_LINE_MEMBER( ram_disable_w );
@@ -161,8 +161,8 @@ protected:
virtual void device_reset() override;
private:
- address_space *m_program;
- address_space *m_io;
+ required_address_space m_program;
+ required_address_space m_io;
simple_list<device_nasbus_card_interface> m_dev;
diff --git a/src/devices/bus/nes/2a03pur.cpp b/src/devices/bus/nes/2a03pur.cpp
index ddb3820770d..87e364b1638 100644
--- a/src/devices/bus/nes/2a03pur.cpp
+++ b/src/devices/bus/nes/2a03pur.cpp
@@ -91,7 +91,7 @@ void nes_2a03pur_device::pcb_reset()
This has been assigned to iNES mapper 31.
-------------------------------------------------*/
-WRITE8_MEMBER(nes_2a03pur_device::write_l)
+void nes_2a03pur_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("2a03 puritans write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -99,7 +99,7 @@ WRITE8_MEMBER(nes_2a03pur_device::write_l)
m_reg[offset & 7] = data & ((m_prg_chunks << 2) - 1);
}
-READ8_MEMBER(nes_2a03pur_device::read_h)
+uint8_t nes_2a03pur_device::read_h(offs_t offset)
{
LOG_MMC(("2a03 puritans read_h, offset: %04x\n", offset));
diff --git a/src/devices/bus/nes/2a03pur.h b/src/devices/bus/nes/2a03pur.h
index 2ec647ccc4a..970898ff128 100644
--- a/src/devices/bus/nes/2a03pur.h
+++ b/src/devices/bus/nes/2a03pur.h
@@ -16,8 +16,8 @@ public:
// construction/destruction
nes_2a03pur_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/act53.cpp b/src/devices/bus/nes/act53.cpp
index f163be268fd..2a441c36153 100644
--- a/src/devices/bus/nes/act53.cpp
+++ b/src/devices/bus/nes/act53.cpp
@@ -158,7 +158,7 @@ void nes_action53_device::update_mirr()
}
}
-WRITE8_MEMBER(nes_action53_device::write_l)
+void nes_action53_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("action 53 write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -167,7 +167,7 @@ WRITE8_MEMBER(nes_action53_device::write_l)
}
-WRITE8_MEMBER(nes_action53_device::write_h)
+void nes_action53_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("action 53 write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/act53.h b/src/devices/bus/nes/act53.h
index 1f299a5a5da..8e4b1c3b073 100644
--- a/src/devices/bus/nes/act53.h
+++ b/src/devices/bus/nes/act53.h
@@ -14,8 +14,8 @@ public:
// construction/destruction
nes_action53_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/aladdin.cpp b/src/devices/bus/nes/aladdin.cpp
index 4c8a6690be6..db57b61ff00 100644
--- a/src/devices/bus/nes/aladdin.cpp
+++ b/src/devices/bus/nes/aladdin.cpp
@@ -52,7 +52,7 @@ aladdin_cart_interface::~aladdin_cart_interface()
{
}
-READ8_MEMBER(aladdin_cart_interface::read)
+uint8_t aladdin_cart_interface::read(offs_t offset)
{
if (offset < 0x4000)
return m_rom[(m_lobank * 0x4000) + (offset & 0x3fff)];
@@ -84,10 +84,10 @@ void nes_aladdin_slot_device::device_start()
m_cart = dynamic_cast<aladdin_cart_interface *>(get_card_device());
}
-READ8_MEMBER(nes_aladdin_slot_device::read)
+uint8_t nes_aladdin_slot_device::read(offs_t offset)
{
if (m_cart)
- return m_cart->read(space, offset, mem_mask);
+ return m_cart->read(offset);
return 0xff;
}
@@ -296,19 +296,19 @@ void nes_aladdin_device::pcb_reset()
-------------------------------------------------*/
-READ8_MEMBER(nes_aladdin_device::read_h)
+uint8_t nes_aladdin_device::read_h(offs_t offset)
{
LOG_MMC(("aladdin read_h, offset: %04x\n", offset));
// this shall be the proper code, but it's a bit slower, so we access directly the subcart below
- //return m_subslot->read(space, offset, mem_mask);
+ //return m_subslot->read(offset);
if (m_subslot->m_cart)
- return m_subslot->m_cart->read(space, offset, mem_mask);
+ return m_subslot->m_cart->read(offset);
else // this is "fake" in the sense that we fill CPU space with 0xff if no Aladdin cart is loaded
return hi_access_rom(offset);
}
-WRITE8_MEMBER(nes_aladdin_device::write_h)
+void nes_aladdin_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("aladdin write_h, offset: %04x, data: %02x\n", offset, data));
m_subslot->write_prg(offset, data);
diff --git a/src/devices/bus/nes/aladdin.h b/src/devices/bus/nes/aladdin.h
index 1f00d49ba47..9014bf6969a 100644
--- a/src/devices/bus/nes/aladdin.h
+++ b/src/devices/bus/nes/aladdin.h
@@ -24,7 +24,7 @@ public:
virtual ~aladdin_cart_interface();
// reading and writing
- virtual DECLARE_READ8_MEMBER(read);
+ virtual uint8_t read(offs_t offset);
uint8_t *get_cart_base() { return m_rom; }
void set_cart_size(uint32_t size) { m_rom_size = size; m_rom_mask = (size / 0x4000) - 1; }
@@ -82,7 +82,7 @@ public:
// slot interface overrides
virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override;
- virtual DECLARE_READ8_MEMBER(read);
+ uint8_t read(offs_t offset);
void write_prg(uint32_t offset, uint8_t data) { if (m_cart) m_cart->write_prg(offset, data); }
protected:
@@ -160,8 +160,8 @@ public:
// construction/destruction
nes_aladdin_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/ave.cpp b/src/devices/bus/nes/ave.cpp
index 823d66e2e57..2e93ea17501 100644
--- a/src/devices/bus/nes/ave.cpp
+++ b/src/devices/bus/nes/ave.cpp
@@ -122,7 +122,7 @@ void nes_maxi15_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_nina001_device::write_m)
+void nes_nina001_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("nina-001 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -155,7 +155,7 @@ WRITE8_MEMBER(nes_nina001_device::write_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_nina006_device::write_l)
+void nes_nina006_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("nina-006 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -192,7 +192,7 @@ void nes_maxi15_device::update_banks()
}
}
-READ8_MEMBER(nes_maxi15_device::read_h)
+uint8_t nes_maxi15_device::read_h(offs_t offset)
{
LOG_MMC(("Maxi 15 read_h, offset: %04x\n", offset));
diff --git a/src/devices/bus/nes/ave.h b/src/devices/bus/nes/ave.h
index 5fdd233b3c3..b40d2ed6d9d 100644
--- a/src/devices/bus/nes/ave.h
+++ b/src/devices/bus/nes/ave.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_nina001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -34,7 +34,7 @@ public:
// construction/destruction
nes_nina006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -52,7 +52,7 @@ public:
// construction/destruction
nes_maxi15_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual uint8_t read_h(offs_t offset) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/bandai.cpp b/src/devices/bus/nes/bandai.cpp
index 89f8009c0b5..1dd82f1747d 100644
--- a/src/devices/bus/nes/bandai.cpp
+++ b/src/devices/bus/nes/bandai.cpp
@@ -205,7 +205,7 @@ void nes_fjump2_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_oekakids_device::nt_w)
+void nes_oekakids_device::nt_w(offs_t offset, uint8_t data)
{
int page = ((offset & 0xc00) >> 10);
@@ -220,7 +220,7 @@ WRITE8_MEMBER(nes_oekakids_device::nt_w)
m_nt_access[page][offset & 0x3ff] = data;
}
-READ8_MEMBER(nes_oekakids_device::nt_r)
+uint8_t nes_oekakids_device::nt_r(offs_t offset)
{
int page = ((offset & 0xc00) >> 10);
@@ -253,7 +253,7 @@ void nes_oekakids_device::ppu_latch(offs_t offset)
#endif
}
-WRITE8_MEMBER(nes_oekakids_device::write_h)
+void nes_oekakids_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("oeka kids write_h, offset: %04x, data: %02x\n", offset, data));
@@ -308,7 +308,7 @@ void nes_fcg_device::device_timer(emu_timer &timer, device_timer_id id, int para
}
}
-WRITE8_MEMBER(nes_fcg_device::fcg_write)
+void nes_fcg_device::fcg_write(offs_t offset, uint8_t data)
{
LOG_MMC(("lz93d50_write, offset: %04x, data: %02x\n", offset, data));
@@ -346,12 +346,12 @@ WRITE8_MEMBER(nes_fcg_device::fcg_write)
}
}
-WRITE8_MEMBER(nes_fcg_device::write_m)
+void nes_fcg_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("lz93d50 write_m, offset: %04x, data: %02x\n", offset, data));
if (m_battery.empty() && m_prgram.empty())
- fcg_write(space, offset & 0x0f, data, mem_mask);
+ fcg_write(offset & 0x0f, data);
else if (!m_battery.empty())
m_battery[offset] = data;
else
@@ -361,7 +361,7 @@ WRITE8_MEMBER(nes_fcg_device::write_m)
// FCG board does not access regs in 0x8000-0xffff space!
// only later design lz93d50 (and its variants do)!
-WRITE8_MEMBER(nes_lz93d50_24c01_device::write_h)
+void nes_lz93d50_24c01_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("lz93d50_24c01 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -373,12 +373,12 @@ WRITE8_MEMBER(nes_lz93d50_24c01_device::write_h)
m_i2c_dir = BIT(data, 7);
break;
default:
- fcg_write(space, offset & 0x0f, data, mem_mask);
+ fcg_write(offset & 0x0f, data);
break;
}
}
-READ8_MEMBER(nes_lz93d50_24c01_device::read_m)
+uint8_t nes_lz93d50_24c01_device::read_m(offs_t offset)
{
LOG_MMC(("lz93d50 EEPROM read, offset: %04x\n", offset));
if (m_i2c_dir)
@@ -430,19 +430,19 @@ void nes_fjump2_device::set_prg()
prg16_cdef(prg_base | 0x0f);
}
-READ8_MEMBER(nes_fjump2_device::read_m)
+uint8_t nes_fjump2_device::read_m(offs_t offset)
{
LOG_MMC(("fjump2 read_m, offset: %04x\n", offset));
return m_battery[offset & (m_battery.size() - 1)];
}
-WRITE8_MEMBER(nes_fjump2_device::write_m)
+void nes_fjump2_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("fjump2 write_m, offset: %04x, data: %02x\n", offset, data));
m_battery[offset & (m_battery.size() - 1)] = data;
}
-WRITE8_MEMBER(nes_fjump2_device::write_h)
+void nes_fjump2_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("fjump2 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -460,7 +460,7 @@ WRITE8_MEMBER(nes_fjump2_device::write_h)
set_prg();
break;
default:
- fcg_write(space, offset & 0x0f, data, mem_mask);
+ fcg_write(offset & 0x0f, data);
break;
}
}
diff --git a/src/devices/bus/nes/bandai.h b/src/devices/bus/nes/bandai.h
index e44ff99de20..e7cb0a1d0cd 100644
--- a/src/devices/bus/nes/bandai.h
+++ b/src/devices/bus/nes/bandai.h
@@ -17,9 +17,9 @@ public:
// construction/destruction
nes_oekakids_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
- virtual DECLARE_READ8_MEMBER(nt_r) override;
- virtual DECLARE_WRITE8_MEMBER(nt_w) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual uint8_t nt_r(offs_t offset) override;
+ virtual void nt_w(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -46,8 +46,8 @@ public:
nes_fcg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
- virtual DECLARE_WRITE8_MEMBER(fcg_write);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ void fcg_write(offs_t offset, uint8_t data);
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -75,7 +75,7 @@ public:
nes_lz93d50_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override { fcg_write(space, offset, data, mem_mask); }
+ virtual void write_h(offs_t offset, uint8_t data) override { fcg_write(offset, data); }
protected:
nes_lz93d50_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
@@ -90,8 +90,8 @@ public:
// construction/destruction
nes_lz93d50_24c01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -131,9 +131,9 @@ public:
// construction/destruction
nes_fjump2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/benshieng.cpp b/src/devices/bus/nes/benshieng.cpp
index 921d7c5b56f..2b3c7818f58 100644
--- a/src/devices/bus/nes/benshieng.cpp
+++ b/src/devices/bus/nes/benshieng.cpp
@@ -86,7 +86,7 @@ void nes_benshieng_device::update_banks()
chr2_6(m_mmc_vrom_bank[3], CHRROM);
}
-WRITE8_MEMBER(nes_benshieng_device::write_h)
+void nes_benshieng_device::write_h(offs_t offset, uint8_t data)
{
uint8_t helper = (offset & 0xc00) >> 10;
LOG_MMC(("benshieng write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/benshieng.h b/src/devices/bus/nes/benshieng.h
index c25aba92508..599de5a6e9c 100644
--- a/src/devices/bus/nes/benshieng.h
+++ b/src/devices/bus/nes/benshieng.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_benshieng_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/bootleg.cpp b/src/devices/bus/nes/bootleg.cpp
index 49cccaa6a3b..d585a8df9de 100644
--- a/src/devices/bus/nes/bootleg.cpp
+++ b/src/devices/bus/nes/bootleg.cpp
@@ -570,7 +570,7 @@ void nes_ax5705_device::set_prg()
prg8_ab(m_mmc_prg_bank[1]);
}
-WRITE8_MEMBER(nes_ax5705_device::write_h)
+void nes_ax5705_device::write_h(offs_t offset, uint8_t data)
{
uint8_t bank;
LOG_MMC(("ax5705 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -652,7 +652,7 @@ void nes_sc127_device::hblank_irq(int scanline, int vblank, int blanked)
}
}
-WRITE8_MEMBER(nes_sc127_device::write_h)
+void nes_sc127_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("sc127 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -715,7 +715,7 @@ void nes_mbaby_device::device_timer(emu_timer &timer, device_timer_id id, int pa
}
}
-WRITE8_MEMBER(nes_mbaby_device::write_h)
+void nes_mbaby_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("Mario Baby write_h, offset: %04x, data: %02x\n", offset, data));
@@ -746,7 +746,7 @@ WRITE8_MEMBER(nes_mbaby_device::write_h)
}
}
-READ8_MEMBER(nes_mbaby_device::read_m)
+uint8_t nes_mbaby_device::read_m(offs_t offset)
{
LOG_MMC(("Mario Baby read_m, offset: %04x\n", offset));
return m_prg[(m_latch * 0x2000) + (offset & 0x1fff)];
@@ -764,7 +764,7 @@ READ8_MEMBER(nes_mbaby_device::read_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_asn_device::write_h)
+void nes_asn_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("Ai Senshi Nicol write_h, offset: %04x, data: %02x\n", offset, data));
@@ -775,7 +775,7 @@ WRITE8_MEMBER(nes_asn_device::write_h)
m_latch = data;
}
-READ8_MEMBER(nes_asn_device::read_m)
+uint8_t nes_asn_device::read_m(offs_t offset)
{
LOG_MMC(("Ai Senshi Nicol read_m, offset: %04x\n", offset));
return m_prg[((m_latch * 0x2000) + (offset & 0x1fff)) & (m_prg_size - 1)];
@@ -811,7 +811,7 @@ void nes_smb3p_device::device_timer(emu_timer &timer, device_timer_id id, int pa
}
}
-WRITE8_MEMBER(nes_smb3p_device::write_h)
+void nes_smb3p_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("btl_smb3_w, offset: %04x, data: %02x\n", offset, data));
switch (offset & 0x0f)
@@ -879,7 +879,7 @@ void nes_btl_dn_device::hblank_irq(int scanline, int vblank, int blanked )
hold_irq_line();
}
-WRITE8_MEMBER(nes_btl_dn_device::write_h)
+void nes_btl_dn_device::write_h(offs_t offset, uint8_t data)
{
uint8_t bank;
LOG_MMC(("btl_dn write_h, offset: %04x, data: %02x\n", offset, data));
@@ -933,13 +933,13 @@ WRITE8_MEMBER(nes_btl_dn_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_whirl2706_device::write_h)
+void nes_whirl2706_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("whirl2706 write_h, offset: %04x, data: %02x\n", offset, data));
m_latch = data;
}
-READ8_MEMBER(nes_whirl2706_device::read_m)
+uint8_t nes_whirl2706_device::read_m(offs_t offset)
{
LOG_MMC(("whirl2706 read_m, offset: %04x\n", offset));
return m_prg[(m_latch * 0x2000 + (offset & 0x1fff)) & (m_prg_size - 1)];
@@ -975,7 +975,7 @@ void nes_smb2j_device::device_timer(emu_timer &timer, device_timer_id id, int pa
}
}
-WRITE8_MEMBER(nes_smb2j_device::write_l)
+void nes_smb2j_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("smb2j write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -984,7 +984,7 @@ WRITE8_MEMBER(nes_smb2j_device::write_l)
m_irq_enable = data & 3; // maybe also m_irq_count = 0?!?
}
-WRITE8_MEMBER(nes_smb2j_device::write_h)
+void nes_smb2j_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("smb2j write_h, offset: %04x, data: %02x\n", offset, data));
@@ -992,7 +992,7 @@ WRITE8_MEMBER(nes_smb2j_device::write_h)
m_irq_enable = data & 3;
}
-WRITE8_MEMBER(nes_smb2j_device::write_ex)
+void nes_smb2j_device::write_ex(offs_t offset, uint8_t data)
{
LOG_MMC(("smb2j write_ex, offset: %04x, data: %02x\n", offset, data));
@@ -1010,7 +1010,7 @@ WRITE8_MEMBER(nes_smb2j_device::write_ex)
}
}
-READ8_MEMBER(nes_smb2j_device::read_l)
+uint8_t nes_smb2j_device::read_l(offs_t offset)
{
LOG_MMC(("smb2j read_l, offset: %04x\n", offset));
offset += 0x100;
@@ -1018,10 +1018,10 @@ READ8_MEMBER(nes_smb2j_device::read_l)
if (offset >= 0x1000)
return m_prg[0x10000 + (offset & 0x0fff)];
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
-READ8_MEMBER(nes_smb2j_device::read_m)
+uint8_t nes_smb2j_device::read_m(offs_t offset)
{
LOG_MMC(("smb2j read_m, offset: %04x\n", offset));
return m_prg[0x4000 + offset];
@@ -1057,7 +1057,7 @@ void nes_smb2ja_device::device_timer(emu_timer &timer, device_timer_id id, int p
}
}
-WRITE8_MEMBER(nes_smb2ja_device::write_h)
+void nes_smb2ja_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("smb2ja write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1076,7 +1076,7 @@ WRITE8_MEMBER(nes_smb2ja_device::write_h)
}
}
-READ8_MEMBER(nes_smb2ja_device::read_m)
+uint8_t nes_smb2ja_device::read_m(offs_t offset)
{
LOG_MMC(("smb2ja read_m, offset: %04x\n", offset));
return m_prg[(0xfe * 0x2000 + (offset & 0x1fff)) & (m_prg_size - 1)];
@@ -1114,7 +1114,7 @@ void nes_smb2jb_device::device_timer(emu_timer &timer, device_timer_id id, int p
}
}
-WRITE8_MEMBER(nes_smb2jb_device::write_l)
+void nes_smb2jb_device::write_l(offs_t offset, uint8_t data)
{
uint8_t prg;
LOG_MMC(("smb2jb write_l, offset: %04x, data: %02x\n", offset, data));
@@ -1134,14 +1134,14 @@ WRITE8_MEMBER(nes_smb2jb_device::write_l)
}
}
-READ8_MEMBER(nes_smb2jb_device::read_m)
+uint8_t nes_smb2jb_device::read_m(offs_t offset)
{
LOG_MMC(("smb2jb read_m, offset: %04x\n", offset));
return m_prg[((0x0f * 0x2000) + (offset & 0x1fff)) & (m_prg_size - 1)];
}
/* This goes to 0x4020-0x403f & 0x40a0-0x40bf */
-WRITE8_MEMBER(nes_smb2jb_device::write_ex)
+void nes_smb2jb_device::write_ex(offs_t offset, uint8_t data)
{
uint8_t prg;
LOG_MMC(("smb2jb write_ex, offset: %04x, data: %02x\n", offset, data));
@@ -1169,7 +1169,7 @@ WRITE8_MEMBER(nes_smb2jb_device::write_ex)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_09034a_device::write_ex)
+void nes_09034a_device::write_ex(offs_t offset, uint8_t data)
{
LOG_MMC(("09-034a write_ex, offset: %04x, data: %02x\n", offset, data));
@@ -1177,7 +1177,7 @@ WRITE8_MEMBER(nes_09034a_device::write_ex)
m_reg = data & 1;
}
-READ8_MEMBER(nes_09034a_device::read_m)
+uint8_t nes_09034a_device::read_m(offs_t offset)
{
LOG_MMC(("09-034a read_m, offset: %04x\n", offset));
// in 0x6000-0x7fff is mapped the 2nd PRG chip which starts after 32K (hence the +4)
@@ -1198,7 +1198,7 @@ READ8_MEMBER(nes_09034a_device::read_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_tobidase_device::write_l)
+void nes_tobidase_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("tobidase write_h, offset: %04x, data: %02x\n", offset, data));
offset += 0x4100;
@@ -1207,7 +1207,7 @@ WRITE8_MEMBER(nes_tobidase_device::write_l)
m_latch = data & 0x0f;
}
-READ8_MEMBER(nes_tobidase_device::read_m)
+uint8_t nes_tobidase_device::read_m(offs_t offset)
{
LOG_MMC(("tobidase read_m, offset: %04x\n", offset));
if (m_latch >= 0x0c)
@@ -1229,13 +1229,13 @@ READ8_MEMBER(nes_tobidase_device::read_m)
-------------------------------------------------*/
-READ8_MEMBER(nes_lh32_device::read_m)
+uint8_t nes_lh32_device::read_m(offs_t offset)
{
LOG_MMC(("lh32 read_m, offset: %04x\n", offset));
return m_prg[(m_latch * 0x2000) + (offset & 0x1fff)];
}
-READ8_MEMBER(nes_lh32_device::read_h)
+uint8_t nes_lh32_device::read_h(offs_t offset)
{
// LOG_MMC(("lh32 read_h, offset: %04x\n", offset));
@@ -1245,7 +1245,7 @@ READ8_MEMBER(nes_lh32_device::read_h)
return hi_access_rom(offset);
}
-WRITE8_MEMBER(nes_lh32_device::write_m)
+void nes_lh32_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("lh32 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1256,7 +1256,7 @@ WRITE8_MEMBER(nes_lh32_device::write_m)
}
}
-WRITE8_MEMBER(nes_lh32_device::write_h)
+void nes_lh32_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("lh32 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1285,13 +1285,13 @@ void nes_lh10_device::update_prg()
prg8_ab(m_reg[7]);
}
-READ8_MEMBER(nes_lh10_device::read_m)
+uint8_t nes_lh10_device::read_m(offs_t offset)
{
LOG_MMC(("lh10 read_m, offset: %04x\n", offset));
return m_prg[(0x0e * 0x2000) + (offset & 0x1fff)];
}
-READ8_MEMBER(nes_lh10_device::read_h)
+uint8_t nes_lh10_device::read_h(offs_t offset)
{
// LOG_MMC(("lh10 read_h, offset: %04x\n", offset));
@@ -1301,7 +1301,7 @@ READ8_MEMBER(nes_lh10_device::read_h)
return hi_access_rom(offset);
}
-WRITE8_MEMBER(nes_lh10_device::write_h)
+void nes_lh10_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("lh10 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1354,13 +1354,13 @@ void nes_lh53_device::device_timer(emu_timer &timer, device_timer_id id, int par
}
}
-READ8_MEMBER(nes_lh53_device::read_m)
+uint8_t nes_lh53_device::read_m(offs_t offset)
{
LOG_MMC(("lh53 read_m, offset: %04x\n", offset));
return m_prg[(m_reg * 0x2000) + (offset & 0x1fff)];
}
-READ8_MEMBER(nes_lh53_device::read_h)
+uint8_t nes_lh53_device::read_h(offs_t offset)
{
// LOG_MMC(("lh53 read_h, offset: %04x\n", offset));
@@ -1370,7 +1370,7 @@ READ8_MEMBER(nes_lh53_device::read_h)
return hi_access_rom(offset);
}
-WRITE8_MEMBER(nes_lh53_device::write_h)
+void nes_lh53_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("lh53 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1412,7 +1412,7 @@ WRITE8_MEMBER(nes_lh53_device::write_h)
-------------------------------------------------*/
-READ8_MEMBER(nes_2708_device::read_m)
+uint8_t nes_2708_device::read_m(offs_t offset)
{
LOG_MMC(("btl-2708 read_m, offset: %04x\n", offset));
if (!m_reg[1])
@@ -1421,14 +1421,14 @@ READ8_MEMBER(nes_2708_device::read_m)
return m_prg[(m_reg[0] * 0x2000) + (offset & 0x1fff)];
}
-WRITE8_MEMBER(nes_2708_device::write_m)
+void nes_2708_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("btl-2708 write_m, offset: %04x, data: %02x\n", offset, data));
// if (!m_reg[1])
m_prgram[offset] = data; // lower 8K of WRAM
}
-READ8_MEMBER(nes_2708_device::read_h)
+uint8_t nes_2708_device::read_h(offs_t offset)
{
// LOG_MMC(("btl-2708 read_h, offset: %04x\n", offset));
@@ -1438,7 +1438,7 @@ READ8_MEMBER(nes_2708_device::read_h)
return hi_access_rom(offset);
}
-WRITE8_MEMBER(nes_2708_device::write_h)
+void nes_2708_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("btl-2708 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1475,20 +1475,20 @@ WRITE8_MEMBER(nes_2708_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_ac08_device::write_ex)
+void nes_ac08_device::write_ex(offs_t offset, uint8_t data)
{
LOG_MMC(("AC-08 write_ex, offset: %04x, data: %02x\n", offset, data));
if (offset == 5) // $4025
set_nt_mirroring(!BIT(data, 3) ? PPU_MIRROR_VERT : PPU_MIRROR_HORZ);
}
-READ8_MEMBER(nes_ac08_device::read_m)
+uint8_t nes_ac08_device::read_m(offs_t offset)
{
LOG_MMC(("AC-08 read_m, offset: %04x\n", offset));
return m_prg[(m_latch * 0x2000) + (offset & 0x1fff)];
}
-WRITE8_MEMBER(nes_ac08_device::write_h)
+void nes_ac08_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("AC-08 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1511,13 +1511,13 @@ WRITE8_MEMBER(nes_ac08_device::write_h)
-------------------------------------------------*/
-READ8_MEMBER(nes_unl_bb_device::read_m)
+uint8_t nes_unl_bb_device::read_m(offs_t offset)
{
LOG_MMC(("unl-bb read_m, offset: %04x\n", offset));
return m_prg[(((m_reg[0] & 3 & m_prg_mask) * 0x2000) + (offset & 0x1fff))];
}
-WRITE8_MEMBER(nes_unl_bb_device::write_h)
+void nes_unl_bb_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("unl-bb write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1549,7 +1549,7 @@ WRITE8_MEMBER(nes_unl_bb_device::write_h)
-------------------------------------------------*/
-READ8_MEMBER(nes_mmalee_device::read_m)
+uint8_t nes_mmalee_device::read_m(offs_t offset)
{
LOG_MMC(("mmalee read_m, offset: %04x\n", offset));
@@ -1561,7 +1561,7 @@ READ8_MEMBER(nes_mmalee_device::read_m)
return ((offset + 0x6000) & 0xff00) >> 8;
}
-WRITE8_MEMBER(nes_mmalee_device::write_m)
+void nes_mmalee_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("mmalee write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1594,7 +1594,7 @@ void nes_shuiguan_device::device_timer(emu_timer &timer, device_timer_id id, int
}
}
-WRITE8_MEMBER(nes_shuiguan_device::write_h)
+void nes_shuiguan_device::write_h(offs_t offset, uint8_t data)
{
int bank;
LOG_MMC(("shuiguan write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1646,7 +1646,7 @@ WRITE8_MEMBER(nes_shuiguan_device::write_h)
}
}
-READ8_MEMBER(nes_shuiguan_device::read_m)
+uint8_t nes_shuiguan_device::read_m(offs_t offset)
{
// always first bank??
LOG_MMC(("shuiguan read_m, offset: %04x\n", offset));
@@ -1670,7 +1670,7 @@ READ8_MEMBER(nes_shuiguan_device::read_m)
-------------------------------------------------*/
-READ8_MEMBER(nes_rt01_device::read_h)
+uint8_t nes_rt01_device::read_h(offs_t offset)
{
// LOG_MMC(("rt01 read_h, offset: %04x\n", offset));
diff --git a/src/devices/bus/nes/bootleg.h b/src/devices/bus/nes/bootleg.h
index a048f0955d4..42213b131b8 100644
--- a/src/devices/bus/nes/bootleg.h
+++ b/src/devices/bus/nes/bootleg.h
@@ -14,7 +14,7 @@ public:
// construction/destruction
nes_ax5705_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -36,7 +36,7 @@ class nes_sc127_device : public nes_nrom_device
public:
// construction/destruction
nes_sc127_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -58,8 +58,8 @@ class nes_mbaby_device : public nes_nrom_device
public:
// construction/destruction
nes_mbaby_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -87,8 +87,8 @@ public:
// construction/destruction
nes_asn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -109,7 +109,7 @@ public:
// construction/destruction
nes_smb3p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -134,7 +134,7 @@ class nes_btl_dn_device : public nes_nrom_device
public:
// construction/destruction
nes_btl_dn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -156,8 +156,8 @@ public:
// construction/destruction
nes_whirl2706_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -178,11 +178,11 @@ public:
// construction/destruction
nes_smb2j_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_ex) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_ex(offs_t offset, uint8_t data) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -207,8 +207,8 @@ class nes_smb2ja_device : public nes_nrom_device
public:
// construction/destruction
nes_smb2ja_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -233,9 +233,9 @@ class nes_smb2jb_device : public nes_nrom_device
public:
// construction/destruction
nes_smb2jb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_ex) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_ex(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -261,8 +261,8 @@ public:
// construction/destruction
nes_09034a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_ex) override;
- virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual void write_ex(offs_t offset, uint8_t data) override;
+ virtual uint8_t read_m(offs_t offset) override;
virtual void pcb_reset() override;
@@ -283,8 +283,8 @@ public:
// construction/destruction
nes_tobidase_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -305,10 +305,10 @@ public:
// construction/destruction
nes_lh32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -329,9 +329,9 @@ public:
// construction/destruction
nes_lh10_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -354,10 +354,10 @@ public:
// construction/destruction
nes_lh53_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override {}
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override {}
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -385,10 +385,10 @@ public:
// construction/destruction
nes_2708_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -408,9 +408,9 @@ public:
// nes_ac08_device/destruction
nes_ac08_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_ex) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_ex(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -429,8 +429,8 @@ class nes_unl_bb_device : public nes_nrom_device
public:
// construction/destruction
nes_unl_bb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -450,8 +450,8 @@ public:
// construction/destruction
nes_mmalee_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -468,8 +468,8 @@ public:
// construction/destruction
nes_shuiguan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -496,7 +496,7 @@ public:
// construction/destruction
nes_rt01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual uint8_t read_h(offs_t offset) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/camerica.cpp b/src/devices/bus/nes/camerica.cpp
index 7b9d413f6c9..5870b2911ab 100644
--- a/src/devices/bus/nes/camerica.cpp
+++ b/src/devices/bus/nes/camerica.cpp
@@ -136,7 +136,7 @@ void nes_golden5_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bf9093_device::write_h)
+void nes_bf9093_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bf9093 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -174,7 +174,7 @@ WRITE8_MEMBER(nes_bf9093_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bf9096_device::write_h)
+void nes_bf9096_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bf9096 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -203,7 +203,7 @@ WRITE8_MEMBER(nes_bf9096_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_golden5_device::write_h)
+void nes_golden5_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("golden5 write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/camerica.h b/src/devices/bus/nes/camerica.h
index b7a4782c342..7688249a64c 100644
--- a/src/devices/bus/nes/camerica.h
+++ b/src/devices/bus/nes/camerica.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_bf9093_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -34,8 +34,8 @@ public:
// construction/destruction
nes_bf9096_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override { write_h(space, offset, data, mem_mask); }
+ virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual void write_m(offs_t offset, uint8_t data) override { write_h(offset, data); }
virtual void pcb_reset() override;
@@ -56,7 +56,7 @@ public:
// construction/destruction
nes_golden5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/cne.cpp b/src/devices/bus/nes/cne.cpp
index 1f0ad793937..c81e7a2bdc8 100644
--- a/src/devices/bus/nes/cne.cpp
+++ b/src/devices/bus/nes/cne.cpp
@@ -112,7 +112,7 @@ void nes_cne_shlz_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_cne_decathl_device::write_h)
+void nes_cne_decathl_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("cne_decathl_w, offset: %04x, data: %02x\n", offset, data));
@@ -146,7 +146,7 @@ WRITE8_MEMBER(nes_cne_decathl_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_cne_fsb_device::write_m)
+void nes_cne_fsb_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("cne_fsb write_m, offset: %04x, data: %02x\n", offset, data));
@@ -184,7 +184,7 @@ WRITE8_MEMBER(nes_cne_fsb_device::write_m)
m_battery[offset] = data;
}
-READ8_MEMBER(nes_cne_fsb_device::read_m)
+uint8_t nes_cne_fsb_device::read_m(offs_t offset)
{
LOG_MMC(("cne_fsb read_m, offset: %04x\n", offset));
@@ -211,7 +211,7 @@ READ8_MEMBER(nes_cne_fsb_device::read_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_cne_shlz_device::write_l)
+void nes_cne_shlz_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("cne_shlz write_l, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/cne.h b/src/devices/bus/nes/cne.h
index d5e117c791a..da0623cbde3 100644
--- a/src/devices/bus/nes/cne.h
+++ b/src/devices/bus/nes/cne.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_cne_decathl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -34,8 +34,8 @@ public:
// construction/destruction
nes_cne_fsb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -53,7 +53,7 @@ public:
// construction/destruction
nes_cne_shlz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/cony.cpp b/src/devices/bus/nes/cony.cpp
index 78c89a57141..e42ae833f82 100644
--- a/src/devices/bus/nes/cony.cpp
+++ b/src/devices/bus/nes/cony.cpp
@@ -174,7 +174,7 @@ void nes_cony_device::device_timer(emu_timer &timer, device_timer_id id, int par
}
}
-WRITE8_MEMBER(nes_cony_device::write_l)
+void nes_cony_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("cony write_l, offset: %04x, data: %02x\n", offset, data));
@@ -182,7 +182,7 @@ WRITE8_MEMBER(nes_cony_device::write_l)
m_low_reg[offset & 0x03] = data;
}
-READ8_MEMBER(nes_cony_device::read_l)
+uint8_t nes_cony_device::read_l(offs_t offset)
{
LOG_MMC(("cony read_l, offset: %04x\n", offset));
@@ -229,7 +229,7 @@ void nes_cony_device::set_chr()
}
}
-WRITE8_MEMBER(nes_cony_device::write_h)
+void nes_cony_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("cony write_h, offset: %04x, data: %02x\n", offset, data));
@@ -310,7 +310,7 @@ WRITE8_MEMBER(nes_cony_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_yoko_device::write_l)
+void nes_yoko_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("yoko write_l, offset: %04x, data: %02x\n", offset, data));
@@ -318,7 +318,7 @@ WRITE8_MEMBER(nes_yoko_device::write_l)
m_low_reg[offset & 0x03] = data;
}
-READ8_MEMBER(nes_yoko_device::read_l)
+uint8_t nes_yoko_device::read_l(offs_t offset)
{
LOG_MMC(("yoko read_l, offset: %04x\n", offset));
@@ -359,7 +359,7 @@ void nes_yoko_device::set_chr()
chr2_6(m_reg[7], CHRROM);
}
-WRITE8_MEMBER(nes_yoko_device::write_h)
+void nes_yoko_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("yoko write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/cony.h b/src/devices/bus/nes/cony.h
index b7b759a7fe1..aa767a88c13 100644
--- a/src/devices/bus/nes/cony.h
+++ b/src/devices/bus/nes/cony.h
@@ -16,9 +16,9 @@ public:
// construction/destruction
nes_cony_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -54,9 +54,9 @@ public:
// construction/destruction
nes_yoko_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/datach.cpp b/src/devices/bus/nes/datach.cpp
index b95f03cfb84..5262b6d927a 100644
--- a/src/devices/bus/nes/datach.cpp
+++ b/src/devices/bus/nes/datach.cpp
@@ -52,7 +52,7 @@ datach_cart_interface::~datach_cart_interface()
{
}
-READ8_MEMBER(datach_cart_interface::read)
+uint8_t datach_cart_interface::read(offs_t offset)
{
if (offset < 0x4000)
return m_rom[(m_bank * 0x4000) + (offset & 0x3fff)];
@@ -84,10 +84,10 @@ void nes_datach_slot_device::device_start()
m_cart = dynamic_cast<datach_cart_interface *>(get_card_device());
}
-READ8_MEMBER(nes_datach_slot_device::read)
+uint8_t nes_datach_slot_device::read(offs_t offset)
{
if (m_cart)
- return m_cart->read(space, offset, mem_mask);
+ return m_cart->read(offset);
return 0xff;
}
@@ -284,7 +284,7 @@ void nes_datach_device::pcb_reset()
-------------------------------------------------*/
-READ8_MEMBER(nes_datach_device::read_m)
+uint8_t nes_datach_device::read_m(offs_t offset)
{
LOG_MMC(("Datach read_m, offset: %04x\n", offset));
uint8_t i2c_val = 0;
@@ -301,19 +301,19 @@ READ8_MEMBER(nes_datach_device::read_m)
}
-READ8_MEMBER(nes_datach_device::read_h)
+uint8_t nes_datach_device::read_h(offs_t offset)
{
LOG_MMC(("Datach read_h, offset: %04x\n", offset));
// this shall be the proper code, but it's a bit slower, so we access directly the subcart below
- //return m_subslot->read(space, offset, mem_mask);
+ //return m_subslot->read(offset);
if (m_subslot->m_cart)
- return m_subslot->m_cart->read(space, offset, mem_mask);
+ return m_subslot->m_cart->read(offset);
else // this is "fake" in the sense that we fill CPU space with 0xff if no Datach cart is loaded
return hi_access_rom(offset);
}
-WRITE8_MEMBER(nes_datach_device::write_h)
+void nes_datach_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("Datach write_h, offset: %04x, data: %02x\n", offset, data));
@@ -353,7 +353,7 @@ WRITE8_MEMBER(nes_datach_device::write_h)
#endif
break;
default:
- fcg_write(space, offset & 0x0f, data, mem_mask);
+ fcg_write(offset & 0x0f, data);
break;
}
}
diff --git a/src/devices/bus/nes/datach.h b/src/devices/bus/nes/datach.h
index e1b14b01aa8..81865baa69f 100644
--- a/src/devices/bus/nes/datach.h
+++ b/src/devices/bus/nes/datach.h
@@ -25,7 +25,7 @@ public:
virtual ~datach_cart_interface();
// reading and writing
- virtual DECLARE_READ8_MEMBER(read);
+ virtual uint8_t read(offs_t offset);
uint8_t *get_cart_base() { return m_rom; }
void write_prg_bank(uint8_t bank) { m_bank = bank; }
@@ -83,7 +83,7 @@ public:
// slot interface overrides
virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override;
- virtual DECLARE_READ8_MEMBER(read);
+ uint8_t read(offs_t offset);
void write_prg_bank(uint8_t bank) { if (m_cart) m_cart->write_prg_bank(bank); }
protected:
@@ -152,9 +152,9 @@ public:
// construction/destruction
nes_datach_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/discrete.cpp b/src/devices/bus/nes/discrete.cpp
index 2e1f6a4c81b..2fb7883d063 100644
--- a/src/devices/bus/nes/discrete.cpp
+++ b/src/devices/bus/nes/discrete.cpp
@@ -134,7 +134,7 @@ void nes_74x161x138_device::pcb_reset()
-------------------------------------------------*/
// there are two 'variants' depending on hardwired or mapper ctrl mirroring
-WRITE8_MEMBER(nes_74x161x161x32_device::write_h)
+void nes_74x161x161x32_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("74x161x161x32 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -155,7 +155,7 @@ WRITE8_MEMBER(nes_74x161x161x32_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_74x139x74_device::write_m)
+void nes_74x139x74_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("74x139x74 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -179,7 +179,7 @@ WRITE8_MEMBER(nes_74x139x74_device::write_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_74x377_device::write_h)
+void nes_74x377_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("74x377 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -200,7 +200,7 @@ WRITE8_MEMBER(nes_74x377_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_74x161x138_device::write_m)
+void nes_74x161x138_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("74x161x138 write_m, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/discrete.h b/src/devices/bus/nes/discrete.h
index 51576a77e41..861b8b643bf 100644
--- a/src/devices/bus/nes/discrete.h
+++ b/src/devices/bus/nes/discrete.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_74x161x161x32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -34,7 +34,7 @@ public:
// construction/destruction
nes_74x139x74_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -52,7 +52,7 @@ public:
// construction/destruction
nes_74x377_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -70,7 +70,7 @@ public:
// construction/destruction
nes_74x161x138_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/disksys.cpp b/src/devices/bus/nes/disksys.cpp
index 32a364aa9e4..71101492822 100644
--- a/src/devices/bus/nes/disksys.cpp
+++ b/src/devices/bus/nes/disksys.cpp
@@ -173,7 +173,7 @@ void nes_disksys_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_disksys_device::write_h)
+void nes_disksys_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("Famicom Disk System write_h, offset %04x, data: %02x\n", offset, data));
@@ -181,7 +181,7 @@ WRITE8_MEMBER(nes_disksys_device::write_h)
m_prgram[offset + 0x2000] = data;
}
-READ8_MEMBER(nes_disksys_device::read_h)
+uint8_t nes_disksys_device::read_h(offs_t offset)
{
LOG_MMC(("Famicom Disk System read_h, offset: %04x\n", offset));
@@ -191,13 +191,13 @@ READ8_MEMBER(nes_disksys_device::read_h)
return m_2c33_rom[offset & 0x1fff];
}
-WRITE8_MEMBER(nes_disksys_device::write_m)
+void nes_disksys_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("Famicom Disk System write_m, offset: %04x, data: %02x\n", offset, data));
m_prgram[offset] = data;
}
-READ8_MEMBER(nes_disksys_device::read_m)
+uint8_t nes_disksys_device::read_m(offs_t offset)
{
LOG_MMC(("Famicom Disk System read_m, offset: %04x\n", offset));
return m_prgram[offset];
@@ -209,7 +209,7 @@ void nes_disksys_device::hblank_irq(int scanline, int vblank, int blanked)
hold_irq_line();
}
-WRITE8_MEMBER(nes_disksys_device::write_ex)
+void nes_disksys_device::write_ex(offs_t offset, uint8_t data)
{
LOG_MMC(("Famicom Disk System write_ex, offset: %04x, data: %02x\n", offset, data));
@@ -281,7 +281,7 @@ WRITE8_MEMBER(nes_disksys_device::write_ex)
}
}
-READ8_MEMBER(nes_disksys_device::read_ex)
+uint8_t nes_disksys_device::read_ex(offs_t offset)
{
LOG_MMC(("Famicom Disk System read_ex, offset: %04x\n", offset));
uint8_t ret;
diff --git a/src/devices/bus/nes/disksys.h b/src/devices/bus/nes/disksys.h
index 907ee06abef..1e3e45afb1e 100644
--- a/src/devices/bus/nes/disksys.h
+++ b/src/devices/bus/nes/disksys.h
@@ -17,12 +17,12 @@ public:
// construction/destruction
nes_disksys_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_ex) override;
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_ex) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_ex(offs_t offset) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_ex(offs_t offset, uint8_t data) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void disk_flip_side() override;
diff --git a/src/devices/bus/nes/ggenie.cpp b/src/devices/bus/nes/ggenie.cpp
index 462c9c5da37..bb5866feac7 100644
--- a/src/devices/bus/nes/ggenie.cpp
+++ b/src/devices/bus/nes/ggenie.cpp
@@ -80,7 +80,7 @@ void nes_ggenie_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_ggenie_device::write_h)
+void nes_ggenie_device::write_h(offs_t offset, uint8_t data)
{
// LOG_MMC(("axrom write_h, offset: %04x, data: %02x\n", offset, data));
if (!m_gg_bypass)
@@ -150,22 +150,22 @@ WRITE8_MEMBER(nes_ggenie_device::write_h)
}
}
else
- m_ggslot->write_h(space, offset, data, mem_mask);
+ m_ggslot->write_h(offset, data);
}
-WRITE8_MEMBER(nes_ggenie_device::write_m)
+void nes_ggenie_device::write_m(offs_t offset, uint8_t data)
{
if (m_gg_bypass && m_ggslot)
- m_ggslot->write_m(space, offset, data, mem_mask);
+ m_ggslot->write_m(offset, data);
}
-WRITE8_MEMBER(nes_ggenie_device::write_l)
+void nes_ggenie_device::write_l(offs_t offset, uint8_t data)
{
if (m_gg_bypass && m_ggslot)
- m_ggslot->write_l(space, offset, data, mem_mask);
+ m_ggslot->write_l(offset, data);
}
-READ8_MEMBER(nes_ggenie_device::read_h)
+uint8_t nes_ggenie_device::read_h(offs_t offset)
{
if (m_gg_bypass && m_ggslot->m_cart)
{
@@ -186,29 +186,29 @@ READ8_MEMBER(nes_ggenie_device::read_h)
return hi_access_rom(offset);
}
-READ8_MEMBER(nes_ggenie_device::read_m)
+uint8_t nes_ggenie_device::read_m(offs_t offset)
{
if (m_gg_bypass && m_ggslot->m_cart)
- return m_ggslot->m_cart->read_m(space, offset, mem_mask);
+ return m_ggslot->m_cart->read_m(offset);
return 0xff;
}
-READ8_MEMBER(nes_ggenie_device::read_l)
+uint8_t nes_ggenie_device::read_l(offs_t offset)
{
if (m_gg_bypass && m_ggslot->m_cart)
- return m_ggslot->m_cart->read_l(space, offset, mem_mask);
+ return m_ggslot->m_cart->read_l(offset);
return 0xff;
}
-WRITE8_MEMBER(nes_ggenie_device::chr_w)
+void nes_ggenie_device::chr_w(offs_t offset, uint8_t data)
{
int bank = offset >> 10;
if (m_gg_bypass && m_ggslot->m_cart)
{
- m_ggslot->m_cart->chr_w(space, offset, data, mem_mask);
+ m_ggslot->m_cart->chr_w(offset, data);
return;
}
@@ -216,24 +216,24 @@ WRITE8_MEMBER(nes_ggenie_device::chr_w)
m_chr_access[bank][offset & 0x3ff] = data;
}
-READ8_MEMBER(nes_ggenie_device::chr_r)
+uint8_t nes_ggenie_device::chr_r(offs_t offset)
{
int bank = offset >> 10;
if (m_gg_bypass && m_ggslot->m_cart)
- return m_ggslot->m_cart->chr_r(space, offset, mem_mask);
+ return m_ggslot->m_cart->chr_r(offset);
return m_chr_access[bank][offset & 0x3ff];
}
-WRITE8_MEMBER(nes_ggenie_device::nt_w)
+void nes_ggenie_device::nt_w(offs_t offset, uint8_t data)
{
int page = ((offset & 0xc00) >> 10);
if (m_gg_bypass && m_ggslot->m_cart)
{
- m_ggslot->m_cart->nt_w(space, offset, data, mem_mask);
+ m_ggslot->m_cart->nt_w(offset, data);
return;
}
@@ -243,12 +243,12 @@ WRITE8_MEMBER(nes_ggenie_device::nt_w)
m_nt_access[page][offset & 0x3ff] = data;
}
-READ8_MEMBER(nes_ggenie_device::nt_r)
+uint8_t nes_ggenie_device::nt_r(offs_t offset)
{
int page = ((offset & 0xc00) >> 10);
if (m_gg_bypass && m_ggslot->m_cart)
- return m_ggslot->m_cart->nt_r(space, offset, mem_mask);
+ return m_ggslot->m_cart->nt_r(offset);
return m_nt_access[page][offset & 0x3ff];
}
diff --git a/src/devices/bus/nes/ggenie.h b/src/devices/bus/nes/ggenie.h
index 1ca577ec7b0..2d6974be849 100644
--- a/src/devices/bus/nes/ggenie.h
+++ b/src/devices/bus/nes/ggenie.h
@@ -16,17 +16,17 @@ public:
// construction/destruction
nes_ggenie_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
-
- virtual DECLARE_READ8_MEMBER(chr_r) override;
- virtual DECLARE_WRITE8_MEMBER(chr_w) override;
- virtual DECLARE_READ8_MEMBER(nt_r) override;
- virtual DECLARE_WRITE8_MEMBER(nt_w) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
+
+ virtual uint8_t chr_r(offs_t offset) override;
+ virtual void chr_w(offs_t offset, uint8_t data) override;
+ virtual uint8_t nt_r(offs_t offset) override;
+ virtual void nt_w(offs_t offset, uint8_t data) override;
void hblank_irq(int scanline, int vblank, int blanked) override { if (m_gg_bypass && m_ggslot->m_cart) m_ggslot->m_cart->hblank_irq(scanline, vblank, blanked); }
void scanline_irq(int scanline, int vblank, int blanked) override { if (m_gg_bypass && m_ggslot->m_cart) m_ggslot->m_cart->scanline_irq(scanline, vblank, blanked); }
diff --git a/src/devices/bus/nes/henggedianzi.cpp b/src/devices/bus/nes/henggedianzi.cpp
index 5d75850a0c8..0f9acd05d45 100644
--- a/src/devices/bus/nes/henggedianzi.cpp
+++ b/src/devices/bus/nes/henggedianzi.cpp
@@ -135,7 +135,7 @@ void nes_hengg_shjy3_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_hengg_srich_device::write_h)
+void nes_hengg_srich_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("hengg_srich write_h, offset: %04x, data: %02x\n", offset, data));
@@ -162,7 +162,7 @@ WRITE8_MEMBER(nes_hengg_srich_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_hengg_xhzs_device::write_l)
+void nes_hengg_xhzs_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("hengg_xhzs write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x4100;
@@ -171,7 +171,7 @@ WRITE8_MEMBER(nes_hengg_xhzs_device::write_l)
prg32(data >> 1);
}
-WRITE8_MEMBER(nes_hengg_xhzs_device::write_h)
+void nes_hengg_xhzs_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("hengg_xhzs write_h, offset: %04x, data: %02x\n", offset, data));
@@ -225,7 +225,7 @@ void nes_hengg_shjy3_device::update_banks()
}
}
-WRITE8_MEMBER(nes_hengg_shjy3_device::write_h)
+void nes_hengg_shjy3_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("shjy3 write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/henggedianzi.h b/src/devices/bus/nes/henggedianzi.h
index d74da743425..0bf0b2faebc 100644
--- a/src/devices/bus/nes/henggedianzi.h
+++ b/src/devices/bus/nes/henggedianzi.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_hengg_srich_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -34,8 +34,8 @@ public:
// construction/destruction
nes_hengg_xhzs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -53,7 +53,7 @@ public:
// construction/destruction
nes_hengg_shjy3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/hes.cpp b/src/devices/bus/nes/hes.cpp
index 8d1d3a7a590..946ea1f9585 100644
--- a/src/devices/bus/nes/hes.cpp
+++ b/src/devices/bus/nes/hes.cpp
@@ -73,7 +73,7 @@ void nes_hes_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_hes_device::write_l)
+void nes_hes_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("hes write_l, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/hes.h b/src/devices/bus/nes/hes.h
index d45d20a1a3f..ea72578ad98 100644
--- a/src/devices/bus/nes/hes.h
+++ b/src/devices/bus/nes/hes.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_hes_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/hosenkan.cpp b/src/devices/bus/nes/hosenkan.cpp
index 4200655897e..ae7749b7e9a 100644
--- a/src/devices/bus/nes/hosenkan.cpp
+++ b/src/devices/bus/nes/hosenkan.cpp
@@ -105,7 +105,7 @@ void nes_hosenkan_device::hblank_irq( int scanline, int vblank, int blanked )
m_irq_clear = 0;
}
-WRITE8_MEMBER(nes_hosenkan_device::write_h)
+void nes_hosenkan_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("hosenkan write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/hosenkan.h b/src/devices/bus/nes/hosenkan.h
index 153638a9cbe..163aef76edc 100644
--- a/src/devices/bus/nes/hosenkan.h
+++ b/src/devices/bus/nes/hosenkan.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_hosenkan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/irem.cpp b/src/devices/bus/nes/irem.cpp
index 15ef687dbea..c55cb588506 100644
--- a/src/devices/bus/nes/irem.cpp
+++ b/src/devices/bus/nes/irem.cpp
@@ -166,7 +166,7 @@ void nes_h3001_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_lrog017_device::write_h)
+void nes_lrog017_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("lrog017 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -185,7 +185,7 @@ WRITE8_MEMBER(nes_lrog017_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_holydivr_device::write_h)
+void nes_holydivr_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("holy diver write_h, offset: %04x, data: %02x\n", offset, data));
@@ -209,7 +209,7 @@ WRITE8_MEMBER(nes_holydivr_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_tam_s1_device::write_h)
+void nes_tam_s1_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("tam s1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -233,7 +233,7 @@ WRITE8_MEMBER(nes_tam_s1_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_g101_device::write_h)
+void nes_g101_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("g101 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -299,7 +299,7 @@ void nes_h3001_device::device_timer(emu_timer &timer, device_timer_id id, int pa
}
}
-WRITE8_MEMBER(nes_h3001_device::write_h)
+void nes_h3001_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("h3001 write_h, offset %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/irem.h b/src/devices/bus/nes/irem.h
index a50077e70a3..82fd0815c38 100644
--- a/src/devices/bus/nes/irem.h
+++ b/src/devices/bus/nes/irem.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_lrog017_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -34,7 +34,7 @@ public:
// construction/destruction
nes_holydivr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -52,7 +52,7 @@ public:
// construction/destruction
nes_tam_s1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -70,7 +70,7 @@ public:
// construction/destruction
nes_g101_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -90,7 +90,7 @@ public:
// construction/destruction
nes_h3001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/jaleco.cpp b/src/devices/bus/nes/jaleco.cpp
index 907580d6a1e..740c3c799b8 100644
--- a/src/devices/bus/nes/jaleco.cpp
+++ b/src/devices/bus/nes/jaleco.cpp
@@ -253,7 +253,7 @@ void nes_ss88006_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_jf11_device::write_m)
+void nes_jf11_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("jf11 write_m, offset: %04x, data: %02x\n", offset, data));
chr8(data, CHRROM);
@@ -274,7 +274,7 @@ WRITE8_MEMBER(nes_jf11_device::write_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_jf13_device::write_m)
+void nes_jf13_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("jf13 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -301,7 +301,7 @@ WRITE8_MEMBER(nes_jf13_device::write_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_jf16_device::write_h)
+void nes_jf16_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("jf16 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -330,7 +330,7 @@ WRITE8_MEMBER(nes_jf16_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_jf17_device::write_h)
+void nes_jf17_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("jf17 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -345,7 +345,7 @@ WRITE8_MEMBER(nes_jf17_device::write_h)
m_latch = data;
}
-WRITE8_MEMBER(nes_jf17_adpcm_device::write_h)
+void nes_jf17_adpcm_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("jf17 + ADPCM write_h, offset: %04x, data: %02x\n", offset, data));
@@ -379,7 +379,7 @@ WRITE8_MEMBER(nes_jf17_adpcm_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_jf19_device::write_h)
+void nes_jf19_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("jf19 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -392,7 +392,7 @@ WRITE8_MEMBER(nes_jf19_device::write_h)
chr8(data & 0x0f, CHRROM);
}
-WRITE8_MEMBER(nes_jf19_adpcm_device::write_h)
+void nes_jf19_adpcm_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("jf19 + ADPCM write_h, offset: %04x, data: %02x\n", offset, data));
@@ -474,7 +474,7 @@ void nes_ss88006_device::device_timer(emu_timer &timer, device_timer_id id, int
}
}
-WRITE8_MEMBER(nes_ss88006_device::ss88006_write)
+void nes_ss88006_device::ss88006_write(offs_t offset, uint8_t data)
{
uint8_t bank;
LOG_MMC(("ss88006 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -564,7 +564,7 @@ WRITE8_MEMBER(nes_ss88006_device::ss88006_write)
// bits2-bits6 are sample number, bit1 is setup/enable/disable
// program first write sample # + bit1 set to 'init' the sample
// then it writes sample # + bit1 clear to 'start' the sample
-void nes_ss88006_adpcm_device::ss88006_adpcm_write(address_space &space, offs_t offset, uint8_t data, samples_device *dev)
+void nes_ss88006_adpcm_device::ss88006_adpcm_write(offs_t offset, uint8_t data, samples_device &dev)
{
LOG_MMC(("ss88006 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -575,13 +575,13 @@ void nes_ss88006_adpcm_device::ss88006_adpcm_write(address_space &space, offs_t
{
// printf("sample write: data: %02x\n", data);
if ((m_latch & 2) && !(data & 2))
- dev->start((data >> 2) & 0x1f, (data >> 2) & 0x1f);
+ dev.start((data >> 2) & 0x1f, (data >> 2) & 0x1f);
}
m_latch = data;
break;
default:
- ss88006_write(space, offset, data);
+ ss88006_write(offset, data);
break;
}
}
diff --git a/src/devices/bus/nes/jaleco.h b/src/devices/bus/nes/jaleco.h
index ed8c04da7a0..53cc5716ce3 100644
--- a/src/devices/bus/nes/jaleco.h
+++ b/src/devices/bus/nes/jaleco.h
@@ -17,7 +17,7 @@ public:
// construction/destruction
nes_jf11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -35,7 +35,7 @@ public:
// construction/destruction
nes_jf13_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -58,7 +58,7 @@ public:
// construction/destruction
nes_jf16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -76,7 +76,7 @@ public:
// construction/destruction
nes_jf17_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -98,7 +98,7 @@ public:
// construction/destruction
nes_jf17_adpcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
protected:
virtual void device_add_mconfig(machine_config &config) override;
@@ -116,7 +116,7 @@ public:
// construction/destruction
nes_jf19_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -136,7 +136,7 @@ public:
// construction/destruction
nes_jf19_adpcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
protected:
virtual void device_add_mconfig(machine_config &config) override;
@@ -154,8 +154,8 @@ public:
// construction/destruction
nes_ss88006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(ss88006_write);
- virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_write(space, offset, data, mem_mask); }
+ void ss88006_write(offs_t offset, uint8_t data);
+ virtual void write_h(offs_t offset, uint8_t data) override { ss88006_write(offset, data); }
virtual void pcb_reset() override;
@@ -188,7 +188,7 @@ protected:
// construction/destruction
nes_ss88006_adpcm_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
- void ss88006_adpcm_write(address_space &space, offs_t offset, uint8_t data, samples_device *dev);
+ void ss88006_adpcm_write(offs_t offset, uint8_t data, samples_device &dev);
};
@@ -204,7 +204,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); }
+ virtual void write_h(offs_t offset, uint8_t data) override { ss88006_adpcm_write(offset, data, *m_samples); }
required_device<samples_device> m_samples;
};
@@ -222,7 +222,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); }
+ virtual void write_h(offs_t offset, uint8_t data) override { ss88006_adpcm_write(offset, data, *m_samples); }
required_device<samples_device> m_samples;
};
@@ -240,7 +240,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); }
+ virtual void write_h(offs_t offset, uint8_t data) override { ss88006_adpcm_write(offset, data, *m_samples); }
required_device<samples_device> m_samples;
};
@@ -258,7 +258,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); }
+ virtual void write_h(offs_t offset, uint8_t data) override { ss88006_adpcm_write(offset, data, *m_samples); }
required_device<samples_device> m_samples;
};
diff --git a/src/devices/bus/nes/jy.cpp b/src/devices/bus/nes/jy.cpp
index 33c1e6e6cac..8a54624cd5a 100644
--- a/src/devices/bus/nes/jy.cpp
+++ b/src/devices/bus/nes/jy.cpp
@@ -144,14 +144,14 @@ void nes_jy_typea_device::pcb_reset()
-------------------------------------------------*/
-READ8_MEMBER(nes_jy_typea_device::nt_r)
+uint8_t nes_jy_typea_device::nt_r(offs_t offset)
{
int page = ((offset & 0xc00) >> 10);
irq_clock(0, 2);
return m_nt_access[page][offset & 0x3ff];
}
-READ8_MEMBER(nes_jy_typea_device::chr_r)
+uint8_t nes_jy_typea_device::chr_r(offs_t offset)
{
int bank = offset >> 10;
irq_clock(0, 2);
@@ -241,7 +241,7 @@ void nes_jy_typea_device::scanline_irq(int scanline, int vblank, int blanked)
// 0x5000-0x5fff : sort of protection?
-READ8_MEMBER(nes_jy_typea_device::read_l)
+uint8_t nes_jy_typea_device::read_l(offs_t offset)
{
LOG_MMC(("JY Company write_m, offset: %04x\n", offset));
offset += 0x100;
@@ -249,7 +249,7 @@ READ8_MEMBER(nes_jy_typea_device::read_l)
if (offset >= 0x1000 && offset < 0x1800)
{
// bit6/bit7 DSW read
- return m_open_bus & 0x3f;
+ return get_open_bus() & 0x3f;
}
if (offset >= 0x1800)
@@ -262,10 +262,10 @@ READ8_MEMBER(nes_jy_typea_device::read_l)
return m_latch;
}
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
-WRITE8_MEMBER(nes_jy_typea_device::write_l)
+void nes_jy_typea_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("JY Company write_m, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -282,14 +282,14 @@ WRITE8_MEMBER(nes_jy_typea_device::write_l)
}
// 0x6000-0x7fff : WRAM or open bus
-READ8_MEMBER(nes_jy_typea_device::read_m)
+uint8_t nes_jy_typea_device::read_m(offs_t offset)
{
LOG_MMC(("JY Company write_m, offset: %04x\n", offset));
if (m_reg[0] & 0x80)
return m_prg[(m_bank_6000 & m_prg_mask) * 0x2000 + (offset & 0x1fff)];
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
@@ -425,7 +425,7 @@ void nes_jy_typea_device::update_banks(int reg)
}
-WRITE8_MEMBER(nes_jy_typea_device::write_h)
+void nes_jy_typea_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("JY Company write_m, offset: %04x, data: %02x\n", offset, data));
@@ -569,7 +569,7 @@ void nes_jy_typec_device::update_mirror_typec()
update_mirror_typea();
}
-READ8_MEMBER(nes_jy_typec_device::chr_r)
+uint8_t nes_jy_typec_device::chr_r(offs_t offset)
{
int bank = offset >> 10;
diff --git a/src/devices/bus/nes/jy.h b/src/devices/bus/nes/jy.h
index 80be5d98631..d318bfae60a 100644
--- a/src/devices/bus/nes/jy.h
+++ b/src/devices/bus/nes/jy.h
@@ -16,13 +16,13 @@ public:
// construction/destruction
nes_jy_typea_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
- virtual DECLARE_READ8_MEMBER(chr_r) override;
- virtual DECLARE_READ8_MEMBER(nt_r) override;
+ virtual uint8_t chr_r(offs_t offset) override;
+ virtual uint8_t nt_r(offs_t offset) override;
virtual void scanline_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -90,7 +90,7 @@ public:
// construction/destruction
nes_jy_typec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(chr_r) override;
+ virtual uint8_t chr_r(offs_t offset) override;
protected:
void update_mirror_typec();
diff --git a/src/devices/bus/nes/kaiser.cpp b/src/devices/bus/nes/kaiser.cpp
index 2e228782785..52690376e4b 100644
--- a/src/devices/bus/nes/kaiser.cpp
+++ b/src/devices/bus/nes/kaiser.cpp
@@ -295,7 +295,7 @@ void nes_ks7037_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_ks7058_device::write_h)
+void nes_ks7058_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("ks7058 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -322,7 +322,7 @@ WRITE8_MEMBER(nes_ks7058_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_ks7022_device::write_h)
+void nes_ks7022_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("ks7022 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -333,7 +333,7 @@ WRITE8_MEMBER(nes_ks7022_device::write_h)
m_latch = data & 0x0f;
}
-READ8_MEMBER(nes_ks7022_device::read_h)
+uint8_t nes_ks7022_device::read_h(offs_t offset)
{
LOG_MMC(("ks7022 read_h, offset: %04x\n", offset));
@@ -388,7 +388,7 @@ void nes_ks7032_device::prg_update()
prg8_cd(m_reg[3]);
}
-WRITE8_MEMBER(nes_ks7032_device::ks7032_write)
+void nes_ks7032_device::ks7032_write(offs_t offset, uint8_t data)
{
LOG_MMC(("ks7032_write, offset: %04x, data: %02x\n", offset, data));
@@ -419,7 +419,7 @@ WRITE8_MEMBER(nes_ks7032_device::ks7032_write)
}
}
-READ8_MEMBER(nes_ks7032_device::read_m)
+uint8_t nes_ks7032_device::read_m(offs_t offset)
{
LOG_MMC(("ks7032 read_m, offset: %04x\n", offset));
return m_prg[((m_reg[4] * 0x2000) + (offset & 0x1fff)) & (m_prg_size - 1)];
@@ -438,7 +438,7 @@ READ8_MEMBER(nes_ks7032_device::read_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_ks202_device::write_h)
+void nes_ks202_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("ks202 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -458,12 +458,12 @@ WRITE8_MEMBER(nes_ks202_device::write_h)
}
break;
default:
- ks7032_write(space, offset, data, mem_mask);
+ ks7032_write(offset, data);
break;
}
}
-READ8_MEMBER(nes_ks202_device::read_m)
+uint8_t nes_ks202_device::read_m(offs_t offset)
{
LOG_MMC(("ks202 read_m, offset: %04x\n", offset));
return m_prgram[offset & 0x1fff];
@@ -499,7 +499,7 @@ void nes_ks7017_device::device_timer(emu_timer &timer, device_timer_id id, int p
}
}
-WRITE8_MEMBER(nes_ks7017_device::write_l)
+void nes_ks7017_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("ks7017 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -512,7 +512,7 @@ WRITE8_MEMBER(nes_ks7017_device::write_l)
prg16_89ab(m_latch);
}
-WRITE8_MEMBER(nes_ks7017_device::write_ex)
+void nes_ks7017_device::write_ex(offs_t offset, uint8_t data)
{
LOG_MMC(("ks7017 write_ex, offset: %04x, data: %02x\n", offset, data));
offset += 0x20;
@@ -530,7 +530,7 @@ WRITE8_MEMBER(nes_ks7017_device::write_ex)
set_nt_mirroring(BIT(data, 3) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
}
-READ8_MEMBER(nes_ks7017_device::read_ex)
+uint8_t nes_ks7017_device::read_ex(offs_t offset)
{
LOG_MMC(("ks7017 read_ex, offset: %04x\n", offset));
offset += 0x20;
@@ -542,7 +542,7 @@ READ8_MEMBER(nes_ks7017_device::read_ex)
return temp;
}
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
/*-------------------------------------------------
@@ -557,7 +557,7 @@ READ8_MEMBER(nes_ks7017_device::read_ex)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_ks7012_device::write_h)
+void nes_ks7012_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("ks7012 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -580,13 +580,13 @@ WRITE8_MEMBER(nes_ks7012_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_ks7013b_device::write_m)
+void nes_ks7013b_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("ks7013b write_l, offset: %04x, data: %02x\n", offset, data));
prg16_89ab(data);
}
-WRITE8_MEMBER(nes_ks7013b_device::write_h)
+void nes_ks7013b_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("ks7013b write_h, offset: %04x, data: %02x\n", offset, data));
set_nt_mirroring((data & 1) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
@@ -613,20 +613,20 @@ WRITE8_MEMBER(nes_ks7013b_device::write_h)
-------------------------------------------------*/
-READ8_MEMBER(nes_ks7031_device::read_m)
+uint8_t nes_ks7031_device::read_m(offs_t offset)
{
// LOG_MMC(("ks7031 read_m, offset: %04x\n", offset));
return m_prg[(m_reg[(offset >> 11) & 3] * 0x0800) + (offset & 0x7ff)];
}
-READ8_MEMBER(nes_ks7031_device::read_h)
+uint8_t nes_ks7031_device::read_h(offs_t offset)
{
// here the first 32K are accessed, but in 16x2K blocks loaded in reverse order
int accessed_2k = (offset >> 11) & 0x0f;
return m_prg[((0x0f - accessed_2k) * 0x0800) + (offset & 0x7ff)];
}
-WRITE8_MEMBER(nes_ks7031_device::write_h)
+void nes_ks7031_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("ks7031 write_h, offset: %04x, data: %02x\n", offset, data));
m_reg[(offset >> 11) & 3] = data & 0x3f;
@@ -646,13 +646,13 @@ WRITE8_MEMBER(nes_ks7031_device::write_h)
-------------------------------------------------*/
-READ8_MEMBER(nes_ks7016_device::read_m)
+uint8_t nes_ks7016_device::read_m(offs_t offset)
{
// LOG_MMC(("ks7016 read_m, offset: %04x\n", offset));
return m_prg[((m_reg * 0x2000) + (offset & 0x1fff)) & (m_prg_size - 1)];
}
-WRITE8_MEMBER(nes_ks7016_device::write_h)
+void nes_ks7016_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("ks7016 write_h, offset: %04x, data: %02x\n", offset, data));
uint8_t mask = offset & 0x30;
@@ -692,7 +692,7 @@ void nes_ks7037_device::update_prg()
set_nt_page(3, CIRAM, m_reg[5] & 1, 1);
}
-READ8_MEMBER(nes_ks7037_device::read_m)
+uint8_t nes_ks7037_device::read_m(offs_t offset)
{
// LOG_MMC(("ks7037 read_m, offset: %04x\n", offset));
if (offset < 0x1000)
@@ -701,14 +701,14 @@ READ8_MEMBER(nes_ks7037_device::read_m)
return m_prg[(0x1e * 0x1000) + (offset & 0x0fff)];
}
-WRITE8_MEMBER(nes_ks7037_device::write_m)
+void nes_ks7037_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("ks7037 write_m, offset: %04x, data: %02x\n", offset, data));
if (offset < 0x1000)
m_prgram[offset & 0x0fff] = data;
}
-READ8_MEMBER(nes_ks7037_device::read_h)
+uint8_t nes_ks7037_device::read_h(offs_t offset)
{
// LOG_MMC(("ks7037 read_h, offset: %04x\n", offset));
@@ -718,7 +718,7 @@ READ8_MEMBER(nes_ks7037_device::read_h)
return hi_access_rom(offset);
}
-WRITE8_MEMBER(nes_ks7037_device::write_h)
+void nes_ks7037_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("ks7037 write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/kaiser.h b/src/devices/bus/nes/kaiser.h
index 8c544059aa9..e0e31658cdb 100644
--- a/src/devices/bus/nes/kaiser.h
+++ b/src/devices/bus/nes/kaiser.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_ks7058_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -34,8 +34,8 @@ public:
// construction/destruction
nes_ks7022_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -56,9 +56,9 @@ public:
// construction/destruction
nes_ks7032_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(ks7032_write);
- virtual DECLARE_WRITE8_MEMBER(write_h) override { ks7032_write(space, offset, data, mem_mask); }
+ virtual uint8_t read_m(offs_t offset) override;
+ void ks7032_write(offs_t offset, uint8_t data);
+ virtual void write_h(offs_t offset, uint8_t data) override { ks7032_write(offset, data); }
virtual void pcb_reset() override;
@@ -91,8 +91,8 @@ public:
nes_ks202_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
};
@@ -104,9 +104,9 @@ public:
// construction/destruction
nes_ks7017_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_ex) override;
- virtual DECLARE_WRITE8_MEMBER(write_ex) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual uint8_t read_ex(offs_t offset) override;
+ virtual void write_ex(offs_t offset, uint8_t data) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -135,7 +135,7 @@ public:
// construction/destruction
nes_ks7012_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -152,8 +152,8 @@ public:
// construction/destruction
nes_ks7013b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -171,9 +171,9 @@ public:
// construction/destruction
nes_ks7031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -194,8 +194,8 @@ public:
// construction/destruction
nes_ks7016_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -215,10 +215,10 @@ public:
// construction/destruction
nes_ks7037_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/karastudio.cpp b/src/devices/bus/nes/karastudio.cpp
index 0e076b8091c..fc98a658213 100644
--- a/src/devices/bus/nes/karastudio.cpp
+++ b/src/devices/bus/nes/karastudio.cpp
@@ -60,7 +60,7 @@ kstudio_cart_interface::~kstudio_cart_interface()
{
}
-READ8_MEMBER(kstudio_cart_interface::read)
+uint8_t kstudio_cart_interface::read(offs_t offset)
{
return m_rom[(m_bank * 0x4000) + (offset & 0x3fff)];
}
@@ -89,10 +89,10 @@ void nes_kstudio_slot_device::device_start()
m_cart = dynamic_cast<kstudio_cart_interface *>(get_card_device());
}
-READ8_MEMBER(nes_kstudio_slot_device::read)
+uint8_t nes_kstudio_slot_device::read(offs_t offset)
{
if (m_cart)
- return m_cart->read(space, offset, mem_mask);
+ return m_cart->read(offset);
return 0xff;
}
@@ -225,29 +225,29 @@ void nes_karaokestudio_device::pcb_reset()
-------------------------------------------------*/
-READ8_MEMBER(nes_karaokestudio_device::read_m)
+uint8_t nes_karaokestudio_device::read_m(offs_t offset)
{
LOG_MMC(("karaoke studio read_m, offset: %04x\n", offset));
return m_mic_ipt->read();
}
-READ8_MEMBER(nes_karaokestudio_device::read_h)
+uint8_t nes_karaokestudio_device::read_h(offs_t offset)
{
LOG_MMC(("karaoke studio read_h, offset: %04x\n", offset));
// this shall be the proper code, but it's a bit slower, so we access directly the subcart below
- //return m_subslot->read(space, offset, mem_mask);
+ //return m_subslot->read(offset);
// access expansion cart only if all of the followings are verified
// * we are in $8000-$bfff range
// * there has been a bankswitch write to map the expansion to such range
// * there actually is an expansion cart mounted
if (offset < 0x4000 && m_exp_active && m_subslot->m_cart)
- return m_subslot->m_cart->read(space, offset, mem_mask);
+ return m_subslot->m_cart->read(offset);
else
return hi_access_rom(offset);
}
-WRITE8_MEMBER(nes_karaokestudio_device::write_h)
+void nes_karaokestudio_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("karaoke studio write_h, offset: %04x, data: %02x\n", offset, data));
// bit3 1 = M ROM (main unit), 0=E ROM (expansion)
diff --git a/src/devices/bus/nes/karastudio.h b/src/devices/bus/nes/karastudio.h
index 4932c8b9426..fcb481f046e 100644
--- a/src/devices/bus/nes/karastudio.h
+++ b/src/devices/bus/nes/karastudio.h
@@ -24,7 +24,7 @@ public:
virtual ~kstudio_cart_interface();
// reading and writing
- virtual DECLARE_READ8_MEMBER(read);
+ virtual uint8_t read(offs_t offset);
uint8_t *get_cart_base() { return m_rom; }
void write_prg_bank(uint8_t bank) { m_bank = bank; }
@@ -78,7 +78,7 @@ public:
// slot interface overrides
virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override;
- virtual DECLARE_READ8_MEMBER(read);
+ uint8_t read(offs_t offset);
void write_prg_bank(uint8_t bank) { if (m_cart) m_cart->write_prg_bank(bank); }
protected:
@@ -135,9 +135,9 @@ public:
// construction/destruction
nes_karaokestudio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/konami.cpp b/src/devices/bus/nes/konami.cpp
index 2963336f92e..e979132223d 100644
--- a/src/devices/bus/nes/konami.cpp
+++ b/src/devices/bus/nes/konami.cpp
@@ -239,7 +239,7 @@ void nes_konami_vrc7_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_konami_vrc1_device::write_h)
+void nes_konami_vrc1_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("VRC-1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -280,7 +280,7 @@ WRITE8_MEMBER(nes_konami_vrc1_device::write_h)
-------------------------------------------------*/
-READ8_MEMBER(nes_konami_vrc2_device::read_m)
+uint8_t nes_konami_vrc2_device::read_m(offs_t offset)
{
LOG_MMC(("VRC-2 read_m, offset: %04x\n", offset));
@@ -289,10 +289,10 @@ READ8_MEMBER(nes_konami_vrc2_device::read_m)
else if (!m_prgram.empty())
return m_prgram[offset & (m_prgram.size() - 1)];
else // sort of protection? it returns open bus in $7000-$7fff and (open bus & 0xfe) | m_latch in $6000-$6fff
- return (offset < 0x1000) ? ((m_open_bus & 0xfe) | (m_latch & 1)) : m_open_bus;
+ return (offset < 0x1000) ? ((get_open_bus() & 0xfe) | (m_latch & 1)) : get_open_bus();
}
-WRITE8_MEMBER(nes_konami_vrc2_device::write_m)
+void nes_konami_vrc2_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("VRC-2 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -304,7 +304,7 @@ WRITE8_MEMBER(nes_konami_vrc2_device::write_m)
m_latch = data;
}
-WRITE8_MEMBER(nes_konami_vrc2_device::write_h)
+void nes_konami_vrc2_device::write_h(offs_t offset, uint8_t data)
{
uint8_t bank, shift, mask;
uint16_t add_lines = ((offset << (9 - m_vrc_ls_prg_a)) & 0x200) | ((offset << (8 - m_vrc_ls_prg_b)) & 0x100);
@@ -385,7 +385,7 @@ void nes_konami_vrc3_device::device_timer(emu_timer &timer, device_timer_id id,
}
}
-WRITE8_MEMBER(nes_konami_vrc3_device::write_h)
+void nes_konami_vrc3_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("VRC-3 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -482,7 +482,7 @@ void nes_konami_vrc4_device::set_prg()
}
}
-WRITE8_MEMBER(nes_konami_vrc4_device::write_h)
+void nes_konami_vrc4_device::write_h(offs_t offset, uint8_t data)
{
uint8_t bank, shift, mask;
uint16_t add_lines = ((offset << (9 - m_vrc_ls_prg_a)) & 0x200) | ((offset << (8 - m_vrc_ls_prg_b)) & 0x100);
@@ -564,7 +564,7 @@ WRITE8_MEMBER(nes_konami_vrc4_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_konami_vrc6_device::write_h)
+void nes_konami_vrc6_device::write_h(offs_t offset, uint8_t data)
{
uint8_t bank;
uint16_t add_lines = ((offset << (9 - m_vrc_ls_prg_a)) & 0x200) | ((offset << (8 - m_vrc_ls_prg_b)) & 0x100);
@@ -579,10 +579,10 @@ WRITE8_MEMBER(nes_konami_vrc6_device::write_h)
prg8_cd(data);
break;
case 0x1000: // pulse 1 & global control
- m_vrc6snd->write(space, add_lines>>8, data);
+ m_vrc6snd->write(add_lines>>8, data);
break;
case 0x2000: // pulse 2
- m_vrc6snd->write(space, (add_lines>>8) | 0x100, data);
+ m_vrc6snd->write((add_lines>>8) | 0x100, data);
break;
case 0x3000:
if (add_lines == 0x300)
@@ -596,7 +596,7 @@ WRITE8_MEMBER(nes_konami_vrc6_device::write_h)
}
}
else // saw
- m_vrc6snd->write(space, (add_lines>>8) | 0x200, data);
+ m_vrc6snd->write((add_lines>>8) | 0x200, data);
break;
case 0x5000:
case 0x6000:
@@ -659,7 +659,7 @@ void nes_konami_vrc6_device::device_add_mconfig(machine_config &config)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_konami_vrc7_device::write_h)
+void nes_konami_vrc7_device::write_h(offs_t offset, uint8_t data)
{
uint8_t bank;
LOG_MMC(("VRC-7 write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/konami.h b/src/devices/bus/nes/konami.h
index db269170f53..ed8d0caea3c 100644
--- a/src/devices/bus/nes/konami.h
+++ b/src/devices/bus/nes/konami.h
@@ -18,7 +18,7 @@ public:
// construction/destruction
nes_konami_vrc1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -39,9 +39,9 @@ public:
// construction/destruction
nes_konami_vrc2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -63,7 +63,7 @@ public:
// construction/destruction
nes_konami_vrc3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -91,7 +91,7 @@ public:
// construction/destruction
nes_konami_vrc4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -126,7 +126,7 @@ public:
// construction/destruction
nes_konami_vrc6_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
protected:
// device-level overrides
@@ -146,7 +146,7 @@ public:
// construction/destruction
nes_konami_vrc7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/legacy.cpp b/src/devices/bus/nes/legacy.cpp
index d2b1c697296..a3ab9377082 100644
--- a/src/devices/bus/nes/legacy.cpp
+++ b/src/devices/bus/nes/legacy.cpp
@@ -136,7 +136,7 @@ void nes_ffe8_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_ffe3_device::write_h)
+void nes_ffe3_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("mapper8 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -174,7 +174,7 @@ void nes_ffe4_device::device_timer(emu_timer &timer, device_timer_id id, int par
}
}
-WRITE8_MEMBER(nes_ffe4_device::write_l)
+void nes_ffe4_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("mapper6 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -202,7 +202,7 @@ WRITE8_MEMBER(nes_ffe4_device::write_l)
}
}
-WRITE8_MEMBER(nes_ffe4_device::chr_w)
+void nes_ffe4_device::chr_w(offs_t offset, uint8_t data)
{
int bank = offset >> 10;
if (m_exram_enabled)
@@ -212,7 +212,7 @@ WRITE8_MEMBER(nes_ffe4_device::chr_w)
m_chr_access[bank][offset & 0x3ff] = data;
}
-READ8_MEMBER(nes_ffe4_device::chr_r)
+uint8_t nes_ffe4_device::chr_r(offs_t offset)
{
int bank = offset >> 10;
if (m_exram_enabled)
@@ -222,7 +222,7 @@ READ8_MEMBER(nes_ffe4_device::chr_r)
}
-WRITE8_MEMBER(nes_ffe4_device::write_h)
+void nes_ffe4_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("mapper6 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -257,7 +257,7 @@ WRITE8_MEMBER(nes_ffe4_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_ffe8_device::write_l)
+void nes_ffe8_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("mapper17 write_l, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/legacy.h b/src/devices/bus/nes/legacy.h
index 91b44e108c0..92722c0591c 100644
--- a/src/devices/bus/nes/legacy.h
+++ b/src/devices/bus/nes/legacy.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_ffe3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -34,10 +34,10 @@ public:
// construction/destruction
nes_ffe4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
- virtual DECLARE_READ8_MEMBER(chr_r) override;
- virtual DECLARE_WRITE8_MEMBER(chr_w) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual uint8_t chr_r(offs_t offset) override;
+ virtual void chr_w(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -71,8 +71,8 @@ public:
nes_ffe8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override {}
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override {}
virtual void pcb_reset() override;
};
diff --git a/src/devices/bus/nes/mmc1.cpp b/src/devices/bus/nes/mmc1.cpp
index d324c153782..9a27c601b4c 100644
--- a/src/devices/bus/nes/mmc1.cpp
+++ b/src/devices/bus/nes/mmc1.cpp
@@ -219,7 +219,7 @@ void nes_sxrom_device::update_regs(int reg)
}
}
-WRITE8_MEMBER( nes_sxrom_device::write_h )
+void nes_sxrom_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("sxrom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -265,7 +265,7 @@ WRITE8_MEMBER( nes_sxrom_device::write_h )
}
}
-WRITE8_MEMBER(nes_sxrom_device::write_m)
+void nes_sxrom_device::write_m(offs_t offset, uint8_t data)
{
uint8_t bank = (m_reg[1] >> 2) & 3;
LOG_MMC(("sxrom write_m, offset: %04x, data: %02x\n", offset, data));
@@ -279,7 +279,7 @@ WRITE8_MEMBER(nes_sxrom_device::write_m)
}
}
-READ8_MEMBER(nes_sxrom_device::read_m)
+uint8_t nes_sxrom_device::read_m(offs_t offset)
{
uint8_t bank = (m_reg[1] >> 2) & 3;
LOG_MMC(("sxrom read_m, offset: %04x\n", offset));
@@ -292,11 +292,11 @@ READ8_MEMBER(nes_sxrom_device::read_m)
return m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)];
}
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
// SOROM has two RAM banks, the first is not battery backed up, the second is.
-WRITE8_MEMBER(nes_sorom_device::write_m)
+void nes_sorom_device::write_m(offs_t offset, uint8_t data)
{
uint8_t type = BIT(m_reg[0], 4) ? BIT(m_reg[1], 4) : BIT(m_reg[1], 3);
LOG_MMC(("sorom write_m, offset: %04x, data: %02x\n", offset, data));
@@ -310,7 +310,7 @@ WRITE8_MEMBER(nes_sorom_device::write_m)
}
}
-READ8_MEMBER(nes_sorom_device::read_m)
+uint8_t nes_sorom_device::read_m(offs_t offset)
{
uint8_t type = BIT(m_reg[0], 4) ? BIT(m_reg[1], 4) : BIT(m_reg[1], 3);
LOG_MMC(("sorom read_m, offset: %04x\n", offset));
@@ -323,11 +323,11 @@ READ8_MEMBER(nes_sorom_device::read_m)
return m_prgram[offset & (m_prgram.size() - 1)];
}
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
// MMC1A boards have no wram enable/disable bit
-WRITE8_MEMBER(nes_sxrom_a_device::write_m)
+void nes_sxrom_a_device::write_m(offs_t offset, uint8_t data)
{
uint8_t bank = (m_reg[1] >> 2) & 3;
LOG_MMC(("sxrom_a write_m, offset: %04x, data: %02x\n", offset, data));
@@ -338,7 +338,7 @@ WRITE8_MEMBER(nes_sxrom_a_device::write_m)
m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)] = data;
}
-READ8_MEMBER(nes_sxrom_a_device::read_m)
+uint8_t nes_sxrom_a_device::read_m(offs_t offset)
{
uint8_t bank = (m_reg[1] >> 2) & 3;
LOG_MMC(("sxrom_a read_m, offset: %04x\n", offset));
@@ -348,10 +348,10 @@ READ8_MEMBER(nes_sxrom_a_device::read_m)
if (!m_prgram.empty())
return m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)];
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
-WRITE8_MEMBER(nes_sorom_a_device::write_m)
+void nes_sorom_a_device::write_m(offs_t offset, uint8_t data)
{
uint8_t type = BIT(m_reg[0], 4) ? BIT(m_reg[1], 4) : BIT(m_reg[1], 3);
LOG_MMC(("sorom_a write_m, offset: %04x, data: %02x\n", offset, data));
@@ -362,7 +362,7 @@ WRITE8_MEMBER(nes_sorom_a_device::write_m)
m_prgram[offset & (m_prgram.size() - 1)] = data;
}
-READ8_MEMBER(nes_sorom_a_device::read_m)
+uint8_t nes_sorom_a_device::read_m(offs_t offset)
{
uint8_t type = BIT(m_reg[0], 4) ? BIT(m_reg[1], 4) : BIT(m_reg[1], 3);
LOG_MMC(("sorom_a read_m, offset: %04x\n", offset));
diff --git a/src/devices/bus/nes/mmc1.h b/src/devices/bus/nes/mmc1.h
index dd9ecccac75..c8ccb835d76 100644
--- a/src/devices/bus/nes/mmc1.h
+++ b/src/devices/bus/nes/mmc1.h
@@ -16,9 +16,9 @@ public:
// construction/destruction
nes_sxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -46,8 +46,8 @@ public:
// construction/destruction
nes_sorom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
};
@@ -58,8 +58,8 @@ public:
// construction/destruction
nes_sxrom_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
};
class nes_sorom_a_device : public nes_sxrom_device
@@ -68,8 +68,8 @@ public:
// construction/destruction
nes_sorom_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
};
diff --git a/src/devices/bus/nes/mmc2.cpp b/src/devices/bus/nes/mmc2.cpp
index 1055ce98921..8be7b04d2d7 100644
--- a/src/devices/bus/nes/mmc2.cpp
+++ b/src/devices/bus/nes/mmc2.cpp
@@ -130,7 +130,7 @@ void nes_pxrom_device::ppu_latch(offs_t offset)
}
}
-WRITE8_MEMBER( nes_pxrom_device::pxrom_write )
+void nes_pxrom_device::pxrom_write(offs_t offset, uint8_t data)
{
LOG_MMC(("pxrom write_h, offset: %04x, data: %02x\n", offset, data));
switch (offset & 0x7000)
@@ -182,7 +182,7 @@ WRITE8_MEMBER( nes_pxrom_device::pxrom_write )
-------------------------------------------------*/
-WRITE8_MEMBER( nes_fxrom_device::write_h )
+void nes_fxrom_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("fxrom write_h, offset: %04x, data: %02x\n", offset, data));
switch (offset & 0x7000)
@@ -191,7 +191,7 @@ WRITE8_MEMBER( nes_fxrom_device::write_h )
prg16_89ab(data);
break;
default:
- pxrom_write(space, offset, data, mem_mask);
+ pxrom_write(offset, data);
break;
}
}
diff --git a/src/devices/bus/nes/mmc2.h b/src/devices/bus/nes/mmc2.h
index cfd81aa87d3..9f4d100d2f6 100644
--- a/src/devices/bus/nes/mmc2.h
+++ b/src/devices/bus/nes/mmc2.h
@@ -16,8 +16,8 @@ public:
// construction/destruction
nes_pxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(pxrom_write);
- virtual DECLARE_WRITE8_MEMBER(write_h) override { pxrom_write(space, offset, data, mem_mask); }
+ virtual void pxrom_write(offs_t offset, uint8_t data);
+ virtual void write_h(offs_t offset, uint8_t data) override { pxrom_write(offset, data); }
virtual void ppu_latch(offs_t offset) override;
virtual void pcb_reset() override;
@@ -42,7 +42,7 @@ public:
nes_fxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
};
diff --git a/src/devices/bus/nes/mmc3.cpp b/src/devices/bus/nes/mmc3.cpp
index f8497dbd42d..d6f7f37dc4a 100644
--- a/src/devices/bus/nes/mmc3.cpp
+++ b/src/devices/bus/nes/mmc3.cpp
@@ -244,7 +244,7 @@ void nes_txrom_device::set_chr( uint8_t chr, int chr_base, int chr_mask )
chr_cb(chr_page ^ 7, chr_base | (m_mmc_vrom_bank[5] & chr_mask), chr);
}
-WRITE8_MEMBER(nes_txrom_device::txrom_write)
+void nes_txrom_device::txrom_write(offs_t offset, uint8_t data)
{
uint8_t mmc_helper, cmd;
@@ -313,7 +313,7 @@ WRITE8_MEMBER(nes_txrom_device::txrom_write)
}
}
-WRITE8_MEMBER(nes_txrom_device::write_m)
+void nes_txrom_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("txrom write_m, offset: %04x, data: %02x\n", offset, data));
@@ -326,7 +326,7 @@ WRITE8_MEMBER(nes_txrom_device::write_m)
}
}
-READ8_MEMBER(nes_txrom_device::read_m)
+uint8_t nes_txrom_device::read_m(offs_t offset)
{
LOG_MMC(("txrom read_m, offset: %04x\n", offset));
@@ -338,7 +338,7 @@ READ8_MEMBER(nes_txrom_device::read_m)
return m_prgram[offset & (m_prgram.size() - 1)];
}
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
@@ -350,7 +350,7 @@ READ8_MEMBER(nes_txrom_device::read_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_hkrom_device::write_m)
+void nes_hkrom_device::write_m(offs_t offset, uint8_t data)
{
uint8_t write_hi, write_lo;
LOG_MMC(("hkrom write_m, offset: %04x, data: %02x\n", offset, data));
@@ -369,15 +369,15 @@ WRITE8_MEMBER(nes_hkrom_device::write_m)
m_mmc6_ram[offset & 0x3ff] = data;
}
-READ8_MEMBER(nes_hkrom_device::read_m)
+uint8_t nes_hkrom_device::read_m(offs_t offset)
{
LOG_MMC(("hkrom read_m, offset: %04x\n", offset));
if (offset < 0x1000)
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
if (!(m_mmc6_reg & 0xa0))
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
if (BIT(offset, 9) && BIT(m_mmc6_reg, 7)) // access to upper half of 1k when upper read is enabled
return m_mmc6_ram[offset & 0x3ff];
@@ -389,7 +389,7 @@ READ8_MEMBER(nes_hkrom_device::read_m)
return 0x00;
}
-WRITE8_MEMBER(nes_hkrom_device::write_h)
+void nes_hkrom_device::write_h(offs_t offset, uint8_t data)
{
uint8_t mmc6_helper;
LOG_MMC(("hkrom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -423,7 +423,7 @@ WRITE8_MEMBER(nes_hkrom_device::write_h)
break;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
@@ -465,7 +465,7 @@ void nes_txsrom_device::chr_cb( int start, int bank, int source )
chr1_x(start, bank, source);
}
-WRITE8_MEMBER(nes_txsrom_device::write_h)
+void nes_txsrom_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("txsrom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -475,7 +475,7 @@ WRITE8_MEMBER(nes_txsrom_device::write_h)
break;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
@@ -524,7 +524,7 @@ void nes_tqrom_device::set_chr( uint8_t chr, int chr_base, int chr_mask )
-------------------------------------------------*/
-WRITE8_MEMBER(nes_qj_device::write_m)
+void nes_qj_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("qj write_m, offset: %04x, data: %02x\n", offset, data));
@@ -546,7 +546,7 @@ WRITE8_MEMBER(nes_qj_device::write_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_zz_device::write_m)
+void nes_zz_device::write_m(offs_t offset, uint8_t data)
{
uint8_t mmc_helper = data & 0x07;
LOG_MMC(("zz write_m, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/mmc3.h b/src/devices/bus/nes/mmc3.h
index d16a0000268..5ef9e8dbdaa 100644
--- a/src/devices/bus/nes/mmc3.h
+++ b/src/devices/bus/nes/mmc3.h
@@ -16,10 +16,10 @@ public:
// construction/destruction
nes_txrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(txrom_write);
- virtual DECLARE_WRITE8_MEMBER(write_h) override { txrom_write(space, offset, data, mem_mask); }
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void txrom_write(offs_t offset, uint8_t data);
+ virtual void write_h(offs_t offset, uint8_t data) override { txrom_write(offset, data); }
virtual void prg_cb(int start, int bank);
virtual void chr_cb(int start, int bank, int source);
@@ -62,9 +62,9 @@ public:
// construction/destruction
nes_hkrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -89,7 +89,7 @@ public:
nes_txsrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void chr_cb(int start, int bank, int source) override;
protected:
@@ -119,7 +119,7 @@ public:
nes_qj_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
};
@@ -133,7 +133,7 @@ public:
nes_zz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
};
diff --git a/src/devices/bus/nes/mmc3_clones.cpp b/src/devices/bus/nes/mmc3_clones.cpp
index 5c578c0fcbd..9be591c7d9f 100644
--- a/src/devices/bus/nes/mmc3_clones.cpp
+++ b/src/devices/bus/nes/mmc3_clones.cpp
@@ -637,11 +637,11 @@ void nes_pjoy84_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_nitra_device::write_h)
+void nes_nitra_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("nitra write_h, offset: %04x, data: %02x\n", offset, data));
- txrom_write(space, (offset & 0x6000) | ((offset & 0x400) >> 10), offset & 0xff, mem_mask);
+ txrom_write((offset & 0x6000) | ((offset & 0x400) >> 10), offset & 0xff);
}
/*-------------------------------------------------
@@ -656,12 +656,12 @@ WRITE8_MEMBER(nes_nitra_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_ks7057_device::write_h)
+void nes_ks7057_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("ks7057 write_h, offset: %04x, data: %02x\n", offset, data));
offset = (BIT(offset, 0) << 1) | BIT(offset, 1) | (offset & ~0x03);
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
}
/*-------------------------------------------------
@@ -679,11 +679,11 @@ WRITE8_MEMBER(nes_ks7057_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_sbros11_device::write_h)
+void nes_sbros11_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("smb11 write_h, offset: %04x, data: %02x\n", offset, data));
- txrom_write(space, (offset & 0x6000) | ((offset & 0x04) >> 2), data, mem_mask);
+ txrom_write((offset & 0x6000) | ((offset & 0x04) >> 2), data);
}
/*-------------------------------------------------
@@ -711,14 +711,14 @@ void nes_malisb_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, source);
}
-WRITE8_MEMBER(nes_malisb_device::write_h)
+void nes_malisb_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("malisb write_h, offset: %04x, data: %02x\n", offset, data));
if (offset > 0x4000)
- txrom_write(space, (offset & 0xfffe) | ((offset & 0x04) >> 2) | ((offset & 0x08) >> 3), data, mem_mask);
+ txrom_write((offset & 0xfffe) | ((offset & 0x04) >> 2) | ((offset & 0x08) >> 3), data);
else
- txrom_write(space, (offset & 0xfffe) | ((offset & 0x08) >> 3), data, mem_mask);
+ txrom_write((offset & 0xfffe) | ((offset & 0x08) >> 3), data);
}
/*-------------------------------------------------
@@ -736,7 +736,7 @@ WRITE8_MEMBER(nes_malisb_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_family4646_device::write_m)
+void nes_family4646_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("family4646 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -763,7 +763,7 @@ WRITE8_MEMBER(nes_family4646_device::write_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_pikay2k_device::write_h)
+void nes_pikay2k_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("pikay2k write_h, offset: %04x, data: %02x\n", offset, data));
@@ -776,20 +776,20 @@ WRITE8_MEMBER(nes_pikay2k_device::write_h)
case 0x2000:
m_reg[0] = 0;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
// strange WRAM usage: it is protected at start, and gets unprotected after the first write to 0xa000
-WRITE8_MEMBER(nes_pikay2k_device::write_m)
+void nes_pikay2k_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("pikay2k write_m, offset: %04x, data: %02x\n", offset, data));
m_prgram[offset & 0x1fff] = data;
}
-READ8_MEMBER(nes_pikay2k_device::read_m)
+uint8_t nes_pikay2k_device::read_m(offs_t offset)
{
LOG_MMC(("pikay2k read_m, offset: %04x\n", offset));
@@ -820,7 +820,7 @@ void nes_8237_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, source);
}
-WRITE8_MEMBER(nes_8237_device::write_l)
+void nes_8237_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("unl_8237 write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -854,7 +854,7 @@ WRITE8_MEMBER(nes_8237_device::write_l)
}
}
-WRITE8_MEMBER(nes_8237_device::write_h)
+void nes_8237_device::write_h(offs_t offset, uint8_t data)
{
static const uint8_t conv_table[8] = {0, 2, 6, 1, 7, 3, 4, 5};
LOG_MMC(("unl_8237 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -870,7 +870,7 @@ WRITE8_MEMBER(nes_8237_device::write_h)
case 0x3000:
m_cd_enable = 1;
data = (data & 0xc0) | conv_table[data & 0x07];
- txrom_write(space, 0x0000, data, mem_mask);
+ txrom_write(0x0000, data);
break;
case 0x4000:
@@ -878,7 +878,7 @@ WRITE8_MEMBER(nes_8237_device::write_h)
if (m_cd_enable)
{
m_cd_enable = 0;
- txrom_write(space, 0x0001, data, mem_mask);
+ txrom_write(0x0001, data);
}
break;
@@ -886,9 +886,9 @@ WRITE8_MEMBER(nes_8237_device::write_h)
break;
case 0x7000:
- txrom_write(space, 0x6001, data, mem_mask);
- txrom_write(space, 0x4000, data, mem_mask);
- txrom_write(space, 0x4001, data, mem_mask);
+ txrom_write(0x6001, data);
+ txrom_write(0x4000, data);
+ txrom_write(0x4001, data);
break;
}
}
@@ -907,7 +907,7 @@ WRITE8_MEMBER(nes_8237_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_sglionk_device::write_m)
+void nes_sglionk_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("sglionk write_m, offset: %04x, data: %02x\n", offset, data));
@@ -923,7 +923,7 @@ WRITE8_MEMBER(nes_sglionk_device::write_m)
}
-WRITE8_MEMBER(nes_sglionk_device::write_h)
+void nes_sglionk_device::write_h(offs_t offset, uint8_t data)
{
static const uint8_t conv_table[8] = {0, 3, 1, 5, 6, 7, 2, 4};
LOG_MMC(("sglionk write_h, offset: %04x, data: %02x\n", offset, data));
@@ -938,13 +938,13 @@ WRITE8_MEMBER(nes_sglionk_device::write_h)
case 0x2000:
m_reg_enabled = 1;
data = (data & 0xc0) | conv_table[data & 0x07];
- txrom_write(space, 0x0000, data, mem_mask);
+ txrom_write(0x0000, data);
break;
case 0x4000:
if (m_reg_enabled && (m_reg & 0x80) == 0)
{
m_reg_enabled = 0;
- txrom_write(space, 0x0001, data, mem_mask);
+ txrom_write(0x0001, data);
}
break;
}
@@ -954,12 +954,12 @@ WRITE8_MEMBER(nes_sglionk_device::write_h)
switch (offset & 0x03)
{
case 0x02:
- txrom_write(space, 0x6000, data, mem_mask);
+ txrom_write(0x6000, data);
break;
case 0x03:
- txrom_write(space, 0x6001, data, mem_mask);
- txrom_write(space, 0x4000, data, mem_mask);
- txrom_write(space, 0x4001, data, mem_mask);
+ txrom_write(0x6001, data);
+ txrom_write(0x4000, data);
+ txrom_write(0x4001, data);
break;
}
}
@@ -1022,7 +1022,7 @@ void nes_sgboog_device::set_prg(int prg_base, int prg_mask)
}
}
-WRITE8_MEMBER(nes_sgboog_device::write_l)
+void nes_sgboog_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("sgboog write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -1046,7 +1046,7 @@ WRITE8_MEMBER(nes_sgboog_device::write_l)
}
}
-WRITE8_MEMBER(nes_sgboog_device::write_m)
+void nes_sgboog_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("sgboog write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1069,7 +1069,7 @@ WRITE8_MEMBER(nes_sgboog_device::write_m)
}
}
-WRITE8_MEMBER(nes_sgboog_device::write_h)
+void nes_sgboog_device::write_h(offs_t offset, uint8_t data)
{
static const uint8_t conv_table[8] = {0,2,5,3,6,1,7,4};
LOG_MMC(("sgboog write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1085,14 +1085,14 @@ WRITE8_MEMBER(nes_sgboog_device::write_h)
if (m_reg[2] && ((m_reg[0] & 0x80) == 0 || (m_latch & 0x07) < 6)) // if we use the prg16 banks and cmd=6,7 DON'T enter!
{
m_reg[2] = 0;
- txrom_write(space, 0x0001, data, mem_mask);
+ txrom_write(0x0001, data);
}
break;
case 0x2000:
data = (data & 0xc0) | conv_table[data & 0x07];
m_reg[2] = 1;
- txrom_write(space, 0x0000, data, mem_mask);
+ txrom_write(0x0000, data);
break;
case 0x4000:
@@ -1100,21 +1100,21 @@ WRITE8_MEMBER(nes_sgboog_device::write_h)
break;
case 0x4001:
- txrom_write(space, 0x6001, data, mem_mask);
+ txrom_write(0x6001, data);
break;
case 0x6001:
- txrom_write(space, 0x4000, data, mem_mask);
- txrom_write(space, 0x4001, data, mem_mask);
+ txrom_write(0x4000, data);
+ txrom_write(0x4001, data);
break;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
else
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
}
/*-------------------------------------------------
@@ -1140,7 +1140,7 @@ void nes_kasing_device::prg_cb(int start, int bank)
prg8_x(start, bank);
}
-WRITE8_MEMBER(nes_kasing_device::write_m)
+void nes_kasing_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("kasing write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1172,7 +1172,7 @@ WRITE8_MEMBER(nes_kasing_device::write_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_kay_device::write_l)
+void nes_kay_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("kay write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -1195,7 +1195,7 @@ WRITE8_MEMBER(nes_kay_device::write_l)
}
}
-READ8_MEMBER(nes_kay_device::read_l)
+uint8_t nes_kay_device::read_l(offs_t offset)
{
LOG_MMC(("kay read_l, offset: %04x\n", offset));
offset += 0x100;
@@ -1269,14 +1269,14 @@ void nes_kay_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, source);
}
-WRITE8_MEMBER(nes_kay_device::write_h)
+void nes_kay_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("kay write_h, offset: %04x, data: %02x\n", offset, data));
switch (offset & 0x6003)
{
case 0x0000:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
set_prg(m_prg_base, m_prg_mask);
break;
@@ -1285,19 +1285,19 @@ WRITE8_MEMBER(nes_kay_device::write_h)
| (BIT(data, 3) << 2) | (BIT(data, 4) << 1) | BIT(data, 5);
if (!m_reg[7])
update_regs();
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
set_prg(m_prg_base, m_prg_mask);
break;
case 0x0003:
m_reg[5] = data;
update_regs();
- txrom_write(space, 0x0000, data, mem_mask);
+ txrom_write(0x0000, data);
set_prg(m_prg_base, m_prg_mask);
break;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
@@ -1314,7 +1314,7 @@ void nes_h2288_device::prg_cb(int start, int bank)
prg8_x(start, bank);
}
-WRITE8_MEMBER(nes_h2288_device::write_l)
+void nes_h2288_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("h2288 write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -1334,7 +1334,7 @@ WRITE8_MEMBER(nes_h2288_device::write_l)
}
}
-READ8_MEMBER(nes_h2288_device::read_l)
+uint8_t nes_h2288_device::read_l(offs_t offset)
{
LOG_MMC(("h2288 read_l, offset: %04x\n", offset));
offset += 0x100;
@@ -1351,7 +1351,7 @@ READ8_MEMBER(nes_h2288_device::read_l)
return 0;
}
-WRITE8_MEMBER(nes_h2288_device::write_h)
+void nes_h2288_device::write_h(offs_t offset, uint8_t data)
{
static const uint8_t conv_table[8] = {0, 3, 1, 5, 6, 7, 2, 4};
LOG_MMC(("h2288 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1359,11 +1359,11 @@ WRITE8_MEMBER(nes_h2288_device::write_h)
switch (offset & 0x6001)
{
case 0x0000:
- txrom_write(space, 0x0000, (data & 0xc0) | conv_table[data & 0x07], mem_mask);
+ txrom_write(0x0000, (data & 0xc0) | conv_table[data & 0x07]);
break;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
@@ -1378,7 +1378,7 @@ WRITE8_MEMBER(nes_h2288_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_6035052_device::write_ex)
+void nes_6035052_device::write_ex(offs_t offset, uint8_t data)
{
LOG_MMC(("6035052 write_ex, offset: %04x, data: %02x\n", offset, data));
m_prot = data & 0x03;
@@ -1386,7 +1386,7 @@ WRITE8_MEMBER(nes_6035052_device::write_ex)
m_prot = 2;
}
-READ8_MEMBER(nes_6035052_device::read_ex)
+uint8_t nes_6035052_device::read_ex(offs_t offset)
{
LOG_MMC(("6035052 read_ex, offset: %04x\n", offset));
return m_prot;
@@ -1406,7 +1406,7 @@ READ8_MEMBER(nes_6035052_device::read_ex)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_txc_tw_device::write_l)
+void nes_txc_tw_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("txc_tw write_l, offset: %04x, data: %02x\n", offset, data));
@@ -1436,22 +1436,22 @@ inline uint8_t kof97_unscramble( uint8_t data )
return ((data >> 1) & 0x01) | ((data >> 4) & 0x02) | ((data << 2) & 0x04) | ((data >> 0) & 0xd8) | ((data << 3) & 0x20);
}
-WRITE8_MEMBER(nes_kof97_device::write_h)
+void nes_kof97_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("kof97 write_h, offset: %04x, data: %02x\n", offset, data));
/* Addresses 0x9000, 0xa000, 0xd000 & 0xf000 behaves differently than MMC3 */
if (offset == 0x1000)
- txrom_write(space, 0x0001, kof97_unscramble(data), mem_mask);
+ txrom_write(0x0001, kof97_unscramble(data));
else if (offset == 0x2000)
- txrom_write(space, 0x0000, kof97_unscramble(data), mem_mask);
+ txrom_write(0x0000, kof97_unscramble(data));
else if (offset == 0x5000)
- txrom_write(space, 0x4001, kof97_unscramble(data), mem_mask);
+ txrom_write(0x4001, kof97_unscramble(data));
else if (offset == 0x7000)
- txrom_write(space, 0x6001, kof97_unscramble(data), mem_mask);
+ txrom_write(0x6001, kof97_unscramble(data));
/* Other addresses behaves like MMC3, up to unscrambling data */
else
- txrom_write(space, offset, kof97_unscramble(data), mem_mask);
+ txrom_write(offset, kof97_unscramble(data));
}
/*-------------------------------------------------
@@ -1485,7 +1485,7 @@ void nes_kof96_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, source);
}
-WRITE8_MEMBER(nes_kof96_device::write_l)
+void nes_kof96_device::write_l(offs_t offset, uint8_t data)
{
uint8_t new_bank;
LOG_MMC(("kof96 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -1532,11 +1532,11 @@ WRITE8_MEMBER(nes_kof96_device::write_l)
if (!m_reg[3] && offset > 0x1000)
{
m_reg[3] = 1;
- space.write_byte(0x4017, 0x40);
+ poke(0x4017, 0x40); // FIXME
}
}
-READ8_MEMBER(nes_kof96_device::read_l)
+uint8_t nes_kof96_device::read_l(offs_t offset)
{
LOG_MMC(("kof96 read_l, offset: %04x\n", offset));
offset += 0x100;
@@ -1547,7 +1547,7 @@ READ8_MEMBER(nes_kof96_device::read_l)
return 0;
}
-WRITE8_MEMBER(nes_kof96_device::write_h)
+void nes_kof96_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("kof96 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1555,12 +1555,12 @@ WRITE8_MEMBER(nes_kof96_device::write_h)
{
case 0x0000:
m_reg[2] = 1;
- txrom_write(space, 0x0000, data, mem_mask);
+ txrom_write(0x0000, data);
break;
case 0x0001:
if (m_reg[2])
- txrom_write(space, 0x0001, data, mem_mask);
+ txrom_write(0x0001, data);
break;
case 0x0002:
@@ -1576,7 +1576,7 @@ WRITE8_MEMBER(nes_kof96_device::write_h)
break;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
@@ -1600,7 +1600,7 @@ void nes_sf3_device::set_chr(uint8_t chr_source, int chr_base, int chr_mask)
chr2_6(chr_base | (m_mmc_vrom_bank[2] & chr_mask), chr_source);
}
-WRITE8_MEMBER(nes_sf3_device::write_h)
+void nes_sf3_device::write_h(offs_t offset, uint8_t data)
{
uint8_t cmd;
LOG_MMC(("sf3 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1624,7 +1624,7 @@ WRITE8_MEMBER(nes_sf3_device::write_h)
break;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
@@ -1643,7 +1643,7 @@ WRITE8_MEMBER(nes_sf3_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_gouder_device::write_l)
+void nes_gouder_device::write_l(offs_t offset, uint8_t data)
{
static const uint8_t conv_table[256] =
{
@@ -1675,7 +1675,7 @@ WRITE8_MEMBER(nes_gouder_device::write_l)
prg32(((data >> 3) & 0x02) | (data & 0x01));
}
-READ8_MEMBER(nes_gouder_device::read_l)
+uint8_t nes_gouder_device::read_l(offs_t offset)
{
LOG_MMC(("gouder read_l, offset: %04x\n", offset));
@@ -1722,7 +1722,7 @@ void nes_sa9602b_device::prg_cb(int start, int bank)
}
-WRITE8_MEMBER( nes_sa9602b_device::write_h )
+void nes_sa9602b_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("sa9602b write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1738,7 +1738,7 @@ WRITE8_MEMBER( nes_sa9602b_device::write_h )
break;
}
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
}
/*-------------------------------------------------
@@ -1762,7 +1762,7 @@ void nes_sachen_shero_device::chr_cb( int start, int bank, int source )
}
-WRITE8_MEMBER( nes_sachen_shero_device::write_l )
+void nes_sachen_shero_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("shero write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x4100;
@@ -1777,7 +1777,7 @@ WRITE8_MEMBER( nes_sachen_shero_device::write_l )
}
}
-READ8_MEMBER( nes_sachen_shero_device::read_l )
+uint8_t nes_sachen_shero_device::read_l(offs_t offset)
{
LOG_MMC(("shero read_l, offset: %04x\n", offset));
offset += 0x4100;
@@ -1786,7 +1786,7 @@ READ8_MEMBER( nes_sachen_shero_device::read_l )
{
// DSW read!
}
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
@@ -1886,7 +1886,7 @@ void nes_fk23c_device::fk23c_set_chr()
}
}
-WRITE8_MEMBER(nes_fk23c_device::write_l)
+void nes_fk23c_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("fk23c write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -1903,7 +1903,7 @@ WRITE8_MEMBER(nes_fk23c_device::write_l)
}
}
-WRITE8_MEMBER(nes_fk23c_device::write_h)
+void nes_fk23c_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("fk23c write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1929,7 +1929,7 @@ WRITE8_MEMBER(nes_fk23c_device::write_h)
fk23c_set_chr();
}
else
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
case 0x2000:
@@ -1937,7 +1937,7 @@ WRITE8_MEMBER(nes_fk23c_device::write_h)
break;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
@@ -1971,7 +1971,7 @@ void nes_s24in1sc03_device::chr_cb(int start, int bank, int source)
chr1_x(start, chr_base | bank, chr);
}
-WRITE8_MEMBER(nes_s24in1sc03_device::write_l)
+void nes_s24in1sc03_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("s24in1sc03 write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -2009,7 +2009,7 @@ WRITE8_MEMBER(nes_s24in1sc03_device::write_l)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_15in1_device::write_m)
+void nes_bmc_15in1_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_15in1 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2037,7 +2037,7 @@ WRITE8_MEMBER(nes_bmc_15in1_device::write_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_sbig7_device::write_h)
+void nes_bmc_sbig7_device::write_h(offs_t offset, uint8_t data)
{
uint8_t page;
LOG_MMC(("bmc_sbig7 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2058,7 +2058,7 @@ WRITE8_MEMBER(nes_bmc_sbig7_device::write_h)
break;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
@@ -2076,7 +2076,7 @@ WRITE8_MEMBER(nes_bmc_sbig7_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_hik8_device::write_m)
+void nes_bmc_hik8_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_hik8 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2123,7 +2123,7 @@ WRITE8_MEMBER(nes_bmc_hik8_device::write_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_hik4_device::write_m)
+void nes_bmc_hik4_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_hik4 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2162,7 +2162,7 @@ WRITE8_MEMBER(nes_bmc_hik4_device::write_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_mario7in1_device::write_m)
+void nes_bmc_mario7in1_device::write_m(offs_t offset, uint8_t data)
{
uint8_t helper1, helper2;
LOG_MMC(("bmc_mario7in1 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2204,7 +2204,7 @@ WRITE8_MEMBER(nes_bmc_mario7in1_device::write_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_gold7in1_device::write_m)
+void nes_bmc_gold7in1_device::write_m(offs_t offset, uint8_t data)
{
uint8_t helper1, helper2;
LOG_MMC(("bmc_gold7in1 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2265,7 +2265,7 @@ void nes_bmc_gc6in1_device::chr_cb(int start, int bank, int source)
chr1_x(start, ((m_reg[1] & 0x03) << 8) | bank, source);
}
-WRITE8_MEMBER(nes_bmc_gc6in1_device::write_l)
+void nes_bmc_gc6in1_device::write_l(offs_t offset, uint8_t data)
{
uint8_t bank;
LOG_MMC(("bmc_gc6in1 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -2294,7 +2294,7 @@ WRITE8_MEMBER(nes_bmc_gc6in1_device::write_l)
}
}
-WRITE8_MEMBER(nes_bmc_gc6in1_device::write_h)
+void nes_bmc_gc6in1_device::write_h(offs_t offset, uint8_t data)
{
uint8_t cmd;
static const uint8_t conv_table[8] = {0, 6, 3, 7, 5, 2, 4, 1};
@@ -2303,20 +2303,20 @@ WRITE8_MEMBER(nes_bmc_gc6in1_device::write_h)
if (!m_reg[2])
{
// in this case we act like MMC3, only with alt prg/chr handlers
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
}
else
{
switch (offset & 0x6001)
{
case 0x0000:
- txrom_write(space, 0x4000, data, mem_mask);
+ txrom_write(0x4000, data);
break;
case 0x0001:
data = (data & 0xc0) | conv_table[data & 0x07];
m_reg[3] = 1;
- txrom_write(space, 0x0000, data, mem_mask);
+ txrom_write(0x0000, data);
break;
case 0x2000:
@@ -2346,7 +2346,7 @@ WRITE8_MEMBER(nes_bmc_gc6in1_device::write_h)
break;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
@@ -2377,7 +2377,7 @@ void nes_bmc_411120c_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank | ((m_reg & 3) << 7), source);
}
-WRITE8_MEMBER(nes_bmc_411120c_device::write_m)
+void nes_bmc_411120c_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_411120c write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2422,7 +2422,7 @@ void nes_bmc_830118c_device::chr_cb(int start, int bank, int source)
chr1_x(start, (bank & 0x7f) | ((m_reg & 0x0c) << 5), source);
}
-WRITE8_MEMBER(nes_bmc_830118c_device::write_m)
+void nes_bmc_830118c_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_830118c write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2478,7 +2478,7 @@ inline void nes_pjoy84_device::set_base_mask()
m_chr_mask = BIT(m_reg[0], 7) ? 0x7f : 0xff;
}
-WRITE8_MEMBER(nes_pjoy84_device::write_m)
+void nes_pjoy84_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("pjoy84 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2523,7 +2523,7 @@ void nes_coolboy_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, source);
}
-WRITE8_MEMBER(nes_coolboy_device::write_m)
+void nes_coolboy_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("coolboy write_m, offset: %04x, data: %02x\n", offset, data));
@@ -2593,7 +2593,7 @@ void nes_a9746_device::update_banks(uint8_t value)
}
}
-WRITE8_MEMBER(nes_a9746_device::write_h)
+void nes_a9746_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("unl_a9746 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2619,7 +2619,7 @@ WRITE8_MEMBER(nes_a9746_device::write_h)
break;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
diff --git a/src/devices/bus/nes/mmc3_clones.h b/src/devices/bus/nes/mmc3_clones.h
index b6102e8fd62..680e86b4c9c 100644
--- a/src/devices/bus/nes/mmc3_clones.h
+++ b/src/devices/bus/nes/mmc3_clones.h
@@ -17,7 +17,7 @@ public:
nes_nitra_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
};
@@ -30,7 +30,7 @@ public:
nes_ks7057_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
};
@@ -43,7 +43,7 @@ public:
nes_sbros11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
};
@@ -56,7 +56,7 @@ public:
nes_malisb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
};
@@ -71,7 +71,7 @@ public:
nes_family4646_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
};
@@ -85,9 +85,9 @@ public:
// construction/destruction
nes_pikay2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -110,8 +110,8 @@ public:
// device-level overrides
virtual void device_start() override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -131,8 +131,8 @@ public:
// construction/destruction
nes_sglionk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -154,9 +154,9 @@ public:
// construction/destruction
nes_sgboog_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -181,7 +181,7 @@ public:
// construction/destruction
nes_kasing_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void pcb_reset() override;
@@ -203,9 +203,9 @@ public:
// construction/destruction
nes_kay_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -230,9 +230,9 @@ public:
// construction/destruction
nes_h2288_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void pcb_reset() override;
@@ -254,12 +254,12 @@ public:
// construction/destruction
nes_6035052_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_ex) override;
- virtual DECLARE_WRITE8_MEMBER(write_ex) override;
- virtual DECLARE_READ8_MEMBER(read_l) override { return read_ex(space, offset, mem_mask); }
- virtual DECLARE_READ8_MEMBER(read_m) override { return read_ex(space, offset, mem_mask); }
- virtual DECLARE_WRITE8_MEMBER(write_l) override { write_ex(space, offset, data, mem_mask); }
- virtual DECLARE_WRITE8_MEMBER(write_m) override { write_ex(space, offset, data, mem_mask); }
+ virtual uint8_t read_ex(offs_t offset) override;
+ virtual void write_ex(offs_t offset, uint8_t data) override;
+ virtual uint8_t read_l(offs_t offset) override { return read_ex(offset); }
+ virtual uint8_t read_m(offs_t offset) override { return read_ex(offset); }
+ virtual void write_l(offs_t offset, uint8_t data) override { write_ex(offset, data); }
+ virtual void write_m(offs_t offset, uint8_t data) override { write_ex(offset, data); }
virtual void pcb_reset() override;
@@ -281,8 +281,8 @@ public:
nes_txc_tw_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override { write_l(space, offset & 0xff, data, mem_mask); } // offset does not really count for this mapper }
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_m(offs_t offset, uint8_t data) override { write_l(offset & 0xff, data); } // offset does not really count for this mapper }
virtual void prg_cb(int start, int bank) override;
};
@@ -296,7 +296,7 @@ public:
nes_kof97_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
};
@@ -308,9 +308,9 @@ public:
// construction/destruction
nes_kof96_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override; // offset does not really count for this mapper
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override; // offset does not really count for this mapper
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -334,7 +334,7 @@ public:
nes_sf3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
protected:
virtual void set_chr(uint8_t chr, int chr_base, int chr_mask) override;
@@ -349,8 +349,8 @@ public:
// construction/destruction
nes_gouder_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void pcb_reset() override;
@@ -372,7 +372,7 @@ public:
// construction/destruction
nes_sa9602b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void pcb_reset() override;
@@ -395,8 +395,8 @@ public:
// construction/destruction
nes_sachen_shero_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void chr_cb(int start, int bank, int source) override;
virtual void pcb_reset() override;
@@ -418,7 +418,7 @@ public:
// construction/destruction
nes_a9746_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset();
@@ -441,8 +441,8 @@ public:
// construction/destruction
nes_fk23c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -481,7 +481,7 @@ public:
// construction/destruction
nes_s24in1sc03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -505,7 +505,7 @@ public:
nes_bmc_15in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
};
@@ -520,7 +520,7 @@ public:
nes_bmc_sbig7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
};
@@ -534,7 +534,7 @@ public:
// construction/destruction
nes_bmc_hik8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -557,7 +557,7 @@ public:
nes_bmc_hik4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
};
@@ -571,7 +571,7 @@ public:
// construction/destruction
nes_bmc_mario7in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -592,7 +592,7 @@ public:
// construction/destruction
nes_bmc_gold7in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -613,8 +613,8 @@ public:
// construction/destruction
nes_bmc_gc6in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -637,7 +637,7 @@ public:
// construction/destruction
nes_bmc_411120c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -660,7 +660,7 @@ public:
// construction/destruction
nes_bmc_830118c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -683,7 +683,7 @@ public:
// construction/destruction
nes_pjoy84_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -707,7 +707,7 @@ public:
nes_coolboy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
diff --git a/src/devices/bus/nes/mmc5.cpp b/src/devices/bus/nes/mmc5.cpp
index 681b9491ef2..b512f914e8b 100644
--- a/src/devices/bus/nes/mmc5.cpp
+++ b/src/devices/bus/nes/mmc5.cpp
@@ -287,7 +287,7 @@ inline bool nes_exrom_device::in_split()
return false;
}
-READ8_MEMBER(nes_exrom_device::nt_r)
+uint8_t nes_exrom_device::nt_r(offs_t offset)
{
int page = ((offset & 0xc00) >> 10);
@@ -339,7 +339,7 @@ READ8_MEMBER(nes_exrom_device::nt_r)
}
}
-WRITE8_MEMBER(nes_exrom_device::nt_w)
+void nes_exrom_device::nt_w(offs_t offset, uint8_t data)
{
int page = ((offset & 0xc00) >> 10);
@@ -397,7 +397,7 @@ inline uint8_t nes_exrom_device::bg_ex1_chr_r(uint32_t offset)
return m_vrom[helper & (m_vrom_size - 1)];
}
-READ8_MEMBER(nes_exrom_device::chr_r)
+uint8_t nes_exrom_device::chr_r(offs_t offset)
{
int bank = offset >> 10;
@@ -425,7 +425,7 @@ READ8_MEMBER(nes_exrom_device::chr_r)
}
-READ8_MEMBER(nes_exrom_device::read_l)
+uint8_t nes_exrom_device::read_l(offs_t offset)
{
int value;
LOG_MMC(("exrom read_l, offset: %04x\n", offset));
@@ -437,7 +437,7 @@ READ8_MEMBER(nes_exrom_device::read_l)
if (BIT(m_exram_control, 1)) // Modes 2,3 = read
return m_exram[offset - 0x1c00];
else
- return m_open_bus; // Modes 0,1 = open bus
+ return get_open_bus(); // Modes 0,1 = open bus
}
switch (offset)
@@ -455,12 +455,12 @@ READ8_MEMBER(nes_exrom_device::read_l)
default:
logerror("MMC5 uncaught read, offset: %04x\n", offset + 0x4100);
- return m_open_bus;
+ return get_open_bus();
}
}
-WRITE8_MEMBER(nes_exrom_device::write_l)
+void nes_exrom_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("exrom write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -618,7 +618,7 @@ WRITE8_MEMBER(nes_exrom_device::write_l)
// bit3 select the chip (2 of them can be accessed, each up to 32KB)
// bit1 & bit2 select the 8KB banks inside the chip
// same mechanism is used also when "WRAM" is mapped in higher banks
-READ8_MEMBER(nes_exrom_device::read_m)
+uint8_t nes_exrom_device::read_m(offs_t offset)
{
LOG_MMC(("exrom read_m, offset: %04x\n", offset));
if (!m_battery.empty() && !m_prgram.empty()) // 2 chips present: first is BWRAM, second is WRAM
@@ -633,10 +633,10 @@ READ8_MEMBER(nes_exrom_device::read_m)
else if (!m_battery.empty()) // 1 chip, BWRAM
return m_battery[(offset + (m_wram_base & 0x03) * 0x2000) & (m_battery.size() - 1)];
else
- return m_open_bus;
+ return get_open_bus();
}
-WRITE8_MEMBER(nes_exrom_device::write_m)
+void nes_exrom_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("exrom write_m, offset: %04x, data: %02x\n", offset, data));
if (m_wram_protect_1 != 0x02 || m_wram_protect_2 != 0x01)
@@ -649,7 +649,7 @@ WRITE8_MEMBER(nes_exrom_device::write_m)
}
// some games (e.g. Bandit Kings of Ancient China) write to PRG-RAM through 0x8000-0xdfff
-READ8_MEMBER(nes_exrom_device::read_h)
+uint8_t nes_exrom_device::read_h(offs_t offset)
{
LOG_MMC(("exrom read_h, offset: %04x\n", offset));
int bank = offset / 0x2000;
@@ -665,7 +665,7 @@ READ8_MEMBER(nes_exrom_device::read_h)
return hi_access_rom(offset);
}
-WRITE8_MEMBER(nes_exrom_device::write_h)
+void nes_exrom_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("exrom write_h, offset: %04x, data: %02x\n", offset, data));
int bank = offset / 0x2000;
diff --git a/src/devices/bus/nes/mmc5.h b/src/devices/bus/nes/mmc5.h
index c0c07cb07a9..093a64471d0 100644
--- a/src/devices/bus/nes/mmc5.h
+++ b/src/devices/bus/nes/mmc5.h
@@ -20,16 +20,16 @@ public:
nes_exrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
~nes_exrom_device();
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
-
- virtual DECLARE_READ8_MEMBER(chr_r) override;
- virtual DECLARE_READ8_MEMBER(nt_r) override;
- virtual DECLARE_WRITE8_MEMBER(nt_w) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
+
+ virtual uint8_t chr_r(offs_t offset) override;
+ virtual uint8_t nt_r(offs_t offset) override;
+ virtual void nt_w(offs_t offset, uint8_t data) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/multigame.cpp b/src/devices/bus/nes/multigame.cpp
index 6971e68ac61..c117520afe5 100644
--- a/src/devices/bus/nes/multigame.cpp
+++ b/src/devices/bus/nes/multigame.cpp
@@ -1016,7 +1016,7 @@ void nes_bmc_42in1reset_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_action52_device::write_h)
+void nes_action52_device::write_h(offs_t offset, uint8_t data)
{
uint8_t pmode = offset & 0x20;
int pbank = (offset & 0x1fc0) >> 6;
@@ -1048,7 +1048,7 @@ WRITE8_MEMBER(nes_action52_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_caltron_device::write_m)
+void nes_caltron_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("caltron write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1057,7 +1057,7 @@ WRITE8_MEMBER(nes_caltron_device::write_m)
prg32(offset & 0x07);
}
-WRITE8_MEMBER(nes_caltron_device::write_h)
+void nes_caltron_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("caltron write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1077,7 +1077,7 @@ WRITE8_MEMBER(nes_caltron_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_rumblestat_device::write_m)
+void nes_rumblestat_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("rumblestation write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1087,7 +1087,7 @@ WRITE8_MEMBER(nes_rumblestat_device::write_m)
chr8(m_chr, CHRROM);
}
-WRITE8_MEMBER(nes_rumblestat_device::write_h)
+void nes_rumblestat_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("rumblestation write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1129,14 +1129,14 @@ void nes_svision16_device::update_prg()
}
-READ8_MEMBER(nes_svision16_device::read_m)
+uint8_t nes_svision16_device::read_m(offs_t offset)
{
int bank = (((m_latch1 & 0x0f) << 4) | 0x0f) + 4 ; // +4 due to the eeprom
LOG_MMC(("svision16 read_m, offset: %04x\n", offset));
return m_prg[((bank * 0x2000) + (offset & 0x1fff)) & m_prg_mask];
}
-WRITE8_MEMBER(nes_svision16_device::write_m)
+void nes_svision16_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("svision16 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1145,7 +1145,7 @@ WRITE8_MEMBER(nes_svision16_device::write_m)
set_nt_mirroring(BIT(data, 5) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
}
-WRITE8_MEMBER(nes_svision16_device::write_h)
+void nes_svision16_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("svision16 write_h, offset: %04x, data: %02x\n", offset, data));
m_latch2 = data;
@@ -1175,7 +1175,7 @@ void nes_n625092_device::set_prg(uint8_t reg1, uint8_t reg2)
prg16_cdef(helper2 | ((reg1 & 0x70) >> 1));
}
-WRITE8_MEMBER(nes_n625092_device::write_h)
+void nes_n625092_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("n625092 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1213,7 +1213,7 @@ WRITE8_MEMBER(nes_n625092_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_a65as_device::write_h)
+void nes_a65as_device::write_h(offs_t offset, uint8_t data)
{
uint8_t helper = (data & 0x30) >> 1;
LOG_MMC(("a65as write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1242,7 +1242,7 @@ WRITE8_MEMBER(nes_a65as_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_t262_device::write_h)
+void nes_t262_device::write_h(offs_t offset, uint8_t data)
{
uint8_t mmc_helper;
LOG_MMC(("t262 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1281,7 +1281,7 @@ WRITE8_MEMBER(nes_t262_device::write_h)
-------------------------------------------------*/
// Are this correct or should they work the same?
-WRITE8_MEMBER(nes_novel1_device::write_h)
+void nes_novel1_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("novel1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1289,7 +1289,7 @@ WRITE8_MEMBER(nes_novel1_device::write_h)
chr8(offset & 0x07, CHRROM);
}
-WRITE8_MEMBER(nes_novel2_device::write_h)
+void nes_novel2_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("novel2 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1311,7 +1311,7 @@ WRITE8_MEMBER(nes_novel2_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_studyngame_device::write_h)
+void nes_studyngame_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("studyngame write_h, offset: %04x, data: %02x\n", offset, data));
prg32(data);
@@ -1330,7 +1330,7 @@ WRITE8_MEMBER(nes_studyngame_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_sgun20in1_device::write_h)
+void nes_sgun20in1_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("supergun20in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1345,7 +1345,7 @@ WRITE8_MEMBER(nes_sgun20in1_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_vt5201_device::write_h)
+void nes_vt5201_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("vt5201 wirte_h, offset: %04x, data: %02x\n", offset, data));
@@ -1364,7 +1364,7 @@ WRITE8_MEMBER(nes_vt5201_device::write_h)
chr8(offset, CHRROM);
}
-READ8_MEMBER(nes_vt5201_device::read_h)
+uint8_t nes_vt5201_device::read_h(offs_t offset)
{
LOG_MMC(("bmc_vt5201 read_h, offset: %04x\n", offset));
// m_dipsetting = ioport("CARTDIPS")->read();
@@ -1383,7 +1383,7 @@ READ8_MEMBER(nes_vt5201_device::read_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_810544c_device::write_h)
+void nes_810544c_device::write_h(offs_t offset, uint8_t data)
{
uint8_t bank = (offset >> 7);
LOG_MMC(("810544 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1407,7 +1407,7 @@ WRITE8_MEMBER(nes_810544c_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_ntd03_device::write_h)
+void nes_ntd03_device::write_h(offs_t offset, uint8_t data)
{
uint8_t pbank = (offset >> 10) & 0x1e;
uint8_t cbank = ((offset & 0x300) >> 5) | (offset & 0x07);
@@ -1434,7 +1434,7 @@ WRITE8_MEMBER(nes_ntd03_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_gb63_device::chr_w)
+void nes_bmc_gb63_device::chr_w(offs_t offset, uint8_t data)
{
int bank = offset >> 10;
@@ -1459,7 +1459,7 @@ void nes_bmc_gb63_device::update_banks()
// m_vram_disable = BIT(m_reg[1], 1) ? 0 : 1;
}
-WRITE8_MEMBER(nes_bmc_gb63_device::write_h)
+void nes_bmc_gb63_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_gb63 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1468,13 +1468,13 @@ WRITE8_MEMBER(nes_bmc_gb63_device::write_h)
update_banks();
}
-READ8_MEMBER(nes_bmc_gb63_device::read_h)
+uint8_t nes_bmc_gb63_device::read_h(offs_t offset)
{
LOG_MMC(("bmc_gb63 read_h, offset: %04x\n", offset));
// m_dipsetting = ioport("CARTDIPS")->read();
if (m_latch == 1)
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
else
return hi_access_rom(offset);
}
@@ -1493,7 +1493,7 @@ READ8_MEMBER(nes_bmc_gb63_device::read_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_gka_device::write_h)
+void nes_bmc_gka_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_gka write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1529,7 +1529,7 @@ WRITE8_MEMBER(nes_bmc_gka_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_gkb_device::write_h)
+void nes_bmc_gkb_device::write_h(offs_t offset, uint8_t data)
{
uint8_t bank = (offset & 0x40) ? 0 : 1;
LOG_MMC(("bmc_gkb write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1551,7 +1551,7 @@ WRITE8_MEMBER(nes_bmc_gkb_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_ws_device::write_m)
+void nes_bmc_ws_device::write_m(offs_t offset, uint8_t data)
{
uint8_t mmc_helper;
LOG_MMC(("bmc_ws write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1588,7 +1588,7 @@ WRITE8_MEMBER(nes_bmc_ws_device::write_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_11160_device::write_h)
+void nes_bmc_11160_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_11160 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1607,7 +1607,7 @@ WRITE8_MEMBER(nes_bmc_11160_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_g146_device::write_h)
+void nes_bmc_g146_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_g146 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1640,7 +1640,7 @@ WRITE8_MEMBER(nes_bmc_g146_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_8157_device::write_h)
+void nes_bmc_8157_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_8157 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1653,7 +1653,7 @@ WRITE8_MEMBER(nes_bmc_8157_device::write_h)
set_nt_mirroring(!BIT(offset, 1) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
}
-READ8_MEMBER(nes_bmc_8157_device::read_h)
+uint8_t nes_bmc_8157_device::read_h(offs_t offset)
{
LOG_MMC(("bmc_8157 read_h, offset: %04x\n", offset));
// m_dipsetting = ioport("CARTDIPS")->read();
@@ -1678,7 +1678,7 @@ READ8_MEMBER(nes_bmc_8157_device::read_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_hik300_device::write_h)
+void nes_bmc_hik300_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_hik300 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1707,7 +1707,7 @@ WRITE8_MEMBER(nes_bmc_hik300_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_s700_device::write_h)
+void nes_bmc_s700_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_s700 write_h, offset :%04x, data: %02x\n", offset, data));
@@ -1754,7 +1754,7 @@ void nes_bmc_ball11_device::set_banks()
}
}
-WRITE8_MEMBER(nes_bmc_ball11_device::write_m)
+void nes_bmc_ball11_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_ball11 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -1762,7 +1762,7 @@ WRITE8_MEMBER(nes_bmc_ball11_device::write_m)
set_banks();
}
-WRITE8_MEMBER(nes_bmc_ball11_device::write_h)
+void nes_bmc_ball11_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_ball11 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1793,7 +1793,7 @@ WRITE8_MEMBER(nes_bmc_ball11_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_22games_device::write_h)
+void nes_bmc_22games_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_22games write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1846,7 +1846,7 @@ void nes_bmc_64y2k_device::set_prg()
prg16_cdef(helper2);
}
-WRITE8_MEMBER(nes_bmc_64y2k_device::write_l)
+void nes_bmc_64y2k_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc64y2k write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -1866,7 +1866,7 @@ WRITE8_MEMBER(nes_bmc_64y2k_device::write_l)
set_nt_mirroring(BIT(data, 5) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
}
-WRITE8_MEMBER(nes_bmc_64y2k_device::write_h)
+void nes_bmc_64y2k_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc64y2k write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1904,7 +1904,7 @@ void nes_bmc_12in1_device::update_banks()
set_nt_mirroring(BIT(m_reg[2], 2) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
}
-WRITE8_MEMBER(nes_bmc_12in1_device::write_h)
+void nes_bmc_12in1_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_12in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1930,7 +1930,7 @@ WRITE8_MEMBER(nes_bmc_12in1_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_20in1_device::write_h)
+void nes_bmc_20in1_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_20in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1953,7 +1953,7 @@ WRITE8_MEMBER(nes_bmc_20in1_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_21in1_device::write_h)
+void nes_bmc_21in1_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_21in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1974,7 +1974,7 @@ WRITE8_MEMBER(nes_bmc_21in1_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_31in1_device::write_h)
+void nes_bmc_31in1_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_31in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2006,7 +2006,7 @@ WRITE8_MEMBER(nes_bmc_31in1_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_35in1_device::write_h)
+void nes_bmc_35in1_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_35in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2028,7 +2028,7 @@ WRITE8_MEMBER(nes_bmc_35in1_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_36in1_device::write_h)
+void nes_bmc_36in1_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_36in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2052,7 +2052,7 @@ WRITE8_MEMBER(nes_bmc_36in1_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_64in1_device::write_h)
+void nes_bmc_64in1_device::write_h(offs_t offset, uint8_t data)
{
int bank = (offset >> 1) & (offset >> 2) & 0x01;
@@ -2082,7 +2082,7 @@ WRITE8_MEMBER(nes_bmc_64in1_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_70in1_device::write_h)
+void nes_bmc_70in1_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc70in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2105,7 +2105,7 @@ WRITE8_MEMBER(nes_bmc_70in1_device::write_h)
}
}
-READ8_MEMBER(nes_bmc_70in1_device::read_h)
+uint8_t nes_bmc_70in1_device::read_h(offs_t offset)
{
LOG_MMC(("bmc70in1 read_h, offset: %04x\n", offset));
@@ -2128,7 +2128,7 @@ READ8_MEMBER(nes_bmc_70in1_device::read_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_72in1_device::write_h)
+void nes_bmc_72in1_device::write_h(offs_t offset, uint8_t data)
{
int hi_bank = offset & 0x40;
int size_16 = offset & 0x1000;
@@ -2165,7 +2165,7 @@ WRITE8_MEMBER(nes_bmc_72in1_device::write_h)
-------------------------------------------------*/
// does this work for super42in1 as well?!?
-WRITE8_MEMBER(nes_bmc_76in1_device::write_h)
+void nes_bmc_76in1_device::write_h(offs_t offset, uint8_t data)
{
int hi_bank;
int size_16;
@@ -2210,7 +2210,7 @@ WRITE8_MEMBER(nes_bmc_76in1_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_110in1_device::write_h)
+void nes_bmc_110in1_device::write_h(offs_t offset, uint8_t data)
{
uint8_t helper1 = (offset >> 12) ? 0 : 1;
uint8_t helper2 = ((offset >> 8) & 0x40) | ((offset >> 6) & 0x3f);
@@ -2237,7 +2237,7 @@ WRITE8_MEMBER(nes_bmc_110in1_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_150in1_device::write_h)
+void nes_bmc_150in1_device::write_h(offs_t offset, uint8_t data)
{
int bank = (offset >> 1) & 0x07;
@@ -2261,7 +2261,7 @@ WRITE8_MEMBER(nes_bmc_150in1_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_190in1_device::write_h)
+void nes_bmc_190in1_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc190in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2287,7 +2287,7 @@ WRITE8_MEMBER(nes_bmc_190in1_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_800in1_device::write_h)
+void nes_bmc_800in1_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc800in1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2312,7 +2312,7 @@ WRITE8_MEMBER(nes_bmc_800in1_device::write_h)
prg16_cdef(m_reg[1]);
}
-READ8_MEMBER(nes_bmc_800in1_device::read_h)
+uint8_t nes_bmc_800in1_device::read_h(offs_t offset)
{
LOG_MMC(("bmc800in1 read_h, offset: %04x\n", offset));
@@ -2335,7 +2335,7 @@ READ8_MEMBER(nes_bmc_800in1_device::read_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_1200in1_device::chr_w)
+void nes_bmc_1200in1_device::chr_w(offs_t offset, uint8_t data)
{
int bank = offset >> 10;
@@ -2344,7 +2344,7 @@ WRITE8_MEMBER(nes_bmc_1200in1_device::chr_w)
}
-WRITE8_MEMBER(nes_bmc_1200in1_device::write_h)
+void nes_bmc_1200in1_device::write_h(offs_t offset, uint8_t data)
{
int bank = ((offset >> 2) & 0x1f) | ((offset & 0x0100) >> 3);
@@ -2390,7 +2390,7 @@ WRITE8_MEMBER(nes_bmc_1200in1_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_gold260_device::write_h)
+void nes_bmc_gold260_device::write_h(offs_t offset, uint8_t data)
{
int bank = (offset & 0x1f) | ((offset & 0x0300) >> 3);
LOG_MMC(("bmc_gold260 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2428,7 +2428,7 @@ WRITE8_MEMBER(nes_bmc_gold260_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_gold150_device::write_h)
+void nes_bmc_gold150_device::write_h(offs_t offset, uint8_t data)
{
int bank = (offset & 0x1f) | ((offset & 0x0200) >> 4);
LOG_MMC(("bmc_gold150 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2450,12 +2450,12 @@ WRITE8_MEMBER(nes_bmc_gold150_device::write_h)
prg32(bank);
}
-READ8_MEMBER(nes_bmc_gold150_device::read_h)
+uint8_t nes_bmc_gold150_device::read_h(offs_t offset)
{
LOG_MMC(("bmc_gold150 read_h, offset: %04x\n", offset));
if (m_latch) // open bus
- return m_open_bus;
+ return get_open_bus();
else
return hi_access_rom(offset);
}
@@ -2475,7 +2475,7 @@ READ8_MEMBER(nes_bmc_gold150_device::read_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_ch001_device::write_h)
+void nes_bmc_ch001_device::write_h(offs_t offset, uint8_t data)
{
int bank = ((offset >> 1) & 0x1fc);
LOG_MMC(("bmc_ch001 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2503,12 +2503,12 @@ WRITE8_MEMBER(nes_bmc_ch001_device::write_h)
prg8_ef((offset & 0x07c ) | ((offset & 0x6) ? 0x3 : 0x1));
}
-READ8_MEMBER(nes_bmc_ch001_device::read_h)
+uint8_t nes_bmc_ch001_device::read_h(offs_t offset)
{
LOG_MMC(("bmc_ch001 read_h, offset: %04x\n", offset));
if (m_latch && offset < 0x4000) // open bus
- return m_open_bus;
+ return get_open_bus();
else
return hi_access_rom(offset);
}
@@ -2528,7 +2528,7 @@ READ8_MEMBER(nes_bmc_ch001_device::read_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_super22_device::write_h)
+void nes_bmc_super22_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("bmc_super22 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -2581,7 +2581,7 @@ WRITE8_MEMBER(nes_bmc_super22_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bmc_42in1reset_device::write_h)
+void nes_bmc_42in1reset_device::write_h(offs_t offset, uint8_t data)
{
int bank;
LOG_MMC(("bmc_42in1reset write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/multigame.h b/src/devices/bus/nes/multigame.h
index e88ec21be58..51db3e9f821 100644
--- a/src/devices/bus/nes/multigame.h
+++ b/src/devices/bus/nes/multigame.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_action52_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -34,8 +34,8 @@ public:
// construction/destruction
nes_caltron_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -56,8 +56,8 @@ public:
// construction/destruction
nes_rumblestat_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -78,9 +78,9 @@ public:
// construction/destruction
nes_svision16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -102,7 +102,7 @@ public:
// construction/destruction
nes_n625092_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -124,7 +124,7 @@ public:
// construction/destruction
nes_a65as_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -142,7 +142,7 @@ public:
// construction/destruction
nes_t262_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -163,7 +163,7 @@ public:
// construction/destruction
nes_novel1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -181,7 +181,7 @@ public:
// construction/destruction
nes_novel2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -199,7 +199,7 @@ public:
// construction/destruction
nes_studyngame_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -217,7 +217,7 @@ public:
// construction/destruction
nes_sgun20in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -235,8 +235,8 @@ public:
// construction/destruction
nes_vt5201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -257,7 +257,7 @@ public:
// construction/destruction
nes_810544c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -275,7 +275,7 @@ public:
// construction/destruction
nes_ntd03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -293,9 +293,9 @@ public:
// construction/destruction
nes_bmc_gb63_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
- virtual DECLARE_WRITE8_MEMBER(chr_w) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual void chr_w(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -318,7 +318,7 @@ public:
// construction/destruction
nes_bmc_gka_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -339,7 +339,7 @@ public:
// construction/destruction
nes_bmc_gkb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -357,7 +357,7 @@ public:
// construction/destruction
nes_bmc_ws_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -378,7 +378,7 @@ public:
// construction/destruction
nes_bmc_11160_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -396,7 +396,7 @@ public:
// construction/destruction
nes_bmc_g146_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -414,8 +414,8 @@ public:
// construction/destruction
nes_bmc_8157_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -433,7 +433,7 @@ public:
// construction/destruction
nes_bmc_hik300_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -451,7 +451,7 @@ public:
// construction/destruction
nes_bmc_s700_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -469,8 +469,8 @@ public:
// construction/destruction
nes_bmc_ball11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -492,7 +492,7 @@ public:
// construction/destruction
nes_bmc_22games_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -510,8 +510,8 @@ public:
// construction/destruction
nes_bmc_64y2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -533,7 +533,7 @@ public:
// construction/destruction
nes_bmc_12in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -555,7 +555,7 @@ public:
// construction/destruction
nes_bmc_20in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -573,7 +573,7 @@ public:
// construction/destruction
nes_bmc_21in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -591,7 +591,7 @@ public:
// construction/destruction
nes_bmc_31in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -609,7 +609,7 @@ public:
// construction/destruction
nes_bmc_35in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -627,7 +627,7 @@ public:
// construction/destruction
nes_bmc_36in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -645,7 +645,7 @@ public:
// construction/destruction
nes_bmc_64in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -663,8 +663,8 @@ public:
// construction/destruction
nes_bmc_70in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -686,7 +686,7 @@ public:
// construction/destruction
nes_bmc_72in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -704,7 +704,7 @@ public:
// construction/destruction
nes_bmc_76in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -725,7 +725,7 @@ public:
// construction/destruction
nes_bmc_110in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -743,7 +743,7 @@ public:
// construction/destruction
nes_bmc_150in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -761,7 +761,7 @@ public:
// construction/destruction
nes_bmc_190in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -779,8 +779,8 @@ public:
// construction/destruction
nes_bmc_800in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -802,8 +802,8 @@ public:
// construction/destruction
nes_bmc_1200in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
- virtual DECLARE_WRITE8_MEMBER(chr_w) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual void chr_w(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -824,8 +824,8 @@ public:
// construction/destruction
nes_bmc_gold150_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -846,7 +846,7 @@ public:
// construction/destruction
nes_bmc_gold260_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -864,8 +864,8 @@ public:
// construction/destruction
nes_bmc_ch001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -886,7 +886,7 @@ public:
// construction/destruction
nes_bmc_super22_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -922,7 +922,7 @@ public:
// construction/destruction
nes_bmc_42in1reset_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/namcot.cpp b/src/devices/bus/nes/namcot.cpp
index 84b41996272..e2898d6b9ba 100644
--- a/src/devices/bus/nes/namcot.cpp
+++ b/src/devices/bus/nes/namcot.cpp
@@ -246,7 +246,7 @@ void nes_namcot163_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_namcot3433_device::dxrom_write)
+void nes_namcot3433_device::dxrom_write(offs_t offset, uint8_t data)
{
LOG_MMC(("dxrom_write, offset: %04x, data: %02x\n", offset, data));
@@ -290,7 +290,7 @@ WRITE8_MEMBER(nes_namcot3433_device::dxrom_write)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_namcot3446_device::write_h)
+void nes_namcot3446_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("namcot3446 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -334,7 +334,7 @@ WRITE8_MEMBER(nes_namcot3446_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_namcot3425_device::write_h)
+void nes_namcot3425_device::write_h(offs_t offset, uint8_t data)
{
uint8_t mode;
LOG_MMC(("namcot3425 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -407,7 +407,7 @@ void nes_namcot340_device::device_timer(emu_timer &timer, device_timer_id id, in
}
}
-WRITE8_MEMBER(nes_namcot340_device::n340_lowrite)
+void nes_namcot340_device::n340_lowrite(offs_t offset, uint8_t data)
{
LOG_MMC(("n340_lowrite, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -426,7 +426,7 @@ WRITE8_MEMBER(nes_namcot340_device::n340_lowrite)
}
}
-READ8_MEMBER(nes_namcot340_device::n340_loread)
+uint8_t nes_namcot340_device::n340_loread(offs_t offset)
{
LOG_MMC(("n340_loread, offset: %04x\n", offset));
offset += 0x100;
@@ -444,7 +444,7 @@ READ8_MEMBER(nes_namcot340_device::n340_loread)
}
}
-WRITE8_MEMBER(nes_namcot340_device::n340_hiwrite)
+void nes_namcot340_device::n340_hiwrite(offs_t offset, uint8_t data)
{
LOG_MMC(("n340_hiwrite, offset: %04x, data: %02x\n", offset, data));
@@ -505,17 +505,17 @@ WRITE8_MEMBER(nes_namcot340_device::n340_hiwrite)
-------------------------------------------------*/
-READ8_MEMBER(nes_namcot175_device::read_m)
+uint8_t nes_namcot175_device::read_m(offs_t offset)
{
// the only game supporting this is Family Circuit '91, and it has 2KB of battery
// but it's mirrored up to 8KB (see Sprint Race -> Back Up menu breakage if not)
if (!m_battery.empty() && !m_wram_protect)
return m_battery[offset & (m_battery.size() - 1)];
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
-WRITE8_MEMBER(nes_namcot175_device::write_m)
+void nes_namcot175_device::write_m(offs_t offset, uint8_t data)
{
// the only game supporting this is Family Circuit '91, and it has 2KB of battery
// but it's mirrored up to 8KB (see Sprint Race -> Back Up menu breakage if not)
@@ -523,7 +523,7 @@ WRITE8_MEMBER(nes_namcot175_device::write_m)
m_battery[offset & (m_battery.size() - 1)] = data;
}
-WRITE8_MEMBER(nes_namcot175_device::write_h)
+void nes_namcot175_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("namcot175 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -536,7 +536,7 @@ WRITE8_MEMBER(nes_namcot175_device::write_h)
prg8_89(data & 0x3f);
break;
default:
- n340_hiwrite(space, offset, data, mem_mask);
+ n340_hiwrite(offset, data);
break;
}
}
@@ -560,7 +560,7 @@ WRITE8_MEMBER(nes_namcot175_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_namcot163_device::chr_w)
+void nes_namcot163_device::chr_w(offs_t offset, uint8_t data)
{
int bank = offset >> 10;
@@ -576,7 +576,7 @@ WRITE8_MEMBER(nes_namcot163_device::chr_w)
// or ROM, so no write
}
-READ8_MEMBER(nes_namcot163_device::chr_r)
+uint8_t nes_namcot163_device::chr_r(offs_t offset)
{
int bank = offset >> 10;
if (!(m_latch & 0x40) && m_chr_bank >= 0xe0)
@@ -590,15 +590,15 @@ READ8_MEMBER(nes_namcot163_device::chr_r)
}
-READ8_MEMBER(nes_namcot163_device::read_m)
+uint8_t nes_namcot163_device::read_m(offs_t offset)
{
if (!m_battery.empty() && offset < m_battery.size())
return m_battery[offset & (m_battery.size() - 1)];
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
-WRITE8_MEMBER(nes_namcot163_device::write_m)
+void nes_namcot163_device::write_m(offs_t offset, uint8_t data)
{
// the pcb can separately protect each 2KB chunk of the external wram from writes
int bank = (offset & 0x1800) >> 11;
@@ -606,7 +606,7 @@ WRITE8_MEMBER(nes_namcot163_device::write_m)
m_battery[offset & (m_battery.size() - 1)] = data;
}
-WRITE8_MEMBER(nes_namcot163_device::write_l)
+void nes_namcot163_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("namcot163 write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -617,12 +617,12 @@ WRITE8_MEMBER(nes_namcot163_device::write_l)
LOG_MMC(("Namcot-163 sound reg write, data: %02x\n", data));
break;
default:
- n340_lowrite(space, offset, data, mem_mask);
+ n340_lowrite(offset, data);
break;
}
}
-READ8_MEMBER(nes_namcot163_device::read_l)
+uint8_t nes_namcot163_device::read_l(offs_t offset)
{
LOG_MMC(("namcot163 read_l, offset: %04x\n", offset));
offset += 0x100;
@@ -633,7 +633,7 @@ READ8_MEMBER(nes_namcot163_device::read_l)
LOG_MMC(("Namcot-163 sound reg read\n"));
return 0;
default:
- return n340_loread(space, offset, mem_mask);
+ return n340_loread(offset);
}
}
@@ -645,7 +645,7 @@ void nes_namcot163_device::set_mirror(uint8_t page, uint8_t data)
set_nt_page(page, CIRAM, data & 0x01, 1);
}
-WRITE8_MEMBER(nes_namcot163_device::write_h)
+void nes_namcot163_device::write_h(offs_t offset, uint8_t data)
{
int page;
LOG_MMC(("namcot163 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -680,7 +680,7 @@ WRITE8_MEMBER(nes_namcot163_device::write_h)
LOG_MMC(("Namcot-163 sound address write, data: %02x\n", data));
break;
default:
- n340_hiwrite(space, offset, data, mem_mask);
+ n340_hiwrite(offset, data);
break;
}
}
diff --git a/src/devices/bus/nes/namcot.h b/src/devices/bus/nes/namcot.h
index a4ab64084e1..bcf72f5bad4 100644
--- a/src/devices/bus/nes/namcot.h
+++ b/src/devices/bus/nes/namcot.h
@@ -16,8 +16,8 @@ public:
// construction/destruction
nes_namcot3433_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(dxrom_write);
- virtual DECLARE_WRITE8_MEMBER(write_h) override { dxrom_write(space, offset, data, mem_mask); }
+ void dxrom_write(offs_t offset, uint8_t data);
+ virtual void write_h(offs_t offset, uint8_t data) override { dxrom_write(offset, data); }
virtual void pcb_reset() override;
@@ -40,7 +40,7 @@ public:
// construction/destruction
nes_namcot3446_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -61,7 +61,7 @@ public:
// construction/destruction
nes_namcot3425_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -83,12 +83,12 @@ public:
// construction/destruction
nes_namcot340_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(n340_loread);
- virtual DECLARE_WRITE8_MEMBER(n340_lowrite);
- virtual DECLARE_WRITE8_MEMBER(n340_hiwrite);
- virtual DECLARE_READ8_MEMBER(read_l) override { return n340_loread(space, offset, mem_mask); }
- virtual DECLARE_WRITE8_MEMBER(write_l) override { n340_lowrite(space, offset, data, mem_mask); }
- virtual DECLARE_WRITE8_MEMBER(write_h) override { n340_hiwrite(space, offset, data, mem_mask); }
+ uint8_t n340_loread(offs_t offset);
+ void n340_lowrite(offs_t offset, uint8_t data);
+ void n340_hiwrite(offs_t offset, uint8_t data);
+ virtual uint8_t read_l(offs_t offset) override { return n340_loread(offset); }
+ virtual void write_l(offs_t offset, uint8_t data) override { n340_lowrite(offset, data); }
+ virtual void write_h(offs_t offset, uint8_t data) override { n340_hiwrite(offset, data); }
virtual void pcb_reset() override;
@@ -122,9 +122,9 @@ public:
// device-level overrides
virtual void device_start() override;
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -141,15 +141,15 @@ public:
// construction/destruction
nes_namcot163_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
// we have to overwrite these to allow CIRAM to be used for VRAM, even if it's not clear which game(s) use this
- virtual DECLARE_READ8_MEMBER(chr_r) override;
- virtual DECLARE_WRITE8_MEMBER(chr_w) override;
+ virtual uint8_t chr_r(offs_t offset) override;
+ virtual void chr_w(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/nanjing.cpp b/src/devices/bus/nes/nanjing.cpp
index 26a7e20f97c..9719816beb2 100644
--- a/src/devices/bus/nes/nanjing.cpp
+++ b/src/devices/bus/nes/nanjing.cpp
@@ -111,7 +111,7 @@ void nes_nanjing_device::hblank_irq(int scanline, int vblank, int blanked)
}
-WRITE8_MEMBER(nes_nanjing_device::write_l)
+void nes_nanjing_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("nanjing write_l, offset: %04x, data: %02x\n", offset, data));
@@ -154,7 +154,7 @@ WRITE8_MEMBER(nes_nanjing_device::write_l)
prg32((m_reg[0] & 0x0f) | ((m_reg[1] & 0x0f) << 4));
}
-READ8_MEMBER(nes_nanjing_device::read_l)
+uint8_t nes_nanjing_device::read_l(offs_t offset)
{
uint8_t value = 0;
LOG_MMC(("nanjing read_l, offset: %04x\n", offset));
diff --git a/src/devices/bus/nes/nanjing.h b/src/devices/bus/nes/nanjing.h
index a231872a124..c5a71032573 100644
--- a/src/devices/bus/nes/nanjing.h
+++ b/src/devices/bus/nes/nanjing.h
@@ -19,8 +19,8 @@ public:
nes_nanjing_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
~nes_nanjing_device();
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/nes_slot.cpp b/src/devices/bus/nes/nes_slot.cpp
index c3d036b8493..ab8235ccc55 100644
--- a/src/devices/bus/nes/nes_slot.cpp
+++ b/src/devices/bus/nes/nes_slot.cpp
@@ -592,6 +592,12 @@ void device_nes_cart_interface::reset_cpu()
m_maincpu->set_pc(0xfffc);
}
+void device_nes_cart_interface::poke(offs_t offset, uint8_t data)
+{
+ // even worse hack
+ m_maincpu->space(AS_PROGRAM).write_byte(offset, data);
+}
+
//-------------------------------------------------
// Other helpers
//-------------------------------------------------
@@ -624,7 +630,7 @@ uint8_t device_nes_cart_interface::account_bus_conflict(uint32_t offset, uint8_t
// PPU accessors
//-------------------------------------------------
-WRITE8_MEMBER(device_nes_cart_interface::chr_w)
+void device_nes_cart_interface::chr_w(offs_t offset, uint8_t data)
{
int bank = offset >> 10;
@@ -632,14 +638,14 @@ WRITE8_MEMBER(device_nes_cart_interface::chr_w)
m_chr_access[bank][offset & 0x3ff] = data;
}
-READ8_MEMBER(device_nes_cart_interface::chr_r)
+uint8_t device_nes_cart_interface::chr_r(offs_t offset)
{
int bank = offset >> 10;
return m_chr_access[bank][offset & 0x3ff];
}
-WRITE8_MEMBER(device_nes_cart_interface::nt_w)
+void device_nes_cart_interface::nt_w(offs_t offset, uint8_t data)
{
int page = ((offset & 0xc00) >> 10);
@@ -649,7 +655,7 @@ WRITE8_MEMBER(device_nes_cart_interface::nt_w)
m_nt_access[page][offset & 0x3ff] = data;
}
-READ8_MEMBER(device_nes_cart_interface::nt_r)
+uint8_t device_nes_cart_interface::nt_r(offs_t offset)
{
int page = ((offset & 0xc00) >> 10);
return m_nt_access[page][offset & 0x3ff];
@@ -665,26 +671,26 @@ READ8_MEMBER(device_nes_cart_interface::nt_r)
// source)
//-------------------------------------------------
-READ8_MEMBER(device_nes_cart_interface::read_l)
+uint8_t device_nes_cart_interface::read_l(offs_t offset)
{
- return m_open_bus;
+ return get_open_bus();
}
-READ8_MEMBER(device_nes_cart_interface::read_m)
+uint8_t device_nes_cart_interface::read_m(offs_t offset)
{
if (!m_battery.empty())
return m_battery[offset & (m_battery.size() - 1)];
if (!m_prgram.empty())
return m_prgram[offset & (m_prgram.size() - 1)];
- return m_open_bus;
+ return get_open_bus();
}
-WRITE8_MEMBER(device_nes_cart_interface::write_l)
+void device_nes_cart_interface::write_l(offs_t offset, uint8_t data)
{
}
-WRITE8_MEMBER(device_nes_cart_interface::write_m)
+void device_nes_cart_interface::write_m(offs_t offset, uint8_t data)
{
if (!m_battery.empty())
m_battery[offset & (m_battery.size() - 1)] = data;
@@ -692,7 +698,7 @@ WRITE8_MEMBER(device_nes_cart_interface::write_m)
m_prgram[offset & (m_prgram.size() - 1)] = data;
}
-WRITE8_MEMBER(device_nes_cart_interface::write_h)
+void device_nes_cart_interface::write_h(offs_t offset, uint8_t data)
{
}
@@ -740,6 +746,9 @@ void device_nes_cart_interface::pcb_start(running_machine &machine, uint8_t *cir
device().save_item(NAME(m_vram));
if (!m_battery.empty())
device().save_item(NAME(m_battery));
+
+ // open bus
+ device().save_item(NAME(m_open_bus));
}
void device_nes_cart_interface::pcb_reg_postload(running_machine &machine)
@@ -943,11 +952,11 @@ std::string nes_cart_slot_device::get_default_card_software(get_default_card_sof
read
-------------------------------------------------*/
-READ8_MEMBER(nes_cart_slot_device::read_l)
+uint8_t nes_cart_slot_device::read_l(offs_t offset)
{
if (m_cart)
{
- uint8_t val = m_cart->read_l(space, offset);
+ uint8_t val = m_cart->read_l(offset);
// update open bus
m_cart->set_open_bus(((offset + 0x4100) & 0xff00) >> 8);
return val;
@@ -956,11 +965,11 @@ READ8_MEMBER(nes_cart_slot_device::read_l)
return 0xff;
}
-READ8_MEMBER(nes_cart_slot_device::read_m)
+uint8_t nes_cart_slot_device::read_m(offs_t offset)
{
if (m_cart)
{
- uint8_t val = m_cart->read_m(space, offset);
+ uint8_t val = m_cart->read_m(offset);
// update open bus
m_cart->set_open_bus(((offset + 0x6000) & 0xff00) >> 8);
return val;
@@ -969,11 +978,11 @@ READ8_MEMBER(nes_cart_slot_device::read_m)
return 0xff;
}
-READ8_MEMBER(nes_cart_slot_device::read_h)
+uint8_t nes_cart_slot_device::read_h(offs_t offset)
{
if (m_cart)
{
- uint8_t val = m_cart->read_h(space, offset);
+ uint8_t val = m_cart->read_h(offset);
// update open bus
m_cart->set_open_bus(((offset + 0x8000) & 0xff00) >> 8);
return val;
@@ -982,11 +991,11 @@ READ8_MEMBER(nes_cart_slot_device::read_h)
return 0xff;
}
-READ8_MEMBER(nes_cart_slot_device::read_ex)
+uint8_t nes_cart_slot_device::read_ex(offs_t offset)
{
if (m_cart)
{
- uint8_t val = m_cart->read_ex(space, offset);
+ uint8_t val = m_cart->read_ex(offset);
// update open bus
m_cart->set_open_bus(((offset + 0x4020) & 0xff00) >> 8);
return val;
@@ -1000,41 +1009,41 @@ READ8_MEMBER(nes_cart_slot_device::read_ex)
write
-------------------------------------------------*/
-WRITE8_MEMBER(nes_cart_slot_device::write_l)
+void nes_cart_slot_device::write_l(offs_t offset, uint8_t data)
{
if (m_cart)
{
- m_cart->write_l(space, offset, data);
+ m_cart->write_l(offset, data);
// update open bus
m_cart->set_open_bus(((offset + 0x4100) & 0xff00) >> 8);
}
}
-WRITE8_MEMBER(nes_cart_slot_device::write_m)
+void nes_cart_slot_device::write_m(offs_t offset, uint8_t data)
{
if (m_cart)
{
- m_cart->write_m(space, offset, data);
+ m_cart->write_m(offset, data);
// update open bus
m_cart->set_open_bus(((offset + 0x6000) & 0xff00) >> 8);
}
}
-WRITE8_MEMBER(nes_cart_slot_device::write_h)
+void nes_cart_slot_device::write_h(offs_t offset, uint8_t data)
{
if (m_cart)
{
- m_cart->write_h(space, offset, data);
+ m_cart->write_h(offset, data);
// update open bus
m_cart->set_open_bus(((offset + 0x8000) & 0xff00) >> 8);
}
}
-WRITE8_MEMBER(nes_cart_slot_device::write_ex)
+void nes_cart_slot_device::write_ex(offs_t offset, uint8_t data)
{
if (m_cart)
{
- m_cart->write_ex(space, offset, data);
+ m_cart->write_ex(offset, data);
// update open bus
m_cart->set_open_bus(((offset + 0x4020) & 0xff00) >> 8);
}
diff --git a/src/devices/bus/nes/nes_slot.h b/src/devices/bus/nes/nes_slot.h
index 260d59d4ead..952ffd74b1f 100644
--- a/src/devices/bus/nes/nes_slot.h
+++ b/src/devices/bus/nes/nes_slot.h
@@ -166,19 +166,19 @@ public:
virtual ~device_nes_cart_interface();
// reading and writing
- virtual DECLARE_READ8_MEMBER(read_l);
- virtual DECLARE_READ8_MEMBER(read_m);
- virtual DECLARE_READ8_MEMBER(read_h) { return 0xff; }
- virtual DECLARE_READ8_MEMBER(read_ex) { return 0xff; }
- virtual DECLARE_WRITE8_MEMBER(write_l);
- virtual DECLARE_WRITE8_MEMBER(write_m);
- virtual DECLARE_WRITE8_MEMBER(write_h);
- virtual DECLARE_WRITE8_MEMBER(write_ex) { }
-
- virtual DECLARE_READ8_MEMBER(chr_r);
- virtual DECLARE_WRITE8_MEMBER(chr_w);
- virtual DECLARE_READ8_MEMBER(nt_r);
- virtual DECLARE_WRITE8_MEMBER(nt_w);
+ virtual uint8_t read_l(offs_t offset);
+ virtual uint8_t read_m(offs_t offset);
+ virtual uint8_t read_h(offs_t offset) { return 0xff; }
+ virtual uint8_t read_ex(offs_t offset) { return 0xff; }
+ virtual void write_l(offs_t offset, uint8_t data);
+ virtual void write_m(offs_t offset, uint8_t data);
+ virtual void write_h(offs_t offset, uint8_t data);
+ virtual void write_ex(offs_t offset, uint8_t data) { }
+
+ virtual uint8_t chr_r(offs_t offset);
+ virtual void chr_w(offs_t offset, uint8_t data);
+ virtual uint8_t nt_r(offs_t offset);
+ virtual void nt_w(offs_t offset, uint8_t data);
// hack until disk system is made modern!
virtual void disk_flip_side() { }
@@ -202,6 +202,7 @@ public:
void set_vrc_lines(int PRG_A, int PRG_B, int CHR) { m_vrc_ls_prg_a = PRG_A; m_vrc_ls_prg_b = PRG_B; m_vrc_ls_chr = CHR; }
void set_x1_005_alt(bool val) { m_x1_005_alt_mirroring = val; }
void set_bus_conflict(bool val) { m_bus_conflict = val; }
+ uint8_t get_open_bus() { return m_open_bus; }
void set_open_bus(uint8_t val) { m_open_bus = val; }
uint8_t *get_prg_base() { return m_prg; }
@@ -237,6 +238,7 @@ protected:
DECLARE_WRITE_LINE_MEMBER(set_irq_line);
void hold_irq_line();
void reset_cpu();
+ void poke(offs_t offset, uint8_t data);
// internal state
uint8_t *m_prg;
@@ -270,8 +272,10 @@ protected:
bool m_pcb_ctrl_mirror, m_four_screen_vram, m_has_trainer;
bool m_x1_005_alt_mirroring; // temp hack for two kind of mirroring in Taito X1-005 boards (to be replaced with pin checking)
bool m_bus_conflict;
+private:
uint8_t m_open_bus;
+public:
// PRG
inline int prg_8k_bank_num(int bank);
inline void update_prg_banks(int prg_bank_start, int prg_bank_end);
@@ -388,14 +392,14 @@ public:
int nes_get_pcb_id(const char *slot);
// reading and writing
- virtual DECLARE_READ8_MEMBER(read_l);
- virtual DECLARE_READ8_MEMBER(read_m);
- virtual DECLARE_READ8_MEMBER(read_h);
- virtual DECLARE_READ8_MEMBER(read_ex);
- virtual DECLARE_WRITE8_MEMBER(write_l);
- virtual DECLARE_WRITE8_MEMBER(write_m);
- virtual DECLARE_WRITE8_MEMBER(write_h);
- virtual DECLARE_WRITE8_MEMBER(write_ex);
+ virtual uint8_t read_l(offs_t offset);
+ virtual uint8_t read_m(offs_t offset);
+ virtual uint8_t read_h(offs_t offset);
+ virtual uint8_t read_ex(offs_t offset);
+ virtual void write_l(offs_t offset, uint8_t data);
+ virtual void write_m(offs_t offset, uint8_t data);
+ virtual void write_h(offs_t offset, uint8_t data);
+ virtual void write_ex(offs_t offset, uint8_t data);
// hack until disk system is made modern!
virtual void disk_flip_side() { if (m_cart) m_cart->disk_flip_side(); }
diff --git a/src/devices/bus/nes/ntdec.cpp b/src/devices/bus/nes/ntdec.cpp
index 5ea3458e8f3..6fbcd6f31ef 100644
--- a/src/devices/bus/nes/ntdec.cpp
+++ b/src/devices/bus/nes/ntdec.cpp
@@ -102,7 +102,7 @@ void nes_ntdec_fh_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_ntdec_asder_device::write_h)
+void nes_ntdec_asder_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("ntdec_asder write_h, offset: %04x, data: %02x\n", offset, data));
@@ -165,7 +165,7 @@ WRITE8_MEMBER(nes_ntdec_asder_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_ntdec_fh_device::write_m)
+void nes_ntdec_fh_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("ntdec_fh write_m, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/ntdec.h b/src/devices/bus/nes/ntdec.h
index 1e5e8ef6cbb..062c5d7dcec 100644
--- a/src/devices/bus/nes/ntdec.h
+++ b/src/devices/bus/nes/ntdec.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_ntdec_asder_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -37,7 +37,7 @@ public:
// construction/destruction
nes_ntdec_fh_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/nxrom.cpp b/src/devices/bus/nes/nxrom.cpp
index e78fd6d1527..352b7534250 100644
--- a/src/devices/bus/nes/nxrom.cpp
+++ b/src/devices/bus/nes/nxrom.cpp
@@ -145,9 +145,6 @@ void nes_nrom_device::common_start()
save_item(NAME(m_nt_src));
save_item(NAME(m_nt_orig));
save_item(NAME(m_nt_writable));
-
- // open bus
- save_item(NAME(m_open_bus));
}
void nes_nrom_device::pcb_reset()
@@ -291,23 +288,23 @@ void nes_un1rom_device::pcb_reset()
-------------------------------------------------*/
-READ8_MEMBER(nes_nrom368_device::read_l)
+uint8_t nes_nrom368_device::read_l(offs_t offset)
{
LOG_MMC(("nrom368 read_l, offset: %04x\n", offset));
offset += 0x100;
if (offset >= 0x800)
return m_prg[offset - 0x800];
else
- return m_open_bus;
+ return get_open_bus();
}
-READ8_MEMBER(nes_nrom368_device::read_m)
+uint8_t nes_nrom368_device::read_m(offs_t offset)
{
LOG_MMC(("nrom368 read_m, offset: %04x\n", offset));
return m_prg[0x1800 + (offset & 0x1fff)];
}
-READ8_MEMBER(nes_nrom368_device::read_h)
+uint8_t nes_nrom368_device::read_h(offs_t offset)
{
LOG_MMC(("nrom368 read_h, offset: %04x\n", offset));
return m_prg[0x3800 + (offset & 0x7fff)];
@@ -334,7 +331,7 @@ READ8_MEMBER(nes_nrom368_device::read_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_axrom_device::write_h)
+void nes_axrom_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("axrom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -355,7 +352,7 @@ WRITE8_MEMBER(nes_axrom_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bxrom_device::write_h)
+void nes_bxrom_device::write_h(offs_t offset, uint8_t data)
{
/* This portion of the mapper is nearly identical to Mapper 7, except no one-screen mirroring */
/* Deadly Towers is really a BxROM game - the demo screens look wrong using mapper 7. */
@@ -391,7 +388,7 @@ WRITE8_MEMBER(nes_bxrom_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_cnrom_device::write_h)
+void nes_cnrom_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("cxrom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -412,7 +409,7 @@ WRITE8_MEMBER(nes_cnrom_device::write_h)
chr8(data, CHRROM);
}
-READ8_MEMBER(nes_cnrom_device::chr_r)
+uint8_t nes_cnrom_device::chr_r(offs_t offset)
{
int bank = offset >> 10;
@@ -421,7 +418,7 @@ READ8_MEMBER(nes_cnrom_device::chr_r)
// give actual VROM content or open bus values.
// For most boards, chr_open_bus remains always zero.
if (m_chr_open_bus)
- return m_open_bus;
+ return get_open_bus();
return m_chr_access[bank][offset & 0x3ff];
}
@@ -441,7 +438,7 @@ READ8_MEMBER(nes_cnrom_device::chr_r)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_cprom_device::write_h)
+void nes_cprom_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("cprom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -462,7 +459,7 @@ WRITE8_MEMBER(nes_cprom_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_gxrom_device::write_h)
+void nes_gxrom_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("gxrom write_h, offset %04x, data: %02x\n", offset, data));
@@ -488,7 +485,7 @@ WRITE8_MEMBER(nes_gxrom_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_uxrom_device::write_h)
+void nes_uxrom_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("uxrom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -514,7 +511,7 @@ WRITE8_MEMBER(nes_uxrom_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_uxrom_cc_device::write_h)
+void nes_uxrom_cc_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("uxrom_cc write_h, offset: %04x, data: %02x\n", offset, data));
@@ -535,7 +532,7 @@ WRITE8_MEMBER(nes_uxrom_cc_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_un1rom_device::write_h)
+void nes_un1rom_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("un1rom write_h, offset: %04x, data: %02x\n", offset, data));
@@ -558,7 +555,7 @@ WRITE8_MEMBER(nes_un1rom_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_nochr_device::chr_w)
+void nes_nochr_device::chr_w(offs_t offset, uint8_t data)
{
int mirr = get_mirroring();
if (mirr == PPU_MIRROR_HIGH)
@@ -569,7 +566,7 @@ WRITE8_MEMBER(nes_nochr_device::chr_w)
m_ciram[offset & 0x7ff] = data; // not sure here, since there is no software to test...
}
-READ8_MEMBER(nes_nochr_device::chr_r)
+uint8_t nes_nochr_device::chr_r(offs_t offset)
{
int mirr = get_mirroring();
if (mirr == PPU_MIRROR_HIGH)
diff --git a/src/devices/bus/nes/nxrom.h b/src/devices/bus/nes/nxrom.h
index 721ed5b5e98..382abf05390 100644
--- a/src/devices/bus/nes/nxrom.h
+++ b/src/devices/bus/nes/nxrom.h
@@ -36,9 +36,9 @@ public:
// construction/destruction
nes_nrom368_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual uint8_t read_h(offs_t offset) override;
};
@@ -62,7 +62,7 @@ public:
// construction/destruction
nes_axrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -80,7 +80,7 @@ public:
// construction/destruction
nes_bxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -98,8 +98,8 @@ public:
// construction/destruction
nes_cnrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(chr_r) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t chr_r(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -122,7 +122,7 @@ public:
// construction/destruction
nes_cprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -140,7 +140,7 @@ public:
// construction/destruction
nes_gxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -158,7 +158,7 @@ public:
// construction/destruction
nes_uxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -176,7 +176,7 @@ public:
// construction/destruction
nes_uxrom_cc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -194,7 +194,7 @@ public:
// construction/destruction
nes_un1rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -213,8 +213,8 @@ public:
nes_nochr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_READ8_MEMBER(chr_r) override;
- virtual DECLARE_WRITE8_MEMBER(chr_w) override;
+ virtual uint8_t chr_r(offs_t offset) override;
+ virtual void chr_w(offs_t offset, uint8_t data) override;
};
diff --git a/src/devices/bus/nes/pirate.cpp b/src/devices/bus/nes/pirate.cpp
index 1d2035a9b91..acda901ecca 100644
--- a/src/devices/bus/nes/pirate.cpp
+++ b/src/devices/bus/nes/pirate.cpp
@@ -423,7 +423,7 @@ void nes_cityfight_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_agci_device::write_h)
+void nes_agci_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("agci write_h, offset: %04x, data: %02x\n", offset, data));
@@ -445,7 +445,7 @@ WRITE8_MEMBER(nes_agci_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_dreamtech_device::write_l)
+void nes_dreamtech_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("dreamtech write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -467,7 +467,7 @@ WRITE8_MEMBER(nes_dreamtech_device::write_l)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_fukutake_device::write_l)
+void nes_fukutake_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("fukutake write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -483,7 +483,7 @@ WRITE8_MEMBER(nes_fukutake_device::write_l)
m_ram[offset - 0x400] = data;
}
-READ8_MEMBER(nes_fukutake_device::read_l)
+uint8_t nes_fukutake_device::read_l(offs_t offset)
{
LOG_MMC(("fukutake read_l, offset: %04x\n", offset));
offset += 0x100;
@@ -503,13 +503,13 @@ READ8_MEMBER(nes_fukutake_device::read_l)
return 0;
}
-WRITE8_MEMBER(nes_fukutake_device::write_m)
+void nes_fukutake_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("fukutake write_m, offset: %04x, data: %02x\n", offset, data));
m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)] = data;
}
-READ8_MEMBER(nes_fukutake_device::read_m)
+uint8_t nes_fukutake_device::read_m(offs_t offset)
{
LOG_MMC(("fukutake read_m, offset: %04x\n", offset));
return m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)];
@@ -540,7 +540,7 @@ void nes_futuremedia_device::hblank_irq(int scanline, int vblank, int blanked)
}
}
-WRITE8_MEMBER(nes_futuremedia_device::write_h)
+void nes_futuremedia_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("futuremedia write_h, offset: %04x, data: %02x\n", offset, data));
@@ -603,7 +603,7 @@ WRITE8_MEMBER(nes_futuremedia_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_magseries_device::write_h)
+void nes_magseries_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("magseries write_h, offset: %04x, data: %02x\n", offset, data));
@@ -626,7 +626,7 @@ WRITE8_MEMBER(nes_magseries_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_daou306_device::write_h)
+void nes_daou306_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("daou306 write_h, offset: %04x, data: %02x\n", offset, data));
int reg = BIT(offset, 2) ? 8 : 0;
@@ -695,7 +695,7 @@ WRITE8_MEMBER(nes_daou306_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_cc21_device::write_h)
+void nes_cc21_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("cc21 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -718,7 +718,7 @@ WRITE8_MEMBER(nes_cc21_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_xiaozy_device::write_l)
+void nes_xiaozy_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("xiaozy write_l, offset: %04x, data: %02x\n", offset, data));
@@ -739,7 +739,7 @@ WRITE8_MEMBER(nes_xiaozy_device::write_l)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_edu2k_device::write_h)
+void nes_edu2k_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("edu2k write_h, offset: %04x, data: %02x\n", offset, data));
@@ -747,13 +747,13 @@ WRITE8_MEMBER(nes_edu2k_device::write_h)
m_latch = (data & 0xc0) >> 6;
}
-WRITE8_MEMBER(nes_edu2k_device::write_m)
+void nes_edu2k_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("edu2k write_m, offset: %04x, data: %02x\n", offset, data));
m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)] = data;
}
-READ8_MEMBER(nes_edu2k_device::read_m)
+uint8_t nes_edu2k_device::read_m(offs_t offset)
{
LOG_MMC(("edu2k read_m, offset: %04x\n", offset));
return m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)];
@@ -787,7 +787,7 @@ void nes_t230_device::hblank_irq(int scanline, int vblank, int blanked)
}
}
-WRITE8_MEMBER(nes_t230_device::write_h)
+void nes_t230_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("t230 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -869,7 +869,7 @@ void nes_mk2_device::hblank_irq( int scanline, int vblank, int blanked )
m_irq_clear = 0;
}
-WRITE8_MEMBER(nes_mk2_device::write_m)
+void nes_mk2_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("mk2 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -921,7 +921,7 @@ void nes_whero_device::hblank_irq(int scanline, int vblank, int blanked)
}
}
-WRITE8_MEMBER(nes_whero_device::write_h)
+void nes_whero_device::write_h(offs_t offset, uint8_t data)
{
int bank, shift, mask1, mask2;
LOG_MMC(("World Hero write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1005,7 +1005,7 @@ WRITE8_MEMBER(nes_whero_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_43272_device::write_h)
+void nes_43272_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("unl_43272 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1016,7 +1016,7 @@ WRITE8_MEMBER(nes_43272_device::write_h)
}
-READ8_MEMBER(nes_43272_device::read_h)
+uint8_t nes_43272_device::read_h(offs_t offset)
{
uint8_t mask = (m_latch & 0x400) ? 0xfe : 0xff;
LOG_MMC(("unl_43272 read_h, offset: %04x\n", offset));
@@ -1054,7 +1054,7 @@ void nes_tf1201_device::update_prg()
prg8_cd(m_swap ? m_prg : 0xff );
}
-WRITE8_MEMBER(nes_tf1201_device::write_h)
+void nes_tf1201_device::write_h(offs_t offset, uint8_t data)
{
int bank;
LOG_MMC(("unl_tf1201 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1139,7 +1139,7 @@ void nes_cityfight_device::update_prg()
prg8_cd(m_prg_reg);
}
-WRITE8_MEMBER(nes_cityfight_device::write_h)
+void nes_cityfight_device::write_h(offs_t offset, uint8_t data)
{
int bank;
LOG_MMC(("unl_cityfight write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1244,7 +1244,7 @@ void nes_fujiya_device::pcb_reset()
m_latch = 0;
}
-WRITE8_MEMBER(nes_fujiya_device::write_m)
+void nes_fujiya_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("fujiya write_m, offset: %04x, data: %02x\n", offset, data));
offset += 0x6000;
@@ -1253,7 +1253,7 @@ WRITE8_MEMBER(nes_fujiya_device::write_m)
m_latch = (data & 0x40) << 1;
}
-READ8_MEMBER(nes_fujiya_device::read_m)
+uint8_t nes_fujiya_device::read_m(offs_t offset)
{
LOG_MMC(("fujiya read_m, offset: %04x\n", offset));
offset += 0x6000;
@@ -1261,6 +1261,6 @@ READ8_MEMBER(nes_fujiya_device::read_m)
if (offset == 0x7001 || offset == 0x7777)
return m_latch | ((offset >> 8) & 0x7f);
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
#endif
diff --git a/src/devices/bus/nes/pirate.h b/src/devices/bus/nes/pirate.h
index 91424d32e25..e99bd703aec 100644
--- a/src/devices/bus/nes/pirate.h
+++ b/src/devices/bus/nes/pirate.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_agci_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -34,7 +34,7 @@ public:
// construction/destruction
nes_dreamtech_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -52,10 +52,10 @@ public:
// construction/destruction
nes_fukutake_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -77,7 +77,7 @@ public:
// construction/destruction
nes_futuremedia_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -101,7 +101,7 @@ public:
// construction/destruction
nes_magseries_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -119,7 +119,7 @@ public:
// construction/destruction
nes_daou306_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -140,7 +140,7 @@ public:
// construction/destruction
nes_cc21_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -158,7 +158,7 @@ public:
// construction/destruction
nes_xiaozy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -176,9 +176,9 @@ public:
// construction/destruction
nes_edu2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -199,7 +199,7 @@ public:
// construction/destruction
nes_t230_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -225,7 +225,7 @@ public:
// construction/destruction
nes_mk2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -249,7 +249,7 @@ public:
// construction/destruction
nes_whero_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -276,8 +276,8 @@ public:
// construction/destruction
nes_43272_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -298,7 +298,7 @@ public:
// construction/destruction
nes_tf1201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -325,7 +325,7 @@ public:
// construction/destruction
nes_cityfight_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -359,8 +359,8 @@ public:
// construction/destruction
nes_fujiya_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/pt554.cpp b/src/devices/bus/nes/pt554.cpp
index 98524a04bc7..db16ca42e37 100644
--- a/src/devices/bus/nes/pt554.cpp
+++ b/src/devices/bus/nes/pt554.cpp
@@ -59,7 +59,7 @@ nes_bandai_pt554_device::nes_bandai_pt554_device(const machine_config &mconfig,
-------------------------------------------------*/
-WRITE8_MEMBER(nes_bandai_pt554_device::write_m)
+void nes_bandai_pt554_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("Bandai PT-554 Sound write, data: %02x\n", data));
diff --git a/src/devices/bus/nes/pt554.h b/src/devices/bus/nes/pt554.h
index f25281ea4f0..746750c52ed 100644
--- a/src/devices/bus/nes/pt554.h
+++ b/src/devices/bus/nes/pt554.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_bandai_pt554_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
protected:
// device-level overrides
diff --git a/src/devices/bus/nes/racermate.cpp b/src/devices/bus/nes/racermate.cpp
index 5b578da0e09..111cb997dd0 100644
--- a/src/devices/bus/nes/racermate.cpp
+++ b/src/devices/bus/nes/racermate.cpp
@@ -81,7 +81,7 @@ void nes_racermate_device::update_banks()
prg16_89ab(m_latch >> 6);
}
-WRITE8_MEMBER(nes_racermate_device::write_h)
+void nes_racermate_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("racermate write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/racermate.h b/src/devices/bus/nes/racermate.h
index 5366ec1a6ea..cb74a06a6b0 100644
--- a/src/devices/bus/nes/racermate.h
+++ b/src/devices/bus/nes/racermate.h
@@ -16,7 +16,7 @@ public:
// device-level overrides
virtual void device_start() override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/rcm.cpp b/src/devices/bus/nes/rcm.cpp
index 5c861922afb..fdd07830381 100644
--- a/src/devices/bus/nes/rcm.cpp
+++ b/src/devices/bus/nes/rcm.cpp
@@ -161,7 +161,7 @@ void nes_3dblock_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_gs2015_device::write_h)
+void nes_gs2015_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("gs2015 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -169,7 +169,7 @@ WRITE8_MEMBER(nes_gs2015_device::write_h)
chr8(offset >> 1, m_chr_source);
}
-READ8_MEMBER(nes_gs2015_device::read_m)
+uint8_t nes_gs2015_device::read_m(offs_t offset)
{
LOG_MMC(("gs2015 read_m, offset: %04x\n", offset));
return 0; // Videopoker Bonza needs this (sort of protection? or related to inputs?)
@@ -186,7 +186,7 @@ READ8_MEMBER(nes_gs2015_device::read_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_gs2004_device::write_h)
+void nes_gs2004_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("gs2004 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -204,7 +204,7 @@ WRITE8_MEMBER(nes_gs2004_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_gs2013_device::write_h)
+void nes_gs2013_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("gs2013 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -232,7 +232,7 @@ WRITE8_MEMBER(nes_gs2013_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_tf9_device::write_h)
+void nes_tf9_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("tetrisfam write_h, offset: %04x, data: %02x\n", offset, data));
@@ -279,7 +279,7 @@ void nes_3dblock_device::hblank_irq(int scanline, int vblank, int blanked)
}
}
-WRITE8_MEMBER(nes_3dblock_device::write_l)
+void nes_3dblock_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("3dblock write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
diff --git a/src/devices/bus/nes/rcm.h b/src/devices/bus/nes/rcm.h
index f37a6074432..005869fe09c 100644
--- a/src/devices/bus/nes/rcm.h
+++ b/src/devices/bus/nes/rcm.h
@@ -16,9 +16,9 @@ public:
// construction/destruction
nes_gs2015_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override { return read_m(space, offset, mem_mask); }
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_l(offs_t offset) override { return read_m(offset); }
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -36,7 +36,7 @@ public:
// construction/destruction
nes_gs2004_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -54,7 +54,7 @@ public:
// construction/destruction
nes_gs2013_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -72,7 +72,7 @@ public:
// construction/destruction
nes_tf9_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -90,7 +90,7 @@ public:
// construction/destruction
nes_3dblock_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/rexsoft.cpp b/src/devices/bus/nes/rexsoft.cpp
index 3d868a0c970..c10b88afe01 100644
--- a/src/devices/bus/nes/rexsoft.cpp
+++ b/src/devices/bus/nes/rexsoft.cpp
@@ -112,7 +112,7 @@ void nes_rex_sl1632_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_rex_dbz5_device::write_l)
+void nes_rex_dbz5_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("rex_dbz write_l, offset: %04x, data: %02x\n", offset, data));
@@ -121,7 +121,7 @@ WRITE8_MEMBER(nes_rex_dbz5_device::write_l)
}
/* we would need to use this read handler in 0x6000-0x7fff as well */
-READ8_MEMBER(nes_rex_dbz5_device::read_l)
+uint8_t nes_rex_dbz5_device::read_l(offs_t offset)
{
LOG_MMC(("rex_dbz read_l, offset: %04x\n", offset));
return 0x01;
@@ -208,7 +208,7 @@ void nes_rex_sl1632_device::set_chr(uint8_t chr, int chr_base, int chr_mask)
chr1_x(chr_page ^ 7, chr_base2[7] | (bank[7] & chr_mask), chr);
}
-WRITE8_MEMBER(nes_rex_sl1632_device::write_h)
+void nes_rex_sl1632_device::write_h(offs_t offset, uint8_t data)
{
uint8_t helper1, helper2;
LOG_MMC(("rex_sl1632 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -232,7 +232,7 @@ WRITE8_MEMBER(nes_rex_sl1632_device::write_h)
break;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
diff --git a/src/devices/bus/nes/rexsoft.h b/src/devices/bus/nes/rexsoft.h
index 61fe876633a..0c44c73139d 100644
--- a/src/devices/bus/nes/rexsoft.h
+++ b/src/devices/bus/nes/rexsoft.h
@@ -16,10 +16,10 @@ public:
// construction/destruction
nes_rex_dbz5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_READ8_MEMBER(read_m) override { return read_l(space, offset, mem_mask); }
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual void chr_cb( int start, int bank, int source ) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual uint8_t read_m(offs_t offset) override { return read_l(offset); }
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void chr_cb(int start, int bank, int source) override;
virtual void pcb_reset() override;
@@ -40,7 +40,7 @@ public:
// construction/destruction
nes_rex_sl1632_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/sachen.cpp b/src/devices/bus/nes/sachen.cpp
index 369c4cde885..0622bfec8d4 100644
--- a/src/devices/bus/nes/sachen.cpp
+++ b/src/devices/bus/nes/sachen.cpp
@@ -308,7 +308,7 @@ void nes_sachen_8259d_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_sachen_sa009_device::write_l)
+void nes_sachen_sa009_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("SA009 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -327,7 +327,7 @@ WRITE8_MEMBER(nes_sachen_sa009_device::write_l)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_sachen_sa0036_device::write_h)
+void nes_sachen_sa0036_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("sa0036 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -346,7 +346,7 @@ WRITE8_MEMBER(nes_sachen_sa0036_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_sachen_sa0037_device::write_h)
+void nes_sachen_sa0037_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("sa0037 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -369,7 +369,7 @@ WRITE8_MEMBER(nes_sachen_sa0037_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_sachen_sa72007_device::write_l)
+void nes_sachen_sa72007_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("SA72007 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -390,7 +390,7 @@ WRITE8_MEMBER(nes_sachen_sa72007_device::write_l)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_sachen_sa72008_device::write_l)
+void nes_sachen_sa72008_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("SA72008 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -410,7 +410,7 @@ WRITE8_MEMBER(nes_sachen_sa72008_device::write_l)
-------------------------------------------------*/
-READ8_MEMBER(nes_sachen_tca01_device::read_l)
+uint8_t nes_sachen_tca01_device::read_l(offs_t offset)
{
LOG_MMC(("TCA-01 read_l, offset: %04x\n", offset));
@@ -433,7 +433,7 @@ READ8_MEMBER(nes_sachen_tca01_device::read_l)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_sachen_tcu01_device::write_l)
+void nes_sachen_tcu01_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("TCU-01 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -456,7 +456,7 @@ WRITE8_MEMBER(nes_sachen_tcu01_device::write_l)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_sachen_tcu02_device::write_l)
+void nes_sachen_tcu02_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("TCU-02 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -467,7 +467,7 @@ WRITE8_MEMBER(nes_sachen_tcu02_device::write_l)
}
}
-READ8_MEMBER(nes_sachen_tcu02_device::read_l)
+uint8_t nes_sachen_tcu02_device::read_l(offs_t offset)
{
LOG_MMC(("TCU-02 read_l, offset: %04x\n", offset));
@@ -512,7 +512,7 @@ void nes_sachen_74x374_device::set_mirror(uint8_t nt) // also used by mappers 13
}
-WRITE8_MEMBER(nes_sachen_74x374_device::write_l)
+void nes_sachen_74x374_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("Sachen 74*374 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -551,7 +551,7 @@ WRITE8_MEMBER(nes_sachen_74x374_device::write_l)
}
}
-READ8_MEMBER(nes_sachen_74x374_device::read_l)
+uint8_t nes_sachen_74x374_device::read_l(offs_t offset)
{
LOG_MMC(("Sachen 74*374 read_l, offset: %04x", offset));
@@ -562,7 +562,7 @@ READ8_MEMBER(nes_sachen_74x374_device::read_l)
return 0;
}
-WRITE8_MEMBER(nes_sachen_74x374_alt_device::write_l)
+void nes_sachen_74x374_alt_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("Sachen 74*374 Alt write_l, offset: %04x, data: %02x\n", offset, data));
@@ -626,7 +626,7 @@ void nes_sachen_8259a_device::chr_update()
}
}
-WRITE8_MEMBER(nes_sachen_8259a_device::write_l)
+void nes_sachen_8259a_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("Sachen 8259 write_l, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/sachen.h b/src/devices/bus/nes/sachen.h
index cfec9363bdc..b23599345b3 100644
--- a/src/devices/bus/nes/sachen.h
+++ b/src/devices/bus/nes/sachen.h
@@ -16,7 +16,7 @@ public:
// construction/destruction
nes_sachen_sa009_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -34,7 +34,7 @@ public:
// construction/destruction
nes_sachen_sa0036_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -52,7 +52,7 @@ public:
// construction/destruction
nes_sachen_sa0037_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -70,7 +70,7 @@ public:
// construction/destruction
nes_sachen_sa72007_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -88,7 +88,7 @@ public:
// construction/destruction
nes_sachen_sa72008_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -106,7 +106,7 @@ public:
// construction/destruction
nes_sachen_tca01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual uint8_t read_l(offs_t offset) override;
virtual void pcb_reset() override;
@@ -124,9 +124,9 @@ public:
// construction/destruction
nes_sachen_tcu01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override { write_l(space, (offset + 0x100) & 0xfff, data, mem_mask); }
- virtual DECLARE_WRITE8_MEMBER(write_h) override { write_l(space, (offset + 0x100) & 0xfff, data, mem_mask); }
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_m(offs_t offset, uint8_t data) override { write_l((offset + 0x100) & 0xfff, data); }
+ virtual void write_h(offs_t offset, uint8_t data) override { write_l((offset + 0x100) & 0xfff, data); }
virtual void pcb_reset() override;
@@ -144,8 +144,8 @@ public:
// construction/destruction
nes_sachen_tcu02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -166,8 +166,8 @@ public:
// construction/destruction
nes_sachen_74x374_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -191,8 +191,8 @@ public:
nes_sachen_74x374_alt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_READ8_MEMBER(read_l) override { return 0xff; } // no read_l here
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual uint8_t read_l(offs_t offset) override { return 0xff; } // no read_l here
+ virtual void write_l(offs_t offset, uint8_t data) override;
};
@@ -204,8 +204,8 @@ public:
// construction/destruction
nes_sachen_8259a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override { write_l(space, (offset + 0x100) & 0xfff, data, mem_mask); }
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_m(offs_t offset, uint8_t data) override { write_l((offset + 0x100) & 0xfff, data); }
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/somari.cpp b/src/devices/bus/nes/somari.cpp
index f4a5c2e7f40..c517a4fae16 100644
--- a/src/devices/bus/nes/somari.cpp
+++ b/src/devices/bus/nes/somari.cpp
@@ -157,7 +157,7 @@ void nes_somari_device::pcb_reset()
-------------------------------------------------*/
// MMC1 Mode emulation
-WRITE8_MEMBER(nes_somari_device::mmc1_w)
+void nes_somari_device::mmc1_w(offs_t offset, uint8_t data)
{
assert(m_board_mode == 2);
@@ -191,7 +191,7 @@ WRITE8_MEMBER(nes_somari_device::mmc1_w)
}
// MMC3 Mode emulation
-WRITE8_MEMBER(nes_somari_device::mmc3_w)
+void nes_somari_device::mmc3_w(offs_t offset, uint8_t data)
{
uint8_t mmc_helper, cmd;
@@ -240,7 +240,7 @@ WRITE8_MEMBER(nes_somari_device::mmc3_w)
}
// VRC2 Mode emulation
-WRITE8_MEMBER(nes_somari_device::vrc2_w)
+void nes_somari_device::vrc2_w(offs_t offset, uint8_t data)
{
uint8_t bank, shift;
@@ -381,15 +381,15 @@ void nes_somari_device::update_mirror()
}
-WRITE8_MEMBER(nes_somari_device::write_h)
+void nes_somari_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("somari write_h, mode %d, offset: %04x, data: %02x\n", m_board_mode, offset, data));
switch (m_board_mode)
{
- case SOMARI_VRC2_MODE: vrc2_w(space, offset, data, mem_mask); break;
- case SOMARI_MMC3_MODE: mmc3_w(space, offset, data, mem_mask); break;
- case SOMARI_MMC1_MODE: mmc1_w(space, offset, data, mem_mask); break;
+ case SOMARI_VRC2_MODE: vrc2_w(offset, data); break;
+ case SOMARI_MMC3_MODE: mmc3_w(offset, data); break;
+ case SOMARI_MMC1_MODE: mmc1_w(offset, data); break;
}
}
@@ -409,7 +409,7 @@ void nes_somari_device::bank_update_switchmode()
update_chr();
}
-WRITE8_MEMBER(nes_somari_device::write_m)
+void nes_somari_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("somari write_m, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/somari.h b/src/devices/bus/nes/somari.h
index 7b5d2920923..dda299b3a99 100644
--- a/src/devices/bus/nes/somari.h
+++ b/src/devices/bus/nes/somari.h
@@ -16,12 +16,12 @@ public:
// construction/destruction
nes_somari_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override { write_m(space, offset + 0x100, data, mem_mask); }
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(mmc1_w);
- virtual DECLARE_WRITE8_MEMBER(mmc3_w);
- virtual DECLARE_WRITE8_MEMBER(vrc2_w);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_l(offs_t offset, uint8_t data) override { write_m(offset + 0x100, data); }
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ void mmc1_w(offs_t offset, uint8_t data);
+ void mmc3_w(offs_t offset, uint8_t data);
+ void vrc2_w(offs_t offset, uint8_t data);
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/subor.cpp b/src/devices/bus/nes/subor.cpp
index c15e8761112..0fa25b2b5bb 100644
--- a/src/devices/bus/nes/subor.cpp
+++ b/src/devices/bus/nes/subor.cpp
@@ -183,7 +183,7 @@ void nes_subor2_device::ppu_latch(offs_t offset)
nt
-------------------------------------------------*/
-READ8_MEMBER(nes_subor2_device::nt_r)
+uint8_t nes_subor2_device::nt_r(offs_t offset)
{
int page = ((offset & 0xc00) >> 10);
@@ -234,7 +234,7 @@ void nes_subor2_device::update_banks()
read
-------------------------------------------------*/
-READ8_MEMBER(nes_subor2_device::read_l)
+uint8_t nes_subor2_device::read_l(offs_t offset)
{
LOG_MMC("subor2 read_l, offset: %04x\n", offset);
@@ -242,14 +242,14 @@ READ8_MEMBER(nes_subor2_device::read_l)
{
return 0x8F;
}
- return m_open_bus;
+ return get_open_bus();
}
/*-------------------------------------------------
write
-------------------------------------------------*/
-WRITE8_MEMBER(nes_subor0_device::write_h)
+void nes_subor0_device::write_h(offs_t offset, uint8_t data)
{
uint8_t subor_helper1, subor_helper2;
LOG_MMC("subor0 write_h, offset: %04x, data: %02x\n", offset, data);
@@ -279,7 +279,7 @@ WRITE8_MEMBER(nes_subor0_device::write_h)
prg16_cdef(subor_helper2);
}
-WRITE8_MEMBER(nes_subor1_device::write_h)
+void nes_subor1_device::write_h(offs_t offset, uint8_t data)
{
uint8_t subor_helper1, subor_helper2;
LOG_MMC("subor1 write_h, offset: %04x, data: %02x\n", offset, data);
@@ -309,7 +309,7 @@ WRITE8_MEMBER(nes_subor1_device::write_h)
prg16_cdef(subor_helper2);
}
-WRITE8_MEMBER(nes_subor2_device::write_l)
+void nes_subor2_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC("subor2 write_l, offset: %04x, data: %02x\n", offset, data);
diff --git a/src/devices/bus/nes/subor.h b/src/devices/bus/nes/subor.h
index 93e542cf481..a4ffc13a553 100644
--- a/src/devices/bus/nes/subor.h
+++ b/src/devices/bus/nes/subor.h
@@ -20,7 +20,7 @@ public:
// construction/destruction
nes_subor0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -41,7 +41,7 @@ public:
// construction/destruction
nes_subor1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -62,9 +62,9 @@ public:
// construction/destruction
nes_subor2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(nt_r) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual uint8_t nt_r(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual uint8_t read_l(offs_t offset) override;
virtual void ppu_latch(offs_t offset) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/sunsoft.cpp b/src/devices/bus/nes/sunsoft.cpp
index 3ce39de4295..be90e36e535 100644
--- a/src/devices/bus/nes/sunsoft.cpp
+++ b/src/devices/bus/nes/sunsoft.cpp
@@ -209,7 +209,7 @@ void nes_sunsoft_fme7_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_sunsoft_1_device::write_m)
+void nes_sunsoft_1_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("Sunsoft 1 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -235,7 +235,7 @@ WRITE8_MEMBER(nes_sunsoft_1_device::write_m)
// there are two 'variants' depending on hardwired or mapper ctrl mirroring
-WRITE8_MEMBER(nes_sunsoft_2_device::write_h)
+void nes_sunsoft_2_device::write_h(offs_t offset, uint8_t data)
{
uint8_t helper = (data & 0x07) | ((data & 0x80) ? 0x08 : 0x00);
LOG_MMC(("Sunsoft 2 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -282,7 +282,7 @@ void nes_sunsoft_3_device::device_timer(emu_timer &timer, device_timer_id id, in
}
}
-WRITE8_MEMBER(nes_sunsoft_3_device::write_h)
+void nes_sunsoft_3_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("Sunsoft 3 write_h, offset %04x, data: %02x\n", offset, data));
@@ -384,7 +384,7 @@ void nes_sunsoft_4_device::sun4_mirror( int mirror, int mirr0, int mirr1 )
}
}
-WRITE8_MEMBER(nes_sunsoft_4_device::sun4_write)
+void nes_sunsoft_4_device::sun4_write(offs_t offset, uint8_t data)
{
LOG_MMC(("Sunsoft 4 write_h, offset %04x, data: %02x\n", offset, data));
@@ -424,7 +424,7 @@ WRITE8_MEMBER(nes_sunsoft_4_device::sun4_write)
}
}
-WRITE8_MEMBER(nes_sunsoft_4_device::write_m)
+void nes_sunsoft_4_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("Sunsoft 4 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -434,7 +434,7 @@ WRITE8_MEMBER(nes_sunsoft_4_device::write_m)
m_prgram[offset & (m_prgram.size() - 1)] = data;
}
-READ8_MEMBER(nes_sunsoft_4_device::read_m)
+uint8_t nes_sunsoft_4_device::read_m(offs_t offset)
{
LOG_MMC(("Sunsoft 4 read_m, offset: %04x\n", offset));
@@ -443,7 +443,7 @@ READ8_MEMBER(nes_sunsoft_4_device::read_m)
if (!m_prgram.empty() && m_wram_enable)
return m_prgram[offset & (m_prgram.size() - 1)];
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
/*-------------------------------------------------
@@ -475,7 +475,7 @@ void nes_sunsoft_fme7_device::device_timer(emu_timer &timer, device_timer_id id,
}
}
-WRITE8_MEMBER(nes_sunsoft_fme7_device::fme7_write)
+void nes_sunsoft_fme7_device::fme7_write(offs_t offset, uint8_t data)
{
LOG_MMC(("fme7_write, offset %04x, data: %02x\n", offset, data));
@@ -533,7 +533,7 @@ WRITE8_MEMBER(nes_sunsoft_fme7_device::fme7_write)
}
}
-WRITE8_MEMBER(nes_sunsoft_fme7_device::write_m)
+void nes_sunsoft_fme7_device::write_m(offs_t offset, uint8_t data)
{
uint8_t bank = m_wram_bank & 0x3f;
LOG_MMC(("Sunsoft FME7 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -549,7 +549,7 @@ WRITE8_MEMBER(nes_sunsoft_fme7_device::write_m)
}
}
-READ8_MEMBER(nes_sunsoft_fme7_device::read_m)
+uint8_t nes_sunsoft_fme7_device::read_m(offs_t offset)
{
uint8_t bank = m_wram_bank & 0x3f;
LOG_MMC(("Sunsoft FME7 read_m, offset: %04x\n", offset));
@@ -564,7 +564,7 @@ READ8_MEMBER(nes_sunsoft_fme7_device::read_m)
return m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)];
}
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
@@ -578,7 +578,7 @@ READ8_MEMBER(nes_sunsoft_fme7_device::read_m)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_sunsoft_5_device::write_h)
+void nes_sunsoft_5_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("sunsoft 5 write_h, offset %04x, data: %02x\n", offset, data));
@@ -591,7 +591,7 @@ WRITE8_MEMBER(nes_sunsoft_5_device::write_h)
m_ym2149->data_w(data);
break;
default:
- fme7_write(space, offset, data, mem_mask);
+ fme7_write(offset, data);
break;
}
}
diff --git a/src/devices/bus/nes/sunsoft.h b/src/devices/bus/nes/sunsoft.h
index b4b035d515d..c02b94647cf 100644
--- a/src/devices/bus/nes/sunsoft.h
+++ b/src/devices/bus/nes/sunsoft.h
@@ -17,7 +17,7 @@ public:
// construction/destruction
nes_sunsoft_1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -35,7 +35,7 @@ public:
// construction/destruction
nes_sunsoft_2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -53,7 +53,7 @@ public:
// construction/destruction
nes_sunsoft_3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -78,10 +78,10 @@ public:
// construction/destruction
nes_sunsoft_4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(sun4_write);
- virtual DECLARE_WRITE8_MEMBER(write_h) override { sun4_write(space, offset, data, mem_mask); }
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ void sun4_write(offs_t offset, uint8_t data);
+ virtual void write_h(offs_t offset, uint8_t data) override { sun4_write(offset, data); }
virtual void pcb_reset() override;
@@ -104,10 +104,10 @@ public:
// construction/destruction
nes_sunsoft_fme7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(fme7_write);
- virtual DECLARE_WRITE8_MEMBER(write_h) override { fme7_write(space, offset, data, mem_mask); }
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ void fme7_write(offs_t offset, uint8_t data);
+ virtual void write_h(offs_t offset, uint8_t data) override { fme7_write(offset, data); }
virtual void pcb_reset() override;
@@ -138,7 +138,7 @@ public:
// construction/destruction
nes_sunsoft_5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
protected:
virtual void device_add_mconfig(machine_config &config) override;
diff --git a/src/devices/bus/nes/sunsoft_dcs.cpp b/src/devices/bus/nes/sunsoft_dcs.cpp
index b4faf0afcc9..23c81894666 100644
--- a/src/devices/bus/nes/sunsoft_dcs.cpp
+++ b/src/devices/bus/nes/sunsoft_dcs.cpp
@@ -68,10 +68,10 @@ void nes_ntb_slot_device::device_start()
m_cart = dynamic_cast<ntb_cart_interface *>(get_card_device());
}
-READ8_MEMBER(nes_ntb_slot_device::read)
+uint8_t nes_ntb_slot_device::read(offs_t offset)
{
if (m_cart)
- return m_cart->read(space, offset, mem_mask);
+ return m_cart->read(offset);
return 0xff;
}
@@ -212,7 +212,7 @@ void nes_sunsoft_dcs_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_sunsoft_dcs_device::write_h)
+void nes_sunsoft_dcs_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("Sunsoft DCS write_h, offset %04x, data: %02x\n", offset, data));
@@ -224,27 +224,27 @@ WRITE8_MEMBER(nes_sunsoft_dcs_device::write_h)
m_wram_enable = BIT(data, 4);
break;
default:
- sun4_write(space, offset, data, mem_mask);
+ sun4_write(offset, data);
break;
}
}
-READ8_MEMBER(nes_sunsoft_dcs_device::read_h)
+uint8_t nes_sunsoft_dcs_device::read_h(offs_t offset)
{
LOG_MMC(("Sunsoft DCS read_h, offset: %04x\n", offset));
if (m_exrom_enable && m_subslot->m_cart && offset < 0x4000)
{
if (m_timer_on)
- return m_subslot->m_cart->read(space, offset, mem_mask);
+ return m_subslot->m_cart->read(offset);
else
- return m_open_bus; // after the timer is off, this returns open bus...
+ return get_open_bus(); // after the timer is off, this returns open bus...
}
else
return hi_access_rom(offset);
}
-WRITE8_MEMBER(nes_sunsoft_dcs_device::write_m)
+void nes_sunsoft_dcs_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("Sunsoft DCS write_m, offset: %04x, data: %02x\n", offset, data));
@@ -260,7 +260,7 @@ WRITE8_MEMBER(nes_sunsoft_dcs_device::write_m)
}
}
-READ8_MEMBER(nes_sunsoft_dcs_device::read_m)
+uint8_t nes_sunsoft_dcs_device::read_m(offs_t offset)
{
LOG_MMC(("Sunsoft DCS read_m, offset: %04x\n", offset));
@@ -269,7 +269,7 @@ READ8_MEMBER(nes_sunsoft_dcs_device::read_m)
if (!m_prgram.empty() && m_wram_enable)
return m_prgram[offset & (m_prgram.size() - 1)];
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
diff --git a/src/devices/bus/nes/sunsoft_dcs.h b/src/devices/bus/nes/sunsoft_dcs.h
index 9971b8c48bd..51a11b22ae4 100644
--- a/src/devices/bus/nes/sunsoft_dcs.h
+++ b/src/devices/bus/nes/sunsoft_dcs.h
@@ -24,7 +24,7 @@ public:
virtual ~ntb_cart_interface();
// reading and writing
- virtual DECLARE_READ8_MEMBER(read) { return m_rom[offset]; }
+ virtual uint8_t read(offs_t offset) { return m_rom[offset]; }
uint8_t *get_cart_base() { return m_rom; }
@@ -78,7 +78,7 @@ public:
// slot interface overrides
virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override;
- virtual DECLARE_READ8_MEMBER(read);
+ virtual uint8_t read(offs_t offset);
protected:
ntb_cart_interface* m_cart;
@@ -133,10 +133,10 @@ public:
// construction/destruction
nes_sunsoft_dcs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_READ8_MEMBER(read_h) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual uint8_t read_h(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/taito.cpp b/src/devices/bus/nes/taito.cpp
index 2868bfea1dc..28c37b6109c 100644
--- a/src/devices/bus/nes/taito.cpp
+++ b/src/devices/bus/nes/taito.cpp
@@ -172,7 +172,7 @@ void nes_x1_017_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_tc0190fmc_device::tc0190fmc_write)
+void nes_tc0190fmc_device::tc0190fmc_write(offs_t offset, uint8_t data)
{
LOG_MMC(("tc0190fmc_write, offset: %04x, data: %02x\n", offset, data));
@@ -240,7 +240,7 @@ void nes_tc0190fmc_pal16r4_device::hblank_irq( int scanline, int vblank, int bla
}
}
-WRITE8_MEMBER(nes_tc0190fmc_pal16r4_device::write_h)
+void nes_tc0190fmc_pal16r4_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("tc0190fmc pal16r4 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -256,7 +256,7 @@ WRITE8_MEMBER(nes_tc0190fmc_pal16r4_device::write_h)
case 0x2001:
case 0x2002:
case 0x2003:
- tc0190fmc_write(space, offset, data, mem_mask);
+ tc0190fmc_write(offset, data);
break;
case 0x4000:
m_irq_count_latch = (0x100 - data) & 0xff;
@@ -291,7 +291,7 @@ WRITE8_MEMBER(nes_tc0190fmc_pal16r4_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_x1_005_device::write_m)
+void nes_x1_005_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("x1_005 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -355,14 +355,14 @@ WRITE8_MEMBER(nes_x1_005_device::write_m)
m_x1_005_ram[offset & 0x7f] = data;
}
-READ8_MEMBER(nes_x1_005_device::read_m)
+uint8_t nes_x1_005_device::read_m(offs_t offset)
{
LOG_MMC(("x1_005 read_m, offset: %04x\n", offset));
if (offset >= 0x1f00 && m_latch == 0xa3)
return m_x1_005_ram[offset & 0x7f];
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
/*-------------------------------------------------
@@ -399,7 +399,7 @@ void nes_x1_017_device::set_chr()
chr1_x(7 ^ m_latch, m_mmc_vrom_bank[5], CHRROM);
}
-WRITE8_MEMBER(nes_x1_017_device::write_m)
+void nes_x1_017_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("x1017 write_m, offset: %04x, data: %02x\n", offset, data));
@@ -453,7 +453,7 @@ WRITE8_MEMBER(nes_x1_017_device::write_m)
m_x1_017_ram[0x1000 + (offset & 0x3ff)] = data;
}
-READ8_MEMBER(nes_x1_017_device::read_m)
+uint8_t nes_x1_017_device::read_m(offs_t offset)
{
LOG_MMC(("x1017 read_m, offset: %04x\n", offset));
@@ -465,5 +465,5 @@ READ8_MEMBER(nes_x1_017_device::read_m)
if (offset < 0x1400 && m_reg[2] == 0x84)
return m_x1_017_ram[0x1000 + (offset & 0x3ff)];
- return m_open_bus; // open bus
+ return get_open_bus(); // open bus
}
diff --git a/src/devices/bus/nes/taito.h b/src/devices/bus/nes/taito.h
index 8f3ccb2a8ee..b4efa553c86 100644
--- a/src/devices/bus/nes/taito.h
+++ b/src/devices/bus/nes/taito.h
@@ -16,8 +16,8 @@ public:
// construction/destruction
nes_tc0190fmc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(tc0190fmc_write);
- virtual DECLARE_WRITE8_MEMBER(write_h) override { tc0190fmc_write(space, offset, data, mem_mask); }
+ void tc0190fmc_write(offs_t offset, uint8_t data);
+ virtual void write_h(offs_t offset, uint8_t data) override { tc0190fmc_write(offset, data); }
virtual void pcb_reset() override;
@@ -37,7 +37,7 @@ public:
// construction/destruction
nes_tc0190fmc_pal16r4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -60,8 +60,8 @@ public:
// construction/destruction
nes_x1_005_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -84,8 +84,8 @@ public:
// construction/destruction
nes_x1_017_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_m) override;
- virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual uint8_t read_m(offs_t offset) override;
+ virtual void write_m(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/tengen.cpp b/src/devices/bus/nes/tengen.cpp
index 9cef09434a0..f6228685796 100644
--- a/src/devices/bus/nes/tengen.cpp
+++ b/src/devices/bus/nes/tengen.cpp
@@ -126,7 +126,7 @@ void nes_tengen032_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_tengen008_device::write_h)
+void nes_tengen008_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("tengen008 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -240,7 +240,7 @@ void nes_tengen032_device::set_chr()
chr_cb(7 ^ chr_page, m_mmc_vrom_bank[5], CHRROM);
}
-WRITE8_MEMBER(nes_tengen032_device::tengen032_write)
+void nes_tengen032_device::tengen032_write(offs_t offset, uint8_t data)
{
uint8_t helper, cmd;
LOG_MMC(("tengen032_write, offset: %04x, data: %02x\n", offset, data));
@@ -359,7 +359,7 @@ void nes_tengen037_device::chr_cb( int start, int bank, int source )
}
-WRITE8_MEMBER(nes_tengen037_device::write_h)
+void nes_tengen037_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("tengen037 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -369,7 +369,7 @@ WRITE8_MEMBER(nes_tengen037_device::write_h)
break;
default:
- tengen032_write(space, offset, data, mem_mask);
+ tengen032_write(offset, data);
break;
}
}
diff --git a/src/devices/bus/nes/tengen.h b/src/devices/bus/nes/tengen.h
index dce41f4fbb4..6d651339f86 100644
--- a/src/devices/bus/nes/tengen.h
+++ b/src/devices/bus/nes/tengen.h
@@ -14,7 +14,7 @@ public:
// construction/destruction
nes_tengen008_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -32,8 +32,8 @@ public:
// construction/destruction
nes_tengen032_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(tengen032_write);
- virtual DECLARE_WRITE8_MEMBER(write_h) override { tengen032_write(space, offset, data, mem_mask); }
+ void tengen032_write(offs_t offset, uint8_t data);
+ virtual void write_h(offs_t offset, uint8_t data) override { tengen032_write(offset, data); }
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -74,7 +74,7 @@ public:
nes_tengen037_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void chr_cb(int start, int bank, int source) override;
protected:
diff --git a/src/devices/bus/nes/txc.cpp b/src/devices/bus/nes/txc.cpp
index f3ab8efc5f9..4149c6262a3 100644
--- a/src/devices/bus/nes/txc.cpp
+++ b/src/devices/bus/nes/txc.cpp
@@ -139,7 +139,7 @@ void nes_txc_commandos_device::pcb_reset()
-------------------------------------------------*/
-WRITE8_MEMBER(nes_txc_22211_device::write_l)
+void nes_txc_22211_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("TXC 22111 write_l, offset: %04x, data: %02x\n", offset, data));
@@ -147,7 +147,7 @@ WRITE8_MEMBER(nes_txc_22211_device::write_l)
m_reg[offset & 0x03] = data;
}
-READ8_MEMBER(nes_txc_22211_device::read_l)
+uint8_t nes_txc_22211_device::read_l(offs_t offset)
{
LOG_MMC(("TXC 22111 read_l, offset: %04x\n", offset));
@@ -157,7 +157,7 @@ READ8_MEMBER(nes_txc_22211_device::read_l)
return 0x00;
}
-WRITE8_MEMBER(nes_txc_22211_device::write_h)
+void nes_txc_22211_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("TXC 22111 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -180,7 +180,7 @@ WRITE8_MEMBER(nes_txc_22211_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_txc_dumarc_device::write_h)
+void nes_txc_dumarc_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("TXC Du Ma Racing write_h, offset: %04x, data: %02x\n", offset, data));
@@ -203,7 +203,7 @@ WRITE8_MEMBER(nes_txc_dumarc_device::write_h)
-------------------------------------------------*/
-READ8_MEMBER(nes_txc_mjblock_device::read_l)
+uint8_t nes_txc_mjblock_device::read_l(offs_t offset)
{
LOG_MMC(("TXC mjblock read_l, offset: %04x\n", offset));
@@ -226,7 +226,7 @@ READ8_MEMBER(nes_txc_mjblock_device::read_l)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_txc_strikew_device::write_h)
+void nes_txc_strikew_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("TXC Strike Wolf write_h, offset: %04x, data: %02x\n", offset, data));
@@ -256,12 +256,12 @@ WRITE8_MEMBER(nes_txc_strikew_device::write_h)
-------------------------------------------------*/
-READ8_MEMBER(nes_txc_commandos_device::read_l)
+uint8_t nes_txc_commandos_device::read_l(offs_t offset)
{
return 0x50;
}
-WRITE8_MEMBER(nes_txc_commandos_device::write_h)
+void nes_txc_commandos_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("TXC Commandos write_h, offset: %04x, data: %02x\n", offset, data));
diff --git a/src/devices/bus/nes/txc.h b/src/devices/bus/nes/txc.h
index f4b875b51ba..9ad5e2807dc 100644
--- a/src/devices/bus/nes/txc.h
+++ b/src/devices/bus/nes/txc.h
@@ -16,9 +16,9 @@ public:
// construction/destruction
nes_txc_22211_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -41,7 +41,7 @@ public:
nes_txc_dumarc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
};
@@ -54,7 +54,7 @@ public:
nes_txc_mjblock_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_READ8_MEMBER(read_l) override;
+ virtual uint8_t read_l(offs_t offset) override;
};
@@ -66,7 +66,7 @@ public:
// construction/destruction
nes_txc_strikew_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -84,8 +84,8 @@ public:
// construction/destruction
nes_txc_commandos_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/waixing.cpp b/src/devices/bus/nes/waixing.cpp
index 791779f0a76..3706d64b26e 100644
--- a/src/devices/bus/nes/waixing.cpp
+++ b/src/devices/bus/nes/waixing.cpp
@@ -433,7 +433,7 @@ void nes_waixing_a1_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, chr_src);
}
-WRITE8_MEMBER(nes_waixing_a_device::waixing_write)
+void nes_waixing_a_device::waixing_write(offs_t offset, uint8_t data)
{
LOG_MMC(("waixing_write, offset: %04x, data: %02x\n", offset, data));
@@ -447,12 +447,12 @@ WRITE8_MEMBER(nes_waixing_a_device::waixing_write)
break;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
-READ8_MEMBER(nes_waixing_a_device::read_l)
+uint8_t nes_waixing_a_device::read_l(offs_t offset)
{
LOG_MMC(("waixing read_l, offset: %04x\n", offset));
offset += 0x100;
@@ -462,7 +462,7 @@ READ8_MEMBER(nes_waixing_a_device::read_l)
return 0xff;
}
-WRITE8_MEMBER(nes_waixing_a_device::write_l)
+void nes_waixing_a_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("waixing write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -597,7 +597,7 @@ void nes_waixing_f_device::set_prg( int prg_base, int prg_mask )
prg_cb(3, m_mmc_prg_bank[3]);
}
-WRITE8_MEMBER(nes_waixing_f_device::write_h)
+void nes_waixing_f_device::write_h(offs_t offset, uint8_t data)
{
uint8_t cmd;
LOG_MMC(("waixing_f write_h, offset: %04x, data: %02x\n", offset, data));
@@ -628,7 +628,7 @@ WRITE8_MEMBER(nes_waixing_f_device::write_h)
break;
default:
- waixing_write(space, offset, data, mem_mask);
+ waixing_write(offset, data);
break;
}
}
@@ -668,7 +668,7 @@ void nes_waixing_g_device::set_chr(uint8_t chr, int chr_base, int chr_mask)
chr_cb(chr_page ^ 7, chr_base | (m_mmc_vrom_bank[5] & chr_mask), chr);
}
-WRITE8_MEMBER(nes_waixing_g_device::write_h)
+void nes_waixing_g_device::write_h(offs_t offset, uint8_t data)
{
uint8_t cmd;
LOG_MMC(("waixing_g write_h, offset: %04x, data: %02x\n", offset, data));
@@ -699,7 +699,7 @@ WRITE8_MEMBER(nes_waixing_g_device::write_h)
break;
default:
- waixing_write(space, offset, data, mem_mask);
+ waixing_write(offset, data);
break;
}
}
@@ -731,7 +731,7 @@ void nes_waixing_h_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, source);
}
-WRITE8_MEMBER(nes_waixing_h_device::write_h)
+void nes_waixing_h_device::write_h(offs_t offset, uint8_t data)
{
uint8_t cmd;
LOG_MMC(("waixing_h write_h, offset: %04x, data: %02x\n", offset, data));
@@ -767,12 +767,12 @@ WRITE8_MEMBER(nes_waixing_h_device::write_h)
break;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
-WRITE8_MEMBER(nes_waixing_h1_device::write_h)
+void nes_waixing_h1_device::write_h(offs_t offset, uint8_t data)
{
uint8_t cmd;
LOG_MMC(("waixing_h1 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -805,7 +805,7 @@ WRITE8_MEMBER(nes_waixing_h1_device::write_h)
break;
default:
- txrom_write(space, offset, data, mem_mask);
+ txrom_write(offset, data);
break;
}
}
@@ -832,7 +832,7 @@ void nes_waixing_j_device::set_prg( int prg_base, int prg_mask )
prg_cb(3, m_reg[3]);
}
-WRITE8_MEMBER(nes_waixing_j_device::write_h)
+void nes_waixing_j_device::write_h(offs_t offset, uint8_t data)
{
uint8_t cmd;
LOG_MMC(("waixing_f write_h, offset: %04x, data: %02x\n", offset, data));
@@ -862,7 +862,7 @@ WRITE8_MEMBER(nes_waixing_j_device::write_h)
// break;
default:
- waixing_write(space, offset, data, mem_mask);
+ waixing_write(offset, data);
break;
}
}
@@ -887,7 +887,7 @@ void nes_waixing_sh2_device::chr_cb(int start, int bank, int source)
chr4_4(m_reg[1], m_reg[1] ? CHRRAM : CHRROM);
}
-READ8_MEMBER(nes_waixing_sh2_device::chr_r)
+uint8_t nes_waixing_sh2_device::chr_r(offs_t offset)
{
int bank = offset >> 10;
uint8_t val = m_chr_access[bank][offset & 0x3ff]; // this would be usual return value
@@ -940,7 +940,7 @@ void nes_waixing_sec_device::chr_cb(int start, int bank, int source)
chr1_x(start, bank, source);
}
-WRITE8_MEMBER(nes_waixing_sec_device::write_l)
+void nes_waixing_sec_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("waixing_sec write_l, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
@@ -979,7 +979,7 @@ void nes_waixing_sgz_device::hblank_irq(int scanline, int vblank, int blanked)
}
}
-WRITE8_MEMBER(nes_waixing_sgz_device::write_h)
+void nes_waixing_sgz_device::write_h(offs_t offset, uint8_t data)
{
uint8_t helper, bank;
LOG_MMC(("waixing_sgz write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1047,7 +1047,7 @@ WRITE8_MEMBER(nes_waixing_sgz_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_waixing_sgzlz_device::write_l)
+void nes_waixing_sgzlz_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("waixing_sgzlz write_l, offset: %04x, data: %02x\n", offset, data));
if (offset >= 0x700 && offset <= 0xEFF)
@@ -1112,7 +1112,7 @@ WRITE8_MEMBER(nes_waixing_sgzlz_device::write_l)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_waixing_ffv_device::write_l)
+void nes_waixing_ffv_device::write_l(offs_t offset, uint8_t data)
{
uint8_t helper;
LOG_MMC(("waixing_ffv write_l, offset: %04x, data: %02x\n", offset, data));
@@ -1161,7 +1161,7 @@ WRITE8_MEMBER(nes_waixing_ffv_device::write_l)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_waixing_wxzs_device::write_h)
+void nes_waixing_wxzs_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("waixing_zs write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1191,7 +1191,7 @@ WRITE8_MEMBER(nes_waixing_wxzs_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_waixing_dq8_device::write_h)
+void nes_waixing_dq8_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC(("waixing_dq8 write_h, offset: %04x, data: %02x\n", offset, data));
@@ -1212,7 +1212,7 @@ WRITE8_MEMBER(nes_waixing_dq8_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_waixing_wxzs2_device::write_h)
+void nes_waixing_wxzs2_device::write_h(offs_t offset, uint8_t data)
{
uint8_t flip = (data & 0x80) >> 7;
uint8_t helper = (data & 0x7f) << 1;
@@ -1265,7 +1265,7 @@ WRITE8_MEMBER(nes_waixing_wxzs2_device::write_h)
-------------------------------------------------*/
-WRITE8_MEMBER(nes_waixing_fs304_device::write_l)
+void nes_waixing_fs304_device::write_l(offs_t offset, uint8_t data)
{
LOG_MMC(("fs304 write_l, offset: %04x, data: %02x\n", offset, data));
int bank;
diff --git a/src/devices/bus/nes/waixing.h b/src/devices/bus/nes/waixing.h
index 5488973a14c..bb6fcaf831a 100644
--- a/src/devices/bus/nes/waixing.h
+++ b/src/devices/bus/nes/waixing.h
@@ -16,10 +16,10 @@ public:
// construction/destruction
nes_waixing_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER(read_l) override;
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
- virtual DECLARE_WRITE8_MEMBER(waixing_write);
- virtual DECLARE_WRITE8_MEMBER(write_h) override { waixing_write(space, offset, data, mem_mask); }
+ virtual uint8_t read_l(offs_t offset) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
+ virtual void waixing_write(offs_t offset, uint8_t data);
+ virtual void write_h(offs_t offset, uint8_t data) override { waixing_write(offset, data); }
virtual void chr_cb(int start, int bank, int source) override;
virtual void pcb_reset() override;
@@ -109,7 +109,7 @@ public:
nes_waixing_f_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -129,7 +129,7 @@ public:
nes_waixing_g_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void chr_cb(int start, int bank, int source) override;
virtual void pcb_reset() override;
@@ -155,7 +155,7 @@ protected:
nes_waixing_h_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
};
@@ -168,7 +168,7 @@ public:
nes_waixing_h1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
// This variant does not ignore the wram protect!
};
@@ -194,7 +194,7 @@ public:
// construction/destruction
nes_waixing_j_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -217,7 +217,7 @@ public:
// device-level overrides
virtual void device_start() override;
- virtual DECLARE_READ8_MEMBER(chr_r) override;
+ virtual uint8_t chr_r(offs_t offset) override;
virtual void chr_cb(int start, int bank, int source) override;
virtual void pcb_reset() override;
@@ -235,7 +235,7 @@ public:
// construction/destruction
nes_waixing_sec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void prg_cb(int start, int bank) override;
virtual void chr_cb(int start, int bank, int source) override;
@@ -257,7 +257,7 @@ public:
// construction/destruction
nes_waixing_sgz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void hblank_irq(int scanline, int vblank, int blanked) override;
virtual void pcb_reset() override;
@@ -281,7 +281,7 @@ public:
// construction/destruction
nes_waixing_sgzlz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -301,7 +301,7 @@ public:
// construction/destruction
nes_waixing_ffv_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -321,7 +321,7 @@ public:
// construction/destruction
nes_waixing_wxzs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -339,7 +339,7 @@ public:
// construction/destruction
nes_waixing_dq8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -357,7 +357,7 @@ public:
// construction/destruction
nes_waixing_wxzs2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
@@ -375,7 +375,7 @@ public:
// construction/destruction
nes_waixing_fs304_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE8_MEMBER(write_l) override;
+ virtual void write_l(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
diff --git a/src/devices/bus/nes/zemina.cpp b/src/devices/bus/nes/zemina.cpp
index bb4b3b61bc0..22741967572 100644
--- a/src/devices/bus/nes/zemina.cpp
+++ b/src/devices/bus/nes/zemina.cpp
@@ -80,7 +80,7 @@ void nes_zemina_device::pcb_reset()
write
-------------------------------------------------*/
-WRITE8_MEMBER(nes_zemina_device::write_h)
+void nes_zemina_device::write_h(offs_t offset, uint8_t data)
{
LOG_MMC("zemina write_h, offset: %04x, data: %02x\n", offset, data);
diff --git a/src/devices/bus/nes/zemina.h b/src/devices/bus/nes/zemina.h
index 87d170d053d..752c7f1382d 100644
--- a/src/devices/bus/nes/zemina.h
+++ b/src/devices/bus/nes/zemina.h
@@ -20,7 +20,7 @@ public:
// device-level overrides
virtual void device_start() override;
- virtual DECLARE_WRITE8_MEMBER(write_h) override;
+ virtual void write_h(offs_t offset, uint8_t data) override;
virtual void pcb_reset() override;
};
diff --git a/src/devices/bus/pofo/ccm.h b/src/devices/bus/pofo/ccm.h
index dbbaec11b8c..42bfcb4356d 100644
--- a/src/devices/bus/pofo/ccm.h
+++ b/src/devices/bus/pofo/ccm.h
@@ -75,8 +75,8 @@ class device_portfolio_memory_card_slot_interface : public device_slot_card_inte
public:
virtual bool cdet() { return 1; }
- virtual uint8_t nrdi_r(address_space &space, offs_t offset) { return 0xff; }
- virtual void nwri_w(address_space &space, offs_t offset, uint8_t data) { }
+ virtual uint8_t nrdi_r(offs_t offset) { return 0xff; }
+ virtual void nwri_w(offs_t offset, uint8_t data) { }
protected:
// construction/destruction
@@ -112,8 +112,8 @@ public:
// computer interface
bool cdet_r() { return (m_card != nullptr) ? m_card->cdet() : 1; }
- DECLARE_READ8_MEMBER( nrdi_r ) { return (m_card != nullptr) ? m_card->nrdi_r(space, offset) : 0xff; }
- DECLARE_WRITE8_MEMBER( nwri_w ) { if (m_card != nullptr) m_card->nwri_w(space, offset, data); }
+ uint8_t nrdi_r(offs_t offset) { return (m_card != nullptr) ? m_card->nrdi_r(offset) : 0xff; }
+ void nwri_w(offs_t offset, uint8_t data) { if (m_card != nullptr) m_card->nwri_w(offset, data); }
protected:
// device-level overrides
diff --git a/src/devices/bus/pofo/exp.h b/src/devices/bus/pofo/exp.h
index 817568e764e..2206d5af2fe 100644
--- a/src/devices/bus/pofo/exp.h
+++ b/src/devices/bus/pofo/exp.h
@@ -72,8 +72,8 @@ public:
virtual uint8_t iack_r() { return 0xff; }
virtual uint8_t eack_r() { return 0xff; }
- virtual uint8_t nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { return data; }
- virtual void nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { }
+ virtual uint8_t nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { return data; }
+ virtual void nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { }
virtual WRITE_LINE_MEMBER( iint_w ) { }
@@ -119,8 +119,8 @@ public:
uint8_t iack_r() { return (m_card != nullptr) ? m_card->iack_r() : 0xff; };
uint8_t eack_r() { return (m_card != nullptr) ? m_card->eack_r() : 0xff; };
- uint8_t nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { return (m_card != nullptr) ? m_card->nrdi_r(space, offset, data, iom, bcom, ncc1) : data; }
- void nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { if (m_card != nullptr) m_card->nwri_w(space, offset, data, iom, bcom, ncc1); }
+ uint8_t nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { return (m_card != nullptr) ? m_card->nrdi_r(offset, data, iom, bcom, ncc1) : data; }
+ void nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { if (m_card != nullptr) m_card->nwri_w(offset, data, iom, bcom, ncc1); }
WRITE_LINE_MEMBER( iint_w ) { if (m_card != nullptr) m_card->iint_w(state); }
diff --git a/src/devices/bus/pofo/hpc101.cpp b/src/devices/bus/pofo/hpc101.cpp
index f9127afa47e..d62f1002f7d 100644
--- a/src/devices/bus/pofo/hpc101.cpp
+++ b/src/devices/bus/pofo/hpc101.cpp
@@ -99,7 +99,7 @@ void pofo_hpc101_device::device_reset()
// nrdi_r - read
//-------------------------------------------------
-uint8_t pofo_hpc101_device::nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1)
+uint8_t pofo_hpc101_device::nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1)
{
if (!bcom)
{
@@ -122,7 +122,7 @@ uint8_t pofo_hpc101_device::nrdi_r(address_space &space, offs_t offset, uint8_t
// nwri_w - write
//-------------------------------------------------
-void pofo_hpc101_device::nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1)
+void pofo_hpc101_device::nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1)
{
if (!bcom)
{
diff --git a/src/devices/bus/pofo/hpc101.h b/src/devices/bus/pofo/hpc101.h
index 797f95c32d3..fa18b5d6d4d 100644
--- a/src/devices/bus/pofo/hpc101.h
+++ b/src/devices/bus/pofo/hpc101.h
@@ -40,8 +40,8 @@ protected:
// device_portfolio_expansion_slot_interface overrides
bool pdet() override { return 1; }
- virtual uint8_t nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override;
- virtual void nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override;
+ virtual uint8_t nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override;
+ virtual void nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override;
private:
required_device<i8255_device> m_ppi;
diff --git a/src/devices/bus/pofo/hpc102.cpp b/src/devices/bus/pofo/hpc102.cpp
index 298b36c7cbe..42bc8b550fe 100644
--- a/src/devices/bus/pofo/hpc102.cpp
+++ b/src/devices/bus/pofo/hpc102.cpp
@@ -99,7 +99,7 @@ uint8_t pofo_hpc102_device::eack_r()
// nrdi_r - read
//-------------------------------------------------
-uint8_t pofo_hpc102_device::nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1)
+uint8_t pofo_hpc102_device::nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1)
{
if (!bcom)
{
@@ -110,7 +110,7 @@ uint8_t pofo_hpc102_device::nrdi_r(address_space &space, offs_t offset, uint8_t
if (!(offset & 0x08))
{
- data = m_uart->ins8250_r(space, offset & 0x07);
+ data = m_uart->ins8250_r(machine().dummy_space(), offset & 0x07);
}
}
@@ -122,7 +122,7 @@ uint8_t pofo_hpc102_device::nrdi_r(address_space &space, offs_t offset, uint8_t
// nwri_w - write
//-------------------------------------------------
-void pofo_hpc102_device::nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1)
+void pofo_hpc102_device::nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1)
{
if (!bcom)
{
@@ -133,7 +133,7 @@ void pofo_hpc102_device::nwri_w(address_space &space, offs_t offset, uint8_t dat
if (!(offset & 0x08))
{
- m_uart->ins8250_w(space, offset & 0x07, data);
+ m_uart->ins8250_w(machine().dummy_space(), offset & 0x07, data);
}
}
}
diff --git a/src/devices/bus/pofo/hpc102.h b/src/devices/bus/pofo/hpc102.h
index bfe91e9f459..c7168b12787 100644
--- a/src/devices/bus/pofo/hpc102.h
+++ b/src/devices/bus/pofo/hpc102.h
@@ -42,8 +42,8 @@ protected:
virtual uint8_t eack_r() override;
- virtual uint8_t nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override;
- virtual void nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override;
+ virtual uint8_t nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override;
+ virtual void nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override;
private:
required_device<ins8250_device> m_uart;
diff --git a/src/devices/bus/pofo/hpc104.cpp b/src/devices/bus/pofo/hpc104.cpp
index c5943cbd72a..a6e66f13da8 100644
--- a/src/devices/bus/pofo/hpc104.cpp
+++ b/src/devices/bus/pofo/hpc104.cpp
@@ -147,15 +147,15 @@ void pofo_hpc104_device::device_reset()
// nrdi_r - read
//-------------------------------------------------
-uint8_t pofo_hpc104_device::nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1)
+uint8_t pofo_hpc104_device::nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1)
{
- data = m_exp->nrdi_r(space, offset, data, iom, bcom, m_ncc1_out || ncc1);
+ data = m_exp->nrdi_r(offset, data, iom, bcom, m_ncc1_out || ncc1);
if (!iom)
{
if (!(!m_ncc1_out || ncc1))
{
- data = m_ccm->nrdi_r(space, offset & 0x1ffff);
+ data = m_ccm->nrdi_r(offset & 0x1ffff);
if (LOG) logerror("%s %s CCM1 read %05x:%02x\n", machine().time().as_string(), machine().describe_context(), offset & 0x1ffff, data);
}
@@ -184,9 +184,9 @@ uint8_t pofo_hpc104_device::nrdi_r(address_space &space, offs_t offset, uint8_t
// nwri_w - write
//-------------------------------------------------
-void pofo_hpc104_device::nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1)
+void pofo_hpc104_device::nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1)
{
- m_exp->nwri_w(space, offset, data, iom, bcom, m_ncc1_out || ncc1);
+ m_exp->nwri_w(offset, data, iom, bcom, m_ncc1_out || ncc1);
if (!iom)
{
@@ -194,7 +194,7 @@ void pofo_hpc104_device::nwri_w(address_space &space, offs_t offset, uint8_t dat
{
if (LOG) logerror("%s %s CCM1 write %05x:%02x\n", machine().time().as_string(), machine().describe_context(), offset & 0x1ffff, data);
- m_ccm->nwri_w(space, offset & 0x1ffff, data);
+ m_ccm->nwri_w(offset & 0x1ffff, data);
}
if (m_sw1)
diff --git a/src/devices/bus/pofo/hpc104.h b/src/devices/bus/pofo/hpc104.h
index f863a45f39b..042bece210e 100644
--- a/src/devices/bus/pofo/hpc104.h
+++ b/src/devices/bus/pofo/hpc104.h
@@ -50,8 +50,8 @@ protected:
// device_portfolio_expansion_slot_interface overrides
virtual bool nmd1() override { return m_ccm->cdet_r(); }
- virtual uint8_t nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override;
- virtual void nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override;
+ virtual uint8_t nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override;
+ virtual void nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override;
virtual WRITE_LINE_MEMBER( iint_w ) override { m_exp->iint_w(state); }
diff --git a/src/devices/bus/pofo/ram.cpp b/src/devices/bus/pofo/ram.cpp
index 6ef861a0b5d..5498a9b8c32 100644
--- a/src/devices/bus/pofo/ram.cpp
+++ b/src/devices/bus/pofo/ram.cpp
@@ -48,7 +48,7 @@ void portfolio_ram_card_device::device_start()
// nrdi_r - read
//-------------------------------------------------
-uint8_t portfolio_ram_card_device::nrdi_r(address_space &space, offs_t offset)
+uint8_t portfolio_ram_card_device::nrdi_r(offs_t offset)
{
return m_nvram[offset];
}
@@ -58,7 +58,7 @@ uint8_t portfolio_ram_card_device::nrdi_r(address_space &space, offs_t offset)
// nwri_w - write
//-------------------------------------------------
-void portfolio_ram_card_device::nwri_w(address_space &space, offs_t offset, uint8_t data)
+void portfolio_ram_card_device::nwri_w(offs_t offset, uint8_t data)
{
m_nvram[offset] = data;
}
diff --git a/src/devices/bus/pofo/ram.h b/src/devices/bus/pofo/ram.h
index 9d126b51a2c..2c19f807816 100644
--- a/src/devices/bus/pofo/ram.h
+++ b/src/devices/bus/pofo/ram.h
@@ -42,8 +42,8 @@ protected:
// device_portfolio_memory_card_slot_interface overrides
virtual bool cdet() override { return 0; }
- virtual uint8_t nrdi_r(address_space &space, offs_t offset) override;
- virtual void nwri_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t nrdi_r(offs_t offset) override;
+ virtual void nwri_w(offs_t offset, uint8_t data) override;
};
diff --git a/src/devices/bus/pofo/rom.cpp b/src/devices/bus/pofo/rom.cpp
index 8155444783a..ac336eb0b77 100644
--- a/src/devices/bus/pofo/rom.cpp
+++ b/src/devices/bus/pofo/rom.cpp
@@ -46,7 +46,7 @@ void portfolio_rom_card_device::device_start()
// nrdi_r - read
//-------------------------------------------------
-uint8_t portfolio_rom_card_device::nrdi_r(address_space &space, offs_t offset)
+uint8_t portfolio_rom_card_device::nrdi_r(offs_t offset)
{
return m_rom[offset];
}
diff --git a/src/devices/bus/pofo/rom.h b/src/devices/bus/pofo/rom.h
index eab0ff1fde4..6df19402a36 100644
--- a/src/devices/bus/pofo/rom.h
+++ b/src/devices/bus/pofo/rom.h
@@ -35,7 +35,7 @@ protected:
// device_portfolio_memory_card_slot_interface overrides
virtual bool cdet() override { return 0; }
- virtual uint8_t nrdi_r(address_space &space, offs_t offset) override;
+ virtual uint8_t nrdi_r(offs_t offset) override;
};
diff --git a/src/devices/bus/ql/cst_q_plus4.cpp b/src/devices/bus/ql/cst_q_plus4.cpp
index 1ff79655924..96269dc6ef5 100644
--- a/src/devices/bus/ql/cst_q_plus4.cpp
+++ b/src/devices/bus/ql/cst_q_plus4.cpp
@@ -106,17 +106,17 @@ void cst_q_plus4_device::device_start()
// read -
//-------------------------------------------------
-uint8_t cst_q_plus4_device::read(address_space &space, offs_t offset, uint8_t data)
+uint8_t cst_q_plus4_device::read(offs_t offset, uint8_t data)
{
if (offset >= 0xc000 && offset < 0xc200)
{
data = m_rom->base()[offset & 0x1fff];
}
- data = m_exp1->read(space, offset, data);
- data = m_exp2->read(space, offset, data);
- data = m_exp3->read(space, offset, data);
- data = m_exp4->read(space, offset, data);
+ data = m_exp1->read(offset, data);
+ data = m_exp2->read(offset, data);
+ data = m_exp3->read(offset, data);
+ data = m_exp4->read(offset, data);
return data;
}
@@ -126,10 +126,10 @@ uint8_t cst_q_plus4_device::read(address_space &space, offs_t offset, uint8_t da
// write -
//-------------------------------------------------
-void cst_q_plus4_device::write(address_space &space, offs_t offset, uint8_t data)
+void cst_q_plus4_device::write(offs_t offset, uint8_t data)
{
- m_exp1->write(space, offset, data);
- m_exp2->write(space, offset, data);
- m_exp3->write(space, offset, data);
- m_exp4->write(space, offset, data);
+ m_exp1->write(offset, data);
+ m_exp2->write(offset, data);
+ m_exp3->write(offset, data);
+ m_exp4->write(offset, data);
}
diff --git a/src/devices/bus/ql/cst_q_plus4.h b/src/devices/bus/ql/cst_q_plus4.h
index 0eff45e3840..4c8ea616f51 100644
--- a/src/devices/bus/ql/cst_q_plus4.h
+++ b/src/devices/bus/ql/cst_q_plus4.h
@@ -37,8 +37,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// device_ql_expansion_card_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t read(offs_t offset, uint8_t data) override;
+ virtual void write(offs_t offset, uint8_t data) override;
private:
DECLARE_WRITE_LINE_MEMBER( exp1_extintl_w ) { m_exp1_extinl = state; update_extintl(); }
diff --git a/src/devices/bus/ql/cst_qdisc.cpp b/src/devices/bus/ql/cst_qdisc.cpp
index a3940d41b1a..2fe46dc4f5e 100644
--- a/src/devices/bus/ql/cst_qdisc.cpp
+++ b/src/devices/bus/ql/cst_qdisc.cpp
@@ -71,7 +71,7 @@ void cst_ql_disc_interface_device::device_start()
// read -
//-------------------------------------------------
-uint8_t cst_ql_disc_interface_device::read(address_space &space, offs_t offset, uint8_t data)
+uint8_t cst_ql_disc_interface_device::read(offs_t offset, uint8_t data)
{
return data;
}
@@ -81,6 +81,6 @@ uint8_t cst_ql_disc_interface_device::read(address_space &space, offs_t offset,
// write -
//-------------------------------------------------
-void cst_ql_disc_interface_device::write(address_space &space, offs_t offset, uint8_t data)
+void cst_ql_disc_interface_device::write(offs_t offset, uint8_t data)
{
}
diff --git a/src/devices/bus/ql/cst_qdisc.h b/src/devices/bus/ql/cst_qdisc.h
index 4bbcbd0913f..fdd492f1230 100644
--- a/src/devices/bus/ql/cst_qdisc.h
+++ b/src/devices/bus/ql/cst_qdisc.h
@@ -36,8 +36,8 @@ protected:
virtual void device_start() override;
// device_ql_expansion_card_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t read(offs_t offset, uint8_t data) override;
+ virtual void write(offs_t offset, uint8_t data) override;
};
diff --git a/src/devices/bus/ql/cumana_fdi.cpp b/src/devices/bus/ql/cumana_fdi.cpp
index a8d1b7c376b..204dea12608 100644
--- a/src/devices/bus/ql/cumana_fdi.cpp
+++ b/src/devices/bus/ql/cumana_fdi.cpp
@@ -71,7 +71,7 @@ void cumana_floppy_disk_interface_device::device_start()
// read -
//-------------------------------------------------
-uint8_t cumana_floppy_disk_interface_device::read(address_space &space, offs_t offset, uint8_t data)
+uint8_t cumana_floppy_disk_interface_device::read(offs_t offset, uint8_t data)
{
return data;
}
@@ -81,6 +81,6 @@ uint8_t cumana_floppy_disk_interface_device::read(address_space &space, offs_t o
// write -
//-------------------------------------------------
-void cumana_floppy_disk_interface_device::write(address_space &space, offs_t offset, uint8_t data)
+void cumana_floppy_disk_interface_device::write(offs_t offset, uint8_t data)
{
}
diff --git a/src/devices/bus/ql/cumana_fdi.h b/src/devices/bus/ql/cumana_fdi.h
index a0da6952cab..2080251fcf3 100644
--- a/src/devices/bus/ql/cumana_fdi.h
+++ b/src/devices/bus/ql/cumana_fdi.h
@@ -35,8 +35,8 @@ protected:
virtual void device_start() override;
// device_ql_expansion_card_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t read(offs_t offset, uint8_t data) override;
+ virtual void write(offs_t offset, uint8_t data) override;
};
diff --git a/src/devices/bus/ql/exp.h b/src/devices/bus/ql/exp.h
index 9f6bd51eb5c..43e8a7b77d5 100644
--- a/src/devices/bus/ql/exp.h
+++ b/src/devices/bus/ql/exp.h
@@ -62,8 +62,8 @@ class device_ql_expansion_card_interface : public device_slot_card_interface
public:
virtual void romoeh_w(int state) { m_romoeh = state; }
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) { return data; }
- virtual void write(address_space &space, offs_t offset, uint8_t data) { }
+ virtual uint8_t read(offs_t offset, uint8_t data) { return data; }
+ virtual void write(offs_t offset, uint8_t data) { }
protected:
// construction/destruction
@@ -100,8 +100,8 @@ public:
auto extintl_wr_callback() { return m_write_extintl.bind(); }
// computer interface
- uint8_t read(address_space &space, offs_t offset, uint8_t data) { if (m_card) data = m_card->read(space, offset, data); return data; }
- void write(address_space &space, offs_t offset, uint8_t data) { if (m_card) m_card->write(space, offset, data); }
+ uint8_t read(offs_t offset, uint8_t data) { if (m_card) data = m_card->read(offset, data); return data; }
+ void write(offs_t offset, uint8_t data) { if (m_card) m_card->write(offset, data); }
DECLARE_WRITE_LINE_MEMBER( romoeh_w ) { if (m_card) m_card->romoeh_w(state); }
// card interface
diff --git a/src/devices/bus/ql/kempston_di.cpp b/src/devices/bus/ql/kempston_di.cpp
index 599e9bebcc7..1535f171ff6 100644
--- a/src/devices/bus/ql/kempston_di.cpp
+++ b/src/devices/bus/ql/kempston_di.cpp
@@ -69,7 +69,7 @@ void kempston_disk_interface_device::device_start()
// read -
//-------------------------------------------------
-uint8_t kempston_disk_interface_device::read(address_space &space, offs_t offset, uint8_t data)
+uint8_t kempston_disk_interface_device::read(offs_t offset, uint8_t data)
{
return data;
}
@@ -79,6 +79,6 @@ uint8_t kempston_disk_interface_device::read(address_space &space, offs_t offset
// write -
//-------------------------------------------------
-void kempston_disk_interface_device::write(address_space &space, offs_t offset, uint8_t data)
+void kempston_disk_interface_device::write(offs_t offset, uint8_t data)
{
}
diff --git a/src/devices/bus/ql/kempston_di.h b/src/devices/bus/ql/kempston_di.h
index e37c3d7f6b7..cc75a5fe0fc 100644
--- a/src/devices/bus/ql/kempston_di.h
+++ b/src/devices/bus/ql/kempston_di.h
@@ -35,8 +35,8 @@ protected:
virtual void device_start() override;
// device_ql_expansion_card_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t read(offs_t offset, uint8_t data) override;
+ virtual void write(offs_t offset, uint8_t data) override;
};
diff --git a/src/devices/bus/ql/miracle_gold_card.cpp b/src/devices/bus/ql/miracle_gold_card.cpp
index a7acd24e2d7..bf6be7fe136 100644
--- a/src/devices/bus/ql/miracle_gold_card.cpp
+++ b/src/devices/bus/ql/miracle_gold_card.cpp
@@ -71,7 +71,7 @@ void miracle_gold_card_device::device_start()
// read -
//-------------------------------------------------
-uint8_t miracle_gold_card_device::read(address_space &space, offs_t offset, uint8_t data)
+uint8_t miracle_gold_card_device::read(offs_t offset, uint8_t data)
{
return data;
}
@@ -81,6 +81,6 @@ uint8_t miracle_gold_card_device::read(address_space &space, offs_t offset, uint
// write -
//-------------------------------------------------
-void miracle_gold_card_device::write(address_space &space, offs_t offset, uint8_t data)
+void miracle_gold_card_device::write(offs_t offset, uint8_t data)
{
}
diff --git a/src/devices/bus/ql/miracle_gold_card.h b/src/devices/bus/ql/miracle_gold_card.h
index feea55de78c..7ed9d0e2eb8 100644
--- a/src/devices/bus/ql/miracle_gold_card.h
+++ b/src/devices/bus/ql/miracle_gold_card.h
@@ -35,8 +35,8 @@ protected:
virtual void device_start() override;
// device_ql_expansion_card_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t read(offs_t offset, uint8_t data) override;
+ virtual void write(offs_t offset, uint8_t data) override;
};
diff --git a/src/devices/bus/ql/miracle_hd.cpp b/src/devices/bus/ql/miracle_hd.cpp
index 146945737a2..f2f16715c72 100644
--- a/src/devices/bus/ql/miracle_hd.cpp
+++ b/src/devices/bus/ql/miracle_hd.cpp
@@ -69,7 +69,7 @@ void miracle_hard_disk_device::device_start()
// read -
//-------------------------------------------------
-uint8_t miracle_hard_disk_device::read(address_space &space, offs_t offset, uint8_t data)
+uint8_t miracle_hard_disk_device::read(offs_t offset, uint8_t data)
{
return data;
}
@@ -79,6 +79,6 @@ uint8_t miracle_hard_disk_device::read(address_space &space, offs_t offset, uint
// write -
//-------------------------------------------------
-void miracle_hard_disk_device::write(address_space &space, offs_t offset, uint8_t data)
+void miracle_hard_disk_device::write(offs_t offset, uint8_t data)
{
}
diff --git a/src/devices/bus/ql/miracle_hd.h b/src/devices/bus/ql/miracle_hd.h
index 0bcd260bb87..983dce66f8b 100644
--- a/src/devices/bus/ql/miracle_hd.h
+++ b/src/devices/bus/ql/miracle_hd.h
@@ -36,8 +36,8 @@ protected:
virtual void device_start() override;
// device_ql_rom_cartridge_card_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t read(offs_t offset, uint8_t data) override;
+ virtual void write(offs_t offset, uint8_t data) override;
};
diff --git a/src/devices/bus/ql/mp_fdi.cpp b/src/devices/bus/ql/mp_fdi.cpp
index 06324a4be67..4e2a90ce52d 100644
--- a/src/devices/bus/ql/mp_fdi.cpp
+++ b/src/devices/bus/ql/mp_fdi.cpp
@@ -69,7 +69,7 @@ void micro_peripherals_floppy_disk_interface_device::device_start()
// read -
//-------------------------------------------------
-uint8_t micro_peripherals_floppy_disk_interface_device::read(address_space &space, offs_t offset, uint8_t data)
+uint8_t micro_peripherals_floppy_disk_interface_device::read(offs_t offset, uint8_t data)
{
return data;
}
@@ -79,6 +79,6 @@ uint8_t micro_peripherals_floppy_disk_interface_device::read(address_space &spac
// write -
//-------------------------------------------------
-void micro_peripherals_floppy_disk_interface_device::write(address_space &space, offs_t offset, uint8_t data)
+void micro_peripherals_floppy_disk_interface_device::write(offs_t offset, uint8_t data)
{
}
diff --git a/src/devices/bus/ql/mp_fdi.h b/src/devices/bus/ql/mp_fdi.h
index 9939e540ba7..3fc9d9d8c83 100644
--- a/src/devices/bus/ql/mp_fdi.h
+++ b/src/devices/bus/ql/mp_fdi.h
@@ -34,8 +34,8 @@ protected:
virtual void device_start() override;
// device_ql_expansion_card_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t read(offs_t offset, uint8_t data) override;
+ virtual void write(offs_t offset, uint8_t data) override;
};
diff --git a/src/devices/bus/ql/opd_basic_master.cpp b/src/devices/bus/ql/opd_basic_master.cpp
index 015fca91a37..b3b6f18dc19 100644
--- a/src/devices/bus/ql/opd_basic_master.cpp
+++ b/src/devices/bus/ql/opd_basic_master.cpp
@@ -67,7 +67,7 @@ void opd_basic_master_device::device_start()
// read -
//-------------------------------------------------
-uint8_t opd_basic_master_device::read(address_space &space, offs_t offset, uint8_t data)
+uint8_t opd_basic_master_device::read(offs_t offset, uint8_t data)
{
return data;
}
@@ -77,6 +77,6 @@ uint8_t opd_basic_master_device::read(address_space &space, offs_t offset, uint8
// write -
//-------------------------------------------------
-void opd_basic_master_device::write(address_space &space, offs_t offset, uint8_t data)
+void opd_basic_master_device::write(offs_t offset, uint8_t data)
{
}
diff --git a/src/devices/bus/ql/opd_basic_master.h b/src/devices/bus/ql/opd_basic_master.h
index d22b50eff8c..3592823dd2b 100644
--- a/src/devices/bus/ql/opd_basic_master.h
+++ b/src/devices/bus/ql/opd_basic_master.h
@@ -35,8 +35,8 @@ protected:
virtual void device_start() override;
// device_ql_expansion_card_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t read(offs_t offset, uint8_t data) override;
+ virtual void write(offs_t offset, uint8_t data) override;
};
diff --git a/src/devices/bus/ql/pcml_qdisk.cpp b/src/devices/bus/ql/pcml_qdisk.cpp
index 7b3d7b25e6c..ed92c569509 100644
--- a/src/devices/bus/ql/pcml_qdisk.cpp
+++ b/src/devices/bus/ql/pcml_qdisk.cpp
@@ -69,7 +69,7 @@ void pcml_q_disk_interface_device::device_start()
// read -
//-------------------------------------------------
-uint8_t pcml_q_disk_interface_device::read(address_space &space, offs_t offset, uint8_t data)
+uint8_t pcml_q_disk_interface_device::read(offs_t offset, uint8_t data)
{
return data;
}
@@ -79,6 +79,6 @@ uint8_t pcml_q_disk_interface_device::read(address_space &space, offs_t offset,
// write -
//-------------------------------------------------
-void pcml_q_disk_interface_device::write(address_space &space, offs_t offset, uint8_t data)
+void pcml_q_disk_interface_device::write(offs_t offset, uint8_t data)
{
}
diff --git a/src/devices/bus/ql/pcml_qdisk.h b/src/devices/bus/ql/pcml_qdisk.h
index e9904df6eb0..cedd3f953f7 100644
--- a/src/devices/bus/ql/pcml_qdisk.h
+++ b/src/devices/bus/ql/pcml_qdisk.h
@@ -35,8 +35,8 @@ protected:
virtual void device_start() override;
// device_ql_expansion_card_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t read(offs_t offset, uint8_t data) override;
+ virtual void write(offs_t offset, uint8_t data) override;
};
diff --git a/src/devices/bus/ql/qubide.cpp b/src/devices/bus/ql/qubide.cpp
index e88493048d9..10583d28023 100644
--- a/src/devices/bus/ql/qubide.cpp
+++ b/src/devices/bus/ql/qubide.cpp
@@ -202,7 +202,7 @@ void qubide_device::device_reset()
// read -
//-------------------------------------------------
-uint8_t qubide_device::read(address_space &space, offs_t offset, uint8_t data)
+uint8_t qubide_device::read(offs_t offset, uint8_t data)
{
if ((offset & 0xfc000) == m_base)
{
@@ -247,7 +247,7 @@ uint8_t qubide_device::read(address_space &space, offs_t offset, uint8_t data)
// write -
//-------------------------------------------------
-void qubide_device::write(address_space &space, offs_t offset, uint8_t data)
+void qubide_device::write(offs_t offset, uint8_t data)
{
if ((offset & 0xfc000) == m_base)
{
diff --git a/src/devices/bus/ql/qubide.h b/src/devices/bus/ql/qubide.h
index 680e5e6b655..5e1ac6d1860 100644
--- a/src/devices/bus/ql/qubide.h
+++ b/src/devices/bus/ql/qubide.h
@@ -39,8 +39,8 @@ protected:
virtual ioport_constructor device_input_ports() const override;
// device_ql_expansion_card_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t read(offs_t offset, uint8_t data) override;
+ virtual void write(offs_t offset, uint8_t data) override;
private:
required_device<ata_interface_device> m_ata;
diff --git a/src/devices/bus/ql/rom.h b/src/devices/bus/ql/rom.h
index e337fb9f096..0c8ec4a6bca 100644
--- a/src/devices/bus/ql/rom.h
+++ b/src/devices/bus/ql/rom.h
@@ -50,8 +50,8 @@ public:
virtual ~device_ql_rom_cartridge_card_interface();
virtual void romoeh_w(int state) { m_romoeh = state; }
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) { return data; }
- virtual void write(address_space &space, offs_t offset, uint8_t data) { }
+ virtual uint8_t read(offs_t offset, uint8_t data) { return data; }
+ virtual void write(offs_t offset, uint8_t data) { }
protected:
device_ql_rom_cartridge_card_interface(const machine_config &mconfig, device_t &device);
@@ -86,8 +86,8 @@ public:
ql_rom_cartridge_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
// computer interface
- uint8_t read(address_space &space, offs_t offset, uint8_t data) { if (m_card) data = m_card->read(space, offset, data); return data; }
- void write(address_space &space, offs_t offset, uint8_t data) { if (m_card) m_card->write(space, offset, data); }
+ uint8_t read(offs_t offset, uint8_t data) { if (m_card) data = m_card->read(offset, data); return data; }
+ void write(offs_t offset, uint8_t data) { if (m_card) m_card->write(offset, data); }
DECLARE_WRITE_LINE_MEMBER( romoeh_w ) { if (m_card) m_card->romoeh_w(state); }
protected:
diff --git a/src/devices/bus/ql/sandy_superdisk.cpp b/src/devices/bus/ql/sandy_superdisk.cpp
index 19ee4ebbc9c..1af96f2de81 100644
--- a/src/devices/bus/ql/sandy_superdisk.cpp
+++ b/src/devices/bus/ql/sandy_superdisk.cpp
@@ -149,7 +149,7 @@ void sandy_super_disk_device::device_reset()
// read -
//-------------------------------------------------
-uint8_t sandy_super_disk_device::read(address_space &space, offs_t offset, uint8_t data)
+uint8_t sandy_super_disk_device::read(offs_t offset, uint8_t data)
{
if ((offset & 0xf0000) == 0xc0000)
{
@@ -195,7 +195,7 @@ uint8_t sandy_super_disk_device::read(address_space &space, offs_t offset, uint8
// write -
//-------------------------------------------------
-void sandy_super_disk_device::write(address_space &space, offs_t offset, uint8_t data)
+void sandy_super_disk_device::write(offs_t offset, uint8_t data)
{
if ((offset & 0xf0000) == 0xc0000)
{
diff --git a/src/devices/bus/ql/sandy_superdisk.h b/src/devices/bus/ql/sandy_superdisk.h
index 1bc7192aad5..5a264272e12 100644
--- a/src/devices/bus/ql/sandy_superdisk.h
+++ b/src/devices/bus/ql/sandy_superdisk.h
@@ -41,8 +41,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// device_ql_expansion_card_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t read(offs_t offset, uint8_t data) override;
+ virtual void write(offs_t offset, uint8_t data) override;
private:
WRITE_LINE_MEMBER( busy_w );
diff --git a/src/devices/bus/ql/sandy_superqboard.cpp b/src/devices/bus/ql/sandy_superqboard.cpp
index 05ff550c47d..bc8f4c78478 100644
--- a/src/devices/bus/ql/sandy_superqboard.cpp
+++ b/src/devices/bus/ql/sandy_superqboard.cpp
@@ -285,7 +285,7 @@ void sandy_superqboard_device::device_reset()
// read -
//-------------------------------------------------
-uint8_t sandy_superqboard_device::read(address_space &space, offs_t offset, uint8_t data)
+uint8_t sandy_superqboard_device::read(offs_t offset, uint8_t data)
{
if ((offset & 0xf0000) == 0xc0000)
{
@@ -345,7 +345,7 @@ uint8_t sandy_superqboard_device::read(address_space &space, offs_t offset, uint
// write -
//-------------------------------------------------
-void sandy_superqboard_device::write(address_space &space, offs_t offset, uint8_t data)
+void sandy_superqboard_device::write(offs_t offset, uint8_t data)
{
if ((offset & 0xf0000) == 0xc0000)
{
diff --git a/src/devices/bus/ql/sandy_superqboard.h b/src/devices/bus/ql/sandy_superqboard.h
index 94d2066020b..94bfe0c7dad 100644
--- a/src/devices/bus/ql/sandy_superqboard.h
+++ b/src/devices/bus/ql/sandy_superqboard.h
@@ -46,8 +46,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// device_ql_expansion_card_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t read(offs_t offset, uint8_t data) override;
+ virtual void write(offs_t offset, uint8_t data) override;
private:
WRITE_LINE_MEMBER( busy_w );
diff --git a/src/devices/bus/ql/std.cpp b/src/devices/bus/ql/std.cpp
index 5e13a0ff32f..b1171c46336 100644
--- a/src/devices/bus/ql/std.cpp
+++ b/src/devices/bus/ql/std.cpp
@@ -47,7 +47,7 @@ void ql_standard_rom_cartridge_device::device_start()
// read - cartridge data read
//-------------------------------------------------
-uint8_t ql_standard_rom_cartridge_device::read(address_space &space, offs_t offset, uint8_t data)
+uint8_t ql_standard_rom_cartridge_device::read(offs_t offset, uint8_t data)
{
if (m_romoeh && m_rom.bytes())
{
diff --git a/src/devices/bus/ql/std.h b/src/devices/bus/ql/std.h
index b1b4e404c4c..823c3a70008 100644
--- a/src/devices/bus/ql/std.h
+++ b/src/devices/bus/ql/std.h
@@ -32,7 +32,7 @@ protected:
virtual void device_start() override;
// device_ql_rom_cartridge_card_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t read(offs_t offset, uint8_t data) override;
};
diff --git a/src/devices/bus/ql/trumpcard.cpp b/src/devices/bus/ql/trumpcard.cpp
index bc515b7da9c..473fc9bb78e 100644
--- a/src/devices/bus/ql/trumpcard.cpp
+++ b/src/devices/bus/ql/trumpcard.cpp
@@ -167,7 +167,7 @@ void ql_trump_card_device::device_reset()
// read -
//-------------------------------------------------
-uint8_t ql_trump_card_device::read(address_space &space, offs_t offset, uint8_t data)
+uint8_t ql_trump_card_device::read(offs_t offset, uint8_t data)
{
if (offset >= 0xc000 && offset < 0x10000)
{
@@ -220,7 +220,7 @@ uint8_t ql_trump_card_device::read(address_space &space, offs_t offset, uint8_t
// write -
//-------------------------------------------------
-void ql_trump_card_device::write(address_space &space, offs_t offset, uint8_t data)
+void ql_trump_card_device::write(offs_t offset, uint8_t data)
{
if (offset >= 0x1c000 && offset <= 0x1c003)
{
diff --git a/src/devices/bus/ql/trumpcard.h b/src/devices/bus/ql/trumpcard.h
index 4dc18ceccd4..d9926160928 100644
--- a/src/devices/bus/ql/trumpcard.h
+++ b/src/devices/bus/ql/trumpcard.h
@@ -42,8 +42,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// device_ql_expansion_card_interface overrides
- virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override;
- virtual void write(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t read(offs_t offset, uint8_t data) override;
+ virtual void write(offs_t offset, uint8_t data) override;
private:
diff --git a/src/devices/bus/s100/dj2db.cpp b/src/devices/bus/s100/dj2db.cpp
index f3cff259db3..7c33182ea5d 100644
--- a/src/devices/bus/s100/dj2db.cpp
+++ b/src/devices/bus/s100/dj2db.cpp
@@ -301,7 +301,7 @@ void s100_dj2db_device::device_reset()
// s100_smemr_r - memory read
//-------------------------------------------------
-uint8_t s100_dj2db_device::s100_smemr_r(address_space &space, offs_t offset)
+uint8_t s100_dj2db_device::s100_smemr_r(offs_t offset)
{
uint8_t data = 0;
@@ -380,7 +380,7 @@ uint8_t s100_dj2db_device::s100_smemr_r(address_space &space, offs_t offset)
// s100_mwrt_w - memory write
//-------------------------------------------------
-void s100_dj2db_device::s100_mwrt_w(address_space &space, offs_t offset, uint8_t data)
+void s100_dj2db_device::s100_mwrt_w(offs_t offset, uint8_t data)
{
// if (!(m_board_enbl & m_phantom)) return;
@@ -473,7 +473,7 @@ void s100_dj2db_device::s100_mwrt_w(address_space &space, offs_t offset, uint8_t
// s100_sinp_r - I/O read
//-------------------------------------------------
-uint8_t s100_dj2db_device::s100_sinp_r(address_space &space, offs_t offset)
+uint8_t s100_dj2db_device::s100_sinp_r(offs_t offset)
{
return 0xff;
}
@@ -483,7 +483,7 @@ uint8_t s100_dj2db_device::s100_sinp_r(address_space &space, offs_t offset)
// s100_sout_w - I/O write
//-------------------------------------------------
-void s100_dj2db_device::s100_sout_w(address_space &space, offs_t offset, uint8_t data)
+void s100_dj2db_device::s100_sout_w(offs_t offset, uint8_t data)
{
if (offset == 0x41)
{
diff --git a/src/devices/bus/s100/dj2db.h b/src/devices/bus/s100/dj2db.h
index e82b4431095..616113bb038 100644
--- a/src/devices/bus/s100/dj2db.h
+++ b/src/devices/bus/s100/dj2db.h
@@ -42,10 +42,10 @@ protected:
virtual ioport_constructor device_input_ports() const override;
// device_s100_card_interface overrides
- virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) override;
- virtual void s100_mwrt_w(address_space &space, offs_t offset, uint8_t data) override;
- virtual uint8_t s100_sinp_r(address_space &space, offs_t offset) override;
- virtual void s100_sout_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t s100_smemr_r(offs_t offset) override;
+ virtual void s100_mwrt_w(offs_t offset, uint8_t data) override;
+ virtual uint8_t s100_sinp_r(offs_t offset) override;
+ virtual void s100_sout_w(offs_t offset, uint8_t data) override;
virtual void s100_phantom_w(int state) override;
private:
diff --git a/src/devices/bus/s100/djdma.cpp b/src/devices/bus/s100/djdma.cpp
index 39522d321b4..0ee7dab0a0c 100644
--- a/src/devices/bus/s100/djdma.cpp
+++ b/src/devices/bus/s100/djdma.cpp
@@ -146,7 +146,7 @@ void s100_djdma_device::device_reset()
// s100_sout_w - I/O write
//-------------------------------------------------
-void s100_djdma_device::s100_sout_w(address_space &space, offs_t offset, uint8_t data)
+void s100_djdma_device::s100_sout_w(offs_t offset, uint8_t data)
{
// O4 = /ATTN (responds to address EF only)
if (!BIT(m_cmdaddr[offset & 0xff], 3))
diff --git a/src/devices/bus/s100/djdma.h b/src/devices/bus/s100/djdma.h
index 29d07c5860f..d9453aef25c 100644
--- a/src/devices/bus/s100/djdma.h
+++ b/src/devices/bus/s100/djdma.h
@@ -34,7 +34,7 @@ protected:
virtual void device_reset() override;
// bus-level overrides;
- virtual void s100_sout_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual void s100_sout_w(offs_t offset, uint8_t data) override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
diff --git a/src/devices/bus/s100/mm65k16s.cpp b/src/devices/bus/s100/mm65k16s.cpp
index 27cdc021d39..ae098a2e29c 100644
--- a/src/devices/bus/s100/mm65k16s.cpp
+++ b/src/devices/bus/s100/mm65k16s.cpp
@@ -233,7 +233,7 @@ void s100_mm65k16s_device::device_reset()
// s100_smemr_r - memory read
//-------------------------------------------------
-uint8_t s100_mm65k16s_device::s100_smemr_r(address_space &space, offs_t offset)
+uint8_t s100_mm65k16s_device::s100_smemr_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -250,7 +250,7 @@ uint8_t s100_mm65k16s_device::s100_smemr_r(address_space &space, offs_t offset)
// s100_mwrt_w - memory write
//-------------------------------------------------
-void s100_mm65k16s_device::s100_mwrt_w(address_space &space, offs_t offset, uint8_t data)
+void s100_mm65k16s_device::s100_mwrt_w(offs_t offset, uint8_t data)
{
if (offset < 0xf800)
{
diff --git a/src/devices/bus/s100/mm65k16s.h b/src/devices/bus/s100/mm65k16s.h
index e46d13f955e..10fa1daff7a 100644
--- a/src/devices/bus/s100/mm65k16s.h
+++ b/src/devices/bus/s100/mm65k16s.h
@@ -38,8 +38,8 @@ protected:
virtual void device_reset() override;
// device_s100_card_interface overrides
- virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) override;
- virtual void s100_mwrt_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t s100_smemr_r(offs_t offset) override;
+ virtual void s100_mwrt_w(offs_t offset, uint8_t data) override;
virtual void s100_phantom_w(int state) override;
private:
diff --git a/src/devices/bus/s100/nsmdsa.cpp b/src/devices/bus/s100/nsmdsa.cpp
index a4adcfbe1b5..90d19b3fcb3 100644
--- a/src/devices/bus/s100/nsmdsa.cpp
+++ b/src/devices/bus/s100/nsmdsa.cpp
@@ -105,7 +105,7 @@ void s100_mds_a_device::device_reset()
// s100_smemr_r - memory read
//-------------------------------------------------
-uint8_t s100_mds_a_device::s100_smemr_r(address_space &space, offs_t offset)
+uint8_t s100_mds_a_device::s100_smemr_r(offs_t offset)
{
return 0xff;
}
diff --git a/src/devices/bus/s100/nsmdsa.h b/src/devices/bus/s100/nsmdsa.h
index 9f12f491bb5..a36f39127ec 100644
--- a/src/devices/bus/s100/nsmdsa.h
+++ b/src/devices/bus/s100/nsmdsa.h
@@ -39,7 +39,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// device_s100_card_interface overrides
- virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) override;
+ virtual uint8_t s100_smemr_r(offs_t offset) override;
private:
required_device_array<floppy_connector, 2> m_floppy;
diff --git a/src/devices/bus/s100/nsmdsad.cpp b/src/devices/bus/s100/nsmdsad.cpp
index 4c071576cca..d1358e85bf0 100644
--- a/src/devices/bus/s100/nsmdsad.cpp
+++ b/src/devices/bus/s100/nsmdsad.cpp
@@ -107,7 +107,7 @@ void s100_mds_ad_device::device_reset()
// s100_smemr_r - memory read
//-------------------------------------------------
-uint8_t s100_mds_ad_device::s100_smemr_r(address_space &space, offs_t offset)
+uint8_t s100_mds_ad_device::s100_smemr_r(offs_t offset)
{
return 0xff;
}
diff --git a/src/devices/bus/s100/nsmdsad.h b/src/devices/bus/s100/nsmdsad.h
index 01d80e35b9c..ce5a248d553 100644
--- a/src/devices/bus/s100/nsmdsad.h
+++ b/src/devices/bus/s100/nsmdsad.h
@@ -39,7 +39,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// device_s100_card_interface overrides
- virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) override;
+ virtual uint8_t s100_smemr_r(offs_t offset) override;
private:
required_device_array<floppy_connector, 2> m_floppy;
diff --git a/src/devices/bus/s100/s100.cpp b/src/devices/bus/s100/s100.cpp
index dd28ca385d3..23333ce500f 100644
--- a/src/devices/bus/s100/s100.cpp
+++ b/src/devices/bus/s100/s100.cpp
@@ -135,7 +135,7 @@ void s100_bus_device::add_card(device_s100_card_interface *card)
// smemr_r - memory read
//-------------------------------------------------
-READ8_MEMBER( s100_bus_device::smemr_r )
+uint8_t s100_bus_device::smemr_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -143,7 +143,7 @@ READ8_MEMBER( s100_bus_device::smemr_r )
while (entry)
{
- data &= entry->s100_smemr_r(space, offset);
+ data &= entry->s100_smemr_r(offset);
entry = entry->next();
}
@@ -155,13 +155,13 @@ READ8_MEMBER( s100_bus_device::smemr_r )
// mwrt_w - memory write
//-------------------------------------------------
-WRITE8_MEMBER( s100_bus_device::mwrt_w )
+void s100_bus_device::mwrt_w(offs_t offset, uint8_t data)
{
device_s100_card_interface *entry = m_device_list.first();
while (entry)
{
- entry->s100_mwrt_w(space, offset, data);
+ entry->s100_mwrt_w(offset, data);
entry = entry->next();
}
}
@@ -171,7 +171,7 @@ WRITE8_MEMBER( s100_bus_device::mwrt_w )
// sinp_r - I/O read
//-------------------------------------------------
-READ8_MEMBER( s100_bus_device::sinp_r )
+uint8_t s100_bus_device::sinp_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -179,7 +179,7 @@ READ8_MEMBER( s100_bus_device::sinp_r )
while (entry)
{
- data &= entry->s100_sinp_r(space, offset);
+ data &= entry->s100_sinp_r(offset);
entry = entry->next();
}
@@ -191,13 +191,13 @@ READ8_MEMBER( s100_bus_device::sinp_r )
// sout_w - I/O write
//-------------------------------------------------
-WRITE8_MEMBER( s100_bus_device::sout_w )
+void s100_bus_device::sout_w(offs_t offset, uint8_t data)
{
device_s100_card_interface *entry = m_device_list.first();
while (entry)
{
- entry->s100_sout_w(space, offset, data);
+ entry->s100_sout_w(offset, data);
entry = entry->next();
}
}
diff --git a/src/devices/bus/s100/s100.h b/src/devices/bus/s100/s100.h
index ed97700bf5f..f231520f694 100644
--- a/src/devices/bus/s100/s100.h
+++ b/src/devices/bus/s100/s100.h
@@ -99,12 +99,12 @@ public:
virtual void s100_vi7_w(int state) { }
// memory access
- virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) { return 0xff; }
- virtual void s100_mwrt_w(address_space &space, offs_t offset, uint8_t data) { }
+ virtual uint8_t s100_smemr_r(offs_t offset) { return 0xff; }
+ virtual void s100_mwrt_w(offs_t offset, uint8_t data) { }
// I/O access
- virtual uint8_t s100_sinp_r(address_space &space, offs_t offset) { return 0xff; }
- virtual void s100_sout_w(address_space &space, offs_t offset, uint8_t data) { }
+ virtual uint8_t s100_sinp_r(offs_t offset) { return 0xff; }
+ virtual void s100_sout_w(offs_t offset, uint8_t data) { }
// configuration access
virtual void s100_phlda_w(int state) { }
@@ -159,11 +159,11 @@ public:
void add_card(device_s100_card_interface *card);
- DECLARE_READ8_MEMBER( smemr_r );
- DECLARE_WRITE8_MEMBER( mwrt_w );
+ uint8_t smemr_r(offs_t offset);
+ void mwrt_w(offs_t offset, uint8_t data);
- DECLARE_READ8_MEMBER( sinp_r );
- DECLARE_WRITE8_MEMBER( sout_w );
+ uint8_t sinp_r(offs_t offset);
+ void sout_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER( irq_w ) { m_write_irq(state); }
DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_write_nmi(state); }
diff --git a/src/devices/bus/s100/seals8k.cpp b/src/devices/bus/s100/seals8k.cpp
index 9191f8566df..949c7d6d2c5 100644
--- a/src/devices/bus/s100/seals8k.cpp
+++ b/src/devices/bus/s100/seals8k.cpp
@@ -51,8 +51,8 @@ protected:
virtual void device_start() override;
// S-100 memory access handlers
- virtual u8 s100_smemr_r(address_space &space, offs_t offset) override;
- virtual void s100_mwrt_w(address_space &space, offs_t offset, u8 data) override;
+ virtual u8 s100_smemr_r(offs_t offset) override;
+ virtual void s100_mwrt_w(offs_t offset, u8 data) override;
// internal state
std::unique_ptr<u8[]> m_ram;
@@ -203,7 +203,7 @@ bool s100_8k_sc_device::board_selected(offs_t offset) const
// s100_smemr_r - memory read
//-------------------------------------------------
-u8 s100_8k_sc_device::s100_smemr_r(address_space &space, offs_t offset)
+u8 s100_8k_sc_device::s100_smemr_r(offs_t offset)
{
if (board_selected(offset))
return m_ram[offset & 0x1fff];
@@ -216,7 +216,7 @@ u8 s100_8k_sc_device::s100_smemr_r(address_space &space, offs_t offset)
// s100_mwrt_w - memory write
//-------------------------------------------------
-void s100_8k_sc_device::s100_mwrt_w(address_space &space, offs_t offset, u8 data)
+void s100_8k_sc_device::s100_mwrt_w(offs_t offset, u8 data)
{
if (board_selected(offset))
m_ram[offset & 0x1fff] = data;
diff --git a/src/devices/bus/s100/wunderbus.cpp b/src/devices/bus/s100/wunderbus.cpp
index 9d307d9053b..c7db4417dcb 100644
--- a/src/devices/bus/s100/wunderbus.cpp
+++ b/src/devices/bus/s100/wunderbus.cpp
@@ -300,7 +300,7 @@ void s100_wunderbus_device::s100_vi2_w(int state)
// s100_sinp_r - I/O read
//-------------------------------------------------
-uint8_t s100_wunderbus_device::s100_sinp_r(address_space &space, offs_t offset)
+uint8_t s100_wunderbus_device::s100_sinp_r(offs_t offset)
{
uint8_t address = (m_7c->read() & 0x3e) << 2;
if ((offset & 0xf8) != address) return 0xff;
@@ -388,15 +388,15 @@ uint8_t s100_wunderbus_device::s100_sinp_r(address_space &space, offs_t offset)
break;
case 1:
- data = m_ace1->ins8250_r(space, offset & 0x07);
+ data = m_ace1->ins8250_r(machine().dummy_space(), offset & 0x07);
break;
case 2:
- data = m_ace2->ins8250_r(space, offset & 0x07);
+ data = m_ace2->ins8250_r(machine().dummy_space(), offset & 0x07);
break;
case 3:
- data = m_ace3->ins8250_r(space, offset & 0x07);
+ data = m_ace3->ins8250_r(machine().dummy_space(), offset & 0x07);
break;
}
}
@@ -409,7 +409,7 @@ uint8_t s100_wunderbus_device::s100_sinp_r(address_space &space, offs_t offset)
// s100_sout_w - I/O write
//-------------------------------------------------
-void s100_wunderbus_device::s100_sout_w(address_space &space, offs_t offset, uint8_t data)
+void s100_wunderbus_device::s100_sout_w(offs_t offset, uint8_t data)
{
uint8_t address = (m_7c->read() & 0x3e) << 2;
if ((offset & 0xf8) != address) return;
@@ -511,15 +511,15 @@ void s100_wunderbus_device::s100_sout_w(address_space &space, offs_t offset, uin
break;
case 1:
- m_ace1->ins8250_w(space, offset & 0x07, data);
+ m_ace1->ins8250_w(machine().dummy_space(), offset & 0x07, data);
break;
case 2:
- m_ace2->ins8250_w(space, offset & 0x07, data);
+ m_ace2->ins8250_w(machine().dummy_space(), offset & 0x07, data);
break;
case 3:
- m_ace3->ins8250_w(space, offset & 0x07, data);
+ m_ace3->ins8250_w(machine().dummy_space(), offset & 0x07, data);
break;
}
}
diff --git a/src/devices/bus/s100/wunderbus.h b/src/devices/bus/s100/wunderbus.h
index 540c5cd8b6c..ca9a6d0e641 100644
--- a/src/devices/bus/s100/wunderbus.h
+++ b/src/devices/bus/s100/wunderbus.h
@@ -44,8 +44,8 @@ protected:
virtual void s100_vi0_w(int state) override;
virtual void s100_vi1_w(int state) override;
virtual void s100_vi2_w(int state) override;
- virtual uint8_t s100_sinp_r(address_space &space, offs_t offset) override;
- virtual void s100_sout_w(address_space &space, offs_t offset, uint8_t data) override;
+ virtual uint8_t s100_sinp_r(offs_t offset) override;
+ virtual void s100_sout_w(offs_t offset, uint8_t data) override;
private:
DECLARE_WRITE_LINE_MEMBER( pic_int_w );
diff --git a/src/devices/bus/spectrum/exp.cpp b/src/devices/bus/spectrum/exp.cpp
index 73e1d4a3a9a..2c8f86f6a9d 100644
--- a/src/devices/bus/spectrum/exp.cpp
+++ b/src/devices/bus/spectrum/exp.cpp
@@ -43,7 +43,7 @@ device_spectrum_expansion_interface::device_spectrum_expansion_interface(const m
spectrum_expansion_slot_device::spectrum_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, SPECTRUM_EXPANSION_SLOT, tag, owner, clock),
device_slot_interface(mconfig, *this),
- m_io(nullptr),
+ m_io(*this, finder_base::DUMMY_TAG, -1),
m_card(nullptr),
m_irq_handler(*this),
m_nmi_handler(*this)
@@ -52,6 +52,23 @@ spectrum_expansion_slot_device::spectrum_expansion_slot_device(const machine_con
//-------------------------------------------------
+// device_config_complete - perform any
+// operations now that the configuration is
+// complete
+//-------------------------------------------------
+
+void spectrum_expansion_slot_device::device_config_complete()
+{
+ // for passthrough connectors, use the parent slot's I/O space
+ if (m_io.finder_tag() == finder_base::DUMMY_TAG && dynamic_cast<device_spectrum_expansion_interface *>(owner()) != nullptr)
+ {
+ auto parent = dynamic_cast<spectrum_expansion_slot_device *>(owner()->owner());
+ if (parent != nullptr)
+ m_io.set_tag(parent->m_io, parent->m_io.spacenum());
+ }
+}
+
+//-------------------------------------------------
// device_validity_check - device-specific checks
//-------------------------------------------------
@@ -87,15 +104,6 @@ void spectrum_expansion_slot_device::device_reset()
}
//-------------------------------------------------
-// set_io_space - set address space we are attached to
-//-------------------------------------------------
-
-void spectrum_expansion_slot_device::set_io_space(address_space *io)
-{
- m_io = io;
-}
-
-//-------------------------------------------------
// port_fe_r
//-------------------------------------------------
diff --git a/src/devices/bus/spectrum/exp.h b/src/devices/bus/spectrum/exp.h
index 1d8eb5f21f2..a20308fd12d 100644
--- a/src/devices/bus/spectrum/exp.h
+++ b/src/devices/bus/spectrum/exp.h
@@ -69,7 +69,7 @@ public:
spectrum_expansion_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock = 0);
- void set_io_space(address_space *io);
+ template <typename T> void set_io_space(T &&tag, int spacenum) { m_io.set_tag(std::forward<T>(tag), spacenum); }
// callbacks
auto irq_handler() { return m_irq_handler.bind(); }
@@ -83,10 +83,11 @@ public:
DECLARE_WRITE_LINE_MEMBER( irq_w ) { m_irq_handler(state); }
DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_nmi_handler(state); }
- address_space *m_io;
+ required_address_space m_io;
protected:
// device-level overrides
+ virtual void device_config_complete() override;
virtual void device_validity_check(validity_checker &valid) const override;
virtual void device_start() override;
virtual void device_reset() override;
diff --git a/src/devices/bus/spectrum/fuller.cpp b/src/devices/bus/spectrum/fuller.cpp
index bf3630dc9ff..1fa96a92071 100644
--- a/src/devices/bus/spectrum/fuller.cpp
+++ b/src/devices/bus/spectrum/fuller.cpp
@@ -90,8 +90,6 @@ void spectrum_fuller_device::device_start()
void spectrum_fuller_device::device_reset()
{
- m_exp->set_io_space(&io_space());
-
io_space().install_write_handler(0x3f, 0x3f, 0, 0xff00, 0, write8smo_delegate(FUNC(ay8910_device::address_w), m_psg.target()));
io_space().install_readwrite_handler(0x5f, 0x5f, 0, 0xff00, 0, read8smo_delegate(FUNC(ay8910_device::data_r), m_psg.target()), write8smo_delegate(FUNC(ay8910_device::data_w), m_psg.target()));
io_space().install_read_handler(0x7f, 0x7f, 0, 0xff00, 0, read8_delegate(FUNC(spectrum_fuller_device::joystick_r), this));
diff --git a/src/devices/bus/spectrum/intf1.cpp b/src/devices/bus/spectrum/intf1.cpp
index d324e931e2c..f95da3cfa36 100644
--- a/src/devices/bus/spectrum/intf1.cpp
+++ b/src/devices/bus/spectrum/intf1.cpp
@@ -93,8 +93,6 @@ void spectrum_intf1_device::device_start()
void spectrum_intf1_device::device_reset()
{
- m_exp->set_io_space(&io_space());
-
m_romcs = 0;
}
diff --git a/src/devices/bus/spectrum/melodik.cpp b/src/devices/bus/spectrum/melodik.cpp
index 0a7e04371fe..2de5ab7797a 100644
--- a/src/devices/bus/spectrum/melodik.cpp
+++ b/src/devices/bus/spectrum/melodik.cpp
@@ -66,8 +66,6 @@ void spectrum_melodik_device::device_start()
void spectrum_melodik_device::device_reset()
{
- m_exp->set_io_space(&io_space());
-
io_space().install_write_handler(0x8000, 0x8000, 0, 0x3ffd, 0, write8smo_delegate(FUNC(ay8910_device::address_w), m_psg.target()));
io_space().install_readwrite_handler(0xc000, 0xc000, 0, 0x3ffd, 0, read8smo_delegate(FUNC(ay8910_device::data_r), m_psg.target()), write8smo_delegate(FUNC(ay8910_device::data_w), m_psg.target()));
}
diff --git a/src/devices/bus/spectrum/uslot.cpp b/src/devices/bus/spectrum/uslot.cpp
index d2d75d6a72c..3e25046e506 100644
--- a/src/devices/bus/spectrum/uslot.cpp
+++ b/src/devices/bus/spectrum/uslot.cpp
@@ -64,8 +64,6 @@ void spectrum_uslot_device::device_start()
void spectrum_uslot_device::device_reset()
{
- m_exp1->set_io_space(&io_space());
- m_exp2->set_io_space(&io_space());
}
diff --git a/src/devices/bus/vidbrain/exp.cpp b/src/devices/bus/vidbrain/exp.cpp
index c490c0605b2..808907678cc 100644
--- a/src/devices/bus/vidbrain/exp.cpp
+++ b/src/devices/bus/vidbrain/exp.cpp
@@ -153,13 +153,13 @@ std::string videobrain_expansion_slot_device::get_default_card_software(get_defa
// bo_r - cartridge data read
//-------------------------------------------------
-uint8_t videobrain_expansion_slot_device::bo_r(address_space &space, offs_t offset, int cs1, int cs2)
+uint8_t videobrain_expansion_slot_device::bo_r(offs_t offset, int cs1, int cs2)
{
uint8_t data = 0;
if (m_cart != nullptr)
{
- data = m_cart->videobrain_bo_r(space, offset, cs1, cs2);
+ data = m_cart->videobrain_bo_r(offset, cs1, cs2);
}
return data;
@@ -170,11 +170,11 @@ uint8_t videobrain_expansion_slot_device::bo_r(address_space &space, offs_t offs
// bo_w - cartridge data write
//-------------------------------------------------
-void videobrain_expansion_slot_device::bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2)
+void videobrain_expansion_slot_device::bo_w(offs_t offset, uint8_t data, int cs1, int cs2)
{
if (m_cart != nullptr)
{
- m_cart->videobrain_bo_w(space, offset, data, cs1, cs2);
+ m_cart->videobrain_bo_w(offset, data, cs1, cs2);
}
}
diff --git a/src/devices/bus/vidbrain/exp.h b/src/devices/bus/vidbrain/exp.h
index 37c58300030..e841df6c32c 100644
--- a/src/devices/bus/vidbrain/exp.h
+++ b/src/devices/bus/vidbrain/exp.h
@@ -73,8 +73,8 @@ protected:
virtual uint8_t* videobrain_ram_pointer(running_machine &machine, size_t size);
// runtime
- virtual uint8_t videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2) { return 0; }
- virtual void videobrain_bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2) { }
+ virtual uint8_t videobrain_bo_r(offs_t offset, int cs1, int cs2) { return 0; }
+ virtual void videobrain_bo_w(offs_t offset, uint8_t data, int cs1, int cs2) { }
virtual void videobrain_extres_w() { }
videobrain_expansion_slot_device *m_slot;
@@ -109,15 +109,15 @@ public:
auto extres_wr_callback() { return m_write_extres.bind(); }
// computer interface
- uint8_t bo_r(address_space &space, offs_t offset, int cs1, int cs2);
- void bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2);
-
- DECLARE_READ8_MEMBER( cs1_r ) { return bo_r(space, offset + 0x1000, 0, 1); }
- DECLARE_WRITE8_MEMBER( cs1_w ) { bo_w(space, offset + 0x1000, data, 0, 1); }
- DECLARE_READ8_MEMBER( cs2_r ) { return bo_r(space, offset + 0x1800, 1, 0); }
- DECLARE_WRITE8_MEMBER( cs2_w ) { bo_w(space, offset + 0x1800, data, 1, 0); }
- DECLARE_READ8_MEMBER( unmap_r ) { return bo_r(space, offset + 0x3000, 1, 0); }
- DECLARE_WRITE8_MEMBER( unmap_w ) { bo_w(space, offset + 0x3000, data, 1, 0); }
+ uint8_t bo_r(offs_t offset, int cs1, int cs2);
+ void bo_w(offs_t offset, uint8_t data, int cs1, int cs2);
+
+ uint8_t cs1_r(offs_t offset) { return bo_r(offset + 0x1000, 0, 1); }
+ void cs1_w(offs_t offset, uint8_t data) { bo_w(offset + 0x1000, data, 0, 1); }
+ uint8_t cs2_r(offs_t offset) { return bo_r(offset + 0x1800, 1, 0); }
+ void cs2_w(offs_t offset, uint8_t data) { bo_w(offset + 0x1800, data, 1, 0); }
+ uint8_t unmap_r(offs_t offset) { return bo_r(offset + 0x3000, 1, 0); }
+ void unmap_w(offs_t offset, uint8_t data) { bo_w(offset + 0x3000, data, 1, 0); }
// cartridge interface
DECLARE_WRITE_LINE_MEMBER( extres_w ) { m_write_extres(state); }
diff --git a/src/devices/bus/vidbrain/money_minder.cpp b/src/devices/bus/vidbrain/money_minder.cpp
index 81220a499b6..b0f4826ca5d 100644
--- a/src/devices/bus/vidbrain/money_minder.cpp
+++ b/src/devices/bus/vidbrain/money_minder.cpp
@@ -47,7 +47,7 @@ void videobrain_money_minder_cartridge_device::device_start()
// videobrain_cd_r - cartridge data read
//-------------------------------------------------
-uint8_t videobrain_money_minder_cartridge_device::videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2)
+uint8_t videobrain_money_minder_cartridge_device::videobrain_bo_r(offs_t offset, int cs1, int cs2)
{
uint8_t data = 0;
@@ -68,7 +68,7 @@ uint8_t videobrain_money_minder_cartridge_device::videobrain_bo_r(address_space
// videobrain_bo_w - cartridge data write
//-------------------------------------------------
-void videobrain_money_minder_cartridge_device::videobrain_bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2)
+void videobrain_money_minder_cartridge_device::videobrain_bo_w(offs_t offset, uint8_t data, int cs1, int cs2)
{
if (offset >= 0x3800)
{
diff --git a/src/devices/bus/vidbrain/money_minder.h b/src/devices/bus/vidbrain/money_minder.h
index 20ead06960e..23f219c4962 100644
--- a/src/devices/bus/vidbrain/money_minder.h
+++ b/src/devices/bus/vidbrain/money_minder.h
@@ -33,8 +33,8 @@ protected:
virtual void device_start() override;
// device_videobrain_expansion_card_interface overrides
- virtual uint8_t videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2) override;
- virtual void videobrain_bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2) override;
+ virtual uint8_t videobrain_bo_r(offs_t offset, int cs1, int cs2) override;
+ virtual void videobrain_bo_w(offs_t offset, uint8_t data, int cs1, int cs2) override;
};
diff --git a/src/devices/bus/vidbrain/std.cpp b/src/devices/bus/vidbrain/std.cpp
index 82a6fc2761e..55b5c3ce22d 100644
--- a/src/devices/bus/vidbrain/std.cpp
+++ b/src/devices/bus/vidbrain/std.cpp
@@ -47,7 +47,7 @@ void videobrain_standard_cartridge_device::device_start()
// videobrain_bo_r - cartridge data read
//-------------------------------------------------
-uint8_t videobrain_standard_cartridge_device::videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2)
+uint8_t videobrain_standard_cartridge_device::videobrain_bo_r(offs_t offset, int cs1, int cs2)
{
uint8_t data = 0;
diff --git a/src/devices/bus/vidbrain/std.h b/src/devices/bus/vidbrain/std.h
index 2dbbde3231f..7939501909f 100644
--- a/src/devices/bus/vidbrain/std.h
+++ b/src/devices/bus/vidbrain/std.h
@@ -33,7 +33,7 @@ protected:
virtual void device_start() override;
// device_videobrain_expansion_card_interface overrides
- virtual uint8_t videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2) override;
+ virtual uint8_t videobrain_bo_r(offs_t offset, int cs1, int cs2) override;
};
diff --git a/src/devices/bus/vidbrain/timeshare.cpp b/src/devices/bus/vidbrain/timeshare.cpp
index f4997a55ddc..709f16f5c74 100644
--- a/src/devices/bus/vidbrain/timeshare.cpp
+++ b/src/devices/bus/vidbrain/timeshare.cpp
@@ -47,7 +47,7 @@ void videobrain_timeshare_cartridge_device::device_start()
// videobrain_bo_r - cartridge data read
//-------------------------------------------------
-uint8_t videobrain_timeshare_cartridge_device::videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2)
+uint8_t videobrain_timeshare_cartridge_device::videobrain_bo_r(offs_t offset, int cs1, int cs2)
{
uint8_t data = 0;
@@ -67,7 +67,7 @@ uint8_t videobrain_timeshare_cartridge_device::videobrain_bo_r(address_space &sp
// videobrain_bo_w - cartridge data write
//-------------------------------------------------
-void videobrain_timeshare_cartridge_device::videobrain_bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2)
+void videobrain_timeshare_cartridge_device::videobrain_bo_w(offs_t offset, uint8_t data, int cs1, int cs2)
{
if (!cs2)
{
diff --git a/src/devices/bus/vidbrain/timeshare.h b/src/devices/bus/vidbrain/timeshare.h
index 971c5674320..7885772149d 100644
--- a/src/devices/bus/vidbrain/timeshare.h
+++ b/src/devices/bus/vidbrain/timeshare.h
@@ -33,8 +33,8 @@ protected:
virtual void device_start() override;
// device_videobrain_expansion_card_interface overrides
- virtual uint8_t videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2) override;
- virtual void videobrain_bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2) override;
+ virtual uint8_t videobrain_bo_r(offs_t offset, int cs1, int cs2) override;
+ virtual void videobrain_bo_w(offs_t offset, uint8_t data, int cs1, int cs2) override;
};
diff --git a/src/devices/bus/vsmile/vsmile_slot.cpp b/src/devices/bus/vsmile/vsmile_slot.cpp
index e7b8546ea20..61d7873b63f 100644
--- a/src/devices/bus/vsmile/vsmile_slot.cpp
+++ b/src/devices/bus/vsmile/vsmile_slot.cpp
@@ -251,4 +251,4 @@ WRITE16_MEMBER(vsmile_cart_slot_device::bank3_w)
void vsmile_cart_slot_device::set_cs2(bool cs2)
{
m_cart->set_cs2(cs2);
-} \ No newline at end of file
+}
diff --git a/src/devices/bus/vtech/ioexp/ioexp.cpp b/src/devices/bus/vtech/ioexp/ioexp.cpp
index c2916a0ba14..897b0dba95b 100644
--- a/src/devices/bus/vtech/ioexp/ioexp.cpp
+++ b/src/devices/bus/vtech/ioexp/ioexp.cpp
@@ -30,7 +30,7 @@ DEFINE_DEVICE_TYPE(VTECH_IOEXP_SLOT, vtech_ioexp_slot_device, "vtech_ioexp_slot"
vtech_ioexp_slot_device::vtech_ioexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, VTECH_IOEXP_SLOT, tag, owner, clock),
device_slot_interface(mconfig, *this),
- m_io(nullptr),
+ m_io(*this, finder_base::DUMMY_TAG, -1),
m_cart(nullptr)
{
}
@@ -59,15 +59,6 @@ void vtech_ioexp_slot_device::device_reset()
{
}
-//-------------------------------------------------
-// set_io_space - set address space we are attached to
-//-------------------------------------------------
-
-void vtech_ioexp_slot_device::set_io_space(address_space *io)
-{
- m_io = io;
-}
-
//**************************************************************************
// CARTRIDGE INTERFACE
diff --git a/src/devices/bus/vtech/ioexp/ioexp.h b/src/devices/bus/vtech/ioexp/ioexp.h
index 0c2a3d2d431..9a78f861478 100644
--- a/src/devices/bus/vtech/ioexp/ioexp.h
+++ b/src/devices/bus/vtech/ioexp/ioexp.h
@@ -54,14 +54,14 @@ public:
vtech_ioexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual ~vtech_ioexp_slot_device();
- void set_io_space(address_space *io);
+ template <typename T> void set_io_space(T &&tag, int spacenum) { m_io.set_tag(std::forward<T>(tag), spacenum); }
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
- address_space *m_io;
+ required_address_space m_io;
device_vtech_ioexp_interface *m_cart;
};
diff --git a/src/devices/bus/vtech/memexp/floppy.cpp b/src/devices/bus/vtech/memexp/floppy.cpp
index bf7a3175594..5807588ec27 100644
--- a/src/devices/bus/vtech/memexp/floppy.cpp
+++ b/src/devices/bus/vtech/memexp/floppy.cpp
@@ -107,9 +107,6 @@ void vtech_floppy_controller_device::device_start()
void vtech_floppy_controller_device::device_reset()
{
- m_memexp->set_io_space(&io_space());
- m_memexp->set_program_space(&program_space());
-
program_space().install_rom(0x4000, 0x5fff, memregion("software")->base());
io_space().install_device(0x10, 0x1f, *this, &vtech_floppy_controller_device::map);
diff --git a/src/devices/bus/vtech/memexp/memexp.cpp b/src/devices/bus/vtech/memexp/memexp.cpp
index e7f61e5d048..90f51da7345 100644
--- a/src/devices/bus/vtech/memexp/memexp.cpp
+++ b/src/devices/bus/vtech/memexp/memexp.cpp
@@ -30,8 +30,8 @@ DEFINE_DEVICE_TYPE(VTECH_MEMEXP_SLOT, vtech_memexp_slot_device, "vtech_memexp_sl
vtech_memexp_slot_device::vtech_memexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, VTECH_MEMEXP_SLOT, tag, owner, clock),
device_slot_interface(mconfig, *this),
- m_program(nullptr),
- m_io(nullptr),
+ m_program(*this, finder_base::DUMMY_TAG, -1),
+ m_io(*this, finder_base::DUMMY_TAG, -1),
m_cart(nullptr),
m_int_handler(*this),
m_nmi_handler(*this),
@@ -48,6 +48,28 @@ vtech_memexp_slot_device::~vtech_memexp_slot_device()
}
//-------------------------------------------------
+// device_config_complete - perform any
+// operations now that the configuration is
+// complete
+//-------------------------------------------------
+
+void vtech_memexp_slot_device::device_config_complete()
+{
+ // for passthrough connectors, use the parent slot's spaces
+ if (dynamic_cast<device_vtech_memexp_interface *>(owner()) != nullptr)
+ {
+ auto parent = dynamic_cast<vtech_memexp_slot_device *>(owner()->owner());
+ if (parent != nullptr)
+ {
+ if (m_program.finder_tag() == finder_base::DUMMY_TAG)
+ m_program.set_tag(parent->m_program, parent->m_program.spacenum());
+ if (m_io.finder_tag() == finder_base::DUMMY_TAG)
+ m_io.set_tag(parent->m_io, parent->m_io.spacenum());
+ }
+ }
+}
+
+//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
@@ -67,24 +89,6 @@ void vtech_memexp_slot_device::device_reset()
{
}
-//-------------------------------------------------
-// set_program_space - set address space we are attached to
-//-------------------------------------------------
-
-void vtech_memexp_slot_device::set_program_space(address_space *program)
-{
- m_program = program;
-}
-
-//-------------------------------------------------
-// set_io_space - set address space we are attached to
-//-------------------------------------------------
-
-void vtech_memexp_slot_device::set_io_space(address_space *io)
-{
- m_io = io;
-}
-
//**************************************************************************
// CARTRIDGE INTERFACE
diff --git a/src/devices/bus/vtech/memexp/memexp.h b/src/devices/bus/vtech/memexp/memexp.h
index 097036bfd92..ca096075e90 100644
--- a/src/devices/bus/vtech/memexp/memexp.h
+++ b/src/devices/bus/vtech/memexp/memexp.h
@@ -61,8 +61,8 @@ public:
vtech_memexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual ~vtech_memexp_slot_device();
- void set_program_space(address_space *program);
- void set_io_space(address_space *io);
+ template <typename T> void set_program_space(T &&tag, int spacenum) { m_program.set_tag(std::forward<T>(tag), spacenum); }
+ template <typename T> void set_io_space(T &&tag, int spacenum) { m_io.set_tag(std::forward<T>(tag), spacenum); }
// callbacks
auto int_handler() { return m_int_handler.bind(); }
@@ -76,11 +76,12 @@ public:
protected:
// device-level overrides
+ virtual void device_config_complete() override;
virtual void device_start() override;
virtual void device_reset() override;
- address_space *m_program;
- address_space *m_io;
+ required_address_space m_program;
+ required_address_space m_io;
device_vtech_memexp_interface *m_cart;
diff --git a/src/devices/bus/wangpc/emb.cpp b/src/devices/bus/wangpc/emb.cpp
index 8f555391bea..8a1817d1666 100644
--- a/src/devices/bus/wangpc/emb.cpp
+++ b/src/devices/bus/wangpc/emb.cpp
@@ -85,7 +85,7 @@ void wangpc_emb_device::device_reset()
// wangpcbus_mrdc_r - memory read
//-------------------------------------------------
-uint16_t wangpc_emb_device::wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask)
+uint16_t wangpc_emb_device::wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -105,7 +105,7 @@ uint16_t wangpc_emb_device::wangpcbus_mrdc_r(address_space &space, offs_t offset
// wangpcbus_amwc_w - memory write
//-------------------------------------------------
-void wangpc_emb_device::wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data)
+void wangpc_emb_device::wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data)
{
for (int bank = 0; bank < 4; bank++)
{
@@ -121,7 +121,7 @@ void wangpc_emb_device::wangpcbus_amwc_w(address_space &space, offs_t offset, ui
// wangpcbus_iorc_r - I/O read
//-------------------------------------------------
-uint16_t wangpc_emb_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask)
+uint16_t wangpc_emb_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -149,7 +149,7 @@ uint16_t wangpc_emb_device::wangpcbus_iorc_r(address_space &space, offs_t offset
// wangpcbus_aiowc_w - I/O write
//-------------------------------------------------
-void wangpc_emb_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data)
+void wangpc_emb_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data)
{
if (sad(offset))
{
diff --git a/src/devices/bus/wangpc/emb.h b/src/devices/bus/wangpc/emb.h
index bdaa7698b51..1e175ae6867 100644
--- a/src/devices/bus/wangpc/emb.h
+++ b/src/devices/bus/wangpc/emb.h
@@ -34,10 +34,10 @@ protected:
virtual void device_reset() override;
// device_wangpcbus_card_interface overrides
- virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) override;
- virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override;
- virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override;
- virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override;
+ virtual uint16_t wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) override;
+ virtual void wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override;
+ virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override;
+ virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override;
private:
optional_shared_ptr<uint16_t> m_ram;
diff --git a/src/devices/bus/wangpc/lic.cpp b/src/devices/bus/wangpc/lic.cpp
index aa158b4bf72..f56c673fd26 100644
--- a/src/devices/bus/wangpc/lic.cpp
+++ b/src/devices/bus/wangpc/lic.cpp
@@ -92,7 +92,7 @@ void wangpc_lic_device::device_reset()
// wangpcbus_mrdc_r - memory read
//-------------------------------------------------
-uint16_t wangpc_lic_device::wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask)
+uint16_t wangpc_lic_device::wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -104,7 +104,7 @@ uint16_t wangpc_lic_device::wangpcbus_mrdc_r(address_space &space, offs_t offset
// wangpcbus_amwc_w - memory write
//-------------------------------------------------
-void wangpc_lic_device::wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data)
+void wangpc_lic_device::wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data)
{
}
@@ -113,7 +113,7 @@ void wangpc_lic_device::wangpcbus_amwc_w(address_space &space, offs_t offset, ui
// wangpcbus_iorc_r - I/O read
//-------------------------------------------------
-uint16_t wangpc_lic_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask)
+uint16_t wangpc_lic_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -135,7 +135,7 @@ uint16_t wangpc_lic_device::wangpcbus_iorc_r(address_space &space, offs_t offset
// wangpcbus_aiowc_w - I/O write
//-------------------------------------------------
-void wangpc_lic_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data)
+void wangpc_lic_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data)
{
if (sad(offset))
{
diff --git a/src/devices/bus/wangpc/lic.h b/src/devices/bus/wangpc/lic.h
index f3a27f0bc77..8ead2c65f0a 100644
--- a/src/devices/bus/wangpc/lic.h
+++ b/src/devices/bus/wangpc/lic.h
@@ -36,10 +36,10 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// device_wangpcbus_card_interface overrides
- virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) override;
- virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override;
- virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override;
- virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override;
+ virtual uint16_t wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) override;
+ virtual void wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override;
+ virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override;
+ virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override;
};
diff --git a/src/devices/bus/wangpc/lvc.cpp b/src/devices/bus/wangpc/lvc.cpp
index 7e7cbe47ad5..60ec03e5674 100644
--- a/src/devices/bus/wangpc/lvc.cpp
+++ b/src/devices/bus/wangpc/lvc.cpp
@@ -203,7 +203,7 @@ void wangpc_lvc_device::device_reset()
// wangpcbus_mrdc_r - memory read
//-------------------------------------------------
-uint16_t wangpc_lvc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask)
+uint16_t wangpc_lvc_device::wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -222,7 +222,7 @@ uint16_t wangpc_lvc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset
// wangpcbus_amwc_w - memory write
//-------------------------------------------------
-void wangpc_lvc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data)
+void wangpc_lvc_device::wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data)
{
if (OPTION_VRAM && (offset >= 0xe0000/2) && (offset < 0xf0000/2))
{
@@ -237,7 +237,7 @@ void wangpc_lvc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, ui
// wangpcbus_iorc_r - I/O read
//-------------------------------------------------
-uint16_t wangpc_lvc_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask)
+uint16_t wangpc_lvc_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -270,7 +270,7 @@ uint16_t wangpc_lvc_device::wangpcbus_iorc_r(address_space &space, offs_t offset
// wangpcbus_aiowc_w - I/O write
//-------------------------------------------------
-void wangpc_lvc_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data)
+void wangpc_lvc_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data)
{
if (sad(offset))
{
diff --git a/src/devices/bus/wangpc/lvc.h b/src/devices/bus/wangpc/lvc.h
index 7b4f9203007..3fa858adf1c 100644
--- a/src/devices/bus/wangpc/lvc.h
+++ b/src/devices/bus/wangpc/lvc.h
@@ -36,10 +36,10 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// device_wangpcbus_card_interface overrides
- virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) override;
- virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override;
- virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override;
- virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override;
+ virtual uint16_t wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) override;
+ virtual void wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override;
+ virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override;
+ virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override;
private:
MC6845_UPDATE_ROW( crtc_update_row );
diff --git a/src/devices/bus/wangpc/mcc.cpp b/src/devices/bus/wangpc/mcc.cpp
index d5c8bf4b941..5f483cee5fd 100644
--- a/src/devices/bus/wangpc/mcc.cpp
+++ b/src/devices/bus/wangpc/mcc.cpp
@@ -129,7 +129,7 @@ void wangpc_mcc_device::device_reset()
// wangpcbus_iorc_r - I/O read
//-------------------------------------------------
-uint16_t wangpc_mcc_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask)
+uint16_t wangpc_mcc_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -143,7 +143,7 @@ uint16_t wangpc_mcc_device::wangpcbus_iorc_r(address_space &space, offs_t offset
case 0x06/2:
if (ACCESSING_BITS_0_7)
{
- data = 0xff00 | m_sio->cd_ba_r(space, offset >> 1);
+ data = 0xff00 | m_sio->cd_ba_r(machine().dummy_space(), offset >> 1);
}
break;
@@ -153,7 +153,7 @@ uint16_t wangpc_mcc_device::wangpcbus_iorc_r(address_space &space, offs_t offset
case 0x0e/2:
if (ACCESSING_BITS_0_7)
{
- data = 0xff00 | m_dart->cd_ba_r(space, offset >> 1);
+ data = 0xff00 | m_dart->cd_ba_r(machine().dummy_space(), offset >> 1);
}
break;
@@ -198,7 +198,7 @@ uint16_t wangpc_mcc_device::wangpcbus_iorc_r(address_space &space, offs_t offset
// wangpcbus_aiowc_w - I/O write
//-------------------------------------------------
-void wangpc_mcc_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data)
+void wangpc_mcc_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data)
{
if (sad(offset) && ACCESSING_BITS_0_7)
{
@@ -208,14 +208,14 @@ void wangpc_mcc_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, u
case 0x02/2:
case 0x04/2:
case 0x06/2:
- m_sio->cd_ba_w(space, offset >> 1, data & 0xff);
+ m_sio->cd_ba_w(machine().dummy_space(), offset >> 1, data & 0xff);
break;
case 0x08/2:
case 0x0a/2:
case 0x0c/2:
case 0x0e/2:
- m_dart->cd_ba_w(space, offset >> 1, data & 0xff);
+ m_dart->cd_ba_w(machine().dummy_space(), offset >> 1, data & 0xff);
break;
case 0x12/2:
diff --git a/src/devices/bus/wangpc/mcc.h b/src/devices/bus/wangpc/mcc.h
index d09f2e23cba..58b8931f5fa 100644
--- a/src/devices/bus/wangpc/mcc.h
+++ b/src/devices/bus/wangpc/mcc.h
@@ -36,8 +36,8 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// device_wangpcbus_card_interface overrides
- virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override;
- virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override;
+ virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override;
+ virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override;
private:
inline void set_irq(int state);
diff --git a/src/devices/bus/wangpc/mvc.cpp b/src/devices/bus/wangpc/mvc.cpp
index f88970491a7..fbe4db1fe4a 100644
--- a/src/devices/bus/wangpc/mvc.cpp
+++ b/src/devices/bus/wangpc/mvc.cpp
@@ -226,7 +226,7 @@ void wangpc_mvc_device::device_reset()
// wangpcbus_mrdc_r - memory read
//-------------------------------------------------
-uint16_t wangpc_mvc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask)
+uint16_t wangpc_mvc_device::wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -254,7 +254,7 @@ uint16_t wangpc_mvc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset
// wangpcbus_amwc_w - memory write
//-------------------------------------------------
-void wangpc_mvc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data)
+void wangpc_mvc_device::wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data)
{
if (OPTION_VRAM)
{
@@ -278,7 +278,7 @@ void wangpc_mvc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, ui
// wangpcbus_iorc_r - I/O read
//-------------------------------------------------
-uint16_t wangpc_mvc_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask)
+uint16_t wangpc_mvc_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -302,7 +302,7 @@ uint16_t wangpc_mvc_device::wangpcbus_iorc_r(address_space &space, offs_t offset
// wangpcbus_aiowc_w - I/O write
//-------------------------------------------------
-void wangpc_mvc_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data)
+void wangpc_mvc_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data)
{
if (sad(offset) && ACCESSING_BITS_0_7)
{
diff --git a/src/devices/bus/wangpc/mvc.h b/src/devices/bus/wangpc/mvc.h
index 4620126c04e..aee0cdf51b2 100644
--- a/src/devices/bus/wangpc/mvc.h
+++ b/src/devices/bus/wangpc/mvc.h
@@ -36,10 +36,10 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// device_wangpcbus_card_interface overrides
- virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) override;
- virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override;
- virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override;
- virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override;
+ virtual uint16_t wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) override;
+ virtual void wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override;
+ virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override;
+ virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override;
private:
MC6845_UPDATE_ROW( crtc_update_row );
diff --git a/src/devices/bus/wangpc/rtc.cpp b/src/devices/bus/wangpc/rtc.cpp
index bdf392f9bed..4512939003f 100644
--- a/src/devices/bus/wangpc/rtc.cpp
+++ b/src/devices/bus/wangpc/rtc.cpp
@@ -214,7 +214,7 @@ void wangpc_rtc_device::device_reset()
// wangpcbus_mrdc_r - memory read
//-------------------------------------------------
-uint16_t wangpc_rtc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask)
+uint16_t wangpc_rtc_device::wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -226,7 +226,7 @@ uint16_t wangpc_rtc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset
// wangpcbus_amwc_w - memory write
//-------------------------------------------------
-void wangpc_rtc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data)
+void wangpc_rtc_device::wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data)
{
}
@@ -235,7 +235,7 @@ void wangpc_rtc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, ui
// wangpcbus_iorc_r - I/O read
//-------------------------------------------------
-uint16_t wangpc_rtc_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask)
+uint16_t wangpc_rtc_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -257,7 +257,7 @@ uint16_t wangpc_rtc_device::wangpcbus_iorc_r(address_space &space, offs_t offset
// wangpcbus_aiowc_w - I/O write
//-------------------------------------------------
-void wangpc_rtc_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data)
+void wangpc_rtc_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data)
{
if (sad(offset))
{
diff --git a/src/devices/bus/wangpc/rtc.h b/src/devices/bus/wangpc/rtc.h
index 4f0b22372f2..9233222a4f9 100644
--- a/src/devices/bus/wangpc/rtc.h
+++ b/src/devices/bus/wangpc/rtc.h
@@ -41,10 +41,10 @@ protected:
virtual ioport_constructor device_input_ports() const override;
// device_wangpcbus_card_interface overrides
- virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) override;
- virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override;
- virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override;
- virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override;
+ virtual uint16_t wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) override;
+ virtual void wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override;
+ virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override;
+ virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override;
private:
required_device<z80_device> m_maincpu;
diff --git a/src/devices/bus/wangpc/tig.cpp b/src/devices/bus/wangpc/tig.cpp
index 4d3827ad21a..fa18e4189ce 100644
--- a/src/devices/bus/wangpc/tig.cpp
+++ b/src/devices/bus/wangpc/tig.cpp
@@ -196,7 +196,7 @@ uint32_t wangpc_tig_device::screen_update(screen_device &screen, bitmap_rgb32 &b
// wangpcbus_iorc_r - I/O read
//-------------------------------------------------
-uint16_t wangpc_tig_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask)
+uint16_t wangpc_tig_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -206,12 +206,12 @@ uint16_t wangpc_tig_device::wangpcbus_iorc_r(address_space &space, offs_t offset
{
case 0x20/2:
case 0x22/2:
- data = m_hgdc0->read(space, offset);
+ data = m_hgdc0->read(offset);
break;
case 0x24/2:
case 0x26/2:
- data = m_hgdc1->read(space, offset);
+ data = m_hgdc1->read(offset);
break;
case 0xfe/2:
@@ -228,7 +228,7 @@ uint16_t wangpc_tig_device::wangpcbus_iorc_r(address_space &space, offs_t offset
// wangpcbus_aiowc_w - I/O write
//-------------------------------------------------
-void wangpc_tig_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data)
+void wangpc_tig_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data)
{
if (sad(offset) && ACCESSING_BITS_0_7)
{
@@ -243,12 +243,12 @@ void wangpc_tig_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, u
case 0x20/2:
case 0x22/2:
- m_hgdc0->write(space, offset, data);
+ m_hgdc0->write(offset, data);
break;
case 0x24/2:
case 0x26/2:
- m_hgdc1->write(space, offset, data);
+ m_hgdc1->write(offset, data);
break;
case 0x28/2:
@@ -275,17 +275,17 @@ void wangpc_tig_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, u
// wangpcbus_dack_r - DMA read
//-------------------------------------------------
-uint8_t wangpc_tig_device::wangpcbus_dack_r(address_space &space, int line)
+uint8_t wangpc_tig_device::wangpcbus_dack_r(int line)
{
uint8_t data;
if (DMA_GRAPHICS)
{
- data = m_hgdc1->dack_r(space, 0);
+ data = m_hgdc1->dack_r();
}
else
{
- data = m_hgdc0->dack_r(space, 0);
+ data = m_hgdc0->dack_r();
}
return data;
@@ -296,15 +296,15 @@ uint8_t wangpc_tig_device::wangpcbus_dack_r(address_space &space, int line)
// wangpcbus_dack_w - DMA write
//-------------------------------------------------
-void wangpc_tig_device::wangpcbus_dack_w(address_space &space, int line, uint8_t data)
+void wangpc_tig_device::wangpcbus_dack_w(int line, uint8_t data)
{
if (DMA_GRAPHICS)
{
- m_hgdc1->dack_w(space, 0, data);
+ m_hgdc1->dack_w(data);
}
else
{
- m_hgdc0->dack_w(space, 0, data);
+ m_hgdc0->dack_w(data);
}
}
diff --git a/src/devices/bus/wangpc/tig.h b/src/devices/bus/wangpc/tig.h
index 4a86f6ecb40..0e95eb42676 100644
--- a/src/devices/bus/wangpc/tig.h
+++ b/src/devices/bus/wangpc/tig.h
@@ -38,10 +38,10 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// device_wangpcbus_card_interface overrides
- virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override;
- virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override;
- virtual uint8_t wangpcbus_dack_r(address_space &space, int line) override;
- virtual void wangpcbus_dack_w(address_space &space, int line, uint8_t data) override;
+ virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override;
+ virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override;
+ virtual uint8_t wangpcbus_dack_r(int line) override;
+ virtual void wangpcbus_dack_w(int line, uint8_t data) override;
virtual bool wangpcbus_have_dack(int line) override;
private:
diff --git a/src/devices/bus/wangpc/wangpc.cpp b/src/devices/bus/wangpc/wangpc.cpp
index 36ed25bfdff..540ed94c1b3 100644
--- a/src/devices/bus/wangpc/wangpc.cpp
+++ b/src/devices/bus/wangpc/wangpc.cpp
@@ -104,7 +104,7 @@ void wangpcbus_device::add_card(device_wangpcbus_card_interface *card, int sid)
// mrdc_r - memory read
//-------------------------------------------------
-READ16_MEMBER( wangpcbus_device::mrdc_r )
+uint16_t wangpcbus_device::mrdc_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -112,7 +112,7 @@ READ16_MEMBER( wangpcbus_device::mrdc_r )
while (entry)
{
- data &= entry->wangpcbus_mrdc_r(space, offset + 0x40000/2, mem_mask);
+ data &= entry->wangpcbus_mrdc_r(offset + 0x40000/2, mem_mask);
entry = entry->next();
}
@@ -124,13 +124,13 @@ READ16_MEMBER( wangpcbus_device::mrdc_r )
// amwc_w - memory write
//-------------------------------------------------
-WRITE16_MEMBER( wangpcbus_device::amwc_w )
+void wangpcbus_device::amwc_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
device_wangpcbus_card_interface *entry = m_device_list.first();
while (entry)
{
- entry->wangpcbus_amwc_w(space, offset + 0x40000/2, mem_mask, data);
+ entry->wangpcbus_amwc_w(offset + 0x40000/2, mem_mask, data);
entry = entry->next();
}
}
@@ -140,7 +140,7 @@ WRITE16_MEMBER( wangpcbus_device::amwc_w )
// sad_r - I/O read
//-------------------------------------------------
-READ16_MEMBER( wangpcbus_device::sad_r )
+uint16_t wangpcbus_device::sad_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -148,7 +148,7 @@ READ16_MEMBER( wangpcbus_device::sad_r )
while (entry)
{
- data &= entry->wangpcbus_iorc_r(space, offset + 0x1100/2, mem_mask);
+ data &= entry->wangpcbus_iorc_r(offset + 0x1100/2, mem_mask);
entry = entry->next();
}
@@ -160,13 +160,13 @@ READ16_MEMBER( wangpcbus_device::sad_r )
// sad_w - I/O write
//-------------------------------------------------
-WRITE16_MEMBER( wangpcbus_device::sad_w )
+void wangpcbus_device::sad_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
device_wangpcbus_card_interface *entry = m_device_list.first();
while (entry)
{
- entry->wangpcbus_aiowc_w(space, offset + 0x1100/2, mem_mask, data);
+ entry->wangpcbus_aiowc_w(offset + 0x1100/2, mem_mask, data);
entry = entry->next();
}
}
@@ -176,7 +176,7 @@ WRITE16_MEMBER( wangpcbus_device::sad_w )
// dack_r - DMA read
//-------------------------------------------------
-uint8_t wangpcbus_device::dack_r(address_space &space, int line)
+uint8_t wangpcbus_device::dack_r(int line)
{
uint8_t retVal = 0xff;
device_wangpcbus_card_interface *entry = m_device_list.first();
@@ -185,7 +185,7 @@ uint8_t wangpcbus_device::dack_r(address_space &space, int line)
{
if (entry->wangpcbus_have_dack(line))
{
- retVal = entry->wangpcbus_dack_r(space, line);
+ retVal = entry->wangpcbus_dack_r(line);
break;
}
@@ -200,7 +200,7 @@ uint8_t wangpcbus_device::dack_r(address_space &space, int line)
// dack_w - DMA write
//-------------------------------------------------
-void wangpcbus_device::dack_w(address_space &space, int line, uint8_t data)
+void wangpcbus_device::dack_w(int line, uint8_t data)
{
device_wangpcbus_card_interface *entry = m_device_list.first();
@@ -208,7 +208,7 @@ void wangpcbus_device::dack_w(address_space &space, int line, uint8_t data)
{
if (entry->wangpcbus_have_dack(line))
{
- entry->wangpcbus_dack_w(space, line, data);
+ entry->wangpcbus_dack_w(line, data);
}
entry = entry->next();
diff --git a/src/devices/bus/wangpc/wangpc.h b/src/devices/bus/wangpc/wangpc.h
index 2b3a7860fc1..bb8c7a3c4ac 100644
--- a/src/devices/bus/wangpc/wangpc.h
+++ b/src/devices/bus/wangpc/wangpc.h
@@ -92,23 +92,23 @@ public:
void add_card(device_wangpcbus_card_interface *card, int sid);
// computer interface
- DECLARE_READ16_MEMBER( mrdc_r );
- DECLARE_WRITE16_MEMBER( amwc_w );
+ uint16_t mrdc_r(offs_t offset, uint16_t mem_mask = 0xffff);
+ void amwc_w(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff);
- DECLARE_READ16_MEMBER( sad_r );
- DECLARE_WRITE16_MEMBER( sad_w );
+ uint16_t sad_r(offs_t offset, uint16_t mem_mask = 0xffff);
+ void sad_w(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff);
- uint8_t dack_r(address_space &space, int line);
- void dack_w(address_space &space, int line, uint8_t data);
+ uint8_t dack_r(int line);
+ void dack_w(int line, uint8_t data);
- DECLARE_READ8_MEMBER( dack0_r ) { return dack_r(space, 0); }
- DECLARE_WRITE8_MEMBER( dack0_w ) { dack_w(space, 0, data); }
- DECLARE_READ8_MEMBER( dack1_r ) { return dack_r(space, 1); }
- DECLARE_WRITE8_MEMBER( dack1_w ) { dack_w(space, 1, data); }
- DECLARE_READ8_MEMBER( dack2_r ) { return dack_r(space, 2); }
- DECLARE_WRITE8_MEMBER( dack2_w ) { dack_w(space, 2, data); }
- DECLARE_READ8_MEMBER( dack3_r ) { return dack_r(space, 3); }
- DECLARE_WRITE8_MEMBER( dack3_w ) { dack_w(space, 3, data); }
+ uint8_t dack0_r() { return dack_r(0); }
+ void dack0_w(uint8_t data) { dack_w(0, data); }
+ uint8_t dack1_r() { return dack_r(1); }
+ void dack1_w(uint8_t data) { dack_w(1, data); }
+ uint8_t dack2_r() { return dack_r(2); }
+ void dack2_w(uint8_t data) { dack_w(2, data); }
+ uint8_t dack3_r() { return dack_r(3); }
+ void dack3_w(uint8_t data) { dack_w(3, data); }
DECLARE_WRITE_LINE_MEMBER( tc_w );
@@ -160,17 +160,17 @@ public:
device_wangpcbus_card_interface *next() const { return m_next; }
// memory access
- virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) { return 0; }
- virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) { }
+ virtual uint16_t wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) { return 0; }
+ virtual void wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { }
// I/O access
- virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) { return 0; }
- virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) { }
+ virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) { return 0; }
+ virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { }
bool sad(offs_t offset) const { return (offset & 0xf80) == (0x800 | (m_sid << 7)); }
// DMA
- virtual uint8_t wangpcbus_dack_r(address_space &space, int line) { return 0; }
- virtual void wangpcbus_dack_w(address_space &space, int line, uint8_t data) { }
+ virtual uint8_t wangpcbus_dack_r(int line) { return 0; }
+ virtual void wangpcbus_dack_w(int line, uint8_t data) { }
virtual void wangpcbus_tc_w(int state) { }
virtual bool wangpcbus_have_dack(int line) { return false; }
diff --git a/src/devices/bus/wangpc/wdc.cpp b/src/devices/bus/wangpc/wdc.cpp
index 6dd36b7d545..0f2598541ce 100644
--- a/src/devices/bus/wangpc/wdc.cpp
+++ b/src/devices/bus/wangpc/wdc.cpp
@@ -173,7 +173,7 @@ void wangpc_wdc_device::device_reset()
// wangpcbus_mrdc_r - memory read
//-------------------------------------------------
-uint16_t wangpc_wdc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask)
+uint16_t wangpc_wdc_device::wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -185,7 +185,7 @@ uint16_t wangpc_wdc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset
// wangpcbus_amwc_w - memory write
//-------------------------------------------------
-void wangpc_wdc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data)
+void wangpc_wdc_device::wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data)
{
}
@@ -194,7 +194,7 @@ void wangpc_wdc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, ui
// wangpcbus_iorc_r - I/O read
//-------------------------------------------------
-uint16_t wangpc_wdc_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask)
+uint16_t wangpc_wdc_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0xffff;
@@ -228,7 +228,7 @@ uint16_t wangpc_wdc_device::wangpcbus_iorc_r(address_space &space, offs_t offset
// wangpcbus_aiowc_w - I/O write
//-------------------------------------------------
-void wangpc_wdc_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data)
+void wangpc_wdc_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data)
{
if (sad(offset) && ACCESSING_BITS_0_7)
{
@@ -263,7 +263,7 @@ void wangpc_wdc_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, u
// wangpcbus_dack_r - DMA acknowledge read
//-------------------------------------------------
-uint8_t wangpc_wdc_device::wangpcbus_dack_r(address_space &space, int line)
+uint8_t wangpc_wdc_device::wangpcbus_dack_r(int line)
{
return 0;
}
@@ -273,7 +273,7 @@ uint8_t wangpc_wdc_device::wangpcbus_dack_r(address_space &space, int line)
// wangpcbus_dack_r - DMA acknowledge write
//-------------------------------------------------
-void wangpc_wdc_device::wangpcbus_dack_w(address_space &space, int line, uint8_t data)
+void wangpc_wdc_device::wangpcbus_dack_w(int line, uint8_t data)
{
}
@@ -325,11 +325,11 @@ WRITE8_MEMBER( wangpc_wdc_device::status_w )
}
-READ8_MEMBER( wangpc_wdc_device::ctc_ch0_r ) { return m_ctc->read(space, 0); }
-WRITE8_MEMBER( wangpc_wdc_device::ctc_ch0_w ) { m_ctc->write(space, 0, data); }
-READ8_MEMBER( wangpc_wdc_device::ctc_ch1_r ) { return m_ctc->read(space, 1); }
-WRITE8_MEMBER( wangpc_wdc_device::ctc_ch1_w ) { m_ctc->write(space, 1, data); }
-READ8_MEMBER( wangpc_wdc_device::ctc_ch2_r ) { return m_ctc->read(space, 2); }
-WRITE8_MEMBER( wangpc_wdc_device::ctc_ch2_w ) { m_ctc->write(space, 2, data); }
-READ8_MEMBER( wangpc_wdc_device::ctc_ch3_r ) { return m_ctc->read(space, 3); }
-WRITE8_MEMBER( wangpc_wdc_device::ctc_ch3_w ) { m_ctc->write(space, 3, data); }
+READ8_MEMBER( wangpc_wdc_device::ctc_ch0_r ) { return m_ctc->read(machine().dummy_space(), 0); }
+WRITE8_MEMBER( wangpc_wdc_device::ctc_ch0_w ) { m_ctc->write(machine().dummy_space(), 0, data); }
+READ8_MEMBER( wangpc_wdc_device::ctc_ch1_r ) { return m_ctc->read(machine().dummy_space(), 1); }
+WRITE8_MEMBER( wangpc_wdc_device::ctc_ch1_w ) { m_ctc->write(machine().dummy_space(), 1, data); }
+READ8_MEMBER( wangpc_wdc_device::ctc_ch2_r ) { return m_ctc->read(machine().dummy_space(), 2); }
+WRITE8_MEMBER( wangpc_wdc_device::ctc_ch2_w ) { m_ctc->write(machine().dummy_space(), 2, data); }
+READ8_MEMBER( wangpc_wdc_device::ctc_ch3_r ) { return m_ctc->read(machine().dummy_space(), 3); }
+WRITE8_MEMBER( wangpc_wdc_device::ctc_ch3_w ) { m_ctc->write(machine().dummy_space(), 3, data); }
diff --git a/src/devices/bus/wangpc/wdc.h b/src/devices/bus/wangpc/wdc.h
index e270a961750..c945ba6707d 100644
--- a/src/devices/bus/wangpc/wdc.h
+++ b/src/devices/bus/wangpc/wdc.h
@@ -39,12 +39,12 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
// device_wangpcbus_card_interface overrides
- virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) override;
- virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override;
- virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override;
- virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override;
- virtual uint8_t wangpcbus_dack_r(address_space &space, int line) override;
- virtual void wangpcbus_dack_w(address_space &space, int line, uint8_t data) override;
+ virtual uint16_t wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) override;
+ virtual void wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override;
+ virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override;
+ virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override;
+ virtual uint8_t wangpcbus_dack_r(int line) override;
+ virtual void wangpcbus_dack_w(int line, uint8_t data) override;
virtual bool wangpcbus_have_dack(int line) override;
private:
diff --git a/src/devices/cpu/i386/cpuidmsrs.hxx b/src/devices/cpu/i386/cpuidmsrs.hxx
index 66a49708d86..6163dd7257f 100644
--- a/src/devices/cpu/i386/cpuidmsrs.hxx
+++ b/src/devices/cpu/i386/cpuidmsrs.hxx
@@ -280,15 +280,15 @@ uint64_t athlonxp_device::opcode_rdmsr(bool &valid_msr)
// 39-12 PhyBase27-0 - Base address for this memory range
/* Format of type field:
Bits 2-0 specify the memory type with the following encoding
- 0 UC Uncacheable
- 1 WC Write Combining
- 4 WT Write Through
- 5 WP Write Protect
- 6 WB Write Back
- 7 UC Uncacheable used only in PAT register
- Bit 3 WrMem 1 write to memory 0 write to mmio, present only in fixed range MTRRs
- Bit 4 RdMem 1 read from memory 0 read from mmio, present only in fixed range MTRRs
- Other bits are unused
+ 0 UC Uncacheable
+ 1 WC Write Combining
+ 4 WT Write Through
+ 5 WP Write Protect
+ 6 WB Write Back
+ 7 UC Uncacheable used only in PAT register
+ Bit 3 WrMem 1 write to memory 0 write to mmio, present only in fixed range MTRRs
+ Bit 4 RdMem 1 read from memory 0 read from mmio, present only in fixed range MTRRs
+ Other bits are unused
*/
break;
case 0x201: // MTRRphysMask0-7
diff --git a/src/devices/cpu/i86/i186.h b/src/devices/cpu/i86/i186.h
index 62743f4c4b1..f16f1fac8cf 100644
--- a/src/devices/cpu/i86/i186.h
+++ b/src/devices/cpu/i86/i186.h
@@ -132,7 +132,7 @@ private:
dma_state m_dma[2];
intr_state m_intr;
mem_state m_mem;
- bool m_last_dma;
+ bool m_last_dma;
static const device_timer_id TIMER_INT0 = 0;
static const device_timer_id TIMER_INT1 = 1;
diff --git a/src/devices/machine/8042kbdc.h b/src/devices/machine/8042kbdc.h
index 41ea07e71ba..38bdbe3814a 100644
--- a/src/devices/machine/8042kbdc.h
+++ b/src/devices/machine/8042kbdc.h
@@ -115,7 +115,7 @@ private:
uint16_t m_mouse_y;
uint8_t m_mouse_btn;
- emu_timer * m_update_timer;
+ emu_timer * m_update_timer;
DECLARE_WRITE_LINE_MEMBER( keyboard_w );
};
diff --git a/src/devices/machine/mm58167.cpp b/src/devices/machine/mm58167.cpp
index 22b49f4a7dd..f226590e9d2 100644
--- a/src/devices/machine/mm58167.cpp
+++ b/src/devices/machine/mm58167.cpp
@@ -180,7 +180,7 @@ void mm58167_device::update_rtc()
m_milliseconds = (bcd_to_integer(m_regs[R_CNT_HUNDTENTHS]) * 10) + (bcd_to_integer(m_regs[R_CNT_MILLISECONDS] >> 4) % 10);
}
-READ8_MEMBER(mm58167_device::read)
+uint8_t mm58167_device::read(offs_t offset)
{
// printf("read reg %x = %02x\n", offset, m_regs[offset]);
@@ -196,7 +196,7 @@ READ8_MEMBER(mm58167_device::read)
return m_regs[offset];
}
-WRITE8_MEMBER(mm58167_device::write)
+void mm58167_device::write(offs_t offset, uint8_t data)
{
// printf("%02x to reg %x\n", data, offset);
diff --git a/src/devices/machine/mm58167.h b/src/devices/machine/mm58167.h
index 523f31ea326..c12b151b676 100644
--- a/src/devices/machine/mm58167.h
+++ b/src/devices/machine/mm58167.h
@@ -27,8 +27,8 @@ public:
// construction/destruction
mm58167_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_READ8_MEMBER(read);
- DECLARE_WRITE8_MEMBER(write);
+ uint8_t read(offs_t offset);
+ void write(offs_t offset, uint8_t data);
auto irq() { return m_irq_w.bind(); }
diff --git a/src/devices/machine/nscsi_cd.cpp b/src/devices/machine/nscsi_cd.cpp
index 06ecb71bb04..0446c600e9f 100644
--- a/src/devices/machine/nscsi_cd.cpp
+++ b/src/devices/machine/nscsi_cd.cpp
@@ -607,4 +607,4 @@ bool nscsi_cdrom_sgi_device::scsi_command_done(uint8_t command, uint8_t length)
default:
return nscsi_full_device::scsi_command_done(command, length);
}
-} \ No newline at end of file
+}
diff --git a/src/devices/machine/spg110.cpp b/src/devices/machine/spg110.cpp
index d1d4f9cfabd..df614deb314 100644
--- a/src/devices/machine/spg110.cpp
+++ b/src/devices/machine/spg110.cpp
@@ -5,9 +5,9 @@
SunPlus SPG110-series SoC peripheral emulation
0032xx looks like it could be the same as 003dxx on spg2xx
- but the video seems to have differences, and data
- is fetched from private buffers filled by DMA instead of
- main space? tile attributes different? palette format different
+ but the video seems to have differences, and data
+ is fetched from private buffers filled by DMA instead of
+ main space? tile attributes different? palette format different
**********************************************************************/
@@ -151,7 +151,7 @@ void spg110_device::blit_page(const rectangle &cliprect, uint32_t scanline, int
blit<FlipXOn>(cliprect, tile_scanline, xx, yy, attr, ctrl, bitmap_addr, tile);
else
blit<FlipXOff>(cliprect, tile_scanline, xx, yy, attr, ctrl, bitmap_addr, tile);
-
+
}
}
@@ -214,11 +214,11 @@ GFXDECODE_END
void spg110_device::device_add_mconfig(machine_config &config)
{
-// PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100);
-// PALETTE(config, m_palette).set_format(palette_device::RGB_565, 0x100);
-// PALETTE(config, m_palette).set_format(palette_device::IRGB_4444, 0x100);
-// PALETTE(config, m_palette).set_format(palette_device::RGBI_4444, 0x100);
-// PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100);
+// PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100);
+// PALETTE(config, m_palette).set_format(palette_device::RGB_565, 0x100);
+// PALETTE(config, m_palette).set_format(palette_device::IRGB_4444, 0x100);
+// PALETTE(config, m_palette).set_format(palette_device::RGBI_4444, 0x100);
+// PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100);
PALETTE(config, m_palette, palette_device::BLACK, 256);
GFXDECODE(config, m_gfxdecode, m_palette, gfx);
@@ -337,7 +337,7 @@ WRITE16_MEMBER(spg110_device::dma_len_trigger_w)
uint16_t val = mem.read_word(source);
this->space(0).write_word(dest * 2, val, 0xffff);
-
+
source+=m_dma_src_step;
dest+=m_dma_dst_step;
}
@@ -436,14 +436,14 @@ WRITE16_MEMBER(spg110_device::tmap1_regs_w)
void spg110_device::map(address_map &map)
{
map(0x000000, 0x000fff).ram();
-
-
+
+
// vregs are at 2000?
map(0x002010, 0x002015).rw(FUNC(spg110_device::tmap0_regs_r), FUNC(spg110_device::tmap0_regs_w));
map(0x002016, 0x00201b).rw(FUNC(spg110_device::tmap1_regs_r), FUNC(spg110_device::tmap1_regs_w));
map(0x00201c, 0x00201c).w(FUNC(spg110_device::spg110_201c_w));
-
+
map(0x002020, 0x002020).w(FUNC(spg110_device::spg110_2020_w));
map(0x002028, 0x002028).rw(FUNC(spg110_device::spg110_2028_r), FUNC(spg110_device::spg110_2028_w));
@@ -484,7 +484,7 @@ void spg110_device::map(address_map &map)
map(0x00205d, 0x00205d).w(FUNC(spg110_device::spg110_205d_w));
map(0x00205e, 0x00205e).w(FUNC(spg110_device::spg110_205e_w));
map(0x00205f, 0x00205f).w(FUNC(spg110_device::spg110_205f_w));
-
+
//map(0x002010, 0x00205f).ram();
// everything (dma? and interrupt flag?!)
@@ -498,9 +498,9 @@ void spg110_device::map(address_map &map)
map(0x002068, 0x002068).w(FUNC(spg110_device::dma_src_step_w));
map(0x002200, 0x0022ff).ram(); // looks like per-pen brightness or similar? strange because palette isn't memory mapped here
-
+
map(0x003000, 0x00307f).ram(); // sound registers? seems to be 8 long entries, only uses up to 0x7f?
- map(0x003080, 0x0030ff).ram();
+ map(0x003080, 0x0030ff).ram();
map(0x003100, 0x003100).w(FUNC(spg110_device::spg110_3100_w));
map(0x003101, 0x003101).w(FUNC(spg110_device::spg110_3101_w));
@@ -548,7 +548,7 @@ void spg110_device::map_video(address_map &map)
map(0x04000, 0x04fff).ram(); // seems to be 3 blocks, almost certainly spritelist
-// map(0x08000, 0x081ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // probably? format unknown tho
+// map(0x08000, 0x081ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // probably? format unknown tho
map(0x08000, 0x081ff).ram().share("palram");
}
diff --git a/src/devices/machine/timekpr.cpp b/src/devices/machine/timekpr.cpp
index 614f071ade7..f7cfed5451c 100644
--- a/src/devices/machine/timekpr.cpp
+++ b/src/devices/machine/timekpr.cpp
@@ -351,7 +351,7 @@ TIMER_CALLBACK_MEMBER(timekeeper_device::watchdog_callback)
m_data[m_offset_flags] |= FLAGS_WDF;
// WDS (bit 7) selects callback
if (m_data[m_offset_watchdog] & 0x80)
- {
+ {
// Clear watchdog register
m_data[m_offset_watchdog] = 0;
m_reset_cb(ASSERT_LINE);
diff --git a/src/devices/machine/tube.cpp b/src/devices/machine/tube.cpp
index aac084a3158..a53c05ac38c 100644
--- a/src/devices/machine/tube.cpp
+++ b/src/devices/machine/tube.cpp
@@ -79,7 +79,7 @@ void tube_device::update_interrupts()
m_drq_handler(!BIT(m_r1stat, 4) && ((m_hp3pos > BIT(m_r1stat, 4)) || (m_ph3pos == 0)) ? ASSERT_LINE : CLEAR_LINE);
}
-READ8_MEMBER(tube_device::host_r)
+uint8_t tube_device::host_r(offs_t offset)
{
uint8_t data = 0xfe;
@@ -143,7 +143,7 @@ READ8_MEMBER(tube_device::host_r)
return data;
}
-WRITE8_MEMBER(tube_device::host_w)
+void tube_device::host_w(offs_t offset, uint8_t data)
{
switch (offset & 0x07)
{
@@ -197,7 +197,7 @@ WRITE8_MEMBER(tube_device::host_w)
update_interrupts();
}
-READ8_MEMBER(tube_device::parasite_r)
+uint8_t tube_device::parasite_r(offs_t offset)
{
uint8_t data = 0x00;
@@ -265,7 +265,7 @@ READ8_MEMBER(tube_device::parasite_r)
return data;
}
-WRITE8_MEMBER(tube_device::parasite_w)
+void tube_device::parasite_w(offs_t offset, uint8_t data)
{
switch (offset & 0x07)
{
diff --git a/src/devices/machine/tube.h b/src/devices/machine/tube.h
index c8d94b1c7a7..384cf29b8d9 100644
--- a/src/devices/machine/tube.h
+++ b/src/devices/machine/tube.h
@@ -32,10 +32,10 @@ public:
auto pirq_handler() { return m_pirq_handler.bind(); }
auto drq_handler() { return m_drq_handler.bind(); }
- DECLARE_READ8_MEMBER(host_r);
- DECLARE_WRITE8_MEMBER(host_w);
- DECLARE_READ8_MEMBER(parasite_r);
- DECLARE_WRITE8_MEMBER(parasite_w);
+ uint8_t host_r(offs_t offset);
+ void host_w(offs_t offset, uint8_t data);
+ uint8_t parasite_r(offs_t offset);
+ void parasite_w(offs_t offset, uint8_t data);
protected:
// device-level overrides
diff --git a/src/devices/sound/ay8910.cpp b/src/devices/sound/ay8910.cpp
index 00e9f324f87..9ee02834f67 100644
--- a/src/devices/sound/ay8910.cpp
+++ b/src/devices/sound/ay8910.cpp
@@ -512,54 +512,54 @@ Yamaha YMZ294: limited info: 0 I/O port
OKI M5255, Winbond WF19054, JFC 95101, File KC89C72, Toshiba T7766A : differences to be listed
AY8930 Expanded mode registers :
- Bank Register Bits
- A 0 xxxx xxxx Channel A Tone period fine tune
- A 1 xxxx xxxx Channel A Tone period coarse tune
- A 2 xxxx xxxx Channel B Tone period fine tune
- A 3 xxxx xxxx Channel B Tone period coarse tune
- A 4 xxxx xxxx Channel C Tone period fine tune
- A 5 xxxx xxxx Channel C Tone period coarse tune
- A 6 xxxx xxxx Noise period
- A 7 x--- ---- I/O Port B input(0) / output(1)
- -x-- ---- I/O Port A input(0) / output(1)
- --x- ---- Channel C Noise enable(0) / disable(1)
- ---x ---- Channel B Noise enable(0) / disable(1)
- ---- x--- Channel A Noise enable(0) / disable(1)
- ---- -x-- Channel C Tone enable(0) / disable(1)
- ---- --x- Channel B Tone enable(0) / disable(1)
- ---- ---x Channel A Tone enable(0) / disable(1)
- A 8 --x- ---- Channel A Envelope mode
- ---x xxxx Channel A Tone volume
- A 9 --x- ---- Channel B Envelope mode
- ---x xxxx Channel B Tone volume
- A A --x- ---- Channel C Envelope mode
- ---x xxxx Channel C Tone volume
- A B xxxx xxxx Channel A Envelope period fine tune
- A C xxxx xxxx Channel A Envelope period coarse tune
- A D 101- ---- 101 = Expanded mode enable, other AY-3-8910A Compatiblity mode
- ---0 ---- 0 for Register Bank A
- ---- xxxx Channel A Envelope Shape/Cycle
- A E xxxx xxxx 8 bit Parallel I/O on Port A
- A F xxxx xxxx 8 bit Parallel I/O on Port B
-
- B 0 xxxx xxxx Channel B Envelope period fine tune
- B 1 xxxx xxxx Channel B Envelope period coarse tune
- B 2 xxxx xxxx Channel C Envelope period fine tune
- B 3 xxxx xxxx Channel C Envelope period coarse tune
- B 4 ---- xxxx Channel B Envelope Shape/Cycle
- B 5 ---- xxxx Channel C Envelope Shape/Cycle
- B 6 ---- xxxx Channel A Duty Cycle
- B 7 ---- xxxx Channel B Duty Cycle
- B 8 ---- xxxx Channel C Duty Cycle
- B 9 xxxx xxxx Noise "And" Mask
- B A xxxx xxxx Noise "Or" Mask
- B B Reserved (Read as 0)
- B C Reserved (Read as 0)
- B D 101- ---- 101 = Expanded mode enable, other AY-3-8910A Compatiblity mode
- ---1 ---- 1 for Register Bank B
- ---- xxxx Channel A Envelope Shape
- B E Reserved (Read as 0)
- B F Test (Function unknown)
+ Bank Register Bits
+ A 0 xxxx xxxx Channel A Tone period fine tune
+ A 1 xxxx xxxx Channel A Tone period coarse tune
+ A 2 xxxx xxxx Channel B Tone period fine tune
+ A 3 xxxx xxxx Channel B Tone period coarse tune
+ A 4 xxxx xxxx Channel C Tone period fine tune
+ A 5 xxxx xxxx Channel C Tone period coarse tune
+ A 6 xxxx xxxx Noise period
+ A 7 x--- ---- I/O Port B input(0) / output(1)
+ -x-- ---- I/O Port A input(0) / output(1)
+ --x- ---- Channel C Noise enable(0) / disable(1)
+ ---x ---- Channel B Noise enable(0) / disable(1)
+ ---- x--- Channel A Noise enable(0) / disable(1)
+ ---- -x-- Channel C Tone enable(0) / disable(1)
+ ---- --x- Channel B Tone enable(0) / disable(1)
+ ---- ---x Channel A Tone enable(0) / disable(1)
+ A 8 --x- ---- Channel A Envelope mode
+ ---x xxxx Channel A Tone volume
+ A 9 --x- ---- Channel B Envelope mode
+ ---x xxxx Channel B Tone volume
+ A A --x- ---- Channel C Envelope mode
+ ---x xxxx Channel C Tone volume
+ A B xxxx xxxx Channel A Envelope period fine tune
+ A C xxxx xxxx Channel A Envelope period coarse tune
+ A D 101- ---- 101 = Expanded mode enable, other AY-3-8910A Compatiblity mode
+ ---0 ---- 0 for Register Bank A
+ ---- xxxx Channel A Envelope Shape/Cycle
+ A E xxxx xxxx 8 bit Parallel I/O on Port A
+ A F xxxx xxxx 8 bit Parallel I/O on Port B
+
+ B 0 xxxx xxxx Channel B Envelope period fine tune
+ B 1 xxxx xxxx Channel B Envelope period coarse tune
+ B 2 xxxx xxxx Channel C Envelope period fine tune
+ B 3 xxxx xxxx Channel C Envelope period coarse tune
+ B 4 ---- xxxx Channel B Envelope Shape/Cycle
+ B 5 ---- xxxx Channel C Envelope Shape/Cycle
+ B 6 ---- xxxx Channel A Duty Cycle
+ B 7 ---- xxxx Channel B Duty Cycle
+ B 8 ---- xxxx Channel C Duty Cycle
+ B 9 xxxx xxxx Noise "And" Mask
+ B A xxxx xxxx Noise "Or" Mask
+ B B Reserved (Read as 0)
+ B C Reserved (Read as 0)
+ B D 101- ---- 101 = Expanded mode enable, other AY-3-8910A Compatiblity mode
+ ---1 ---- 1 for Register Bank B
+ ---- xxxx Channel A Envelope Shape
+ B E Reserved (Read as 0)
+ B F Test (Function unknown)
Decaps:
AY-3-8914 - http://siliconpr0n.org/map/gi/ay-3-8914/mz_mit20x/
diff --git a/src/devices/sound/ics2115.cpp b/src/devices/sound/ics2115.cpp
index c5cfea8e94a..9ce19fe649f 100644
--- a/src/devices/sound/ics2115.cpp
+++ b/src/devices/sound/ics2115.cpp
@@ -885,8 +885,8 @@ u16 ics2115_device::word_r(offs_t offset, u16 mem_mask)
break;
/*
case 3:
- TODO : used for byte size only;
- break;
+ TODO : used for byte size only;
+ break;
*/
default:
#ifdef ICS2115_DEBUG
@@ -911,8 +911,8 @@ void ics2115_device::word_w(offs_t offset, u16 data, u16 mem_mask)
break;
/*
case 3:
- TODO : used for byte size only;
- break;
+ TODO : used for byte size only;
+ break;
*/
default:
#ifdef ICS2115_DEBUG
diff --git a/src/devices/sound/vrc6.cpp b/src/devices/sound/vrc6.cpp
index e632cce1cdb..29729fc9fcc 100644
--- a/src/devices/sound/vrc6.cpp
+++ b/src/devices/sound/vrc6.cpp
@@ -218,7 +218,7 @@ void vrc6snd_device::sound_stream_update(sound_stream &stream, stream_sample_t *
// write - write to the chip's registers
//---------------------------------------
-WRITE8_MEMBER( vrc6snd_device::write )
+void vrc6snd_device::write(offs_t offset, uint8_t data)
{
switch (offset >> 8)
{
diff --git a/src/devices/sound/vrc6.h b/src/devices/sound/vrc6.h
index dbcd5152c3b..a24d34a90c4 100644
--- a/src/devices/sound/vrc6.h
+++ b/src/devices/sound/vrc6.h
@@ -24,7 +24,7 @@ public:
// construction/destruction
vrc6snd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_WRITE8_MEMBER(write);
+ void write(offs_t offset, uint8_t data);
protected:
// device-level overrides
diff --git a/src/devices/video/crt9028.cpp b/src/devices/video/crt9028.cpp
index 8126e5c6344..31c0c748420 100644
--- a/src/devices/video/crt9028.cpp
+++ b/src/devices/video/crt9028.cpp
@@ -106,7 +106,7 @@ crt9028_000_device::crt9028_000_device(const machine_config &mconfig, const char
24, 10, false,
20, 4, 8,
72, 30, 10,
- 2, 8, 9,
+ 2, 8, 9,
0x3c0, 0x038, 0x007, 0x0f,
0x3e0, 0x020, 0x03f, 0x020,
0x10, 0xff, 0x10, 0xff)
diff --git a/src/devices/video/upd7220.cpp b/src/devices/video/upd7220.cpp
index 75cc9daa01b..d8697222485 100644
--- a/src/devices/video/upd7220.cpp
+++ b/src/devices/video/upd7220.cpp
@@ -1448,7 +1448,7 @@ void upd7220_device::continue_command()
// read -
//-------------------------------------------------
-READ8_MEMBER( upd7220_device::read )
+uint8_t upd7220_device::read(offs_t offset)
{
uint8_t data;
@@ -1479,7 +1479,7 @@ READ8_MEMBER( upd7220_device::read )
// write -
//-------------------------------------------------
-WRITE8_MEMBER( upd7220_device::write )
+void upd7220_device::write(offs_t offset, uint8_t data)
{
if (offset & 1)
{
@@ -1502,7 +1502,7 @@ WRITE8_MEMBER( upd7220_device::write )
// dack_r -
//-------------------------------------------------
-READ8_MEMBER( upd7220_device::dack_r )
+uint8_t upd7220_device::dack_r()
{
return 0;
}
@@ -1512,7 +1512,7 @@ READ8_MEMBER( upd7220_device::dack_r )
// dack_w -
//-------------------------------------------------
-WRITE8_MEMBER( upd7220_device::dack_w )
+void upd7220_device::dack_w(uint8_t data)
{
}
diff --git a/src/devices/video/upd7220.h b/src/devices/video/upd7220.h
index 43748f7fa63..7c7370c0cd9 100644
--- a/src/devices/video/upd7220.h
+++ b/src/devices/video/upd7220.h
@@ -109,11 +109,11 @@ public:
auto vsync_wr_callback() { return m_write_vsync.bind(); }
auto blank_wr_callback() { return m_write_blank.bind(); }
- DECLARE_READ8_MEMBER( read );
- DECLARE_WRITE8_MEMBER( write );
+ uint8_t read(offs_t offset);
+ void write(offs_t offset, uint8_t data);
- DECLARE_READ8_MEMBER( dack_r );
- DECLARE_WRITE8_MEMBER( dack_w );
+ uint8_t dack_r();
+ void dack_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( ext_sync_w );
DECLARE_WRITE_LINE_MEMBER( lpen_w );
diff --git a/src/emu/divideo.h b/src/emu/divideo.h
index 1b6f48104bd..626d5bc66b4 100644
--- a/src/emu/divideo.h
+++ b/src/emu/divideo.h
@@ -19,15 +19,6 @@
//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_VIDEO_SET_SCREEN(_tag) \
- dynamic_cast<device_video_interface &>(*device).set_screen(_tag);
-
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/emu/screen.h b/src/emu/screen.h
index edf9629c21a..a68893b8ba2 100644
--- a/src/emu/screen.h
+++ b/src/emu/screen.h
@@ -183,6 +183,12 @@ public:
set_type(type);
set_color(color);
}
+ screen_device(const machine_config &mconfig, const char *tag, device_t *owner, const char *region)
+ : screen_device(mconfig, tag, owner, u32(0))
+ {
+ set_type(SCREEN_TYPE_SVG);
+ set_svg_region(region);
+ }
~screen_device();
// configuration readers
@@ -532,11 +538,6 @@ typedef device_type_iterator<screen_device> screen_device_iterator;
#define MCFG_SCREEN_TYPE(_type) \
downcast<screen_device &>(*device).set_type(SCREEN_TYPE_##_type);
-#define MCFG_SCREEN_SVG_ADD(_tag, _region) \
- MCFG_DEVICE_ADD(_tag, SCREEN, 0) \
- MCFG_SCREEN_TYPE(SVG) \
- downcast<screen_device &>(*device).set_svg_region(_region);
-
#define MCFG_SCREEN_RAW_PARAMS(_pixclock, _htotal, _hbend, _hbstart, _vtotal, _vbend, _vbstart) \
downcast<screen_device &>(*device).set_raw(_pixclock, _htotal, _hbend, _hbstart, _vtotal, _vbend, _vbstart);
@@ -551,8 +552,6 @@ typedef device_type_iterator<screen_device> screen_device_iterator;
#define MCFG_SCREEN_VISIBLE_AREA(_minx, _maxx, _miny, _maxy) \
downcast<screen_device &>(*device).set_visarea(_minx, _maxx, _miny, _maxy);
-#define MCFG_SCREEN_DEFAULT_POSITION(_xscale, _xoffs, _yscale, _yoffs) \
- downcast<screen_device &>(*device).set_default_position(_xscale, _xoffs, _yscale, _yoffs);
#define MCFG_SCREEN_UPDATE_DRIVER(_class, _method) \
downcast<screen_device &>(*device).set_screen_update(&_class::_method, #_class "::" #_method);
#define MCFG_SCREEN_UPDATE_DEVICE(_device, _class, _method) \
diff --git a/src/lib/netlist/analog/nld_bjt.cpp b/src/lib/netlist/analog/nld_bjt.cpp
index 06835009f50..0f50a9103fb 100644
--- a/src/lib/netlist/analog/nld_bjt.cpp
+++ b/src/lib/netlist/analog/nld_bjt.cpp
@@ -293,10 +293,10 @@ NETLIB_RESET(QBJT_switch)
m_state_on = 0;
- m_RB.set(exec().gmin(), 0.0, 0.0);
- m_RC.set(exec().gmin(), 0.0, 0.0);
+ m_RB.set_G_V_I(exec().gmin(), 0.0, 0.0);
+ m_RC.set_G_V_I(exec().gmin(), 0.0, 0.0);
- m_BC_dummy.set(exec().gmin() / 10.0, 0.0, 0.0);
+ m_BC_dummy.set_G_V_I(exec().gmin() / 10.0, 0.0, 0.0);
}
@@ -351,8 +351,8 @@ NETLIB_UPDATE_TERMINALS(QBJT_switch)
const nl_double gc = new_state ? m_gC : exec().gmin();
const nl_double v = new_state ? m_V * m : 0;
- m_RB.set(gb, v, 0.0);
- m_RC.set(gc, 0.0, 0.0);
+ m_RB.set_G_V_I(gb, v, 0.0);
+ m_RC.set_G_V_I(gc, 0.0, 0.0);
m_state_on = new_state;
}
}
diff --git a/src/lib/netlist/analog/nlid_fourterm.cpp b/src/lib/netlist/analog/nlid_fourterm.cpp
index 9e5c2e46932..7fa6a2f3809 100644
--- a/src/lib/netlist/analog/nlid_fourterm.cpp
+++ b/src/lib/netlist/analog/nlid_fourterm.cpp
@@ -26,14 +26,14 @@ NETLIB_RESET(VCCS)
const nl_double m_mult = m_G() * m_gfac; // 1.0 ==> 1V ==> 1A
const nl_double GI = plib::constants<nl_double>::one() / m_RI();
- m_IP.set(GI);
- m_IN.set(GI);
+ m_IP.set_conductivity(GI);
+ m_IN.set_conductivity(GI);
- m_OP.set(m_mult, plib::constants<nl_double>::zero());
- m_OP1.set(-m_mult, plib::constants<nl_double>::zero());
+ m_OP.set_go_gt(-m_mult, plib::constants<nl_double>::zero());
+ m_OP1.set_go_gt(m_mult, plib::constants<nl_double>::zero());
- m_ON.set(-m_mult, plib::constants<nl_double>::zero());
- m_ON1.set(m_mult, plib::constants<nl_double>::zero());
+ m_ON.set_go_gt(m_mult, plib::constants<nl_double>::zero());
+ m_ON1.set_go_gt(-m_mult, plib::constants<nl_double>::zero());
}
NETLIB_UPDATE(VCCS)
@@ -79,11 +79,11 @@ NETLIB_UPDATE_TERMINALS(LVCCS)
const nl_double beta = m_mult * (1.0 - X*X);
const nl_double I = m_cur_limit() * X - beta * m_vi;
- m_OP.set(beta, plib::constants<nl_double>::zero(), I);
- m_OP1.set(-beta, plib::constants<nl_double>::zero());
+ m_OP.set_go_gt_I(-beta, plib::constants<nl_double>::zero(), I);
+ m_OP1.set_go_gt(beta, plib::constants<nl_double>::zero());
- m_ON.set(-beta, plib::constants<nl_double>::zero(), -I);
- m_ON1.set(beta, plib::constants<nl_double>::zero());
+ m_ON.set_go_gt_I(beta, plib::constants<nl_double>::zero(), -I);
+ m_ON1.set_go_gt(-beta, plib::constants<nl_double>::zero());
}
// ----------------------------------------------------------------------------------------
@@ -109,8 +109,8 @@ NETLIB_RESET(VCVS)
m_gfac = plib::constants<nl_double>::one() / m_RO();
NETLIB_NAME(VCCS)::reset();
- m_OP2.set(plib::constants<nl_double>::one() / m_RO());
- m_ON2.set(plib::constants<nl_double>::one() / m_RO());
+ m_OP2.set_conductivity(plib::constants<nl_double>::one() / m_RO());
+ m_ON2.set_conductivity(plib::constants<nl_double>::one() / m_RO());
}
} //namespace analog
diff --git a/src/lib/netlist/analog/nlid_fourterm.h b/src/lib/netlist/analog/nlid_fourterm.h
index 0b0f75d378b..5ca6a747116 100644
--- a/src/lib/netlist/analog/nlid_fourterm.h
+++ b/src/lib/netlist/analog/nlid_fourterm.h
@@ -44,7 +44,7 @@ namespace netlist {
, m_OP(*this, "OP", &m_IP)
, m_ON(*this, "ON", &m_IP)
, m_IP(*this, "IP", &m_IN) // <= this should be NULL and terminal be filtered out prior to solving...
- , m_IN(*this, "IN", &m_IP) // <= this should be NULL and terminal be filtered out prior to solving...
+ , m_IN(*this, "IN", &m_IP) // <= this should be NULL and terminal be filtered out prior to solving...
, m_OP1(*this, "_OP1", &m_IN)
, m_ON1(*this, "_ON1", &m_IN)
, m_gfac(1.0)
diff --git a/src/lib/netlist/analog/nlid_twoterm.cpp b/src/lib/netlist/analog/nlid_twoterm.cpp
index 9b79c323ba4..d5578ccd5bb 100644
--- a/src/lib/netlist/analog/nlid_twoterm.cpp
+++ b/src/lib/netlist/analog/nlid_twoterm.cpp
@@ -198,7 +198,7 @@ NETLIB_UPDATE_PARAM(POT2)
NETLIB_RESET(C)
{
// FIXME: Startup conditions
- set(exec().gmin(), 0.0, -5.0 / exec().gmin());
+ set_G_V_I(exec().gmin(), 0.0, -5.0 / exec().gmin());
//set(exec().gmin(), 0.0, 0.0);
}
@@ -255,7 +255,7 @@ NETLIB_RESET(D)
nl_double n = m_model.m_N;
m_D.set_param(Is, n, exec().gmin());
- set(m_D.G(), 0.0, m_D.Ieq());
+ set_G_V_I(m_D.G(), 0.0, m_D.Ieq());
}
NETLIB_UPDATE_PARAM(D)
diff --git a/src/lib/netlist/analog/nlid_twoterm.h b/src/lib/netlist/analog/nlid_twoterm.h
index 131504d86e4..06a4bc6e1d7 100644
--- a/src/lib/netlist/analog/nlid_twoterm.h
+++ b/src/lib/netlist/analog/nlid_twoterm.h
@@ -33,9 +33,9 @@
#ifndef NLID_TWOTERM_H_
#define NLID_TWOTERM_H_
-#include "plib/pfunction.h"
#include "netlist/nl_base.h"
#include "netlist/nl_setup.h"
+#include "plib/pfunction.h"
// -----------------------------------------------------------------------------
// Implementation
@@ -86,11 +86,11 @@ public:
void solve_later(netlist_time delay = netlist_time::from_nsec(1));
- void set(const nl_double G, const nl_double V, const nl_double I)
+ void set_G_V_I(const nl_double G, const nl_double V, const nl_double I)
{
/* GO, GT, I */
- m_P.set( G, G, ( V) * G - I);
- m_N.set( G, G, ( -V) * G + I);
+ m_P.set_go_gt_I( -G, G, ( V) * G - I);
+ m_N.set_go_gt_I( -G, G, ( -V) * G + I);
}
nl_double deltaV() const
@@ -98,12 +98,12 @@ public:
return m_P.net().Q_Analog() - m_N.net().Q_Analog();
}
- void set_mat(const nl_double a11, const nl_double a12, const nl_double r1,
- const nl_double a21, const nl_double a22, const nl_double r2)
+ void set_mat(const nl_double a11, const nl_double a12, const nl_double rhs1,
+ const nl_double a21, const nl_double a22, const nl_double rhs2)
{
/* GO, GT, I */
- m_P.set(-a12, a11, r1);
- m_N.set(-a21, a22, r2);
+ m_P.set_go_gt_I(a12, a11, rhs1);
+ m_N.set_go_gt_I(a21, a22, rhs2);
}
private:
@@ -420,18 +420,18 @@ public:
NETLIB_TIMESTEPI()
{
m_t += step;
- this->set(1.0 / m_R(),
+ this->set_G_V_I(1.0 / m_R(),
m_compiled.evaluate(std::vector<double>({m_t})),
0.0);
}
protected:
- // NETLIB_UPDATEI() { NETLIB_NAME(twoterm)::update(time); }
+ // NETLIB_UPDATEI() { NETLIB_NAME(twoterm)::update(time); }
NETLIB_RESETI()
{
NETLIB_NAME(twoterm)::reset();
- this->set(1.0 / m_R(), m_V(), 0.0);
+ this->set_G_V_I(1.0 / m_R(), m_V(), 0.0);
}
private:
diff --git a/src/lib/netlist/build/makefile b/src/lib/netlist/build/makefile
index f628e9eaed6..79c51b54bec 100644
--- a/src/lib/netlist/build/makefile
+++ b/src/lib/netlist/build/makefile
@@ -14,7 +14,7 @@ VSBUILD = $(SRC)/buildVS
DOC = $(SRC)/documentation
TIDY_DB = ../compile_commands.json
-TIDY_FLAGSX = -checks=*,google*,-hicpp*,-readability*,-fuchsia*,cert-*,-android-*,
+TIDY_FLAGSX = -checks=*,-google*,-hicpp*,-readability*,-fuchsia*,cert-*,-android-*,
TIDY_FLAGSX += -llvm-header-guard,-cppcoreguidelines-pro-type-reinterpret-cast,
TIDY_FLAGSX += -cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-owning-memory,
TIDY_FLAGSX += -modernize-use-default-member-init,-cppcoreguidelines-pro-bounds-constant-array-index,
@@ -232,10 +232,10 @@ maketree: $(sort $(OBJDIRS))
.PHONY: clang clang-5 mingw doc native
native:
- $(MAKE) CEXTRAFLAGS="-march=native -Wall -Wpedantic -Wsign-compare -Wextra "
+ $(MAKE) CEXTRAFLAGS="-march=native -msse4.2 -Wall -Wpedantic -Wsign-compare -Wextra "
clang:
- $(MAKE) CC=clang++-9 LD=clang++-9 CEXTRAFLAGS="-march=native -Weverything -Werror -Wno-unused-template -Wno-non-virtual-dtor -Wno-unreachable-code -Wno-padded -Wno-weak-vtables -Wno-missing-variable-declarations -Wconversion -Wno-c++98-compat -Wno-float-equal -Wno-global-constructors -Wno-c++98-compat-pedantic -Wno-format-nonliteral -Wweak-template-vtables -Wno-exit-time-destructors"
+ $(MAKE) CC=clang++-9 LD=clang++-9 CEXTRAFLAGS="-march=native -Weverything -Werror -Wno-padded -Wno-weak-vtables -Wno-unused-template -Wno-missing-variable-declarations -Wno-float-equal -Wconversion -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-format-nonliteral -Wno-exit-time-destructors"
clang-5:
$(MAKE) CC=clang++-5.0 LD=clang++-5.0 CEXTRAFLAGS="-march=native -Weverything -Werror -Wno-inconsistent-missing-destructor-override -Wno-unreachable-code -Wno-padded -Wno-weak-vtables -Wno-missing-variable-declarations -Wconversion -Wno-c++98-compat -Wno-float-equal -Wno-global-constructors -Wno-c++98-compat-pedantic -Wno-format-nonliteral -Wno-weak-template-vtables -Wno-exit-time-destructors"
@@ -252,6 +252,10 @@ tidy_db: compile_commands_prefix $(ALL_TIDY_FILES) compile_commands_postfix
# FIXME: -Wno-weak-vtables -Wno-missing-variable-declarations -Wno-conversion -Wno-exit-time-destructors
# FIXME: -Winconsistent-missing-destructor-override : c++ community has diverging opinions on this https://github.com/isocpp/CppCoreGuidelines/issues/721
# FIXME: -Wunreachable-code : False warnings, this a documented clang bug: https://llvm.org/bugs/show_bug.cgi?id=28994
+# -Wweak-template-vtables
+#
+# These have to be given:
+# -Wno-missing-variable-declarations : Device factory code, on purpose
mingw:
$(MAKE) CEXTRAFLAGS="-DUNICODE -D_UNICODE -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN" \
diff --git a/src/lib/netlist/devices/nld_2102A.cpp b/src/lib/netlist/devices/nld_2102A.cpp
index d256a1e244d..0ec7132b401 100644
--- a/src/lib/netlist/devices/nld_2102A.cpp
+++ b/src/lib/netlist/devices/nld_2102A.cpp
@@ -97,7 +97,7 @@ namespace netlist
m_ram[i] = 0;
}
- NETLIB_DEVICE_IMPL(2102A, "RAM_2102A", "+CEQ,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+RWQ,+DI")
+ NETLIB_DEVICE_IMPL(2102A, "RAM_2102A", "+CEQ,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+RWQ,+DI")
NETLIB_DEVICE_IMPL(2102A_dip,"RAM_2102A_DIP","")
} //namespace devices
diff --git a/src/lib/netlist/devices/nld_4020.cpp b/src/lib/netlist/devices/nld_4020.cpp
index 88cc05ada8f..13518f9d3cb 100644
--- a/src/lib/netlist/devices/nld_4020.cpp
+++ b/src/lib/netlist/devices/nld_4020.cpp
@@ -98,7 +98,7 @@ namespace netlist
NETLIB_FUNC_VOID(CD4020_sub, update_outputs, (const unsigned cnt))
{
- static const std::array<netlist_time, 14> out_delayQn = {
+ static constexpr const std::array<netlist_time, 14> out_delayQn = {
NLTIME_FROM_NS(180), NLTIME_FROM_NS(280),
NLTIME_FROM_NS(380), NLTIME_FROM_NS(480),
NLTIME_FROM_NS(580), NLTIME_FROM_NS(680),
diff --git a/src/lib/netlist/devices/nld_74107.cpp b/src/lib/netlist/devices/nld_74107.cpp
index 6939a5d6db6..763760e2c6a 100644
--- a/src/lib/netlist/devices/nld_74107.cpp
+++ b/src/lib/netlist/devices/nld_74107.cpp
@@ -13,8 +13,8 @@ namespace netlist
namespace devices
{
- static constexpr netlist_time delay_107[2] = { NLTIME_FROM_NS(16), NLTIME_FROM_NS(25) };
- static constexpr netlist_time delay_107A[2] = { NLTIME_FROM_NS(15), NLTIME_FROM_NS(15) };
+ static constexpr const netlist_time delay_107[2] = { NLTIME_FROM_NS(16), NLTIME_FROM_NS(25) };
+ static constexpr const netlist_time delay_107A[2] = { NLTIME_FROM_NS(15), NLTIME_FROM_NS(15) };
NETLIB_OBJECT(74107A)
{
diff --git a/src/lib/netlist/devices/nld_74161.cpp b/src/lib/netlist/devices/nld_74161.cpp
index e75eaf10c88..7a3b54d6368 100644
--- a/src/lib/netlist/devices/nld_74161.cpp
+++ b/src/lib/netlist/devices/nld_74161.cpp
@@ -85,7 +85,7 @@ namespace netlist
}
// FIXME: Timing
- static constexpr netlist_time delay[4] =
+ static constexpr const netlist_time delay[4] =
{
NLTIME_FROM_NS(40),
NLTIME_FROM_NS(40),
diff --git a/src/lib/netlist/devices/nld_74174.cpp b/src/lib/netlist/devices/nld_74174.cpp
index 13ceb370cfd..83369075db6 100644
--- a/src/lib/netlist/devices/nld_74174.cpp
+++ b/src/lib/netlist/devices/nld_74174.cpp
@@ -134,7 +134,7 @@ namespace netlist
//m_sub.do_reset();
}
- NETLIB_DEVICE_IMPL(74174, "TTL_74174", "+CLK,+D1,+D2,+D3,+D4,+D5,+D6,+CLRQ")
+ NETLIB_DEVICE_IMPL(74174, "TTL_74174", "+CLK,+D1,+D2,+D3,+D4,+D5,+D6,+CLRQ")
NETLIB_DEVICE_IMPL(74174_dip,"TTL_74174_DIP", "")
} //namespace devices
diff --git a/src/lib/netlist/devices/nld_74175.cpp b/src/lib/netlist/devices/nld_74175.cpp
index 6c902df48fc..a15adb5c60f 100644
--- a/src/lib/netlist/devices/nld_74175.cpp
+++ b/src/lib/netlist/devices/nld_74175.cpp
@@ -111,7 +111,7 @@ namespace netlist
m_data = 0xFF;
}
- NETLIB_DEVICE_IMPL(74175, "TTL_74175", "+CLK,+D1,+D2,+D3,+D4,+CLRQ")
+ NETLIB_DEVICE_IMPL(74175, "TTL_74175", "+CLK,+D1,+D2,+D3,+D4,+CLRQ")
NETLIB_DEVICE_IMPL(74175_dip,"TTL_74175_DIP", "")
} //namespace devices
diff --git a/src/lib/netlist/devices/nld_74192.cpp b/src/lib/netlist/devices/nld_74192.cpp
index 81edfd050be..954fc351179 100644
--- a/src/lib/netlist/devices/nld_74192.cpp
+++ b/src/lib/netlist/devices/nld_74192.cpp
@@ -110,7 +110,7 @@ namespace netlist
}
// FIXME: Timing
- static constexpr netlist_time delay[4] =
+ static constexpr const netlist_time delay[4] =
{
NLTIME_FROM_NS(40),
NLTIME_FROM_NS(40),
@@ -162,7 +162,7 @@ namespace netlist
m_CARRYQ.push(tCarry, NLTIME_FROM_NS(20)); //FIXME
}
- NETLIB_DEVICE_IMPL(74192, "TTL_74192", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD")
+ NETLIB_DEVICE_IMPL(74192, "TTL_74192", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD")
NETLIB_DEVICE_IMPL(74192_dip,"TTL_74192_DIP", "")
} //namespace devices
diff --git a/src/lib/netlist/devices/nld_74193.cpp b/src/lib/netlist/devices/nld_74193.cpp
index c5d46df3618..16d7438d799 100644
--- a/src/lib/netlist/devices/nld_74193.cpp
+++ b/src/lib/netlist/devices/nld_74193.cpp
@@ -87,7 +87,7 @@ namespace netlist
}
// FIXME: Timing
- static constexpr netlist_time delay[4] =
+ static constexpr const netlist_time delay[4] =
{
NLTIME_FROM_NS(40),
NLTIME_FROM_NS(40),
@@ -139,7 +139,7 @@ namespace netlist
m_CARRYQ.push(tCarry, NLTIME_FROM_NS(20)); //FIXME timing
}
- NETLIB_DEVICE_IMPL(74193, "TTL_74193", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD")
+ NETLIB_DEVICE_IMPL(74193, "TTL_74193", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD")
NETLIB_DEVICE_IMPL(74193_dip, "TTL_74193_DIP", "")
} //namespace devices
diff --git a/src/lib/netlist/devices/nld_74194.cpp b/src/lib/netlist/devices/nld_74194.cpp
index 205263c2d44..9876aa6b170 100644
--- a/src/lib/netlist/devices/nld_74194.cpp
+++ b/src/lib/netlist/devices/nld_74194.cpp
@@ -116,7 +116,7 @@ namespace netlist
m_Q[i].push((q >> i) & 1, NLTIME_FROM_NS(26)); // FIXME: Timing
}
- NETLIB_DEVICE_IMPL(74194, "TTL_74194", "+CLK,+S0,+S1,+SRIN,+A,+B,+C,+D,+SLIN,+CLRQ")
+ NETLIB_DEVICE_IMPL(74194, "TTL_74194", "+CLK,+S0,+S1,+SRIN,+A,+B,+C,+D,+SLIN,+CLRQ")
NETLIB_DEVICE_IMPL(74194_dip, "TTL_74194_DIP", "")
} //namespace devices
diff --git a/src/lib/netlist/devices/nld_7448.cpp b/src/lib/netlist/devices/nld_7448.cpp
index 25d3ba5d108..4500229a1c5 100644
--- a/src/lib/netlist/devices/nld_7448.cpp
+++ b/src/lib/netlist/devices/nld_7448.cpp
@@ -137,7 +137,7 @@ namespace netlist
#define BITS7(b6,b5,b4,b3,b2,b1,b0) ((b6)<<6) | ((b5)<<5) | ((b4)<<4) | ((b3)<<3) | ((b2)<<2) | ((b1)<<1) | ((b0)<<0)
- static constexpr std::array<uint8_t, 16> tab7448 =
+ static constexpr const std::array<uint8_t, 16> tab7448 =
{
BITS7( 1, 1, 1, 1, 1, 1, 0 ), /* 00 - not blanked ! */
BITS7( 0, 1, 1, 0, 0, 0, 0 ), /* 01 */
diff --git a/src/lib/netlist/devices/nld_7490.cpp b/src/lib/netlist/devices/nld_7490.cpp
index 3dabd026cd7..bde02e25edb 100644
--- a/src/lib/netlist/devices/nld_7490.cpp
+++ b/src/lib/netlist/devices/nld_7490.cpp
@@ -78,7 +78,7 @@ namespace netlist
m_last_B = 0;
}
- static C14CONSTEXPR const netlist_time delay[4] =
+ static constexpr const netlist_time delay[4] =
{
NLTIME_FROM_NS(18),
NLTIME_FROM_NS(36) - NLTIME_FROM_NS(18),
diff --git a/src/lib/netlist/devices/nld_7497.cpp b/src/lib/netlist/devices/nld_7497.cpp
index f74e386faac..1432884b8dd 100644
--- a/src/lib/netlist/devices/nld_7497.cpp
+++ b/src/lib/netlist/devices/nld_7497.cpp
@@ -17,8 +17,8 @@ namespace netlist
namespace devices
{
- static constexpr netlist_time out_delay_CLK_Y[2] = { NLTIME_FROM_NS(20), NLTIME_FROM_NS(26) }; // tPHL, tPLH
- static constexpr netlist_time out_delay_CLK_Z[2] = { NLTIME_FROM_NS(17), NLTIME_FROM_NS(12) };
+ static constexpr const netlist_time out_delay_CLK_Y[2] = { NLTIME_FROM_NS(20), NLTIME_FROM_NS(26) }; // tPHL, tPLH
+ static constexpr const netlist_time out_delay_CLK_Z[2] = { NLTIME_FROM_NS(17), NLTIME_FROM_NS(12) };
NETLIB_OBJECT(7497)
{
diff --git a/src/lib/netlist/devices/nld_log.cpp b/src/lib/netlist/devices/nld_log.cpp
index 3ecfe65f40c..6b1b3d8efc1 100644
--- a/src/lib/netlist/devices/nld_log.cpp
+++ b/src/lib/netlist/devices/nld_log.cpp
@@ -6,9 +6,9 @@
*/
#include "netlist/nl_base.h"
+#include "nld_log.h"
#include "plib/pfmtlog.h"
#include "plib/pstream.h"
-#include "nld_log.h"
//#include "sound/wavwrite.h"
namespace netlist
diff --git a/src/lib/netlist/devices/nld_mm5837.cpp b/src/lib/netlist/devices/nld_mm5837.cpp
index 917fcee4221..f6c2566bd43 100644
--- a/src/lib/netlist/devices/nld_mm5837.cpp
+++ b/src/lib/netlist/devices/nld_mm5837.cpp
@@ -69,7 +69,7 @@ namespace netlist
{
//m_V0.initial(0.0);
//m_RV.do_reset();
- m_RV.set(plib::constants<nl_double>::one() / R_LOW, 0.0, 0.0);
+ m_RV.set_G_V_I(plib::constants<nl_double>::one() / R_LOW, 0.0, 0.0);
m_inc = netlist_time::from_double(1.0 / m_FREQ());
if (m_FREQ() < 24000 || m_FREQ() > 56000)
log().warning(MW_1_FREQUENCY_OUTSIDE_OF_SPECS_1, m_FREQ());
@@ -108,7 +108,7 @@ namespace netlist
// We only need to update the net first if this is a time stepping net
if (m_is_timestep)
m_RV.update();
- m_RV.set(plib::constants<nl_double>::one() / R, V, plib::constants<nl_double>::zero());
+ m_RV.set_G_V_I(plib::constants<nl_double>::one() / R, V, plib::constants<nl_double>::zero());
m_RV.solve_later(NLTIME_FROM_NS(1));
}
diff --git a/src/lib/netlist/devices/nld_ne555.cpp b/src/lib/netlist/devices/nld_ne555.cpp
index d1d34835f14..ab63a58ee4c 100644
--- a/src/lib/netlist/devices/nld_ne555.cpp
+++ b/src/lib/netlist/devices/nld_ne555.cpp
@@ -177,7 +177,7 @@ namespace netlist
m_last_out = out;
}
- NETLIB_DEVICE_IMPL(NE555, "NE555", "")
+ NETLIB_DEVICE_IMPL(NE555, "NE555", "")
NETLIB_DEVICE_IMPL(NE555_dip, "NE555_DIP", "")
} //namespace devices
diff --git a/src/lib/netlist/devices/nld_r2r_dac.cpp b/src/lib/netlist/devices/nld_r2r_dac.cpp
index ac1e26a4e1d..284b6673f76 100644
--- a/src/lib/netlist/devices/nld_r2r_dac.cpp
+++ b/src/lib/netlist/devices/nld_r2r_dac.cpp
@@ -44,7 +44,7 @@ namespace netlist
double V = m_VIN() / static_cast<double>(1 << m_num())
* static_cast<double>(m_val());
- this->set(1.0 / m_R(), V, 0.0);
+ this->set_G_V_I(1.0 / m_R(), V, 0.0);
}
} //namespace analog
diff --git a/src/lib/netlist/devices/nld_schmitt.cpp b/src/lib/netlist/devices/nld_schmitt.cpp
index 92bf75b5a89..f219d215520 100644
--- a/src/lib/netlist/devices/nld_schmitt.cpp
+++ b/src/lib/netlist/devices/nld_schmitt.cpp
@@ -85,8 +85,8 @@ namespace netlist
m_RVI.reset();
m_RVO.reset();
m_is_timestep = m_RVO.m_P.net().solver()->has_timestep_devices();
- m_RVI.set(plib::constants<nl_double>::one() / m_model.m_RI, m_model.m_VI, 0.0);
- m_RVO.set(plib::constants<nl_double>::one() / m_model.m_ROL, m_model.m_VOL, 0.0);
+ m_RVI.set_G_V_I(plib::constants<nl_double>::one() / m_model.m_RI, m_model.m_VI, 0.0);
+ m_RVO.set_G_V_I(plib::constants<nl_double>::one() / m_model.m_ROL, m_model.m_VOL, 0.0);
}
NETLIB_UPDATEI()
@@ -98,7 +98,7 @@ namespace netlist
m_last_state = 0;
if (m_is_timestep)
m_RVO.update();
- m_RVO.set(plib::constants<nl_double>::one() / m_model.m_ROH, m_model.m_VOH, 0.0);
+ m_RVO.set_G_V_I(plib::constants<nl_double>::one() / m_model.m_ROH, m_model.m_VOH, 0.0);
m_RVO.solve_later();
}
}
@@ -109,7 +109,7 @@ namespace netlist
m_last_state = 1;
if (m_is_timestep)
m_RVO.update();
- m_RVO.set(plib::constants<nl_double>::one() / m_model.m_ROL, m_model.m_VOL, 0.0);
+ m_RVO.set_G_V_I(plib::constants<nl_double>::one() / m_model.m_ROL, m_model.m_VOL, 0.0);
m_RVO.solve_later();
}
}
diff --git a/src/lib/netlist/devices/nld_tms4800.cpp b/src/lib/netlist/devices/nld_tms4800.cpp
index 04d87f9201d..24729b10e72 100644
--- a/src/lib/netlist/devices/nld_tms4800.cpp
+++ b/src/lib/netlist/devices/nld_tms4800.cpp
@@ -97,7 +97,7 @@ namespace netlist
}
}
- NETLIB_DEVICE_IMPL(TMS4800, "ROM_TMS4800", "+AR,+OE1,+OE2,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10")
+ NETLIB_DEVICE_IMPL(TMS4800, "ROM_TMS4800", "+AR,+OE1,+OE2,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10")
NETLIB_DEVICE_IMPL(TMS4800_dip, "ROM_TMS4800_DIP", "")
} //namespace devices
diff --git a/src/lib/netlist/devices/nlid_proxy.cpp b/src/lib/netlist/devices/nlid_proxy.cpp
index 883aea738f0..a2fd18e85a7 100644
--- a/src/lib/netlist/devices/nlid_proxy.cpp
+++ b/src/lib/netlist/devices/nlid_proxy.cpp
@@ -122,7 +122,7 @@ namespace netlist
m_last_state = -1;
m_RV.reset();
m_is_timestep = m_RV.m_P.net().solver()->has_timestep_devices();
- m_RV.set(plib::constants<nl_double>::one() / logic_family()->R_low(),
+ m_RV.set_G_V_I(plib::constants<nl_double>::one() / logic_family()->R_low(),
logic_family()->low_V(0.0, supply_V), 0.0);
}
@@ -143,7 +143,7 @@ namespace netlist
{
m_RV.update();
}
- m_RV.set(plib::constants<nl_double>::one() / R, V, 0.0);
+ m_RV.set_G_V_I(plib::constants<nl_double>::one() / R, V, 0.0);
m_RV.solve_later();
}
}
diff --git a/src/lib/netlist/devices/nlid_system.h b/src/lib/netlist/devices/nlid_system.h
index 8625010e92b..95712fc3416 100644
--- a/src/lib/netlist/devices/nlid_system.h
+++ b/src/lib/netlist/devices/nlid_system.h
@@ -139,12 +139,13 @@ namespace netlist
total += pati[i];
}
netlist_time ttotal = netlist_time::zero();
- for (unsigned i=0; i<m_size - 1; i++)
+ auto sm1 = static_cast<uint8_t>(m_size - 1);
+ for (unsigned i=0; i < sm1; i++)
{
m_inc[i] = base * pati[i];
ttotal += m_inc[i];
}
- m_inc[m_size - 1] = base * total - ttotal;
+ m_inc[sm1] = base * total - ttotal;
}
}
NETLIB_UPDATEI();
@@ -202,7 +203,7 @@ namespace netlist
{
}
- NETLIB_UPDATEI() { }
+ NETLIB_UPDATEI() { }
NETLIB_RESETI() { m_Q.initial(0.0); }
NETLIB_UPDATE_PARAMI() { m_Q.push(m_IN()); }
@@ -279,8 +280,8 @@ namespace netlist
NETLIB_RESETI()
{
- m_RIN.set(1.0 / m_p_RIN(),0,0);
- m_ROUT.set(1.0 / m_p_ROUT(),0,0);
+ m_RIN.set_G_V_I(1.0 / m_p_RIN(),0,0);
+ m_ROUT.set_G_V_I(1.0 / m_p_ROUT(),0,0);
}
NETLIB_UPDATEI()
diff --git a/src/lib/netlist/devices/nlid_truthtable.cpp b/src/lib/netlist/devices/nlid_truthtable.cpp
index 1e9cc8b1ec1..622aee0e0c7 100644
--- a/src/lib/netlist/devices/nlid_truthtable.cpp
+++ b/src/lib/netlist/devices/nlid_truthtable.cpp
@@ -77,8 +77,8 @@ namespace netlist
return ret;
}
- static constexpr sbitset all_bits() { return sbitset(~static_cast<T>(0)); }
- static constexpr sbitset no_bits() { return sbitset(static_cast<T>(0)); }
+ static constexpr const sbitset all_bits() noexcept { return sbitset(~static_cast<T>(0)); }
+ static constexpr const sbitset no_bits() noexcept{ return sbitset(static_cast<T>(0)); }
private:
T m_bs;
};
diff --git a/src/lib/netlist/nl_base.cpp b/src/lib/netlist/nl_base.cpp
index e5c59c7d43d..c2dd2c683a3 100644
--- a/src/lib/netlist/nl_base.cpp
+++ b/src/lib/netlist/nl_base.cpp
@@ -30,8 +30,8 @@ namespace detail
//static plib::mempool *pool()
//{
- // static plib::mempool s_pool(655360, 32);
- // return &s_pool;
+ // static plib::mempool s_pool(655360, 32);
+ // return &s_pool;
//}
#if 0
@@ -49,7 +49,7 @@ namespace detail
if (mem)
{
//if ((USE_MEMPOOL))
- // pool()->free(mem);
+ // pool()->free(mem);
//else
::operator delete(mem);
}
@@ -142,7 +142,7 @@ const logic_family_desc_t *family_CD4XXX()
detail::queue_t::queue_t(netlist_state_t &nl)
: timed_queue<pqentry_t<net_t *, netlist_time>, false, NL_KEEP_STATISTICS>(512)
, netlist_ref(nl)
-// , plib::state_manager_t::callback_t()
+// , plib::state_manager_t::callback_t()
, m_qsize(0)
, m_times(512)
, m_net_ids(512)
@@ -192,7 +192,7 @@ detail::netlist_ref::netlist_ref(netlist_state_t &nl)
// ----------------------------------------------------------------------------------------
detail::object_t::object_t(const pstring &aname)
-// : m_name(aname)
+// : m_name(aname)
{
name_hash().insert({this, aname});
}
diff --git a/src/lib/netlist/nl_base.h b/src/lib/netlist/nl_base.h
index e210bd13089..572dba272b9 100644
--- a/src/lib/netlist/nl_base.h
+++ b/src/lib/netlist/nl_base.h
@@ -13,9 +13,6 @@
#error "nl_base.h included. Please correct."
#endif
-#include <unordered_map>
-#include <vector>
-
#include "plib/palloc.h" // owned_ptr
#include "plib/pdynlib.h"
#include "plib/pfmtlog.h"
@@ -24,11 +21,14 @@
#include "plib/pstate.h"
#include "plib/pstream.h"
-#include "nltypes.h"
#include "nl_errstr.h"
#include "nl_lists.h"
+#include "nltypes.h"
#include "plib/ptime.h"
+#include <unordered_map>
+#include <vector>
+
//============================================================
// MACROS / New Syntax
//============================================================
@@ -601,17 +601,17 @@ namespace netlist
nl_double operator ()() const NL_NOEXCEPT;
- void set(const nl_double G) noexcept
+ void set_conductivity(const nl_double G) noexcept
{
- set(G,G, 0.0);
+ set_go_gt_I(-G, G, 0.0);
}
- void set(const nl_double GO, const nl_double GT) noexcept
+ void set_go_gt(const nl_double GO, const nl_double GT) noexcept
{
- set(GO, GT, 0.0);
+ set_go_gt_I(GO, GT, 0.0);
}
- void set(const nl_double GO, const nl_double GT, const nl_double I) noexcept
+ void set_go_gt_I(const nl_double GO, const nl_double GT, const nl_double I) noexcept
{
if (m_go1 != nullptr)
{
@@ -1034,8 +1034,8 @@ namespace netlist
: m_value(param.model_value(name))
{
}
- const double &operator()() const NL_NOEXCEPT { return m_value; }
- operator const double&() const NL_NOEXCEPT { return m_value; }
+ const double &operator()() const noexcept { return m_value; }
+ operator const double&() const noexcept { return m_value; }
private:
const double m_value;
};
@@ -1164,7 +1164,7 @@ namespace netlist
virtual bool is_timestep() const { return false; }
private:
- bool m_hint_deactivate;
+ bool m_hint_deactivate;
state_var_s32 m_active_outputs;
};
@@ -1248,6 +1248,12 @@ namespace netlist
public:
using entry_t = pqentry_t<net_t *, netlist_time>;
explicit queue_t(netlist_state_t &nl);
+ virtual ~queue_t() noexcept = default;
+
+ queue_t(const queue_t &) = delete;
+ queue_t(queue_t &&) = delete;
+ queue_t &operator=(const queue_t &) = delete;
+ queue_t &operator=(queue_t &&) = delete;
protected:
@@ -1675,7 +1681,7 @@ namespace netlist
{
nl_assert(terminal_state() != STATE_INP_PASSIVE);
//if (net().Q() != m_Q)
- // printf("term: %s, %d %d TS %d\n", this->name().c_str(), net().Q(), m_Q, terminal_state());
+ // printf("term: %s, %d %d TS %d\n", this->name().c_str(), net().Q(), m_Q, terminal_state());
#if USE_COPY_INSTEAD_OF_REFERENCE
return m_Q;
#else
diff --git a/src/lib/netlist/nl_config.h b/src/lib/netlist/nl_config.h
index d5d195367ec..faa5008ff56 100644
--- a/src/lib/netlist/nl_config.h
+++ b/src/lib/netlist/nl_config.h
@@ -28,7 +28,7 @@
* Your mileage may vary.
*
*/
-#define USE_MEMPOOL (0)
+#define USE_MEMPOOL (1)
/*! Store input values in logic_terminal_t.
*
diff --git a/src/lib/netlist/nl_setup.h b/src/lib/netlist/nl_setup.h
index 2cadd3b3e1c..bf0c934a94b 100644
--- a/src/lib/netlist/nl_setup.h
+++ b/src/lib/netlist/nl_setup.h
@@ -278,9 +278,9 @@ namespace netlist
protected:
std::unordered_map<pstring, pstring> m_models;
std::stack<pstring> m_namespace_stack;
- std::unordered_map<pstring, pstring> m_alias;
+ std::unordered_map<pstring, pstring> m_alias;
std::vector<link_t> m_links;
- std::unordered_map<pstring, pstring> m_param_values;
+ std::unordered_map<pstring, pstring> m_param_values;
source_t::list_t m_sources;
@@ -291,7 +291,7 @@ namespace netlist
private:
- plib::ppreprocessor::defines_map_type m_defines;
+ plib::ppreprocessor::defines_map_type m_defines;
setup_t &m_setup;
log_type &m_log;
@@ -384,7 +384,7 @@ namespace netlist
std::unordered_map<pstring, detail::core_terminal_t *> m_terminals;
netlist_t &m_netlist;
- devices::nld_netlistparams *m_netlist_params;
+ devices::nld_netlistparams *m_netlist_params;
std::unordered_map<pstring, param_ref_t> m_params;
unsigned m_proxy_cnt;
diff --git a/src/lib/netlist/nltypes.h b/src/lib/netlist/nltypes.h
index ca1972ee527..1ddc29adfae 100644
--- a/src/lib/netlist/nltypes.h
+++ b/src/lib/netlist/nltypes.h
@@ -14,12 +14,12 @@
#define NLTYPES_H_
#include "nl_config.h"
-#include "plib/ptime.h"
#include "plib/pchrono.h"
#include "plib/pfmtlog.h"
#include "plib/pmempool.h"
-#include "plib/pstring.h"
#include "plib/pstate.h"
+#include "plib/pstring.h"
+#include "plib/ptime.h"
#include <cstdint>
#include <unordered_map>
@@ -126,9 +126,9 @@ namespace netlist
// MACROS
//============================================================
- template <typename T> inline constexpr netlist_time NLTIME_FROM_NS(T &&t) noexcept { return netlist_time::from_nsec(t); }
- template <typename T> inline constexpr netlist_time NLTIME_FROM_US(T &&t) noexcept { return netlist_time::from_usec(t); }
- template <typename T> inline constexpr netlist_time NLTIME_FROM_MS(T &&t) noexcept { return netlist_time::from_msec(t); }
+ template <typename T> inline constexpr const netlist_time NLTIME_FROM_NS(T &&t) noexcept { return netlist_time::from_nsec(t); }
+ template <typename T> inline constexpr const netlist_time NLTIME_FROM_US(T &&t) noexcept { return netlist_time::from_usec(t); }
+ template <typename T> inline constexpr const netlist_time NLTIME_FROM_MS(T &&t) noexcept { return netlist_time::from_msec(t); }
} // namespace netlist
diff --git a/src/lib/netlist/plib/gmres.h b/src/lib/netlist/plib/gmres.h
index 345c96b5c63..d3551897f69 100644
--- a/src/lib/netlist/plib/gmres.h
+++ b/src/lib/netlist/plib/gmres.h
@@ -76,12 +76,12 @@ namespace plib
}
PALIGNAS_VECTOROPT()
- mat_type m_mat;
+ mat_type m_mat;
PALIGNAS_VECTOROPT()
- mat_type m_LU;
- bool m_use_iLU_preconditioning;
- std::size_t m_ILU_scale;
- std::size_t m_band_width;
+ mat_type m_LU;
+ bool m_use_iLU_preconditioning;
+ std::size_t m_ILU_scale;
+ std::size_t m_band_width;
};
template <typename FT, int SIZE>
@@ -256,7 +256,7 @@ namespace plib
m_g[0] = rho;
//for (std::size_t i = 0; i < mr + 1; i++)
- // vec_set_scalar(mr, m_ht[i], NL_FCONST(0.0));
+ // vec_set_scalar(mr, m_ht[i], NL_FCONST(0.0));
vec_mult_scalar(n, residual, constants<FT>::one() / rho, m_v[0]);
@@ -331,11 +331,11 @@ namespace plib
plib::parray<float_type, SIZE> residual;
plib::parray<float_type, SIZE> Ax;
- plib::parray<float_type, RESTART + 1> m_c; /* mr + 1 */
- plib::parray<float_type, RESTART + 1> m_g; /* mr + 1 */
+ plib::parray<float_type, RESTART + 1> m_c; /* mr + 1 */
+ plib::parray<float_type, RESTART + 1> m_g; /* mr + 1 */
plib::parray<plib::parray<float_type, RESTART>, RESTART + 1> m_ht; /* (mr + 1), mr */
- plib::parray<float_type, RESTART + 1> m_s; /* mr + 1 */
- plib::parray<float_type, RESTART + 1> m_y; /* mr + 1 */
+ plib::parray<float_type, RESTART + 1> m_s; /* mr + 1 */
+ plib::parray<float_type, RESTART + 1> m_y; /* mr + 1 */
//plib::parray<float_type, SIZE> m_v[RESTART + 1]; /* mr + 1, n */
plib::parray<plib::parray<float_type, storage_N>, RESTART + 1> m_v; /* mr + 1, n */
@@ -418,10 +418,10 @@ namespace plib
}
else
{
- beta = alpha * ( c / 2.0)*( c / 2.0);
- alpha = 1.0 / (d - beta);
- for (std::size_t k = 0; k < size(); k++)
- p[k] = residual[k] + beta * p[k];
+ beta = alpha * ( c / 2.0)*( c / 2.0);
+ alpha = 1.0 / (d - beta);
+ for (std::size_t k = 0; k < size(); k++)
+ p[k] = residual[k] + beta * p[k];
}
plib::vec_add_mult_scalar(size(), p, alpha, x);
ops.calc_rhs(Ax, x);
diff --git a/src/lib/netlist/plib/mat_cr.h b/src/lib/netlist/plib/mat_cr.h
index 3cf2570b725..7fc5d46b85d 100644
--- a/src/lib/netlist/plib/mat_cr.h
+++ b/src/lib/netlist/plib/mat_cr.h
@@ -67,13 +67,20 @@ namespace plib
, m_size(n)
{
for (index_type i=0; i<n+1; i++)
- A[i] = 0;
+ row_idx[i] = 0;
}
~matrix_compressed_rows_t() = default;
constexpr index_type size() const { return static_cast<index_type>((N>0) ? N : m_size); }
+ void clear()
+ {
+ nz_num = 0;
+ for (index_type i=0; i < size() + 1; i++)
+ row_idx[i] = 0;
+ }
+
void set_scalar(const T scalar)
{
for (index_type i=0, e=nz_num; i<e; i++)
@@ -86,7 +93,7 @@ namespace plib
while (ri < row_idx[r+1] && col_idx[ri] < c)
ri++;
// we have the position now;
- if (nz_num > 0 && col_idx[ri] == c)
+ if (ri < row_idx[r+1] && col_idx[ri] == c)
A[ri] = val;
else
{
@@ -97,7 +104,7 @@ namespace plib
}
A[ri] = val;
col_idx[ri] = c;
- for (C i = row_idx[r]; i < size()+1;i++)
+ for (C i = r + 1; i < size() + 1; i++)
row_idx[i]++;
nz_num++;
if (c==r)
diff --git a/src/lib/netlist/plib/palloc.h b/src/lib/netlist/plib/palloc.h
index 6380a4cef07..d7b00262f7f 100644
--- a/src/lib/netlist/plib/palloc.h
+++ b/src/lib/netlist/plib/palloc.h
@@ -28,19 +28,19 @@ namespace plib {
// Memory allocation
//============================================================
-#if (USE_ALIGNED_OPTIMIZATIONS)
+#if (USE_ALIGNED_ALLOCATION)
static inline void *paligned_alloc( size_t alignment, size_t size )
{
#if defined(_WIN32) || defined(_WIN64) || defined(_MSC_VER)
return _aligned_malloc(size, alignment);
#elif defined(__APPLE__)
- void* p;
- if (::posix_memalign(&p, alignment, size) != 0) {
- p = nullptr;
- }
- return p;
+ void* p;
+ if (::posix_memalign(&p, alignment, size) != 0) {
+ p = nullptr;
+ }
+ return p;
#else
- return aligned_alloc(alignment, size);
+ return aligned_alloc(alignment, size);
#endif
}
@@ -50,24 +50,6 @@ namespace plib {
free(ptr);
}
- static constexpr bool is_pow2(std::size_t v) noexcept { return !(v & (v-1)); }
-
- template <typename T, std::size_t ALIGN>
- inline C14CONSTEXPR T *assume_aligned_ptr(T *p) noexcept
- {
- static_assert(ALIGN >= alignof(T), "Alignment must be greater or equal to alignof(T)");
- static_assert(is_pow2(ALIGN), "Alignment must be a power of 2");
- //auto t = reinterpret_cast<std::uintptr_t>(p);
- //if (t & (ALIGN-1))
- // printf("alignment error!");
- return reinterpret_cast<T *>(__builtin_assume_aligned(p, ALIGN));
- }
-
- template <typename T, std::size_t ALIGN>
- inline C14CONSTEXPR const T *assume_aligned_ptr(const T *p) noexcept
- {
- return reinterpret_cast<const T *>(__builtin_assume_aligned(p, ALIGN));
- }
#else
static inline void *paligned_alloc( size_t alignment, size_t size )
{
@@ -79,19 +61,35 @@ namespace plib {
{
::operator delete(ptr);
}
+#endif
template <typename T, std::size_t ALIGN>
- inline C14CONSTEXPR T *assume_aligned_ptr(T *p) noexcept
+ /*inline */ C14CONSTEXPR T *assume_aligned_ptr(T *p) noexcept
{
+ static_assert(ALIGN >= alignof(T), "Alignment must be greater or equal to alignof(T)");
+ static_assert(is_pow2(ALIGN), "Alignment must be a power of 2");
+ //auto t = reinterpret_cast<std::uintptr_t>(p);
+ //if (t & (ALIGN-1))
+ // printf("alignment error!");
+#if (USE_ALIGNED_HINTS)
+ return reinterpret_cast<T *>(__builtin_assume_aligned(p, ALIGN));
+#else
return p;
+#endif
}
template <typename T, std::size_t ALIGN>
- inline C14CONSTEXPR const T *assume_aligned_ptr(const T *p) noexcept
+ constexpr const T *assume_aligned_ptr(const T *p) noexcept
{
+ static_assert(ALIGN >= alignof(T), "Alignment must be greater or equal to alignof(T)");
+ static_assert(is_pow2(ALIGN), "Alignment must be a power of 2");
+#if (USE_ALIGNED_HINTS)
+ return reinterpret_cast<const T *>(__builtin_assume_aligned(p, ALIGN));
+#else
return p;
- }
#endif
+ }
+
template<typename T, typename... Args>
inline T *pnew(Args&&... args)
{
@@ -124,8 +122,8 @@ namespace plib {
constexpr pdefault_deleter() noexcept = default;
template<typename U, typename = typename
- std::enable_if<std::is_convertible< U*, T*>::value>::type>
- pdefault_deleter(const pdefault_deleter<U>&) noexcept { }
+ std::enable_if<std::is_convertible< U*, T*>::value>::type>
+ pdefault_deleter(const pdefault_deleter<U>&) noexcept { }
void operator()(T *p) const
{
@@ -245,73 +243,114 @@ namespace plib {
return std::move(a);
}
+ //============================================================
+ // Aligned allocator for use with containers
+ //============================================================
+
template <class T, std::size_t ALIGN = alignof(T)>
class aligned_allocator
{
public:
- using value_type = T;
+ using value_type = T;
+ static constexpr const std::size_t align_size = ALIGN;
- static_assert(ALIGN >= alignof(T) && (ALIGN % alignof(T)) == 0,
- "ALIGN must be greater than alignof(T) and a multiple");
+ static_assert(align_size >= alignof(T) && (align_size % alignof(T)) == 0,
+ "ALIGN must be greater than alignof(T) and a multiple");
- aligned_allocator() noexcept = default;
- ~aligned_allocator() noexcept = default;
+ aligned_allocator() noexcept = default;
+ ~aligned_allocator() noexcept = default;
- aligned_allocator(const aligned_allocator&) noexcept = default;
- aligned_allocator& operator=(const aligned_allocator&) noexcept = delete;
+ aligned_allocator(const aligned_allocator&) noexcept = default;
+ aligned_allocator& operator=(const aligned_allocator&) noexcept = delete;
- aligned_allocator(aligned_allocator&&) noexcept = default;
- aligned_allocator& operator=(aligned_allocator&&) = delete;
+ aligned_allocator(aligned_allocator&&) noexcept = default;
+ aligned_allocator& operator=(aligned_allocator&&) = delete;
- template <class U>
- aligned_allocator(const aligned_allocator<U, ALIGN>& rhs) noexcept
- {
- unused_var(rhs);
- }
+ template <class U>
+ aligned_allocator(const aligned_allocator<U, ALIGN>& rhs) noexcept
+ {
+ unused_var(rhs);
+ }
- template <class U> struct rebind
+ template <class U> struct rebind
{
- using other = aligned_allocator<U, ALIGN>;
+ using other = aligned_allocator<U, ALIGN>;
};
- T* allocate(std::size_t n)
- {
- return reinterpret_cast<T *>(paligned_alloc(ALIGN, sizeof(T) * n));
- }
+ T* allocate(std::size_t n)
+ {
+ return reinterpret_cast<T *>(paligned_alloc(ALIGN, sizeof(T) * n));
+ }
- void deallocate(T* p, std::size_t n) noexcept
- {
- unused_var(n);
- pfree(p);
- }
+ void deallocate(T* p, std::size_t n) noexcept
+ {
+ unused_var(n);
+ pfree(p);
+ }
- template <class T1, std::size_t A1, class U, std::size_t A2>
- friend bool operator==(const aligned_allocator<T1, A1>& lhs,
- const aligned_allocator<U, A2>& rhs) noexcept;
+ template <class T1, std::size_t A1, class U, std::size_t A2>
+ friend bool operator==(const aligned_allocator<T1, A1>& lhs,
+ const aligned_allocator<U, A2>& rhs) noexcept;
- template <class U, std::size_t A> friend class aligned_allocator;
+ template <class U, std::size_t A> friend class aligned_allocator;
};
- template <class T1, std::size_t A1, class U, std::size_t A2>
- /*friend*/ inline bool operator==(const aligned_allocator<T1, A1>& lhs,
- const aligned_allocator<U, A2>& rhs) noexcept
- {
- unused_var(lhs, rhs);
- return A1 == A2;
- }
- template <class T1, std::size_t A1, class U, std::size_t A2>
- /*friend*/ inline bool operator!=(const aligned_allocator<T1, A1>& lhs,
- const aligned_allocator<U, A2>& rhs) noexcept
- {
- return !(lhs == rhs);
- }
-
- // FIXME: needs to be somewhere else
+ template <class T1, std::size_t A1, class U, std::size_t A2>
+ /*friend*/ inline bool operator==(const aligned_allocator<T1, A1>& lhs,
+ const aligned_allocator<U, A2>& rhs) noexcept
+ {
+ unused_var(lhs, rhs);
+ return A1 == A2;
+ }
+ template <class T1, std::size_t A1, class U, std::size_t A2>
+ /*friend*/ inline bool operator!=(const aligned_allocator<T1, A1>& lhs,
+ const aligned_allocator<U, A2>& rhs) noexcept
+ {
+ return !(lhs == rhs);
+ }
+
+ //============================================================
+ // traits to determine alignment size and stride size
+ // from types supporting alignment
+ //============================================================
+
+ PDEFINE_HAS_MEMBER(has_align, align_size);
+
+ template <typename T, typename X = void>
+ struct align_traits
+ {
+ static constexpr const std::size_t align_size = alignof(std::max_align_t);
+ static constexpr const std::size_t value_size = sizeof(typename T::value_type);
#if 0
- template <class T, std::size_t ALIGN = alignof(T)>
- using aligned_vector = std::vector<T, aligned_allocator<T, alignof(T)>>;
- //using aligned_vector = std::vector<T, aligned_allocator<T, ALIGN>>;
+ static constexpr const std::size_t stride_size =
+ ((value_size % align_size) == 0 ? 1 //T is a multiple of align_size
+ : ((align_size % value_size) != 0 ? align_size // align_size is not a multiple of T
+ : align_size / value_size));
+#else
+ static constexpr const std::size_t stride_size = lcm(align_size, value_size) / value_size;
+#endif
+ };
+
+ template <typename T>
+ struct align_traits<T, typename std::enable_if<has_align<T>::value, void>::type>
+ {
+ static constexpr const std::size_t align_size = T::align_size;
+ static constexpr const std::size_t value_size = sizeof(typename T::value_type);
+#if 0
+ static constexpr const std::size_t stride_size =
+ ((value_size % align_size) == 0 ? 1 //T is a multiple of align_size
+ : ((align_size % value_size) != 0 ? align_size // align_size is not a multiple of T
+ : align_size / value_size));
#else
+ static constexpr const std::size_t stride_size = lcm(align_size, value_size) / value_size;
+#endif
+ };
+
+ //============================================================
+ // Aligned vector
+ //============================================================
+
+ // FIXME: needs a separate file
template <class T, std::size_t ALIGN = alignof(T)>
class aligned_vector : public std::vector<T, aligned_allocator<T, ALIGN>>
{
@@ -326,13 +365,13 @@ namespace plib {
using base::base;
- reference operator[](size_type i) noexcept
+ C14CONSTEXPR reference operator[](size_type i) noexcept
{
- return assume_aligned_ptr<T, ALIGN>(this->data())[i];
+ return assume_aligned_ptr<T, ALIGN>(&(base::operator[](0)))[i];
}
constexpr const_reference operator[](size_type i) const noexcept
{
- return assume_aligned_ptr<T, ALIGN>(this->data())[i];
+ return assume_aligned_ptr<T, ALIGN>(&(base::operator[](0)))[i];
}
pointer data() noexcept { return assume_aligned_ptr<T, ALIGN>(base::data()); }
@@ -340,11 +379,6 @@ namespace plib {
};
-
-#endif
-
-
-
} // namespace plib
#endif /* PALLOC_H_ */
diff --git a/src/lib/netlist/plib/parray.h b/src/lib/netlist/plib/parray.h
index 9fe4ab972eb..1be37b908cd 100644
--- a/src/lib/netlist/plib/parray.h
+++ b/src/lib/netlist/plib/parray.h
@@ -60,6 +60,7 @@ namespace plib {
using size_type = typename base_type::size_type;
using reference = typename base_type::reference;
using const_reference = typename base_type::const_reference;
+ using value_type = typename base_type::value_type;
template <int X = SIZE >
parray(size_type size, typename std::enable_if<X==0, int>::type = 0)
@@ -103,7 +104,7 @@ namespace plib {
return m_a[i];
}
#else
- reference operator[](size_type i) noexcept
+ C14CONSTEXPR reference operator[](size_type i) noexcept
{
return assume_aligned_ptr<FT, PALIGN_VECTOROPT>(&m_a[0])[i];
}
@@ -117,8 +118,8 @@ namespace plib {
private:
PALIGNAS_VECTOROPT()
- base_type m_a;
- size_type m_size;
+ base_type m_a;
+ size_type m_size;
};
} // namespace plib
diff --git a/src/lib/netlist/plib/pconfig.h b/src/lib/netlist/plib/pconfig.h
index 3b4bc55fc32..c521f24e5f8 100644
--- a/src/lib/netlist/plib/pconfig.h
+++ b/src/lib/netlist/plib/pconfig.h
@@ -41,15 +41,17 @@
#define USE_ALIGNED_OPTIMIZATIONS (0)
#endif
+#define USE_ALIGNED_ALLOCATION (USE_ALIGNED_OPTIMIZATIONS)
+#define USE_ALIGNED_HINTS (USE_ALIGNED_OPTIMIZATIONS)
/*
* Standard alignment macros
*/
-#define PALIGN_CACHELINE (64)
-#define PALIGN_VECTOROPT (32)
+#define PALIGN_CACHELINE (64)
+#define PALIGN_VECTOROPT (32)
-#define PALIGNAS_CACHELINE() PALIGNAS(PALIGN_CACHELINE)
-#define PALIGNAS_VECTOROPT() PALIGNAS(PALIGN_VECTOROPT)
+#define PALIGNAS_CACHELINE() PALIGNAS(PALIGN_CACHELINE)
+#define PALIGNAS_VECTOROPT() PALIGNAS(PALIGN_VECTOROPT)
/* Breaks mame build on windows due to -Wattribute */
#if defined(_WIN32) && defined(__GNUC__)
diff --git a/src/lib/netlist/plib/pfmtlog.h b/src/lib/netlist/plib/pfmtlog.h
index 4c01f96dba7..4d13fa3424b 100644
--- a/src/lib/netlist/plib/pfmtlog.h
+++ b/src/lib/netlist/plib/pfmtlog.h
@@ -9,6 +9,7 @@
#include "pstring.h"
#include "ptypes.h"
+#include "putil.h"
#include <limits>
@@ -34,7 +35,6 @@ struct ptype_traits_base
template <>
struct ptype_traits_base<bool>
{
- static unsigned int cast(bool &x) { return static_cast<unsigned int>(x); }
static unsigned int cast(const bool &x) { return static_cast<unsigned int>(x); }
static const bool is_signed = std::numeric_limits<bool>::is_signed;
static const char *size_spec() { return ""; }
diff --git a/src/lib/netlist/plib/plists.h b/src/lib/netlist/plib/plists.h
index 0a1345d5e1f..2a0fd3a6c3c 100644
--- a/src/lib/netlist/plib/plists.h
+++ b/src/lib/netlist/plib/plists.h
@@ -200,9 +200,9 @@ public:
LC* p;
public:
explicit constexpr iter_t(LC* x) noexcept : p(x) { }
- explicit constexpr iter_t(iter_t &rhs) noexcept : p(rhs.p) { }
+ constexpr iter_t(iter_t &rhs) noexcept : p(rhs.p) { }
iter_t(iter_t &&rhs) noexcept { std::swap(*this, rhs); }
- iter_t& operator=(const iter_t &rhs) { iter_t t(rhs); std::swap(*this, t); return *this; }
+ iter_t& operator=(const iter_t &rhs) noexcept { iter_t t(rhs); std::swap(*this, t); return *this; }
iter_t& operator=(iter_t &&rhs) noexcept { std::swap(*this, rhs); return *this; }
iter_t& operator++() noexcept {p = p->next();return *this;}
// NOLINTNEXTLINE(cert-dcl21-cpp)
diff --git a/src/lib/netlist/plib/pmatrix2d.h b/src/lib/netlist/plib/pmatrix2d.h
new file mode 100644
index 00000000000..52228548cbf
--- /dev/null
+++ b/src/lib/netlist/plib/pmatrix2d.h
@@ -0,0 +1,84 @@
+// license:GPL-2.0+
+// copyright-holders:Couriersud
+/*
+ * pmatrix2d.h
+ *
+ * NxM regular matrix
+ *
+ */
+
+#ifndef PMATRIX2D_H_
+#define PMATRIX2D_H_
+
+#include "palloc.h"
+
+#include <algorithm>
+#include <cmath>
+#include <cstdlib>
+#include <type_traits>
+#include <vector>
+
+namespace plib
+{
+
+
+ template<typename T, typename A = std::allocator<T>>
+ class pmatrix2d
+ {
+ public:
+ using value_type = T;
+
+ static constexpr const std::size_t align_size = align_traits<A>::align_size;
+ static constexpr const std::size_t stride_size = align_traits<A>::stride_size;
+ pmatrix2d()
+ : m_N(0), m_M(0), m_stride(8)
+ {
+ }
+
+ pmatrix2d(std::size_t N, std::size_t M)
+ : m_N(N), m_M(M)
+ {
+ m_stride = ((M + stride_size-1) / stride_size) * stride_size;
+ m_v.resize(N * m_stride);
+ }
+
+ void resize(std::size_t N, std::size_t M)
+ {
+ m_N = N;
+ m_M = M;
+ m_stride = ((M + stride_size-1) / stride_size) * stride_size;
+ m_v.resize(N * m_stride);
+ }
+
+ C14CONSTEXPR T * operator[] (std::size_t row) noexcept
+ {
+ return assume_aligned_ptr<T, align_size>(&m_v[m_stride * row]);
+ }
+
+ constexpr const T * operator[] (std::size_t row) const noexcept
+ {
+ return assume_aligned_ptr<T, align_size>(&m_v[m_stride * row]);
+ }
+
+ T & operator()(std::size_t r, std::size_t c) noexcept
+ {
+ return (*this)[r][c];
+ }
+
+ const T & operator()(std::size_t r, std::size_t c) const noexcept
+ {
+ return (*this)[r][c];
+ }
+
+ private:
+
+ std::size_t m_N;
+ std::size_t m_M;
+ std::size_t m_stride;
+
+ std::vector<T, A> m_v;
+ };
+
+} // namespace plib
+
+#endif /* MAT_CR_H_ */
diff --git a/src/lib/netlist/plib/pmempool.h b/src/lib/netlist/plib/pmempool.h
index 166c6f3d483..00e78b09fb6 100644
--- a/src/lib/netlist/plib/pmempool.h
+++ b/src/lib/netlist/plib/pmempool.h
@@ -29,8 +29,8 @@ namespace plib {
constexpr pool_deleter() noexcept = default;
template<typename PU, typename U, typename = typename
- std::enable_if<std::is_convertible< U*, T*>::value>::type>
- pool_deleter(const pool_deleter<PU, U>&) noexcept { }
+ std::enable_if<std::is_convertible< U*, T*>::value>::type>
+ pool_deleter(const pool_deleter<PU, U>&) noexcept { }
void operator()(T *p) const
{
@@ -140,7 +140,7 @@ namespace plib {
auto capacity(rs);
ret = std::align(align, size, ret, capacity);
// FIXME: if (ret == nullptr)
- // printf("Oh no\n");
+ // printf("Oh no\n");
sinfo().insert({ ret, info(b, b->m_cur)});
rs -= (capacity - size);
b->m_cur += rs;
@@ -156,7 +156,7 @@ namespace plib {
auto capacity(rs);
ret = std::align(align, size, ret, capacity);
// FIXME: if (ret == nullptr)
- // printf("Oh no\n");
+ // printf("Oh no\n");
sinfo().insert({ ret, info(b, b->m_cur)});
rs -= (capacity - size);
b->m_cur += rs;
diff --git a/src/lib/netlist/plib/pstream.h b/src/lib/netlist/plib/pstream.h
index 29f79e0dd4a..aaccf577c4d 100644
--- a/src/lib/netlist/plib/pstream.h
+++ b/src/lib/netlist/plib/pstream.h
@@ -658,7 +658,7 @@ inline void copystream(postream &dest, pistream &src)
struct perrlogger
{
template <typename ... Args>
- perrlogger(Args&& ... args)
+ explicit perrlogger(Args&& ... args)
{
h()(std::forward<Args>(args)...);
}
diff --git a/src/lib/netlist/plib/ptime.h b/src/lib/netlist/plib/ptime.h
index 4767a197342..32ccc4f7b0d 100644
--- a/src/lib/netlist/plib/ptime.h
+++ b/src/lib/netlist/plib/ptime.h
@@ -47,19 +47,19 @@ namespace plib
C14CONSTEXPR ptime &operator-=(const ptime rhs) noexcept { m_time -= rhs.m_time; return *this; }
C14CONSTEXPR ptime &operator*=(const mult_type factor) noexcept { m_time *= static_cast<internal_type>(factor); return *this; }
- friend C14CONSTEXPR ptime operator-(ptime lhs, const ptime rhs) noexcept
+ friend constexpr const ptime operator-(ptime lhs, const ptime rhs) noexcept
{
- return lhs -= rhs;
+ return ptime(lhs.m_time - rhs.m_time);
}
- friend C14CONSTEXPR ptime operator+(ptime lhs, const ptime rhs) noexcept
+ friend constexpr const ptime operator+(ptime lhs, const ptime rhs) noexcept
{
- return lhs += rhs;
+ return ptime(lhs.m_time + rhs.m_time);
}
- friend C14CONSTEXPR ptime operator*(ptime lhs, const mult_type &factor) noexcept
+ friend constexpr const ptime operator*(ptime lhs, const mult_type &factor) noexcept
{
- return lhs *= factor;
+ return ptime(lhs.m_time * factor);
}
friend constexpr mult_type operator/(const ptime lhs, const ptime rhs) noexcept
diff --git a/src/lib/netlist/plib/ptypes.h b/src/lib/netlist/plib/ptypes.h
index a3b11b65e74..6b4a4af2f75 100644
--- a/src/lib/netlist/plib/ptypes.h
+++ b/src/lib/netlist/plib/ptypes.h
@@ -81,38 +81,72 @@ namespace plib
template<typename... Ts>
inline void unused_var(Ts&&...) {}
+ //============================================================
+ // is_pow2
+ //============================================================
+ template <typename T>
+ constexpr bool is_pow2(T v) noexcept
+ {
+ static_assert(is_integral<T>::value, "is_pow2 needs integer arguments");
+ return !(v & (v-1));
+ }
//============================================================
- // penum - strongly typed enumeration
+ // abs, lcd, gcm
//============================================================
- struct penum_base
+ template<typename T>
+ constexpr
+ typename std::enable_if<std::is_integral<T>::value && std::is_signed<T>::value, T>::type
+ abs(T v)
{
- protected:
- static int from_string_int(const char *str, const char *x);
- static std::string nthstr(int n, const char *str);
- };
+ return v < 0 ? -v : v;
+ }
-} // namespace plib
+ template<typename T>
+ constexpr
+ typename std::enable_if<std::is_integral<T>::value && std::is_unsigned<T>::value, T>::type
+ abs(T v)
+ {
+ return v;
+ }
-#define P_ENUM(ename, ...) \
- struct ename : public plib::penum_base { \
- enum E { __VA_ARGS__ }; \
- ename (E v) : m_v(v) { } \
- bool set_from_string (const std::string &s) { \
- static char const *const strings = # __VA_ARGS__; \
- int f = from_string_int(strings, s.c_str()); \
- if (f>=0) { m_v = static_cast<E>(f); return true; } else { return false; } \
- } \
- operator E() const {return m_v;} \
- bool operator==(const ename &rhs) const {return m_v == rhs.m_v;} \
- bool operator==(const E &rhs) const {return m_v == rhs;} \
- std::string name() const { \
- static char const *const strings = # __VA_ARGS__; \
- return nthstr(static_cast<int>(m_v), strings); \
- } \
- private: E m_v; };
+ template<typename M, typename N>
+ constexpr typename std::common_type<M, N>::type
+ gcd(M m, N n)
+ {
+ static_assert(std::is_integral<M>::value, "gcd: M must be an integer");
+ static_assert(std::is_integral<N>::value, "gcd: N must be an integer");
+
+ return m == 0 ? plib::abs(n)
+ : n == 0 ? plib::abs(m)
+ : gcd(n, m % n);
+ }
+
+ template<typename M, typename N>
+ constexpr typename std::common_type<M, N>::type
+ lcm(M m, N n)
+ {
+ static_assert(std::is_integral<M>::value, "lcm: M must be an integer");
+ static_assert(std::is_integral<N>::value, "lcm: N must be an integer");
+
+ return (m != 0 && n != 0) ? (plib::abs(m) / gcd(m, n)) * plib::abs(n) : 0;
+ }
+
+} // namespace plib
+//============================================================
+// Define a "has member" trait.
+//============================================================
+
+#define PDEFINE_HAS_MEMBER(name, member) \
+ template <typename T> class name \
+ { \
+ template <typename U> static long test(decltype(&U:: member)); \
+ template <typename U> static char test(...); \
+ public: \
+ static constexpr const bool value = sizeof(test<T>(nullptr)) == sizeof(long); \
+ }
#endif /* PTYPES_H_ */
diff --git a/src/lib/netlist/plib/putil.h b/src/lib/netlist/plib/putil.h
index cd55be63185..0db2ae28ffb 100644
--- a/src/lib/netlist/plib/putil.h
+++ b/src/lib/netlist/plib/putil.h
@@ -12,7 +12,7 @@
#include <algorithm>
#include <initializer_list>
-#include <vector> // <<= needed by windows build
+#include <vector>
#define PSTRINGIFY_HELP(y) # y
#define PSTRINGIFY(x) PSTRINGIFY_HELP(x)
@@ -93,6 +93,37 @@ namespace plib
const std::string &token,
const std::size_t maxsplit);
+
+ //============================================================
+ // penum - strongly typed enumeration
+ //============================================================
+
+ struct penum_base
+ {
+ protected:
+ static int from_string_int(const char *str, const char *x);
+ static std::string nthstr(int n, const char *str);
+ };
+
} // namespace plib
+#define P_ENUM(ename, ...) \
+ struct ename : public plib::penum_base { \
+ enum E { __VA_ARGS__ }; \
+ ename (E v) : m_v(v) { } \
+ bool set_from_string (const std::string &s) { \
+ static char const *const strings = # __VA_ARGS__; \
+ int f = from_string_int(strings, s.c_str()); \
+ if (f>=0) { m_v = static_cast<E>(f); return true; } else { return false; } \
+ } \
+ operator E() const {return m_v;} \
+ bool operator==(const ename &rhs) const {return m_v == rhs.m_v;} \
+ bool operator==(const E &rhs) const {return m_v == rhs;} \
+ std::string name() const { \
+ static char const *const strings = # __VA_ARGS__; \
+ return nthstr(static_cast<int>(m_v), strings); \
+ } \
+ private: E m_v; };
+
+
#endif /* PUTIL_H_ */
diff --git a/src/lib/netlist/prg/nltool.cpp b/src/lib/netlist/prg/nltool.cpp
index a751bbd2965..f9e25346493 100644
--- a/src/lib/netlist/prg/nltool.cpp
+++ b/src/lib/netlist/prg/nltool.cpp
@@ -17,7 +17,7 @@
#include <cstring>
-#define NLTOOL_VERSION 20190202
+#define NLTOOL_VERSION 20190202
class tool_app_t : public plib::app
{
diff --git a/src/lib/netlist/solver/nld_matrix_solver.cpp b/src/lib/netlist/solver/nld_matrix_solver.cpp
index 68cad1422ea..756c7817c03 100644
--- a/src/lib/netlist/solver/nld_matrix_solver.cpp
+++ b/src/lib/netlist/solver/nld_matrix_solver.cpp
@@ -39,20 +39,6 @@ namespace devices
m_connected_net_idx.push_back(net_other);
}
- void terms_for_net_t::set_pointers()
- {
- m_gt.resize(count(), 0.0);
- m_go.resize(count(), 0.0);
- m_Idr.resize(count(), 0.0);
- m_connected_net_V.resize(count(), nullptr);
-
- for (std::size_t i = 0; i < count(); i++)
- {
- m_terms[i]->set_ptrs(&m_gt[i], &m_go[i], &m_Idr[i]);
- m_connected_net_V[i] = m_terms[i]->otherterm()->net().Q_Analog_state_ptr();
- }
- }
-
// ----------------------------------------------------------------------------------------
// matrix_solver
// ----------------------------------------------------------------------------------------
@@ -237,7 +223,7 @@ namespace devices
/* rebuild */
for (auto &term : m_terms)
{
- int *other = term->connected_net_idx();
+ int *other = term->m_connected_net_idx.data();
for (std::size_t i = 0; i < term->count(); i++)
//FIXME: this is weird
if (other[i] != -1)
@@ -253,9 +239,7 @@ namespace devices
{
m_terms[k]->m_railstart = m_terms[k]->count();
for (std::size_t i = 0; i < m_rails_temp[k]->count(); i++)
- this->m_terms[k]->add(m_rails_temp[k]->terms()[i], m_rails_temp[k]->connected_net_idx()[i], false);
-
- m_terms[k]->set_pointers();
+ this->m_terms[k]->add(m_rails_temp[k]->terms()[i], m_rails_temp[k]->m_connected_net_idx.data()[i], false);
}
// free all - no longer needed
@@ -263,12 +247,14 @@ namespace devices
sort_terms(m_sort);
+ this->set_pointers();
+
/* create a list of non zero elements. */
for (unsigned k = 0; k < iN; k++)
{
terms_for_net_t * t = m_terms[k].get();
/* pretty brutal */
- int *other = t->connected_net_idx();
+ int *other = t->m_connected_net_idx.data();
t->m_nz.clear();
@@ -290,7 +276,7 @@ namespace devices
{
terms_for_net_t * t = m_terms[k].get();
/* pretty brutal */
- int *other = t->connected_net_idx();
+ int *other = t->m_connected_net_idx.data();
if (k==0)
t->m_nzrd.clear();
@@ -371,9 +357,9 @@ namespace devices
state().save(*this, m_terms[k]->m_h_n_m_1, this->name(), "m_h_n_m_1." + num);
// FIXME: This shouldn't be necessary, recalculate on each entry ...
- state().save(*this, m_terms[k]->go(),"GO" + num, this->name(), m_terms[k]->count());
- state().save(*this, m_terms[k]->gt(),"GT" + num, this->name(), m_terms[k]->count());
- state().save(*this, m_terms[k]->Idr(),"IDR" + num, this->name(), m_terms[k]->count());
+ state().save(*this, m_gonn[k],"GO" + num, this->name(), m_terms[k]->count());
+ state().save(*this, m_gtn[k],"GT" + num, this->name(), m_terms[k]->count());
+ state().save(*this, m_Idrn[k],"IDR" + num, this->name(), m_terms[k]->count());
}
}
diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h
index 71c28236c67..e4cff24c43a 100644
--- a/src/lib/netlist/solver/nld_matrix_solver.h
+++ b/src/lib/netlist/solver/nld_matrix_solver.h
@@ -10,9 +10,12 @@
#include "netlist/nl_base.h"
#include "netlist/nl_errstr.h"
-#include "netlist/plib/palloc.h"
-#include "netlist/plib/putil.h"
-#include "netlist/plib/vector_ops.h"
+#include "plib/palloc.h"
+#include "plib/pmatrix2d.h"
+#include "plib/putil.h"
+#include "plib/vector_ops.h"
+
+#include <cmath>
namespace netlist
{
@@ -50,49 +53,6 @@ namespace devices
std::size_t count() const { return m_terms.size(); }
terminal_t **terms() { return m_terms.data(); }
- int *connected_net_idx() { return m_connected_net_idx.data(); }
- nl_double *gt() { return m_gt.data(); }
- nl_double *go() { return m_go.data(); }
- nl_double *Idr() { return m_Idr.data(); }
- nl_double * const *connected_net_V() const { return m_connected_net_V.data(); }
-
- void set_pointers();
-
- /* FIXME: this works a bit better for larger matrices */
- template <typename AP, typename FT>
- void fill_matrix/*_larger*/(AP &tcr, FT &RHS)
- {
-
- const std::size_t term_count = this->count();
- const std::size_t railstart = this->m_railstart;
-
- for (std::size_t i = 0; i < railstart; i++)
- *tcr[i] -= m_go[i];
-
- #if 1
- FT gtot_t = 0.0;
- FT RHS_t = 0.0;
-
- for (std::size_t i = 0; i < term_count; i++)
- {
- gtot_t += m_gt[i];
- RHS_t += m_Idr[i];
- }
- // FIXME: Code above is faster than vec_sum - Check this
- #else
- auto gtot_t = plib::vec_sum<FT>(term_count, m_gt);
- auto RHS_t = plib::vec_sum<FT>(term_count, m_Idr);
- #endif
-
- for (std::size_t i = railstart; i < term_count; i++)
- {
- RHS_t += (/*m_Idr[i]*/ + m_go[i] * *m_connected_net_V[i]);
- }
-
- RHS = RHS_t;
- // update diagonal element ...
- *tcr[railstart] += gtot_t; //mat.A[mat.diag[k]] += gtot_t;
- }
std::size_t m_railstart;
@@ -105,12 +65,8 @@ namespace devices
nl_double m_DD_n_m_1;
nl_double m_h_n_m_1;
- private:
std::vector<int> m_connected_net_idx;
- plib::aligned_vector<nl_double, PALIGN_VECTOROPT> m_go;
- plib::aligned_vector<nl_double, PALIGN_VECTOROPT> m_gt;
- plib::aligned_vector<nl_double, PALIGN_VECTOROPT> m_Idr;
- plib::aligned_vector<nl_double *, PALIGN_VECTOROPT> m_connected_net_V;
+ private:
std::vector<terminal_t *> m_terms;
};
@@ -212,6 +168,91 @@ namespace devices
template <typename T>
void build_LE_RHS(T &child);
+ void set_pointers()
+ {
+ const std::size_t iN = this->m_nets.size();
+
+ std::size_t max_count = 0;
+ std::size_t max_rail = 0;
+ for (std::size_t k = 0; k < iN; k++)
+ {
+ max_count = std::max(max_count, m_terms[k]->count());
+ max_rail = std::max(max_rail, m_terms[k]->m_railstart);
+ }
+
+ m_mat_ptr.resize(iN, max_rail+1);
+ m_gtn.resize(iN, max_count);
+ m_gonn.resize(iN, max_count);
+ m_Idrn.resize(iN, max_count);
+ m_connected_net_Vn.resize(iN, max_count);
+
+ for (std::size_t k = 0; k < iN; k++)
+ {
+ auto count = m_terms[k]->count();
+
+ for (std::size_t i = 0; i < count; i++)
+ {
+ m_terms[k]->terms()[i]->set_ptrs(&m_gtn[k][i], &m_gonn[k][i], &m_Idrn[k][i]);
+ m_connected_net_Vn[k][i] = m_terms[k]->terms()[i]->otherterm()->net().Q_Analog_state_ptr();
+ }
+ }
+ }
+
+ template <typename AP, typename FT>
+ void fill_matrix(std::size_t N, AP &tcr, FT &RHS)
+ {
+ for (std::size_t k = 0; k < N; k++)
+ {
+ auto *net = m_terms[k].get();
+ auto **tcr_r = &(tcr[k][0]);
+
+ const std::size_t term_count = net->count();
+ const std::size_t railstart = net->m_railstart;
+ const auto &go = m_gonn[k];
+ const auto &gt = m_gtn[k];
+ const auto &Idr = m_Idrn[k];
+ const auto &cnV = m_connected_net_Vn[k];
+
+ for (std::size_t i = 0; i < railstart; i++)
+ *tcr_r[i] += go[i];
+
+ typename FT::value_type gtot_t = 0.0;
+ typename FT::value_type RHS_t = 0.0;
+
+ for (std::size_t i = 0; i < term_count; i++)
+ {
+ gtot_t += gt[i];
+ RHS_t += Idr[i];
+ }
+ // FIXME: Code above is faster than vec_sum - Check this
+ #if 0
+ auto gtot_t = plib::vec_sum<FT>(term_count, m_gt);
+ auto RHS_t = plib::vec_sum<FT>(term_count, m_Idr);
+ #endif
+
+ for (std::size_t i = railstart; i < term_count; i++)
+ {
+ RHS_t += (/*m_Idr[i]*/ (- go[i]) * *cnV[i]);
+ }
+
+ RHS[k] = RHS_t;
+ // update diagonal element ...
+ *tcr_r[railstart] += gtot_t; //mat.A[mat.diag[k]] += gtot_t;
+ }
+
+ }
+
+ template <typename T>
+ using aligned_alloc = plib::aligned_allocator<T, PALIGN_VECTOROPT>;
+
+ plib::pmatrix2d<nl_double, aligned_alloc<nl_double>> m_gonn;
+ plib::pmatrix2d<nl_double, aligned_alloc<nl_double>> m_gtn;
+ plib::pmatrix2d<nl_double, aligned_alloc<nl_double>> m_Idrn;
+ plib::pmatrix2d<nl_double *, aligned_alloc<nl_double *>> m_mat_ptr;
+ plib::pmatrix2d<nl_double *, aligned_alloc<nl_double *>> m_connected_net_Vn;
+
+ plib::pmatrix2d<nl_double> m_test;
+
std::vector<plib::unique_ptr<terms_for_net_t>> m_terms;
std::vector<analog_net_t *> m_nets;
std::vector<poolptr<proxied_analog_output_t>> m_inps;
@@ -284,7 +325,7 @@ namespace devices
const std::size_t terms_count = terms->count();
const std::size_t railstart = terms->m_railstart;
- const float_type * const gt = terms->gt();
+ const float_type * const gt = m_gtn[k];
{
float_type akk = 0.0;
@@ -294,11 +335,11 @@ namespace devices
Ak[k] = akk;
}
- const float_type * const go = terms->go();
- int * net_other = terms->connected_net_idx();
+ const float_type * const go = m_gonn[k];
+ int * net_other = terms->m_connected_net_idx.data();
for (std::size_t i = 0; i < railstart; i++)
- Ak[net_other[i]] -= go[i];
+ Ak[net_other[i]] += go[i];
}
}
@@ -315,16 +356,16 @@ namespace devices
float_type rhsk_b = 0.0;
const std::size_t terms_count = m_terms[k]->count();
- const float_type * const go = m_terms[k]->go();
- const float_type * const Idr = m_terms[k]->Idr();
- const float_type * const * other_cur_analog = m_terms[k]->connected_net_V();
+ const float_type * const go = m_gonn[k];
+ const float_type * const Idr = m_Idrn[k];
+ const float_type * const * other_cur_analog = m_connected_net_Vn[k];
for (std::size_t i = 0; i < terms_count; i++)
rhsk_a = rhsk_a + Idr[i];
for (std::size_t i = m_terms[k]->m_railstart; i < terms_count; i++)
//rhsk = rhsk + go[i] * terms[i]->m_otherterm->net().as_analog().Q_Analog();
- rhsk_b = rhsk_b + go[i] * *other_cur_analog[i];
+ rhsk_b = rhsk_b - go[i] * *other_cur_analog[i];
child.RHS(k) = rhsk_a + rhsk_b;
}
diff --git a/src/lib/netlist/solver/nld_ms_direct.h b/src/lib/netlist/solver/nld_ms_direct.h
index c0995d99e54..0e3cd677ef7 100644
--- a/src/lib/netlist/solver/nld_ms_direct.h
+++ b/src/lib/netlist/solver/nld_ms_direct.h
@@ -8,10 +8,10 @@
#ifndef NLD_MS_DIRECT_H_
#define NLD_MS_DIRECT_H_
-#include <algorithm>
-#include <cmath>
#include "plib/mat_cr.h"
#include "plib/vector_ops.h"
+#include <algorithm>
+#include <cmath>
#include "nld_matrix_solver.h"
#include "nld_solver.h"
diff --git a/src/lib/netlist/solver/nld_ms_gcr.h b/src/lib/netlist/solver/nld_ms_gcr.h
index 0a9f720f104..19dea107bc9 100644
--- a/src/lib/netlist/solver/nld_ms_gcr.h
+++ b/src/lib/netlist/solver/nld_ms_gcr.h
@@ -12,11 +12,11 @@
#include "plib/mat_cr.h"
+#include "nld_ms_direct.h"
+#include "nld_solver.h"
#include "plib/pdynlib.h"
#include "plib/pstream.h"
#include "plib/vector_ops.h"
-#include "nld_ms_direct.h"
-#include "nld_solver.h"
#include <algorithm>
@@ -66,9 +66,6 @@ private:
plib::parray<FT, SIZE> RHS;
plib::parray<FT, SIZE> new_V;
- std::array<plib::aligned_vector<FT *, PALIGN_VECTOROPT>, storage_N> m_term_cr;
-// std::array<std::vector<FT *>, storage_N> m_term_cr;
-
mat_type mat;
//extsolver m_proc;
@@ -163,20 +160,21 @@ void matrix_solver_GCR_t<FT, SIZE>::vsetup(analog_net_t::list_t &nets)
for (mat_index_type k=0; k<iN; k++)
{
- m_term_cr[k].clear();
+ std::size_t cnt(0);
/* build pointers into the compressed row format matrix for each terminal */
for (std::size_t j=0; j< this->m_terms[k]->m_railstart;j++)
{
- int other = this->m_terms[k]->connected_net_idx()[j];
+ int other = this->m_terms[k]->m_connected_net_idx[j];
for (auto i = mat.row_idx[k]; i < mat.row_idx[k+1]; i++)
if (other == static_cast<int>(mat.col_idx[i]))
{
- m_term_cr[k].push_back(&mat.A[i]);
+ m_mat_ptr[k][j] = &mat.A[i];
+ cnt++;
break;
}
}
- nl_assert(m_term_cr[k].size() == this->m_terms[k]->m_railstart);
- m_term_cr[k].push_back(&mat.A[mat.diag[k]]);
+ nl_assert(cnt == this->m_terms[k]->m_railstart);
+ m_mat_ptr[k][this->m_terms[k]->m_railstart] = &mat.A[mat.diag[k]];
}
this->log().verbose("maximum fill: {1}", gr.first);
@@ -296,8 +294,8 @@ unsigned matrix_solver_GCR_t<FT, SIZE>::vsolve_non_dynamic(const bool newton_rap
mat.set_scalar(0.0);
/* populate matrix */
- for (std::size_t k = 0; k < iN; k++)
- this->m_terms[k]->fill_matrix(m_term_cr[k], RHS[k]);
+
+ this->fill_matrix(iN, m_mat_ptr, RHS);
/* now solve it */
diff --git a/src/lib/netlist/solver/nld_ms_gmres.h b/src/lib/netlist/solver/nld_ms_gmres.h
index bee5c25e3d5..2ff515ebda7 100644
--- a/src/lib/netlist/solver/nld_ms_gmres.h
+++ b/src/lib/netlist/solver/nld_ms_gmres.h
@@ -8,12 +8,12 @@
#ifndef NLD_MS_GMRES_H_
#define NLD_MS_GMRES_H_
+#include "nld_ms_direct.h"
+#include "nld_solver.h"
#include "plib/gmres.h"
#include "plib/mat_cr.h"
#include "plib/parray.h"
#include "plib/vector_ops.h"
-#include "nld_ms_direct.h"
-#include "nld_solver.h"
#include <algorithm>
#include <cmath>
@@ -37,7 +37,6 @@ namespace devices
*/
matrix_solver_GMRES_t(netlist_state_t &anetlist, const pstring &name, const solver_parameters_t *params, const std::size_t size)
: matrix_solver_direct_t<FT, SIZE>(anetlist, name, matrix_solver_t::PREFER_BAND_MATRIX, params, size)
- , m_term_cr(size)
//, m_ops(size, 2)
, m_ops(size, 4)
, m_gmres(size)
@@ -51,9 +50,7 @@ namespace devices
using mattype = typename plib::matrix_compressed_rows_t<FT, SIZE>::index_type;
- plib::parray<plib::aligned_vector<FT *, PALIGN_VECTOROPT>, SIZE> m_term_cr;
plib::mat_precondition_ILU<FT, SIZE> m_ops;
- //plib::mat_precondition_diag<FT, SIZE> m_ops;
plib::gmres_t<FT, SIZE> m_gmres;
};
@@ -86,17 +83,19 @@ namespace devices
for (std::size_t k=0; k<iN; k++)
{
+ std::size_t cnt = 0;
for (std::size_t j=0; j< this->m_terms[k]->m_railstart;j++)
{
for (std::size_t i = m_ops.m_mat.row_idx[k]; i<m_ops.m_mat.row_idx[k+1]; i++)
- if (this->m_terms[k]->connected_net_idx()[j] == static_cast<int>(m_ops.m_mat.col_idx[i]))
+ if (this->m_terms[k]->m_connected_net_idx[j] == static_cast<int>(m_ops.m_mat.col_idx[i]))
{
- m_term_cr[k].push_back(&m_ops.m_mat.A[i]);
+ this->m_mat_ptr[k][j] = &m_ops.m_mat.A[i];
+ cnt++;
break;
}
}
- nl_assert(m_term_cr[k].size() == this->m_terms[k]->m_railstart);
- m_term_cr[k].push_back(&m_ops.m_mat.A[m_ops.m_mat.diag[k]]);
+ nl_assert(cnt == this->m_terms[k]->m_railstart);
+ this->m_mat_ptr[k][this->m_terms[k]->m_railstart] = &m_ops.m_mat.A[m_ops.m_mat.diag[k]];
}
}
@@ -111,9 +110,10 @@ namespace devices
m_ops.m_mat.set_scalar(0.0);
/* populate matrix and V for first estimate */
+ this->fill_matrix(iN, this->m_mat_ptr, RHS);
+
for (std::size_t k = 0; k < iN; k++)
{
- this->m_terms[k]->fill_matrix(m_term_cr[k], RHS[k]);
this->m_new_V[k] = this->m_nets[k]->Q_Analog();
}
diff --git a/src/lib/netlist/solver/nld_ms_sm.h b/src/lib/netlist/solver/nld_ms_sm.h
index 6c0f610e3f2..9d5b4e0843a 100644
--- a/src/lib/netlist/solver/nld_ms_sm.h
+++ b/src/lib/netlist/solver/nld_ms_sm.h
@@ -35,9 +35,9 @@
#include <algorithm>
-#include "plib/vector_ops.h"
#include "nld_matrix_solver.h"
#include "nld_solver.h"
+#include "plib/vector_ops.h"
namespace netlist
{
diff --git a/src/lib/netlist/solver/nld_ms_sor.h b/src/lib/netlist/solver/nld_ms_sor.h
index a1893644084..fd1df9d6759 100644
--- a/src/lib/netlist/solver/nld_ms_sor.h
+++ b/src/lib/netlist/solver/nld_ms_sor.h
@@ -85,10 +85,10 @@ unsigned matrix_solver_SOR_t<FT, SIZE>::vsolve_non_dynamic(const bool newton_rap
float_type RHS_t = 0.0;
const std::size_t term_count = this->m_terms[k]->count();
- const float_type * const gt = this->m_terms[k]->gt();
- const float_type * const go = this->m_terms[k]->go();
- const float_type * const Idr = this->m_terms[k]->Idr();
- auto other_cur_analog = this->m_terms[k]->connected_net_V();
+ const float_type * const gt = this->m_gtn[k];
+ const float_type * const go = this->m_gonn[k];
+ const float_type * const Idr = this->m_Idrn[k];
+ auto other_cur_analog = this->m_connected_net_Vn[k];
this->m_new_V[k] = this->m_nets[k]->Q_Analog();
@@ -99,7 +99,7 @@ unsigned matrix_solver_SOR_t<FT, SIZE>::vsolve_non_dynamic(const bool newton_rap
}
for (std::size_t i = this->m_terms[k]->m_railstart; i < term_count; i++)
- RHS_t = RHS_t + go[i] * *other_cur_analog[i];
+ RHS_t = RHS_t - go[i] * *other_cur_analog[i];
RHS[k] = RHS_t;
@@ -134,13 +134,13 @@ unsigned matrix_solver_SOR_t<FT, SIZE>::vsolve_non_dynamic(const bool newton_rap
float_type err = 0;
for (std::size_t k = 0; k < iN; k++)
{
- const int * net_other = this->m_terms[k]->connected_net_idx();
+ const int * net_other = this->m_terms[k]->m_connected_net_idx.data();
const std::size_t railstart = this->m_terms[k]->m_railstart;
- const float_type * go = this->m_terms[k]->go();
+ const float_type * go = this->m_gonn[k];
float_type Idrive = 0.0;
for (std::size_t i = 0; i < railstart; i++)
- Idrive = Idrive + go[i] * this->m_new_V[static_cast<std::size_t>(net_other[i])];
+ Idrive = Idrive - go[i] * this->m_new_V[static_cast<std::size_t>(net_other[i])];
const float_type new_val = this->m_new_V[k] * one_m_w[k] + (Idrive + RHS[k]) * w[k];
diff --git a/src/lib/netlist/solver/nld_ms_w.h b/src/lib/netlist/solver/nld_ms_w.h
index 584d50fdb15..76225724a21 100644
--- a/src/lib/netlist/solver/nld_ms_w.h
+++ b/src/lib/netlist/solver/nld_ms_w.h
@@ -42,9 +42,9 @@
#include <algorithm>
-#include "plib/vector_ops.h"
#include "nld_matrix_solver.h"
#include "nld_solver.h"
+#include "plib/vector_ops.h"
namespace netlist
{
diff --git a/src/lib/netlist/solver/nld_solver.cpp b/src/lib/netlist/solver/nld_solver.cpp
index 77bf710c9c9..d9685f24ae0 100644
--- a/src/lib/netlist/solver/nld_solver.cpp
+++ b/src/lib/netlist/solver/nld_solver.cpp
@@ -192,7 +192,7 @@ poolptr<matrix_solver_t> NETLIB_NAME(solver)::create_solver_x(std::size_t size,
else
return this->create_solver_x<FT, SIZE / 2>(size, solvername);
}
-};
+}
struct net_splitter
{
diff --git a/src/lib/netlist/solver/nld_solver.h b/src/lib/netlist/solver/nld_solver.h
index fb6d05fbbcb..8b1f1f0b96d 100644
--- a/src/lib/netlist/solver/nld_solver.h
+++ b/src/lib/netlist/solver/nld_solver.h
@@ -9,8 +9,8 @@
#define NLD_SOLVER_H_
#include "netlist/nl_base.h"
-#include "plib/pstream.h"
#include "nld_matrix_solver.h"
+#include "plib/pstream.h"
#include <map>
#include <memory>
diff --git a/src/lib/netlist/tools/nl_convert.cpp b/src/lib/netlist/tools/nl_convert.cpp
index a9e17d56120..d6d5f3e2e01 100644
--- a/src/lib/netlist/tools/nl_convert.cpp
+++ b/src/lib/netlist/tools/nl_convert.cpp
@@ -6,8 +6,8 @@
*/
#include "plib/palloc.h"
-#include "plib/putil.h"
#include "nl_convert.h"
+#include "plib/putil.h"
#include <algorithm>
#include <cmath>
#include <unordered_map>
diff --git a/src/mame/drivers/acrnsys.cpp b/src/mame/drivers/acrnsys.cpp
index f24b1a4f120..e7dcea8a45a 100644
--- a/src/mame/drivers/acrnsys.cpp
+++ b/src/mame/drivers/acrnsys.cpp
@@ -437,7 +437,7 @@ void acrnsys_state::acrnsys2(machine_config &config)
/* Acorn Bus - 8 Slot Backplane */
ACORN_BUS(config, m_bus, 0);
- m_bus->set_cputag(m_maincpu);
+ m_bus->set_space(m_maincpu, AS_PROGRAM);
m_bus->out_irq_callback().set(m_irqs, FUNC(input_merger_device::in_w<1>));
m_bus->out_nmi_callback().set(FUNC(acrnsys_state::bus_nmi_w));
ACORN_BUS_SLOT(config, "bus1", m_bus, acorn_bus_devices, "8k"); // 0x2000-0x3fff
@@ -461,7 +461,7 @@ void acrnsys_state::acrnsys3(machine_config &config)
/* Acorn Bus - 8 Slot Backplane */
ACORN_BUS(config, m_bus, 0);
- m_bus->set_cputag(m_maincpu);
+ m_bus->set_space(m_maincpu, AS_PROGRAM);
m_bus->out_irq_callback().set(m_irqs, FUNC(input_merger_device::in_w<1>));
m_bus->out_nmi_callback().set(FUNC(acrnsys_state::bus_nmi_w));
ACORN_BUS_SLOT(config, "bus1", m_bus, acorn_bus_devices, "8k"); // 0x2000-0x3fff
@@ -485,7 +485,7 @@ void acrnsys_state::acrnsys3_6809(machine_config &config)
/* Acorn Bus - 8 Slot Backplane */
ACORN_BUS(config, m_bus, 0);
- m_bus->set_cputag(m_maincpu);
+ m_bus->set_space(m_maincpu, AS_PROGRAM);
m_bus->out_irq_callback().set(m_irqs, FUNC(input_merger_device::in_w<1>));
m_bus->out_nmi_callback().set(FUNC(acrnsys_state::bus_nmi_w));
ACORN_BUS_SLOT(config, "bus1", m_bus, acorn_bus_devices, "8k"); // 0x0000-0x1fff
@@ -508,7 +508,7 @@ void acrnsys_state::acrnsys4(machine_config &config)
/* Acorn Bus - 14 Slot Backplane */
ACORN_BUS(config, m_bus, 0);
- m_bus->set_cputag(m_maincpu);
+ m_bus->set_space(m_maincpu, AS_PROGRAM);
m_bus->out_irq_callback().set(m_irqs, FUNC(input_merger_device::in_w<1>));
m_bus->out_nmi_callback().set(FUNC(acrnsys_state::bus_nmi_w));
ACORN_BUS_SLOT(config, "bus1", m_bus, acorn_bus_devices, "8k"); // 0x2000-0x3fff
@@ -538,7 +538,7 @@ void acrnsys_state::acrnsys5(machine_config &config)
/* Acorn Bus - 7 Slot Backplane */
ACORN_BUS(config, m_bus, 0);
- m_bus->set_cputag(m_maincpu);
+ m_bus->set_space(m_maincpu, AS_PROGRAM);
m_bus->out_irq_callback().set(m_irqs, FUNC(input_merger_device::in_w<1>));
m_bus->out_nmi_callback().set(FUNC(acrnsys_state::bus_nmi_w));
ACORN_BUS_SLOT(config, "bus1", m_bus, acorn_bus_devices, "32k"); // 32K
diff --git a/src/mame/drivers/apc.cpp b/src/mame/drivers/apc.cpp
index a1311fbc024..1e9a44801cf 100644
--- a/src/mame/drivers/apc.cpp
+++ b/src/mame/drivers/apc.cpp
@@ -344,9 +344,9 @@ READ8_MEMBER(apc_state::apc_gdc_r)
uint8_t res;
if(offset & 1)
- res = m_hgdc2->read(space, (offset & 2) >> 1); // upd7220 bitmap port
+ res = m_hgdc2->read((offset & 2) >> 1); // upd7220 bitmap port
else
- res = m_hgdc1->read(space, (offset & 2) >> 1); // upd7220 character port
+ res = m_hgdc1->read((offset & 2) >> 1); // upd7220 character port
return res;
}
@@ -354,9 +354,9 @@ READ8_MEMBER(apc_state::apc_gdc_r)
WRITE8_MEMBER(apc_state::apc_gdc_w)
{
if(offset & 1)
- m_hgdc2->write(space, (offset & 2) >> 1,data); // upd7220 bitmap port
+ m_hgdc2->write((offset & 2) >> 1,data); // upd7220 bitmap port
else
- m_hgdc1->write(space, (offset & 2) >> 1,data); // upd7220 character port
+ m_hgdc1->write((offset & 2) >> 1,data); // upd7220 character port
}
READ8_MEMBER(apc_state::apc_kbd_r)
diff --git a/src/mame/drivers/attckufo.cpp b/src/mame/drivers/attckufo.cpp
index b2b120b85c4..3f2e507c411 100644
--- a/src/mame/drivers/attckufo.cpp
+++ b/src/mame/drivers/attckufo.cpp
@@ -119,9 +119,10 @@ READ8_MEMBER(attckufo_state::vic_colorram_r)
// MACHINE DEFINTIONS
//**************************************************************************
-MACHINE_CONFIG_START(attckufo_state::attckufo)
- MCFG_DEVICE_ADD("maincpu", M6502, XTAL(14'318'181) / 14)
- MCFG_DEVICE_PROGRAM_MAP(cpu_map)
+void attckufo_state::attckufo(machine_config &config)
+{
+ M6502(config, m_maincpu, XTAL(14'318'181) / 14);
+ m_maincpu->set_addrmap(AS_PROGRAM, &attckufo_state::cpu_map);
pia6821_device &pia(PIA6821(config, "pia", 0));
pia.readpa_handler().set_ioport("DSW");
@@ -129,19 +130,19 @@ MACHINE_CONFIG_START(attckufo_state::attckufo)
SPEAKER(config, "mono").front_center();
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(MOS6560_VRETRACERATE)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_SIZE((MOS6560_XSIZE + 7) & ~7, MOS6560_YSIZE)
- MCFG_SCREEN_VISIBLE_AREA(0, 23*8 - 1, 0, 22*8 - 1)
- MCFG_SCREEN_UPDATE_DEVICE("mos6560", mos6560_device, screen_update)
-
- MCFG_DEVICE_ADD("mos6560", MOS656X_ATTACK_UFO, XTAL(14'318'181) / 14)
- MCFG_VIDEO_SET_SCREEN("screen")
- MCFG_DEVICE_ADDRESS_MAP(0, vic_videoram_map)
- MCFG_DEVICE_ADDRESS_MAP(1, vic_colorram_map)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(MOS6560_VRETRACERATE);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
+ screen.set_size((MOS6560_XSIZE + 7) & ~7, MOS6560_YSIZE);
+ screen.set_visarea(0, 23*8 - 1, 0, 22*8 - 1);
+ screen.set_screen_update("mos6560", FUNC(mos6560_device::screen_update));
+
+ mos6560_device &mos6560(MOS656X_ATTACK_UFO(config, "mos6560", XTAL(14'318'181) / 14));
+ mos6560.set_screen("screen");
+ mos6560.set_addrmap(0, &attckufo_state::vic_videoram_map);
+ mos6560.set_addrmap(1, &attckufo_state::vic_colorram_map);
+ mos6560.add_route(ALL_OUTPUTS, "mono", 0.25);
+}
//**************************************************************************
diff --git a/src/mame/drivers/bw2.cpp b/src/mame/drivers/bw2.cpp
index 65d3a307e3c..0d8430fe6fe 100644
--- a/src/mame/drivers/bw2.cpp
+++ b/src/mame/drivers/bw2.cpp
@@ -108,7 +108,7 @@ READ8_MEMBER( bw2_state::read )
data = m_ram->pointer()[offset];
}
- return m_exp->cd_r(space, offset, data, ram2, ram3, ram4, ram5, ram6);
+ return m_exp->cd_r(offset, data, ram2, ram3, ram4, ram5, ram6);
}
@@ -159,7 +159,7 @@ WRITE8_MEMBER( bw2_state::write )
m_ram->pointer()[offset] = data;
}
- m_exp->cd_w(space, offset, data, ram2, ram3, ram4, ram5, ram6);
+ m_exp->cd_w(offset, data, ram2, ram3, ram4, ram5, ram6);
}
@@ -542,19 +542,21 @@ void bw2_state::machine_start()
// MACHINE_CONFIG( bw2 )
//-------------------------------------------------
-MACHINE_CONFIG_START(bw2_state::bw2)
+void bw2_state::bw2(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD(Z80_TAG, Z80, 16_MHz_XTAL / 4)
- MCFG_DEVICE_PROGRAM_MAP(bw2_mem)
- MCFG_DEVICE_IO_MAP(bw2_io)
+ Z80(config, m_maincpu, 16_MHz_XTAL / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &bw2_state::bw2_mem);
+ m_maincpu->set_addrmap(AS_IO, &bw2_state::bw2_io);
// video hardware
- MCFG_SCREEN_ADD(SCREEN_TAG, LCD)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_DEVICE( MSM6255_TAG, msm6255_device, screen_update )
- MCFG_SCREEN_SIZE(640, 200)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(60);
+ screen.set_screen_update(MSM6255_TAG, FUNC(msm6255_device::screen_update));
+ screen.set_size(640, 200);
+ screen.set_visarea(0, 640-1, 0, 200-1);
+ screen.set_palette("palette");
+
PALETTE(config, "palette", FUNC(bw2_state::bw2_palette), 2);
// devices
@@ -573,9 +575,9 @@ MACHINE_CONFIG_START(bw2_state::bw2)
ppi.in_pc_callback().set(FUNC(bw2_state::ppi_pc_r));
ppi.out_pc_callback().set(FUNC(bw2_state::ppi_pc_w));
- MCFG_DEVICE_ADD(MSM6255_TAG, MSM6255, 16_MHz_XTAL)
- MCFG_DEVICE_ADDRESS_MAP(0, lcdc_map)
- MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
+ MSM6255(config, m_lcdc, 16_MHz_XTAL);
+ m_lcdc->set_addrmap(0, &bw2_state::lcdc_map);
+ m_lcdc->set_screen(SCREEN_TAG);
CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->busy_handler().set(FUNC(bw2_state::write_centronics_busy));
@@ -605,7 +607,7 @@ MACHINE_CONFIG_START(bw2_state::bw2)
// internal ram
RAM(config, RAM_TAG).set_default_size("64K").set_extra_options("96K,128K,160K,192K,224K");
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/c2color.cpp b/src/mame/drivers/c2color.cpp
index 092a68715e9..4164553a1a2 100644
--- a/src/mame/drivers/c2color.cpp
+++ b/src/mame/drivers/c2color.cpp
@@ -3,24 +3,24 @@
/******************************************************************************
basic information
- https://gbatemp.net/threads/the-c2-color-game-console-an-obscure-chinese-handheld.509320/
+ https://gbatemp.net/threads/the-c2-color-game-console-an-obscure-chinese-handheld.509320/
- "The C2 is a glorious console with a D-Pad, Local 2.4GHz WiFi, Cartridge slot, A, B, and C buttons,
- and has micro usb power! Don't be fooled though, there is no lithium battery, so you have to put in
- 3 AA batteries if you don't want to play with it tethered to a charger.
+ "The C2 is a glorious console with a D-Pad, Local 2.4GHz WiFi, Cartridge slot, A, B, and C buttons,
+ and has micro usb power! Don't be fooled though, there is no lithium battery, so you have to put in
+ 3 AA batteries if you don't want to play with it tethered to a charger.
It comes with a built in game based on the roco kingdom characters.
In addition, there is a slot on the side of the console allowing cards to be swiped through. Those
- cards can add characters to the game. The console scans the barcode and a new character or item appears in the game for you to use.
+ cards can add characters to the game. The console scans the barcode and a new character or item appears in the game for you to use.
The C2 comes with 9 holographic game cards that will melt your eyes."
- also includes a link to the following video
- https://www.youtube.com/watch?v=D3XO4aTZEko
+ also includes a link to the following video
+ https://www.youtube.com/watch?v=D3XO4aTZEko
- TODO:
- identify CPU type, and if the system ROM is needed to run carts or not
+ TODO:
+ identify CPU type, and if the system ROM is needed to run carts or not
*******************************************************************************/
diff --git a/src/mame/drivers/cdi.cpp b/src/mame/drivers/cdi.cpp
index 2230ba8a0cc..6df32896e33 100644
--- a/src/mame/drivers/cdi.cpp
+++ b/src/mame/drivers/cdi.cpp
@@ -748,86 +748,88 @@ WRITE8_MEMBER( cdi_state::slave_io_w )
*************************/
// CD-i Mono-I system base
-MACHINE_CONFIG_START(cdi_state::cdimono1_base)
- MCFG_DEVICE_ADD("maincpu", SCC68070, CLOCK_A/2)
- MCFG_DEVICE_PROGRAM_MAP(cdimono1_mem)
+void cdi_state::cdimono1_base(machine_config &config)
+{
+ SCC68070(config, m_maincpu, CLOCK_A/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &cdi_state::cdimono1_mem);
- MCFG_DEVICE_ADD("mcd212", MCD212, 0)
- MCFG_VIDEO_SET_SCREEN("screen")
+ MCD212(config, m_mcd212, 0);
+ m_mcd212->set_screen("screen");
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(384, 302)
- MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 22, 302-1) // TODO: dynamic resolution
- MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(384, 302);
+ screen.set_visarea(0, 384-1, 22, 302-1); // TODO: dynamic resolution
+ screen.set_screen_update(FUNC(cdi_state::screen_update_cdimono1));
- MCFG_SCREEN_ADD("lcd", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(192, 22)
- MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 22-1)
- MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1_lcd)
+ SCREEN(config, m_lcd, SCREEN_TYPE_RASTER);
+ m_lcd->set_refresh_hz(60);
+ m_lcd->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_lcd->set_size(192, 22);
+ m_lcd->set_visarea(0, 192-1, 0, 22-1);
+ m_lcd->set_screen_update(FUNC(cdi_state::screen_update_cdimono1_lcd));
- MCFG_PALETTE_ADD("palette", 0x100)
+ PALETTE(config, "palette").set_entries(0x100);
config.set_default_layout(layout_cdi);
- MCFG_DEVICE_ADD("scc68070", CDI_68070, 0, "maincpu")
+ CDI_68070(config, m_scc, 0, "maincpu");
- MCFG_DEVICE_ADD("cdic", CDI_CDIC, 0)
- MCFG_DEVICE_ADD("slave_hle", CDI_SLAVE, 0)
+ CDI_CDIC(config, m_cdic, 0);
+ CDI_SLAVE(config, m_slave_hle, 0);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD( "dac1", DMADAC )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "lspeaker", 1.0 )
+ DMADAC(config, m_dmadac[0]);
+ m_dmadac[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
- MCFG_DEVICE_ADD( "dac2", DMADAC )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "rspeaker", 1.0 )
+ DMADAC(config, m_dmadac[1]);
+ m_dmadac[1]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- MCFG_DEVICE_ADD( "cdda", CDDA )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "lspeaker", 1.0 )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "rspeaker", 1.0 )
+ CDDA(config, m_cdda);
+ m_cdda->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_cdda->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- MCFG_DEVICE_ADD("mk48t08", MK48T08, 0)
-MACHINE_CONFIG_END
+ MK48T08(config, "mk48t08", 0);
+}
// CD-i model 220 (Mono-II, NTSC)
-MACHINE_CONFIG_START(cdi_state::cdimono2)
- MCFG_DEVICE_ADD("maincpu", SCC68070, CLOCK_A/2)
- MCFG_DEVICE_PROGRAM_MAP(cdimono2_mem)
+void cdi_state::cdimono2(machine_config &config)
+{
+ SCC68070(config, m_maincpu, CLOCK_A/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &cdi_state::cdimono2_mem);
- MCFG_DEVICE_ADD("mcd212", MCD212, 0)
- MCFG_VIDEO_SET_SCREEN("screen")
+ MCD212(config, m_mcd212, 0);
+ m_mcd212->set_screen("screen");
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(384, 302)
- MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 22, 302-1) // TODO: dynamic resolution
- MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(384, 302);
+ screen.set_visarea(0, 384-1, 22, 302-1); // TODO: dynamic resolution
+ screen.set_screen_update(FUNC(cdi_state::screen_update_cdimono1));
- MCFG_SCREEN_ADD("lcd", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(192, 22)
- MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 22-1)
- MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1_lcd)
+ SCREEN(config, m_lcd, SCREEN_TYPE_RASTER);
+ m_lcd->set_refresh_hz(60);
+ m_lcd->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_lcd->set_size(192, 22);
+ m_lcd->set_visarea(0, 192-1, 0, 22-1);
+ m_lcd->set_screen_update(FUNC(cdi_state::screen_update_cdimono1_lcd));
- MCFG_PALETTE_ADD("palette", 0x100)
+ PALETTE(config, "palette").set_entries(0x100);
config.set_default_layout(layout_cdi);
MCFG_MACHINE_RESET_OVERRIDE( cdi_state, cdimono2 )
- MCFG_DEVICE_ADD("scc68070", CDI_68070, 0, "maincpu")
- MCFG_DEVICE_ADD("servo", M68HC05EG, 2000000) /* Unknown clock speed, docs say 2MHz internal clock */
- MCFG_DEVICE_PROGRAM_MAP(cdimono2_servo_mem)
- MCFG_DEVICE_ADD("slave", M68HC05EG, 2000000) /* Unknown clock speed, docs say 2MHz internal clock */
- MCFG_DEVICE_PROGRAM_MAP(cdimono2_slave_mem)
+ CDI_68070(config, m_scc, 0, "maincpu");
+ M68HC05EG(config, m_servo, 2000000); /* Unknown clock speed, docs say 2MHz internal clock */
+ m_servo->set_addrmap(AS_PROGRAM, &cdi_state::cdimono2_servo_mem);
+ M68HC05EG(config, m_slave, 2000000); /* Unknown clock speed, docs say 2MHz internal clock */
+ m_slave->set_addrmap(AS_PROGRAM, &cdi_state::cdimono2_slave_mem);
CDROM(config, "cdrom").set_interface("cdi_cdrom");
SOFTWARE_LIST(config, "cd_list").set_original("cdi").set_filter("!DVC");
@@ -836,51 +838,52 @@ MACHINE_CONFIG_START(cdi_state::cdimono2)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD( "dac1", DMADAC )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "lspeaker", 1.0 )
+ DMADAC(config, m_dmadac[0]);
+ m_dmadac[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
- MCFG_DEVICE_ADD( "dac2", DMADAC )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "rspeaker", 1.0 )
+ DMADAC(config, m_dmadac[1]);
+ m_dmadac[1]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- MCFG_DEVICE_ADD( "cdda", CDDA )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "lspeaker", 1.0 )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "rspeaker", 1.0 )
+ CDDA(config, m_cdda);
+ m_cdda->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_cdda->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- MCFG_DEVICE_ADD("mk48t08", MK48T08, 0)
-MACHINE_CONFIG_END
+ MK48T08(config, "mk48t08", 0);
+}
-MACHINE_CONFIG_START(cdi_state::cdi910)
- MCFG_DEVICE_ADD("maincpu", SCC68070, CLOCK_A/2)
- MCFG_DEVICE_PROGRAM_MAP(cdi910_mem)
+void cdi_state::cdi910(machine_config &config)
+{
+ SCC68070(config, m_maincpu, CLOCK_A/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &cdi_state::cdi910_mem);
- MCFG_DEVICE_ADD("mcd212", MCD212, 0)
- MCFG_VIDEO_SET_SCREEN("screen")
+ MCD212(config, m_mcd212, 0);
+ m_mcd212->set_screen("screen");
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(384, 302)
- MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 22, 302-1) // TODO: dynamic resolution
- MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(384, 302);
+ screen.set_visarea(0, 384-1, 22, 302-1); // TODO: dynamic resolution
+ screen.set_screen_update(FUNC(cdi_state::screen_update_cdimono1));
- MCFG_SCREEN_ADD("lcd", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(192, 22)
- MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 22-1)
- MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1_lcd)
+ SCREEN(config, m_lcd, SCREEN_TYPE_RASTER);
+ m_lcd->set_refresh_hz(60);
+ m_lcd->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_lcd->set_size(192, 22);
+ m_lcd->set_visarea(0, 192-1, 0, 22-1);
+ m_lcd->set_screen_update(FUNC(cdi_state::screen_update_cdimono1_lcd));
- MCFG_PALETTE_ADD("palette", 0x100)
+ PALETTE(config, "palette").set_entries(0x100);
config.set_default_layout(layout_cdi);
MCFG_MACHINE_RESET_OVERRIDE( cdi_state, cdimono2 )
- MCFG_DEVICE_ADD("scc68070", CDI_68070, 0, "maincpu")
- MCFG_DEVICE_ADD("servo", M68HC05EG, 2000000) /* Unknown clock speed, docs say 2MHz internal clock */
- MCFG_DEVICE_PROGRAM_MAP(cdimono2_servo_mem)
- MCFG_DEVICE_ADD("slave", M68HC05EG, 2000000) /* Unknown clock speed, docs say 2MHz internal clock */
- MCFG_DEVICE_PROGRAM_MAP(cdimono2_slave_mem)
+ CDI_68070(config, m_scc, 0, "maincpu");
+ M68HC05EG(config, m_servo, 2000000); /* Unknown clock speed, docs say 2MHz internal clock */
+ m_servo->set_addrmap(AS_PROGRAM, &cdi_state::cdimono2_servo_mem);
+ M68HC05EG(config, m_slave, 2000000); /* Unknown clock speed, docs say 2MHz internal clock */
+ m_slave->set_addrmap(AS_PROGRAM, &cdi_state::cdimono2_slave_mem);
CDROM(config, "cdrom").set_interface("cdi_cdrom");
SOFTWARE_LIST(config, "cd_list").set_original("cdi").set_filter("!DVC");
@@ -889,34 +892,35 @@ MACHINE_CONFIG_START(cdi_state::cdi910)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD( "dac1", DMADAC )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "lspeaker", 1.0 )
+ DMADAC(config, m_dmadac[0]);
+ m_dmadac[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
- MCFG_DEVICE_ADD( "dac2", DMADAC )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "rspeaker", 1.0 )
+ DMADAC(config, m_dmadac[1]);
+ m_dmadac[1]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- MCFG_DEVICE_ADD( "cdda", CDDA )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "lspeaker", 1.0 )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "rspeaker", 1.0 )
+ CDDA(config, m_cdda);
+ m_cdda->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_cdda->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- MCFG_DEVICE_ADD("mk48t08", MK48T08, 0)
-MACHINE_CONFIG_END
+ MK48T08(config, "mk48t08", 0);
+}
// CD-i Mono-I, with CD-ROM image device (MESS) and Software List (MESS)
-MACHINE_CONFIG_START(cdi_state::cdimono1)
+void cdi_state::cdimono1(machine_config &config)
+{
cdimono1_base(config);
MCFG_MACHINE_RESET_OVERRIDE(cdi_state, cdimono1)
CDROM(config, "cdrom").set_interface("cdi_cdrom");
SOFTWARE_LIST(config, "cd_list").set_original("cdi").set_filter("!DVC");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(cdi_state::quizard)
+void cdi_state::quizard(machine_config &config)
+{
cdimono1_base(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(cdimono1_mem)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cdi_state, mcu_frame)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &cdi_state::cdimono1_mem);
+ m_maincpu->set_vblank_int("screen", FUNC(cdi_state::mcu_frame));
+}
READ8_MEMBER( cdi_state::quizard_mcu_p1_r )
diff --git a/src/mame/drivers/cgenie.cpp b/src/mame/drivers/cgenie.cpp
index 6e61298660a..b8728da66b5 100644
--- a/src/mame/drivers/cgenie.cpp
+++ b/src/mame/drivers/cgenie.cpp
@@ -306,10 +306,6 @@ void cgenie_state::machine_start()
{
// setup ram
m_maincpu->space(AS_PROGRAM).install_ram(0x4000, 0x4000 + m_ram->size() - 1, m_ram->pointer());
-
- // setup expansion bus
- m_exp->set_program_space(&m_maincpu->space(AS_PROGRAM));
- m_exp->set_io_space(&m_maincpu->space(AS_IO));
}
@@ -480,6 +476,8 @@ void cgenie_state::cgenie(machine_config &config)
// cartridge expansion slot
CG_EXP_SLOT(config, m_exp);
+ m_exp->set_program_space(m_maincpu, AS_PROGRAM);
+ m_exp->set_io_space(m_maincpu, AS_IO);
m_exp->int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
// parallel slot
diff --git a/src/mame/drivers/chessmst.cpp b/src/mame/drivers/chessmst.cpp
index 817435988af..0e29d45d49f 100644
--- a/src/mame/drivers/chessmst.cpp
+++ b/src/mame/drivers/chessmst.cpp
@@ -30,16 +30,16 @@
class chessmst_state : public driver_device
{
public:
- chessmst_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag)
- , m_maincpu(*this, "maincpu")
- , m_pia2(*this, "z80pio2")
- , m_speaker(*this, "speaker")
- , m_beeper(*this, "beeper")
- , m_extra(*this, "EXTRA")
- , m_buttons(*this, "BUTTONS")
- , m_digits(*this, "digit%u", 0U)
- , m_leds(*this, "led_%c%u", unsigned('a'), 1U)
+ chessmst_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_pio(*this, "z80pio%u", 0),
+ m_speaker(*this, "speaker"),
+ m_beeper(*this, "beeper"),
+ m_extra(*this, "EXTRA"),
+ m_buttons(*this, "BUTTONS"),
+ m_digits(*this, "digit%u", 0U),
+ m_leds(*this, "led_%c%u", unsigned('a'), 1U)
{ }
DECLARE_INPUT_CHANGED_MEMBER(chessmst_sensor);
@@ -71,7 +71,7 @@ private:
void update_display();
required_device<z80_device> m_maincpu;
- required_device<z80pio_device> m_pia2;
+ required_device_array<z80pio_device, 2> m_pio;
optional_device<speaker_sound_device> m_speaker;
optional_device<beep_device> m_beeper;
required_ioport m_extra;
@@ -109,8 +109,8 @@ void chessmst_state::chessmst_io(address_map &map)
map.unmap_value_high();
map.global_mask(0xff);
//AM_RANGE(0x00, 0x03) AM_MIRROR(0xf0) read/write in both, not used by the software
- map(0x04, 0x07).mirror(0xf0).rw("z80pio1", FUNC(z80pio_device::read), FUNC(z80pio_device::write));
- map(0x08, 0x0b).mirror(0xf0).rw(m_pia2, FUNC(z80pio_device::read), FUNC(z80pio_device::write));
+ map(0x04, 0x07).mirror(0xf0).rw(m_pio[0], FUNC(z80pio_device::read), FUNC(z80pio_device::write));
+ map(0x08, 0x0b).mirror(0xf0).rw(m_pio[1], FUNC(z80pio_device::read), FUNC(z80pio_device::write));
}
void chessmst_state::chessmstdm_io(address_map &map)
@@ -121,8 +121,8 @@ void chessmst_state::chessmstdm_io(address_map &map)
WRITE_LINE_MEMBER( chessmst_state::timer_555_w )
{
- m_pia2->strobe_b(state);
- m_pia2->data_b_write(m_matrix);
+ m_pio[1]->strobe_b(state);
+ m_pio[1]->data_b_write(m_matrix);
}
INPUT_CHANGED_MEMBER(chessmst_state::reset_button)
@@ -237,7 +237,7 @@ static INPUT_PORTS_START( chessmst )
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("New Game [0]") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_ENTER)
PORT_START("EXTRA")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Halt") PORT_CODE(KEYCODE_F2) PORT_WRITE_LINE_DEVICE_MEMBER("z80pio1", z80pio_device, strobe_a) // -> PIO(1) ASTB pin
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Halt") PORT_CODE(KEYCODE_F2) PORT_WRITE_LINE_DEVICE_MEMBER("z80pio0", z80pio_device, strobe_a) // -> PIO(0) ASTB pin
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Reset") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, reset_button, 0) // -> Z80 RESET pin
INPUT_PORTS_END
@@ -368,32 +368,32 @@ WRITE8_MEMBER( chessmst_state::pio2_port_b_w )
static const z80_daisy_config chessmst_daisy_chain[] =
{
- { "z80pio1" },
+ { "z80pio0" },
{ nullptr }
};
static const z80_daisy_config chessmstdm_daisy_chain[] =
{
- { "z80pio2" },
+ { "z80pio1" },
{ nullptr }
};
void chessmst_state::chessmst(machine_config &config)
{
/* basic machine hardware */
- Z80(config, m_maincpu, 9.8304_MHz_XTAL/4); // U880 Z80 clone
+ Z80(config, m_maincpu, 9.8304_MHz_XTAL/4); // UB880 Z80 clone
m_maincpu->set_addrmap(AS_PROGRAM, &chessmst_state::chessmst_mem);
m_maincpu->set_addrmap(AS_IO, &chessmst_state::chessmst_io);
m_maincpu->set_daisy_config(chessmst_daisy_chain);
- z80pio_device& pio1(Z80PIO(config, "z80pio1", 9.8304_MHz_XTAL/4));
- pio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
- pio1.out_pa_callback().set(FUNC(chessmst_state::pio1_port_a_w));
- pio1.out_pb_callback().set(FUNC(chessmst_state::pio1_port_b_w));
+ Z80PIO(config, m_pio[0], 9.8304_MHz_XTAL/4);
+ m_pio[0]->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ m_pio[0]->out_pa_callback().set(FUNC(chessmst_state::pio1_port_a_w));
+ m_pio[0]->out_pb_callback().set(FUNC(chessmst_state::pio1_port_b_w));
- Z80PIO(config, m_pia2, 9.8304_MHz_XTAL/4);
- m_pia2->in_pa_callback().set(FUNC(chessmst_state::pio2_port_a_r));
- m_pia2->out_pb_callback().set(FUNC(chessmst_state::pio2_port_b_w));
+ Z80PIO(config, m_pio[1], 9.8304_MHz_XTAL/4);
+ m_pio[1]->in_pa_callback().set(FUNC(chessmst_state::pio2_port_a_r));
+ m_pio[1]->out_pb_callback().set(FUNC(chessmst_state::pio2_port_b_w));
config.set_default_layout(layout_chessmst);
@@ -405,19 +405,19 @@ void chessmst_state::chessmst(machine_config &config)
void chessmst_state::chessmsta(machine_config &config)
{
/* basic machine hardware */
- Z80(config, m_maincpu, 8_MHz_XTAL/4); // U880 Z80 clone
+ Z80(config, m_maincpu, 8_MHz_XTAL/2); // UA880 Z80 clone
m_maincpu->set_addrmap(AS_PROGRAM, &chessmst_state::chessmst_mem);
m_maincpu->set_addrmap(AS_IO, &chessmst_state::chessmst_io);
m_maincpu->set_daisy_config(chessmst_daisy_chain);
- z80pio_device& pio1(Z80PIO(config, "z80pio1", 8_MHz_XTAL/4));
- pio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
- pio1.out_pa_callback().set(FUNC(chessmst_state::pio1_port_a_w));
- pio1.out_pb_callback().set(FUNC(chessmst_state::pio1_port_b_w));
+ Z80PIO(config, m_pio[0], 8_MHz_XTAL/2);
+ m_pio[0]->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ m_pio[0]->out_pa_callback().set(FUNC(chessmst_state::pio1_port_a_w));
+ m_pio[0]->out_pb_callback().set(FUNC(chessmst_state::pio1_port_b_w));
- Z80PIO(config, m_pia2, 8_MHz_XTAL/4);
- m_pia2->in_pa_callback().set(FUNC(chessmst_state::pio2_port_a_r));
- m_pia2->out_pb_callback().set(FUNC(chessmst_state::pio2_port_b_w));
+ Z80PIO(config, m_pio[1], 8_MHz_XTAL/2);
+ m_pio[1]->in_pa_callback().set(FUNC(chessmst_state::pio2_port_a_r));
+ m_pio[1]->out_pb_callback().set(FUNC(chessmst_state::pio2_port_b_w));
config.set_default_layout(layout_chessmst);
@@ -429,20 +429,20 @@ void chessmst_state::chessmsta(machine_config &config)
void chessmst_state::chessmstdm(machine_config &config)
{
/* basic machine hardware */
- Z80(config, m_maincpu, 8_MHz_XTAL/2); // U880 Z80 clone
+ Z80(config, m_maincpu, 8_MHz_XTAL/2); // UA880 Z80 clone
m_maincpu->set_addrmap(AS_PROGRAM, &chessmst_state::chessmstdm_mem);
m_maincpu->set_addrmap(AS_IO, &chessmst_state::chessmstdm_io);
m_maincpu->set_daisy_config(chessmstdm_daisy_chain);
- z80pio_device& pio1(Z80PIO(config, "z80pio1", 8_MHz_XTAL/4));
- pio1.out_pa_callback().set(FUNC(chessmst_state::pio1_port_a_w));
- pio1.out_pb_callback().set(FUNC(chessmst_state::pio1_port_b_dm_w));
- pio1.in_pb_callback().set_ioport("EXTRA");
+ Z80PIO(config, m_pio[0], 8_MHz_XTAL/2);
+ m_pio[0]->out_pa_callback().set(FUNC(chessmst_state::pio1_port_a_w));
+ m_pio[0]->out_pb_callback().set(FUNC(chessmst_state::pio1_port_b_dm_w));
+ m_pio[0]->in_pb_callback().set_ioport("EXTRA");
- Z80PIO(config, m_pia2, 8_MHz_XTAL/4);
- m_pia2->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
- m_pia2->in_pa_callback().set(FUNC(chessmst_state::pio2_port_a_r));
- m_pia2->out_pb_callback().set(FUNC(chessmst_state::pio2_port_b_w));
+ Z80PIO(config, m_pio[1], 8_MHz_XTAL/2);
+ m_pio[1]->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ m_pio[1]->in_pa_callback().set(FUNC(chessmst_state::pio2_port_a_r));
+ m_pio[1]->out_pb_callback().set(FUNC(chessmst_state::pio2_port_b_w));
config.set_default_layout(layout_chessmstdm);
diff --git a/src/mame/drivers/cms.cpp b/src/mame/drivers/cms.cpp
index 4d9090a0577..02283669b7d 100644
--- a/src/mame/drivers/cms.cpp
+++ b/src/mame/drivers/cms.cpp
@@ -276,7 +276,7 @@ void cms_state::cms6502(machine_config &config)
/* 7 Slot Backplane */
ACORN_BUS(config, m_bus, 0);
- m_bus->set_cputag(m_maincpu);
+ m_bus->set_space(m_maincpu, AS_PROGRAM);
m_bus->out_irq_callback().set(m_irqs, FUNC(input_merger_device::in_w<1>));
m_bus->out_nmi_callback().set(FUNC(cms_state::bus_nmi_w));
ACORN_BUS_SLOT(config, "bus1", m_bus, cms_bus_devices, "4080term");
diff --git a/src/mame/drivers/compis.cpp b/src/mame/drivers/compis.cpp
index 54ac9883c88..18543289904 100644
--- a/src/mame/drivers/compis.cpp
+++ b/src/mame/drivers/compis.cpp
@@ -177,7 +177,7 @@ READ16_MEMBER( compis_state::pcs6_0_1_r )
}
else
{
- return m_graphics->dma_ack_r(space, offset);
+ return m_graphics->dma_ack_r(offset);
}
}
@@ -191,7 +191,7 @@ WRITE16_MEMBER( compis_state::pcs6_0_1_w )
}
else
{
- m_graphics->dma_ack_w(space, offset, data);
+ m_graphics->dma_ack_w(offset, data);
}
}
@@ -250,7 +250,7 @@ READ16_MEMBER( compis_state::pcs6_6_7_r )
{
if (ACCESSING_BITS_0_7)
{
- return m_graphics->pcs6_6_r(space, offset);
+ return m_graphics->pcs6_6_r(offset);
}
else
{
@@ -265,7 +265,7 @@ WRITE16_MEMBER( compis_state::pcs6_6_7_w )
{
if (ACCESSING_BITS_0_7)
{
- m_graphics->pcs6_6_w(space, offset, data);
+ m_graphics->pcs6_6_w(offset, data);
}
else
{
@@ -278,11 +278,11 @@ READ16_MEMBER( compis_state::pcs6_8_9_r )
{
if (ACCESSING_BITS_0_7)
{
- return m_isbx0->mcs0_r(space, offset);
+ return m_isbx0->mcs0_r(offset);
}
else
{
- return m_isbx0->mcs1_r(space, offset) << 8;
+ return m_isbx0->mcs1_r(offset) << 8;
}
}
@@ -290,11 +290,11 @@ WRITE16_MEMBER( compis_state::pcs6_8_9_w )
{
if (ACCESSING_BITS_0_7)
{
- m_isbx0->mcs0_w(space, offset, data);
+ m_isbx0->mcs0_w(offset, data);
}
else
{
- m_isbx0->mcs1_w(space, offset, data >> 8);
+ m_isbx0->mcs1_w(offset, data >> 8);
}
}
@@ -302,11 +302,11 @@ READ16_MEMBER( compis_state::pcs6_10_11_r )
{
if (ACCESSING_BITS_0_7)
{
- return m_isbx0->mcs1_r(space, offset);
+ return m_isbx0->mcs1_r(offset);
}
else
{
- return m_isbx0->mdack_r(space, offset) << 8;
+ return m_isbx0->mdack_r(offset) << 8;
}
}
@@ -314,11 +314,11 @@ WRITE16_MEMBER( compis_state::pcs6_10_11_w )
{
if (ACCESSING_BITS_0_7)
{
- m_isbx0->mcs1_w(space, offset, data);
+ m_isbx0->mcs1_w(offset, data);
}
else
{
- m_isbx0->mdack_w(space, offset, data >> 8);
+ m_isbx0->mdack_w(offset, data >> 8);
}
}
@@ -326,11 +326,11 @@ READ16_MEMBER( compis_state::pcs6_12_13_r )
{
if (ACCESSING_BITS_0_7)
{
- return m_isbx1->mcs0_r(space, offset);
+ return m_isbx1->mcs0_r(offset);
}
else
{
- return m_isbx1->mcs1_r(space, offset) << 8;
+ return m_isbx1->mcs1_r(offset) << 8;
}
}
@@ -338,11 +338,11 @@ WRITE16_MEMBER( compis_state::pcs6_12_13_w )
{
if (ACCESSING_BITS_0_7)
{
- m_isbx1->mcs0_w(space, offset, data);
+ m_isbx1->mcs0_w(offset, data);
}
else
{
- m_isbx1->mcs1_w(space, offset, data >> 8);
+ m_isbx1->mcs1_w(offset, data >> 8);
}
}
@@ -350,11 +350,11 @@ READ16_MEMBER( compis_state::pcs6_14_15_r )
{
if (ACCESSING_BITS_0_7)
{
- return m_isbx1->mcs1_r(space, offset);
+ return m_isbx1->mcs1_r(offset);
}
else
{
- return m_isbx1->mdack_r(space, offset) << 8;
+ return m_isbx1->mdack_r(offset) << 8;
}
}
@@ -362,11 +362,11 @@ WRITE16_MEMBER( compis_state::pcs6_14_15_w )
{
if (ACCESSING_BITS_0_7)
{
- m_isbx1->mcs1_w(space, offset, data);
+ m_isbx1->mcs1_w(offset, data);
}
else
{
- m_isbx1->mdack_w(space, offset, data >> 8);
+ m_isbx1->mdack_w(offset, data >> 8);
}
}
diff --git a/src/mame/drivers/dec0.cpp b/src/mame/drivers/dec0.cpp
index 3dbea394cc5..105f03a1b83 100644
--- a/src/mame/drivers/dec0.cpp
+++ b/src/mame/drivers/dec0.cpp
@@ -32,9 +32,9 @@
motherboard and varying game boards. Sly Spy, Midnight Resistance and
Boulderdash use the same graphics chips but are different pcbs.
- Bandit (USA) is almost certainly a field test prototype, the software runs
- on a Heavy Barrel board including the original Heavy Barrel MCU (which is effectively
- not used). There is also Japanese version known to run on a DE-0321-1 top board.
+ Bandit (USA) is almost certainly a field test prototype, the software runs
+ on a Heavy Barrel board including the original Heavy Barrel MCU (which is effectively
+ not used). There is also Japanese version known to run on a DE-0321-1 top board.
There are Secret Agent (bootleg) and Robocop (bootleg) sets to add.
@@ -340,6 +340,7 @@ Notes:
#include "cpu/m6502/m6502.h"
#include "cpu/z80/z80.h"
#include "cpu/m6805/m68705.h"
+#include "machine/upd4701.h"
#include "sound/2203intf.h"
#include "sound/3812intf.h"
#include "sound/okim6295.h"
@@ -391,17 +392,6 @@ WRITE16_MEMBER(dec0_state::dec0_control_w)
}
}
-// Bandit tests P1 Y axis only
-// Hookup comes from Birdie Try service mode
-READ8_MEMBER(dec0_state::trackball_r)
-{
- uint8_t port_num = offset >> 1;
- if (offset & 1)
- return m_in_trackball[port_num]->read() >> 8;
-
- return m_in_trackball[port_num]->read() & 0xff;
-}
-
WRITE16_MEMBER(dec0_automat_state::automat_control_w)
{
switch (offset << 1)
@@ -464,7 +454,6 @@ void dec0_state::dec0_map(address_map &map)
map(0x300000, 0x300001).portr("AN0");
map(0x300008, 0x300009).portr("AN1");
- map(0x300010, 0x30001f).r(FUNC(dec0_state::trackball_r)).umask16(0x00ff);
map(0x30c000, 0x30c00b).r(FUNC(dec0_state::dec0_controls_r));
map(0x30c010, 0x30c01f).w(FUNC(dec0_state::dec0_control_w)); /* Priority, sound, etc. */
map(0x30c012, 0x30c013).nopr(); // clr.w for sprite DMA
@@ -472,11 +461,22 @@ void dec0_state::dec0_map(address_map &map)
map(0x310000, 0x3107ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
map(0x314000, 0x3147ff).ram().w(m_palette, FUNC(palette_device::write16_ext)).share("palette_ext");
- map(0x318000, 0x31bfff).ram().share("ram"); // Bandit uses 318000/31c000 which are mirrors but exact mirror patten is unclear
- map(0x31c000, 0x31c7ff).ram().share("spriteram");
+ map(0x318000, 0x31bfff).ram().share("ram"); // Bandit uses 318000/31c000 which are mirrors but exact mirror patten is unclear
+ map(0x31c000, 0x31c7ff).ram().share("spriteram");
map(0xff8000, 0xffbfff).ram().share("ram"); /* Main ram */
- map(0xffc000, 0xffc7ff).ram().share("spriteram");
+ map(0xffc000, 0xffc7ff).ram().share("spriteram");
+}
+
+void dec0_state::dec0_tb_map(address_map &map)
+{
+ dec0_map(map);
+ map(0x300010, 0x300017).r("tb0", FUNC(upd4701_device::read_xy)).umask16(0x00ff);
+ map(0x300018, 0x30001f).r("tb1", FUNC(upd4701_device::read_xy)).umask16(0x00ff);
+ map(0x300001, 0x300001).w("tb0", FUNC(upd4701_device::reset_x_w));
+ map(0x300009, 0x300009).w("tb0", FUNC(upd4701_device::reset_y_w));
+ map(0x300011, 0x300011).w("tb1", FUNC(upd4701_device::reset_x_w));
+ map(0x300019, 0x300019).w("tb1", FUNC(upd4701_device::reset_y_w));
}
void dec0_state::robocop_map(address_map &map)
@@ -697,7 +697,7 @@ void dec0_state::midresb_map(address_map &map)
void dec0_state::dec0_s_map(address_map &map)
{
map(0x0000, 0x07ff).ram();
- map(0x0800, 0x0801).rw("ym1", FUNC(ym2203_device::read), FUNC(ym2203_device::write));
+ map(0x0800, 0x0801).rw("ym1", FUNC(ym2203_device::read), FUNC(ym2203_device::write));
map(0x1000, 0x1001).rw("ym2", FUNC(ym3812_device::read), FUNC(ym3812_device::write));
map(0x3000, 0x3000).r(m_soundlatch, FUNC(generic_latch_8_device::read));
map(0x3800, 0x3800).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
@@ -986,16 +986,16 @@ INPUT_PORTS_END
static INPUT_PORTS_START( trackball_ports )
PORT_START("track_0")
- PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_REVERSE PORT_PLAYER(1)
+ PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_RESET PORT_REVERSE PORT_PLAYER(1)
PORT_START("track_1")
- PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_PLAYER(1)
+ PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_RESET PORT_PLAYER(1)
PORT_START("track_2")
- PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_REVERSE PORT_PLAYER(2)
+ PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_RESET PORT_REVERSE PORT_PLAYER(2)
PORT_START("track_3")
- PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_PLAYER(2)
+ PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_RESET PORT_PLAYER(2)
INPUT_PORTS_END
static INPUT_PORTS_START( rotary_null )
@@ -1007,20 +1007,6 @@ static INPUT_PORTS_START( rotary_null )
INPUT_PORTS_END
-static INPUT_PORTS_START( trackball_null )
- PORT_START("P1_TRACKX")
- PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("P1_TRACKY")
- PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("P2_TRACKX")
- PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("P2_TRACKY")
- PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
static INPUT_PORTS_START( hbarrel )
PORT_INCLUDE( dec0 )
@@ -1076,101 +1062,100 @@ static INPUT_PORTS_START( hbarrel )
PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" ) // Always OFF
PORT_INCLUDE( rotary_ports )
- PORT_INCLUDE( trackball_null )
INPUT_PORTS_END
static INPUT_PORTS_START( bandit )
PORT_INCLUDE( dec0 )
PORT_MODIFY("INPUTS")
- PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire")
- PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Bomb")
- PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Fire")
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Bomb")
- PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire")
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Bomb")
+ PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Fire")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Bomb")
+ PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
#if 0
- PORT_DIPNAME( 0x0001, 0x0001, "UNK_0" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0002, 0x0002, "UNK_1" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0004, 0x0004, "UNK_2" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0008, 0x0008, "UNK_3" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0010, 0x0010, "UNK_4" ) // Gun
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0020, 0x0020, "UNK_5" ) // Missile
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0040, 0x0040, "UNK_6" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0080, 0x0080, "UNK_7" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0001, 0x0001, "UNK_0" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0002, 0x0002, "UNK_1" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0004, 0x0004, "UNK_2" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0008, 0x0008, "UNK_3" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0010, 0x0010, "UNK_4" ) // Gun
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0020, 0x0020, "UNK_5" ) // Missile
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0040, 0x0040, "UNK_6" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0080, 0x0080, "UNK_7" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
#endif
PORT_MODIFY("SYSTEM")
PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("DSW")
- PORT_DIPNAME( 0x0001, 0x0001, "Analog controls?" ) // ?
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0002, 0x0002, "L/R control related (keep off)" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0004, 0x0004, "DSUNK_2" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0008, 0x0000, "Road select (debug)" ) // Debug mode
- PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Flip_Screen ) )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0020, 0x0020, "DSUNK_5" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0040, 0x0040, "DSUNK_6" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0080, 0x0000, "Enable enemies" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
-
- PORT_DIPNAME( 0x0100, 0x0100, "DSUNK_8" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0200, 0x0200, "DSUNK_9" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0400, 0x0400, "DSUNK_A" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
- PORT_DIPNAME( 0x0800, 0x0800, "DSUNK_B" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
- PORT_DIPNAME( 0x1000, 0x1000, "DSUNK_C" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
- PORT_DIPNAME( 0x2000, 0x2000, "DSUNK_D" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
- PORT_DIPNAME( 0x4000, 0x4000, "DSUNK_E" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
- PORT_DIPNAME( 0x8000, 0x8000, "DSUNK_F" )
- PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
- PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
-
- PORT_INCLUDE( rotary_null )
+ PORT_DIPNAME( 0x0001, 0x0001, "Analog controls?" ) // ?
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0002, 0x0002, "L/R control related (keep off)" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0004, 0x0004, "DSUNK_2" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0008, 0x0000, "Road select (debug)" ) // Debug mode
+ PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0020, 0x0020, "DSUNK_5" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0040, 0x0040, "DSUNK_6" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0080, 0x0000, "Enable enemies" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
+
+ PORT_DIPNAME( 0x0100, 0x0100, "DSUNK_8" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0200, 0x0200, "DSUNK_9" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0400, 0x0400, "DSUNK_A" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x0800, 0x0800, "DSUNK_B" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x1000, 0x1000, "DSUNK_C" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x2000, 0x2000, "DSUNK_D" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x4000, 0x4000, "DSUNK_E" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x8000, 0x8000, "DSUNK_F" )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
+
+ PORT_INCLUDE( rotary_null )
PORT_INCLUDE( trackball_ports )
INPUT_PORTS_END
@@ -1287,7 +1272,6 @@ static INPUT_PORTS_START( baddudes )
PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
PORT_INCLUDE( rotary_null )
- PORT_INCLUDE( trackball_null )
INPUT_PORTS_END
static INPUT_PORTS_START( drgninja )
@@ -1355,7 +1339,6 @@ static INPUT_PORTS_START( robocop )
PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
PORT_INCLUDE( rotary_null )
- PORT_INCLUDE( trackball_null )
INPUT_PORTS_END
static INPUT_PORTS_START( hippodrm )
@@ -1404,7 +1387,6 @@ static INPUT_PORTS_START( hippodrm )
PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
PORT_INCLUDE( rotary_null )
- PORT_INCLUDE( trackball_null )
INPUT_PORTS_END
static INPUT_PORTS_START( ffantasy )
@@ -1474,7 +1456,6 @@ static INPUT_PORTS_START( slyspy )
PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
PORT_INCLUDE( rotary_null )
- PORT_INCLUDE( trackball_null )
INPUT_PORTS_END
static INPUT_PORTS_START( midres )
@@ -1521,7 +1502,6 @@ static INPUT_PORTS_START( midres )
PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
PORT_INCLUDE( rotary_ports )
- PORT_INCLUDE( trackball_null )
INPUT_PORTS_END
static INPUT_PORTS_START( midresu )
@@ -1578,7 +1558,6 @@ static INPUT_PORTS_START( midresb )
PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF
PORT_INCLUDE( rotary_ports )
- PORT_INCLUDE( trackball_null )
INPUT_PORTS_END
static INPUT_PORTS_START( bouldash )
@@ -1655,7 +1634,6 @@ static INPUT_PORTS_START( bouldash )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_INCLUDE( rotary_null )
- PORT_INCLUDE( trackball_null )
INPUT_PORTS_END
/******************************************************************************/
@@ -2055,6 +2033,16 @@ void dec0_state::bandit(machine_config &config)
{
dec0(config);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dec0_state::dec0_tb_map);
+
+ upd4701_device &tb0(UPD4701A(config, "tb0"));
+ tb0.set_portx_tag("track_0");
+ tb0.set_porty_tag("track_1");
+
+ upd4701_device &tb1(UPD4701A(config, "tb1"));
+ tb1.set_portx_tag("track_2");
+ tb1.set_porty_tag("track_3");
+
i8751_device &mcu(I8751(config, m_mcu, XTAL(8'000'000)));
mcu.port_in_cb<0>().set(FUNC(dec0_state::dec0_mcu_port0_r));
mcu.port_out_cb<0>().set(FUNC(dec0_state::dec0_mcu_port0_w));
@@ -2093,6 +2081,16 @@ void dec0_state::birdtry(machine_config &config)
{
dec0(config);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dec0_state::dec0_tb_map);
+
+ upd4701_device &tb0(UPD4701A(config, "tb0"));
+ tb0.set_portx_tag("track_0");
+ tb0.set_porty_tag("track_1");
+
+ upd4701_device &tb1(UPD4701A(config, "tb1"));
+ tb1.set_portx_tag("track_2");
+ tb1.set_porty_tag("track_3");
+
/* video hardware */
m_screen->set_screen_update(FUNC(dec0_state::screen_update_birdtry));
}
@@ -3982,7 +3980,7 @@ GAME( 1988, robocop, 0, robocop, robocop, dec0_state, empty_init
GAME( 1988, robocopw, robocop, robocop, robocop, dec0_state, empty_init, ROT0, "Data East Corporation", "Robocop (World revision 3)", MACHINE_SUPPORTS_SAVE )
GAME( 1988, robocopj, robocop, robocop, robocop, dec0_state, empty_init, ROT0, "Data East Corporation", "Robocop (Japan)", MACHINE_SUPPORTS_SAVE )
GAME( 1988, robocopu, robocop, robocop, robocop, dec0_state, empty_init, ROT0, "Data East USA", "Robocop (US revision 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1989, bandit, 0, bandit, bandit, dec0_state, init_hbarrel, ROT90, "Data East USA", "Bandit (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, bandit, 0, bandit, bandit, dec0_state, init_hbarrel, ROT90, "Data East USA", "Bandit (US)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
GAME( 1988, robocopu0, robocop, robocop, robocop, dec0_state, empty_init, ROT0, "Data East USA", "Robocop (US revision 0)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, hippodrm, 0, hippodrm, hippodrm, dec0_state, init_hippodrm, ROT0, "Data East USA", "Hippodrome (US)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffantasy, hippodrm, hippodrm, ffantasy, dec0_state, init_hippodrm, ROT0, "Data East Corporation", "Fighting Fantasy (Japan revision 3)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/dmv.cpp b/src/mame/drivers/dmv.cpp
index 0e3098ec7b9..d7f4143407b 100644
--- a/src/mame/drivers/dmv.cpp
+++ b/src/mame/drivers/dmv.cpp
@@ -127,21 +127,21 @@ private:
DECLARE_FLOPPY_FORMATS( floppy_formats );
DECLARE_QUICKLOAD_LOAD_MEMBER(dmv);
- uint8_t program_read(address_space &space, int cas, offs_t offset);
- void program_write(address_space &space, int cas, offs_t offset, uint8_t data);
-
- void ifsel_r(address_space &space, int ifsel, offs_t offset, uint8_t &data);
- void ifsel_w(address_space &space, int ifsel, offs_t offset, uint8_t data);
- DECLARE_READ8_MEMBER(ifsel0_r) { uint8_t data = 0xff; ifsel_r(space, 0, offset, data); return data; }
- DECLARE_READ8_MEMBER(ifsel1_r) { uint8_t data = 0xff; ifsel_r(space, 1, offset, data); return data; }
- DECLARE_READ8_MEMBER(ifsel2_r) { uint8_t data = 0xff; ifsel_r(space, 2, offset, data); return data; }
- DECLARE_READ8_MEMBER(ifsel3_r) { uint8_t data = 0xff; ifsel_r(space, 3, offset, data); return data; }
- DECLARE_READ8_MEMBER(ifsel4_r) { uint8_t data = 0xff; ifsel_r(space, 4, offset, data); return data; }
- DECLARE_WRITE8_MEMBER(ifsel0_w) { ifsel_w(space, 0, offset, data); }
- DECLARE_WRITE8_MEMBER(ifsel1_w) { ifsel_w(space, 1, offset, data); }
- DECLARE_WRITE8_MEMBER(ifsel2_w) { ifsel_w(space, 2, offset, data); }
- DECLARE_WRITE8_MEMBER(ifsel3_w) { ifsel_w(space, 3, offset, data); }
- DECLARE_WRITE8_MEMBER(ifsel4_w) { ifsel_w(space, 4, offset, data); }
+ uint8_t program_read(int cas, offs_t offset);
+ void program_write(int cas, offs_t offset, uint8_t data);
+
+ void ifsel_r(int ifsel, offs_t offset, uint8_t &data);
+ void ifsel_w(int ifsel, offs_t offset, uint8_t data);
+ DECLARE_READ8_MEMBER(ifsel0_r) { uint8_t data = 0xff; ifsel_r(0, offset, data); return data; }
+ DECLARE_READ8_MEMBER(ifsel1_r) { uint8_t data = 0xff; ifsel_r(1, offset, data); return data; }
+ DECLARE_READ8_MEMBER(ifsel2_r) { uint8_t data = 0xff; ifsel_r(2, offset, data); return data; }
+ DECLARE_READ8_MEMBER(ifsel3_r) { uint8_t data = 0xff; ifsel_r(3, offset, data); return data; }
+ DECLARE_READ8_MEMBER(ifsel4_r) { uint8_t data = 0xff; ifsel_r(4, offset, data); return data; }
+ DECLARE_WRITE8_MEMBER(ifsel0_w) { ifsel_w(0, offset, data); }
+ DECLARE_WRITE8_MEMBER(ifsel1_w) { ifsel_w(1, offset, data); }
+ DECLARE_WRITE8_MEMBER(ifsel2_w) { ifsel_w(2, offset, data); }
+ DECLARE_WRITE8_MEMBER(ifsel3_w) { ifsel_w(3, offset, data); }
+ DECLARE_WRITE8_MEMBER(ifsel4_w) { ifsel_w(4, offset, data); }
UPD7220_DISPLAY_PIXELS_MEMBER( hgdc_display_pixels );
UPD7220_DRAW_TEXT_LINE_MEMBER( hgdc_draw_text );
@@ -426,38 +426,36 @@ static void dmv_floppies(device_slot_interface &device)
}
-void dmv_state::ifsel_r(address_space &space, int ifsel, offs_t offset, uint8_t &data)
+void dmv_state::ifsel_r(int ifsel, offs_t offset, uint8_t &data)
{
- dmvcart_slot_device *slots[] = { m_slot2, m_slot2a, m_slot3, m_slot4, m_slot5, m_slot6, m_slot7, m_slot7a };
- for(auto & slot : slots)
- slot->io_read(space, ifsel, offset, data);
+ for (auto &slot : { m_slot2, m_slot2a, m_slot3, m_slot4, m_slot5, m_slot6, m_slot7, m_slot7a })
+ slot->io_read(ifsel, offset, data);
}
-void dmv_state::ifsel_w(address_space &space, int ifsel, offs_t offset, uint8_t data)
+void dmv_state::ifsel_w(int ifsel, offs_t offset, uint8_t data)
{
- dmvcart_slot_device *slots[] = { m_slot2, m_slot2a, m_slot3, m_slot4, m_slot5, m_slot6, m_slot7, m_slot7a };
- for(auto & slot : slots)
- slot->io_write(space, ifsel, offset, data);
+ for(auto &slot : { m_slot2, m_slot2a, m_slot3, m_slot4, m_slot5, m_slot6, m_slot7, m_slot7a })
+ slot->io_write(ifsel, offset, data);
}
WRITE8_MEMBER(dmv_state::exp_program_w)
{
- program_write(space, (offset >> 16) & 0x07, offset, data);
+ program_write((offset >> 16) & 0x07, offset, data);
}
READ8_MEMBER(dmv_state::exp_program_r)
{
- return program_read(space, (offset >> 16) & 0x07, offset);
+ return program_read((offset >> 16) & 0x07, offset);
}
WRITE8_MEMBER(dmv_state::program_w)
{
- program_write(space, m_ram_bank, offset, data);
+ program_write(m_ram_bank, offset, data);
}
READ8_MEMBER(dmv_state::program_r)
{
- return program_read(space, m_ram_bank, offset);
+ return program_read(m_ram_bank, offset);
}
WRITE_LINE_MEMBER( dmv_state::thold7_w )
@@ -519,7 +517,7 @@ void dmv_state::update_irqs(int slot, int state)
}
}
-void dmv_state::program_write(address_space &space, int cas, offs_t offset, uint8_t data)
+void dmv_state::program_write(int cas, offs_t offset, uint8_t data)
{
bool tramd = false;
dmvcart_slot_device *slots[] = { m_slot2, m_slot2a, m_slot3, m_slot4, m_slot5, m_slot6, m_slot7, m_slot7a };
@@ -535,7 +533,7 @@ void dmv_state::program_write(address_space &space, int cas, offs_t offset, uint
}
}
-uint8_t dmv_state::program_read(address_space &space, int cas, offs_t offset)
+uint8_t dmv_state::program_read(int cas, offs_t offset)
{
uint8_t data = 0xff;
if (m_ramoutdis && offset < 0x2000)
diff --git a/src/mame/drivers/einstein.cpp b/src/mame/drivers/einstein.cpp
index 093d47bcb0b..6e1834edb2e 100644
--- a/src/mame/drivers/einstein.cpp
+++ b/src/mame/drivers/einstein.cpp
@@ -390,10 +390,6 @@ void einstein_state::machine_start()
m_bank1->configure_entry(1, m_bios->base());
m_bank2->set_base(m_ram->pointer());
m_bank3->set_base(m_ram->pointer() + 0x8000);
-
- // setup expansion slot
- m_pipe->set_program_space(&m_maincpu->space(AS_PROGRAM));
- m_pipe->set_io_space(&m_maincpu->space(AS_IO));
}
void einstein_state::machine_reset()
@@ -674,6 +670,8 @@ void einstein_state::einstein(machine_config &config)
// tatung pipe connector
TATUNG_PIPE(config, m_pipe, XTAL_X002 / 2, tatung_pipe_cards, nullptr);
+ m_pipe->set_program_space(m_maincpu, AS_PROGRAM);
+ m_pipe->set_io_space(m_maincpu, AS_IO);
m_pipe->nmi_handler().set_inputline(IC_I001, INPUT_LINE_NMI);
// user port
diff --git a/src/mame/drivers/fastfred.cpp b/src/mame/drivers/fastfred.cpp
index 9121d83d32f..025d9027b1a 100644
--- a/src/mame/drivers/fastfred.cpp
+++ b/src/mame/drivers/fastfred.cpp
@@ -918,7 +918,7 @@ ROM_END
// main PCB is marked: "MC9003" and "MADE IN ITALY" on component side
// main PCB is marked: "MADE IN ITALY" on solder side
-// ROMs PCB is marked: "MG25157" on component side
+// ROMs PCB is marked: "MG25157" on component side
ROM_START( boggy84b2 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "boggy84-1.bin", 0x0000, 0x1000, CRC(97235e3a) SHA1(f493efd03331416a392cab7d73e39029d7e8098c) )
diff --git a/src/mame/drivers/fidel_cc10.cpp b/src/mame/drivers/fidel_cc10.cpp
index 2438b145029..850d8f9a29d 100644
--- a/src/mame/drivers/fidel_cc10.cpp
+++ b/src/mame/drivers/fidel_cc10.cpp
@@ -195,13 +195,13 @@ static INPUT_PORTS_START( ccx )
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_F)
PORT_START("IN.2")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL)
- PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_P)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_O)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CODE(KEYCODE_C)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_G)
PORT_START("IN.3")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PV") PORT_CODE(KEYCODE_V)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_D)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H)
diff --git a/src/mame/drivers/fidel_cc7.cpp b/src/mame/drivers/fidel_cc7.cpp
index 6eb5bf10c15..b99642da9cc 100644
--- a/src/mame/drivers/fidel_cc7.cpp
+++ b/src/mame/drivers/fidel_cc7.cpp
@@ -136,14 +136,14 @@ void bcc_state::main_io(address_map &map)
static INPUT_PORTS_START( bcc )
PORT_START("IN.0")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PV") PORT_CODE(KEYCODE_V)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_D)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H)
PORT_START("IN.1")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL)
- PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_P)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_O)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CODE(KEYCODE_C)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_G)
@@ -162,13 +162,13 @@ INPUT_PORTS_END
static INPUT_PORTS_START( bkc )
PORT_START("IN.0")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD)
PORT_START("IN.1")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD)
@@ -181,7 +181,7 @@ static INPUT_PORTS_START( bkc )
PORT_START("IN.3")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R)
- PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_P)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_O)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PV") PORT_CODE(KEYCODE_V)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD)
INPUT_PORTS_END
diff --git a/src/mame/drivers/fidel_csc.cpp b/src/mame/drivers/fidel_csc.cpp
index 0a6eccc8066..367f05551da 100644
--- a/src/mame/drivers/fidel_csc.cpp
+++ b/src/mame/drivers/fidel_csc.cpp
@@ -7,9 +7,14 @@
Fidelity CSC(and derived) hardware
- Champion Sensory Chess Challenger
+- Elite Champion Challenger
- Super 9 Sensory Chess Challenger
- Reversi Sensory Challenger
+TODO:
+- is the original csce the same program+bookrom as the upgraded one?
+- hook up csce I/O properly, it doesn't have PIAs
+
*******************************************************************************
Champion Sensory Chess Challenger (CSC)
@@ -150,6 +155,18 @@ All three of the above are called "segment H".
*******************************************************************************
+Elite Champion Challenger
+This is a limited-release chess computer based on the CSC. They removed the PIAs
+and did the I/O with TTL instead (PIAs will still work from software point of view).
+---------------------------------
+R6502 CPU @ 4MHz
+32KB ROMs total size, 4KB RAM(8*HM6147P)
+
+In the 90s, Wilfried Bucke provided an upgrade to make it more similar to the one
+that won the 1981 Travemünde contest. CPU was changed to R65C02 or UM6502C at 5MHz.
+
+*******************************************************************************
+
Super 9 Sensory Chess Challenger (SU9/DS9)
This is basically the Fidelity Elite A/S program on CSC hardware.
Model DS9(Deluxe) has a 5MHz XTAL, but is otherwise same.
@@ -180,6 +197,7 @@ PCB label 510-1035A01
#include "includes/fidelbase.h"
#include "cpu/m6502/m6502.h"
+#include "cpu/m6502/r65c02.h"
#include "machine/6821pia.h"
#include "sound/volt_reg.h"
#include "speaker.h"
@@ -202,6 +220,7 @@ public:
// machine drivers
void csc(machine_config &config);
+ void cscetr(machine_config &config);
void su9(machine_config &config);
void rsc(machine_config &config);
@@ -368,7 +387,7 @@ READ8_MEMBER(csc_state::pia1_pb_r)
// d5: button row 8 (active low)
// d6,d7: language switches(hardwired with 2 resistors/jumpers)
- data |= (~read_inputs(9) >> 3 & 0x20) | (~m_language << 6 & 0xc0);
+ data |= (~read_inputs(9) >> 3 & 0x20) | (*m_language << 6 & 0xc0);
return data;
}
@@ -402,8 +421,7 @@ void csc_state::su9_map(address_map &map)
map(0x1000, 0x1003).rw(m_pia[1], FUNC(pia6821_device::read), FUNC(pia6821_device::write));
map(0x1800, 0x1803).rw(m_pia[0], FUNC(pia6821_device::read), FUNC(pia6821_device::write));
map(0x2000, 0x3fff).rom();
- map(0xa000, 0xa7ff).rom();
- map(0xc000, 0xffff).rom();
+ map(0xa000, 0xffff).rom();
}
void csc_state::rsc_map(address_map &map)
@@ -529,10 +547,20 @@ void csc_state::csc(machine_config &config)
VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
}
+void csc_state::cscetr(machine_config &config)
+{
+ csc(config);
+
+ /* basic machine hardware */
+ R65C02(config.replace(), m_maincpu, 5_MHz_XTAL); // R65C02P4
+ m_maincpu->set_addrmap(AS_PROGRAM, &csc_state::su9_map);
+}
+
void csc_state::su9(machine_config &config)
{
csc(config);
+ /* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &csc_state::su9_map);
config.set_default_layout(layout_fidel_su9);
}
@@ -580,91 +608,86 @@ ROM_START( csc )
ROM_LOAD("1025a01", 0xe000, 0x2000, CRC(57f068c3) SHA1(7d2ac4b9a2fba19556782863bdd89e2d2d94e97b) )
ROM_LOAD("74s474", 0xfe00, 0x0200, CRC(4511ba31) SHA1(e275b1739f8c3aa445cccb6a2b597475f507e456) )
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) )
- ROM_RELOAD( 0x1000, 0x1000)
-ROM_END
-
-ROM_START( cscg )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("101-64019", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) )
- ROM_LOAD("1025a03", 0xa000, 0x2000, CRC(63982c07) SHA1(5ed4356323d5c80df216da55994abe94ba4aa94c) )
- ROM_LOAD("1025a02", 0xc000, 0x2000, CRC(9e6e7c69) SHA1(4f1ed9141b6596f4d2b1217d7a4ba48229f3f1b0) )
- ROM_LOAD("1025a01", 0xe000, 0x2000, CRC(57f068c3) SHA1(7d2ac4b9a2fba19556782863bdd89e2d2d94e97b) )
- ROM_LOAD("74s474", 0xfe00, 0x0200, CRC(4511ba31) SHA1(e275b1739f8c3aa445cccb6a2b597475f507e456) )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct
-ROM_END
+ // speech ROM
+ ROM_DEFAULT_BIOS("en")
+ ROM_SYSTEM_BIOS(0, "en", "English")
+ ROM_SYSTEM_BIOS(1, "de", "German")
+ ROM_SYSTEM_BIOS(2, "fr", "French")
+ ROM_SYSTEM_BIOS(3, "sp", "Spanish")
-ROM_START( cscsp )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("101-64019", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) )
- ROM_LOAD("1025a03", 0xa000, 0x2000, CRC(63982c07) SHA1(5ed4356323d5c80df216da55994abe94ba4aa94c) )
- ROM_LOAD("1025a02", 0xc000, 0x2000, CRC(9e6e7c69) SHA1(4f1ed9141b6596f4d2b1217d7a4ba48229f3f1b0) )
- ROM_LOAD("1025a01", 0xe000, 0x2000, CRC(57f068c3) SHA1(7d2ac4b9a2fba19556782863bdd89e2d2d94e97b) )
- ROM_LOAD("74s474", 0xfe00, 0x0200, CRC(4511ba31) SHA1(e275b1739f8c3aa445cccb6a2b597475f507e456) )
+ ROM_REGION( 1, "language", 0 )
+ ROMX_FILL(0, 1, 3, ROM_BIOS(0) )
+ ROMX_FILL(0, 1, 2, ROM_BIOS(1) )
+ ROMX_FILL(0, 1, 1, ROM_BIOS(2) )
+ ROMX_FILL(0, 1, 0, ROM_BIOS(3) )
ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct
+ ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) )
+ ROM_RELOAD( 0x1000, 0x1000)
+ ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) )
+ ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) )
+ ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
ROM_END
-ROM_START( cscfr )
+ROM_START( cscetr )
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("101-64019", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) )
- ROM_LOAD("1025a03", 0xa000, 0x2000, CRC(63982c07) SHA1(5ed4356323d5c80df216da55994abe94ba4aa94c) )
- ROM_LOAD("1025a02", 0xc000, 0x2000, CRC(9e6e7c69) SHA1(4f1ed9141b6596f4d2b1217d7a4ba48229f3f1b0) )
- ROM_LOAD("1025a01", 0xe000, 0x2000, CRC(57f068c3) SHA1(7d2ac4b9a2fba19556782863bdd89e2d2d94e97b) )
- ROM_LOAD("74s474", 0xfe00, 0x0200, CRC(4511ba31) SHA1(e275b1739f8c3aa445cccb6a2b597475f507e456) )
+ ROM_LOAD("03", 0x2000, 0x2000, CRC(22e43531) SHA1(696dc019bea3812ae6cf9c2b2c4d3a7b9017807d) )
+ ROM_LOAD("02", 0xa000, 0x2000, CRC(e593f114) SHA1(4dc5a2456a87c128235958f046cee9502cb3ac65) )
+ ROM_LOAD("06", 0xc000, 0x0800, CRC(5d41b1e5) SHA1(fe95d8811d8894688336b798212c397bdb216956) )
+ ROM_LOAD("07", 0xc800, 0x0800, CRC(9078d40a) SHA1(4ffd36a4fcde1988e42543652e29463bc6ad5a8f) )
+ ROM_LOAD("08", 0xd000, 0x0800, CRC(c9472cc1) SHA1(ef4b1ae99e81689efeae323fe6ed58cf2c773fd6) )
+ ROM_LOAD("09", 0xd800, 0x0800, CRC(255c94a0) SHA1(d8e79213b69710e9d94c698492ec7b7420c9c7d8) )
+ ROM_LOAD("04", 0xe000, 0x1000, CRC(098873bd) SHA1(86001129a57db390e565f59a5677ec0b34b41d99) )
+ ROM_LOAD("05", 0xf000, 0x1000, CRC(1a516bfe) SHA1(2a2b252ca5d425fdf162cbc53077aee448b94437) )
+
+ // speech ROM
+ ROM_DEFAULT_BIOS("en")
+ ROM_SYSTEM_BIOS(0, "en", "English")
+ ROM_SYSTEM_BIOS(1, "de", "German")
+ ROM_SYSTEM_BIOS(2, "fr", "French")
+ ROM_SYSTEM_BIOS(3, "sp", "Spanish")
+
+ ROM_REGION( 1, "language", 0 )
+ ROMX_FILL(0, 1, 3, ROM_BIOS(0) )
+ ROMX_FILL(0, 1, 2, ROM_BIOS(1) )
+ ROMX_FILL(0, 1, 1, ROM_BIOS(2) )
+ ROMX_FILL(0, 1, 0, ROM_BIOS(3) )
ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct
+ ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) )
+ ROM_RELOAD( 0x1000, 0x1000)
+ ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) )
+ ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) )
+ ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
ROM_END
ROM_START( super9cc )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("101-1050a01", 0x2000, 0x2000, CRC(421147e8) SHA1(ccf62f6f218e8992baf30973fe41b35e14a1cc1a) )
- ROM_LOAD("101-1024b03", 0xa000, 0x0800, CRC(e8c97455) SHA1(ed2958fc5474253ee8c2eaf27fc64226e12f80ea) )
- ROM_LOAD("101-1024b02", 0xc000, 0x2000, CRC(95004699) SHA1(ea79f43da73267344545df8ad61730f613876c2e) )
- ROM_LOAD("101-1024c01", 0xe000, 0x2000, CRC(03904e86) SHA1(bfa0dd9d8541e3ec359a247a3eba543501f727bc) )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct
- ROM_RELOAD( 0x1000, 0x1000)
-ROM_END
-
-ROM_START( super9ccg )
- ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD("101-1050a01", 0x2000, 0x2000, CRC(421147e8) SHA1(ccf62f6f218e8992baf30973fe41b35e14a1cc1a) )
ROM_LOAD("101-1024b03", 0xa000, 0x0800, CRC(e8c97455) SHA1(ed2958fc5474253ee8c2eaf27fc64226e12f80ea) )
ROM_LOAD("101-1024b02", 0xc000, 0x2000, CRC(95004699) SHA1(ea79f43da73267344545df8ad61730f613876c2e) )
ROM_LOAD("101-1024c01", 0xe000, 0x2000, CRC(03904e86) SHA1(bfa0dd9d8541e3ec359a247a3eba543501f727bc) )
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct
-ROM_END
-
-ROM_START( super9ccsp )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("101-1050a01", 0x2000, 0x2000, CRC(421147e8) SHA1(ccf62f6f218e8992baf30973fe41b35e14a1cc1a) )
- ROM_LOAD("101-1024b03", 0xa000, 0x0800, CRC(e8c97455) SHA1(ed2958fc5474253ee8c2eaf27fc64226e12f80ea) )
- ROM_LOAD("101-1024b02", 0xc000, 0x2000, CRC(95004699) SHA1(ea79f43da73267344545df8ad61730f613876c2e) )
- ROM_LOAD("101-1024c01", 0xe000, 0x2000, CRC(03904e86) SHA1(bfa0dd9d8541e3ec359a247a3eba543501f727bc) )
+ // speech ROM
+ ROM_DEFAULT_BIOS("en")
+ ROM_SYSTEM_BIOS(0, "en", "English")
+ ROM_SYSTEM_BIOS(1, "de", "German")
+ ROM_SYSTEM_BIOS(2, "fr", "French")
+ ROM_SYSTEM_BIOS(3, "sp", "Spanish")
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct
-ROM_END
-
-ROM_START( super9ccfr )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("101-1050a01", 0x2000, 0x2000, CRC(421147e8) SHA1(ccf62f6f218e8992baf30973fe41b35e14a1cc1a) )
- ROM_LOAD("101-1024b03", 0xa000, 0x0800, CRC(e8c97455) SHA1(ed2958fc5474253ee8c2eaf27fc64226e12f80ea) )
- ROM_LOAD("101-1024b02", 0xc000, 0x2000, CRC(95004699) SHA1(ea79f43da73267344545df8ad61730f613876c2e) )
- ROM_LOAD("101-1024c01", 0xe000, 0x2000, CRC(03904e86) SHA1(bfa0dd9d8541e3ec359a247a3eba543501f727bc) )
+ ROM_REGION( 1, "language", 0 )
+ ROMX_FILL(0, 1, 3, ROM_BIOS(0) )
+ ROMX_FILL(0, 1, 2, ROM_BIOS(1) )
+ ROMX_FILL(0, 1, 1, ROM_BIOS(2) )
+ ROMX_FILL(0, 1, 0, ROM_BIOS(3) )
ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct
+ ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) )
+ ROM_RELOAD( 0x1000, 0x1000)
+ ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) )
+ ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) )
+ ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
ROM_END
@@ -681,15 +704,10 @@ ROM_END
Drivers
******************************************************************************/
-// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
-CONS( 1981, csc, 0, 0, csc, csc, csc_state, init_language<0>, "Fidelity Electronics", "Champion Sensory Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1981, cscg, csc, 0, csc, csc, csc_state, init_language<1>, "Fidelity Electronics", "Champion Sensory Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1981, cscsp, csc, 0, csc, csc, csc_state, init_language<2>, "Fidelity Electronics", "Champion Sensory Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1981, cscfr, csc, 0, csc, csc, csc_state, init_language<3>, "Fidelity Electronics", "Champion Sensory Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
+CONS( 1981, csc, 0, 0, csc, csc, csc_state, empty_init, "Fidelity Electronics", "Champion Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+CONS( 199?, cscetr, 0, 0, cscetr, csc, csc_state, empty_init, "hack (Wilfried Bucke)", "Elite Champion Challenger (Travemünde upgrade)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1983, super9cc, 0, 0, su9, su9, su9_state, init_language<0>, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1983, super9ccg, super9cc, 0, su9, su9, su9_state, init_language<1>, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1983, super9ccsp, super9cc, 0, su9, su9, su9_state, init_language<2>, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1983, super9ccfr, super9cc, 0, su9, su9, su9_state, init_language<3>, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+CONS( 1983, super9cc, 0, 0, su9, su9, su9_state, empty_init, "Fidelity Electronics", "Super 9 Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1981, reversic, 0, 0, rsc, rsc, csc_state, empty_init, "Fidelity Electronics", "Reversi Sensory Challenger (green version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+CONS( 1981, reversic, 0, 0, rsc, rsc, csc_state, empty_init, "Fidelity Electronics", "Reversi Sensory Challenger (green version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
diff --git a/src/mame/drivers/fidel_elite.cpp b/src/mame/drivers/fidel_elite.cpp
index d1ebaa6506d..ced7728796a 100644
--- a/src/mame/drivers/fidel_elite.cpp
+++ b/src/mame/drivers/fidel_elite.cpp
@@ -8,9 +8,6 @@
Fidelity Elite A/S series hardware (EAS, EAG, PC)
see fidel_eag68k.cpp for 68000-based EAG hardware
-TODO:
-- make separate internal artwork for fepriv?
-
*******************************************************************************
Elite A/S Challenger (EAS)
@@ -35,17 +32,17 @@ PCB photos show only a 3MHz XTAL.
A condensator keeps RAM contents alive for a few hours when powered off.
-Elite Avant Garde (models 6081,6088,6089) is on the same hardware.
-
-Fidelity Private Line is a modified EAS. They took out the motherboard and leds
-and placed them a little box separate from a (ledless) magnetic chessboard.
-It was probably only released in Germany.
-
Prestige Challenger (PC) hardware is very similar. They stripped the 8255 PPI,
and added more RAM(7*TMM2016P). Some were released at 3.6MHz instead of 4MHz,
perhaps due to hardware instability? Opening module PC16 was included by default,
this module is the same as CB16 but at different form factor.
+Elite Avant Garde (models 6081,6088,6089) is on the same hardware as EAS.
+
+Fidelity Private Line is a modified EAS. They took out the motherboard and leds
+and placed them a little box separate from a (ledless) magnetic chessboard.
+It was probably only released in Germany.
+
******************************************************************************/
#include "emu.h"
@@ -82,7 +79,7 @@ public:
void eag(machine_config &config);
void eag2100(machine_config &config);
- template <int Language> void init_eag();
+ void init_eag2100();
private:
// devices/pointers
@@ -105,10 +102,8 @@ private:
DECLARE_WRITE8_MEMBER(ppi_portc_w);
};
-template <int Language>
-void elite_state::init_eag()
+void elite_state::init_eag2100()
{
- m_language = Language;
m_rombank->configure_entries(0, 4, memregion("rombank")->base(), 0x2000);
}
@@ -197,7 +192,7 @@ READ8_MEMBER(elite_state::ppi_portb_r)
data |= (m_speech->busy_r()) ? 2 : 0;
// d2,d3: language switches(hardwired)
- data |= ~m_language << 2 & 0x0c;
+ data |= *m_language << 2 & 0x0c;
// d5: multiplexed inputs highest bit
data |= (read_inputs(9) & 0x100) ? 0 : 0x20;
@@ -423,48 +418,25 @@ ROM_START( feasbu )
ROM_LOAD("101-1052a02.5", 0xc000, 0x2000, CRC(859d69f1) SHA1(a8b057683369e2387f22fc7e916b6f3c75d44b21) ) // Mostek MK36C63N-5
ROM_LOAD("101-1052a01.4", 0xe000, 0x2000, CRC(571a33a7) SHA1(43b110cf0918caf16643178f401e58b2dc73894f) ) // Mostek MK36C63N-5
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // NEC D2332C
- ROM_RELOAD( 0x1000, 0x1000)
-ROM_END
-
-ROM_START( feasbug )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("eli_bu.6", 0x8000, 0x0800, CRC(93dcc23b) SHA1(2eb8c5a85e566948bc256d6b1804694e6b0ffa6f) )
- ROM_CONTINUE( 0x9000, 0x0800 )
- ROM_CONTINUE( 0x8800, 0x0800 )
- ROM_CONTINUE( 0x9800, 0x0800 )
- ROM_LOAD("101-1052a02.5", 0xc000, 0x2000, CRC(859d69f1) SHA1(a8b057683369e2387f22fc7e916b6f3c75d44b21) )
- ROM_LOAD("101-1052a01.4", 0xe000, 0x2000, CRC(571a33a7) SHA1(43b110cf0918caf16643178f401e58b2dc73894f) )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct
-ROM_END
+ // speech ROM
+ ROM_DEFAULT_BIOS("en")
+ ROM_SYSTEM_BIOS(0, "en", "English")
+ ROM_SYSTEM_BIOS(1, "de", "German")
+ ROM_SYSTEM_BIOS(2, "fr", "French")
+ ROM_SYSTEM_BIOS(3, "sp", "Spanish")
-ROM_START( feasbusp )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("eli_bu.6", 0x8000, 0x0800, CRC(93dcc23b) SHA1(2eb8c5a85e566948bc256d6b1804694e6b0ffa6f) )
- ROM_CONTINUE( 0x9000, 0x0800 )
- ROM_CONTINUE( 0x8800, 0x0800 )
- ROM_CONTINUE( 0x9800, 0x0800 )
- ROM_LOAD("101-1052a02.5", 0xc000, 0x2000, CRC(859d69f1) SHA1(a8b057683369e2387f22fc7e916b6f3c75d44b21) )
- ROM_LOAD("101-1052a01.4", 0xe000, 0x2000, CRC(571a33a7) SHA1(43b110cf0918caf16643178f401e58b2dc73894f) )
+ ROM_REGION( 1, "language", 0 )
+ ROMX_FILL(0, 1, 3, ROM_BIOS(0) )
+ ROMX_FILL(0, 1, 2, ROM_BIOS(1) )
+ ROMX_FILL(0, 1, 1, ROM_BIOS(2) )
+ ROMX_FILL(0, 1, 0, ROM_BIOS(3) )
ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct
-ROM_END
-
-ROM_START( feasbufr )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("eli_bu.6", 0x8000, 0x0800, CRC(93dcc23b) SHA1(2eb8c5a85e566948bc256d6b1804694e6b0ffa6f) )
- ROM_CONTINUE( 0x9000, 0x0800 )
- ROM_CONTINUE( 0x8800, 0x0800 )
- ROM_CONTINUE( 0x9800, 0x0800 )
- ROM_LOAD("101-1052a02.5", 0xc000, 0x2000, CRC(859d69f1) SHA1(a8b057683369e2387f22fc7e916b6f3c75d44b21) )
- ROM_LOAD("101-1052a01.4", 0xe000, 0x2000, CRC(571a33a7) SHA1(43b110cf0918caf16643178f401e58b2dc73894f) )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct
+ ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) // NEC D2332C
+ ROM_RELOAD( 0x1000, 0x1000)
+ ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) )
+ ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) )
+ ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
ROM_END
ROM_START( feasgla )
@@ -482,66 +454,25 @@ ROM_START( feasgla )
ROM_CONTINUE( 0xe800, 0x0800 )
ROM_CONTINUE( 0xf800, 0x0800 )
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // NEC D2332C
- ROM_RELOAD( 0x1000, 0x1000)
-ROM_END
+ // speech ROM
+ ROM_DEFAULT_BIOS("en")
+ ROM_SYSTEM_BIOS(0, "en", "English")
+ ROM_SYSTEM_BIOS(1, "de", "German")
+ ROM_SYSTEM_BIOS(2, "fr", "French")
+ ROM_SYSTEM_BIOS(3, "sp", "Spanish")
-ROM_START( feasglag )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("eli_gla.6", 0x8000, 0x0800, CRC(2fdddb4f) SHA1(6da0a328a45462f285ae6a0756f97c5a43148f97) )
- ROM_CONTINUE( 0x9000, 0x0800 )
- ROM_CONTINUE( 0x8800, 0x0800 )
- ROM_CONTINUE( 0x9800, 0x0800 )
- ROM_LOAD("eli_gla.5", 0xc000, 0x0800, CRC(f094e625) SHA1(fef84c6a3da504aac15988ec9af94417e5fedfbd) )
- ROM_CONTINUE( 0xd000, 0x0800 )
- ROM_CONTINUE( 0xc800, 0x0800 )
- ROM_CONTINUE( 0xd800, 0x0800 )
- ROM_LOAD("eli_gla.4", 0xe000, 0x0800, CRC(5f6845d1) SHA1(684eb16faf36a49560e5a73b55fd0022dc090e35) )
- ROM_CONTINUE( 0xf000, 0x0800 )
- ROM_CONTINUE( 0xe800, 0x0800 )
- ROM_CONTINUE( 0xf800, 0x0800 )
+ ROM_REGION( 1, "language", 0 )
+ ROMX_FILL(0, 1, 3, ROM_BIOS(0) )
+ ROMX_FILL(0, 1, 2, ROM_BIOS(1) )
+ ROMX_FILL(0, 1, 1, ROM_BIOS(2) )
+ ROMX_FILL(0, 1, 0, ROM_BIOS(3) )
ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct
-ROM_END
-
-ROM_START( feasglasp )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("eli_gla.6", 0x8000, 0x0800, CRC(2fdddb4f) SHA1(6da0a328a45462f285ae6a0756f97c5a43148f97) )
- ROM_CONTINUE( 0x9000, 0x0800 )
- ROM_CONTINUE( 0x8800, 0x0800 )
- ROM_CONTINUE( 0x9800, 0x0800 )
- ROM_LOAD("eli_gla.5", 0xc000, 0x0800, CRC(f094e625) SHA1(fef84c6a3da504aac15988ec9af94417e5fedfbd) )
- ROM_CONTINUE( 0xd000, 0x0800 )
- ROM_CONTINUE( 0xc800, 0x0800 )
- ROM_CONTINUE( 0xd800, 0x0800 )
- ROM_LOAD("eli_gla.4", 0xe000, 0x0800, CRC(5f6845d1) SHA1(684eb16faf36a49560e5a73b55fd0022dc090e35) )
- ROM_CONTINUE( 0xf000, 0x0800 )
- ROM_CONTINUE( 0xe800, 0x0800 )
- ROM_CONTINUE( 0xf800, 0x0800 )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct
-ROM_END
-
-ROM_START( feasglafr )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("eli_gla.6", 0x8000, 0x0800, CRC(2fdddb4f) SHA1(6da0a328a45462f285ae6a0756f97c5a43148f97) )
- ROM_CONTINUE( 0x9000, 0x0800 )
- ROM_CONTINUE( 0x8800, 0x0800 )
- ROM_CONTINUE( 0x9800, 0x0800 )
- ROM_LOAD("eli_gla.5", 0xc000, 0x0800, CRC(f094e625) SHA1(fef84c6a3da504aac15988ec9af94417e5fedfbd) )
- ROM_CONTINUE( 0xd000, 0x0800 )
- ROM_CONTINUE( 0xc800, 0x0800 )
- ROM_CONTINUE( 0xd800, 0x0800 )
- ROM_LOAD("eli_gla.4", 0xe000, 0x0800, CRC(5f6845d1) SHA1(684eb16faf36a49560e5a73b55fd0022dc090e35) )
- ROM_CONTINUE( 0xf000, 0x0800 )
- ROM_CONTINUE( 0xe800, 0x0800 )
- ROM_CONTINUE( 0xf800, 0x0800 )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct
+ ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) // NEC D2332C
+ ROM_RELOAD( 0x1000, 0x1000)
+ ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) )
+ ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) )
+ ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
ROM_END
ROM_START( fepriv )
@@ -559,66 +490,25 @@ ROM_START( fepriv )
ROM_CONTINUE( 0xe800, 0x0800 )
ROM_CONTINUE( 0xf800, 0x0800 )
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct
- ROM_RELOAD( 0x1000, 0x1000)
-ROM_END
+ // speech ROM
+ ROM_DEFAULT_BIOS("en")
+ ROM_SYSTEM_BIOS(0, "en", "English")
+ ROM_SYSTEM_BIOS(1, "de", "German")
+ ROM_SYSTEM_BIOS(2, "fr", "French")
+ ROM_SYSTEM_BIOS(3, "sp", "Spanish")
-ROM_START( feprivg )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("4,0_8.6", 0x8000, 0x0800, CRC(32784e2d) SHA1(dae060a5c49cc1993a78db293cd80464adfd892d) )
- ROM_CONTINUE( 0x9000, 0x0800 )
- ROM_CONTINUE( 0x8800, 0x0800 )
- ROM_CONTINUE( 0x9800, 0x0800 )
- ROM_LOAD("c.5", 0xc000, 0x0800, CRC(ddb80412) SHA1(b1d9435d9a71b8eb241a2169bfbaa0499f510769) )
- ROM_CONTINUE( 0xd000, 0x0800 )
- ROM_CONTINUE( 0xc800, 0x0800 )
- ROM_CONTINUE( 0xd800, 0x0800 )
- ROM_LOAD("4,0_e.4", 0xe000, 0x0800, CRC(62a5305a) SHA1(a361bd9a54b903d7b0fbacabe55ea5ccbbc1dc51) )
- ROM_CONTINUE( 0xf000, 0x0800 )
- ROM_CONTINUE( 0xe800, 0x0800 )
- ROM_CONTINUE( 0xf800, 0x0800 )
+ ROM_REGION( 1, "language", 0 )
+ ROMX_FILL(0, 1, 3, ROM_BIOS(0) )
+ ROMX_FILL(0, 1, 2, ROM_BIOS(1) )
+ ROMX_FILL(0, 1, 1, ROM_BIOS(2) )
+ ROMX_FILL(0, 1, 0, ROM_BIOS(3) )
ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) )
-ROM_END
-
-ROM_START( feprivsp )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("4,0_8.6", 0x8000, 0x0800, CRC(32784e2d) SHA1(dae060a5c49cc1993a78db293cd80464adfd892d) )
- ROM_CONTINUE( 0x9000, 0x0800 )
- ROM_CONTINUE( 0x8800, 0x0800 )
- ROM_CONTINUE( 0x9800, 0x0800 )
- ROM_LOAD("c.5", 0xc000, 0x0800, CRC(ddb80412) SHA1(b1d9435d9a71b8eb241a2169bfbaa0499f510769) )
- ROM_CONTINUE( 0xd000, 0x0800 )
- ROM_CONTINUE( 0xc800, 0x0800 )
- ROM_CONTINUE( 0xd800, 0x0800 )
- ROM_LOAD("4,0_e.4", 0xe000, 0x0800, CRC(62a5305a) SHA1(a361bd9a54b903d7b0fbacabe55ea5ccbbc1dc51) )
- ROM_CONTINUE( 0xf000, 0x0800 )
- ROM_CONTINUE( 0xe800, 0x0800 )
- ROM_CONTINUE( 0xf800, 0x0800 )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct
-ROM_END
-
-ROM_START( feprivfr )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("4,0_8.6", 0x8000, 0x0800, CRC(32784e2d) SHA1(dae060a5c49cc1993a78db293cd80464adfd892d) )
- ROM_CONTINUE( 0x9000, 0x0800 )
- ROM_CONTINUE( 0x8800, 0x0800 )
- ROM_CONTINUE( 0x9800, 0x0800 )
- ROM_LOAD("c.5", 0xc000, 0x0800, CRC(ddb80412) SHA1(b1d9435d9a71b8eb241a2169bfbaa0499f510769) )
- ROM_CONTINUE( 0xd000, 0x0800 )
- ROM_CONTINUE( 0xc800, 0x0800 )
- ROM_CONTINUE( 0xd800, 0x0800 )
- ROM_LOAD("4,0_e.4", 0xe000, 0x0800, CRC(62a5305a) SHA1(a361bd9a54b903d7b0fbacabe55ea5ccbbc1dc51) )
- ROM_CONTINUE( 0xf000, 0x0800 )
- ROM_CONTINUE( 0xe800, 0x0800 )
- ROM_CONTINUE( 0xf800, 0x0800 )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct
+ ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) )
+ ROM_RELOAD( 0x1000, 0x1000)
+ ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) )
+ ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) )
+ ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
ROM_END
@@ -630,45 +520,25 @@ ROM_START( fpres )
ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(6f18115f) SHA1(a08b3a66bfdc23f3400e03fe253a8b9a4967d14f) )
ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(dea8091d) SHA1(1d94a90ae076215c2c009e78ec4919dbd8467ef8) )
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct
- ROM_RELOAD( 0x1000, 0x1000)
-ROM_END
-
-ROM_START( fpresg )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("u09_yellow", 0xb000, 0x1000, CRC(03fac294) SHA1(5a9d72978318c61185efd4bc9e4a868c226465b8) )
- ROM_LOAD("u10_green", 0xc000, 0x1000, CRC(5d049d5e) SHA1(c7359bead92729e8a92d6cf1789d87ae43d23cbf) )
- ROM_LOAD("u11_black", 0xd000, 0x1000, CRC(98bd01b7) SHA1(48cc560c4ca736f54e30d757990ff403c05c39ae) )
- ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(6f18115f) SHA1(a08b3a66bfdc23f3400e03fe253a8b9a4967d14f) )
- ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(dea8091d) SHA1(1d94a90ae076215c2c009e78ec4919dbd8467ef8) )
+ // speech ROM
+ ROM_DEFAULT_BIOS("en")
+ ROM_SYSTEM_BIOS(0, "en", "English")
+ ROM_SYSTEM_BIOS(1, "de", "German")
+ ROM_SYSTEM_BIOS(2, "fr", "French")
+ ROM_SYSTEM_BIOS(3, "sp", "Spanish")
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct
-ROM_END
-
-ROM_START( fpressp )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("u09_yellow", 0xb000, 0x1000, CRC(03fac294) SHA1(5a9d72978318c61185efd4bc9e4a868c226465b8) )
- ROM_LOAD("u10_green", 0xc000, 0x1000, CRC(5d049d5e) SHA1(c7359bead92729e8a92d6cf1789d87ae43d23cbf) )
- ROM_LOAD("u11_black", 0xd000, 0x1000, CRC(98bd01b7) SHA1(48cc560c4ca736f54e30d757990ff403c05c39ae) )
- ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(6f18115f) SHA1(a08b3a66bfdc23f3400e03fe253a8b9a4967d14f) )
- ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(dea8091d) SHA1(1d94a90ae076215c2c009e78ec4919dbd8467ef8) )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct
-ROM_END
-
-ROM_START( fpresfr )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("u09_yellow", 0xb000, 0x1000, CRC(03fac294) SHA1(5a9d72978318c61185efd4bc9e4a868c226465b8) )
- ROM_LOAD("u10_green", 0xc000, 0x1000, CRC(5d049d5e) SHA1(c7359bead92729e8a92d6cf1789d87ae43d23cbf) )
- ROM_LOAD("u11_black", 0xd000, 0x1000, CRC(98bd01b7) SHA1(48cc560c4ca736f54e30d757990ff403c05c39ae) )
- ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(6f18115f) SHA1(a08b3a66bfdc23f3400e03fe253a8b9a4967d14f) )
- ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(dea8091d) SHA1(1d94a90ae076215c2c009e78ec4919dbd8467ef8) )
+ ROM_REGION( 1, "language", 0 )
+ ROMX_FILL(0, 1, 3, ROM_BIOS(0) )
+ ROMX_FILL(0, 1, 2, ROM_BIOS(1) )
+ ROMX_FILL(0, 1, 1, ROM_BIOS(2) )
+ ROMX_FILL(0, 1, 0, ROM_BIOS(3) )
ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct
+ ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) )
+ ROM_RELOAD( 0x1000, 0x1000)
+ ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) )
+ ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) )
+ ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
ROM_END
ROM_START( fpresbu )
@@ -679,86 +549,56 @@ ROM_START( fpresbu )
ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(dae4d8e4) SHA1(f06dbb643f0324c0bddaaae9537d5829768bda22) )
ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(5fb67708) SHA1(1e9ee724c2be38daf39d5cf37b0ae587e408777c) )
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct
- ROM_RELOAD( 0x1000, 0x1000)
-ROM_END
-
-ROM_START( fpresbug )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("u09_yellow", 0xb000, 0x1000, CRC(bb1cb486) SHA1(b83f50a3ef361d254b88eefaa5aac657aaa72375) )
- ROM_LOAD("u10_green", 0xc000, 0x1000, CRC(af0aec0e) SHA1(8293d00a12efa1c142b9e37bc7786012250536d9) )
- ROM_LOAD("u11_black", 0xd000, 0x1000, CRC(214a91cc) SHA1(aab07ecdd66ac208874f4053fc4b0b0659b017aa) )
- ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(dae4d8e4) SHA1(f06dbb643f0324c0bddaaae9537d5829768bda22) )
- ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(5fb67708) SHA1(1e9ee724c2be38daf39d5cf37b0ae587e408777c) )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct
-ROM_END
+ // speech ROM
+ ROM_DEFAULT_BIOS("en")
+ ROM_SYSTEM_BIOS(0, "en", "English")
+ ROM_SYSTEM_BIOS(1, "de", "German")
+ ROM_SYSTEM_BIOS(2, "fr", "French")
+ ROM_SYSTEM_BIOS(3, "sp", "Spanish")
-ROM_START( fpresbusp )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("u09_yellow", 0xb000, 0x1000, CRC(bb1cb486) SHA1(b83f50a3ef361d254b88eefaa5aac657aaa72375) )
- ROM_LOAD("u10_green", 0xc000, 0x1000, CRC(af0aec0e) SHA1(8293d00a12efa1c142b9e37bc7786012250536d9) )
- ROM_LOAD("u11_black", 0xd000, 0x1000, CRC(214a91cc) SHA1(aab07ecdd66ac208874f4053fc4b0b0659b017aa) )
- ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(dae4d8e4) SHA1(f06dbb643f0324c0bddaaae9537d5829768bda22) )
- ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(5fb67708) SHA1(1e9ee724c2be38daf39d5cf37b0ae587e408777c) )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct
-ROM_END
-
-ROM_START( fpresbufr )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("u09_yellow", 0xb000, 0x1000, CRC(bb1cb486) SHA1(b83f50a3ef361d254b88eefaa5aac657aaa72375) )
- ROM_LOAD("u10_green", 0xc000, 0x1000, CRC(af0aec0e) SHA1(8293d00a12efa1c142b9e37bc7786012250536d9) )
- ROM_LOAD("u11_black", 0xd000, 0x1000, CRC(214a91cc) SHA1(aab07ecdd66ac208874f4053fc4b0b0659b017aa) )
- ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(dae4d8e4) SHA1(f06dbb643f0324c0bddaaae9537d5829768bda22) )
- ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(5fb67708) SHA1(1e9ee724c2be38daf39d5cf37b0ae587e408777c) )
+ ROM_REGION( 1, "language", 0 )
+ ROMX_FILL(0, 1, 3, ROM_BIOS(0) )
+ ROMX_FILL(0, 1, 2, ROM_BIOS(1) )
+ ROMX_FILL(0, 1, 1, ROM_BIOS(2) )
+ ROMX_FILL(0, 1, 0, ROM_BIOS(3) )
ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct
+ ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) )
+ ROM_RELOAD( 0x1000, 0x1000)
+ ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) )
+ ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) )
+ ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
ROM_END
-ROM_START( feag2100 )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("el2100.2", 0xc000, 0x2000, CRC(76fec42f) SHA1(34660edb8458919fd179e93fdab3fe428a6625d0) )
- ROM_LOAD("el2100.3", 0xe000, 0x2000, CRC(2079a506) SHA1(a7bb83138c7b6eff6ea96702d453a214697f4890) )
-
- ROM_REGION( 0x8000, "rombank", 0 )
- ROM_LOAD("el2100.1", 0x0000, 0x8000, CRC(9b62b7d5) SHA1(cfcaea2e36c2d52fe4a85c77dbc7fa135893860c) )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct
- ROM_RELOAD( 0x1000, 0x1000)
-ROM_END
-
-ROM_START( feag2100g )
+ROM_START( feag ) // model 6081, aka "Mobile Master"
ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("el2100.2", 0xc000, 0x2000, CRC(76fec42f) SHA1(34660edb8458919fd179e93fdab3fe428a6625d0) )
- ROM_LOAD("el2100.3", 0xe000, 0x2000, CRC(2079a506) SHA1(a7bb83138c7b6eff6ea96702d453a214697f4890) )
-
- ROM_REGION( 0x8000, "rombank", 0 )
- ROM_LOAD("el2100.1", 0x0000, 0x8000, CRC(9b62b7d5) SHA1(cfcaea2e36c2d52fe4a85c77dbc7fa135893860c) )
+ ROM_LOAD("eg_orange.ic9", 0xa000, 0x2000, CRC(df9e7e74) SHA1(db76750eba5515213ecce07402c4d974c14e1a23) ) // M5L2764K, orange sticker
+ ROM_LOAD("eg_black.ic5", 0xc000, 0x2000, CRC(a5f6f295) SHA1(319f00d4b7a1704a3ca722c40f4096004b4b89d2) ) // M5L2764K, black sticker
+ ROM_LOAD("eg_green.ic4", 0xe000, 0x2000, CRC(1dc6508a) SHA1(6f2e730b216bfb900074d1d786124fc3cb038a8d) ) // M5L2764K, green sticker
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct
-ROM_END
+ // speech ROM
+ ROM_DEFAULT_BIOS("en")
+ ROM_SYSTEM_BIOS(0, "en", "English")
+ ROM_SYSTEM_BIOS(1, "de", "German")
+ ROM_SYSTEM_BIOS(2, "fr", "French")
+ ROM_SYSTEM_BIOS(3, "sp", "Spanish")
-ROM_START( feag2100sp )
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("el2100.2", 0xc000, 0x2000, CRC(76fec42f) SHA1(34660edb8458919fd179e93fdab3fe428a6625d0) )
- ROM_LOAD("el2100.3", 0xe000, 0x2000, CRC(2079a506) SHA1(a7bb83138c7b6eff6ea96702d453a214697f4890) )
-
- ROM_REGION( 0x8000, "rombank", 0 )
- ROM_LOAD("el2100.1", 0x0000, 0x8000, CRC(9b62b7d5) SHA1(cfcaea2e36c2d52fe4a85c77dbc7fa135893860c) )
+ ROM_REGION( 1, "language", 0 )
+ ROMX_FILL(0, 1, 3, ROM_BIOS(0) )
+ ROMX_FILL(0, 1, 2, ROM_BIOS(1) )
+ ROMX_FILL(0, 1, 1, ROM_BIOS(2) )
+ ROMX_FILL(0, 1, 0, ROM_BIOS(3) )
ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct
+ ROMX_LOAD("101-32107.ic16", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) )
+ ROM_RELOAD( 0x1000, 0x1000)
+ ROMX_LOAD("101-64101.ic16", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) )
+ ROMX_LOAD("101-64105.ic16", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) )
+ ROMX_LOAD("101-64106.ic16", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
ROM_END
-ROM_START( feag2100fr )
+ROM_START( feag2100 )
ROM_REGION( 0x10000, "mainmap", 0 )
ROM_LOAD("el2100.2", 0xc000, 0x2000, CRC(76fec42f) SHA1(34660edb8458919fd179e93fdab3fe428a6625d0) )
ROM_LOAD("el2100.3", 0xe000, 0x2000, CRC(2079a506) SHA1(a7bb83138c7b6eff6ea96702d453a214697f4890) )
@@ -766,49 +606,25 @@ ROM_START( feag2100fr )
ROM_REGION( 0x8000, "rombank", 0 )
ROM_LOAD("el2100.1", 0x0000, 0x8000, CRC(9b62b7d5) SHA1(cfcaea2e36c2d52fe4a85c77dbc7fa135893860c) )
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct
-ROM_END
-
-ROM_START( feag ) // model 6081, aka "Mobile Master"
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("eg_orange.ic9", 0xa000, 0x2000, CRC(df9e7e74) SHA1(db76750eba5515213ecce07402c4d974c14e1a23) ) // M5L2764K, orange sticker
- ROM_LOAD("eg_black.ic5", 0xc000, 0x2000, CRC(a5f6f295) SHA1(319f00d4b7a1704a3ca722c40f4096004b4b89d2) ) // M5L2764K, black sticker
- ROM_LOAD("eg_green.ic4", 0xe000, 0x2000, CRC(1dc6508a) SHA1(6f2e730b216bfb900074d1d786124fc3cb038a8d) ) // M5L2764K, green sticker
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct
- ROM_RELOAD( 0x1000, 0x1000)
-ROM_END
+ // speech ROM
+ ROM_DEFAULT_BIOS("en")
+ ROM_SYSTEM_BIOS(0, "en", "English")
+ ROM_SYSTEM_BIOS(1, "de", "German")
+ ROM_SYSTEM_BIOS(2, "fr", "French")
+ ROM_SYSTEM_BIOS(3, "sp", "Spanish")
-ROM_START( feagg ) // model 6081, aka "Mobile Master"
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("eg_orange.ic9", 0xa000, 0x2000, CRC(df9e7e74) SHA1(db76750eba5515213ecce07402c4d974c14e1a23) ) // M5L2764K, orange sticker
- ROM_LOAD("eg_black.ic5", 0xc000, 0x2000, CRC(a5f6f295) SHA1(319f00d4b7a1704a3ca722c40f4096004b4b89d2) ) // M5L2764K, black sticker
- ROM_LOAD("eg_green.ic4", 0xe000, 0x2000, CRC(1dc6508a) SHA1(6f2e730b216bfb900074d1d786124fc3cb038a8d) ) // M5L2764K, green sticker
+ ROM_REGION( 1, "language", 0 )
+ ROMX_FILL(0, 1, 3, ROM_BIOS(0) )
+ ROMX_FILL(0, 1, 2, ROM_BIOS(1) )
+ ROMX_FILL(0, 1, 1, ROM_BIOS(2) )
+ ROMX_FILL(0, 1, 0, ROM_BIOS(3) )
ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct
-ROM_END
-
-ROM_START( feagsp ) // model 6081, aka "Mobile Master"
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("eg_orange.ic9", 0xa000, 0x2000, CRC(df9e7e74) SHA1(db76750eba5515213ecce07402c4d974c14e1a23) ) // M5L2764K, orange sticker
- ROM_LOAD("eg_black.ic5", 0xc000, 0x2000, CRC(a5f6f295) SHA1(319f00d4b7a1704a3ca722c40f4096004b4b89d2) ) // M5L2764K, black sticker
- ROM_LOAD("eg_green.ic4", 0xe000, 0x2000, CRC(1dc6508a) SHA1(6f2e730b216bfb900074d1d786124fc3cb038a8d) ) // M5L2764K, green sticker
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct
-ROM_END
-
-ROM_START( feagfr ) // model 6081, aka "Mobile Master"
- ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("eg_orange.ic9", 0xa000, 0x2000, CRC(df9e7e74) SHA1(db76750eba5515213ecce07402c4d974c14e1a23) ) // M5L2764K, orange sticker
- ROM_LOAD("eg_black.ic5", 0xc000, 0x2000, CRC(a5f6f295) SHA1(319f00d4b7a1704a3ca722c40f4096004b4b89d2) ) // M5L2764K, black sticker
- ROM_LOAD("eg_green.ic4", 0xe000, 0x2000, CRC(1dc6508a) SHA1(6f2e730b216bfb900074d1d786124fc3cb038a8d) ) // M5L2764K, green sticker
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct
+ ROMX_LOAD("101-32107.ic16", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) )
+ ROM_RELOAD( 0x1000, 0x1000)
+ ROMX_LOAD("101-64101.ic16", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) )
+ ROMX_LOAD("101-64105.ic16", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) )
+ ROMX_LOAD("101-64106.ic16", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
ROM_END
} // anonymous namespace
@@ -819,34 +635,13 @@ ROM_END
Drivers
******************************************************************************/
-// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
-CONS( 1983, feasbu, 0, 0, eas, eas, elite_state, init_language<0>, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1983, feasbug, feasbu, 0, eas, eas, elite_state, init_language<1>, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1983, feasbusp, feasbu, 0, eas, eas, elite_state, init_language<2>, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1983, feasbufr, feasbu, 0, eas, eas, elite_state, init_language<3>, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1984, feasgla, feasbu, 0, eas, eas, elite_state, init_language<0>, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1984, feasglag, feasbu, 0, eas, eas, elite_state, init_language<1>, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1984, feasglasp, feasbu, 0, eas, eas, elite_state, init_language<2>, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1984, feasglafr, feasbu, 0, eas, eas, elite_state, init_language<3>, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1984, fepriv, feasbu, 0, eas_priv, eas, elite_state, init_language<0>, "Fidelity Electronics", "Elite Private Line (red version, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) // by Fidelity West Germany
-CONS( 1984, feprivg, feasbu, 0, eas_priv, eas, elite_state, init_language<1>, "Fidelity Electronics", "Elite Private Line (red version, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) // "
-CONS( 1984, feprivsp, feasbu, 0, eas_priv, eas, elite_state, init_language<2>, "Fidelity Electronics", "Elite Private Line (red version, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) // "
-CONS( 1984, feprivfr, feasbu, 0, eas_priv, eas, elite_state, init_language<3>, "Fidelity Electronics", "Elite Private Line (red version, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) // "
-
-CONS( 1982, fpres, 0, 0, pc, eas, elite_state, init_language<0>, "Fidelity Electronics", "Prestige Challenger (original program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1982, fpresg, fpres, 0, pc, eas, elite_state, init_language<1>, "Fidelity Electronics", "Prestige Challenger (original program, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1982, fpressp, fpres, 0, pc, eas, elite_state, init_language<2>, "Fidelity Electronics", "Prestige Challenger (original program, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1982, fpresfr, fpres, 0, pc, eas, elite_state, init_language<3>, "Fidelity Electronics", "Prestige Challenger (original program, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1983, fpresbu, fpres, 0, pc, eas, elite_state, init_language<0>, "Fidelity Electronics", "Prestige Challenger (Budapest program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1983, fpresbug, fpres, 0, pc, eas, elite_state, init_language<1>, "Fidelity Electronics", "Prestige Challenger (Budapest program, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1983, fpresbusp, fpres, 0, pc, eas, elite_state, init_language<2>, "Fidelity Electronics", "Prestige Challenger (Budapest program, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1983, fpresbufr, fpres, 0, pc, eas, elite_state, init_language<3>, "Fidelity Electronics", "Prestige Challenger (Budapest program, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-
-CONS( 1986, feag2100, 0, 0, eag2100, eag, elite_state, init_eag<0>, "Fidelity Electronics", "Elite Avant Garde 2100 (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1986, feag2100g, feag2100, 0, eag2100, eag, elite_state, init_eag<1>, "Fidelity Electronics", "Elite Avant Garde 2100 (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1986, feag2100sp, feag2100, 0, eag2100, eag, elite_state, init_eag<2>, "Fidelity Electronics", "Elite Avant Garde 2100 (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1986, feag2100fr, feag2100, 0, eag2100, eag, elite_state, init_eag<3>, "Fidelity Electronics", "Elite Avant Garde 2100 (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1986, feag, feag2100, 0, eag, eag, elite_state, init_language<0>, "Fidelity Electronics", "Elite Avant Garde (model 6081, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1986, feagg, feag2100, 0, eag, eag, elite_state, init_language<1>, "Fidelity Electronics", "Elite Avant Garde (model 6081, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1986, feagsp, feag2100, 0, eag, eag, elite_state, init_language<2>, "Fidelity Electronics", "Elite Avant Garde (model 6081, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
-CONS( 1986, feagfr, feag2100, 0, eag, eag, elite_state, init_language<3>, "Fidelity Electronics", "Elite Avant Garde (model 6081, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
+// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
+CONS( 1983, feasbu, 0, 0, eas, eas, elite_state, empty_init, "Fidelity Electronics", "Elite A/S Challenger (Budapest program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
+CONS( 1984, feasgla, feasbu, 0, eas, eas, elite_state, empty_init, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
+CONS( 1984, fepriv, feasbu, 0, eas_priv, eas, elite_state, empty_init, "Fidelity Electronics", "Elite Private Line (red version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) // by Fidelity West Germany
+
+CONS( 1982, fpres, 0, 0, pc, eas, elite_state, empty_init, "Fidelity Electronics", "Prestige Challenger (original program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
+CONS( 1983, fpresbu, fpres, 0, pc, eas, elite_state, empty_init, "Fidelity Electronics", "Prestige Challenger (Budapest program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
+
+CONS( 1986, feag, 0, 0, eag, eag, elite_state, empty_init, "Fidelity Electronics", "Elite Avant Garde (model 6081)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
+CONS( 1986, feag2100, feag, 0, eag2100, eag, elite_state, init_eag2100, "Fidelity Electronics", "Elite Avant Garde 2100", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
diff --git a/src/mame/drivers/fidel_excel.cpp b/src/mame/drivers/fidel_excel.cpp
index c8826877f3d..3caf3443073 100644
--- a/src/mame/drivers/fidel_excel.cpp
+++ b/src/mame/drivers/fidel_excel.cpp
@@ -388,7 +388,7 @@ void excel_state::granits(machine_config &config)
fexcelp(config);
/* basic machine hardware */
- m_maincpu->set_clock(8_MHz_XTAL); // overclocked
+ m_maincpu->set_clock(8_MHz_XTAL/2);
}
void excel_state::fdes2100(machine_config &config)
diff --git a/src/mame/drivers/fidel_vcc.cpp b/src/mame/drivers/fidel_vcc.cpp
index b73f64e9db0..c7f43621a9e 100644
--- a/src/mame/drivers/fidel_vcc.cpp
+++ b/src/mame/drivers/fidel_vcc.cpp
@@ -218,7 +218,7 @@ READ8_MEMBER(vcc_state::ppi_portc_r)
// d0-d3: multiplexed inputs (active low)
// also language switches, hardwired with 4 jumpers
// 0(none wired): English, 1: German, 2: French, 4: Spanish, 8:Special(unused)
- u8 lan = (~m_led_select & 0x40) ? m_language : 0;
+ u8 lan = (~m_led_select & 0x40) ? *m_language : 0;
return ~(lan | read_inputs(4)) & 0xf;
}
@@ -267,13 +267,13 @@ static INPUT_PORTS_START( vcc )
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_F)
PORT_START("IN.2")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL)
- PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_P)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_O)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CODE(KEYCODE_C)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_G)
PORT_START("IN.3")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PV") PORT_CODE(KEYCODE_V)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_D)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H)
@@ -326,39 +326,25 @@ ROM_START( vcc )
ROM_LOAD("cn19174n_vcc2", 0x1000, 0x1000, CRC(f33095e7) SHA1(692fcab1b88c910b74d04fe4d0660367aee3f4f0) )
ROM_LOAD("cn19175n_vcc3", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) )
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) )
- ROM_RELOAD( 0x1000, 0x1000)
-ROM_END
-
-ROM_START( vccg )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("cn19256n_101-32013", 0x0000, 0x1000, CRC(257bb5ab) SHA1(f7589225bb8e5f3eac55f23e2bd526be780b38b5) )
- ROM_LOAD("cn19174n_vcc2", 0x1000, 0x1000, CRC(f33095e7) SHA1(692fcab1b88c910b74d04fe4d0660367aee3f4f0) )
- ROM_LOAD("cn19175n_vcc3", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct
-ROM_END
+ // speech ROM
+ ROM_DEFAULT_BIOS("en")
+ ROM_SYSTEM_BIOS(0, "en", "English")
+ ROM_SYSTEM_BIOS(1, "de", "German")
+ ROM_SYSTEM_BIOS(2, "fr", "French")
+ ROM_SYSTEM_BIOS(3, "sp", "Spanish")
-ROM_START( vccsp )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("cn19256n_101-32013", 0x0000, 0x1000, CRC(257bb5ab) SHA1(f7589225bb8e5f3eac55f23e2bd526be780b38b5) )
- ROM_LOAD("cn19174n_vcc2", 0x1000, 0x1000, CRC(f33095e7) SHA1(692fcab1b88c910b74d04fe4d0660367aee3f4f0) )
- ROM_LOAD("cn19175n_vcc3", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) )
+ ROM_REGION( 1, "language", 0 )
+ ROMX_FILL(0, 1, 0, ROM_BIOS(0) )
+ ROMX_FILL(0, 1, 1, ROM_BIOS(1) )
+ ROMX_FILL(0, 1, 2, ROM_BIOS(2) )
+ ROMX_FILL(0, 1, 4, ROM_BIOS(3) )
ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // dumped from Spanish VCC, is same as data in fexcelv
-ROM_END
-
-ROM_START( vccfr )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("cn19256n_101-32013", 0x0000, 0x1000, CRC(257bb5ab) SHA1(f7589225bb8e5f3eac55f23e2bd526be780b38b5) )
- ROM_LOAD("cn19174n_vcc2", 0x1000, 0x1000, CRC(f33095e7) SHA1(692fcab1b88c910b74d04fe4d0660367aee3f4f0) )
- ROM_LOAD("cn19175n_vcc3", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct
+ ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) )
+ ROM_RELOAD( 0x1000, 0x1000)
+ ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) )
+ ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) )
+ ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
ROM_END
ROM_START( uvc )
@@ -366,36 +352,25 @@ ROM_START( uvc )
ROM_LOAD("101-64017", 0x0000, 0x2000, CRC(f1133abf) SHA1(09dd85051c4e7d364d43507c1cfea5c2d08d37f4) ) // MOS // 101-64017 // 3880
ROM_LOAD("101-32010", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) ) // NEC P9Z021 // D2332C 228 // 101-32010, == cn19175n_vcc3 on vcc
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // NEC P9Y019 // D2332C 229 // 101-32107
- ROM_RELOAD( 0x1000, 0x1000)
-ROM_END
-
-ROM_START( uvcg )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("101-64017", 0x0000, 0x2000, CRC(f1133abf) SHA1(09dd85051c4e7d364d43507c1cfea5c2d08d37f4) )
- ROM_LOAD("101-32010", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) )
+ // speech ROM
+ ROM_DEFAULT_BIOS("en")
+ ROM_SYSTEM_BIOS(0, "en", "English")
+ ROM_SYSTEM_BIOS(1, "de", "German")
+ ROM_SYSTEM_BIOS(2, "fr", "French")
+ ROM_SYSTEM_BIOS(3, "sp", "Spanish")
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct
-ROM_END
-
-ROM_START( uvcsp )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("101-64017", 0x0000, 0x2000, CRC(f1133abf) SHA1(09dd85051c4e7d364d43507c1cfea5c2d08d37f4) )
- ROM_LOAD("101-32010", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) )
-ROM_END
-
-ROM_START( uvcfr )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("101-64017", 0x0000, 0x2000, CRC(f1133abf) SHA1(09dd85051c4e7d364d43507c1cfea5c2d08d37f4) )
- ROM_LOAD("101-32010", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) )
+ ROM_REGION( 1, "language", 0 )
+ ROMX_FILL(0, 1, 0, ROM_BIOS(0) )
+ ROMX_FILL(0, 1, 1, ROM_BIOS(1) )
+ ROMX_FILL(0, 1, 2, ROM_BIOS(2) )
+ ROMX_FILL(0, 1, 4, ROM_BIOS(3) )
ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct
+ ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) // NEC P9Y019 // D2332C 229 // 101-32107
+ ROM_RELOAD( 0x1000, 0x1000)
+ ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) )
+ ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) )
+ ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
ROM_END
} // anonymous namespace
@@ -406,12 +381,6 @@ ROM_END
Drivers
******************************************************************************/
-// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
-CONS( 1979, vcc, 0, 0, vcc, vcc, vcc_state, init_language<0>, "Fidelity Electronics", "Voice Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1979, vccg, vcc, 0, vcc, vcc, vcc_state, init_language<1>, "Fidelity Electronics", "Voice Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1979, vccsp, vcc, 0, vcc, vcc, vcc_state, init_language<2>, "Fidelity Electronics", "Voice Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1979, vccfr, vcc, 0, vcc, vcc, vcc_state, init_language<4>, "Fidelity Electronics", "Voice Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1980, uvc, vcc, 0, vcc, vcc, vcc_state, init_language<0>, "Fidelity Electronics", "Advanced Voice Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1980, uvcg, vcc, 0, vcc, vcc, vcc_state, init_language<1>, "Fidelity Electronics", "Advanced Voice Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1980, uvcsp, vcc, 0, vcc, vcc, vcc_state, init_language<2>, "Fidelity Electronics", "Advanced Voice Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1980, uvcfr, vcc, 0, vcc, vcc, vcc_state, init_language<4>, "Fidelity Electronics", "Advanced Voice Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
+CONS( 1979, vcc, 0, 0, vcc, vcc, vcc_state, empty_init, "Fidelity Electronics", "Voice Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1980, uvc, vcc, 0, vcc, vcc, vcc_state, empty_init, "Fidelity Electronics", "Advanced Voice Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/drivers/fidel_vsc.cpp b/src/mame/drivers/fidel_vsc.cpp
index 335b1e7cc8c..cbb4d62cddd 100644
--- a/src/mame/drivers/fidel_vsc.cpp
+++ b/src/mame/drivers/fidel_vsc.cpp
@@ -247,7 +247,7 @@ READ8_MEMBER(vsc_state::pio_porta_r)
{
// d0-d7: multiplexed inputs
// also language switches(hardwired with 2 diodes)
- u8 lan = (m_inp_mux & 0x400) ? m_language : 0;
+ u8 lan = (m_inp_mux & 0x400) ? *m_language : 0;
return read_inputs(10) | lan;
}
@@ -397,39 +397,25 @@ ROM_START( vsc )
ROM_LOAD("101-64019", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) )
ROM_LOAD("101-32024", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) )
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) )
- ROM_RELOAD( 0x1000, 0x1000)
-ROM_END
-
-ROM_START( vscg )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("101-64018", 0x0000, 0x2000, CRC(c9c98490) SHA1(e6db883df088d60463e75db51433a4b01a3e7626) )
- ROM_LOAD("101-64019", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) )
- ROM_LOAD("101-32024", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) )
-
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct
-ROM_END
-
-ROM_START( vscsp )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("101-64018", 0x0000, 0x2000, CRC(c9c98490) SHA1(e6db883df088d60463e75db51433a4b01a3e7626) )
- ROM_LOAD("101-64019", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) )
- ROM_LOAD("101-32024", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) )
+ // speech ROM
+ ROM_DEFAULT_BIOS("en")
+ ROM_SYSTEM_BIOS(0, "en", "English")
+ ROM_SYSTEM_BIOS(1, "de", "German")
+ ROM_SYSTEM_BIOS(2, "fr", "French")
+ ROM_SYSTEM_BIOS(3, "sp", "Spanish")
- ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct
-ROM_END
-
-ROM_START( vscfr )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("101-64018", 0x0000, 0x2000, CRC(c9c98490) SHA1(e6db883df088d60463e75db51433a4b01a3e7626) )
- ROM_LOAD("101-64019", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) )
- ROM_LOAD("101-32024", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) )
+ ROM_REGION( 1, "language", 0 )
+ ROMX_FILL(0, 1, 0, ROM_BIOS(0) )
+ ROMX_FILL(0, 1, 1, ROM_BIOS(1) )
+ ROMX_FILL(0, 1, 2, ROM_BIOS(2) )
+ ROMX_FILL(0, 1, 3, ROM_BIOS(3) )
ROM_REGION( 0x2000, "speech", 0 )
- ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct
+ ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) )
+ ROM_RELOAD( 0x1000, 0x1000)
+ ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) )
+ ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) )
+ ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
ROM_END
} // anonymous namespace
@@ -440,8 +426,5 @@ ROM_END
Drivers
******************************************************************************/
-// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
-CONS( 1980, vsc, 0, 0, vsc, vsc, vsc_state, init_language<0>, "Fidelity Electronics", "Voice Sensory Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1980, vscg, vsc, 0, vsc, vsc, vsc_state, init_language<1>, "Fidelity Electronics", "Voice Sensory Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1980, vscsp, vsc, 0, vsc, vsc, vsc_state, init_language<2>, "Fidelity Electronics", "Voice Sensory Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1980, vscfr, vsc, 0, vsc, vsc, vsc_state, init_language<3>, "Fidelity Electronics", "Voice Sensory Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
+CONS( 1980, vsc, 0, 0, vsc, vsc, vsc_state, empty_init, "Fidelity Electronics", "Voice Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
diff --git a/src/mame/drivers/gaelco2.cpp b/src/mame/drivers/gaelco2.cpp
index 92edc4b4387..66dd20ad350 100644
--- a/src/mame/drivers/gaelco2.cpp
+++ b/src/mame/drivers/gaelco2.cpp
@@ -560,7 +560,7 @@ void gaelco2_state::play2000_map(address_map &map)
{
map(0x000000, 0x03ffff).rom(); /* ROM */
map(0x100000, 0x100001).portr("IN0"); /* Coins + other buttons? */
- map(0x110000, 0x110001).portr("IN1");
+ map(0x110000, 0x110001).portr("IN1");
map(0x200000, 0x20ffff).ram().w(FUNC(gaelco2_state::gaelco2_vram_w)).share("spriteram"); /* Video RAM */
map(0x202890, 0x2028ff).rw("gaelco", FUNC(gaelco_gae1_device::gaelcosnd_r), FUNC(gaelco_gae1_device::gaelcosnd_w)); /* Sound Registers */
map(0x214000, 0x214fff).ram().w(FUNC(gaelco2_state::gaelco2_palette_w)).share("paletteram"); /* Palette */
diff --git a/src/mame/drivers/gambl186.cpp b/src/mame/drivers/gambl186.cpp
index fb24cd27511..96c7bd1b3fa 100644
--- a/src/mame/drivers/gambl186.cpp
+++ b/src/mame/drivers/gambl186.cpp
@@ -472,26 +472,25 @@ INPUT_PORTS_END
-MACHINE_CONFIG_START(gambl186_state::gambl186)
- MCFG_DEVICE_ADD("maincpu", I80186, XTAL(40'000'000))
- MCFG_DEVICE_PROGRAM_MAP(gambl186_map)
- MCFG_DEVICE_IO_MAP(gambl186_io)
+void gambl186_state::gambl186(machine_config &config)
+{
+ I80186(config, m_maincpu, XTAL(40'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &gambl186_state::gambl186_map);
+ m_maincpu->set_addrmap(AS_IO, &gambl186_state::gambl186_io);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
- MCFG_SCREEN_UPDATE_DEVICE("vga", cirrus_gd5428_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(XTAL(25'174'800),900,0,640,526,0,480);
+ screen.set_screen_update("vga", FUNC(cirrus_gd5428_device::screen_update));
- MCFG_DEVICE_ADD("vga", CIRRUS_GD5428, 0)
- MCFG_VIDEO_SET_SCREEN("screen")
+ CIRRUS_GD5428(config, "vga", 0).set_screen("screen");
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("7759", UPD7759)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
-
-MACHINE_CONFIG_END
+ UPD7759(config, m_upd7759);
+ m_upd7759->add_route(ALL_OUTPUTS, "mono", 0.75);
+}
diff --git a/src/mame/drivers/gamtor.cpp b/src/mame/drivers/gamtor.cpp
index c282e7944f7..02800959be0 100644
--- a/src/mame/drivers/gamtor.cpp
+++ b/src/mame/drivers/gamtor.cpp
@@ -85,23 +85,23 @@ INPUT_PORTS_END
-MACHINE_CONFIG_START(gaminator_state::gaminator)
- MCFG_DEVICE_ADD("maincpu", MCF5206E, 40000000) /* definitely Coldfire, model / clock uncertain */
- MCFG_DEVICE_PROGRAM_MAP(gaminator_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaminator_state, irq6_line_hold) // irq6 seems to be needed to get past the ROM checking
+void gaminator_state::gaminator(machine_config &config)
+{
+ MCF5206E(config, m_maincpu, 40000000); /* definitely Coldfire, model / clock uncertain */
+ m_maincpu->set_addrmap(AS_PROGRAM, &gaminator_state::gaminator_map);
+ m_maincpu->set_vblank_int("screen", FUNC(gaminator_state::irq6_line_hold)); // irq6 seems to be needed to get past the ROM checking
MCF5206E_PERIPHERAL(config, "maincpu_onboard", 0);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
- MCFG_SCREEN_UPDATE_DEVICE("vga", gamtor_vga_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(XTAL(25'174'800),900,0,640,526,0,480);
+ screen.set_screen_update("vga", FUNC(gamtor_vga_device::screen_update));
- MCFG_DEVICE_ADD("vga", GAMTOR_VGA, 0)
- MCFG_VIDEO_SET_SCREEN("screen")
+ GAMTOR_VGA(config, "vga", 0).set_screen("screen");
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
/* unknown sound */
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/hh_melps4.cpp b/src/mame/drivers/hh_melps4.cpp
index 6f6f49451ce..044c7c2646b 100644
--- a/src/mame/drivers/hh_melps4.cpp
+++ b/src/mame/drivers/hh_melps4.cpp
@@ -294,8 +294,8 @@ static INPUT_PORTS_START( cfrogger )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, nullptr)
INPUT_PORTS_END
-MACHINE_CONFIG_START(cfrogger_state::cfrogger)
-
+void cfrogger_state::cfrogger(machine_config &config)
+{
/* basic machine hardware */
M58846(config, m_maincpu, 600_kHz_XTAL);
m_maincpu->read_k().set(FUNC(cfrogger_state::input_r));
@@ -306,17 +306,16 @@ MACHINE_CONFIG_START(cfrogger_state::cfrogger)
m_maincpu->write_t().set(FUNC(cfrogger_state::speaker_w));
/* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(500, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 500-1, 0, 1080-1)
+ screen_device &screen(SCREEN(config, "screen", "svg"));
+ screen.set_refresh_hz(50);
+ screen.set_size(500, 1080);
+ screen.set_visarea(0, 500-1, 0, 1080-1);
TIMER(config, "display_decay").configure_periodic(FUNC(hh_melps4_state::display_decay_tick), attotime::from_msec(1));
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
+}
@@ -409,8 +408,8 @@ static INPUT_PORTS_START( gjungler )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, nullptr)
INPUT_PORTS_END
-MACHINE_CONFIG_START(gjungler_state::gjungler)
-
+void gjungler_state::gjungler(machine_config &config)
+{
/* basic machine hardware */
M58846(config, m_maincpu, 600_kHz_XTAL);
m_maincpu->read_k().set(FUNC(gjungler_state::input_r));
@@ -422,17 +421,16 @@ MACHINE_CONFIG_START(gjungler_state::gjungler)
m_maincpu->write_t().set(FUNC(gjungler_state::speaker_w));
/* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(481, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 481-1, 0, 1080-1)
+ screen_device &screen(SCREEN(config, "screen", "svg"));
+ screen.set_refresh_hz(50);
+ screen.set_size(481, 1080);
+ screen.set_visarea(0, 481-1, 0, 1080-1);
TIMER(config, "display_decay").configure_periodic(FUNC(hh_melps4_state::display_decay_tick), attotime::from_msec(1));
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
+}
diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp
index 956c5d09ad2..5408932444c 100644
--- a/src/mame/drivers/hh_sm510.cpp
+++ b/src/mame/drivers/hh_sm510.cpp
@@ -1019,6 +1019,87 @@ void kgarfld_state::kgarfld(machine_config &config)
/***************************************************************************
+ Nintendo Game & Watch: Octopus (model OC-22)
+ * PCB label OC-22Y A
+ * Sharp SM5A label OC-22 204A (no decap)
+ * lcd screen with custom segments, 1-bit sound
+
+***************************************************************************/
+
+class gnw_octopus_state : public hh_sm510_state
+{
+public:
+ gnw_octopus_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_sm510_state(mconfig, type, tag)
+ {
+ m_inp_lines = 3;
+ }
+
+ void gnw_octopus(machine_config &config);
+};
+
+// config
+
+static INPUT_PORTS_START( gnw_octopus )
+ PORT_START("IN.0") // R2
+ PORT_CONFNAME( 0x01, 0x00, "Invincibility (Cheat)")
+ PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
+ PORT_CONFSETTING( 0x01, DEF_STR( On ) )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01?
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01?
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01?
+
+ PORT_START("IN.1") // R3
+ PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) // alarm test?
+
+ PORT_START("IN.2") // R4
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Time")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game B")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game A")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alarm")
+
+ PORT_START("BA")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_16WAY
+
+ PORT_START("B")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_16WAY
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL")
+INPUT_PORTS_END
+
+void gnw_octopus_state::gnw_octopus(machine_config &config)
+{
+ /* basic machine hardware */
+ SM5A(config, m_maincpu);
+ m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed
+ m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w));
+ m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r));
+ m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w));
+ m_maincpu->read_ba().set_ioport("BA");
+ m_maincpu->read_b().set_ioport("B");
+
+ /* video hardware */
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
+ screen.set_svg_region("svg");
+ screen.set_refresh_hz(50);
+ screen.set_size(1586, 1080);
+ screen.set_visarea(0, 1586-1, 0, 1080-1);
+
+ TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1));
+
+ /* sound hardware */
+ SPEAKER(config, "mono").front_center();
+ SPEAKER_SOUND(config, m_speaker);
+ m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
+}
+
+
+
+
+
+/***************************************************************************
+
Nintendo Game & Watch: Mickey Mouse (model MC-25), Egg (model EG-26)
* Sharp SM5A label ?
* lcd screen with custom segments, 1-bit sound
@@ -7610,6 +7691,15 @@ ROM_START( kgarfld )
ROM_END
+ROM_START( gnw_octopus )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "oc-22", 0x0000, 0x0740, CRC(bd27781d) SHA1(07b4feb9265c83b159f96c7e8ee1c61a2cc17dc5) )
+
+ ROM_REGION( 119681, "svg", 0)
+ ROM_LOAD( "gnw_octopus.svg", 0, 119681, CRC(39900430) SHA1(61b71c475365966257f5479eab992538ec235c11) )
+ROM_END
+
+
ROM_START( gnw_mmouse )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "mc-25", 0x0000, 0x0740, BAD_DUMP CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) ) // dumped from Soviet clone
@@ -8344,6 +8434,7 @@ CONS( 1991, kbucky, 0, 0, kbucky, kbucky, kbucky_state,
CONS( 1991, kgarfld, 0, 0, kgarfld, kgarfld, kgarfld_state, empty_init, "Konami", "Garfield (handheld)", MACHINE_SUPPORTS_SAVE )
// Nintendo G&W: wide screen
+CONS( 1981, gnw_octopus, 0, 0, gnw_octopus, gnw_octopus, gnw_octopus_state, empty_init, "Nintendo", "Game & Watch: Octopus", MACHINE_SUPPORTS_SAVE )
CONS( 1981, gnw_mmouse, 0, 0, gnw_mmouse, gnw_mmouse, gnw_mmouse_state, empty_init, "Nintendo", "Game & Watch: Mickey Mouse", MACHINE_SUPPORTS_SAVE )
CONS( 1981, gnw_egg, gnw_mmouse, 0, gnw_egg, gnw_mmouse, gnw_mmouse_state, empty_init, "Nintendo", "Game & Watch: Egg", MACHINE_SUPPORTS_SAVE )
CONS( 1984, nupogodi, gnw_mmouse, 0, nupogodi, gnw_mmouse, gnw_mmouse_state, empty_init, "Elektronika", "Nu, pogodi!", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/ibmpcjr.cpp b/src/mame/drivers/ibmpcjr.cpp
index 52f85851c7b..caeaea3ba4b 100644
--- a/src/mame/drivers/ibmpcjr.cpp
+++ b/src/mame/drivers/ibmpcjr.cpp
@@ -638,17 +638,14 @@ MACHINE_CONFIG_START(pcjr_state::ibmpcjr)
serport.cts_handler().set("ins8250", FUNC(ins8250_uart_device::cts_w));
/* video hardware */
- MCFG_DEVICE_ADD("pcvideo_pcjr", PCVIDEO_PCJR, 0)
- MCFG_VIDEO_SET_SCREEN("pcvideo_pcjr:screen")
+ PCVIDEO_PCJR(config, "pcvideo_pcjr", 0).set_screen("pcvideo_pcjr:screen");
GFXDECODE(config, "gfxdecode", "pcvideo_pcjr:palette", gfx_pcjr);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
- MCFG_DEVICE_ADD("sn76496", SN76496, XTAL(14'318'181)/4)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.80);
+ SN76496(config, "sn76496", XTAL(14'318'181)/4).add_route(ALL_OUTPUTS, "mono", 0.80);
/* printer */
pc_lpt_device &lpt0(PC_LPT(config, "lpt_0"));
diff --git a/src/mame/drivers/intellect02.cpp b/src/mame/drivers/intellect02.cpp
index 6fc4699c6dd..e76770b5ced 100644
--- a/src/mame/drivers/intellect02.cpp
+++ b/src/mame/drivers/intellect02.cpp
@@ -65,7 +65,7 @@ public:
m_maincpu(*this, "maincpu"),
m_ppi8255(*this, "ppi8255"),
m_led_delay(*this, "led_delay_%u", 0),
- m_buttons(*this, "IN.%u", 0),
+ m_keypad(*this, "IN.%u", 0),
m_dac(*this, "dac"),
m_cart(*this, "cartslot"),
m_digit(*this, "digit%u", 0U),
@@ -86,7 +86,7 @@ private:
required_device<cpu_device> m_maincpu;
required_device<i8255_device> m_ppi8255;
required_device_array<timer_device, 6> m_led_delay;
- required_ioport_array<2> m_buttons;
+ required_ioport_array<2> m_keypad;
required_device<dac_bit_interface> m_dac;
required_device<generic_slot_device> m_cart;
output_finder<4> m_digit;
@@ -178,7 +178,7 @@ READ8_MEMBER(intel02_state::input_r)
{
// d0-d3: buttons through a priority encoder
// d4-d7: buttons (direct)
- return (count_leading_zeros(m_buttons[0]->read()) - 17) | (~m_buttons[1]->read() << 4 & 0xf0);
+ return (count_leading_zeros(m_keypad[0]->read()) - 17) | (~m_keypad[1]->read() << 4 & 0xf0);
}
WRITE8_MEMBER(intel02_state::_7seg_w)
@@ -252,7 +252,7 @@ static INPUT_PORTS_START( intel02 )
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Input") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Game Select") PORT_CODE(KEYCODE_S)
- PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Erase") PORT_CODE(KEYCODE_DEL)
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Erase") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE)
PORT_START("RESET")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Reset") PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, intel02_state, reset_button, nullptr)
diff --git a/src/mame/drivers/intv.cpp b/src/mame/drivers/intv.cpp
index a2e0ce17778..34fdf36526d 100644
--- a/src/mame/drivers/intv.cpp
+++ b/src/mame/drivers/intv.cpp
@@ -457,24 +457,25 @@ INTERRUPT_GEN_MEMBER(intv_state::intv_interrupt2)
timer_set(m_keyboard->cycles_to_attotime(100), TIMER_INTV_INTERRUPT2_COMPLETE);
}
-MACHINE_CONFIG_START(intv_state::intv)
+void intv_state::intv(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", CP1610, XTAL(3'579'545)/4) /* Colorburst/4 */
- MCFG_DEVICE_PROGRAM_MAP(intv_mem)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", intv_state, intv_interrupt)
+ CP1610(config, m_maincpu, XTAL(3'579'545)/4); /* Colorburst/4 */
+ m_maincpu->set_addrmap(AS_PROGRAM, &intv_state::intv_mem);
+ m_maincpu->set_vblank_int("screen", FUNC(intv_state::intv_interrupt));
config.m_minimum_quantum = attotime::from_hz(60);
/* video hardware */
- MCFG_DEVICE_ADD("stic", STIC, XTAL(3'579'545))
- MCFG_VIDEO_SET_SCREEN("screen")
+ STIC(config, m_stic, XTAL(3'579'545));
+ m_stic->set_screen("screen");
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(59.92)
- //MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2400)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(intv_state, screen_update_intv)
- MCFG_SCREEN_SIZE(stic_device::SCREEN_WIDTH*INTV_X_SCALE, stic_device::SCREEN_HEIGHT*INTV_Y_SCALE)
- MCFG_SCREEN_VISIBLE_AREA(0, stic_device::SCREEN_WIDTH*INTV_X_SCALE-1, 0, stic_device::SCREEN_HEIGHT*INTV_Y_SCALE-1)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(59.92);
+ //screen.set_vblank_time(ATTOSECONDS_IN_USEC(2400)); /* not accurate */
+ screen.set_screen_update(FUNC(intv_state::screen_update_intv));
+ screen.set_size(stic_device::SCREEN_WIDTH*INTV_X_SCALE, stic_device::SCREEN_HEIGHT*INTV_Y_SCALE);
+ screen.set_visarea(0, stic_device::SCREEN_WIDTH*INTV_X_SCALE-1, 0, stic_device::SCREEN_HEIGHT*INTV_Y_SCALE-1);
+ screen.set_palette(m_palette);
PALETTE(config, m_palette, FUNC(intv_state::intv_palette), 0x400, 32);
@@ -494,30 +495,30 @@ MACHINE_CONFIG_START(intv_state::intv)
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("intv");
SOFTWARE_LIST(config, "ecs_list").set_compatible("intvecs");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(intv_state::intv2)
+void intv_state::intv2(machine_config &config)
+{
intv(config);
- MCFG_DEVICE_MODIFY( "maincpu" )
- MCFG_DEVICE_PROGRAM_MAP(intv2_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &intv_state::intv2_mem);
+}
-MACHINE_CONFIG_START(intv_state::intvoice)
+void intv_state::intvoice(machine_config &config)
+{
intv(config);
- MCFG_DEVICE_MODIFY( "maincpu" )
- MCFG_DEVICE_PROGRAM_MAP(intvoice_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &intv_state::intvoice_mem);
config.device_remove("cartslot");
- MCFG_DEVICE_ADD("voice", INTV_ROM_VOICE, 0)
-MACHINE_CONFIG_END
+ INTV_ROM_VOICE(config, "voice", 0);
+}
-MACHINE_CONFIG_START(intv_state::intvecs)
+void intv_state::intvecs(machine_config &config)
+{
intv(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(intvecs_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &intv_state::intvecs_mem);
config.device_remove("cartslot");
- MCFG_DEVICE_ADD("ecs", INTV_ROM_ECS, 0)
+ INTV_ROM_ECS(config, "ecs", 0);
sp0256_device &speech(SP0256(config, "speech", 3120000));
/* The Intellivoice uses a speaker with its own volume control so the relative volumes to use are subjective */
@@ -530,16 +531,16 @@ MACHINE_CONFIG_START(intv_state::intvecs)
config.device_remove("ecs_list");
SOFTWARE_LIST(config.replace(), "cart_list").set_original("intvecs");
SOFTWARE_LIST(config, "intv_list").set_compatible("intv");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(intv_state::intvkbd)
+void intv_state::intvkbd(machine_config &config)
+{
intv(config);
- MCFG_DEVICE_MODIFY( "maincpu" )
- MCFG_DEVICE_PROGRAM_MAP(intvkbd_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &intv_state::intvkbd_mem);
- MCFG_DEVICE_ADD("keyboard", M6502, XTAL(7'159'090)/8)
- MCFG_DEVICE_PROGRAM_MAP(intvkbd2_mem)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", intv_state, intv_interrupt2)
+ M6502(config, m_keyboard, XTAL(7'159'090)/8);
+ m_keyboard->set_addrmap(AS_PROGRAM, &intv_state::intvkbd2_mem);
+ m_keyboard->set_vblank_int("screen", FUNC(intv_state::intv_interrupt2));
config.m_minimum_quantum = attotime::from_hz(6000);
@@ -555,13 +556,12 @@ MACHINE_CONFIG_START(intv_state::intvkbd)
stic_device::OVERSCAN_TOP_HEIGHT*stic_device::Y_SCALE*INTVKBD_Y_SCALE,
stic_device::OVERSCAN_BOTTOM_HEIGHT*stic_device::Y_SCALE*INTVKBD_Y_SCALE);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(intv_state, screen_update_intvkbd)
+ subdevice<screen_device>("screen")->set_screen_update(FUNC(intv_state::screen_update_intvkbd));
/* I/O cartslots for BASIC */
GENERIC_CARTSLOT(config, m_iocart1, generic_plain_slot, "intbasic_cart");
GENERIC_CARTSLOT(config, m_iocart2, generic_plain_slot, "intbasic_cart");
-MACHINE_CONFIG_END
+}
ROM_START(intv) // the intv1 exec rom should be two roms: RO-3-9502-011.U5 and RO-3-9504-021.U6
ROM_REGION(0x10000<<1,"maincpu", ROMREGION_ERASEFF)
diff --git a/src/mame/drivers/leapfrog_leappad.cpp b/src/mame/drivers/leapfrog_leappad.cpp
index 6e7e4e1399d..d01fb8bbc68 100644
--- a/src/mame/drivers/leapfrog_leappad.cpp
+++ b/src/mame/drivers/leapfrog_leappad.cpp
@@ -2,24 +2,24 @@
// copyright-holders:David Haywood
/******************************************************************************
- LEAPPAD:
- Example-Video: https://www.youtube.com/watch?v=LtUhENu5TKc
- The LEAPPAD is basically compareable to the SEGA PICO, but without
- Screen-Output! Each "Game" consists of two parts (Book + Cartridge).
- Insert the cartridge into the system and add the Book on the Top of the
- "console" and you can click on each pages and hear sounds or
- learning-stuff on each page...
-
- MY FIRST LEAPPAD:
- Basically the same as the LEAPPAD, but for even younger kids! (Cartridge
- internal PCB's are identical to LEAPPAD)
- Example Video: https://www.youtube.com/watch?v=gsf8XYV1Tpg
-
- Don't get confused by the name "LEAPPAD", as it looks like Leapfrog
- also released some kind of Tablet with this name, and they even released
- a new "LEAPPAD" in around 2016:
- https://www.youtube.com/watch?v=MXFSgj6xLTU , which nearly looks like the
- same, but is most likely techically completely different..
+ LEAPPAD:
+ Example-Video: https://www.youtube.com/watch?v=LtUhENu5TKc
+ The LEAPPAD is basically compareable to the SEGA PICO, but without
+ Screen-Output! Each "Game" consists of two parts (Book + Cartridge).
+ Insert the cartridge into the system and add the Book on the Top of the
+ "console" and you can click on each pages and hear sounds or
+ learning-stuff on each page...
+
+ MY FIRST LEAPPAD:
+ Basically the same as the LEAPPAD, but for even younger kids! (Cartridge
+ internal PCB's are identical to LEAPPAD)
+ Example Video: https://www.youtube.com/watch?v=gsf8XYV1Tpg
+
+ Don't get confused by the name "LEAPPAD", as it looks like Leapfrog
+ also released some kind of Tablet with this name, and they even released
+ a new "LEAPPAD" in around 2016:
+ https://www.youtube.com/watch?v=MXFSgj6xLTU , which nearly looks like the
+ same, but is most likely techically completely different..
*******************************************************************************/
diff --git a/src/mame/drivers/mikromik.cpp b/src/mame/drivers/mikromik.cpp
index 5be831c4c2c..4c333c4379d 100644
--- a/src/mame/drivers/mikromik.cpp
+++ b/src/mame/drivers/mikromik.cpp
@@ -123,7 +123,7 @@ READ8_MEMBER( mm1_state::read )
break;
case 7:
- data = m_hgdc->read(space, offset & 0x01);
+ data = m_hgdc->read(offset & 0x01);
break;
}
}
@@ -192,7 +192,7 @@ WRITE8_MEMBER( mm1_state::write )
break;
case 7:
- m_hgdc->write(space, offset & 0x01, data);
+ m_hgdc->write(offset & 0x01, data);
break;
}
}
diff --git a/src/mame/drivers/model2.cpp b/src/mame/drivers/model2.cpp
index b29c67f9a6f..3224ee999ad 100644
--- a/src/mame/drivers/model2.cpp
+++ b/src/mame/drivers/model2.cpp
@@ -3493,6 +3493,52 @@ ROM_START( srallycb ) /* Sega Rally Championship Revision B, Model 2A, Sega game
MODEL2A_VID_BOARD
ROM_END
+ROM_START( srallycc ) /* Sega Rally Championship Revision A, Model 2A, Sega game ID# 833-11649 RALLY TWIN, Sega ROM board ID# 834-11618 RALLY TWIN */
+ ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program
+ ROM_LOAD32_WORD( "epr-17888a.12", 0x000000, 0x080000, CRC(7f71fe46) SHA1(cca55b2ce837b1147a31666c1d4e2ecc793447c8) )
+ ROM_LOAD32_WORD( "epr-17889a.13", 0x000002, 0x080000, CRC(6d99b766) SHA1(720e1d8090746c9baa55682e33ba485cf64a1522) )
+
+ ROM_REGION32_LE( 0x2400000, "main_data", 0 ) // Data
+ ROM_LOAD32_WORD( "mpr-17746.10", 0x000000, 0x200000, CRC(8fe311f4) SHA1(f4ada8e5c906fc384bed1b96f09cdf313f89e825) )
+ ROM_LOAD32_WORD( "mpr-17747.11", 0x000002, 0x200000, CRC(543593fd) SHA1(5ba63a77e9fc70569af21d50b3171bc8ff4522b8) )
+ ROM_LOAD32_WORD( "mpr-17744.8", 0x400000, 0x200000, CRC(71fed098) SHA1(1d187cad375121a45348d640edd3cc7dce658d28) )
+ ROM_LOAD32_WORD( "mpr-17745.9", 0x400002, 0x200000, CRC(8ecca705) SHA1(ed2b3298aad6f4e52dc672a0168183e457564b43) )
+ ROM_LOAD32_WORD( "mpr-17884.6", 0x800000, 0x200000, CRC(4cfc95e1) SHA1(81d927b8c4f9d0c4c5e29d676b30f30f83751fdc) )
+ ROM_LOAD32_WORD( "mpr-17885.7", 0x800002, 0x200000, CRC(a08d2467) SHA1(9449ac8f8f9ce8d8e536b05a91e46841fed7f2d0) )
+
+ ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket)
+ ROM_LOAD32_WORD( "mpr-17754.28", 0x000000, 0x200000, CRC(81a84f67) SHA1(c0a9b690523a529e4015e9af10dc3fb2a1726f08) )
+ ROM_LOAD32_WORD( "mpr-17755.29", 0x000002, 0x200000, CRC(2a6e7da4) SHA1(e60803ae951489fe47d66731d15c32249ca547b4) )
+
+ ROM_REGION( 0x010000, "drivecpu", 0 ) // Drive I/O program
+ ROM_LOAD( "epr-17891.ic12", 0x000000, 0x010000, CRC(9a33b437) SHA1(3e8f210aa5159e78f640126cb5ce7f05f22560f2) )
+
+ ROM_REGION( 0x2000000, "polygons", 0 ) // Models
+ ROM_LOAD32_WORD( "mpr-17748.16", 0x000000, 0x200000, CRC(3148a2b2) SHA1(283cc49bfb6c6381a7ead9273fd097dca5b981b6) )
+ ROM_LOAD32_WORD( "mpr-17750.20", 0x000002, 0x200000, CRC(232aec29) SHA1(4d470e71df61298282c356814e2d151fda323fb6) )
+ ROM_LOAD32_WORD( "mpr-17749.17", 0x400000, 0x200000, CRC(0838d184) SHA1(704175c8b29e4c989afcb7be42e7e0e096740eaf) )
+ ROM_LOAD32_WORD( "mpr-17751.21", 0x400002, 0x200000, CRC(ed87ac62) SHA1(601542149d33ca52a47536b4b0af47bf1fd87eb2) )
+
+ ROM_REGION( 0x1000000, "textures", 0 ) // Textures
+ ROM_LOAD32_WORD( "mpr-17753.25", 0x000000, 0x200000, CRC(6db0eb36) SHA1(dd5fd3c9592360d3e95623ac2491e6faabe9dbcb) )
+ ROM_LOAD32_WORD( "mpr-17752.24", 0x000002, 0x200000, CRC(d6aa86ce) SHA1(1d342f87d1af1e5438d1ae818b1b14268e765897) )
+
+ ROM_REGION( 0x20000, "cpu4", 0) // Communication program
+ ROM_LOAD( "epr-16726.bin", 0x000000, 0x020000, CRC(c179b8c7) SHA1(86d3e65c77fb53b1d380b629348f4ab5b3d39228) )
+
+ ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
+ ROM_LOAD16_WORD_SWAP( "epr-17890a.30", 0x000000, 0x040000, CRC(5bac3fa1) SHA1(3635333d36463b6fab25560ed918e05138f964dc) )
+
+ ROM_REGION16_BE( 0x800000, "samples", 0 ) // Samples
+ ROM_LOAD16_WORD_SWAP( "mpr-17756.31", 0x000000, 0x200000, CRC(7725f111) SHA1(1f1ee3f19a6bcf57bc5a1c7dd64ee83f8b81f084) )
+ ROM_LOAD16_WORD_SWAP( "mpr-17757.32", 0x200000, 0x200000, CRC(1616e649) SHA1(1d3a0e441d150ada0535a9d50e2f69dd4b99c584) )
+ ROM_LOAD16_WORD_SWAP( "mpr-17886.36", 0x400000, 0x200000, CRC(54a72923) SHA1(103c4838b27378c834c08d29d6fb6ba95e7f9d03) )
+ ROM_LOAD16_WORD_SWAP( "mpr-17887.37", 0x600000, 0x200000, CRC(38c31fdd) SHA1(a85f05160b060d9d4a431aaa73cfc03f24214fb9) )
+
+ MODEL2_CPU_BOARD
+ MODEL2A_VID_BOARD
+ROM_END
+
ROM_START( srallycdx ) /* Sega Rally Championship DX Revision A, Model 2A - Single player cabinet - NO LINK option!, Sega ROM board ID# 834-11254 RALLY 50 */
ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program
ROM_LOAD32_WORD( "epr-17760a.12", 0x000000, 0x020000, CRC(2c1b996b) SHA1(28c1196aac1c242e61069ee809c9e8229c061950) ) /* AMD 27C1024 EPROM */
@@ -5334,6 +5380,35 @@ ROM_START( overrevb ) /* Over Rev Revision B, Model 2B */
ROM_LOAD16_WORD_SWAP( "mpr-20004.34", 0x400000, 0x400000, CRC(0b9c5410) SHA1(e5bb30702fc853ccc03316be07a334269d3ebb4a) )
ROM_END
+ROM_START( overrevba ) /* Over Rev Revision A, Model 2B */
+ ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program
+ ROM_LOAD32_WORD( "epr-19992a.15", 0x000000, 0x080000, CRC(68d3c8a8) SHA1(360d42c502d16ba056f4bfa8bb1667c8c58df8e2) )
+ ROM_LOAD32_WORD( "epr-19993a.16", 0x000002, 0x080000, CRC(9718eb58) SHA1(07e92d00843dd499e45654827e233723e18cc3e2) )
+
+ ROM_REGION32_LE( 0x2000000, "main_data", 0 ) // Data
+ ROM_LOAD32_WORD( "mpr-19996.11", 0x000000, 0x400000, CRC(21928a00) SHA1(6b439fd2b113b64df9378ef8180a17aa6fa975c5) )
+ ROM_LOAD32_WORD( "mpr-19997.12", 0x000002, 0x400000, CRC(2a169cab) SHA1(dbf9af938afd0599d345c42c1df242e575c14de9) )
+ ROM_LOAD32_WORD( "mpr-19994.9", 0x800000, 0x400000, CRC(e691fbd5) SHA1(b99c2f3f2a682966d792917dfcb8ed8e53bc0b7a) )
+ ROM_LOAD32_WORD( "mpr-19995.10", 0x800002, 0x400000, CRC(82a7828e) SHA1(4336a12a07a67f94091b4a9b491bab02c375dd15) )
+
+ ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc)
+
+ ROM_REGION( 0x800000, "polygons", 0 ) // Models
+ ROM_LOAD32_WORD( "mpr-19998.17", 0x000000, 0x200000, CRC(6a834574) SHA1(8be19bf42dbb157d6acde62a2018ef4c0d41aab4) )
+ ROM_LOAD32_WORD( "mpr-19999.21", 0x000002, 0x200000, CRC(ff590a2d) SHA1(ad29e4270b4a2f82189fbab83358eb1200f43777) )
+
+ ROM_REGION( 0x400000, "textures", 0 ) // Textures
+ ROM_LOAD32_WORD( "mpr-20001.27", 0x000000, 0x200000, CRC(6ca236aa) SHA1(b3cb89fadb42afed13be4f229d7158dee487978a) )
+ ROM_LOAD32_WORD( "mpr-20000.25", 0x000002, 0x200000, CRC(894d8ded) SHA1(9bf7c754a29eef47fa49b5567980601895127306) )
+
+ ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
+ ROM_LOAD16_WORD_SWAP( "epr-20002.31", 0x000000, 0x080000, CRC(7efb069e) SHA1(30b1bbaf348d6a6b9ee2fdf82a0749baa025e0bf) )
+
+ ROM_REGION16_BE( 0x800000, "samples", 0 ) // Samples
+ ROM_LOAD16_WORD_SWAP( "mpr-20003.32", 0x000000, 0x400000, CRC(149ac22b) SHA1(c890bbaebbbb07b62bcb8a3a8edded9fa0ec9a1e) )
+ ROM_LOAD16_WORD_SWAP( "mpr-20004.34", 0x400000, 0x400000, CRC(0b9c5410) SHA1(e5bb30702fc853ccc03316be07a334269d3ebb4a) )
+ROM_END
+
ROM_START( rascot2 ) /* Royal Ascot 2, Model 2C, Rom Board : 837-12485 Com Board : 837-12532 SDC-2 */
ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program
ROM_LOAD32_WORD("epr-20166.15", 0x000000, 0x020000, CRC(520479a4) SHA1(02e14a7be299c2af36373595cf6f154312372a60) )
@@ -6720,6 +6795,7 @@ GAME( 1995, manxtt, 0, manxttdx, manxtt, model2a_state, empty_in
GAME( 1995, manxttc, 0, manxtt, manxtt, model2a_state, empty_init, ROT0, "Sega", "Manx TT Superbike - Twin (Revision C)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
GAME( 1995, srallyc, 0, srallyc, srallyc, model2a_state, empty_init, ROT0, "Sega", "Sega Rally Championship - Twin/DX (Revision C)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
GAME( 1995, srallycb, srallyc, srallyc, srallyc, model2a_state, empty_init, ROT0, "Sega", "Sega Rally Championship - Twin/DX (Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1995, srallycc, srallyc, srallyc, srallyc, model2a_state, empty_init, ROT0, "Sega", "Sega Rally Championship - Twin/DX (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
GAME( 1995, srallycdx, srallyc, srallyc, srallyc, model2a_state, empty_init, ROT0, "Sega", "Sega Rally Championship - DX (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
GAME( 1995, srallycdxa,srallyc, srallyc, srallyc, model2a_state, empty_init, ROT0, "Sega", "Sega Rally Championship - DX", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
GAME( 1995, vcop2, 0, vcop2, vcop2, model2a_state, empty_init, ROT0, "Sega", "Virtua Cop 2", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
@@ -6755,6 +6831,7 @@ GAME( 1996, sgt24h, 0, indy500, sgt24h, model2b_state, init_sg
GAME( 1996, dynabb, 0, dynabb, dynabb, model2b_state, empty_init, ROT0, "Sega", "Dynamite Baseball", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
GAME( 1997, dynabb97, 0, dynabb, dynabb, model2b_state, empty_init, ROT0, "Sega", "Dynamite Baseball 97 (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
GAME( 1997, overrevb, overrev, indy500, overrev, model2b_state, empty_init, ROT0, "Jaleco", "Over Rev (Model 2B, Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1997, overrevba, overrev, indy500, overrev, model2b_state, empty_init, ROT0, "Jaleco", "Over Rev (Model 2B, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
GAME( 1997, zerogun, 0, zerogun, zerogun, model2b_state, init_zerogun, ROT0, "Psikyo", "Zero Gunner (Export, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
GAME( 1997, zerogunj, zerogun, zerogun, zerogun, model2b_state, init_zerogun, ROT0, "Psikyo", "Zero Gunner (Japan, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
GAME( 1998, dynamcopb, dynamcop, model2b_5881, dynamcop, model2b_state, empty_init, ROT0, "Sega", "Dynamite Cop (Export, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/mpz80.cpp b/src/mame/drivers/mpz80.cpp
index 0ef8260530c..0785a308562 100644
--- a/src/mame/drivers/mpz80.cpp
+++ b/src/mame/drivers/mpz80.cpp
@@ -219,7 +219,7 @@ READ8_MEMBER( mpz80_state::mmu_r )
}
else
{
- data = m_s100->smemr_r(space, m_addr);
+ data = m_s100->smemr_r(m_addr);
}
return data;
@@ -267,7 +267,7 @@ WRITE8_MEMBER( mpz80_state::mmu_w )
}
else
{
- m_s100->mwrt_w(space, m_addr, data);
+ m_s100->mwrt_w(m_addr, data);
}
}
@@ -294,7 +294,7 @@ inline offs_t mpz80_state::get_io_address(offs_t offset)
READ8_MEMBER( mpz80_state::mmu_io_r )
{
- return m_s100->sinp_r(space, get_io_address(offset));
+ return m_s100->sinp_r(get_io_address(offset));
}
@@ -304,7 +304,7 @@ READ8_MEMBER( mpz80_state::mmu_io_r )
WRITE8_MEMBER( mpz80_state::mmu_io_w )
{
- m_s100->sout_w(space, get_io_address(offset), data);
+ m_s100->sout_w(get_io_address(offset), data);
}
diff --git a/src/mame/drivers/naomi.cpp b/src/mame/drivers/naomi.cpp
index 1458aa9ca1b..efb064516c3 100644
--- a/src/mame/drivers/naomi.cpp
+++ b/src/mame/drivers/naomi.cpp
@@ -329,7 +329,7 @@ Ferrari F355 Challenge (twin/deluxe, preview) no cart 22848P* 21 (64Mb) pre
\Course Edition (twin/deluxe, prototype) no cart 23399 21 (64Mb) present 315-6206 317-0287-COM content is the same as regular 171-7919A cart
Inu No Osanpo / Dog Walking (Rev A) 840-0073C 22294A 16 (64Mb) present 315-6206 317-0316-JPN requires 837-13844 JVS IO with DIPSW 1 ON
/Mushiking The King Of Beetle
-\(MUSHIUSA '04 1ST, Prototype) not present none 11*(64Mb) present 315-6206 not present * only first 7 flash roms contain game data, PCB have label 840-0150B-FLS.
+\(MUSHIUSA '04 1ST, Prototype) not present none 11*(64Mb) present 315-6206 not present * only first 7 flash roms contain game data, PCB have label 840-0150B-FLS.
Samba de Amigo (prototype) no cart ** 21*(64Mb) present 315-6206 317-0270-COM * only first 14 flash roms contain game data, ** instead of EPROM have tiny PCB with 2 flashroms on it
/Shootout Pool Prize (Export) / Shootout
\Pool The Medal (Japan) Version B (prototype) 840-0136C ** 21*(64Mb) present 317-6206 not present * only first 4 flash roms contain game data, ** instead of EPROM have tiny PCB with 2 flashroms on it
@@ -563,9 +563,9 @@ Marvel Vs. Capcom 2 New Age of Heroes (Korea, Rev A) 841-0007C-03 23085A 14
MushiKing The King of Beetles 2K3 2ND 840-0150C 24217 6 (64Mb) present 317-0394-COM requires 610-0669 barcode reader, 838-14245-92 "MAPLE/232C CONVERT BD" (MIE-based), 838-14243 "RFID CHIP R/W BD" and RFID chip
Quiz Ah Megamisama 840-0030C 23227 16 (64Mb) present 317-0280-JPN
Shootout Pool 840-0098C 23844 4 (64Mb) present 317-0336-COM requires regular 837-13551 and 837-13938 rotary JVS boards
-/Shootout Pool Prize (Export) /
+/Shootout Pool Prize (Export) /
\Shootout Pool The Medal (Japan, Rev A) 840-0128C 24065A 4 (64Mb) present 317-0367-COM requires Naomi-based hopper controller
-/Shootout Pool Prize (Export) /
+/Shootout Pool Prize (Export) /
\Shootout Pool The Medal (Japan) Version B 840-0136C 24148 4 (64Mb) present 317-0367-COM requires Naomi-based or 837-14438 hopper controller (selected by P1 BUTTON1 bit)
SWP Hopper Board 840-0130C 24083 20 (64Mb) present 317-0339-COM reused VF4 Evo ROM board with all maskROMs still in place; there is an additional 837-14381 IO board
Touch de Uno! 2 840-0022C 23071 6 (64Mb) present 317-0276-JPN requires 837-13844 JVS IO with DIPSW 5 On, ELO AccuTouch-compatible touch screen controller and special printer.
@@ -9827,7 +9827,7 @@ ROM_START( clubk2k3 )
ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
/* ROM_REGION(0x200, "some_eeprom", 0)
- ROM_LOAD( "25lc040.ic13s", 0x000, 0x200, NO_DUMP ) */
+ ROM_LOAD( "25lc040.ic13s", 0x000, 0x200, NO_DUMP ) */
// 840-0139 2003 317-0382-COM Naomi 2
ROM_PARAMETER( ":rom_board:key", "d8b0fa4c" )
diff --git a/src/mame/drivers/nascom1.cpp b/src/mame/drivers/nascom1.cpp
index 27a3e13c8c2..588cb5d126b 100644
--- a/src/mame/drivers/nascom1.cpp
+++ b/src/mame/drivers/nascom1.cpp
@@ -120,7 +120,6 @@ public:
void nascom2(machine_config &config);
void nascom2c(machine_config &config);
- void init_nascom2();
void init_nascom2c();
private:
@@ -394,15 +393,6 @@ void nascom2_state::machine_reset()
m_maincpu->set_state_int(Z80_PC, m_lsw1->read() << 12);
}
-void nascom2_state::init_nascom2()
-{
- init_nascom();
-
- // setup nasbus
- m_nasbus->set_program_space(&m_maincpu->space(AS_PROGRAM));
- m_nasbus->set_io_space(&m_maincpu->space(AS_IO));
-}
-
// since we don't know for which regions we should disable ram, we just let other devices
// overwrite the region they need, and re-install our ram when they are disabled
WRITE_LINE_MEMBER( nascom2_state::ram_disable_w )
@@ -418,10 +408,6 @@ void nascom2_state::init_nascom2c()
{
// install memory
m_maincpu->space(AS_PROGRAM).install_ram(0x0000, 0x0000 + m_ram->size() - 1, m_ram->pointer());
-
- // setup nasbus
- m_nasbus->set_program_space(&m_maincpu->space(AS_PROGRAM));
- m_nasbus->set_io_space(&m_maincpu->space(AS_IO));
}
WRITE_LINE_MEMBER( nascom2_state::ram_disable_cpm_w )
@@ -764,6 +750,8 @@ void nascom2_state::nascom2(machine_config &config)
// nasbus expansion bus
nasbus_device &nasbus(NASBUS(config, NASBUS_TAG));
nasbus.ram_disable().set(FUNC(nascom2_state::ram_disable_w));
+ nasbus.set_program_space(m_maincpu, AS_PROGRAM);
+ nasbus.set_io_space(m_maincpu, AS_IO);
NASBUS_SLOT(config, "nasbus1", nasbus_slot_cards, nullptr);
NASBUS_SLOT(config, "nasbus2", nasbus_slot_cards, nullptr);
NASBUS_SLOT(config, "nasbus3", nasbus_slot_cards, nullptr);
@@ -848,5 +836,5 @@ ROM_END
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
COMP( 1978, nascom1, 0, 0, nascom1, nascom1, nascom1_state, init_nascom, "Nascom Microcomputers", "Nascom 1", MACHINE_NO_SOUND_HW )
-COMP( 1979, nascom2, 0, 0, nascom2, nascom2, nascom2_state, init_nascom2, "Nascom Microcomputers", "Nascom 2", MACHINE_NO_SOUND_HW )
+COMP( 1979, nascom2, 0, 0, nascom2, nascom2, nascom2_state, init_nascom, "Nascom Microcomputers", "Nascom 2", MACHINE_NO_SOUND_HW )
COMP( 1980, nascom2c, nascom2, 0, nascom2c, nascom2c, nascom2_state, init_nascom2c, "Nascom Microcomputers", "Nascom 2 (CP/M)", MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/nes.cpp b/src/mame/drivers/nes.cpp
index 34acda1dcef..090834d40db 100644
--- a/src/mame/drivers/nes.cpp
+++ b/src/mame/drivers/nes.cpp
@@ -165,21 +165,21 @@ void nes_state::setup_disk(nes_disksys_device *slot)
address_space &space = m_maincpu->space(AS_PROGRAM);
// Set up memory handlers
- space.install_read_handler(0x4020, 0x40ff, read8_delegate(FUNC(nes_disksys_device::read_ex), (nes_disksys_device *)slot));
- space.install_write_handler(0x4020, 0x40ff, write8_delegate(FUNC(nes_disksys_device::write_ex), (nes_disksys_device *)slot));
- space.install_read_handler(0x4100, 0x5fff, read8_delegate(FUNC(device_nes_cart_interface::read_l), (device_nes_cart_interface *)slot));
- space.install_write_handler(0x4100, 0x5fff, write8_delegate(FUNC(device_nes_cart_interface::write_l), (device_nes_cart_interface *)slot));
- space.install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(nes_disksys_device::read_m), (nes_disksys_device *)slot));
- space.install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(nes_disksys_device::write_m), (nes_disksys_device *)slot));
- space.install_read_handler(0x8000, 0xffff, read8_delegate(FUNC(nes_disksys_device::read_h), (nes_disksys_device *)slot));
- space.install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(nes_disksys_device::write_h), (nes_disksys_device *)slot));
+ space.install_read_handler(0x4020, 0x40ff, read8sm_delegate(FUNC(nes_disksys_device::read_ex), (nes_disksys_device *)slot));
+ space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(FUNC(nes_disksys_device::write_ex), (nes_disksys_device *)slot));
+ space.install_read_handler(0x4100, 0x5fff, read8sm_delegate(FUNC(device_nes_cart_interface::read_l), (device_nes_cart_interface *)slot));
+ space.install_write_handler(0x4100, 0x5fff, write8sm_delegate(FUNC(device_nes_cart_interface::write_l), (device_nes_cart_interface *)slot));
+ space.install_read_handler(0x6000, 0x7fff, read8sm_delegate(FUNC(nes_disksys_device::read_m), (nes_disksys_device *)slot));
+ space.install_write_handler(0x6000, 0x7fff, write8sm_delegate(FUNC(nes_disksys_device::write_m), (nes_disksys_device *)slot));
+ space.install_read_handler(0x8000, 0xffff, read8sm_delegate(FUNC(nes_disksys_device::read_h), (nes_disksys_device *)slot));
+ space.install_write_handler(0x8000, 0xffff, write8sm_delegate(FUNC(nes_disksys_device::write_h), (nes_disksys_device *)slot));
slot->vram_alloc(0x2000);
slot->prgram_alloc(0x8000);
slot->pcb_start(machine(), m_ciram.get(), false);
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(device_nes_cart_interface::chr_r),(device_nes_cart_interface *)slot), write8_delegate(FUNC(device_nes_cart_interface::chr_w),(device_nes_cart_interface *)slot));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(device_nes_cart_interface::nt_r),(device_nes_cart_interface *)slot), write8_delegate(FUNC(device_nes_cart_interface::nt_w),(device_nes_cart_interface *)slot));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8sm_delegate(FUNC(device_nes_cart_interface::chr_r),(device_nes_cart_interface *)slot), write8sm_delegate(FUNC(device_nes_cart_interface::chr_w),(device_nes_cart_interface *)slot));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(FUNC(device_nes_cart_interface::nt_r),(device_nes_cart_interface *)slot), write8sm_delegate(FUNC(device_nes_cart_interface::nt_w),(device_nes_cart_interface *)slot));
m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(device_nes_cart_interface::scanline_irq),(device_nes_cart_interface *)slot));
m_ppu->set_hblank_callback(ppu2c0x_device::hblank_delegate(FUNC(nes_disksys_device::hblank_irq),(nes_disksys_device *)slot));
m_ppu->set_latch(ppu2c0x_device::latch_delegate(FUNC(device_nes_cart_interface::ppu_latch),(device_nes_cart_interface *)slot));
diff --git a/src/mame/drivers/p112.cpp b/src/mame/drivers/p112.cpp
index 178c57f5d9d..7b4c6cb4ad3 100644
--- a/src/mame/drivers/p112.cpp
+++ b/src/mame/drivers/p112.cpp
@@ -90,25 +90,24 @@ uint32_t p112_state::screen_update_p112(screen_device &screen, bitmap_ind16 &bit
return 0;
}
-MACHINE_CONFIG_START(p112_state::p112)
+void p112_state::p112(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z180, XTAL(16'000'000))
- MCFG_DEVICE_PROGRAM_MAP(p112_mem)
- MCFG_DEVICE_IO_MAP(p112_io)
-
+ Z180(config, m_maincpu, XTAL(16'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &p112_state::p112_mem);
+ m_maincpu->set_addrmap(AS_IO, &p112_state::p112_io);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(240, 320)
- MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 320-1)
- MCFG_SCREEN_UPDATE_DRIVER(p112_state, screen_update_p112)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(240, 320);
+ screen.set_visarea(0, 240-1, 0, 320-1);
+ screen.set_screen_update(FUNC(p112_state::screen_update_p112));
+ screen.set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME);
-
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( p112 )
diff --git a/src/mame/drivers/p2000t.cpp b/src/mame/drivers/p2000t.cpp
index a226b2b8a14..1f5a0fccc51 100644
--- a/src/mame/drivers/p2000t.cpp
+++ b/src/mame/drivers/p2000t.cpp
@@ -221,20 +221,21 @@ READ8_MEMBER( p2000t_state::videoram_r )
}
/* Machine definition */
-MACHINE_CONFIG_START(p2000t_state::p2000t)
+void p2000t_state::p2000t(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 2500000)
- MCFG_DEVICE_PROGRAM_MAP(p2000t_mem)
- MCFG_DEVICE_IO_MAP(p2000t_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", p2000t_state, p2000_interrupt)
+ Z80(config, m_maincpu, 2500000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &p2000t_state::p2000t_mem);
+ m_maincpu->set_addrmap(AS_IO, &p2000t_state::p2000t_io);
+ m_maincpu->set_vblank_int("screen", FUNC(p2000t_state::p2000_interrupt));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_SIZE(40 * 12, 24 * 20)
- MCFG_SCREEN_VISIBLE_AREA(0, 40 * 12 - 1, 0, 24 * 20 - 1)
- MCFG_SCREEN_UPDATE_DEVICE("saa5050", saa5050_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
+ screen.set_size(40 * 12, 24 * 20);
+ screen.set_visarea(0, 40 * 12 - 1, 0, 24 * 20 - 1);
+ screen.set_screen_update("saa5050", FUNC(saa5050_device::screen_update));
saa5050_device &saa5050(SAA5050(config, "saa5050", 6000000));
saa5050.d_cb().set(FUNC(p2000t_state::videoram_r));
@@ -242,28 +243,28 @@ MACHINE_CONFIG_START(p2000t_state::p2000t)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
+}
/* Machine definition */
-MACHINE_CONFIG_START(p2000m_state::p2000m)
+void p2000m_state::p2000m(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 2500000)
- MCFG_DEVICE_PROGRAM_MAP(p2000m_mem)
- MCFG_DEVICE_IO_MAP(p2000t_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", p2000m_state, p2000_interrupt)
+ Z80(config, m_maincpu, 2500000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &p2000m_state::p2000m_mem);
+ m_maincpu->set_addrmap(AS_IO, &p2000m_state::p2000t_io);
+ m_maincpu->set_vblank_int("screen", FUNC(p2000m_state::p2000_interrupt));
config.m_minimum_quantum = attotime::from_hz(60);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(80 * 12, 24 * 20)
- MCFG_SCREEN_VISIBLE_AREA(0, 80 * 12 - 1, 0, 24 * 20 - 1)
- MCFG_SCREEN_UPDATE_DRIVER(p2000m_state, screen_update_p2000m)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(80 * 12, 24 * 20);
+ screen.set_visarea(0, 80 * 12 - 1, 0, 24 * 20 - 1);
+ screen.set_screen_update(FUNC(p2000m_state::screen_update_p2000m));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_p2000m);
PALETTE(config, m_palette, FUNC(p2000m_state::p2000m_palette), 4);
@@ -271,7 +272,7 @@ MACHINE_CONFIG_START(p2000m_state::p2000m)
/* sound hardware */
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
-MACHINE_CONFIG_END
+}
ROM_START(p2000t)
diff --git a/src/mame/drivers/p8k.cpp b/src/mame/drivers/p8k.cpp
index ca0f224b832..79efb9f0aae 100644
--- a/src/mame/drivers/p8k.cpp
+++ b/src/mame/drivers/p8k.cpp
@@ -416,7 +416,8 @@ GFXDECODE_END
****************************************************************************/
-MACHINE_CONFIG_START(p8k_state::p8k)
+void p8k_state::p8k(machine_config &config)
+{
/* basic machine hardware */
z80_device& maincpu(Z80(config, "maincpu", 16_MHz_XTAL / 4));
maincpu.set_daisy_config(p8k_daisy_chain);
@@ -481,17 +482,17 @@ MACHINE_CONFIG_START(p8k_state::p8k)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("beeper", BEEP, 3250)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
-MACHINE_CONFIG_END
+ BEEP(config, "beeper", 3250).add_route(ALL_OUTPUTS, "mono", 0.5);
+}
-MACHINE_CONFIG_START(p8k_state::p8k_16)
+void p8k_state::p8k_16(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z8001, XTAL(4'000'000) )
- MCFG_DEVICE_PROGRAM_MAP(p8k_16_memmap)
- MCFG_DEVICE_DATA_MAP(p8k_16_datamap)
- MCFG_DEVICE_IO_MAP(p8k_16_iomap)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("p8k_16_daisy", p8k_16_daisy_device, irq_callback)
+ Z8001(config, m_maincpu, XTAL(4'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &p8k_state::p8k_16_memmap);
+ m_maincpu->set_addrmap(AS_DATA, &p8k_state::p8k_16_datamap);
+ m_maincpu->set_addrmap(AS_IO, &p8k_state::p8k_16_iomap);
+ m_maincpu->set_irq_acknowledge_callback("p8k_16_daisy", FUNC(p8k_16_daisy_device::irq_callback));
P8K_16_DAISY(config, m_daisy, 0);
m_daisy->set_daisy_config(p8k_16_daisy_chain);
@@ -531,9 +532,8 @@ MACHINE_CONFIG_START(p8k_state::p8k_16)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("beeper", BEEP, 3250)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
-MACHINE_CONFIG_END
+ BEEP(config, "beeper", 3250).add_route(ALL_OUTPUTS, "mono", 0.5);
+}
/* ROM definition */
ROM_START( p8000 )
diff --git a/src/mame/drivers/palestra.cpp b/src/mame/drivers/palestra.cpp
index cac0d842f5f..a4c188675fd 100644
--- a/src/mame/drivers/palestra.cpp
+++ b/src/mame/drivers/palestra.cpp
@@ -72,8 +72,8 @@ INPUT_PORTS_END
MACHINE_CONFIG_START(palestra_state::palestra)
- MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK)
- MCFG_NETLIST_SETUP(palestra)
+ NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK);
+ m_maincpu->set_constructor(netlist_palestra);
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "vid0", "videomix", fixedfreq_device, update_composite_monochrome, "fixfreq")
diff --git a/src/mame/drivers/palmz22.cpp b/src/mame/drivers/palmz22.cpp
index a0548582971..9afea7cc2c3 100644
--- a/src/mame/drivers/palmz22.cpp
+++ b/src/mame/drivers/palmz22.cpp
@@ -288,19 +288,19 @@ void palmz22_state::init_palmz22()
{
}
-MACHINE_CONFIG_START(palmz22_state::palmz22)
- MCFG_DEVICE_ADD(m_maincpu, ARM920T, 266000000)
- MCFG_DEVICE_PROGRAM_MAP(map)
-
- MCFG_PALETTE_ADD("palette", 32768)
+void palmz22_state::palmz22(machine_config &config)
+{
+ ARM920T(config, m_maincpu, 266000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &palmz22_state::map);
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(160, 160)
- MCFG_SCREEN_VISIBLE_AREA(0, 160 - 1, 0, 160 - 1)
+ PALETTE(config, "palette").set_entries(32768);
- MCFG_SCREEN_UPDATE_DEVICE("s3c2410", s3c2410_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(160, 160);
+ screen.set_visarea(0, 160 - 1, 0, 160 - 1);
+ screen.set_screen_update("s3c2410", FUNC(s3c2410_device::screen_update));
S3C2410(config, m_s3c2410, 12000000);
m_s3c2410->set_palette_tag("palette");
@@ -317,7 +317,7 @@ MACHINE_CONFIG_START(palmz22_state::palmz22)
NAND(config, m_nand, 0);
m_nand->set_nand_type(nand_device::chip::K9F5608U0D_J);
m_nand->rnb_wr_callback().set(m_s3c2410, FUNC(s3c2410_device::frnb_w));
-MACHINE_CONFIG_END
+}
static INPUT_PORTS_START( palmz22 )
PORT_START( "PENB" )
diff --git a/src/mame/drivers/pangofun.cpp b/src/mame/drivers/pangofun.cpp
index fb0478d8aa8..cf2895b11bd 100644
--- a/src/mame/drivers/pangofun.cpp
+++ b/src/mame/drivers/pangofun.cpp
@@ -179,21 +179,21 @@ void pangofun_state::machine_start()
{
}
-MACHINE_CONFIG_START(pangofun_state::pangofun)
+void pangofun_state::pangofun(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I486, 25000000 ) /* I486 ?? Mhz (25 according to POST) */
- MCFG_DEVICE_PROGRAM_MAP(pcat_map)
- MCFG_DEVICE_IO_MAP(pcat_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb)
+ I486(config, m_maincpu, 25000000); /* I486 ?? Mhz (25 according to POST) */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pangofun_state::pcat_map);
+ m_maincpu->set_addrmap(AS_IO, &pangofun_state::pcat_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb));
/* video hardware */
pcvideo_vga(config);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ subdevice<screen_device>("screen")->set_refresh_hz(60);
+ subdevice<screen_device>("screen")->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
pcat_common(config);
-MACHINE_CONFIG_END
+}
ROM_START(pangofun)
diff --git a/src/mame/drivers/panicr.cpp b/src/mame/drivers/panicr.cpp
index b80c1171430..b22d278d528 100644
--- a/src/mame/drivers/panicr.cpp
+++ b/src/mame/drivers/panicr.cpp
@@ -602,22 +602,22 @@ TIMER_DEVICE_CALLBACK_MEMBER(panicr_state::scanline)
m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xc8/4);
}
-MACHINE_CONFIG_START(panicr_state::panicr)
- MCFG_DEVICE_ADD("maincpu", V20,MASTER_CLOCK/2) /* Sony 8623h9 CXQ70116D-8 (V20 compatible) */
- MCFG_DEVICE_PROGRAM_MAP(panicr_map)
+void panicr_state::panicr(machine_config &config)
+{
+ V20(config, m_maincpu, MASTER_CLOCK/2); /* Sony 8623h9 CXQ70116D-8 (V20 compatible) */
+ m_maincpu->set_addrmap(AS_PROGRAM, &panicr_state::panicr_map);
TIMER(config, "scantimer").configure_scanline(FUNC(panicr_state::scanline), "screen", 0, 1);
- MCFG_DEVICE_ADD("t5182", T5182, 0)
-
+ T5182(config, m_t5182, 0);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
-// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(panicr_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ m_screen->set_size(32*8, 32*8);
+// m_screen->set_visarea(0*8, 32*8-1, 0*8, 32*8-1);
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(panicr_state::screen_update));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_panicr);
PALETTE(config, m_palette, FUNC(panicr_state::panicr_palette), 256 * 4, 256);
@@ -629,7 +629,7 @@ MACHINE_CONFIG_START(panicr_state::panicr)
ymsnd.irq_handler().set(m_t5182, FUNC(t5182_device::ym2151_irq_handler));
ymsnd.add_route(0, "mono", 1.0);
ymsnd.add_route(1, "mono", 1.0);
-MACHINE_CONFIG_END
+}
ROM_START( panicr )
diff --git a/src/mame/drivers/paradise.cpp b/src/mame/drivers/paradise.cpp
index bf93a4dd828..4c73aef6164 100644
--- a/src/mame/drivers/paradise.cpp
+++ b/src/mame/drivers/paradise.cpp
@@ -731,23 +731,23 @@ INTERRUPT_GEN_MEMBER(paradise_state::irq)
m_maincpu->set_input_line(INPUT_LINE_IRQ0, HOLD_LINE);
}
-MACHINE_CONFIG_START(paradise_state::paradise)
-
+void paradise_state::paradise(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2) /* Z8400B - 6mhz Verified */
- MCFG_DEVICE_PROGRAM_MAP(paradise_map)
- MCFG_DEVICE_IO_MAP(paradise_io_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(paradise_state, irq, 4*54) /* No nmi routine, timing is confirmed (i.e. three timing irqs for each vblank irq */
+ Z80(config, m_maincpu, XTAL(12'000'000)/2); /* Z8400B - 6mhz Verified */
+ m_maincpu->set_addrmap(AS_PROGRAM, &paradise_state::paradise_map);
+ m_maincpu->set_addrmap(AS_IO, &paradise_state::paradise_io_map);
+ m_maincpu->set_periodic_int(FUNC(paradise_state::irq), attotime::from_hz(4*54)); /* No nmi routine, timing is confirmed (i.e. three timing irqs for each vblank irq */
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_REFRESH_RATE(54) /* 54 verified */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* we're using PORT_VBLANK */)
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-1-16)
- MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_paradise)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(54); /* 54 verified */
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* we're using PORT_VBLANK */);
+ m_screen->set_size(256, 256);
+ m_screen->set_visarea(0, 256-1, 0+16, 256-1-16);
+ m_screen->set_screen_update(FUNC(paradise_state::screen_update_paradise));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_paradise);
PALETTE(config, m_palette).set_entries(0x800 + 16);
@@ -756,34 +756,32 @@ MACHINE_CONFIG_START(paradise_state::paradise)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ OKIM6295(config, "oki1", XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.50); /* verified on pcb */
- MCFG_DEVICE_ADD("oki2", OKIM6295, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki2, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.50); /* verified on pcb */
+}
-MACHINE_CONFIG_START(paradise_state::tgtball)
+void paradise_state::tgtball(machine_config &config)
+{
paradise(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(tgtball_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &paradise_state::tgtball_map);
+}
-MACHINE_CONFIG_START(paradise_state::torus)
+void paradise_state::torus(machine_config &config)
+{
paradise(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(torus_map)
- MCFG_DEVICE_IO_MAP(torus_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &paradise_state::torus_map);
+ m_maincpu->set_addrmap(AS_IO, &paradise_state::torus_io_map);
m_gfxdecode->set_info(gfx_torus);
m_screen->set_screen_update(FUNC(paradise_state::screen_update_torus));
config.device_remove("oki2");
-MACHINE_CONFIG_END
+}
void paradise_state::madball(machine_config &config)
{
@@ -794,14 +792,14 @@ void paradise_state::madball(machine_config &config)
m_screen->set_screen_update(FUNC(paradise_state::screen_update_madball));
}
-MACHINE_CONFIG_START(paradise_state::penky)
+void paradise_state::penky(machine_config &config)
+{
paradise(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(torus_map)
- MCFG_DEVICE_IO_MAP(torus_io_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &paradise_state::torus_map);
+ m_maincpu->set_addrmap(AS_IO, &paradise_state::torus_io_map);
+}
void paradise_state::penkyi(machine_config &config)
diff --git a/src/mame/drivers/paranoia.cpp b/src/mame/drivers/paranoia.cpp
index 5c215799342..affe48db73e 100644
--- a/src/mame/drivers/paranoia.cpp
+++ b/src/mame/drivers/paranoia.cpp
@@ -165,7 +165,8 @@ WRITE_LINE_MEMBER(paranoia_state::i8155_timer_out)
//logerror("Timer out %d\n", state);
}
-MACHINE_CONFIG_START(paranoia_state::paranoia)
+void paranoia_state::paranoia(machine_config &config)
+{
/* basic machine hardware */
H6280(config, m_maincpu, PCE_MAIN_CLOCK/3);
m_maincpu->set_addrmap(AS_PROGRAM, &paranoia_state::pce_mem);
@@ -177,13 +178,13 @@ MACHINE_CONFIG_START(paranoia_state::paranoia)
config.m_minimum_quantum = attotime::from_hz(60);
- MCFG_DEVICE_ADD("sub", I8085A, 18000000/3)
- MCFG_DEVICE_PROGRAM_MAP(paranoia_8085_map)
- MCFG_DEVICE_IO_MAP(paranoia_8085_io_map)
+ i8085a_cpu_device &sub(I8085A(config, "sub", 18000000/3));
+ sub.set_addrmap(AS_PROGRAM, &paranoia_state::paranoia_8085_map);
+ sub.set_addrmap(AS_IO, &paranoia_state::paranoia_8085_io_map);
- MCFG_DEVICE_ADD("sub2", Z80, 18000000/6)
- MCFG_DEVICE_PROGRAM_MAP(paranoia_z80_map)
- MCFG_DEVICE_IO_MAP(paranoia_z80_io_map)
+ z80_device &sub2(Z80(config, "sub2", 18000000/6));
+ sub2.set_addrmap(AS_PROGRAM, &paranoia_state::paranoia_z80_map);
+ sub2.set_addrmap(AS_IO, &paranoia_state::paranoia_z80_io_map);
i8155_device &i8155(I8155(config, "i8155", 1000000 /*?*/));
i8155.out_pa_callback().set(FUNC(paranoia_state::i8155_a_w));
@@ -192,10 +193,10 @@ MACHINE_CONFIG_START(paranoia_state::paranoia)
i8155.out_to_callback().set(FUNC(paranoia_state::i8155_timer_out));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242)
- MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update )
- MCFG_SCREEN_PALETTE("huc6260")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(PCE_MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242);
+ screen.set_screen_update(FUNC(pce_common_state::screen_update));
+ screen.set_palette(m_huc6260);
HUC6260(config, m_huc6260, PCE_MAIN_CLOCK);
m_huc6260->next_pixel_data().set("huc6270", FUNC(huc6270_device::next_pixel));
@@ -209,7 +210,7 @@ MACHINE_CONFIG_START(paranoia_state::paranoia)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
-MACHINE_CONFIG_END
+}
ROM_START(paranoia)
ROM_REGION( 0x40000, "maincpu", 0 )
diff --git a/src/mame/drivers/pasha2.cpp b/src/mame/drivers/pasha2.cpp
index 9acbc634bb2..5885b1c6aba 100644
--- a/src/mame/drivers/pasha2.cpp
+++ b/src/mame/drivers/pasha2.cpp
@@ -398,41 +398,39 @@ void pasha2_state::machine_reset()
m_vbuffer = 0;
}
-MACHINE_CONFIG_START(pasha2_state::pasha2)
-
+void pasha2_state::pasha2(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", E116XT, 20000000*4) /* 4x internal multiplier */
- MCFG_DEVICE_PROGRAM_MAP(pasha2_map)
- MCFG_DEVICE_IO_MAP(pasha2_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pasha2_state, irq0_line_hold)
+ E116XT(config, m_maincpu, 20000000*4); /* 4x internal multiplier */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pasha2_state::pasha2_map);
+ m_maincpu->set_addrmap(AS_IO, &pasha2_state::pasha2_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pasha2_state::irq0_line_hold));
- MCFG_DEVICE_ADD("audiocpu", AT89C52, 12000000) /* clock from docs */
+ AT89C52(config, m_audiocpu, 12000000); /* clock from docs */
/* TODO : ports are unimplemented; P0,P1,P2,P3 and Serial Port Used */
EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(512, 512)
- MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239)
- MCFG_SCREEN_UPDATE_DRIVER(pasha2_state, screen_update_pasha2)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(512, 512);
+ screen.set_visarea(0, 383, 0, 239);
+ screen.set_screen_update(FUNC(pasha2_state::screen_update_pasha2));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_entries(0x200);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki1", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ OKIM6295(config, m_oki[0], 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0);
- MCFG_DEVICE_ADD("oki2", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ OKIM6295(config, m_oki[1], 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0);
//and ATMEL DREAM SAM9773
-MACHINE_CONFIG_END
+}
ROM_START( pasha2 )
ROM_REGION16_BE( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
diff --git a/src/mame/drivers/paso1600.cpp b/src/mame/drivers/paso1600.cpp
index 010e921acaa..e01e46d17c4 100644
--- a/src/mame/drivers/paso1600.cpp
+++ b/src/mame/drivers/paso1600.cpp
@@ -304,25 +304,25 @@ WRITE8_MEMBER(paso1600_state::pc_dma_write_byte)
space.write_byte(offset, data);
}
-MACHINE_CONFIG_START(paso1600_state::paso1600)
+void paso1600_state::paso1600(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8086, 16000000/2)
- MCFG_DEVICE_PROGRAM_MAP(paso1600_map)
- MCFG_DEVICE_IO_MAP(paso1600_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
+ I8086(config, m_maincpu, 16000000/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &paso1600_state::paso1600_map);
+ m_maincpu->set_addrmap(AS_IO, &paso1600_state::paso1600_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_DRIVER(paso1600_state, screen_update_paso1600)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(640, 480);
+ screen.set_visarea(0, 640-1, 0, 480-1);
+ screen.set_screen_update(FUNC(paso1600_state::screen_update_paso1600));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_paso1600);
- MCFG_PALETTE_ADD("palette", 8)
-// MCFG_PALETTE_INIT(black_and_white)
+ PALETTE(config, m_palette).set_entries(8);
/* Devices */
h46505_device &crtc(H46505(config, "crtc", 16000000/4)); /* unknown clock, hand tuned to get ~60 fps */
@@ -336,7 +336,7 @@ MACHINE_CONFIG_START(paso1600_state::paso1600)
AM9517A(config, m_dma, 16000000/4);
m_dma->in_memr_callback().set(FUNC(paso1600_state::pc_dma_read_byte));
m_dma->out_memw_callback().set(FUNC(paso1600_state::pc_dma_write_byte));
-MACHINE_CONFIG_END
+}
ROM_START( paso1600 )
ROM_REGION16_LE(0x2000,"ipl", 0)
diff --git a/src/mame/drivers/pasopia.cpp b/src/mame/drivers/pasopia.cpp
index 48d53cb5fd3..3ce53dbc8a5 100644
--- a/src/mame/drivers/pasopia.cpp
+++ b/src/mame/drivers/pasopia.cpp
@@ -286,7 +286,8 @@ We preset all banks here, so that bankswitching will incur no speed penalty.
m_pio_timer->adjust(attotime::from_hz(50), 0, attotime::from_hz(50));
}
-MACHINE_CONFIG_START(pasopia_state::pasopia)
+void pasopia_state::pasopia(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, 4000000);
@@ -295,14 +296,14 @@ MACHINE_CONFIG_START(pasopia_state::pasopia)
m_maincpu->set_daisy_config(pasopia_daisy);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_DEVICE("crtc", h46505_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(640, 480);
+ screen.set_visarea(0, 640-1, 0, 480-1);
+ screen.set_screen_update("crtc", FUNC(h46505_device::screen_update));
GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia);
- MCFG_PALETTE_ADD("palette", 8)
+ PALETTE(config, m_palette).set_entries(8);
/* Devices */
H46505(config, m_crtc, XTAL(4'000'000)/4); /* unknown clock, hand tuned to get ~60 fps */
@@ -334,7 +335,7 @@ MACHINE_CONFIG_START(pasopia_state::pasopia)
m_pio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
m_pio->out_pa_callback().set(FUNC(pasopia_state::mux_w));
m_pio->in_pb_callback().set(FUNC(pasopia_state::keyb_r));
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pasopia )
diff --git a/src/mame/drivers/pasopia7.cpp b/src/mame/drivers/pasopia7.cpp
index 1cbdbc3f93d..4d39305960a 100644
--- a/src/mame/drivers/pasopia7.cpp
+++ b/src/mame/drivers/pasopia7.cpp
@@ -968,46 +968,50 @@ void pasopia7_state::p7_base(machine_config &config)
FLOPPY_CONNECTOR(config, "fdc:1", pasopia7_floppies, "525hd", floppy_image_device::default_floppy_formats);
}
-MACHINE_CONFIG_START(pasopia7_state::p7_raster)
+void pasopia7_state::p7_raster(machine_config &config)
+{
p7_base(config);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 32-1)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(640, 480);
+ m_screen->set_visarea(0, 640-1, 0, 32-1);
+ m_screen->set_palette(m_palette);
+ m_screen->set_screen_update(FUNC(pasopia7_state::screen_update_pasopia7));
MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7)
- MCFG_SCREEN_UPDATE_DRIVER(pasopia7_state, screen_update_pasopia7)
+
PALETTE(config, m_palette, palette_device::BRG_3BIT);
GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia7);
H46505(config, m_crtc, VDP_CLOCK); /* unknown clock, hand tuned to get ~60 fps */
- m_crtc->set_screen("screen");
+ m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pasopia7_state::p7_lcd)
+void pasopia7_state::p7_lcd(machine_config &config)
+{
p7_base(config);
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
+ SCREEN(config, m_screen, SCREEN_TYPE_LCD);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(640, 480);
+ m_screen->set_visarea(0, 640-1, 0, 200-1);
+ m_screen->set_screen_update(FUNC(pasopia7_state::screen_update_pasopia7));
+ m_screen->set_palette(m_palette);
+
MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7)
- MCFG_SCREEN_UPDATE_DRIVER(pasopia7_state, screen_update_pasopia7)
- MCFG_SCREEN_PALETTE(m_palette)
PALETTE(config, m_palette, FUNC(pasopia7_state::p7_lcd_palette), 8);
GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia7);
H46505(config, m_crtc, LCD_CLOCK); /* unknown clock, hand tuned to get ~60 fps */
- m_crtc->set_screen("screen");
+ m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pasopia7 )
diff --git a/src/mame/drivers/pass.cpp b/src/mame/drivers/pass.cpp
index 4bc1a2f511f..da1d72c0a06 100644
--- a/src/mame/drivers/pass.cpp
+++ b/src/mame/drivers/pass.cpp
@@ -241,26 +241,26 @@ static GFXDECODE_START( gfx_pass )
GFXDECODE_END
/* todo : is this correct? */
-MACHINE_CONFIG_START(pass_state::pass)
-
+void pass_state::pass(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 14318180/2 )
- MCFG_DEVICE_PROGRAM_MAP(pass_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pass_state, irq1_line_hold) /* all the same */
+ M68000(config, m_maincpu, 14318180/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pass_state::pass_map);
+ m_maincpu->set_vblank_int("screen", FUNC(pass_state::irq1_line_hold)); /* all the same */
- MCFG_DEVICE_ADD("audiocpu", Z80, 14318180/4 )
- MCFG_DEVICE_PROGRAM_MAP(pass_sound_map)
- MCFG_DEVICE_IO_MAP(pass_sound_io_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(pass_state, irq0_line_hold, 60) /* probably not accurate, unknown timing and generation (ym2203 sound chip?). */
+ z80_device &audiocpu(Z80(config, "audiocpu", 14318180/4));
+ audiocpu.set_addrmap(AS_PROGRAM, &pass_state::pass_sound_map);
+ audiocpu.set_addrmap(AS_IO, &pass_state::pass_sound_io_map);
+ audiocpu.set_periodic_int(FUNC(pass_state::irq0_line_hold), attotime::from_hz(60)); /* probably not accurate, unknown timing and generation (ym2203 sound chip?). */
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pass_state, screen_update_pass)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(8*8, 48*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(pass_state::screen_update_pass));
+ screen.set_palette("palette");
PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x200);
GFXDECODE(config, m_gfxdecode, "palette", gfx_pass);
@@ -271,12 +271,10 @@ MACHINE_CONFIG_START(pass_state::pass)
GENERIC_LATCH_8(config, "soundlatch");
- MCFG_DEVICE_ADD("ymsnd", YM2203, 14318180/4)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
+ YM2203(config, "ymsnd", 14318180/4).add_route(ALL_OUTPUTS, "mono", 0.60);
- MCFG_DEVICE_ADD("oki", OKIM6295, 792000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", 792000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.60); // clock frequency & pin 7 not verified
+}
ROM_START( pass )
diff --git a/src/mame/drivers/pastelg.cpp b/src/mame/drivers/pastelg.cpp
index 3ec950a89e9..5a253adb99d 100644
--- a/src/mame/drivers/pastelg.cpp
+++ b/src/mame/drivers/pastelg.cpp
@@ -397,26 +397,26 @@ static INPUT_PORTS_START( galds )
INPUT_PORTS_END
-MACHINE_CONFIG_START(pastelg_state::pastelg)
-
+void pastelg_state::pastelg(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 19968000/4) /* unknown divider, galds definitely relies on this for correct voice pitch */
- MCFG_DEVICE_PROGRAM_MAP(pastelg_map)
- MCFG_DEVICE_IO_MAP(pastelg_io_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pastelg_state, irq0_line_assert) // nmiclock not written, chip is 1411M1 instead of 1413M3
+ Z80(config, m_maincpu, 19968000/4); /* unknown divider, galds definitely relies on this for correct voice pitch */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pastelg_state::pastelg_map);
+ m_maincpu->set_addrmap(AS_IO, &pastelg_state::pastelg_io_map);
+ m_maincpu->set_vblank_int("screen", FUNC(pastelg_state::irq0_line_assert)); // nmiclock not written, chip is 1411M1 instead of 1413M3
NB1413M3(config, m_nb1413m3, 0, NB1413M3_PASTELG);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(256, 256);
+ m_screen->set_visarea(0, 256-1, 16, 240-1);
+ m_screen->set_screen_update(FUNC(pastelg_state::screen_update_pastelg));
+ m_screen->set_palette("palette");
PALETTE(config, "palette", FUNC(pastelg_state::pastelg_palette), 32);
@@ -432,7 +432,7 @@ MACHINE_CONFIG_START(pastelg_state::pastelg)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
/*
@@ -457,25 +457,25 @@ Note
*/
-MACHINE_CONFIG_START(pastelg_state::threeds)
-
+void pastelg_state::threeds(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 19968000/4) /* unknown divider, galds definitely relies on this for correct voice pitch */
- MCFG_DEVICE_PROGRAM_MAP(pastelg_map)
- MCFG_DEVICE_IO_MAP(threeds_io_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pastelg_state, irq0_line_assert)
+ Z80(config, m_maincpu, 19968000/4); /* unknown divider, galds definitely relies on this for correct voice pitch */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pastelg_state::pastelg_map);
+ m_maincpu->set_addrmap(AS_IO, &pastelg_state::threeds_io_map);
+ m_maincpu->set_vblank_int("screen", FUNC(pastelg_state::irq0_line_assert));
NB1413M3(config, m_nb1413m3, 0);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(256, 256);
+ m_screen->set_visarea(0, 256-1, 16, 240-1);
+ m_screen->set_screen_update(FUNC(pastelg_state::screen_update_pastelg));
+ m_screen->set_palette("palette");
PALETTE(config, "palette", FUNC(pastelg_state::pastelg_palette), 32);
@@ -491,7 +491,7 @@ MACHINE_CONFIG_START(pastelg_state::threeds)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
ROM_START( pastelg )
diff --git a/src/mame/drivers/patapata.cpp b/src/mame/drivers/patapata.cpp
index de68c9d5c9a..9638f33ef2b 100644
--- a/src/mame/drivers/patapata.cpp
+++ b/src/mame/drivers/patapata.cpp
@@ -285,37 +285,36 @@ TIMER_DEVICE_CALLBACK_MEMBER(patapata_state::scanline)
if (param==128) m_maincpu->set_input_line(1, HOLD_LINE);
}
-MACHINE_CONFIG_START(patapata_state::patapata)
+void patapata_state::patapata(machine_config &config)
+{
+ M68000(config, m_maincpu, 16_MHz_XTAL); // 16 MHz XTAL, 16 MHz CPU
+ m_maincpu->set_addrmap(AS_PROGRAM, &patapata_state::main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(patapata_state::irq4_line_hold)); // 1 + 4 valid? (4 main VBL)
- MCFG_DEVICE_ADD("maincpu", M68000, 16_MHz_XTAL) // 16 MHz XTAL, 16 MHz CPU
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", patapata_state, irq4_line_hold) // 1 + 4 valid? (4 main VBL)
TIMER(config, "scantimer").configure_scanline(FUNC(patapata_state::scanline), "screen", 0, 1);
GFXDECODE(config, m_gfxdecode, "palette", gfx_patapata);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 60*8-1, 0*8, 44*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(patapata_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 60*8-1, 0*8, 44*8-1);
+ screen.set_screen_update(FUNC(patapata_state::screen_update));
+ screen.set_palette("palette");
PALETTE(config, "palette").set_format(palette_device::RRRRGGGGBBBBRGBx, 0x600/2);
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki1", OKIM6295, 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW) // not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
+ OKIM6295(config, "oki1", 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.40); // not verified
- MCFG_DEVICE_ADD("oki2", OKIM6295, 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW) // not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
+ OKIM6295(config, "oki2", 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.40); // not verified
nmk112_device &nmk112(NMK112(config, "nmk112", 0)); // or 212? difficult to read (maybe 212 is 2* 112?)
nmk112.set_rom0_tag("oki1");
nmk112.set_rom1_tag("oki2");
-MACHINE_CONFIG_END
+}
ROM_START( patapata )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
diff --git a/src/mame/drivers/pbaction.cpp b/src/mame/drivers/pbaction.cpp
index 0e12ebdd703..e327f926ff3 100644
--- a/src/mame/drivers/pbaction.cpp
+++ b/src/mame/drivers/pbaction.cpp
@@ -448,8 +448,8 @@ static const z80_daisy_config daisy_chain[] =
{ nullptr }
};
-MACHINE_CONFIG_START(pbaction_state::pbaction)
-
+void pbaction_state::pbaction(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, 4_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &pbaction_state::pbaction_map);
@@ -463,14 +463,14 @@ MACHINE_CONFIG_START(pbaction_state::pbaction)
m_ctc->intr_callback().set_inputline(m_audiocpu, 0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pbaction_state, screen_update_pbaction)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pbaction_state, vblank_irq))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(pbaction_state::screen_update_pbaction));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(pbaction_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pbaction);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 256);
@@ -483,7 +483,7 @@ MACHINE_CONFIG_START(pbaction_state::pbaction)
AY8910(config, "ay1", 12_MHz_XTAL/8).add_route(ALL_OUTPUTS, "mono", 0.25);
AY8910(config, "ay2", 12_MHz_XTAL/8).add_route(ALL_OUTPUTS, "mono", 0.25);
AY8910(config, "ay3", 12_MHz_XTAL/8).add_route(ALL_OUTPUTS, "mono", 0.25);
-MACHINE_CONFIG_END
+}
void pbaction_state::pbactionx(machine_config &config)
{
diff --git a/src/mame/drivers/pc.cpp b/src/mame/drivers/pc.cpp
index 2d8b7476bc4..64e490b327e 100644
--- a/src/mame/drivers/pc.cpp
+++ b/src/mame/drivers/pc.cpp
@@ -208,11 +208,11 @@ MACHINE_CONFIG_START(pc_state::pccga)
mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga));
// FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false)
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false)
- MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false);
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false);
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false);
+ ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, nullptr, false);
/* keyboard */
PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
@@ -254,13 +254,12 @@ Expansion: 8087 FPU
******************************************************************************/
-MACHINE_CONFIG_START(pc_state::ataripc1)
+void pc_state::ataripc1(machine_config &config)
+{
pccga(config);
- MCFG_DEVICE_MODIFY("isa1")
- MCFG_SLOT_DEFAULT_OPTION("ega")
- MCFG_DEVICE_MODIFY("isa2")
- MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_single_360K)
-MACHINE_CONFIG_END
+ subdevice<isa8_slot_device>("isa1")->set_default_option("ega");
+ subdevice<isa8_slot_device>("isa2")->set_option_machine_config("fdc_xt", cfg_single_360K);
+}
ROM_START ( ataripc1 )
ROM_REGION(0x10000,"bios", 0)
@@ -356,13 +355,14 @@ ToDo: The ROM for the CGA is available (see ROM section)
******************************************************************************/
-MACHINE_CONFIG_START(pc_state::mpc1600)
+void pc_state::mpc1600(machine_config &config)
+{
pccga(config);
- MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa7", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa8", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
+ ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa7", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa8", 0, "mb:isa", pc_isa8_cards, nullptr, false);
subdevice<ram_device>(RAM_TAG)->set_default_size("128K").set_extra_options("256K, 512K, 640K");
-MACHINE_CONFIG_END
+}
ROM_START( mpc1600 )
ROM_REGION(0x10000,"bios", 0)
@@ -408,12 +408,12 @@ CPU:
******************************************************************************/
-MACHINE_CONFIG_START(pc_state::comport)
+void pc_state::comport(machine_config &config)
+{
pccga(config);
- MCFG_DEVICE_MODIFY("isa1")
- MCFG_SLOT_DEFAULT_OPTION("ega")
+ subdevice<isa8_slot_device>("isa1")->set_default_option("ega");
subdevice<ram_device>(RAM_TAG)->set_default_size("128K").set_extra_options("256K, 512K, 640K");
-MACHINE_CONFIG_END
+}
ROM_START( comport )
ROM_REGION(0x10000, "bios", 0)
@@ -446,11 +446,11 @@ Expansion: Expansion box, with 5 ISA slots and space for a 5.25" drive and a har
******************************************************************************/
-MACHINE_CONFIG_START(pc_state::dgone)
+void pc_state::dgone(machine_config &config)
+{
pccga(config);
- MCFG_DEVICE_MODIFY("isa2")
- MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_dual_720K)
-MACHINE_CONFIG_END
+ subdevice<isa8_slot_device>("isa2")->set_option_machine_config("fdc_xt", cfg_dual_720K);
+}
ROM_START( dgone )
ROM_REGION(0x10000,"bios", 0)
@@ -558,9 +558,8 @@ MACHINE_CONFIG_START(pc_state::epc)
pccga(config);
config.device_remove("maincpu");
MCFG_CPU_PC(pc8, epc, I8088, 4772720)
- MCFG_DEVICE_MODIFY("isa1")
- MCFG_SLOT_DEFAULT_OPTION("ega")
- MCFG_DEVICE_ADD("i8251", I8251, 0) // clock?
+ subdevice<isa8_slot_device>("isa1")->set_default_option("ega");
+ I8251(config, "i8251", 0); // clock?
MACHINE_CONFIG_END
ROM_START( epc )
@@ -623,10 +622,10 @@ MACHINE_CONFIG_START(pc_state::ibm5550)
mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga));
// FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false)
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false)
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false);
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false);
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false);
/* keyboard */
PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
@@ -681,20 +680,16 @@ Misc: A Kaypro 16/2 is a configuration without harddisk but with two floppy disk
******************************************************************************/
-MACHINE_CONFIG_START(pc_state::kaypro16)
+void pc_state::kaypro16(machine_config &config)
+{
pccga(config);
- MCFG_DEVICE_MODIFY("isa1")
- MCFG_SLOT_FIXED(true)
- MCFG_DEVICE_MODIFY("isa2")
- MCFG_SLOT_FIXED(true)
- MCFG_DEVICE_MODIFY("isa3")
- MCFG_SLOT_FIXED(true)
- MCFG_DEVICE_MODIFY("isa4")
- MCFG_SLOT_FIXED(true)
- MCFG_DEVICE_MODIFY("isa5")
- MCFG_SLOT_DEFAULT_OPTION(nullptr)
+ subdevice<isa8_slot_device>("isa1")->set_fixed(true);
+ subdevice<isa8_slot_device>("isa2")->set_fixed(true);
+ subdevice<isa8_slot_device>("isa3")->set_fixed(true);
+ subdevice<isa8_slot_device>("isa4")->set_fixed(true);
+ subdevice<isa8_slot_device>("isa5")->set_default_option(nullptr);
subdevice<ram_device>(RAM_TAG)->set_default_size("256K").set_extra_options("512K, 640K");
-MACHINE_CONFIG_END
+}
ROM_START( kaypro16 )
ROM_REGION(0x10000, "bios", 0)
@@ -706,11 +701,11 @@ ROM_END
******************************************************************************/
// MK-88
-MACHINE_CONFIG_START(pc_state::mk88)
+void pc_state::mk88(machine_config &config)
+{
poisk2(config);
- MCFG_DEVICE_MODIFY("isa1")
- MCFG_SLOT_DEFAULT_OPTION("cga_ec1841")
-MACHINE_CONFIG_END
+ subdevice<isa8_slot_device>("isa1")->set_default_option("cga_ec1841");
+}
// MK-88
ROM_START( mk88 )
@@ -751,14 +746,15 @@ Options: 8087 FPU, K101 memory upgrade in 64K steps, 1.2MB floppy and controller
******************************************************************************/
-MACHINE_CONFIG_START(pc_state::ncrpc4i)
+void pc_state::ncrpc4i(machine_config & config)
+{
pccga(config);
//MCFG_DEVICE_MODIFY("mb:isa")
- MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa7", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
+ ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa7", 0, "mb:isa", pc_isa8_cards, nullptr, false);
subdevice<ram_device>(RAM_TAG)->set_default_size("640K").set_extra_options("64K, 128K, 256K, 512K");
-MACHINE_CONFIG_END
+}
ROM_START( ncrpc4i )
ROM_REGION(0x10000,"bios", 0)
@@ -789,14 +785,14 @@ static DEVICE_INPUT_DEFAULTS_START( m15 )
DEVICE_INPUT_DEFAULTS("DSW0", 0x01, 0x00)
DEVICE_INPUT_DEFAULTS_END
-MACHINE_CONFIG_START(pc_state::m15)
+void pc_state::m15(machine_config &config)
+{
pccga(config);
subdevice<ibm5160_mb_device>("mb")->set_input_default(DEVICE_INPUT_DEFAULTS_NAME(m15));
- MCFG_DEVICE_MODIFY("isa2")
- MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_dual_720K)
+ subdevice<isa8_slot_device>("isa2")->set_option_machine_config("fdc_xt", cfg_dual_720K);
subdevice<ram_device>(RAM_TAG)->set_default_size("448K").set_extra_options("16K, 160K, 304K");
-MACHINE_CONFIG_END
+}
ROM_START( olivm15 )
ROM_REGION(0x10000,"bios", 0)
@@ -825,12 +821,9 @@ MACHINE_CONFIG_START(pc_state::olytext30)
pccga(config);
config.device_remove("maincpu");
MCFG_CPU_PC(pc8, pc8, V20, XTAL(14'318'181)/3) /* 4,77 MHz */
- MCFG_DEVICE_MODIFY("isa2")
- MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_single_720K)
- MCFG_DEVICE_MODIFY("isa3")
- MCFG_SLOT_DEFAULT_OPTION("")
- MCFG_DEVICE_MODIFY("isa5")
- MCFG_SLOT_DEFAULT_OPTION("hdc")
+ subdevice<isa8_slot_device>("isa2")->set_option_machine_config("fdc_xt", cfg_single_720K);
+ subdevice<isa8_slot_device>("isa3")->set_default_option("");
+ subdevice<isa8_slot_device>("isa5")->set_default_option("hdc");
subdevice<ram_device>(RAM_TAG)->set_default_size("768K");
MACHINE_CONFIG_END
@@ -852,10 +845,10 @@ MACHINE_CONFIG_START(pc_state::poisk2)
mb.set_cputag(m_maincpu);
mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga));
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga_poisk2", false) // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false)
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga_poisk2", false); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false);
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false);
/* keyboard */
PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
@@ -944,12 +937,10 @@ MACHINE_CONFIG_START(pc_state::iskr3104)
mb.set_cputag(m_maincpu);
mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(iskr3104));
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "ega", false) // FIXME: determine ISA bus clock
- MCFG_SLOT_OPTION_DEFAULT_BIOS("ega", "iskr3104")
-
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false)
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "ega", false).set_option_default_bios("ega", "iskr3104"); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false);
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false);
/* keyboard */
PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
@@ -1022,12 +1013,12 @@ MACHINE_CONFIG_START(pc_state::siemens)
mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(siemens));
// FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "hercules", false)
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false)
- MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "hdc", false)
- MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "hercules", false);
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false);
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false);
+ ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, "hdc", false);
+ ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false);
/* keyboard */
PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
@@ -1066,14 +1057,14 @@ MACHINE_CONFIG_START(pc_state::laser_turbo_xt)
mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga));
// FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false)
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) // Multi I/O card (includes FDC)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa7", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa8", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false);
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "com", false); // Multi I/O card (includes FDC)
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa7", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa8", 0, "mb:isa", pc_isa8_cards, nullptr, false);
/* keyboard */
PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
@@ -1145,11 +1136,10 @@ MACHINE_CONFIG_START(pc_state::zenith)
mb.set_cputag(m_maincpu);
mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga));
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false) // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false)
- MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_dual_720K)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false)
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false).set_option_machine_config("fdc_xt", cfg_dual_720K);
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false);
/* keyboard */
PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
diff --git a/src/mame/drivers/pc100.cpp b/src/mame/drivers/pc100.cpp
index 0ce792797a5..c4c446ed822 100644
--- a/src/mame/drivers/pc100.cpp
+++ b/src/mame/drivers/pc100.cpp
@@ -634,7 +634,8 @@ static void pc100_floppies(device_slot_interface &device)
#define MASTER_CLOCK 6988800
-MACHINE_CONFIG_START(pc100_state::pc100)
+void pc100_state::pc100(machine_config &config)
+{
/* basic machine hardware */
I8086(config, m_maincpu, MASTER_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &pc100_state::pc100_map);
@@ -681,11 +682,11 @@ MACHINE_CONFIG_START(pc100_state::pc100)
FLOPPY_CONNECTOR(config, "upd765:1", pc100_floppies, "525dd", floppy_image_device::default_floppy_formats);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
/* TODO: Unknown Pixel Clock and CRTC is dynamic */
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*4, 1024, 0, 768, 264*2, 0, 512)
- MCFG_SCREEN_UPDATE_DRIVER(pc100_state, screen_update_pc100)
- MCFG_SCREEN_PALETTE("palette")
+ screen.set_raw(MASTER_CLOCK*4, 1024, 0, 768, 264*2, 0, 512);
+ screen.set_screen_update(FUNC(pc100_state::screen_update_pc100));
+ screen.set_palette(m_palette);
GFXDECODE(config, "gfxdecode", m_palette, gfx_pc100);
PALETTE(config, m_palette).set_format(palette_device::xBGR_333, 16);
@@ -693,7 +694,7 @@ MACHINE_CONFIG_START(pc100_state::pc100)
SPEAKER(config, "mono").front_center();
BEEP(config, m_beeper, 2400).add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pc100 )
diff --git a/src/mame/drivers/pc1512.cpp b/src/mame/drivers/pc1512.cpp
index 24680ba8376..5fab9bdacf8 100644
--- a/src/mame/drivers/pc1512.cpp
+++ b/src/mame/drivers/pc1512.cpp
@@ -1152,14 +1152,15 @@ void pc1640_state::machine_start()
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( pc1512 )
+// machine_config( pc1512 )
//-------------------------------------------------
-MACHINE_CONFIG_START(pc1512_state::pc1512)
- MCFG_DEVICE_ADD(I8086_TAG, I8086, 24_MHz_XTAL / 3)
- MCFG_DEVICE_PROGRAM_MAP(pc1512_mem)
- MCFG_DEVICE_IO_MAP(pc1512_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(I8259A2_TAG, pic8259_device, inta_cb)
+void pc1512_state::pc1512(machine_config &config)
+{
+ I8086(config, m_maincpu, 24_MHz_XTAL / 3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc1512_state::pc1512_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc1512_state::pc1512_io);
+ m_maincpu->set_irq_acknowledge_callback(I8259A2_TAG, FUNC(pic8259_device::inta_cb));
// video
pc1512_video(config);
@@ -1252,9 +1253,9 @@ MACHINE_CONFIG_START(pc1512_state::pc1512)
isa.drq1_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq1_w));
isa.drq2_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq2_w));
isa.drq3_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq3_w));
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) // FIXME: determine ISA clock
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false)
+ ISA8_SLOT(config, "isa1", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); // FIXME: determine ISA clock
+ ISA8_SLOT(config, "isa2", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa3", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false);
// internal ram
RAM(config, RAM_TAG).set_default_size("512K").set_extra_options("544K,576K,608K,640K");
@@ -1262,41 +1263,42 @@ MACHINE_CONFIG_START(pc1512_state::pc1512)
// software list
SOFTWARE_LIST(config, "flop_list").set_original("pc1512_flop");
SOFTWARE_LIST(config, "hdd_list").set_original("pc1512_hdd");
-MACHINE_CONFIG_END
+}
//-------------------------------------------------
-// MACHINE_CONFIG( pc1512dd )
+// machine_config( pc1512dd )
//-------------------------------------------------
-MACHINE_CONFIG_START(pc1512_state::pc1512dd)
+void pc1512_state::pc1512dd(machine_config &config)
+{
pc1512(config);
- MCFG_DEVICE_MODIFY(PC_FDC_XT_TAG ":1")
- MCFG_SLOT_DEFAULT_OPTION("525dd")
-MACHINE_CONFIG_END
+ subdevice<floppy_connector>(PC_FDC_XT_TAG ":1")->set_default_option("525dd");
+}
//-------------------------------------------------
-// MACHINE_CONFIG( pc1512hd )
+// machine_config( pc1512hd )
//-------------------------------------------------
-MACHINE_CONFIG_START(pc1512_state::pc1512hd)
+void pc1512_state::pc1512hd(machine_config &config)
+{
pc1512(config);
- MCFG_DEVICE_MODIFY("isa1")
- //MCFG_SLOT_DEFAULT_OPTION("wdxt_gen")
- MCFG_SLOT_DEFAULT_OPTION("hdc")
-MACHINE_CONFIG_END
+ //subdevice<isa8_slot_device>("isa1")->set_default_option("wdxt_gen");
+ subdevice<isa8_slot_device>("isa1")->set_default_option("hdc");
+}
//-------------------------------------------------
-// MACHINE_CONFIG( pc1640 )
+// machine_config( pc1640 )
//-------------------------------------------------
-MACHINE_CONFIG_START(pc1640_state::pc1640)
- MCFG_DEVICE_ADD(I8086_TAG, I8086, 24_MHz_XTAL / 3)
- MCFG_DEVICE_PROGRAM_MAP(pc1640_mem)
- MCFG_DEVICE_IO_MAP(pc1640_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(I8259A2_TAG, pic8259_device, inta_cb)
+void pc1640_state::pc1640(machine_config &config)
+{
+ I8086(config, m_maincpu, 24_MHz_XTAL / 3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc1640_state::pc1640_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc1640_state::pc1640_io);
+ m_maincpu->set_irq_acknowledge_callback(I8259A2_TAG, FUNC(pic8259_device::inta_cb));
// sound
SPEAKER(config, "mono").front_center();
@@ -1386,11 +1388,11 @@ MACHINE_CONFIG_START(pc1640_state::pc1640)
isa.drq1_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq1_w));
isa.drq2_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq2_w));
isa.drq3_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq3_w));
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, ISA_BUS_TAG, pc1640_isa8_cards, "iga", false)
+ ISA8_SLOT(config, "isa1", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa2", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa3", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa4", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa5", 0, ISA_BUS_TAG, pc1640_isa8_cards, "iga", false);
// internal ram
RAM(config, RAM_TAG).set_default_size("640K");
@@ -1398,30 +1400,30 @@ MACHINE_CONFIG_START(pc1640_state::pc1640)
// software list
SOFTWARE_LIST(config, "flop_list").set_original("pc1640_flop");
SOFTWARE_LIST(config, "hdd_list").set_original("pc1640_hdd");
-MACHINE_CONFIG_END
+}
//-------------------------------------------------
-// MACHINE_CONFIG( pc1640dd )
+// machine_config( pc1640dd )
//-------------------------------------------------
-MACHINE_CONFIG_START(pc1640_state::pc1640dd)
+void pc1640_state::pc1640dd(machine_config &config)
+{
pc1640(config);
- MCFG_DEVICE_MODIFY(PC_FDC_XT_TAG ":1")
- MCFG_SLOT_DEFAULT_OPTION("525dd")
-MACHINE_CONFIG_END
+ subdevice<floppy_connector>(PC_FDC_XT_TAG ":1")->set_default_option("525dd");
+}
//-------------------------------------------------
-// MACHINE_CONFIG( pc1640hd )
+// machine_config( pc1640hd )
//-------------------------------------------------
-MACHINE_CONFIG_START(pc1640_state::pc1640hd)
+void pc1640_state::pc1640hd(machine_config &config)
+{
pc1640(config);
- MCFG_DEVICE_MODIFY("isa1")
- //MCFG_SLOT_DEFAULT_OPTION("wdxt_gen")
- MCFG_SLOT_DEFAULT_OPTION("hdc")
-MACHINE_CONFIG_END
+ //subdevice<isa8_slot_device>("isa1")->set_default_option("wdxt_gen");
+ subdevice<isa8_slot_device>("isa1")->set_default_option("hdc");
+}
diff --git a/src/mame/drivers/pc2000.cpp b/src/mame/drivers/pc2000.cpp
index 0cf410cf845..9f111f5e8b3 100644
--- a/src/mame/drivers/pc2000.cpp
+++ b/src/mame/drivers/pc2000.cpp
@@ -957,7 +957,7 @@ void gl3000s_state::gl3000s(machine_config &config)
SOFTWARE_LIST(config, "gl2000_cart").set_compatible("gl2000");
SOFTWARE_LIST(config, "misterx_cart").set_compatible("misterx");
-MACHINE_CONFIG_END
+}
void gl4004_state::gl4000(machine_config &config)
{
diff --git a/src/mame/drivers/pc4.cpp b/src/mame/drivers/pc4.cpp
index a2661b1aa1c..ffdfd572770 100644
--- a/src/mame/drivers/pc4.cpp
+++ b/src/mame/drivers/pc4.cpp
@@ -217,19 +217,20 @@ void pc4_state::machine_start()
m_blink = 0;
}
-MACHINE_CONFIG_START(pc4_state::pc4)
+void pc4_state::pc4(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(4'000'000))
- MCFG_DEVICE_PROGRAM_MAP(pc4_mem)
- MCFG_DEVICE_IO_MAP(pc4_io)
+ Z80(config, m_maincpu, XTAL(4'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc4_state::pc4_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc4_state::pc4_io);
/* video hardware */
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(72)
- MCFG_SCREEN_UPDATE_DRIVER(pc4_state, screen_update)
- MCFG_SCREEN_SIZE(240, 36)
- MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 36-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(72);
+ screen.set_screen_update(FUNC(pc4_state::screen_update));
+ screen.set_size(240, 36);
+ screen.set_visarea(0, 240-1, 0, 36-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pc4_state::pc4_palette), 2);
GFXDECODE(config, "gfxdecode", "palette", gfx_pc4);
@@ -239,7 +240,7 @@ MACHINE_CONFIG_START(pc4_state::pc4)
BEEP(config, m_beep, 3250).add_route(ALL_OUTPUTS, "mono", 1.00);
RP5C01(config, "rtc", XTAL(32'768));
-MACHINE_CONFIG_END
+}
ROM_START( pc4 )
ROM_REGION( 0x20000, "maincpu", 0 )
diff --git a/src/mame/drivers/pc6001.cpp b/src/mame/drivers/pc6001.cpp
index 3219c1e5f70..38fcea1268d 100644
--- a/src/mame/drivers/pc6001.cpp
+++ b/src/mame/drivers/pc6001.cpp
@@ -1470,25 +1470,26 @@ GFXDECODE_END
#define PC6001_MAIN_CLOCK 7987200
-MACHINE_CONFIG_START(pc6001_state::pc6001)
+void pc6001_state::pc6001(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, PC6001_MAIN_CLOCK / 2) // PD 780C-1, ~4 Mhz
- MCFG_DEVICE_PROGRAM_MAP(pc6001_map)
- MCFG_DEVICE_IO_MAP(pc6001_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc6001_state, vrtc_irq)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc6001_state, irq_callback)
+ Z80(config, m_maincpu, PC6001_MAIN_CLOCK / 2); // PD 780C-1, ~4 Mhz
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc6001_state::pc6001_map);
+ m_maincpu->set_addrmap(AS_IO, &pc6001_state::pc6001_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pc6001_state::vrtc_irq));
+ m_maincpu->set_irq_acknowledge_callback(FUNC(pc6001_state::irq_callback));
-// MCFG_DEVICE_ADD("subcpu", I8049, 7987200)
+// I8049(config, "subcpu", 7987200);
GFXDECODE(config, "gfxdecode", m_palette, gfx_pc6001m2);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_DRIVER(pc6001_state, screen_update_pc6001)
- MCFG_SCREEN_SIZE(320, 25+192+26)
- MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_screen_update(FUNC(pc6001_state::screen_update_pc6001));
+ m_screen->set_size(320, 25+192+26);
+ m_screen->set_visarea(0, 319, 0, 239);
+ m_screen->set_palette(m_palette);
PALETTE(config, m_palette, FUNC(pc6001_state::pc6001_palette), 16+4);
@@ -1520,59 +1521,57 @@ MACHINE_CONFIG_START(pc6001_state::pc6001)
/* TODO: accurate timing on this */
TIMER(config, "keyboard_timer").configure_periodic(FUNC(pc6001_state::keyboard_callback), attotime::from_hz(250));
TIMER(config, "cassette_timer").configure_periodic(FUNC(pc6001_state::cassette_callback), attotime::from_hz(1200/12));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pc6001mk2_state::pc6001mk2)
+void pc6001mk2_state::pc6001mk2(machine_config &config)
+{
pc6001(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(pc6001mk2_map)
- MCFG_DEVICE_IO_MAP(pc6001mk2_io)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc6001mk2_state::pc6001mk2_map);
+ m_maincpu->set_addrmap(AS_IO, &pc6001mk2_state::pc6001mk2_io);
// MCFG_MACHINE_RESET_OVERRIDE(pc6001mk2_state,pc6001mk2)
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(pc6001mk2_state, screen_update_pc6001mk2)
+ m_screen->set_screen_update(FUNC(pc6001mk2_state::screen_update_pc6001mk2));
m_palette->set_entries(16+16);
m_palette->set_init(FUNC(pc6001mk2_state::pc6001mk2_palette));
subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_pc6001m2);
- MCFG_DEVICE_ADD("upd7752", UPD7752, PC6001_MAIN_CLOCK/4)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
-
-MACHINE_CONFIG_END
+ UPD7752(config, "upd7752", PC6001_MAIN_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 1.00);
+}
-MACHINE_CONFIG_START(pc6601_state::pc6601)
+void pc6601_state::pc6601(machine_config &config)
+{
pc6001mk2(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu", Z80, PC6001_MAIN_CLOCK / 2)
- MCFG_DEVICE_PROGRAM_MAP(pc6001mk2_map)
- MCFG_DEVICE_IO_MAP(pc6601_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc6001_state, vrtc_irq)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc6001_state, irq_callback)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(pc6001sr_state::pc6001sr)
+ Z80(config.replace(), m_maincpu, PC6001_MAIN_CLOCK / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc6601_state::pc6001mk2_map);
+ m_maincpu->set_addrmap(AS_IO, &pc6601_state::pc6601_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pc6001_state::vrtc_irq));
+ m_maincpu->set_irq_acknowledge_callback(FUNC(pc6001_state::irq_callback));
+}
+
+void pc6001sr_state::pc6001sr(machine_config &config)
+{
pc6001mk2(config);
/* basic machine hardware */
//*Yes*, PC-6001 SR Z80 CPU is actually slower than older models (better waitstates tho?)
- MCFG_DEVICE_REPLACE("maincpu", Z80, XTAL(3'579'545))
- MCFG_DEVICE_PROGRAM_MAP(pc6001sr_map)
- MCFG_DEVICE_IO_MAP(pc6001sr_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc6001sr_state, sr_vrtc_irq)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc6001_state, irq_callback)
+ Z80(config.replace(), m_maincpu, XTAL(3'579'545));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc6001sr_state::pc6001sr_map);
+ m_maincpu->set_addrmap(AS_IO, &pc6001sr_state::pc6001sr_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pc6001sr_state::sr_vrtc_irq));
+ m_maincpu->set_irq_acknowledge_callback(FUNC(pc6001_state::irq_callback));
// MCFG_MACHINE_RESET_OVERRIDE(pc6001sr_state,pc6001sr)
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(pc6001sr_state, screen_update_pc6001sr)
-MACHINE_CONFIG_END
+ m_screen->set_screen_update(FUNC(pc6001sr_state::screen_update_pc6001sr));
+}
/* ROM definition */
ROM_START( pc6001 )
diff --git a/src/mame/drivers/pc8001.cpp b/src/mame/drivers/pc8001.cpp
index a56ef6c7d7b..c13e1f13755 100644
--- a/src/mame/drivers/pc8001.cpp
+++ b/src/mame/drivers/pc8001.cpp
@@ -479,23 +479,23 @@ void pc8001_state::machine_start()
/* Machine Drivers */
-MACHINE_CONFIG_START(pc8001_state::pc8001)
+void pc8001_state::pc8001(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(4'000'000))
- MCFG_DEVICE_PROGRAM_MAP(pc8001_mem)
- MCFG_DEVICE_IO_MAP(pc8001_io)
+ Z80(config, m_maincpu, XTAL(4'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc8001_state::pc8001_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc8001_state::pc8001_io);
/* video hardware */
- MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_DEVICE(UPD3301_TAG, upd3301_device, screen_update)
- MCFG_SCREEN_SIZE(640, 220)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_screen_update(UPD3301_TAG, FUNC(upd3301_device::screen_update));
+ screen.set_size(640, 220);
+ screen.set_visarea(0, 640-1, 0, 200-1);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("beeper", BEEP, 2000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+ BEEP(config, m_beep, 2000).add_route(ALL_OUTPUTS, "mono", 0.25);
/* devices */
I8251(config, I8251_TAG, 0);
@@ -526,25 +526,25 @@ MACHINE_CONFIG_START(pc8001_state::pc8001)
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED);
RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("32K,64K");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pc8001mk2_state::pc8001mk2)
+void pc8001mk2_state::pc8001mk2(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(4'000'000))
- MCFG_DEVICE_PROGRAM_MAP(pc8001mk2_mem)
- MCFG_DEVICE_IO_MAP(pc8001mk2_io)
+ Z80(config, m_maincpu, XTAL(4'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc8001mk2_state::pc8001mk2_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc8001mk2_state::pc8001mk2_io);
/* video hardware */
- MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_DEVICE(UPD3301_TAG, upd3301_device, screen_update)
- MCFG_SCREEN_SIZE(640, 220)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_screen_update(UPD3301_TAG, FUNC(upd3301_device::screen_update));
+ screen.set_size(640, 220);
+ screen.set_visarea(0, 640-1, 0, 200-1);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("beeper", BEEP, 2000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+ BEEP(config, m_beep, 2000).add_route(ALL_OUTPUTS, "mono", 0.25);
/* devices */
I8251(config, I8251_TAG, 0);
@@ -573,7 +573,7 @@ MACHINE_CONFIG_START(pc8001mk2_state::pc8001mk2)
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED);
RAM(config, RAM_TAG).set_default_size("64K");
-MACHINE_CONFIG_END
+}
/* ROMs */
diff --git a/src/mame/drivers/pc8401a.cpp b/src/mame/drivers/pc8401a.cpp
index 36a44bd7da7..7de2b1b5d45 100644
--- a/src/mame/drivers/pc8401a.cpp
+++ b/src/mame/drivers/pc8401a.cpp
@@ -570,11 +570,12 @@ WRITE8_MEMBER( pc8401a_state::ppi_pc_w )
/* Machine Drivers */
-MACHINE_CONFIG_START(pc8401a_state::pc8401a)
+void pc8401a_state::pc8401a(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, 4000000) // NEC uPD70008C
- MCFG_DEVICE_PROGRAM_MAP(pc8401a_mem)
- MCFG_DEVICE_IO_MAP(pc8401a_io)
+ Z80(config, m_maincpu, 4000000); // NEC uPD70008C
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc8401a_state::pc8401a_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc8401a_state::pc8401a_io);
/* fake keyboard */
TIMER(config, "keyboard").configure_periodic(FUNC(pc8401a_state::pc8401a_keyboard_tick), attotime::from_hz(64));
@@ -606,13 +607,14 @@ MACHINE_CONFIG_START(pc8401a_state::pc8401a)
/* internal ram */
RAM(config, RAM_TAG).set_default_size("64K").set_extra_options("96K");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pc8500_state::pc8500)
+void pc8500_state::pc8500(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, 4000000) // NEC uPD70008C
- MCFG_DEVICE_PROGRAM_MAP(pc8401a_mem)
- MCFG_DEVICE_IO_MAP(pc8500_io)
+ Z80(config, m_maincpu, 4000000); // NEC uPD70008C
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc8500_state::pc8401a_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc8500_state::pc8500_io);
/* fake keyboard */
TIMER(config, "keyboard").configure_periodic(FUNC(pc8401a_state::pc8401a_keyboard_tick), attotime::from_hz(64));
@@ -644,7 +646,7 @@ MACHINE_CONFIG_START(pc8500_state::pc8500)
/* internal ram */
RAM(config, RAM_TAG).set_default_size("64K").set_extra_options("96K");
-MACHINE_CONFIG_END
+}
/* ROMs */
diff --git a/src/mame/drivers/pc8801.cpp b/src/mame/drivers/pc8801.cpp
index fb7291e44fc..327f2044fe4 100644
--- a/src/mame/drivers/pc8801.cpp
+++ b/src/mame/drivers/pc8801.cpp
@@ -2340,18 +2340,19 @@ WRITE_LINE_MEMBER( pc8801_state::rxrdy_w )
// ...
}
-MACHINE_CONFIG_START(pc8801_state::pc8801)
+void pc8801_state::pc8801(machine_config &config)
+{
/* main CPU */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK) /* 4 MHz */
- MCFG_DEVICE_PROGRAM_MAP(pc8801_mem)
- MCFG_DEVICE_IO_MAP(pc8801_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc8801_state, pc8801_vrtc_irq)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc8801_state,pc8801_irq_callback)
+ Z80(config, m_maincpu, MASTER_CLOCK); /* 4 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc8801_state::pc8801_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc8801_state::pc8801_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pc8801_state::pc8801_vrtc_irq));
+ m_maincpu->set_irq_acknowledge_callback(FUNC(pc8801_state::pc8801_irq_callback));
/* sub CPU(5 inch floppy drive) */
- MCFG_DEVICE_ADD(m_fdccpu, Z80, MASTER_CLOCK) /* 4 MHz */
- MCFG_DEVICE_PROGRAM_MAP(pc8801fdc_mem)
- MCFG_DEVICE_IO_MAP(pc8801fdc_io)
+ Z80(config, m_fdccpu, MASTER_CLOCK); /* 4 MHz */
+ m_fdccpu->set_addrmap(AS_PROGRAM, &pc8801_state::pc8801fdc_mem);
+ m_fdccpu->set_addrmap(AS_IO, &pc8801_state::pc8801fdc_io);
//config.m_minimum_quantum = attotime::from_hz(300000);
config.m_perfect_cpu_quantum = subtag("maincpu");
@@ -2390,10 +2391,10 @@ MACHINE_CONFIG_START(pc8801_state::pc8801)
SOFTWARE_LIST(config, "disk_list").set_original("pc8801_flop");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK_24KHz,848,0,640,448,0,400)
- MCFG_SCREEN_UPDATE_DRIVER(pc8801_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(PIXEL_CLOCK_24KHz,848,0,640,448,0,400);
+ m_screen->set_screen_update(FUNC(pc8801_state::screen_update));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, "gfxdecode", m_palette, gfx_pc8801);
PALETTE(config, m_palette, FUNC(pc8801_state::pc8801_palette), 0x10);
@@ -2414,26 +2415,28 @@ MACHINE_CONFIG_START(pc8801_state::pc8801)
m_opna->port_b_read_callback().set(FUNC(pc8801_state::opn_portb_r));
m_opna->add_route(ALL_OUTPUTS, "mono", 1.00);
- MCFG_DEVICE_ADD("beeper", BEEP, 2400)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
+ BEEP(config, m_beeper, 2400).add_route(ALL_OUTPUTS, "mono", 0.10);
TIMER(config, "rtc_timer").configure_periodic(FUNC(pc8801_state::pc8801_rtc_irq), attotime::from_hz(600));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pc8801_state::pc8801fh)
+void pc8801_state::pc8801fh(machine_config &config)
+{
pc8801(config);
MCFG_MACHINE_RESET_OVERRIDE(pc8801_state, pc8801_clock_speed )
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pc8801_state::pc8801ma)
+void pc8801_state::pc8801ma(machine_config &config)
+{
pc8801(config);
MCFG_MACHINE_RESET_OVERRIDE(pc8801_state, pc8801_dic )
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pc8801_state::pc8801mc)
+void pc8801_state::pc8801mc(machine_config &config)
+{
pc8801(config);
MCFG_MACHINE_RESET_OVERRIDE(pc8801_state, pc8801_cdrom )
-MACHINE_CONFIG_END
+}
/* TODO: clean this up */
diff --git a/src/mame/drivers/pc88va.cpp b/src/mame/drivers/pc88va.cpp
index 043dcc2d33a..508edd48ccd 100644
--- a/src/mame/drivers/pc88va.cpp
+++ b/src/mame/drivers/pc88va.cpp
@@ -1585,30 +1585,30 @@ WRITE8_MEMBER(pc88va_state::dma_memw_cb)
}
-MACHINE_CONFIG_START(pc88va_state::pc88va)
-
- MCFG_DEVICE_ADD("maincpu", V30, 8000000) /* 8 MHz */
- MCFG_DEVICE_PROGRAM_MAP(pc88va_map)
- MCFG_DEVICE_IO_MAP(pc88va_io_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc88va_state, pc88va_vrtc_irq)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
+void pc88va_state::pc88va(machine_config &config)
+{
+ V30(config, m_maincpu, 8000000); /* 8 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc88va_state::pc88va_map);
+ m_maincpu->set_addrmap(AS_IO, &pc88va_state::pc88va_io_map);
+ m_maincpu->set_vblank_int("screen", FUNC(pc88va_state::pc88va_vrtc_irq));
+ m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
#if TEST_SUBFDC
- MCFG_DEVICE_ADD("fdccpu", Z80, 8000000) /* 8 MHz */
- MCFG_DEVICE_PROGRAM_MAP(pc88va_z80_map)
- MCFG_DEVICE_IO_MAP(pc88va_z80_io_map)
+ z80_device &fdccpu(Z80(config, "fdccpu", 8000000)); /* 8 MHz */
+ fdccpu.set_addrmap(AS_PROGRAM, &pc88va_state::pc88va_z80_map);
+ fdccpu.set_addrmap(AS_IO, &pc88va_state::pc88va_z80_io_map);
config.m_perfect_cpu_quantum = subtag("maincpu");
#endif
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_DRIVER(pc88va_state, screen_update_pc88va)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(640, 480);
+ m_screen->set_visarea(0, 640-1, 0, 200-1);
+ m_screen->set_screen_update(FUNC(pc88va_state::screen_update_pc88va));
- MCFG_PALETTE_ADD("palette", 32)
-// MCFG_PALETTE_INIT_OWNER(pc88va_state, pc8801 )
+ PALETTE(config, m_palette).set_entries(32);
+// m_palette->set_init(FUNC(pc88va_state::pc8801));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pc88va);
i8255_device &d8255_2(I8255(config, "d8255_2"));
@@ -1664,12 +1664,12 @@ MACHINE_CONFIG_START(pc88va_state::pc88va)
ADDRESS_MAP_BANK(config, "sysbank").set_map(&pc88va_state::sysbank_map).set_options(ENDIANNESS_LITTLE, 16, 18+4, 0x40000);
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ym", YM2203, 3993600) //unknown clock / divider
- MCFG_SOUND_ROUTE(0, "mono", 0.25)
- MCFG_SOUND_ROUTE(1, "mono", 0.25)
- MCFG_SOUND_ROUTE(2, "mono", 0.50)
- MCFG_SOUND_ROUTE(3, "mono", 0.50)
-MACHINE_CONFIG_END
+ ym2203_device &ym(YM2203(config, "ym", 3993600)); //unknown clock / divider
+ ym.add_route(0, "mono", 0.25);
+ ym.add_route(1, "mono", 0.25);
+ ym.add_route(2, "mono", 0.50);
+ ym.add_route(3, "mono", 0.50);
+}
ROM_START( pc88va2 )
diff --git a/src/mame/drivers/pcat_nit.cpp b/src/mame/drivers/pcat_nit.cpp
index e7a48dc12b6..16e3f1a1a0e 100644
--- a/src/mame/drivers/pcat_nit.cpp
+++ b/src/mame/drivers/pcat_nit.cpp
@@ -231,12 +231,13 @@ void pcat_nit_state::machine_start()
membank("rombank")->set_entry(0);
}
-MACHINE_CONFIG_START(pcat_nit_state::pcat_nit)
+void pcat_nit_state::pcat_nit(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I386, 14318180*2) /* I386 ?? Mhz */
- MCFG_DEVICE_PROGRAM_MAP(pcat_map)
- MCFG_DEVICE_IO_MAP(pcat_nit_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb)
+ I386(config, m_maincpu, 14318180*2); /* I386 ?? Mhz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcat_nit_state::pcat_map);
+ m_maincpu->set_addrmap(AS_IO, &pcat_nit_state::pcat_nit_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb));
/* video hardware */
pcvideo_vga(config);
@@ -250,14 +251,15 @@ MACHINE_CONFIG_START(pcat_nit_state::pcat_nit)
MICROTOUCH(config, m_microtouch, 9600).stx().set(uart, FUNC(ins8250_uart_device::rx_w)); // rate?
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pcat_nit_state::bonanza)
+void pcat_nit_state::bonanza(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I386, 14318180*2) /* I386 ?? Mhz */
- MCFG_DEVICE_PROGRAM_MAP(bonanza_map)
- MCFG_DEVICE_IO_MAP(bonanza_io_map)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb)
+ I386(config, m_maincpu, 14318180*2); /* I386 ?? Mhz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcat_nit_state::bonanza_map);
+ m_maincpu->set_addrmap(AS_IO, &pcat_nit_state::bonanza_io_map);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb));
/* video hardware */
pcvideo_cirrus_gd5428(config);
@@ -270,7 +272,7 @@ MACHINE_CONFIG_START(pcat_nit_state::bonanza)
MICROTOUCH(config, m_microtouch, 9600).stx().set(uart, FUNC(ins8250_uart_device::rx_w)); // rate?
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-MACHINE_CONFIG_END
+}
/***************************************
*
diff --git a/src/mame/drivers/pce220.cpp b/src/mame/drivers/pce220.cpp
index 7e4bba2462a..80d62bea1c0 100644
--- a/src/mame/drivers/pce220.cpp
+++ b/src/mame/drivers/pce220.cpp
@@ -944,21 +944,22 @@ void pce220_state::pce220_palette(palette_device &palette) const
}
-MACHINE_CONFIG_START(pce220_state::pce220)
+void pce220_state::pce220(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, 3072000 ) // CMOS-SC7852
- MCFG_DEVICE_PROGRAM_MAP(pce220_mem)
- MCFG_DEVICE_IO_MAP(pce220_io)
+ Z80(config, m_maincpu, 3072000); // CMOS-SC7852
+ m_maincpu->set_addrmap(AS_PROGRAM, &pce220_state::pce220_mem);
+ m_maincpu->set_addrmap(AS_IO, &pce220_state::pce220_io);
/* video hardware */
// 4 lines x 24 characters, resp. 144 x 32 pixel
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(pce220_state, screen_update)
- MCFG_SCREEN_SIZE(24*6, 4*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 24*6-1, 0, 4*8-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(pce220_state::screen_update));
+ screen.set_size(24*6, 4*8);
+ screen.set_visarea(0, 24*6-1, 0, 4*8-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pce220_state::pce220_palette), 2);
@@ -974,23 +975,24 @@ MACHINE_CONFIG_START(pce220_state::pce220)
RAM(config, RAM_TAG).set_default_size("64K"); // 32K internal + 32K external card
PCE220SERIAL(config, m_serial, 0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pcg850v_state::pcg815)
+void pcg850v_state::pcg815(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(4'000'000) ) // 3.54MHz
- MCFG_DEVICE_PROGRAM_MAP(pce220_mem)
- MCFG_DEVICE_IO_MAP(pcg850v_io)
+ Z80(config, m_maincpu, XTAL(4'000'000)); // 3.54MHz
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcg850v_state::pce220_mem);
+ m_maincpu->set_addrmap(AS_IO, &pcg850v_state::pcg850v_io);
/* video hardware */
// 4 lines x 24 characters, resp. 144 x 32 pixel
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(pcg850v_state, screen_update)
- MCFG_SCREEN_SIZE(144, 32)
- MCFG_SCREEN_VISIBLE_AREA(0, 144-1, 0, 32-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(pcg850v_state::screen_update));
+ screen.set_size(144, 32);
+ screen.set_visarea(0, 144-1, 0, 32-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pcg850v_state::pce220_palette), 2);
@@ -1006,23 +1008,24 @@ MACHINE_CONFIG_START(pcg850v_state::pcg815)
RAM(config, RAM_TAG).set_default_size("64K"); // 32K internal + 32K external card
PCE220SERIAL(config, m_serial, 0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pcg850v_state::pcg850v)
+void pcg850v_state::pcg850v(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(8'000'000) ) // CMOS-SC7852
- MCFG_DEVICE_PROGRAM_MAP(pce220_mem)
- MCFG_DEVICE_IO_MAP(pcg850v_io)
+ Z80(config, m_maincpu, XTAL(8'000'000)); // CMOS-SC7852
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcg850v_state::pce220_mem);
+ m_maincpu->set_addrmap(AS_IO, &pcg850v_state::pcg850v_io);
/* video hardware */
// 6 lines x 24 characters, resp. 144 x 48 pixel
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(pcg850v_state, screen_update)
- MCFG_SCREEN_SIZE(144, 48)
- MCFG_SCREEN_VISIBLE_AREA(0, 144-1, 0, 48-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(pcg850v_state::screen_update));
+ screen.set_size(144, 48);
+ screen.set_visarea(0, 144-1, 0, 48-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pcg850v_state::pce220_palette), 2);
@@ -1038,7 +1041,7 @@ MACHINE_CONFIG_START(pcg850v_state::pcg850v)
RAM(config, RAM_TAG).set_default_size("64K"); // 32K internal + 32K external card
PCE220SERIAL(config, m_serial, 0);
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pce220 )
diff --git a/src/mame/drivers/pcfx.cpp b/src/mame/drivers/pcfx.cpp
index 4a4aea782b9..b478d2c5ebd 100644
--- a/src/mame/drivers/pcfx.cpp
+++ b/src/mame/drivers/pcfx.cpp
@@ -417,14 +417,15 @@ uint32_t pcfx_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap,
}
-MACHINE_CONFIG_START(pcfx_state::pcfx)
- MCFG_DEVICE_ADD( "maincpu", V810, XTAL(21'477'272) )
- MCFG_DEVICE_PROGRAM_MAP( pcfx_mem)
- MCFG_DEVICE_IO_MAP( pcfx_io)
+void pcfx_state::pcfx(machine_config &config)
+{
+ V810(config, m_maincpu, XTAL(21'477'272));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcfx_state::pcfx_mem);
+ m_maincpu->set_addrmap(AS_IO, &pcfx_state::pcfx_io);
- MCFG_SCREEN_ADD( "screen", RASTER )
- MCFG_SCREEN_UPDATE_DRIVER(pcfx_state, screen_update)
- MCFG_SCREEN_RAW_PARAMS(XTAL(21'477'272), huc6261_device::WPF, 64, 64 + 1024 + 64, huc6261_device::LPF, 18, 18 + 242)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_screen_update(FUNC(pcfx_state::screen_update));
+ screen.set_raw(XTAL(21'477'272), huc6261_device::WPF, 64, 64 + 1024 + 64, huc6261_device::LPF, 18, 18 + 242);
huc6270_device &huc6270_a(HUC6270(config, "huc6270_a", 0));
huc6270_a.set_vram_size(0x20000);
@@ -457,7 +458,7 @@ MACHINE_CONFIG_START(pcfx_state::pcfx)
huc6230.cdda_cb().set("huc6272", FUNC(huc6272_device::cdda_update));
huc6230.add_route(0, "lspeaker", 1.0);
huc6230.add_route(1, "rspeaker", 1.0);
-MACHINE_CONFIG_END
+}
ROM_START( pcfx )
diff --git a/src/mame/drivers/pcktgal.cpp b/src/mame/drivers/pcktgal.cpp
index 6398fe6d179..5a2c05a40d0 100644
--- a/src/mame/drivers/pcktgal.cpp
+++ b/src/mame/drivers/pcktgal.cpp
@@ -270,7 +270,7 @@ void pcktgal_state::bootleg(machine_config &config)
pcktgal(config);
m_gfxdecode->set_info(gfx_bootleg);
subdevice<screen_device>("screen")->set_screen_update(FUNC(pcktgal_state::screen_update_pcktgalb));
-MACHINE_CONFIG_END
+}
void pcktgal_state::pcktgal2(machine_config &config)
{
diff --git a/src/mame/drivers/pcm.cpp b/src/mame/drivers/pcm.cpp
index 460e32d8589..02d5f704f9e 100644
--- a/src/mame/drivers/pcm.cpp
+++ b/src/mame/drivers/pcm.cpp
@@ -256,7 +256,8 @@ static GFXDECODE_START( gfx_pcm )
GFXDECODE_ENTRY( "chargen", 0x0000, pcm_charlayout, 0, 1 )
GFXDECODE_END
-MACHINE_CONFIG_START(pcm_state::pcm)
+void pcm_state::pcm(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, XTAL(10'000'000) /4);
m_maincpu->set_addrmap(AS_PROGRAM, &pcm_state::pcm_mem);
@@ -264,13 +265,13 @@ MACHINE_CONFIG_START(pcm_state::pcm)
m_maincpu->set_daisy_config(pcm_daisy_chain);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(pcm_state, screen_update)
- MCFG_SCREEN_SIZE(64*8, 16*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*8-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(pcm_state::screen_update));
+ screen.set_size(64*8, 16*8);
+ screen.set_visarea(0, 64*8-1, 0, 16*8-1);
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_pcm);
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -304,7 +305,7 @@ MACHINE_CONFIG_START(pcm_state::pcm)
m_ctc_s->zc_callback<0>().append("sio", FUNC(z80sio_device::txca_w));
m_ctc_s->zc_callback<1>().set("sio", FUNC(z80sio_device::rxtxcb_w));
m_ctc_s->zc_callback<2>().set(FUNC(pcm_state::pcm_82_w)); // speaker
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pcm )
diff --git a/src/mame/drivers/pcw16.cpp b/src/mame/drivers/pcw16.cpp
index 877d65105a7..58d7340d28e 100644
--- a/src/mame/drivers/pcw16.cpp
+++ b/src/mame/drivers/pcw16.cpp
@@ -1010,11 +1010,12 @@ static void pcw16_com(device_slot_interface &device)
device.option_add("msystems_mouse", MSYSTEMS_HLE_SERIAL_MOUSE);
}
-MACHINE_CONFIG_START(pcw16_state::pcw16)
+void pcw16_state::pcw16(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 16000000)
- MCFG_DEVICE_PROGRAM_MAP(pcw16_map)
- MCFG_DEVICE_IO_MAP(pcw16_io)
+ Z80(config, m_maincpu, 16000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcw16_state::pcw16_map);
+ m_maincpu->set_addrmap(AS_IO, &pcw16_state::pcw16_io);
config.m_minimum_quantum = attotime::from_hz(60);
ns16550_device &uart1(NS16550(config, "ns16550_1", XTAL(1'843'200))); /* TODO: Verify uart model */
@@ -1043,13 +1044,13 @@ MACHINE_CONFIG_START(pcw16_state::pcw16)
serport2.cts_handler().set(m_uart2, FUNC(ins8250_uart_device::cts_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(PCW16_SCREEN_WIDTH, PCW16_SCREEN_HEIGHT)
- MCFG_SCREEN_VISIBLE_AREA(0, PCW16_SCREEN_WIDTH-1, 0, PCW16_SCREEN_HEIGHT-1)
- MCFG_SCREEN_UPDATE_DRIVER(pcw16_state, screen_update_pcw16)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(PCW16_SCREEN_WIDTH, PCW16_SCREEN_HEIGHT);
+ screen.set_visarea(0, PCW16_SCREEN_WIDTH-1, 0, PCW16_SCREEN_HEIGHT-1);
+ screen.set_screen_update(FUNC(pcw16_state::screen_update_pcw16));
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pcw16_state::pcw16_colours), PCW16_NUM_COLOURS);
@@ -1081,7 +1082,7 @@ MACHINE_CONFIG_START(pcw16_state::pcw16)
TIMER(config, "video_timer").configure_periodic(FUNC(pcw16_state::pcw16_timer_callback), attotime::from_usec(5830));
/* rtc timer */
TIMER(config, "rtc_timer").configure_periodic(FUNC(pcw16_state::rtc_timer_callback), attotime::from_hz(256));
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/pcxt.cpp b/src/mame/drivers/pcxt.cpp
index c21f81a272d..db4b48940a3 100644
--- a/src/mame/drivers/pcxt.cpp
+++ b/src/mame/drivers/pcxt.cpp
@@ -494,33 +494,34 @@ static void filetto_isa8_cards(device_slot_interface &device)
}
-MACHINE_CONFIG_START(pcxt_state::filetto)
- MCFG_DEVICE_ADD("maincpu", I8088, XTAL(14'318'181)/3)
- MCFG_DEVICE_PROGRAM_MAP(filetto_map)
- MCFG_DEVICE_IO_MAP(filetto_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb)
+void pcxt_state::filetto(machine_config &config)
+{
+ I8088(config, m_maincpu, XTAL(14'318'181)/3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcxt_state::filetto_map);
+ m_maincpu->set_addrmap(AS_IO, &pcxt_state::filetto_io);
+ m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb));
PCNOPPI_MOTHERBOARD(config, "mb", 0).set_cputag(m_maincpu);
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", filetto_isa8_cards, "filetto", true) // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", filetto_isa8_cards, "filetto", true); // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("voice", HC55516, 8000000/4)//8923S-UM5100 is a HC55536 with ROM hook-up
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mb:mono", 0.60)
+ HC55516(config, "voice", 8000000/4).add_route(ALL_OUTPUTS, "mb:mono", 0.60); //8923S-UM5100 is a HC55536 with ROM hook-up
RAM(config, RAM_TAG).set_default_size("640K");
ADDRESS_MAP_BANK(config, "bank").set_map(&pcxt_state::bank_map).set_options(ENDIANNESS_LITTLE, 8, 18, 0x10000);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pcxt_state::tetriskr)
- MCFG_DEVICE_ADD("maincpu", I8088, XTAL(14'318'181)/3)
- MCFG_DEVICE_PROGRAM_MAP(tetriskr_map)
- MCFG_DEVICE_IO_MAP(tetriskr_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb)
+void pcxt_state::tetriskr(machine_config &config)
+{
+ I8088(config, m_maincpu, XTAL(14'318'181)/3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcxt_state::tetriskr_map);
+ m_maincpu->set_addrmap(AS_IO, &pcxt_state::tetriskr_io);
+ m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb));
PCNOPPI_MOTHERBOARD(config, "mb", 0).set_cputag(m_maincpu);
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", filetto_isa8_cards, "tetriskr", true) // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", filetto_isa8_cards, "tetriskr", true); // FIXME: determine ISA bus clock
RAM(config, RAM_TAG).set_default_size("640K");
-MACHINE_CONFIG_END
+}
ROM_START( filetto )
ROM_REGION( 0x10000, "bios", 0 )
diff --git a/src/mame/drivers/pdp11.cpp b/src/mame/drivers/pdp11.cpp
index aa8dcbc9811..bd8634767f3 100644
--- a/src/mame/drivers/pdp11.cpp
+++ b/src/mame/drivers/pdp11.cpp
@@ -367,18 +367,20 @@ void pdp11_state::pdp11(machine_config &config)
RX01(config, "rx01", 0);
}
-MACHINE_CONFIG_START(pdp11_state::pdp11ub2)
+void pdp11_state::pdp11ub2(machine_config &config)
+{
pdp11(config);
MCFG_MACHINE_RESET_OVERRIDE(pdp11_state,pdp11ub2)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pdp11_state::pdp11qb)
+void pdp11_state::pdp11qb(machine_config &config)
+{
pdp11(config);
MCFG_MACHINE_RESET_OVERRIDE(pdp11_state,pdp11qb)
m_maincpu->set_initial_mode(0 << 13);
m_maincpu->set_addrmap(AS_PROGRAM, &pdp11_state::pdp11qb_mem);
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pdp11ub )
diff --git a/src/mame/drivers/pegasus.cpp b/src/mame/drivers/pegasus.cpp
index 7d8055715ff..77ddc422697 100644
--- a/src/mame/drivers/pegasus.cpp
+++ b/src/mame/drivers/pegasus.cpp
@@ -490,19 +490,19 @@ void pegasus_state::init_pegasus()
MACHINE_CONFIG_START(pegasus_state::pegasus)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MC6809, XTAL(4'000'000)) // actually a 6809C - 4MHZ clock coming in, 1MHZ internally
- MCFG_DEVICE_PROGRAM_MAP(pegasus_mem)
+ MC6809(config, m_maincpu, XTAL(4'000'000)); // actually a 6809C - 4MHZ clock coming in, 1MHZ internally
+ m_maincpu->set_addrmap(AS_PROGRAM, &pegasus_state::pegasus_mem);
TIMER(config, "pegasus_firq").configure_periodic(FUNC(pegasus_state::pegasus_firq), attotime::from_hz(400));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(pegasus_state, screen_update)
- MCFG_SCREEN_SIZE(32*8, 16*16)
- MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 16*16-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(pegasus_state::screen_update));
+ screen.set_size(32*8, 16*16);
+ screen.set_visarea(0, 32*8-1, 0, 16*16-1);
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_pegasus);
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -548,11 +548,11 @@ MACHINE_CONFIG_START(pegasus_state::pegasus)
SOFTWARE_LIST(config, "cart_list").set_original("pegasus_cart");
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(pegasus_state::pegasusm)
+void pegasus_state::pegasusm(machine_config &config)
+{
pegasus(config);
- MCFG_DEVICE_MODIFY( "maincpu" )
- MCFG_DEVICE_PROGRAM_MAP(pegasusm_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &pegasus_state::pegasusm_mem);
+}
/* ROM definition */
diff --git a/src/mame/drivers/pentagon.cpp b/src/mame/drivers/pentagon.cpp
index 8bd464034e9..54ee980e21a 100644
--- a/src/mame/drivers/pentagon.cpp
+++ b/src/mame/drivers/pentagon.cpp
@@ -276,19 +276,18 @@ GFXDECODE_END
-MACHINE_CONFIG_START(pentagon_state::pentagon)
+void pentagon_state::pentagon(machine_config &config)
+{
spectrum_128(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(XTAL(14'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(pentagon_mem)
- MCFG_DEVICE_IO_MAP(pentagon_io)
- MCFG_DEVICE_OPCODES_MAP(pentagon_switch)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pentagon_state, pentagon_interrupt)
+ m_maincpu->set_clock(XTAL(14'000'000) / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pentagon_state::pentagon_mem);
+ m_maincpu->set_addrmap(AS_IO, &pentagon_state::pentagon_io);
+ m_maincpu->set_addrmap(AS_OPCODES, &pentagon_state::pentagon_switch);
+ m_maincpu->set_vblank_int("screen", FUNC(pentagon_state::pentagon_interrupt));
MCFG_MACHINE_RESET_OVERRIDE(pentagon_state, pentagon )
- MCFG_SCREEN_MODIFY("screen")
- //MCFG_SCREEN_RAW_PARAMS(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 304)
- MCFG_SCREEN_RAW_PARAMS(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 287)
+ //m_screen->set_raw(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 304);
+ m_screen->set_raw(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 287);
MCFG_VIDEO_START_OVERRIDE(pentagon_state, pentagon )
BETA_DISK(config, m_beta, 0);
@@ -306,7 +305,7 @@ MACHINE_CONFIG_START(pentagon_state::pentagon)
config.device_remove("exp");
SOFTWARE_LIST(config, "cass_list_pen").set_original("pentagon_cass");
-MACHINE_CONFIG_END
+}
void pentagon_state::pent1024(machine_config &config)
{
diff --git a/src/mame/drivers/perq.cpp b/src/mame/drivers/perq.cpp
index c067da028b7..9e92fad8353 100644
--- a/src/mame/drivers/perq.cpp
+++ b/src/mame/drivers/perq.cpp
@@ -29,8 +29,9 @@ private:
static INPUT_PORTS_START( perq )
INPUT_PORTS_END
-MACHINE_CONFIG_START(perq_state::perq)
-MACHINE_CONFIG_END
+void perq_state::perq(machine_config &config)
+{
+}
ROM_START( perq )
ROM_REGION( 0x10000, "maincpu", 0 )
diff --git a/src/mame/drivers/peyper.cpp b/src/mame/drivers/peyper.cpp
index c81928a9184..f3dc37a2f57 100644
--- a/src/mame/drivers/peyper.cpp
+++ b/src/mame/drivers/peyper.cpp
@@ -601,12 +601,13 @@ void peyper_state::machine_reset()
}
-MACHINE_CONFIG_START(peyper_state::peyper)
+void peyper_state::peyper(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 2'500'000)
- MCFG_DEVICE_PROGRAM_MAP(peyper_map)
- MCFG_DEVICE_IO_MAP(peyper_io)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(peyper_state, irq0_line_hold, 1250)
+ Z80(config, m_maincpu, 2'500'000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &peyper_state::peyper_map);
+ m_maincpu->set_addrmap(AS_IO, &peyper_state::peyper_io);
+ m_maincpu->set_periodic_int(FUNC(peyper_state::irq0_line_hold), attotime::from_hz(1250));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
@@ -631,7 +632,7 @@ MACHINE_CONFIG_START(peyper_state::peyper)
kbdc.in_rl_callback().set(FUNC(peyper_state::sw_r)); // kbd RL lines
kbdc.in_shift_callback().set_constant(1); // Shift key
kbdc.in_ctrl_callback().set_constant(1);
-MACHINE_CONFIG_END
+}
// Not allowed to set up an array all at once, so we have this mess
void peyper_state::init_peyper()
diff --git a/src/mame/drivers/pg685.cpp b/src/mame/drivers/pg685.cpp
index 850113517ad..fc4beba17ad 100644
--- a/src/mame/drivers/pg685.cpp
+++ b/src/mame/drivers/pg685.cpp
@@ -422,11 +422,12 @@ void pg685_state::pg685_module(machine_config &config)
MM58167(config, "rtc", XTAL(32'768));
}
-MACHINE_CONFIG_START(pg685_state::pg675)
+void pg685_state::pg675(machine_config &config)
+{
// main cpu
- MCFG_DEVICE_ADD("maincpu", I8088, XTAL(15'000'000) / 3)
- MCFG_DEVICE_PROGRAM_MAP(pg675_mem)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb)
+ I8088(config, m_maincpu, XTAL(15'000'000) / 3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pg685_state::pg675_mem);
+ m_maincpu->set_irq_acknowledge_callback("mainpic", FUNC(pic8259_device::inta_cb));
pic8259_device &mainpic(PIC8259(config, "mainpic", 0));
mainpic.out_int_callback().set_inputline(m_maincpu, 0);
@@ -437,9 +438,9 @@ MACHINE_CONFIG_START(pg685_state::pg675)
// ram
// video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(12288000, 882, 0, 720, 370, 0, 350 ) // not real values
- MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update )
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(12288000, 882, 0, 720, 370, 0, 350 ); // not real values
+ screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update));
mc6845_device &crtc(MC6845(config, "crtc", 12288000));
crtc.set_screen("screen");
@@ -452,7 +453,7 @@ MACHINE_CONFIG_START(pg685_state::pg675)
// devices
pg685_module(config);
- MCFG_DEVICE_ADD("mainuart", I8251, XTAL(12'288'000) / 6) // divider guessed
+ I8251(config, "mainuart", XTAL(12'288'000) / 6); // divider guessed
// rs232 port
@@ -467,14 +468,14 @@ MACHINE_CONFIG_START(pg685_state::pg675)
// m_fdc->drq_wr_callback(FUNC(zorba_state::fdc_drq_w));
FLOPPY_CONNECTOR(config, "fdc:0", pg675_floppies, "525dd", floppy_image_device::default_floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "fdc:1", pg675_floppies, "525dd", floppy_image_device::default_floppy_formats).enable_sound(true);
+}
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(pg685_state::pg685)
+void pg685_state::pg685(machine_config &config)
+{
// main cpu
- MCFG_DEVICE_ADD("maincpu", V20, XTAL(15'000'000) / 3)
- MCFG_DEVICE_PROGRAM_MAP(pg685_mem)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb)
+ V20(config, m_maincpu, XTAL(15'000'000) / 3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pg685_state::pg685_mem);
+ m_maincpu->set_irq_acknowledge_callback("mainpic", FUNC(pic8259_device::inta_cb));
pic8259_device &mainpic(PIC8259(config, "mainpic", 0));
mainpic.out_int_callback().set_inputline(m_maincpu, 0);
@@ -485,9 +486,9 @@ MACHINE_CONFIG_START(pg685_state::pg685)
// ram
// video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(12288000, 882, 0, 720, 370, 0, 350 ) // not real values
- MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update )
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(12288000, 882, 0, 720, 370, 0, 350 ); // not real values
+ screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update));
mc6845_device &crtc(MC6845(config, "crtc", 12288000));
crtc.set_screen("screen");
@@ -501,7 +502,7 @@ MACHINE_CONFIG_START(pg685_state::pg685)
pg685_backplane(config);
pg685_module(config);
- MCFG_DEVICE_ADD("mainuart", I8251, XTAL(12'288'000) / 6) // divider guessed
+ I8251(config, "mainuart", XTAL(12'288'000) / 6); // divider guessed
// rs232 port
@@ -519,13 +520,14 @@ MACHINE_CONFIG_START(pg685_state::pg685)
// harddisk
wd2010_device& hdc(WD2010(config, "hdc", XTAL(10'000'000) / 2)); // divider guessed
hdc.out_intrq_callback().set("mainpic", FUNC(pic8259_device::ir3_w));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pg685_state::pg685oua12)
+void pg685_state::pg685oua12(machine_config &config)
+{
// main cpu
- MCFG_DEVICE_ADD("maincpu", I80286, XTAL(20'000'000) / 2)
- MCFG_DEVICE_PROGRAM_MAP(pg685oua12_mem)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb)
+ I80286(config, m_maincpu, XTAL(20'000'000) / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pg685_state::pg685oua12_mem);
+ m_maincpu->set_irq_acknowledge_callback("mainpic", FUNC(pic8259_device::inta_cb));
pic8259_device &mainpic(PIC8259(config, "mainpic", 0));
mainpic.out_int_callback().set_inputline(m_maincpu, 0);
@@ -536,9 +538,9 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12)
// ram
// video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(12288000, 882, 0, 720, 370, 0, 350 ) // not real values
- MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update )
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(12288000, 882, 0, 720, 370, 0, 350 ); // not real values
+ screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update));
mc6845_device &crtc(MC6845(config, "crtc", 12288000));
crtc.set_screen("screen");
@@ -552,7 +554,7 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12)
pg685_backplane(config);
pg685_module(config);
- MCFG_DEVICE_ADD("mainuart", I8251, 12288000 / 6) // wrong
+ I8251(config, "mainuart", 12288000 / 6); // wrong
// rs232 port
@@ -569,8 +571,7 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12)
// harddisk
wd2010_device& hdc(WD2010(config, "hdc", XTAL(10'000'000) / 2)); // divider guessed
hdc.out_intrq_callback().set("mainpic", FUNC(pic8259_device::ir3_w));
-
-MACHINE_CONFIG_END
+}
//**************************************************************************
diff --git a/src/mame/drivers/pgm.cpp b/src/mame/drivers/pgm.cpp
index 188c1103104..2f3ac8a9cf8 100644
--- a/src/mame/drivers/pgm.cpp
+++ b/src/mame/drivers/pgm.cpp
@@ -490,7 +490,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(pgm_state::pgm_interrupt)
{
int scanline = param;
-// already being generated by MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pgm_state, irq6_line_hold)
+// already being generated by m_maincpu->set_vblank_int("screen", FUNC(pgm_state::irq6_line_hold));
// if(scanline == 224)
// m_maincpu->set_input_line(6, HOLD_LINE);
diff --git a/src/mame/drivers/pgm3.cpp b/src/mame/drivers/pgm3.cpp
index 4d3fa198943..ba95a80a902 100644
--- a/src/mame/drivers/pgm3.cpp
+++ b/src/mame/drivers/pgm3.cpp
@@ -104,25 +104,25 @@ void pgm3_state::machine_reset()
{
}
-MACHINE_CONFIG_START(pgm3_state::pgm3)
-
+void pgm3_state::pgm3(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", ARM9, 800000000) // wrong, see notes at top of driver
- MCFG_DEVICE_PROGRAM_MAP(pgm3_map)
- MCFG_DEVICE_DISABLE()
+ ARM9(config, m_maincpu, 800000000); // wrong, see notes at top of driver
+ m_maincpu->set_addrmap(AS_PROGRAM, &pgm3_state::pgm3_map);
+ m_maincpu->set_disable();
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(1280, 720)
- MCFG_SCREEN_VISIBLE_AREA(0, 1280-1, 0, 720-1)
- MCFG_SCREEN_UPDATE_DRIVER(pgm3_state, screen_update_pgm3)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pgm3_state, screen_vblank_pgm3))
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_PALETTE_ADD("palette", 0x1000)
-MACHINE_CONFIG_END
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(1280, 720);
+ screen.set_visarea(0, 1280-1, 0, 720-1);
+ screen.set_screen_update(FUNC(pgm3_state::screen_update_pgm3));
+ screen.screen_vblank().set(FUNC(pgm3_state::screen_vblank_pgm3));
+ screen.set_palette("palette");
+
+ PALETTE(config, "palette").set_entries(0x1000);
+}
ROM_START( kov3hd )
ROM_REGION( 0x04000, "maincpu", ROMREGION_ERASE00 )
diff --git a/src/mame/drivers/photon.cpp b/src/mame/drivers/photon.cpp
index a895d38de4c..8dcb71f8453 100644
--- a/src/mame/drivers/photon.cpp
+++ b/src/mame/drivers/photon.cpp
@@ -214,23 +214,23 @@ uint32_t photon_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap
return video_update(screen, bitmap, cliprect, memregion("maincpu")->base());
}
-MACHINE_CONFIG_START(photon_state::photon)
-
+void photon_state::photon(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",I8080, 1780000)
- MCFG_DEVICE_PROGRAM_MAP(pk8000_mem)
- MCFG_DEVICE_IO_MAP(pk8000_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", photon_state, interrupt)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(photon_state, irq_callback)
+ I8080(config, m_maincpu, 1780000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &photon_state::pk8000_mem);
+ m_maincpu->set_addrmap(AS_IO, &photon_state::pk8000_io);
+ m_maincpu->set_vblank_int("screen", FUNC(photon_state::interrupt));
+ m_maincpu->set_irq_acknowledge_callback(FUNC(photon_state::irq_callback));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(256+32, 192+32)
- MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1)
- MCFG_SCREEN_UPDATE_DRIVER(photon_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(256+32, 192+32);
+ screen.set_visarea(0, 256+32-1, 0, 192+32-1);
+ screen.set_screen_update(FUNC(photon_state::screen_update));
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(photon_state::pk8000_palette), 16);
@@ -247,7 +247,7 @@ MACHINE_CONFIG_START(photon_state::photon)
/* audio hardware */
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
/*
Dump was made using custom adaptor, hence it is marked as bad dump.
diff --git a/src/mame/drivers/photon2.cpp b/src/mame/drivers/photon2.cpp
index 8ee9d4094ba..9d4f207ee6d 100644
--- a/src/mame/drivers/photon2.cpp
+++ b/src/mame/drivers/photon2.cpp
@@ -358,29 +358,30 @@ void photon2_state::machine_start()
save_item(NAME(m_nmi_enable));
}
-MACHINE_CONFIG_START(photon2_state::photon2)
+void photon2_state::photon2(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 3500000) /* 3.5 MHz */
- MCFG_DEVICE_PROGRAM_MAP(spectrum_mem)
- MCFG_DEVICE_IO_MAP(spectrum_io)
+ Z80(config, m_maincpu, 3500000); /* 3.5 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &photon2_state::spectrum_mem);
+ m_maincpu->set_addrmap(AS_IO, &photon2_state::spectrum_io);
TIMER(config, "scantimer").configure_scanline(FUNC(photon2_state::spec_interrupt_hack), "screen", 0, 1);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50.08)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT)
- MCFG_SCREEN_VISIBLE_AREA(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1)
- MCFG_SCREEN_UPDATE_DRIVER(photon2_state, screen_update_spectrum)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, photon2_state, screen_vblank_spectrum))
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50.08);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT);
+ screen.set_visarea(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1);
+ screen.set_screen_update(FUNC(photon2_state::screen_update_spectrum));
+ screen.screen_vblank().set(FUNC(photon2_state::screen_vblank_spectrum));
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(photon2_state::photon2_palette), 16);
/* sound hardware */
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
/*************************************
*
diff --git a/src/mame/drivers/photoply.cpp b/src/mame/drivers/photoply.cpp
index adf7356087d..0e8e8d69e10 100644
--- a/src/mame/drivers/photoply.cpp
+++ b/src/mame/drivers/photoply.cpp
@@ -302,10 +302,10 @@ GFXDECODE_END
MACHINE_CONFIG_START(photoply_state::photoply)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I486DX4, 75000000) /* I486DX4, 75 or 100 Mhz */
- MCFG_DEVICE_PROGRAM_MAP(photoply_map)
- MCFG_DEVICE_IO_MAP(photoply_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb)
+ I486DX4(config, m_maincpu, 75000000); /* I486DX4, 75 or 100 Mhz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &photoply_state::photoply_map);
+ m_maincpu->set_addrmap(AS_IO, &photoply_state::photoply_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb));
pcat_common(config);
@@ -320,12 +320,11 @@ MACHINE_CONFIG_START(photoply_state::photoply)
MCFG_PCI_BUS_LEGACY_ADD("pcibus", 0)
MCFG_PCI_BUS_LEGACY_DEVICE(5, DEVICE_SELF, photoply_state, sis_pcm_r, sis_pcm_w)
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
- MCFG_SCREEN_UPDATE_DEVICE("vga", cirrus_gd5446_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(XTAL(25'174'800),900,0,640,526,0,480);
+ screen.set_screen_update("vga", FUNC(cirrus_gd5446_device::screen_update));
- MCFG_DEVICE_ADD("vga", CIRRUS_GD5446, 0)
- MCFG_VIDEO_SET_SCREEN("screen")
+ CIRRUS_GD5446(config, "vga", 0).set_screen("screen");
EEPROM_93C46_16BIT(config, "eeprom")
.write_time(attotime::from_usec(1))
diff --git a/src/mame/drivers/pinball2k.cpp b/src/mame/drivers/pinball2k.cpp
index 0488e5687fb..eda9e7d8e0d 100644
--- a/src/mame/drivers/pinball2k.cpp
+++ b/src/mame/drivers/pinball2k.cpp
@@ -605,10 +605,10 @@ void pinball2k_state::ramdac_map(address_map &map)
MACHINE_CONFIG_START(pinball2k_state::mediagx)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MEDIAGX, 166000000)
- MCFG_DEVICE_PROGRAM_MAP(mediagx_map)
- MCFG_DEVICE_IO_MAP(mediagx_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb)
+ MEDIAGX(config, m_maincpu, 166000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pinball2k_state::mediagx_map);
+ m_maincpu->set_addrmap(AS_IO, &pinball2k_state::mediagx_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb));
pcat_common(config);
@@ -622,14 +622,14 @@ MACHINE_CONFIG_START(pinball2k_state::mediagx)
m_ramdac->set_addrmap(0, &pinball2k_state::ramdac_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239)
- MCFG_SCREEN_UPDATE_DRIVER(pinball2k_state, screen_update_mediagx)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(640, 480);
+ m_screen->set_visarea(0, 639, 0, 239);
+ m_screen->set_screen_update(FUNC(pinball2k_state::screen_update_mediagx));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_cga);
- MCFG_PALETTE_ADD("palette", 256)
+ PALETTE(config, m_palette).set_entries(256);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/pingpong.cpp b/src/mame/drivers/pingpong.cpp
index 8530e42128a..bd86b6567a6 100644
--- a/src/mame/drivers/pingpong.cpp
+++ b/src/mame/drivers/pingpong.cpp
@@ -448,22 +448,22 @@ static GFXDECODE_START( gfx_pingpong )
GFXDECODE_END
-MACHINE_CONFIG_START(pingpong_state::pingpong)
-
+void pingpong_state::pingpong(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80,18432000/6) /* 3.072 MHz (probably) */
- MCFG_DEVICE_PROGRAM_MAP(pingpong_map)
+ Z80(config, m_maincpu,18432000/6); /* 3.072 MHz (probably) */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pingpong_state::pingpong_map);
TIMER(config, "scantimer").configure_scanline(FUNC(pingpong_state::pingpong_interrupt), "screen", 0, 1);
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(456, 262)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pingpong_state, screen_update_pingpong)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(456, 262);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(pingpong_state::screen_update_pingpong));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pingpong);
PALETTE(config, m_palette, FUNC(pingpong_state::pingpong_palette), 64*4+64*4, 32);
@@ -471,19 +471,18 @@ MACHINE_CONFIG_START(pingpong_state::pingpong)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("snsnd", SN76496, 18432000/8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ SN76496(config, "snsnd", 18432000/8).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/* too fast! */
-MACHINE_CONFIG_START(pingpong_state::merlinmm)
+void pingpong_state::merlinmm(machine_config &config)
+{
pingpong(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(merlinmm_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pingpong_state::merlinmm_map);
subdevice<timer_device>("scantimer")->set_callback(FUNC(pingpong_state::merlinmm_interrupt));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/pinkiri8.cpp b/src/mame/drivers/pinkiri8.cpp
index 093e4d149ab..d5ad19d1baa 100644
--- a/src/mame/drivers/pinkiri8.cpp
+++ b/src/mame/drivers/pinkiri8.cpp
@@ -1106,32 +1106,31 @@ static GFXDECODE_START( gfx_pinkiri8 )
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 0x100 )
GFXDECODE_END
-MACHINE_CONFIG_START(pinkiri8_state::pinkiri8)
- MCFG_DEVICE_ADD("maincpu",Z180,XTAL(32'000'000)/2)
- MCFG_DEVICE_PROGRAM_MAP(pinkiri8_map)
- MCFG_DEVICE_IO_MAP(pinkiri8_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pinkiri8_state, nmi_line_assert)
-
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pinkiri8_state, screen_update_pinkiri8)
- MCFG_SCREEN_PALETTE("palette")
+void pinkiri8_state::pinkiri8(machine_config &config)
+{
+ Z180(config, m_maincpu, XTAL(32'000'000)/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pinkiri8_state::pinkiri8_map);
+ m_maincpu->set_addrmap(AS_IO, &pinkiri8_state::pinkiri8_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pinkiri8_state::nmi_line_assert));
+
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 62*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(pinkiri8_state::screen_update_pinkiri8));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pinkiri8);
- MCFG_PALETTE_ADD("palette", 0x2000)
-
+ PALETTE(config, m_palette).set_entries(0x2000);
- MCFG_DEVICE_ADD("janshivdp", JANSHIVDP, 0)
+ JANSHIVDP(config, m_vdp, 0);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); // clock frequency & pin 7 not verified
+}
/***************************************************************************
diff --git a/src/mame/drivers/pirates.cpp b/src/mame/drivers/pirates.cpp
index 07595c472c4..9f7a1f31b32 100644
--- a/src/mame/drivers/pirates.cpp
+++ b/src/mame/drivers/pirates.cpp
@@ -252,30 +252,30 @@ GFXDECODE_END
/* Machine Driver + Related bits */
-MACHINE_CONFIG_START(pirates_state::pirates)
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16mhz */
- MCFG_DEVICE_PROGRAM_MAP(pirates_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pirates_state, irq1_line_hold)
+void pirates_state::pirates(machine_config &config)
+{
+ M68000(config, m_maincpu, 16000000); /* 16mhz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pirates_state::pirates_map);
+ m_maincpu->set_vblank_int("screen", FUNC(pirates_state::irq1_line_hold));
EEPROM_93C46_16BIT(config, "eeprom");
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pirates);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(36*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pirates_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(36*8, 32*8);
+ screen.set_visarea(0*8, 36*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(pirates_state::screen_update));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x2000);
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1333333, okim6295_device::PIN7_LOW)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki, 1333333, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
diff --git a/src/mame/drivers/piratesh.cpp b/src/mame/drivers/piratesh.cpp
index 0dfc7b2a8bb..5933f7d580c 100644
--- a/src/mame/drivers/piratesh.cpp
+++ b/src/mame/drivers/piratesh.cpp
@@ -616,7 +616,7 @@ void piratesh_state::piratesh(machine_config &config)
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
-// MCFG_SCREEN_REFRESH_RATE(60)
+// screen.set_refresh_hz(60);
screen.set_raw(6000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223); // TODO
screen.set_vblank_time(ATTOSECONDS_IN_USEC(600));
screen.set_size(64*8, 32*8);
diff --git a/src/mame/drivers/pitagjr.cpp b/src/mame/drivers/pitagjr.cpp
index f2b30986bfc..9c9be7f61b7 100644
--- a/src/mame/drivers/pitagjr.cpp
+++ b/src/mame/drivers/pitagjr.cpp
@@ -209,22 +209,23 @@ uint32_t pitagjr_state::screen_update(screen_device &screen, bitmap_ind16 &bitma
return 0;
}
-MACHINE_CONFIG_START(pitagjr_state::pitajr)
+void pitagjr_state::pitajr(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", HD63705, XTAL(2'000'000)) // probably a m6805-based MCU with internal boot ROM
- MCFG_DEVICE_PROGRAM_MAP(pitajr_mem)
+ HD63705(config, m_maincpu, XTAL(2'000'000)); // probably a m6805-based MCU with internal boot ROM
+ m_maincpu->set_addrmap(AS_PROGRAM, &pitagjr_state::pitajr_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(pitagjr_state, screen_update)
- MCFG_SCREEN_SIZE( 200, 100 ) // FIXME
- MCFG_SCREEN_VISIBLE_AREA( 0, 200-1, 0, 100-1 )
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(pitagjr_state::screen_update));
+ screen.set_size(200, 100); // FIXME
+ screen.set_visarea(0, 200-1, 0, 100-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pitagjr_state::pitagjr_palette), 2);
-MACHINE_CONFIG_END
+}
/* ROM definition */
diff --git a/src/mame/drivers/pk8000.cpp b/src/mame/drivers/pk8000.cpp
index d26f7998579..b0a4c204aeb 100644
--- a/src/mame/drivers/pk8000.cpp
+++ b/src/mame/drivers/pk8000.cpp
@@ -360,22 +360,23 @@ uint32_t pk8000_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap
return video_update(screen, bitmap, cliprect, m_ram->pointer());
}
-MACHINE_CONFIG_START(pk8000_state::pk8000)
+void pk8000_state::pk8000(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",I8080, 1780000)
- MCFG_DEVICE_PROGRAM_MAP(pk8000_mem)
- MCFG_DEVICE_IO_MAP(pk8000_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pk8000_state, interrupt)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pk8000_state, irq_callback)
+ I8080(config, m_maincpu, 1780000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pk8000_state::pk8000_mem);
+ m_maincpu->set_addrmap(AS_IO, &pk8000_state::pk8000_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pk8000_state::interrupt));
+ m_maincpu->set_irq_acknowledge_callback(FUNC(pk8000_state::irq_callback));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(256+32, 192+32)
- MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1)
- MCFG_SCREEN_UPDATE_DRIVER(pk8000_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(256+32, 192+32);
+ screen.set_visarea(0, 256+32-1, 0, 192+32-1);
+ screen.set_screen_update(FUNC(pk8000_state::screen_update));
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pk8000_state::pk8000_palette), 16);
@@ -400,7 +401,7 @@ MACHINE_CONFIG_START(pk8000_state::pk8000)
/* internal ram */
RAM(config, RAM_TAG).set_default_size("64K");
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( vesta )
diff --git a/src/mame/drivers/pk8020.cpp b/src/mame/drivers/pk8020.cpp
index f34e5bb292a..734ce7c32a6 100644
--- a/src/mame/drivers/pk8020.cpp
+++ b/src/mame/drivers/pk8020.cpp
@@ -189,22 +189,23 @@ static void pk8020_floppies(device_slot_interface &device)
* 7 floppy
*/
/* Machine driver */
-MACHINE_CONFIG_START(pk8020_state::pk8020)
+void pk8020_state::pk8020(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8080, 20_MHz_XTAL / 8)
- MCFG_DEVICE_PROGRAM_MAP(pk8020_mem)
- MCFG_DEVICE_IO_MAP(pk8020_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pk8020_state, pk8020_interrupt)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
+ I8080(config, m_maincpu, 20_MHz_XTAL / 8);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pk8020_state::pk8020_mem);
+ m_maincpu->set_addrmap(AS_IO, &pk8020_state::pk8020_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pk8020_state::pk8020_interrupt));
+ m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(512, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_DRIVER(pk8020_state, screen_update_pk8020)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(512, 256);
+ screen.set_visarea(0, 512-1, 0, 256-1);
+ screen.set_screen_update(FUNC(pk8020_state::screen_update_pk8020));
+ screen.set_palette(m_palette);
GFXDECODE(config, "gfxdecode", m_palette, gfx_pk8020);
PALETTE(config, m_palette, FUNC(pk8020_state::pk8020_palette), 16);
@@ -262,7 +263,7 @@ MACHINE_CONFIG_START(pk8020_state::pk8020)
/* internal ram */
RAM(config, RAM_TAG).set_default_size("258K").set_default_value(0x00); // 64 + 4*48 + 2 = 258
-MACHINE_CONFIG_END
+}
/* ROM definition */
diff --git a/src/mame/drivers/pktgaldx.cpp b/src/mame/drivers/pktgaldx.cpp
index 65e659bb4ff..2bbb8596766 100644
--- a/src/mame/drivers/pktgaldx.cpp
+++ b/src/mame/drivers/pktgaldx.cpp
@@ -338,24 +338,24 @@ void pktgaldx_state::machine_start()
{
}
-MACHINE_CONFIG_START(pktgaldx_state::pktgaldx)
-
+void pktgaldx_state::pktgaldx(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 28_MHz_XTAL / 2) // The clock input is 14.000MHz on pin 6
- MCFG_DEVICE_PROGRAM_MAP(pktgaldx_map)
- MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
+ M68000(config, m_maincpu, 28_MHz_XTAL / 2); // The clock input is 14.000MHz on pin 6
+ m_maincpu->set_addrmap(AS_PROGRAM, &pktgaldx_state::pktgaldx_map);
+ m_maincpu->set_addrmap(AS_OPCODES, &pktgaldx_state::decrypted_opcodes_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldx)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pktgaldx_state, vblank_w))
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(pktgaldx_state::screen_update_pktgaldx));
+ screen.screen_vblank().set(FUNC(pktgaldx_state::vblank_w));
+ screen.set_palette(m_palette);
- PALETTE(config, "palette").set_format(palette_device::xBGR_888, 4096);
+ PALETTE(config, m_palette).set_format(palette_device::xBGR_888, 4096);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pktgaldx);
@@ -389,31 +389,31 @@ MACHINE_CONFIG_START(pktgaldx_state::pktgaldx)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("oki1", OKIM6295, 32.22_MHz_XTAL / 32, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75)
-
- MCFG_DEVICE_ADD("oki2", OKIM6295, 32.22_MHz_XTAL / 16, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60)
-MACHINE_CONFIG_END
+ okim6295_device &oki1(OKIM6295(config, "oki1", 32.22_MHz_XTAL / 32, okim6295_device::PIN7_HIGH));
+ oki1.add_route(ALL_OUTPUTS, "lspeaker", 0.75);
+ oki1.add_route(ALL_OUTPUTS, "rspeaker", 0.75);
+ OKIM6295(config, m_oki2, 32.22_MHz_XTAL / 16, okim6295_device::PIN7_HIGH);
+ m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.60);
+ m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.60);
+}
-MACHINE_CONFIG_START(pktgaldx_state::pktgaldb)
+void pktgaldx_state::pktgaldb(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000)
- MCFG_DEVICE_PROGRAM_MAP(pktgaldb_map)
+ M68000(config, m_maincpu, 16000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pktgaldx_state::pktgaldb_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldb)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pktgaldx_state, vblank_w))
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(pktgaldx_state::screen_update_pktgaldb));
+ screen.screen_vblank().set(FUNC(pktgaldx_state::vblank_w));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::xBGR_888, 4096);
@@ -423,14 +423,14 @@ MACHINE_CONFIG_START(pktgaldx_state::pktgaldb)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75)
+ okim6295_device &oki1(OKIM6295(config, "oki1", 32220000/32, okim6295_device::PIN7_HIGH));
+ oki1.add_route(ALL_OUTPUTS, "lspeaker", 0.75);
+ oki1.add_route(ALL_OUTPUTS, "rspeaker", 0.75);
- MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki2, 32220000/16, okim6295_device::PIN7_HIGH);
+ m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.60);
+ m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.60);
+}
ROM_START( pktgaldx )
diff --git a/src/mame/drivers/playmark.cpp b/src/mame/drivers/playmark.cpp
index 688a8804a9f..e3043157202 100644
--- a/src/mame/drivers/playmark.cpp
+++ b/src/mame/drivers/playmark.cpp
@@ -1041,12 +1041,12 @@ MACHINE_RESET_MEMBER(playmark_state,playmark)
m_dispenser_latch = 0;
}
-MACHINE_CONFIG_START(playmark_state::bigtwin)
-
+void playmark_state::bigtwin(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */
- MCFG_DEVICE_PROGRAM_MAP(bigtwin_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold)
+ M68000(config, m_maincpu, 12000000); /* 12 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::bigtwin_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold));
PIC16C57(config, m_audiocpu, 12000000);
m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w));
@@ -1059,13 +1059,13 @@ MACHINE_CONFIG_START(playmark_state::bigtwin)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwin)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1);
+ screen.set_screen_update(FUNC(playmark_state::screen_update_bigtwin));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bigtwin);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024);
@@ -1075,17 +1075,17 @@ MACHINE_CONFIG_START(playmark_state::bigtwin)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(playmark_state::bigtwinb)
+ OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH);
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &playmark_state::oki_map);
+}
+void playmark_state::bigtwinb(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2)
- MCFG_DEVICE_PROGRAM_MAP(bigtwinb_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold)
+ M68000(config, m_maincpu, XTAL(24'000'000)/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::bigtwinb_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold));
PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2);
m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w));
@@ -1098,13 +1098,13 @@ MACHINE_CONFIG_START(playmark_state::bigtwinb)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwinb)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1);
+ screen.set_screen_update(FUNC(playmark_state::screen_update_bigtwinb));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bigtwinb);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024);
@@ -1114,17 +1114,17 @@ MACHINE_CONFIG_START(playmark_state::bigtwinb)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(playmark_state::wbeachvl)
+ OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH);
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &playmark_state::oki_map);
+}
+void playmark_state::wbeachvl(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */
- MCFG_DEVICE_PROGRAM_MAP(wbeachvl_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold)
+ M68000(config, m_maincpu, 12000000); /* 12 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::wbeachvl_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold));
PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* 12MHz with internal 4x divisor */
m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // wrong?
@@ -1140,13 +1140,13 @@ MACHINE_CONFIG_START(playmark_state::wbeachvl)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_wbeachvl)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1);
+ screen.set_screen_update(FUNC(playmark_state::screen_update_wbeachvl));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_wbeachvl);
PALETTE(config, m_palette).set_format(palette_device::RGBx_555, 2048);
@@ -1156,17 +1156,17 @@ MACHINE_CONFIG_START(playmark_state::wbeachvl)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(playmark_state::excelsr)
+ OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH);
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &playmark_state::oki_map);
+}
+void playmark_state::excelsr(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* 12 MHz */
- MCFG_DEVICE_PROGRAM_MAP(excelsr_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold)
+ M68000(config, m_maincpu, XTAL(24'000'000)/2); /* 12 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::excelsr_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold));
PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* 12MHz with internal 4x divisor */
m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w));
@@ -1179,13 +1179,13 @@ MACHINE_CONFIG_START(playmark_state::excelsr)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_excelsr)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1);
+ screen.set_screen_update(FUNC(playmark_state::screen_update_excelsr));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_excelsr);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024);
@@ -1195,17 +1195,17 @@ MACHINE_CONFIG_START(playmark_state::excelsr)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* 1MHz resonator */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(playmark_state::hrdtimes)
+ OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* 1MHz resonator */
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &playmark_state::oki_map);
+}
+void playmark_state::hrdtimes(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(hrdtimes_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq6_line_hold)
+ M68000(config, m_maincpu, XTAL(24'000'000)/2); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::hrdtimes_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq6_line_hold));
PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* verified on pcb */
// m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // Banking data output but not wired. Port C is wired to the OKI banking instead
@@ -1219,13 +1219,13 @@ MACHINE_CONFIG_START(playmark_state::hrdtimes)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(playmark_state::screen_update_hrdtimes));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_hrdtimes);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024);
@@ -1235,17 +1235,17 @@ MACHINE_CONFIG_START(playmark_state::hrdtimes)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(playmark_state::hotmind)
+ OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* verified on pcb */
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &playmark_state::oki_map);
+}
+void playmark_state::hotmind(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(hotmind_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq6_line_hold) // irq 2 and 6 point to the same location on hotmind
+ M68000(config, m_maincpu, XTAL(24'000'000)/2); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::hotmind_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq6_line_hold)); // irq 2 and 6 point to the same location on hotmind
PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* verified on pcb */
// m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // Banking data output but not wired. Port C is wired to the OKI banking instead
@@ -1260,13 +1260,13 @@ MACHINE_CONFIG_START(playmark_state::hotmind)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(playmark_state::screen_update_hrdtimes));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_hotmind);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024);
@@ -1279,17 +1279,17 @@ MACHINE_CONFIG_START(playmark_state::hotmind)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(playmark_state::luckboomh)
+ OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* verified on pcb */
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &playmark_state::oki_map);
+}
+void playmark_state::luckboomh(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(luckboomh_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq6_line_hold)
+ M68000(config, m_maincpu, XTAL(24'000'000)/2); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::luckboomh_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq6_line_hold));
PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* verified on pcb */
// m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // Banking data output but not wired. Port C is wired to the OKI banking instead
@@ -1304,13 +1304,13 @@ MACHINE_CONFIG_START(playmark_state::luckboomh)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(playmark_state::screen_update_hrdtimes));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_luckboomh);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024);
@@ -1323,10 +1323,10 @@ MACHINE_CONFIG_START(playmark_state::luckboomh)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* verified on pcb */
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &playmark_state::oki_map);
+}
/***************************************************************************
diff --git a/src/mame/drivers/plus4.cpp b/src/mame/drivers/plus4.cpp
index 9ff154aacdb..95fc4a8b922 100644
--- a/src/mame/drivers/plus4.cpp
+++ b/src/mame/drivers/plus4.cpp
@@ -837,7 +837,7 @@ void plus4_state::machine_reset()
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( plus4 )
+// machine_config( plus4 )
//-------------------------------------------------
void plus4_state::plus4(machine_config &config)
@@ -939,7 +939,7 @@ void plus4_state::plus4(machine_config &config)
//-------------------------------------------------
-// MACHINE_CONFIG( plus4p )
+// machine_config( plus4p )
//-------------------------------------------------
void c16_state::plus4p(machine_config &config)
@@ -958,7 +958,7 @@ void c16_state::plus4p(machine_config &config)
}
//-------------------------------------------------
-// MACHINE_CONFIG( plus4n )
+// machine_config( plus4n )
//-------------------------------------------------
void c16_state::plus4n(machine_config &config)
@@ -978,7 +978,7 @@ void c16_state::plus4n(machine_config &config)
//-------------------------------------------------
-// MACHINE_CONFIG( c16n )
+// machine_config( c16n )
//-------------------------------------------------
void c16_state::c16n(machine_config &config)
@@ -999,7 +999,7 @@ void c16_state::c16n(machine_config &config)
//-------------------------------------------------
-// MACHINE_CONFIG( c16p )
+// machine_config( c16p )
//-------------------------------------------------
void c16_state::c16p(machine_config &config)
@@ -1027,7 +1027,7 @@ void c16_state::c232(machine_config &config)
//-------------------------------------------------
-// MACHINE_CONFIG( v364 )
+// machine_config( v364 )
//-------------------------------------------------
void c16_state::v364(machine_config &config)
diff --git a/src/mame/drivers/pmi80.cpp b/src/mame/drivers/pmi80.cpp
index 86ace8c1736..93a6f48aa8a 100644
--- a/src/mame/drivers/pmi80.cpp
+++ b/src/mame/drivers/pmi80.cpp
@@ -168,16 +168,17 @@ void pmi80_state::machine_start()
}
-MACHINE_CONFIG_START(pmi80_state::pmi80)
+void pmi80_state::pmi80(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",I8080, XTAL(1'000'000))
- MCFG_DEVICE_PROGRAM_MAP(pmi80_mem)
- MCFG_DEVICE_IO_MAP(pmi80_io)
+ I8080(config, m_maincpu, XTAL(1'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pmi80_state::pmi80_mem);
+ m_maincpu->set_addrmap(AS_IO, &pmi80_state::pmi80_io);
/* video hardware */
config.set_default_layout(layout_pmi80);
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pmi80 )
diff --git a/src/mame/drivers/pntnpuzl.cpp b/src/mame/drivers/pntnpuzl.cpp
index e8272f42498..bd4695a2963 100644
--- a/src/mame/drivers/pntnpuzl.cpp
+++ b/src/mame/drivers/pntnpuzl.cpp
@@ -353,9 +353,10 @@ static INPUT_PORTS_START( pntnpuzl )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D)
INPUT_PORTS_END
-MACHINE_CONFIG_START(pntnpuzl_state::pntnpuzl)
- MCFG_DEVICE_ADD("maincpu", M68000, 12_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(pntnpuzl_map)
+void pntnpuzl_state::pntnpuzl(machine_config &config)
+{
+ M68000(config, m_maincpu, 12_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pntnpuzl_state::pntnpuzl_map);
EEPROM_93C46_16BIT(config, "eeprom");
@@ -373,13 +374,12 @@ MACHINE_CONFIG_START(pntnpuzl_state::pntnpuzl)
mcu.ach7_cb().set_constant(0x180); // ?
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
- MCFG_SCREEN_UPDATE_DEVICE("vga", vga_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(XTAL(25'174'800),900,0,640,526,0,480);
+ screen.set_screen_update("vga", FUNC(vga_device::screen_update));
- MCFG_DEVICE_ADD("vga", VGA, 0)
- MCFG_VIDEO_SET_SCREEN("screen")
-MACHINE_CONFIG_END
+ VGA(config, "vga", 0).set_screen("screen");
+}
ROM_START( pntnpuzl )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
diff --git a/src/mame/drivers/pockchal.cpp b/src/mame/drivers/pockchal.cpp
index ec9f541aa11..f0a699cd39d 100644
--- a/src/mame/drivers/pockchal.cpp
+++ b/src/mame/drivers/pockchal.cpp
@@ -101,23 +101,22 @@ void pockchalv1_state::machine_reset()
MACHINE_CONFIG_START(pockchalv1_state::pockchalv1)
-
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", TMP90845,8000000) /* ? MHz */
- MCFG_DEVICE_PROGRAM_MAP(pockchalv1_map)
-// MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pockchalv1_state, irq0_line_hold)
+ TMP90845(config, m_maincpu, 8000000); /* ? MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pockchalv1_state::pockchalv1_map);
+// m_maincpu->->set_vblank_int("screen", FUNC(pockchalv1_state::irq0_line_hold));
// wrong, it's a b&w / greyscale thing
PALETTE(config, "palette").set_format(palette_device::xRGB_444, 0x100).set_endianness(ENDIANNESS_BIG);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_DRIVER(pockchalv1_state, screen_update_pockchalv1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 256-1, 16, 256-16-1);
+ screen.set_screen_update(FUNC(pockchalv1_state::screen_update_pockchalv1));
+ screen.set_palette("palette");
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "pockchalw_cart")
MCFG_GENERIC_EXTENSIONS("bin")
@@ -125,7 +124,6 @@ MACHINE_CONFIG_START(pockchalv1_state::pockchalv1)
MCFG_GENERIC_MANDATORY
SOFTWARE_LIST(config, "pc1_list").set_compatible("pockchalw");
-
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/pockstat.cpp b/src/mame/drivers/pockstat.cpp
index 73792f320ec..f78ee0d9f40 100644
--- a/src/mame/drivers/pockstat.cpp
+++ b/src/mame/drivers/pockstat.cpp
@@ -981,16 +981,16 @@ DEVICE_IMAGE_LOAD_MEMBER( pockstat_state, pockstat_flash )
MACHINE_CONFIG_START(pockstat_state::pockstat)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", ARM7, DEFAULT_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(pockstat_mem)
+ ARM7(config, m_maincpu, DEFAULT_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pockstat_state::pockstat_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(32, 32)
- MCFG_SCREEN_VISIBLE_AREA(0, 32-1, 0, 32-1)
- MCFG_SCREEN_UPDATE_DRIVER(pockstat_state, screen_update_pockstat)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(32, 32);
+ screen.set_visarea(0, 32-1, 0, 32-1);
+ screen.set_screen_update(FUNC(pockstat_state::screen_update_pockstat));
PALETTE(config, "palette", palette_device::MONOCHROME);
diff --git a/src/mame/drivers/pofo.cpp b/src/mame/drivers/pofo.cpp
index 9251dc0a5e9..01a62f67877 100644
--- a/src/mame/drivers/pofo.cpp
+++ b/src/mame/drivers/pofo.cpp
@@ -590,7 +590,7 @@ READ8_MEMBER( portfolio_state::mem_r )
case CCM_A:
if (LOG) logerror("%s %s CCM0 read %05x\n", machine().time().as_string(), machine().describe_context(), offset & 0x1ffff);
- data = m_ccm->nrdi_r(space, offset & 0x1ffff);
+ data = m_ccm->nrdi_r(offset & 0x1ffff);
break;
case CCM_B:
@@ -607,7 +607,7 @@ READ8_MEMBER( portfolio_state::mem_r )
data = m_rom[offset & 0x3ffff];
}
- data = m_exp->nrdi_r(space, offset, data, iom, bcom, ncc1);
+ data = m_exp->nrdi_r(offset, data, iom, bcom, ncc1);
return data;
}
@@ -638,7 +638,7 @@ WRITE8_MEMBER( portfolio_state::mem_w )
case CCM_A:
if (LOG) logerror("%s %s CCM0 write %05x:%02x\n", machine().time().as_string(), machine().describe_context(), offset & 0x1ffff, data);
- m_ccm->nwri_w(space, offset & 0x1ffff, data);
+ m_ccm->nwri_w(offset & 0x1ffff, data);
break;
case CCM_B:
@@ -647,7 +647,7 @@ WRITE8_MEMBER( portfolio_state::mem_w )
}
}
- m_exp->nwri_w(space, offset, data, iom, bcom, ncc1);
+ m_exp->nwri_w(offset, data, iom, bcom, ncc1);
}
@@ -703,7 +703,7 @@ READ8_MEMBER( portfolio_state::io_r )
}
}
- data = m_exp->nrdi_r(space, offset, data, iom, bcom, ncc1);
+ data = m_exp->nrdi_r(offset, data, iom, bcom, ncc1);
return data;
}
@@ -767,7 +767,7 @@ WRITE8_MEMBER( portfolio_state::io_w )
}
}
- m_exp->nwri_w(space, offset, data, iom, bcom, ncc1);
+ m_exp->nwri_w(offset, data, iom, bcom, ncc1);
}
@@ -1011,23 +1011,24 @@ void portfolio_state::machine_reset()
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( portfolio )
+// machine_config( portfolio )
//-------------------------------------------------
-MACHINE_CONFIG_START(portfolio_state::portfolio)
+void portfolio_state::portfolio(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD(M80C88A_TAG, I8088, XTAL(4'915'200))
- MCFG_DEVICE_PROGRAM_MAP(portfolio_mem)
- MCFG_DEVICE_IO_MAP(portfolio_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(portfolio_state,portfolio_int_ack)
+ I8088(config, m_maincpu, XTAL(4'915'200));
+ m_maincpu->set_addrmap(AS_PROGRAM, &portfolio_state::portfolio_mem);
+ m_maincpu->set_addrmap(AS_IO, &portfolio_state::portfolio_io);
+ m_maincpu->set_irq_acknowledge_callback(FUNC(portfolio_state::portfolio_int_ack));
// video hardware
- MCFG_SCREEN_ADD(SCREEN_TAG, LCD)
- MCFG_SCREEN_REFRESH_RATE(72)
- MCFG_SCREEN_UPDATE_DEVICE(HD61830_TAG, hd61830_device, screen_update)
- MCFG_SCREEN_SIZE(240, 64)
- MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 64-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(72);
+ screen.set_screen_update(HD61830_TAG, FUNC(hd61830_device::screen_update));
+ screen.set_size(240, 64);
+ screen.set_visarea(0, 240-1, 0, 64-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(portfolio_state::portfolio_palette), 2);
@@ -1040,8 +1041,7 @@ MACHINE_CONFIG_START(portfolio_state::portfolio)
// sound hardware
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD(PCD3311T_TAG, PCD3311, XTAL(3'578'640))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+ PCD3311(config, m_dtmf, XTAL(3'578'640)).add_route(ALL_OUTPUTS, "mono", 0.25);
// devices
PORTFOLIO_MEMORY_CARD_SLOT(config, m_ccm, portfolio_memory_cards, nullptr);
@@ -1064,7 +1064,7 @@ MACHINE_CONFIG_START(portfolio_state::portfolio)
RAM(config, RAM_TAG).set_default_size("128K");
NVRAM(config, "nvram", nvram_device::DEFAULT_RANDOM);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/poisk1.cpp b/src/mame/drivers/poisk1.cpp
index e7926131184..d7cf7be86f4 100644
--- a/src/mame/drivers/poisk1.cpp
+++ b/src/mame/drivers/poisk1.cpp
@@ -634,7 +634,8 @@ static INPUT_PORTS_START( poisk1 )
PORT_INCLUDE( poisk1_keyboard_v91 )
INPUT_PORTS_END
-MACHINE_CONFIG_START(p1_state::poisk1)
+void p1_state::poisk1(machine_config &config)
+{
/* basic machine hardware */
I8088(config, m_maincpu, 5000000);
m_maincpu->set_addrmap(AS_PROGRAM, &p1_state::poisk1_map);
@@ -673,10 +674,10 @@ MACHINE_CONFIG_START(p1_state::poisk1)
m_isabus->irq5_callback().set(m_pic8259, FUNC(pic8259_device::ir5_w));
m_isabus->irq7_callback().set(m_pic8259, FUNC(pic8259_device::ir7_w));
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", p1_isa8_cards, "fdc", false) // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false)
+ ISA8_SLOT(config, "isa1", 0, m_isabus, p1_isa8_cards, "fdc", false); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa2", 0, m_isabus, p1_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa3", 0, m_isabus, p1_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa4", 0, m_isabus, p1_isa8_cards, nullptr, false);
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
@@ -685,19 +686,18 @@ MACHINE_CONFIG_START(p1_state::poisk1)
// SOFTWARE_LIST(config, "cass_list").set_original("poisk1_cass");
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD( "speaker", SPEAKER_SOUND )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 )
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.00);
- MCFG_SCREEN_ADD( "screen", RASTER )
- MCFG_SCREEN_RAW_PARAMS( XTAL(15'000'000), 912,0,640, 262,0,200 )
- MCFG_SCREEN_UPDATE_DRIVER( p1_state, screen_update )
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(XTAL(15'000'000), 912,0,640, 262,0,200);
+ m_screen->set_screen_update(FUNC(p1_state::screen_update));
/* XXX verify palette */
PALETTE(config, m_palette, FUNC(p1_state::p1_palette), CGA_PALETTE_SETS * 16);
/* internal ram */
RAM(config, RAM_TAG).set_default_size("512K");
-MACHINE_CONFIG_END
+}
ROM_START( poisk1 )
ROM_REGION16_LE(0x10000,"bios", 0)
diff --git a/src/mame/drivers/pokechmp.cpp b/src/mame/drivers/pokechmp.cpp
index 2c2d62c8d2b..11662fdc8c7 100644
--- a/src/mame/drivers/pokechmp.cpp
+++ b/src/mame/drivers/pokechmp.cpp
@@ -226,8 +226,8 @@ WRITE_LINE_MEMBER(pokechmp_state::sound_irq)
m_audiocpu->set_input_line(0, HOLD_LINE);
}
-MACHINE_CONFIG_START(pokechmp_state::pokechmp)
-
+void pokechmp_state::pokechmp(machine_config &config)
+{
/* basic machine hardware */
M6502(config, m_maincpu, 4_MHz_XTAL/4);
m_maincpu->set_addrmap(AS_PROGRAM, &pokechmp_state::pokechmp_map);
@@ -254,17 +254,15 @@ MACHINE_CONFIG_START(pokechmp_state::pokechmp)
GENERIC_LATCH_8(config, m_soundlatch);
- MCFG_DEVICE_ADD("ym1", YM2203, XTAL(4'000'000)/4)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
+ YM2203(config, "ym1", XTAL(4'000'000)/4).add_route(ALL_OUTPUTS, "mono", 0.60);
- MCFG_DEVICE_ADD("ym2", YM3812, XTAL(24'000'000)/16)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ YM3812(config, "ym2", XTAL(24'000'000)/16).add_route(ALL_OUTPUTS, "mono", 1.0);
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(24'000'000)/16, okim6295_device::PIN7_LOW)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) /* sound fx */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
- MCFG_DEVICE_ADDRESS_MAP(0, pokechmp_oki_map)
-MACHINE_CONFIG_END
+ okim6295_device &oki(OKIM6295(config, "oki", XTAL(24'000'000)/16, okim6295_device::PIN7_LOW));
+ oki.add_route(ALL_OUTPUTS, "mono", 0.50); /* sound fx */
+ oki.add_route(ALL_OUTPUTS, "mono", 0.50);
+ oki.set_addrmap(0, &pokechmp_state::pokechmp_oki_map);
+}
void pokechmp_state::init_pokechmp()
{
diff --git a/src/mame/drivers/poker72.cpp b/src/mame/drivers/poker72.cpp
index ff8c55b240a..96522df743a 100644
--- a/src/mame/drivers/poker72.cpp
+++ b/src/mame/drivers/poker72.cpp
@@ -371,20 +371,21 @@ void poker72_state::machine_reset()
membank("bank1")->set_entry(0);
}
-MACHINE_CONFIG_START(poker72_state::poker72)
+void poker72_state::poker72(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,8000000) /* ? MHz */
- MCFG_DEVICE_PROGRAM_MAP(poker72_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", poker72_state, irq0_line_hold)
+ Z80(config, m_maincpu, 8000000); /* ? MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &poker72_state::poker72_map);
+ m_maincpu->set_vblank_int("screen", FUNC(poker72_state::irq0_line_hold));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(poker72_state, screen_update_poker72)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0, 64*8-1, 0, 32*8-1);
+ screen.set_screen_update(FUNC(poker72_state::screen_update_poker72));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_poker72);
PALETTE(config, m_palette, FUNC(poker72_state::poker72_palette), 0xe00);
@@ -395,7 +396,7 @@ MACHINE_CONFIG_START(poker72_state::poker72)
ay.port_a_read_callback().set_ioport("SW2");
ay.port_b_read_callback().set_ioport("SW3");
ay.add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/poly.cpp b/src/mame/drivers/poly.cpp
index 13c5914884a..06d9be0e9cf 100644
--- a/src/mame/drivers/poly.cpp
+++ b/src/mame/drivers/poly.cpp
@@ -248,22 +248,23 @@ static void poly_floppies(device_slot_interface &device)
}
-MACHINE_CONFIG_START(poly_state::poly)
+void poly_state::poly(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MC6809, 12.0576_MHz_XTAL / 3)
- MCFG_DEVICE_PROGRAM_MAP(poly_mem)
+ MC6809(config, m_maincpu, 12.0576_MHz_XTAL / 3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &poly_state::poly_mem);
ADDRESS_MAP_BANK(config, "bankdev").set_map(&poly_state::poly_bank).set_options(ENDIANNESS_LITTLE, 8, 17, 0x10000);
INPUT_MERGER_ANY_HIGH(config, "irqs").output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_SIZE(40 * 12, 24 * 20)
- MCFG_SCREEN_VISIBLE_AREA(0, 40 * 12 - 1, 0, 24 * 20 - 1)
- MCFG_SCREEN_UPDATE_DRIVER(poly_state, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
+ screen.set_size(40 * 12, 24 * 20);
+ screen.set_visarea(0, 40 * 12 - 1, 0, 24 * 20 - 1);
+ screen.set_screen_update(FUNC(poly_state::screen_update));
SAA5050(config, m_trom[0], 12.0576_MHz_XTAL / 2);
m_trom[0]->d_cb().set(FUNC(poly_state::videoram_1_r));
@@ -275,8 +276,7 @@ MACHINE_CONFIG_START(poly_state::poly)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50);
/* internal ram */
RAM(config, m_ram).set_default_size("128K").set_extra_options("64K");
@@ -342,7 +342,7 @@ MACHINE_CONFIG_START(poly_state::poly)
/* software lists */
SOFTWARE_LIST(config, "flop_list").set_original("poly_flop").set_filter("POLY1");
-MACHINE_CONFIG_END
+}
void poly_state::poly2(machine_config &config)
diff --git a/src/mame/drivers/poly88.cpp b/src/mame/drivers/poly88.cpp
index d082c962649..60ea6f60a35 100644
--- a/src/mame/drivers/poly88.cpp
+++ b/src/mame/drivers/poly88.cpp
@@ -197,20 +197,20 @@ GFXDECODE_END
MACHINE_CONFIG_START(poly88_state::poly88)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8080A, XTAL(16'588'800) / 9) // uses 8224 clock generator
- MCFG_DEVICE_PROGRAM_MAP(poly88_mem)
- MCFG_DEVICE_IO_MAP(poly88_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", poly88_state, poly88_interrupt)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(poly88_state,poly88_irq_callback)
+ I8080A(config, m_maincpu, XTAL(16'588'800) / 9); // uses 8224 clock generator
+ m_maincpu->set_addrmap(AS_PROGRAM, &poly88_state::poly88_mem);
+ m_maincpu->set_addrmap(AS_IO, &poly88_state::poly88_io);
+ m_maincpu->set_vblank_int("screen", FUNC(poly88_state::poly88_interrupt));
+ m_maincpu->set_irq_acknowledge_callback(FUNC(poly88_state::poly88_irq_callback));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(64*10, 16*15)
- MCFG_SCREEN_VISIBLE_AREA(0, 64*10-1, 0, 16*15-1)
- MCFG_SCREEN_UPDATE_DRIVER(poly88_state, screen_update_poly88)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(64*10, 16*15);
+ screen.set_visarea(0, 64*10-1, 0, 16*15-1);
+ screen.set_screen_update(FUNC(poly88_state::screen_update_poly88));
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_poly88);
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -234,12 +234,12 @@ MACHINE_CONFIG_START(poly88_state::poly88)
MCFG_SNAPSHOT_ADD("snapshot", poly88_state, poly88, "img", attotime::from_seconds(2))
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(poly88_state::poly8813)
+void poly88_state::poly8813(machine_config &config)
+{
poly88(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(poly8813_mem)
- MCFG_DEVICE_IO_MAP(poly8813_io)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &poly88_state::poly8813_mem);
+ m_maincpu->set_addrmap(AS_IO, &poly88_state::poly8813_io);
+}
/* ROM definition */
ROM_START( poly88 )
diff --git a/src/mame/drivers/polyplay.cpp b/src/mame/drivers/polyplay.cpp
index 276dec717b0..e1c572457b9 100644
--- a/src/mame/drivers/polyplay.cpp
+++ b/src/mame/drivers/polyplay.cpp
@@ -276,7 +276,8 @@ GFXDECODE_END
/* the machine driver */
-MACHINE_CONFIG_START(polyplay_state::polyplay_zre)
+void polyplay_state::polyplay_zre(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, POLYPLAY_MAIN_CLOCK / 4); /* UB880D */
m_maincpu->set_daisy_config(daisy_chain_zre);
@@ -299,12 +300,12 @@ MACHINE_CONFIG_START(polyplay_state::polyplay_zre)
m_z80pio->out_pb_callback().set(FUNC(polyplay_state::pio_portb_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(polyplay_state, screen_update_polyplay)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(polyplay_state::screen_update_polyplay));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_polyplay);
PALETTE(config, m_palette, FUNC(polyplay_state::polyplay_palette), 10);
@@ -313,7 +314,7 @@ MACHINE_CONFIG_START(polyplay_state::polyplay_zre)
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker1).add_route(ALL_OUTPUTS, "mono", 0.5);
SPEAKER_SOUND(config, m_speaker2).add_route(ALL_OUTPUTS, "mono", 0.5);
-MACHINE_CONFIG_END
+}
void polyplay_state::polyplay_zrepp(machine_config &config)
{
diff --git a/src/mame/drivers/poolshrk.cpp b/src/mame/drivers/poolshrk.cpp
index 35efc9757e1..106d142f315 100644
--- a/src/mame/drivers/poolshrk.cpp
+++ b/src/mame/drivers/poolshrk.cpp
@@ -216,22 +216,22 @@ void poolshrk_state::poolshrk_palette(palette_device &palette) const
}
-MACHINE_CONFIG_START(poolshrk_state::poolshrk)
-
+void poolshrk_state::poolshrk(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6800, 11055000 / 8) /* ? */
- MCFG_DEVICE_PROGRAM_MAP(poolshrk_cpu_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", poolshrk_state, irq0_line_assert)
+ M6800(config, m_maincpu, 11055000 / 8); /* ? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &poolshrk_state::poolshrk_cpu_map);
+ m_maincpu->set_vblank_int("screen", FUNC(poolshrk_state::irq0_line_assert));
WATCHDOG_TIMER(config, m_watchdog);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(1, 255, 24, 255)
- MCFG_SCREEN_UPDATE_DRIVER(poolshrk_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_size(256, 256);
+ screen.set_visarea(1, 255, 24, 255);
+ screen.set_screen_update(FUNC(poolshrk_state::screen_update));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_poolshrk);
PALETTE(config, m_palette, FUNC(poolshrk_state::poolshrk_palette), 4);
@@ -239,9 +239,8 @@ MACHINE_CONFIG_START(poolshrk_state::poolshrk)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("discrete", DISCRETE, poolshrk_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ DISCRETE(config, m_discrete, poolshrk_discrete).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
ROM_START( poolshrk )
diff --git a/src/mame/drivers/pooyan.cpp b/src/mame/drivers/pooyan.cpp
index 6bc9f9a649c..284134f4ad0 100644
--- a/src/mame/drivers/pooyan.cpp
+++ b/src/mame/drivers/pooyan.cpp
@@ -193,11 +193,11 @@ void pooyan_state::machine_start()
}
-MACHINE_CONFIG_START(pooyan_state::pooyan)
-
+void pooyan_state::pooyan(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/3/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ Z80(config, m_maincpu, MASTER_CLOCK/3/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pooyan_state::main_map);
ls259_device &mainlatch(LS259(config, "mainlatch")); // B2
mainlatch.q_out_cb<0>().set(FUNC(pooyan_state::irq_enable_w));
@@ -211,20 +211,20 @@ MACHINE_CONFIG_START(pooyan_state::pooyan)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pooyan_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pooyan_state, vblank_irq))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(pooyan_state::screen_update));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(pooyan_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pooyan);
PALETTE(config, m_palette, FUNC(pooyan_state::pooyan_palette), 16*16+16*16, 32);
/* sound hardware */
TIMEPLT_AUDIO(config, "timeplt_audio");
-MACHINE_CONFIG_END
+}
/*************************************
diff --git a/src/mame/drivers/popobear.cpp b/src/mame/drivers/popobear.cpp
index 9739224ef84..672c799b83e 100644
--- a/src/mame/drivers/popobear.cpp
+++ b/src/mame/drivers/popobear.cpp
@@ -642,22 +642,22 @@ TIMER_DEVICE_CALLBACK_MEMBER(popobear_state::irq)
m_maincpu->set_input_line(2, ASSERT_LINE);
}
-MACHINE_CONFIG_START(popobear_state::popobear)
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(42'000'000)/4) // XTAL CORRECT, DIVISOR GUESSED
- MCFG_DEVICE_PROGRAM_MAP(popobear_mem)
+void popobear_state::popobear(machine_config &config)
+{
+ M68000(config, m_maincpu, XTAL(42'000'000)/4); // XTAL CORRECT, DIVISOR GUESSED
+ m_maincpu->set_addrmap(AS_PROGRAM, &popobear_state::popobear_mem);
// levels 2,3,5 look interesting
- //MCFG_DEVICE_VBLANK_INT_DRIVER("screen", popobear_state, irq5_line_assert)
- //MCFG_DEVICE_PERIODIC_INT_DRIVER(popobear_state, irq2_line_assert, 120)
+ //->set_vblank_int("screen", popobear_state, irq5_line_assert)
+ //->set_periodic_int(FUNC(popobear_state, irq2_line_assert, 120)
TIMER(config, "scantimer").configure_scanline(FUNC(popobear_state::irq), "screen", 0, 1);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(popobear_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
-
- MCFG_SCREEN_SIZE(128*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 239)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(popobear_state::screen_update));
+ screen.set_palette(m_palette);
+ screen.set_size(128*8, 32*8);
+ screen.set_visarea(0, 479, 0, 239);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 256*2);
@@ -665,12 +665,10 @@ MACHINE_CONFIG_START(popobear_state::popobear)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_popobear);
- MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(42'000'000)/16) // XTAL CORRECT, DIVISOR GUESSED
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ YM2413(config, "ymsnd", XTAL(42'000'000)/16).add_route(ALL_OUTPUTS, "mono", 1.0); // XTAL CORRECT, DIVISOR GUESSED
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(42'000'000)/32, okim6295_device::PIN7_LOW) // XTAL CORRECT, DIVISOR GUESSED
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", XTAL(42'000'000)/32, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0); // XTAL CORRECT, DIVISOR GUESSED
+}
ROM_START( popobear )
diff --git a/src/mame/drivers/popper.cpp b/src/mame/drivers/popper.cpp
index 6c17179780a..93bd11f34ab 100644
--- a/src/mame/drivers/popper.cpp
+++ b/src/mame/drivers/popper.cpp
@@ -534,20 +534,21 @@ void popper_state::machine_reset()
// MACHINE DEFINTIONS
//**************************************************************************
-MACHINE_CONFIG_START(popper_state::popper)
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'432'000)/3/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+void popper_state::popper(machine_config &config)
+{
+ Z80(config, m_maincpu, XTAL(18'432'000)/3/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &popper_state::main_map);
- MCFG_DEVICE_ADD("subcpu", Z80, XTAL(18'432'000)/3/2)
- MCFG_DEVICE_PROGRAM_MAP(sub_map)
+ Z80(config, m_subcpu, XTAL(18'432'000)/3/2);
+ m_subcpu->set_addrmap(AS_PROGRAM, &popper_state::sub_map);
config.m_perfect_cpu_quantum = subtag("maincpu");
// video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(18'432'000)/3, 384, 48, 328, 264, 16, 240)
- MCFG_SCREEN_UPDATE_DRIVER(popper_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(XTAL(18'432'000)/3, 384, 48, 328, 264, 16, 240);
+ m_screen->set_screen_update(FUNC(popper_state::screen_update));
+ m_screen->set_palette("palette");
GFXDECODE(config, m_gfxdecode, "palette", gfx_popper);
@@ -559,7 +560,7 @@ MACHINE_CONFIG_START(popper_state::popper)
AY8910(config, m_ay[0], XTAL(18'432'000)/3/2/2).add_route(ALL_OUTPUTS, "mono", 0.25);
AY8910(config, m_ay[1], XTAL(18'432'000)/3/2/2).add_route(ALL_OUTPUTS, "mono", 0.25);
-MACHINE_CONFIG_END
+}
//**************************************************************************
diff --git a/src/mame/drivers/portrait.cpp b/src/mame/drivers/portrait.cpp
index 385f5720e95..5f0ea95b14e 100644
--- a/src/mame/drivers/portrait.cpp
+++ b/src/mame/drivers/portrait.cpp
@@ -254,23 +254,24 @@ static GFXDECODE_START( gfx_portrait )
GFXDECODE_END
-MACHINE_CONFIG_START(portrait_state::portrait)
- MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz ? */
- MCFG_DEVICE_PROGRAM_MAP(portrait_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", portrait_state, irq0_line_hold)
+void portrait_state::portrait(machine_config &config)
+{
+ Z80(config, m_maincpu, 4000000); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &portrait_state::portrait_map);
+ m_maincpu->set_vblank_int("screen", FUNC(portrait_state::irq0_line_hold));
- MCFG_DEVICE_ADD("audiocpu", I8039, 3120000) /* ? */
- MCFG_DEVICE_PROGRAM_MAP(portrait_sound_map)
+ i8039_device &audiocpu(I8039(config, "audiocpu", 3120000)); /* ? */
+ audiocpu.set_addrmap(AS_PROGRAM, &portrait_state::portrait_sound_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 0*8, 40*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(portrait_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 54*8-1, 0*8, 40*8-1);
+ screen.set_screen_update(FUNC(portrait_state::screen_update));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_portrait);
PALETTE(config, m_palette, FUNC(portrait_state::portrait_palette), 0x800, 0x40);
@@ -281,7 +282,7 @@ MACHINE_CONFIG_START(portrait_state::portrait)
GENERIC_LATCH_8(config, "soundlatch");
TMS5200(config, m_tms, 640000).add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
ROM_START( portrait )
diff --git a/src/mame/drivers/potgoldu.cpp b/src/mame/drivers/potgoldu.cpp
index f6e19d70af8..3eb610b779f 100644
--- a/src/mame/drivers/potgoldu.cpp
+++ b/src/mame/drivers/potgoldu.cpp
@@ -78,8 +78,8 @@ static INPUT_PORTS_START( potgold )
INPUT_PORTS_END
-MACHINE_CONFIG_START(potgold_state::potgold)
-
+void potgold_state::potgold(machine_config &config)
+{
/* basic machine hardware */
TMS34010(config, m_maincpu, XTAL(40'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &potgold_state::potgold_map);
@@ -88,13 +88,13 @@ MACHINE_CONFIG_START(potgold_state::potgold)
m_maincpu->set_pixels_per_clock(1);
m_maincpu->set_scanline_rgb32_callback(FUNC(potgold_state::scanline_update));
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200)
- MCFG_SCREEN_UPDATE_DEVICE("maincpu", tms34010_device, tms340x0_rgb32)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200);
+ screen.set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_rgb32));
/* sound hardware */
/* YM2413 */
-MACHINE_CONFIG_END
+}
ROM_START( potgoldu )
ROM_REGION16_LE( 0x400000, "user1", 0 ) /* 34010 code */
diff --git a/src/mame/drivers/powerbal.cpp b/src/mame/drivers/powerbal.cpp
index 09cca74a673..d5ae925c83e 100644
--- a/src/mame/drivers/powerbal.cpp
+++ b/src/mame/drivers/powerbal.cpp
@@ -626,24 +626,24 @@ MACHINE_RESET_MEMBER(powerbal_state,powerbal)
configure_oki_banks();
}
-MACHINE_CONFIG_START(powerbal_state::powerbal)
-
+void powerbal_state::powerbal(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */
- MCFG_DEVICE_PROGRAM_MAP(powerbal_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", powerbal_state, irq2_line_hold)
+ M68000(config, m_maincpu, 12000000); /* 12 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &powerbal_state::powerbal_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(powerbal_state::irq2_line_hold));
MCFG_MACHINE_START_OVERRIDE(powerbal_state,powerbal)
MCFG_MACHINE_RESET_OVERRIDE(powerbal_state,powerbal)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(61)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(128*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(powerbal_state, screen_update_powerbal)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(61);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(128*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 0*8, 30*8-1);
+ screen.set_screen_update(FUNC(powerbal_state::screen_update_powerbal));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_powerbal);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 512);
@@ -653,17 +653,17 @@ MACHINE_CONFIG_START(powerbal_state::powerbal)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(powerbal_state::magicstk)
+ OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH);
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &powerbal_state::oki_map);
+}
+void powerbal_state::magicstk(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */
- MCFG_DEVICE_PROGRAM_MAP(magicstk_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", powerbal_state, irq2_line_hold)
+ M68000(config, m_maincpu, 12000000); /* 12 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &powerbal_state::magicstk_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(powerbal_state::irq2_line_hold));
EEPROM_93C46_16BIT(config, "eeprom").default_value(0);
@@ -671,13 +671,13 @@ MACHINE_CONFIG_START(powerbal_state::magicstk)
MCFG_MACHINE_RESET_OVERRIDE(powerbal_state,powerbal)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(61)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(128*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(powerbal_state, screen_update_powerbal)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(61);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(128*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 0*8, 30*8-1);
+ screen.set_screen_update(FUNC(powerbal_state::screen_update_powerbal));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_powerbal);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 512);
@@ -687,25 +687,23 @@ MACHINE_CONFIG_START(powerbal_state::magicstk)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(powerbal_state::atombjt)
+ OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH);
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &powerbal_state::oki_map);
+}
+void powerbal_state::atombjt(machine_config &config)
+{
powerbal(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(atombjt_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", powerbal_state, irq6_line_hold)
+ m_maincpu->set_addrmap(AS_PROGRAM, &powerbal_state::atombjt_map);
+ m_maincpu->set_vblank_int("screen", FUNC(powerbal_state::irq6_line_hold));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_SIZE(512, 256) \
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) \
+ subdevice<screen_device>("screen")->set_size(512, 256);
+ subdevice<screen_device>("screen")->set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
MCFG_VIDEO_START_OVERRIDE(powerbal_state,atombjt)
-MACHINE_CONFIG_END
+}
/*
Power Balls
diff --git a/src/mame/drivers/powerstack.cpp b/src/mame/drivers/powerstack.cpp
index 8f25734b9c3..d5444770d65 100644
--- a/src/mame/drivers/powerstack.cpp
+++ b/src/mame/drivers/powerstack.cpp
@@ -27,10 +27,11 @@ private:
static INPUT_PORTS_START( powerstack )
INPUT_PORTS_END
-MACHINE_CONFIG_START(powerstack_state::powerstack)
-// MCFG_DEVICE_ADD("maincpu", PPC604, 300'000'000) // PPC604E @ 300MHz
-// MCFG_DEVICE_PROGRAM_MAP(mem_map)
-MACHINE_CONFIG_END
+void powerstack_state::powerstack(machine_config &config)
+{
+// ppc604_device &maincpu(PPC604(config, "maincpu", 300'000'000)); // PPC604E @ 300MHz
+// maincpu.set_addrmap(AS_PROGRAM, &powerstack_state::mem_map);
+}
ROM_START( powerstk )
ROM_REGION( 0x80000, "roms", 0 )
diff --git a/src/mame/drivers/pp01.cpp b/src/mame/drivers/pp01.cpp
index 22386146fac..21f0d21d743 100644
--- a/src/mame/drivers/pp01.cpp
+++ b/src/mame/drivers/pp01.cpp
@@ -199,20 +199,21 @@ static INPUT_PORTS_START( pp01 )
INPUT_PORTS_END
/* Machine driver */
-MACHINE_CONFIG_START(pp01_state::pp01)
+void pp01_state::pp01(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8080, 2000000)
- MCFG_DEVICE_PROGRAM_MAP(pp01_mem)
- MCFG_DEVICE_IO_MAP(pp01_io)
+ I8080(config, m_maincpu, 2000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pp01_state::pp01_mem);
+ m_maincpu->set_addrmap(AS_IO, &pp01_state::pp01_io);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_DRIVER(pp01_state, screen_update_pp01)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 256-1, 0, 256-1);
+ screen.set_screen_update(FUNC(pp01_state::screen_update_pp01));
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pp01_state::pp01_palette), 8);
@@ -222,7 +223,7 @@ MACHINE_CONFIG_START(pp01_state::pp01)
//WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
/* Devices */
- MCFG_DEVICE_ADD("uart", I8251, 0)
+ I8251(config, "uart", 0);
// when rts and dtr are both high, the uart is being used for cassette operations
PIT8253(config, m_pit, 0);
@@ -243,7 +244,7 @@ MACHINE_CONFIG_START(pp01_state::pp01)
/* internal ram */
RAM(config, RAM_TAG).set_default_size("64K").set_default_value(0x00);
-MACHINE_CONFIG_END
+}
/* ROM definition */
diff --git a/src/mame/drivers/ppmast93.cpp b/src/mame/drivers/ppmast93.cpp
index 8e4a1a95396..5294c66c52f 100644
--- a/src/mame/drivers/ppmast93.cpp
+++ b/src/mame/drivers/ppmast93.cpp
@@ -373,26 +373,27 @@ uint32_t ppmast93_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
return 0;
}
-MACHINE_CONFIG_START(ppmast93_state::ppmast93)
+void ppmast93_state::ppmast93(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,5000000) /* 5 MHz */
- MCFG_DEVICE_PROGRAM_MAP(ppmast93_cpu1_map)
- MCFG_DEVICE_IO_MAP(ppmast93_cpu1_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", ppmast93_state, irq0_line_hold)
+ Z80(config, m_maincpu, 5000000); /* 5 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &ppmast93_state::ppmast93_cpu1_map);
+ m_maincpu->set_addrmap(AS_IO, &ppmast93_state::ppmast93_cpu1_io);
+ m_maincpu->set_vblank_int("screen", FUNC(ppmast93_state::irq0_line_hold));
- MCFG_DEVICE_ADD("sub", Z80,5000000) /* 5 MHz */
- MCFG_DEVICE_PROGRAM_MAP(ppmast93_cpu2_map)
- MCFG_DEVICE_IO_MAP(ppmast93_cpu2_io)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(ppmast93_state, irq0_line_hold, 8000)
+ z80_device &sub(Z80(config, "sub", 5000000)); /* 5 MHz */
+ sub.set_addrmap(AS_PROGRAM, &ppmast93_state::ppmast93_cpu2_map);
+ sub.set_addrmap(AS_IO, &ppmast93_state::ppmast93_cpu2_io);
+ sub.set_periodic_int(FUNC(ppmast93_state::irq0_line_hold), attotime::from_hz(8000));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(55)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_DRIVER(ppmast93_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(55);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 256-1, 0, 256-1);
+ screen.set_screen_update(FUNC(ppmast93_state::screen_update));
+ screen.set_palette("palette");
GFXDECODE(config, m_gfxdecode, "palette", gfx_ppmast93);
@@ -403,14 +404,13 @@ MACHINE_CONFIG_START(ppmast93_state::ppmast93)
GENERIC_LATCH_8(config, "soundlatch");
- MCFG_DEVICE_ADD("ymsnd", YM2413, 5000000/2)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
+ YM2413(config, "ymsnd", 5000000/2).add_route(ALL_OUTPUTS, "speaker", 1.0);
DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.3); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
ROM_START( ppmast93 )
ROM_REGION( 0x20000, "maincpu", 0 )
diff --git a/src/mame/drivers/prestige.cpp b/src/mame/drivers/prestige.cpp
index de06047e6b3..eb89d393fc1 100644
--- a/src/mame/drivers/prestige.cpp
+++ b/src/mame/drivers/prestige.cpp
@@ -743,23 +743,24 @@ TIMER_DEVICE_CALLBACK_MEMBER(prestige_state::irq_timer)
m_maincpu->set_input_line(0, ASSERT_LINE);
}
-MACHINE_CONFIG_START(prestige_state::prestige_base)
+void prestige_state::prestige_base(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(8'000'000)) // Z84C008
- MCFG_DEVICE_PROGRAM_MAP(prestige_mem)
- MCFG_DEVICE_IO_MAP(prestige_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(prestige_state,prestige_int_ack)
+ Z80(config, m_maincpu, XTAL(8'000'000)); // Z84C008
+ m_maincpu->set_addrmap(AS_PROGRAM, &prestige_state::prestige_mem);
+ m_maincpu->set_addrmap(AS_IO, &prestige_state::prestige_io);
+ m_maincpu->set_irq_acknowledge_callback(FUNC(prestige_state::prestige_int_ack));
TIMER(config, "irq_timer").configure_periodic(FUNC(prestige_state::irq_timer), attotime::from_hz(200));
/* video hardware */
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(prestige_state, screen_update_1bpp)
- MCFG_SCREEN_SIZE( 240, 100 )
- MCFG_SCREEN_VISIBLE_AREA( 0, 240-1, 0, 100-1 )
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(prestige_state::screen_update_1bpp));
+ screen.set_size(240, 100);
+ screen.set_visarea(0, 240-1, 0, 100-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(prestige_state::prestige_palette), 2);
@@ -768,32 +769,32 @@ MACHINE_CONFIG_START(prestige_state::prestige_base)
/* internal ram */
RAM(config, RAM_TAG).set_default_size("32K").set_extra_options("64K");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(prestige_state::glcolor)
+void prestige_state::glcolor(machine_config &config)
+{
prestige_base(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(glcolor_io)
+ m_maincpu->set_addrmap(AS_IO, &prestige_state::glcolor_io);
/* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(prestige_state, screen_update_2bpp)
- MCFG_SCREEN_SIZE( 160, 80 )
- MCFG_SCREEN_VISIBLE_AREA( 0, 160-1, 0, 80-1 )
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_screen_update(FUNC(prestige_state::screen_update_2bpp));
+ screen.set_size(160, 80);
+ screen.set_visarea(0, 160-1, 0, 80-1);
subdevice<palette_device>("palette")->set_entries(4).set_init(FUNC(prestige_state::glcolor_palette));
SOFTWARE_LIST(config, "cart_list").set_original("glcolor");
SOFTWARE_LIST(config, "snotec_cart").set_compatible("snotec");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(prestige_state::glmcolor)
+void prestige_state::glmcolor(machine_config &config)
+{
glcolor(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(prestige_io)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &prestige_state::prestige_io);
+}
void prestige_state::snotec(machine_config &config)
{
diff --git a/src/mame/drivers/primo.cpp b/src/mame/drivers/primo.cpp
index 5fc7a9b154a..01d473632fe 100644
--- a/src/mame/drivers/primo.cpp
+++ b/src/mame/drivers/primo.cpp
@@ -248,19 +248,19 @@ static const struct CassetteOptions primo_cassette_options = {
MACHINE_CONFIG_START(primo_state::primoa32)
/* basic machine hardware */
- MCFG_DEVICE_ADD( "maincpu", Z80, 2500000 )
- MCFG_DEVICE_PROGRAM_MAP( primo32_mem)
- MCFG_DEVICE_IO_MAP( primoa_port)
+ Z80(config, m_maincpu, 2500000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo32_mem);
+ m_maincpu->set_addrmap(AS_IO, &primo_state::primoa_port);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE( 50 )
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE( 256, 192 )
- MCFG_SCREEN_VISIBLE_AREA( 0, 256-1, 0, 192-1 )
- MCFG_SCREEN_UPDATE_DRIVER(primo_state, screen_update_primo)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, primo_state, vblank_irq))
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(50);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(256, 192);
+ m_screen->set_visarea(0, 256-1, 0, 192-1);
+ m_screen->set_screen_update(FUNC(primo_state::screen_update_primo));
+ m_screen->set_palette("palette");
+ m_screen->screen_vblank().set(FUNC(primo_state::vblank_irq));
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -286,49 +286,49 @@ MACHINE_CONFIG_START(primo_state::primoa32)
GENERIC_CARTSLOT(config, m_cart2, generic_plain_slot, nullptr, "bin,rom");
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(primo_state::primoa48)
+void primo_state::primoa48(machine_config &config)
+{
primoa32(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(primo48_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo48_mem);
+}
-MACHINE_CONFIG_START(primo_state::primoa64)
+void primo_state::primoa64(machine_config &config)
+{
primoa32(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(primo64_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo64_mem);
+}
-MACHINE_CONFIG_START(primo_state::primob32)
+void primo_state::primob32(machine_config &config)
+{
primoa32(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(primob_port)
+ m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port);
MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(primo_state::primob48)
+void primo_state::primob48(machine_config &config)
+{
primoa48(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(primob_port)
+ m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port);
MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(primo_state::primob64)
+void primo_state::primob64(machine_config &config)
+{
primoa64(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(primob_port)
+ m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port);
MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(primo_state::primoc64)
+void primo_state::primoc64(machine_config &config)
+{
primoa64(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(primob_port)
+ m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port);
MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob)
-MACHINE_CONFIG_END
+}
ROM_START( primoa32 )
ROM_REGION( 0x14000, "maincpu", ROMREGION_ERASEFF )
diff --git a/src/mame/drivers/prof180x.cpp b/src/mame/drivers/prof180x.cpp
index 2c9f533ecd2..3391c782c4c 100644
--- a/src/mame/drivers/prof180x.cpp
+++ b/src/mame/drivers/prof180x.cpp
@@ -238,19 +238,20 @@ void prof180x_state::machine_reset()
}
}
-MACHINE_CONFIG_START(prof180x_state::prof180x)
+void prof180x_state::prof180x(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(HD64180_TAG, Z80, XTAL(9'216'000))
- MCFG_DEVICE_PROGRAM_MAP(prof180x_mem)
- MCFG_DEVICE_IO_MAP(prof180x_io)
+ z80_device &maincpu(Z80(config, HD64180_TAG, XTAL(9'216'000)));
+ maincpu.set_addrmap(AS_PROGRAM, &prof180x_state::prof180x_mem);
+ maincpu.set_addrmap(AS_IO, &prof180x_state::prof180x_io);
/* video hardware */
- MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
- MCFG_SCREEN_UPDATE_DRIVER(prof180x_state, screen_update)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER));
+ screen.set_screen_update(FUNC(prof180x_state::screen_update));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(640, 480);
+ screen.set_visarea(0, 640-1, 0, 480-1);
/* devices */
UPD765A(config, FDC9268_TAG, 8'000'000, false, true);
@@ -271,7 +272,7 @@ MACHINE_CONFIG_START(prof180x_state::prof180x)
/* software lists */
SOFTWARE_LIST(config, "flop_list").set_original("prof180");
-MACHINE_CONFIG_END
+}
/* ROM definition */
diff --git a/src/mame/drivers/prof80.cpp b/src/mame/drivers/prof80.cpp
index 9d2cdef58fe..21426bd4a5e 100644
--- a/src/mame/drivers/prof80.cpp
+++ b/src/mame/drivers/prof80.cpp
@@ -447,7 +447,7 @@ void prof80_state::machine_start()
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( prof80 )
+// machine_config( prof80 )
//-------------------------------------------------
void prof80_state::prof80(machine_config &config)
diff --git a/src/mame/drivers/progolf.cpp b/src/mame/drivers/progolf.cpp
index a3ff28598fa..b40a1b5018e 100644
--- a/src/mame/drivers/progolf.cpp
+++ b/src/mame/drivers/progolf.cpp
@@ -418,13 +418,14 @@ void progolf_state::progolf_palette(palette_device &palette) const
}
}
-MACHINE_CONFIG_START(progolf_state::progolf)
+void progolf_state::progolf(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", DECO_222, 3000000/2) /* guess, 3 Mhz makes the game to behave worse? */
- MCFG_DEVICE_PROGRAM_MAP(main_cpu)
+ DECO_222(config, m_maincpu, 3000000/2); /* guess, 3 Mhz makes the game to behave worse? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &progolf_state::main_cpu);
- MCFG_DEVICE_ADD("audiocpu", M6502, 500000)
- MCFG_DEVICE_PROGRAM_MAP(sound_cpu)
+ M6502(config, m_audiocpu, 500000);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &progolf_state::sound_cpu);
config.m_perfect_cpu_quantum = subtag("maincpu");
@@ -433,13 +434,13 @@ MACHINE_CONFIG_START(progolf_state::progolf)
soundlatch.set_separate_acknowledge(true);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(57)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3072))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(progolf_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(57);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(3072));
+ screen.set_size(256, 256);
+ screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(progolf_state::screen_update));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_progolf);
PALETTE(config, m_palette, FUNC(progolf_state::progolf_palette), 32 * 3);
@@ -455,14 +456,15 @@ MACHINE_CONFIG_START(progolf_state::progolf)
AY8910(config, "ay1", 12000000/8).add_route(ALL_OUTPUTS, "mono", 0.23);
AY8910(config, "ay2", 12000000/8).add_route(ALL_OUTPUTS, "mono", 0.23);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(progolf_state::progolfa)
+void progolf_state::progolfa(machine_config &config)
+{
progolf(config);
- config.device_remove("maincpu"); /* different encrypted cpu to progolf */
- MCFG_DEVICE_ADD("maincpu", DECO_CPU6, 3000000/2) /* guess, 3 Mhz makes the game to behave worse? */
- MCFG_DEVICE_PROGRAM_MAP(main_cpu)
-MACHINE_CONFIG_END
+ /* different encrypted cpu to progolf */
+ DECO_CPU6(config.replace(), m_maincpu, 3000000/2); /* guess, 3 Mhz makes the game to behave worse? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &progolf_state::main_cpu);
+}
ROM_START( progolf )
diff --git a/src/mame/drivers/proteus.cpp b/src/mame/drivers/proteus.cpp
index dc99f66cf9a..fbdd9ecf67c 100644
--- a/src/mame/drivers/proteus.cpp
+++ b/src/mame/drivers/proteus.cpp
@@ -321,14 +321,15 @@ static void proteus_floppies(device_slot_interface &device)
}
-MACHINE_CONFIG_START(proteus_state::proteus)
+void proteus_state::proteus(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MC6809, 4_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(proteus_6809_mem)
+ MC6809(config, m_maincpu, 4_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &proteus_state::proteus_6809_mem);
- MCFG_DEVICE_ADD("z80", Z80, 4_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(proteus_z80_mem)
- MCFG_DEVICE_IO_MAP(proteus_z80_io)
+ Z80(config, m_z80, 4_MHz_XTAL);
+ m_z80->set_addrmap(AS_PROGRAM, &proteus_state::proteus_z80_mem);
+ m_z80->set_addrmap(AS_IO, &proteus_state::proteus_z80_io);
INPUT_MERGER_ANY_HIGH(config, m_irqs);
m_irqs->output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE);
@@ -413,7 +414,7 @@ MACHINE_CONFIG_START(proteus_state::proteus)
/* software lists */
SOFTWARE_LIST(config, "flop_list").set_original("poly_flop").set_filter("PROTEUS");
-MACHINE_CONFIG_END
+}
ROM_START(proteus)
diff --git a/src/mame/drivers/proteus3.cpp b/src/mame/drivers/proteus3.cpp
index 5ffeabee34a..c18892408bf 100644
--- a/src/mame/drivers/proteus3.cpp
+++ b/src/mame/drivers/proteus3.cpp
@@ -380,19 +380,20 @@ void proteus3_state::machine_reset()
Machine Drivers
******************************************************************************/
-MACHINE_CONFIG_START(proteus3_state::proteus3)
+void proteus3_state::proteus3(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6800, XTAL(3'579'545)) /* Divided by 4 internally */
- MCFG_DEVICE_PROGRAM_MAP(proteus3_mem)
+ M6800(config, m_maincpu, XTAL(3'579'545)); /* Divided by 4 internally */
+ m_maincpu->set_addrmap(AS_PROGRAM, &proteus3_state::proteus3_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(200))
- MCFG_SCREEN_SIZE(64*8, 16*12)
- MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*12-1)
- MCFG_SCREEN_UPDATE_DRIVER(proteus3_state, screen_update_proteus3)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(200));
+ screen.set_size(64*8, 16*12);
+ screen.set_visarea(0, 64*8-1, 0, 16*12-1);
+ screen.set_screen_update(FUNC(proteus3_state::screen_update_proteus3));
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_proteus3);
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -442,7 +443,7 @@ MACHINE_CONFIG_START(proteus3_state::proteus3)
m_brg->out_f<13>().set(FUNC(proteus3_state::write_f13_clock));
m_brg->out_f<14>().set(FUNC(proteus3_state::write_f14_clock));
m_brg->out_f<15>().set(FUNC(proteus3_state::write_f15_clock));
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/pse.cpp b/src/mame/drivers/pse.cpp
index c6a1511ea3a..7dfb6a595b2 100644
--- a/src/mame/drivers/pse.cpp
+++ b/src/mame/drivers/pse.cpp
@@ -99,11 +99,11 @@ void pse_state::video_start()
{
}
-MACHINE_CONFIG_START(pse_state::pse)
-
+void pse_state::pse(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK)
- MCFG_NETLIST_SETUP(pse)
+ NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK);
+ m_maincpu->set_constructor(netlist_pse);
/* video hardware */
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
@@ -113,7 +113,7 @@ MACHINE_CONFIG_START(pse_state::pse)
m_video->set_vert_params(V_TOTAL-22,V_TOTAL-19,V_TOTAL-12,V_TOTAL);
m_video->set_fieldcount(1);
m_video->set_threshold(0.30);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/psion.cpp b/src/mame/drivers/psion.cpp
index c6316f16a6f..ae92011d2a4 100644
--- a/src/mame/drivers/psion.cpp
+++ b/src/mame/drivers/psion.cpp
@@ -569,18 +569,19 @@ static GFXDECODE_START( gfx_psion )
GFXDECODE_END
/* basic configuration for 2 lines display */
-MACHINE_CONFIG_START(psion_state::psion_2lines)
+void psion_state::psion_2lines(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", HD63701, 980000) // should be HD6303 at 0.98MHz
+ HD63701(config, m_maincpu, 980000); // should be HD6303 at 0.98MHz
/* video hardware */
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update)
- MCFG_SCREEN_SIZE(6*16, 9*2)
- MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 9*2-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update("hd44780", FUNC(hd44780_device::screen_update));
+ screen.set_size(6*16, 9*2);
+ screen.set_visarea(0, 6*16-1, 0, 9*2-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(psion_state::psion_palette), 2);
GFXDECODE(config, "gfxdecode", "palette", gfx_psion);
@@ -603,76 +604,75 @@ MACHINE_CONFIG_START(psion_state::psion_2lines)
/* Software lists */
SOFTWARE_LIST(config, "pack_list").set_original("psion2");
-MACHINE_CONFIG_END
+}
/* basic configuration for 4 lines display */
-MACHINE_CONFIG_START(psion_state::psion_4lines)
+void psion_state::psion_4lines(machine_config &config)
+{
psion_2lines(config);
/* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_SIZE(6*20, 9*4)
- MCFG_SCREEN_VISIBLE_AREA(0, 6*20-1, 0, 9*4-1)
+ subdevice<screen_device>("screen")->set_size(6*20, 9*4);
+ subdevice<screen_device>("screen")->set_visarea(0, 6*20-1, 0, 9*4-1);
m_lcdc->set_lcd_size(4, 20);
m_lcdc->set_pixel_update_cb(FUNC(psion_state::lz_pixel_update), this);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(psion1_state::psion1)
+void psion1_state::psion1(machine_config &config)
+{
psion_2lines(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(psion1_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &psion1_state::psion1_mem);
subdevice<timer_device>("nmi_timer")->set_start_delay(attotime::from_seconds(1));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_SIZE(6*16, 1*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 8*1-1)
+ subdevice<screen_device>("screen")->set_size(6*16, 1*8);
+ subdevice<screen_device>("screen")->set_visarea(0, 6*16-1, 0, 8*1-1);
m_lcdc->set_lcd_size(1, 16);
m_lcdc->set_pixel_update_cb(FUNC(psion1_state::psion1_pixel_update), this);
/* Software lists */
SOFTWARE_LIST(config.replace(), "pack_list").set_original("psion1");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(psion_state::psioncm)
+void psion_state::psioncm(machine_config &config)
+{
psion_2lines(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(psioncm_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psioncm_mem);
+}
-MACHINE_CONFIG_START(psion_state::psionla)
+void psion_state::psionla(machine_config &config)
+{
psion_2lines(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(psionla_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionla_mem);
+}
-MACHINE_CONFIG_START(psion_state::psionlam)
+void psion_state::psionlam(machine_config &config)
+{
psion_2lines(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(psionlam_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionlam_mem);
+}
-MACHINE_CONFIG_START(psion_state::psionp350)
+void psion_state::psionp350(machine_config &config)
+{
psion_2lines(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(psionp350_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionp350_mem);
NVRAM(config, "nvram3", nvram_device::DEFAULT_ALL_0); // paged RAM
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(psion_state::psionlz)
+void psion_state::psionlz(machine_config &config)
+{
psion_4lines(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(psionlz_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionlz_mem);
NVRAM(config, "nvram3", nvram_device::DEFAULT_ALL_0); // paged RAM
-MACHINE_CONFIG_END
+}
/* ROM definition */
diff --git a/src/mame/drivers/pturn.cpp b/src/mame/drivers/pturn.cpp
index 4bec5d24a90..14d50a76a92 100644
--- a/src/mame/drivers/pturn.cpp
+++ b/src/mame/drivers/pturn.cpp
@@ -517,14 +517,15 @@ void pturn_state::machine_reset()
m_nmi_sub = false;
}
-MACHINE_CONFIG_START(pturn_state::pturn)
- MCFG_DEVICE_ADD("maincpu", Z80, 12000000/3)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pturn_state, main_intgen)
+void pturn_state::pturn(machine_config &config)
+{
+ Z80(config, m_maincpu, 12000000/3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pturn_state::main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(pturn_state::main_intgen));
- MCFG_DEVICE_ADD("audiocpu", Z80, 12000000/3)
- MCFG_DEVICE_PROGRAM_MAP(sub_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(pturn_state, sub_intgen, 3*60)
+ Z80(config, m_audiocpu, 12000000/3);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &pturn_state::sub_map);
+ m_audiocpu->set_periodic_int(FUNC(pturn_state::sub_intgen), attotime::from_hz(3*60));
ls259_device &mainlatch(LS259(config, "mainlatch"));
mainlatch.q_out_cb<0>().set(FUNC(pturn_state::flip_w));
@@ -535,13 +536,13 @@ MACHINE_CONFIG_START(pturn_state::pturn)
mainlatch.q_out_cb<5>().set(FUNC(pturn_state::fgbank_w));
mainlatch.q_out_cb<6>().set_nop(); // toggles frequently during gameplay
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pturn_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(pturn_state::screen_update));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 0x100);
@@ -555,7 +556,7 @@ MACHINE_CONFIG_START(pturn_state::pturn)
AY8910(config, "ay1", 2000000).add_route(ALL_OUTPUTS, "mono", 0.25);
AY8910(config, "ay2", 2000000).add_route(ALL_OUTPUTS, "mono", 0.25);
-MACHINE_CONFIG_END
+}
ROM_START( pturn )
diff --git a/src/mame/drivers/puckpkmn.cpp b/src/mame/drivers/puckpkmn.cpp
index 52680f21141..23a81639696 100644
--- a/src/mame/drivers/puckpkmn.cpp
+++ b/src/mame/drivers/puckpkmn.cpp
@@ -278,36 +278,34 @@ void md_boot_state::puckpkmna_map(address_map &map)
map(0x70001c, 0x70001d).r(FUNC(md_boot_state::puckpkmna_70001c_r));
}
-MACHINE_CONFIG_START(md_boot_state::puckpkmn)
+void md_boot_state::puckpkmn(machine_config &config)
+{
md_ntsc(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(puckpkmn_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &md_boot_state::puckpkmn_map);
MCFG_MACHINE_START_OVERRIDE(md_boot_state, md_bootleg)
config.device_remove("genesis_snd_z80");
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(4'000'000) / 4, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker",0.25)
-MACHINE_CONFIG_END
+ okim6295_device &oki(OKIM6295(config, "oki", XTAL(4'000'000) / 4, okim6295_device::PIN7_HIGH));
+ oki.add_route(ALL_OUTPUTS, "lspeaker", 0.25);
+ oki.add_route(ALL_OUTPUTS, "rspeaker", 0.25);
+}
-MACHINE_CONFIG_START(md_boot_state::puckpkmna)
+void md_boot_state::puckpkmna(machine_config &config)
+{
puckpkmn(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(puckpkmna_map)
-
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &md_boot_state::puckpkmna_map);
+}
-MACHINE_CONFIG_START(md_boot_state::jzth)
+void md_boot_state::jzth(machine_config &config)
+{
puckpkmn(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(jzth_map)
-
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &md_boot_state::jzth_map);
+}
/* Genie's Hardware (contains no real sega parts) */
diff --git a/src/mame/drivers/punchout.cpp b/src/mame/drivers/punchout.cpp
index aeb98cd8d66..b9faf70cad0 100644
--- a/src/mame/drivers/punchout.cpp
+++ b/src/mame/drivers/punchout.cpp
@@ -622,15 +622,15 @@ MACHINE_RESET_MEMBER(punchout_state, spnchout)
}
-MACHINE_CONFIG_START(punchout_state::punchout)
-
+void punchout_state::punchout(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(8'000'000)/2)
- MCFG_DEVICE_PROGRAM_MAP(punchout_map)
- MCFG_DEVICE_IO_MAP(punchout_io_map)
+ Z80(config, m_maincpu, XTAL(8'000'000)/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &punchout_state::punchout_map);
+ m_maincpu->set_addrmap(AS_IO, &punchout_state::punchout_io_map);
- MCFG_DEVICE_ADD("audiocpu", N2A03, NTSC_APU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(punchout_sound_map)
+ N2A03(config, m_audiocpu, NTSC_APU_CLOCK);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &punchout_state::punchout_sound_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -659,13 +659,13 @@ MACHINE_CONFIG_START(punchout_state::punchout)
top.screen_vblank().set(FUNC(punchout_state::vblank_irq));
top.screen_vblank().append_inputline(m_audiocpu, INPUT_LINE_NMI);
- MCFG_SCREEN_ADD("bottom", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_punchout_bottom)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &bottom(SCREEN(config, "bottom", SCREEN_TYPE_RASTER));
+ bottom.set_refresh_hz(60);
+ bottom.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ bottom.set_size(32*8, 32*8);
+ bottom.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ bottom.set_screen_update(FUNC(punchout_state::screen_update_punchout_bottom));
+ bottom.set_palette(m_palette);
/* sound hardware */
// FIXME: this makes no sense - "lspeaker" on left and "mono" on right, with nothing routed to "mono"
@@ -675,43 +675,41 @@ MACHINE_CONFIG_START(punchout_state::punchout)
GENERIC_LATCH_8(config, "soundlatch");
GENERIC_LATCH_8(config, "soundlatch2");
- MCFG_DEVICE_ADD("vlm", VLM5030, N2A03_NTSC_XTAL/6)
- MCFG_DEVICE_ADDRESS_MAP(0, punchout_vlm_map)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
-MACHINE_CONFIG_END
+ VLM5030(config, m_vlm, N2A03_NTSC_XTAL/6);
+ m_vlm->set_addrmap(0, &punchout_state::punchout_vlm_map);
+ m_vlm->add_route(ALL_OUTPUTS, "lspeaker", 0.50);
+}
-MACHINE_CONFIG_START(punchout_state::spnchout)
+void punchout_state::spnchout(machine_config &config)
+{
punchout(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(spnchout_io_map)
+ m_maincpu->set_addrmap(AS_IO, &punchout_state::spnchout_io_map);
RP5C01(config, m_rtc, 0); // OSCIN -> Vcc
m_rtc->remove_battery();
RP5H01(config, m_rp5h01, 0);
MCFG_MACHINE_RESET_OVERRIDE(punchout_state, spnchout)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(punchout_state::armwrest)
+void punchout_state::armwrest(machine_config &config)
+{
punchout(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(armwrest_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &punchout_state::armwrest_map);
/* video hardware */
m_gfxdecode->set_info(gfx_armwrest);
MCFG_VIDEO_START_OVERRIDE(punchout_state, armwrest)
- MCFG_SCREEN_MODIFY("top")
- MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_armwrest_top)
- MCFG_SCREEN_MODIFY("bottom")
- MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_armwrest_bottom)
-MACHINE_CONFIG_END
+ subdevice<screen_device>("top")->set_screen_update(FUNC(punchout_state::screen_update_armwrest_top));
+ subdevice<screen_device>("bottom")->set_screen_update(FUNC(punchout_state::screen_update_armwrest_bottom));
+}
diff --git a/src/mame/drivers/pv1000.cpp b/src/mame/drivers/pv1000.cpp
index 7676a9120b0..abc184e8645 100644
--- a/src/mame/drivers/pv1000.cpp
+++ b/src/mame/drivers/pv1000.cpp
@@ -177,12 +177,12 @@ private:
required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
- void pv1000(address_map &map);
+ void pv1000_mem(address_map &map);
void pv1000_io(address_map &map);
};
-void pv1000_state::pv1000(address_map &map)
+void pv1000_state::pv1000_mem(address_map &map)
{
//AM_RANGE(0x0000, 0x7fff) // mapped by the cartslot
map(0xb800, 0xbbff).ram().share("videoram");
@@ -441,11 +441,9 @@ GFXDECODE_END
MACHINE_CONFIG_START(pv1000_state::pv1000)
-
- MCFG_DEVICE_ADD( "maincpu", Z80, 17897725/5 )
- MCFG_DEVICE_PROGRAM_MAP( pv1000 )
- MCFG_DEVICE_IO_MAP( pv1000_io )
-
+ Z80(config, m_maincpu, 17897725/5);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pv1000_state::pv1000_mem);
+ m_maincpu->set_addrmap(AS_IO, &pv1000_state::pv1000_io);
/* D65010G031 - Video & sound chip */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/pv2000.cpp b/src/mame/drivers/pv2000.cpp
index 21824601056..d0a0b8bc410 100644
--- a/src/mame/drivers/pv2000.cpp
+++ b/src/mame/drivers/pv2000.cpp
@@ -387,11 +387,10 @@ DEVICE_IMAGE_LOAD_MEMBER( pv2000_state, pv2000_cart )
/* Machine Drivers */
MACHINE_CONFIG_START(pv2000_state::pv2000)
-
// basic machine hardware
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(7'159'090)/2) // 3.579545 MHz
- MCFG_DEVICE_PROGRAM_MAP(pv2000_map)
- MCFG_DEVICE_IO_MAP(pv2000_io_map)
+ Z80(config, m_maincpu, XTAL(7'159'090)/2); // 3.579545 MHz
+ m_maincpu->set_addrmap(AS_PROGRAM, &pv2000_state::pv2000_map);
+ m_maincpu->set_addrmap(AS_IO, &pv2000_state::pv2000_io_map);
// video hardware
tms9928a_device &vdp(TMS9928A(config, "tms9928a", XTAL(10'738'635)));
@@ -403,8 +402,7 @@ MACHINE_CONFIG_START(pv2000_state::pv2000)
// sound hardware
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("sn76489a", SN76489A, XTAL(7'159'090)/2) /* 3.579545 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
+ SN76489A(config, "sn76489a", XTAL(7'159'090)/2).add_route(ALL_OUTPUTS, "mono", 1.00); /* 3.579545 MHz */
WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "mono", 0.25);
diff --git a/src/mame/drivers/pv9234.cpp b/src/mame/drivers/pv9234.cpp
index a3ff1a54d85..39cb02f1cac 100644
--- a/src/mame/drivers/pv9234.cpp
+++ b/src/mame/drivers/pv9234.cpp
@@ -149,23 +149,23 @@ uint32_t pv9234_state::screen_update_pv9234(screen_device &screen, bitmap_ind16
return 0;
}
-MACHINE_CONFIG_START(pv9234_state::pv9234)
+void pv9234_state::pv9234(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", ARM7, 4915000) //probably a more powerful clone.
- MCFG_DEVICE_PROGRAM_MAP(pv9234_map)
-
+ ARM7(config, m_maincpu, 4915000); //probably a more powerful clone.
+ m_maincpu->set_addrmap(AS_PROGRAM, &pv9234_state::pv9234_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_DRIVER(pv9234_state, screen_update_pv9234)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(640, 480);
+ screen.set_visarea(0, 640-1, 0, 480-1);
+ screen.set_screen_update(FUNC(pv9234_state::screen_update_pv9234));
+ screen.set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME);
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pv9234 )
diff --git a/src/mame/drivers/pwrview.cpp b/src/mame/drivers/pwrview.cpp
index f77c46c2ec5..2c9d76c2c62 100644
--- a/src/mame/drivers/pwrview.cpp
+++ b/src/mame/drivers/pwrview.cpp
@@ -404,15 +404,16 @@ static void pwrview_floppies(device_slot_interface &device)
device.option_add("525dd", FLOPPY_525_DD);
}
-MACHINE_CONFIG_START(pwrview_state::pwrview)
- MCFG_DEVICE_ADD("maincpu", I80186, XTAL(16'000'000))
- MCFG_DEVICE_PROGRAM_MAP(pwrview_map)
- MCFG_DEVICE_OPCODES_MAP(pwrview_fetch_map)
- MCFG_DEVICE_IO_MAP(pwrview_io)
+void pwrview_state::pwrview(machine_config &config)
+{
+ I80186(config, m_maincpu, XTAL(16'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pwrview_state::pwrview_map);
+ m_maincpu->set_addrmap(AS_OPCODES, &pwrview_state::pwrview_fetch_map);
+ m_maincpu->set_addrmap(AS_IO, &pwrview_state::pwrview_io);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(64'000'000)/8, 480, 0, 384, 1040, 0, 960) // clock unknown
- MCFG_SCREEN_UPDATE_DEVICE("crtc", hd6845_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(XTAL(64'000'000)/8, 480, 0, 384, 1040, 0, 960); // clock unknown
+ screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update));
PIT8253(config, m_pit, 0);
m_pit->set_clk<0>(XTAL(16'000'000)/16); // clocks unknown, fix above when found
@@ -435,7 +436,7 @@ MACHINE_CONFIG_START(pwrview_state::pwrview)
crtc.set_update_row_callback(FUNC(pwrview_state::update_row), this);
ADDRESS_MAP_BANK(config, "bios_bank").set_map(&pwrview_state::bios_bank).set_options(ENDIANNESS_LITTLE, 16, 17, 0x8000);
-MACHINE_CONFIG_END
+}
ROM_START(pwrview)
ROM_REGION(0x8000, "bios", 0)
diff --git a/src/mame/drivers/px4.cpp b/src/mame/drivers/px4.cpp
index 8a2e6c879ef..66f62a566cb 100644
--- a/src/mame/drivers/px4.cpp
+++ b/src/mame/drivers/px4.cpp
@@ -1485,19 +1485,20 @@ void px4p_state::px4p_palette(palette_device &palette) const
// MACHINE DRIVERS
//**************************************************************************
-MACHINE_CONFIG_START(px4_state::px4)
+void px4_state::px4(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(7'372'800) / 2) // uPD70008
- MCFG_DEVICE_PROGRAM_MAP(px4_mem)
- MCFG_DEVICE_IO_MAP(px4_io)
+ Z80(config, m_z80, XTAL(7'372'800) / 2); // uPD70008
+ m_z80->set_addrmap(AS_PROGRAM, &px4_state::px4_mem);
+ m_z80->set_addrmap(AS_IO, &px4_state::px4_io);
// video hardware
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(72)
- MCFG_SCREEN_SIZE(240, 64)
- MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 63)
- MCFG_SCREEN_UPDATE_DRIVER(px4_state, screen_update_px4)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(72);
+ screen.set_size(240, 64);
+ screen.set_visarea(0, 239, 0, 63);
+ screen.set_screen_update(FUNC(px4_state::screen_update_px4));
+ screen.set_palette("palette");
config.set_default_layout(layout_px4);
@@ -1541,25 +1542,25 @@ MACHINE_CONFIG_START(px4_state::px4)
m_rs232->cts_handler().set(FUNC(px4_state::rs232_cts_w));
// rom capsules
- MCFG_GENERIC_CARTSLOT_ADD("capsule1", generic_plain_slot, "px4_cart")
- MCFG_GENERIC_CARTSLOT_ADD("capsule2", generic_plain_slot, "px4_cart")
+ GENERIC_CARTSLOT(config, m_caps1, generic_plain_slot, "px4_cart");
+ GENERIC_CARTSLOT(config, m_caps2, generic_plain_slot, "px4_cart");
// software list
SOFTWARE_LIST(config, "cart_list").set_original("px4_cart");
SOFTWARE_LIST(config, "epson_cpm_list").set_original("epson_cpm");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(px4p_state::px4p)
+void px4p_state::px4p(machine_config &config)
+{
px4(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(px4p_io)
+ m_z80->set_addrmap(AS_IO, &px4p_state::px4p_io);
NVRAM(config, "rdnvram", nvram_device::DEFAULT_ALL_0);
subdevice<palette_device>("palette")->set_init(FUNC(px4p_state::px4p_palette));
- MCFG_GENERIC_CARTSLOT_ADD("ramdisk_socket", generic_plain_slot, "px4_cart")
-MACHINE_CONFIG_END
+ GENERIC_CARTSLOT(config, m_rdsocket, generic_plain_slot, "px4_cart");
+}
//**************************************************************************
diff --git a/src/mame/drivers/px8.cpp b/src/mame/drivers/px8.cpp
index 581003b512d..73e4213b248 100644
--- a/src/mame/drivers/px8.cpp
+++ b/src/mame/drivers/px8.cpp
@@ -737,31 +737,32 @@ void px8_state::machine_reset()
MACHINE DRIVERS
***************************************************************************/
-MACHINE_CONFIG_START(px8_state::px8)
+void px8_state::px8(machine_config &config)
+{
/* main cpu (uPD70008) */
- MCFG_DEVICE_ADD(UPD70008_TAG, Z80, XTAL_CR1 / 4) /* 2.45 MHz */
- MCFG_DEVICE_PROGRAM_MAP(px8_mem)
- MCFG_DEVICE_IO_MAP(px8_io)
+ Z80(config, m_maincpu, XTAL_CR1 / 4); /* 2.45 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &px8_state::px8_mem);
+ m_maincpu->set_addrmap(AS_IO, &px8_state::px8_io);
/* slave cpu (HD6303) */
- MCFG_DEVICE_ADD(HD6303_TAG, M6803, XTAL_CR1 / 4) /* 614 kHz */
- MCFG_DEVICE_PROGRAM_MAP(px8_slave_mem)
- MCFG_DEVICE_DISABLE()
+ m6803_cpu_device &slave(M6803(config, HD6303_TAG, XTAL_CR1 / 4)); /* 614 kHz */
+ slave.set_addrmap(AS_PROGRAM, &px8_state::px8_slave_mem);
+ slave.set_disable();
/* sub CPU (uPD7508) */
-// MCFG_DEVICE_ADD(UPD7508_TAG, UPD7508, 200000) /* 200 kHz */
-// MCFG_DEVICE_IO_MAP(px8_sub_io)
-// MCFG_DEVICE_DISABLE()
+// upd7508_device &sub(UPD7508(config, UPD7508_TAG, 200000)); /* 200 kHz */
+// sub.set_addrmap(AS_IO, &px8_state::px8_sub_io);
+// sub.set_disable();
/* video hardware */
config.set_default_layout(layout_px8);
- MCFG_SCREEN_ADD(SCREEN_TAG, LCD)
- MCFG_SCREEN_REFRESH_RATE(72)
- MCFG_SCREEN_UPDATE_DRIVER(px8_state, screen_update)
- MCFG_SCREEN_SIZE(480, 64)
- MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 63)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(72);
+ screen.set_screen_update(FUNC(px8_state::screen_update));
+ screen.set_size(480, 64);
+ screen.set_visarea(0, 479, 0, 63);
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_px8);
PALETTE(config, "palette", FUNC(px8_state::px8_palette), 2);
@@ -771,14 +772,12 @@ MACHINE_CONFIG_START(px8_state::px8)
WAVE(config, "wave", m_cassette).add_route(0, "mono", 0.25);
/* cartridge */
- MCFG_GENERIC_CARTSLOT_ADD("capsule1", generic_plain_slot, "px8_cart")
- MCFG_GENERIC_EXTENSIONS("bin,rom")
+ GENERIC_CARTSLOT(config, "capsule1", generic_plain_slot, "px8_cart", "bin,rom");
- MCFG_GENERIC_CARTSLOT_ADD("capsule2", generic_plain_slot, "px8_cart")
- MCFG_GENERIC_EXTENSIONS("bin,rom")
+ GENERIC_CARTSLOT(config, "capsule2", generic_plain_slot, "px8_cart", "bin,rom");
/* devices */
- MCFG_DEVICE_ADD(I8251_TAG, I8251, 0)
+ I8251(config, I8251_TAG, 0);
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED);
@@ -789,7 +788,7 @@ MACHINE_CONFIG_START(px8_state::px8)
// software
SOFTWARE_LIST(config, "cart_list").set_original("px8_cart");
SOFTWARE_LIST(config, "epson_cpm_list").set_original("epson_cpm");
-MACHINE_CONFIG_END
+}
/***************************************************************************
ROMS
diff --git a/src/mame/drivers/pzletime.cpp b/src/mame/drivers/pzletime.cpp
index 53a3015f514..0366ad0a56d 100644
--- a/src/mame/drivers/pzletime.cpp
+++ b/src/mame/drivers/pzletime.cpp
@@ -334,21 +334,21 @@ void pzletime_state::machine_reset()
m_ticket = 0;
}
-MACHINE_CONFIG_START(pzletime_state::pzletime)
-
+void pzletime_state::pzletime(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",M68000,10000000)
- MCFG_DEVICE_PROGRAM_MAP(pzletime_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pzletime_state, irq4_line_hold)
+ M68000(config, m_maincpu, 10000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pzletime_state::pzletime_map);
+ m_maincpu->set_vblank_int("screen", FUNC(pzletime_state::irq4_line_hold));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pzletime_state, screen_update_pzletime)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ m_screen->set_size(64*8, 32*8);
+ m_screen->set_visarea(0*8, 48*8-1, 0*8, 28*8-1);
+ m_screen->set_screen_update(FUNC(pzletime_state::screen_update_pzletime));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pzletime);
PALETTE(config, m_palette, FUNC(pzletime_state::pzletime_palette));
@@ -360,7 +360,7 @@ MACHINE_CONFIG_START(pzletime_state::pzletime)
SPEAKER(config, "mono").front_center();
OKIM6295(config, m_oki, 937500, okim6295_device::PIN7_HIGH); //freq & pin7 taken from stlforce
m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/ql.cpp b/src/mame/drivers/ql.cpp
index 3449e2c1d4c..d7c00923d23 100644
--- a/src/mame/drivers/ql.cpp
+++ b/src/mame/drivers/ql.cpp
@@ -254,15 +254,15 @@ READ8_MEMBER( ql_state::read )
}
if (m_qimi_enabled)
{
- data = m_qimi->read(space, offset, data);
+ data = m_qimi->read(offset, data);
}
m_cart->romoeh_w(cart_romoeh);
- data = m_cart->read(space, offset & 0x7fff, data);
+ data = m_cart->read(offset & 0x7fff, data);
m_cart->romoeh_w(0);
m_exp->romoeh_w(exp_romoeh);
- data = m_exp->read(space, offset, data);
+ data = m_exp->read(offset, data);
m_exp->romoeh_w(0);
return data;
@@ -309,14 +309,14 @@ WRITE8_MEMBER( ql_state::write )
}
if (m_qimi_enabled)
{
- m_qimi->write(space, offset, data);
+ m_qimi->write(offset, data);
}
m_cart->romoeh_w(0);
- m_cart->write(space, offset & 0x7fff, data);
+ m_cart->write(offset & 0x7fff, data);
m_exp->romoeh_w(0);
- m_exp->write(space, offset, data);
+ m_exp->write(offset, data);
}
@@ -895,13 +895,14 @@ void ql_state::machine_reset()
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( ql )
+// machine_config( ql )
//-------------------------------------------------
-MACHINE_CONFIG_START(ql_state::ql)
+void ql_state::ql(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD(m_maincpu, M68008, X1/2)
- MCFG_DEVICE_PROGRAM_MAP(ql_mem)
+ M68008(config, m_maincpu, X1/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ql_state::ql_mem);
I8749(config, m_ipc, X4);
m_ipc->set_addrmap(AS_IO, &ql_state::ipc_io);
@@ -912,12 +913,12 @@ MACHINE_CONFIG_START(ql_state::ql)
m_ipc->bus_in_cb().set(FUNC(ql_state::ipc_bus_r));
// video hardware
- MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
- MCFG_SCREEN_REFRESH_RATE(50.08)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate
- MCFG_SCREEN_UPDATE_DEVICE(ZX8301_TAG, zx8301_device, screen_update)
- MCFG_SCREEN_SIZE(960, 312)
- MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50.08);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
+ screen.set_screen_update(ZX8301_TAG, FUNC(zx8301_device::screen_update));
+ screen.set_size(960, 312);
+ screen.set_visarea(0, 512-1, 0, 256-1);
// sound hardware
SPEAKER(config, "mono").front_center();
@@ -971,25 +972,26 @@ MACHINE_CONFIG_START(ql_state::ql)
// internal ram
RAM(config, m_ram).set_default_size("128K");
-MACHINE_CONFIG_END
+}
//-------------------------------------------------
-// MACHINE_CONFIG( ql_ntsc )
+// machine_config( ql_ntsc )
//-------------------------------------------------
-MACHINE_CONFIG_START(ql_state::ql_ntsc)
+void ql_state::ql_ntsc(machine_config &config)
+{
ql(config);
// video hardware
- MCFG_SCREEN_MODIFY(SCREEN_TAG)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(960, 262)
- MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
-MACHINE_CONFIG_END
+ screen_device &screen(*subdevice<screen_device>(SCREEN_TAG));
+ screen.set_refresh_hz(60);
+ screen.set_size(960, 262);
+ screen.set_visarea(0, 512-1, 0, 256-1);
+ }
//-------------------------------------------------
-// MACHINE_CONFIG( opd )
+// machine_config( opd )
//-------------------------------------------------
void ql_state::opd(machine_config &config)
@@ -1002,7 +1004,7 @@ void ql_state::opd(machine_config &config)
/*
//-------------------------------------------------
-// MACHINE_CONFIG( megaopd )
+// machine_config( megaopd )
//-------------------------------------------------
void ql_state::megaopd(machine_config &config)
diff --git a/src/mame/drivers/quakeat.cpp b/src/mame/drivers/quakeat.cpp
index e7738bcf74d..5b575462c74 100644
--- a/src/mame/drivers/quakeat.cpp
+++ b/src/mame/drivers/quakeat.cpp
@@ -124,27 +124,27 @@ void quakeat_state::machine_start()
}
/*************************************************************/
-MACHINE_CONFIG_START(quakeat_state::quake)
+void quakeat_state::quake(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", PENTIUM2, 233000000) /* Pentium II, 233MHz */
- MCFG_DEVICE_PROGRAM_MAP(quake_map)
- MCFG_DEVICE_IO_MAP(quake_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb)
+ PENTIUM2(config, m_maincpu, 233000000); /* Pentium II, 233MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &quakeat_state::quake_map);
+ m_maincpu->set_addrmap(AS_IO, &quakeat_state::quake_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb));
pcat_common(config);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(quakeat_state, screen_update_quake)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_PALETTE_ADD("palette", 0x100)
-
-MACHINE_CONFIG_END
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(quakeat_state::screen_update_quake));
+ screen.set_palette("palette");
+
+ PALETTE(config, "palette").set_entries(0x100);
+}
ROM_START(quake)
diff --git a/src/mame/drivers/queen.cpp b/src/mame/drivers/queen.cpp
index ff1e9cf2af0..2d4e875db57 100644
--- a/src/mame/drivers/queen.cpp
+++ b/src/mame/drivers/queen.cpp
@@ -283,10 +283,10 @@ void queen_state::machine_reset()
MACHINE_CONFIG_START(queen_state::queen)
- MCFG_DEVICE_ADD("maincpu", PENTIUM3, 533000000/16) // Celeron or Pentium 3, 533 Mhz
- MCFG_DEVICE_PROGRAM_MAP(queen_map)
- MCFG_DEVICE_IO_MAP(queen_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb)
+ PENTIUM3(config, m_maincpu, 533000000/16); // Celeron or Pentium 3, 533 Mhz
+ m_maincpu->set_addrmap(AS_PROGRAM, &queen_state::queen_map);
+ m_maincpu->set_addrmap(AS_IO, &queen_state::queen_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb));
pcat_common(config);
diff --git a/src/mame/drivers/quizdna.cpp b/src/mame/drivers/quizdna.cpp
index 18ed31d6aae..f4ed0324cc1 100644
--- a/src/mame/drivers/quizdna.cpp
+++ b/src/mame/drivers/quizdna.cpp
@@ -440,25 +440,25 @@ void quizdna_state::machine_start()
}
-MACHINE_CONFIG_START(quizdna_state::quizdna)
-
+void quizdna_state::quizdna(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MCLK/2) /* 8.000 MHz */
- MCFG_DEVICE_PROGRAM_MAP(quizdna_map)
- MCFG_DEVICE_IO_MAP(quizdna_io_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", quizdna_state, irq0_line_hold)
+ Z80(config, m_maincpu, MCLK/2); /* 8.000 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &quizdna_state::quizdna_map);
+ m_maincpu->set_addrmap(AS_IO, &quizdna_state::quizdna_io_map);
+ m_maincpu->set_vblank_int("screen", FUNC(quizdna_state::irq0_line_hold));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(quizdna_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(8*8, 56*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(quizdna_state::screen_update));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_quizdna);
- MCFG_PALETTE_ADD("palette", 2048)
+ PALETTE(config, m_palette).set_entries(2048);
/* sound hardware */
@@ -472,30 +472,27 @@ MACHINE_CONFIG_START(quizdna_state::quizdna)
ymsnd.add_route(2, "mono", 0.10);
ymsnd.add_route(3, "mono", 0.40);
- MCFG_DEVICE_ADD("oki", OKIM6295, (MCLK/1024)*132, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", (MCLK/1024)*132, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.30); // clock frequency & pin 7 not verified
+}
-MACHINE_CONFIG_START(quizdna_state::gakupara)
+void quizdna_state::gakupara(machine_config &config)
+{
quizdna(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(gakupara_io_map)
-
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &quizdna_state::gakupara_io_map);
+}
-MACHINE_CONFIG_START(quizdna_state::gekiretu)
+void quizdna_state::gekiretu(machine_config &config)
+{
quizdna(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(gekiretu_map)
- MCFG_DEVICE_IO_MAP(gekiretu_io_map)
-
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &quizdna_state::gekiretu_map);
+ m_maincpu->set_addrmap(AS_IO, &quizdna_state::gekiretu_io_map);
+}
/****************************************************************************/
diff --git a/src/mame/drivers/quizo.cpp b/src/mame/drivers/quizo.cpp
index 25843af8f95..4ff533680ee 100644
--- a/src/mame/drivers/quizo.cpp
+++ b/src/mame/drivers/quizo.cpp
@@ -217,29 +217,29 @@ static INPUT_PORTS_START( quizo )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
INPUT_PORTS_END
-MACHINE_CONFIG_START(quizo_state::quizo)
+void quizo_state::quizo(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,XTAL1/2)
- MCFG_DEVICE_PROGRAM_MAP(memmap)
- MCFG_DEVICE_IO_MAP(portmap)
-
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", quizo_state, irq0_line_hold)
+ Z80(config, m_maincpu, XTAL1/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &quizo_state::memmap);
+ m_maincpu->set_addrmap(AS_IO, &quizo_state::portmap);
+ m_maincpu->set_vblank_int("screen", FUNC(quizo_state::irq0_line_hold));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(320, 200)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 320-1, 0*8, 200-1)
- MCFG_SCREEN_UPDATE_DRIVER(quizo_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(320, 200);
+ screen.set_visarea(0*8, 320-1, 0*8, 200-1);
+ screen.set_screen_update(FUNC(quizo_state::screen_update));
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(quizo_state::quizo_palette), 16);
/* sound hardware */
SPEAKER(config, "mono").front_center();
AY8910(config, "aysnd", XTAL2 / 16).add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
ROM_START( quizo )
diff --git a/src/mame/drivers/quizpani.cpp b/src/mame/drivers/quizpani.cpp
index 2e694e4cfeb..d9431d663ff 100644
--- a/src/mame/drivers/quizpani.cpp
+++ b/src/mame/drivers/quizpani.cpp
@@ -195,32 +195,31 @@ static GFXDECODE_START( gfx_quizpani )
GFXDECODE_END
-MACHINE_CONFIG_START(quizpani_state::quizpani)
- MCFG_DEVICE_ADD("maincpu", M68000, 10000000)
- MCFG_DEVICE_PROGRAM_MAP(quizpani_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", quizpani_state, irq4_line_hold)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(quizpani_state, irq1_line_hold, 164) // music tempo
+void quizpani_state::quizpani(machine_config &config)
+{
+ M68000(config, m_maincpu, 10000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &quizpani_state::quizpani_map);
+ m_maincpu->set_vblank_int("screen", FUNC(quizpani_state::irq4_line_hold));
+ m_maincpu->set_periodic_int(FUNC(quizpani_state::irq1_line_hold), attotime::from_hz(164)); // music tempo
GFXDECODE(config, m_gfxdecode, "palette", gfx_quizpani);
PALETTE(config, "palette").set_format(palette_device::RRRRGGGGBBBBRGBx, 0x200);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(quizpani_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
-
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 0*8, 28*8-1);
+ screen.set_screen_update(FUNC(quizpani_state::screen_update));
+ screen.set_palette("palette");
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 16000000/4, okim6295_device::PIN7_LOW)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ OKIM6295(config, "oki", 16000000/4, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0);
nmk112_device &nmk112(NMK112(config, "nmk112", 0));
nmk112.set_rom0_tag("oki");
-MACHINE_CONFIG_END
+}
ROM_START( quizpani )
ROM_REGION( 0x340000, "maincpu", 0 ) /* 68000 Code */
diff --git a/src/mame/drivers/qvt70.cpp b/src/mame/drivers/qvt70.cpp
index 28843e0e806..1af2ab9274d 100644
--- a/src/mame/drivers/qvt70.cpp
+++ b/src/mame/drivers/qvt70.cpp
@@ -32,10 +32,11 @@ void qvt70_state::mem_map(address_map &map)
static INPUT_PORTS_START( qvt70 )
INPUT_PORTS_END
-MACHINE_CONFIG_START(qvt70_state::qvt70)
- MCFG_DEVICE_ADD("maincpu", Z80, 2'000'000)
- MCFG_DEVICE_PROGRAM_MAP(mem_map)
-MACHINE_CONFIG_END
+void qvt70_state::qvt70(machine_config &config)
+{
+ Z80(config, m_maincpu, 2'000'000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &qvt70_state::mem_map);
+}
/**************************************************************************************************************
diff --git a/src/mame/drivers/qx10.cpp b/src/mame/drivers/qx10.cpp
index 009917ce16c..03df6686f96 100644
--- a/src/mame/drivers/qx10.cpp
+++ b/src/mame/drivers/qx10.cpp
@@ -723,10 +723,10 @@ static void keyboard(device_slot_interface &device)
MACHINE_CONFIG_START(qx10_state::qx10)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, MAIN_CLK / 4)
- MCFG_DEVICE_PROGRAM_MAP(qx10_mem)
- MCFG_DEVICE_IO_MAP(qx10_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
+ Z80(config, m_maincpu, MAIN_CLK / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &qx10_state::qx10_mem);
+ m_maincpu->set_addrmap(AS_IO, &qx10_state::qx10_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/r2dtank.cpp b/src/mame/drivers/r2dtank.cpp
index 49463a87a4f..dff5a7cfa5a 100644
--- a/src/mame/drivers/r2dtank.cpp
+++ b/src/mame/drivers/r2dtank.cpp
@@ -445,19 +445,20 @@ INPUT_PORTS_END
*
*************************************/
-MACHINE_CONFIG_START(r2dtank_state::r2dtank)
- MCFG_DEVICE_ADD("maincpu", MC6809, MAIN_CPU_MASTER_CLOCK / 4) // divider guessed
- MCFG_DEVICE_PROGRAM_MAP(r2dtank_main_map)
+void r2dtank_state::r2dtank(machine_config &config)
+{
+ MC6809(config, m_maincpu, MAIN_CPU_MASTER_CLOCK / 4); // divider guessed
+ m_maincpu->set_addrmap(AS_PROGRAM, &r2dtank_state::r2dtank_main_map);
- MCFG_DEVICE_ADD("audiocpu", M6802, 3.579545_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(r2dtank_audio_map)
+ M6802(config, m_audiocpu, 3.579545_MHz_XTAL);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &r2dtank_state::r2dtank_audio_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 360, 0, 256, 276, 0, 224)
- MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(PIXEL_CLOCK, 360, 0, 256, 276, 0, 224);
+ screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update));
PALETTE(config, m_palette, palette_device::BGR_3BIT);
@@ -507,8 +508,7 @@ MACHINE_CONFIG_START(r2dtank_state::r2dtank)
m_ay2->port_a_read_callback().set_ioport("IN1");
m_ay2->port_b_read_callback().set_ioport("DSWA");
m_ay2->add_route(ALL_OUTPUTS, "mono", 0.25);
-
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/rad_eu3a05.cpp b/src/mame/drivers/rad_eu3a05.cpp
index a89910c246a..4c9c33be6b3 100644
--- a/src/mame/drivers/rad_eu3a05.cpp
+++ b/src/mame/drivers/rad_eu3a05.cpp
@@ -1146,25 +1146,25 @@ INTERRUPT_GEN_MEMBER(radica_eu3a05_state::interrupt)
*/
}
-MACHINE_CONFIG_START(radica_eu3a05_state::radicasi)
-
+void radica_eu3a05_state::radicasi(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",M6502,XTAL(21'281'370)/2) // Tetris has a XTAL(21'281'370), not confirmed on Space Invaders, actual CPU clock unknown.
- MCFG_DEVICE_PROGRAM_MAP(radicasi_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", radica_eu3a05_state, interrupt)
+ M6502(config, m_maincpu, XTAL(21'281'370)/2); // Tetris has a XTAL(21'281'370), not confirmed on Space Invaders, actual CPU clock unknown.
+ m_maincpu->set_addrmap(AS_PROGRAM, &radica_eu3a05_state::radicasi_map);
+ m_maincpu->set_vblank_int("screen", FUNC(radica_eu3a05_state::interrupt));
ADDRESS_MAP_BANK(config, "bank").set_map(&radica_eu3a05_state::radicasi_bank_map).set_options(ENDIANNESS_LITTLE, 8, 24, 0x8000);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_UPDATE_DRIVER(radica_eu3a05_state, screen_update)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
+ screen.set_screen_update(FUNC(radica_eu3a05_state::screen_update));
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1);
+ screen.set_palette(m_palette);
- MCFG_PALETTE_ADD("palette", 256)
+ PALETTE(config, m_palette).set_entries(256);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_radicasi_fake);
@@ -1176,7 +1176,7 @@ MACHINE_CONFIG_START(radica_eu3a05_state::radicasi)
radica6502_sound_device &sound(RADICA6502_SOUND(config, "6ch_sound", 8000));
sound.space_read_callback().set(FUNC(radica_eu3a05_state::read_full_space));
sound.add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
ROM_START( rad_tetr )
diff --git a/src/mame/drivers/rad_eu3a14.cpp b/src/mame/drivers/rad_eu3a14.cpp
index fed73d6c6fa..7b0c664f2e4 100644
--- a/src/mame/drivers/rad_eu3a14.cpp
+++ b/src/mame/drivers/rad_eu3a14.cpp
@@ -1366,49 +1366,49 @@ GFXDECODE_END
-MACHINE_CONFIG_START(radica_eu3a14_state::radica_eu3a14)
+void radica_eu3a14_state::radica_eu3a14(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",M6502,XTAL(21'477'272)/2) // marked as 21'477'270
- MCFG_DEVICE_PROGRAM_MAP(radica_eu3a14_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", radica_eu3a14_state, interrupt)
+ M6502(config, m_maincpu, XTAL(21'477'272)/2); // marked as 21'477'270
+ m_maincpu->set_addrmap(AS_PROGRAM, &radica_eu3a14_state::radica_eu3a14_map);
+ m_maincpu->set_vblank_int("screen", FUNC(radica_eu3a14_state::interrupt));
ADDRESS_MAP_BANK(config, "bank").set_map(&radica_eu3a14_state::bank_map).set_options(ENDIANNESS_LITTLE, 8, 24, 0x8000);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_helper);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_UPDATE_DRIVER(radica_eu3a14_state, screen_update)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
-
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
+ screen.set_screen_update(FUNC(radica_eu3a14_state::screen_update));
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1);
+ screen.set_palette(m_palette);
- MCFG_PALETTE_ADD("palette", 512)
+ PALETTE(config, m_palette).set_entries(512);
/* sound hardware */
SPEAKER(config, "mono").front_center();
radica6502_sound_device &sound(RADICA6502_SOUND(config, "6ch_sound", 8000));
sound.space_read_callback().set(FUNC(radica_eu3a14_state::read_full_space));
sound.add_route(ALL_OUTPUTS, "mono", 1.0);
+}
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(radica_eu3a14_state::radica_eu3a14_adc)
+void radica_eu3a14_state::radica_eu3a14_adc(machine_config &config)
+{
radica_eu3a14(config);
TIMER(config, "scantimer").configure_scanline(FUNC(radica_eu3a14_state::scanline_cb), "screen", 0, 1);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(radica_eu3a14_state::radica_eu3a14p) // TODO, clocks differ too, what are they on PAL?
+void radica_eu3a14_state::radica_eu3a14p(machine_config &config) // TODO, clocks differ too, what are they on PAL?
+{
radica_eu3a14(config);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_REFRESH_RATE(50)
-MACHINE_CONFIG_END
+ subdevice<screen_device>("screen")->set_refresh_hz(50);
+}
void radica_eu3a14_state::init_rad_gtg()
diff --git a/src/mame/drivers/radio86.cpp b/src/mame/drivers/radio86.cpp
index 005c981a7a5..c66612c34f2 100644
--- a/src/mame/drivers/radio86.cpp
+++ b/src/mame/drivers/radio86.cpp
@@ -517,81 +517,80 @@ void radio86_state::kr03(machine_config &config)
m_ppi8255_1->out_pc_callback().set(FUNC(radio86_state::radio86_8255_portc_w2));
}
-MACHINE_CONFIG_START(radio86_state::radio16)
+void radio86_state::radio16(machine_config &config)
+{
radio86(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(radio86_16_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::radio86_16_mem);
+}
-MACHINE_CONFIG_START(radio86_state::radiorom)
+void radio86_state::radiorom(machine_config &config)
+{
radio86(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(radio86rom_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::radio86rom_mem);
I8255(config, m_ppi8255_2);
m_ppi8255_2->in_pa_callback().set(FUNC(radio86_state::radio86rom_romdisk_porta_r));
m_ppi8255_2->out_pb_callback().set(FUNC(radio86_state::radio86_romdisk_portb_w));
m_ppi8255_2->out_pc_callback().set(FUNC(radio86_state::radio86_romdisk_portc_w));
- MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "radio86_cart")
- MCFG_GENERIC_EXTENSIONS("bin,rom")
+ GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "radio86_cart", "bin,rom");
SOFTWARE_LIST(config, "cart_list").set_original("radio86_cart");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(radio86_state::radioram)
+void radio86_state::radioram(machine_config &config)
+{
radio86(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(radio86ram_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::radio86ram_mem);
I8255(config, m_ppi8255_2);
m_ppi8255_2->in_pa_callback().set(FUNC(radio86_state::radio86ram_romdisk_porta_r));
m_ppi8255_2->out_pb_callback().set(FUNC(radio86_state::radio86_romdisk_portb_w));
m_ppi8255_2->out_pc_callback().set(FUNC(radio86_state::radio86_romdisk_portc_w));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(radio86_state::rk7007)
+void radio86_state::rk7007(machine_config &config)
+{
radio86(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(rk7007_io)
+ m_maincpu->set_addrmap(AS_IO, &radio86_state::rk7007_io);
i8255_device &ms7007(I8255(config, "ms7007"));
ms7007.out_pa_callback().set(FUNC(radio86_state::radio86_8255_porta_w2));
ms7007.in_pb_callback().set(FUNC(radio86_state::radio86_8255_portb_r2));
ms7007.in_pc_callback().set(FUNC(radio86_state::rk7007_8255_portc_r));
ms7007.out_pc_callback().set(FUNC(radio86_state::radio86_8255_portc_w2));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(radio86_state::rk700716)
+void radio86_state::rk700716(machine_config &config)
+{
radio16(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(rk7007_io)
+ m_maincpu->set_addrmap(AS_IO, &radio86_state::rk7007_io);
i8255_device &ms7007(I8255(config, "ms7007"));
ms7007.out_pa_callback().set(FUNC(radio86_state::radio86_8255_porta_w2));
ms7007.in_pb_callback().set(FUNC(radio86_state::radio86_8255_portb_r2));
ms7007.in_pc_callback().set(FUNC(radio86_state::rk7007_8255_portc_r));
ms7007.out_pc_callback().set(FUNC(radio86_state::radio86_8255_portc_w2));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(radio86_state::mikron2)
+void radio86_state::mikron2(machine_config &config)
+{
radio86(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mikron2_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::mikron2_mem);
+}
-MACHINE_CONFIG_START(radio86_state::impuls03)
+void radio86_state::impuls03(machine_config &config)
+{
radio86(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(impuls03_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::impuls03_mem);
+}
/* ROM definition */
ROM_START( radio86 )
diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp
index e48152c5f13..f4757a0a466 100644
--- a/src/mame/drivers/rainbow.cpp
+++ b/src/mame/drivers/rainbow.cpp
@@ -2947,11 +2947,8 @@ READ8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_r)
break;
case 6:
- data = m_hgdc->read(space, offset & 0x00);
- break;
-
case 7:
- data = m_hgdc->read(space, offset & 0x01);
+ data = m_hgdc->read(offset & 0x01);
break;
default:
@@ -3169,7 +3166,7 @@ WRITE8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_w)
case 6:
case 7:
- m_hgdc->write(space, offset & 0x01, data);
+ m_hgdc->write(offset & 0x01, data);
break;
} // switch
@@ -3200,25 +3197,25 @@ void rainbow_state::upd7220_map(address_map &map)
map(0x00000, 0x3ffff).rw(FUNC(rainbow_state::vram_r), FUNC(rainbow_state::vram_w)).share("vram");
}
-MACHINE_CONFIG_START(rainbow_state::rainbow)
+void rainbow_state::rainbow(machine_config &config)
+{
config.set_default_layout(layout_rainbow);
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8088, 24.0734_MHz_XTAL / 5) // approximately 4.815 MHz
- MCFG_DEVICE_PROGRAM_MAP(rainbow8088_map)
- MCFG_DEVICE_IO_MAP(rainbow8088_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(rainbow_state, irq_callback)
+ I8088(config, m_i8088, 24.0734_MHz_XTAL / 5); // approximately 4.815 MHz
+ m_i8088->set_addrmap(AS_PROGRAM, &rainbow_state::rainbow8088_map);
+ m_i8088->set_addrmap(AS_IO, &rainbow_state::rainbow8088_io);
+ m_i8088->set_irq_acknowledge_callback(FUNC(rainbow_state::irq_callback));
- MCFG_DEVICE_ADD("subcpu", Z80, 24.0734_MHz_XTAL / 6)
- MCFG_DEVICE_PROGRAM_MAP(rainbowz80_mem)
- MCFG_DEVICE_IO_MAP(rainbowz80_io)
+ Z80(config, m_z80, 24.0734_MHz_XTAL / 6);
+ m_z80->set_addrmap(AS_PROGRAM, &rainbow_state::rainbowz80_mem);
+ m_z80->set_addrmap(AS_IO, &rainbow_state::rainbowz80_io);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(24.0734_MHz_XTAL / 6, 442, 0, 400, 264, 0, 240) // ~NTSC compatible video timing (?)
-
- MCFG_SCREEN_UPDATE_DRIVER(rainbow_state, screen_update_rainbow)
- MCFG_SCREEN_PALETTE("vt100_video:palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(24.0734_MHz_XTAL / 6, 442, 0, 400, 264, 0, 240); // ~NTSC compatible video timing (?)
+ screen.set_screen_update(FUNC(rainbow_state::screen_update_rainbow));
+ screen.set_palette("vt100_video:palette");
GFXDECODE(config, "gfxdecode", "vt100_video:palette", gfx_rainbow);
RAINBOW_VIDEO(config, m_crtc, 24.0734_MHz_XTAL);
@@ -3236,19 +3233,19 @@ MACHINE_CONFIG_START(rainbow_state::rainbow)
m_hgdc->set_display_pixels(FUNC(rainbow_state::hgdc_display_pixels));
m_hgdc->set_screen(m_screen2); // set_screen needs to be added after 7720 device in the machine config, not after the screen.
- MCFG_PALETTE_ADD("palette2", 32)
+ PALETTE(config, m_palette2).set_entries(32);
- MCFG_SCREEN_ADD("screen2", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE)
+ SCREEN(config, m_screen2, SCREEN_TYPE_RASTER);
+ m_screen2->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE);
// VR241 color monitor is specified for 20 MHz bandwidth ( 60 Hz / 15.72 kHz horizontal rate )
// - sufficient for 800 x 240 non-interlaced at 60 Hz (non interlaced).
- //MCFG_SCREEN_RAW_PARAMS(31188000 / 2 , 992, 0, 800, 262, 0, 240)
+ //m_screen2->set_raw(31188000 / 2 , 992, 0, 800, 262, 0, 240);
// Alternate configuration:
- MCFG_SCREEN_RAW_PARAMS(31188000 / 4 , 496, 0, 400, 262, 0, 240)
+ m_screen2->set_raw(31188000 / 4 , 496, 0, 400, 262, 0, 240);
- MCFG_SCREEN_UPDATE_DEVICE("upd7220", upd7220_device, screen_update)
+ m_screen2->set_screen_update("upd7220", FUNC(upd7220_device::screen_update));
FD1793(config, m_fdc, 24.0734_MHz_XTAL / 24); // no separate 1 Mhz quartz
FLOPPY_CONNECTOR(config, FD1793_TAG ":0", rainbow_floppies, "525qd", rainbow_state::floppy_formats);
@@ -3280,18 +3277,14 @@ MACHINE_CONFIG_START(rainbow_state::rainbow)
m_hdc->in_sc_callback().set_constant(1); // SEEK COMPLETE (VCC = complete)
m_hdc->in_tk000_callback().set_constant(1); // TRACK 00 signal (= from drive)
- MCFG_HARDDISK_ADD("decharddisk1")
+ HARDDISK(config, "decharddisk1");
/// ******************************** / HARD DISK CONTROLLER ****************************************
- MCFG_DEVICE_ADD("corvus", CORVUS_HDC, 0)
- MCFG_HARDDISK_ADD("harddisk1")
- MCFG_HARDDISK_INTERFACE("corvus_hdd")
- MCFG_HARDDISK_ADD("harddisk2")
- MCFG_HARDDISK_INTERFACE("corvus_hdd")
- MCFG_HARDDISK_ADD("harddisk3")
- MCFG_HARDDISK_INTERFACE("corvus_hdd")
- MCFG_HARDDISK_ADD("harddisk4")
- MCFG_HARDDISK_INTERFACE("corvus_hdd")
+ CORVUS_HDC(config, m_corvus_hdc, 0);
+ HARDDISK(config, "harddisk1", "corvus_hdd");
+ HARDDISK(config, "harddisk2", "corvus_hdd");
+ HARDDISK(config, "harddisk3", "corvus_hdd");
+ HARDDISK(config, "harddisk4", "corvus_hdd");
DS1315(config, m_rtc, 0); // DS1315 (ClikClok for DEC-100 B) * OPTIONAL *
@@ -3338,7 +3331,7 @@ MACHINE_CONFIG_START(rainbow_state::rainbow)
TIMER(config, "motor").configure_periodic(FUNC(rainbow_state::hd_motor_tick), attotime::from_hz(60));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-MACHINE_CONFIG_END
+}
//----------------------------------------------------------------------------------------
// 'Rainbow 100-A' (system module 70-19974-00, PSU H7842-A)
diff --git a/src/mame/drivers/rampart.cpp b/src/mame/drivers/rampart.cpp
index 87f7f01474a..4d414967a9a 100644
--- a/src/mame/drivers/rampart.cpp
+++ b/src/mame/drivers/rampart.cpp
@@ -338,11 +338,11 @@ GFXDECODE_END
*
*************************************/
-MACHINE_CONFIG_START(rampart_state::rampart)
-
+void rampart_state::rampart(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, MASTER_CLOCK/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ M68000(config, m_maincpu, MASTER_CLOCK/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rampart_state::main_map);
SLAPSTIC(config, m_slapstic_device, 118, true);
@@ -357,24 +357,22 @@ MACHINE_CONFIG_START(rampart_state::rampart)
ATARI_MOTION_OBJECTS(config, m_mob, 0, m_screen, rampart_state::s_mob_config);
m_mob->set_gfxdecode(m_gfxdecode);
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240)
- MCFG_SCREEN_UPDATE_DRIVER(rampart_state, screen_update_rampart)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rampart_state, video_int_write_line))
+ m_screen->set_raw(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240);
+ m_screen->set_screen_update(FUNC(rampart_state::screen_update_rampart));
+ m_screen->set_palette("palette");
+ m_screen->screen_vblank().set(FUNC(rampart_state::video_int_write_line));
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, MASTER_CLOCK/4/3, okim6295_device::PIN7_LOW)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
+ OKIM6295(config, m_oki, MASTER_CLOCK/4/3, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.60);
- MCFG_DEVICE_ADD("ymsnd", YM2413, MASTER_CLOCK/4)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ YM2413(config, m_ym2413, MASTER_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
diff --git a/src/mame/drivers/ramtek.cpp b/src/mame/drivers/ramtek.cpp
index b939c83ce5e..b87e632ee69 100644
--- a/src/mame/drivers/ramtek.cpp
+++ b/src/mame/drivers/ramtek.cpp
@@ -110,11 +110,11 @@ void ramtek_state::video_start()
{
}
-MACHINE_CONFIG_START(ramtek_state::ramtek)
-
+void ramtek_state::ramtek(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK)
- MCFG_NETLIST_SETUP(ramtek)
+ NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK);
+ m_maincpu->set_constructor(netlist_ramtek);
/* video hardware */
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
@@ -124,7 +124,7 @@ MACHINE_CONFIG_START(ramtek_state::ramtek)
m_video->set_vert_params(V_TOTAL-22,V_TOTAL-19,V_TOTAL-12,V_TOTAL);
m_video->set_fieldcount(1);
m_video->set_threshold(0.30);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/rbisland.cpp b/src/mame/drivers/rbisland.cpp
index a9d2c13ac49..e3bdc534b22 100644
--- a/src/mame/drivers/rbisland.cpp
+++ b/src/mame/drivers/rbisland.cpp
@@ -653,15 +653,15 @@ WRITE8_MEMBER(rbisland_state::counters_w)
machine().bookkeeping().coin_counter_w(0, data & 0x10);
}
-MACHINE_CONFIG_START(rbisland_state::rbisland)
-
+void rbisland_state::rbisland(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(rbisland_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbisland_state, interrupt)
+ M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &rbisland_state::rbisland_map);
+ m_maincpu->set_vblank_int("screen", FUNC(rbisland_state::interrupt));
- MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/4) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(rbisland_sound_map)
+ Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* verified on pcb */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &rbisland_state::rbisland_sound_map);
TAITO_CCHIP(config, m_cchip, 12_MHz_XTAL); // 12MHz OSC next to C-Chip
m_cchip->in_pa_callback().set_ioport("800007");
@@ -675,13 +675,13 @@ MACHINE_CONFIG_START(rbisland_state::rbisland)
config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_rainbow)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(rbisland_state::screen_update_rainbow));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rbisland);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 2048);
@@ -706,31 +706,31 @@ MACHINE_CONFIG_START(rbisland_state::rbisland)
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
-MACHINE_CONFIG_END
+}
/* Jumping: The PCB has 2 Xtals, 18.432MHz and 24MHz */
-MACHINE_CONFIG_START(rbisland_state::jumping)
-
+void rbisland_state::jumping(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(18'432'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(jumping_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbisland_state, irq4_line_hold)
+ M68000(config, m_maincpu, XTAL(18'432'000)/2); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &rbisland_state::jumping_map);
+ m_maincpu->set_vblank_int("screen", FUNC(rbisland_state::irq4_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(24'000'000)/4) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(jumping_sound_map)
+ Z80(config, m_audiocpu, XTAL(24'000'000)/4); /* verified on pcb */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &rbisland_state::jumping_sound_map);
config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough unless otherwise */
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_jumping)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(rbisland_state::screen_update_jumping));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_jumping);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 2048);
@@ -745,21 +745,18 @@ MACHINE_CONFIG_START(rbisland_state::jumping)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ym1", YM2203, XTAL(24'000'000)/8) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+ YM2203(config, "ym1", XTAL(24'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.30); /* verified on pcb */
- MCFG_DEVICE_ADD("ym2", YM2203, XTAL(24'000'000)/8) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
-MACHINE_CONFIG_END
+ YM2203(config, "ym2", XTAL(24'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.30); /* verified on pcb */
+}
/* Imnoe PCB uses 16MHz CPU crystal instead of 18.432 for CPU */
-MACHINE_CONFIG_START(rbisland_state::jumpingi)
+void rbisland_state::jumpingi(machine_config &config)
+{
jumping(config);
- MCFG_DEVICE_REPLACE("maincpu", M68000, XTAL(16'000'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(jumping_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbisland_state, irq4_line_hold)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(XTAL(16'000'000)/2); /* verified on pcb */
+}
/***************************************************************************
DRIVERS
diff --git a/src/mame/drivers/rbmk.cpp b/src/mame/drivers/rbmk.cpp
index cac0dc61cfa..e462f197e72 100644
--- a/src/mame/drivers/rbmk.cpp
+++ b/src/mame/drivers/rbmk.cpp
@@ -565,10 +565,11 @@ uint32_t rbmk_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
return 0;
}
-MACHINE_CONFIG_START(rbmk_state::rbmk)
- MCFG_DEVICE_ADD("maincpu", M68000, 22000000 /2)
- MCFG_DEVICE_PROGRAM_MAP(rbmk_mem)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbmk_state, irq1_line_hold)
+void rbmk_state::rbmk(machine_config &config)
+{
+ M68000(config, m_maincpu, 22000000 /2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rbmk_state::rbmk_mem);
+ m_maincpu->set_vblank_int("screen", FUNC(rbmk_state::irq1_line_hold));
AT89C4051(config, m_mcu, 22000000 / 4); // frequency isn't right
m_mcu->set_addrmap(AS_PROGRAM, &rbmk_state::mcu_mem);
@@ -577,13 +578,13 @@ MACHINE_CONFIG_START(rbmk_state::rbmk)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rbmk);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rbmk_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(rbmk_state::screen_update));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x800);
@@ -592,25 +593,24 @@ MACHINE_CONFIG_START(rbmk_state::rbmk)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1122000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.47)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47)
+ okim6295_device &oki(OKIM6295(config, "oki", 1122000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified
+ oki.add_route(ALL_OUTPUTS, "lspeaker", 0.47);
+ oki.add_route(ALL_OUTPUTS, "rspeaker", 0.47);
YM2151(config, m_ymsnd, 22000000 / 8);
m_ymsnd->add_route(0, "lspeaker", 0.60);
m_ymsnd->add_route(1, "rspeaker", 0.60);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(rbmk_state::rbspm)
+void rbmk_state::rbspm(machine_config &config)
+{
rbmk(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(rbspm_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &rbmk_state::rbspm_mem);
- MCFG_DEVICE_MODIFY("mcu")
- MCFG_DEVICE_DISABLE() // until decapped
+ m_mcu->set_disable(); // until decapped
// PIC16F84 but no CPU core available
-MACHINE_CONFIG_END
+}
// 实战麻将王 (Shízhàn Májiàng Wáng)
ROM_START( rbmk )
diff --git a/src/mame/drivers/rc702.cpp b/src/mame/drivers/rc702.cpp
index 4a9fede162d..5df8b76a730 100644
--- a/src/mame/drivers/rc702.cpp
+++ b/src/mame/drivers/rc702.cpp
@@ -331,7 +331,8 @@ static void floppies(device_slot_interface &device)
device.option_add("525qd", FLOPPY_525_QD);
}
-MACHINE_CONFIG_START(rc702_state::rc702)
+void rc702_state::rc702(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, XTAL(8'000'000) / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &rc702_state::rc702_mem);
@@ -378,11 +379,11 @@ MACHINE_CONFIG_START(rc702_state::rc702)
m_7474->comp_output_cb().set(FUNC(rc702_state::qbar_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(272*2, 200+4*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 272*2-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_DEVICE("crtc", i8275_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_size(272*2, 200+4*8);
+ screen.set_visarea(0, 272*2-1, 0, 200-1);
+ screen.set_screen_update("crtc", FUNC(i8275_device::screen_update));
i8275_device &crtc(I8275(config, "crtc", 11640000/7));
crtc.set_character_width(7);
@@ -396,7 +397,7 @@ MACHINE_CONFIG_START(rc702_state::rc702)
/* sound hardware */
SPEAKER(config, "mono").front_center();
BEEP(config, m_beep, 1000).add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
/* ROM definition */
diff --git a/src/mame/drivers/rcorsair.cpp b/src/mame/drivers/rcorsair.cpp
index dd4bf635ba6..cff08bd03b0 100644
--- a/src/mame/drivers/rcorsair.cpp
+++ b/src/mame/drivers/rcorsair.cpp
@@ -156,30 +156,30 @@ uint32_t rcorsair_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
return 0;
}
-MACHINE_CONFIG_START(rcorsair_state::rcorsair)
-
+void rcorsair_state::rcorsair(machine_config &config)
+{
/* Main CPU is probably inside Custom Block with
program code, unknown type */
- MCFG_DEVICE_ADD("maincpu", Z80, 8000000)
- MCFG_DEVICE_PROGRAM_MAP(rcorsair_main_map)
- //MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rcorsair_state, irq0_line_hold)
+ Z80(config, m_maincpu, 8000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rcorsair_state::rcorsair_main_map);
+ //m_maincpu->set_vblank_int("screen", FUNC(rcorsair_state::irq0_line_hold));
- MCFG_DEVICE_ADD("subcpu", I8035, 8000000)
- MCFG_DEVICE_PROGRAM_MAP(rcorsair_sub_map)
- MCFG_DEVICE_IO_MAP(rcorsair_sub_io_map)
+ I8035(config, m_subcpu, 8000000);
+ m_subcpu->set_addrmap(AS_PROGRAM, &rcorsair_state::rcorsair_sub_map);
+ m_subcpu->set_addrmap(AS_IO, &rcorsair_state::rcorsair_sub_io_map);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_UPDATE_DRIVER(rcorsair_state, screen_update)
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_screen_update(FUNC(rcorsair_state::screen_update));
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 256-1, 0, 256-1);
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_rcorsair);
- MCFG_PALETTE_ADD("palette", 0x100)
-MACHINE_CONFIG_END
+ PALETTE(config, "palette").set_entries(0x100);
+}
ROM_START( rcorsair )
ROM_REGION( 0x6000, "maincpu", 0 )
diff --git a/src/mame/drivers/rd110.cpp b/src/mame/drivers/rd110.cpp
index a51994b7ef5..b9a9f62cd9e 100644
--- a/src/mame/drivers/rd110.cpp
+++ b/src/mame/drivers/rd110.cpp
@@ -233,7 +233,8 @@ void d110_state::d110_map(address_map &map)
map(0xc000, 0xffff).bankrw("fixed");
}
-MACHINE_CONFIG_START(d110_state::d110)
+void d110_state::d110(machine_config &config)
+{
P8098(config, m_maincpu, 12_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &d110_state::d110_map);
m_maincpu->serial_tx_cb().set(FUNC(d110_state::midi_w));
@@ -247,13 +248,13 @@ MACHINE_CONFIG_START(d110_state::d110)
RAM( config, m_memc ).set_default_size( "32K" );
NVRAM( config, m_memcs, nvram_device::DEFAULT_ALL_0 );
- MCFG_SCREEN_ADD( "screen", LCD )
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_UPDATE_DRIVER(d110_state, screen_update)
-// MCFG_SCREEN_SIZE(20*6-1, 2*9-1)
- MCFG_SCREEN_SIZE(16*6-1, (16*6-1)*3/4)
- MCFG_SCREEN_VISIBLE_AREA(0, 16*6-2, 0, (16*6-1)*3/4-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_screen_update(FUNC(d110_state::screen_update));
+// screen.set_size(20*6-1, 2*9-1);
+ screen.set_size(16*6-1, (16*6-1)*3/4);
+ screen.set_visarea(0, 16*6-2, 0, (16*6-1)*3/4-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(d110_state::d110_palette), 2);
@@ -262,7 +263,7 @@ MACHINE_CONFIG_START(d110_state::d110)
TIMER(config, m_midi_timer).configure_generic(FUNC(d110_state::midi_timer_cb));
TIMER(config, "samples_timer").configure_periodic(FUNC(d110_state::samples_timer_cb), attotime::from_hz(32000*2) );
-MACHINE_CONFIG_END
+}
ROM_START( d110 )
ROM_REGION( 0x10000, "maincpu", 0 )
diff --git a/src/mame/drivers/realbrk.cpp b/src/mame/drivers/realbrk.cpp
index 023963328dd..c1a07c2cbd8 100644
--- a/src/mame/drivers/realbrk.cpp
+++ b/src/mame/drivers/realbrk.cpp
@@ -767,26 +767,26 @@ WRITE_LINE_MEMBER(realbrk_state::vblank_irq)
m_tmp68301->external_interrupt_1();
}
-MACHINE_CONFIG_START(realbrk_state::realbrk)
-
+void realbrk_state::realbrk(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, M68000, XTAL(32'000'000) / 2) /* !! TMP68301 !! */
- MCFG_DEVICE_PROGRAM_MAP(realbrk_mem)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("tmp68301",tmp68301_device,irq_callback)
+ M68000(config, m_maincpu, XTAL(32'000'000) / 2); /* !! TMP68301 !! */
+ m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::realbrk_mem);
+ m_maincpu->set_irq_acknowledge_callback("tmp68301", FUNC(tmp68301_device::irq_callback));
TMP68301(config, m_tmp68301, 0);
m_tmp68301->set_cputag(m_maincpu);
m_tmp68301->out_parallel_callback().set(FUNC(realbrk_state::realbrk_flipscreen_w));
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(0x140, 0xe0)
- MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1)
- MCFG_SCREEN_UPDATE_DRIVER(realbrk_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, realbrk_state, vblank_irq))
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(0x140, 0xe0);
+ m_screen->set_visarea(0, 0x140-1, 0, 0xe0-1);
+ m_screen->set_screen_update(FUNC(realbrk_state::screen_update));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(realbrk_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_realbrk);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x8000);
@@ -795,40 +795,40 @@ MACHINE_CONFIG_START(realbrk_state::realbrk)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(33'868'800) / 2)
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
+ ymz280b_device &ymz(YMZ280B(config, "ymz", XTAL(33'868'800) / 2));
+ ymz.add_route(0, "lspeaker", 0.50);
+ ymz.add_route(1, "rspeaker", 0.50);
- MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(3'579'545))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
-MACHINE_CONFIG_END
+ ym2413_device &ymsnd(YM2413(config, "ymsnd", XTAL(3'579'545)));
+ ymsnd.add_route(ALL_OUTPUTS, "lspeaker", 0.50);
+ ymsnd.add_route(ALL_OUTPUTS, "rspeaker", 0.50);
+}
-MACHINE_CONFIG_START(realbrk_state::pkgnsh)
+void realbrk_state::pkgnsh(machine_config &config)
+{
realbrk(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(pkgnsh_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::pkgnsh_mem);
m_tmp68301->out_parallel_callback().set_nop();
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(realbrk_state::pkgnshdx)
+void realbrk_state::pkgnshdx(machine_config &config)
+{
pkgnsh(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(pkgnshdx_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::pkgnshdx_mem);
+}
-MACHINE_CONFIG_START(realbrk_state::dai2kaku)
+void realbrk_state::dai2kaku(machine_config &config)
+{
realbrk(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(dai2kaku_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::dai2kaku_mem);
m_gfxdecode->set_info(gfx_dai2kaku);
m_screen->set_screen_update(FUNC(realbrk_state::screen_update_dai2kaku));
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/redalert.cpp b/src/mame/drivers/redalert.cpp
index 85d587ecf1e..a677afeae6f 100644
--- a/src/mame/drivers/redalert.cpp
+++ b/src/mame/drivers/redalert.cpp
@@ -391,61 +391,61 @@ INPUT_PORTS_END
*
*************************************/
-MACHINE_CONFIG_START(redalert_state::redalert)
-
+void redalert_state::redalert(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(redalert_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt)
+ M6502(config, m_maincpu, MAIN_CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::redalert_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt));
/* video hardware */
redalert_video(config);
/* audio hardware */
redalert_audio(config);
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(redalert_state::ww3)
+}
+void redalert_state::ww3(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(ww3_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt)
+ M6502(config, m_maincpu, MAIN_CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::ww3_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt));
/* video hardware */
ww3_video(config);
/* audio hardware */
ww3_audio(config);
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(redalert_state::panther)
+}
+void redalert_state::panther(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(panther_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt)
+ M6502(config, m_maincpu, MAIN_CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::panther_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt));
/* video hardware */
panther_video(config);
/* audio hardware */
ww3_audio(config);
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(redalert_state::demoneye)
+}
+void redalert_state::demoneye(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(demoneye_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt)
+ M6502(config, m_maincpu, MAIN_CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::demoneye_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt));
/* video hardware */
demoneye_video(config);
/* audio hardware */
demoneye_audio(config);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/relief.cpp b/src/mame/drivers/relief.cpp
index add178d614c..3f55fbc6d43 100644
--- a/src/mame/drivers/relief.cpp
+++ b/src/mame/drivers/relief.cpp
@@ -255,11 +255,11 @@ GFXDECODE_END
*
*************************************/
-MACHINE_CONFIG_START(relief_state::relief)
-
+void relief_state::relief(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 14.318181_MHz_XTAL/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ M68000(config, m_maincpu, 14.318181_MHz_XTAL/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &relief_state::main_map);
EEPROM_2816(config, "eeprom").lock_after_write(true);
@@ -275,24 +275,23 @@ MACHINE_CONFIG_START(relief_state::relief)
TILEMAP(config, "vad:playfield2", m_gfxdecode, 2, 8, 8, TILEMAP_SCAN_COLS, 64, 64, 0).set_info_callback(DEVICE_SELF_OWNER, FUNC(relief_state::get_playfield2_tile_info));
ATARI_MOTION_OBJECTS(config, "vad:mob", 0, m_screen, relief_state::s_mob_config).set_gfxdecode(m_gfxdecode);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
/* note: these parameters are from published specs, not derived */
/* the board uses a VAD chip to generate video signals */
- MCFG_SCREEN_RAW_PARAMS(14.318181_MHz_XTAL/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_DRIVER(relief_state, screen_update_relief)
- MCFG_SCREEN_PALETTE("palette")
+ m_screen->set_raw(14.318181_MHz_XTAL/2, 456, 0, 336, 262, 0, 240);
+ m_screen->set_screen_update(FUNC(relief_state::screen_update_relief));
+ m_screen->set_palette("palette");
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 14.318181_MHz_XTAL/4/3, okim6295_device::PIN7_LOW)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
+ OKIM6295(config, m_oki, 14.318181_MHz_XTAL/4/3, okim6295_device::PIN7_LOW);
+ m_oki->add_route(ALL_OUTPUTS, "mono", 0.50);
+ m_oki->set_addrmap(0, &relief_state::oki_map);
- MCFG_DEVICE_ADD("ymsnd", YM2413, 14.318181_MHz_XTAL/4)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ YM2413(config, m_ym2413, 14.318181_MHz_XTAL/4).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
diff --git a/src/mame/drivers/retofinv.cpp b/src/mame/drivers/retofinv.cpp
index 1a4bb7374be..bb0be85c97b 100644
--- a/src/mame/drivers/retofinv.cpp
+++ b/src/mame/drivers/retofinv.cpp
@@ -412,22 +412,22 @@ INTERRUPT_GEN_MEMBER(retofinv_state::sub_vblank_irq)
}
-MACHINE_CONFIG_START(retofinv_state::retofinv)
-
+void retofinv_state::retofinv(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", retofinv_state, main_vblank_irq)
+ Z80(config, m_maincpu, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &retofinv_state::main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(retofinv_state::main_vblank_irq));
- MCFG_DEVICE_ADD("sub", Z80, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(sub_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", retofinv_state, sub_vblank_irq)
+ Z80(config, m_subcpu, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &retofinv_state::sub_map);
+ m_subcpu->set_vblank_int("screen", FUNC(retofinv_state::sub_vblank_irq));
- MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(retofinv_state, nmi_line_pulse, 2*60) // wrong, should be ~128-132 per frame, not 120.
+ Z80(config, m_audiocpu, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &retofinv_state::sound_map);
+ m_audiocpu->set_periodic_int(FUNC(retofinv_state::nmi_line_pulse), attotime::from_hz(2*60)); // wrong, should be ~128-132 per frame, not 120.
- MCFG_DEVICE_ADD("68705", TAITO68705_MCU, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */
+ TAITO68705_MCU(config, m_68705, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */
config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - enough for the sound CPU to read all commands */
@@ -442,13 +442,13 @@ MACHINE_CONFIG_START(retofinv_state::retofinv)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60.58) // vsync measured at 60.58hz
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // not accurate
- MCFG_SCREEN_SIZE(36*8, 28*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(retofinv_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60.58); // vsync measured at 60.58hz
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); // not accurate
+ screen.set_size(36*8, 28*8);
+ screen.set_visarea(0*8, 36*8-1, 0*8, 28*8-1);
+ screen.set_screen_update(FUNC(retofinv_state::screen_update));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_retofinv);
PALETTE(config, m_palette, FUNC(retofinv_state::retofinv_palette), 256*2 + 64*16 + 64*16, 256);
@@ -458,42 +458,41 @@ MACHINE_CONFIG_START(retofinv_state::retofinv)
GENERIC_LATCH_8(config, m_soundlatch);
- MCFG_DEVICE_ADD("sn1", SN76489A, XTAL(18'432'000)/6) /* @IC5?; XTAL, chip type, and divider verified, 3.072 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SN76489A(config, "sn1", XTAL(18'432'000)/6).add_route(ALL_OUTPUTS, "mono", 0.80); /* @IC5?; XTAL, chip type, and divider verified, 3.072 MHz */
- MCFG_DEVICE_ADD("sn2", SN76489A, XTAL(18'432'000)/6) /* @IC6?; XTAL, chip type, and divider verified, 3.072 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-MACHINE_CONFIG_END
+ SN76489A(config, "sn2", XTAL(18'432'000)/6).add_route(ALL_OUTPUTS, "mono", 0.80); /* @IC6?; XTAL, chip type, and divider verified, 3.072 MHz */
+}
/* bootleg which has different palette clut */
-MACHINE_CONFIG_START(retofinv_state::retofinvb1)
+void retofinv_state::retofinvb1(machine_config &config)
+{
retofinv(config);
m_palette->set_init(FUNC(retofinv_state::retofinv_bl_palette));
-MACHINE_CONFIG_END
+}
/* bootleg which has no mcu */
-MACHINE_CONFIG_START(retofinv_state::retofinvb_nomcu)
+void retofinv_state::retofinvb_nomcu(machine_config &config)
+{
retofinv(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(bootleg_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &retofinv_state::bootleg_map);
m_mainlatch->q_out_cb<3>().set_nop();
config.device_remove("68705");
-MACHINE_CONFIG_END
+}
-/* bootleg which has different pallete clut and also has no mcu */
-MACHINE_CONFIG_START(retofinv_state::retofinvb1_nomcu)
+/* bootleg which has different palette clut and also has no mcu */
+void retofinv_state::retofinvb1_nomcu(machine_config &config)
+{
retofinvb1(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(bootleg_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &retofinv_state::bootleg_map);
m_mainlatch->q_out_cb<3>().set_nop();
config.device_remove("68705");
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/rex6000.cpp b/src/mame/drivers/rex6000.cpp
index 0679d53292a..e97c01ba358 100644
--- a/src/mame/drivers/rex6000.cpp
+++ b/src/mame/drivers/rex6000.cpp
@@ -897,22 +897,22 @@ GFXDECODE_END
MACHINE_CONFIG_START(rex6000_state::rex6000)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(4'000'000)) //Toshiba microprocessor Z80 compatible at 4.3MHz
- MCFG_DEVICE_PROGRAM_MAP(rex6000_mem)
- MCFG_DEVICE_IO_MAP(rex6000_io)
+ Z80(config, m_maincpu, XTAL(4'000'000)); //Toshiba microprocessor Z80 compatible at 4.3MHz
+ m_maincpu->set_addrmap(AS_PROGRAM, &rex6000_state::rex6000_mem);
+ m_maincpu->set_addrmap(AS_IO, &rex6000_state::rex6000_io);
TIMER(config, "sec_timer").configure_periodic(FUNC(rex6000_state::sec_timer), attotime::from_hz(1));
TIMER(config, "irq_timer1").configure_periodic(FUNC(rex6000_state::irq_timer1), attotime::from_hz(32));
TIMER(config, "irq_timer2").configure_periodic(FUNC(rex6000_state::irq_timer2), attotime::from_hz(4096));
/* video hardware */
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(rex6000_state, screen_update)
- MCFG_SCREEN_SIZE(240, 120)
- MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 120-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(rex6000_state::screen_update));
+ screen.set_size(240, 120);
+ screen.set_visarea(0, 240-1, 0, 120-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(rex6000_state::rex6000_palettte), 2);
GFXDECODE(config, "gfxdecode", "palette", gfx_rex6000);
@@ -956,15 +956,14 @@ MACHINE_CONFIG_START(rex6000_state::rex6000)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD( "beeper", BEEP, 0 )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 )
+ BEEP(config, m_beep, 0).add_route(ALL_OUTPUTS, "mono", 1.00);
MACHINE_CONFIG_END
MACHINE_CONFIG_START(oz750_state::oz750)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(9'830'400)) //Toshiba microprocessor Z80 compatible at 9.8MHz
- MCFG_DEVICE_PROGRAM_MAP(rex6000_mem)
- MCFG_DEVICE_IO_MAP(oz750_io)
+ Z80(config, m_maincpu, XTAL(9'830'400)); //Toshiba microprocessor Z80 compatible at 9.8MHz
+ m_maincpu->set_addrmap(AS_PROGRAM, &oz750_state::rex6000_mem);
+ m_maincpu->set_addrmap(AS_IO, &oz750_state::oz750_io);
TIMER(config, "sec_timer").configure_periodic(FUNC(rex6000_state::sec_timer), attotime::from_hz(1));
TIMER(config, "irq_timer1").configure_periodic(FUNC(rex6000_state::irq_timer1), attotime::from_hz(64));
@@ -984,13 +983,13 @@ MACHINE_CONFIG_START(oz750_state::oz750)
//serport.cts_handler().set(m_uart, FUNC(ins8250_uart_device::cts_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(oz750_state, screen_update_oz)
- MCFG_SCREEN_SIZE(240, 80)
- MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 80-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(oz750_state::screen_update_oz));
+ screen.set_size(240, 80);
+ screen.set_visarea(0, 240-1, 0, 80-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(rex6000_state::rex6000_palettte), 2);
@@ -1011,8 +1010,7 @@ MACHINE_CONFIG_START(oz750_state::oz750)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD( "beeper", BEEP, 0 )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 )
+ BEEP(config, m_beep, 0).add_route(ALL_OUTPUTS, "mono", 1.00);
MACHINE_CONFIG_END
/* ROM definition */
diff --git a/src/mame/drivers/rgum.cpp b/src/mame/drivers/rgum.cpp
index 610be95ca91..71a606245ab 100644
--- a/src/mame/drivers/rgum.cpp
+++ b/src/mame/drivers/rgum.cpp
@@ -245,19 +245,20 @@ static GFXDECODE_START( gfx_rgum )
GFXDECODE_END
-MACHINE_CONFIG_START(rgum_state::rgum)
+void rgum_state::rgum(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M65C02,24000000/16) /* ? MHz */
- MCFG_DEVICE_PROGRAM_MAP(rgum_map)
+ M65C02(config, m_maincpu, 24000000/16); /* ? MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &rgum_state::rgum_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_DRIVER(rgum_state, screen_update_royalgum)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 256-1, 0, 256-1);
+ screen.set_screen_update(FUNC(rgum_state::screen_update_royalgum));
+ screen.set_palette(m_palette);
mc6845_device &crtc(MC6845(config, "crtc", 24000000/16)); /* unknown clock & type, hand tuned to get ~50 fps (?) */
crtc.set_screen("screen");
@@ -271,12 +272,12 @@ MACHINE_CONFIG_START(rgum_state::rgum)
ppi.in_pc_callback().set_ioport("IN2");
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rgum);
- MCFG_PALETTE_ADD("palette", 0x100)
+ PALETTE(config, m_palette).set_entries(0x100);
SPEAKER(config, "mono").front_center();
AY8910(config, "aysnd", 24000000/16).add_route(ALL_OUTPUTS, "mono", 0.50); /* guessed to use the same xtal as the crtc */
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/riscpc.cpp b/src/mame/drivers/riscpc.cpp
index b08056fdbfa..055e68225a8 100644
--- a/src/mame/drivers/riscpc.cpp
+++ b/src/mame/drivers/riscpc.cpp
@@ -814,86 +814,91 @@ void riscpc_state::machine_reset()
m_flyback_timer->adjust( attotime::never);
}
-MACHINE_CONFIG_START(riscpc_state::rpc600)
+void riscpc_state::rpc600(machine_config &config)
+{
/* Basic machine hardware */
- MCFG_DEVICE_ADD( "maincpu", ARM7, 60_MHz_XTAL/2) // ARM610
- MCFG_DEVICE_PROGRAM_MAP(a7000_mem)
+ ARM7(config, m_maincpu, 60_MHz_XTAL/2); // ARM610
+ m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(1900, 1080) //max available size
- MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1)
- MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update)
- MCFG_PALETTE_ADD("palette", 0x200)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(riscpc_state::rpc700)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(1900, 1080); //max available size
+ m_screen->set_visarea(0, 1900-1, 0, 1080-1);
+ m_screen->set_screen_update(FUNC(riscpc_state::screen_update));
+ PALETTE(config, m_palette).set_entries(0x200);
+}
+
+void riscpc_state::rpc700(machine_config &config)
+{
/* Basic machine hardware */
- MCFG_DEVICE_ADD( "maincpu", ARM7, 80_MHz_XTAL/2) // ARM710
- MCFG_DEVICE_PROGRAM_MAP(a7000_mem)
+ ARM7(config, m_maincpu, 80_MHz_XTAL/2); // ARM710
+ m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(1900, 1080) //max available size
- MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1)
- MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update)
- MCFG_PALETTE_ADD("palette", 0x200)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(riscpc_state::a7000)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(1900, 1080); //max available size
+ m_screen->set_visarea(0, 1900-1, 0, 1080-1);
+ m_screen->set_screen_update(FUNC(riscpc_state::screen_update));
+ PALETTE(config, m_palette).set_entries(0x200);
+}
+
+void riscpc_state::a7000(machine_config &config)
+{
/* Basic machine hardware */
- MCFG_DEVICE_ADD( "maincpu", ARM7, XTAL(32'000'000) ) // ARM7500
- MCFG_DEVICE_PROGRAM_MAP(a7000_mem)
+ ARM7(config, m_maincpu, XTAL(32'000'000)); // ARM7500
+ m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(1900, 1080) //max available size
- MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1)
- MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update)
- MCFG_PALETTE_ADD("palette", 0x200)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(riscpc_state::a7000p)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(1900, 1080); //max available size
+ m_screen->set_visarea(0, 1900-1, 0, 1080-1);
+ m_screen->set_screen_update(FUNC(riscpc_state::screen_update));
+ PALETTE(config, m_palette).set_entries(0x200);
+}
+
+void riscpc_state::a7000p(machine_config &config)
+{
a7000(config);
- MCFG_DEVICE_MODIFY("maincpu") // ARM7500FE
- MCFG_DEVICE_CLOCK(XTAL(48'000'000))
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(XTAL(48'000'000)); // ARM7500FE
+}
-MACHINE_CONFIG_START(riscpc_state::sarpc)
+void riscpc_state::sarpc(machine_config &config)
+{
/* Basic machine hardware */
- MCFG_DEVICE_ADD( "maincpu", ARM7, 202000000 ) // StrongARM
- MCFG_DEVICE_PROGRAM_MAP(a7000_mem)
+ ARM7(config, m_maincpu, 202000000); // StrongARM
+ m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(1900, 1080) //max available size
- MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1)
- MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update)
- MCFG_PALETTE_ADD("palette", 0x200)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(riscpc_state::sarpc_j233)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(1900, 1080); //max available size
+ m_screen->set_visarea(0, 1900-1, 0, 1080-1);
+ m_screen->set_screen_update(FUNC(riscpc_state::screen_update));
+ PALETTE(config, m_palette).set_entries(0x200);
+}
+
+void riscpc_state::sarpc_j233(machine_config &config)
+{
/* Basic machine hardware */
- MCFG_DEVICE_ADD( "maincpu", ARM7, 233000000 ) // StrongARM
- MCFG_DEVICE_PROGRAM_MAP(a7000_mem)
+ ARM7(config, m_maincpu, 233000000); // StrongARM
+ m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(1900, 1080) //max available size
- MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1)
- MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update)
- MCFG_PALETTE_ADD("palette", 0x200)
-MACHINE_CONFIG_END
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(1900, 1080); //max available size
+ m_screen->set_visarea(0, 1900-1, 0, 1080-1);
+ m_screen->set_screen_update(FUNC(riscpc_state::screen_update));
+ PALETTE(config, m_palette).set_entries(0x200);
+}
ROM_START(rpc600)
ROM_REGION( 0x800000, "user1", ROMREGION_ERASEFF )
diff --git a/src/mame/drivers/rltennis.cpp b/src/mame/drivers/rltennis.cpp
index ace73fd5f9e..9803fba9585 100644
--- a/src/mame/drivers/rltennis.cpp
+++ b/src/mame/drivers/rltennis.cpp
@@ -181,20 +181,20 @@ void rltennis_state::ramdac_map(address_map &map)
map(0x000, 0x3ff).rw("ramdac", FUNC(ramdac_device::ramdac_pal_r), FUNC(ramdac_device::ramdac_rgb888_w));
}
-MACHINE_CONFIG_START(rltennis_state::rltennis)
-
- MCFG_DEVICE_ADD("maincpu", M68000, RLT_XTAL/2) /* 68000P8 ??? */
- MCFG_DEVICE_PROGRAM_MAP(rltennis_main)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rltennis_state, interrupt)
+void rltennis_state::rltennis(machine_config &config)
+{
+ M68000(config, m_maincpu, RLT_XTAL/2); /* 68000P8 ??? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &rltennis_state::rltennis_main);
+ m_maincpu->set_vblank_int("screen", FUNC(rltennis_state::interrupt));
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE( RLT_REFRESH_RATE )
- MCFG_SCREEN_SIZE(320, 240)
- MCFG_SCREEN_VISIBLE_AREA(0,319, 0, 239)
- MCFG_SCREEN_UPDATE_DRIVER(rltennis_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(RLT_REFRESH_RATE);
+ screen.set_size(320, 240);
+ screen.set_visarea(0, 319, 0, 239);
+ screen.set_screen_update(FUNC(rltennis_state::screen_update));
+ screen.set_palette("palette");
- MCFG_PALETTE_ADD("palette", 256)
+ PALETTE(config, "palette").set_entries(256);
EEPROM_2864(config, "eeprom");
@@ -209,7 +209,7 @@ MACHINE_CONFIG_START(rltennis_state::rltennis)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
ROM_START( rltennis )
ROM_REGION( 0x100000, "maincpu", 0 )
diff --git a/src/mame/drivers/rm380z.cpp b/src/mame/drivers/rm380z.cpp
index 1b9c3dd745b..7b648e24133 100644
--- a/src/mame/drivers/rm380z.cpp
+++ b/src/mame/drivers/rm380z.cpp
@@ -234,22 +234,23 @@ uint32_t rm380z_state::screen_update_rm380z(screen_device &screen, bitmap_ind16
return 0;
}
-MACHINE_CONFIG_START(rm380z_state::rm380z)
+void rm380z_state::rm380z(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(RM380Z_MAINCPU_TAG, Z80, 16_MHz_XTAL / 4)
- MCFG_DEVICE_PROGRAM_MAP(rm380z_mem)
- MCFG_DEVICE_IO_MAP(rm380z_io)
+ Z80(config, m_maincpu, 16_MHz_XTAL / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rm380z_state::rm380z_mem);
+ m_maincpu->set_addrmap(AS_IO, &rm380z_state::rm380z_io);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
// according to videos and pictures of the real hardware, chars are spaced of at least 1 pixel
// and there is at least 1 pixel between each row of characters
- MCFG_SCREEN_SIZE((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1)))
- MCFG_SCREEN_VISIBLE_AREA(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1)
- MCFG_SCREEN_UPDATE_DRIVER(rm380z_state, screen_update_rm380z)
- MCFG_SCREEN_PALETTE("palette")
+ screen.set_size((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1)));
+ screen.set_visarea(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1);
+ screen.set_screen_update(FUNC(rm380z_state::screen_update_rm380z));
+ screen.set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -271,30 +272,31 @@ MACHINE_CONFIG_START(rm380z_state::rm380z)
/* keyboard */
generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0));
keyboard.set_keyboard_callback(FUNC(rm380z_state::keyboard_put));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(rm380z_state::rm480z)
+void rm380z_state::rm480z(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(RM380Z_MAINCPU_TAG, Z80, 16_MHz_XTAL / 4)
- MCFG_DEVICE_PROGRAM_MAP(rm480z_mem)
- MCFG_DEVICE_IO_MAP(rm480z_io)
+ Z80(config, m_maincpu, 16_MHz_XTAL / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rm380z_state::rm480z_mem);
+ m_maincpu->set_addrmap(AS_IO, &rm380z_state::rm480z_io);
MCFG_MACHINE_RESET_OVERRIDE(rm380z_state, rm480z)
/* video hardware */
-// MCFG_SCREEN_ADD("screen", RASTER)
-// MCFG_SCREEN_REFRESH_RATE(50)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
-// MCFG_SCREEN_SIZE((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1)))
-// MCFG_SCREEN_VISIBLE_AREA(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1)
-// MCFG_SCREEN_UPDATE_DRIVER(rm380z_state, screen_update_rm480z)
-// MCFG_SCREEN_PALETTE("palette")
+// screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+// screen.set_refresh_hz(50);
+// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+// screen.set_size((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1)));
+// screen.set_visarea(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1);
+// screen.set_screen_update(FUNC(rm380z_state::screen_update_rm480z));
+// screen.set_palette("palette");
-// MCFG_PALETTE_ADD_MONOCHROME("palette")
+// PALETTE(config, "palette", palette_device::MONOCHROME);
/* keyboard */
// generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0));
// keyboard.set_keyboard_callback(FUNC(rm380z_state::keyboard_put));
-MACHINE_CONFIG_END
+}
/* ROM definitions */
diff --git a/src/mame/drivers/rmnimbus.cpp b/src/mame/drivers/rmnimbus.cpp
index f8e367dda5d..5c9c3cffe24 100644
--- a/src/mame/drivers/rmnimbus.cpp
+++ b/src/mame/drivers/rmnimbus.cpp
@@ -127,7 +127,7 @@ void rmnimbus_state::nimbus(machine_config &config)
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(4.433619_MHz_XTAL * 2, 650, 0, 640, 260, 0, 250);
m_screen->set_screen_update(FUNC(rmnimbus_state::screen_update_nimbus));
- //MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE)
+ //m_screen->set_video_attributes(VIDEO_UPDATE_SCANLINE);
m_screen->set_palette(m_palette);
PALETTE(config, m_palette).set_entries(16);
diff --git a/src/mame/drivers/rmt32.cpp b/src/mame/drivers/rmt32.cpp
index f325012954e..3e93698e165 100644
--- a/src/mame/drivers/rmt32.cpp
+++ b/src/mame/drivers/rmt32.cpp
@@ -349,22 +349,23 @@ void mt32_state::mt32_map(address_map &map)
map(0xc000, 0xffff).bankrw("fixed");
}
-MACHINE_CONFIG_START(mt32_state::mt32)
- i8x9x_device &maincpu(P8098(config, "maincpu", 12_MHz_XTAL));
+void mt32_state::mt32(machine_config &config)
+{
+ i8x9x_device &maincpu(P8098(config, cpu, 12_MHz_XTAL));
maincpu.set_addrmap(AS_PROGRAM, &mt32_state::mt32_map);
maincpu.ach7_cb().set_ioport("A7");
maincpu.serial_tx_cb().set(FUNC(mt32_state::midi_w));
maincpu.in_p0_cb().set(FUNC(mt32_state::port0_r));
- RAM( config, "ram" ).set_default_size( "32K" );
+ RAM(config, ram).set_default_size("32K");
- MCFG_SCREEN_ADD( "screen", LCD )
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_UPDATE_DRIVER(mt32_state, screen_update)
-// MCFG_SCREEN_SIZE(20*6-1, 9)
- MCFG_SCREEN_SIZE(20*6-1, (20*6-1)*3/4)
- MCFG_SCREEN_VISIBLE_AREA(0, 20*6-2, 0, (20*6-1)*3/4-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_screen_update(FUNC(mt32_state::screen_update));
+// screen.set_size(20*6-1, 9);
+ screen.set_size(20*6-1, (20*6-1)*3/4);
+ screen.set_visarea(0, 20*6-2, 0, (20*6-1)*3/4-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(mt32_state::mt32_palette), 2);
@@ -373,7 +374,7 @@ MACHINE_CONFIG_START(mt32_state::mt32)
TIMER(config, midi_timer).configure_generic(FUNC(mt32_state::midi_timer_cb));
TIMER(config, "samples_timer").configure_periodic(FUNC(mt32_state::samples_timer_cb), attotime::from_hz(32000*2));
-MACHINE_CONFIG_END
+}
ROM_START( mt32 )
ROM_REGION( 0x10000, "maincpu", 0 )
diff --git a/src/mame/drivers/rockrage.cpp b/src/mame/drivers/rockrage.cpp
index 81abbeb1508..803b9859ffa 100644
--- a/src/mame/drivers/rockrage.cpp
+++ b/src/mame/drivers/rockrage.cpp
@@ -248,26 +248,26 @@ void rockrage_state::machine_reset()
m_vreg = 0;
}
-MACHINE_CONFIG_START(rockrage_state::rockrage)
-
+void rockrage_state::rockrage(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", HD6309E, XTAL(24'000'000) / 8)
- MCFG_DEVICE_PROGRAM_MAP(rockrage_map)
+ HD6309E(config, m_maincpu, XTAL(24'000'000) / 8);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rockrage_state::rockrage_map);
- MCFG_DEVICE_ADD("audiocpu", MC6809E, XTAL(24'000'000) / 16)
- MCFG_DEVICE_PROGRAM_MAP(rockrage_sound_map)
+ MC6809E(config, m_audiocpu, XTAL(24'000'000) / 16);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &rockrage_state::rockrage_sound_map);
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rockrage_state, screen_update_rockrage)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rockrage_state, vblank_irq))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(rockrage_state::screen_update_rockrage));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(rockrage_state::vblank_irq));
K007342(config, m_k007342, 0);
m_k007342->set_gfxnum(0);
@@ -292,11 +292,11 @@ MACHINE_CONFIG_START(rockrage_state::rockrage)
YM2151(config, "ymsnd", 3579545).add_route(0, "lspeaker", 0.60).add_route(1, "rspeaker", 0.60);
- MCFG_DEVICE_ADD("vlm", VLM5030, 3579545)
- MCFG_DEVICE_ADDRESS_MAP(0, rockrage_vlm_map)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60)
-MACHINE_CONFIG_END
+ VLM5030(config, m_vlm, 3579545);
+ m_vlm->set_addrmap(0, &rockrage_state::rockrage_vlm_map);
+ m_vlm->add_route(ALL_OUTPUTS, "lspeaker", 0.60);
+ m_vlm->add_route(ALL_OUTPUTS, "rspeaker", 0.60);
+}
/***************************************************************************
diff --git a/src/mame/drivers/rocnrope.cpp b/src/mame/drivers/rocnrope.cpp
index d112e720d84..2518a36dfab 100644
--- a/src/mame/drivers/rocnrope.cpp
+++ b/src/mame/drivers/rocnrope.cpp
@@ -206,11 +206,11 @@ WRITE_LINE_MEMBER(rocnrope_state::vblank_irq)
m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
}
-MACHINE_CONFIG_START(rocnrope_state::rocnrope)
-
+void rocnrope_state::rocnrope(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", KONAMI1, MASTER_CLOCK / 3 / 4) /* Verified in schematics */
- MCFG_DEVICE_PROGRAM_MAP(rocnrope_map)
+ KONAMI1(config, m_maincpu, MASTER_CLOCK / 3 / 4); /* Verified in schematics */
+ m_maincpu->set_addrmap(AS_PROGRAM, &rocnrope_state::rocnrope_map);
ls259_device &mainlatch(LS259(config, "mainlatch")); // B2
mainlatch.q_out_cb<0>().set(FUNC(rocnrope_state::flip_screen_w));
@@ -223,21 +223,21 @@ MACHINE_CONFIG_START(rocnrope_state::rocnrope)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rocnrope_state, screen_update_rocnrope)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rocnrope_state, vblank_irq))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(rocnrope_state::screen_update_rocnrope));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(rocnrope_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rocnrope);
PALETTE(config, m_palette, FUNC(rocnrope_state::rocnrope_palette), 16*16+16*16, 32);
/* sound hardware */
TIMEPLT_AUDIO(config, "timeplt_audio");
-MACHINE_CONFIG_END
+}
/*************************************
*
diff --git a/src/mame/drivers/rohga.cpp b/src/mame/drivers/rohga.cpp
index 1a0bacf9abd..da1d4c8d39d 100644
--- a/src/mame/drivers/rohga.cpp
+++ b/src/mame/drivers/rohga.cpp
@@ -871,12 +871,12 @@ DECOSPR_COLOUR_CB_MEMBER(rohga_state::schmeisr_col_callback)
return colour;
}
-MACHINE_CONFIG_START(rohga_state::rohga)
-
+void rohga_state::rohga(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 14000000)
- MCFG_DEVICE_PROGRAM_MAP(rohga_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert)
+ M68000(config, m_maincpu, 14000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::rohga_map);
+ m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert));
H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */
m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map);
@@ -884,18 +884,18 @@ MACHINE_CONFIG_START(rohga_state::rohga)
m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0);
/* video hardware */
- MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16)
+ BUFFERED_SPRITERAM16(config, m_spriteram[0]);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(529));
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(rohga_state::screen_update_rohga));
+ screen.set_palette(m_palette);
GFXDECODE(config, "gfxdecode", m_palette, gfx_rohga);
- MCFG_PALETTE_ADD("palette", 2048)
+ PALETTE(config, m_palette).set_entries(2048);
DECOCOMN(config, m_decocomn, 0);
m_decocomn->set_palette_tag(m_palette);
@@ -954,21 +954,21 @@ MACHINE_CONFIG_START(rohga_state::rohga)
ymsnd.add_route(0, "lspeaker", 0.78);
ymsnd.add_route(1, "rspeaker", 0.78);
- MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
+ OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH);
+ m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(rohga_state::wizdfire)
+ OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
+ m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40);
+ m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40);
+}
+void rohga_state::wizdfire(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 14000000)
- MCFG_DEVICE_PROGRAM_MAP(wizdfire_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert)
+ M68000(config, m_maincpu, 14000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::wizdfire_map);
+ m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert));
H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */
m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map);
@@ -976,18 +976,18 @@ MACHINE_CONFIG_START(rohga_state::wizdfire)
m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0);
/* video hardware */
- MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16)
- MCFG_DEVICE_ADD("spriteram2", BUFFERED_SPRITERAM16)
+ BUFFERED_SPRITERAM16(config, m_spriteram[0]);
+ BUFFERED_SPRITERAM16(config, m_spriteram[1]);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_wizdfire)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(529));
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(rohga_state::screen_update_wizdfire));
GFXDECODE(config, "gfxdecode", m_palette, gfx_wizdfire);
- MCFG_PALETTE_ADD("palette", 2048)
+ PALETTE(config, m_palette).set_entries(2048);
DECOCOMN(config, m_decocomn, 0);
m_decocomn->set_palette_tag(m_palette);
@@ -1051,21 +1051,21 @@ MACHINE_CONFIG_START(rohga_state::wizdfire)
ymsnd.add_route(0, "lspeaker", 0.80);
ymsnd.add_route(1, "rspeaker", 0.80);
- MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-
- MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH);
+ m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
-MACHINE_CONFIG_START(rohga_state::nitrobal)
+ OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
+ m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40);
+ m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40);
+}
+void rohga_state::nitrobal(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 14000000)
- MCFG_DEVICE_PROGRAM_MAP(nitrobal_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert)
+ M68000(config, m_maincpu, 14000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::nitrobal_map);
+ m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert));
H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */
m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map);
@@ -1073,18 +1073,18 @@ MACHINE_CONFIG_START(rohga_state::nitrobal)
m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0);
/* video hardware */
- MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16)
- MCFG_DEVICE_ADD("spriteram2", BUFFERED_SPRITERAM16)
+ BUFFERED_SPRITERAM16(config, m_spriteram[0]);
+ BUFFERED_SPRITERAM16(config, m_spriteram[1]);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_nitrobal)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(529));
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(rohga_state::screen_update_nitrobal));
GFXDECODE(config, "gfxdecode", m_palette, gfx_wizdfire);
- MCFG_PALETTE_ADD("palette", 2048)
+ PALETTE(config, m_palette).set_entries(2048);
DECOCOMN(config, m_decocomn, 0);
m_decocomn->set_palette_tag(m_palette);
@@ -1149,21 +1149,21 @@ MACHINE_CONFIG_START(rohga_state::nitrobal)
ymsnd.add_route(0, "lspeaker", 0.80);
ymsnd.add_route(1, "rspeaker", 0.80);
- MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-
- MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH);
+ m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
-MACHINE_CONFIG_START(rohga_state::schmeisr)
+ OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
+ m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40);
+ m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40);
+}
+void rohga_state::schmeisr(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 14000000)
- MCFG_DEVICE_PROGRAM_MAP(schmeisr_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert)
+ M68000(config, m_maincpu, 14000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::schmeisr_map);
+ m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert));
H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */
m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map);
@@ -1171,18 +1171,18 @@ MACHINE_CONFIG_START(rohga_state::schmeisr)
m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0);
/* video hardware */
- MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16)
+ BUFFERED_SPRITERAM16(config, m_spriteram[0]);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(529));
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(rohga_state::screen_update_rohga));
+ screen.set_palette(m_palette);
GFXDECODE(config, "gfxdecode", m_palette, gfx_schmeisr);
- MCFG_PALETTE_ADD("palette", 2048)
+ PALETTE(config, m_palette).set_entries(2048);
DECOCOMN(config, m_decocomn, 0);
m_decocomn->set_palette_tag(m_palette);
@@ -1241,24 +1241,24 @@ MACHINE_CONFIG_START(rohga_state::schmeisr)
ymsnd.add_route(0, "lspeaker", 0.80);
ymsnd.add_route(1, "rspeaker", 0.80);
- MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
+ OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH);
+ m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
+ m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40);
+ m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40);
+}
-MACHINE_CONFIG_START(rohga_state::hangzo)
+void rohga_state::hangzo(machine_config &config)
+{
schmeisr(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(hangzo_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::hangzo_map);
+}
/**********************************************************************************/
diff --git a/src/mame/drivers/rollext.cpp b/src/mame/drivers/rollext.cpp
index 57de06bd0ea..8a5af16a441 100644
--- a/src/mame/drivers/rollext.cpp
+++ b/src/mame/drivers/rollext.cpp
@@ -543,25 +543,26 @@ void rollext_state::machine_start()
}
-MACHINE_CONFIG_START(rollext_state::rollext)
- MCFG_DEVICE_ADD("maincpu", TMS32082_MP, 60000000)
- MCFG_DEVICE_PROGRAM_MAP(memmap)
- //MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rollext_state, vblank_interrupt)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(rollext_state, irq1_line_assert, 60)
- //MCFG_DEVICE_PERIODIC_INT_DRIVER(rollext_state, irq3_line_assert, 500)
+void rollext_state::rollext(machine_config &config)
+{
+ TMS32082_MP(config, m_maincpu, 60000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rollext_state::memmap);
+ //m_maincpu->set_vblank_int("screen", FUNC(rollext_state::vblank_interrupt));
+ m_maincpu->set_periodic_int(FUNC(rollext_state::irq1_line_assert), attotime::from_hz(60));
+ //m_maincpu->set_periodic_int(FUNC(rollext_state::irq3_line_assert), attotime::from_hz(500));
- MCFG_DEVICE_ADD("pp0", TMS32082_PP, 60000000)
- MCFG_DEVICE_PROGRAM_MAP(memmap);
+ tms32082_pp_device &pp0(TMS32082_PP(config, "pp0", 60000000));
+ pp0.set_addrmap(AS_PROGRAM, &rollext_state::memmap);
config.m_minimum_quantum = attotime::from_hz(100);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(512, 384)
- MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
- MCFG_SCREEN_UPDATE_DRIVER(rollext_state, screen_update)
-MACHINE_CONFIG_END
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(512, 384);
+ m_screen->set_visarea(0, 511, 0, 383);
+ m_screen->set_screen_update(FUNC(rollext_state::screen_update));
+}
INTERRUPT_GEN_MEMBER(rollext_state::vblank_interrupt)
diff --git a/src/mame/drivers/rollrace.cpp b/src/mame/drivers/rollrace.cpp
index b9e4655c71c..b05c7776697 100644
--- a/src/mame/drivers/rollrace.cpp
+++ b/src/mame/drivers/rollrace.cpp
@@ -249,15 +249,15 @@ INTERRUPT_GEN_MEMBER(rollrace_state::sound_timer_irq)
device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
-MACHINE_CONFIG_START(rollrace_state::rollrace)
-
+void rollrace_state::rollrace(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,XTAL(24'000'000)/8) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(rollrace_map)
+ Z80(config, m_maincpu, XTAL(24'000'000)/8); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &rollrace_state::rollrace_map);
- MCFG_DEVICE_ADD("audiocpu", Z80,XTAL(24'000'000)/16) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(rollrace_sound_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(rollrace_state, sound_timer_irq, 4*60)
+ z80_device &audiocpu(Z80(config, "audiocpu", XTAL(24'000'000)/16)); /* verified on pcb */
+ audiocpu.set_addrmap(AS_PROGRAM, &rollrace_state::rollrace_sound_map);
+ audiocpu.set_periodic_int(FUNC(rollrace_state::sound_timer_irq), attotime::from_hz(4*60));
ls259_device &mainlatch(LS259(config, "mainlatch"));
mainlatch.q_out_cb<0>().set(FUNC(rollrace_state::flipx_w));
@@ -269,14 +269,14 @@ MACHINE_CONFIG_START(rollrace_state::rollrace)
mainlatch.q_out_cb<6>().set(FUNC(rollrace_state::spritebank_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0,256-1,16, 255-16)
- MCFG_SCREEN_UPDATE_DRIVER(rollrace_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rollrace_state, vblank_irq))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 256-1, 16, 255-16);
+ screen.set_screen_update(FUNC(rollrace_state::screen_update));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(rollrace_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rollrace);
PALETTE(config, m_palette, FUNC(rollrace_state::rollrace_palette), 256);
@@ -292,16 +292,16 @@ MACHINE_CONFIG_START(rollrace_state::rollrace)
AY8910(config, "ay2", XTAL(24'000'000)/16).add_route(ALL_OUTPUTS, "rspeaker", 0.10); /* verified on pcb */
AY8910(config, "ay3", XTAL(24'000'000)/16).add_route(ALL_OUTPUTS, "lspeaker", 0.10); /* verified on pcb */
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(rollrace_state::rollace2)
+void rollrace_state::rollace2(machine_config &config)
+{
rollrace(config);
/* basic machine hardware */
-// MCFG_SCREEN_MODIFY("screen")
-// MCFG_SCREEN_VISIBLE_AREA(0,256-1,16, 255-16)
-MACHINE_CONFIG_END
+// subdevice<screen_device>("screen")->set_visarea(0, 256-1, 16, 255-16);
+}
/***************************************************************************
diff --git a/src/mame/drivers/ron.cpp b/src/mame/drivers/ron.cpp
index 2bade072443..a2f6d8d91b2 100644
--- a/src/mame/drivers/ron.cpp
+++ b/src/mame/drivers/ron.cpp
@@ -486,12 +486,12 @@ WRITE8_MEMBER(ron_state::ay_pa_w)
{
}
-MACHINE_CONFIG_START(ron_state::ron)
-
+void ron_state::ron(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(ron_map)
- MCFG_DEVICE_IO_MAP(ron_io)
+ Z80(config, m_maincpu, MAIN_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ron_state::ron_map);
+ m_maincpu->set_addrmap(AS_IO, &ron_state::ron_io);
I8035(config, m_audiocpu, SOUND_CLOCK);
m_audiocpu->set_addrmap(AS_PROGRAM, &ron_state::ron_audio_map);
@@ -503,11 +503,11 @@ MACHINE_CONFIG_START(ron_state::ron)
m_audiocpu->t1_in_cb().set(FUNC(ron_state::audio_t1_r));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_UPDATE_DRIVER(ron_state, screen_update)
- MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 320, 0, 256, 264, 0, 240)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, ron_state, vblank_irq))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_screen_update(FUNC(ron_state::screen_update));
+ screen.set_raw(VIDEO_CLOCK, 320, 0, 256, 264, 0, 240);
+ screen.set_palette("palette");
+ screen.screen_vblank().set(FUNC(ron_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, "palette", gfx_ron);
@@ -519,7 +519,7 @@ MACHINE_CONFIG_START(ron_state::ron)
AY8910(config, m_ay, 0); // T0 CLK from I8035 (not verified)
m_ay->add_route(ALL_OUTPUTS, "mono", 0.30);
m_ay->port_a_write_callback().set(FUNC(ron_state::ay_pa_w));
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/roul.cpp b/src/mame/drivers/roul.cpp
index 1857d4bb465..51e23dcbb38 100644
--- a/src/mame/drivers/roul.cpp
+++ b/src/mame/drivers/roul.cpp
@@ -312,27 +312,28 @@ static INPUT_PORTS_START( roul )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
-MACHINE_CONFIG_START(roul_state::roul)
+void roul_state::roul(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 4000000)
- MCFG_DEVICE_PROGRAM_MAP(roul_map)
- MCFG_DEVICE_IO_MAP(roul_cpu_io_map)
+ Z80(config, m_maincpu, 4000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &roul_state::roul_map);
+ m_maincpu->set_addrmap(AS_IO, &roul_state::roul_cpu_io_map);
- MCFG_DEVICE_ADD("soundcpu", Z80, 4000000)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_IO_MAP(sound_cpu_io_map)
+ Z80(config, m_soundcpu, 4000000);
+ m_soundcpu->set_addrmap(AS_PROGRAM, &roul_state::sound_map);
+ m_soundcpu->set_addrmap(AS_IO, &roul_state::sound_cpu_io_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(roul_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(roul_state::screen_update));
+ screen.set_palette("palette");
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI);
PALETTE(config, "palette", FUNC(roul_state::roul_palette), 0x100);
@@ -341,7 +342,7 @@ MACHINE_CONFIG_START(roul_state::roul)
GENERIC_LATCH_8(config, m_soundlatch);
AY8910(config, "aysnd", 1000000).add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
ROM_START(roul)
ROM_REGION( 0x10000, "maincpu", 0 )
diff --git a/src/mame/drivers/royalmah.cpp b/src/mame/drivers/royalmah.cpp
index d6d61f4ff71..e7911dd960b 100644
--- a/src/mame/drivers/royalmah.cpp
+++ b/src/mame/drivers/royalmah.cpp
@@ -3532,26 +3532,26 @@ static INPUT_PORTS_START( mjvegasa )
INPUT_PORTS_END
-MACHINE_CONFIG_START(royalmah_state::royalmah)
-
+void royalmah_state::royalmah(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, Z80, 18432000/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(royalmah_map)
- MCFG_DEVICE_IO_MAP(royalmah_iomap)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", royalmah_state, irq0_line_hold)
+ Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::royalmah_map);
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::royalmah_iomap);
+ m_maincpu->set_vblank_int("screen", FUNC(royalmah_state::irq0_line_hold));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
PALETTE(config, "palette", FUNC(royalmah_state::royalmah_palette), 16*4);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_UPDATE_DRIVER(royalmah_state, screen_update_royalmah)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 255, 8, 247);
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_screen_update(FUNC(royalmah_state::screen_update_royalmah));
+ screen.set_palette("palette");
/* sound hardware */
SPEAKER(config, "speaker").front_center();
@@ -3560,32 +3560,32 @@ MACHINE_CONFIG_START(royalmah_state::royalmah)
m_ay->port_a_read_callback().set(FUNC(royalmah_state::player_1_port_r));
m_ay->port_b_read_callback().set(FUNC(royalmah_state::player_2_port_r));
m_ay->add_route(ALL_OUTPUTS, "speaker", 0.33);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(royalmah_state::janoh)
+void royalmah_state::janoh(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_PROGRAM_MAP(janoh_map)
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::janoh_map);
- MCFG_DEVICE_ADD("sub", Z80, 4000000) /* 4 MHz ? */
- MCFG_DEVICE_PROGRAM_MAP(janoh_sub_map)
- MCFG_DEVICE_IO_MAP(janoh_sub_iomap)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", royalmah_state, irq0_line_hold)
-MACHINE_CONFIG_END
+ z80_device &sub(Z80(config, "sub", 4000000)); /* 4 MHz ? */
+ sub.set_addrmap(AS_PROGRAM, &royalmah_state::janoh_sub_map);
+ sub.set_addrmap(AS_IO, &royalmah_state::janoh_sub_iomap);
+ sub.set_vblank_int("screen", FUNC(royalmah_state::irq0_line_hold));
+}
-MACHINE_CONFIG_START(royalmah_state::jansou)
+void royalmah_state::jansou(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(jansou_map)
- MCFG_DEVICE_IO_MAP(royalmah_iomap)
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::jansou_map);
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::royalmah_iomap);
- MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4.000 MHz */
- MCFG_DEVICE_PROGRAM_MAP(jansou_sub_map)
- MCFG_DEVICE_IO_MAP(jansou_sub_iomap)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(royalmah_state, irq0_line_hold, 4000000/512)
+ Z80(config, m_audiocpu, 4000000); /* 4.000 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &royalmah_state::jansou_sub_map);
+ m_audiocpu->set_addrmap(AS_IO, &royalmah_state::jansou_sub_iomap);
+ m_audiocpu->set_periodic_int(FUNC(royalmah_state::irq0_line_hold), attotime::from_hz(4000000/512));
GENERIC_LATCH_8(config, m_soundlatch);
@@ -3593,74 +3593,74 @@ MACHINE_CONFIG_START(royalmah_state::jansou)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(royalmah_state::dondenmj)
+void royalmah_state::dondenmj(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_IO_MAP(dondenmj_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::dondenmj_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::tahjong)
+void royalmah_state::tahjong(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_PROGRAM_MAP(tahjong_map)
- MCFG_DEVICE_IO_MAP(tahjong_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::tahjong_map);
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::tahjong_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::makaijan)
+void royalmah_state::makaijan(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_IO_MAP(makaijan_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::makaijan_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::daisyari)
+void royalmah_state::daisyari(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_IO_MAP(daisyari_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::daisyari_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::mjclub)
+void royalmah_state::mjclub(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_IO_MAP(mjclub_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjclub_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::mjyarou)
+void royalmah_state::mjyarou(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(mjyarou_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjyarou_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::ippatsu)
+void royalmah_state::ippatsu(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(ippatsu_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::ippatsu_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::janyoup2)
+void royalmah_state::janyoup2(machine_config &config)
+{
ippatsu(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(XTAL(18'432'000)/4) // unknown divider
- MCFG_DEVICE_IO_MAP(janyoup2_iomap)
+ m_maincpu->set_clock(XTAL(18'432'000)/4); // unknown divider
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::janyoup2_iomap);
h46505_device &crtc(H46505(config, "crtc", XTAL(18'432'000)/12)); // unknown divider
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(4);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(royalmah_state::seljan)
+void royalmah_state::seljan(machine_config &config)
+{
janyoup2(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(seljan_map)
- MCFG_DEVICE_IO_MAP(seljan_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::seljan_map);
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::seljan_iomap);
+}
INTERRUPT_GEN_MEMBER(royalmah_state::suzume_irq)
{
@@ -3668,12 +3668,12 @@ INTERRUPT_GEN_MEMBER(royalmah_state::suzume_irq)
device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
-MACHINE_CONFIG_START(royalmah_state::suzume)
+void royalmah_state::suzume(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(suzume_iomap)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", royalmah_state, suzume_irq)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::suzume_iomap);
+ m_maincpu->set_vblank_int("screen", FUNC(royalmah_state::suzume_irq));
+}
void royalmah_state::jongshin(machine_config &config)
{
@@ -3681,41 +3681,41 @@ void royalmah_state::jongshin(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &royalmah_state::jongshin_iomap);
}
-MACHINE_CONFIG_START(royalmah_state::tontonb)
+void royalmah_state::tontonb(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(tontonb_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::tontonb_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::mjdiplob)
+void royalmah_state::mjdiplob(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(mjdiplob_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjdiplob_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::majs101b)
+void royalmah_state::majs101b(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(majs101b_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::majs101b_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::mjapinky)
+void royalmah_state::mjapinky(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mjapinky_map)
- MCFG_DEVICE_IO_MAP(mjapinky_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::mjapinky_map);
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjapinky_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::mjderngr)
+void royalmah_state::mjderngr(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(mjderngr_iomap)
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjderngr_iomap);
/* video hardware */
auto &palette(*subdevice<palette_device>("palette"));
palette.set_entries(16*32);
palette.set_init(FUNC(royalmah_state::mjderngr_palette));
-MACHINE_CONFIG_END
+}
void royalmah_state::janptr96(machine_config &config)
{
@@ -3737,7 +3737,8 @@ void royalmah_state::janptr96(machine_config &config)
}
-MACHINE_CONFIG_START(royalmah_state::mjifb)
+void royalmah_state::mjifb(machine_config &config)
+{
mjderngr(config);
tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 8000000)); /* ? */
tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjifb_map);
@@ -3750,13 +3751,14 @@ MACHINE_CONFIG_START(royalmah_state::mjifb)
tmp.port_read<8>().set(FUNC(royalmah_state::mjifb_p8_r));
tmp.port_write<8>().set(FUNC(royalmah_state::mjifb_p8_w));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
-MACHINE_CONFIG_END
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0, 255, 8, 255-8);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+}
-MACHINE_CONFIG_START(royalmah_state::mjdejavu)
+void royalmah_state::mjdejavu(machine_config &config)
+{
mjderngr(config);
tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 8000000)); /* ? */
tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjdejavu_map);
@@ -3769,43 +3771,46 @@ MACHINE_CONFIG_START(royalmah_state::mjdejavu)
tmp.port_read<8>().set(FUNC(royalmah_state::mjifb_p8_r));
tmp.port_write<8>().set(FUNC(royalmah_state::mjifb_p8_w));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
-MACHINE_CONFIG_END
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0, 255, 8, 255-8);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+}
-MACHINE_CONFIG_START(royalmah_state::mjtensin)
+void royalmah_state::mjtensin(machine_config &config)
+{
mjderngr(config);
tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 12000000)); /* ? */
tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjtensin_map);
tmp.port_read<3>().set(FUNC(royalmah_state::mjtensin_p3_r));
tmp.port_write<4>().set(FUNC(royalmah_state::mjtensin_p4_w));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0, 255, 8, 255-8);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
/* devices */
MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(royalmah_state::cafetime)
+void royalmah_state::cafetime(machine_config &config)
+{
mjderngr(config);
tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 12000000)); /* ? */
tmp.set_addrmap(AS_PROGRAM, &royalmah_state::cafetime_map);
tmp.port_write<3>().set(FUNC(royalmah_state::cafetime_p3_w));
tmp.port_write<4>().set(FUNC(royalmah_state::cafetime_p4_w));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0, 255, 8, 255-8);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
/* devices */
MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(royalmah_state::mjvegasa)
+void royalmah_state::mjvegasa(machine_config &config)
+{
mjderngr(config);
tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, XTAL(8'000'000))); /* ? */
tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjvegasa_map);
@@ -3813,13 +3818,13 @@ MACHINE_CONFIG_START(royalmah_state::mjvegasa)
tmp.port_write<3>().set(FUNC(royalmah_state::mjvegasa_p3_w));
tmp.port_write<4>().set(FUNC(royalmah_state::mjvegasa_p4_w));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0, 255, 8, 255-8);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
/* devices */
MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/rpunch.cpp b/src/mame/drivers/rpunch.cpp
index 6b16c5bd4d5..2e2b36e2ac7 100644
--- a/src/mame/drivers/rpunch.cpp
+++ b/src/mame/drivers/rpunch.cpp
@@ -457,14 +457,14 @@ GFXDECODE_END
*
*************************************/
-MACHINE_CONFIG_START(rpunch_state::rpunch)
-
+void rpunch_state::rpunch(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, MASTER_CLOCK/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ M68000(config, m_maincpu, MASTER_CLOCK/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rpunch_state::main_map);
- MCFG_DEVICE_ADD("audiocpu", Z80, MASTER_CLOCK/4)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
+ Z80(config, m_audiocpu, MASTER_CLOCK/4);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &rpunch_state::sound_map);
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set("soundirq", FUNC(input_merger_device::in_w<0>));
@@ -472,12 +472,12 @@ MACHINE_CONFIG_START(rpunch_state::rpunch)
INPUT_MERGER_ANY_HIGH(config, "soundirq").output_handler().set_inputline(m_audiocpu, 0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(304, 224)
- MCFG_SCREEN_VISIBLE_AREA(8, 303-8, 0, 223-8)
- MCFG_SCREEN_UPDATE_DRIVER(rpunch_state, screen_update_rpunch)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(304, 224);
+ m_screen->set_visarea(8, 303-8, 0, 223-8);
+ m_screen->set_screen_update(FUNC(rpunch_state::screen_update_rpunch));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rpunch);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
@@ -495,25 +495,25 @@ MACHINE_CONFIG_START(rpunch_state::rpunch)
ymsnd.add_route(0, "mono", 0.50);
ymsnd.add_route(1, "mono", 0.50);
- MCFG_DEVICE_ADD("upd", UPD7759)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-MACHINE_CONFIG_END
+ UPD7759(config, m_upd7759).add_route(ALL_OUTPUTS, "mono", 0.50);
+}
-MACHINE_CONFIG_START(rpunch_state::svolley)
+void rpunch_state::svolley(machine_config &config)
+{
rpunch(config);
MCFG_VIDEO_START_OVERRIDE(rpunch_state,svolley)
-MACHINE_CONFIG_END
+}
// c+p of above for now, bootleg hw, things need verifying
-MACHINE_CONFIG_START(rpunch_state::svolleybl)
-
+void rpunch_state::svolleybl(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, MASTER_CLOCK/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ M68000(config, m_maincpu, MASTER_CLOCK/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rpunch_state::main_map);
- MCFG_DEVICE_ADD("audiocpu", Z80, MASTER_CLOCK/4)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
+ Z80(config, m_audiocpu, MASTER_CLOCK/4);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &rpunch_state::sound_map);
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set("soundirq", FUNC(input_merger_device::in_w<0>));
@@ -521,12 +521,12 @@ MACHINE_CONFIG_START(rpunch_state::svolleybl)
INPUT_MERGER_ANY_HIGH(config, "soundirq").output_handler().set_inputline(m_audiocpu, 0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(304, 224)
- MCFG_SCREEN_VISIBLE_AREA(8, 303-8, 0, 223-8)
- MCFG_SCREEN_UPDATE_DRIVER(rpunch_state, screen_update_rpunch)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(304, 224);
+ m_screen->set_visarea(8, 303-8, 0, 223-8);
+ m_screen->set_screen_update(FUNC(rpunch_state::screen_update_rpunch));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_svolleybl);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
@@ -545,9 +545,8 @@ MACHINE_CONFIG_START(rpunch_state::svolleybl)
ymsnd.add_route(0, "mono", 0.50);
ymsnd.add_route(1, "mono", 0.50);
- MCFG_DEVICE_ADD("upd", UPD7759)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-MACHINE_CONFIG_END
+ UPD7759(config, m_upd7759).add_route(ALL_OUTPUTS, "mono", 0.50);
+}
diff --git a/src/mame/drivers/rt1715.cpp b/src/mame/drivers/rt1715.cpp
index 376471eb391..ce780064f3c 100644
--- a/src/mame/drivers/rt1715.cpp
+++ b/src/mame/drivers/rt1715.cpp
@@ -284,7 +284,8 @@ static const z80_daisy_config rt1715_daisy_chain[] =
{ nullptr }
};
-MACHINE_CONFIG_START(rt1715_state::rt1715)
+void rt1715_state::rt1715(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, 9.832_MHz_XTAL / 4);
m_maincpu->set_addrmap(AS_PROGRAM, &rt1715_state::rt1715_mem);
@@ -292,14 +293,14 @@ MACHINE_CONFIG_START(rt1715_state::rt1715)
m_maincpu->set_daisy_config(rt1715_daisy_chain);
/* keyboard */
- MCFG_DEVICE_ADD("keyboard", Z80, 683000)
- MCFG_DEVICE_PROGRAM_MAP(k7658_mem)
- MCFG_DEVICE_IO_MAP(k7658_io)
+ z80_device &keyboard(Z80(config, "keyboard", 683000));
+ keyboard.set_addrmap(AS_PROGRAM, &rt1715_state::k7658_mem);
+ keyboard.set_addrmap(AS_IO, &rt1715_state::k7658_io);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_UPDATE_DEVICE("a26", i8275_device, screen_update)
- MCFG_SCREEN_RAW_PARAMS(13.824_MHz_XTAL, 864, 0, 624, 320, 0, 300) // ?
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_screen_update("a26", FUNC(i8275_device::screen_update));
+ screen.set_raw(13.824_MHz_XTAL, 864, 0, 624, 320, 0, 300); // ?
GFXDECODE(config, "gfxdecode", "palette", gfx_rt1715);
PALETTE(config, "palette", FUNC(rt1715_state::rt1715_palette), 3);
@@ -320,11 +321,12 @@ MACHINE_CONFIG_START(rt1715_state::rt1715)
/* internal ram */
RAM(config, RAM_TAG).set_default_size("64K").set_default_value(0x00);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(rt1715_state::rt1715w)
+void rt1715_state::rt1715w(machine_config &config)
+{
rt1715(config);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/rx78.cpp b/src/mame/drivers/rx78.cpp
index 716d9bd0435..c6002549395 100644
--- a/src/mame/drivers/rx78.cpp
+++ b/src/mame/drivers/rx78.cpp
@@ -472,24 +472,23 @@ GFXDECODE_END
MACHINE_CONFIG_START(rx78_state::rx78)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, MASTER_CLOCK/7) // unknown divider
- MCFG_DEVICE_PROGRAM_MAP(rx78_mem)
- MCFG_DEVICE_IO_MAP(rx78_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rx78_state, irq0_line_hold)
+ Z80(config, m_maincpu, MASTER_CLOCK/7); // unknown divider
+ m_maincpu->set_addrmap(AS_PROGRAM, &rx78_state::rx78_mem);
+ m_maincpu->set_addrmap(AS_IO, &rx78_state::rx78_io);
+ m_maincpu->set_vblank_int("screen", FUNC(rx78_state::irq0_line_hold));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
-// MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
-// MCFG_SCREEN_SIZE(192, 184)
-// MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 184-1)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+// screen.set_refresh_hz(60);
+// screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+// screen.set_size(192, 184);
+// screen.set_visarea(0, 192-1, 0, 184-1);
/* guess: generic NTSC video timing at 256x224, system runs at 192x184, suppose with some border area to compensate */
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 442, 0, 256, 263, 0, 224)
- MCFG_SCREEN_UPDATE_DRIVER(rx78_state, screen_update)
+ screen.set_raw(MASTER_CLOCK/4, 442, 0, 256, 263, 0, 224);
+ screen.set_screen_update(FUNC(rx78_state::screen_update));
+ screen.set_palette("palette");
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_PALETTE_ADD("palette", 16+1) //+1 for the background color
+ PALETTE(config, m_palette).set_entries(16+1); //+1 for the background color
GFXDECODE(config, "gfxdecode", m_palette, gfx_rx78);
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "rx78_cart")
@@ -504,8 +503,7 @@ MACHINE_CONFIG_START(rx78_state::rx78)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
- MCFG_DEVICE_ADD("sn1", SN76489A, XTAL(28'636'363)/8) // unknown divider
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ SN76489A(config, "sn1", XTAL(28'636'363)/8).add_route(ALL_OUTPUTS, "mono", 0.50); // unknown divider
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("rx78");
diff --git a/src/mame/drivers/rzone.cpp b/src/mame/drivers/rzone.cpp
index 0052aa75c23..53305092ea2 100644
--- a/src/mame/drivers/rzone.cpp
+++ b/src/mame/drivers/rzone.cpp
@@ -242,8 +242,8 @@ INPUT_PORTS_END
***************************************************************************/
-MACHINE_CONFIG_START(rzone_state::rzbatfor)
-
+void rzone_state::rzbatfor(machine_config &config)
+{
/* basic machine hardware */
SM512(config, m_maincpu); // no external XTAL
m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w));
@@ -252,10 +252,10 @@ MACHINE_CONFIG_START(rzone_state::rzbatfor)
m_maincpu->write_r().set(FUNC(rzone_state::t2_write_r));
/* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(1368, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1368-1, 0, 1080-1)
+ screen_device &screen(SCREEN(config, "screen", "svg"));
+ screen.set_refresh_hz(50);
+ screen.set_size(1368, 1080);
+ screen.set_visarea(0, 1368-1, 0, 1080-1);
TIMER(config, m_led_off).configure_generic(FUNC(rzone_state::led_off_callback));
TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1));
@@ -263,12 +263,11 @@ MACHINE_CONFIG_START(rzone_state::rzbatfor)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(rzone_state::rztoshden)
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
+}
+void rzone_state::rztoshden(machine_config &config)
+{
/* basic machine hardware */
SM510(config, m_maincpu);
m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT);
@@ -278,10 +277,10 @@ MACHINE_CONFIG_START(rzone_state::rztoshden)
m_maincpu->write_r().set(FUNC(rzone_state::t1_write_r));
/* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(1392, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1392-1, 0, 1080-1)
+ screen_device &screen(SCREEN(config, "screen", "svg"));
+ screen.set_refresh_hz(50);
+ screen.set_size(1392, 1080);
+ screen.set_visarea(0, 1392-1, 0, 1080-1);
TIMER(config, m_led_off).configure_generic(FUNC(rzone_state::led_off_callback));
TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1));
@@ -289,12 +288,11 @@ MACHINE_CONFIG_START(rzone_state::rztoshden)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(rzone_state::rzindy500)
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
+}
+void rzone_state::rzindy500(machine_config &config)
+{
/* basic machine hardware */
SM510(config, m_maincpu); // no external XTAL
m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed
@@ -304,10 +302,10 @@ MACHINE_CONFIG_START(rzone_state::rzindy500)
m_maincpu->write_r().set(FUNC(rzone_state::t1_write_r));
/* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(1425, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1425-1, 0, 1080-1)
+ screen_device &screen(SCREEN(config, "screen", "svg"));
+ screen.set_refresh_hz(50);
+ screen.set_size(1425, 1080);
+ screen.set_visarea(0, 1425-1, 0, 1080-1);
TIMER(config, m_led_off).configure_generic(FUNC(rzone_state::led_off_callback));
TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1));
@@ -315,9 +313,8 @@ MACHINE_CONFIG_START(rzone_state::rzindy500)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
+}
diff --git a/src/mame/drivers/sc1.cpp b/src/mame/drivers/sc1.cpp
index 94dc6ce8c18..045bbd8f4ee 100644
--- a/src/mame/drivers/sc1.cpp
+++ b/src/mame/drivers/sc1.cpp
@@ -2,63 +2,87 @@
// copyright-holders:Sandro Ronco
/***************************************************************************
-Schachcomputer SC1
+Schachcomputer SC 1 driver
-2009-05-12 Skeleton driver.
+VEB Mikroelektronik's 1st chess computer. It was canceled before wide release.
-ToDo:
-- speaker
-- LEDs
+TODO:
+- speaker, it's very noisy if hooked up as it is now, missing enable-bit?
+ it still toggles matrix d1 if T(tone off) is pressed
+- LEDs, they're not on digit d7
- 7seg sometimes flashes
-
+- setting level doesn't work? game should boot with "PS 1"
****************************************************************************/
#include "emu.h"
#include "cpu/z80/z80.h"
#include "machine/z80pio.h"
-#include "sound/spkrdev.h"
+#include "sound/dac.h"
+#include "sound/volt_reg.h"
#include "speaker.h"
#include "sc1.lh"
+namespace {
+
class sc1_state : public driver_device
{
public:
- sc1_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag)
- , m_maincpu(*this, "maincpu")
- , m_speaker(*this, "speaker")
- , m_digits(*this, "digit%u", 0U)
+ sc1_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_pio(*this, "z80pio"),
+ m_dac(*this, "dac"),
+ m_keypad(*this, "LINE%u", 1),
+ m_digits(*this, "digit%u", 0U),
+ m_leds(*this, "led%u", 0U)
{ }
void sc1(machine_config &config);
+protected:
+ virtual void machine_start() override;
+
private:
- DECLARE_WRITE8_MEMBER( matrix_w );
- DECLARE_WRITE8_MEMBER( pio_port_a_w );
- DECLARE_READ8_MEMBER( pio_port_b_r );
+ required_device<cpu_device> m_maincpu;
+ required_device<z80pio_device> m_pio;
+ required_device<dac_bit_interface> m_dac;
+ required_ioport_array<8> m_keypad;
+
+ output_finder<4> m_digits;
+ output_finder<2> m_leds;
void sc1_io(address_map &map);
void sc1_mem(address_map &map);
uint8_t m_matrix;
- virtual void machine_start() override { m_digits.resolve(); }
- required_device<cpu_device> m_maincpu;
- required_device<speaker_sound_device> m_speaker;
- output_finder<4> m_digits;
+
+ DECLARE_WRITE8_MEMBER(matrix_w);
+ DECLARE_WRITE8_MEMBER(pio_port_a_w);
+ DECLARE_READ8_MEMBER(pio_port_b_r);
};
+void sc1_state::machine_start()
+{
+ m_digits.resolve();
+ m_leds.resolve();
+
+ m_matrix = 0;
+ save_item(NAME(m_matrix));
+}
+
/***************************************************************************
Display
***************************************************************************/
-WRITE8_MEMBER( sc1_state::pio_port_a_w )
+WRITE8_MEMBER(sc1_state::pio_port_a_w)
{
- uint8_t digit = bitswap<8>( data,3,4,6,0,1,2,7,5 ) & 0x7f;
+ // digit segment data
+ uint8_t digit = bitswap<8>(data,3,4,6,0,1,2,7,5) & 0x7f;
if (m_matrix & 0x04)
m_digits[3] = digit;
@@ -77,31 +101,23 @@ WRITE8_MEMBER( sc1_state::pio_port_a_w )
***************************************************************************/
-WRITE8_MEMBER( sc1_state::matrix_w )
+WRITE8_MEMBER(sc1_state::matrix_w)
{
+ // d1: speaker out
+ //m_dac->write(BIT(data, 1));
+
+ // keypad/led mux
m_matrix = data;
}
-READ8_MEMBER( sc1_state::pio_port_b_r )
+READ8_MEMBER(sc1_state::pio_port_b_r)
{
uint8_t data = 0;
- if (m_matrix & 0x01)
- data |= ioport("LINE1")->read();
- if (m_matrix & 0x02)
- data |= ioport("LINE2")->read();
- if (m_matrix & 0x04)
- data |= ioport("LINE3")->read();
- if (m_matrix & 0x08)
- data |= ioport("LINE4")->read();
- if (m_matrix & 0x10)
- data |= ioport("LINE5")->read();
- if (m_matrix & 0x20)
- data |= ioport("LINE6")->read();
- if (m_matrix & 0x40)
- data |= ioport("LINE7")->read();
- if (m_matrix & 0x80)
- data |= ioport("LINE8")->read();
+ // read keypad matrix
+ for (int i = 0; i < 8; i++)
+ if (BIT(m_matrix, i))
+ data |= m_keypad[i]->read();
return data;
}
@@ -118,50 +134,54 @@ void sc1_state::sc1_io(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
- map(0x80, 0x83).rw("z80pio", FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt));
+ map(0x80, 0x83).rw(m_pio, FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt));
map(0xfc, 0xfc).w(FUNC(sc1_state::matrix_w));
}
+
/* Input ports */
+
static INPUT_PORTS_START( sc1 )
PORT_START("LINE1")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_D)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_D)
PORT_START("LINE2")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_B)
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_F)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CODE(KEYCODE_B)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_F)
PORT_START("LINE3")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_C)
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_G)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CODE(KEYCODE_C)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_G)
PORT_START("LINE4")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_A)
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_E)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CODE(KEYCODE_A)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_CODE(KEYCODE_E)
PORT_START("LINE5")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_H)
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CE") PORT_CODE(KEYCODE_DEL)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CE") PORT_CODE(KEYCODE_R)
PORT_START("LINE6")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("K") PORT_CODE(KEYCODE_K)
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("K") PORT_CODE(KEYCODE_K)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
PORT_START("LINE7")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("P") PORT_CODE(KEYCODE_O)
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("W/S") PORT_CODE(KEYCODE_W)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("P") PORT_CODE(KEYCODE_O)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("W/S") PORT_CODE(KEYCODE_W)
PORT_START("LINE8")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("T") PORT_CODE(KEYCODE_T)
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C") PORT_CODE(KEYCODE_M)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("T") PORT_CODE(KEYCODE_T)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE)
INPUT_PORTS_END
+/* Machine config */
+
void sc1_state::sc1(machine_config &config)
{
/* basic machine hardware */
- Z80(config, m_maincpu, XTAL(4'000'000));
+ Z80(config, m_maincpu, 9.8304_MHz_XTAL/4); // U880 Z80 clone
m_maincpu->set_addrmap(AS_PROGRAM, &sc1_state::sc1_mem);
m_maincpu->set_addrmap(AS_IO, &sc1_state::sc1_io);
@@ -169,22 +189,28 @@ void sc1_state::sc1(machine_config &config)
config.set_default_layout(layout_sc1);
/* devices */
- z80pio_device& pio(Z80PIO(config, "z80pio", XTAL(4'000'000)));
- pio.out_pa_callback().set(FUNC(sc1_state::pio_port_a_w));
- pio.in_pb_callback().set(FUNC(sc1_state::pio_port_b_r));
+ Z80PIO(config, m_pio, 9.8304_MHz_XTAL/4);
+ m_pio->out_pa_callback().set(FUNC(sc1_state::pio_port_a_w));
+ m_pio->in_pb_callback().set(FUNC(sc1_state::pio_port_b_r));
/* sound hardware */
- SPEAKER(config, "mono").front_center();
- SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50);
+ SPEAKER(config, "speaker").front_center();
+ DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
}
+
/* ROM definition */
+
ROM_START( sc1 )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "sc1.rom", 0x0000, 0x1000, CRC(26965b23) SHA1(01568911446eda9f05ec136df53da147b7c6f2bf))
ROM_END
+} // anonymous namespace
+
+
/* Driver */
-// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 1989, sc1, 0, 0, sc1, sc1, sc1_state, empty_init, "VEB Mikroelektronik Erfurt", "Schachcomputer SC1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
+COMP( 1981, sc1, 0, 0, sc1, sc1, sc1_state, empty_init, "VEB Mikroelektronik Erfurt", "Schachcomputer SC 1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/sc2.cpp b/src/mame/drivers/sc2.cpp
index 53e5fcd6699..10d59c906c4 100644
--- a/src/mame/drivers/sc2.cpp
+++ b/src/mame/drivers/sc2.cpp
@@ -2,67 +2,102 @@
// copyright-holders:Sandro Ronco
/***************************************************************************
- Schachcomputer SC2
+Schachcomputer SC 2 driver
- Note:
- The HW is very similar to Fidelity Chess Challenger series (see fidelz80.c)
+VEB Mikroelektronik's 2nd chess computer. The chess program is based on
+Fidelity Chess Challenger 10.
- 12/05/2009 Skeleton driver.
+keypad legend:
+
+R - Rückstellen (reset)
+K - Programmstufen (level)
+W - Figurenwahl (white/black)
+P - Problemeingabe (problem mode)
+T - Tonabschaltung (sound on/off)
+L - Löschen (clear)
+Q - Quittierung (enter)
+
+Fidelity CC10 synonyms: RE, LV, RV, PB, ♪, CL, EN
****************************************************************************/
#include "emu.h"
#include "cpu/z80/z80.h"
-#include "sound/beep.h"
#include "machine/z80pio.h"
+#include "sound/dac.h"
+#include "sound/volt_reg.h"
#include "speaker.h"
#include "sc2.lh"
+
+namespace {
+
class sc2_state : public driver_device
{
public:
- sc2_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_beep(*this, "beeper"),
+ sc2_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
+ m_pio(*this, "z80pio"),
+ m_dac(*this, "dac"),
+ m_keypad(*this, "LINE%u", 1),
m_digits(*this, "digit%u", 0U),
m_leds(*this, "led%u", 0U)
{ }
void sc2(machine_config &config);
-private:
- DECLARE_READ8_MEMBER(pio_port_a_r);
- DECLARE_READ8_MEMBER(pio_port_b_r);
- DECLARE_WRITE8_MEMBER(pio_port_a_w);
- DECLARE_WRITE8_MEMBER(pio_port_b_w);
- DECLARE_READ8_MEMBER(sc2_beep);
- uint8_t m_kp_matrix;
- uint8_t m_led_7seg_data[4];
- uint8_t m_led_selected;
- uint8_t m_digit_data;
- uint8_t m_beep_state;
- void sc2_update_display();
+ // Rückstellen is also tied to CPU RESET
+ DECLARE_INPUT_CHANGED_MEMBER(reset_button) { m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); }
+
+protected:
virtual void machine_start() override;
- virtual void machine_reset() override;
- void sc2_io(address_map &map);
- void sc2_mem(address_map &map);
- required_device<beep_device> m_beep;
+private:
required_device<cpu_device> m_maincpu;
+ required_device<z80pio_device> m_pio;
+ required_device<dac_bit_interface> m_dac;
+ required_ioport_array<4> m_keypad;
+
output_finder<4> m_digits;
output_finder<2> m_leds;
+
+ void sc2_io(address_map &map);
+ void sc2_mem(address_map &map);
+
+ uint8_t m_kp_matrix;
+ uint8_t m_led_selected;
+ uint8_t m_digit_data;
+
+ void sc2_update_display();
+ DECLARE_READ8_MEMBER(pio_port_b_r);
+ DECLARE_WRITE8_MEMBER(pio_port_a_w);
+ DECLARE_WRITE8_MEMBER(pio_port_b_w);
+ DECLARE_READ8_MEMBER(speaker_w);
+ template<int State> DECLARE_READ8_MEMBER(speaker_w);
};
-READ8_MEMBER( sc2_state::sc2_beep )
+void sc2_state::machine_start()
{
- //if (!machine().side_effects_disabled())
- {
- m_beep_state = ~m_beep_state;
+ m_digits.resolve();
+ m_leds.resolve();
- m_beep->set_state(m_beep_state);
- }
+ m_kp_matrix = 0;
+ m_led_selected = 0;
+ m_digit_data = 0;
+
+ save_item(NAME(m_kp_matrix));
+ save_item(NAME(m_led_selected));
+ save_item(NAME(m_digit_data));
+}
+
+
+template<int State>
+READ8_MEMBER( sc2_state::speaker_w )
+{
+ if (!machine().side_effects_disabled())
+ m_dac->write(State);
return 0xff;
}
@@ -73,136 +108,55 @@ void sc2_state::sc2_mem(address_map &map)
map(0x0000, 0x0fff).rom();
map(0x1000, 0x13ff).ram();
map(0x2000, 0x33ff).rom();
- map(0x3c00, 0x3c00).r(FUNC(sc2_state::sc2_beep));
+ map(0x3400, 0x3400).r(FUNC(sc2_state::speaker_w<1>));
+ map(0x3c00, 0x3c00).r(FUNC(sc2_state::speaker_w<0>));
}
void sc2_state::sc2_io(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
- map(0x00, 0x03).mirror(0xfc).rw("z80pio", FUNC(z80pio_device::read), FUNC(z80pio_device::write));
-}
-
-/* Input ports */
-static INPUT_PORTS_START( sc2 )
- PORT_START("LINE1")
- PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("T") PORT_CODE(KEYCODE_T)
- PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("L") PORT_CODE(KEYCODE_L)
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q)
-
- PORT_START("LINE2")
- PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A1") PORT_CODE(KEYCODE_1)
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B2") PORT_CODE(KEYCODE_2)
- PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3)
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4") PORT_CODE(KEYCODE_4)
-
- PORT_START("LINE3")
- PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E5") PORT_CODE(KEYCODE_5)
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6)
- PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7)
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8)
-
- PORT_START("LINE4")
- PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("K") PORT_CODE(KEYCODE_K)
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("W") PORT_CODE(KEYCODE_W)
- PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("R") PORT_CODE(KEYCODE_R)
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("P") PORT_CODE(KEYCODE_O)
-INPUT_PORTS_END
-
-void sc2_state::machine_start()
-{
- m_digits.resolve();
- m_leds.resolve();
-
- save_item(NAME(m_led_7seg_data));
- save_item(NAME(m_kp_matrix));
- save_item(NAME(m_led_selected));
- save_item(NAME(m_digit_data));
- save_item(NAME(m_beep_state));
+ map(0x00, 0x03).mirror(0xfc).rw(m_pio, FUNC(z80pio_device::read), FUNC(z80pio_device::write));
}
-void sc2_state::machine_reset()
-{
- m_kp_matrix = 0;
- m_led_selected = 0;
- m_digit_data = 0;
- m_beep_state = 0;
- memset(m_led_7seg_data, 0, ARRAY_LENGTH(m_led_7seg_data));
-}
void sc2_state::sc2_update_display()
{
- uint8_t digit_data = bitswap<8>( m_digit_data,7,0,1,2,3,4,5,6 ) & 0x7f;
-
- if (!BIT(m_led_selected, 0))
+ // latch display data
+ for (int i = 0; i < 4; i++)
{
- m_digits[0] = digit_data;
- m_led_7seg_data[0] = digit_data;
-
- m_leds[0] = BIT(m_digit_data, 7);
- }
-
- if (!BIT(m_led_selected, 1))
- {
- m_digits[1] = digit_data;
- m_led_7seg_data[1] = digit_data;
-
- m_leds[1] = BIT(m_digit_data, 7);
- }
-
- if (!BIT(m_led_selected, 2))
- {
- m_digits[2] = digit_data;
- m_led_7seg_data[2] = digit_data;
- }
-
- if (!BIT(m_led_selected, 3))
- {
- m_digits[3] = digit_data;
- m_led_7seg_data[3] = digit_data;
+ if (!BIT(m_led_selected, i))
+ {
+ m_digits[i] = m_digit_data & 0x7f;
+
+ // schach/matt leds
+ if (i < 2)
+ m_leds[i] = BIT(m_digit_data, 7);
+ }
}
}
-READ8_MEMBER( sc2_state::pio_port_a_r )
-{
- return m_digit_data;
-}
-
READ8_MEMBER( sc2_state::pio_port_b_r )
{
- uint8_t data = m_led_selected & 0x0f;
-
- if (BIT(m_kp_matrix, 0))
- {
- data |= ioport("LINE1")->read();
- }
-
- if (BIT(m_kp_matrix, 1))
- {
- data |= ioport("LINE2")->read();
- }
+ uint8_t data = 0x0f;
- if (BIT(m_kp_matrix, 2))
- {
- data |= ioport("LINE3")->read();
- }
-
- if (BIT(m_kp_matrix, 3))
- {
- data |= ioport("LINE4")->read();
- }
+ // read keypad matrix
+ for (int i = 0; i < 4; i++)
+ if (BIT(m_kp_matrix, i))
+ data |= m_keypad[i]->read();
return data;
}
WRITE8_MEMBER( sc2_state::pio_port_a_w )
{
- m_digit_data = data;
+ // digit segment data
+ m_digit_data = bitswap<8>(data,7,0,1,2,3,4,5,6);
}
WRITE8_MEMBER( sc2_state::pio_port_b_w )
{
+ // d0-d3: keypad mux(active high), led mux(active low)
if (data != 0xf1 && data != 0xf2 && data != 0xf4 && data != 0xf8)
{
m_led_selected = data;
@@ -212,10 +166,42 @@ WRITE8_MEMBER( sc2_state::pio_port_b_w )
m_kp_matrix = data;
}
+
+/* Input ports */
+
+static INPUT_PORTS_START( sc2 )
+ PORT_START("LINE1")
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("T") PORT_CODE(KEYCODE_T)
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("L") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Q") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
+
+ PORT_START("LINE2")
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CODE(KEYCODE_A)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CODE(KEYCODE_B)
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CODE(KEYCODE_C)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_D)
+
+ PORT_START("LINE3")
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_CODE(KEYCODE_E)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_F)
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_G)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H)
+
+ PORT_START("LINE4")
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("K") PORT_CODE(KEYCODE_K)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("W") PORT_CODE(KEYCODE_W)
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, sc2_state, reset_button, nullptr)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("P") PORT_CODE(KEYCODE_O)
+INPUT_PORTS_END
+
+
+/* Machine config */
+
void sc2_state::sc2(machine_config &config)
{
/* basic machine hardware */
- Z80(config, m_maincpu, XTAL(4'000'000));
+ Z80(config, m_maincpu, 9.8304_MHz_XTAL/4); // U880 Z80 clone
m_maincpu->set_addrmap(AS_PROGRAM, &sc2_state::sc2_mem);
m_maincpu->set_addrmap(AS_IO, &sc2_state::sc2_io);
@@ -223,18 +209,20 @@ void sc2_state::sc2(machine_config &config)
config.set_default_layout(layout_sc2);
/* devices */
- z80pio_device& pio(Z80PIO(config, "z80pio", XTAL(4'000'000)));
- pio.in_pa_callback().set(FUNC(sc2_state::pio_port_a_r));
- pio.out_pa_callback().set(FUNC(sc2_state::pio_port_a_w));
- pio.in_pb_callback().set(FUNC(sc2_state::pio_port_b_r));
- pio.out_pb_callback().set(FUNC(sc2_state::pio_port_b_w));
+ Z80PIO(config, m_pio, 9.8304_MHz_XTAL/4);
+ m_pio->out_pa_callback().set(FUNC(sc2_state::pio_port_a_w));
+ m_pio->in_pb_callback().set(FUNC(sc2_state::pio_port_b_r));
+ m_pio->out_pb_callback().set(FUNC(sc2_state::pio_port_b_w));
/* sound hardware */
- SPEAKER(config, "mono").front_center();
- BEEP(config, m_beep, 3250).add_route(ALL_OUTPUTS, "mono", 0.50);
+ SPEAKER(config, "speaker").front_center();
+ DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
}
+
/* ROM definition */
+
ROM_START( sc2 )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "bm008.bin", 0x0000, 0x0400, CRC(3023ea82) SHA1(07020d153d802c672c39e1af3c716dbe35e23f08))
@@ -248,7 +236,10 @@ ROM_START( sc2 )
ROM_LOAD( "bm016.bin", 0x3000, 0x0400, CRC(4fe0853a) SHA1(c2253e320778b0ea468fb54f26ae83d07f9700e6))
ROM_END
+} // anonymous namespace
+
+
/* Driver */
-// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 1981, sc2, 0, 0, sc2, sc2, sc2_state, empty_init, "VEB Mikroelektronik Erfurt", "Schachcomputer SC2", MACHINE_SUPPORTS_SAVE )
+// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
+COMP( 1981, sc2, 0, 0, sc2, sc2, sc2_state, empty_init, "VEB Mikroelektronik Erfurt", "Schachcomputer SC 2", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/sega_beena.cpp b/src/mame/drivers/sega_beena.cpp
index 21df51c0e72..10ceb7c14c0 100644
--- a/src/mame/drivers/sega_beena.cpp
+++ b/src/mame/drivers/sega_beena.cpp
@@ -4,15 +4,15 @@
Sega Beena
- non-video 'book' based learning system, like LeapPad etc.
+ non-video 'book' based learning system, like LeapPad etc.
- unknown CPU type (inside Sega custom?)
+ unknown CPU type (inside Sega custom?)
- cartridge ROM has 'edinburgh' in the header, maybe a system codename?
- ROM is also full of OGG files containing the string 'Encoded with Speex speex-1.0.4'
- as well as .mid files for music
+ cartridge ROM has 'edinburgh' in the header, maybe a system codename?
+ ROM is also full of OGG files containing the string 'Encoded with Speex speex-1.0.4'
+ as well as .mid files for music
- TODO: component list!
+ TODO: component list!
*******************************************************************************/
diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp
index 1b5d130769e..d897d6f6a91 100644
--- a/src/mame/drivers/segas16b.cpp
+++ b/src/mame/drivers/segas16b.cpp
@@ -7449,7 +7449,9 @@ ROM_END
//*************************************************************************************************************************
// Ryukyu, Sega System 16B
// CPU: FD1094 8M2 (317-5023A)
-// ROM Board type: ?
+// ROM Board type: 171-5704
+// Sega game ID: 836-7666 RYUKYU
+// ROM board: 836-7667
//
ROM_START( ryukyua )
ROM_REGION( 0x20000, "maincpu", 0 ) // 68000 code
diff --git a/src/mame/drivers/segasp.cpp b/src/mame/drivers/segasp.cpp
index f9a01bf8177..3dc915afc43 100644
--- a/src/mame/drivers/segasp.cpp
+++ b/src/mame/drivers/segasp.cpp
@@ -457,7 +457,7 @@ ROM_START( dinoking )
ROM_PARAMETER( ":rom_board:id", "5502" ) // actually 8x 128Mbit FlashROMs
ROM_REGION( 0x800, "pic_readout", 0 )
- ROM_LOAD( "317-0408-com.ic15", 0, 0x800, BAD_DUMP CRC(0e94daba) SHA1(4e9722333a29afd0dbadba78b16344b77a689610) )
+ ROM_LOAD( "317-0408-com.ic15", 0, 0x800, CRC(f77c49dc) SHA1(e10173bbbd5930ed159cec9a7dba308e2a3f3c43) )
ROM_END
ROM_START( lovebery )
@@ -550,7 +550,7 @@ ROM_START( dinokior )
ROM_PARAMETER( ":rom_board:id", "5502" ) // actually 8x 128Mbit FlashROMs
ROM_REGION( 0x800, "pic_readout", 0 )
- ROM_LOAD( "317-0408-com.ic15", 0, 0x800, BAD_DUMP CRC(0e94daba) SHA1(4e9722333a29afd0dbadba78b16344b77a689610) )
+ ROM_LOAD( "317-0408-com.ic15", 0, 0x800, CRC(f77c49dc) SHA1(e10173bbbd5930ed159cec9a7dba308e2a3f3c43) )
ROM_END
ROM_START( dinoki25 )
@@ -570,7 +570,7 @@ ROM_START( dinoki25 )
ROM_PARAMETER( ":rom_board:id", "5508" ) // 8x 512Mbit FlashROMs
ROM_REGION( 0x800, "pic_readout", 0 )
- ROM_LOAD( "317-0408-com.ic15", 0, 0x800, BAD_DUMP CRC(0e94daba) SHA1(4e9722333a29afd0dbadba78b16344b77a689610) )
+ ROM_LOAD( "317-0408-com.ic15", 0, 0x800, CRC(f77c49dc) SHA1(e10173bbbd5930ed159cec9a7dba308e2a3f3c43) )
// DINOSAUR KING
// TYPE-3
@@ -628,7 +628,7 @@ ROM_START( tetgiano )
ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASEFF)
// TETRIS - DEKARIS (romaji)
- // / TETRIS® - GIANT
+ // / TETRIS® - GIANT
// MDA-C0076
DISK_REGION( "cflash" )
DISK_IMAGE( "mda-c0076", 0, SHA1(6987c888d2a3ada2d07f6396d47fdba507ca859d) )
diff --git a/src/mame/drivers/spec128.cpp b/src/mame/drivers/spec128.cpp
index 8da68cafa73..dc57b656b0f 100644
--- a/src/mame/drivers/spec128.cpp
+++ b/src/mame/drivers/spec128.cpp
@@ -250,12 +250,6 @@ void spectrum_state::spectrum_128_mem(address_map &map)
map(0xc000, 0xffff).bankrw("bank4");
}
-void spectrum_state::init_spec128()
-{
- // setup expansion slot
- m_exp->set_io_space(&m_maincpu->space(AS_IO));
-}
-
MACHINE_RESET_MEMBER(spectrum_state,spectrum_128)
{
uint8_t *messram = m_ram->pointer();
@@ -319,6 +313,7 @@ void spectrum_state::spectrum_128(machine_config &config)
/* expansion port */
SPECTRUM_EXPANSION_SLOT(config.replace(), m_exp, spec128_expansion_devices, nullptr);
+ m_exp->set_io_space(m_maincpu, AS_IO);
m_exp->irq_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
m_exp->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI);
@@ -380,8 +375,8 @@ ROM_START(hc2000)
ROMX_LOAD("hc2000.v2", 0x14000,0x4000, CRC(65d90464) SHA1(5e2096e6460ff2120c8ada97579fdf82c1199c09), ROM_BIOS(1))
ROM_END
-// YEAR NAME PARENT COMPAT MACHINE CLASS STATE INIT COMPANY FULLNAME FLAGS
-COMP( 1986, spec128, 0, 0, spectrum_128, spec128, spectrum_state, init_spec128, "Sinclair Research Ltd", "ZX Spectrum 128", 0 )
-COMP( 1986, specpls2, spec128, 0, spectrum_128, spec_plus, spectrum_state, init_spec128, "Amstrad plc", "ZX Spectrum +2", 0 )
-COMP( 1991, hc128, spec128, 0, spectrum_128, spec_plus, spectrum_state, init_spec128, "ICE-Felix", "HC-128", 0 )
-COMP( 1992, hc2000, spec128, 0, spectrum_128, spec_plus, spectrum_state, init_spec128, "ICE-Felix", "HC-2000", MACHINE_NOT_WORKING )
+// YEAR NAME PARENT COMPAT MACHINE CLASS STATE INIT COMPANY FULLNAME FLAGS
+COMP( 1986, spec128, 0, 0, spectrum_128, spec128, spectrum_state, empty_init, "Sinclair Research Ltd", "ZX Spectrum 128", 0 )
+COMP( 1986, specpls2, spec128, 0, spectrum_128, spec_plus, spectrum_state, empty_init, "Amstrad plc", "ZX Spectrum +2", 0 )
+COMP( 1991, hc128, spec128, 0, spectrum_128, spec_plus, spectrum_state, empty_init, "ICE-Felix", "HC-128", 0 )
+COMP( 1992, hc2000, spec128, 0, spectrum_128, spec_plus, spectrum_state, empty_init, "ICE-Felix", "HC-2000", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/specpls3.cpp b/src/mame/drivers/specpls3.cpp
index 13c28e1fa65..64b4695360b 100644
--- a/src/mame/drivers/specpls3.cpp
+++ b/src/mame/drivers/specpls3.cpp
@@ -341,17 +341,11 @@ MACHINE_RESET_MEMBER(spectrum_state,spectrum_plus3)
void spectrum_state::init_plus3()
{
m_floppy = 1;
-
- // setup expansion slot
- m_exp->set_io_space(&m_maincpu->space(AS_IO));
}
void spectrum_state::init_plus2()
{
m_floppy = 0;
-
- // setup expansion slot
- m_exp->set_io_space(&m_maincpu->space(AS_IO));
}
static void specpls3_floppies(device_slot_interface &device)
@@ -396,6 +390,7 @@ void spectrum_state::spectrum_plus3(machine_config &config)
FLOPPY_CONNECTOR(config, "upd765:1", specpls3_floppies, "3ssdd", floppy_image_device::default_floppy_formats);
SPECTRUM_EXPANSION_SLOT(config.replace(), m_exp, specpls3_expansion_devices, nullptr);
+ m_exp->set_io_space(m_maincpu, AS_IO);
m_exp->irq_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
m_exp->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI);
diff --git a/src/mame/drivers/spectrum.cpp b/src/mame/drivers/spectrum.cpp
index ccd29d7cc45..4a7bec87583 100644
--- a/src/mame/drivers/spectrum.cpp
+++ b/src/mame/drivers/spectrum.cpp
@@ -617,9 +617,6 @@ void spectrum_state::init_spectrum()
case 16*1024:
space.install_ram(0x5b00, 0x7fff, nullptr);
}
-
- // setup expansion slot
- m_exp->set_io_space(&m_maincpu->space(AS_IO));
}
MACHINE_RESET_MEMBER(spectrum_state,spectrum)
@@ -699,6 +696,7 @@ void spectrum_state::spectrum_common(machine_config &config)
/* expansion port */
SPECTRUM_EXPANSION_SLOT(config, m_exp, spectrum_expansion_devices, "kempjoy");
+ m_exp->set_io_space(m_maincpu, AS_IO);
m_exp->irq_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
m_exp->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI);
diff --git a/src/mame/drivers/tandy1t.cpp b/src/mame/drivers/tandy1t.cpp
index be4f6031903..5b2e4e95f50 100644
--- a/src/mame/drivers/tandy1t.cpp
+++ b/src/mame/drivers/tandy1t.cpp
@@ -658,26 +658,26 @@ static GFXDECODE_START( gfx_t1000 )
GFXDECODE_ENTRY( "gfx1", 0x0000, t1000_charlayout, 3, 1 )
GFXDECODE_END
-MACHINE_CONFIG_START(tandy1000_state::tandy1000_common)
- MCFG_DEVICE_ADD("mb", T1000_MOTHERBOARD, 0)
- downcast<t1000_mb_device &>(*device).set_cputag("maincpu");
+void tandy1000_state::tandy1000_common(machine_config &config)
+{
+ T1000_MOTHERBOARD(config, m_mb, 0);
+ m_mb->set_cputag("maincpu");
/* video hardware */
- MCFG_DEVICE_ADD("pcvideo_t1000", PCVIDEO_T1000, 0)
- MCFG_VIDEO_SET_SCREEN("pcvideo_t1000:screen")
+ PCVIDEO_T1000(config, m_video, 0);
+ m_video->set_screen("pcvideo_t1000:screen");
GFXDECODE(config, "gfxdecode", "pcvideo_t1000:palette", gfx_t1000);
/* sound hardware */
- MCFG_DEVICE_ADD("sn76496", NCR8496, XTAL(14'318'181)/4)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mb:mono", 0.80)
+ NCR8496(config, "sn76496", XTAL(14'318'181)/4).add_route(ALL_OUTPUTS, "mb:mono", 0.80);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
- MCFG_DEVICE_ADD("isa_fdc", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", true) // FIXME: determine ISA bus clock
- MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_fdc_35)
+ isa8_slot_device &isa_fdc(ISA8_SLOT(config, "isa_fdc", 0, "mb:isa", pc_isa8_cards, "fdc_xt", true)); // FIXME: determine ISA bus clock
+ isa_fdc.set_option_machine_config("fdc_xt", cfg_fdc_35);
- MCFG_DEVICE_ADD("isa_lpt", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", true)
- MCFG_DEVICE_ADD("isa_com", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", true)
+ ISA8_SLOT(config, "isa_lpt", 0, "mb:isa", pc_isa8_cards, "lpt", true);
+ ISA8_SLOT(config, "isa_com", 0, "mb:isa", pc_isa8_cards, "com", true);
PC_JOY(config, "pc_joy");
@@ -686,7 +686,7 @@ MACHINE_CONFIG_START(tandy1000_state::tandy1000_common)
SOFTWARE_LIST(config, "disk_list").set_original("t1000");
SOFTWARE_LIST(config, "pc_list").set_compatible("ibm5150");
-MACHINE_CONFIG_END
+}
void tandy1000_state::tandy1000_90key(machine_config &config)
{
@@ -700,40 +700,42 @@ void tandy1000_state::tandy1000_101key(machine_config &config)
m_keyboard->keypress().set("mb:pic8259", FUNC(pic8259_device::ir1_w));
}
-MACHINE_CONFIG_START(tandy1000_state::t1000hx)
- MCFG_DEVICE_ADD("maincpu", I8088, 8000000)
- MCFG_DEVICE_PROGRAM_MAP(tandy1000_map)
- MCFG_DEVICE_IO_MAP(tandy1000_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb)
+void tandy1000_state::t1000hx(machine_config &config)
+{
+ I8088(config, m_maincpu, 8000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &tandy1000_state::tandy1000_map);
+ m_maincpu->set_addrmap(AS_IO, &tandy1000_state::tandy1000_io);
+ m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb));
tandy1000_common(config);
tandy1000_90key(config);
// plus cards are isa with a nonstandard conntector
- MCFG_DEVICE_ADD("plus1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "plus1", 0, "mb:isa", pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock
m_ram->set_extra_options("256K, 384K");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(tandy1000_state::t1000sx)
+void tandy1000_state::t1000sx(machine_config &config)
+{
t1000hx(config);
- MCFG_DEVICE_MODIFY("isa_fdc")
- MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_fdc_525)
+ subdevice<isa8_slot_device>("isa_fdc")->set_option_machine_config("fdc_xt", cfg_fdc_525);
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, nullptr, false);
m_ram->set_extra_options("384K");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(tandy1000_state::t1000rl)
- MCFG_DEVICE_ADD("maincpu", I8086, XTAL(28'636'363) / 3)
- MCFG_DEVICE_PROGRAM_MAP(tandy1000_bank_map)
- MCFG_DEVICE_IO_MAP(tandy1000_bank_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb)
+void tandy1000_state::t1000rl(machine_config &config)
+{
+ I8086(config, m_maincpu, XTAL(28'636'363) / 3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &tandy1000_state::tandy1000_bank_map);
+ m_maincpu->set_addrmap(AS_IO, &tandy1000_state::tandy1000_bank_io);
+ m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb));
tandy1000_common(config);
@@ -744,44 +746,45 @@ MACHINE_CONFIG_START(tandy1000_state::t1000rl)
MCFG_MACHINE_RESET_OVERRIDE(tandy1000_state,tandy1000rl)
m_ram->set_extra_options("384K");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(tandy1000_state::t1000sl2)
+void tandy1000_state::t1000sl2(machine_config &config)
+{
t1000rl(config);
- MCFG_DEVICE_MODIFY( "maincpu" )
- MCFG_DEVICE_CLOCK( XTAL(24'000'000) / 3 )
+ m_maincpu->set_clock(XTAL(24'000'000) / 3);
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
-MACHINE_CONFIG_END
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+}
-MACHINE_CONFIG_START(tandy1000_state::t1000tl)
- MCFG_DEVICE_ADD("maincpu", I80286, XTAL(28'636'363) / 2)
- MCFG_DEVICE_PROGRAM_MAP(tandy1000_286_map)
- MCFG_DEVICE_IO_MAP(tandy1000_16_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb)
+void tandy1000_state::t1000tl(machine_config &config)
+{
+ I80286(config, m_maincpu, XTAL(28'636'363) / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &tandy1000_state::tandy1000_286_map);
+ m_maincpu->set_addrmap(AS_IO, &tandy1000_state::tandy1000_16_io);
+ m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb));
tandy1000_common(config);
tandy1000_101key(config);
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
-MACHINE_CONFIG_END
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+}
-MACHINE_CONFIG_START(tandy1000_state::t1000tx)
+void tandy1000_state::t1000tx(machine_config &config)
+{
t1000tl(config);
- MCFG_DEVICE_MODIFY( "maincpu" )
- MCFG_DEVICE_IO_MAP(tandy1000tx_io)
+ m_maincpu->set_addrmap(AS_IO, &tandy1000_state::tandy1000tx_io);
config.device_remove("pc_keyboard");
tandy1000_90key(config);
-MACHINE_CONFIG_END
+}
#ifdef UNUSED_DEFINITION
ROM_START( t1000 )
diff --git a/src/mame/drivers/timex.cpp b/src/mame/drivers/timex.cpp
index ae0d2d29549..561c41193b0 100644
--- a/src/mame/drivers/timex.cpp
+++ b/src/mame/drivers/timex.cpp
@@ -583,12 +583,6 @@ void spectrum_state::tc2048_mem(address_map &map)
map(0x4000, 0xffff).bankr("bank1").bankw("bank2");
}
-void spectrum_state::init_timex()
-{
- // setup expansion slot
- m_exp->set_io_space(&m_maincpu->space(AS_IO));
-}
-
MACHINE_RESET_MEMBER(spectrum_state,tc2048)
{
uint8_t *messram = m_ram->pointer();
@@ -784,6 +778,6 @@ ROM_START(uk2086)
ROM_END
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 1984, tc2048, spectrum, 0, tc2048, spectrum, spectrum_state, init_timex, "Timex of Portugal", "TC-2048" , 0 )
-COMP( 1983, ts2068, spectrum, 0, ts2068, spectrum, spectrum_state, init_timex, "Timex Sinclair", "TS-2068" , 0 )
-COMP( 1986, uk2086, spectrum, 0, uk2086, spectrum, spectrum_state, init_timex, "Unipolbrit", "UK-2086 ver. 1.2" , 0 )
+COMP( 1984, tc2048, spectrum, 0, tc2048, spectrum, spectrum_state, empty_init, "Timex of Portugal", "TC-2048" , 0 )
+COMP( 1983, ts2068, spectrum, 0, ts2068, spectrum, spectrum_state, empty_init, "Timex Sinclair", "TS-2068" , 0 )
+COMP( 1986, uk2086, spectrum, 0, uk2086, spectrum, spectrum_state, empty_init, "Unipolbrit", "UK-2086 ver. 1.2" , 0 )
diff --git a/src/mame/drivers/unixpc.cpp b/src/mame/drivers/unixpc.cpp
index 19620a6949c..0f95c0417cf 100644
--- a/src/mame/drivers/unixpc.cpp
+++ b/src/mame/drivers/unixpc.cpp
@@ -20,13 +20,15 @@
#include "bus/centronics/ctronics.h"
#include "bus/rs232/rs232.h"
#include "imagedev/floppy.h"
+#include "imagedev/harddriv.h"
#include "machine/6850acia.h"
#include "machine/74259.h"
#include "machine/bankdev.h"
+#include "machine/input_merger.h"
#include "machine/output_latch.h"
#include "machine/ram.h"
//#include "machine/tc8250.h"
-//#include "machine/wd1010.h"
+#include "machine/wd1010.h"
#include "machine/wd_fdc.h"
#include "machine/z80sio.h"
#include "emupal.h"
@@ -47,9 +49,12 @@ public:
m_maincpu(*this, "maincpu"),
m_gcr(*this, "gcr"),
m_tcr(*this, "tcr"),
+ m_int02(*this, "int02"),
m_ram(*this, RAM_TAG),
m_wd2797(*this, "wd2797"),
m_floppy(*this, "wd2797:0:525dd"),
+ m_hdc(*this, "hdc"),
+ m_hdr0(*this, "hdc:0"),
m_ramrombank(*this, "ramrombank"),
m_mapram(*this, "mapram"),
m_videoram(*this, "videoram")
@@ -84,6 +89,8 @@ private:
DECLARE_WRITE_LINE_MEMBER(wd2797_intrq_w);
DECLARE_WRITE_LINE_MEMBER(wd2797_drq_w);
+ DECLARE_WRITE_LINE_MEMBER(wd1010_intrq_w);
+
void ramrombank_map(address_map &map);
void unixpc_mem(address_map &map);
@@ -91,9 +98,12 @@ private:
required_device<cpu_device> m_maincpu;
required_device<ls259_device> m_gcr;
required_device<ls259_device> m_tcr;
+ required_device<input_merger_device> m_int02;
required_device<ram_device> m_ram;
required_device<wd2797_device> m_wd2797;
required_device<floppy_image_device> m_floppy;
+ required_device<wd1010_device> m_hdc;
+ required_device<harddisk_image_device> m_hdr0;
required_device<address_map_bank_device> m_ramrombank;
required_shared_ptr<uint16_t> m_mapram;
@@ -104,6 +114,7 @@ private:
uint16_t m_diskdmasize;
uint32_t m_diskdmaptr;
bool m_fdc_intrq;
+ bool m_hdc_intrq;
};
@@ -205,7 +216,7 @@ READ16_MEMBER(unixpc_state::line_printer_r)
data |= 1; // no dial tone detected
data |= 1 << 1; // no parity error
- data |= 0 << 2; // hdc intrq
+ data |= m_hdc_intrq ? 1<<2 : 0<<2;
data |= m_fdc_intrq ? 1<<3 : 0<<3;
//logerror("line_printer_r: %04x\n", data);
@@ -253,6 +264,13 @@ WRITE16_MEMBER(unixpc_state::disk_control_w)
{
logerror("disk_control_w: %04x\n", data);
+ // TODO: bits 0-2 = head select
+
+ m_hdc->drdy_w(BIT(data, 3) && m_hdr0->exists());
+
+ if (!BIT(data, 4))
+ m_hdc->reset();
+
m_floppy->mon_w(!BIT(data, 5));
// bit 6 = floppy selected / not selected
@@ -266,6 +284,7 @@ WRITE_LINE_MEMBER(unixpc_state::wd2797_intrq_w)
{
logerror("wd2797_intrq_w: %d\n", state);
m_fdc_intrq = state;
+ m_int02->in_w<1>(state);
}
WRITE_LINE_MEMBER(unixpc_state::wd2797_drq_w)
@@ -273,6 +292,15 @@ WRITE_LINE_MEMBER(unixpc_state::wd2797_drq_w)
logerror("wd2797_drq_w: %d\n", state);
}
+/***************************************************************************
+ HARD DISK
+***************************************************************************/
+
+WRITE_LINE_MEMBER(unixpc_state::wd1010_intrq_w)
+{
+ m_hdc_intrq = state;
+ m_int02->in_w<0>(state);
+}
/***************************************************************************
VIDEO
@@ -308,7 +336,7 @@ void unixpc_state::unixpc_mem(address_map &map)
map(0x4d0000, 0x4d7fff).w(FUNC(unixpc_state::diskdma_ptr_w));
map(0x4e0000, 0x4e0001).w(FUNC(unixpc_state::disk_control_w));
map(0x4f0001, 0x4f0001).w("printlatch", FUNC(output_latch_device::bus_w));
- //map(0xe00000, 0xe0000f).rw("hdc", FUNC(wd1010_device::read), FUNC(wd1010_device::write)).umask16(0x00ff);
+ map(0xe00000, 0xe0000f).rw(m_hdc, FUNC(wd1010_device::read), FUNC(wd1010_device::write)).umask16(0x00ff);
map(0xe10000, 0xe10007).rw(m_wd2797, FUNC(wd_fdc_device_base::read), FUNC(wd_fdc_device_base::write)).umask16(0x00ff);
map(0xe30000, 0xe30001).r(FUNC(unixpc_state::rtc_r));
map(0xe40000, 0xe40001).select(0x7000).w(FUNC(unixpc_state::gcr_w));
@@ -354,6 +382,9 @@ void unixpc_state::unixpc(machine_config &config)
LS259(config, m_tcr); // 10K
+ INPUT_MERGER_ANY_HIGH(config, m_int02); // 26H pins 3-6
+ m_int02->output_handler().set_inputline(m_maincpu, M68K_IRQ_2);
+
output_latch_device &mreg(OUTPUT_LATCH(config, "mreg"));
mreg.bit_handler<0>().set_output("led_0").invert();
mreg.bit_handler<1>().set_output("led_1").invert();
@@ -387,15 +418,18 @@ void unixpc_state::unixpc(machine_config &config)
m_wd2797->drq_wr_callback().set(FUNC(unixpc_state::wd2797_drq_w));
FLOPPY_CONNECTOR(config, "wd2797:0", unixpc_floppies, "525dd", floppy_image_device::default_floppy_formats);
- upd7201_new_device& mpsc(UPD7201_NEW(config, "mpsc", 19.6608_MHz_XTAL / 8));
+ WD1010(config, m_hdc, 40_MHz_XTAL / 8);
+ m_hdc->out_intrq_callback().set(FUNC(unixpc_state::wd1010_intrq_w));
+ HARDDISK(config, m_hdr0, 0);
+
+ upd7201_new_device &mpsc(UPD7201_NEW(config, "mpsc", 19.6608_MHz_XTAL / 8));
mpsc.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd));
mpsc.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
mpsc.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts));
+ mpsc.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_4);
- ACIA6850(config, "kbc", 0);
-
- // TODO: HDC
- //WD1010(config, "hdc", 40_MHz_XTAL / 8);
+ acia6850_device &kbc(ACIA6850(config, "kbc", 0));
+ kbc.irq_handler().set_inputline(m_maincpu, M68K_IRQ_3);
// TODO: RTC
//TC8250(config, "rtc", 32.768_kHz_XTAL);
diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp
index fa8140eaa7d..0e45470cb93 100644
--- a/src/mame/drivers/vii.cpp
+++ b/src/mame/drivers/vii.cpp
@@ -13,27 +13,27 @@
Justice League
Dora the Explorer
Mattel Classic Sports
- Disney Princess (GKR)
- Wheel of Fortune (GKR)
- (all GameKeyReady units?)
+ Disney Princess (GKR)
+ Wheel of Fortune (GKR)
+ (all GameKeyReady units?)
"SunPlus QL8041C" ( known as Sunplus SPG2?? )
- Clickstart ( see clickstart.cpp instead)
- Wheel of Fortune 2nd Edition
+ Clickstart ( see clickstart.cpp instead)
+ Wheel of Fortune 2nd Edition
"SunPlus PA7801" ( known as Sunplus SPG110? ) see spg110.cpp instead
- Classic Arcade Pinball
- EA Sports (NHL95 + Madden 95)
-
- It is unknown if the following are close to this architecture or not (no dumps yet)
+ Classic Arcade Pinball
+ EA Sports (NHL95 + Madden 95)
- "SunPlus QU7073-P69A"
- Mortal Kombat
+ It is unknown if the following are close to this architecture or not (no dumps yet)
- "Sunplus QL8167"
- Disney Princess (older)
- Go Diego Go
+ "SunPlus QU7073-P69A"
+ Mortal Kombat
+
+ "Sunplus QL8167"
+ Disney Princess (older)
+ Go Diego Go
Disney Princess non-GKR is Sunplus QL8167.
@@ -53,11 +53,11 @@ Disney Princess non-GKR is Sunplus QL8167.
walle:
Game seems unhappy with NVRAM, clears contents on each boot.
- jak_pooh:
- In the 'Light Tag' minigame (select the rock) you can't move left with the DRC (ok with -nodrc)
- and the game usually softlocks when you find a friend (with or without DRC)
-
- vii:
+ jak_pooh:
+ In the 'Light Tag' minigame (select the rock) you can't move left with the DRC (ok with -nodrc)
+ and the game usually softlocks when you find a friend (with or without DRC)
+
+ vii:
When loading a cart from file manager, sometimes MAME will crash.
The "MOTOR" option in the diagnostic menu does nothing when selected.
The "SPEECH IC" option in the diagnostic menu does nothing when selected.
@@ -71,9 +71,9 @@ Disney Princess non-GKR is Sunplus QL8167.
Test Modes:
Justice League : press UP, DOWN, LEFT, BT3 on the JAKKS logo in that order, quickly, to get test menu
WWE : press UP, BT1, BT2 together during startup logos
-
- Disney Friends, MS Pacman, WallE, Batman (and some other HotGen GameKKeys) for test mode, hold UP,
- press A, press DOWN during startup
+
+ Disney Friends, MS Pacman, WallE, Batman (and some other HotGen GameKKeys) for test mode, hold UP,
+ press A, press DOWN during startup
TODO:
Work out how to access the hidden TEST menus for all games (most JAKKS games should have one at least)
@@ -1733,6 +1733,11 @@ ROM_START( jak_nick )
ROM_LOAD16_WORD_SWAP( "jakksnicktoonsgkr.bin", 0x000000, 0x200000, CRC(4dec1656) SHA1(b3002ab15e75068102f4955a3f0c52fb6d5cda56) )
ROM_END
+ROM_START( jak_sbfc )
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD16_WORD_SWAP( "jakksspongebobgkr.bin", 0x000000, 0x200000, CRC(9871303c) SHA1(78bc2687e1514094db8bb875e1117df3fcb3d201) )
+ROM_END
+
ROM_START( jak_dorr )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD16_WORD_SWAP( "jakksdora2gkr.bin", 0x000000, 0x200000, CRC(6c09bcd9) SHA1(4bcad79658832f319d16b4f63257e127f6862d79) )
@@ -1979,7 +1984,7 @@ void spg2xx_game_state::init_crc()
logerror("Calculated Byte Sum of bytes from 0x10 to 0x%08x is %08x)\n", length - 1, checksum);
}
-
+
void spg2xx_game_state::init_zeus()
{
uint16_t *ROM = (uint16_t*)memregion("maincpu")->base();
@@ -2040,7 +2045,8 @@ CONS( 2005, jak_just, 0, 0, jakks_gkr_1m_i2c, jak_gkr_i2c, jakks_gkr_state, emp
CONS( 2005, jak_dora, 0, 0, jakks_gkr_nk, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dora the Explorer - Nursery Rhyme Adventure (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys (same as Nicktoons & Spongebob) (3 released) - The upper part of this one is pink/purple.
CONS( 2005, jak_dorr, 0, 0, jakks_gkr_nk_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dora the Explorer - Race to Play Park (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys (same as Nicktoons & Spongebob) (3 released) - The upper part of this one is blue
CONS( 2004, jak_nick, 0, 0, jakks_gkr_nk_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Nicktoons (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys
-CONS( 2005, jak_sdoo, 0, 0, jakks_gkr_2m_i2c, jak_sdoo_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Jolliford Management", "Scooby-Doo! and the Mystery of the Castle (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // SD (no game-keys released)
+CONS( 2005, jak_sbfc, 0, 0, jakks_gkr_nk_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "SpongeBob SquarePants - The Fry Cook Games (JAKKS Pacific TV Game, Game-Key Ready) (AUG 18 2005 21:31:56)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys
+CONS( 2005, jak_sdoo, 0, 0, jakks_gkr_2m_i2c, jak_sdoo_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Jolliford Management", "Scooby-Doo! and the Mystery of the Castle (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // SD (no game-keys released) (was dumped from a later unit with GameKey port missing, but internal PCB still supported it, code likely the same)
CONS( 2005, jak_disf, 0, 0, jakks_gkr_dy_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Disney Friends (JAKKS Pacific TV Game, Game-Key Ready) (17 MAY 2005 A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses DY keys (3 released)
CONS( 2005, jak_disp, 0, 0, jakks_gkr_dp_i2c, jak_disp_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / 5000ft, Inc", "Disney Princess (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses DP keys (1 key released)
// There seems to be a second game called 'Disney Princesses' with a 'board game' style front end as well as the minigames, also GKR, see https://www.youtube.com/watch?v=w9p5TI029bQ The one we have is https://www.youtube.com/watch?v=9ppPKVbpoMs the physical package seems identical.
@@ -2052,11 +2058,11 @@ CONS( 2005, jak_wof, 0, 0, jakks_gkr_wf_i2c, jak_wf_i2c, jakks_gkr_state, emp
CONS( 2004, jak_spdm, 0, 0, jakks_gkr_mv_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Spider-Man (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // MV (1 key available)
CONS( 2005, jak_pooh, 0, 0, jakks_gkr_wp, jak_pooh, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Backbone Entertainment", "Winnie the Pooh - Piglet's Special Day (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // WP (no game-keys released)
-// SpongeBob SquarePants: The Fry Cook Games NK (3 keys available) ^^
-
// no keys released for the following, some were in development but cancelled
// Capcom 3-in-1 CC (no game-keys released)
-// Care Bears CB (no game-keys released)
+// Care Bears CB (no game-keys released)
+
+// Some versions of the Shrek - Over the Hedge unit show the GameKey logo on startup (others don't) there is no evidence to suggest it was ever released with a GameKey port tho, and the internal PCB has no place for one on the versions we've seen (which show the logo)
// Radica TV games
CONS( 2006, rad_skat, 0, 0, rad_skat, rad_skat, spg2xx_game_state, init_crc, "Radica", "Play TV Skateboarder (NTSC)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/vtech1.cpp b/src/mame/drivers/vtech1.cpp
index ad26a417244..05b3252abc6 100644
--- a/src/mame/drivers/vtech1.cpp
+++ b/src/mame/drivers/vtech1.cpp
@@ -83,7 +83,6 @@ public:
void laser110(machine_config &config);
void laser210(machine_config &config);
- void init_vtech1();
void init_vtech1h();
private:
@@ -280,18 +279,8 @@ READ8_MEMBER( vtech1_state::mc6847_videoram_r )
DRIVER INIT
***************************************************************************/
-void vtech1_state::init_vtech1()
-{
- // setup expansion slots
- m_ioexp->set_io_space(&m_maincpu->space(AS_IO));
- m_memexp->set_program_space(&m_maincpu->space(AS_PROGRAM));
- m_memexp->set_io_space(&m_maincpu->space(AS_IO));
-}
-
void vtech1_state::init_vtech1h()
{
- init_vtech1();
-
// the SHRG mod replaces the standard videoram chip with an 8k chip
m_videoram.allocate(0x2000);
@@ -463,7 +452,10 @@ void vtech1_state::laser110(machine_config &config)
// peripheral and memory expansion slots
VTECH_IOEXP_SLOT(config, m_ioexp);
+ m_ioexp->set_io_space(m_maincpu, AS_IO);
VTECH_MEMEXP_SLOT(config, m_memexp);
+ m_memexp->set_program_space(m_maincpu, AS_PROGRAM);
+ m_memexp->set_io_space(m_maincpu, AS_IO);
// snapshot
snapshot_image_device &snapshot(SNAPSHOT(config, "snapshot", 0));
@@ -574,13 +566,13 @@ ROM_END
***************************************************************************/
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 1983, laser110, 0, 0, laser110, vtech1, vtech1_state, init_vtech1, "Video Technology", "Laser 110", 0 )
-COMP( 1983, laser200, 0, 0, laser200, vtech1, vtech1_state, init_vtech1, "Video Technology", "Laser 200", 0 )
-COMP( 1983, vz200de, laser200, 0, laser200, vtech1, vtech1_state, init_vtech1, "Video Technology", "VZ-200 (Germany & Netherlands)", MACHINE_NOT_WORKING )
-COMP( 1983, fellow, laser200, 0, laser200, vtech1, vtech1_state, init_vtech1, "Salora", "Fellow (Finland)", 0 )
-COMP( 1983, tx8000, laser200, 0, laser200, vtech1, vtech1_state, init_vtech1, "Texet", "TX-8000 (UK)", 0 )
-COMP( 1984, laser210, 0, 0, laser210, vtech1, vtech1_state, init_vtech1, "Video Technology", "Laser 210", 0 )
-COMP( 1984, vz200, laser210, 0, laser210, vtech1, vtech1_state, init_vtech1, "Dick Smith Electronics", "VZ-200 (Oceania)", 0 )
-COMP( 1984, laser310, 0, 0, laser310, vtech1, vtech1_state, init_vtech1, "Video Technology", "Laser 310", 0 )
-COMP( 1984, vz300, laser310, 0, laser310, vtech1, vtech1_state, init_vtech1, "Dick Smith Electronics", "VZ-300 (Oceania)", 0 )
+COMP( 1983, laser110, 0, 0, laser110, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 110", 0 )
+COMP( 1983, laser200, 0, 0, laser200, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 200", 0 )
+COMP( 1983, vz200de, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Video Technology", "VZ-200 (Germany & Netherlands)", MACHINE_NOT_WORKING )
+COMP( 1983, fellow, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Salora", "Fellow (Finland)", 0 )
+COMP( 1983, tx8000, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Texet", "TX-8000 (UK)", 0 )
+COMP( 1984, laser210, 0, 0, laser210, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 210", 0 )
+COMP( 1984, vz200, laser210, 0, laser210, vtech1, vtech1_state, empty_init, "Dick Smith Electronics", "VZ-200 (Oceania)", 0 )
+COMP( 1984, laser310, 0, 0, laser310, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 310", 0 )
+COMP( 1984, vz300, laser310, 0, laser310, vtech1, vtech1_state, empty_init, "Dick Smith Electronics", "VZ-300 (Oceania)", 0 )
COMP( 1984, laser310h, laser310, 0, laser310h, vtech1, vtech1_state, init_vtech1h, "Video Technology", "Laser 310 (SHRG)", MACHINE_UNOFFICIAL )
diff --git a/src/mame/drivers/vtech2.cpp b/src/mame/drivers/vtech2.cpp
index 751ae7b0fda..6f724b3f2f4 100644
--- a/src/mame/drivers/vtech2.cpp
+++ b/src/mame/drivers/vtech2.cpp
@@ -518,7 +518,7 @@ MACHINE_CONFIG_START(vtech2_state::laser350)
m_cassette->set_formats(vtech2_cassette_formats);
m_cassette->set_default_state(CASSETTE_PLAY);
- VTECH_IOEXP_SLOT(config, "io");
+ VTECH_IOEXP_SLOT(config, "io").set_io_space(m_maincpu, AS_IO);
/* cartridge */
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "vtech_cart")
diff --git a/src/mame/drivers/wangpc.cpp b/src/mame/drivers/wangpc.cpp
index 1085c74930b..9c448093a7d 100644
--- a/src/mame/drivers/wangpc.cpp
+++ b/src/mame/drivers/wangpc.cpp
@@ -876,7 +876,7 @@ WRITE8_MEMBER( wangpc_state::memw_w )
READ8_MEMBER( wangpc_state::ior2_r )
{
if (m_disable_dreq2)
- return m_bus->dack_r(space, 2);
+ return m_bus->dack_r(2);
else
return m_fdc->dma_r();
}
@@ -884,7 +884,7 @@ READ8_MEMBER( wangpc_state::ior2_r )
WRITE8_MEMBER( wangpc_state::iow2_w )
{
if (m_disable_dreq2)
- m_bus->dack_w(space, 2, data);
+ m_bus->dack_w(2, data);
else
m_fdc->dma_w(data);
}
diff --git a/src/mame/drivers/wrlshunt.cpp b/src/mame/drivers/wrlshunt.cpp
index c8ecef959ec..e2c129169c6 100644
--- a/src/mame/drivers/wrlshunt.cpp
+++ b/src/mame/drivers/wrlshunt.cpp
@@ -2,74 +2,74 @@
// copyright-holders:Ryan Holtz
/******************************************************************************
- Wireless Hunting Video Game System skeleton driver
-
- System: Wireless Hunting Video Game System
- Publisher: Hamy / Kids Station Toys Inc
- Year: 2011
- ROM: FDI MSP55LV100G
- RAM: Micron Technology 48LC8M16A2
-
- Games:
- Secret Mission
- Predator
- Delta Force
- Toy Land
- Dream Forest
- Trophy Season
- Freedom Force
- Be Careful
- Net Power
- Open Training
- Super Archer
- Ultimate Frisbee
- UFO Shooting
- Happy Darts
- Balloon Shoot
- Avatair
- Angry Pirate
- Penguin War
- Ghost Shooter
- Duck Hunt
-
-
- ROM Board:
- Package: SO44
- Spacing: 1.27 mm
- Width: 16.14 mm
- Length: 27.78 mm
- Voltage: 3V
- Pinout:
-
- A25 A24
- | |
- +--------------------------+
- A21 --|== # # `.__.' ==|-- A20
- A18 --|== ==|-- A19
- A17 --|== ==|-- A8
- A7 --|== ==|-- A9
- A6 --|== o ==|-- A10
- A5 --|== +----------------+ ==|-- A11
- A4 --|== | | ==|-- A12
- A3 --|== | MSP55LV100G | ==|-- A13
- A2 --|== | 0834 M02H | ==|-- A14
- A1 --|== | JAPAN | ==|-- A15
- A0 --|== | | ==|-- A16
- #CE --|== | | ==|-- A23
- GND --|== | | ==|-- A22
- #OE --|== | | ==|-- Q15
- Q0 --|== | | ==|-- Q7
- Q8 --|== | | ==|-- Q14
- Q1 --|== +----------------+ ==|-- Q6
- Q9 --|== ==|-- Q13
- Q2 --|== M55L100G ==|-- Q5
- Q10 --|== ==|-- Q12
- Q3 --|== ==|-- Q4
- Q11 --|== ==|-- VCC
- +--------------------------+
-
- The only interesting string in this ROM is SPF2ALP,
- which is also found in the Wireless Air 60 ROM.
+ Wireless Hunting Video Game System skeleton driver
+
+ System: Wireless Hunting Video Game System
+ Publisher: Hamy / Kids Station Toys Inc
+ Year: 2011
+ ROM: FDI MSP55LV100G
+ RAM: Micron Technology 48LC8M16A2
+
+ Games:
+ Secret Mission
+ Predator
+ Delta Force
+ Toy Land
+ Dream Forest
+ Trophy Season
+ Freedom Force
+ Be Careful
+ Net Power
+ Open Training
+ Super Archer
+ Ultimate Frisbee
+ UFO Shooting
+ Happy Darts
+ Balloon Shoot
+ Avatair
+ Angry Pirate
+ Penguin War
+ Ghost Shooter
+ Duck Hunt
+
+
+ ROM Board:
+ Package: SO44
+ Spacing: 1.27 mm
+ Width: 16.14 mm
+ Length: 27.78 mm
+ Voltage: 3V
+ Pinout:
+
+ A25 A24
+ | |
+ +--------------------------+
+ A21 --|== # # `.__.' ==|-- A20
+ A18 --|== ==|-- A19
+ A17 --|== ==|-- A8
+ A7 --|== ==|-- A9
+ A6 --|== o ==|-- A10
+ A5 --|== +----------------+ ==|-- A11
+ A4 --|== | | ==|-- A12
+ A3 --|== | MSP55LV100G | ==|-- A13
+ A2 --|== | 0834 M02H | ==|-- A14
+ A1 --|== | JAPAN | ==|-- A15
+ A0 --|== | | ==|-- A16
+ #CE --|== | | ==|-- A23
+ GND --|== | | ==|-- A22
+ #OE --|== | | ==|-- Q15
+ Q0 --|== | | ==|-- Q7
+ Q8 --|== | | ==|-- Q14
+ Q1 --|== +----------------+ ==|-- Q6
+ Q9 --|== ==|-- Q13
+ Q2 --|== M55L100G ==|-- Q5
+ Q10 --|== ==|-- Q12
+ Q3 --|== ==|-- Q4
+ Q11 --|== ==|-- VCC
+ +--------------------------+
+
+ The only interesting string in this ROM is SPF2ALP,
+ which is also found in the Wireless Air 60 ROM.
*******************************************************************************/
diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp
index 27ba1996c21..a40f0bf3fcb 100644
--- a/src/mame/drivers/xavix.cpp
+++ b/src/mame/drivers/xavix.cpp
@@ -186,7 +186,7 @@
7 PLAY TV OPUS /RADICA/USA,EU - - - - - - dumped (US version, PAL version appears to use different ROM)
8 PLAY TV Baseball 2 /EPOCH/Japan, HK - - - - - - -
9 Let's hit a homerun! Exciting baseball /EPOCH/Japan - - - - - -
- Play TV Baseball /RADICA/USA,EU 8017 x8 none none SSD 98 PA7351-107 dumped
+ Play TV Baseball /RADICA/USA,EU 8017 x8 none none SSD 98 PA7351-107 dumped
1999 1 ABC Jungle Fun Hippo /Vteck/HK, USA, France - - - - - - -
Unknown 1 PLAY TV Football /RADICA/USA 74021 x8 48 4M none SSD 98 PL7351-181 dumped
XaviXTennis SGM6446 x16 48 8M 24C08 SSD 2002 NEC 85054-611 dumped
@@ -891,7 +891,7 @@ static INPUT_PORTS_START( popira2 ) // player 2 buttons have heavy latency, prob
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P2 Pad 1") PORT_PLAYER(2)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P2 Pad 2") PORT_PLAYER(2)
-
+
PORT_MODIFY("AN1") // 01
PORT_DIPNAME( 0x0001, 0x0001, "AN1" )
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
@@ -2073,7 +2073,7 @@ ROM_END
// [:] (possible DMA op SRC 00ebe2d3 DST 358a LEN 0398)
// needs to come from 006be2d3 (so still from lower 8MB, not upper 8MB)
-ROM_START( xavmusic )
+ROM_START( xavmusic )
ROM_REGION( 0x1000000, "bios", ROMREGION_ERASE00 )
ROM_LOAD( "xpmusicandcircuit.bin", 0x000000, 0x1000000, CRC(e06129d2) SHA1(d074d0dd85ce870f435da3c066a7f52b50999665) )
ROM_END
diff --git a/src/mame/drivers/xavix2.cpp b/src/mame/drivers/xavix2.cpp
index a0e6327506e..635be1be875 100644
--- a/src/mame/drivers/xavix2.cpp
+++ b/src/mame/drivers/xavix2.cpp
@@ -2,11 +2,11 @@
// copyright-holders:David Haywood
/******************************************************************************
- XaviX 2
+ XaviX 2
- unknown architecture, does not appear to be 6502 derived like XaviX / SuperXaviX
+ unknown architecture, does not appear to be 6502 derived like XaviX / SuperXaviX
- die is marked "SSD 2002-2004 NEC 800208-51"
+ die is marked "SSD 2002-2004 NEC 800208-51"
*******************************************************************************/
diff --git a/src/mame/includes/apple3.h b/src/mame/includes/apple3.h
index ef32b981503..58b86f1ee3b 100644
--- a/src/mame/includes/apple3.h
+++ b/src/mame/includes/apple3.h
@@ -88,21 +88,21 @@ public:
required_device<floppy_connector> floppy2;
required_device<floppy_connector> floppy3;
- DECLARE_READ8_MEMBER(apple3_memory_r);
- DECLARE_WRITE8_MEMBER(apple3_memory_w);
+ uint8_t apple3_memory_r(offs_t offset);
+ void apple3_memory_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER(apple3_sync_w);
- DECLARE_READ8_MEMBER(apple3_c0xx_r);
- DECLARE_WRITE8_MEMBER(apple3_c0xx_w);
+ uint8_t apple3_c0xx_r(offs_t offset);
+ void apple3_c0xx_w(offs_t offset, uint8_t data);
void init_apple3();
virtual void machine_reset() override;
virtual void video_start() override;
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(scanstart_cb);
TIMER_CALLBACK_MEMBER(scanend_cb);
- DECLARE_WRITE8_MEMBER(apple3_via_0_out_a);
- DECLARE_WRITE8_MEMBER(apple3_via_0_out_b);
- DECLARE_WRITE8_MEMBER(apple3_via_1_out_a);
- DECLARE_WRITE8_MEMBER(apple3_via_1_out_b);
+ void apple3_via_0_out_a(uint8_t data);
+ void apple3_via_0_out_b(uint8_t data);
+ void apple3_via_1_out_a(uint8_t data);
+ void apple3_via_1_out_b(uint8_t data);
void apple3_write_charmem();
void text40(bitmap_ind16 &bitmap, const rectangle &cliprect);
void text80(bitmap_ind16 &bitmap, const rectangle &cliprect);
diff --git a/src/mame/includes/dec0.h b/src/mame/includes/dec0.h
index d8671057de3..da3d10686dc 100644
--- a/src/mame/includes/dec0.h
+++ b/src/mame/includes/dec0.h
@@ -39,8 +39,7 @@ public:
m_sndprotect(*this, "sndprotect"),
m_ram(*this, "ram"),
m_robocop_shared_ram(*this, "robocop_shared"),
- m_hippodrm_shared_ram(*this, "hippodrm_shared"),
- m_in_trackball(*this, "track_%u", 0)
+ m_hippodrm_shared_ram(*this, "hippodrm_shared")
{ }
void dec0_base(machine_config &config);
@@ -105,7 +104,6 @@ private:
required_shared_ptr<uint16_t> m_ram;
optional_shared_ptr<uint8_t> m_robocop_shared_ram;
optional_shared_ptr<uint8_t> m_hippodrm_shared_ram;
- optional_ioport_array<4> m_in_trackball;
mcu_type m_game;
uint16_t m_i8751_return;
@@ -116,7 +114,6 @@ private:
int m_hippodrm_lsb;
uint8_t m_i8751_ports[4];
- DECLARE_READ8_MEMBER(trackball_r);
DECLARE_WRITE16_MEMBER(dec0_control_w);
DECLARE_WRITE16_MEMBER(midres_sound_w);
DECLARE_READ16_MEMBER(slyspy_protection_r);
@@ -159,6 +156,7 @@ private:
void dec0_i8751_reset();
void h6280_decrypt(const char *cputag);
void dec0_map(address_map &map);
+ void dec0_tb_map(address_map &map);
void dec0_s_map(address_map &map);
void hippodrm_map(address_map &map);
void hippodrm_sub_map(address_map &map);
diff --git a/src/mame/includes/fidelbase.h b/src/mame/includes/fidelbase.h
index 94c60572b14..1a232d9bab5 100644
--- a/src/mame/includes/fidelbase.h
+++ b/src/mame/includes/fidelbase.h
@@ -34,6 +34,7 @@ public:
m_div_config(*this, "div_config"),
m_speech(*this, "speech"),
m_speech_rom(*this, "speech"),
+ m_language(*this, "language"),
m_dac(*this, "dac"),
m_cart(*this, "cartslot")
{ }
@@ -41,9 +42,6 @@ public:
// in case reset button is directly tied to maincpu reset pin
virtual DECLARE_INPUT_CHANGED_MEMBER(reset_button) { m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); }
- // speech rom language, normally 0=English, 1=German, 2=French, 3=Spanish
- template<int Language> void init_language() { m_language = Language; }
-
protected:
// devices/pointers
required_device<cpu_device> m_maincpu;
@@ -53,11 +51,10 @@ protected:
optional_ioport m_div_config;
optional_device<s14001a_device> m_speech;
optional_region_ptr<u8> m_speech_rom;
+ optional_region_ptr<u8> m_language;
optional_device<dac_bit_interface> m_dac;
optional_device<generic_slot_device> m_cart;
- int m_language;
-
u8 m_speech_data;
u8 m_speech_bank; // speech rom higher address bits
diff --git a/src/mame/includes/spectrum.h b/src/mame/includes/spectrum.h
index 9ace2a689fc..4a48fb41772 100644
--- a/src/mame/includes/spectrum.h
+++ b/src/mame/includes/spectrum.h
@@ -107,8 +107,6 @@ public:
void spectrum_128(machine_config &config);
void init_spectrum();
- void init_spec128();
- void init_timex();
void init_plus2();
void init_plus3();
diff --git a/src/mame/includes/xavix.h b/src/mame/includes/xavix.h
index 4bb1084ec1a..bf2abb6ee77 100644
--- a/src/mame/includes/xavix.h
+++ b/src/mame/includes/xavix.h
@@ -106,10 +106,10 @@ public:
void xavix(machine_config &config);
void xavix_nv(machine_config &config);
-
+
void xavixp(machine_config &config);
void xavixp_nv(machine_config &config);
-
+
void xavix2000(machine_config &config);
void xavix2000_nv(machine_config &config);
@@ -796,7 +796,7 @@ protected:
m_cartslot->write_bus_control(space,offset,data,mem_mask);
}
};
-
+
virtual uint8_t extbus_r(offs_t offset) override
{
if (m_cartslot->has_cart() && m_cartslot->is_read_access_not_rom())
diff --git a/src/mame/layout/fidel_bv3.lay b/src/mame/layout/fidel_bv3.lay
index 9ba7e8df705..78b9c8292f1 100644
--- a/src/mame/layout/fidel_bv3.lay
+++ b/src/mame/layout/fidel_bv3.lay
@@ -145,4 +145,4 @@
<bezel element="text_b32"><bounds x="46" y="33.45" width="8" height="1.4" /></bezel>
</view>
-</mamelayout> \ No newline at end of file
+</mamelayout>
diff --git a/src/mame/layout/fidel_eas_priv.lay b/src/mame/layout/fidel_eas_priv.lay
index 57bc6dc6f89..bef26febedf 100644
--- a/src/mame/layout/fidel_eas_priv.lay
+++ b/src/mame/layout/fidel_eas_priv.lay
@@ -31,76 +31,29 @@
<disk state="1"><color red="0.34" green="0.3" blue="0.3" /></disk>
</element>
+ <element name="blackb"><rect><color red="0" green="0" blue="0" /></rect></element>
<element name="black"><rect><color red="0.17" green="0.15" blue="0.15" /></rect></element>
<element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
<element name="disk_black"><disk><color red="0.17" green="0.15" blue="0.15" /></disk></element>
<element name="disk_white"><disk><color red="0.81" green="0.8" blue="0.79" /></disk></element>
- <element name="text_1">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="1"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
- <element name="text_2">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="2"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
- <element name="text_3">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="3"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
- <element name="text_4">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="4"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
- <element name="text_5">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="5"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
- <element name="text_6">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="6"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
- <element name="text_7">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="7"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
- <element name="text_8">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="8"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
-
- <element name="text_a">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="A"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
- <element name="text_b">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="B"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
- <element name="text_c">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="C"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
- <element name="text_d">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="D"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
- <element name="text_e">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="E"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
- <element name="text_f">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="F"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
- <element name="text_g">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="G"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
- <element name="text_h">
- <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
- <text string="H"><color red="0.01" green="0.01" blue="0.01" /></text>
- </element>
+ <element name="text_1"><text string="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_2"><text string="2"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_3"><text string="3"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_4"><text string="4"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_5"><text string="5"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_6"><text string="6"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_7"><text string="7"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_8"><text string="8"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+
+ <element name="text_a"><text string="A"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_b"><text string="B"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_c"><text string="C"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_d"><text string="D"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_e"><text string="E"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_f"><text string="F"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_g"><text string="G"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_h"><text string="H"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_p1"><text string="&#x265a;"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_p2"><text string="&#x265b;"><color red="0.81" green="0.8" blue="0.79" /></text></element>
@@ -122,39 +75,16 @@
<element name="text_b10"><text string="CL"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b11"><text string="RV"><color red="0.81" green="0.8" blue="0.79" /></text></element>
- <element name="text_r1"><text string="YOUR" align="2"><color red="0.81" green="0.8" blue="0.79" /></text></element>
- <element name="text_r2"><text string="MOVE" align="2"><color red="0.81" green="0.8" blue="0.79" /></text></element>
- <element name="text_r3"><text string="CHECK" align="2"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r1"><text string="YOUR MOVE" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
+ <element name="text_r2"><text string="CHECK" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<!-- build screen -->
<view name="Internal Layout">
- <bounds left="-2" right="88" top="-2" bottom="100.5" />
+ <bounds left="0" right="138" top="0" bottom="86" />
- <bezel element="white"><bounds x="-2.5" y="-2.5" width="91" height="90.5" /></bezel>
-
- <!-- chessboard coords -->
-
- <bezel element="text_8"><bounds x="-0.8" y="7" width="2" height="2" /></bezel>
- <bezel element="text_7"><bounds x="-0.8" y="17" width="2" height="2" /></bezel>
- <bezel element="text_6"><bounds x="-0.8" y="27" width="2" height="2" /></bezel>
- <bezel element="text_5"><bounds x="-0.8" y="37" width="2" height="2" /></bezel>
- <bezel element="text_4"><bounds x="-0.8" y="47" width="2" height="2" /></bezel>
- <bezel element="text_3"><bounds x="-0.8" y="57" width="2" height="2" /></bezel>
- <bezel element="text_2"><bounds x="-0.8" y="67" width="2" height="2" /></bezel>
- <bezel element="text_1"><bounds x="-0.8" y="77" width="2" height="2" /></bezel>
-
- <bezel element="text_a"><bounds x="7" y="85" width="2" height="2" /></bezel>
- <bezel element="text_b"><bounds x="17" y="85" width="2" height="2" /></bezel>
- <bezel element="text_c"><bounds x="27" y="85" width="2" height="2" /></bezel>
- <bezel element="text_d"><bounds x="37" y="85" width="2" height="2" /></bezel>
- <bezel element="text_e"><bounds x="47" y="85" width="2" height="2" /></bezel>
- <bezel element="text_f"><bounds x="57" y="85" width="2" height="2" /></bezel>
- <bezel element="text_g"><bounds x="67" y="85" width="2" height="2" /></bezel>
- <bezel element="text_h"><bounds x="77" y="85" width="2" height="2" /></bezel>
-
- <!-- chessboard bezel -->
+ <!-- chessboard 1 bezel -->
<bezel element="black"><bounds x="2" y="2" width="82" height="82" /></bezel>
<bezel element="white"><bounds x="3" y="3" width="80" height="80" /></bezel>
@@ -199,81 +129,7 @@
<bezel element="black"><bounds x="43" y="73" width="10" height="10.5" /></bezel>
<bezel element="black"><bounds x="63" y="73" width="10" height="10.5" /></bezel>
- <!-- chessboard leds -->
-
- <bezel name="0.8" element="led"><bounds x="3.2" y="11.3" width="1.5" height="1.5" /></bezel>
- <bezel name="1.8" element="led"><bounds x="13.2" y="11.3" width="1.5" height="1.5" /></bezel>
- <bezel name="2.8" element="led"><bounds x="23.2" y="11.3" width="1.5" height="1.5" /></bezel>
- <bezel name="3.8" element="led"><bounds x="33.2" y="11.3" width="1.5" height="1.5" /></bezel>
- <bezel name="4.8" element="led"><bounds x="43.2" y="11.3" width="1.5" height="1.5" /></bezel>
- <bezel name="5.8" element="led"><bounds x="53.2" y="11.3" width="1.5" height="1.5" /></bezel>
- <bezel name="6.8" element="led"><bounds x="63.2" y="11.3" width="1.5" height="1.5" /></bezel>
- <bezel name="7.8" element="led"><bounds x="73.2" y="11.3" width="1.5" height="1.5" /></bezel>
-
- <bezel name="0.9" element="led"><bounds x="3.2" y="21.3" width="1.5" height="1.5" /></bezel>
- <bezel name="1.9" element="led"><bounds x="13.2" y="21.3" width="1.5" height="1.5" /></bezel>
- <bezel name="2.9" element="led"><bounds x="23.2" y="21.3" width="1.5" height="1.5" /></bezel>
- <bezel name="3.9" element="led"><bounds x="33.2" y="21.3" width="1.5" height="1.5" /></bezel>
- <bezel name="4.9" element="led"><bounds x="43.2" y="21.3" width="1.5" height="1.5" /></bezel>
- <bezel name="5.9" element="led"><bounds x="53.2" y="21.3" width="1.5" height="1.5" /></bezel>
- <bezel name="6.9" element="led"><bounds x="63.2" y="21.3" width="1.5" height="1.5" /></bezel>
- <bezel name="7.9" element="led"><bounds x="73.2" y="21.3" width="1.5" height="1.5" /></bezel>
-
- <bezel name="0.10" element="led"><bounds x="3.2" y="31.3" width="1.5" height="1.5" /></bezel>
- <bezel name="1.10" element="led"><bounds x="13.2" y="31.3" width="1.5" height="1.5" /></bezel>
- <bezel name="2.10" element="led"><bounds x="23.2" y="31.3" width="1.5" height="1.5" /></bezel>
- <bezel name="3.10" element="led"><bounds x="33.2" y="31.3" width="1.5" height="1.5" /></bezel>
- <bezel name="4.10" element="led"><bounds x="43.2" y="31.3" width="1.5" height="1.5" /></bezel>
- <bezel name="5.10" element="led"><bounds x="53.2" y="31.3" width="1.5" height="1.5" /></bezel>
- <bezel name="6.10" element="led"><bounds x="63.2" y="31.3" width="1.5" height="1.5" /></bezel>
- <bezel name="7.10" element="led"><bounds x="73.2" y="31.3" width="1.5" height="1.5" /></bezel>
-
- <bezel name="0.11" element="led"><bounds x="3.2" y="41.3" width="1.5" height="1.5" /></bezel>
- <bezel name="1.11" element="led"><bounds x="13.2" y="41.3" width="1.5" height="1.5" /></bezel>
- <bezel name="2.11" element="led"><bounds x="23.2" y="41.3" width="1.5" height="1.5" /></bezel>
- <bezel name="3.11" element="led"><bounds x="33.2" y="41.3" width="1.5" height="1.5" /></bezel>
- <bezel name="4.11" element="led"><bounds x="43.2" y="41.3" width="1.5" height="1.5" /></bezel>
- <bezel name="5.11" element="led"><bounds x="53.2" y="41.3" width="1.5" height="1.5" /></bezel>
- <bezel name="6.11" element="led"><bounds x="63.2" y="41.3" width="1.5" height="1.5" /></bezel>
- <bezel name="7.11" element="led"><bounds x="73.2" y="41.3" width="1.5" height="1.5" /></bezel>
-
- <bezel name="0.12" element="led"><bounds x="3.2" y="51.3" width="1.5" height="1.5" /></bezel>
- <bezel name="1.12" element="led"><bounds x="13.2" y="51.3" width="1.5" height="1.5" /></bezel>
- <bezel name="2.12" element="led"><bounds x="23.2" y="51.3" width="1.5" height="1.5" /></bezel>
- <bezel name="3.12" element="led"><bounds x="33.2" y="51.3" width="1.5" height="1.5" /></bezel>
- <bezel name="4.12" element="led"><bounds x="43.2" y="51.3" width="1.5" height="1.5" /></bezel>
- <bezel name="5.12" element="led"><bounds x="53.2" y="51.3" width="1.5" height="1.5" /></bezel>
- <bezel name="6.12" element="led"><bounds x="63.2" y="51.3" width="1.5" height="1.5" /></bezel>
- <bezel name="7.12" element="led"><bounds x="73.2" y="51.3" width="1.5" height="1.5" /></bezel>
-
- <bezel name="0.13" element="led"><bounds x="3.2" y="61.3" width="1.5" height="1.5" /></bezel>
- <bezel name="1.13" element="led"><bounds x="13.2" y="61.3" width="1.5" height="1.5" /></bezel>
- <bezel name="2.13" element="led"><bounds x="23.2" y="61.3" width="1.5" height="1.5" /></bezel>
- <bezel name="3.13" element="led"><bounds x="33.2" y="61.3" width="1.5" height="1.5" /></bezel>
- <bezel name="4.13" element="led"><bounds x="43.2" y="61.3" width="1.5" height="1.5" /></bezel>
- <bezel name="5.13" element="led"><bounds x="53.2" y="61.3" width="1.5" height="1.5" /></bezel>
- <bezel name="6.13" element="led"><bounds x="63.2" y="61.3" width="1.5" height="1.5" /></bezel>
- <bezel name="7.13" element="led"><bounds x="73.2" y="61.3" width="1.5" height="1.5" /></bezel>
-
- <bezel name="0.14" element="led"><bounds x="3.2" y="71.3" width="1.5" height="1.5" /></bezel>
- <bezel name="1.14" element="led"><bounds x="13.2" y="71.3" width="1.5" height="1.5" /></bezel>
- <bezel name="2.14" element="led"><bounds x="23.2" y="71.3" width="1.5" height="1.5" /></bezel>
- <bezel name="3.14" element="led"><bounds x="33.2" y="71.3" width="1.5" height="1.5" /></bezel>
- <bezel name="4.14" element="led"><bounds x="43.2" y="71.3" width="1.5" height="1.5" /></bezel>
- <bezel name="5.14" element="led"><bounds x="53.2" y="71.3" width="1.5" height="1.5" /></bezel>
- <bezel name="6.14" element="led"><bounds x="63.2" y="71.3" width="1.5" height="1.5" /></bezel>
- <bezel name="7.14" element="led"><bounds x="73.2" y="71.3" width="1.5" height="1.5" /></bezel>
-
- <bezel name="0.15" element="led"><bounds x="3.2" y="81.3" width="1.5" height="1.5" /></bezel>
- <bezel name="1.15" element="led"><bounds x="13.2" y="81.3" width="1.5" height="1.5" /></bezel>
- <bezel name="2.15" element="led"><bounds x="23.2" y="81.3" width="1.5" height="1.5" /></bezel>
- <bezel name="3.15" element="led"><bounds x="33.2" y="81.3" width="1.5" height="1.5" /></bezel>
- <bezel name="4.15" element="led"><bounds x="43.2" y="81.3" width="1.5" height="1.5" /></bezel>
- <bezel name="5.15" element="led"><bounds x="53.2" y="81.3" width="1.5" height="1.5" /></bezel>
- <bezel name="6.15" element="led"><bounds x="63.2" y="81.3" width="1.5" height="1.5" /></bezel>
- <bezel name="7.15" element="led"><bounds x="73.2" y="81.3" width="1.5" height="1.5" /></bezel>
-
- <!-- chessboard sensors -->
+ <!-- chessboard 1 sensors -->
<bezel element="hl" inputtag="IN.0" inputmask="0x01"><bounds x="3" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
<bezel element="hl" inputtag="IN.1" inputmask="0x01"><bounds x="13" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
@@ -347,77 +203,235 @@
<bezel element="hl" inputtag="IN.6" inputmask="0x80"><bounds x="63" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
<bezel element="hl" inputtag="IN.7" inputmask="0x80"><bounds x="73" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
+ <!-- chessboard 2 bezel -->
+
+ <bezel element="black"><bounds x="88" y="9" width="48" height="75" /></bezel>
+ <bezel element="blackb"><bounds x="88.5" y="9.5" width="48" height="75" /></bezel>
+
+ <bezel element="black"><bounds x="93" y="15" width="41" height="41" /></bezel>
+ <bezel element="white"><bounds x="93.5" y="15.5" width="40" height="40" /></bezel>
+
+ <bezel element="black"><bounds x="98.5" y="15.25" width="5" height="5.25" /></bezel>
+ <bezel element="black"><bounds x="108.5" y="15.25" width="5" height="5.25" /></bezel>
+ <bezel element="black"><bounds x="118.5" y="15.25" width="5" height="5.25" /></bezel>
+ <bezel element="black"><bounds x="128.5" y="15.25" width="5.25" height="5.25" /></bezel>
+
+ <bezel element="black"><bounds x="93.25" y="20.5" width="5.25" height="5" /></bezel>
+ <bezel element="black"><bounds x="103.5" y="20.5" width="5" height="5" /></bezel>
+ <bezel element="black"><bounds x="113.5" y="20.5" width="5" height="5" /></bezel>
+ <bezel element="black"><bounds x="123.5" y="20.5" width="5" height="5" /></bezel>
+
+ <bezel element="black"><bounds x="98.5" y="25.5" width="5" height="5" /></bezel>
+ <bezel element="black"><bounds x="108.5" y="25.5" width="5" height="5" /></bezel>
+ <bezel element="black"><bounds x="118.5" y="25.5" width="5" height="5" /></bezel>
+ <bezel element="black"><bounds x="128.5" y="25.5" width="5.25" height="5" /></bezel>
+
+ <bezel element="black"><bounds x="93.25" y="30.5" width="5.25" height="5" /></bezel>
+ <bezel element="black"><bounds x="103.5" y="30.5" width="5" height="5" /></bezel>
+ <bezel element="black"><bounds x="113.5" y="30.5" width="5" height="5" /></bezel>
+ <bezel element="black"><bounds x="123.5" y="30.5" width="5" height="5" /></bezel>
+
+ <bezel element="black"><bounds x="98.5" y="35.5" width="5" height="5" /></bezel>
+ <bezel element="black"><bounds x="108.5" y="35.5" width="5" height="5" /></bezel>
+ <bezel element="black"><bounds x="118.5" y="35.5" width="5" height="5" /></bezel>
+ <bezel element="black"><bounds x="128.5" y="35.5" width="5.25" height="5" /></bezel>
+
+ <bezel element="black"><bounds x="93.25" y="40.5" width="5.25" height="5" /></bezel>
+ <bezel element="black"><bounds x="103.5" y="40.5" width="5" height="5" /></bezel>
+ <bezel element="black"><bounds x="113.5" y="40.5" width="5" height="5" /></bezel>
+ <bezel element="black"><bounds x="123.5" y="40.5" width="5" height="5" /></bezel>
+
+ <bezel element="black"><bounds x="98.5" y="45.5" width="5" height="5" /></bezel>
+ <bezel element="black"><bounds x="108.5" y="45.5" width="5" height="5" /></bezel>
+ <bezel element="black"><bounds x="118.5" y="45.5" width="5" height="5" /></bezel>
+ <bezel element="black"><bounds x="128.5" y="45.5" width="5.25" height="5" /></bezel>
+
+ <bezel element="black"><bounds x="93.25" y="50.5" width="5.25" height="5.25" /></bezel>
+ <bezel element="black"><bounds x="103.5" y="50.5" width="5" height="5.25" /></bezel>
+ <bezel element="black"><bounds x="113.5" y="50.5" width="5" height="5.25" /></bezel>
+ <bezel element="black"><bounds x="123.5" y="50.5" width="5" height="5.25" /></bezel>
+
+ <!-- chessboard 2 coords -->
+
+ <bezel element="text_8"><bounds x="91" y="17.1" width="2" height="1.5" /></bezel>
+ <bezel element="text_7"><bounds x="91" y="22.1" width="2" height="1.5" /></bezel>
+ <bezel element="text_6"><bounds x="91" y="27.1" width="2" height="1.5" /></bezel>
+ <bezel element="text_5"><bounds x="91" y="32.1" width="2" height="1.5" /></bezel>
+ <bezel element="text_4"><bounds x="91" y="37.1" width="2" height="1.5" /></bezel>
+ <bezel element="text_3"><bounds x="91" y="42.1" width="2" height="1.5" /></bezel>
+ <bezel element="text_2"><bounds x="91" y="47.1" width="2" height="1.5" /></bezel>
+ <bezel element="text_1"><bounds x="91" y="52.1" width="2" height="1.5" /></bezel>
+
+ <bezel element="text_8"><bounds x="134" y="17.1" width="2" height="1.5" /></bezel>
+ <bezel element="text_7"><bounds x="134" y="22.1" width="2" height="1.5" /></bezel>
+ <bezel element="text_6"><bounds x="134" y="27.1" width="2" height="1.5" /></bezel>
+ <bezel element="text_5"><bounds x="134" y="32.1" width="2" height="1.5" /></bezel>
+ <bezel element="text_4"><bounds x="134" y="37.1" width="2" height="1.5" /></bezel>
+ <bezel element="text_3"><bounds x="134" y="42.1" width="2" height="1.5" /></bezel>
+ <bezel element="text_2"><bounds x="134" y="47.1" width="2" height="1.5" /></bezel>
+ <bezel element="text_1"><bounds x="134" y="52.1" width="2" height="1.5" /></bezel>
+
+ <bezel element="text_a"><bounds x="95" y="13" width="2" height="1.5" /></bezel>
+ <bezel element="text_b"><bounds x="100" y="13" width="2" height="1.5" /></bezel>
+ <bezel element="text_c"><bounds x="105" y="13" width="2" height="1.5" /></bezel>
+ <bezel element="text_d"><bounds x="110" y="13" width="2" height="1.5" /></bezel>
+ <bezel element="text_e"><bounds x="115" y="13" width="2" height="1.5" /></bezel>
+ <bezel element="text_f"><bounds x="120" y="13" width="2" height="1.5" /></bezel>
+ <bezel element="text_g"><bounds x="125" y="13" width="2" height="1.5" /></bezel>
+ <bezel element="text_h"><bounds x="130" y="13" width="2" height="1.5" /></bezel>
+
+ <bezel element="text_a"><bounds x="95" y="56.5" width="2" height="1.5" /></bezel>
+ <bezel element="text_b"><bounds x="100" y="56.5" width="2" height="1.5" /></bezel>
+ <bezel element="text_c"><bounds x="105" y="56.5" width="2" height="1.5" /></bezel>
+ <bezel element="text_d"><bounds x="110" y="56.5" width="2" height="1.5" /></bezel>
+ <bezel element="text_e"><bounds x="115" y="56.5" width="2" height="1.5" /></bezel>
+ <bezel element="text_f"><bounds x="120" y="56.5" width="2" height="1.5" /></bezel>
+ <bezel element="text_g"><bounds x="125" y="56.5" width="2" height="1.5" /></bezel>
+ <bezel element="text_h"><bounds x="130" y="56.5" width="2" height="1.5" /></bezel>
+
+ <!-- chessboard 2 leds -->
+
+ <bezel name="0.8" element="led"><bounds x="95.25" y="17.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.8" element="led"><bounds x="100.25" y="17.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.8" element="led"><bounds x="105.25" y="17.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.8" element="led"><bounds x="110.25" y="17.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.8" element="led"><bounds x="115.25" y="17.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.8" element="led"><bounds x="120.25" y="17.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.8" element="led"><bounds x="125.25" y="17.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.8" element="led"><bounds x="130.25" y="17.25" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.9" element="led"><bounds x="95.25" y="22.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.9" element="led"><bounds x="100.25" y="22.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.9" element="led"><bounds x="105.25" y="22.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.9" element="led"><bounds x="110.25" y="22.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.9" element="led"><bounds x="115.25" y="22.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.9" element="led"><bounds x="120.25" y="22.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.9" element="led"><bounds x="125.25" y="22.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.9" element="led"><bounds x="130.25" y="22.25" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.10" element="led"><bounds x="95.25" y="27.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.10" element="led"><bounds x="100.25" y="27.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.10" element="led"><bounds x="105.25" y="27.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.10" element="led"><bounds x="110.25" y="27.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.10" element="led"><bounds x="115.25" y="27.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.10" element="led"><bounds x="120.25" y="27.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.10" element="led"><bounds x="125.25" y="27.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.10" element="led"><bounds x="130.25" y="27.25" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.11" element="led"><bounds x="95.25" y="32.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.11" element="led"><bounds x="100.25" y="32.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.11" element="led"><bounds x="105.25" y="32.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.11" element="led"><bounds x="110.25" y="32.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.11" element="led"><bounds x="115.25" y="32.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.11" element="led"><bounds x="120.25" y="32.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.11" element="led"><bounds x="125.25" y="32.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.11" element="led"><bounds x="130.25" y="32.25" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.12" element="led"><bounds x="95.25" y="37.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.12" element="led"><bounds x="100.25" y="37.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.12" element="led"><bounds x="105.25" y="37.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.12" element="led"><bounds x="110.25" y="37.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.12" element="led"><bounds x="115.25" y="37.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.12" element="led"><bounds x="120.25" y="37.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.12" element="led"><bounds x="125.25" y="37.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.12" element="led"><bounds x="130.25" y="37.25" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.13" element="led"><bounds x="95.25" y="42.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.13" element="led"><bounds x="100.25" y="42.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.13" element="led"><bounds x="105.25" y="42.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.13" element="led"><bounds x="110.25" y="42.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.13" element="led"><bounds x="115.25" y="42.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.13" element="led"><bounds x="120.25" y="42.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.13" element="led"><bounds x="125.25" y="42.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.13" element="led"><bounds x="130.25" y="42.25" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.14" element="led"><bounds x="95.25" y="47.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.14" element="led"><bounds x="100.25" y="47.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.14" element="led"><bounds x="105.25" y="47.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.14" element="led"><bounds x="110.25" y="47.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.14" element="led"><bounds x="115.25" y="47.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.14" element="led"><bounds x="120.25" y="47.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.14" element="led"><bounds x="125.25" y="47.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.14" element="led"><bounds x="130.25" y="47.25" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.15" element="led"><bounds x="95.25" y="52.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.15" element="led"><bounds x="100.25" y="52.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.15" element="led"><bounds x="105.25" y="52.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.15" element="led"><bounds x="110.25" y="52.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.15" element="led"><bounds x="115.25" y="52.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.15" element="led"><bounds x="120.25" y="52.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.15" element="led"><bounds x="125.25" y="52.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.15" element="led"><bounds x="130.25" y="52.25" width="1.5" height="1.5" /></bezel>
+
<!-- bottom side -->
- <bezel name="8.8" element="led2"><bounds x="42" y="90" width="1.5" height="1.5" /></bezel>
- <bezel name="8.9" element="led2"><bounds x="45" y="90" width="1.5" height="1.5" /></bezel>
- <bezel name="8.10" element="led2"><bounds x="48" y="90" width="1.5" height="1.5" /></bezel>
- <bezel name="8.11" element="led2"><bounds x="51" y="90" width="1.5" height="1.5" /></bezel>
- <bezel name="8.12" element="led2"><bounds x="54" y="90" width="1.5" height="1.5" /></bezel>
- <bezel name="8.13" element="led2"><bounds x="57" y="90" width="1.5" height="1.5" /></bezel>
-
- <bezel name="8.14" element="led2"><bounds x="76.5" y="90" width="1.5" height="1.5" /></bezel>
- <bezel name="8.15" element="led2"><bounds x="76.5" y="94" width="1.5" height="1.5" /></bezel>
-
- <bezel element="but" inputtag="IN.8" inputmask="0x01"><bounds x="33.9" y="94" width="1.5" height="1.5" /></bezel>
- <bezel element="but" inputtag="IN.8" inputmask="0x02"><bounds x="36.9" y="94" width="1.5" height="1.5" /></bezel>
-
- <bezel element="but" inputtag="IN.8" inputmask="0x04"><bounds x="42" y="94" width="1.5" height="1.5" /></bezel>
- <bezel element="but" inputtag="IN.8" inputmask="0x08"><bounds x="45" y="94" width="1.5" height="1.5" /></bezel>
- <bezel element="but" inputtag="IN.8" inputmask="0x10"><bounds x="48" y="94" width="1.5" height="1.5" /></bezel>
- <bezel element="but" inputtag="IN.8" inputmask="0x20"><bounds x="51" y="94" width="1.5" height="1.5" /></bezel>
- <bezel element="but" inputtag="IN.8" inputmask="0x40"><bounds x="54" y="94" width="1.5" height="1.5" /></bezel>
- <bezel element="but" inputtag="IN.8" inputmask="0x80"><bounds x="57" y="94" width="1.5" height="1.5" /></bezel>
-
- <bezel element="but" inputtag="IN.0" inputmask="0x100"><bounds x="62.1" y="94" width="1.5" height="1.5" /></bezel>
- <bezel element="but" inputtag="IN.1" inputmask="0x100"><bounds x="65.1" y="94" width="1.5" height="1.5" /></bezel>
- <bezel element="but" inputtag="IN.2" inputmask="0x100"><bounds x="68.1" y="94" width="1.5" height="1.5" /></bezel>
-
- <bezel element="text_p1"><bounds x="41" y="91.3" width="3.5" height="2.6" /></bezel>
- <bezel element="text_p2"><bounds x="44" y="91.3" width="3.5" height="2.6" /></bezel>
- <bezel element="text_p3"><bounds x="47" y="91.3" width="3.5" height="2.6" /></bezel>
- <bezel element="text_p4"><bounds x="50" y="91.3" width="3.5" height="2.6" /></bezel>
- <bezel element="text_p5"><bounds x="53" y="91.3" width="3.5" height="2.6" /></bezel>
- <bezel element="text_p6"><bounds x="56" y="91.3" width="3.5" height="2.6" /></bezel>
-
- <bezel element="text_b1"><bounds x="30.9" y="95.8" width="7.5" height="1.5" /></bezel>
- <bezel element="text_b1a"><bounds x="30.9" y="97.3" width="7.5" height="1.5" /></bezel>
- <bezel element="text_b3"><bounds x="41" y="95.8" width="3.5" height="1.5" /></bezel>
- <bezel element="text_b4"><bounds x="44" y="95.8" width="3.5" height="1.5" /></bezel>
- <bezel element="text_b5"><bounds x="47" y="95.8" width="3.5" height="1.5" /></bezel>
- <bezel element="text_b6"><bounds x="50" y="95.8" width="3.5" height="1.5" /></bezel>
- <bezel element="text_b7"><bounds x="53" y="95.8" width="3.5" height="1.5" /></bezel>
- <bezel element="text_b8"><bounds x="56" y="95.8" width="3.5" height="1.5" /></bezel>
-
- <bezel element="text_b2"><bounds x="33.9" y="92.3" width="7.5" height="1.5" /></bezel>
- <bezel element="text_b9"><bounds x="61.1" y="92.3" width="3.5" height="1.5" /></bezel>
- <bezel element="text_b10"><bounds x="64.1" y="92.3" width="3.5" height="1.5" /></bezel>
- <bezel element="text_b11"><bounds x="67.1" y="92.3" width="3.5" height="1.5" /></bezel>
-
- <bezel element="text_r1"><bounds x="70" y="89.25" width="6" height="1.5" /></bezel>
- <bezel element="text_r2"><bounds x="70" y="90.75" width="6" height="1.5" /></bezel>
- <bezel element="text_r3"><bounds x="70" y="94" width="6" height="1.5" /></bezel>
+ <bezel name="8.8" element="led2"><bounds x="101.1" y="62.7" width="1.5" height="1.5" /></bezel>
+ <bezel name="8.9" element="led2"><bounds x="104.1" y="62.7" width="1.5" height="1.5" /></bezel>
+ <bezel name="8.10" element="led2"><bounds x="107.1" y="62.7" width="1.5" height="1.5" /></bezel>
+ <bezel name="8.11" element="led2"><bounds x="110.1" y="62.7" width="1.5" height="1.5" /></bezel>
+ <bezel name="8.12" element="led2"><bounds x="113.1" y="62.7" width="1.5" height="1.5" /></bezel>
+ <bezel name="8.13" element="led2"><bounds x="116.1" y="62.7" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="8.14" element="led2"><bounds x="128.1" y="62.7" width="1.5" height="1.5" /></bezel>
+ <bezel name="8.15" element="led2"><bounds x="128.1" y="66.7" width="1.5" height="1.5" /></bezel>
+
+ <bezel element="but" inputtag="IN.8" inputmask="0x01"><bounds x="93" y="66.7" width="1.5" height="1.5" /></bezel>
+ <bezel element="but" inputtag="IN.8" inputmask="0x02"><bounds x="96" y="66.7" width="1.5" height="1.5" /></bezel>
+
+ <bezel element="but" inputtag="IN.8" inputmask="0x04"><bounds x="101.1" y="66.7" width="1.5" height="1.5" /></bezel>
+ <bezel element="but" inputtag="IN.8" inputmask="0x08"><bounds x="104.1" y="66.7" width="1.5" height="1.5" /></bezel>
+ <bezel element="but" inputtag="IN.8" inputmask="0x10"><bounds x="107.1" y="66.7" width="1.5" height="1.5" /></bezel>
+ <bezel element="but" inputtag="IN.8" inputmask="0x20"><bounds x="110.1" y="66.7" width="1.5" height="1.5" /></bezel>
+ <bezel element="but" inputtag="IN.8" inputmask="0x40"><bounds x="113.1" y="66.7" width="1.5" height="1.5" /></bezel>
+ <bezel element="but" inputtag="IN.8" inputmask="0x80"><bounds x="116.1" y="66.7" width="1.5" height="1.5" /></bezel>
+ <bezel element="but" inputtag="IN.0" inputmask="0x100"><bounds x="119.1" y="66.7" width="1.5" height="1.5" /></bezel>
+ <bezel element="but" inputtag="IN.1" inputmask="0x100"><bounds x="122.1" y="66.7" width="1.5" height="1.5" /></bezel>
+ <bezel element="but" inputtag="IN.2" inputmask="0x100"><bounds x="125.1" y="66.7" width="1.5" height="1.5" /></bezel>
+
+ <bezel element="text_p1"><bounds x="100.1" y="64" width="3.5" height="2.6" /></bezel>
+ <bezel element="text_p2"><bounds x="103.1" y="64" width="3.5" height="2.6" /></bezel>
+ <bezel element="text_p3"><bounds x="106.1" y="64" width="3.5" height="2.6" /></bezel>
+ <bezel element="text_p4"><bounds x="109.1" y="64" width="3.5" height="2.6" /></bezel>
+ <bezel element="text_p5"><bounds x="112.1" y="64" width="3.5" height="2.6" /></bezel>
+ <bezel element="text_p6"><bounds x="115.1" y="64" width="3.5" height="2.6" /></bezel>
+
+ <bezel element="text_b1"><bounds x="90" y="68.5" width="7.5" height="1.5" /></bezel>
+ <bezel element="text_b1a"><bounds x="90" y="70" width="7.5" height="1.5" /></bezel>
+ <bezel element="text_b2"><bounds x="93" y="65" width="7.5" height="1.5" /></bezel>
+
+ <bezel element="text_b3"><bounds x="100.1" y="68.5" width="3.5" height="1.5" /></bezel>
+ <bezel element="text_b4"><bounds x="103.1" y="68.5" width="3.5" height="1.5" /></bezel>
+ <bezel element="text_b5"><bounds x="106.1" y="68.5" width="3.5" height="1.5" /></bezel>
+ <bezel element="text_b6"><bounds x="109.1" y="68.5" width="3.5" height="1.5" /></bezel>
+ <bezel element="text_b7"><bounds x="112.1" y="68.5" width="3.5" height="1.5" /></bezel>
+ <bezel element="text_b8"><bounds x="115.1" y="68.5" width="3.5" height="1.5" /></bezel>
+ <bezel element="text_b9"><bounds x="118.1" y="68.5" width="3.5" height="1.5" /></bezel>
+ <bezel element="text_b10"><bounds x="121.1" y="68.5" width="3.5" height="1.5" /></bezel>
+ <bezel element="text_b11"><bounds x="124.1" y="68.5" width="3.5" height="1.5" /></bezel>
+
+ <bezel element="text_r1"><bounds x="130.5" y="62.7" width="10" height="1.5" /></bezel>
+ <bezel element="text_r2"><bounds x="130.5" y="66.7" width="10" height="1.5" /></bezel>
<!-- panel 7seg leds -->
<bezel name="digit1" element="digit">
- <bounds x="3" y="90" width="5.66" height="8.5" />
+ <bounds x="93" y="75.5" width="5.66" height="8.5" />
</bezel>
<bezel name="digit0" element="digit">
- <bounds x="8.66" y="90" width="5.66" height="8.5" />
+ <bounds x="98.66" y="75.5" width="5.66" height="8.5" />
</bezel>
<bezel name="digit2" element="digit">
- <bounds x="17.16" y="90" width="5.66" height="8.5" />
+ <bounds x="107.16" y="75.5" width="5.66" height="8.5" />
</bezel>
<bezel name="digit3" element="digit">
- <bounds x="22.82" y="90" width="5.66" height="8.5" />
+ <bounds x="112.82" y="75.5" width="5.66" height="8.5" />
</bezel>
<bezel name="0.7" element="led">
- <bounds x="15.58" y="91.5" width="0.85" height="0.85" />
+ <bounds x="105.58" y="77" width="0.85" height="0.85" />
</bezel>
<bezel name="1.7" element="led">
- <bounds x="15.13" y="96.15" width="0.85" height="0.85" />
+ <bounds x="105.13" y="81.65" width="0.85" height="0.85" />
</bezel>
</view>
diff --git a/src/mame/layout/fidel_vbrc.lay b/src/mame/layout/fidel_vbrc.lay
index 98b43dd1ff4..5d5eba8b1b4 100644
--- a/src/mame/layout/fidel_vbrc.lay
+++ b/src/mame/layout/fidel_vbrc.lay
@@ -179,4 +179,4 @@
<bezel element="text_b32"><bounds x="46" y="33.45" width="8" height="1.4" /></bezel>
</view>
-</mamelayout> \ No newline at end of file
+</mamelayout>
diff --git a/src/mame/layout/md6802.lay b/src/mame/layout/md6802.lay
index 2b0ccb27191..14d95bbfdf5 100755..100644
--- a/src/mame/layout/md6802.lay
+++ b/src/mame/layout/md6802.lay
@@ -5,16 +5,16 @@ copyright-holders:Joakim Larsson Edstrom
Didact MD6802 layout
-->
<mamelayout version="2">
- <element name="redled" defstate="0">
- <disk state="0"><color red="0.2" green="0.0" blue="0.0" /></disk>
- <disk state="1"><color red="1.0" green="0.0" blue="0.0" /></disk>
+ <element name="redled" defstate="0">
+ <disk state="0"><color red="0.2" green="0.0" blue="0.0" /></disk>
+ <disk state="1"><color red="1.0" green="0.0" blue="0.0" /></disk>
</element>
<element name="button" defstate="1">
- <disk state="0"><color red="1.0" green="1.0" blue="1.0" /></disk>
- <disk state="1"><color red="0.75" green="0.75" blue="0.75" /></disk>
+ <disk state="0"><color red="1.0" green="1.0" blue="1.0" /></disk>
+ <disk state="1"><color red="0.75" green="0.75" blue="0.75" /></disk>
</element>
<element name="digit" defstate="1">
- <led7seg><color red="0.75" green="0.0" blue="0.0" /></led7seg>
+ <led7seg><color red="0.75" green="0.0" blue="0.0" /></led7seg>
</element>
<element name="text_shift"><text string="SHIFT" align="1"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_reset"><text string="RESET" align="1"><color red="0.7" green="0.7" blue="0.7" /></text></element>
@@ -53,328 +53,328 @@ Didact MD6802 layout
<element name="silver"> <rect><color red="0.75" green="0.75" blue="0.75" /></rect></element>
<element name="brown"> <rect><color red="0.18" green="0.08" blue="0.03" /></rect></element>
<element name="text_terminal"><text string="Terminal"><color red="0.7" green="0.7" blue="0.7" /></text></element>
-
+
<element name="mount">
- <disk><bounds x="0" y="0" width="100" height="100" /><color red="0.0" green="0.0" blue="0.0" /></disk>
- <disk><bounds x="22" y="22" width="56" height="56" /><color red="0.43" green="0.47" blue="0.45" /></disk>
+ <disk><bounds x="0" y="0" width="100" height="100" /><color red="0.0" green="0.0" blue="0.0" /></disk>
+ <disk><bounds x="22" y="22" width="56" height="56" /><color red="0.43" green="0.47" blue="0.45" /></disk>
</element>
<element name="screwhead">
- <disk><bounds x="0" y="0" width="100" height="100" /><color red="0" green="0" blue="0" /></disk>
- <disk><bounds x="2" y="2" width="96" height="96" /> <color red="0.1" green="0.1" blue="0.1" /></disk>
- <disk><bounds x="5" y="5" width="90" height="90" /> <color red="0.2" green="0.2" blue="0.2" /></disk>
+ <disk><bounds x="0" y="0" width="100" height="100" /><color red="0" green="0" blue="0" /></disk>
+ <disk><bounds x="2" y="2" width="96" height="96" /> <color red="0.1" green="0.1" blue="0.1" /></disk>
+ <disk><bounds x="5" y="5" width="90" height="90" /> <color red="0.2" green="0.2" blue="0.2" /></disk>
</element>
<element name="hole">
- <disk><bounds x="0" y="0" width="100" height="100" /><color red="0" green="0" blue="0" /></disk>
+ <disk><bounds x="0" y="0" width="100" height="100" /><color red="0" green="0" blue="0" /></disk>
</element>
<group name="screw">
- <bezel element="screwhead"><bounds x="0" y="0" width="100" height="100" /></bezel>
- <repeat count="~c~">
- <param name="xl" start="~x~" increment="~xi~" />
- <param name="yl" start="~y~" increment="~yi~" />
- <bezel element="hole"><bounds x="~xl~" y="~yl~" width="8" height="8" /></bezel>
- </repeat>
+ <bezel element="screwhead"><bounds x="0" y="0" width="100" height="100" /></bezel>
+ <repeat count="~c~">
+ <param name="xl" start="~x~" increment="~xi~" />
+ <param name="yl" start="~y~" increment="~yi~" />
+ <bezel element="hole"><bounds x="~xl~" y="~yl~" width="8" height="8" /></bezel>
+ </repeat>
</group>
<group name="pinpair">
- <bezel element="silver"><bounds x="29" y="0" width="50" height="100" /></bezel>
- <bezel element="black"> <bounds x="0" y="10" width="108" height="80" /></bezel>
+ <bezel element="silver"><bounds x="29" y="0" width="50" height="100" /></bezel>
+ <bezel element="black"> <bounds x="0" y="10" width="108" height="80" /></bezel>
</group>
-
+
<group name="dip7">
- <repeat count="7">
- <param name="x" start="0" increment="100" />
- <group ref="pinpair"><bounds x="~x~" y="0" width="108" height="100" /></group>
- </repeat>
+ <repeat count="7">
+ <param name="x" start="0" increment="100" />
+ <group ref="pinpair"><bounds x="~x~" y="0" width="108" height="100" /></group>
+ </repeat>
</group>
<group name="dip8">
- <repeat count="8">
- <param name="x" start="0" increment="100" />
- <group ref="pinpair"><bounds x="~x~" y="0" width="108" height="100" /></group>
- </repeat>
+ <repeat count="8">
+ <param name="x" start="0" increment="100" />
+ <group ref="pinpair"><bounds x="~x~" y="0" width="108" height="100" /></group>
+ </repeat>
</group>
<group name="dip10">
- <repeat count="10">
- <param name="x" start="0" increment="100" />
- <group ref="pinpair"><bounds x="~x~" y="0" width="108" height="100" /></group>
- </repeat>
+ <repeat count="10">
+ <param name="x" start="0" increment="100" />
+ <group ref="pinpair"><bounds x="~x~" y="0" width="108" height="100" /></group>
+ </repeat>
</group>
<group name="dip12">
- <repeat count="12">
- <param name="x" start="0" increment="100" />
- <group ref="pinpair"><bounds x="~x~" y="0" width="108" height="100" /></group>
- </repeat>
+ <repeat count="12">
+ <param name="x" start="0" increment="100" />
+ <group ref="pinpair"><bounds x="~x~" y="0" width="108" height="100" /></group>
+ </repeat>
</group>
<group name="dip20">
- <repeat count="20">
- <param name="x" start="0" increment="100" />
- <group ref="pinpair"><bounds x="~x~" y="0" width="108" height="100" /></group>
- </repeat>
+ <repeat count="20">
+ <param name="x" start="0" increment="100" />
+ <group ref="pinpair"><bounds x="~x~" y="0" width="108" height="100" /></group>
+ </repeat>
</group>
<group name="dip">
- <repeat count="~pp~">
- <param name="x" start="0" increment="100" />
- <param name="xp" start="28" increment="100" />
- <bezel element="silver"><bounds x="~xp~" y="0" width="50" height="100" /></bezel>
- <bezel element="black"> <bounds x="~x~" y="10" width="106" height="80" /></bezel>
- </repeat>
+ <repeat count="~pp~">
+ <param name="x" start="0" increment="100" />
+ <param name="xp" start="28" increment="100" />
+ <bezel element="silver"><bounds x="~xp~" y="0" width="50" height="100" /></bezel>
+ <bezel element="black"> <bounds x="~x~" y="10" width="106" height="80" /></bezel>
+ </repeat>
</group>
<group name="vdip">
- <group ref="dip"><orientation rotate="90" /></group>
+ <group ref="dip"><orientation rotate="90" /></group>
</group>
-
+
<group name="hdip">
- <group ref="dip" />
+ <group ref="dip" />
</group>
<group name="digit">
- <bezel name="digit~dno~" element="digit">
- <bounds x="~x~" y="~y~" width="188" height="276" />
- </bezel>
+ <bezel name="digit~dno~" element="digit">
+ <bounds x="~x~" y="~y~" width="188" height="276" />
+ </bezel>
</group>
-
+
<element name="keycap">
- <disk><bounds x="0" y="0" width="100" height="100" /><color red="0.0" green="0.0" blue="0.0" /></disk>
- <disk><bounds x="3" y="3" width="94" height="94" /><color red="0.2" green="0.2" blue="0.2" /></disk>
- <disk state="0"><bounds x="10" y="10" width="80" height="80" /><color red="0.1" green="0.1" blue="0.1" /></disk>
- <disk state="1"><bounds x="10" y="10" width="80" height="80" /><color red="0.2" green="0.2" blue="0.2" /></disk>
+ <disk><bounds x="0" y="0" width="100" height="100" /><color red="0.0" green="0.0" blue="0.0" /></disk>
+ <disk><bounds x="3" y="3" width="94" height="94" /><color red="0.2" green="0.2" blue="0.2" /></disk>
+ <disk state="0"><bounds x="10" y="10" width="80" height="80" /><color red="0.1" green="0.1" blue="0.1" /></disk>
+ <disk state="1"><bounds x="10" y="10" width="80" height="80" /><color red="0.2" green="0.2" blue="0.2" /></disk>
</element>
-
+
<group name="key">
- <bezel element="keycap" inputtag="LINE~line~" inputmask="~mask~">
- <bounds x="~x~" y="~y~" width="22" height="22" />
- </bezel>
- <bezel element="text_~bname~">
- <bounds x="~xt~" y="~yt~" width="28" height="7" />
- </bezel>
+ <bezel element="keycap" inputtag="LINE~line~" inputmask="~mask~">
+ <bounds x="~x~" y="~y~" width="22" height="22" />
+ </bezel>
+ <bezel element="text_~bname~">
+ <bounds x="~xt~" y="~yt~" width="28" height="7" />
+ </bezel>
</group>
<group name="eurofem">
- <bezel element="white"><bounds x="0" y="0" width="9400" height="1060" /></bezel>
- <bezel element="black"><bounds x="420" y="60" width="8560" height="660" /></bezel>
- <bezel element="black"><bounds x="520" y="720" width="8360" height="240" /></bezel>
- <bezel element="white"><bounds x="440" y="80" width="8520" height="620" /></bezel>
- <bezel element="white"><bounds x="540" y="700" width="8320" height="240" /></bezel>
- <repeat count="3">
- <param name="y" start="220" increment="254" />
- <param name="yh" start="200" increment="254" />
- <repeat count="32">
- <param name="x" start="740" increment="254" />
- <param name="xh" start="702" increment="254" />
- <bezel element="gray"><bounds x="~xh~" y="~yh~" width="125" height="90" /></bezel>
- <bezel element="black"><bounds x="~x~" y="~y~" width="60" height="50" /></bezel>
- </repeat>
- </repeat>
- <bezel element="mount"><bounds x="60" y="380" width="300" height="300" /></bezel>
- <bezel element="mount"><bounds x="9040" y="380" width="300" height="300" /></bezel>
+ <bezel element="white"><bounds x="0" y="0" width="9400" height="1060" /></bezel>
+ <bezel element="black"><bounds x="420" y="60" width="8560" height="660" /></bezel>
+ <bezel element="black"><bounds x="520" y="720" width="8360" height="240" /></bezel>
+ <bezel element="white"><bounds x="440" y="80" width="8520" height="620" /></bezel>
+ <bezel element="white"><bounds x="540" y="700" width="8320" height="240" /></bezel>
+ <repeat count="3">
+ <param name="y" start="220" increment="254" />
+ <param name="yh" start="200" increment="254" />
+ <repeat count="32">
+ <param name="x" start="740" increment="254" />
+ <param name="xh" start="702" increment="254" />
+ <bezel element="gray"><bounds x="~xh~" y="~yh~" width="125" height="90" /></bezel>
+ <bezel element="black"><bounds x="~x~" y="~y~" width="60" height="50" /></bezel>
+ </repeat>
+ </repeat>
+ <bezel element="mount"><bounds x="60" y="380" width="300" height="300" /></bezel>
+ <bezel element="mount"><bounds x="9040" y="380" width="300" height="300" /></bezel>
</group>
-
+
<group name="keyboard">
- <backdrop element="pcb_color"><bounds left="0" top="0" right="289" bottom="327"/></backdrop>
- <bezel element="text_md6802_kb"><bounds x="20" y="10" width="112" height="8" /></bezel>
- <bezel element="text_terminal"><bounds x="10" y="208" width="26" height="6" /></bezel>
-
- <group ref="eurofem"><bounds x="23" y="32" width="228" height="24"/></group>
-
- <!-- BCD 7seg display -->
- <!-- AAAADD -->
- <repeat count="6">
- <param name="dno" start="0" increment="1" />
- <param name="x" start="30" increment="38" />
- <param name="xi" start="32" increment="38" />
- <param name="xd" start="33" increment="38" />
- <bezel element="white"><bounds x="~x~" y="112" width="39" height="44" /></bezel>
- <bezel element="pcb_color"><bounds x="~xi~" y="114" width="36" height="40" /></bezel>
- <bezel element="black"><bounds x="~xd~" y="116" width="34" height="38" /></bezel>
- <bezel name="digit~dno~" element="digit"><bounds x="~xd~" y="117" width="31" height="36" /></bezel>
- </repeat>
-
- <!-- Key pad -->
- <repeat count="4">
- <param name="bname" start="0" increment="4" />
- <param name="line" start="0" increment="1" />
- <param name="y" start="295" increment="-30" />
- <param name="yt" start="287" increment="-30" />
- <repeat count="4">
- <param name="bname" start="~bname~" increment="1" />
- <param name="mask" start="1" lshift="1" />
- <param name="x" start="115" increment="30" />
- <param name="xt" start="120" increment="30" />
- <group ref="key"/>
- </repeat>
- </repeat>
-
- <!-- RESET button -->
- <param name="line" value="4" />
- <param name="mask" value="0x04" />
- <param name="y" value="295" />
- <param name="yt" value="287" />
- <param name="x" value="85" />
- <param name="xt" value="90" />
- <param name="line" value="4" />
- <param name="bname" value="reset" />
- <group ref="key" />
-
- <!-- SHIFT key led -->
- <bezel name="led1" element="redled"><bounds x="92" y="245" width="10" height="10"/></bezel>
-
- <!-- SHIFT button -->
- <param name="mask" value="0x08" />
- <param name="y" value="265" />
- <param name="yt" value="257" />
- <param name="x" value="85" />
- <param name="xt" value="90" />
- <param name="line" value="4" />
- <param name="bname" value="shift" />
- <group ref="key" />
-
- <!-- screws -->
- <param name="x" value="15" />
- <param name="xi" value="1" />
- <param name="y" value="15" />
- <param name="yi" value="1" />
- <param name="c" value="60" />
- <group ref="screw"><bounds x="4" y="4" width="16" height="16" /></group>
- <param name="x" value="75" />
- <param name="xi" value="-1" />
- <group ref="screw"><bounds x="270" y="4" width="16" height="16" /></group>
- <param name="c" value="90" />
- <param name="y" value="2" />
- <param name="x" value="45" />
- <param name="xi" value="0" />
- <group ref="screw"><bounds x="270" y="290" width="16" height="16" /></group>
- <param name="y" value="45" />
- <param name="x" value="2" />
- <param name="xi" value="1" />
- <param name="yi" value="0" />
- <group ref="screw"><bounds x="4" y="290" width="16" height="16" /></group>
-
- <!-- scattered ICs -->
- <group ref="dip7"> <bounds x="45" y="70" width="44" height="20" /></group>
- <bezel element="text_122"> <bounds x="51" y="74" width="25" height="7" /></bezel>
-
- <group ref="dip8"> <bounds x="44" y="176" width="20" height="50" /><orientation rotate="90" /></group>
- <bezel element="text_145"> <bounds x="50" y="180" width="7" height="25" /><orientation rotate="90" /></bezel>
-
- <group ref="dip10"> <bounds x="97" y="59" width="65" height="20" /></group>
- <bezel element="text_145"> <bounds x="103" y="63" width="25" height="7" /></bezel>
+ <backdrop element="pcb_color"><bounds left="0" top="0" right="289" bottom="327"/></backdrop>
+ <bezel element="text_md6802_kb"><bounds x="20" y="10" width="112" height="8" /></bezel>
+ <bezel element="text_terminal"><bounds x="10" y="208" width="26" height="6" /></bezel>
+
+ <group ref="eurofem"><bounds x="23" y="32" width="228" height="24"/></group>
+
+ <!-- BCD 7seg display -->
+ <!-- AAAADD -->
+ <repeat count="6">
+ <param name="dno" start="0" increment="1" />
+ <param name="x" start="30" increment="38" />
+ <param name="xi" start="32" increment="38" />
+ <param name="xd" start="33" increment="38" />
+ <bezel element="white"><bounds x="~x~" y="112" width="39" height="44" /></bezel>
+ <bezel element="pcb_color"><bounds x="~xi~" y="114" width="36" height="40" /></bezel>
+ <bezel element="black"><bounds x="~xd~" y="116" width="34" height="38" /></bezel>
+ <bezel name="digit~dno~" element="digit"><bounds x="~xd~" y="117" width="31" height="36" /></bezel>
+ </repeat>
+
+ <!-- Key pad -->
+ <repeat count="4">
+ <param name="bname" start="0" increment="4" />
+ <param name="line" start="0" increment="1" />
+ <param name="y" start="295" increment="-30" />
+ <param name="yt" start="287" increment="-30" />
+ <repeat count="4">
+ <param name="bname" start="~bname~" increment="1" />
+ <param name="mask" start="1" lshift="1" />
+ <param name="x" start="115" increment="30" />
+ <param name="xt" start="120" increment="30" />
+ <group ref="key"/>
+ </repeat>
+ </repeat>
+
+ <!-- RESET button -->
+ <param name="line" value="4" />
+ <param name="mask" value="0x04" />
+ <param name="y" value="295" />
+ <param name="yt" value="287" />
+ <param name="x" value="85" />
+ <param name="xt" value="90" />
+ <param name="line" value="4" />
+ <param name="bname" value="reset" />
+ <group ref="key" />
+
+ <!-- SHIFT key led -->
+ <bezel name="led1" element="redled"><bounds x="92" y="245" width="10" height="10"/></bezel>
+
+ <!-- SHIFT button -->
+ <param name="mask" value="0x08" />
+ <param name="y" value="265" />
+ <param name="yt" value="257" />
+ <param name="x" value="85" />
+ <param name="xt" value="90" />
+ <param name="line" value="4" />
+ <param name="bname" value="shift" />
+ <group ref="key" />
+
+ <!-- screws -->
+ <param name="x" value="15" />
+ <param name="xi" value="1" />
+ <param name="y" value="15" />
+ <param name="yi" value="1" />
+ <param name="c" value="60" />
+ <group ref="screw"><bounds x="4" y="4" width="16" height="16" /></group>
+ <param name="x" value="75" />
+ <param name="xi" value="-1" />
+ <group ref="screw"><bounds x="270" y="4" width="16" height="16" /></group>
+ <param name="c" value="90" />
+ <param name="y" value="2" />
+ <param name="x" value="45" />
+ <param name="xi" value="0" />
+ <group ref="screw"><bounds x="270" y="290" width="16" height="16" /></group>
+ <param name="y" value="45" />
+ <param name="x" value="2" />
+ <param name="xi" value="1" />
+ <param name="yi" value="0" />
+ <group ref="screw"><bounds x="4" y="290" width="16" height="16" /></group>
+
+ <!-- scattered ICs -->
+ <group ref="dip7"> <bounds x="45" y="70" width="44" height="20" /></group>
+ <bezel element="text_122"> <bounds x="51" y="74" width="25" height="7" /></bezel>
+
+ <group ref="dip8"> <bounds x="44" y="176" width="20" height="50" /><orientation rotate="90" /></group>
+ <bezel element="text_145"> <bounds x="50" y="180" width="7" height="25" /><orientation rotate="90" /></bezel>
+
+ <group ref="dip10"> <bounds x="97" y="59" width="65" height="20" /></group>
+ <bezel element="text_145"> <bounds x="103" y="63" width="25" height="7" /></bezel>
</group>
<group name="cpuboard">
- <backdrop element="pcb_color"><bounds left="0" top="0" right="390" bottom="242"/></backdrop>
- <bezel element="text_md6802_cpu"><bounds x="25" y="22" width="8" height="75" /><orientation rotate="90" /></bezel>
-
- <group ref="eurofem"><bounds x="267" y="12" height="228" width="24" /><orientation rotate="90" /></group>
-
- <!-- screws -->
- <param name="x" value="15" />
- <param name="xi" value="1" />
- <param name="y" value="15" />
- <param name="yi" value="1" />
- <param name="c" value="60" />
- <group ref="screw"><bounds x="4" y="4" width="16" height="16" /></group>
- <param name="x" value="75" />
- <param name="xi" value="-1" />
- <group ref="screw"><bounds x="369" y="4" width="16" height="16" /></group>
- <param name="c" value="90" />
- <param name="y" value="2" />
- <param name="x" value="45" />
- <param name="xi" value="0" />
- <group ref="screw"><bounds x="369" y="222" width="16" height="16" /></group>
- <param name="y" value="45" />
- <param name="x" value="2" />
- <param name="xi" value="1" />
- <param name="yi" value="0" />
- <group ref="screw"><bounds x="4" y="222" width="16" height="16" /></group>
-
- <!-- scattered ICs -->
- <group ref="dip7"> <bounds x="37" y="193" width="44" height="20" /></group>
- <bezel element="text_132"> <bounds x="43" y="197" width="25" height="7" /></bezel>
-
- <group ref="dip8"> <bounds x="167" y="20" width="50" height="20" /></group>
- <bezel element="text_138"> <bounds x="173" y="24" width="25" height="7" /></bezel>
-
- <!-- CPU -->
- <group ref="dip20"> <bounds x="39" y="47" width="40" height="125" /><orientation rotate="90" /></group>
- <bezel element="text_6802"><bounds x="50" y="53" width="15" height="52" /><orientation rotate="90" /></bezel>
- <!-- PIAs -->
- <group ref="dip20"> <bounds x="218" y="84" width="40" height="125" /><orientation rotate="90" /></group>
- <bezel element="text_6821"><bounds x="229" y="90" width="15" height="48" /><orientation rotate="90" /></bezel>
- <group ref="dip20"> <bounds x="312" y="84" width="40" height="125" /><orientation rotate="90" /></group>
- <bezel element="text_6821"><bounds x="323" y="90" width="15" height="48" /><orientation rotate="90" /></bezel>
- <!-- ROM -->
- <group ref="dip12"><bounds x="104" y="69" width="40" height="77" /><orientation rotate="90" /></group>
- <bezel element="text_2716"><bounds x="115" y="75" width="17" height="35" /><orientation rotate="90" /></bezel>
- <!-- RAM -->
- <group ref="dip12"><bounds x="158" y="69" width="40" height="77" /><orientation rotate="90" /></group>
- <bezel element="text_6116"><bounds x="169" y="75" width="17" height="35" /><orientation rotate="90" /></bezel>
+ <backdrop element="pcb_color"><bounds left="0" top="0" right="390" bottom="242"/></backdrop>
+ <bezel element="text_md6802_cpu"><bounds x="25" y="22" width="8" height="75" /><orientation rotate="90" /></bezel>
+
+ <group ref="eurofem"><bounds x="267" y="12" height="228" width="24" /><orientation rotate="90" /></group>
+
+ <!-- screws -->
+ <param name="x" value="15" />
+ <param name="xi" value="1" />
+ <param name="y" value="15" />
+ <param name="yi" value="1" />
+ <param name="c" value="60" />
+ <group ref="screw"><bounds x="4" y="4" width="16" height="16" /></group>
+ <param name="x" value="75" />
+ <param name="xi" value="-1" />
+ <group ref="screw"><bounds x="369" y="4" width="16" height="16" /></group>
+ <param name="c" value="90" />
+ <param name="y" value="2" />
+ <param name="x" value="45" />
+ <param name="xi" value="0" />
+ <group ref="screw"><bounds x="369" y="222" width="16" height="16" /></group>
+ <param name="y" value="45" />
+ <param name="x" value="2" />
+ <param name="xi" value="1" />
+ <param name="yi" value="0" />
+ <group ref="screw"><bounds x="4" y="222" width="16" height="16" /></group>
+
+ <!-- scattered ICs -->
+ <group ref="dip7"> <bounds x="37" y="193" width="44" height="20" /></group>
+ <bezel element="text_132"> <bounds x="43" y="197" width="25" height="7" /></bezel>
+
+ <group ref="dip8"> <bounds x="167" y="20" width="50" height="20" /></group>
+ <bezel element="text_138"> <bounds x="173" y="24" width="25" height="7" /></bezel>
+
+ <!-- CPU -->
+ <group ref="dip20"> <bounds x="39" y="47" width="40" height="125" /><orientation rotate="90" /></group>
+ <bezel element="text_6802"><bounds x="50" y="53" width="15" height="52" /><orientation rotate="90" /></bezel>
+ <!-- PIAs -->
+ <group ref="dip20"> <bounds x="218" y="84" width="40" height="125" /><orientation rotate="90" /></group>
+ <bezel element="text_6821"><bounds x="229" y="90" width="15" height="48" /><orientation rotate="90" /></bezel>
+ <group ref="dip20"> <bounds x="312" y="84" width="40" height="125" /><orientation rotate="90" /></group>
+ <bezel element="text_6821"><bounds x="323" y="90" width="15" height="48" /><orientation rotate="90" /></bezel>
+ <!-- ROM -->
+ <group ref="dip12"><bounds x="104" y="69" width="40" height="77" /><orientation rotate="90" /></group>
+ <bezel element="text_2716"><bounds x="115" y="75" width="17" height="35" /><orientation rotate="90" /></bezel>
+ <!-- RAM -->
+ <group ref="dip12"><bounds x="158" y="69" width="40" height="77" /><orientation rotate="90" /></group>
+ <bezel element="text_6116"><bounds x="169" y="75" width="17" height="35" /><orientation rotate="90" /></bezel>
</group>
<group name="breadboard">
- <backdrop element="bb_color"><bounds left="0" top="0" right="1300" bottom="3720"/></backdrop>
- <repeat count="47">
- <param name="y" start="400" increment="62" />
- <param name="yh" start="405" increment="62" />
- <repeat count="5">
- <param name="x" start="330" increment="62" />
- <param name="xh" start="335" increment="62" />
- <bezel element="gray"><bounds x="~x~" y="~y~" width="40" height="40" /></bezel>
- <bezel element="black"><bounds x="~xh~" y="~yh~" width="30" height="30" /></bezel>
- </repeat>
- <repeat count="5">
- <param name="x" start="740" increment="62" />
- <param name="xh" start="745" increment="62" />
- <bezel element="gray"><bounds x="~x~" y="~y~" width="40" height="40" /></bezel>
- <bezel element="black"><bounds x="~xh~" y="~yh~" width="30" height="30" /></bezel>
- </repeat>
- </repeat>
- <repeat count="8">
- <param name="y" start="400" increment="372" />
- <param name="yh" start="405" increment="372" />
- <repeat count="5">
- <param name="y" start="~y~" increment="62" />
- <param name="yh" start="~yh~" increment="62" />
- <bezel element="gray"><bounds x="180" y="~y~" width="40" height="40" /></bezel>
- <bezel element="black"><bounds x="185" y="~yh~" width="30" height="30" /></bezel>
- <bezel element="gray"><bounds x="1100" y="~y~" width="40" height="40" /></bezel>
- <bezel element="black"><bounds x="1105" y="~yh~" width="30" height="30" /></bezel>
- </repeat>
- </repeat>
- <!-- screws -->
- <param name="x" value="15" />
- <param name="xi" value="1" />
- <param name="y" value="15" />
- <param name="yi" value="1" />
- <param name="c" value="60" />
- <group ref="screw"><bounds x="180" y="130" width="160" height="160" /></group>
- <param name="x" value="75" />
- <param name="xi" value="-1" />
- <group ref="screw"><bounds x="990" y="130" width="160" height="160" /></group>
- <param name="c" value="90" />
- <param name="y" value="2" />
- <param name="x" value="45" />
- <param name="xi" value="0" />
- <group ref="screw"><bounds x="990" y="3420" width="160" height="160" /></group>
- <param name="y" value="45" />
- <param name="x" value="2" />
- <param name="xi" value="1" />
- <param name="yi" value="0" />
- <group ref="screw"><bounds x="180" y="3420" width="160" height="160" /></group>
+ <backdrop element="bb_color"><bounds left="0" top="0" right="1300" bottom="3720"/></backdrop>
+ <repeat count="47">
+ <param name="y" start="400" increment="62" />
+ <param name="yh" start="405" increment="62" />
+ <repeat count="5">
+ <param name="x" start="330" increment="62" />
+ <param name="xh" start="335" increment="62" />
+ <bezel element="gray"><bounds x="~x~" y="~y~" width="40" height="40" /></bezel>
+ <bezel element="black"><bounds x="~xh~" y="~yh~" width="30" height="30" /></bezel>
+ </repeat>
+ <repeat count="5">
+ <param name="x" start="740" increment="62" />
+ <param name="xh" start="745" increment="62" />
+ <bezel element="gray"><bounds x="~x~" y="~y~" width="40" height="40" /></bezel>
+ <bezel element="black"><bounds x="~xh~" y="~yh~" width="30" height="30" /></bezel>
+ </repeat>
+ </repeat>
+ <repeat count="8">
+ <param name="y" start="400" increment="372" />
+ <param name="yh" start="405" increment="372" />
+ <repeat count="5">
+ <param name="y" start="~y~" increment="62" />
+ <param name="yh" start="~yh~" increment="62" />
+ <bezel element="gray"><bounds x="180" y="~y~" width="40" height="40" /></bezel>
+ <bezel element="black"><bounds x="185" y="~yh~" width="30" height="30" /></bezel>
+ <bezel element="gray"><bounds x="1100" y="~y~" width="40" height="40" /></bezel>
+ <bezel element="black"><bounds x="1105" y="~yh~" width="30" height="30" /></bezel>
+ </repeat>
+ </repeat>
+ <!-- screws -->
+ <param name="x" value="15" />
+ <param name="xi" value="1" />
+ <param name="y" value="15" />
+ <param name="yi" value="1" />
+ <param name="c" value="60" />
+ <group ref="screw"><bounds x="180" y="130" width="160" height="160" /></group>
+ <param name="x" value="75" />
+ <param name="xi" value="-1" />
+ <group ref="screw"><bounds x="990" y="130" width="160" height="160" /></group>
+ <param name="c" value="90" />
+ <param name="y" value="2" />
+ <param name="x" value="45" />
+ <param name="xi" value="0" />
+ <group ref="screw"><bounds x="990" y="3420" width="160" height="160" /></group>
+ <param name="y" value="45" />
+ <param name="x" value="2" />
+ <param name="xi" value="1" />
+ <param name="yi" value="0" />
+ <group ref="screw"><bounds x="180" y="3420" width="160" height="160" /></group>
</group>
- <view name="Base Artwork">
- <backdrop element="black"><bounds left="0" top="0" right="1211" bottom="551"/></backdrop>
- <group ref="keyboard"><bounds x="0" y="31" width="400" height="450" /></group>
- <group ref="cpuboard"><bounds x="405" y="92" width="540" height="338" /></group>
- <group ref="breadboard"><bounds x="951" y="0" width="191" height="551" /></group>
- </view>
+ <view name="Base Artwork">
+ <backdrop element="black"><bounds left="0" top="0" right="1211" bottom="551"/></backdrop>
+ <group ref="keyboard"><bounds x="0" y="31" width="400" height="450" /></group>
+ <group ref="cpuboard"><bounds x="405" y="92" width="540" height="338" /></group>
+ <group ref="breadboard"><bounds x="951" y="0" width="191" height="551" /></group>
+ </view>
</mamelayout>
diff --git a/src/mame/layout/modulab.lay b/src/mame/layout/modulab.lay
index 4dc578e65ea..b2bcac75167 100644
--- a/src/mame/layout/modulab.lay
+++ b/src/mame/layout/modulab.lay
@@ -52,378 +52,378 @@ Esselte Studium Modulab layout
<element name="text_vcc"><text string="VCC"><color red="0.6" green="0.6" blue="0.6" /></text></element>
<element name="text_gnd"><text string="GND"><color red="0.6" green="0.6" blue="0.6" /></text></element>
<element name="text_r"><text string="R"><color red="0.6" green="0.6" blue="0.6" /></text></element>
-
+
<element name="brownkey">
- <rect><bounds x="0" y="0" width="10" height="10" /> <color red="0.43" green="0.33" blue="0.23" /></rect>
- <disk><bounds x="0.5" y="0.5" width="9" height="9" /><color red="0.23" green="0.13" blue="0.03" /></disk>
- <disk><bounds x="1" y="1" width="8" height="8" /> <color red="0.33" green="0.23" blue="0.13" /></disk>
- <rect><bounds x="2" y="0.5" width="6" height="1.5" /><color red="0.23" green="0.13" blue="0.03" /></rect>
- <rect><bounds x="1" y="0.5" width="8" height="1.0" /><color red="0.43" green="0.33" blue="0.23" /></rect>
- <!-- Rounded corners -->
- <rect><bounds x="0" y="0" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
- <disk><bounds x="0" y="0" width="2" height="2" /><color red="0.43" green="0.33" blue="0.23" /></disk>
- <rect><bounds x="9" y="0" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
- <disk><bounds x="8" y="0" width="2" height="2" /><color red="0.43" green="0.33" blue="0.23" /></disk>
- <rect><bounds x="9" y="9" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
- <disk><bounds x="8" y="8" width="2" height="2" /><color red="0.43" green="0.33" blue="0.23" /></disk>
- <rect><bounds x="0" y="9" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
- <disk><bounds x="0" y="8" width="2" height="2" /><color red="0.43" green="0.33" blue="0.23" /></disk>
+ <rect><bounds x="0" y="0" width="10" height="10" /> <color red="0.43" green="0.33" blue="0.23" /></rect>
+ <disk><bounds x="0.5" y="0.5" width="9" height="9" /><color red="0.23" green="0.13" blue="0.03" /></disk>
+ <disk><bounds x="1" y="1" width="8" height="8" /> <color red="0.33" green="0.23" blue="0.13" /></disk>
+ <rect><bounds x="2" y="0.5" width="6" height="1.5" /><color red="0.23" green="0.13" blue="0.03" /></rect>
+ <rect><bounds x="1" y="0.5" width="8" height="1.0" /><color red="0.43" green="0.33" blue="0.23" /></rect>
+ <!-- Rounded corners -->
+ <rect><bounds x="0" y="0" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
+ <disk><bounds x="0" y="0" width="2" height="2" /><color red="0.43" green="0.33" blue="0.23" /></disk>
+ <rect><bounds x="9" y="0" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
+ <disk><bounds x="8" y="0" width="2" height="2" /><color red="0.43" green="0.33" blue="0.23" /></disk>
+ <rect><bounds x="9" y="9" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
+ <disk><bounds x="8" y="8" width="2" height="2" /><color red="0.43" green="0.33" blue="0.23" /></disk>
+ <rect><bounds x="0" y="9" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
+ <disk><bounds x="0" y="8" width="2" height="2" /><color red="0.43" green="0.33" blue="0.23" /></disk>
</element>
<element name="redkey">
- <rect><bounds x="0" y="0" width="10" height="10" /> <color red="0.85" green="0.18" blue="0.16" /></rect>
- <disk><bounds x="0.5" y="0.5" width="9" height="9" /><color red="0.65" green="0.00" blue="0.00" /></disk>
- <disk><bounds x="1" y="1" width="8" height="8" /> <color red="0.75" green="0.08" blue="0.06" /></disk>
- <rect><bounds x="2" y="0.5" width="6" height="1.5" /><color red="0.65" green="0.00" blue="0.00" /></rect>
- <rect><bounds x="1" y="0.5" width="8" height="1.0" /><color red="0.85" green="0.18" blue="0.16" /></rect>
- <!-- Rounded corners -->
- <rect><bounds x="0" y="0" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
- <disk><bounds x="0" y="0" width="2" height="2" /><color red="0.85" green="0.18" blue="0.16" /></disk>
- <rect><bounds x="9" y="0" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
- <disk><bounds x="8" y="0" width="2" height="2" /><color red="0.85" green="0.18" blue="0.16" /></disk>
- <rect><bounds x="9" y="9" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
- <disk><bounds x="8" y="8" width="2" height="2" /><color red="0.85" green="0.18" blue="0.16" /></disk>
- <rect><bounds x="0" y="9" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
- <disk><bounds x="0" y="8" width="2" height="2" /><color red="0.85" green="0.18" blue="0.16" /></disk>
+ <rect><bounds x="0" y="0" width="10" height="10" /> <color red="0.85" green="0.18" blue="0.16" /></rect>
+ <disk><bounds x="0.5" y="0.5" width="9" height="9" /><color red="0.65" green="0.00" blue="0.00" /></disk>
+ <disk><bounds x="1" y="1" width="8" height="8" /> <color red="0.75" green="0.08" blue="0.06" /></disk>
+ <rect><bounds x="2" y="0.5" width="6" height="1.5" /><color red="0.65" green="0.00" blue="0.00" /></rect>
+ <rect><bounds x="1" y="0.5" width="8" height="1.0" /><color red="0.85" green="0.18" blue="0.16" /></rect>
+ <!-- Rounded corners -->
+ <rect><bounds x="0" y="0" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
+ <disk><bounds x="0" y="0" width="2" height="2" /><color red="0.85" green="0.18" blue="0.16" /></disk>
+ <rect><bounds x="9" y="0" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
+ <disk><bounds x="8" y="0" width="2" height="2" /><color red="0.85" green="0.18" blue="0.16" /></disk>
+ <rect><bounds x="9" y="9" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
+ <disk><bounds x="8" y="8" width="2" height="2" /><color red="0.85" green="0.18" blue="0.16" /></disk>
+ <rect><bounds x="0" y="9" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
+ <disk><bounds x="0" y="8" width="2" height="2" /><color red="0.85" green="0.18" blue="0.16" /></disk>
</element>
-
+
<element name="greenkey">
- <rect><bounds x="0" y="0" width="10" height="10" /> <color red="0.24" green="0.64" blue="0.28" /></rect>
- <disk><bounds x="0.5" y="0.5" width="9" height="9" /><color red="0.04" green="0.44" blue="0.08" /></disk>
- <disk><bounds x="1" y="1" width="8" height="8" /> <color red="0.14" green="0.54" blue="0.18" /></disk>
- <rect><bounds x="2" y="0.5" width="6" height="1.5" /><color red="0.04" green="0.44" blue="0.08" /></rect>
- <rect><bounds x="1" y="0.5" width="8" height="1.0" /><color red="0.24" green="0.64" blue="0.28" /></rect>
- <!-- Rounded corners -->
- <rect><bounds x="0" y="0" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
- <disk><bounds x="0" y="0" width="2" height="2" /><color red="0.24" green="0.64" blue="0.28" /></disk>
- <rect><bounds x="9" y="0" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
- <disk><bounds x="8" y="0" width="2" height="2" /><color red="0.24" green="0.64" blue="0.28" /></disk>
- <rect><bounds x="9" y="9" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
- <disk><bounds x="8" y="8" width="2" height="2" /><color red="0.24" green="0.64" blue="0.28" /></disk>
- <rect><bounds x="0" y="9" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
- <disk><bounds x="0" y="8" width="2" height="2" /><color red="0.24" green="0.64" blue="0.28" /></disk>
+ <rect><bounds x="0" y="0" width="10" height="10" /> <color red="0.24" green="0.64" blue="0.28" /></rect>
+ <disk><bounds x="0.5" y="0.5" width="9" height="9" /><color red="0.04" green="0.44" blue="0.08" /></disk>
+ <disk><bounds x="1" y="1" width="8" height="8" /> <color red="0.14" green="0.54" blue="0.18" /></disk>
+ <rect><bounds x="2" y="0.5" width="6" height="1.5" /><color red="0.04" green="0.44" blue="0.08" /></rect>
+ <rect><bounds x="1" y="0.5" width="8" height="1.0" /><color red="0.24" green="0.64" blue="0.28" /></rect>
+ <!-- Rounded corners -->
+ <rect><bounds x="0" y="0" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
+ <disk><bounds x="0" y="0" width="2" height="2" /><color red="0.24" green="0.64" blue="0.28" /></disk>
+ <rect><bounds x="9" y="0" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
+ <disk><bounds x="8" y="0" width="2" height="2" /><color red="0.24" green="0.64" blue="0.28" /></disk>
+ <rect><bounds x="9" y="9" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
+ <disk><bounds x="8" y="8" width="2" height="2" /><color red="0.24" green="0.64" blue="0.28" /></disk>
+ <rect><bounds x="0" y="9" width="1" height="1" /><color red="0" green="0" blue="0" /></rect>
+ <disk><bounds x="0" y="8" width="2" height="2" /><color red="0.24" green="0.64" blue="0.28" /></disk>
</element>
<element name="mount">
- <disk><bounds x="0" y="0" width="100" height="100" /><color red="0.64" green="0.64" blue="0.64" /></disk>
- <disk><bounds x="22" y="22" width="56" height="56" /><color red="0.54" green="0.54" blue="0.54" /></disk>
- <disk><bounds x="30" y="30" width="40" height="40" /><color red="0.0" green="0.0" blue="0.0" /></disk>
+ <disk><bounds x="0" y="0" width="100" height="100" /><color red="0.64" green="0.64" blue="0.64" /></disk>
+ <disk><bounds x="22" y="22" width="56" height="56" /><color red="0.54" green="0.54" blue="0.54" /></disk>
+ <disk><bounds x="30" y="30" width="40" height="40" /><color red="0.0" green="0.0" blue="0.0" /></disk>
</element>
<element name="screwhead">
- <disk><bounds x="0" y="0" width="100" height="100" /><color red="1" green="1" blue="1" /></disk>
- <disk><bounds x="2" y="2" width="96" height="96" /> <color red="0" green="0" blue="0" /></disk>
- <disk><bounds x="5" y="5" width="90" height="90" /> <color red="0.8" green="0.8" blue="0.8" /></disk>
+ <disk><bounds x="0" y="0" width="100" height="100" /><color red="1" green="1" blue="1" /></disk>
+ <disk><bounds x="2" y="2" width="96" height="96" /> <color red="0" green="0" blue="0" /></disk>
+ <disk><bounds x="5" y="5" width="90" height="90" /> <color red="0.8" green="0.8" blue="0.8" /></disk>
</element>
<element name="hole">
- <disk><bounds x="0" y="0" width="100" height="100" /><color red="0" green="0" blue="0" /></disk>
+ <disk><bounds x="0" y="0" width="100" height="100" /><color red="0" green="0" blue="0" /></disk>
</element>
<group name="screw">
- <bezel element="screwhead"><bounds x="0" y="0" width="100" height="100" /></bezel>
- <repeat count="50">
- <param name="x1" start="25" increment="1" />
- <param name="x2" start="75" increment="-1" />
- <param name="y" start="25" increment="1" />
- <bezel element="hole"><bounds x="~x1~" y="~y~" width="8" height="8" /></bezel>
- <bezel element="hole"><bounds x="~x2~" y="~y~" width="8" height="8" /></bezel>
- </repeat>
+ <bezel element="screwhead"><bounds x="0" y="0" width="100" height="100" /></bezel>
+ <repeat count="50">
+ <param name="x1" start="25" increment="1" />
+ <param name="x2" start="75" increment="-1" />
+ <param name="y" start="25" increment="1" />
+ <bezel element="hole"><bounds x="~x1~" y="~y~" width="8" height="8" /></bezel>
+ <bezel element="hole"><bounds x="~x2~" y="~y~" width="8" height="8" /></bezel>
+ </repeat>
</group>
<element name="pin">
- <disk><bounds x="0" y="0" width="100" height="100" /><color red="0.64" green="0.64" blue="0.64" /></disk>
- <disk><bounds x="23" y="23" width="54" height="54" /><color red="0.0" green="0.0" blue="0.0" /></disk>
- <disk><bounds x="30" y="30" width="38" height="38" /><color red="0.84" green="0.84" blue="0.84" /></disk>
+ <disk><bounds x="0" y="0" width="100" height="100" /><color red="0.64" green="0.64" blue="0.64" /></disk>
+ <disk><bounds x="23" y="23" width="54" height="54" /><color red="0.0" green="0.0" blue="0.0" /></disk>
+ <disk><bounds x="30" y="30" width="38" height="38" /><color red="0.84" green="0.84" blue="0.84" /></disk>
</element>
<element name="trim">
- <rect><bounds x="0" y="0" width="100" height="100" /><color red="0.0" green="0.0" blue="0.0" /></rect>
- <disk><bounds x="30" y="30" width="40" height="40" /><color red="0.9" green="0.9" blue="0.9" /></disk>
- <rect><bounds x="47" y="0" width="6" height="100" /><color red="0.0" green="0.0" blue="0.0" /></rect>
+ <rect><bounds x="0" y="0" width="100" height="100" /><color red="0.0" green="0.0" blue="0.0" /></rect>
+ <disk><bounds x="30" y="30" width="40" height="40" /><color red="0.9" green="0.9" blue="0.9" /></disk>
+ <rect><bounds x="47" y="0" width="6" height="100" /><color red="0.0" green="0.0" blue="0.0" /></rect>
</element>
<element name="amp">
- <rect><bounds x="115" y="0" width="175" height="905" /><color red="0.1" green="0.1" blue="0.1" /></rect> <!-- body -->
-
- <rect><bounds x="0" y="0" width="125" height="50" /><color red="0.1" green="0.1" blue="0.1" /></rect> <!-- upper jaw -->
-
- <rect><bounds x="90" y="0" width="25" height="155" /><color red="0.1" green="0.1" blue="0.1" /></rect> <!-- upper parts -->
- <rect><bounds x="90" y="200" width="25" height="230" /><color red="0.1" green="0.1" blue="0.1" /></rect>
-
- <rect><bounds x="115" y="430" width="100" height="55" /><color red="0.3" green="0.3" blue="0.3" /></rect><!-- mid gap -->
- <rect><bounds x="100" y="453" width="115" height="7" /><color red="0.9" green="0.9" blue="0.9" /></rect> <!-- pin -->
-
- <rect><bounds x="90" y="485" width="25" height="230" /><color red="0.1" green="0.1" blue="0.1" /></rect> <!-- lower parts -->
- <rect><bounds x="90" y="750" width="25" height="155" /><color red="0.1" green="0.1" blue="0.1" /></rect>
-
- <rect><bounds x="0" y="855" width="125" height="50" /><color red="0.1" green="0.1" blue="0.1" /></rect> <!-- lower jaw -->
+ <rect><bounds x="115" y="0" width="175" height="905" /><color red="0.1" green="0.1" blue="0.1" /></rect> <!-- body -->
+
+ <rect><bounds x="0" y="0" width="125" height="50" /><color red="0.1" green="0.1" blue="0.1" /></rect> <!-- upper jaw -->
+
+ <rect><bounds x="90" y="0" width="25" height="155" /><color red="0.1" green="0.1" blue="0.1" /></rect> <!-- upper parts -->
+ <rect><bounds x="90" y="200" width="25" height="230" /><color red="0.1" green="0.1" blue="0.1" /></rect>
+
+ <rect><bounds x="115" y="430" width="100" height="55" /><color red="0.3" green="0.3" blue="0.3" /></rect><!-- mid gap -->
+ <rect><bounds x="100" y="453" width="115" height="7" /><color red="0.9" green="0.9" blue="0.9" /></rect> <!-- pin -->
+
+ <rect><bounds x="90" y="485" width="25" height="230" /><color red="0.1" green="0.1" blue="0.1" /></rect> <!-- lower parts -->
+ <rect><bounds x="90" y="750" width="25" height="155" /><color red="0.1" green="0.1" blue="0.1" /></rect>
+
+ <rect><bounds x="0" y="855" width="125" height="50" /><color red="0.1" green="0.1" blue="0.1" /></rect> <!-- lower jaw -->
</element>
<element name="xtal">
- <rect><bounds x="4" y="0" width="143" height="185" /><color red="0.8" green="0.78" blue="0.63" /></rect>
- <rect><bounds x="0" y="185" width="151" height="4" /><color red="0.6" green="0.58" blue="0.43" /></rect>
- <rect><bounds x="45" y="189" width="3" height="45" /><color red="0.6" green="0.58" blue="0.43" /></rect>
- <rect><bounds x="106" y="189" width="3" height="45" /><color red="0.6" green="0.58" blue="0.43" /></rect>
+ <rect><bounds x="4" y="0" width="143" height="185" /><color red="0.8" green="0.78" blue="0.63" /></rect>
+ <rect><bounds x="0" y="185" width="151" height="4" /><color red="0.6" green="0.58" blue="0.43" /></rect>
+ <rect><bounds x="45" y="189" width="3" height="45" /><color red="0.6" green="0.58" blue="0.43" /></rect>
+ <rect><bounds x="106" y="189" width="3" height="45" /><color red="0.6" green="0.58" blue="0.43" /></rect>
</element>
<group name="hdip">
- <bezel element="~col~"><bounds x="10" y="20" width="~w~" height="~h~" /></bezel>
- <bezel element="~t~"><bounds x="30" y="30" width="~tw~" height="~th~" /></bezel>
- <repeat count="~c~">
- <param name="x" start="15" increment="35" />
- <bezel element="silver"><bounds y="10" x="~x~" width="25" height="10" /></bezel>
- <bezel element="silver"><bounds y="~b~" x="~x~" width="25" height="10" /></bezel>
- </repeat>
+ <bezel element="~col~"><bounds x="10" y="20" width="~w~" height="~h~" /></bezel>
+ <bezel element="~t~"><bounds x="30" y="30" width="~tw~" height="~th~" /></bezel>
+ <repeat count="~c~">
+ <param name="x" start="15" increment="35" />
+ <bezel element="silver"><bounds y="10" x="~x~" width="25" height="10" /></bezel>
+ <bezel element="silver"><bounds y="~b~" x="~x~" width="25" height="10" /></bezel>
+ </repeat>
</group>
-
+
<group name="vdip">
- <bezel element="~col~"><bounds x="20" y="10" width="80" height="~h~" /></bezel>
- <bezel element="~t~"><bounds x="30" y="30" width="60" height="30" /></bezel>
- <repeat count="~c~">
- <param name="y" start="15" increment="35" />
- <bezel element="silver"><bounds x="10" y="~y~" width="10" height="25" /></bezel>
- <bezel element="silver"><bounds x="100" y="~y~" width="10" height="25" /></bezel>
- </repeat>
+ <bezel element="~col~"><bounds x="20" y="10" width="80" height="~h~" /></bezel>
+ <bezel element="~t~"><bounds x="30" y="30" width="60" height="30" /></bezel>
+ <repeat count="~c~">
+ <param name="y" start="15" increment="35" />
+ <bezel element="silver"><bounds x="10" y="~y~" width="10" height="25" /></bezel>
+ <bezel element="silver"><bounds x="100" y="~y~" width="10" height="25" /></bezel>
+ </repeat>
</group>
-
+
<group name="key">
- <bezel element="~keycol~" inputtag="LINE~line~" inputmask="~mask~">
- <bounds x="~x~" y="~y~" width="262" height="262" />
- </bezel>
- <bezel element="text_~bname~">
- <bounds x="~xt~" y="~yt~" width="150" height="150" />
- </bezel>
+ <bezel element="~keycol~" inputtag="LINE~line~" inputmask="~mask~">
+ <bounds x="~x~" y="~y~" width="262" height="262" />
+ </bezel>
+ <bezel element="text_~bname~">
+ <bounds x="~xt~" y="~yt~" width="150" height="150" />
+ </bezel>
</group>
<element name="digit" defstate="1">
- <led7seg>
- <color red="0.75" green="0.0" blue="0.0" />
- </led7seg>
+ <led7seg>
+ <color red="0.75" green="0.0" blue="0.0" />
+ </led7seg>
</element>
<group name="digit">
- <bezel name="digit~dno~" element="digit">
- <bounds x="~x~" y="~y~" width="188" height="276" />
- </bezel>
+ <bezel name="digit~dno~" element="digit">
+ <bounds x="~x~" y="~y~" width="188" height="276" />
+ </bezel>
</group>
<element name="plexi">
- <rect><bounds x="0" y="1784" width="300" height="596" /></rect> <!-- below side connector -->
- <rect><bounds x="300" y="500" width="1040" height="1880" /></rect> <!-- below port pins -->
- <rect><bounds x="1340" y="0" width="388" height="2380" /></rect> <!-- between CPU and keyboard -->
- <rect><bounds x="1728" y="0" width="1402" height="810" /></rect> <!-- Above keyboard -->
- <rect><bounds x="1728" y="2200" width="1402" height="180" /></rect> <!-- Below keyboard -->
- <rect><bounds x="2830" y="1096" width="300" height="1280" /></rect> <!-- Right of keyboard -->
- <rect><bounds x="3100" y="810" width="30" height="286" /></rect> <!-- Right of RST key -->
+ <rect><bounds x="0" y="1784" width="300" height="596" /></rect> <!-- below side connector -->
+ <rect><bounds x="300" y="500" width="1040" height="1880" /></rect> <!-- below port pins -->
+ <rect><bounds x="1340" y="0" width="388" height="2380" /></rect> <!-- between CPU and keyboard -->
+ <rect><bounds x="1728" y="0" width="1402" height="810" /></rect> <!-- Above keyboard -->
+ <rect><bounds x="1728" y="2200" width="1402" height="180" /></rect> <!-- Below keyboard -->
+ <rect><bounds x="2830" y="1096" width="300" height="1280" /></rect> <!-- Right of keyboard -->
+ <rect><bounds x="3100" y="810" width="30" height="286" /></rect> <!-- Right of RST key -->
</element>
-
+
<group name="hood">
- <bezel element="plexi" />
+ <bezel element="plexi" />
</group>
<group name="pcb">
- <backdrop element="pcb_blue"><bounds left="0" top="0" right="3200" bottom="2400"/></backdrop>
- <bezel element="text_esselte"><bounds x="164" y="2044" width="264" height="52" /></bezel>
- <bezel element="text_studium"><bounds x="164" y="2110" width="264" height="52" /></bezel>
-
- <!-- Key pad -->
- <bezel element="black"><bounds x="1780" y="818" width="1110" height="1395" /></bezel>
- <bezel element="black"><bounds x="1780" y="818" width="1390" height="280" /></bezel>
- <param name="keycol" value="brownkey" />
- <repeat count="4">
- <param name="bname" start="0" increment="1" />
- <param name="line" start="0" increment="1" />
- <param name="x" start="1780" increment="280" />
- <param name="xt" start="1835" increment="280" />
- <repeat count="4">
- <param name="bname" start="~bname~" increment="4" />
- <param name="mask" start="1" lshift="1" />
- <param name="y" start="1950" increment="-280" />
- <param name="yt" start="2020" increment="-280" />
- <group ref="key"/>
- </repeat>
- </repeat>
- <!-- Special Keys -->
- <!-- RUN key -->
- <param name="keycol" value="greenkey" />
- <param name="bname" value="run" />
- <param name="line" value="0" />
- <param name="x" value="1780" />
- <param name="xt" value="1835" />
- <param name="mask" value="0x10" />
- <param name="y" value="824" />
- <param name="yt" value="888" />
- <group ref="key"/>
- <!-- ADS key -->
- <param name="keycol" value="brownkey" />
- <param name="bname" value="ads" />
- <param name="line" value="1" />
- <param name="x" value="2060" />
- <param name="xt" value="2115" />
- <group ref="key"/>
- <!-- FWD key -->
- <param name="bname" value="fwd" />
- <param name="line" value="2" />
- <param name="x" value="2340" />
- <param name="xt" value="2395" />
- <group ref="key"/>
- <!-- C/B key -->
- <param name="bname" value="cb" />
- <param name="line" value="3" />
- <param name="x" value="2620" />
- <param name="xt" value="2675" />
- <group ref="key"/>
- <!-- RESET key -->
- <param name="keycol" value="redkey" />
- <param name="bname" value="rst" />
- <param name="line" value="4" />
- <param name="x" value="2900" />
- <param name="xt" value="2955" />
- <param name="mask" value="0x04" />
- <group ref="key"/>
-
- <!-- BCD 7seg display -->
- <!--Adress-->
- <bezel element="text_adress"><bounds x="1820" y="44" width="228" height="52" /></bezel>
- <param name="y" value="222" />
- <param name="h" value="240" />
- <param name="c" value="7" />
- <param name="col" value="brown"/>
- <param name="t" value="text_164"/>
- <repeat count="4">
- <param name="dno" start="5" increment="-1" />
- <param name="x" start="1472" increment="224" />
- <group ref="digit" />
- <param name="xdip" start="1512" increment="224" />
- <group ref="vdip"><bounds x="~xdip~" y="528" width="100" height="270" /></group>
- </repeat>
- <!--Data-->
- <bezel element="text_data"><bounds x="2532" y="44" width="156" height="52" /></bezel>
- <repeat count="2">
- <param name="dno" start="1" increment="-1" />
- <param name="x" start="2428" increment="224" />
- <param name="xdip" start="2468" increment="224" />
- <param name="xdipt" start="2489" increment="224" />
- <group ref="digit" />
- <group ref="vdip"><bounds x="~xdip~" y="528" width="100" height="270" /></group>
- </repeat>
-
- <!--scattered IC:s -->
- <param name="t" value="text_ls14"/>
- <group ref="vdip"><bounds x="1512" y="890" width="100" height="270" /></group>
- <param name="c" value="8"/>
- <param name="h" value="280"/>
- <param name="t" value="text_138"/>
- <group ref="vdip"><bounds x="1512" y="1236" width="100" height="320" /></group>
- <group ref="vdip"><bounds x="1512" y="2040" width="100" height="320" /></group>
- <param name="w" value="280"/>
- <param name="h" value="80"/>
- <param name="b" value="100"/>
- <param name="t" value="text_367"/>
- <param name="th" value="30"/>
- <param name="tw" value="60"/>
- <group ref="hdip"><bounds x="1110" y="2160" width="320" height="100" /></group>
- <param name="t" value="text_123"/>
- <group ref="hdip"><bounds x="600" y="2160" width="320" height="100" /></group>
- <param name="c" value="10" />
- <param name="h" value="350" />
- <param name="t" value="text_923"/>
- <group ref="vdip"><bounds x="1512" y="1590" width="100" height="400" /></group>
-
- <!-- larger IC:s -->
- <param name="h" value="260"/>
- <param name="b" value="280"/>
- <param name="col" value="black"/>
- <param name="c" value="12"/>
- <param name="w" value="420"/>
- <param name="t" value="text_6116"/>
- <param name="th" value="40"/>
- <param name="tw" value="240"/>
- <group ref="hdip"><bounds x="725" y="1875" width="~w~" height="~h~" /></group> <!-- RAM -->
- <param name="col" value="brown"/>
- <param name="c" value="14"/>
- <param name="w" value="490"/>
- <param name="t" value="text_2764"/>
- <group ref="hdip"><bounds x="655" y="1600" width="~w~" height="~h~" /></group> <!-- ROM -->
- <param name="c" value="20"/>
- <param name="w" value="700"/>
- <param name="t" value="text_6802"/>
- <group ref="hdip"><bounds x="655" y="1240" width="~w~" height="~h~" /></group> <!-- CPU -->
- <param name="t" value="text_8154"/>
- <group ref="hdip"><bounds x="655" y="900" width="~w~" height="~h~" /></group> <!-- INS8154 -->
-
-
- <!-- descrete components -->
- <bezel element="xtal"><bounds x="410" y="995" width="160" height="240" /></bezel>
- <bezel element="text_4mhz"><bounds x="420" y="1025" width="140" height="40" /></bezel>
- <bezel element="text_sunny"><bounds x="420" y="1075" width="140" height="40" /></bezel>
-
- <!-- mount holes -->
- <bezel element="mount"><bounds x="250" y="2300" width="75" height="75" /></bezel>
- <bezel element="mount"><bounds x="1700" y="2300" width="75" height="75" /></bezel>
- <bezel element="mount"><bounds x="2860" y="2300" width="75" height="75" /></bezel>
- <bezel element="mount"><bounds x="250" y="30" width="75" height="75" /></bezel>
- <bezel element="mount"><bounds x="1700" y="30" width="75" height="75" /></bezel>
- <bezel element="mount"><bounds x="2860" y="30" width="75" height="75" /></bezel>
- <bezel element="mount"><bounds x="1170" y="630" width="75" height="75" /></bezel>
-
- <!-- pins -->
- <!-- IRQ -->
- <bezel element="pin"><bounds x="440" y="1450" width="30" height="30" /></bezel>
- <bezel element="text_irq"><bounds x="400" y="1395" width="120" height="50" /></bezel>
- <!-- Ports -->
- <repeat count="8">
- <param name="tid" start="7" increment="-1" />
- <param name="xp" start="180" increment="150" />
- <param name="txp" start="100" increment="150" />
- <repeat count="2">
- <param name="yp" start="280" increment="140" />
- <param name="typ" start="275" increment="140" />
- <bezel element="pin"><bounds x="~xp~" y="~yp~" width="30" height="30" /></bezel>
- <bezel element="text_~tid~"><bounds x="~txp~" y="~typ~" width="120" height="50" /></bezel>
- </repeat>
- </repeat>
- <bezel element="text_porta"><bounds x="350" y="200" width="500" height="75" /></bezel>
- <bezel element="text_portb"><bounds x="350" y="340" width="500" height="75" /></bezel>
- <!-- power feed -->
- <bezel element="pin"><bounds x="150" y="575" width="30" height="30" /></bezel>
- <bezel element="text_vcc"><bounds x="150" y="615" width="100" height="50" /></bezel>
- <bezel element="pin"><bounds x="150" y="710" width="30" height="30" /></bezel>
- <bezel element="text_gnd"><bounds x="150" y="660" width="100" height="50" /></bezel>
- <!-- R pins -->
- <bezel element="pin"><bounds x="3050" y="1740" width="30" height="30" /></bezel>
- <bezel element="text_r"><bounds x="2950" y="1735" width="100" height="50" /></bezel>
- <bezel element="pin"><bounds x="3050" y="1890" width="30" height="30" /></bezel>
- <bezel element="text_r"><bounds x="2950" y="1885" width="100" height="50" /></bezel>
- <!-- trim pot -->
- <bezel element="trim"><bounds x="950" y="2160" width="120" height="120" /></bezel>
- <!-- side connector -->
- <bezel element="amp"><bounds x="0" y="850" width="250" height="925" /></bezel>
- </group>
-
- <group name="screws">
- <!-- max size -->
- <bezel element="pcb_blue"><bounds x="0" y="0" width="1" height="1" /></bezel>
- <bezel element="pcb_blue"><bounds x="3200" y="2400" width="1" height="1" /></bezel>
- <!-- screws -->
- <group ref="screw"><bounds x="250" y="2300" width="75" height="75" /></group>
- <group ref="screw"><bounds x="1700" y="2300" width="75" height="75" /></group>
- <group ref="screw"><bounds x="2860" y="2300" width="75" height="75" /></group>
- <group ref="screw"><bounds x="1700" y="30" width="75" height="75" /></group>
- <group ref="screw"><bounds x="2860" y="30" width="75" height="75" /></group>
- <group ref="screw"><bounds x="1170" y="630" width="75" height="75" /></group>
- </group>
-
- <view name="Base Artwork">
- <group ref="pcb"><bounds x="0" y="0" width="800" height="600" /></group>
- <group ref="hood"><bounds x="0" y="0" width="800" height="600"/> <color alpha="0.2" /></group>
- <group ref="screws"><bounds x="0" y="0" width="800" height="600"/></group>
- </view>
-
- <view name="Leds and Buttons Artwork">
- <group ref="pcb"><bounds x="0" y="0" width="800" height="600" /></group>
- <!-- group ref="hood"><bounds x="0" y="0" width="800" height="600"/> <color alpha="0.2" /></group>
- <group ref="screws"><bounds x="0" y="0" width="800" height="600"/></group -->
- </view>
+ <backdrop element="pcb_blue"><bounds left="0" top="0" right="3200" bottom="2400"/></backdrop>
+ <bezel element="text_esselte"><bounds x="164" y="2044" width="264" height="52" /></bezel>
+ <bezel element="text_studium"><bounds x="164" y="2110" width="264" height="52" /></bezel>
+
+ <!-- Key pad -->
+ <bezel element="black"><bounds x="1780" y="818" width="1110" height="1395" /></bezel>
+ <bezel element="black"><bounds x="1780" y="818" width="1390" height="280" /></bezel>
+ <param name="keycol" value="brownkey" />
+ <repeat count="4">
+ <param name="bname" start="0" increment="1" />
+ <param name="line" start="0" increment="1" />
+ <param name="x" start="1780" increment="280" />
+ <param name="xt" start="1835" increment="280" />
+ <repeat count="4">
+ <param name="bname" start="~bname~" increment="4" />
+ <param name="mask" start="1" lshift="1" />
+ <param name="y" start="1950" increment="-280" />
+ <param name="yt" start="2020" increment="-280" />
+ <group ref="key"/>
+ </repeat>
+ </repeat>
+ <!-- Special Keys -->
+ <!-- RUN key -->
+ <param name="keycol" value="greenkey" />
+ <param name="bname" value="run" />
+ <param name="line" value="0" />
+ <param name="x" value="1780" />
+ <param name="xt" value="1835" />
+ <param name="mask" value="0x10" />
+ <param name="y" value="824" />
+ <param name="yt" value="888" />
+ <group ref="key"/>
+ <!-- ADS key -->
+ <param name="keycol" value="brownkey" />
+ <param name="bname" value="ads" />
+ <param name="line" value="1" />
+ <param name="x" value="2060" />
+ <param name="xt" value="2115" />
+ <group ref="key"/>
+ <!-- FWD key -->
+ <param name="bname" value="fwd" />
+ <param name="line" value="2" />
+ <param name="x" value="2340" />
+ <param name="xt" value="2395" />
+ <group ref="key"/>
+ <!-- C/B key -->
+ <param name="bname" value="cb" />
+ <param name="line" value="3" />
+ <param name="x" value="2620" />
+ <param name="xt" value="2675" />
+ <group ref="key"/>
+ <!-- RESET key -->
+ <param name="keycol" value="redkey" />
+ <param name="bname" value="rst" />
+ <param name="line" value="4" />
+ <param name="x" value="2900" />
+ <param name="xt" value="2955" />
+ <param name="mask" value="0x04" />
+ <group ref="key"/>
+
+ <!-- BCD 7seg display -->
+ <!--Adress-->
+ <bezel element="text_adress"><bounds x="1820" y="44" width="228" height="52" /></bezel>
+ <param name="y" value="222" />
+ <param name="h" value="240" />
+ <param name="c" value="7" />
+ <param name="col" value="brown"/>
+ <param name="t" value="text_164"/>
+ <repeat count="4">
+ <param name="dno" start="5" increment="-1" />
+ <param name="x" start="1472" increment="224" />
+ <group ref="digit" />
+ <param name="xdip" start="1512" increment="224" />
+ <group ref="vdip"><bounds x="~xdip~" y="528" width="100" height="270" /></group>
+ </repeat>
+ <!--Data-->
+ <bezel element="text_data"><bounds x="2532" y="44" width="156" height="52" /></bezel>
+ <repeat count="2">
+ <param name="dno" start="1" increment="-1" />
+ <param name="x" start="2428" increment="224" />
+ <param name="xdip" start="2468" increment="224" />
+ <param name="xdipt" start="2489" increment="224" />
+ <group ref="digit" />
+ <group ref="vdip"><bounds x="~xdip~" y="528" width="100" height="270" /></group>
+ </repeat>
+
+ <!--scattered IC:s -->
+ <param name="t" value="text_ls14"/>
+ <group ref="vdip"><bounds x="1512" y="890" width="100" height="270" /></group>
+ <param name="c" value="8"/>
+ <param name="h" value="280"/>
+ <param name="t" value="text_138"/>
+ <group ref="vdip"><bounds x="1512" y="1236" width="100" height="320" /></group>
+ <group ref="vdip"><bounds x="1512" y="2040" width="100" height="320" /></group>
+ <param name="w" value="280"/>
+ <param name="h" value="80"/>
+ <param name="b" value="100"/>
+ <param name="t" value="text_367"/>
+ <param name="th" value="30"/>
+ <param name="tw" value="60"/>
+ <group ref="hdip"><bounds x="1110" y="2160" width="320" height="100" /></group>
+ <param name="t" value="text_123"/>
+ <group ref="hdip"><bounds x="600" y="2160" width="320" height="100" /></group>
+ <param name="c" value="10" />
+ <param name="h" value="350" />
+ <param name="t" value="text_923"/>
+ <group ref="vdip"><bounds x="1512" y="1590" width="100" height="400" /></group>
+
+ <!-- larger IC:s -->
+ <param name="h" value="260"/>
+ <param name="b" value="280"/>
+ <param name="col" value="black"/>
+ <param name="c" value="12"/>
+ <param name="w" value="420"/>
+ <param name="t" value="text_6116"/>
+ <param name="th" value="40"/>
+ <param name="tw" value="240"/>
+ <group ref="hdip"><bounds x="725" y="1875" width="~w~" height="~h~" /></group> <!-- RAM -->
+ <param name="col" value="brown"/>
+ <param name="c" value="14"/>
+ <param name="w" value="490"/>
+ <param name="t" value="text_2764"/>
+ <group ref="hdip"><bounds x="655" y="1600" width="~w~" height="~h~" /></group> <!-- ROM -->
+ <param name="c" value="20"/>
+ <param name="w" value="700"/>
+ <param name="t" value="text_6802"/>
+ <group ref="hdip"><bounds x="655" y="1240" width="~w~" height="~h~" /></group> <!-- CPU -->
+ <param name="t" value="text_8154"/>
+ <group ref="hdip"><bounds x="655" y="900" width="~w~" height="~h~" /></group> <!-- INS8154 -->
+
+
+ <!-- descrete components -->
+ <bezel element="xtal"><bounds x="410" y="995" width="160" height="240" /></bezel>
+ <bezel element="text_4mhz"><bounds x="420" y="1025" width="140" height="40" /></bezel>
+ <bezel element="text_sunny"><bounds x="420" y="1075" width="140" height="40" /></bezel>
+
+ <!-- mount holes -->
+ <bezel element="mount"><bounds x="250" y="2300" width="75" height="75" /></bezel>
+ <bezel element="mount"><bounds x="1700" y="2300" width="75" height="75" /></bezel>
+ <bezel element="mount"><bounds x="2860" y="2300" width="75" height="75" /></bezel>
+ <bezel element="mount"><bounds x="250" y="30" width="75" height="75" /></bezel>
+ <bezel element="mount"><bounds x="1700" y="30" width="75" height="75" /></bezel>
+ <bezel element="mount"><bounds x="2860" y="30" width="75" height="75" /></bezel>
+ <bezel element="mount"><bounds x="1170" y="630" width="75" height="75" /></bezel>
+
+ <!-- pins -->
+ <!-- IRQ -->
+ <bezel element="pin"><bounds x="440" y="1450" width="30" height="30" /></bezel>
+ <bezel element="text_irq"><bounds x="400" y="1395" width="120" height="50" /></bezel>
+ <!-- Ports -->
+ <repeat count="8">
+ <param name="tid" start="7" increment="-1" />
+ <param name="xp" start="180" increment="150" />
+ <param name="txp" start="100" increment="150" />
+ <repeat count="2">
+ <param name="yp" start="280" increment="140" />
+ <param name="typ" start="275" increment="140" />
+ <bezel element="pin"><bounds x="~xp~" y="~yp~" width="30" height="30" /></bezel>
+ <bezel element="text_~tid~"><bounds x="~txp~" y="~typ~" width="120" height="50" /></bezel>
+ </repeat>
+ </repeat>
+ <bezel element="text_porta"><bounds x="350" y="200" width="500" height="75" /></bezel>
+ <bezel element="text_portb"><bounds x="350" y="340" width="500" height="75" /></bezel>
+ <!-- power feed -->
+ <bezel element="pin"><bounds x="150" y="575" width="30" height="30" /></bezel>
+ <bezel element="text_vcc"><bounds x="150" y="615" width="100" height="50" /></bezel>
+ <bezel element="pin"><bounds x="150" y="710" width="30" height="30" /></bezel>
+ <bezel element="text_gnd"><bounds x="150" y="660" width="100" height="50" /></bezel>
+ <!-- R pins -->
+ <bezel element="pin"><bounds x="3050" y="1740" width="30" height="30" /></bezel>
+ <bezel element="text_r"><bounds x="2950" y="1735" width="100" height="50" /></bezel>
+ <bezel element="pin"><bounds x="3050" y="1890" width="30" height="30" /></bezel>
+ <bezel element="text_r"><bounds x="2950" y="1885" width="100" height="50" /></bezel>
+ <!-- trim pot -->
+ <bezel element="trim"><bounds x="950" y="2160" width="120" height="120" /></bezel>
+ <!-- side connector -->
+ <bezel element="amp"><bounds x="0" y="850" width="250" height="925" /></bezel>
+ </group>
+
+ <group name="screws">
+ <!-- max size -->
+ <bezel element="pcb_blue"><bounds x="0" y="0" width="1" height="1" /></bezel>
+ <bezel element="pcb_blue"><bounds x="3200" y="2400" width="1" height="1" /></bezel>
+ <!-- screws -->
+ <group ref="screw"><bounds x="250" y="2300" width="75" height="75" /></group>
+ <group ref="screw"><bounds x="1700" y="2300" width="75" height="75" /></group>
+ <group ref="screw"><bounds x="2860" y="2300" width="75" height="75" /></group>
+ <group ref="screw"><bounds x="1700" y="30" width="75" height="75" /></group>
+ <group ref="screw"><bounds x="2860" y="30" width="75" height="75" /></group>
+ <group ref="screw"><bounds x="1170" y="630" width="75" height="75" /></group>
+ </group>
+
+ <view name="Base Artwork">
+ <group ref="pcb"><bounds x="0" y="0" width="800" height="600" /></group>
+ <group ref="hood"><bounds x="0" y="0" width="800" height="600"/> <color alpha="0.2" /></group>
+ <group ref="screws"><bounds x="0" y="0" width="800" height="600"/></group>
+ </view>
+
+ <view name="Leds and Buttons Artwork">
+ <group ref="pcb"><bounds x="0" y="0" width="800" height="600" /></group>
+ <!-- group ref="hood"><bounds x="0" y="0" width="800" height="600"/> <color alpha="0.2" /></group>
+ <group ref="screws"><bounds x="0" y="0" width="800" height="600"/></group -->
+ </view>
</mamelayout>
diff --git a/src/mame/layout/sc1.lay b/src/mame/layout/sc1.lay
index c6ed82b9123..e87ed0fd85d 100644
--- a/src/mame/layout/sc1.lay
+++ b/src/mame/layout/sc1.lay
@@ -1,62 +1,40 @@
<?xml version="1.0"?>
<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="static_orange"><rect><color red="1.0" green="0.75" blue="0.1" /></rect></element>
+
<element name="digit" defstate="0">
- <led7seg>
- <color red="0.75" green="0.75" blue="0.0" />
- </led7seg>
+ <led7seg><color red="1.0" green="1.0" blue="0.1" /></led7seg>
</element>
+
<element name="led" defstate="0">
- <disk state="1">
- <color red="0.8" green="0.8" blue="0.0" />
- </disk>
- <disk state="0">
- <color red="0.2" green="0.2" blue="0.0" />
- </disk>
- </element>
- <element name="schach">
- <text string="SCHACH">
- <color red="1.0" green="1.0" blue="1.0" /></text>
- </element>
- <element name="matt">
- <text string="MATT">
- <color red="1.0" green="1.0" blue="1.0" /></text>
- </element>
- <element name="background">
- <rect>
- <bounds left="0" top="0" right="1" bottom="1" />
- <color red="0.0" green="0.0" blue="0.0" />
- </rect>
+ <disk state="1"><color red="1.0" green="0.0" blue="0.0" /></disk>
+ <disk state="0"><color red="0.15" green="0.0" blue="0.0" /> </disk>
</element>
- <view name="Default Layout">
- <!-- Black background -->
- <bezel element="background">
- <bounds left="00" top="00" right="240" bottom="95" />
- </bezel>
-
- <bezel name="digit0" element="digit">
- <bounds x="10" y="10" width="50" height="80" />
- </bezel>
- <bezel name="digit1" element="digit">
- <bounds x="70" y="10" width="50" height="80" />
- </bezel>
- <bezel name="digit2" element="digit">
- <bounds x="130" y="10" width="50" height="80" />
- </bezel>
- <bezel name="digit3" element="digit">
- <bounds x="190" y="10" width="50" height="80" />
- </bezel>
- <bezel name="led0" element="led">
- <bounds x="10" y="95" width="10" height="10" />
- </bezel>
- <bezel name="led1" element="led">
- <bounds x="220" y="95" width="10" height="10" />
- </bezel>
- <bezel name="schach_str" element="schach">
- <bounds x="20" y="95" width="40" height="10" />
- </bezel>
- <bezel name="matt_str" element="matt">
- <bounds x="185" y="95" width="40" height="10" />
- </bezel>
+ <element name="text_schach"><text string="SCHACH" align="1"><color red="0.8" green="0.8" blue="0.8" /></text></element>
+ <element name="text_matt"><text string="MATT" align="1"><color red="0.8" green="0.8" blue="0.8" /></text></element>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="5" right="265" top="0" bottom="165" />
+
+ <bezel name="digit0" element="digit"><bounds x="10" y="10" width="50" height="80" /></bezel>
+ <bezel name="digit1" element="digit"><bounds x="70" y="10" width="50" height="80" /></bezel>
+ <bezel name="digit2" element="digit"><bounds x="150" y="10" width="50" height="80" /></bezel>
+ <bezel name="digit3" element="digit"><bounds x="210" y="10" width="50" height="80" /></bezel>
+
+ <bezel element="static_orange"><bounds x="5" y="0" width="120" height="100" /><color alpha="0.5" /></bezel>
+ <bezel element="static_orange"><bounds x="145" y="0" width="120" height="100" /><color alpha="0.5" /></bezel>
+
+ <bezel name="led0" element="led"><bounds x="240" y="140" width="20" height="20" /></bezel>
+ <bezel name="led1" element="led"><bounds x="240" y="110" width="20" height="20" /></bezel>
+
+ <bezel element="text_matt"><bounds x="170" y="110" width="100" height="20" /></bezel>
+ <bezel element="text_schach"><bounds x="170" y="140" width="100" height="20" /></bezel>
</view>
</mamelayout>
diff --git a/src/mame/layout/sc2.lay b/src/mame/layout/sc2.lay
index c68cee7e136..1c3db18b2ba 100644
--- a/src/mame/layout/sc2.lay
+++ b/src/mame/layout/sc2.lay
@@ -1,62 +1,35 @@
<?xml version="1.0"?>
<mamelayout version="2">
+
+<!-- define elements -->
+
<element name="digit" defstate="0">
- <led7seg>
- <color red="0.0" green="0.75" blue="0.0" />
- </led7seg>
+ <led7seg><color red="0.25" green="0.9" blue="0.1" /></led7seg>
</element>
+
<element name="led" defstate="0">
- <disk state="1">
- <color red="0.0" green="0.8" blue="0.0" />
- </disk>
- <disk state="0">
- <color red="0.0" green="0.2" blue="0.0" />
- </disk>
- </element>
- <element name="schach">
- <text string="SCHACH">
- <color red="1.0" green="1.0" blue="1.0" /></text>
- </element>
- <element name="matt">
- <text string="MATT">
- <color red="1.0" green="1.0" blue="1.0" /></text>
- </element>
- <element name="background">
- <rect>
- <bounds left="0" top="0" right="1" bottom="1" />
- <color red="0.0" green="0.0" blue="0.0" />
- </rect>
+ <disk state="1"><color red="1.0" green="0.0" blue="0.0" /></disk>
+ <disk state="0"><color red="0.15" green="0.0" blue="0.0" /> </disk>
</element>
- <view name="Default Layout">
- <!-- Black background -->
- <bezel element="background">
- <bounds left="00" top="00" right="240" bottom="95" />
- </bezel>
-
- <bezel name="digit0" element="digit">
- <bounds x="10" y="10" width="50" height="80" />
- </bezel>
- <bezel name="digit1" element="digit">
- <bounds x="70" y="10" width="50" height="80" />
- </bezel>
- <bezel name="digit2" element="digit">
- <bounds x="130" y="10" width="50" height="80" />
- </bezel>
- <bezel name="digit3" element="digit">
- <bounds x="190" y="10" width="50" height="80" />
- </bezel>
- <bezel name="led0" element="led">
- <bounds x="10" y="95" width="10" height="10" />
- </bezel>
- <bezel name="led1" element="led">
- <bounds x="220" y="95" width="10" height="10" />
- </bezel>
- <bezel name="schach_str" element="schach">
- <bounds x="20" y="95" width="40" height="10" />
- </bezel>
- <bezel name="matt_str" element="matt">
- <bounds x="185" y="95" width="40" height="10" />
- </bezel>
+ <element name="text_schach"><text string="SCHACH" align="1"><color red="0.8" green="0.8" blue="0.8" /></text></element>
+ <element name="text_matt"><text string="MATT" align="2"><color red="0.8" green="0.8" blue="0.8" /></text></element>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="5" right="265" top="5" bottom="160" />
+
+ <bezel name="digit0" element="digit"><bounds x="10" y="10" width="50" height="80" /></bezel>
+ <bezel name="digit1" element="digit"><bounds x="70" y="10" width="50" height="80" /></bezel>
+ <bezel name="digit2" element="digit"><bounds x="150" y="10" width="50" height="80" /></bezel>
+ <bezel name="digit3" element="digit"><bounds x="210" y="10" width="50" height="80" /></bezel>
+
+ <bezel name="led0" element="led"><bounds x="10" y="135" width="20" height="20" /></bezel>
+ <bezel name="led1" element="led"><bounds x="240" y="135" width="20" height="20" /></bezel>
+
+ <bezel element="text_schach"><bounds x="10" y="110" width="100" height="20" /></bezel>
+ <bezel element="text_matt"><bounds x="160" y="110" width="100" height="20" /></bezel>
</view>
</mamelayout>
diff --git a/src/mame/machine/apple3.cpp b/src/mame/machine/apple3.cpp
index f86d612f990..6be7745c565 100644
--- a/src/mame/machine/apple3.cpp
+++ b/src/mame/machine/apple3.cpp
@@ -63,7 +63,7 @@
// 2 MHz mode probably has every 33rd cycle stretched but this is currently unproven.
static constexpr XTAL APPLE2_CLOCK(1'021'800);
-READ8_MEMBER(apple3_state::apple3_c0xx_r)
+uint8_t apple3_state::apple3_c0xx_r(offs_t offset)
{
uint8_t result = 0xFF;
device_a2bus_card_interface *slotdevice;
@@ -195,7 +195,7 @@ READ8_MEMBER(apple3_state::apple3_c0xx_r)
case 0x74: case 0x75: case 0x76: case 0x77:
case 0x78: case 0x79: case 0x7A: case 0x7B:
case 0x7C: case 0x7D: case 0x7E: case 0x7F:
- result = m_rtc->read(space, m_via_0_b);
+ result = m_rtc->read(m_via_0_b);
break;
case 0x90: case 0x91: case 0x92: case 0x93:
@@ -312,7 +312,7 @@ READ8_MEMBER(apple3_state::apple3_c0xx_r)
-WRITE8_MEMBER(apple3_state::apple3_c0xx_w)
+void apple3_state::apple3_c0xx_w(offs_t offset, uint8_t data)
{
device_a2bus_card_interface *slotdevice;
@@ -375,7 +375,7 @@ WRITE8_MEMBER(apple3_state::apple3_c0xx_w)
case 0x74: case 0x75: case 0x76: case 0x77:
case 0x78: case 0x79: case 0x7A: case 0x7B:
case 0x7C: case 0x7D: case 0x7E: case 0x7F:
- m_rtc->write(space, m_via_0_b, data);
+ m_rtc->write(m_via_0_b, data);
break;
@@ -606,23 +606,23 @@ void apple3_state::apple3_via_out(uint8_t *var, uint8_t data)
}
-WRITE8_MEMBER(apple3_state::apple3_via_0_out_a)
+void apple3_state::apple3_via_0_out_a(uint8_t data)
{
apple3_via_out(&m_via_0_a, data);
}
-WRITE8_MEMBER(apple3_state::apple3_via_0_out_b)
+void apple3_state::apple3_via_0_out_b(uint8_t data)
{
// printf("ZP to %02x\n", data);
apple3_via_out(&m_via_0_b, data);
}
-WRITE8_MEMBER(apple3_state::apple3_via_1_out_a)
+void apple3_state::apple3_via_1_out_a(uint8_t data)
{
apple3_via_out(&m_via_1_a, data);
}
-WRITE8_MEMBER(apple3_state::apple3_via_1_out_b)
+void apple3_state::apple3_via_1_out_b(uint8_t data)
{
m_dac->write(data);
apple3_via_out(&m_via_1_b, data);
@@ -746,7 +746,7 @@ void apple3_state::device_post_load()
apple3_update_memory();
}
-READ8_MEMBER(apple3_state::apple3_memory_r)
+uint8_t apple3_state::apple3_memory_r(offs_t offset)
{
uint8_t rv = 0xff;
@@ -797,7 +797,7 @@ READ8_MEMBER(apple3_state::apple3_memory_r)
{
if (!machine().side_effects_disabled())
{
- rv = apple3_c0xx_r(space, offset-0xc000);
+ rv = apple3_c0xx_r(offset-0xc000);
}
}
else
@@ -882,7 +882,7 @@ READ8_MEMBER(apple3_state::apple3_memory_r)
return rv;
}
-WRITE8_MEMBER(apple3_state::apple3_memory_w)
+void apple3_state::apple3_memory_w(offs_t offset, uint8_t data)
{
if ((m_indir_bank & 0x80) && (offset >= 0x100))
{
@@ -922,7 +922,7 @@ WRITE8_MEMBER(apple3_state::apple3_memory_w)
{
if (!machine().side_effects_disabled())
{
- apple3_c0xx_w(space, offset-0xc000, data);
+ apple3_c0xx_w(offset-0xc000, data);
}
}
else
diff --git a/src/mame/machine/bbc.cpp b/src/mame/machine/bbc.cpp
index 502d6ab5011..0b7ec54d884 100644
--- a/src/mame/machine/bbc.cpp
+++ b/src/mame/machine/bbc.cpp
@@ -360,12 +360,12 @@ READ8_MEMBER(bbc_state::bbcm_tube_r)
if (m_acccon_itu)
{
/* internal Tube */
- if (m_intube) data = m_intube->host_r(space, offset);
+ if (m_intube) data = m_intube->host_r(offset);
}
else
{
/* external Tube */
- if (m_extube) data = m_extube->host_r(space, offset);
+ if (m_extube) data = m_extube->host_r(offset);
}
return data;
@@ -376,12 +376,12 @@ WRITE8_MEMBER(bbc_state::bbcm_tube_w)
if (m_acccon_itu)
{
/* internal Tube */
- if (m_intube) m_intube->host_w(space, offset, data);
+ if (m_intube) m_intube->host_w(offset, data);
}
else
{
/* external Tube */
- if (m_extube) m_extube->host_w(space, offset, data);
+ if (m_extube) m_extube->host_w(offset, data);
}
}
diff --git a/src/mame/machine/electron.cpp b/src/mame/machine/electron.cpp
index c85d9368618..87d1056fdb4 100644
--- a/src/mame/machine/electron.cpp
+++ b/src/mame/machine/electron.cpp
@@ -237,7 +237,7 @@ READ8_MEMBER(electron_state::electron_paged_r)
default:
/* ROM in extension devices */
- data = m_exp->expbus_r(space, 0x8000 + offset);
+ data = m_exp->expbus_r(0x8000 + offset);
break;
}
return data;
@@ -248,7 +248,7 @@ WRITE8_MEMBER(electron_state::electron_paged_w)
/* The processor will run at 2MHz during an access cycle to the ROM */
m_maincpu->set_clock_scale(1.0f);
- m_exp->expbus_w(space, 0x8000 + offset, data);
+ m_exp->expbus_w(0x8000 + offset, data);
}
READ8_MEMBER(electron_state::electron_mos_r)
@@ -265,7 +265,7 @@ WRITE8_MEMBER(electron_state::electron_mos_w)
m_maincpu->set_clock_scale(1.0f);
logerror("MOS: write %04x %02x\n", offset + 0xc000, data);
- m_exp->expbus_w(space, 0xc000 + offset, data);
+ m_exp->expbus_w(0xc000 + offset, data);
}
READ8_MEMBER(electron_state::electron_fred_r)
@@ -275,7 +275,7 @@ READ8_MEMBER(electron_state::electron_fred_r)
/* The Issue 4 ULA returns data from OS ROM, whereas Issue 6 ULA will return 0xff */
//logerror("FRED: read fc%02x\n", offset);
- return m_exp->expbus_r(space, 0xfc00 + offset);
+ return m_exp->expbus_r(0xfc00 + offset);
}
WRITE8_MEMBER(electron_state::electron_fred_w)
@@ -287,7 +287,7 @@ WRITE8_MEMBER(electron_state::electron_fred_w)
if (offset == 0x7f) m_mrb_mapped = !(data & 0x80);
//logerror("FRED: write fc%02x\n", offset);
- m_exp->expbus_w(space, 0xfc00 + offset, data);
+ m_exp->expbus_w(0xfc00 + offset, data);
}
READ8_MEMBER(electron_state::electron_jim_r)
@@ -297,7 +297,7 @@ READ8_MEMBER(electron_state::electron_jim_r)
/* The Issue 4 ULA returns data from OS ROM, whereas Issue 6 ULA will return 0xff */
//logerror("JIM: read fd%02x\n", offset);
- return m_exp->expbus_r(space, 0xfd00 + offset);
+ return m_exp->expbus_r(0xfd00 + offset);
}
WRITE8_MEMBER(electron_state::electron_jim_w)
@@ -306,7 +306,7 @@ WRITE8_MEMBER(electron_state::electron_jim_w)
m_maincpu->set_clock_scale(1.0f);
//logerror("JIM: write fd%02x\n", offset);
- m_exp->expbus_w(space, 0xfd00 + offset, data);
+ m_exp->expbus_w(0xfd00 + offset, data);
}
READ8_MEMBER(electron_state::electron_sheila_r)
@@ -343,7 +343,7 @@ WRITE8_MEMBER(electron_state::electron_sheila_w)
/* The processor will run at 2MHz during an access cycle to the ROM */
m_maincpu->set_clock_scale(1.0f);
- m_exp->expbus_w(space, 0xfe00 + offset, data);
+ m_exp->expbus_w(0xfe00 + offset, data);
int i = electron_palette_offset[(( offset >> 1 ) & 0x03)];
//logerror( "ULA: write fe%02x <- %02x\n", offset & 0x0f, data );
diff --git a/src/mame/machine/nes.cpp b/src/mame/machine/nes.cpp
index 9adc870ed8e..7b15384293e 100644
--- a/src/mame/machine/nes.cpp
+++ b/src/mame/machine/nes.cpp
@@ -55,18 +55,18 @@ void nes_state::machine_start()
if (m_cartslot && m_cartslot->m_cart)
{
// Set up memory handlers
- space.install_read_handler(0x4100, 0x5fff, read8_delegate(FUNC(nes_cart_slot_device::read_l), (nes_cart_slot_device *)m_cartslot));
- space.install_write_handler(0x4100, 0x5fff, write8_delegate(FUNC(nes_cart_slot_device::write_l), (nes_cart_slot_device *)m_cartslot));
- space.install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(nes_cart_slot_device::read_m), (nes_cart_slot_device *)m_cartslot));
- space.install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(nes_cart_slot_device::write_m), (nes_cart_slot_device *)m_cartslot));
+ space.install_read_handler(0x4100, 0x5fff, read8sm_delegate(FUNC(nes_cart_slot_device::read_l), (nes_cart_slot_device *)m_cartslot));
+ space.install_write_handler(0x4100, 0x5fff, write8sm_delegate(FUNC(nes_cart_slot_device::write_l), (nes_cart_slot_device *)m_cartslot));
+ space.install_read_handler(0x6000, 0x7fff, read8sm_delegate(FUNC(nes_cart_slot_device::read_m), (nes_cart_slot_device *)m_cartslot));
+ space.install_write_handler(0x6000, 0x7fff, write8sm_delegate(FUNC(nes_cart_slot_device::write_m), (nes_cart_slot_device *)m_cartslot));
space.install_read_bank(0x8000, 0x9fff, "prg0");
space.install_read_bank(0xa000, 0xbfff, "prg1");
space.install_read_bank(0xc000, 0xdfff, "prg2");
space.install_read_bank(0xe000, 0xffff, "prg3");
- space.install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(nes_cart_slot_device::write_h), (nes_cart_slot_device *)m_cartslot));
+ space.install_write_handler(0x8000, 0xffff, write8sm_delegate(FUNC(nes_cart_slot_device::write_h), (nes_cart_slot_device *)m_cartslot));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(device_nes_cart_interface::chr_r),m_cartslot->m_cart), write8_delegate(FUNC(device_nes_cart_interface::chr_w),m_cartslot->m_cart));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(device_nes_cart_interface::nt_r),m_cartslot->m_cart), write8_delegate(FUNC(device_nes_cart_interface::nt_w),m_cartslot->m_cart));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8sm_delegate(FUNC(device_nes_cart_interface::chr_r),m_cartslot->m_cart), write8sm_delegate(FUNC(device_nes_cart_interface::chr_w),m_cartslot->m_cart));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(FUNC(device_nes_cart_interface::nt_r),m_cartslot->m_cart), write8sm_delegate(FUNC(device_nes_cart_interface::nt_w),m_cartslot->m_cart));
m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(device_nes_cart_interface::scanline_irq),m_cartslot->m_cart));
m_ppu->set_hblank_callback(ppu2c0x_device::hblank_delegate(FUNC(device_nes_cart_interface::hblank_irq),m_cartslot->m_cart));
m_ppu->set_latch(ppu2c0x_device::latch_delegate(FUNC(device_nes_cart_interface::ppu_latch),m_cartslot->m_cart));
@@ -82,20 +82,20 @@ void nes_state::machine_start()
|| m_cartslot->get_pcb_id() == BMC_70IN1 || m_cartslot->get_pcb_id() == BMC_800IN1)
{
logerror("read_h installed!\n");
- space.install_read_handler(0x8000, 0xffff, read8_delegate(FUNC(nes_cart_slot_device::read_h), (nes_cart_slot_device *)m_cartslot));
+ space.install_read_handler(0x8000, 0xffff, read8sm_delegate(FUNC(nes_cart_slot_device::read_h), (nes_cart_slot_device *)m_cartslot));
}
if (m_cartslot->get_pcb_id() == BTL_SMB2JB || m_cartslot->get_pcb_id() == UNL_AC08 || m_cartslot->get_pcb_id() == UNL_SMB2J || m_cartslot->get_pcb_id() == BTL_09034A)
{
logerror("write_ex installed!\n");
- space.install_write_handler(0x4020, 0x40ff, write8_delegate(FUNC(nes_cart_slot_device::write_ex), (nes_cart_slot_device *)m_cartslot));
+ space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(FUNC(nes_cart_slot_device::write_ex), (nes_cart_slot_device *)m_cartslot));
}
if (m_cartslot->get_pcb_id() == KAISER_KS7017 || m_cartslot->get_pcb_id() == UNL_603_5052 || m_cartslot->get_pcb_id() == STD_DISKSYS)
{
logerror("write_ex & read_ex installed!\n");
- space.install_read_handler(0x4020, 0x40ff, read8_delegate(FUNC(nes_cart_slot_device::read_ex), (nes_cart_slot_device *)m_cartslot));
- space.install_write_handler(0x4020, 0x40ff, write8_delegate(FUNC(nes_cart_slot_device::write_ex), (nes_cart_slot_device *)m_cartslot));
+ space.install_read_handler(0x4020, 0x40ff, read8sm_delegate(FUNC(nes_cart_slot_device::read_ex), (nes_cart_slot_device *)m_cartslot));
+ space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(FUNC(nes_cart_slot_device::write_ex), (nes_cart_slot_device *)m_cartslot));
}
m_cartslot->pcb_start(m_ciram.get());
diff --git a/src/mame/machine/qimi.cpp b/src/mame/machine/qimi.cpp
index 00bbc5fc209..dba7bd9ee59 100644
--- a/src/mame/machine/qimi.cpp
+++ b/src/mame/machine/qimi.cpp
@@ -139,7 +139,7 @@ void qimi_device::device_reset()
// read -
//-------------------------------------------------
-uint8_t qimi_device::read(address_space &space, offs_t offset, uint8_t data)
+uint8_t qimi_device::read(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -169,8 +169,10 @@ uint8_t qimi_device::read(address_space &space, offs_t offset, uint8_t data)
// write -
//-------------------------------------------------
-WRITE8_MEMBER( qimi_device::write )
+void qimi_device::write(offs_t offset, uint8_t data)
{
+ (void)data;
+
// write to 0x1bfbe resets int status
if (offset == 0x1bfbe)
{
diff --git a/src/mame/machine/qimi.h b/src/mame/machine/qimi.h
index 1c4f89dff55..033d8d7bc7a 100644
--- a/src/mame/machine/qimi.h
+++ b/src/mame/machine/qimi.h
@@ -29,8 +29,8 @@ public:
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
- uint8_t read(address_space &space, offs_t offset, uint8_t data);
- DECLARE_WRITE8_MEMBER( write );
+ uint8_t read(offs_t offset, uint8_t data);
+ void write(offs_t offset, uint8_t data);
DECLARE_INPUT_CHANGED_MEMBER( mouse_x_changed );
DECLARE_INPUT_CHANGED_MEMBER( mouse_y_changed );
diff --git a/src/mame/machine/sgi.cpp b/src/mame/machine/sgi.cpp
index fd605fb03a5..629aa753a77 100644
--- a/src/mame/machine/sgi.cpp
+++ b/src/mame/machine/sgi.cpp
@@ -210,14 +210,14 @@ void sgi_mc_device::dma_tick()
{
uint32_t addr = m_dma_mem_addr;
if (m_dma_control & (1 << 8))
- { // Enable virtual address translation
+ { // Enable virtual address translation
addr = dma_translate(addr);
}
if (m_dma_mode & (1 << 1))
- { // Graphics to host
+ { // Graphics to host
if (m_dma_mode & (1 << 3))
- { // Fill mode
+ { // Fill mode
m_space->write_dword(addr, m_dma_gio64_addr);
m_dma_count -= 4;
}
@@ -242,7 +242,7 @@ void sgi_mc_device::dma_tick()
}
}
else
- { // Host to graphics
+ { // Host to graphics
const uint32_t remaining = m_dma_count & 0x0000ffff;
uint32_t length = 8;
uint64_t shift = 56;
@@ -263,14 +263,14 @@ void sgi_mc_device::dma_tick()
}
if ((m_dma_count & 0x0000ffff) == 0)
- { // If remaining byte count is 0, deduct zoom count
+ { // If remaining byte count is 0, deduct zoom count
m_dma_count -= 0x00010000;
if (m_dma_count == 0)
- { // If remaining zoom count is also 0, move to next line
+ { // If remaining zoom count is also 0, move to next line
m_dma_mem_addr += m_dma_stride & 0x0000ffff;
m_dma_size -= 0x00010000;
if ((m_dma_size & 0xffff0000) == 0)
- { // If no remaining lines, DMA is done.
+ { // If no remaining lines, DMA is done.
m_dma_timer->adjust(attotime::never);
m_dma_run |= (1 << 3);
m_dma_run &= ~(1 << 6);
@@ -285,7 +285,7 @@ void sgi_mc_device::dma_tick()
}
}
else
- { // If remaining zoom count is non-zero, reload byte count and return source address to the beginning of the line.
+ { // If remaining zoom count is non-zero, reload byte count and return source address to the beginning of the line.
m_dma_count |= m_dma_size & 0x0000ffff;
m_dma_mem_addr -= m_dma_size & 0x0000ffff;
}
diff --git a/src/mame/machine/vtech2.cpp b/src/mame/machine/vtech2.cpp
index 8f5be7013b8..494044db80b 100644
--- a/src/mame/machine/vtech2.cpp
+++ b/src/mame/machine/vtech2.cpp
@@ -43,9 +43,6 @@ void vtech2_state::init_laser()
// check ROM expansion
std::string region_tag;
m_cart_rom = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
-
- // setup expansion slot
- m_ioexp->set_io_space(&m_maincpu->space(AS_IO));
}
diff --git a/src/mame/machine/xavix.cpp b/src/mame/machine/xavix.cpp
index ce8cac39de5..db535016a88 100644
--- a/src/mame/machine/xavix.cpp
+++ b/src/mame/machine/xavix.cpp
@@ -669,7 +669,7 @@ CUSTOM_INPUT_MEMBER(xavix_popira2_cart_state::i2c_r)
{
if (m_cartslot->has_cart())
return m_cartslot->read_sda();
- else
+ else
return 0x0;
}
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 50f33b5401e..6611e55b87d 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -12874,15 +12874,10 @@ chesstera //
kishon //
@source:fidel_csc.cpp
-csc // CSC: Champion Sensory Chess Challenger (English)
-cscfr // * French
-cscg // * German
-cscsp // * Spanish
+csc //
+cscetr
reversic //
-super9cc // SU9: Super 9 Sensory Chess Challenger (English)
-super9ccfr // * French
-super9ccg // * German
-super9ccsp // * Spanish
+super9cc //
@source:fidel_dames.cpp
damesc //
@@ -12909,34 +12904,13 @@ fex68km2 //
fex68km3 //
@source:fidel_elite.cpp
-feasbu // EAS: Elite A/S Challenger (Budapest program, English)
-feasbufr // * French
-feasbug // * German
-feasbusp // * Spanish
-feasgla // EAS: Elite A/S Challenger (Glasgow program, English)
-feasglafr // * French
-feasglag // * German
-feasglasp // * Spanish
+feasbu //
+feasgla //
feag //
-feagfr //
-feagg //
-feagsp //
-feag2100 // EAG: Elite Avant Garde 2100 (English)
-feag2100fr // * French
-feag2100g // * German
-feag2100sp // * Spanish
+feag2100 //
fepriv //
-feprivfr //
-feprivg //
-feprivsp //
fpres //
-fpressp //
-fpresg //
-fpresfr //
fpresbu //
-fpresbusp //
-fpresbug //
-fpresbufr //
@source:fidel_excel.cpp
fdes2000 //
@@ -12971,20 +12945,11 @@ fscc9c //
fscc9ps //
@source:fidel_vcc.cpp
-uvc // UVC: Advanced Voice Chess Challenger (English)
-uvcfr // * French
-uvcg // * German
-uvcsp // * Spanish
-vcc // VCC: Voice Chess Challenger (English)
-vccfr // * German
-vccg // * Spanish
-vccsp // * French
+uvc //
+vcc //
@source:fidel_vsc.cpp
-vsc // VSC: Voice Sensory Chess Challenger (English)
-vscfr // * French
-vscg // * German
-vscsp // * Spanish
+vsc //
@source:finalizr.cpp
finalizr // GX523 (c) 1985
@@ -15110,6 +15075,7 @@ gnw_mario // Nintendo
gnw_mariocm // Nintendo
gnw_mmouse // Nintendo
gnw_mickdon // Nintendo
+gnw_octopus // Nintendo
gnw_opanic // Nintendo
gnw_rshower // Nintendo
gnw_smb // Nintendo
@@ -21822,6 +21788,7 @@ motoraid // 1997.10 Motor Raid Twin
motoraiddx // 1997.10 Motor Raid DX
overrev // 1997.09 Over Rev (Revision A)
overrevb // 1997.09 Over Rev (Revision B)
+overrevba // 1997.09 Over Rev (Revision A)
pltkids // 1999.03 Pilot Kids (Revision A)
pltkidsa // 1999.03 Pilot Kids
rascot2 // 1997.?? Royal Ascot II
@@ -21834,6 +21801,7 @@ skisuprg // 1996.12 Sega Ski Super G
skytargt // 1995.10 Sky Target
srallyc // 1995.02 Sega Rally Championship TWIN (Revision C)
srallycb // 1995.02 Sega Rally Championship TWIN (Revision B)
+srallycc // 1995.02 Sega Rally Championship TWIN (Revision A)
srallycdx // 1995.02 Sega Rally Championship DX (Revision A)
srallycdxa // 1995.02 Sega Rally Championship DX
stcc // 1996.09 Sega Touring Car Championship
@@ -38749,6 +38717,7 @@ jak_wof //
jak_spdm //
jak_pooh //
jak_nick //
+jak_sbfc //
lexizeus // Lexibook
vii // KenSingTon / Jungle Soft / Siatronics Vii
wrlshunt // Wireless: Hunting Video Game System
diff --git a/src/mame/video/cps1.cpp b/src/mame/video/cps1.cpp
index 1e9bcb9396b..34723a3fb1a 100644
--- a/src/mame/video/cps1.cpp
+++ b/src/mame/video/cps1.cpp
@@ -1580,7 +1580,7 @@ static const struct CPS1config cps1_config_table[]=
{"sf2b", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
{"sf2b2", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
{"sf2ceupl", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 1 },
- {"sf2rules", HACK_B_1, mapper_S9263B, 0, 0, 0, 2 },
+ {"sf2rules", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 2 },
{"sf2cems6a", HACK_B_1, mapper_S9263B, 0, 0, 0, 2 },
{"sf2cems6b", HACK_B_1, mapper_S9263B, 0, 0, 0, 2 },
{"sf2cems6c", HACK_B_1, mapper_S9263B, 0, 0, 0, 2 },
diff --git a/src/mame/video/dec0.cpp b/src/mame/video/dec0.cpp
index baca9a473f6..6c94ca6d0ff 100644
--- a/src/mame/video/dec0.cpp
+++ b/src/mame/video/dec0.cpp
@@ -46,17 +46,17 @@ uint32_t dec0_state::screen_update_bandit(screen_device &screen, bitmap_ind16 &b
if (m_pri==0)
{
- m_tilegen[2]->deco_bac06_pf_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- m_tilegen[1]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
- m_spritegen->draw_sprites(bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
- m_tilegen[0]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen[2]->deco_bac06_pf_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen[1]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_spritegen->draw_sprites(bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
+ m_tilegen[0]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
}
else
{
- m_tilegen[2]->deco_bac06_pf_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- m_tilegen[1]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
- m_tilegen[0]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
- m_spritegen->draw_sprites(bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
+ m_tilegen[2]->deco_bac06_pf_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen[1]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen[0]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_spritegen->draw_sprites(bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
}
return 0;
}
diff --git a/src/mame/video/decbac06.cpp b/src/mame/video/decbac06.cpp
index c724a8c6f87..051d79ed126 100644
--- a/src/mame/video/decbac06.cpp
+++ b/src/mame/video/decbac06.cpp
@@ -257,7 +257,7 @@ void deco_bac06_device::custom_tilemap_draw(bitmap_ind16 &bitmap,
if (control1)
{
- if ((control0 && control0[0]&2)==0) // Use of column major mode inverts scroll direction
+ if (control0 && (control0[0]&2)==0) // Use of column major mode inverts scroll direction
scrollx = -control1[0] - 0x100;
else
scrollx = control1[0];
@@ -381,10 +381,23 @@ void deco_bac06_device::deco_bac06_pf_draw_bootleg(bitmap_ind16 &bitmap,const re
WRITE16_MEMBER( deco_bac06_device::pf_control_0_w )
{
+ int oldRegister0 = m_pf_control_0[0];
+
offset &= 3;
COMBINE_DATA(&m_pf_control_0[offset]);
+ bool dirtyAll = false;
+ if (offset==0)
+ {
+ if ((oldRegister0&2)!=(m_pf_control_0[offset]&2))
+ {
+ int flip = m_flip_screen;
+ set_flip_screen(flip^1);
+ set_flip_screen(flip); // Hack to force tilemap.cpp mappings_update() to be called
+ dirtyAll = true;
+ }
+ }
if (offset==2)
{
int newbank = m_pf_control_0[offset]&1;
@@ -395,15 +408,20 @@ WRITE16_MEMBER( deco_bac06_device::pf_control_0_w )
if (strcmp(machine().system().name,"stadhero"))
printf("tilemap ram bank change to %d\n", newbank&1);
+ dirtyAll = true;
m_rambank = newbank&1;
- m_pf8x8_tilemap[0]->mark_all_dirty();
- m_pf8x8_tilemap[1]->mark_all_dirty();
- m_pf8x8_tilemap[2]->mark_all_dirty();
- m_pf16x16_tilemap[0]->mark_all_dirty();
- m_pf16x16_tilemap[1]->mark_all_dirty();
- m_pf16x16_tilemap[2]->mark_all_dirty();
}
}
+
+ if (dirtyAll)
+ {
+ m_pf8x8_tilemap[0]->mark_all_dirty();
+ m_pf8x8_tilemap[1]->mark_all_dirty();
+ m_pf8x8_tilemap[2]->mark_all_dirty();
+ m_pf16x16_tilemap[0]->mark_all_dirty();
+ m_pf16x16_tilemap[1]->mark_all_dirty();
+ m_pf16x16_tilemap[2]->mark_all_dirty();
+ }
}
READ16_MEMBER( deco_bac06_device::pf_control_1_r )
diff --git a/src/mame/video/light.cpp b/src/mame/video/light.cpp
index 719113a9447..ff47c95c7e3 100644
--- a/src/mame/video/light.cpp
+++ b/src/mame/video/light.cpp
@@ -1,16 +1,16 @@
// license:BSD-3-Clause
// copyright-holders:Ryan Holtz, Tyson Smith
/*
- Silicon Graphics LG1 "Light" graphics board used as
- entry level graphics in the Indigo and IRIS Crimson.
+ Silicon Graphics LG1 "Light" graphics board used as
+ entry level graphics in the Indigo and IRIS Crimson.
*/
#include "emu.h"
#include "video/light.h"
#include "screen.h"
-#define LOG_REX (1 << 0)
-#define LOG_ALL (LOG_REX)
+#define LOG_REX (1 << 0)
+#define LOG_ALL (LOG_REX)
#define VERBOSE (0)
#include "logmacro.h"
diff --git a/src/mame/video/light.h b/src/mame/video/light.h
index ffc9932d02e..82799fc906b 100644
--- a/src/mame/video/light.h
+++ b/src/mame/video/light.h
@@ -1,8 +1,8 @@
// license:BSD-3-Clause
// copyright-holders:Ryan Holtz, Tyson Smith
/*
- Silicon Graphics LG1 "Light" graphics board used as
- entry level graphics in the Indigo and IRIS Crimson.
+ Silicon Graphics LG1 "Light" graphics board used as
+ entry level graphics in the Indigo and IRIS Crimson.
*/
#ifndef MAME_VIDEO_LIGHT_H
diff --git a/src/mame/video/newport.cpp b/src/mame/video/newport.cpp
index 0b46c6a0314..72715b628db 100644
--- a/src/mame/video/newport.cpp
+++ b/src/mame/video/newport.cpp
@@ -37,10 +37,10 @@
#define LOG_XMAP1 (1 << 5)
#define LOG_REX3 (1 << 6)
#define LOG_COMMANDS (1 << 7)
-#define LOG_REJECTS (1 << 8)
+#define LOG_REJECTS (1 << 8)
#define LOG_ALL (LOG_UNKNOWN | LOG_VC2 | LOG_CMAP0 | LOG_CMAP1 | LOG_XMAP0 | LOG_XMAP1 | LOG_REX3)
-#define VERBOSE (0)//(LOG_UNKNOWN | LOG_VC2 | LOG_XMAP0 | LOG_CMAP0 | LOG_REX3 | LOG_COMMANDS | LOG_REJECTS)
+#define VERBOSE (0)//(LOG_UNKNOWN | LOG_REX3 | LOG_COMMANDS | LOG_REJECTS)
#include "logmacro.h"
DEFINE_DEVICE_TYPE(NEWPORT_VIDEO, newport_video_device, "newport_video", "SGI Newport graphics board")
@@ -360,9 +360,9 @@ uint32_t newport_video_device::screen_update(screen_device &device, bitmap_rgb32
case 3:
{
const uint8_t pix_in = *src_ci;
- const uint8_t r = (0x92 * BIT(pix_in, 2)) | (0x49 * BIT(pix_in, 1)) | (0x24 * BIT(pix_in, 0));
- const uint8_t g = (0x92 * BIT(pix_in, 5)) | (0x49 * BIT(pix_in, 4)) | (0x24 * BIT(pix_in, 3));
- const uint8_t b = (0xaa * BIT(pix_in, 7)) | (0x55 * BIT(pix_in, 6));
+ const uint8_t r = (0x92 * BIT(pix_in, 2)) | (0x49 * BIT(pix_in, 1)) | (0x24 * BIT(pix_in, 0));
+ const uint8_t g = (0x92 * BIT(pix_in, 5)) | (0x49 * BIT(pix_in, 4)) | (0x24 * BIT(pix_in, 3));
+ const uint8_t b = (0xaa * BIT(pix_in, 7)) | (0x55 * BIT(pix_in, 6));
*dest++ = (r << 16) | (g << 8) | b;
break;
}
@@ -1392,22 +1392,22 @@ void newport_video_device::store_pixel(uint8_t *dest_buf, uint8_t src)
switch ((m_rex3.m_draw_mode1 >> 28) & 15)
{
- case 0: break;
- case 1: *dest_buf |= (src & dst) & m_rex3.m_write_mask; break;
- case 2: *dest_buf |= (src & ~dst) & m_rex3.m_write_mask; break;
- case 3: *dest_buf |= (src) & m_rex3.m_write_mask; break;
- case 4: *dest_buf |= (~src & dst) & m_rex3.m_write_mask; break;
- case 5: *dest_buf |= (dst) & m_rex3.m_write_mask; break;
- case 6: *dest_buf |= (src ^ dst) & m_rex3.m_write_mask; break;
- case 7: *dest_buf |= (src | dst) & m_rex3.m_write_mask; break;
- case 8: *dest_buf |= ~(src | dst) & m_rex3.m_write_mask; break;
- case 9: *dest_buf |= ~(src ^ dst) & m_rex3.m_write_mask; break;
- case 10: *dest_buf |= ~(dst) & m_rex3.m_write_mask; break;
- case 11: *dest_buf |= (src | ~dst) & m_rex3.m_write_mask; break;
- case 12: *dest_buf |= ~(src) & m_rex3.m_write_mask; break;
- case 13: *dest_buf |= (~src | dst) & m_rex3.m_write_mask; break;
- case 14: *dest_buf |= ~(src & dst) & m_rex3.m_write_mask; break;
- case 15: *dest_buf |= 0xff & m_rex3.m_write_mask; break;
+ case 0: break;
+ case 1: *dest_buf |= (src & dst) & m_rex3.m_write_mask; break;
+ case 2: *dest_buf |= (src & ~dst) & m_rex3.m_write_mask; break;
+ case 3: *dest_buf |= (src) & m_rex3.m_write_mask; break;
+ case 4: *dest_buf |= (~src & dst) & m_rex3.m_write_mask; break;
+ case 5: *dest_buf |= (dst) & m_rex3.m_write_mask; break;
+ case 6: *dest_buf |= (src ^ dst) & m_rex3.m_write_mask; break;
+ case 7: *dest_buf |= (src | dst) & m_rex3.m_write_mask; break;
+ case 8: *dest_buf |= ~(src | dst) & m_rex3.m_write_mask; break;
+ case 9: *dest_buf |= ~(src ^ dst) & m_rex3.m_write_mask; break;
+ case 10: *dest_buf |= ~(dst) & m_rex3.m_write_mask; break;
+ case 11: *dest_buf |= (src | ~dst) & m_rex3.m_write_mask; break;
+ case 12: *dest_buf |= ~(src) & m_rex3.m_write_mask; break;
+ case 13: *dest_buf |= (~src | dst) & m_rex3.m_write_mask; break;
+ case 14: *dest_buf |= ~(src & dst) & m_rex3.m_write_mask; break;
+ case 15: *dest_buf |= 0xff & m_rex3.m_write_mask; break;
}
}
@@ -1452,26 +1452,26 @@ void newport_video_device::do_v_iline(uint8_t color, bool skip_last, bool shade)
do
{
if (shade)
- write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11));
- else
- write_pixel(x1, y1, color);
+ write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11));
+ else
+ write_pixel(x1, y1, color);
- y1 += incy;
+ y1 += incy;
if (shade)
- m_rex3.m_color_red += m_rex3.m_slope_red;
+ m_rex3.m_color_red += (m_rex3.m_slope_red << 8) >> 8;
} while (y1 != y2);
- if (!skip_last)
- {
+ if (!skip_last)
+ {
if (shade)
- write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11));
- else
- write_pixel(x1, y1, color);
- }
+ write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11));
+ else
+ write_pixel(x1, y1, color);
+ }
- write_x_start(x1 << 11);
- write_y_start(y1 << 11);
+ write_x_start(x1 << 11);
+ write_y_start(y1 << 11);
}
void newport_video_device::do_h_iline(uint8_t color, bool skip_last, bool shade)
@@ -1492,18 +1492,18 @@ void newport_video_device::do_h_iline(uint8_t color, bool skip_last, bool shade)
x1 += incx;
if (shade)
- m_rex3.m_color_red += m_rex3.m_slope_red;
+ m_rex3.m_color_red += (m_rex3.m_slope_red << 8) >> 8;
} while (x1 != x2);
- if (!skip_last) {
+ if (!skip_last) {
if (shade)
- write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11));
- else
- write_pixel(x1, y1, color);
- }
+ write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11));
+ else
+ write_pixel(x1, y1, color);
+ }
- write_x_start(x1 << 11);
- write_y_start(y1 << 11);
+ write_x_start(x1 << 11);
+ write_y_start(y1 << 11);
}
void newport_video_device::do_iline(uint8_t color, bool skip_last, bool shade)
@@ -1577,7 +1577,7 @@ void newport_video_device::do_iline(uint8_t color, bool skip_last, bool shade)
x1++;
if (shade)
- m_rex3.m_color_red += m_rex3.m_slope_red;
+ m_rex3.m_color_red += (m_rex3.m_slope_red << 8) >> 8;
} while (x1 != x2);
if (!skip_last)
@@ -1609,7 +1609,7 @@ void newport_video_device::do_iline(uint8_t color, bool skip_last, bool shade)
x1++;
if (shade)
- m_rex3.m_color_red += m_rex3.m_slope_red;
+ m_rex3.m_color_red += (m_rex3.m_slope_red << 8) >> 8;
} while (x1 != x2);
if (!skip_last)
@@ -1621,8 +1621,8 @@ void newport_video_device::do_iline(uint8_t color, bool skip_last, bool shade)
}
}
- write_x_start(x1 << 11);
- write_y_start(y1 << 11);
+ write_x_start(x1 << 11);
+ write_y_start(y1 << 11);
}
uint8_t newport_video_device::do_pixel_read()
@@ -1743,33 +1743,38 @@ void newport_video_device::do_rex3_command()
m_rex3.m_read_active = true;
break;
}
+ case 0x00000022: // DoSetup, Span, Draw
case 0x00000102: // StopOnX, Span, Draw
case 0x00000122: // StopOnX, DoSetup, Span, Draw
case 0x00022102: // LSOpaque, EnLSPattern, StopOnX, Span, Draw
case 0x00080122: // LROnly, StopOnX, DoSetup, Span, Draw
- case 0x000c0122: // Shade, LROnly, StopOnX, DoSetup, Span, Draw
+ case 0x000c0122: // LROnly, Shade, StopOnX, DoSetup, Span, Draw
+ case 0x000c9102: // LROnly, Shade, Length32, EnZPattern, StopOnX, Span, Draw
{
if (BIT(mode0, 19) && dx < 0) // LROnly
break;
+ if (!BIT(mode0, 8))
+ end_x = start_x;
+
end_x += dx;
end_y += dy;
- //bool shade = BIT(mode0, 18);
+ bool shade = BIT(mode0, 18);
uint32_t color = m_rex3.m_color_i & 0xff;
LOGMASKED(LOG_COMMANDS, "%04x, %04x to %04x, %04x = %08x\n", start_x, start_y, end_x, end_y, color);
for (; start_x != end_x; start_x += dx)
{
- //if (shade)
- //{
- // write_pixel(start_x, start_y, (uint8_t)(m_rex3.m_color_red >> 11));
- // m_rex3.m_color_red += m_rex3.m_slope_red;
- //}
- //else
- //{
+ if (shade)
+ {
+ write_pixel(start_x, start_y, (uint8_t)(m_rex3.m_color_red >> 11));
+ m_rex3.m_color_red += (m_rex3.m_slope_red << 8) >> 8;
+ }
+ else
+ {
write_pixel(start_x, start_y, color);
- //}
+ }
}
start_y++;
@@ -1823,6 +1828,7 @@ void newport_video_device::do_rex3_command()
case 0x00000b2a: // SkipLast, StopOnX, StopOnY, DoSetup, I_Line, Draw
case 0x0000232e: // EnLSPattern, StopOnX, StopOnY, DoSetup, F_Line, Draw
case 0x0004232e: // Shade, EnLSPattern, StopOnX, StopOnY, DoSetup, F_Line, Draw
+ case 0x00442332: // EndFilter, Shade, EnLSPattern, StopOnX, StopOnY, DoSetp, A_Line, Draw
{
const bool skip_last = BIT(mode0, 11);
const bool shade = BIT(mode0, 18);
@@ -2427,25 +2433,25 @@ WRITE64_MEMBER(newport_video_device::rex3_w)
if (ACCESSING_BITS_32_63)
{
LOGMASKED(LOG_REX3, "REX3 Red/CI Full State Write: %08x\n", (uint32_t)(data >> 32));
- m_rex3.m_color_red = (uint32_t)((data >> 32) & 0xffffff);
- m_rex3.m_color_i = (m_rex3.m_color_red >> 11) & 0x000000ff;
+ m_rex3.m_color_red = (int32_t)((data >> 32) & 0xffffff);
+ m_rex3.m_color_i = (uint32_t)(m_rex3.m_color_red >> 11) & 0x000000ff;
}
if (ACCESSING_BITS_0_31)
{
LOGMASKED(LOG_REX3, "REX3 Alpha Full State Write: %08x\n", (uint32_t)data);
- m_rex3.m_color_alpha = data & 0xfffff;
+ m_rex3.m_color_alpha = (int32_t)(data & 0xfffff);
}
break;
case 0x0208/8:
if (ACCESSING_BITS_32_63)
{
LOGMASKED(LOG_REX3, "REX3 Green Full State Write: %08x\n", (uint32_t)(data >> 32));
- m_rex3.m_color_green = (uint32_t)((data >> 32) & 0xfffff);
+ m_rex3.m_color_green = (int32_t)((data >> 32) & 0xfffff);
}
if (ACCESSING_BITS_0_31)
{
LOGMASKED(LOG_REX3, "REX3 Blue Full State Write: %08x\n", (uint32_t)data);
- m_rex3.m_color_blue = data & 0xfffff;
+ m_rex3.m_color_blue = (int32_t)(data & 0xfffff);
}
break;
case 0x0210/8:
@@ -2455,7 +2461,7 @@ WRITE64_MEMBER(newport_video_device::rex3_w)
uint32_t data32 = (uint32_t)(data >> 32);
LOGMASKED(LOG_REX3, "REX3 Red/CI Slope Write: %08x\n", data32);
data32 &= 0x807fffff;
- uint32_t temp = 0;
+ int32_t temp = 0;
if (BIT(data32, 31))
{
temp = 0x00800000 - (data32 & 0x7fffff);
@@ -2471,7 +2477,7 @@ WRITE64_MEMBER(newport_video_device::rex3_w)
{
LOGMASKED(LOG_REX3, "REX3 Alpha Slope Write: %08x\n", (uint32_t)data);
data &= 0x8007ffff;
- uint32_t temp = 0;
+ int32_t temp = 0;
if (BIT(data, 31))
{
temp = 0x00080000 - (data & 0x7ffff);
@@ -2492,7 +2498,7 @@ WRITE64_MEMBER(newport_video_device::rex3_w)
uint32_t data32 = (uint32_t)(data >> 32);
LOGMASKED(LOG_REX3, "REX3 Green Slope Write: %08x\n", data32);
data32 &= 0x8007ffff;
- uint32_t temp = 0;
+ int32_t temp = 0;
if (BIT(data32, 31))
{
temp = 0x00080000 - (data32 & 0x7ffff);
@@ -2508,7 +2514,7 @@ WRITE64_MEMBER(newport_video_device::rex3_w)
{
LOGMASKED(LOG_REX3, "REX3 Blue Slope Write: %08x\n", (uint32_t)data);
data &= 0x8007ffff;
- uint32_t temp = 0;
+ int32_t temp = 0;
if (BIT(data, 31))
{
temp = 0x00080000 - (data & 0x7ffff);
diff --git a/src/mame/video/newport.h b/src/mame/video/newport.h
index 65ebbaa58a4..8e050eeff5b 100644
--- a/src/mame/video/newport.h
+++ b/src/mame/video/newport.h
@@ -11,7 +11,7 @@
#include "machine/hpc3.h"
-#define ENABLE_NEWVIEW_LOG (0)
+#define ENABLE_NEWVIEW_LOG (0)
class newport_video_device : public device_t
{
@@ -131,14 +131,14 @@ private:
int16_t m_x_end_i;
int16_t m_y_end_i;
uint32_t m_x_start_end_i;
- uint32_t m_color_red;
- uint32_t m_color_alpha;
- uint32_t m_color_green;
- uint32_t m_color_blue;
- uint32_t m_slope_red;
- uint32_t m_slope_alpha;
- uint32_t m_slope_green;
- uint32_t m_slope_blue;
+ int32_t m_color_red;
+ int32_t m_color_alpha;
+ int32_t m_color_green;
+ int32_t m_color_blue;
+ int32_t m_slope_red;
+ int32_t m_slope_alpha;
+ int32_t m_slope_green;
+ int32_t m_slope_blue;
uint32_t m_write_mask;
uint32_t m_color_i;
uint32_t m_zero_overflow;
diff --git a/src/mame/video/pc9801.cpp b/src/mame/video/pc9801.cpp
index 34d8d3e04c7..c6fee1e569d 100644
--- a/src/mame/video/pc9801.cpp
+++ b/src/mame/video/pc9801.cpp
@@ -321,7 +321,7 @@ READ8_MEMBER(pc9801_state::pc9801_a0_r)
{
case 0x00:
case 0x02:
- return m_hgdc2->read(space, (offset & 2) >> 1);
+ return m_hgdc2->read((offset & 2) >> 1);
/* TODO: double check these two */
case 0x04:
return m_vram_disp & 1;
@@ -366,7 +366,7 @@ WRITE8_MEMBER(pc9801_state::pc9801_a0_w)
{
case 0x00:
case 0x02:
- m_hgdc2->write(space, (offset & 2) >> 1,data);
+ m_hgdc2->write((offset & 2) >> 1,data);
return;
case 0x04:
m_vram_disp = data & 1;
diff --git a/src/osd/modules/input/input_sdl.cpp b/src/osd/modules/input/input_sdl.cpp
index 7c86b4bd837..40fe037f8c7 100644
--- a/src/osd/modules/input/input_sdl.cpp
+++ b/src/osd/modules/input/input_sdl.cpp
@@ -63,263 +63,263 @@ struct key_lookup_table
static key_lookup_table sdl_lookup_table[] =
{
- KE(UNKNOWN)
-
- KE(A)
- KE(B)
- KE(C)
- KE(D)
- KE(E)
- KE(F)
- KE(G)
- KE(H)
- KE(I)
- KE(J)
- KE(K)
- KE(L)
- KE(M)
- KE(N)
- KE(O)
- KE(P)
- KE(Q)
- KE(R)
- KE(S)
- KE(T)
- KE(U)
- KE(V)
- KE(W)
- KE(X)
- KE(Y)
- KE(Z)
-
- KE(1)
- KE(2)
- KE(3)
- KE(4)
- KE(5)
- KE(6)
- KE(7)
- KE(8)
- KE(9)
- KE(0)
-
- KE(RETURN)
- KE(ESCAPE)
- KE(BACKSPACE)
- KE(TAB)
- KE(SPACE)
-
- KE(MINUS)
- KE(EQUALS)
- KE(LEFTBRACKET)
- KE(RIGHTBRACKET)
- KE(BACKSLASH)
- KE(NONUSHASH)
- KE(SEMICOLON)
- KE(APOSTROPHE)
- KE(GRAVE)
- KE(COMMA)
- KE(PERIOD)
- KE(SLASH)
-
- KE(CAPSLOCK)
-
- KE(F1)
- KE(F2)
- KE(F3)
- KE(F4)
- KE(F5)
- KE(F6)
- KE(F7)
- KE(F8)
- KE(F9)
- KE(F10)
- KE(F11)
- KE(F12)
-
- KE(PRINTSCREEN)
- KE(SCROLLLOCK)
- KE(PAUSE)
- KE(INSERT)
- KE(HOME)
- KE(PAGEUP)
- KE(DELETE)
- KE(END)
- KE(PAGEDOWN)
- KE(RIGHT)
- KE(LEFT)
- KE(DOWN)
- KE(UP)
-
- KE(NUMLOCKCLEAR)
- KE(KP_DIVIDE)
- KE(KP_MULTIPLY)
- KE(KP_MINUS)
- KE(KP_PLUS)
- KE(KP_ENTER)
- KE(KP_1)
- KE(KP_2)
- KE(KP_3)
- KE(KP_4)
- KE(KP_5)
- KE(KP_6)
- KE(KP_7)
- KE(KP_8)
- KE(KP_9)
- KE(KP_0)
- KE(KP_PERIOD)
-
- KE(NONUSBACKSLASH)
- KE(APPLICATION)
- KE(POWER)
- KE(KP_EQUALS)
- KE(F13)
- KE(F14)
- KE(F15)
- KE(F16)
- KE(F17)
- KE(F18)
- KE(F19)
- KE(F20)
- KE(F21)
- KE(F22)
- KE(F23)
- KE(F24)
- KE(EXECUTE)
- KE(HELP)
- KE(MENU)
- KE(SELECT)
- KE(STOP)
- KE(AGAIN)
- KE(UNDO)
- KE(CUT)
- KE(COPY)
- KE(PASTE)
- KE(FIND)
- KE(MUTE)
- KE(VOLUMEUP)
- KE(VOLUMEDOWN)
- KE(KP_COMMA)
- KE(KP_EQUALSAS400)
-
- KE(INTERNATIONAL1)
- KE(INTERNATIONAL2)
- KE(INTERNATIONAL3)
- KE(INTERNATIONAL4)
- KE(INTERNATIONAL5)
- KE(INTERNATIONAL6)
- KE(INTERNATIONAL7)
- KE(INTERNATIONAL8)
- KE(INTERNATIONAL9)
- KE(LANG1)
- KE(LANG2)
- KE(LANG3)
- KE(LANG4)
- KE(LANG5)
- KE(LANG6)
- KE(LANG7)
- KE(LANG8)
- KE(LANG9)
-
- KE(ALTERASE)
- KE(SYSREQ)
- KE(CANCEL)
- KE(CLEAR)
- KE(PRIOR)
- KE(RETURN2)
- KE(SEPARATOR)
- KE(OUT)
- KE(OPER)
- KE(CLEARAGAIN)
- KE(CRSEL)
- KE(EXSEL)
-
- KE(KP_00)
- KE(KP_000)
- KE(THOUSANDSSEPARATOR)
- KE(DECIMALSEPARATOR)
- KE(CURRENCYUNIT)
- KE(CURRENCYSUBUNIT)
- KE(KP_LEFTPAREN)
- KE(KP_RIGHTPAREN)
- KE(KP_LEFTBRACE)
- KE(KP_RIGHTBRACE)
- KE(KP_TAB)
- KE(KP_BACKSPACE)
- KE(KP_A)
- KE(KP_B)
- KE(KP_C)
- KE(KP_D)
- KE(KP_E)
- KE(KP_F)
- KE(KP_XOR)
- KE(KP_POWER)
- KE(KP_PERCENT)
- KE(KP_LESS)
- KE(KP_GREATER)
- KE(KP_AMPERSAND)
- KE(KP_DBLAMPERSAND)
- KE(KP_VERTICALBAR)
- KE(KP_DBLVERTICALBAR)
- KE(KP_COLON)
- KE(KP_HASH)
- KE(KP_SPACE)
- KE(KP_AT)
- KE(KP_EXCLAM)
- KE(KP_MEMSTORE)
- KE(KP_MEMRECALL)
- KE(KP_MEMCLEAR)
- KE(KP_MEMADD)
- KE(KP_MEMSUBTRACT)
- KE(KP_MEMMULTIPLY)
- KE(KP_MEMDIVIDE)
- KE(KP_PLUSMINUS)
- KE(KP_CLEAR)
- KE(KP_CLEARENTRY)
- KE(KP_BINARY)
- KE(KP_OCTAL)
- KE(KP_DECIMAL)
- KE(KP_HEXADECIMAL)
-
- KE(LCTRL)
- KE(LSHIFT)
- KE(LALT)
- KE(LGUI)
- KE(RCTRL)
- KE(RSHIFT)
- KE(RALT)
- KE(RGUI)
-
- KE(MODE)
- KE(AUDIONEXT)
- KE(AUDIOPREV)
- KE(AUDIOSTOP)
- KE(AUDIOPLAY)
- KE(AUDIOMUTE)
- KE(MEDIASELECT)
- KE(WWW)
- KE(MAIL)
- KE(CALCULATOR)
- KE(COMPUTER)
- KE(AC_SEARCH)
- KE(AC_HOME)
- KE(AC_BACK)
- KE(AC_FORWARD)
- KE(AC_STOP)
- KE(AC_REFRESH)
- KE(AC_BOOKMARKS)
-
- KE(BRIGHTNESSDOWN)
- KE(BRIGHTNESSUP)
- KE(DISPLAYSWITCH)
- KE(KBDILLUMTOGGLE)
- KE(KBDILLUMDOWN)
- KE(KBDILLUMUP)
- KE(EJECT)
- KE(SLEEP)
-
- KE(APP1)
- KE(APP2)
+ KE(UNKNOWN)
+
+ KE(A)
+ KE(B)
+ KE(C)
+ KE(D)
+ KE(E)
+ KE(F)
+ KE(G)
+ KE(H)
+ KE(I)
+ KE(J)
+ KE(K)
+ KE(L)
+ KE(M)
+ KE(N)
+ KE(O)
+ KE(P)
+ KE(Q)
+ KE(R)
+ KE(S)
+ KE(T)
+ KE(U)
+ KE(V)
+ KE(W)
+ KE(X)
+ KE(Y)
+ KE(Z)
+
+ KE(1)
+ KE(2)
+ KE(3)
+ KE(4)
+ KE(5)
+ KE(6)
+ KE(7)
+ KE(8)
+ KE(9)
+ KE(0)
+
+ KE(RETURN)
+ KE(ESCAPE)
+ KE(BACKSPACE)
+ KE(TAB)
+ KE(SPACE)
+
+ KE(MINUS)
+ KE(EQUALS)
+ KE(LEFTBRACKET)
+ KE(RIGHTBRACKET)
+ KE(BACKSLASH)
+ KE(NONUSHASH)
+ KE(SEMICOLON)
+ KE(APOSTROPHE)
+ KE(GRAVE)
+ KE(COMMA)
+ KE(PERIOD)
+ KE(SLASH)
+
+ KE(CAPSLOCK)
+
+ KE(F1)
+ KE(F2)
+ KE(F3)
+ KE(F4)
+ KE(F5)
+ KE(F6)
+ KE(F7)
+ KE(F8)
+ KE(F9)
+ KE(F10)
+ KE(F11)
+ KE(F12)
+
+ KE(PRINTSCREEN)
+ KE(SCROLLLOCK)
+ KE(PAUSE)
+ KE(INSERT)
+ KE(HOME)
+ KE(PAGEUP)
+ KE(DELETE)
+ KE(END)
+ KE(PAGEDOWN)
+ KE(RIGHT)
+ KE(LEFT)
+ KE(DOWN)
+ KE(UP)
+
+ KE(NUMLOCKCLEAR)
+ KE(KP_DIVIDE)
+ KE(KP_MULTIPLY)
+ KE(KP_MINUS)
+ KE(KP_PLUS)
+ KE(KP_ENTER)
+ KE(KP_1)
+ KE(KP_2)
+ KE(KP_3)
+ KE(KP_4)
+ KE(KP_5)
+ KE(KP_6)
+ KE(KP_7)
+ KE(KP_8)
+ KE(KP_9)
+ KE(KP_0)
+ KE(KP_PERIOD)
+
+ KE(NONUSBACKSLASH)
+ KE(APPLICATION)
+ KE(POWER)
+ KE(KP_EQUALS)
+ KE(F13)
+ KE(F14)
+ KE(F15)
+ KE(F16)
+ KE(F17)
+ KE(F18)
+ KE(F19)
+ KE(F20)
+ KE(F21)
+ KE(F22)
+ KE(F23)
+ KE(F24)
+ KE(EXECUTE)
+ KE(HELP)
+ KE(MENU)
+ KE(SELECT)
+ KE(STOP)
+ KE(AGAIN)
+ KE(UNDO)
+ KE(CUT)
+ KE(COPY)
+ KE(PASTE)
+ KE(FIND)
+ KE(MUTE)
+ KE(VOLUMEUP)
+ KE(VOLUMEDOWN)
+ KE(KP_COMMA)
+ KE(KP_EQUALSAS400)
+
+ KE(INTERNATIONAL1)
+ KE(INTERNATIONAL2)
+ KE(INTERNATIONAL3)
+ KE(INTERNATIONAL4)
+ KE(INTERNATIONAL5)
+ KE(INTERNATIONAL6)
+ KE(INTERNATIONAL7)
+ KE(INTERNATIONAL8)
+ KE(INTERNATIONAL9)
+ KE(LANG1)
+ KE(LANG2)
+ KE(LANG3)
+ KE(LANG4)
+ KE(LANG5)
+ KE(LANG6)
+ KE(LANG7)
+ KE(LANG8)
+ KE(LANG9)
+
+ KE(ALTERASE)
+ KE(SYSREQ)
+ KE(CANCEL)
+ KE(CLEAR)
+ KE(PRIOR)
+ KE(RETURN2)
+ KE(SEPARATOR)
+ KE(OUT)
+ KE(OPER)
+ KE(CLEARAGAIN)
+ KE(CRSEL)
+ KE(EXSEL)
+
+ KE(KP_00)
+ KE(KP_000)
+ KE(THOUSANDSSEPARATOR)
+ KE(DECIMALSEPARATOR)
+ KE(CURRENCYUNIT)
+ KE(CURRENCYSUBUNIT)
+ KE(KP_LEFTPAREN)
+ KE(KP_RIGHTPAREN)
+ KE(KP_LEFTBRACE)
+ KE(KP_RIGHTBRACE)
+ KE(KP_TAB)
+ KE(KP_BACKSPACE)
+ KE(KP_A)
+ KE(KP_B)
+ KE(KP_C)
+ KE(KP_D)
+ KE(KP_E)
+ KE(KP_F)
+ KE(KP_XOR)
+ KE(KP_POWER)
+ KE(KP_PERCENT)
+ KE(KP_LESS)
+ KE(KP_GREATER)
+ KE(KP_AMPERSAND)
+ KE(KP_DBLAMPERSAND)
+ KE(KP_VERTICALBAR)
+ KE(KP_DBLVERTICALBAR)
+ KE(KP_COLON)
+ KE(KP_HASH)
+ KE(KP_SPACE)
+ KE(KP_AT)
+ KE(KP_EXCLAM)
+ KE(KP_MEMSTORE)
+ KE(KP_MEMRECALL)
+ KE(KP_MEMCLEAR)
+ KE(KP_MEMADD)
+ KE(KP_MEMSUBTRACT)
+ KE(KP_MEMMULTIPLY)
+ KE(KP_MEMDIVIDE)
+ KE(KP_PLUSMINUS)
+ KE(KP_CLEAR)
+ KE(KP_CLEARENTRY)
+ KE(KP_BINARY)
+ KE(KP_OCTAL)
+ KE(KP_DECIMAL)
+ KE(KP_HEXADECIMAL)
+
+ KE(LCTRL)
+ KE(LSHIFT)
+ KE(LALT)
+ KE(LGUI)
+ KE(RCTRL)
+ KE(RSHIFT)
+ KE(RALT)
+ KE(RGUI)
+
+ KE(MODE)
+ KE(AUDIONEXT)
+ KE(AUDIOPREV)
+ KE(AUDIOSTOP)
+ KE(AUDIOPLAY)
+ KE(AUDIOMUTE)
+ KE(MEDIASELECT)
+ KE(WWW)
+ KE(MAIL)
+ KE(CALCULATOR)
+ KE(COMPUTER)
+ KE(AC_SEARCH)
+ KE(AC_HOME)
+ KE(AC_BACK)
+ KE(AC_FORWARD)
+ KE(AC_STOP)
+ KE(AC_REFRESH)
+ KE(AC_BOOKMARKS)
+
+ KE(BRIGHTNESSDOWN)
+ KE(BRIGHTNESSUP)
+ KE(DISPLAYSWITCH)
+ KE(KBDILLUMTOGGLE)
+ KE(KBDILLUMDOWN)
+ KE(KBDILLUMUP)
+ KE(EJECT)
+ KE(SLEEP)
+
+ KE(APP1)
+ KE(APP2)
{
diff --git a/src/tools/imgtool/modules/rt11.cpp b/src/tools/imgtool/modules/rt11.cpp
index 3cce60a050f..f7f5a515f2c 100644
--- a/src/tools/imgtool/modules/rt11.cpp
+++ b/src/tools/imgtool/modules/rt11.cpp
@@ -6,68 +6,68 @@
DEC RT-11 disk images
- References:
-
- VaFFM -- bitsavers://pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PD6PA-TC_RT-11_Volume_and_File_Formats_Manual_Aug91.pdf
- DHM -- bitsavers://pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PE7VA-TC_RT-11_Device_Handlers_Manual_Aug91.pdf
- SSM -- bitsavers://pdf/dec/pdp11/rt11/v5.0_Mar83/AA-H379B-TC_5.0_SWsuppMar83.pdf
- TSX+ -- bitsavers://pdf/dec/pdp11/tsxPlus/manuals_6.31/TSX-Plus_UsersRef_Jan88.pdf
- PUTR -- http://www.dbit.com/pub/putr/putr.asm
-
- To do:
- - filter for text files
- - read-write support
- - report empty 'last modified' time if date field is all zeros
- - report free space
- - arbitrary sized images
- - don't crash when strings in home block have non-ascii chars (charconverter does not apply)
- - do something about bootblock bug in imgtool (commit aca90520)
-
- LBN Contents
- --- --------
- 0 Reserved (primary bootstrap)
- 1 Reserved (home block)
- 2-5 Reserved (secondary bootstrap)
- 6-7 Directory segment 1
- ... Directory segment 2-n
- ... Data
-
- Home block
- ----------
- 000-201 Bad block replacement table
- 202-203 ?
- 204-251 INITIALIZE/RESTORE data area
- 252-273 BUP information area
- 274-677 ?
- 700-701 (Reserved for Digital, must be zero)
- 702-703 (Reserved for Digital, must be zero)
- 704-721 ?
- 722-723 Pack cluster size (= 1)
- 724-725 Block number of first directory segment
- 726-727 System version (RAD50)
- 730-742 Volume Identification
- 744-757 Owner name
- 760-773 System Identification
- 776-777 Checksum
-
- Directory segment header
- ------------------------
- 0 The total number of segments in this directory.
- 1 The segment number of the next logical directory segment. If this word is 0, there are no more segments in the list.
- 2 The number of the highest segment currently in use. Valid only in the first directory segment.
- 3 The number of extra bytes per directory entry, always an unsigned, even octal number.
- 4 The block number on the volume where the actual stored data identified by this segment begins.
-
- Directory entry
- ---------------
- 0 Status word
- 1 File name 1-3 (RAD50)
- 2 File name 4-6 (RAD50)
- 3 File type 1-3 (RAD50)
- 4 Total file length (blocks)
- 5 Job#, Channel# (RT-11 uses this information only for tentative files)
- 6 Creation date
- 7- Optional extra words
+ References:
+
+ VaFFM -- bitsavers://pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PD6PA-TC_RT-11_Volume_and_File_Formats_Manual_Aug91.pdf
+ DHM -- bitsavers://pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PE7VA-TC_RT-11_Device_Handlers_Manual_Aug91.pdf
+ SSM -- bitsavers://pdf/dec/pdp11/rt11/v5.0_Mar83/AA-H379B-TC_5.0_SWsuppMar83.pdf
+ TSX+ -- bitsavers://pdf/dec/pdp11/tsxPlus/manuals_6.31/TSX-Plus_UsersRef_Jan88.pdf
+ PUTR -- http://www.dbit.com/pub/putr/putr.asm
+
+ To do:
+ - filter for text files
+ - read-write support
+ - report empty 'last modified' time if date field is all zeros
+ - report free space
+ - arbitrary sized images
+ - don't crash when strings in home block have non-ascii chars (charconverter does not apply)
+ - do something about bootblock bug in imgtool (commit aca90520)
+
+ LBN Contents
+ --- --------
+ 0 Reserved (primary bootstrap)
+ 1 Reserved (home block)
+ 2-5 Reserved (secondary bootstrap)
+ 6-7 Directory segment 1
+ ... Directory segment 2-n
+ ... Data
+
+ Home block
+ ----------
+ 000-201 Bad block replacement table
+ 202-203 ?
+ 204-251 INITIALIZE/RESTORE data area
+ 252-273 BUP information area
+ 274-677 ?
+ 700-701 (Reserved for Digital, must be zero)
+ 702-703 (Reserved for Digital, must be zero)
+ 704-721 ?
+ 722-723 Pack cluster size (= 1)
+ 724-725 Block number of first directory segment
+ 726-727 System version (RAD50)
+ 730-742 Volume Identification
+ 744-757 Owner name
+ 760-773 System Identification
+ 776-777 Checksum
+
+ Directory segment header
+ ------------------------
+ 0 The total number of segments in this directory.
+ 1 The segment number of the next logical directory segment. If this word is 0, there are no more segments in the list.
+ 2 The number of the highest segment currently in use. Valid only in the first directory segment.
+ 3 The number of extra bytes per directory entry, always an unsigned, even octal number.
+ 4 The block number on the volume where the actual stored data identified by this segment begins.
+
+ Directory entry
+ ---------------
+ 0 Status word
+ 1 File name 1-3 (RAD50)
+ 2 File name 4-6 (RAD50)
+ 3 File type 1-3 (RAD50)
+ 4 Total file length (blocks)
+ 5 Job#, Channel# (RT-11 uses this information only for tentative files)
+ 6 Creation date
+ 7- Optional extra words
****************************************************************************/
diff --git a/src/tools/testkeys.cpp b/src/tools/testkeys.cpp
index a536e4ac272..9ee08808c19 100644
--- a/src/tools/testkeys.cpp
+++ b/src/tools/testkeys.cpp
@@ -26,263 +26,263 @@ struct key_lookup_table { int code; const char *name; };
static constexpr key_lookup_table sdl_lookup[] =
{
- KE(UNKNOWN)
+ KE(UNKNOWN)
- KE(A)
- KE(B)
- KE(C)
- KE(D)
- KE(E)
- KE(F)
- KE(G)
- KE(H)
- KE(I)
- KE(J)
- KE(K)
- KE(L)
- KE(M)
- KE(N)
- KE(O)
- KE(P)
- KE(Q)
- KE(R)
- KE(S)
- KE(T)
- KE(U)
- KE(V)
- KE(W)
- KE(X)
- KE(Y)
- KE(Z)
+ KE(A)
+ KE(B)
+ KE(C)
+ KE(D)
+ KE(E)
+ KE(F)
+ KE(G)
+ KE(H)
+ KE(I)
+ KE(J)
+ KE(K)
+ KE(L)
+ KE(M)
+ KE(N)
+ KE(O)
+ KE(P)
+ KE(Q)
+ KE(R)
+ KE(S)
+ KE(T)
+ KE(U)
+ KE(V)
+ KE(W)
+ KE(X)
+ KE(Y)
+ KE(Z)
- KE(1)
- KE(2)
- KE(3)
- KE(4)
- KE(5)
- KE(6)
- KE(7)
- KE(8)
- KE(9)
- KE(0)
+ KE(1)
+ KE(2)
+ KE(3)
+ KE(4)
+ KE(5)
+ KE(6)
+ KE(7)
+ KE(8)
+ KE(9)
+ KE(0)
- KE(RETURN)
- KE(ESCAPE)
- KE(BACKSPACE)
- KE(TAB)
- KE(SPACE)
+ KE(RETURN)
+ KE(ESCAPE)
+ KE(BACKSPACE)
+ KE(TAB)
+ KE(SPACE)
- KE(MINUS)
- KE(EQUALS)
- KE(LEFTBRACKET)
- KE(RIGHTBRACKET)
- KE(BACKSLASH)
- KE(NONUSHASH)
- KE(SEMICOLON)
- KE(APOSTROPHE)
- KE(GRAVE)
- KE(COMMA)
- KE(PERIOD)
- KE(SLASH)
+ KE(MINUS)
+ KE(EQUALS)
+ KE(LEFTBRACKET)
+ KE(RIGHTBRACKET)
+ KE(BACKSLASH)
+ KE(NONUSHASH)
+ KE(SEMICOLON)
+ KE(APOSTROPHE)
+ KE(GRAVE)
+ KE(COMMA)
+ KE(PERIOD)
+ KE(SLASH)
- KE(CAPSLOCK)
+ KE(CAPSLOCK)
- KE(F1)
- KE(F2)
- KE(F3)
- KE(F4)
- KE(F5)
- KE(F6)
- KE(F7)
- KE(F8)
- KE(F9)
- KE(F10)
- KE(F11)
- KE(F12)
+ KE(F1)
+ KE(F2)
+ KE(F3)
+ KE(F4)
+ KE(F5)
+ KE(F6)
+ KE(F7)
+ KE(F8)
+ KE(F9)
+ KE(F10)
+ KE(F11)
+ KE(F12)
- KE(PRINTSCREEN)
- KE(SCROLLLOCK)
- KE(PAUSE)
- KE(INSERT)
- KE(HOME)
- KE(PAGEUP)
- KE(DELETE)
- KE(END)
- KE(PAGEDOWN)
- KE(RIGHT)
- KE(LEFT)
- KE(DOWN)
- KE(UP)
+ KE(PRINTSCREEN)
+ KE(SCROLLLOCK)
+ KE(PAUSE)
+ KE(INSERT)
+ KE(HOME)
+ KE(PAGEUP)
+ KE(DELETE)
+ KE(END)
+ KE(PAGEDOWN)
+ KE(RIGHT)
+ KE(LEFT)
+ KE(DOWN)
+ KE(UP)
- KE(NUMLOCKCLEAR)
- KE(KP_DIVIDE)
- KE(KP_MULTIPLY)
- KE(KP_MINUS)
- KE(KP_PLUS)
- KE(KP_ENTER)
- KE(KP_1)
- KE(KP_2)
- KE(KP_3)
- KE(KP_4)
- KE(KP_5)
- KE(KP_6)
- KE(KP_7)
- KE(KP_8)
- KE(KP_9)
- KE(KP_0)
- KE(KP_PERIOD)
+ KE(NUMLOCKCLEAR)
+ KE(KP_DIVIDE)
+ KE(KP_MULTIPLY)
+ KE(KP_MINUS)
+ KE(KP_PLUS)
+ KE(KP_ENTER)
+ KE(KP_1)
+ KE(KP_2)
+ KE(KP_3)
+ KE(KP_4)
+ KE(KP_5)
+ KE(KP_6)
+ KE(KP_7)
+ KE(KP_8)
+ KE(KP_9)
+ KE(KP_0)
+ KE(KP_PERIOD)
- KE(NONUSBACKSLASH)
- KE(APPLICATION)
- KE(POWER)
- KE(KP_EQUALS)
- KE(F13)
- KE(F14)
- KE(F15)
- KE(F16)
- KE(F17)
- KE(F18)
- KE(F19)
- KE(F20)
- KE(F21)
- KE(F22)
- KE(F23)
- KE(F24)
- KE(EXECUTE)
- KE(HELP)
- KE(MENU)
- KE(SELECT)
- KE(STOP)
- KE(AGAIN)
- KE(UNDO)
- KE(CUT)
- KE(COPY)
- KE(PASTE)
- KE(FIND)
- KE(MUTE)
- KE(VOLUMEUP)
- KE(VOLUMEDOWN)
- KE(KP_COMMA)
- KE(KP_EQUALSAS400)
+ KE(NONUSBACKSLASH)
+ KE(APPLICATION)
+ KE(POWER)
+ KE(KP_EQUALS)
+ KE(F13)
+ KE(F14)
+ KE(F15)
+ KE(F16)
+ KE(F17)
+ KE(F18)
+ KE(F19)
+ KE(F20)
+ KE(F21)
+ KE(F22)
+ KE(F23)
+ KE(F24)
+ KE(EXECUTE)
+ KE(HELP)
+ KE(MENU)
+ KE(SELECT)
+ KE(STOP)
+ KE(AGAIN)
+ KE(UNDO)
+ KE(CUT)
+ KE(COPY)
+ KE(PASTE)
+ KE(FIND)
+ KE(MUTE)
+ KE(VOLUMEUP)
+ KE(VOLUMEDOWN)
+ KE(KP_COMMA)
+ KE(KP_EQUALSAS400)
- KE(INTERNATIONAL1)
- KE(INTERNATIONAL2)
- KE(INTERNATIONAL3)
- KE(INTERNATIONAL4)
- KE(INTERNATIONAL5)
- KE(INTERNATIONAL6)
- KE(INTERNATIONAL7)
- KE(INTERNATIONAL8)
- KE(INTERNATIONAL9)
- KE(LANG1)
- KE(LANG2)
- KE(LANG3)
- KE(LANG4)
- KE(LANG5)
- KE(LANG6)
- KE(LANG7)
- KE(LANG8)
- KE(LANG9)
+ KE(INTERNATIONAL1)
+ KE(INTERNATIONAL2)
+ KE(INTERNATIONAL3)
+ KE(INTERNATIONAL4)
+ KE(INTERNATIONAL5)
+ KE(INTERNATIONAL6)
+ KE(INTERNATIONAL7)
+ KE(INTERNATIONAL8)
+ KE(INTERNATIONAL9)
+ KE(LANG1)
+ KE(LANG2)
+ KE(LANG3)
+ KE(LANG4)
+ KE(LANG5)
+ KE(LANG6)
+ KE(LANG7)
+ KE(LANG8)
+ KE(LANG9)
- KE(ALTERASE)
- KE(SYSREQ)
- KE(CANCEL)
- KE(CLEAR)
- KE(PRIOR)
- KE(RETURN2)
- KE(SEPARATOR)
- KE(OUT)
- KE(OPER)
- KE(CLEARAGAIN)
- KE(CRSEL)
- KE(EXSEL)
+ KE(ALTERASE)
+ KE(SYSREQ)
+ KE(CANCEL)
+ KE(CLEAR)
+ KE(PRIOR)
+ KE(RETURN2)
+ KE(SEPARATOR)
+ KE(OUT)
+ KE(OPER)
+ KE(CLEARAGAIN)
+ KE(CRSEL)
+ KE(EXSEL)
- KE(KP_00)
- KE(KP_000)
- KE(THOUSANDSSEPARATOR)
- KE(DECIMALSEPARATOR)
- KE(CURRENCYUNIT)
- KE(CURRENCYSUBUNIT)
- KE(KP_LEFTPAREN)
- KE(KP_RIGHTPAREN)
- KE(KP_LEFTBRACE)
- KE(KP_RIGHTBRACE)
- KE(KP_TAB)
- KE(KP_BACKSPACE)
- KE(KP_A)
- KE(KP_B)
- KE(KP_C)
- KE(KP_D)
- KE(KP_E)
- KE(KP_F)
- KE(KP_XOR)
- KE(KP_POWER)
- KE(KP_PERCENT)
- KE(KP_LESS)
- KE(KP_GREATER)
- KE(KP_AMPERSAND)
- KE(KP_DBLAMPERSAND)
- KE(KP_VERTICALBAR)
- KE(KP_DBLVERTICALBAR)
- KE(KP_COLON)
- KE(KP_HASH)
- KE(KP_SPACE)
- KE(KP_AT)
- KE(KP_EXCLAM)
- KE(KP_MEMSTORE)
- KE(KP_MEMRECALL)
- KE(KP_MEMCLEAR)
- KE(KP_MEMADD)
- KE(KP_MEMSUBTRACT)
- KE(KP_MEMMULTIPLY)
- KE(KP_MEMDIVIDE)
- KE(KP_PLUSMINUS)
- KE(KP_CLEAR)
- KE(KP_CLEARENTRY)
- KE(KP_BINARY)
- KE(KP_OCTAL)
- KE(KP_DECIMAL)
- KE(KP_HEXADECIMAL)
+ KE(KP_00)
+ KE(KP_000)
+ KE(THOUSANDSSEPARATOR)
+ KE(DECIMALSEPARATOR)
+ KE(CURRENCYUNIT)
+ KE(CURRENCYSUBUNIT)
+ KE(KP_LEFTPAREN)
+ KE(KP_RIGHTPAREN)
+ KE(KP_LEFTBRACE)
+ KE(KP_RIGHTBRACE)
+ KE(KP_TAB)
+ KE(KP_BACKSPACE)
+ KE(KP_A)
+ KE(KP_B)
+ KE(KP_C)
+ KE(KP_D)
+ KE(KP_E)
+ KE(KP_F)
+ KE(KP_XOR)
+ KE(KP_POWER)
+ KE(KP_PERCENT)
+ KE(KP_LESS)
+ KE(KP_GREATER)
+ KE(KP_AMPERSAND)
+ KE(KP_DBLAMPERSAND)
+ KE(KP_VERTICALBAR)
+ KE(KP_DBLVERTICALBAR)
+ KE(KP_COLON)
+ KE(KP_HASH)
+ KE(KP_SPACE)
+ KE(KP_AT)
+ KE(KP_EXCLAM)
+ KE(KP_MEMSTORE)
+ KE(KP_MEMRECALL)
+ KE(KP_MEMCLEAR)
+ KE(KP_MEMADD)
+ KE(KP_MEMSUBTRACT)
+ KE(KP_MEMMULTIPLY)
+ KE(KP_MEMDIVIDE)
+ KE(KP_PLUSMINUS)
+ KE(KP_CLEAR)
+ KE(KP_CLEARENTRY)
+ KE(KP_BINARY)
+ KE(KP_OCTAL)
+ KE(KP_DECIMAL)
+ KE(KP_HEXADECIMAL)
- KE(LCTRL)
- KE(LSHIFT)
- KE(LALT)
- KE(LGUI)
- KE(RCTRL)
- KE(RSHIFT)
- KE(RALT)
- KE(RGUI)
+ KE(LCTRL)
+ KE(LSHIFT)
+ KE(LALT)
+ KE(LGUI)
+ KE(RCTRL)
+ KE(RSHIFT)
+ KE(RALT)
+ KE(RGUI)
- KE(MODE)
- KE(AUDIONEXT)
- KE(AUDIOPREV)
- KE(AUDIOSTOP)
- KE(AUDIOPLAY)
- KE(AUDIOMUTE)
- KE(MEDIASELECT)
- KE(WWW)
- KE(MAIL)
- KE(CALCULATOR)
- KE(COMPUTER)
- KE(AC_SEARCH)
- KE(AC_HOME)
- KE(AC_BACK)
- KE(AC_FORWARD)
- KE(AC_STOP)
- KE(AC_REFRESH)
- KE(AC_BOOKMARKS)
+ KE(MODE)
+ KE(AUDIONEXT)
+ KE(AUDIOPREV)
+ KE(AUDIOSTOP)
+ KE(AUDIOPLAY)
+ KE(AUDIOMUTE)
+ KE(MEDIASELECT)
+ KE(WWW)
+ KE(MAIL)
+ KE(CALCULATOR)
+ KE(COMPUTER)
+ KE(AC_SEARCH)
+ KE(AC_HOME)
+ KE(AC_BACK)
+ KE(AC_FORWARD)
+ KE(AC_STOP)
+ KE(AC_REFRESH)
+ KE(AC_BOOKMARKS)
- KE(BRIGHTNESSDOWN)
- KE(BRIGHTNESSUP)
- KE(DISPLAYSWITCH)
- KE(KBDILLUMTOGGLE)
- KE(KBDILLUMDOWN)
- KE(KBDILLUMUP)
- KE(EJECT)
- KE(SLEEP)
+ KE(BRIGHTNESSDOWN)
+ KE(BRIGHTNESSUP)
+ KE(DISPLAYSWITCH)
+ KE(KBDILLUMTOGGLE)
+ KE(KBDILLUMDOWN)
+ KE(KBDILLUMUP)
+ KE(EJECT)
+ KE(SLEEP)
- KE(APP1)
- KE(APP2)
+ KE(APP1)
+ KE(APP2)
};
static char const *lookup_key_name(int kc)