summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers
diff options
context:
space:
mode:
authorGravatarGravatar andreasnaive <andreasnaive@gmail.com>2019-03-25 22:44:58 +0100
committerGravatarGravatar andreasnaive <andreasnaive@gmail.com>2019-03-25 22:44:58 +0100
commitc24473ddff715ecec2e258a6eb38960cf8c8e98e (patch) (github)
tree8ea44b6396a6129913c0aac13859b5de9965e972 /src/mame/drivers
parent009cba4fb8102102168ef32870892438327f3705 (diff)
parent598cd5227223c3b04ca31f0dbc1981256d9ea3ff (diff)
downloadmame-c24473ddff715ecec2e258a6eb38960cf8c8e98e.tar.bz2
mame-c24473ddff715ecec2e258a6eb38960cf8c8e98e.zip
conflict resolution (nw)
Diffstat (limited to 'src/mame/drivers')
-rw-r--r--src/mame/drivers/1942.cpp37
-rw-r--r--src/mame/drivers/1943.cpp58
-rw-r--r--src/mame/drivers/20pacgal.cpp1
-rw-r--r--src/mame/drivers/24cdjuke.cpp13
-rw-r--r--src/mame/drivers/39in1.cpp5
-rw-r--r--src/mame/drivers/3do.cpp40
-rw-r--r--src/mame/drivers/3x3puzzl.cpp27
-rw-r--r--src/mame/drivers/4004clk.cpp16
-rw-r--r--src/mame/drivers/40love.cpp1
-rw-r--r--src/mame/drivers/4dpi.cpp20
-rw-r--r--src/mame/drivers/4enlinea.cpp30
-rw-r--r--src/mame/drivers/4enraya.cpp45
-rw-r--r--src/mame/drivers/4roses.cpp38
-rw-r--r--src/mame/drivers/5clown.cpp54
-rw-r--r--src/mame/drivers/8080bw.cpp69
-rw-r--r--src/mame/drivers/a1supply.cpp23
-rw-r--r--src/mame/drivers/a5105.cpp31
-rw-r--r--src/mame/drivers/a51xx.cpp40
-rw-r--r--src/mame/drivers/a7150.cpp3
-rw-r--r--src/mame/drivers/aa310.cpp1
-rw-r--r--src/mame/drivers/aaa.cpp262
-rw-r--r--src/mame/drivers/abc1600.cpp63
-rw-r--r--src/mame/drivers/abc80.cpp18
-rw-r--r--src/mame/drivers/abc80x.cpp89
-rw-r--r--src/mame/drivers/ac1.cpp45
-rw-r--r--src/mame/drivers/acd.cpp5
-rw-r--r--src/mame/drivers/ace.cpp28
-rw-r--r--src/mame/drivers/aceex.cpp9
-rw-r--r--src/mame/drivers/acefruit.cpp28
-rw-r--r--src/mame/drivers/acesp.cpp12
-rw-r--r--src/mame/drivers/aci_boris.cpp258
-rw-r--r--src/mame/drivers/aci_borisdpl.cpp236
-rw-r--r--src/mame/drivers/acommand.cpp38
-rw-r--r--src/mame/drivers/acrnsys.cpp12
-rw-r--r--src/mame/drivers/acrnsys1.cpp21
-rw-r--r--src/mame/drivers/actfancr.cpp9
-rw-r--r--src/mame/drivers/acvirus.cpp9
-rw-r--r--src/mame/drivers/adam.cpp28
-rw-r--r--src/mame/drivers/adm23.cpp86
-rw-r--r--src/mame/drivers/adm31.cpp513
-rw-r--r--src/mame/drivers/adm36.cpp202
-rw-r--r--src/mame/drivers/adp.cpp66
-rw-r--r--src/mame/drivers/advision.cpp3
-rw-r--r--src/mame/drivers/aeroboto.cpp32
-rw-r--r--src/mame/drivers/aerofgt.cpp2
-rw-r--r--src/mame/drivers/agat.cpp35
-rw-r--r--src/mame/drivers/age_candy.cpp22
-rw-r--r--src/mame/drivers/aim65.cpp44
-rw-r--r--src/mame/drivers/airbustr.cpp57
-rw-r--r--src/mame/drivers/airraid.cpp30
-rw-r--r--src/mame/drivers/albazc.cpp32
-rw-r--r--src/mame/drivers/albazg.cpp30
-rw-r--r--src/mame/drivers/aleck64.cpp75
-rw-r--r--src/mame/drivers/aleisttl.cpp23
-rw-r--r--src/mame/drivers/alesis.cpp46
-rw-r--r--src/mame/drivers/alesis_qs.cpp9
-rw-r--r--src/mame/drivers/alg.cpp84
-rw-r--r--src/mame/drivers/alien.cpp26
-rw-r--r--src/mame/drivers/alinvade.cpp27
-rw-r--r--src/mame/drivers/allied.cpp35
-rw-r--r--src/mame/drivers/alpha68k.cpp4
-rw-r--r--src/mame/drivers/alphasma.cpp35
-rw-r--r--src/mame/drivers/alphatpx.cpp73
-rw-r--r--src/mame/drivers/alphatro.cpp32
-rw-r--r--src/mame/drivers/altair.cpp2
-rw-r--r--src/mame/drivers/alto1.cpp5
-rw-r--r--src/mame/drivers/alto2.cpp19
-rw-r--r--src/mame/drivers/altos5.cpp10
-rw-r--r--src/mame/drivers/alvg.cpp9
-rw-r--r--src/mame/drivers/amaticmg.cpp54
-rw-r--r--src/mame/drivers/ambush.cpp46
-rw-r--r--src/mame/drivers/amerihok.cpp82
-rw-r--r--src/mame/drivers/amico2k.cpp9
-rw-r--r--src/mame/drivers/amiga.cpp612
-rw-r--r--src/mame/drivers/ampex.cpp4
-rw-r--r--src/mame/drivers/ampoker2.cpp35
-rw-r--r--src/mame/drivers/ampscarp.cpp9
-rw-r--r--src/mame/drivers/amspdwy.cpp36
-rw-r--r--src/mame/drivers/amstr_pc.cpp22
-rw-r--r--src/mame/drivers/amstrad.cpp163
-rw-r--r--src/mame/drivers/amusco.cpp68
-rw-r--r--src/mame/drivers/amust.cpp34
-rw-r--r--src/mame/drivers/anes.cpp32
-rw-r--r--src/mame/drivers/angelkds.cpp118
-rw-r--r--src/mame/drivers/anzterm.cpp33
-rw-r--r--src/mame/drivers/apc.cpp41
-rw-r--r--src/mame/drivers/apf.cpp60
-rw-r--r--src/mame/drivers/apollo.cpp96
-rw-r--r--src/mame/drivers/apple1.cpp21
-rw-r--r--src/mame/drivers/apple2.cpp90
-rw-r--r--src/mame/drivers/apple2e.cpp217
-rw-r--r--src/mame/drivers/apple2gs.cpp49
-rw-r--r--src/mame/drivers/apple3.cpp6
-rw-r--r--src/mame/drivers/applix.cpp60
-rw-r--r--src/mame/drivers/appoooh.cpp6
-rw-r--r--src/mame/drivers/apricot.cpp12
-rw-r--r--src/mame/drivers/apricotf.cpp45
-rw-r--r--src/mame/drivers/apricotp.cpp59
-rw-r--r--src/mame/drivers/aquarium.cpp50
-rw-r--r--src/mame/drivers/aquarius.cpp39
-rw-r--r--src/mame/drivers/arachnid.cpp18
-rw-r--r--src/mame/drivers/arcadecl.cpp27
-rw-r--r--src/mame/drivers/argo.cpp23
-rw-r--r--src/mame/drivers/argox.cpp11
-rw-r--r--src/mame/drivers/argus.cpp4
-rw-r--r--src/mame/drivers/aristmk4.cpp32
-rw-r--r--src/mame/drivers/aristmk5.cpp1334
-rw-r--r--src/mame/drivers/aristmk6.cpp319
-rw-r--r--src/mame/drivers/arkanoid.cpp124
-rw-r--r--src/mame/drivers/armedf.cpp348
-rw-r--r--src/mame/drivers/arsystems.cpp49
-rw-r--r--src/mame/drivers/artmagic.cpp67
-rw-r--r--src/mame/drivers/ashnojoe.cpp8
-rw-r--r--src/mame/drivers/asst128.cpp32
-rw-r--r--src/mame/drivers/asteroid.cpp38
-rw-r--r--src/mame/drivers/astrafr.cpp50
-rw-r--r--src/mame/drivers/astrcorp.cpp319
-rw-r--r--src/mame/drivers/astrocde.cpp8
-rw-r--r--src/mame/drivers/astrof.cpp52
-rw-r--r--src/mame/drivers/astrohome.cpp79
-rw-r--r--src/mame/drivers/astropc.cpp11
-rw-r--r--src/mame/drivers/asuka.cpp2
-rw-r--r--src/mame/drivers/at.cpp3
-rw-r--r--src/mame/drivers/atari400.cpp4
-rw-r--r--src/mame/drivers/atari_s1.cpp36
-rw-r--r--src/mame/drivers/atari_s2.cpp31
-rw-r--r--src/mame/drivers/atarifb.cpp70
-rw-r--r--src/mame/drivers/atarig1.cpp32
-rw-r--r--src/mame/drivers/atarig42.cpp27
-rw-r--r--src/mame/drivers/atarigt.cpp26
-rw-r--r--src/mame/drivers/atarigx2.cpp24
-rw-r--r--src/mame/drivers/atarist.cpp24
-rw-r--r--src/mame/drivers/atarisy1.cpp54
-rw-r--r--src/mame/drivers/atarittl.cpp77
-rw-r--r--src/mame/drivers/atetris.cpp6
-rw-r--r--src/mame/drivers/atlantis.cpp6
-rw-r--r--src/mame/drivers/atm.cpp25
-rw-r--r--src/mame/drivers/atom.cpp141
-rw-r--r--src/mame/drivers/atronic.cpp34
-rw-r--r--src/mame/drivers/att4425.cpp29
-rw-r--r--src/mame/drivers/att630.cpp20
-rw-r--r--src/mame/drivers/attache.cpp48
-rw-r--r--src/mame/drivers/attckufo.cpp33
-rw-r--r--src/mame/drivers/aussiebyte.cpp11
-rw-r--r--src/mame/drivers/avalnche.cpp31
-rw-r--r--src/mame/drivers/ave_arb.cpp255
-rw-r--r--src/mame/drivers/avigo.cpp28
-rw-r--r--src/mame/drivers/avt.cpp37
-rw-r--r--src/mame/drivers/ax20.cpp30
-rw-r--r--src/mame/drivers/aztarac.cpp32
-rw-r--r--src/mame/drivers/b16.cpp34
-rw-r--r--src/mame/drivers/b2m.cpp48
-rw-r--r--src/mame/drivers/backfire.cpp52
-rw-r--r--src/mame/drivers/badlands.cpp32
-rw-r--r--src/mame/drivers/badlandsbl.cpp34
-rw-r--r--src/mame/drivers/bailey.cpp23
-rw-r--r--src/mame/drivers/banctec.cpp25
-rw-r--r--src/mame/drivers/bankp.cpp37
-rw-r--r--src/mame/drivers/barata.cpp5
-rw-r--r--src/mame/drivers/barni.cpp53
-rw-r--r--src/mame/drivers/bartop52.cpp2
-rw-r--r--src/mame/drivers/batman.cpp22
-rw-r--r--src/mame/drivers/battlane.cpp4
-rw-r--r--src/mame/drivers/battlera.cpp6
-rw-r--r--src/mame/drivers/battlex.cpp40
-rw-r--r--src/mame/drivers/battlnts.cpp36
-rw-r--r--src/mame/drivers/bbc.cpp53
-rw-r--r--src/mame/drivers/bbcbc.cpp12
-rw-r--r--src/mame/drivers/bcs3.cpp58
-rw-r--r--src/mame/drivers/beaminv.cpp23
-rw-r--r--src/mame/drivers/beathead.cpp26
-rw-r--r--src/mame/drivers/bebox.cpp11
-rw-r--r--src/mame/drivers/beehive.cpp25
-rw-r--r--src/mame/drivers/beezer.cpp6
-rw-r--r--src/mame/drivers/belatra.cpp9
-rw-r--r--src/mame/drivers/bert.cpp121
-rw-r--r--src/mame/drivers/berzerk.cpp97
-rw-r--r--src/mame/drivers/besta.cpp21
-rw-r--r--src/mame/drivers/bestleag.cpp41
-rw-r--r--src/mame/drivers/beta.cpp19
-rw-r--r--src/mame/drivers/bfcobra.cpp43
-rw-r--r--src/mame/drivers/bfm_ad5.cpp13
-rw-r--r--src/mame/drivers/bfm_sc1.cpp35
-rw-r--r--src/mame/drivers/bfm_sc2.cpp116
-rw-r--r--src/mame/drivers/bfm_sc4.cpp29
-rw-r--r--src/mame/drivers/bfm_sc5.cpp27
-rw-r--r--src/mame/drivers/bfm_swp.cpp21
-rw-r--r--src/mame/drivers/bfmsys85.cpp19
-rw-r--r--src/mame/drivers/bgt.cpp11
-rw-r--r--src/mame/drivers/bigbord2.cpp24
-rw-r--r--src/mame/drivers/bigevglf.cpp3
-rw-r--r--src/mame/drivers/bigstrkb.cpp38
-rw-r--r--src/mame/drivers/binbug.cpp6
-rw-r--r--src/mame/drivers/bingo.cpp27
-rw-r--r--src/mame/drivers/bingoc.cpp60
-rw-r--r--src/mame/drivers/bingoman.cpp26
-rw-r--r--src/mame/drivers/bingowav.cpp6
-rw-r--r--src/mame/drivers/bionicc.cpp81
-rw-r--r--src/mame/drivers/bitgraph.cpp116
-rw-r--r--src/mame/drivers/bk.cpp8
-rw-r--r--src/mame/drivers/bking.cpp55
-rw-r--r--src/mame/drivers/blackt96.cpp51
-rw-r--r--src/mame/drivers/bladestl.cpp41
-rw-r--r--src/mame/drivers/blitz68k.cpp198
-rw-r--r--src/mame/drivers/blktiger.cpp4
-rw-r--r--src/mame/drivers/blmbycar.cpp48
-rw-r--r--src/mame/drivers/blockout.cpp40
-rw-r--r--src/mame/drivers/blocktax.cpp24
-rw-r--r--src/mame/drivers/bloodbro.cpp2
-rw-r--r--src/mame/drivers/blstroid.cpp24
-rw-r--r--src/mame/drivers/blueprnt.cpp49
-rw-r--r--src/mame/drivers/blw700i.cpp27
-rw-r--r--src/mame/drivers/bmjr.cpp29
-rw-r--r--src/mame/drivers/bml3.cpp108
-rw-r--r--src/mame/drivers/bnstars.cpp73
-rw-r--r--src/mame/drivers/bntyhunt.cpp27
-rw-r--r--src/mame/drivers/bogeyman.cpp34
-rw-r--r--src/mame/drivers/bombjack.cpp16
-rw-r--r--src/mame/drivers/boogwing.cpp38
-rw-r--r--src/mame/drivers/bowltry.cpp28
-rw-r--r--src/mame/drivers/boxer.cpp26
-rw-r--r--src/mame/drivers/br8641.cpp8
-rw-r--r--src/mame/drivers/brkthru.cpp14
-rw-r--r--src/mame/drivers/bsktball.cpp30
-rw-r--r--src/mame/drivers/btime.cpp153
-rw-r--r--src/mame/drivers/btoads.cpp29
-rw-r--r--src/mame/drivers/buggychl.cpp2
-rw-r--r--src/mame/drivers/bullet.cpp110
-rw-r--r--src/mame/drivers/busicom.cpp21
-rw-r--r--src/mame/drivers/buster.cpp27
-rw-r--r--src/mame/drivers/bw12.cpp73
-rw-r--r--src/mame/drivers/bw2.cpp51
-rw-r--r--src/mame/drivers/bwidow.cpp64
-rw-r--r--src/mame/drivers/bwing.cpp51
-rw-r--r--src/mame/drivers/by17.cpp19
-rw-r--r--src/mame/drivers/by35.cpp46
-rw-r--r--src/mame/drivers/by6803.cpp12
-rw-r--r--src/mame/drivers/by68701.cpp9
-rw-r--r--src/mame/drivers/byvid.cpp62
-rw-r--r--src/mame/drivers/c10.cpp27
-rw-r--r--src/mame/drivers/c128.cpp88
-rw-r--r--src/mame/drivers/c2color.cpp127
-rw-r--r--src/mame/drivers/c64.cpp58
-rw-r--r--src/mame/drivers/c64dtv.cpp15
-rw-r--r--src/mame/drivers/c65.cpp68
-rw-r--r--src/mame/drivers/c80.cpp11
-rw-r--r--src/mame/drivers/c900.cpp35
-rw-r--r--src/mame/drivers/cabaret.cpp34
-rw-r--r--src/mame/drivers/calchase.cpp36
-rw-r--r--src/mame/drivers/calcune.cpp82
-rw-r--r--src/mame/drivers/calomega.cpp69
-rw-r--r--src/mame/drivers/calorie.cpp36
-rw-r--r--src/mame/drivers/camplynx.cpp53
-rw-r--r--src/mame/drivers/candela.cpp45
-rw-r--r--src/mame/drivers/canon_s80.cpp9
-rw-r--r--src/mame/drivers/canyon.cpp28
-rw-r--r--src/mame/drivers/capbowl.cpp56
-rw-r--r--src/mame/drivers/capcom.cpp9
-rw-r--r--src/mame/drivers/caprcyc.cpp10
-rw-r--r--src/mame/drivers/cardinal.cpp66
-rw-r--r--src/mame/drivers/cardline.cpp29
-rw-r--r--src/mame/drivers/carjmbre.cpp32
-rw-r--r--src/mame/drivers/carpolo.cpp22
-rw-r--r--src/mame/drivers/carrera.cpp25
-rw-r--r--src/mame/drivers/casloopy.cpp33
-rw-r--r--src/mame/drivers/castle.cpp24
-rw-r--r--src/mame/drivers/caswin.cpp29
-rw-r--r--src/mame/drivers/cat.cpp42
-rw-r--r--src/mame/drivers/cavepc.cpp29
-rw-r--r--src/mame/drivers/cball.cpp24
-rw-r--r--src/mame/drivers/cbasebal.cpp40
-rw-r--r--src/mame/drivers/cbm2.cpp130
-rw-r--r--src/mame/drivers/cbuster.cpp37
-rw-r--r--src/mame/drivers/cc40.cpp32
-rw-r--r--src/mame/drivers/cchance.cpp28
-rw-r--r--src/mame/drivers/cchasm.cpp32
-rw-r--r--src/mame/drivers/cclimber.cpp99
-rw-r--r--src/mame/drivers/ccs2810.cpp25
-rw-r--r--src/mame/drivers/cd2650.cpp4
-rw-r--r--src/mame/drivers/cdc721.cpp31
-rw-r--r--src/mame/drivers/cdi.cpp224
-rw-r--r--src/mame/drivers/cedar_magnet.cpp122
-rw-r--r--src/mame/drivers/centiped.cpp10
-rw-r--r--src/mame/drivers/cesclass.cpp29
-rw-r--r--src/mame/drivers/cgc7900.cpp18
-rw-r--r--src/mame/drivers/cgenie.cpp39
-rw-r--r--src/mame/drivers/chaknpop.cpp30
-rw-r--r--src/mame/drivers/champbas.cpp230
-rw-r--r--src/mame/drivers/champbwl.cpp67
-rw-r--r--src/mame/drivers/chanbara.cpp28
-rw-r--r--src/mame/drivers/chance32.cpp33
-rw-r--r--src/mame/drivers/channelf.cpp132
-rw-r--r--src/mame/drivers/chaos.cpp17
-rw-r--r--src/mame/drivers/cheekyms.cpp28
-rw-r--r--src/mame/drivers/chessmst.cpp121
-rw-r--r--src/mame/drivers/chesstrv.cpp376
-rw-r--r--src/mame/drivers/chexx.cpp4
-rw-r--r--src/mame/drivers/chicago.cpp23
-rw-r--r--src/mame/drivers/chihiro.cpp184
-rw-r--r--src/mame/drivers/chinagat.cpp18
-rw-r--r--src/mame/drivers/chsuper.cpp39
-rw-r--r--src/mame/drivers/cidelsa.cpp6
-rw-r--r--src/mame/drivers/circusc.cpp46
-rw-r--r--src/mame/drivers/cischeat.cpp250
-rw-r--r--src/mame/drivers/citycon.cpp28
-rw-r--r--src/mame/drivers/cking_master.cpp239
-rw-r--r--src/mame/drivers/ckz80.cpp473
-rw-r--r--src/mame/drivers/clayshoo.cpp26
-rw-r--r--src/mame/drivers/clcd.cpp24
-rw-r--r--src/mame/drivers/clickstart.cpp441
-rw-r--r--src/mame/drivers/cliffhgr.cpp74
-rw-r--r--src/mame/drivers/clowndwn.cpp20
-rw-r--r--src/mame/drivers/clpoker.cpp33
-rw-r--r--src/mame/drivers/clshroad.cpp72
-rw-r--r--src/mame/drivers/cm1800.cpp7
-rw-r--r--src/mame/drivers/cmi.cpp108
-rw-r--r--src/mame/drivers/cmmb.cpp26
-rw-r--r--src/mame/drivers/cms.cpp2
-rw-r--r--src/mame/drivers/cninja.cpp215
-rw-r--r--src/mame/drivers/cntsteer.cpp71
-rw-r--r--src/mame/drivers/cobra.cpp24
-rw-r--r--src/mame/drivers/coco12.cpp123
-rw-r--r--src/mame/drivers/coco3.cpp75
-rw-r--r--src/mame/drivers/cocoloco.cpp12
-rw-r--r--src/mame/drivers/coinmstr.cpp71
-rw-r--r--src/mame/drivers/coinmvga.cpp46
-rw-r--r--src/mame/drivers/coleco.cpp7
-rw-r--r--src/mame/drivers/comebaby.cpp29
-rw-r--r--src/mame/drivers/commando.cpp20
-rw-r--r--src/mame/drivers/compc.cpp40
-rw-r--r--src/mame/drivers/compgolf.cpp28
-rw-r--r--src/mame/drivers/compis.cpp44
-rw-r--r--src/mame/drivers/compucolor.cpp21
-rw-r--r--src/mame/drivers/comquest.cpp31
-rw-r--r--src/mame/drivers/comx35.cpp14
-rw-r--r--src/mame/drivers/concept.cpp29
-rw-r--r--src/mame/drivers/contra.cpp32
-rw-r--r--src/mame/drivers/controlid.cpp19
-rw-r--r--src/mame/drivers/coolpool.cpp49
-rw-r--r--src/mame/drivers/coolridr.cpp58
-rw-r--r--src/mame/drivers/cop01.cpp79
-rw-r--r--src/mame/drivers/copsnrob.cpp12
-rw-r--r--src/mame/drivers/corona.cpp171
-rw-r--r--src/mame/drivers/cortex.cpp44
-rw-r--r--src/mame/drivers/cosmic.cpp22
-rw-r--r--src/mame/drivers/cosmicos.cpp15
-rw-r--r--src/mame/drivers/cp1.cpp30
-rw-r--r--src/mame/drivers/cps1.cpp212
-rw-r--r--src/mame/drivers/cps2.cpp67
-rw-r--r--src/mame/drivers/cps3.cpp211
-rw-r--r--src/mame/drivers/craft.cpp1
-rw-r--r--src/mame/drivers/crbaloon.cpp31
-rw-r--r--src/mame/drivers/cromptons.cpp150
-rw-r--r--src/mame/drivers/crospang.cpp114
-rw-r--r--src/mame/drivers/crvision.cpp20
-rw-r--r--src/mame/drivers/csplayh5.cpp16
-rw-r--r--src/mame/drivers/cswat.cpp33
-rw-r--r--src/mame/drivers/ct486.cpp53
-rw-r--r--src/mame/drivers/cubeqst.cpp1
-rw-r--r--src/mame/drivers/cubo.cpp41
-rw-r--r--src/mame/drivers/cultures.cpp34
-rw-r--r--src/mame/drivers/cupidon.cpp21
-rw-r--r--src/mame/drivers/cvicny.cpp9
-rw-r--r--src/mame/drivers/cvs.cpp1
-rw-r--r--src/mame/drivers/cxg_ch2001.cpp193
-rw-r--r--src/mame/drivers/cxgz80.cpp437
-rw-r--r--src/mame/drivers/cxhumax.cpp33
-rw-r--r--src/mame/drivers/cyberbal.cpp35
-rw-r--r--src/mame/drivers/cybertnk.cpp61
-rw-r--r--src/mame/drivers/cybiko.cpp8
-rw-r--r--src/mame/drivers/cybstorm.cpp23
-rw-r--r--src/mame/drivers/cyclemb.cpp53
-rw-r--r--src/mame/drivers/cz101.cpp25
-rw-r--r--src/mame/drivers/d6800.cpp64
-rw-r--r--src/mame/drivers/d6809.cpp18
-rw-r--r--src/mame/drivers/d9final.cpp39
-rw-r--r--src/mame/drivers/dacholer.cpp8
-rw-r--r--src/mame/drivers/dai.cpp43
-rw-r--r--src/mame/drivers/dai3wksi.cpp6
-rw-r--r--src/mame/drivers/dambustr.cpp23
-rw-r--r--src/mame/drivers/darkmist.cpp29
-rw-r--r--src/mame/drivers/darkseal.cpp41
-rw-r--r--src/mame/drivers/daruma.cpp16
-rw-r--r--src/mame/drivers/dassault.cpp52
-rw-r--r--src/mame/drivers/datum.cpp11
-rw-r--r--src/mame/drivers/dblcrown.cpp30
-rw-r--r--src/mame/drivers/dblewing.cpp44
-rw-r--r--src/mame/drivers/dbox.cpp12
-rw-r--r--src/mame/drivers/dbz.cpp38
-rw-r--r--src/mame/drivers/dccons.cpp60
-rw-r--r--src/mame/drivers/dcheese.cpp65
-rw-r--r--src/mame/drivers/dday.cpp24
-rw-r--r--src/mame/drivers/ddayjlc.cpp36
-rw-r--r--src/mame/drivers/ddealer.cpp33
-rw-r--r--src/mame/drivers/ddenlovr.cpp227
-rw-r--r--src/mame/drivers/ddragon.cpp29
-rw-r--r--src/mame/drivers/ddragon3.cpp108
-rw-r--r--src/mame/drivers/ddribble.cpp59
-rw-r--r--src/mame/drivers/de_3.cpp15
-rw-r--r--src/mame/drivers/dec0.cpp224
-rw-r--r--src/mame/drivers/deco156.cpp70
-rw-r--r--src/mame/drivers/deco32.cpp2
-rw-r--r--src/mame/drivers/deco_ld.cpp30
-rw-r--r--src/mame/drivers/deco_mlc.cpp99
-rw-r--r--src/mame/drivers/decocass.cpp183
-rw-r--r--src/mame/drivers/decstation.cpp186
-rw-r--r--src/mame/drivers/dectalk.cpp33
-rw-r--r--src/mame/drivers/decwritr.cpp38
-rw-r--r--src/mame/drivers/deniam.cpp6
-rw-r--r--src/mame/drivers/deshoros.cpp26
-rw-r--r--src/mame/drivers/destroyr.cpp28
-rw-r--r--src/mame/drivers/dfruit.cpp34
-rw-r--r--src/mame/drivers/dgn_beta.cpp47
-rw-r--r--src/mame/drivers/dgpix.cpp25
-rw-r--r--src/mame/drivers/diablo1300.cpp11
-rw-r--r--src/mame/drivers/didact.cpp449
-rw-r--r--src/mame/drivers/dietgo.cpp33
-rw-r--r--src/mame/drivers/digel804.cpp44
-rw-r--r--src/mame/drivers/digijet.cpp9
-rw-r--r--src/mame/drivers/dim68k.cpp32
-rw-r--r--src/mame/drivers/discoboy.cpp53
-rw-r--r--src/mame/drivers/divebomb.cpp59
-rw-r--r--src/mame/drivers/diverboy.cpp35
-rw-r--r--src/mame/drivers/djboy.cpp159
-rw-r--r--src/mame/drivers/djmain.cpp58
-rw-r--r--src/mame/drivers/dkmb.cpp24
-rw-r--r--src/mame/drivers/dkong.cpp84
-rw-r--r--src/mame/drivers/dlair.cpp34
-rw-r--r--src/mame/drivers/dlair2.cpp30
-rw-r--r--src/mame/drivers/dm7000.cpp2
-rw-r--r--src/mame/drivers/dmax8000.cpp20
-rw-r--r--src/mame/drivers/dmndrby.cpp39
-rw-r--r--src/mame/drivers/dms5000.cpp27
-rw-r--r--src/mame/drivers/dmv.cpp185
-rw-r--r--src/mame/drivers/docastle.cpp72
-rw-r--r--src/mame/drivers/dogfgt.cpp36
-rw-r--r--src/mame/drivers/dominob.cpp28
-rw-r--r--src/mame/drivers/dooyong.cpp321
-rw-r--r--src/mame/drivers/dorachan.cpp24
-rw-r--r--src/mame/drivers/dotrikun.cpp29
-rw-r--r--src/mame/drivers/dps1.cpp25
-rw-r--r--src/mame/drivers/dragon.cpp141
-rw-r--r--src/mame/drivers/dragrace.cpp36
-rw-r--r--src/mame/drivers/dreambal.cpp32
-rw-r--r--src/mame/drivers/dreamwld.cpp58
-rw-r--r--src/mame/drivers/drgnmst.cpp54
-rw-r--r--src/mame/drivers/dribling.cpp30
-rw-r--r--src/mame/drivers/drmicro.cpp56
-rw-r--r--src/mame/drivers/drtomy.cpp29
-rw-r--r--src/mame/drivers/drw80pkr.cpp27
-rw-r--r--src/mame/drivers/dual68.cpp25
-rw-r--r--src/mame/drivers/duet16.cpp73
-rw-r--r--src/mame/drivers/dunhuang.cpp35
-rw-r--r--src/mame/drivers/dvk_kcgd.cpp24
-rw-r--r--src/mame/drivers/dvk_ksm.cpp60
-rw-r--r--src/mame/drivers/dynadice.cpp40
-rw-r--r--src/mame/drivers/dynax.cpp235
-rw-r--r--src/mame/drivers/e100.cpp35
-rw-r--r--src/mame/drivers/eacc.cpp13
-rw-r--r--src/mame/drivers/ec184x.cpp126
-rw-r--r--src/mame/drivers/ec65.cpp52
-rw-r--r--src/mame/drivers/ecoinf1.cpp11
-rw-r--r--src/mame/drivers/ecoinf2.cpp2
-rw-r--r--src/mame/drivers/ecoinf3.cpp2
-rw-r--r--src/mame/drivers/efdt.cpp33
-rw-r--r--src/mame/drivers/egghunt.cpp37
-rw-r--r--src/mame/drivers/einstein.cpp44
-rw-r--r--src/mame/drivers/electra.cpp23
-rw-r--r--src/mame/drivers/electron.cpp25
-rw-r--r--src/mame/drivers/elekscmp.cpp9
-rw-r--r--src/mame/drivers/elektronmono.cpp9
-rw-r--r--src/mame/drivers/elf.cpp33
-rw-r--r--src/mame/drivers/elwro800.cpp53
-rw-r--r--src/mame/drivers/embargo.cpp25
-rw-r--r--src/mame/drivers/emma2.cpp15
-rw-r--r--src/mame/drivers/enigma2.cpp46
-rw-r--r--src/mame/drivers/eolith.cpp4
-rw-r--r--src/mame/drivers/eolith16.cpp31
-rw-r--r--src/mame/drivers/ep64.cpp10
-rw-r--r--src/mame/drivers/epos.cpp52
-rw-r--r--src/mame/drivers/eprom.cpp104
-rw-r--r--src/mame/drivers/equites.cpp1
-rw-r--r--src/mame/drivers/ertictac.cpp1
-rw-r--r--src/mame/drivers/esd16.cpp371
-rw-r--r--src/mame/drivers/esh.cpp24
-rw-r--r--src/mame/drivers/espial.cpp45
-rw-r--r--src/mame/drivers/esq5505.cpp13
-rw-r--r--src/mame/drivers/esqasr.cpp17
-rw-r--r--src/mame/drivers/esqkt.cpp10
-rw-r--r--src/mame/drivers/esripsys.cpp1
-rw-r--r--src/mame/drivers/et3400.cpp15
-rw-r--r--src/mame/drivers/eti660.cpp10
-rw-r--r--src/mame/drivers/ettrivia.cpp51
-rw-r--r--src/mame/drivers/eurocom2.cpp71
-rw-r--r--src/mame/drivers/europc.cpp99
-rw-r--r--src/mame/drivers/evmbug.cpp25
-rw-r--r--src/mame/drivers/excali64.cpp48
-rw-r--r--src/mame/drivers/exedexes.cpp48
-rw-r--r--src/mame/drivers/exelv.cpp2
-rw-r--r--src/mame/drivers/exerion.cpp22
-rw-r--r--src/mame/drivers/exidy.cpp104
-rw-r--r--src/mame/drivers/exidy440.cpp23
-rw-r--r--src/mame/drivers/exidyttl.cpp46
-rw-r--r--src/mame/drivers/expro02.cpp143
-rw-r--r--src/mame/drivers/exterm.cpp33
-rw-r--r--src/mame/drivers/extrema.cpp11
-rw-r--r--src/mame/drivers/exzisus.cpp48
-rw-r--r--src/mame/drivers/ez2d.cpp22
-rw-r--r--src/mame/drivers/f-32.cpp68
-rw-r--r--src/mame/drivers/fantland.cpp83
-rw-r--r--src/mame/drivers/fanucs15.cpp27
-rw-r--r--src/mame/drivers/fanucspmg.cpp3
-rw-r--r--src/mame/drivers/fastfred.cpp87
-rw-r--r--src/mame/drivers/fb01.cpp42
-rw-r--r--src/mame/drivers/fc100.cpp55
-rw-r--r--src/mame/drivers/fccpu20.cpp75
-rw-r--r--src/mame/drivers/fccpu30.cpp77
-rw-r--r--src/mame/drivers/fcombat.cpp22
-rw-r--r--src/mame/drivers/fcrash.cpp643
-rw-r--r--src/mame/drivers/feversoc.cpp31
-rw-r--r--src/mame/drivers/fgoal.cpp22
-rw-r--r--src/mame/drivers/fidel6502.cpp2902
-rw-r--r--src/mame/drivers/fidel68k.cpp818
-rw-r--r--src/mame/drivers/fidel_as12.cpp192
-rw-r--r--src/mame/drivers/fidel_card.cpp675
-rw-r--r--src/mame/drivers/fidel_cc1.cpp221
-rw-r--r--src/mame/drivers/fidel_cc10.cpp321
-rw-r--r--src/mame/drivers/fidel_cc7.cpp245
-rw-r--r--src/mame/drivers/fidel_chesster.cpp227
-rw-r--r--src/mame/drivers/fidel_csc.cpp712
-rw-r--r--src/mame/drivers/fidel_dames.cpp180
-rw-r--r--src/mame/drivers/fidel_desdis.cpp358
-rw-r--r--src/mame/drivers/fidel_eag68k.cpp737
-rw-r--r--src/mame/drivers/fidel_elite.cpp647
-rw-r--r--src/mame/drivers/fidel_excel.cpp523
-rw-r--r--src/mame/drivers/fidel_phantom.cpp143
-rw-r--r--src/mame/drivers/fidel_sc12.cpp244
-rw-r--r--src/mame/drivers/fidel_sc6.cpp (renamed from src/mame/drivers/fidelmcs48.cpp)149
-rw-r--r--src/mame/drivers/fidel_sc8.cpp157
-rw-r--r--src/mame/drivers/fidel_sc9.cpp295
-rw-r--r--src/mame/drivers/fidel_vcc.cpp386
-rw-r--r--src/mame/drivers/fidel_vsc.cpp430
-rw-r--r--src/mame/drivers/fidelz80.cpp2045
-rw-r--r--src/mame/drivers/finalizr.cpp70
-rw-r--r--src/mame/drivers/fireball.cpp11
-rw-r--r--src/mame/drivers/firebeat.cpp4
-rw-r--r--src/mame/drivers/firefox.cpp68
-rw-r--r--src/mame/drivers/firetrap.cpp105
-rw-r--r--src/mame/drivers/firetrk.cpp60
-rw-r--r--src/mame/drivers/fitfight.cpp44
-rw-r--r--src/mame/drivers/fk1.cpp31
-rw-r--r--src/mame/drivers/flipjack.cpp6
-rw-r--r--src/mame/drivers/flower.cpp38
-rw-r--r--src/mame/drivers/flstory.cpp1
-rw-r--r--src/mame/drivers/flyball.cpp28
-rw-r--r--src/mame/drivers/fm7.cpp288
-rw-r--r--src/mame/drivers/fontwriter.cpp60
-rw-r--r--src/mame/drivers/foodf.cpp2
-rw-r--r--src/mame/drivers/force68k.cpp76
-rw-r--r--src/mame/drivers/forte2.cpp3
-rw-r--r--src/mame/drivers/fortecar.cpp31
-rw-r--r--src/mame/drivers/fp1100.cpp43
-rw-r--r--src/mame/drivers/fp6000.cpp34
-rw-r--r--src/mame/drivers/freekick.cpp323
-rw-r--r--src/mame/drivers/freeway.cpp191
-rw-r--r--src/mame/drivers/fresh.cpp29
-rw-r--r--src/mame/drivers/fromance.cpp130
-rw-r--r--src/mame/drivers/fruitpc.cpp22
-rw-r--r--src/mame/drivers/fs3216.cpp357
-rw-r--r--src/mame/drivers/fungames.cpp23
-rw-r--r--src/mame/drivers/funkball.cpp32
-rw-r--r--src/mame/drivers/funkybee.cpp28
-rw-r--r--src/mame/drivers/funkyjet.cpp34
-rw-r--r--src/mame/drivers/funtech.cpp34
-rw-r--r--src/mame/drivers/funworld.cpp164
-rw-r--r--src/mame/drivers/funybubl.cpp40
-rw-r--r--src/mame/drivers/fuukifg2.cpp4
-rw-r--r--src/mame/drivers/g627.cpp14
-rw-r--r--src/mame/drivers/gaelco.cpp138
-rw-r--r--src/mame/drivers/gaelco2.cpp384
-rw-r--r--src/mame/drivers/gaelcopc.cpp27
-rw-r--r--src/mame/drivers/gaiden.cpp2
-rw-r--r--src/mame/drivers/gal3.cpp69
-rw-r--r--src/mame/drivers/galaga.cpp8
-rw-r--r--src/mame/drivers/galastrm.cpp40
-rw-r--r--src/mame/drivers/galaxi.cpp47
-rw-r--r--src/mame/drivers/galaxian.cpp835
-rw-r--r--src/mame/drivers/galaxold.cpp316
-rw-r--r--src/mame/drivers/galaxy.cpp74
-rw-r--r--src/mame/drivers/galeb.cpp32
-rw-r--r--src/mame/drivers/galgames.cpp155
-rw-r--r--src/mame/drivers/galivan.cpp123
-rw-r--r--src/mame/drivers/galpani2.cpp38
-rw-r--r--src/mame/drivers/galpani3.cpp46
-rw-r--r--src/mame/drivers/galpanic.cpp42
-rw-r--r--src/mame/drivers/galspnbl.cpp6
-rw-r--r--src/mame/drivers/gamate.cpp21
-rw-r--r--src/mame/drivers/gambl186.cpp25
-rw-r--r--src/mame/drivers/gamecom.cpp34
-rw-r--r--src/mame/drivers/gamecstl.cpp30
-rw-r--r--src/mame/drivers/gamecube.cpp9
-rw-r--r--src/mame/drivers/gameking.cpp34
-rw-r--r--src/mame/drivers/gamemachine.cpp419
-rw-r--r--src/mame/drivers/gamepock.cpp9
-rw-r--r--src/mame/drivers/gammagic.cpp13
-rw-r--r--src/mame/drivers/gamtor.cpp22
-rw-r--r--src/mame/drivers/gatron.cpp39
-rw-r--r--src/mame/drivers/gauntlet.cpp94
-rw-r--r--src/mame/drivers/gb.cpp20
-rw-r--r--src/mame/drivers/gba.cpp54
-rw-r--r--src/mame/drivers/gberet.cpp70
-rw-r--r--src/mame/drivers/gcpinbal.cpp31
-rw-r--r--src/mame/drivers/gei.cpp109
-rw-r--r--src/mame/drivers/geneve.cpp51
-rw-r--r--src/mame/drivers/geniusiq.cpp22
-rw-r--r--src/mame/drivers/genpc.cpp69
-rw-r--r--src/mame/drivers/ggconnie.cpp104
-rw-r--r--src/mame/drivers/ghosteo.cpp22
-rw-r--r--src/mame/drivers/giclassic.cpp51
-rw-r--r--src/mame/drivers/gimix.cpp21
-rw-r--r--src/mame/drivers/ginganin.cpp37
-rw-r--r--src/mame/drivers/gizmondo.cpp23
-rw-r--r--src/mame/drivers/gkigt.cpp51
-rw-r--r--src/mame/drivers/gladiatr.cpp112
-rw-r--r--src/mame/drivers/glasgow.cpp35
-rw-r--r--src/mame/drivers/glass.cpp45
-rw-r--r--src/mame/drivers/globalvr.cpp9
-rw-r--r--src/mame/drivers/gluck2.cpp30
-rw-r--r--src/mame/drivers/gmaster.cpp13
-rw-r--r--src/mame/drivers/gng.cpp70
-rw-r--r--src/mame/drivers/go2000.cpp39
-rw-r--r--src/mame/drivers/goal92.cpp2
-rw-r--r--src/mame/drivers/goindol.cpp44
-rw-r--r--src/mame/drivers/gokidetor.cpp16
-rw-r--r--src/mame/drivers/goldnpkr.cpp39
-rw-r--r--src/mame/drivers/goldstar.cpp882
-rw-r--r--src/mame/drivers/gomoku.cpp28
-rw-r--r--src/mame/drivers/good.cpp32
-rw-r--r--src/mame/drivers/gotcha.cpp60
-rw-r--r--src/mame/drivers/gottlieb.cpp24
-rw-r--r--src/mame/drivers/gp2x.cpp23
-rw-r--r--src/mame/drivers/gp32.cpp42
-rw-r--r--src/mame/drivers/gp_2.cpp7
-rw-r--r--src/mame/drivers/gpworld.cpp24
-rw-r--r--src/mame/drivers/grchamp.cpp41
-rw-r--r--src/mame/drivers/grfd2301.cpp25
-rw-r--r--src/mame/drivers/gridcomp.cpp108
-rw-r--r--src/mame/drivers/groundfx.cpp26
-rw-r--r--src/mame/drivers/gstream.cpp61
-rw-r--r--src/mame/drivers/gsword.cpp95
-rw-r--r--src/mame/drivers/gts80a.cpp28
-rw-r--r--src/mame/drivers/guab.cpp8
-rw-r--r--src/mame/drivers/gumbo.cpp48
-rw-r--r--src/mame/drivers/gunbustr.cpp26
-rw-r--r--src/mame/drivers/gundealr.cpp52
-rw-r--r--src/mame/drivers/gunpey.cpp34
-rw-r--r--src/mame/drivers/gunsmoke.cpp56
-rw-r--r--src/mame/drivers/gyruss.cpp38
-rw-r--r--src/mame/drivers/h19.cpp56
-rw-r--r--src/mame/drivers/halleys.cpp51
-rw-r--r--src/mame/drivers/hanaawas.cpp28
-rw-r--r--src/mame/drivers/hankin.cpp24
-rw-r--r--src/mame/drivers/hapyfish.cpp34
-rw-r--r--src/mame/drivers/harddriv.cpp10
-rw-r--r--src/mame/drivers/hazeltin.cpp21
-rw-r--r--src/mame/drivers/headonb.cpp32
-rw-r--r--src/mame/drivers/hec2hrp.cpp277
-rw-r--r--src/mame/drivers/hh_amis2k.cpp478
-rw-r--r--src/mame/drivers/hh_cop400.cpp325
-rw-r--r--src/mame/drivers/hh_hmcs40.cpp1382
-rw-r--r--src/mame/drivers/hh_melps4.cpp95
-rw-r--r--src/mame/drivers/hh_pic16.cpp295
-rw-r--r--src/mame/drivers/hh_sm510.cpp3542
-rw-r--r--src/mame/drivers/hh_tms1k.cpp2764
-rw-r--r--src/mame/drivers/hh_ucom4.cpp638
-rw-r--r--src/mame/drivers/hideseek.cpp28
-rw-r--r--src/mame/drivers/higemaru.cpp28
-rw-r--r--src/mame/drivers/highvdeo.cpp204
-rw-r--r--src/mame/drivers/hitme.cpp45
-rw-r--r--src/mame/drivers/hitpoker.cpp3
-rw-r--r--src/mame/drivers/hk68v10.cpp13
-rw-r--r--src/mame/drivers/hnayayoi.cpp47
-rw-r--r--src/mame/drivers/hng64.cpp11
-rw-r--r--src/mame/drivers/holeland.cpp64
-rw-r--r--src/mame/drivers/homedata.cpp430
-rw-r--r--src/mame/drivers/homelab.cpp108
-rw-r--r--src/mame/drivers/homerun.cpp88
-rw-r--r--src/mame/drivers/homez80.cpp29
-rw-r--r--src/mame/drivers/horizon.cpp58
-rw-r--r--src/mame/drivers/hornet.cpp21
-rw-r--r--src/mame/drivers/hotblock.cpp22
-rw-r--r--src/mame/drivers/hotstuff.cpp32
-rw-r--r--src/mame/drivers/hp16500.cpp49
-rw-r--r--src/mame/drivers/hp2100.cpp5
-rw-r--r--src/mame/drivers/hp2640.cpp43
-rw-r--r--src/mame/drivers/hp48.cpp1
-rw-r--r--src/mame/drivers/hp49gp.cpp23
-rw-r--r--src/mame/drivers/hp64k.cpp76
-rw-r--r--src/mame/drivers/hp80.cpp90
-rw-r--r--src/mame/drivers/hp95lx.cpp34
-rw-r--r--src/mame/drivers/hp9825.cpp317
-rw-r--r--src/mame/drivers/hp9845.cpp147
-rw-r--r--src/mame/drivers/hp9k.cpp31
-rw-r--r--src/mame/drivers/hp9k_3xx.cpp97
-rw-r--r--src/mame/drivers/hp_ipc.cpp98
-rw-r--r--src/mame/drivers/hprot1.cpp53
-rw-r--r--src/mame/drivers/hpz80unk.cpp16
-rw-r--r--src/mame/drivers/hshavoc.cpp2
-rw-r--r--src/mame/drivers/ht68k.cpp31
-rw-r--r--src/mame/drivers/huebler.cpp21
-rw-r--r--src/mame/drivers/hunter2.cpp54
-rw-r--r--src/mame/drivers/hvyunit.cpp51
-rw-r--r--src/mame/drivers/hx20.cpp46
-rw-r--r--src/mame/drivers/hyhoo.cpp33
-rw-r--r--src/mame/drivers/hyperscan.cpp25
-rw-r--r--src/mame/drivers/hyperspt.cpp77
-rw-r--r--src/mame/drivers/hyprduel.cpp68
-rw-r--r--src/mame/drivers/i7000.cpp23
-rw-r--r--src/mame/drivers/ibm3153.cpp25
-rw-r--r--src/mame/drivers/ibm6580.cpp107
-rw-r--r--src/mame/drivers/ibmpc.cpp84
-rw-r--r--src/mame/drivers/ibmpcjr.cpp51
-rw-r--r--src/mame/drivers/icatel.cpp25
-rw-r--r--src/mame/drivers/ice_bozopail.cpp10
-rw-r--r--src/mame/drivers/ice_tbd.cpp12
-rw-r--r--src/mame/drivers/icebox.cpp21
-rw-r--r--src/mame/drivers/icecold.cpp8
-rw-r--r--src/mame/drivers/ichiban.cpp60
-rw-r--r--src/mame/drivers/idsa.cpp17
-rw-r--r--src/mame/drivers/ie15.cpp7
-rw-r--r--src/mame/drivers/if800.cpp28
-rw-r--r--src/mame/drivers/igs009.cpp47
-rw-r--r--src/mame/drivers/igs011.cpp37
-rw-r--r--src/mame/drivers/igs017.cpp297
-rw-r--r--src/mame/drivers/igs_m027.cpp64
-rw-r--r--src/mame/drivers/igs_m036.cpp62
-rw-r--r--src/mame/drivers/igspc.cpp11
-rw-r--r--src/mame/drivers/igspoker.cpp87
-rw-r--r--src/mame/drivers/ikki.cpp38
-rw-r--r--src/mame/drivers/imds2.cpp2
-rw-r--r--src/mame/drivers/imolagp.cpp40
-rw-r--r--src/mame/drivers/inder.cpp65
-rw-r--r--src/mame/drivers/inderp.cpp15
-rw-r--r--src/mame/drivers/indiana.cpp18
-rw-r--r--src/mame/drivers/indigo.cpp385
-rw-r--r--src/mame/drivers/indy_indigo2.cpp119
-rw-r--r--src/mame/drivers/instantm.cpp26
-rw-r--r--src/mame/drivers/instruct.cpp4
-rw-r--r--src/mame/drivers/inteladv.cpp23
-rw-r--r--src/mame/drivers/intellect02.cpp321
-rw-r--r--src/mame/drivers/interact.cpp80
-rw-r--r--src/mame/drivers/interpro.cpp32
-rw-r--r--src/mame/drivers/intrscti.cpp40
-rw-r--r--src/mame/drivers/intv.cpp107
-rw-r--r--src/mame/drivers/invqix.cpp33
-rw-r--r--src/mame/drivers/ipds.cpp31
-rw-r--r--src/mame/drivers/iphone2g.cpp16
-rw-r--r--src/mame/drivers/iq151.cpp109
-rw-r--r--src/mame/drivers/iqblock.cpp32
-rw-r--r--src/mame/drivers/iqunlim.cpp21
-rw-r--r--src/mame/drivers/iris3130.cpp8
-rw-r--r--src/mame/drivers/irisha.cpp32
-rw-r--r--src/mame/drivers/irobot.cpp4
-rw-r--r--src/mame/drivers/ironhors.cpp61
-rw-r--r--src/mame/drivers/isbc8010.cpp60
-rw-r--r--src/mame/drivers/iskr103x.cpp46
-rw-r--r--src/mame/drivers/istellar.cpp32
-rw-r--r--src/mame/drivers/istrebiteli.cpp38
-rw-r--r--src/mame/drivers/iteagle.cpp65
-rw-r--r--src/mame/drivers/itech32.cpp43
-rw-r--r--src/mame/drivers/itech8.cpp4
-rw-r--r--src/mame/drivers/itgambl2.cpp22
-rw-r--r--src/mame/drivers/itgambl3.cpp25
-rw-r--r--src/mame/drivers/itt3030.cpp32
-rw-r--r--src/mame/drivers/jack.cpp86
-rw-r--r--src/mame/drivers/jackal.cpp32
-rw-r--r--src/mame/drivers/jackpool.cpp28
-rw-r--r--src/mame/drivers/jaguar.cpp6
-rw-r--r--src/mame/drivers/jailbrek.cpp33
-rw-r--r--src/mame/drivers/jalmah.cpp52
-rw-r--r--src/mame/drivers/jangou.cpp102
-rw-r--r--src/mame/drivers/jankenmn.cpp12
-rw-r--r--src/mame/drivers/jantotsu.cpp45
-rw-r--r--src/mame/drivers/jazz.cpp276
-rw-r--r--src/mame/drivers/jchan.cpp38
-rw-r--r--src/mame/drivers/jclub2.cpp98
-rw-r--r--src/mame/drivers/jedi.cpp12
-rw-r--r--src/mame/drivers/jensen.cpp246
-rw-r--r--src/mame/drivers/jeutel.cpp31
-rw-r--r--src/mame/drivers/joctronic.cpp60
-rw-r--r--src/mame/drivers/jokrwild.cpp25
-rw-r--r--src/mame/drivers/jollyjgr.cpp34
-rw-r--r--src/mame/drivers/jongkyo.cpp20
-rw-r--r--src/mame/drivers/jonos.cpp27
-rw-r--r--src/mame/drivers/joystand.cpp52
-rw-r--r--src/mame/drivers/jp.cpp31
-rw-r--r--src/mame/drivers/jpmimpct.cpp50
-rw-r--r--src/mame/drivers/jpmmps.cpp33
-rw-r--r--src/mame/drivers/jpms80.cpp28
-rw-r--r--src/mame/drivers/jpmsru.cpp10
-rw-r--r--src/mame/drivers/jpmsys5.cpp39
-rw-r--r--src/mame/drivers/jpmsys7.cpp11
-rw-r--r--src/mame/drivers/jr100.cpp4
-rw-r--r--src/mame/drivers/jr200.cpp32
-rw-r--r--src/mame/drivers/jtc.cpp80
-rw-r--r--src/mame/drivers/jubilee.cpp36
-rw-r--r--src/mame/drivers/juicebox.cpp33
-rw-r--r--src/mame/drivers/jungleyo.cpp32
-rw-r--r--src/mame/drivers/junior.cpp27
-rw-r--r--src/mame/drivers/junofrst.cpp24
-rw-r--r--src/mame/drivers/jupace.cpp44
-rw-r--r--src/mame/drivers/jupiter.cpp33
-rw-r--r--src/mame/drivers/jvh.cpp44
-rw-r--r--src/mame/drivers/k1003.cpp11
-rw-r--r--src/mame/drivers/k28.cpp301
-rw-r--r--src/mame/drivers/k8915.cpp25
-rw-r--r--src/mame/drivers/kaneko16.cpp199
-rw-r--r--src/mame/drivers/kangaroo.cpp36
-rw-r--r--src/mame/drivers/karnov.cpp4
-rw-r--r--src/mame/drivers/kas89.cpp22
-rw-r--r--src/mame/drivers/kaypro.cpp116
-rw-r--r--src/mame/drivers/kc.cpp141
-rw-r--r--src/mame/drivers/kchamp.cpp196
-rw-r--r--src/mame/drivers/kdt6.cpp31
-rw-r--r--src/mame/drivers/kickgoal.cpp100
-rw-r--r--src/mame/drivers/kim1.cpp38
-rw-r--r--src/mame/drivers/kingdrby.cpp69
-rw-r--r--src/mame/drivers/kingobox.cpp84
-rw-r--r--src/mame/drivers/kingpin.cpp3
-rw-r--r--src/mame/drivers/klax.cpp55
-rw-r--r--src/mame/drivers/kncljoe.cpp42
-rw-r--r--src/mame/drivers/koftball.cpp45
-rw-r--r--src/mame/drivers/koikoi.cpp28
-rw-r--r--src/mame/drivers/konamigv.cpp40
-rw-r--r--src/mame/drivers/konamigx.cpp2
-rw-r--r--src/mame/drivers/konamim2.cpp11
-rw-r--r--src/mame/drivers/konblands.cpp33
-rw-r--r--src/mame/drivers/konendev.cpp31
-rw-r--r--src/mame/drivers/konmedal68k.cpp31
-rw-r--r--src/mame/drivers/kontest.cpp36
-rw-r--r--src/mame/drivers/kopunch.cpp28
-rw-r--r--src/mame/drivers/kramermc.cpp28
-rw-r--r--src/mame/drivers/kron.cpp27
-rw-r--r--src/mame/drivers/krz2000.cpp7
-rw-r--r--src/mame/drivers/ksayakyu.cpp41
-rw-r--r--src/mame/drivers/kungfur.cpp30
-rw-r--r--src/mame/drivers/kurukuru.cpp48
-rw-r--r--src/mame/drivers/kyocera.cpp40
-rw-r--r--src/mame/drivers/kyugo.cpp90
-rw-r--r--src/mame/drivers/labyrunr.cpp28
-rw-r--r--src/mame/drivers/ladybug.cpp82
-rw-r--r--src/mame/drivers/ladyfrog.cpp1
-rw-r--r--src/mame/drivers/laser3k.cpp29
-rw-r--r--src/mame/drivers/laserbas.cpp47
-rw-r--r--src/mame/drivers/lasso.cpp106
-rw-r--r--src/mame/drivers/lastbank.cpp45
-rw-r--r--src/mame/drivers/lastfght.cpp26
-rw-r--r--src/mame/drivers/laz_aftrshok.cpp118
-rw-r--r--src/mame/drivers/laz_awetoss.cpp17
-rw-r--r--src/mame/drivers/laz_ribrac.cpp15
-rw-r--r--src/mame/drivers/lazercmd.cpp122
-rw-r--r--src/mame/drivers/lb186.cpp56
-rw-r--r--src/mame/drivers/lbeach.cpp26
-rw-r--r--src/mame/drivers/lc80.cpp44
-rw-r--r--src/mame/drivers/lckydraw.cpp11
-rw-r--r--src/mame/drivers/lcmate2.cpp29
-rw-r--r--src/mame/drivers/ldplayer.cpp5
-rw-r--r--src/mame/drivers/leapfrog_leappad.cpp145
-rw-r--r--src/mame/drivers/leapster.cpp26
-rw-r--r--src/mame/drivers/learnwin.cpp14
-rw-r--r--src/mame/drivers/legionna.cpp26
-rw-r--r--src/mame/drivers/leland.cpp82
-rw-r--r--src/mame/drivers/lemmings.cpp46
-rw-r--r--src/mame/drivers/lethal.cpp26
-rw-r--r--src/mame/drivers/lethalj.cpp36
-rw-r--r--src/mame/drivers/lg-dvd.cpp9
-rw-r--r--src/mame/drivers/lgp.cpp29
-rw-r--r--src/mame/drivers/liberate.cpp131
-rw-r--r--src/mame/drivers/lilith.cpp5
-rw-r--r--src/mame/drivers/limenko.cpp24
-rw-r--r--src/mame/drivers/lindbergh.cpp7
-rw-r--r--src/mame/drivers/lisa.cpp44
-rw-r--r--src/mame/drivers/littlerb.cpp23
-rw-r--r--src/mame/drivers/lkage.cpp2
-rw-r--r--src/mame/drivers/llc.cpp51
-rw-r--r--src/mame/drivers/lockon.cpp38
-rw-r--r--src/mame/drivers/looping.cpp13
-rw-r--r--src/mame/drivers/lsasquad.cpp92
-rw-r--r--src/mame/drivers/ltcasino.cpp25
-rw-r--r--src/mame/drivers/ltd.cpp16
-rw-r--r--src/mame/drivers/luckgrln.cpp46
-rw-r--r--src/mame/drivers/lucky74.cpp54
-rw-r--r--src/mame/drivers/luckybal.cpp26
-rw-r--r--src/mame/drivers/lvcards.cpp43
-rw-r--r--src/mame/drivers/lviv.cpp49
-rw-r--r--src/mame/drivers/lwings.cpp170
-rw-r--r--src/mame/drivers/lynx.cpp24
-rw-r--r--src/mame/drivers/m20.cpp35
-rw-r--r--src/mame/drivers/m24.cpp484
-rw-r--r--src/mame/drivers/m3.cpp25
-rw-r--r--src/mame/drivers/m5.cpp75
-rw-r--r--src/mame/drivers/m52.cpp35
-rw-r--r--src/mame/drivers/m57.cpp31
-rw-r--r--src/mame/drivers/m58.cpp24
-rw-r--r--src/mame/drivers/m62.cpp199
-rw-r--r--src/mame/drivers/m63.cpp12
-rw-r--r--src/mame/drivers/m6805evs.cpp9
-rw-r--r--src/mame/drivers/m72.cpp244
-rw-r--r--src/mame/drivers/m79152pc.cpp7
-rw-r--r--src/mame/drivers/m79amb.cpp27
-rw-r--r--src/mame/drivers/m90.cpp30
-rw-r--r--src/mame/drivers/mac.cpp13
-rw-r--r--src/mame/drivers/mac128.cpp7
-rw-r--r--src/mame/drivers/macp.cpp26
-rw-r--r--src/mame/drivers/macs.cpp3
-rw-r--r--src/mame/drivers/madalien.cpp17
-rw-r--r--src/mame/drivers/madmotor.cpp41
-rw-r--r--src/mame/drivers/magic10.cpp71
-rw-r--r--src/mame/drivers/magicard.cpp42
-rw-r--r--src/mame/drivers/magicfly.cpp36
-rw-r--r--src/mame/drivers/magictg.cpp37
-rw-r--r--src/mame/drivers/magmax.cpp32
-rw-r--r--src/mame/drivers/magnum.cpp52
-rw-r--r--src/mame/drivers/magreel.cpp31
-rw-r--r--src/mame/drivers/magtouch.cpp26
-rw-r--r--src/mame/drivers/mainsnk.cpp32
-rw-r--r--src/mame/drivers/majorpkr.cpp24
-rw-r--r--src/mame/drivers/manohman.cpp22
-rw-r--r--src/mame/drivers/mappy.cpp9
-rw-r--r--src/mame/drivers/marineb.cpp79
-rw-r--r--src/mame/drivers/marinedt.cpp22
-rw-r--r--src/mame/drivers/mario.cpp33
-rw-r--r--src/mame/drivers/markham.cpp77
-rw-r--r--src/mame/drivers/marywu.cpp11
-rw-r--r--src/mame/drivers/mastboyo.cpp31
-rw-r--r--src/mame/drivers/matmania.cpp6
-rw-r--r--src/mame/drivers/maxaflex.cpp2
-rw-r--r--src/mame/drivers/maygay1b.cpp58
-rw-r--r--src/mame/drivers/maygayep.cpp12
-rw-r--r--src/mame/drivers/maygaysw.cpp10
-rw-r--r--src/mame/drivers/maygayv1.cpp39
-rw-r--r--src/mame/drivers/mazerbla.cpp106
-rw-r--r--src/mame/drivers/mbc200.cpp45
-rw-r--r--src/mame/drivers/mbc55x.cpp324
-rw-r--r--src/mame/drivers/mbee.cpp161
-rw-r--r--src/mame/drivers/mc10.cpp86
-rw-r--r--src/mame/drivers/mc1000.cpp52
-rw-r--r--src/mame/drivers/mc1502.cpp43
-rw-r--r--src/mame/drivers/mc8020.cpp19
-rw-r--r--src/mame/drivers/mc8030.cpp19
-rw-r--r--src/mame/drivers/mcb216.cpp30
-rw-r--r--src/mame/drivers/mcr3.cpp97
-rw-r--r--src/mame/drivers/mcr68.cpp73
-rw-r--r--src/mame/drivers/meadows.cpp4
-rw-r--r--src/mame/drivers/meadwttl.cpp23
-rw-r--r--src/mame/drivers/mediagx.cpp30
-rw-r--r--src/mame/drivers/megadriv.cpp220
-rw-r--r--src/mame/drivers/megadriv_acbl.cpp177
-rw-r--r--src/mame/drivers/megadriv_rad.cpp24
-rw-r--r--src/mame/drivers/megaplay.cpp42
-rw-r--r--src/mame/drivers/megasys1.cpp195
-rw-r--r--src/mame/drivers/megatech.cpp95
-rw-r--r--src/mame/drivers/megazone.cpp52
-rw-r--r--src/mame/drivers/meijinsn.cpp40
-rw-r--r--src/mame/drivers/mekd2.cpp25
-rw-r--r--src/mame/drivers/mephisto.cpp78
-rw-r--r--src/mame/drivers/mephisto_montec.cpp72
-rw-r--r--src/mame/drivers/mephistp.cpp40
-rw-r--r--src/mame/drivers/merit.cpp113
-rw-r--r--src/mame/drivers/meritm.cpp23
-rw-r--r--src/mame/drivers/meritum.cpp22
-rw-r--r--src/mame/drivers/mermaid.cpp49
-rw-r--r--src/mame/drivers/mes.cpp25
-rw-r--r--src/mame/drivers/metalmx.cpp39
-rw-r--r--src/mame/drivers/metlclsh.cpp4
-rw-r--r--src/mame/drivers/metlfrzr.cpp30
-rw-r--r--src/mame/drivers/metro.cpp75
-rw-r--r--src/mame/drivers/mexico86.cpp2
-rw-r--r--src/mame/drivers/meyc8080.cpp30
-rw-r--r--src/mame/drivers/meyc8088.cpp28
-rw-r--r--src/mame/drivers/mgames.cpp96
-rw-r--r--src/mame/drivers/mgavegas.cpp36
-rw-r--r--src/mame/drivers/mgolf.cpp26
-rw-r--r--src/mame/drivers/mhavoc.cpp8
-rw-r--r--src/mame/drivers/micral.cpp44
-rw-r--r--src/mame/drivers/micro20.cpp31
-rw-r--r--src/mame/drivers/micro3d.cpp49
-rw-r--r--src/mame/drivers/microkit.cpp2
-rw-r--r--src/mame/drivers/micromon.cpp96
-rw-r--r--src/mame/drivers/micronic.cpp31
-rw-r--r--src/mame/drivers/micropin.cpp33
-rw-r--r--src/mame/drivers/microtan.cpp30
-rw-r--r--src/mame/drivers/microvsn.cpp27
-rw-r--r--src/mame/drivers/midas.cpp196
-rw-r--r--src/mame/drivers/midqslvr.cpp8
-rw-r--r--src/mame/drivers/midtunit.cpp1
-rw-r--r--src/mame/drivers/midvunit.cpp41
-rw-r--r--src/mame/drivers/midwunit.cpp1
-rw-r--r--src/mame/drivers/midxunit.cpp1
-rw-r--r--src/mame/drivers/midyunit.cpp127
-rw-r--r--src/mame/drivers/midzeus.cpp36
-rw-r--r--src/mame/drivers/mightyframe.cpp9
-rw-r--r--src/mame/drivers/mikie.cpp40
-rw-r--r--src/mame/drivers/mikro80.cpp63
-rw-r--r--src/mame/drivers/mikromik.cpp24
-rw-r--r--src/mame/drivers/mikrosha.cpp46
-rw-r--r--src/mame/drivers/mil4000.cpp38
-rw-r--r--src/mame/drivers/milton6805.cpp13
-rw-r--r--src/mame/drivers/mini2440.cpp34
-rw-r--r--src/mame/drivers/miniboy7.cpp39
-rw-r--r--src/mame/drivers/miniforce.cpp27
-rw-r--r--src/mame/drivers/minitel_2_rpic.cpp4
-rw-r--r--src/mame/drivers/minivadr.cpp24
-rw-r--r--src/mame/drivers/mips.cpp145
-rw-r--r--src/mame/drivers/mirage.cpp36
-rw-r--r--src/mame/drivers/mirax.cpp39
-rw-r--r--src/mame/drivers/missb2.cpp4
-rw-r--r--src/mame/drivers/missbamby.cpp134
-rw-r--r--src/mame/drivers/missile.cpp4
-rw-r--r--src/mame/drivers/mitchell.cpp269
-rw-r--r--src/mame/drivers/mjkjidai.cpp55
-rw-r--r--src/mame/drivers/mjsenpu.cpp35
-rw-r--r--src/mame/drivers/mjsister.cpp35
-rw-r--r--src/mame/drivers/mk1.cpp349
-rw-r--r--src/mame/drivers/mk14.cpp5
-rw-r--r--src/mame/drivers/mk2.cpp26
-rw-r--r--src/mame/drivers/mkit09.cpp22
-rw-r--r--src/mame/drivers/mmodular.cpp62
-rw-r--r--src/mame/drivers/mod8.cpp15
-rw-r--r--src/mame/drivers/model1.cpp86
-rw-r--r--src/mame/drivers/model2.cpp95
-rw-r--r--src/mame/drivers/model3.cpp11
-rw-r--r--src/mame/drivers/modellot.cpp29
-rw-r--r--src/mame/drivers/modena.cpp19
-rw-r--r--src/mame/drivers/mogura.cpp38
-rw-r--r--src/mame/drivers/mole.cpp30
-rw-r--r--src/mame/drivers/molecular.cpp44
-rw-r--r--src/mame/drivers/momoko.cpp30
-rw-r--r--src/mame/drivers/monacogp.cpp23
-rw-r--r--src/mame/drivers/monon_color.cpp23
-rw-r--r--src/mame/drivers/monzagp.cpp13
-rw-r--r--src/mame/drivers/moo.cpp76
-rw-r--r--src/mame/drivers/mosaic.cpp44
-rw-r--r--src/mame/drivers/mouser.cpp36
-rw-r--r--src/mame/drivers/mpc3000.cpp13
-rw-r--r--src/mame/drivers/mpf1.cpp46
-rw-r--r--src/mame/drivers/mps1230.cpp20
-rw-r--r--src/mame/drivers/mpu12wbk.cpp25
-rw-r--r--src/mame/drivers/mpu2.cpp9
-rw-r--r--src/mame/drivers/mpu3.cpp20
-rw-r--r--src/mame/drivers/mpu4dealem.cpp31
-rw-r--r--src/mame/drivers/mpu4plasma.cpp31
-rw-r--r--src/mame/drivers/mpu4sw.cpp34
-rw-r--r--src/mame/drivers/mpz80.cpp59
-rw-r--r--src/mame/drivers/mrdo.cpp37
-rw-r--r--src/mame/drivers/mrflea.cpp38
-rw-r--r--src/mame/drivers/mrgame.cpp7
-rw-r--r--src/mame/drivers/mrjong.cpp32
-rw-r--r--src/mame/drivers/ms0515.cpp29
-rw-r--r--src/mame/drivers/ms32.cpp57
-rw-r--r--src/mame/drivers/msbc1.cpp9
-rw-r--r--src/mame/drivers/mstation.cpp29
-rw-r--r--src/mame/drivers/msx.cpp4250
-rw-r--r--src/mame/drivers/mt735.cpp9
-rw-r--r--src/mame/drivers/mtx.cpp136
-rw-r--r--src/mame/drivers/mugsmash.cpp38
-rw-r--r--src/mame/drivers/multfish.cpp241
-rw-r--r--src/mame/drivers/multfish_boot.cpp24
-rw-r--r--src/mame/drivers/multi16.cpp25
-rw-r--r--src/mame/drivers/multi8.cpp36
-rw-r--r--src/mame/drivers/munchmo.cpp38
-rw-r--r--src/mame/drivers/murogem.cpp31
-rw-r--r--src/mame/drivers/murogmbl.cpp60
-rw-r--r--src/mame/drivers/mustache.cpp34
-rw-r--r--src/mame/drivers/mvme147.cpp14
-rw-r--r--src/mame/drivers/mw18w.cpp14
-rw-r--r--src/mame/drivers/mw8080bw.cpp1
-rw-r--r--src/mame/drivers/mwarr.cpp38
-rw-r--r--src/mame/drivers/mwsub.cpp14
-rw-r--r--src/mame/drivers/mx2178.cpp25
-rw-r--r--src/mame/drivers/myb3k.cpp67
-rw-r--r--src/mame/drivers/mycom.cpp44
-rw-r--r--src/mame/drivers/mystston.cpp14
-rw-r--r--src/mame/drivers/mystwarr.cpp36
-rw-r--r--src/mame/drivers/myvision.cpp14
-rw-r--r--src/mame/drivers/mz2000.cpp59
-rw-r--r--src/mame/drivers/mz2500.cpp36
-rw-r--r--src/mame/drivers/mz3500.cpp46
-rw-r--r--src/mame/drivers/mz6500.cpp31
-rw-r--r--src/mame/drivers/mz700.cpp68
-rw-r--r--src/mame/drivers/mz80.cpp55
-rw-r--r--src/mame/drivers/mzr8105.cpp14
-rw-r--r--src/mame/drivers/nakajies.cpp53
-rw-r--r--src/mame/drivers/namcofl.cpp45
-rw-r--r--src/mame/drivers/namcona1.cpp26
-rw-r--r--src/mame/drivers/namconb1.cpp54
-rw-r--r--src/mame/drivers/namcond1.cpp61
-rw-r--r--src/mame/drivers/namcos1.cpp13
-rw-r--r--src/mame/drivers/namcos2.cpp497
-rw-r--r--src/mame/drivers/namcos21.cpp43
-rw-r--r--src/mame/drivers/namcos21_c67.cpp58
-rw-r--r--src/mame/drivers/namcos21_de.cpp37
-rw-r--r--src/mame/drivers/namcos22.cpp164
-rw-r--r--src/mame/drivers/nanos.cpp27
-rw-r--r--src/mame/drivers/naomi.cpp513
-rw-r--r--src/mame/drivers/nascom1.cpp112
-rw-r--r--src/mame/drivers/nbmj8688.cpp227
-rw-r--r--src/mame/drivers/nbmj8891.cpp224
-rw-r--r--src/mame/drivers/nbmj8900.cpp48
-rw-r--r--src/mame/drivers/nbmj8991.cpp177
-rw-r--r--src/mame/drivers/nbmj9195.cpp180
-rw-r--r--src/mame/drivers/nc.cpp77
-rw-r--r--src/mame/drivers/neogeo.cpp691
-rw-r--r--src/mame/drivers/neogeocd.cpp21
-rw-r--r--src/mame/drivers/neopcb.cpp21
-rw-r--r--src/mame/drivers/neoprint.cpp238
-rw-r--r--src/mame/drivers/neptunp2.cpp33
-rw-r--r--src/mame/drivers/nes.cpp20
-rw-r--r--src/mame/drivers/nes_vt.cpp18
-rw-r--r--src/mame/drivers/newbrain.cpp23
-rw-r--r--src/mame/drivers/news.cpp29
-rw-r--r--src/mame/drivers/next.cpp138
-rw-r--r--src/mame/drivers/nexus3d.cpp25
-rw-r--r--src/mame/drivers/nforcepc.cpp230
-rw-r--r--src/mame/drivers/ngen.cpp22
-rw-r--r--src/mame/drivers/ngp.cpp400
-rw-r--r--src/mame/drivers/nibble.cpp20
-rw-r--r--src/mame/drivers/nichild.cpp6
-rw-r--r--src/mame/drivers/nightgal.cpp104
-rw-r--r--src/mame/drivers/nightmare.cpp10
-rw-r--r--src/mame/drivers/ninjaw.cpp2
-rw-r--r--src/mame/drivers/nitedrvr.cpp27
-rw-r--r--src/mame/drivers/niyanpai.cpp68
-rw-r--r--src/mame/drivers/nmg5.cpp8
-rw-r--r--src/mame/drivers/nmk16.cpp53
-rw-r--r--src/mame/drivers/nmkmedal.cpp12
-rw-r--r--src/mame/drivers/nokia_3310.cpp64
-rw-r--r--src/mame/drivers/notechan.cpp16
-rw-r--r--src/mame/drivers/notetaker.cpp41
-rw-r--r--src/mame/drivers/nova2001.cpp196
-rw-r--r--src/mame/drivers/novag6502.cpp1078
-rw-r--r--src/mame/drivers/novag_cforte.cpp259
-rw-r--r--src/mame/drivers/novag_delta1.cpp (renamed from src/mame/drivers/novagf8.cpp)136
-rw-r--r--src/mame/drivers/novag_diablo.cpp (renamed from src/mame/drivers/novag68k.cpp)187
-rw-r--r--src/mame/drivers/novag_presto.cpp (renamed from src/mame/drivers/novagmcs48.cpp)138
-rw-r--r--src/mame/drivers/novag_scon.cpp195
-rw-r--r--src/mame/drivers/novag_sexpert.cpp450
-rw-r--r--src/mame/drivers/nsm.cpp24
-rw-r--r--src/mame/drivers/nsmpoker.cpp27
-rw-r--r--src/mame/drivers/nss.cpp50
-rw-r--r--src/mame/drivers/nycaptor.cpp3
-rw-r--r--src/mame/drivers/nyny.cpp41
-rw-r--r--src/mame/drivers/ob68k1a.cpp14
-rw-r--r--src/mame/drivers/octopus.cpp51
-rw-r--r--src/mame/drivers/odyssey.cpp22
-rw-r--r--src/mame/drivers/odyssey2.cpp115
-rw-r--r--src/mame/drivers/offtwall.cpp22
-rw-r--r--src/mame/drivers/ohmygod.cpp34
-rw-r--r--src/mame/drivers/ojankohs.cpp148
-rw-r--r--src/mame/drivers/okean240.cpp49
-rw-r--r--src/mame/drivers/olibochu.cpp38
-rw-r--r--src/mame/drivers/olytext.cpp31
-rw-r--r--src/mame/drivers/omegrace.cpp34
-rw-r--r--src/mame/drivers/ondra.cpp37
-rw-r--r--src/mame/drivers/oneshot.cpp224
-rw-r--r--src/mame/drivers/opwolf.cpp124
-rw-r--r--src/mame/drivers/orao.cpp33
-rw-r--r--src/mame/drivers/orbit.cpp30
-rw-r--r--src/mame/drivers/oric.cpp13
-rw-r--r--src/mame/drivers/orion.cpp19
-rw-r--r--src/mame/drivers/osbexec.cpp16
-rw-r--r--src/mame/drivers/othello.cpp9
-rw-r--r--src/mame/drivers/otomedius.cpp22
-rw-r--r--src/mame/drivers/p112.cpp27
-rw-r--r--src/mame/drivers/p2000t.cpp63
-rw-r--r--src/mame/drivers/p8k.cpp32
-rw-r--r--src/mame/drivers/pachifev.cpp30
-rw-r--r--src/mame/drivers/pacman.cpp279
-rw-r--r--src/mame/drivers/palestra.cpp95
-rw-r--r--src/mame/drivers/palm.cpp35
-rw-r--r--src/mame/drivers/palmz22.cpp24
-rw-r--r--src/mame/drivers/pandoras.cpp31
-rw-r--r--src/mame/drivers/pangofun.cpp18
-rw-r--r--src/mame/drivers/panicr.cpp30
-rw-r--r--src/mame/drivers/paradise.cpp86
-rw-r--r--src/mame/drivers/paranoia.cpp46
-rw-r--r--src/mame/drivers/pasha2.cpp36
-rw-r--r--src/mame/drivers/paso1600.cpp42
-rw-r--r--src/mame/drivers/pasogo.cpp76
-rw-r--r--src/mame/drivers/pasopia.cpp21
-rw-r--r--src/mame/drivers/pasopia7.cpp69
-rw-r--r--src/mame/drivers/pass.cpp40
-rw-r--r--src/mame/drivers/pastelg.cpp70
-rw-r--r--src/mame/drivers/patapata.cpp35
-rw-r--r--src/mame/drivers/patinho_feio.cpp4
-rw-r--r--src/mame/drivers/pbaction.cpp22
-rw-r--r--src/mame/drivers/pc.cpp238
-rw-r--r--src/mame/drivers/pc100.cpp35
-rw-r--r--src/mame/drivers/pc1512.cpp176
-rw-r--r--src/mame/drivers/pc2000.cpp2
-rw-r--r--src/mame/drivers/pc4.cpp23
-rw-r--r--src/mame/drivers/pc6001.cpp113
-rw-r--r--src/mame/drivers/pc8001.cpp102
-rw-r--r--src/mame/drivers/pc8401a.cpp40
-rw-r--r--src/mame/drivers/pc8801.cpp79
-rw-r--r--src/mame/drivers/pc88va.cpp52
-rw-r--r--src/mame/drivers/pc9801.cpp22
-rw-r--r--src/mame/drivers/pcat_dyn.cpp3
-rw-r--r--src/mame/drivers/pcat_nit.cpp30
-rw-r--r--src/mame/drivers/pcd.cpp32
-rw-r--r--src/mame/drivers/pce.cpp127
-rw-r--r--src/mame/drivers/pce220.cpp81
-rw-r--r--src/mame/drivers/pcfx.cpp47
-rw-r--r--src/mame/drivers/pcktgal.cpp70
-rw-r--r--src/mame/drivers/pcm.cpp25
-rw-r--r--src/mame/drivers/pcw.cpp2
-rw-r--r--src/mame/drivers/pcw16.cpp48
-rw-r--r--src/mame/drivers/pcxt.cpp37
-rw-r--r--src/mame/drivers/pdp11.cpp12
-rw-r--r--src/mame/drivers/pegasus.cpp48
-rw-r--r--src/mame/drivers/pencil2.cpp40
-rw-r--r--src/mame/drivers/pengadvb.cpp49
-rw-r--r--src/mame/drivers/pengo.cpp128
-rw-r--r--src/mame/drivers/pentagon.cpp27
-rw-r--r--src/mame/drivers/peoplepc.cpp21
-rw-r--r--src/mame/drivers/peplus.cpp15
-rw-r--r--src/mame/drivers/perq.cpp5
-rw-r--r--src/mame/drivers/pes.cpp2
-rw-r--r--src/mame/drivers/pet.cpp52
-rw-r--r--src/mame/drivers/peyper.cpp13
-rw-r--r--src/mame/drivers/pg685.cpp71
-rw-r--r--src/mame/drivers/pgm.cpp2
-rw-r--r--src/mame/drivers/pgm3.cpp32
-rw-r--r--src/mame/drivers/phc25.cpp70
-rw-r--r--src/mame/drivers/photon.cpp30
-rw-r--r--src/mame/drivers/photon2.cpp29
-rw-r--r--src/mame/drivers/photoply.cpp19
-rw-r--r--src/mame/drivers/phunsy.cpp4
-rw-r--r--src/mame/drivers/picno.cpp15
-rw-r--r--src/mame/drivers/piggypas.cpp56
-rw-r--r--src/mame/drivers/pinball2k.cpp24
-rw-r--r--src/mame/drivers/pingpong.cpp44
-rw-r--r--src/mame/drivers/pinkiri8.cpp37
-rw-r--r--src/mame/drivers/pipbug.cpp4
-rw-r--r--src/mame/drivers/pirates.cpp54
-rw-r--r--src/mame/drivers/piratesh.cpp2
-rw-r--r--src/mame/drivers/pitagjr.cpp23
-rw-r--r--src/mame/drivers/pk8000.cpp37
-rw-r--r--src/mame/drivers/pk8020.cpp46
-rw-r--r--src/mame/drivers/pktgaldx.cpp84
-rw-r--r--src/mame/drivers/plan80.cpp29
-rw-r--r--src/mame/drivers/play_1.cpp24
-rw-r--r--src/mame/drivers/play_2.cpp6
-rw-r--r--src/mame/drivers/play_3.cpp32
-rw-r--r--src/mame/drivers/playmark.cpp238
-rw-r--r--src/mame/drivers/plus4.cpp24
-rw-r--r--src/mame/drivers/pmi80.cpp11
-rw-r--r--src/mame/drivers/pntnpuzl.cpp18
-rw-r--r--src/mame/drivers/pockchal.cpp26
-rw-r--r--src/mame/drivers/pockstat.cpp29
-rw-r--r--src/mame/drivers/pofo.cpp68
-rw-r--r--src/mame/drivers/poisk1.cpp105
-rw-r--r--src/mame/drivers/pokechmp.cpp22
-rw-r--r--src/mame/drivers/pokemini.cpp2
-rw-r--r--src/mame/drivers/poker72.cpp25
-rw-r--r--src/mame/drivers/polepos.cpp1
-rw-r--r--src/mame/drivers/poly.cpp61
-rw-r--r--src/mame/drivers/poly88.cpp48
-rw-r--r--src/mame/drivers/poly880.cpp15
-rw-r--r--src/mame/drivers/polyplay.cpp17
-rw-r--r--src/mame/drivers/pong.cpp257
-rw-r--r--src/mame/drivers/poolshrk.cpp31
-rw-r--r--src/mame/drivers/pooyan.cpp24
-rw-r--r--src/mame/drivers/popobear.cpp40
-rw-r--r--src/mame/drivers/popper.cpp25
-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.cpp47
-rw-r--r--src/mame/drivers/prestige.cpp122
-rw-r--r--src/mame/drivers/primo.cpp92
-rw-r--r--src/mame/drivers/pro80.cpp15
-rw-r--r--src/mame/drivers/proconn.cpp8
-rw-r--r--src/mame/drivers/prof180x.cpp43
-rw-r--r--src/mame/drivers/prof80.cpp35
-rw-r--r--src/mame/drivers/progolf.cpp44
-rw-r--r--src/mame/drivers/prophet600.cpp21
-rw-r--r--src/mame/drivers/proteus.cpp35
-rw-r--r--src/mame/drivers/proteus3.cpp35
-rw-r--r--src/mame/drivers/pse.cpp23
-rw-r--r--src/mame/drivers/psikyo.cpp193
-rw-r--r--src/mame/drivers/psion.cpp108
-rw-r--r--src/mame/drivers/psx.cpp16
-rw-r--r--src/mame/drivers/pt68k4.cpp96
-rw-r--r--src/mame/drivers/ptcsol.cpp23
-rw-r--r--src/mame/drivers/pturn.cpp33
-rw-r--r--src/mame/drivers/puckpkmn.cpp34
-rw-r--r--src/mame/drivers/punchout.cpp64
-rw-r--r--src/mame/drivers/pv1000.cpp18
-rw-r--r--src/mame/drivers/pv2000.cpp25
-rw-r--r--src/mame/drivers/pv9234.cpp24
-rw-r--r--src/mame/drivers/pwrview.cpp23
-rw-r--r--src/mame/drivers/px4.cpp68
-rw-r--r--src/mame/drivers/px8.cpp55
-rw-r--r--src/mame/drivers/pyl601.cpp47
-rw-r--r--src/mame/drivers/pzletime.cpp26
-rw-r--r--src/mame/drivers/ql.cpp75
-rw-r--r--src/mame/drivers/quakeat.cpp32
-rw-r--r--src/mame/drivers/quasar.cpp1
-rw-r--r--src/mame/drivers/queen.cpp8
-rw-r--r--src/mame/drivers/quickpick5.cpp14
-rw-r--r--src/mame/drivers/quizdna.cpp55
-rw-r--r--src/mame/drivers/quizo.cpp28
-rw-r--r--src/mame/drivers/quizpani.cpp31
-rw-r--r--src/mame/drivers/quizshow.cpp1
-rw-r--r--src/mame/drivers/qvt201.cpp19
-rw-r--r--src/mame/drivers/qvt70.cpp9
-rw-r--r--src/mame/drivers/qx10.cpp22
-rw-r--r--src/mame/drivers/r2dtank.cpp39
-rw-r--r--src/mame/drivers/r9751.cpp51
-rw-r--r--src/mame/drivers/rad_eu3a05.cpp30
-rw-r--r--src/mame/drivers/rad_eu3a14.cpp835
-rw-r--r--src/mame/drivers/radio86.cpp82
-rw-r--r--src/mame/drivers/raiden.cpp37
-rw-r--r--src/mame/drivers/rainbow.cpp139
-rw-r--r--src/mame/drivers/rampart.cpp30
-rw-r--r--src/mame/drivers/ramtek.cpp23
-rw-r--r--src/mame/drivers/rastan.cpp44
-rw-r--r--src/mame/drivers/rastersp.cpp24
-rw-r--r--src/mame/drivers/ravens.cpp10
-rw-r--r--src/mame/drivers/rbisland.cpp81
-rw-r--r--src/mame/drivers/rbmk.cpp46
-rw-r--r--src/mame/drivers/rc702.cpp22
-rw-r--r--src/mame/drivers/rc759.cpp2
-rw-r--r--src/mame/drivers/rcorsair.cpp42
-rw-r--r--src/mame/drivers/rd100.cpp27
-rw-r--r--src/mame/drivers/rd110.cpp25
-rw-r--r--src/mame/drivers/re900.cpp3
-rw-r--r--src/mame/drivers/realbrk.cpp86
-rw-r--r--src/mame/drivers/redalert.cpp48
-rw-r--r--src/mame/drivers/redclash.cpp132
-rw-r--r--src/mame/drivers/relief.cpp31
-rw-r--r--src/mame/drivers/replicator.cpp1
-rw-r--r--src/mame/drivers/retofinv.cpp79
-rw-r--r--src/mame/drivers/rex6000.cpp62
-rw-r--r--src/mame/drivers/rgum.cpp27
-rw-r--r--src/mame/drivers/risc2500.cpp1
-rw-r--r--src/mame/drivers/riscpc.cpp131
-rw-r--r--src/mame/drivers/rltennis.cpp36
-rw-r--r--src/mame/drivers/rm380z.cpp62
-rw-r--r--src/mame/drivers/rmhaihai.cpp70
-rw-r--r--src/mame/drivers/rmnimbus.cpp2
-rw-r--r--src/mame/drivers/rmt32.cpp29
-rw-r--r--src/mame/drivers/rockrage.cpp38
-rw-r--r--src/mame/drivers/rocnrope.cpp26
-rw-r--r--src/mame/drivers/rohga.cpp184
-rw-r--r--src/mame/drivers/rollext.cpp39
-rw-r--r--src/mame/drivers/rollrace.cpp40
-rw-r--r--src/mame/drivers/ron.cpp26
-rw-r--r--src/mame/drivers/roul.cpp33
-rw-r--r--src/mame/drivers/route16.cpp1
-rw-r--r--src/mame/drivers/rowamet.cpp26
-rw-r--r--src/mame/drivers/royalmah.cpp282
-rw-r--r--src/mame/drivers/rpunch.cpp69
-rw-r--r--src/mame/drivers/rt1715.cpp371
-rw-r--r--src/mame/drivers/rulechan.cpp11
-rw-r--r--src/mame/drivers/rungun.cpp10
-rw-r--r--src/mame/drivers/rx78.cpp40
-rw-r--r--src/mame/drivers/rzone.cpp67
-rw-r--r--src/mame/drivers/s11.cpp42
-rw-r--r--src/mame/drivers/s11a.cpp38
-rw-r--r--src/mame/drivers/s11b.cpp36
-rw-r--r--src/mame/drivers/s3.cpp27
-rw-r--r--src/mame/drivers/s4.cpp27
-rw-r--r--src/mame/drivers/s6.cpp23
-rw-r--r--src/mame/drivers/s6a.cpp23
-rw-r--r--src/mame/drivers/s7.cpp23
-rw-r--r--src/mame/drivers/s8.cpp20
-rw-r--r--src/mame/drivers/s8a.cpp20
-rw-r--r--src/mame/drivers/s9.cpp23
-rw-r--r--src/mame/drivers/sage2.cpp35
-rw-r--r--src/mame/drivers/sam.cpp9
-rw-r--r--src/mame/drivers/sandscrp.cpp38
-rw-r--r--src/mame/drivers/sangho.cpp32
-rw-r--r--src/mame/drivers/sanremmg.cpp24
-rw-r--r--src/mame/drivers/sanremo.cpp52
-rw-r--r--src/mame/drivers/sansa_fuze.cpp11
-rw-r--r--src/mame/drivers/sapi1.cpp79
-rw-r--r--src/mame/drivers/sartorius.cpp5
-rw-r--r--src/mame/drivers/saturn.cpp52
-rw-r--r--src/mame/drivers/sauro.cpp75
-rw-r--r--src/mame/drivers/savquest.cpp28
-rw-r--r--src/mame/drivers/sbasketb.cpp54
-rw-r--r--src/mame/drivers/sbc6510.cpp2
-rw-r--r--src/mame/drivers/sbowling.cpp25
-rw-r--r--src/mame/drivers/sbrain.cpp55
-rw-r--r--src/mame/drivers/sbrkout.cpp10
-rw-r--r--src/mame/drivers/sbugger.cpp38
-rw-r--r--src/mame/drivers/sc1.cpp190
-rw-r--r--src/mame/drivers/sc2.cpp329
-rw-r--r--src/mame/drivers/scm_500.cpp7
-rw-r--r--src/mame/drivers/scobra.cpp153
-rw-r--r--src/mame/drivers/scopus.cpp54
-rw-r--r--src/mame/drivers/scorpion.cpp33
-rw-r--r--src/mame/drivers/scotrsht.cpp35
-rw-r--r--src/mame/drivers/scramble.cpp205
-rw-r--r--src/mame/drivers/scregg.cpp40
-rw-r--r--src/mame/drivers/scv.cpp12
-rw-r--r--src/mame/drivers/scyclone.cpp2
-rw-r--r--src/mame/drivers/sderby.cpp174
-rw-r--r--src/mame/drivers/sderby2.cpp37
-rw-r--r--src/mame/drivers/sdk51.cpp18
-rw-r--r--src/mame/drivers/sdk85.cpp11
-rw-r--r--src/mame/drivers/seabattl.cpp4
-rw-r--r--src/mame/drivers/sealy.cpp25
-rw-r--r--src/mame/drivers/seattlecmp.cpp13
-rw-r--r--src/mame/drivers/sega_beena.cpp137
-rw-r--r--src/mame/drivers/sega_sawatte.cpp7
-rw-r--r--src/mame/drivers/segae.cpp73
-rw-r--r--src/mame/drivers/segag80r.cpp116
-rw-r--r--src/mame/drivers/segag80v.cpp2
-rw-r--r--src/mame/drivers/segald.cpp26
-rw-r--r--src/mame/drivers/segapm.cpp24
-rw-r--r--src/mame/drivers/segas16a.cpp54
-rw-r--r--src/mame/drivers/segas16b.cpp131
-rw-r--r--src/mame/drivers/segas18.cpp3
-rw-r--r--src/mame/drivers/segas24.cpp1
-rw-r--r--src/mame/drivers/segas32.cpp25
-rw-r--r--src/mame/drivers/segasp.cpp39
-rw-r--r--src/mame/drivers/segattl.cpp23
-rw-r--r--src/mame/drivers/segaxbd.cpp12
-rw-r--r--src/mame/drivers/segaybd.cpp1
-rw-r--r--src/mame/drivers/seibucats.cpp38
-rw-r--r--src/mame/drivers/seibuspi.cpp38
-rw-r--r--src/mame/drivers/seicross.cpp57
-rw-r--r--src/mame/drivers/seicupbl.cpp97
-rw-r--r--src/mame/drivers/selz80.cpp19
-rw-r--r--src/mame/drivers/sengokmj.cpp4
-rw-r--r--src/mame/drivers/senjyo.cpp63
-rw-r--r--src/mame/drivers/seta.cpp93
-rw-r--r--src/mame/drivers/seta2.cpp407
-rw-r--r--src/mame/drivers/sf.cpp92
-rw-r--r--src/mame/drivers/sfbonus.cpp36
-rw-r--r--src/mame/drivers/sfcbox.cpp52
-rw-r--r--src/mame/drivers/sg1000.cpp117
-rw-r--r--src/mame/drivers/sg1000a.cpp34
-rw-r--r--src/mame/drivers/shadfrce.cpp32
-rw-r--r--src/mame/drivers/shanghai.cpp99
-rw-r--r--src/mame/drivers/shangkid.cpp66
-rw-r--r--src/mame/drivers/shaolins.cpp47
-rw-r--r--src/mame/drivers/shine.cpp10
-rw-r--r--src/mame/drivers/shisen.cpp53
-rw-r--r--src/mame/drivers/shootaway2.cpp28
-rw-r--r--src/mame/drivers/shootout.cpp62
-rw-r--r--src/mame/drivers/shougi.cpp46
-rw-r--r--src/mame/drivers/shtzone.cpp29
-rw-r--r--src/mame/drivers/shuuz.cpp25
-rw-r--r--src/mame/drivers/si5500.cpp51
-rw-r--r--src/mame/drivers/sigmab52.cpp36
-rw-r--r--src/mame/drivers/sigmab98.cpp220
-rw-r--r--src/mame/drivers/silkroad.cpp40
-rw-r--r--src/mame/drivers/silvmil.cpp286
-rw-r--r--src/mame/drivers/simpl156.cpp76
-rw-r--r--src/mame/drivers/simple_st0016.cpp56
-rw-r--r--src/mame/drivers/sk1.cpp5
-rw-r--r--src/mame/drivers/skeetsht.cpp13
-rw-r--r--src/mame/drivers/skimaxx.cpp46
-rw-r--r--src/mame/drivers/skullxbo.cpp30
-rw-r--r--src/mame/drivers/skyarmy.cpp49
-rw-r--r--src/mame/drivers/skydiver.cpp22
-rw-r--r--src/mame/drivers/skyfox.cpp36
-rw-r--r--src/mame/drivers/skylncr.cpp70
-rw-r--r--src/mame/drivers/skyraid.cpp28
-rw-r--r--src/mame/drivers/slapfght.cpp124
-rw-r--r--src/mame/drivers/slc1.cpp24
-rw-r--r--src/mame/drivers/slc1a.cpp212
-rw-r--r--src/mame/drivers/sleic.cpp9
-rw-r--r--src/mame/drivers/slicer.cpp52
-rw-r--r--src/mame/drivers/sliver.cpp36
-rw-r--r--src/mame/drivers/slotcarn.cpp22
-rw-r--r--src/mame/drivers/sm1800.cpp37
-rw-r--r--src/mame/drivers/sm7238.cpp25
-rw-r--r--src/mame/drivers/smc777.cpp270
-rw-r--r--src/mame/drivers/sms.cpp399
-rw-r--r--src/mame/drivers/sms_bootleg.cpp42
-rw-r--r--src/mame/drivers/smsmcorp.cpp37
-rw-r--r--src/mame/drivers/snes.cpp356
-rw-r--r--src/mame/drivers/snesb.cpp147
-rw-r--r--src/mame/drivers/snk6502.cpp98
-rw-r--r--src/mame/drivers/snookr10.cpp59
-rw-r--r--src/mame/drivers/snowbros.cpp26
-rw-r--r--src/mame/drivers/socrates.cpp95
-rw-r--r--src/mame/drivers/softbox.cpp35
-rw-r--r--src/mame/drivers/solbourne.cpp5
-rw-r--r--src/mame/drivers/solomon.cpp36
-rw-r--r--src/mame/drivers/sonson.cpp32
-rw-r--r--src/mame/drivers/sorcerer.cpp88
-rw-r--r--src/mame/drivers/sothello.cpp32
-rw-r--r--src/mame/drivers/spacefb.cpp15
-rw-r--r--src/mame/drivers/spaceg.cpp4
-rw-r--r--src/mame/drivers/spartanxtec.cpp39
-rw-r--r--src/mame/drivers/spbactn.cpp2
-rw-r--r--src/mame/drivers/spc1000.cpp52
-rw-r--r--src/mame/drivers/spc1500.cpp64
-rw-r--r--src/mame/drivers/spec128.cpp63
-rw-r--r--src/mame/drivers/special.cpp118
-rw-r--r--src/mame/drivers/specpls3.cpp124
-rw-r--r--src/mame/drivers/spectra.cpp2
-rw-r--r--src/mame/drivers/spectrum.cpp56
-rw-r--r--src/mame/drivers/speedatk.cpp28
-rw-r--r--src/mame/drivers/speedbal.cpp39
-rw-r--r--src/mame/drivers/speedspn.cpp38
-rw-r--r--src/mame/drivers/speglsht.cpp32
-rw-r--r--src/mame/drivers/spg110.cpp399
-rw-r--r--src/mame/drivers/spiders.cpp26
-rw-r--r--src/mame/drivers/spinb.cpp8
-rw-r--r--src/mame/drivers/spirit76.cpp14
-rw-r--r--src/mame/drivers/splash.cpp10
-rw-r--r--src/mame/drivers/splus.cpp4
-rw-r--r--src/mame/drivers/spool99.cpp48
-rw-r--r--src/mame/drivers/sprcros2.cpp41
-rw-r--r--src/mame/drivers/sprint2.cpp58
-rw-r--r--src/mame/drivers/sprint4.cpp29
-rw-r--r--src/mame/drivers/sprint8.cpp31
-rw-r--r--src/mame/drivers/spyhuntertec.cpp52
-rw-r--r--src/mame/drivers/squale.cpp36
-rw-r--r--src/mame/drivers/srmp2.cpp121
-rw-r--r--src/mame/drivers/srmp5.cpp26
-rw-r--r--src/mame/drivers/srmp6.cpp304
-rw-r--r--src/mame/drivers/srumbler.cpp60
-rw-r--r--src/mame/drivers/ssem.cpp18
-rw-r--r--src/mame/drivers/ssfindo.cpp51
-rw-r--r--src/mame/drivers/sshot.cpp28
-rw-r--r--src/mame/drivers/ssingles.cpp77
-rw-r--r--src/mame/drivers/sslam.cpp32
-rw-r--r--src/mame/drivers/ssozumo.cpp41
-rw-r--r--src/mame/drivers/sspeedr.cpp30
-rw-r--r--src/mame/drivers/ssrj.cpp28
-rw-r--r--src/mame/drivers/sstrangr.cpp35
-rw-r--r--src/mame/drivers/ssv.cpp4
-rw-r--r--src/mame/drivers/st17xx.cpp25
-rw-r--r--src/mame/drivers/st_mp100.cpp13
-rw-r--r--src/mame/drivers/st_mp200.cpp21
-rw-r--r--src/mame/drivers/stactics.cpp12
-rw-r--r--src/mame/drivers/stargame.cpp16
-rw-r--r--src/mame/drivers/starshp1.cpp27
-rw-r--r--src/mame/drivers/starwars.cpp38
-rw-r--r--src/mame/drivers/statriv2.cpp174
-rw-r--r--src/mame/drivers/stellafr.cpp17
-rw-r--r--src/mame/drivers/stlforce.cpp49
-rw-r--r--src/mame/drivers/storio.cpp171
-rw-r--r--src/mame/drivers/stratos.cpp25
-rw-r--r--src/mame/drivers/strkzn.cpp19
-rw-r--r--src/mame/drivers/studio2.cpp30
-rw-r--r--src/mame/drivers/stuntair.cpp34
-rw-r--r--src/mame/drivers/su2000.cpp29
-rw-r--r--src/mame/drivers/sub.cpp36
-rw-r--r--src/mame/drivers/subs.cpp42
-rw-r--r--src/mame/drivers/subsino.cpp180
-rw-r--r--src/mame/drivers/subsino2.cpp344
-rw-r--r--src/mame/drivers/summit.cpp25
-rw-r--r--src/mame/drivers/sumt8035.cpp12
-rw-r--r--src/mame/drivers/sun2.cpp60
-rw-r--r--src/mame/drivers/sun3.cpp149
-rw-r--r--src/mame/drivers/sun3x.cpp36
-rw-r--r--src/mame/drivers/sun4.cpp84
-rw-r--r--src/mame/drivers/suna16.cpp4
-rw-r--r--src/mame/drivers/suna8.cpp1
-rw-r--r--src/mame/drivers/supbtime.cpp46
-rw-r--r--src/mame/drivers/supdrapo.cpp26
-rw-r--r--src/mame/drivers/supduck.cpp41
-rw-r--r--src/mame/drivers/super6.cpp2
-rw-r--r--src/mame/drivers/super80.cpp8
-rw-r--r--src/mame/drivers/superchs.cpp44
-rw-r--r--src/mame/drivers/supercrd.cpp35
-rw-r--r--src/mame/drivers/superdq.cpp28
-rw-r--r--src/mame/drivers/superqix.cpp2
-rw-r--r--src/mame/drivers/superslave.cpp2
-rw-r--r--src/mame/drivers/supertnk.cpp4
-rw-r--r--src/mame/drivers/superwng.cpp33
-rw-r--r--src/mame/drivers/supracan.cpp30
-rw-r--r--src/mame/drivers/suprgolf.cpp40
-rw-r--r--src/mame/drivers/suprloco.cpp36
-rw-r--r--src/mame/drivers/suprnova.cpp153
-rw-r--r--src/mame/drivers/suprridr.cpp34
-rw-r--r--src/mame/drivers/supstarf.cpp8
-rw-r--r--src/mame/drivers/sv8000.cpp19
-rw-r--r--src/mame/drivers/svi318.cpp95
-rw-r--r--src/mame/drivers/svision.cpp47
-rw-r--r--src/mame/drivers/svmu.cpp12
-rw-r--r--src/mame/drivers/swtpc.cpp79
-rw-r--r--src/mame/drivers/symbolics.cpp10
-rw-r--r--src/mame/drivers/sys2900.cpp25
-rw-r--r--src/mame/drivers/sys9002.cpp25
-rw-r--r--src/mame/drivers/system1.cpp6
-rw-r--r--src/mame/drivers/system16.cpp490
-rw-r--r--src/mame/drivers/tagteam.cpp39
-rw-r--r--src/mame/drivers/tail2nos.cpp32
-rw-r--r--src/mame/drivers/taito.cpp25
-rw-r--r--src/mame/drivers/taito_b.cpp2
-rw-r--r--src/mame/drivers/taito_f2.cpp4
-rw-r--r--src/mame/drivers/taito_f3.cpp5
-rw-r--r--src/mame/drivers/taito_l.cpp122
-rw-r--r--src/mame/drivers/taito_o.cpp26
-rw-r--r--src/mame/drivers/taito_z.cpp93
-rw-r--r--src/mame/drivers/taitoair.cpp4
-rw-r--r--src/mame/drivers/taitogn.cpp10
-rw-r--r--src/mame/drivers/taitosj.cpp70
-rw-r--r--src/mame/drivers/taitottl.cpp23
-rw-r--r--src/mame/drivers/taitotx.cpp27
-rw-r--r--src/mame/drivers/taitowlf.cpp20
-rw-r--r--src/mame/drivers/tamag1.cpp6
-rw-r--r--src/mame/drivers/tandy1t.cpp143
-rw-r--r--src/mame/drivers/tandy2k.cpp288
-rw-r--r--src/mame/drivers/tank8.cpp36
-rw-r--r--src/mame/drivers/tankbust.cpp38
-rw-r--r--src/mame/drivers/tapatune.cpp39
-rw-r--r--src/mame/drivers/targeth.cpp36
-rw-r--r--src/mame/drivers/tasman.cpp27
-rw-r--r--src/mame/drivers/tatsumi.cpp123
-rw-r--r--src/mame/drivers/tavernie.cpp39
-rw-r--r--src/mame/drivers/taxidriv.cpp42
-rw-r--r--src/mame/drivers/tb303.cpp20
-rw-r--r--src/mame/drivers/tbowl.cpp4
-rw-r--r--src/mame/drivers/tceptor.cpp1
-rw-r--r--src/mame/drivers/tdv2324.cpp39
-rw-r--r--src/mame/drivers/tec1.cpp29
-rw-r--r--src/mame/drivers/techno.cpp14
-rw-r--r--src/mame/drivers/tecmo.cpp38
-rw-r--r--src/mame/drivers/tecmo16.cpp51
-rw-r--r--src/mame/drivers/tecnbras.cpp2
-rw-r--r--src/mame/drivers/tehkanwc.cpp51
-rw-r--r--src/mame/drivers/tek405x.cpp162
-rw-r--r--src/mame/drivers/tek410x.cpp48
-rw-r--r--src/mame/drivers/tek440x.cpp35
-rw-r--r--src/mame/drivers/tekxp33x.cpp25
-rw-r--r--src/mame/drivers/tempest.cpp2
-rw-r--r--src/mame/drivers/terco.cpp15
-rw-r--r--src/mame/drivers/terminal.cpp9
-rw-r--r--src/mame/drivers/terracre.cpp92
-rw-r--r--src/mame/drivers/testconsole.cpp29
-rw-r--r--src/mame/drivers/testpat.cpp150
-rw-r--r--src/mame/drivers/tetrisp2.cpp321
-rw-r--r--src/mame/drivers/tg100.cpp20
-rw-r--r--src/mame/drivers/tgtpanic.cpp26
-rw-r--r--src/mame/drivers/thedealr.cpp21
-rw-r--r--src/mame/drivers/thepit.cpp60
-rw-r--r--src/mame/drivers/thomson.cpp302
-rw-r--r--src/mame/drivers/thoop2.cpp40
-rw-r--r--src/mame/drivers/thunderj.cpp28
-rw-r--r--src/mame/drivers/ti74.cpp50
-rw-r--r--src/mame/drivers/ti85.cpp334
-rw-r--r--src/mame/drivers/ti89.cpp67
-rw-r--r--src/mame/drivers/ti990_10.cpp13
-rw-r--r--src/mame/drivers/ti990_4.cpp66
-rw-r--r--src/mame/drivers/ti99_2.cpp10
-rw-r--r--src/mame/drivers/ti99_4p.cpp91
-rw-r--r--src/mame/drivers/ti99_4x.cpp58
-rw-r--r--src/mame/drivers/ti99_8.cpp47
-rw-r--r--src/mame/drivers/tiamc1.cpp42
-rw-r--r--src/mame/drivers/ticalc1x.cpp560
-rw-r--r--src/mame/drivers/tickee.cpp68
-rw-r--r--src/mame/drivers/tiki100.cpp65
-rw-r--r--src/mame/drivers/tim011.cpp37
-rw-r--r--src/mame/drivers/tim100.cpp39
-rw-r--r--src/mame/drivers/timelimt.cpp38
-rw-r--r--src/mame/drivers/timetrv.cpp28
-rw-r--r--src/mame/drivers/timex.cpp67
-rw-r--r--src/mame/drivers/tispeak.cpp257
-rw-r--r--src/mame/drivers/tispellb.cpp63
-rw-r--r--src/mame/drivers/titan_soc.cpp121
-rw-r--r--src/mame/drivers/tk2000.cpp35
-rw-r--r--src/mame/drivers/tk80bs.cpp25
-rw-r--r--src/mame/drivers/tm990189.cpp30
-rw-r--r--src/mame/drivers/tmaster.cpp50
-rw-r--r--src/mame/drivers/tmc1800.cpp24
-rw-r--r--src/mame/drivers/tmc600.cpp11
-rw-r--r--src/mame/drivers/tmnt.cpp15
-rw-r--r--src/mame/drivers/tmspoker.cpp23
-rw-r--r--src/mame/drivers/tnzs.cpp3
-rw-r--r--src/mame/drivers/toaplan1.cpp607
-rw-r--r--src/mame/drivers/toaplan2.cpp167
-rw-r--r--src/mame/drivers/tomcat.cpp53
-rw-r--r--src/mame/drivers/toobin.cpp26
-rw-r--r--src/mame/drivers/topspeed.cpp54
-rw-r--r--src/mame/drivers/tosh1000.cpp61
-rw-r--r--src/mame/drivers/tourvis.cpp37
-rw-r--r--src/mame/drivers/tp84.cpp59
-rw-r--r--src/mame/drivers/tr606.cpp21
-rw-r--r--src/mame/drivers/trackfld.cpp165
-rw-r--r--src/mame/drivers/travrusa.cpp47
-rw-r--r--src/mame/drivers/triforce.cpp374
-rw-r--r--src/mame/drivers/trkfldch.cpp196
-rw-r--r--src/mame/drivers/trs80.cpp164
-rw-r--r--src/mame/drivers/trs80m2.cpp98
-rw-r--r--src/mame/drivers/trs80m3.cpp77
-rw-r--r--src/mame/drivers/truco.cpp34
-rw-r--r--src/mame/drivers/trucocl.cpp34
-rw-r--r--src/mame/drivers/trvmadns.cpp35
-rw-r--r--src/mame/drivers/tryout.cpp36
-rw-r--r--src/mame/drivers/ts3000.cpp11
-rw-r--r--src/mame/drivers/ts803.cpp21
-rw-r--r--src/mame/drivers/tsamurai.cpp133
-rw-r--r--src/mame/drivers/tsispch.cpp12
-rw-r--r--src/mame/drivers/ttchamp.cpp34
-rw-r--r--src/mame/drivers/tti.cpp96
-rw-r--r--src/mame/drivers/tubep.cpp106
-rw-r--r--src/mame/drivers/tugboat.cpp23
-rw-r--r--src/mame/drivers/tumbleb.cpp195
-rw-r--r--src/mame/drivers/turbo.cpp86
-rw-r--r--src/mame/drivers/turrett.cpp24
-rw-r--r--src/mame/drivers/tutankhm.cpp24
-rw-r--r--src/mame/drivers/tutor.cpp44
-rw-r--r--src/mame/drivers/tv910.cpp48
-rw-r--r--src/mame/drivers/tv955.cpp10
-rw-r--r--src/mame/drivers/tvc.cpp72
-rw-r--r--src/mame/drivers/tvcapcom.cpp27
-rw-r--r--src/mame/drivers/tvgame.cpp28
-rw-r--r--src/mame/drivers/twincobr.cpp20
-rw-r--r--src/mame/drivers/twins.cpp75
-rw-r--r--src/mame/drivers/tx0.cpp30
-rw-r--r--src/mame/drivers/tx1.cpp125
-rw-r--r--src/mame/drivers/uapce.cpp59
-rw-r--r--src/mame/drivers/ultraman.cpp43
-rw-r--r--src/mame/drivers/ultratnk.cpp30
-rw-r--r--src/mame/drivers/undrfire.cpp60
-rw-r--r--src/mame/drivers/unianapc.cpp22
-rw-r--r--src/mame/drivers/unichamp.cpp2
-rw-r--r--src/mame/drivers/unico.cpp118
-rw-r--r--src/mame/drivers/unior.cpp33
-rw-r--r--src/mame/drivers/univac.cpp416
-rw-r--r--src/mame/drivers/unixpc.cpp76
-rw-r--r--src/mame/drivers/unkhorse.cpp31
-rw-r--r--src/mame/drivers/unkpoker.cpp173
-rw-r--r--src/mame/drivers/upscope.cpp29
-rw-r--r--src/mame/drivers/usbilliards.cpp23
-rw-r--r--src/mame/drivers/usgames.cpp34
-rw-r--r--src/mame/drivers/ut88.cpp67
-rw-r--r--src/mame/drivers/uzebox.cpp2
-rw-r--r--src/mame/drivers/v100.cpp84
-rw-r--r--src/mame/drivers/v102.cpp82
-rw-r--r--src/mame/drivers/v1050.cpp87
-rw-r--r--src/mame/drivers/v550.cpp4
-rw-r--r--src/mame/drivers/v6809.cpp39
-rw-r--r--src/mame/drivers/vaportra.cpp41
-rw-r--r--src/mame/drivers/vax11.cpp2
-rw-r--r--src/mame/drivers/vball.cpp37
-rw-r--r--src/mame/drivers/vboy.cpp46
-rw-r--r--src/mame/drivers/vc4000.cpp20
-rw-r--r--src/mame/drivers/vcombat.cpp88
-rw-r--r--src/mame/drivers/vcs80.cpp7
-rw-r--r--src/mame/drivers/vd.cpp13
-rw-r--r--src/mame/drivers/vectrex.cpp1
-rw-r--r--src/mame/drivers/vectrix.cpp13
-rw-r--r--src/mame/drivers/vega.cpp13
-rw-r--r--src/mame/drivers/vegaeo.cpp2
-rw-r--r--src/mame/drivers/vegas.cpp113
-rw-r--r--src/mame/drivers/vertigo.cpp30
-rw-r--r--src/mame/drivers/vg5k.cpp58
-rw-r--r--src/mame/drivers/vgmplay.cpp20
-rw-r--r--src/mame/drivers/vic10.cpp72
-rw-r--r--src/mame/drivers/vic20.cpp10
-rw-r--r--src/mame/drivers/vicdual.cpp291
-rw-r--r--src/mame/drivers/victor9k.cpp2
-rw-r--r--src/mame/drivers/victory.cpp27
-rw-r--r--src/mame/drivers/vidbrain.cpp34
-rw-r--r--src/mame/drivers/video21.cpp2
-rw-r--r--src/mame/drivers/videopin.cpp26
-rw-r--r--src/mame/drivers/videopkr.cpp86
-rw-r--r--src/mame/drivers/vigilant.cpp5
-rw-r--r--src/mame/drivers/vii.cpp1704
-rw-r--r--src/mame/drivers/vindictr.cpp28
-rw-r--r--src/mame/drivers/vip.cpp37
-rw-r--r--src/mame/drivers/viper.cpp2
-rw-r--r--src/mame/drivers/vis.cpp3
-rw-r--r--src/mame/drivers/vixen.cpp115
-rw-r--r--src/mame/drivers/vk100.cpp17
-rw-r--r--src/mame/drivers/vlc.cpp54
-rw-r--r--src/mame/drivers/volfied.cpp34
-rw-r--r--src/mame/drivers/votrpss.cpp20
-rw-r--r--src/mame/drivers/voyager.cpp8
-rw-r--r--src/mame/drivers/vpoker.cpp30
-rw-r--r--src/mame/drivers/vroulet.cpp32
-rw-r--r--src/mame/drivers/vsmile.cpp421
-rw-r--r--src/mame/drivers/vsmileb.cpp164
-rw-r--r--src/mame/drivers/vsmilepro.cpp14
-rw-r--r--src/mame/drivers/vsnes.cpp6
-rw-r--r--src/mame/drivers/vt100.cpp95
-rw-r--r--src/mame/drivers/vt220.cpp10
-rw-r--r--src/mame/drivers/vt240.cpp25
-rw-r--r--src/mame/drivers/vt320.cpp26
-rw-r--r--src/mame/drivers/vt520.cpp50
-rw-r--r--src/mame/drivers/vta2000.cpp29
-rw-r--r--src/mame/drivers/vtech1.cpp40
-rw-r--r--src/mame/drivers/vtech2.cpp43
-rw-r--r--src/mame/drivers/vtech_eu3a12.cpp20
-rw-r--r--src/mame/drivers/vtech_unk1.cpp19
-rw-r--r--src/mame/drivers/vtech_unk2.cpp19
-rw-r--r--src/mame/drivers/vulgus.cpp34
-rw-r--r--src/mame/drivers/wacky_gator.cpp28
-rw-r--r--src/mame/drivers/wallc.cpp58
-rw-r--r--src/mame/drivers/wangpc.cpp65
-rw-r--r--src/mame/drivers/wardner.cpp46
-rw-r--r--src/mame/drivers/warpsped.cpp28
-rw-r--r--src/mame/drivers/warpwarp.cpp70
-rw-r--r--src/mame/drivers/warriorb.cpp12
-rw-r--r--src/mame/drivers/wc90b.cpp51
-rw-r--r--src/mame/drivers/welltris.cpp4
-rw-r--r--src/mame/drivers/wgp.cpp6
-rw-r--r--src/mame/drivers/wheelfir.cpp44
-rw-r--r--src/mame/drivers/white_mod.cpp9
-rw-r--r--src/mame/drivers/wicat.cpp8
-rw-r--r--src/mame/drivers/wico.cpp26
-rw-r--r--src/mame/drivers/wildpkr.cpp80
-rw-r--r--src/mame/drivers/williams.cpp211
-rw-r--r--src/mame/drivers/wink.cpp35
-rw-r--r--src/mame/drivers/wiping.cpp32
-rw-r--r--src/mame/drivers/witch.cpp131
-rw-r--r--src/mame/drivers/wiz.cpp79
-rw-r--r--src/mame/drivers/wmg.cpp41
-rw-r--r--src/mame/drivers/wms.cpp43
-rw-r--r--src/mame/drivers/wolfpack.cpp32
-rw-r--r--src/mame/drivers/wpc_95.cpp24
-rw-r--r--src/mame/drivers/wpc_dcs.cpp33
-rw-r--r--src/mame/drivers/wpc_s.cpp24
-rw-r--r--src/mame/drivers/wrally.cpp39
-rw-r--r--src/mame/drivers/wrlshunt.cpp179
-rw-r--r--src/mame/drivers/wswan.cpp62
-rw-r--r--src/mame/drivers/wwfsstar.cpp31
-rw-r--r--src/mame/drivers/wy150.cpp122
-rw-r--r--src/mame/drivers/wy30p.cpp128
-rw-r--r--src/mame/drivers/wy50.cpp145
-rw-r--r--src/mame/drivers/wy55.cpp111
-rw-r--r--src/mame/drivers/wy60.cpp168
-rw-r--r--src/mame/drivers/wyse.cpp103
-rw-r--r--src/mame/drivers/wyvernf0.cpp5
-rw-r--r--src/mame/drivers/x07.cpp44
-rw-r--r--src/mame/drivers/x1.cpp68
-rw-r--r--src/mame/drivers/x1twin.cpp62
-rw-r--r--src/mame/drivers/x68k.cpp33
-rw-r--r--src/mame/drivers/xain.cpp41
-rw-r--r--src/mame/drivers/xavix.cpp918
-rw-r--r--src/mame/drivers/xavix2.cpp161
-rw-r--r--src/mame/drivers/xbox.cpp22
-rw-r--r--src/mame/drivers/xerox820.cpp66
-rw-r--r--src/mame/drivers/xmen.cpp121
-rw-r--r--src/mame/drivers/xor100.cpp54
-rw-r--r--src/mame/drivers/xtheball.cpp24
-rw-r--r--src/mame/drivers/xtom3d.cpp8
-rw-r--r--src/mame/drivers/xxmissio.cpp34
-rw-r--r--src/mame/drivers/xybots.cpp26
-rw-r--r--src/mame/drivers/xyonix.cpp34
-rw-r--r--src/mame/drivers/y2.cpp21
-rw-r--r--src/mame/drivers/yiear.cpp39
-rw-r--r--src/mame/drivers/ymmu100.cpp574
-rw-r--r--src/mame/drivers/yunsung8.cpp47
-rw-r--r--src/mame/drivers/z100.cpp97
-rw-r--r--src/mame/drivers/z1013.cpp35
-rw-r--r--src/mame/drivers/z80dev.cpp11
-rw-r--r--src/mame/drivers/z80ne.cpp136
-rw-r--r--src/mame/drivers/z88.cpp22
-rw-r--r--src/mame/drivers/z9001.cpp27
-rw-r--r--src/mame/drivers/zac_proto.cpp10
-rw-r--r--src/mame/drivers/zaccaria.cpp28
-rw-r--r--src/mame/drivers/zapcomputer.cpp11
-rw-r--r--src/mame/drivers/zaurus.cpp26
-rw-r--r--src/mame/drivers/zaxxon.cpp84
-rw-r--r--src/mame/drivers/zexall.cpp2
-rw-r--r--src/mame/drivers/zms8085.cpp9
-rw-r--r--src/mame/drivers/zn.cpp8
-rw-r--r--src/mame/drivers/zorba.cpp49
-rw-r--r--src/mame/drivers/zr107.cpp10
-rw-r--r--src/mame/drivers/zwackery.cpp4
1875 files changed, 78387 insertions, 61107 deletions
diff --git a/src/mame/drivers/1942.cpp b/src/mame/drivers/1942.cpp
index a063ee16ef9..3dea5f551d8 100644
--- a/src/mame/drivers/1942.cpp
+++ b/src/mame/drivers/1942.cpp
@@ -566,17 +566,18 @@ void _1942_state::machine_reset()
MACHINE_CONFIG_START(_1942_state::_1942)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CPU_CLOCK) /* 4 MHz ??? */
- MCFG_DEVICE_PROGRAM_MAP(_1942_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", _1942_state, _1942_scanline, "screen", 0, 1)
+ Z80(config, m_maincpu, MAIN_CPU_CLOCK); /* 4 MHz ??? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &_1942_state::_1942_map);
- MCFG_DEVICE_ADD("audiocpu", Z80, SOUND_CPU_CLOCK) /* 3 MHz ??? */
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(_1942_state, irq0_line_hold, 4*60)
+ TIMER(config, "scantimer").configure_scanline(FUNC(_1942_state::_1942_scanline), "screen", 0, 1);
+
+ Z80(config, m_audiocpu, SOUND_CPU_CLOCK); /* 3 MHz ??? */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &_1942_state::sound_map);
+ m_audiocpu->set_periodic_int(FUNC(_1942_state::irq0_line_hold), attotime::from_hz(4*60));
/* video hardware */
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_1942)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_1942);
PALETTE(config, m_palette, FUNC(_1942_state::_1942_palette), 64*4+4*32*8+16*16, 256);
@@ -627,21 +628,21 @@ MACHINE_CONFIG_START(_1942_state::_1942)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(_1942p_state::_1942p)
-
+void _1942p_state::_1942p(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CPU_CLOCK_1942P) /* 4 MHz - verified on PCB */
- MCFG_DEVICE_PROGRAM_MAP(_1942p_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", _1942p_state, irq0_line_hold) // note, powerups won't move down the screen with the original '1942' logic.
+ Z80(config, m_maincpu, MAIN_CPU_CLOCK_1942P); /* 4 MHz - verified on PCB */
+ m_maincpu->set_addrmap(AS_PROGRAM, &_1942p_state::_1942p_map);
+ m_maincpu->set_vblank_int("screen", FUNC(_1942p_state::irq0_line_hold)); // note, powerups won't move down the screen with the original '1942' logic.
- MCFG_DEVICE_ADD("audiocpu", Z80, SOUND_CPU_CLOCK_1942P) /* 4 MHz - verified on PCB */
- MCFG_DEVICE_PROGRAM_MAP(_1942p_sound_map)
- MCFG_DEVICE_IO_MAP(_1942p_sound_io)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(_1942p_state, irq0_line_hold, 4*60)
+ Z80(config, m_audiocpu, SOUND_CPU_CLOCK_1942P); /* 4 MHz - verified on PCB */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &_1942p_state::_1942p_sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &_1942p_state::_1942p_sound_io);
+ m_audiocpu->set_periodic_int(FUNC(_1942p_state::irq0_line_hold), attotime::from_hz(4*60));
/* video hardware */
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_1942p)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_1942p);
PALETTE(config, m_palette, FUNC(_1942p_state::_1942p_palette), 0x500, 0x400);
@@ -662,7 +663,7 @@ MACHINE_CONFIG_START(_1942p_state::_1942p)
AY8910(config, "ay1", AUDIO_CLOCK_1942P).add_route(ALL_OUTPUTS, "mono", 0.25); // 1.25 MHz - verified on PCB
AY8910(config, "ay2", AUDIO_CLOCK_1942P).add_route(ALL_OUTPUTS, "mono", 0.25); // 1.25 MHz - verified on PCB
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/1943.cpp b/src/mame/drivers/1943.cpp
index f404a87765e..0f68850bff5 100644
--- a/src/mame/drivers/1943.cpp
+++ b/src/mame/drivers/1943.cpp
@@ -311,29 +311,29 @@ void _1943_state::machine_reset()
m_prot_value = 0;
}
-MACHINE_CONFIG_START(_1943_state::_1943)
-
+void _1943_state::_1943(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(24'000'000)/4) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(c1943_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", _1943_state, irq0_line_hold)
+ Z80(config, m_maincpu, XTAL(24'000'000)/4); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &_1943_state::c1943_map);
+ m_maincpu->set_vblank_int("screen", FUNC(_1943_state::irq0_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(24'000'000)/8) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(_1943_state, irq0_line_hold, 4*60)
+ z80_device &audiocpu(Z80(config, "audiocpu", XTAL(24'000'000)/8)); /* verified on pcb */
+ audiocpu.set_addrmap(AS_PROGRAM, &_1943_state::sound_map);
+ audiocpu.set_periodic_int(FUNC(_1943_state::irq0_line_hold), attotime::from_hz(4*60));
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(_1943_state, screen_update_1943)
- MCFG_SCREEN_PALETTE(m_palette)
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_1943)
+ 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(_1943_state::screen_update_1943));
+ screen.set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_1943);
PALETTE(config, m_palette, FUNC(_1943_state::_1943_palette), 32*4+16*16+16*16+16*16, 256);
// sound hardware
@@ -341,18 +341,18 @@ MACHINE_CONFIG_START(_1943_state::_1943)
GENERIC_LATCH_8(config, "soundlatch");
- MCFG_DEVICE_ADD("ym1", YM2203, XTAL(24'000'000)/16) /* verified on pcb */
- MCFG_SOUND_ROUTE(0, "mono", 0.15)
- MCFG_SOUND_ROUTE(1, "mono", 0.15)
- MCFG_SOUND_ROUTE(2, "mono", 0.15)
- MCFG_SOUND_ROUTE(3, "mono", 0.10)
-
- MCFG_DEVICE_ADD("ym2", YM2203, XTAL(24'000'000)/16) /* verified on pcb */
- MCFG_SOUND_ROUTE(0, "mono", 0.15)
- MCFG_SOUND_ROUTE(1, "mono", 0.15)
- MCFG_SOUND_ROUTE(2, "mono", 0.15)
- MCFG_SOUND_ROUTE(3, "mono", 0.10)
-MACHINE_CONFIG_END
+ ym2203_device &ym1(YM2203(config, "ym1", XTAL(24'000'000)/16)); /* verified on pcb */
+ ym1.add_route(0, "mono", 0.15);
+ ym1.add_route(1, "mono", 0.15);
+ ym1.add_route(2, "mono", 0.15);
+ ym1.add_route(3, "mono", 0.10);
+
+ ym2203_device &ym2(YM2203(config, "ym2", XTAL(24'000'000)/16)); /* verified on pcb */
+ ym2.add_route(0, "mono", 0.15);
+ ym2.add_route(1, "mono", 0.15);
+ ym2.add_route(2, "mono", 0.15);
+ ym2.add_route(3, "mono", 0.10);
+}
/* ROMs */
diff --git a/src/mame/drivers/20pacgal.cpp b/src/mame/drivers/20pacgal.cpp
index 77e1873ac23..38883d77efb 100644
--- a/src/mame/drivers/20pacgal.cpp
+++ b/src/mame/drivers/20pacgal.cpp
@@ -420,7 +420,6 @@ void _20pacgal_state::_20pacgal(machine_config &config)
DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 1.0); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
- vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}
diff --git a/src/mame/drivers/24cdjuke.cpp b/src/mame/drivers/24cdjuke.cpp
index b0136b54929..565169ea73c 100644
--- a/src/mame/drivers/24cdjuke.cpp
+++ b/src/mame/drivers/24cdjuke.cpp
@@ -283,12 +283,13 @@ void midcoin24cdjuke_state::machine_reset()
}
-MACHINE_CONFIG_START(midcoin24cdjuke_state::midcoin24cdjuke)
+void midcoin24cdjuke_state::midcoin24cdjuke(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,6000000) /* ? MHz */
- MCFG_DEVICE_PROGRAM_MAP(midcoin24cdjuke_map)
- MCFG_DEVICE_IO_MAP(midcoin24cdjuke_io)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(midcoin24cdjuke_state, irq0_line_hold, 500)
+ Z80(config, m_maincpu, 6000000); /* ? MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &midcoin24cdjuke_state::midcoin24cdjuke_map);
+ m_maincpu->set_addrmap(AS_IO, &midcoin24cdjuke_state::midcoin24cdjuke_io);
+ m_maincpu->set_periodic_int(FUNC(midcoin24cdjuke_state::irq0_line_hold), attotime::from_hz(500));
config.set_default_layout(layout_24cdjuke);
@@ -305,7 +306,7 @@ MACHINE_CONFIG_START(midcoin24cdjuke_state::midcoin24cdjuke)
i8255_device &ic31(I8255A(config, "ic31", 0));
ic31.out_pb_callback().set_log("PPI8255 - unmapped write port B");
ic31.in_pc_callback().set_ioport("MD4");
-MACHINE_CONFIG_END
+}
ROM_START( 24cdjuke )
diff --git a/src/mame/drivers/39in1.cpp b/src/mame/drivers/39in1.cpp
index ccd6a241677..ed5aa3df6b6 100644
--- a/src/mame/drivers/39in1.cpp
+++ b/src/mame/drivers/39in1.cpp
@@ -286,10 +286,11 @@ void _39in1_state::_39in1(machine_config &config)
m_pxa_periphs->gpio0_in_cb().set(FUNC(_39in1_state::eeprom_r));
}
-MACHINE_CONFIG_START(_39in1_state::_60in1)
+void _39in1_state::_60in1(machine_config &config)
+{
_39in1(config);
MCFG_MACHINE_START_OVERRIDE(_39in1_state,60in1)
-MACHINE_CONFIG_END
+}
ROM_START( 39in1 )
// main program, encrypted
diff --git a/src/mame/drivers/3do.cpp b/src/mame/drivers/3do.cpp
index 9e6af48c6cf..21c83a4d497 100644
--- a/src/mame/drivers/3do.cpp
+++ b/src/mame/drivers/3do.cpp
@@ -154,40 +154,40 @@ void _3do_state::machine_reset()
m_clio.cstatbits = 0x01; /* bit 0 = reset of clio caused by power on */
}
-MACHINE_CONFIG_START(_3do_state::_3do)
-
+void _3do_state::_3do(machine_config &config)
+{
/* Basic machine hardware */
- MCFG_DEVICE_ADD( m_maincpu, ARM7_BE, XTAL(50'000'000)/4 )
- MCFG_DEVICE_PROGRAM_MAP( main_mem)
+ ARM7_BE(config, m_maincpu, XTAL(50'000'000)/4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &_3do_state::main_mem);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
- MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_x16", _3do_state, timer_x16_cb, attotime::from_hz(12000)) // TODO: timing
-
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_RAW_PARAMS( X2_CLOCK_NTSC / 2, 1592, 254, 1534, 263, 22, 262 )
- MCFG_SCREEN_UPDATE_DRIVER(_3do_state, screen_update)
+ TIMER(config, "timer_x16").configure_periodic(FUNC(_3do_state::timer_x16_cb), attotime::from_hz(12000)); // TODO: timing
- MCFG_CDROM_ADD("cdrom")
-MACHINE_CONFIG_END
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(X2_CLOCK_NTSC / 2, 1592, 254, 1534, 263, 22, 262);
+ m_screen->set_screen_update(FUNC(_3do_state::screen_update));
+ CDROM(config, "cdrom");
+}
-MACHINE_CONFIG_START(_3do_state::_3do_pal)
+void _3do_state::_3do_pal(machine_config &config)
+{
/* Basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, ARM7_BE, XTAL(50'000'000)/4 )
- MCFG_DEVICE_PROGRAM_MAP( main_mem)
+ ARM7_BE(config, m_maincpu, XTAL(50'000'000)/4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &_3do_state::main_mem);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
- MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_x16", _3do_state, timer_x16_cb, attotime::from_hz(12000)) // TODO: timing
+ TIMER(config, "timer_x16").configure_periodic(FUNC(_3do_state::timer_x16_cb), attotime::from_hz(12000)); // TODO: timing
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_RAW_PARAMS( X2_CLOCK_PAL / 2, 1592, 254, 1534, 263, 22, 262 ) // TODO: proper params
- MCFG_SCREEN_UPDATE_DRIVER(_3do_state, screen_update)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(X2_CLOCK_PAL / 2, 1592, 254, 1534, 263, 22, 262); // TODO: proper params
+ m_screen->set_screen_update(FUNC(_3do_state::screen_update));
- MCFG_CDROM_ADD("cdrom")
-MACHINE_CONFIG_END
+ CDROM(config, "cdrom");
+}
#if 0
#define NTSC_BIOS \
diff --git a/src/mame/drivers/3x3puzzl.cpp b/src/mame/drivers/3x3puzzl.cpp
index 90cb23b4e5b..b390a774651 100644
--- a/src/mame/drivers/3x3puzzl.cpp
+++ b/src/mame/drivers/3x3puzzl.cpp
@@ -388,20 +388,20 @@ void _3x3puzzle_state::machine_reset()
}
-MACHINE_CONFIG_START(_3x3puzzle_state::_3x3puzzle)
-
+void _3x3puzzle_state::_3x3puzzle(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",M68000,MAIN_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(_3x3puzzle_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", _3x3puzzle_state, irq4_line_hold)
+ M68000(config, m_maincpu, MAIN_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &_3x3puzzle_state::_3x3puzzle_map);
+ m_maincpu->set_vblank_int("screen", FUNC(_3x3puzzle_state::irq4_line_hold));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_UPDATE_DRIVER(_3x3puzzle_state, screen_update)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500));
+ m_screen->set_screen_update(FUNC(_3x3puzzle_state::screen_update));
+ m_screen->set_size(64*8, 32*8);
+ m_screen->set_visarea(0*8, 40*8-1, 0*8, 30*8-1);
GFXDECODE(config, m_gfxdecode, "palette", gfx_3x3puzzle);
@@ -409,9 +409,8 @@ MACHINE_CONFIG_START(_3x3puzzle_state::_3x3puzzle)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(4'000'000)/4, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki, XTAL(4'000'000)/4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/***************************************************************************
diff --git a/src/mame/drivers/4004clk.cpp b/src/mame/drivers/4004clk.cpp
index d80d369b3a8..0071e0c56a5 100644
--- a/src/mame/drivers/4004clk.cpp
+++ b/src/mame/drivers/4004clk.cpp
@@ -134,8 +134,8 @@ void nixieclock_state::machine_start()
save_pointer(NAME(m_nixie), 6);
}
-MACHINE_CONFIG_START(nixieclock_state::_4004clk)
-
+void nixieclock_state::_4004clk(machine_config &config)
+{
/* basic machine hardware */
i4004_cpu_device &cpu(I4004(config, "maincpu", 5_MHz_XTAL / 8));
cpu.set_rom_map(&nixieclock_state::_4004clk_rom);
@@ -149,13 +149,13 @@ MACHINE_CONFIG_START(nixieclock_state::_4004clk)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
- MCFG_CLOCK_ADD("clk", 60)
- MCFG_CLOCK_SIGNAL_HANDLER(INPUTLINE("maincpu", I4004_TEST_LINE))
-MACHINE_CONFIG_END
+ clock_device &clk(CLOCK(config, "clk", 60));
+ clk.signal_handler().set_inputline("maincpu", I4004_TEST_LINE);
+}
/* ROM definition */
ROM_START( 4004clk )
diff --git a/src/mame/drivers/40love.cpp b/src/mame/drivers/40love.cpp
index 00840d27d24..65f1a29217a 100644
--- a/src/mame/drivers/40love.cpp
+++ b/src/mame/drivers/40love.cpp
@@ -730,7 +730,6 @@ void fortyl_state::common(machine_config &config)
DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.2); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
- vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}
diff --git a/src/mame/drivers/4dpi.cpp b/src/mame/drivers/4dpi.cpp
index 4bea366bc98..191edfbd51d 100644
--- a/src/mame/drivers/4dpi.cpp
+++ b/src/mame/drivers/4dpi.cpp
@@ -239,23 +239,21 @@ void sgi_ip6_state::sgi_ip6_map(address_map &map)
MACHINE DRIVERS
***************************************************************************/
-MACHINE_CONFIG_START(sgi_ip6_state::sgi_ip6)
+void sgi_ip6_state::sgi_ip6(machine_config &config)
+{
R2000(config, m_maincpu, 25_MHz_XTAL / 2, 16384, 8192);
m_maincpu->set_endianness(ENDIANNESS_BIG);
m_maincpu->set_addrmap(AS_PROGRAM, &sgi_ip6_state::sgi_ip6_map);
m_maincpu->set_vblank_int("screen", FUNC(sgi_ip6_state::sgi_ip6_vbl));
-
/* 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_DRIVER(sgi_ip6_state, screen_update_sgi_ip6)
-
-
-MACHINE_CONFIG_END
+ 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(FUNC(sgi_ip6_state::screen_update_sgi_ip6));
+}
static INPUT_PORTS_START( sgi_ip6 )
PORT_START("UNUSED") // unused IN0
diff --git a/src/mame/drivers/4enlinea.cpp b/src/mame/drivers/4enlinea.cpp
index be19ea3ab00..a91b52ac1c0 100644
--- a/src/mame/drivers/4enlinea.cpp
+++ b/src/mame/drivers/4enlinea.cpp
@@ -500,24 +500,26 @@ INTERRUPT_GEN_MEMBER(_4enlinea_state::_4enlinea_audio_irq)
device.execute().set_input_line(0, HOLD_LINE);
}
-MACHINE_CONFIG_START(_4enlinea_state::_4enlinea)
-
+void _4enlinea_state::_4enlinea(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, PRG_CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_IO_MAP(main_portmap)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(_4enlinea_state, _4enlinea_irq, 60) //TODO
-// MCFG_DEVICE_PERIODIC_INT_DRIVER(_4enlinea_state, irq0_line_hold, 4*35)
+ Z80(config, m_maincpu, PRG_CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &_4enlinea_state::main_map);
+ m_maincpu->set_addrmap(AS_IO, &_4enlinea_state::main_portmap);
+ m_maincpu->set_periodic_int(FUNC(_4enlinea_state::_4enlinea_irq), attotime::from_hz(60)); //TODO
+// m_maincpu->set_periodic_int(FUNC(_4enlinea_state::irq0_line_hold), attotime::from_hz(4*35));
- MCFG_DEVICE_ADD("audiocpu", Z80, SND_CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(audio_map)
- MCFG_DEVICE_IO_MAP(audio_portmap)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(_4enlinea_state, _4enlinea_audio_irq, 60) //TODO
+ z80_device &audiocpu(Z80(config, "audiocpu", SND_CPU_CLOCK));
+ audiocpu.set_addrmap(AS_PROGRAM, &_4enlinea_state::audio_map);
+ audiocpu.set_addrmap(AS_IO, &_4enlinea_state::audio_portmap);
+ audiocpu.set_periodic_int(FUNC(_4enlinea_state::_4enlinea_audio_irq), attotime::from_hz(60)); //TODO
// FIXME: determine ISA bus clock
- ISA8(config, "isa", 0).set_cputag("maincpu");
+ isa8_device &isa(ISA8(config, "isa", 0));
+ isa.set_memspace("maincpu", AS_PROGRAM);
+ isa.set_iospace("maincpu", AS_IO);
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", _4enlinea_isa8_cards, "4enlinea", true)
+ ISA8_SLOT(config, "isa1", 0, "isa", _4enlinea_isa8_cards, "4enlinea", true);
/* 6845 clock is a guess, since it's a UM6845R embedded in the UM487F.
@@ -535,7 +537,7 @@ MACHINE_CONFIG_START(_4enlinea_state::_4enlinea)
m_ay->port_a_read_callback().set_ioport("IN-P2");
m_ay->port_b_read_callback().set_ioport("IN-P1");
m_ay->add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
/***********************************
diff --git a/src/mame/drivers/4enraya.cpp b/src/mame/drivers/4enraya.cpp
index 7a05333266f..793ec6a0960 100644
--- a/src/mame/drivers/4enraya.cpp
+++ b/src/mame/drivers/4enraya.cpp
@@ -178,12 +178,12 @@ WRITE8_MEMBER(_4enraya_state::sound_control_w)
{
case 0: case 3:
// latch address
- m_ay->address_w(space, 0, m_soundlatch);
+ m_ay->address_w(m_soundlatch);
break;
case 2:
// write to psg
- m_ay->data_w(space, 0, m_soundlatch);
+ m_ay->data_w(m_soundlatch);
break;
default:
@@ -470,48 +470,47 @@ void _4enraya_state::machine_reset()
* Machine Drivers *
***********************************/
-MACHINE_CONFIG_START(_4enraya_state::_4enraya )
-
+void _4enraya_state::_4enraya(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CLOCK/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_IO_MAP(main_portmap)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(_4enraya_state, irq0_line_hold, 4*60) // unknown timing
+ Z80(config, m_maincpu, MAIN_CLOCK/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &_4enraya_state::main_map);
+ m_maincpu->set_addrmap(AS_IO, &_4enraya_state::main_portmap);
+ m_maincpu->set_periodic_int(FUNC(_4enraya_state::irq0_line_hold), attotime::from_hz(4*60)); // unknown timing
/* 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(_4enraya_state, screen_update_4enraya)
- 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(_4enraya_state::screen_update_4enraya));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_4enraya)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_4enraya);
PALETTE(config, m_palette, palette_device::RGB_3BIT);
/* sound hardware */
SPEAKER(config, "mono").front_center();
AY8910(config, m_ay, MAIN_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 0.3); /* guess */
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(unk_gambl_state::unkpacg)
+void unk_gambl_state::unkpacg(machine_config &config)
+{
_4enraya(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(unkpacg_main_map)
- MCFG_DEVICE_IO_MAP(unkpacg_main_portmap)
+ m_maincpu->set_addrmap(AS_PROGRAM, &unk_gambl_state::unkpacg_main_map);
+ m_maincpu->set_addrmap(AS_IO, &unk_gambl_state::unkpacg_main_portmap);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* sound hardware */
-// SPEAKER(config, "mono").front_center();
AY8910(config.replace(), m_ay, MAIN_CLOCK/4); /* guess */
m_ay->port_a_read_callback().set_ioport("DSW2");
m_ay->add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
/***********************************
diff --git a/src/mame/drivers/4roses.cpp b/src/mame/drivers/4roses.cpp
index 9ec63144db4..bf8c3e00c91 100644
--- a/src/mame/drivers/4roses.cpp
+++ b/src/mame/drivers/4roses.cpp
@@ -454,25 +454,26 @@ GFXDECODE_END
* Machine Drivers *
**************************/
-MACHINE_CONFIG_START(_4roses_state::_4roses)
+void _4roses_state::_4roses(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M65C02, MASTER_CLOCK/8) /* 2MHz, guess */
- MCFG_DEVICE_PROGRAM_MAP(_4roses_map)
- MCFG_DEVICE_OPCODES_MAP(_4roses_opcodes_map)
+ M65C02(config, m_maincpu, MASTER_CLOCK/8); /* 2MHz, guess */
+ m_maincpu->set_addrmap(AS_PROGRAM, &_4roses_state::_4roses_map);
+ m_maincpu->set_addrmap(AS_OPCODES, &_4roses_state::_4roses_opcodes_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((124+1)*4, (30+1)*8) /* guess. taken from funworld games */
- MCFG_SCREEN_VISIBLE_AREA(0*4, 96*4-1, 0*8, 29*8-1) /* guess. taken from funworld games */
- MCFG_SCREEN_UPDATE_DRIVER(_4roses_state, screen_update_funworld)
- 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((124+1)*4, (30+1)*8); /* guess. taken from funworld games */
+ screen.set_visarea(0*4, 96*4-1, 0*8, 29*8-1); /* guess. taken from funworld games */
+ screen.set_screen_update(FUNC(_4roses_state::screen_update_funworld));
+ screen.set_palette("palette");
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_4roses)
+ GFXDECODE(config, m_gfxdecode, "palette", gfx_4roses);
PALETTE(config, "palette", FUNC(_4roses_state::funworld_palette), 0x1000);
@@ -486,14 +487,15 @@ MACHINE_CONFIG_START(_4roses_state::_4roses)
SPEAKER(config, "mono").front_center();
AY8910(config, "ay8910", MASTER_CLOCK/8).add_route(ALL_OUTPUTS, "mono", 2.5); /* 2MHz, guess */
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(rugby_state::rugby)
+void rugby_state::rugby(machine_config &config)
+{
_4roses(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(rugby_map)
- MCFG_DEVICE_OPCODES_MAP(rugby_opcodes_map)
-MACHINE_CONFIG_END
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &rugby_state::rugby_map);
+ m_maincpu->set_addrmap(AS_OPCODES, &rugby_state::rugby_opcodes_map);
+}
/*************************
diff --git a/src/mame/drivers/5clown.cpp b/src/mame/drivers/5clown.cpp
index 82097ed930b..192bae5fba5 100644
--- a/src/mame/drivers/5clown.cpp
+++ b/src/mame/drivers/5clown.cpp
@@ -509,7 +509,7 @@ private:
DECLARE_WRITE8_MEMBER(trigsnd_w);
DECLARE_READ8_MEMBER(pia0_b_r);
DECLARE_READ8_MEMBER(pia1_b_r);
- DECLARE_WRITE8_MEMBER(fclown_ay8910_w);
+ void fclown_ay8910_w(offs_t offset, u8 data);
TILE_GET_INFO_MEMBER(get_fclown_tile_info);
void _5clown_palette(palette_device &palette) const;
uint32_t screen_update_fclown(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -583,12 +583,12 @@ uint32_t _5clown_state::screen_update_fclown(screen_device &screen, bitmap_ind16
void _5clown_state::_5clown_palette(palette_device &palette) const
{
/*
- 7654 3210
- ---- ---x RED component.
- ---- --x- GREEN component.
- ---- -x-- BLUE component.
- ---- x--- background killer.
- xxxx ---- unused.
+ 7654 3210
+ ---- ---x RED component.
+ ---- --x- GREEN component.
+ ---- -x-- BLUE component.
+ ---- x--- background killer.
+ xxxx ---- unused.
*/
/* 0000KBGR */
@@ -714,10 +714,10 @@ WRITE8_MEMBER(_5clown_state::cpu_d800_w)
* AY3-8910 R/W Handlers *
********************************/
-WRITE8_MEMBER(_5clown_state::fclown_ay8910_w)
+void _5clown_state::fclown_ay8910_w(offs_t offset, u8 data)
{
- m_ay8910->address_w(space, 0, offset);
- m_ay8910->data_w(space, 0, data);
+ m_ay8910->address_w(offset);
+ m_ay8910->data_w(data);
}
@@ -742,7 +742,7 @@ WRITE8_MEMBER(_5clown_state::snd_800_w)
if (m_snd_latch_0a02 == 0x00)
{
- fclown_ay8910_w(space, m_ay8910_addr, m_snd_latch_0800);
+ fclown_ay8910_w(m_ay8910_addr, m_snd_latch_0800);
}
}
@@ -1020,14 +1020,14 @@ GFXDECODE_END
* Machine Drivers *
*************************/
-MACHINE_CONFIG_START(_5clown_state::fclown)
-
+void _5clown_state::fclown(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6502, MASTER_CLOCK/8) /* guess, seems ok */
- MCFG_DEVICE_PROGRAM_MAP(fclown_map)
+ M6502(config, m_maincpu, MASTER_CLOCK/8); /* guess, seems ok */
+ m_maincpu->set_addrmap(AS_PROGRAM, &_5clown_state::fclown_map);
- MCFG_DEVICE_ADD("audiocpu", M6502, MASTER_CLOCK/8) /* guess, seems ok */
- MCFG_DEVICE_PROGRAM_MAP(fcaudio_map)
+ M6502(config, m_audiocpu, MASTER_CLOCK/8); /* guess, seems ok */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &_5clown_state::fcaudio_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -1043,13 +1043,13 @@ MACHINE_CONFIG_START(_5clown_state::fclown)
pia1.writepb_handler().set(FUNC(_5clown_state::mux_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(_5clown_state, screen_update_fclown)
- 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((39+1)*8, (31+1)*8);
+ screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(_5clown_state::screen_update_fclown));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_fclown);
PALETTE(config, m_palette, FUNC(_5clown_state::_5clown_palette), 256);
@@ -1065,10 +1065,8 @@ MACHINE_CONFIG_START(_5clown_state::fclown)
AY8910(config, m_ay8910, MASTER_CLOCK/8).add_route(ALL_OUTPUTS, "mono", 1.00); /* guess, seems ok */
- MCFG_DEVICE_ADD("oki6295", OKIM6295, MASTER_CLOCK/12, okim6295_device::PIN7_LOW) /* guess, seems ok; pin7 guessed, seems ok */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.20)
-
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki6295", MASTER_CLOCK/12, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.20); /* guess, seems ok; pin7 guessed, seems ok */
+}
/*************************
diff --git a/src/mame/drivers/8080bw.cpp b/src/mame/drivers/8080bw.cpp
index 54acc0d8645..6650c16c1b7 100644
--- a/src/mame/drivers/8080bw.cpp
+++ b/src/mame/drivers/8080bw.cpp
@@ -819,20 +819,18 @@ void _8080bw_state::spacecom_io_map(address_map &map)
void _8080bw_state::spacecom(machine_config &config)
{
/* basic machine hardware */
- I8080A(config, m_maincpu, XTAL(18'000'000) / 10); // divider guessed
+ I8080A(config, m_maincpu, XTAL(18'000'000) / 9); // divider guessed
// TODO: move irq handling away from mw8080.c, this game runs on custom hardware
m_maincpu->set_addrmap(AS_PROGRAM, &_8080bw_state::spacecom_map);
m_maincpu->set_addrmap(AS_IO, &_8080bw_state::spacecom_io_map);
+ m_maincpu->set_irq_acknowledge_callback(FUNC(_8080bw_state::interrupt_vector));
MCFG_MACHINE_START_OVERRIDE(mw8080bw_state, mw8080bw)
MCFG_MACHINE_RESET_OVERRIDE(mw8080bw_state, mw8080bw)
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(60);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500));
- m_screen->set_size(32*8, 32*8);
- m_screen->set_visarea(0*8, 32*8-1, 0*8, 28*8-1);
+ m_screen->set_raw(XTAL(18'000'000) / 3, 384, 0, 256, 260, 0, 224); // parameters guessed
m_screen->set_screen_update(FUNC(_8080bw_state::screen_update_spacecom));
PALETTE(config, m_palette, palette_device::MONOCHROME);
@@ -1144,6 +1142,7 @@ void _8080bw_state::escmars(machine_config &config)
I8080(config, m_maincpu, XTAL(18'000'000) / 10); // divider guessed
m_maincpu->set_addrmap(AS_PROGRAM, &_8080bw_state::escmars_map);
m_maincpu->set_addrmap(AS_IO, &_8080bw_state::lrescue_io_map);
+ m_maincpu->set_irq_acknowledge_callback(FUNC(_8080bw_state::interrupt_vector));
MCFG_MACHINE_START_OVERRIDE(_8080bw_state, extra_8080bw)
MCFG_MACHINE_RESET_OVERRIDE(_8080bw_state, mw8080bw)
@@ -1243,7 +1242,6 @@ void _8080bw_state::cosmicmo(machine_config &config)
/* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &_8080bw_state::cosmicmo_io_map);
- m_maincpu->set_vblank_int("screen", FUNC(_8080bw_state::irq0_line_hold));
MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
@@ -1537,6 +1535,7 @@ void _8080bw_state::schaser(machine_config &config)
I8080(config.replace(), m_maincpu, 1996800); /* 19.968MHz / 10 */
m_maincpu->set_addrmap(AS_PROGRAM, &_8080bw_state::schaser_map);
m_maincpu->set_addrmap(AS_IO, &_8080bw_state::schaser_io_map);
+ m_maincpu->set_irq_acknowledge_callback(FUNC(_8080bw_state::interrupt_vector));
WATCHDOG_TIMER(config, m_watchdog).set_vblank_count("screen", 255);
MCFG_MACHINE_START_OVERRIDE(_8080bw_state,schaser)
@@ -1707,6 +1706,14 @@ CUSTOM_INPUT_MEMBER(_8080bw_state::sflush_80_r)
return (m_screen->vpos() & 0x80) ? 1 : 0;
}
+uint8_t _8080bw_state::sflush_in0_r()
+{
+ // guess at interrupt acknowledgement
+ if (!machine().side_effects_disabled())
+ m_maincpu->set_input_line(0, CLEAR_LINE);
+ return ioport("IN0")->read();
+}
+
void _8080bw_state::sflush_map(address_map &map)
{
map(0x0000, 0x1fff).ram();
@@ -1714,7 +1721,7 @@ void _8080bw_state::sflush_map(address_map &map)
map(0x8008, 0x8008).portr("PADDLE");
map(0x8009, 0x8009).r(m_mb14241, FUNC(mb14241_device::shift_result_r));
map(0x800a, 0x800a).portr("IN2");
- map(0x800b, 0x800b).portr("IN0");
+ map(0x800b, 0x800b).r(FUNC(_8080bw_state::sflush_in0_r));
map(0x8018, 0x8018).w(m_mb14241, FUNC(mb14241_device::shift_data_w));
map(0x8019, 0x8019).w(m_mb14241, FUNC(mb14241_device::shift_count_w));
map(0x801a, 0x801a).nopw();
@@ -1769,7 +1776,6 @@ void _8080bw_state::sflush(machine_config &config)
/* basic machine hardware */
M6800(config.replace(), m_maincpu, 1500000); // ?
m_maincpu->set_addrmap(AS_PROGRAM, &_8080bw_state::sflush_map);
- m_maincpu->set_vblank_int("screen", FUNC(_8080bw_state::irq0_line_hold));
MCFG_MACHINE_START_OVERRIDE(_8080bw_state,sflush)
@@ -1934,14 +1940,17 @@ void _8080bw_state::lupin3a(machine_config &config)
/* */
/*******************************************************/
-INTERRUPT_GEN_MEMBER(_8080bw_state::polaris_interrupt)
+WRITE_LINE_MEMBER(_8080bw_state::polaris_60hz_w)
{
- m_polaris_cloud_speed++;
-
- if (m_polaris_cloud_speed >= 4) /* every 4 frames - this was verified against real machine */
+ if (state)
{
- m_polaris_cloud_speed = 0;
- m_polaris_cloud_pos++;
+ m_polaris_cloud_speed++;
+
+ if (m_polaris_cloud_speed >= 4) /* every 4 frames - this was verified against real machine */
+ {
+ m_polaris_cloud_speed = 0;
+ m_polaris_cloud_pos++;
+ }
}
}
@@ -2039,10 +2048,8 @@ void _8080bw_state::polaris(machine_config &config)
mw8080bw_root(config);
/* basic machine hardware */
- I8080(config.replace(), m_maincpu, 1996800); /* 19.968MHz / 10 */
m_maincpu->set_addrmap(AS_PROGRAM, &_8080bw_state::schaser_map);
m_maincpu->set_addrmap(AS_IO, &_8080bw_state::polaris_io_map);
- m_maincpu->set_vblank_int("screen", FUNC(_8080bw_state::polaris_interrupt));
WATCHDOG_TIMER(config, m_watchdog).set_vblank_count("screen", 255);
@@ -2053,6 +2060,7 @@ void _8080bw_state::polaris(machine_config &config)
/* video hardware */
m_screen->set_screen_update(FUNC(_8080bw_state::screen_update_polaris));
+ m_screen->screen_vblank().set(FUNC(_8080bw_state::polaris_60hz_w));
PALETTE(config, m_palette, palette_device::RBG_3BIT);
@@ -2741,6 +2749,7 @@ void _8080bw_state::shuttlei(machine_config &config)
// TODO: move irq handling away from mw8080.cpp, this game runs on custom hardware
m_maincpu->set_addrmap(AS_PROGRAM, &_8080bw_state::shuttlei_map);
m_maincpu->set_addrmap(AS_IO, &_8080bw_state::shuttlei_io_map);
+ m_maincpu->set_irq_acknowledge_callback(FUNC(_8080bw_state::interrupt_vector));
MCFG_MACHINE_START_OVERRIDE(_8080bw_state, extra_8080bw)
MCFG_MACHINE_RESET_OVERRIDE(_8080bw_state, mw8080bw)
@@ -2796,6 +2805,12 @@ MACHINE_RESET_MEMBER(_8080bw_state,darthvdr)
/* do nothing for now - different interrupt system */
}
+IRQ_CALLBACK_MEMBER(_8080bw_state::darthvdr_interrupt_vector)
+{
+ m_maincpu->set_input_line(0, CLEAR_LINE);
+ return 0xff;
+}
+
READ8_MEMBER(_8080bw_state::darthvdr_01_r)
{
uint8_t data = ioport("P2")->read();
@@ -2867,7 +2882,7 @@ void _8080bw_state::darthvdr(machine_config &config)
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &_8080bw_state::darthvdr_map);
m_maincpu->set_addrmap(AS_IO, &_8080bw_state::darthvdr_io_map);
- m_maincpu->set_vblank_int("screen", FUNC(_8080bw_state::irq0_line_hold));
+ m_maincpu->set_irq_acknowledge_callback(FUNC(_8080bw_state::darthvdr_interrupt_vector));
MCFG_MACHINE_START_OVERRIDE(_8080bw_state,darthvdr)
MCFG_MACHINE_RESET_OVERRIDE(_8080bw_state,darthvdr)
@@ -2877,6 +2892,7 @@ void _8080bw_state::darthvdr(machine_config &config)
/* video hardware */
m_screen->set_screen_update(FUNC(_8080bw_state::screen_update_invaders));
+ m_screen->screen_vblank().set_inputline(m_maincpu, 0, ASSERT_LINE);
}
@@ -4484,6 +4500,16 @@ ROM_START( invasiona )
ROM_LOAD( "invasiona_5.bin", 0x1c00, 0x0400, CRC(59134ff8) SHA1(2e6a040066b35b10f867a3e500e3b13922c0eb7a) )
ROM_END
+ROM_START( invasiona2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "0.0.bin", 0x0000, 0x0400, CRC(7a9b4485) SHA1(dde918ec106971972bf7c7e5085c1262522f7e35) )
+ ROM_LOAD( "1.1.bin", 0x0400, 0x0400, CRC(7c86620d) SHA1(9e92ec0aa4eee96a7fa115a14a611c488d13b9dd) )
+ ROM_LOAD( "2.2.bin", 0x0800, 0x0400, CRC(b949185e) SHA1(f6dad27fdc5a030d2391078926bcf8e4adf21a12) )
+ ROM_LOAD( "3.5.bin", 0x1400, 0x0400, CRC(8ec9eae2) SHA1(48d7a7dc61e0417ca4093e5c2a36efd96e359233) )
+ ROM_LOAD( "4.6.bin", 0x1800, 0x0400, CRC(ec0edb4a) SHA1(8c6946b50ba5c319fe03c55b43c4e714387719b8) )
+ ROM_LOAD( "5.7.bin", 0x1c00, 0x0400, CRC(c3466380) SHA1(19b0f274a1b97a6ab48f3fe11fdee44ed2f50603) )
+ROM_END
+
ROM_START( invasionb )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "invasionb_0.bin", 0x0000, 0x0400, CRC(7a9b4485) SHA1(dde918ec106971972bf7c7e5085c1262522f7e35) )
@@ -5153,10 +5179,11 @@ GAMEL(1980, spaceat2, invaders, invaders, spaceat2, mw8080bw_state, empty_i
GAMEL(1979, spacecom, invaders, spacecom, spacecom, _8080bw_state, init_spacecom, ROT270, "bootleg", "Space Combat (bootleg of Space Invaders)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_spacecom )
GAME( 1978, spacerng, invaders, spacerng, sitv, _8080bw_state, empty_init, ROT90, "bootleg (Leisure Time Electronics)", "Space Ranger", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // many modifications
GAMEL(19??, invasion, invaders, invaders, invasion, mw8080bw_state, empty_init, ROT270, "bootleg (Sidam)", "Invasion (Sidam)", MACHINE_SUPPORTS_SAVE, layout_invaders )
-GAMEL(19??, invasiona, invaders, invaders, invasion, mw8080bw_state, empty_init, ROT270, "bootleg", "Invasion (bootleg set 1, normal graphics)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // has Sidam replaced with 'Ufo Monster Attack' and standard GFX
-GAMEL(19??, invasionb, invaders, invaders, invasion, mw8080bw_state, empty_init, ROT270, "bootleg", "Invasion (bootleg set 2, no copyright)", MACHINE_SUPPORTS_SAVE, layout_invaders )
-GAMEL(19??, invasionrz, invaders, invaders, invasion, mw8080bw_state, empty_init, ROT270, "bootleg (R Z SRL Bologna)", "Invasion (bootleg set 3, R Z SRL Bologna)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_invaders )
-GAMEL(19??, invasionrza, invaders, invaders, invasion, mw8080bw_state, empty_init, ROT270, "bootleg (R Z SRL Bologna)", "Invasion (bootleg set 4, R Z SRL Bologna)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_invaders )
+GAMEL(1979, invasiona, invaders, invaders, invasion, mw8080bw_state, empty_init, ROT270, "bootleg", "UFO Robot Attack (bootleg of Invasion, newer set)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // has Sidam replaced with 'Ufo Monster Attack' and standard GFX
+GAMEL(1979, invasiona2, invaders, invaders, invasion, mw8080bw_state, empty_init, ROT270, "bootleg", "UFO Robot Attack (bootleg of Invasion, older set)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // has Sidam replaced with 'Ufo Monster Attack' and standard GFX
+GAMEL(1979, invasionb, invaders, invaders, invasion, mw8080bw_state, empty_init, ROT270, "bootleg", "Invasion (Italian bootleg)", MACHINE_SUPPORTS_SAVE, layout_invaders )
+GAMEL(1979, invasionrz, invaders, invaders, invasion, mw8080bw_state, empty_init, ROT270, "bootleg (R Z SRL Bologna)", "Invasion (bootleg set 1, R Z SRL Bologna)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_invaders )
+GAMEL(1979, invasionrza, invaders, invaders, invasion, mw8080bw_state, empty_init, ROT270, "bootleg (R Z SRL Bologna)", "Invasion (bootleg set 2, R Z SRL Bologna)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_invaders )
GAMEL(19??, invadersem, invaders, invaders, sitv, mw8080bw_state, empty_init, ROT270, "Electromar", "Space Invaders (Electromar, Spanish)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // possibly licensed
GAMEL(1978, superinv, invaders, invaders, superinv, mw8080bw_state, empty_init, ROT270, "bootleg", "Super Invaders (bootleg set 1)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // not related to Zenitone-Microsec version
GAMEL(1978, sinvemag, invaders, invaders, sinvemag, mw8080bw_state, empty_init, ROT270, "bootleg (Emag)", "Super Invaders (bootleg set 2)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // not related to Zenitone-Microsec version
diff --git a/src/mame/drivers/a1supply.cpp b/src/mame/drivers/a1supply.cpp
index 38dd35768df..964736feb25 100644
--- a/src/mame/drivers/a1supply.cpp
+++ b/src/mame/drivers/a1supply.cpp
@@ -87,20 +87,21 @@ void a1supply_state::video_start()
{
}
-MACHINE_CONFIG_START(a1supply_state::a1supply)
-
+void a1supply_state::a1supply(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK)
- MCFG_NETLIST_SETUP(a1supply)
+ NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK);
+ m_maincpu->set_constructor(netlist_a1supply);
/* video hardware */
- MCFG_FIXFREQ_ADD("fixfreq", "screen")
- MCFG_FIXFREQ_MONITOR_CLOCK(MASTER_CLOCK)
- MCFG_FIXFREQ_HORZ_PARAMS(H_TOTAL-67,H_TOTAL-40,H_TOTAL-8,H_TOTAL)
- MCFG_FIXFREQ_VERT_PARAMS(V_TOTAL-22,V_TOTAL-19,V_TOTAL-12,V_TOTAL)
- MCFG_FIXFREQ_FIELDCOUNT(1)
- MCFG_FIXFREQ_SYNC_THRESHOLD(0.30)
-MACHINE_CONFIG_END
+ SCREEN(config, "screen", SCREEN_TYPE_RASTER);
+ FIXFREQ(config, m_video).set_screen("screen");
+ m_video->set_monitor_clock(MASTER_CLOCK);
+ m_video->set_horz_params(H_TOTAL-67,H_TOTAL-40,H_TOTAL-8,H_TOTAL);
+ 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);
+}
/***************************************************************************
diff --git a/src/mame/drivers/a5105.cpp b/src/mame/drivers/a5105.cpp
index f52c14979aa..037daf3feab 100644
--- a/src/mame/drivers/a5105.cpp
+++ b/src/mame/drivers/a5105.cpp
@@ -560,7 +560,8 @@ static const z80_daisy_config a5105_daisy_chain[] =
{ nullptr }
};
-MACHINE_CONFIG_START(a5105_state::a5105)
+void a5105_state::a5105(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, XTAL(15'000'000) / 4);
m_maincpu->set_addrmap(AS_PROGRAM, &a5105_state::a5105_mem);
@@ -568,12 +569,12 @@ MACHINE_CONFIG_START(a5105_state::a5105)
m_maincpu->set_daisy_config(a5105_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_DEVICE("upd7220", upd7220_device, screen_update)
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 25*8-1)
+ 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_screen_update("upd7220", FUNC(upd7220_device::screen_update));
+ m_screen->set_size(40*8, 32*8);
+ m_screen->set_visarea(0, 40*8-1, 0, 25*8-1);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_a5105);
PALETTE(config, m_palette, FUNC(a5105_state::a5105_palette), 16);
@@ -585,8 +586,8 @@ MACHINE_CONFIG_START(a5105_state::a5105)
/* Devices */
UPD7220(config, m_hgdc, XTAL(15'000'000) / 16); // unk clock
m_hgdc->set_addrmap(0, &a5105_state::upd7220_map);
- m_hgdc->set_display_pixels_callback(FUNC(a5105_state::hgdc_display_pixels), this);
- m_hgdc->set_draw_text_callback(FUNC(a5105_state::hgdc_draw_text), this);
+ m_hgdc->set_display_pixels(FUNC(a5105_state::hgdc_display_pixels));
+ m_hgdc->set_draw_text(FUNC(a5105_state::hgdc_draw_text));
z80ctc_device& ctc(Z80CTC(config, "z80ctc", XTAL(15'000'000) / 4));
ctc.intr_callback().set_inputline(m_maincpu, 0);
@@ -596,17 +597,17 @@ MACHINE_CONFIG_START(a5105_state::a5105)
z80pio_device& pio(Z80PIO(config, "z80pio", XTAL(15'000'000) / 4));
pio.out_int_callback().set_inputline(m_maincpu, 0);
- MCFG_CASSETTE_ADD( "cassette" )
+ CASSETTE(config, m_cass);
UPD765A(config, m_fdc, 8'000'000, true, true);
- MCFG_FLOPPY_DRIVE_ADD("upd765a:0", a5105_floppies, "525qd", a5105_state::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("upd765a:1", a5105_floppies, "525qd", a5105_state::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("upd765a:2", a5105_floppies, "525qd", a5105_state::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("upd765a:3", a5105_floppies, "525qd", a5105_state::floppy_formats)
+ FLOPPY_CONNECTOR(config, "upd765a:0", a5105_floppies, "525qd", a5105_state::floppy_formats);
+ FLOPPY_CONNECTOR(config, "upd765a:1", a5105_floppies, "525qd", a5105_state::floppy_formats);
+ FLOPPY_CONNECTOR(config, "upd765a:2", a5105_floppies, "525qd", a5105_state::floppy_formats);
+ FLOPPY_CONNECTOR(config, "upd765a:3", a5105_floppies, "525qd", a5105_state::floppy_formats);
/* internal ram */
RAM(config, RAM_TAG).set_default_size("64K");
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( a5105 )
diff --git a/src/mame/drivers/a51xx.cpp b/src/mame/drivers/a51xx.cpp
index 7273d616ecf..39ff383e87e 100644
--- a/src/mame/drivers/a51xx.cpp
+++ b/src/mame/drivers/a51xx.cpp
@@ -126,42 +126,42 @@ static GFXDECODE_START( gfx_a51xx )
GFXDECODE_ENTRY( "chargen", 0x0000, a51xx_charlayout, 0, 1 )
GFXDECODE_END
-MACHINE_CONFIG_START(a51xx_state::a5120)
+void a51xx_state::a5120(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(4'000'000))
- MCFG_DEVICE_PROGRAM_MAP(a5120_mem)
- MCFG_DEVICE_IO_MAP(a5120_io)
+ Z80(config, m_maincpu, XTAL(4'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &a51xx_state::a5120_mem);
+ m_maincpu->set_addrmap(AS_IO, &a51xx_state::a5120_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(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_DRIVER(a51xx_state, screen_update_a5120)
- 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_full();
+ screen.set_screen_update(FUNC(a51xx_state::screen_update_a5120));
+ screen.set_palette("palette");
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_a51xx)
+ GFXDECODE(config, "gfxdecode", "palette", gfx_a51xx);
PALETTE(config, "palette", palette_device::MONOCHROME);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(a51xx_state::a5130)
+void a51xx_state::a5130(machine_config &config)
+{
a5120(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(a5130_mem)
- MCFG_DEVICE_IO_MAP(a5130_io)
+ m_maincpu->set_addrmap(AS_PROGRAM, &a51xx_state::a5130_mem);
+ m_maincpu->set_addrmap(AS_IO, &a51xx_state::a5130_io);
MCFG_MACHINE_RESET_OVERRIDE(a51xx_state,a5130)
/* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(a51xx_state, screen_update_a5130)
+ subdevice<screen_device>("screen")->set_screen_update(FUNC(a51xx_state::screen_update_a5130));
MCFG_VIDEO_START_OVERRIDE(a51xx_state,a5130)
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( a5120 )
diff --git a/src/mame/drivers/a7150.cpp b/src/mame/drivers/a7150.cpp
index 1ab66db66bd..cea6f8b3a20 100644
--- a/src/mame/drivers/a7150.cpp
+++ b/src/mame/drivers/a7150.cpp
@@ -475,8 +475,7 @@ void a7150_state::a7150(machine_config &config)
m_maincpu->esc_data_handler().set("i8087", FUNC(i8087_device::addr_w));
i8087_device &i8087(I8087(config, "i8087", XTAL(9'832'000)/2));
- i8087.set_addrmap(AS_PROGRAM, &a7150_state::a7150_mem);
- i8087.set_data_width(16);
+ i8087.set_space_86(m_maincpu, AS_PROGRAM);
i8087.irq().set(m_pic8259, FUNC(pic8259_device::ir0_w));
i8087.busy().set_inputline("maincpu", INPUT_LINE_TEST);
diff --git a/src/mame/drivers/aa310.cpp b/src/mame/drivers/aa310.cpp
index 838fad59bff..6e124e6d693 100644
--- a/src/mame/drivers/aa310.cpp
+++ b/src/mame/drivers/aa310.cpp
@@ -444,7 +444,6 @@ void aa310_state::aa310(machine_config &config)
DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_dac[i], 0).add_route(0, "speaker", 0.1); // unknown DAC
}
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
- vref.set_output(5.0);
vref.add_route(0, "dac0", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac0", -1.0, DAC_VREF_NEG_INPUT);
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);
diff --git a/src/mame/drivers/aaa.cpp b/src/mame/drivers/aaa.cpp
index 18e5a6335e1..bf5d725de70 100644
--- a/src/mame/drivers/aaa.cpp
+++ b/src/mame/drivers/aaa.cpp
@@ -7,9 +7,13 @@ Skeleton driver for Ann Arbor Ambassador terminal.
************************************************************************************************************************************/
#include "emu.h"
+#include "bus/rs232/rs232.h"
#include "cpu/z80/z80.h"
+#include "machine/74259.h"
#include "machine/input_merger.h"
#include "machine/mc2661.h"
+#include "machine/nvram.h"
+#include "screen.h"
class aaa_state : public driver_device
{
@@ -17,93 +21,277 @@ public:
aaa_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
- , m_pci(*this, "pci%u", 0U)
- , m_chargen(*this, "chargen")
+ , m_usart(*this, "usart%u", 0U)
+ , m_screen(*this, "screen")
+ , m_key_row(*this, "KSL%u", 0U)
+ , m_font(*this, "font")
+ , m_display_ram(*this, "display")
+ , m_linecount(*this, "linecount")
{ }
void aaa(machine_config &config);
private:
- template<int N> u8 pci_r(offs_t offset);
- template<int N> void pci_w(offs_t offset, u8 data);
+ u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+ void display_ram_w(offs_t offset, u8 data);
+ template<int N> u8 usart_r(offs_t offset);
+ template<int N> void usart_w(offs_t offset, u8 data);
+ u8 keyboard_r(offs_t offset);
void mem_map(address_map &map);
void io_map(address_map &map);
required_device<cpu_device> m_maincpu;
- required_device_array<mc2661_device, 2> m_pci;
- required_region_ptr<u8> m_chargen;
+ required_device_array<mc2661_device, 2> m_usart;
+ required_device<screen_device> m_screen;
+ optional_ioport_array<16> m_key_row;
+ required_region_ptr<u8> m_font;
+ required_shared_ptr<u8> m_display_ram;
+ required_shared_ptr<u8> m_linecount;
};
+u32 aaa_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ return 0;
+}
+
+void aaa_state::display_ram_w(offs_t offset, u8 data)
+{
+ // 6 bits wide (2 words per character)
+ m_display_ram[offset] = data | 0xc0;
+}
+
template<int N>
-u8 aaa_state::pci_r(offs_t offset)
+u8 aaa_state::usart_r(offs_t offset)
{
- return m_pci[N]->read(offset >> 1);
+ return m_usart[N]->read(offset >> 1);
}
template<int N>
-void aaa_state::pci_w(offs_t offset, u8 data)
+void aaa_state::usart_w(offs_t offset, u8 data)
{
- m_pci[N]->write(offset >> 1, data);
+ m_usart[N]->write(offset >> 1, data);
+}
+
+u8 aaa_state::keyboard_r(offs_t offset)
+{
+ // TODO: key click
+ return m_key_row[offset & 15].read_safe(0xff);
}
void aaa_state::mem_map(address_map &map)
{
- map(0x0000, 0x1fff).rom().region("maincpu", 0);
- map(0x2000, 0x27ff).ram();
- map(0x2800, 0x2fff).ram(); // NVRAM?
- map(0x8000, 0x9fff).rom().region("maincpu", 0x8000);
- map(0xc000, 0xffff).ram();
+ map(0x0000, 0x1fff).rom().region("loprog", 0);
+ map(0x2000, 0x27ff).mirror(0x800).ram();
+ map(0x3f00, 0x3f03).writeonly().share("linecount"); // LS670 at 7B on main board
+ map(0x4000, 0x43ff).ram().share("nvram");
+ map(0x8000, 0x9fff).rom().region("hiprog", 0);
+ map(0xc000, 0xffff).ram().w(FUNC(aaa_state::display_ram_w)).share("display");
}
void aaa_state::io_map(address_map &map)
{
map.global_mask(0xff);
- map(0x00, 0x00).select(6).r(FUNC(aaa_state::pci_r<0>));
- map(0x01, 0x01).select(6).w(FUNC(aaa_state::pci_w<0>));
- map(0x40, 0x40).select(6).r(FUNC(aaa_state::pci_r<1>));
- map(0x41, 0x41).select(6).w(FUNC(aaa_state::pci_w<1>));
- map(0x87, 0x87).nopw();
+ map(0x00, 0x00).select(6).r(FUNC(aaa_state::usart_r<0>));
+ map(0x01, 0x01).select(6).w(FUNC(aaa_state::usart_w<0>));
+ map(0x40, 0x40).select(6).r(FUNC(aaa_state::usart_r<1>));
+ map(0x41, 0x41).select(6).w(FUNC(aaa_state::usart_w<1>));
+ map(0x80, 0x87).w("ctrllatch", FUNC(ls259_device::write_d7));
+ map(0xc0, 0xff).r(FUNC(aaa_state::keyboard_r));
}
-static INPUT_PORTS_START( aaa )
+static INPUT_PORTS_START(aaa)
+ // KR0, KR1, KR2, KR3, KR4, KR5, KR6, KR7 = connector pins W, X, Y, Z, AA, BB, CC, DD
+
+ PORT_START("KSL2") // connector pin T
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('[') PORT_CHAR('{') PORT_CODE(KEYCODE_OPENBRACE)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('a') PORT_CHAR('A') PORT_CODE(KEYCODE_A)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('b') PORT_CHAR('B') PORT_CODE(KEYCODE_B)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('c') PORT_CHAR('C') PORT_CODE(KEYCODE_C)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('d') PORT_CHAR('D') PORT_CODE(KEYCODE_D)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('e') PORT_CHAR('E') PORT_CODE(KEYCODE_E)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('f') PORT_CHAR('F') PORT_CODE(KEYCODE_F)
+
+ PORT_START("KSL3") // connector pin S
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('g') PORT_CHAR('G') PORT_CODE(KEYCODE_G)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('h') PORT_CHAR('H') PORT_CODE(KEYCODE_H)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('i') PORT_CHAR('I') PORT_CODE(KEYCODE_I)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('j') PORT_CHAR('J') PORT_CODE(KEYCODE_J)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('k') PORT_CHAR('K') PORT_CODE(KEYCODE_K)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('l') PORT_CHAR('L') PORT_CODE(KEYCODE_L)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('m') PORT_CHAR('M') PORT_CODE(KEYCODE_M)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('n') PORT_CHAR('N') PORT_CODE(KEYCODE_N)
+
+ PORT_START("KSL4") // connector pin N
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('o') PORT_CHAR('O') PORT_CODE(KEYCODE_O)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('p') PORT_CHAR('P') PORT_CODE(KEYCODE_P)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('q') PORT_CHAR('Q') PORT_CODE(KEYCODE_Q)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('r') PORT_CHAR('R') PORT_CODE(KEYCODE_R)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('s') PORT_CHAR('S') PORT_CODE(KEYCODE_S)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('t') PORT_CHAR('T') PORT_CODE(KEYCODE_T)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('u') PORT_CHAR('U') PORT_CODE(KEYCODE_U)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('v') PORT_CHAR('V') PORT_CODE(KEYCODE_V)
+
+ PORT_START("KSL5") // connector pin M
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('w') PORT_CHAR('W') PORT_CODE(KEYCODE_W)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('x') PORT_CHAR('X') PORT_CODE(KEYCODE_X)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('y') PORT_CHAR('Y') PORT_CODE(KEYCODE_Y)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('z') PORT_CHAR('Z') PORT_CODE(KEYCODE_Z)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('`') PORT_CHAR('~') PORT_CODE(KEYCODE_TILDE)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('\'') PORT_CHAR('"') PORT_CODE(KEYCODE_QUOTE)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('\\') PORT_CHAR('|') PORT_CODE(KEYCODE_BACKSLASH)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Pause") PORT_CODE(KEYCODE_LALT)
+
+ PORT_START("KSL6") // connector pin L
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Move Up") PORT_CHAR(UCHAR_MAMEKEY(HOME)) PORT_CODE(KEYCODE_PGUP)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('1') PORT_CHAR('!') PORT_CODE(KEYCODE_1)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('2') PORT_CHAR('@') PORT_CODE(KEYCODE_2)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('3') PORT_CHAR('#') PORT_CODE(KEYCODE_3)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('4') PORT_CHAR('$') PORT_CODE(KEYCODE_4)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('5') PORT_CHAR('%') PORT_CODE(KEYCODE_5)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('6') PORT_CHAR('^') PORT_CODE(KEYCODE_6)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('7') PORT_CHAR('&') PORT_CODE(KEYCODE_7)
+
+ PORT_START("KSL7") // connector pin K
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('8') PORT_CHAR('*') PORT_CODE(KEYCODE_8)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('9') PORT_CHAR('(') PORT_CODE(KEYCODE_9)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('-') PORT_CHAR('_') PORT_CODE(KEYCODE_MINUS)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(';') PORT_CHAR(':') PORT_CODE(KEYCODE_COLON)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(',') PORT_CHAR('<') PORT_CODE(KEYCODE_COMMA)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('=') PORT_CHAR('+') PORT_CODE(KEYCODE_EQUALS)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('.') PORT_CHAR('>') PORT_CODE(KEYCODE_STOP)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('/') PORT_CHAR('?') PORT_CODE(KEYCODE_SLASH)
+
+ PORT_START("KSL8") // connector pin J
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD)) PORT_CODE(KEYCODE_ENTER_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) PORT_CODE(KEYCODE_0_PAD)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) PORT_CODE(KEYCODE_DEL_PAD)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Move Down") PORT_CHAR(UCHAR_MAMEKEY(PGDN)) PORT_CODE(KEYCODE_PGDN)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('0') PORT_CHAR(')') PORT_CODE(KEYCODE_0)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 1 SSA") PORT_CHAR(UCHAR_MAMEKEY(1_PAD)) PORT_CODE(KEYCODE_1_PAD)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 2 " UTF8_DOWN) PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) PORT_CODE(KEYCODE_2_PAD)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 3 ESA") PORT_CHAR(UCHAR_MAMEKEY(3_PAD)) PORT_CODE(KEYCODE_3_PAD)
+
+ PORT_START("KSL9") // connector pin H
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 4 " UTF8_LEFT) PORT_CHAR(UCHAR_MAMEKEY(4_PAD)) PORT_CODE(KEYCODE_4_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 5 Home") PORT_CHAR(UCHAR_MAMEKEY(5_PAD)) PORT_CODE(KEYCODE_5_PAD)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 6 " UTF8_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) PORT_CODE(KEYCODE_6_PAD)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 7 T-Clr") PORT_CHAR(UCHAR_MAMEKEY(7_PAD)) PORT_CODE(KEYCODE_7_PAD)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 8 " UTF8_UP) PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) PORT_CODE(KEYCODE_8_PAD)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 9 T-Set") PORT_CHAR(UCHAR_MAMEKEY(9_PAD)) PORT_CODE(KEYCODE_9_PAD)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Reset")
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Setup")
+
+ PORT_START("KSL10") // connector pin F
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF1") PORT_CHAR(UCHAR_MAMEKEY(F1)) PORT_CODE(KEYCODE_F1)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF2") PORT_CHAR(UCHAR_MAMEKEY(F2)) PORT_CODE(KEYCODE_F2)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF3") PORT_CHAR(UCHAR_MAMEKEY(F3)) PORT_CODE(KEYCODE_F3)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Back Space") PORT_CHAR(0x08) PORT_CODE(KEYCODE_BACKSPACE)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF4") PORT_CHAR(UCHAR_MAMEKEY(F4)) PORT_CODE(KEYCODE_F4)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Break")
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF5") PORT_CHAR(UCHAR_MAMEKEY(F5)) PORT_CODE(KEYCODE_F5)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF6") PORT_CHAR(UCHAR_MAMEKEY(F6)) PORT_CODE(KEYCODE_F6)
+
+ PORT_START("KSL11") // connector pin E
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Del")
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF7") PORT_CHAR(UCHAR_MAMEKEY(F7)) PORT_CODE(KEYCODE_F7)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF8") PORT_CHAR(UCHAR_MAMEKEY(F8)) PORT_CODE(KEYCODE_F8)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF9") PORT_CHAR(UCHAR_MAMEKEY(F9)) PORT_CODE(KEYCODE_F9)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF10") PORT_CHAR(UCHAR_MAMEKEY(F10)) PORT_CODE(KEYCODE_F10)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF11") PORT_CHAR(UCHAR_MAMEKEY(F11)) PORT_CODE(KEYCODE_F11)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PF12") PORT_CHAR(UCHAR_MAMEKEY(F12)) PORT_CODE(KEYCODE_F12)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Erase")
+
+ PORT_START("KSL12") // connector pin D
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Edit")
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Line Feed") PORT_CHAR(0x0a) PORT_CODE(KEYCODE_RALT)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Delete") PORT_CHAR(UCHAR_MAMEKEY(DEL))
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(']') PORT_CHAR('}') PORT_CODE(KEYCODE_CLOSEBRACE)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Insert") PORT_CHAR(UCHAR_MAMEKEY(INSERT))
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Print")
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Return") PORT_CHAR(0x0d) PORT_CODE(KEYCODE_ENTER)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Send")
+
+ PORT_START("KSL13") // connector pin C
+ PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNUSED)
+
+ PORT_START("KSL14") // connector pin B
+ PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNUSED)
+
+ PORT_START("KSL15") // connector pin A
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Space Bar") PORT_CHAR(' ') PORT_CODE(KEYCODE_SPACE)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Tab " UTF8_RIGHT " " UTF8_LEFT) PORT_CHAR(0x09) PORT_CODE(KEYCODE_TAB)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) PORT_CODE(KEYCODE_LCONTROL)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CHAR(0x1b) PORT_CODE(KEYCODE_ESC)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left Shift") PORT_CHAR(UCHAR_MAMEKEY(LSHIFT)) PORT_CODE(KEYCODE_LSHIFT)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right Shift") PORT_CODE(KEYCODE_RSHIFT) // possibly the other way around
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED)
INPUT_PORTS_END
void aaa_state::aaa(machine_config &config)
{
- Z80(config, m_maincpu, 2'000'000);
+ Z80(config, m_maincpu, 18.414_MHz_XTAL / 5);
m_maincpu->set_addrmap(AS_PROGRAM, &aaa_state::mem_map);
m_maincpu->set_addrmap(AS_IO, &aaa_state::io_map);
- input_merger_device &pciint(INPUT_MERGER_ANY_HIGH(config, "pciint")); // open collector?
- pciint.output_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // NEC D444C x2 + 3V lithium battery
+
+ LS259(config, "ctrllatch"); // 1B on main board
+
+ input_merger_device &usartint(INPUT_MERGER_ANY_HIGH(config, "usartint")); // open collector
+ usartint.output_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+
+ MC2661(config, m_usart[0], 5.0688_MHz_XTAL); // 16F on I/O board
+ m_usart[0]->txrdy_handler().set("usartint", FUNC(input_merger_device::in_w<0>));
+ m_usart[0]->rxrdy_handler().set("usartint", FUNC(input_merger_device::in_w<1>));
+ m_usart[0]->txemt_dschg_handler().set("usartint", FUNC(input_merger_device::in_w<2>));
+ m_usart[0]->txd_handler().set("printer", FUNC(rs232_port_device::write_txd));
+ m_usart[0]->rts_handler().set("printer", FUNC(rs232_port_device::write_rts));
+ m_usart[0]->dtr_handler().set("printer", FUNC(rs232_port_device::write_dtr));
- MC2661(config, m_pci[0], 5.0688_MHz_XTAL);
- m_pci[0]->txrdy_handler().set("pciint", FUNC(input_merger_device::in_w<0>));
- m_pci[0]->rxrdy_handler().set("pciint", FUNC(input_merger_device::in_w<1>));
- m_pci[0]->txemt_dschg_handler().set("pciint", FUNC(input_merger_device::in_w<2>));
+ MC2661(config, m_usart[1], 5.0688_MHz_XTAL); // 18F on I/O board
+ m_usart[1]->txrdy_handler().set("usartint", FUNC(input_merger_device::in_w<3>));
+ m_usart[1]->rxrdy_handler().set("usartint", FUNC(input_merger_device::in_w<4>));
+ m_usart[1]->txemt_dschg_handler().set("usartint", FUNC(input_merger_device::in_w<5>));
+ m_usart[1]->txd_handler().set("computer", FUNC(rs232_port_device::write_txd));
+ m_usart[1]->rts_handler().set("computer", FUNC(rs232_port_device::write_rts));
+ m_usart[1]->dtr_handler().set("computer", FUNC(rs232_port_device::write_dtr));
- MC2661(config, m_pci[1], 5.0688_MHz_XTAL);
- m_pci[1]->txrdy_handler().set("pciint", FUNC(input_merger_device::in_w<3>));
- m_pci[1]->rxrdy_handler().set("pciint", FUNC(input_merger_device::in_w<4>));
- m_pci[1]->txemt_dschg_handler().set("pciint", FUNC(input_merger_device::in_w<5>));
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(18.414_MHz_XTAL, 990, 0, 800, 310, 0, 240);
+ m_screen->set_screen_update(FUNC(aaa_state::screen_update));
+
+ rs232_port_device &computer(RS232_PORT(config, "computer", default_rs232_devices, nullptr));
+ computer.rxd_handler().set(m_usart[1], FUNC(mc2661_device::rx_w));
+ computer.cts_handler().set(m_usart[1], FUNC(mc2661_device::cts_w));
+ computer.dsr_handler().set(m_usart[1], FUNC(mc2661_device::dsr_w));
+
+ rs232_port_device &printer(RS232_PORT(config, "printer", default_rs232_devices, nullptr));
+ printer.rxd_handler().set(m_usart[0], FUNC(mc2661_device::rx_w));
+ printer.cts_handler().set(m_usart[0], FUNC(mc2661_device::cts_w));
+ printer.dsr_handler().set(m_usart[0], FUNC(mc2661_device::dsr_w));
}
/**************************************************************************************************************
Ann Arbor Ambassador.
-Chips: Z80A, M58725P (16k RAM), 2x SCN2651C, nvram, button-battery
-Crystals: 18.414, 6.0688
+Chips: Z80A, M58725P-15, 6x MK4116N-36P, 2x SCN2651C, nvram, button-battery
+Crystals: 18.414, 5.0688
***************************************************************************************************************/
ROM_START( aaa )
- ROM_REGION(0x10000, "maincpu", 0)
+ ROM_REGION(0x2000, "loprog", 0)
ROM_LOAD( "459_1.bin", 0x0000, 0x1000, CRC(55fb3e3b) SHA1(349cd257b1468827e1b389be7c989d0e4a13a5f1) )
ROM_LOAD( "459_3.bin", 0x1000, 0x1000, CRC(e1e84ca4) SHA1(42dc5f4211beee79178f0c03bb45c66833119eae) )
- ROM_LOAD( "459_4.bin", 0x8000, 0x2000, CRC(4038aa89) SHA1(caf33c1f87aa396860324b9c73b35e4221f03d2e) )
- ROM_REGION(0x1000, "chargen", 0)
+ ROM_REGION(0x2000, "hiprog", 0)
+ ROM_LOAD( "459_4.bin", 0x0000, 0x2000, CRC(4038aa89) SHA1(caf33c1f87aa396860324b9c73b35e4221f03d2e) )
+
+ ROM_REGION(0x1000, "font", 0)
ROM_LOAD( "202510b.bin", 0x0000, 0x1000, CRC(deda4aa4) SHA1(0bce5a8dc260ba51f3e431d8da408eac1f41acf7) )
ROM_END
diff --git a/src/mame/drivers/abc1600.cpp b/src/mame/drivers/abc1600.cpp
index 7506685b3ac..c2d2c817d0a 100644
--- a/src/mame/drivers/abc1600.cpp
+++ b/src/mame/drivers/abc1600.cpp
@@ -873,14 +873,15 @@ void abc1600_state::machine_reset()
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( abc1600 )
+// machine_config( abc1600 )
//-------------------------------------------------
-MACHINE_CONFIG_START(abc1600_state::abc1600)
+void abc1600_state::abc1600(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD(MC68008P8_TAG, M68008, 64_MHz_XTAL / 8)
- MCFG_DEVICE_PROGRAM_MAP(abc1600_mem)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(abc1600_state,abc1600_int_ack)
+ M68008(config, m_maincpu, 64_MHz_XTAL / 8);
+ m_maincpu->set_addrmap(AS_PROGRAM, &abc1600_state::abc1600_mem);
+ m_maincpu->set_irq_acknowledge_callback(FUNC(abc1600_state::abc1600_int_ack));
// video hardware
ABC1600_MOVER(config, ABC1600_MOVER_TAG, 0);
@@ -931,7 +932,7 @@ MACHINE_CONFIG_START(abc1600_state::abc1600)
m_cio->pc_rd_cb().set(FUNC(abc1600_state::cio_pc_r));
m_cio->pc_wr_cb().set(FUNC(abc1600_state::cio_pc_w));
- MCFG_NMC9306_ADD(NMC9306_TAG)
+ NMC9306(config, m_nvram, 0);
E0516(config, E050_C16PC_TAG, 32.768_kHz_XTAL);
@@ -939,42 +940,42 @@ MACHINE_CONFIG_START(abc1600_state::abc1600)
m_fdc->intrq_wr_callback().set(m_cio, FUNC(z8536_device::pb7_w));
m_fdc->drq_wr_callback().set(FUNC(abc1600_state::fdc_drq_w));
- MCFG_FLOPPY_DRIVE_ADD(SAB1797_02P_TAG":0", abc1600_floppies, nullptr, floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(SAB1797_02P_TAG":1", abc1600_floppies, nullptr, floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(SAB1797_02P_TAG":2", abc1600_floppies, "525qd", floppy_image_device::default_floppy_formats)
+ FLOPPY_CONNECTOR(config, SAB1797_02P_TAG":0", abc1600_floppies, nullptr, floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, SAB1797_02P_TAG":1", abc1600_floppies, nullptr, floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, SAB1797_02P_TAG":2", abc1600_floppies, "525qd", floppy_image_device::default_floppy_formats);
RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr);
rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr));
rs232b.rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w));
- MCFG_ABC_KEYBOARD_PORT_ADD(ABC_KEYBOARD_PORT_TAG, "abc99")
- MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(WRITELINE(m_dart, z80dart_device, rxb_w))
- MCFG_ABC_KEYBOARD_OUT_TRXC_HANDLER(WRITELINE(m_dart, z80dart_device, rxtxcb_w))
- MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(WRITELINE(m_dart, z80dart_device, dcdb_w))
-
- MCFG_ABCBUS_SLOT_ADD("bus0i", abc1600bus_cards, nullptr)
- MCFG_ABCBUS_SLOT_IRQ_CALLBACK(WRITELINE(m_cio, z8536_device, pa7_w))
- MCFG_ABCBUS_SLOT_ADD("bus0x", abc1600bus_cards, nullptr)
- MCFG_ABCBUS_SLOT_IRQ_CALLBACK(WRITELINE(m_cio, z8536_device, pa6_w))
- MCFG_ABCBUS_SLOT_NMI_CALLBACK(WRITELINE(*this, abc1600_state, nmi_w))
- MCFG_ABCBUS_SLOT_XINT2_CALLBACK(WRITELINE(m_cio, z8536_device, pa2_w))
- MCFG_ABCBUS_SLOT_XINT3_CALLBACK(WRITELINE(m_cio, z8536_device, pa3_w))
- MCFG_ABCBUS_SLOT_XINT4_CALLBACK(WRITELINE(m_cio, z8536_device, pa4_w))
- MCFG_ABCBUS_SLOT_XINT5_CALLBACK(WRITELINE(m_cio, z8536_device, pa5_w))
- MCFG_ABCBUS_SLOT_ADD("bus1", abc1600bus_cards, nullptr)
- MCFG_ABCBUS_SLOT_IRQ_CALLBACK(WRITELINE(m_cio, z8536_device, pa1_w))
- MCFG_ABCBUS_SLOT_ADD("bus2", abc1600bus_cards, "4105")
- MCFG_ABCBUS_SLOT_IRQ_CALLBACK(WRITELINE(m_cio, z8536_device, pa0_w))
- //MCFG_ABCBUS_SLOT_PREN_CALLBACK(WRITELINE(Z8410AB1_2_TAG, z80dma_device, iei_w))
- MCFG_ABCBUS_SLOT_TRRQ_CALLBACK(WRITELINE(Z8410AB1_2_TAG, z80dma_device, rdy_w))
+ abc_keyboard_port_device &kb(ABC_KEYBOARD_PORT(config, ABC_KEYBOARD_PORT_TAG, abc_keyboard_devices, "abc99"));
+ kb.out_rx_handler().set(m_dart, FUNC(z80dart_device::rxb_w));
+ kb.out_trxc_handler().set(m_dart, FUNC(z80dart_device::rxtxcb_w));
+ kb.out_keydown_handler().set(m_dart, FUNC(z80dart_device::dcdb_w));
+
+ abcbus_slot_device &bus0i(ABCBUS_SLOT(config, "bus0i", 64_MHz_XTAL / 16, abc1600bus_cards, nullptr));
+ bus0i.irq_callback().set(m_cio, FUNC(z8536_device::pa7_w));
+ abcbus_slot_device &bus0x(ABCBUS_SLOT(config, "bus0x", 64_MHz_XTAL / 16, abc1600bus_cards, nullptr));
+ bus0x.irq_callback().set(m_cio, FUNC(z8536_device::pa6_w));
+ bus0x.nmi_callback().set(FUNC(abc1600_state::nmi_w));
+ bus0x.xint2_callback().set(m_cio, FUNC(z8536_device::pa2_w));
+ bus0x.xint3_callback().set(m_cio, FUNC(z8536_device::pa3_w));
+ bus0x.xint4_callback().set(m_cio, FUNC(z8536_device::pa4_w));
+ bus0x.xint5_callback().set(m_cio, FUNC(z8536_device::pa5_w));
+ abcbus_slot_device &bus1(ABCBUS_SLOT(config, "bus1", 64_MHz_XTAL / 16, abc1600bus_cards, nullptr));
+ bus1.irq_callback().set(m_cio, FUNC(z8536_device::pa1_w));
+ abcbus_slot_device &bus2(ABCBUS_SLOT(config, "bus2", 64_MHz_XTAL / 16, abc1600bus_cards, "4105"));
+ bus2.irq_callback().set(m_cio, FUNC(z8536_device::pa0_w));
+ //bus2.pren_callback().set(Z8410AB1_2_TAG, FUNC(z80dma_device::iei_w));
+ bus2.trrq_callback().set(Z8410AB1_2_TAG, FUNC(z80dma_device::rdy_w));
// internal ram
RAM(config, RAM_TAG).set_default_size("1M");
// software list
- MCFG_SOFTWARE_LIST_ADD("flop_list", "abc1600")
-MACHINE_CONFIG_END
+ SOFTWARE_LIST(config, "flop_list").set_original("abc1600");
+}
diff --git a/src/mame/drivers/abc80.cpp b/src/mame/drivers/abc80.cpp
index ab56eab9795..7e146613588 100644
--- a/src/mame/drivers/abc80.cpp
+++ b/src/mame/drivers/abc80.cpp
@@ -482,7 +482,7 @@ QUICKLOAD_LOAD_MEMBER( abc80_state, bac )
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( abc80 )
+// machine_config( abc80 )
//-------------------------------------------------
MACHINE_CONFIG_START(abc80_state::abc80)
@@ -509,7 +509,7 @@ MACHINE_CONFIG_START(abc80_state::abc80)
m_csg->set_oneshot_params(CAP_U(0.1), RES_K(330));
m_csg->add_route(ALL_OUTPUTS, "mono", 0.25);
- WAVE(config, "wave", CASSETTE_TAG).add_route(ALL_OUTPUTS, "mono", 0.25);
+ WAVE(config, "wave", m_cassette).add_route(ALL_OUTPUTS, "mono", 0.25);
// devices
Z80PIO(config, m_pio, XTAL(11'980'800)/2/2);
@@ -518,27 +518,27 @@ MACHINE_CONFIG_START(abc80_state::abc80)
m_pio->in_pb_callback().set(FUNC(abc80_state::pio_pb_r));
m_pio->out_pb_callback().set(FUNC(abc80_state::pio_pb_w));
- MCFG_CASSETTE_ADD(CASSETTE_TAG)
- MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED)
- MCFG_CASSETTE_INTERFACE("abc80_cass")
+ CASSETTE(config, m_cassette);
+ m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED);
+ m_cassette->set_interface("abc80_cass");
ABC80_KEYBOARD(config, m_kb, 0);
m_kb->keydown_wr_callback().set(FUNC(abc80_state::keydown_w));
- MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abc80_cards, "abcexp")
+ ABCBUS_SLOT(config, ABCBUS_TAG, XTAL(11'980'800)/2/2, abc80_cards, "abcexp");
RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr);
generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, KEYBOARD_TAG, 0));
keyboard.set_keyboard_callback(FUNC(abc80_state::kbd_w));
- MCFG_QUICKLOAD_ADD("quickload", abc80_state, bac, "bac", 2)
+ MCFG_QUICKLOAD_ADD("quickload", abc80_state, bac, "bac", attotime::from_seconds(2))
// internal ram
RAM(config, RAM_TAG).set_default_size("16K");
// software list
- MCFG_SOFTWARE_LIST_ADD("cass_list", "abc80_cass")
- MCFG_SOFTWARE_LIST_ADD("flop_list", "abc80_flop")
+ SOFTWARE_LIST(config, "cass_list").set_original("abc80_cass");
+ SOFTWARE_LIST(config, "flop_list").set_original("abc80_flop");
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/abc80x.cpp b/src/mame/drivers/abc80x.cpp
index 2b5f0279ba1..581c5ee516c 100644
--- a/src/mame/drivers/abc80x.cpp
+++ b/src/mame/drivers/abc80x.cpp
@@ -1049,7 +1049,7 @@ QUICKLOAD_LOAD_MEMBER( abc800_state, bac )
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( common )
+// machine_config( common )
//-------------------------------------------------
MACHINE_CONFIG_START(abc800_state::common)
@@ -1065,7 +1065,7 @@ MACHINE_CONFIG_START(abc800_state::common)
m_ctc->zc_callback<1>().set(FUNC(abc800_state::ctc_z1_w));
m_ctc->zc_callback<2>().set(m_dart, FUNC(z80dart_device::rxca_w));
m_ctc->zc_callback<2>().append(m_dart, FUNC(z80dart_device::txca_w));
- MCFG_TIMER_DRIVER_ADD_PERIODIC(TIMER_CTC_TAG, abc800_state, ctc_tick, attotime::from_hz(ABC800_X01/2/2/2))
+ TIMER(config, TIMER_CTC_TAG).configure_periodic(FUNC(abc800_state::ctc_tick), attotime::from_hz(ABC800_X01/2/2/2));
Z80SIO(config, m_sio, ABC800_X01/2/2);
m_sio->out_txda_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd));
@@ -1083,9 +1083,9 @@ MACHINE_CONFIG_START(abc800_state::common)
m_dart->out_txdb_callback().set(ABC_KEYBOARD_PORT_TAG, FUNC(abc_keyboard_port_device::txd_w));
m_dart->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
- MCFG_CASSETTE_ADD(CASSETTE_TAG)
- MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED)
- MCFG_TIMER_DRIVER_ADD_PERIODIC(TIMER_CASSETTE_TAG, abc800_state, cassette_input_tick, attotime::from_hz(44100))
+ CASSETTE(config, m_cassette);
+ m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED);
+ TIMER(config, TIMER_CASSETTE_TAG).configure_periodic(FUNC(abc800_state::cassette_input_tick), attotime::from_hz(44100));
rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr));
rs232a.rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w));
@@ -1097,32 +1097,32 @@ MACHINE_CONFIG_START(abc800_state::common)
rs232b.dcd_handler().set(m_sio, FUNC(z80sio_device::dcda_w));
rs232b.cts_handler().set(m_sio, FUNC(z80sio_device::ctsa_w));
- MCFG_ABC_KEYBOARD_PORT_ADD(ABC_KEYBOARD_PORT_TAG, nullptr)
- MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(WRITELINE(m_dart, z80dart_device, rxb_w))
- MCFG_ABC_KEYBOARD_OUT_TRXC_HANDLER(WRITELINE(m_dart, z80dart_device, rxtxcb_w))
- MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(WRITELINE(m_dart, z80dart_device, dcdb_w))
+ abc_keyboard_port_device &kb(ABC_KEYBOARD_PORT(config, ABC_KEYBOARD_PORT_TAG, abc_keyboard_devices, nullptr));
+ kb.out_rx_handler().set(m_dart, FUNC(z80dart_device::rxb_w));
+ kb.out_trxc_handler().set(m_dart, FUNC(z80dart_device::rxtxcb_w));
+ kb.out_keydown_handler().set(m_dart, FUNC(z80dart_device::dcdb_w));
- MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_cards, nullptr)
+ ABCBUS_SLOT(config, ABCBUS_TAG, ABC800_X01/2/2, abcbus_cards, nullptr);
// sound hardware
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD(DISCRETE_TAG, DISCRETE, abc800_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ DISCRETE(config, m_discrete, abc800_discrete).add_route(ALL_OUTPUTS, "mono", 0.80);
// software list
- MCFG_SOFTWARE_LIST_ADD("flop_list", "abc800")
- MCFG_SOFTWARE_LIST_ADD("hdd_list", "abc800_hdd")
+ SOFTWARE_LIST(config, "flop_list").set_original("abc800");
+ SOFTWARE_LIST(config, "hdd_list").set_original("abc800_hdd");
// quickload
- MCFG_QUICKLOAD_ADD("quickload", abc800_state, bac, "bac", 2)
+ MCFG_QUICKLOAD_ADD("quickload", abc800_state, bac, "bac", attotime::from_seconds(2))
MACHINE_CONFIG_END
//-------------------------------------------------
-// MACHINE_CONFIG( abc800c )
+// machine_config( abc800c )
//-------------------------------------------------
-MACHINE_CONFIG_START(abc800c_state::abc800c)
+void abc800c_state::abc800c(machine_config &config)
+{
common(config);
// basic machine hardware
@@ -1133,23 +1133,23 @@ MACHINE_CONFIG_START(abc800c_state::abc800c)
abc800c_video(config);
// peripheral hardware
- MCFG_DEVICE_MODIFY(ABC_KEYBOARD_PORT_TAG)
- MCFG_SLOT_DEFAULT_OPTION("abc800")
- MCFG_SLOT_FIXED(true)
+ abc_keyboard_port_device &kb(*subdevice<abc_keyboard_port_device>(ABC_KEYBOARD_PORT_TAG));
+ kb.set_default_option("abc800");
+ kb.set_fixed(true);
- MCFG_DEVICE_MODIFY(ABCBUS_TAG)
- MCFG_SLOT_DEFAULT_OPTION("abc830")
+ subdevice<abcbus_slot_device>(ABCBUS_TAG)->set_default_option("abc830");
// internal ram
RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("32K");
-MACHINE_CONFIG_END
+}
//-------------------------------------------------
-// MACHINE_CONFIG( abc800m )
+// machine_config( abc800m )
//-------------------------------------------------
-MACHINE_CONFIG_START(abc800m_state::abc800m)
+void abc800m_state::abc800m(machine_config &config)
+{
common(config);
// basic machine hardware
@@ -1160,23 +1160,23 @@ MACHINE_CONFIG_START(abc800m_state::abc800m)
abc800m_video(config);
// peripheral hardware
- MCFG_DEVICE_MODIFY(ABC_KEYBOARD_PORT_TAG)
- MCFG_SLOT_DEFAULT_OPTION("abc800")
- MCFG_SLOT_FIXED(true)
+ abc_keyboard_port_device &kb(*subdevice<abc_keyboard_port_device>(ABC_KEYBOARD_PORT_TAG));
+ kb.set_default_option("abc800");
+ kb.set_fixed(true);
- MCFG_DEVICE_MODIFY(ABCBUS_TAG)
- MCFG_SLOT_DEFAULT_OPTION("abc830")
+ subdevice<abcbus_slot_device>(ABCBUS_TAG)->set_default_option("abc830");
// internal ram
RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("32K");
-MACHINE_CONFIG_END
+}
//-------------------------------------------------
-// MACHINE_CONFIG( abc802 )
+// machine_config( abc802 )
//-------------------------------------------------
-MACHINE_CONFIG_START(abc802_state::abc802)
+void abc802_state::abc802(machine_config &config)
+{
common(config);
// basic machine hardware
@@ -1190,22 +1190,21 @@ MACHINE_CONFIG_START(abc802_state::abc802)
m_dart->out_dtrb_callback().set(FUNC(abc802_state::lrs_w));
m_dart->out_rtsb_callback().set(FUNC(abc802_state::mux80_40_w));
- MCFG_DEVICE_MODIFY(ABC_KEYBOARD_PORT_TAG)
- MCFG_SLOT_DEFAULT_OPTION("abc55")
+ subdevice<abc_keyboard_port_device>(ABC_KEYBOARD_PORT_TAG)->set_default_option("abc55");
- MCFG_DEVICE_MODIFY(ABCBUS_TAG)
- MCFG_SLOT_DEFAULT_OPTION("abc834")
+ subdevice<abcbus_slot_device>(ABCBUS_TAG)->set_default_option("abc834");
// internal ram
RAM(config, RAM_TAG).set_default_size("64K");
-MACHINE_CONFIG_END
+}
//-------------------------------------------------
-// MACHINE_CONFIG( abc806 )
+// machine_config( abc806 )
//-------------------------------------------------
-MACHINE_CONFIG_START(abc806_state::abc806)
+void abc806_state::abc806(machine_config &config)
+{
common(config);
// basic machine hardware
@@ -1220,18 +1219,16 @@ MACHINE_CONFIG_START(abc806_state::abc806)
m_dart->out_dtrb_callback().set(FUNC(abc806_state::keydtr_w));
- MCFG_DEVICE_MODIFY(ABC_KEYBOARD_PORT_TAG)
- MCFG_SLOT_DEFAULT_OPTION("abc77")
+ subdevice<abc_keyboard_port_device>(ABC_KEYBOARD_PORT_TAG)->set_default_option("abc77");
- MCFG_DEVICE_MODIFY(ABCBUS_TAG)
- MCFG_SLOT_DEFAULT_OPTION("abc832")
+ subdevice<abcbus_slot_device>(ABCBUS_TAG)->set_default_option("abc832");
// internal ram
RAM(config, RAM_TAG).set_default_size("160K").set_extra_options("544K");
// software list
- MCFG_SOFTWARE_LIST_ADD("flop_list2", "abc806")
-MACHINE_CONFIG_END
+ SOFTWARE_LIST(config, "flop_list2").set_original("abc806");
+}
diff --git a/src/mame/drivers/ac1.cpp b/src/mame/drivers/ac1.cpp
index 1b7e4329cf0..c1e75686566 100644
--- a/src/mame/drivers/ac1.cpp
+++ b/src/mame/drivers/ac1.cpp
@@ -129,11 +129,12 @@ static INPUT_PORTS_START( ac1 )
INPUT_PORTS_END
/* Machine driver */
-MACHINE_CONFIG_START(ac1_state::ac1)
+void ac1_state::ac1(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(8'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(ac1_mem)
- MCFG_DEVICE_IO_MAP(ac1_io)
+ Z80(config, m_maincpu, XTAL(8'000'000) / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ac1_state::ac1_mem);
+ m_maincpu->set_addrmap(AS_IO, &ac1_state::ac1_io);
z80pio_device& pio(Z80PIO(config, "z80pio", XTAL(8'000'000)/4));
pio.in_pa_callback().set(FUNC(ac1_state::ac1_port_a_r));
@@ -142,35 +143,35 @@ MACHINE_CONFIG_START(ac1_state::ac1)
pio.out_pb_callback().set(FUNC(ac1_state::ac1_port_b_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(64*6, 16*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 64*6-1, 0, 16*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(ac1_state, screen_update_ac1)
- 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(64*6, 16*8);
+ screen.set_visarea_full();
+ screen.set_screen_update(FUNC(ac1_state::screen_update_ac1));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_ac1 )
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_ac1);
PALETTE(config, m_palette, palette_device::MONOCHROME);
SPEAKER(config, "mono").front_center();
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
- MCFG_CASSETTE_ADD( "cassette" )
-MACHINE_CONFIG_END
+ CASSETTE(config, m_cassette);
+}
-MACHINE_CONFIG_START(ac1_state::ac1_32)
+void ac1_state::ac1_32(machine_config &config)
+{
ac1(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(ac1_32_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &ac1_state::ac1_32_mem);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_SIZE(64*6, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 64*6-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(ac1_state, screen_update_ac1_32)
-MACHINE_CONFIG_END
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_size(64*6, 32*8);
+ screen.set_visarea_full();
+ screen.set_screen_update(FUNC(ac1_state::screen_update_ac1_32));
+}
/* ROM definition */
ROM_START( ac1 )
diff --git a/src/mame/drivers/acd.cpp b/src/mame/drivers/acd.cpp
index 64ff4cd0863..4207ac70b57 100644
--- a/src/mame/drivers/acd.cpp
+++ b/src/mame/drivers/acd.cpp
@@ -26,8 +26,9 @@ private:
static INPUT_PORTS_START( acd )
INPUT_PORTS_END
-MACHINE_CONFIG_START(acd_state::acd)
-MACHINE_CONFIG_END
+void acd_state::acd(machine_config &config)
+{
+}
ROM_START( acd )
ROM_REGION( 0x10000, "maincpu", 0 )
diff --git a/src/mame/drivers/ace.cpp b/src/mame/drivers/ace.cpp
index 91c30b4ce10..9bb971d5e44 100644
--- a/src/mame/drivers/ace.cpp
+++ b/src/mame/drivers/ace.cpp
@@ -322,27 +322,27 @@ void aceal_state::machine_reset()
elem = 0;
}
-MACHINE_CONFIG_START(aceal_state::ace)
-
+void aceal_state::ace(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8080, MASTER_CLOCK/9) /* 2 MHz ? */
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ I8080(config, m_maincpu, MASTER_CLOCK/9); /* 2 MHz ? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &aceal_state::main_map);
/* 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(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(4*8, 32*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(aceal_state, screen_update_ace)
- MCFG_SCREEN_PALETTE(m_palette)
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_ace)
+ 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(32*8, 32*8);
+ screen.set_visarea(4*8, 32*8-1, 2*8, 32*8-1);
+ screen.set_screen_update(FUNC(aceal_state::screen_update_ace));
+ screen.set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_ace);
PALETTE(config, m_palette, palette_device::MONOCHROME);
/* sound hardware */
/* ???? */
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/aceex.cpp b/src/mame/drivers/aceex.cpp
index d4830b3906f..fcf2de94a0c 100644
--- a/src/mame/drivers/aceex.cpp
+++ b/src/mame/drivers/aceex.cpp
@@ -84,12 +84,13 @@ void aceex2814_state::machine_reset()
#define Y1_CLOCK 40320000
#define Y2_CLOCK 45342720
-MACHINE_CONFIG_START(aceex2814_state::aceex2814)
+void aceex2814_state::aceex2814(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I80C31, Y2_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(aceex2814_map)
-MACHINE_CONFIG_END
+ I80C31(config, m_maincpu, Y2_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &aceex2814_state::aceex2814_map);
+}
ROM_START( aceex2814 )
ROM_REGION( 0x10000, "maincpu", 0 )
diff --git a/src/mame/drivers/acefruit.cpp b/src/mame/drivers/acefruit.cpp
index 49a05bdb9bc..c3ebc08de7b 100644
--- a/src/mame/drivers/acefruit.cpp
+++ b/src/mame/drivers/acefruit.cpp
@@ -626,33 +626,33 @@ static GFXDECODE_START( gfx_acefruit )
GFXDECODE_ENTRY( "gfx1", 0x1800, charlayout, 8, 4 )
GFXDECODE_END
-MACHINE_CONFIG_START(acefruit_state::acefruit)
-
+void acefruit_state::acefruit(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 2500000) /* 2.5MHz */
- MCFG_DEVICE_PROGRAM_MAP(acefruit_map)
- MCFG_DEVICE_IO_MAP(acefruit_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", acefruit_state, acefruit_vblank)
+ Z80(config, m_maincpu, 2500000); /* 2.5MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &acefruit_state::acefruit_map);
+ m_maincpu->set_addrmap(AS_IO, &acefruit_state::acefruit_io);
+ m_maincpu->set_vblank_int("screen", FUNC(acefruit_state::acefruit_vblank));
WATCHDOG_TIMER(config, "watchdog");
GFXDECODE(config, m_gfxdecode, m_palette, gfx_acefruit);
/* 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(512, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 255)
- MCFG_SCREEN_UPDATE_DRIVER(acefruit_state, screen_update_acefruit)
- 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(512, 256);
+ m_screen->set_visarea_full();
+ m_screen->set_screen_update(FUNC(acefruit_state::screen_update_acefruit));
+ m_screen->set_palette(m_palette);
PALETTE(config, m_palette, FUNC(acefruit_state::acefruit_palette), 16);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* sound hardware */
-MACHINE_CONFIG_END
+}
void acefruit_state::init_sidewndr()
{
diff --git a/src/mame/drivers/acesp.cpp b/src/mame/drivers/acesp.cpp
index 7f1b049ff2d..01584aaba1b 100644
--- a/src/mame/drivers/acesp.cpp
+++ b/src/mame/drivers/acesp.cpp
@@ -86,13 +86,13 @@ static INPUT_PORTS_START( ace_sp )
INPUT_PORTS_END
-MACHINE_CONFIG_START(ace_sp_state::ace_sp)
- MCFG_DEVICE_ADD("maincpu", HD6303Y, 1000000)
- MCFG_DEVICE_PROGRAM_MAP(ace_sp_map)
-
- MCFG_DEVICE_ADD("pia0", PIA6821, 0)
+void ace_sp_state::ace_sp(machine_config &config)
+{
+ HD6303Y(config, m_maincpu, 1000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ace_sp_state::ace_sp_map);
-MACHINE_CONFIG_END
+ PIA6821(config, "pia0", 0);
+}
#define SP_CBOWL_SOUND \
diff --git a/src/mame/drivers/aci_boris.cpp b/src/mame/drivers/aci_boris.cpp
new file mode 100644
index 00000000000..55817b69224
--- /dev/null
+++ b/src/mame/drivers/aci_boris.cpp
@@ -0,0 +1,258 @@
+// license:BSD-3-Clause
+// copyright-holders:hap
+// thanks-to:Sean Riddle
+/******************************************************************************
+
+Applied Concepts Boris (electronic chess computer)
+
+- MK3850N-3 CPU @ 2 MHz, MK3853N memory interface
+- 256 bytes RAM(2*2112), AMI 2KB ROM + AMI 1KB(?*) ROM *: less than 512 bytes used
+- 8-digit 16seg led panel
+
+When it was first released, it was in kit form. An extensive assembly manual with
+schematics was included. It was later distributed by Chafitz in pre-assembled form.
+There's also an updated revision, identifiable by the startup message "Boris awaits
+your move"(same as Boris Master) instead of "Boris plays black".
+
+******************************************************************************/
+
+#include "emu.h"
+#include "cpu/f8/f8.h"
+#include "machine/f3853.h"
+#include "machine/timer.h"
+
+// internal artwork
+#include "aci_boris.lh" // clickable
+
+
+namespace {
+
+class boris_state : public driver_device
+{
+public:
+ boris_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_inp_matrix(*this, "IN.%u", 0),
+ m_delay_display(*this, "delay_display_%u", 0),
+ m_out_digit(*this, "digit%u", 0U)
+ { }
+
+ void boris(machine_config &config);
+
+ DECLARE_INPUT_CHANGED_MEMBER(reset_switch);
+
+protected:
+ virtual void machine_start() override;
+
+private:
+ // devices/pointers
+ required_device<cpu_device> m_maincpu;
+ required_ioport_array<4> m_inp_matrix;
+ required_device_array<timer_device, 8> m_delay_display;
+ output_finder<8> m_out_digit;
+
+ void main_map(address_map &map);
+ void main_io(address_map &map);
+
+ TIMER_DEVICE_CALLBACK_MEMBER(delay_display);
+
+ DECLARE_WRITE8_MEMBER(mux_w);
+ DECLARE_WRITE8_MEMBER(digit_w);
+ DECLARE_READ8_MEMBER(input_r);
+
+ void update_4042();
+
+ u8 m_io[2]; // MK3850 I/O ports
+ u8 m_4042; // 4042 latch output
+};
+
+void boris_state::machine_start()
+{
+ // resolve handlers
+ m_out_digit.resolve();
+
+ // zerofill
+ memset(m_io, 0, sizeof(m_io));
+ m_4042 = 0;
+
+ // register for savestates
+ save_item(NAME(m_io));
+ save_item(NAME(m_4042));
+}
+
+INPUT_CHANGED_MEMBER(boris_state::reset_switch)
+{
+ // reset switch is tied to MK3850 RESET pin
+ m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE);
+
+ // clear display
+ if (newval)
+ {
+ for (int i = 0; i < 8; i++)
+ m_delay_display[i]->adjust(attotime::zero, i);
+ }
+}
+
+
+
+/******************************************************************************
+ Devices, I/O
+******************************************************************************/
+
+// MK3850 ports/TTL
+
+TIMER_DEVICE_CALLBACK_MEMBER(boris_state::delay_display)
+{
+ // 16 segments via port 1 and 4042 output (latched port 1)
+ u16 mask = (param & 8) ? 0xffff : 0;
+ m_out_digit[param & 7] = ~(m_4042 << 8 | m_io[1]) & mask;
+}
+
+void boris_state::update_4042()
+{
+ // port 1 is latched as long as 4042 clock is low
+ // (yes low, this is actually (~~m_io[0] & 8) since output ports are inverted)
+ if (m_io[0] & 8)
+ m_4042 = bitswap<8>(m_io[1],4,2,0,6,5,1,3,7);
+}
+
+WRITE8_MEMBER(boris_state::mux_w)
+{
+ // IO00-IO02: 4028 A-C to digit/input mux (4028 D to GND)
+ u8 prev = ~m_io[0] & 7;
+ u8 sel = ~data & 7;
+ if (sel != prev)
+ {
+ // digits are strobed, so on falling edge, delay them going off to prevent flicker or stuck display
+ m_delay_display[prev]->adjust(attotime::from_msec(50), prev);
+
+ // need a short delay on rising edge too, while boris sets up digit segments
+ // (it writes port 1, increments digit, latches port 1, writes port 1 again)
+ m_delay_display[sel]->adjust(attotime::from_usec(50), sel | 8);
+ }
+
+ // IO03: clock 4042
+ m_io[0] = data;
+ update_4042();
+}
+
+READ8_MEMBER(boris_state::input_r)
+{
+ // IO04-IO07: multiplexed inputs from 4028 4-7
+ u8 data = m_io[0];
+ u8 sel = ~data & 7;
+ if (sel >= 4)
+ data |= m_inp_matrix[sel-4]->read() << 4;
+
+ return data;
+}
+
+WRITE8_MEMBER(boris_state::digit_w)
+{
+ // IO10-IO17: digit segments
+ m_io[1] = data;
+ update_4042();
+}
+
+
+
+/******************************************************************************
+ Address Maps
+******************************************************************************/
+
+void boris_state::main_map(address_map &map)
+{
+ map.global_mask(0x0fff);
+ map(0x0000, 0x0bff).rom();
+ map(0x0c00, 0x0fff).ram();
+}
+
+void boris_state::main_io(address_map &map)
+{
+ map(0x00, 0x00).rw(FUNC(boris_state::input_r), FUNC(boris_state::mux_w));
+ map(0x01, 0x01).w(FUNC(boris_state::digit_w));
+ map(0x0c, 0x0f).rw("smi", FUNC(f3853_device::read), FUNC(f3853_device::write));
+}
+
+
+
+/******************************************************************************
+ Input Ports
+******************************************************************************/
+
+static INPUT_PORTS_START( boris )
+ PORT_START("IN.0")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("G.7")
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("H.8")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("Set / 9") // labeled just "SET" on 1st version
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("CE") // clear entry
+
+ PORT_START("IN.1")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("D.4 / Rook")
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("E.5 / Queen")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("F.6 / King")
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Time")
+
+ PORT_START("IN.2")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("A.1 / Pawn")
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("B.2 / Knight")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("C.3 / Bishop")
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_K) PORT_NAME("Rank")
+
+ PORT_START("IN.3")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("0")
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_SPACE) PORT_CODE(KEYCODE_MINUS) PORT_NAME("-")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("B/W") // black/white
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Enter")
+
+ PORT_START("RESET")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_R) PORT_TOGGLE PORT_CHANGED_MEMBER(DEVICE_SELF, boris_state, reset_switch, nullptr) PORT_NAME("Reset Switch")
+INPUT_PORTS_END
+
+
+
+/******************************************************************************
+ Machine Configs
+******************************************************************************/
+
+void boris_state::boris(machine_config &config)
+{
+ /* basic machine hardware */
+ F8(config, m_maincpu, 2_MHz_XTAL); // MK3850, 2MHz XTAL according to schematics
+ m_maincpu->set_addrmap(AS_PROGRAM, &boris_state::main_map);
+ m_maincpu->set_addrmap(AS_IO, &boris_state::main_io);
+ m_maincpu->set_irq_acknowledge_callback("smi", FUNC(f3853_device::int_acknowledge));
+
+ f3853_device &smi(F3853(config, "smi", 2_MHz_XTAL));
+ smi.int_req_callback().set_inputline("maincpu", F8_INPUT_LINE_INT_REQ);
+
+ /* video hardware */
+ for (int i = 0; i < 8; i++)
+ TIMER(config, m_delay_display[i]).configure_generic(FUNC(boris_state::delay_display));
+
+ config.set_default_layout(layout_aci_boris);
+}
+
+
+
+/******************************************************************************
+ ROM Definitions
+******************************************************************************/
+
+ROM_START( boris )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD("007-7020-00_c10502", 0x0000, 0x0800, CRC(18182870) SHA1(cb717a4b5269b04b0d7ae61aaf4a8f6a019626a5) )
+ ROM_LOAD("007-7021-00_c10503", 0x0800, 0x0400, CRC(49b77505) SHA1(474b665ee2955497f6d70878d817f1783ba1a835) )
+ROM_END
+
+} // anonymous namespace
+
+
+
+/******************************************************************************
+ Drivers
+******************************************************************************/
+
+// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
+COMP( 1978, boris, 0, 0, boris, boris, boris_state, empty_init, "Applied Concepts", "Boris", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/drivers/aci_borisdpl.cpp b/src/mame/drivers/aci_borisdpl.cpp
new file mode 100644
index 00000000000..d2210d63df8
--- /dev/null
+++ b/src/mame/drivers/aci_borisdpl.cpp
@@ -0,0 +1,236 @@
+// license:BSD-3-Clause
+// copyright-holders:Sandro Ronco, hap
+// thanks-to:Sean Riddle
+/******************************************************************************
+
+Applied Concepts Boris Diplomat
+
+- F3870 MCU (Motorola SC80265P or Fairchild SL90259)
+- 256 bytes RAM(2*2112-1)
+- 8-digit 7seg led panel
+
+Two versions exists, a blue one(seen with SC80265P) and a brown one(seen with
+either MCU). The one emulated here is from a brown version with the SC80265P.
+Motorola SC80265P is a 3870 clone, it's assumed that the program is the same
+as SL90259.
+
+******************************************************************************/
+
+#include "emu.h"
+#include "cpu/f8/f8.h"
+#include "machine/f3853.h"
+#include "machine/timer.h"
+
+// internal artwork
+#include "aci_borisdpl.lh" // clickable
+
+
+namespace {
+
+class borisdpl_state : public driver_device
+{
+public:
+ borisdpl_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_keypad(*this, "LINE%u", 1U),
+ m_delay_display(*this, "delay_display_%u", 0),
+ m_out_digit(*this, "digit%u", 0U)
+ { }
+
+ void borisdpl(machine_config &config);
+
+ // reset button is tied to MCU RESET pin
+ 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;
+
+private:
+ // devices/pointers
+ required_device<cpu_device> m_maincpu;
+ required_ioport_array<4> m_keypad;
+ required_device_array<timer_device, 8> m_delay_display;
+ output_finder<8> m_out_digit;
+
+ void main_map(address_map &map);
+ void main_io(address_map &map);
+
+ TIMER_DEVICE_CALLBACK_MEMBER(delay_display);
+
+ DECLARE_WRITE8_MEMBER(digit_w);
+ DECLARE_READ8_MEMBER(input_r);
+ DECLARE_WRITE8_MEMBER(matrix_w);
+
+ // 256 bytes data RAM accessed via I/O ports
+ DECLARE_READ8_MEMBER(ram_address_r) { return m_ram_address; }
+ DECLARE_WRITE8_MEMBER(ram_address_w) { m_ram_address = data; }
+ DECLARE_READ8_MEMBER(ram_data_r) { return m_ram[m_ram_address]; }
+ DECLARE_WRITE8_MEMBER(ram_data_w) { m_ram[m_ram_address] = data; }
+
+ std::unique_ptr<u8[]> m_ram;
+ u8 m_ram_address;
+ u8 m_matrix;
+};
+
+void borisdpl_state::machine_start()
+{
+ // resolve handlers
+ m_out_digit.resolve();
+
+ // zerofill
+ m_ram = make_unique_clear<u8[]>(0x100);
+ m_ram_address = 0;
+ m_matrix = 0;
+
+ // register for savestates
+ save_pointer(NAME(m_ram), 0x100);
+ save_item(NAME(m_ram_address));
+ save_item(NAME(m_matrix));
+}
+
+
+
+/******************************************************************************
+ Devices, I/O
+******************************************************************************/
+
+// F3870 ports
+
+TIMER_DEVICE_CALLBACK_MEMBER(borisdpl_state::delay_display)
+{
+ // clear digits if inactive
+ if (param != (m_matrix & 7))
+ m_out_digit[param] = 0;
+}
+
+WRITE8_MEMBER(borisdpl_state::digit_w)
+{
+ // digit segments, update display here
+ m_out_digit[m_matrix & 7] = ~data & 0x7f;
+}
+
+WRITE8_MEMBER(borisdpl_state::matrix_w)
+{
+ // d0-d2: MC14028B to input/digit select
+ // digits are strobed, so on falling edge, delay them going off to prevent flicker or stuck display
+ if ((data & 7) != (m_matrix & 7))
+ m_delay_display[m_matrix & 7]->adjust(attotime::from_msec(20), m_matrix & 7);
+
+ m_matrix = data;
+}
+
+READ8_MEMBER(borisdpl_state::input_r)
+{
+ // d4-d7: multiplexed inputs (only one lane can be selected at the same time)
+ u8 data = m_matrix;
+ if ((m_matrix & 7) < 4)
+ data |= m_keypad[m_matrix & 3]->read() << 4;
+
+ return data;
+}
+
+
+
+/******************************************************************************
+ Address Maps
+******************************************************************************/
+
+void borisdpl_state::main_map(address_map &map)
+{
+ map.global_mask(0x7ff);
+ map(0x0000, 0x07ff).rom();
+}
+
+void borisdpl_state::main_io(address_map &map)
+{
+ map(0x00, 0x00).rw(FUNC(borisdpl_state::input_r), FUNC(borisdpl_state::matrix_w));
+ map(0x01, 0x01).w(FUNC(borisdpl_state::digit_w));
+ map(0x04, 0x07).rw("psu", FUNC(f38t56_device::read), FUNC(f38t56_device::write));
+}
+
+
+
+/******************************************************************************
+ Input Ports
+******************************************************************************/
+
+static INPUT_PORTS_START( borisdpl )
+ PORT_START("LINE1")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("0")
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_SPACE) PORT_CODE(KEYCODE_MINUS) PORT_NAME("-")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("B/W") // black/white
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Enter")
+
+ PORT_START("LINE2")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("A.1 / Pawn")
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("B.2 / Knight")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("C.3 / Bishop")
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_K) PORT_NAME("Rank")
+
+ PORT_START("LINE3")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("D.4 / Rook")
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("E.5 / Queen")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("F.6 / King")
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Time")
+
+ PORT_START("LINE4")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("G.7")
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("H.8")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9 / Set")
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("CE") // clear entry
+
+ PORT_START("RESET")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, borisdpl_state, reset_button, nullptr) PORT_NAME("Reset")
+INPUT_PORTS_END
+
+
+
+/******************************************************************************
+ Machine Configs
+******************************************************************************/
+
+void borisdpl_state::borisdpl(machine_config &config)
+{
+ /* basic machine hardware */
+ F8(config, m_maincpu, 3000000/2); // frequency approximated from video reference
+ m_maincpu->set_addrmap(AS_PROGRAM, &borisdpl_state::main_map);
+ m_maincpu->set_addrmap(AS_IO, &borisdpl_state::main_io);
+ m_maincpu->set_irq_acknowledge_callback("psu", FUNC(f38t56_device::int_acknowledge));
+
+ f38t56_device &psu(F38T56(config, "psu", 3000000/2));
+ psu.set_int_vector(0x5020);
+ psu.int_req_callback().set_inputline("maincpu", F8_INPUT_LINE_INT_REQ);
+ psu.read_a().set(FUNC(borisdpl_state::ram_data_r));
+ psu.write_a().set(FUNC(borisdpl_state::ram_data_w));
+ psu.read_b().set(FUNC(borisdpl_state::ram_address_r));
+ psu.write_b().set(FUNC(borisdpl_state::ram_address_w));
+
+ /* video hardware */
+ for (int i = 0; i < 8; i++)
+ TIMER(config, m_delay_display[i]).configure_generic(FUNC(borisdpl_state::delay_display));
+
+ config.set_default_layout(layout_aci_borisdpl);
+}
+
+
+
+/******************************************************************************
+ ROM Definitions
+******************************************************************************/
+
+ROM_START( borisdpl )
+ ROM_REGION( 0x0800, "maincpu", 0 )
+ ROM_LOAD("007-7024-00_7847.u8", 0x0000, 0x0800, CRC(e20bac03) SHA1(9e17b9d90522371fbf7018926356150f70b9a3b6) )
+ROM_END
+
+} // anonymous namespace
+
+
+
+/******************************************************************************
+ Drivers
+******************************************************************************/
+
+// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
+CONS( 1979, borisdpl, 0, 0, borisdpl, borisdpl, borisdpl_state, empty_init, "Applied Concepts", "Boris Diplomat", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/drivers/acommand.cpp b/src/mame/drivers/acommand.cpp
index 2f3174ff42d..c3560e0ea95 100644
--- a/src/mame/drivers/acommand.cpp
+++ b/src/mame/drivers/acommand.cpp
@@ -468,21 +468,21 @@ TIMER_DEVICE_CALLBACK_MEMBER(acommand_state::acommand_scanline)
m_maincpu->set_input_line(3, HOLD_LINE);
}
-MACHINE_CONFIG_START(acommand_state::acommand)
-
+void acommand_state::acommand(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",M68000,12000000)
- MCFG_DEVICE_PROGRAM_MAP(acommand_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", acommand_state, acommand_scanline, "screen", 0, 1)
+ M68000(config, m_maincpu, 12000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &acommand_state::acommand_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(acommand_state::acommand_scanline), "screen", 0, 1);
/* 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(acommand_state, screen_update_acommand)
- 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(acommand_state::screen_update_acommand));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_acommand);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 0x4000);
@@ -494,14 +494,14 @@ MACHINE_CONFIG_START(acommand_state::acommand)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("oki1", OKIM6295, 2112000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
+ OKIM6295(config, m_oki1, 2112000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified
+ m_oki1->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_oki1->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
- MCFG_DEVICE_ADD("oki2", OKIM6295, 2112000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki2, 2112000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified
+ m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+}
/***************************************************************************
diff --git a/src/mame/drivers/acrnsys.cpp b/src/mame/drivers/acrnsys.cpp
index f24b1a4f120..2eaa8aca2eb 100644
--- a/src/mame/drivers/acrnsys.cpp
+++ b/src/mame/drivers/acrnsys.cpp
@@ -123,7 +123,7 @@ void acrnsys_state::a6502_mem(address_map &map)
{
map.unmap_value_low();
map(0x0000, 0x03ff).ram();
- map(0x0e00, 0x0e7f).mirror(0x100).rw(m_ins8154, FUNC(ins8154_device::ins8154_r), FUNC(ins8154_device::ins8154_w));
+ map(0x0e00, 0x0e7f).mirror(0x100).rw(m_ins8154, FUNC(ins8154_device::read_io), FUNC(ins8154_device::write_io));
map(0xf000, 0xffff).rom().region("maincpu", 0);
}
@@ -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/acrnsys1.cpp b/src/mame/drivers/acrnsys1.cpp
index 0d33002b5b0..e9ba3b9f17b 100644
--- a/src/mame/drivers/acrnsys1.cpp
+++ b/src/mame/drivers/acrnsys1.cpp
@@ -185,8 +185,8 @@ WRITE8_MEMBER( acrnsys1_state::acrnsys1_led_segment_w )
void acrnsys1_state::acrnsys1_map(address_map &map)
{
map(0x0000, 0x03ff).ram();
- map(0x0e00, 0x0e7f).mirror(0x100).rw("b1", FUNC(ins8154_device::ins8154_r), FUNC(ins8154_device::ins8154_w));
- map(0x0e80, 0x0eff).mirror(0x100).ram();
+ map(0x0e00, 0x0e7f).mirror(0x100).rw("b1", FUNC(ins8154_device::read_io), FUNC(ins8154_device::write_io));
+ map(0x0e80, 0x0eff).mirror(0x100).rw("b1", FUNC(ins8154_device::read_ram), FUNC(ins8154_device::write_ram));
map(0xf800, 0xf9ff).mirror(0x600).rom();
}
@@ -264,16 +264,17 @@ INPUT_PORTS_END
MACHINE DRIVERS
***************************************************************************/
-MACHINE_CONFIG_START(acrnsys1_state::acrnsys1)
+void acrnsys1_state::acrnsys1(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6502, 1.008_MHz_XTAL) /* 1.008 MHz */
- MCFG_DEVICE_PROGRAM_MAP(acrnsys1_map)
+ M6502(config, m_maincpu, 1.008_MHz_XTAL); /* 1.008 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &acrnsys1_state::acrnsys1_map);
config.set_default_layout(layout_acrnsys1);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
+ WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "mono", 0.25);
/* devices */
ins8154_device &b1(INS8154(config, "b1"));
@@ -283,11 +284,11 @@ MACHINE_CONFIG_START(acrnsys1_state::acrnsys1)
TTL74145(config, m_ttl74145, 0);
- MCFG_CASSETTE_ADD( "cassette" )
+ CASSETTE(config, m_cass);
- MCFG_TIMER_DRIVER_ADD_PERIODIC("acrnsys1_c", acrnsys1_state, acrnsys1_c, attotime::from_hz(4800))
- MCFG_TIMER_DRIVER_ADD_PERIODIC("acrnsys1_p", acrnsys1_state, acrnsys1_p, attotime::from_hz(40000))
-MACHINE_CONFIG_END
+ TIMER(config, "acrnsys1_c").configure_periodic(FUNC(acrnsys1_state::acrnsys1_c), attotime::from_hz(4800));
+ TIMER(config, "acrnsys1_p").configure_periodic(FUNC(acrnsys1_state::acrnsys1_p), attotime::from_hz(40000));
+}
/***************************************************************************
diff --git a/src/mame/drivers/actfancr.cpp b/src/mame/drivers/actfancr.cpp
index 1953328632f..06056d62da8 100644
--- a/src/mame/drivers/actfancr.cpp
+++ b/src/mame/drivers/actfancr.cpp
@@ -4,16 +4,9 @@
Act Fancer (Japan) FD (c) 1989 Data East Corporation
Act Fancer (World) FE (c) 1989 Data East Corporation
- Trio The Punch (World) FC (c) 1989 Data East Corporation
+ Trio The Punch (World) FG (c) 1989 Data East Corporation
Trio The Punch (Japan) FF (c) 1989 Data East Corporation
- The 'World' set has rom code FE, the 'Japan' set has rom code FD.
-
- Most Data East games give the Japanese version the earlier code, though
- there is no real difference between the sets.
-
- I believe the USA version of Act Fancer is called 'Out Fencer'
-
Emulation by Bryan McPhail, mish@tendril.co.uk
Update of the 03/04/2005
diff --git a/src/mame/drivers/acvirus.cpp b/src/mame/drivers/acvirus.cpp
index 79aaa6f16c8..a95efbdd4de 100644
--- a/src/mame/drivers/acvirus.cpp
+++ b/src/mame/drivers/acvirus.cpp
@@ -106,13 +106,14 @@ void acvirus_state::virus_map(address_map &map)
map(0x8000, 0xffff).bankr("rombank");
}
-MACHINE_CONFIG_START(acvirus_state::virus)
- MCFG_DEVICE_ADD("maincpu", I8052, XTAL(12'000'000))
- MCFG_DEVICE_PROGRAM_MAP(virus_map)
+void acvirus_state::virus(machine_config &config)
+{
+ I8052(config, m_maincpu, XTAL(12'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &acvirus_state::virus_map);
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
-MACHINE_CONFIG_END
+}
static INPUT_PORTS_START( virus )
INPUT_PORTS_END
diff --git a/src/mame/drivers/adam.cpp b/src/mame/drivers/adam.cpp
index 6d1a69c2db5..f9eb9b979e2 100644
--- a/src/mame/drivers/adam.cpp
+++ b/src/mame/drivers/adam.cpp
@@ -457,10 +457,10 @@ READ8_MEMBER( adam_state::mreq_r )
}
}
- data = m_cart->bd_r(space, offset & 0x7fff, data, cs1, cs2, cs3, cs4);
- data = m_slot1->bd_r(space, offset & 0xff, data, 1, biorq, 1, 1, 1);
- data = m_slot2->bd_r(space, offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
- data = m_slot3->bd_r(space, offset, data, 1, 1, 1, cas1, cas2);
+ data = m_cart->bd_r(offset & 0x7fff, data, cs1, cs2, cs3, cs4);
+ data = m_slot1->bd_r(offset & 0xff, data, 1, biorq, 1, 1, 1);
+ data = m_slot2->bd_r(offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
+ data = m_slot3->bd_r(offset, data, 1, 1, 1, cas1, cas2);
return data;
}
@@ -516,9 +516,9 @@ WRITE8_MEMBER( adam_state::mreq_w )
m_ram->pointer()[offset] = data;
}
- m_slot1->bd_w(space, offset & 0xff, data, 1, biorq, 1, 1, 1);
- m_slot2->bd_w(space, offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
- m_slot3->bd_w(space, offset, data, 1, 1, 1, cas1, cas2);
+ m_slot1->bd_w(offset & 0xff, data, 1, biorq, 1, 1, 1);
+ m_slot2->bd_w(offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
+ m_slot3->bd_w(offset, data, 1, 1, 1, cas1, cas2);
}
@@ -557,9 +557,9 @@ READ8_MEMBER( adam_state::iorq_r )
break;
}
- data = m_slot1->bd_r(space, offset & 0xff, data, 1, biorq, 1, 1, 1);
- data = m_slot2->bd_r(space, offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
- data = m_slot3->bd_r(space, offset, data, 1, 1, 1, cas1, cas2);
+ data = m_slot1->bd_r(offset & 0xff, data, 1, biorq, 1, 1, 1);
+ data = m_slot2->bd_r(offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
+ data = m_slot3->bd_r(offset, data, 1, 1, 1, cas1, cas2);
return data;
}
@@ -609,9 +609,9 @@ WRITE8_MEMBER( adam_state::iorq_w )
break;
}
- m_slot1->bd_w(space, offset & 0xff, data, 1, biorq, 1, 1, 1);
- m_slot2->bd_w(space, offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
- m_slot3->bd_w(space, offset, data, 1, 1, 1, cas1, cas2);
+ m_slot1->bd_w(offset & 0xff, data, 1, biorq, 1, 1, 1);
+ m_slot2->bd_w(offset, data, bmreq, biorq, aux_rom_cs, 1, cas2);
+ m_slot3->bd_w(offset, data, 1, 1, 1, cas1, cas2);
}
@@ -1042,7 +1042,7 @@ void adam_state::adam(machine_config &config)
m_netcpu->out_p3_cb().set(FUNC(adam_state::m6801_p3_w));
m_netcpu->out_p4_cb().set(FUNC(adam_state::m6801_p4_w));
m_netcpu->out_sc2_cb().set(FUNC(adam_state::os3_w));
- MCFG_QUANTUM_PERFECT_CPU(M6801_TAG)
+ config.m_perfect_cpu_quantum = subtag(M6801_TAG);
// video hardware
TMS9928A(config, m_vdc, XTAL(10'738'635)).set_screen("screen");
diff --git a/src/mame/drivers/adm23.cpp b/src/mame/drivers/adm23.cpp
new file mode 100644
index 00000000000..4d957aef7c4
--- /dev/null
+++ b/src/mame/drivers/adm23.cpp
@@ -0,0 +1,86 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/***************************************************************************
+
+ Skeleton driver for ADM 23 terminal.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/z8/z8.h"
+#include "video/mc6845.h"
+#include "screen.h"
+
+class adm23_state : public driver_device
+{
+public:
+ adm23_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_chargen(*this, "chargen")
+ {
+ }
+
+ void adm23(machine_config &config);
+
+private:
+ MC6845_UPDATE_ROW(update_row);
+ MC6845_ON_UPDATE_ADDR_CHANGED(addr_changed);
+
+ void mem_map(address_map &map);
+
+ required_region_ptr<u8> m_chargen;
+};
+
+MC6845_UPDATE_ROW(adm23_state::update_row)
+{
+}
+
+MC6845_ON_UPDATE_ADDR_CHANGED(adm23_state::addr_changed)
+{
+}
+
+void adm23_state::mem_map(address_map &map)
+{
+ map(0x0800, 0x1fff).rom().region("program", 0x0800);
+ map(0x2020, 0x2020).nopr();
+ map(0x2080, 0x2080).rw("crtc", FUNC(mc6845_device::status_r), FUNC(mc6845_device::address_w));
+ map(0x2081, 0x2081).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
+ map(0xc080, 0xc080).nopw();
+ map(0xd080, 0xd080).nopr();
+}
+
+
+static INPUT_PORTS_START(adm23)
+INPUT_PORTS_END
+
+
+void adm23_state::adm23(machine_config &config)
+{
+ z8_device &maincpu(Z8682(config, "maincpu", 14.7428_MHz_XTAL / 2));
+ maincpu.set_addrmap(AS_PROGRAM, &adm23_state::mem_map);
+
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(14.7428_MHz_XTAL, 873, 0, 720, 281, 0, 264);
+ screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update));
+
+ mc6845_device &crtc(SY6545_1(config, "crtc", 14.7428_MHz_XTAL / 9));
+ crtc.set_char_width(9);
+ crtc.set_show_border_area(false);
+ crtc.set_screen("screen");
+ crtc.set_update_row_callback(FUNC(adm23_state::update_row), this);
+ crtc.set_on_update_addr_change_callback(FUNC(adm23_state::addr_changed), this);
+}
+
+ROM_START(adm23)
+ ROM_REGION(0x2000, "program", 0) // CPU is clearly a Z8682, though its location is labeled "Z8 8681"
+ ROM_LOAD("136261-083_u9.bin", 0x0000, 0x2000, CRC(85da07e7) SHA1(a1305d0f06c7e3c6075b05ca0f11c53a901b5013))
+
+ ROM_REGION(0x0800, "chargen", 0)
+ ROM_LOAD("chr_u10.bin", 0x0000, 0x0800, CRC(cd053232) SHA1(6b4136a91d0dcd9cb5df92c54c9c30b1cb5f1974))
+
+ ROM_REGION(0x0020, "proms", 0)
+ ROM_LOAD("129253-61_u3.bin", 0x0000, 0x0020, NO_DUMP) // N82S123N at location labeled "S288"
+ROM_END
+
+
+COMP(1982, adm23, 0, 0, adm23, adm23, adm23_state, empty_init, "Lear Siegler", "ADM 23 Smart Terminal", MACHINE_IS_SKELETON)
diff --git a/src/mame/drivers/adm31.cpp b/src/mame/drivers/adm31.cpp
new file mode 100644
index 00000000000..483c8e39def
--- /dev/null
+++ b/src/mame/drivers/adm31.cpp
@@ -0,0 +1,513 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/****************************************************************************
+
+ Skeleton driver for ADM-31 terminal.
+
+ The ADM-31 and ADM-42 Data Display Terminals were Lear Siegler, Inc.'s
+ first microprocessor-based video terminals, introduced in 1978 as the
+ respective successors to their earlier ADM-1A and ADM-2 "smart"
+ terminals. The original ADM-31 model was apparently rebranded in 1980
+ as the ADM-31 Intermediate Terminal, and the ADM-32 was released a few
+ months later.
+
+ While the ADM-31 and ADM-32 only support 2 pages of display memory, the
+ ADM-42 could be upgraded to 8. Enhancements over the ADM-31 offered by
+ both the ADM-42 and ADM-32 include a status line, a larger monitor and
+ a detachable keyboard. Several other expansion options were offered for
+ the ADM-42, including synchronous serial and parallel printer ports.
+
+****************************************************************************/
+
+#include "emu.h"
+//#include "bus/rs232/rs232.h"
+#include "cpu/m6800/m6800.h"
+#include "machine/com8116.h"
+#include "machine/input_merger.h"
+#include "machine/6821pia.h"
+#include "machine/6850acia.h"
+#include "video/tms9927.h"
+#include "screen.h"
+
+class adm31_state : public driver_device
+{
+public:
+ adm31_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_acia(*this, "acia%u", 1U)
+ , m_brg(*this, "brg")
+ , m_vtac(*this, "vtac")
+ , m_chargen(*this, "chargen")
+ , m_keys(*this, "R%u", 0U)
+ , m_baud(*this, "BAUD")
+ , m_caps_lamp(*this, "caps_lamp")
+ {
+ }
+
+ void adm31(machine_config &mconfig);
+
+protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
+private:
+ u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+ void kbd_scan_w(u8 data);
+ u8 kbd_scan_r();
+ void kbd_status_w(u8 data);
+
+ void mem_map(address_map &map);
+
+ required_device<cpu_device> m_maincpu;
+ required_device_array<acia6850_device, 2> m_acia;
+ required_device<com8116_device> m_brg;
+ required_device<crt5027_device> m_vtac;
+ required_region_ptr<u8> m_chargen;
+ optional_ioport_array<16> m_keys;
+ required_ioport m_baud;
+ output_finder<> m_caps_lamp;
+
+ u8 m_kbd_scan;
+};
+
+
+void adm31_state::machine_start()
+{
+ m_caps_lamp.resolve();
+
+ save_item(NAME(m_kbd_scan));
+}
+
+void adm31_state::machine_reset()
+{
+ // Baud rate switches read by CPU on ADM-42, but not on ADM-31?
+ m_brg->stt_str_w(m_baud->read());
+}
+
+
+u32 adm31_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ return 0;
+}
+
+
+void adm31_state::kbd_scan_w(u8 data)
+{
+ m_kbd_scan = data & 0x7f;
+}
+
+u8 adm31_state::kbd_scan_r()
+{
+ return m_kbd_scan | (BIT(m_keys[(m_kbd_scan & 0x78) >> 3].read_safe(0xff), m_kbd_scan & 0x07) ? 0x00 : 0x80);
+}
+
+void adm31_state::kbd_status_w(u8 data)
+{
+ m_caps_lamp = BIT(data, 0);
+}
+
+void adm31_state::mem_map(address_map &map)
+{
+ map(0x0000, 0x03ff).ram();
+ map(0x7000, 0x7000).nopw();
+ map(0x7800, 0x7803).rw("pia", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
+ map(0x7900, 0x7900).portr("S5");
+ map(0x7a00, 0x7a01).rw(m_acia[0], FUNC(acia6850_device::read), FUNC(acia6850_device::write));
+ map(0x7c00, 0x7c01).rw(m_acia[1], FUNC(acia6850_device::read), FUNC(acia6850_device::write));
+ map(0x7d00, 0x7d00).portr("S6");
+ map(0x7e00, 0x7e00).portr("S4");
+ map(0x7f00, 0x7f0f).rw(m_vtac, FUNC(crt5027_device::read), FUNC(crt5027_device::write));
+ map(0x8000, 0x8fff).ram();
+ map(0xe000, 0xffff).rom().region("program", 0);
+}
+
+
+static INPUT_PORTS_START(adm31)
+ PORT_START("R0")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Key D1")
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Key D7")
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Key C5")
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Key D2")
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Key D4/F4")
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Key D9/F9")
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('2') PORT_CHAR('"') PORT_CODE(KEYCODE_2)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CHAR(0x1b) PORT_CODE(KEYCODE_F7)
+
+ PORT_START("R1")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Rub") PORT_CHAR(0x7f) PORT_CODE(KEYCODE_F8)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Key 9E/9F")
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Key D0/F0")
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Key B4/B6")
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Key 92/93")
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('1') PORT_CHAR('!') PORT_CODE(KEYCODE_1)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('q') PORT_CHAR('Q') PORT_CODE(KEYCODE_Q)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Cap Lock") PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) PORT_CODE(KEYCODE_CAPSLOCK)
+
+ PORT_START("R2")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('3') PORT_CHAR('#') PORT_CODE(KEYCODE_3)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('4') PORT_CHAR('$') PORT_CODE(KEYCODE_4)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('5') PORT_CHAR('%') PORT_CODE(KEYCODE_5)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('6') PORT_CHAR('&') PORT_CODE(KEYCODE_6)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('7') PORT_CHAR('\'') PORT_CODE(KEYCODE_7)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('8') PORT_CHAR('(') PORT_CODE(KEYCODE_8)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('9') PORT_CHAR(')') PORT_CODE(KEYCODE_9)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('0') PORT_CHAR('_') PORT_CODE(KEYCODE_0)
+
+ PORT_START("R3")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('-') PORT_CHAR('=') PORT_CODE(KEYCODE_MINUS)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('^') PORT_CHAR('~') PORT_CODE(KEYCODE_EQUALS)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('\\') PORT_CHAR('|') PORT_CODE(KEYCODE_BACKSLASH)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Tab Back Tab") PORT_CHAR(0x09) PORT_CODE(KEYCODE_BACKSPACE)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD)) PORT_CODE(KEYCODE_7_PAD)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) PORT_CODE(KEYCODE_8_PAD)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD)) PORT_CODE(KEYCODE_9_PAD)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD)) PORT_CODE(KEYCODE_MINUS_PAD)
+
+ PORT_START("R4")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('w') PORT_CHAR('W') PORT_CODE(KEYCODE_W)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('e') PORT_CHAR('E') PORT_CODE(KEYCODE_E)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('r') PORT_CHAR('R') PORT_CODE(KEYCODE_R)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('t') PORT_CHAR('T') PORT_CODE(KEYCODE_T)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('y') PORT_CHAR('Y') PORT_CODE(KEYCODE_Y)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('u') PORT_CHAR('U') PORT_CODE(KEYCODE_U)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('i') PORT_CHAR('I') PORT_CODE(KEYCODE_I)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('o') PORT_CHAR('O') PORT_CODE(KEYCODE_O)
+
+ PORT_START("R5")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('p') PORT_CHAR('P') PORT_CODE(KEYCODE_P)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('[') PORT_CHAR('{') PORT_CODE(KEYCODE_OPENBRACE)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(']') PORT_CHAR('}') PORT_CODE(KEYCODE_CLOSEBRACE)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Return") PORT_CHAR(0x0d) PORT_CODE(KEYCODE_ENTER)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD)) PORT_CODE(KEYCODE_4_PAD)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD)) PORT_CODE(KEYCODE_5_PAD)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) PORT_CODE(KEYCODE_6_PAD)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(TAB_PAD)) PORT_CODE(KEYCODE_PLUS_PAD)
+
+ PORT_START("R6")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('a') PORT_CHAR('A') PORT_CODE(KEYCODE_A)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('s') PORT_CHAR('S') PORT_CODE(KEYCODE_S)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('d') PORT_CHAR('D') PORT_CODE(KEYCODE_D)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('f') PORT_CHAR('F') PORT_CODE(KEYCODE_F)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('g') PORT_CHAR('G') PORT_CODE(KEYCODE_G)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('h') PORT_CHAR('H') PORT_CODE(KEYCODE_H)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('j') PORT_CHAR('J') PORT_CODE(KEYCODE_J)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('k') PORT_CHAR('K') PORT_CODE(KEYCODE_K)
+
+ PORT_START("R7")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('l') PORT_CHAR('L') PORT_CODE(KEYCODE_L)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(';') PORT_CHAR('+') PORT_CODE(KEYCODE_COLON)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(':') PORT_CHAR('*') PORT_CODE(KEYCODE_QUOTE)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('@') PORT_CHAR('`') PORT_CODE(KEYCODE_TILDE)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Line Feed") PORT_CHAR(0x0a) PORT_CODE(KEYCODE_RCONTROL)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) PORT_CODE(KEYCODE_2_PAD)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD)) PORT_CODE(KEYCODE_3_PAD)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD)) PORT_CODE(KEYCODE_1_PAD)
+
+ PORT_START("R8")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Clear") PORT_CODE(KEYCODE_LALT)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('z') PORT_CHAR('Z') PORT_CODE(KEYCODE_Z)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('x') PORT_CHAR('X') PORT_CODE(KEYCODE_X)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('c') PORT_CHAR('C') PORT_CODE(KEYCODE_C)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('v') PORT_CHAR('V') PORT_CODE(KEYCODE_V)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('b') PORT_CHAR('B') PORT_CODE(KEYCODE_B)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('n') PORT_CHAR('N') PORT_CODE(KEYCODE_N)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('m') PORT_CHAR('M') PORT_CODE(KEYCODE_M)
+
+ PORT_START("R9")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(',') PORT_CHAR('<') PORT_CODE(KEYCODE_COMMA)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('.') PORT_CHAR('>') PORT_CODE(KEYCODE_STOP)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('/') PORT_CHAR('?') PORT_CODE(KEYCODE_SLASH)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(' ') PORT_CODE(KEYCODE_SPACE)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("New Line New Page") PORT_CODE(KEYCODE_END)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) PORT_CODE(KEYCODE_0_PAD)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) PORT_CODE(KEYCODE_DEL_PAD)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad Return") PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD)) PORT_CODE(KEYCODE_ENTER_PAD)
+
+ PORT_START("R10")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Key 9D/94")
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(HOME)) PORT_CODE(KEYCODE_HOME)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_CODE(KEYCODE_DOWN)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_CODE(KEYCODE_UP)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_CODE(KEYCODE_LEFT)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_CODE(KEYCODE_RIGHT)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Key E3/40")
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(COMMA_PAD)) PORT_CODE(KEYCODE_COMMA_PAD)
+
+ PORT_START("SHIFT")
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN)
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CHAR(UCHAR_SHIFT_2) PORT_CODE(KEYCODE_LCONTROL)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CHAR(UCHAR_SHIFT_1) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT)
+ PORT_BIT(0x1d, IP_ACTIVE_LOW, IPT_UNUSED)
+
+ PORT_START("S4")
+ PORT_DIPNAME(0x01, 0x00, "Break Key") PORT_DIPLOCATION("S4:1")
+ PORT_DIPSETTING(0x01, "Disable")
+ PORT_DIPSETTING(0x00, "Enable")
+ PORT_DIPNAME(0x02, 0x02, "Refresh Rate") PORT_DIPLOCATION("S4:2")
+ PORT_DIPSETTING(0x00, "50 Hz")
+ PORT_DIPSETTING(0x02, "60 Hz")
+ PORT_DIPNAME(0x1c, 0x14, "Modem Port") PORT_DIPLOCATION("S4:3,4,5")
+ PORT_DIPSETTING(0x00, "7 DB, EP, 2 SB")
+ PORT_DIPSETTING(0x04, "7 DB, OP, 2 SB")
+ PORT_DIPSETTING(0x08, "7 DB, EP, 1 SB")
+ PORT_DIPSETTING(0x0c, "7 DB, OP, 1 SB")
+ PORT_DIPSETTING(0x10, "8 DB, NP, 2 SB")
+ PORT_DIPSETTING(0x14, "8 DB, NP, 1 SB")
+ PORT_DIPSETTING(0x18, "8 DB, EP, 1 SB")
+ PORT_DIPSETTING(0x00, "8 DB, OP, 1 SB")
+ PORT_DIPNAME(0x20, 0x00, DEF_STR(Unused)) PORT_DIPLOCATION("S4:6")
+ PORT_DIPSETTING(0x20, DEF_STR(Off))
+ PORT_DIPSETTING(0x00, DEF_STR(On))
+ PORT_DIPNAME(0x40, 0x00, "Transmission") PORT_DIPLOCATION("S4:7")
+ PORT_DIPSETTING(0x00, "Block Mode")
+ PORT_DIPSETTING(0x40, "Conversation Mode")
+ PORT_DIPNAME(0x80, 0x00, "Duplex") PORT_DIPLOCATION("S4:8")
+ PORT_DIPSETTING(0x00, "Full Duplex")
+ PORT_DIPSETTING(0x80, "Half Duplex")
+
+ PORT_START("S5")
+ PORT_DIPNAME(0x01, 0x00, DEF_STR(Unused)) PORT_DIPLOCATION("S5:1")
+ PORT_DIPSETTING(0x01, DEF_STR(Off))
+ PORT_DIPSETTING(0x00, DEF_STR(On))
+ PORT_DIPNAME(0x02, 0x00, DEF_STR(Unused)) PORT_DIPLOCATION("S5:2")
+ PORT_DIPSETTING(0x02, DEF_STR(Off))
+ PORT_DIPSETTING(0x00, DEF_STR(On))
+ PORT_DIPNAME(0x1c, 0x14, "Printer Port") PORT_DIPLOCATION("S5:3,4,5")
+ PORT_DIPSETTING(0x00, "7 DB, EP, 2 SB")
+ PORT_DIPSETTING(0x04, "7 DB, OP, 2 SB")
+ PORT_DIPSETTING(0x08, "7 DB, EP, 1 SB")
+ PORT_DIPSETTING(0x0c, "7 DB, OP, 1 SB")
+ PORT_DIPSETTING(0x10, "8 DB, NP, 2 SB")
+ PORT_DIPSETTING(0x14, "8 DB, NP, 1 SB")
+ PORT_DIPSETTING(0x18, "8 DB, EP, 1 SB")
+ PORT_DIPSETTING(0x00, "8 DB, OP, 1 SB")
+ PORT_DIPNAME(0x20, 0x00, DEF_STR(Unused)) PORT_DIPLOCATION("S5:6")
+ PORT_DIPSETTING(0x20, DEF_STR(Off))
+ PORT_DIPSETTING(0x00, DEF_STR(On))
+ PORT_DIPNAME(0x40, 0x00, DEF_STR(Unused)) PORT_DIPLOCATION("S5:7")
+ PORT_DIPSETTING(0x40, DEF_STR(Off))
+ PORT_DIPSETTING(0x00, DEF_STR(On))
+ PORT_DIPNAME(0x80, 0x00, "Printer Port Buffer") PORT_DIPLOCATION("S5:8")
+ PORT_DIPSETTING(0x80, "Disable")
+ PORT_DIPSETTING(0x00, "Enable")
+
+ PORT_START("S6")
+ PORT_DIPNAME(0x7f, 0x00, "Polling Address") PORT_DIPLOCATION("S6:1,2,3,4,5,6,7")
+ PORT_DIPSETTING(0x00, "00")
+ PORT_DIPSETTING(0x01, "01")
+ PORT_DIPSETTING(0x02, "02")
+ PORT_DIPSETTING(0x03, "03")
+ PORT_DIPSETTING(0x04, "04")
+ PORT_DIPSETTING(0x05, "05")
+ PORT_DIPSETTING(0x06, "06")
+ PORT_DIPSETTING(0x07, "07")
+ PORT_DIPSETTING(0x08, "08")
+ PORT_DIPSETTING(0x09, "09")
+ PORT_DIPSETTING(0x0a, "0A")
+ PORT_DIPSETTING(0x0b, "0B")
+ PORT_DIPSETTING(0x0c, "0C")
+ PORT_DIPSETTING(0x0d, "0D")
+ PORT_DIPSETTING(0x0e, "0E")
+ PORT_DIPSETTING(0x0f, "0F")
+ PORT_DIPSETTING(0x10, "10")
+ PORT_DIPSETTING(0x11, "11")
+ PORT_DIPSETTING(0x12, "12")
+ PORT_DIPSETTING(0x13, "13")
+ PORT_DIPSETTING(0x14, "14")
+ PORT_DIPSETTING(0x15, "15")
+ PORT_DIPSETTING(0x16, "16")
+ PORT_DIPSETTING(0x17, "17")
+ PORT_DIPSETTING(0x18, "18")
+ PORT_DIPSETTING(0x19, "19")
+ PORT_DIPSETTING(0x1a, "1A")
+ PORT_DIPSETTING(0x1b, "1B")
+ PORT_DIPSETTING(0x1c, "1C")
+ PORT_DIPSETTING(0x1d, "1D")
+ PORT_DIPSETTING(0x1e, "1E")
+ PORT_DIPSETTING(0x1f, "1F")
+ PORT_DIPSETTING(0x20, "20")
+ PORT_DIPSETTING(0x21, "21")
+ PORT_DIPSETTING(0x22, "22")
+ PORT_DIPSETTING(0x23, "23")
+ PORT_DIPSETTING(0x24, "24")
+ PORT_DIPSETTING(0x25, "25")
+ PORT_DIPSETTING(0x26, "26")
+ PORT_DIPSETTING(0x27, "27")
+ PORT_DIPSETTING(0x28, "28")
+ PORT_DIPSETTING(0x29, "29")
+ PORT_DIPSETTING(0x2a, "2A")
+ PORT_DIPSETTING(0x2b, "2B")
+ PORT_DIPSETTING(0x2c, "2C")
+ PORT_DIPSETTING(0x2d, "2D")
+ PORT_DIPSETTING(0x2e, "2E")
+ PORT_DIPSETTING(0x2f, "2F")
+ PORT_DIPSETTING(0x30, "30")
+ PORT_DIPSETTING(0x31, "31")
+ PORT_DIPSETTING(0x32, "32")
+ PORT_DIPSETTING(0x33, "33")
+ PORT_DIPSETTING(0x34, "34")
+ PORT_DIPSETTING(0x35, "35")
+ PORT_DIPSETTING(0x36, "36")
+ PORT_DIPSETTING(0x37, "37")
+ PORT_DIPSETTING(0x38, "38")
+ PORT_DIPSETTING(0x39, "39")
+ PORT_DIPSETTING(0x3a, "3A")
+ PORT_DIPSETTING(0x3b, "3B")
+ PORT_DIPSETTING(0x3c, "3C")
+ PORT_DIPSETTING(0x3d, "3D")
+ PORT_DIPSETTING(0x3e, "3E")
+ PORT_DIPSETTING(0x3f, "3F")
+ PORT_DIPSETTING(0x40, "40")
+ PORT_DIPSETTING(0x41, "41")
+ PORT_DIPSETTING(0x42, "42")
+ PORT_DIPSETTING(0x43, "43")
+ PORT_DIPSETTING(0x44, "44")
+ PORT_DIPSETTING(0x45, "45")
+ PORT_DIPSETTING(0x46, "46")
+ PORT_DIPSETTING(0x47, "47")
+ PORT_DIPSETTING(0x48, "48")
+ PORT_DIPSETTING(0x49, "49")
+ PORT_DIPSETTING(0x4a, "4A")
+ PORT_DIPSETTING(0x4b, "4B")
+ PORT_DIPSETTING(0x4c, "4C")
+ PORT_DIPSETTING(0x4d, "4D")
+ PORT_DIPSETTING(0x4e, "4E")
+ PORT_DIPSETTING(0x4f, "4F")
+ PORT_DIPSETTING(0x50, "50")
+ PORT_DIPSETTING(0x51, "51")
+ PORT_DIPSETTING(0x52, "52")
+ PORT_DIPSETTING(0x53, "53")
+ PORT_DIPSETTING(0x54, "54")
+ PORT_DIPSETTING(0x55, "55")
+ PORT_DIPSETTING(0x56, "56")
+ PORT_DIPSETTING(0x57, "57")
+ PORT_DIPSETTING(0x58, "58")
+ PORT_DIPSETTING(0x59, "59")
+ PORT_DIPSETTING(0x5a, "5A")
+ PORT_DIPSETTING(0x5b, "5B")
+ PORT_DIPSETTING(0x5c, "5C")
+ PORT_DIPSETTING(0x5d, "5D")
+ PORT_DIPSETTING(0x5e, "5E")
+ PORT_DIPSETTING(0x5f, "5F")
+ PORT_DIPSETTING(0x60, "60")
+ PORT_DIPSETTING(0x61, "61")
+ PORT_DIPSETTING(0x62, "62")
+ PORT_DIPSETTING(0x63, "63")
+ PORT_DIPSETTING(0x64, "64")
+ PORT_DIPSETTING(0x65, "65")
+ PORT_DIPSETTING(0x66, "66")
+ PORT_DIPSETTING(0x67, "67")
+ PORT_DIPSETTING(0x68, "68")
+ PORT_DIPSETTING(0x69, "69")
+ PORT_DIPSETTING(0x6a, "6A")
+ PORT_DIPSETTING(0x6b, "6B")
+ PORT_DIPSETTING(0x6c, "6C")
+ PORT_DIPSETTING(0x6d, "6D")
+ PORT_DIPSETTING(0x6e, "6E")
+ PORT_DIPSETTING(0x6f, "6F")
+ PORT_DIPSETTING(0x70, "70")
+ PORT_DIPSETTING(0x71, "71")
+ PORT_DIPSETTING(0x72, "72")
+ PORT_DIPSETTING(0x73, "73")
+ PORT_DIPSETTING(0x74, "74")
+ PORT_DIPSETTING(0x75, "75")
+ PORT_DIPSETTING(0x76, "76")
+ PORT_DIPSETTING(0x77, "77")
+ PORT_DIPSETTING(0x78, "78")
+ PORT_DIPSETTING(0x79, "79")
+ PORT_DIPSETTING(0x7a, "7A")
+ PORT_DIPSETTING(0x7b, "7B")
+ PORT_DIPSETTING(0x7c, "7C")
+ PORT_DIPSETTING(0x7d, "7D")
+ PORT_DIPSETTING(0x7e, "7E")
+ PORT_DIPSETTING(0x7f, "7F")
+ PORT_DIPNAME(0x80, 0x80, "Polling Option") PORT_DIPLOCATION("S6:8")
+ PORT_DIPSETTING(0x80, "Disable")
+ PORT_DIPSETTING(0x00, "Enable")
+
+ PORT_START("BAUD")
+ PORT_DIPNAME(0x0f, 0x0e, "Modem Baud Rate") PORT_DIPLOCATION("BS1:1,2,3,4")
+ PORT_DIPSETTING(0x00, "50")
+ PORT_DIPSETTING(0x01, "75")
+ PORT_DIPSETTING(0x02, "110")
+ PORT_DIPSETTING(0x03, "134.5")
+ PORT_DIPSETTING(0x04, "150")
+ PORT_DIPSETTING(0x05, "300")
+ PORT_DIPSETTING(0x06, "600")
+ PORT_DIPSETTING(0x07, "1200")
+ PORT_DIPSETTING(0x08, "1800")
+ PORT_DIPSETTING(0x09, "2000")
+ PORT_DIPSETTING(0x0a, "2400")
+ PORT_DIPSETTING(0x0b, "3600")
+ PORT_DIPSETTING(0x0c, "4800")
+ PORT_DIPSETTING(0x0d, "7200")
+ PORT_DIPSETTING(0x0e, "9600")
+ PORT_DIPNAME(0xf0, 0x70, "Printer Baud Rate") PORT_DIPLOCATION("BS2:1,2,3,4")
+ PORT_DIPSETTING(0x00, "50")
+ PORT_DIPSETTING(0x10, "75")
+ PORT_DIPSETTING(0x20, "110")
+ PORT_DIPSETTING(0x30, "134.5")
+ PORT_DIPSETTING(0x40, "150")
+ PORT_DIPSETTING(0x50, "300")
+ PORT_DIPSETTING(0x60, "600")
+ PORT_DIPSETTING(0x70, "1200")
+ PORT_DIPSETTING(0x80, "1800")
+ PORT_DIPSETTING(0x90, "2000")
+ PORT_DIPSETTING(0xa0, "2400")
+ PORT_DIPSETTING(0xb0, "3600")
+ PORT_DIPSETTING(0xc0, "4800")
+ PORT_DIPSETTING(0xd0, "7200")
+ PORT_DIPSETTING(0xe0, "9600")
+INPUT_PORTS_END
+
+void adm31_state::adm31(machine_config &config)
+{
+ M6800(config, m_maincpu, 19.584_MHz_XTAL / 20);
+ m_maincpu->set_addrmap(AS_PROGRAM, &adm31_state::mem_map);
+
+ INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline(m_maincpu, M6800_IRQ_LINE);
+
+ pia6821_device &pia(PIA6821(config, "pia"));
+ pia.writepa_handler().set(FUNC(adm31_state::kbd_scan_w));
+ pia.readpa_handler().set(FUNC(adm31_state::kbd_scan_r));
+ pia.writepb_handler().set(FUNC(adm31_state::kbd_status_w));
+ pia.readpb_handler().set_ioport("SHIFT");
+
+ ACIA6850(config, m_acia[0]);
+ m_acia[0]->irq_handler().set("mainirq", FUNC(input_merger_device::in_w<0>));
+
+ ACIA6850(config, m_acia[1]);
+ m_acia[0]->irq_handler().set("mainirq", FUNC(input_merger_device::in_w<1>));
+
+ COM8116(config, m_brg, 5.0688_MHz_XTAL);
+ m_brg->fr_handler().set(m_acia[0], FUNC(acia6850_device::write_rxc));
+ m_brg->fr_handler().append(m_acia[0], FUNC(acia6850_device::write_txc));
+ m_brg->ft_handler().set(m_acia[1], FUNC(acia6850_device::write_rxc));
+ m_brg->ft_handler().append(m_acia[1], FUNC(acia6850_device::write_txc));
+
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(19.584_MHz_XTAL, 1020, 0, 800, 320, 0, 288);
+ screen.set_screen_update(FUNC(adm31_state::screen_update));
+
+ CRT5027(config, m_vtac, 19.584_MHz_XTAL / 10);
+ m_vtac->set_screen("screen");
+ m_vtac->set_char_width(10);
+}
+
+
+ROM_START(adm31)
+ ROM_REGION(0x2000, "program", 0)
+ ROM_LOAD("adm-31-u62.bin", 0x0000, 0x0800, CRC(57e557a5) SHA1(cb3021ab570c279cbaa673b5de8fa1ca9eb48188))
+ ROM_LOAD("adm-31-u63.bin", 0x0800, 0x0800, CRC(1268a59c) SHA1(f0cd8562e0d5faebf84d8decaa848ff28f2ac637))
+ ROM_LOAD("adm-31-u64.bin", 0x1000, 0x0800, CRC(8939fa00) SHA1(00f6a8a49e51a9501cd9d1e2aae366fb070a5a1d))
+ ROM_LOAD("adm-31-u65.bin", 0x1800, 0x0800, CRC(53e4e2f1) SHA1(bf30241815c790de3354e1acfe84e760c889cbb1))
+
+ ROM_REGION(0x0800, "chargen", 0)
+ ROM_LOAD("chargen.bin", 0x0000, 0x0800, NO_DUMP)
+ROM_END
+
+
+COMP(1978, adm31, 0, 0, adm31, adm31, adm31_state, empty_init, "Lear Siegler", "ADM-31 Data Display Terminal", MACHINE_IS_SKELETON)
diff --git a/src/mame/drivers/adm36.cpp b/src/mame/drivers/adm36.cpp
new file mode 100644
index 00000000000..2298543b7eb
--- /dev/null
+++ b/src/mame/drivers/adm36.cpp
@@ -0,0 +1,202 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert,AJR
+/************************************************************************************************************
+
+ Skeleton driver for ADM 36 Video Display Terminal.
+
+ The detachable keyboard has not been dumped. It is controlled serially through the PIO.
+
+************************************************************************************************************/
+
+#include "emu.h"
+#include "bus/rs232/rs232.h"
+#include "cpu/z80/z80.h"
+#include "machine/er1400.h"
+#include "machine/z80ctc.h"
+#include "machine/z80pio.h"
+#include "machine/z80sio.h"
+#include "video/tms9927.h"
+#include "screen.h"
+
+
+class adm36_state : public driver_device
+{
+public:
+ adm36_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_earom(*this, "earom")
+ , m_vtac(*this, "vtac")
+ , m_chargen(*this, "chargen")
+ , m_vram(*this, "vram%u", 0U)
+ {
+ }
+
+ void adm36(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
+private:
+ u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+ void pio_pa_w(u8 data);
+ u8 pio_pb_r();
+ void pio_pb_w(u8 data);
+ DECLARE_WRITE_LINE_MEMBER(vsyn_w);
+
+ void mem_map(address_map &map);
+ void io_map(address_map &map);
+
+ required_device<z80_device> m_maincpu;
+ required_device<er1400_device> m_earom;
+ required_device<crt5037_device> m_vtac;
+ required_region_ptr<u8> m_chargen;
+ required_shared_ptr_array<u8, 2> m_vram;
+
+ bool m_vsyn;
+};
+
+
+u32 adm36_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ return 0;
+}
+
+void adm36_state::machine_start()
+{
+ m_vsyn = false;
+
+ save_item(NAME(m_vsyn));
+}
+
+void adm36_state::machine_reset()
+{
+}
+
+void adm36_state::pio_pa_w(u8 data)
+{
+ m_earom->data_w(BIT(data, 0));
+}
+
+u8 adm36_state::pio_pb_r()
+{
+ return (m_earom->data_r() ? 0 : 1) | (m_vsyn ? 0x20 : 0);
+}
+
+void adm36_state::pio_pb_w(u8 data)
+{
+ m_earom->clock_w(!BIT(data, 4));
+ m_earom->c3_w(BIT(data, 3));
+ m_earom->c2_w(BIT(data, 2));
+ m_earom->c1_w(BIT(data, 1));
+}
+
+WRITE_LINE_MEMBER(adm36_state::vsyn_w)
+{
+ m_vsyn = bool(state);
+}
+
+void adm36_state::mem_map(address_map &map)
+{
+ map(0x0000, 0x2fff).rom().region("maincpu", 0);
+ map(0x6000, 0x67ff).ram(); // MK4802J-3 (U76)
+ map(0xe000, 0xefff).ram().share("vram0"); // 4x MK4118AN-1 (U66-U69)
+ map(0xf000, 0xffff).ram().share("vram1"); // 4x MK4118AN-1 (U81-U84)
+}
+
+void adm36_state::io_map(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x03).mirror(0x0c).rw("ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
+ map(0x10, 0x13).mirror(0x0c).rw("sio", FUNC(z80sio_device::cd_ba_r), FUNC(z80sio_device::cd_ba_w));
+ map(0x20, 0x23).mirror(0x0c).rw("pio", FUNC(z80pio_device::read), FUNC(z80pio_device::write));
+ map(0x40, 0x4f).rw(m_vtac, FUNC(crt5037_device::read), FUNC(crt5037_device::write));
+}
+
+
+static INPUT_PORTS_START(adm36)
+INPUT_PORTS_END
+
+
+static const z80_daisy_config daisy_chain[] =
+{
+ { "ctc" },
+ { "sio" },
+ { "pio" },
+ { nullptr }
+};
+
+void adm36_state::adm36(machine_config &config)
+{
+ // basic machine hardware
+ Z80(config, m_maincpu, 14.728_MHz_XTAL / 6);
+ m_maincpu->set_addrmap(AS_PROGRAM, &adm36_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &adm36_state::io_map);
+ m_maincpu->set_daisy_config(daisy_chain);
+
+ z80pio_device &pio(Z80PIO(config, "pio", 14.728_MHz_XTAL / 6));
+ pio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ pio.out_pa_callback().set(FUNC(adm36_state::pio_pa_w));
+ pio.in_pb_callback().set(FUNC(adm36_state::pio_pb_r));
+ pio.out_pb_callback().set(FUNC(adm36_state::pio_pb_w));
+
+ ER1400(config, m_earom);
+
+ //F3870(config, "keybcpu", 3.579545_MHz_XTAL);
+
+ z80ctc_device &ctc(Z80CTC(config, "ctc", 14.728_MHz_XTAL / 6));
+ ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ ctc.set_clk<0>(14.728_MHz_XTAL / 12);
+ ctc.set_clk<1>(14.728_MHz_XTAL / 12);
+ ctc.set_clk<2>(14.728_MHz_XTAL / 12);
+ ctc.set_clk<3>(14.728_MHz_XTAL / 12);
+ ctc.zc_callback<0>().set("sio", FUNC(z80sio_device::txca_w));
+ ctc.zc_callback<1>().set("sio", FUNC(z80sio_device::rxca_w));
+ ctc.zc_callback<2>().set("sio", FUNC(z80sio_device::txcb_w));
+ ctc.zc_callback<2>().append("sio", FUNC(z80sio_device::rxcb_w));
+
+ z80sio_device &sio(Z80SIO(config, "sio", 14.728_MHz_XTAL / 6)); // MK3887N
+ sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ sio.out_txda_callback().set("modem", FUNC(rs232_port_device::write_txd));
+ sio.out_rtsa_callback().set("modem", FUNC(rs232_port_device::write_rts));
+ sio.out_dtra_callback().set("modem", FUNC(rs232_port_device::write_dtr));
+ sio.out_txdb_callback().set("printer", FUNC(rs232_port_device::write_txd));
+ sio.out_dtrb_callback().set("printer", FUNC(rs232_port_device::write_rts));
+
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(14.728_MHz_XTAL, 936, 0, 720, 262, 0, 240);
+ //screen.set_raw(24.3_MHz_XTAL, 1548, 0, 1188, 262, 0, 240);
+ screen.set_screen_update(FUNC(adm36_state::screen_update));
+
+ CRT5037(config, m_vtac, 14.728_MHz_XTAL / 9);
+ m_vtac->set_char_width(9);
+ m_vtac->set_screen("screen");
+ m_vtac->vsyn_callback().set(FUNC(adm36_state::vsyn_w));
+
+ rs232_port_device &modem(RS232_PORT(config, "modem", default_rs232_devices, nullptr)); // RS-232C, RS-422A or 20mA current loop
+ modem.rxd_handler().set("sio", FUNC(z80sio_device::rxa_w));
+ modem.cts_handler().set("sio", FUNC(z80sio_device::ctsa_w));
+ modem.dcd_handler().set("sio", FUNC(z80sio_device::dcda_w));
+ modem.dsr_handler().set("pio", FUNC(z80pio_device::pb6_w));
+
+ rs232_port_device &printer(RS232_PORT(config, "printer", default_rs232_devices, nullptr));
+ printer.rxd_handler().set("sio", FUNC(z80sio_device::rxb_w));
+ printer.cts_handler().set("sio", FUNC(z80sio_device::ctsa_w));
+ printer.dcd_handler().set("sio", FUNC(z80sio_device::dcda_w));
+}
+
+
+ROM_START(adm36)
+ ROM_REGION(0x3000, "maincpu", 0)
+ ROM_LOAD("u71_136261-012.bin", 0x0000, 0x2000, CRC(f08315c7) SHA1(3943a5fc587e690df81aa9694e6e452673ec5513))
+ ROM_LOAD("u72_131671-015.bin", 0x2000, 0x1000, CRC(c397f4e2) SHA1(21513472fe4237bda8448a2ad85496757d4ece12))
+ // U73-U75 are empty sockets
+
+ ROM_REGION(0x1000, "chargen", 0)
+ ROM_LOAD("u56.bin", 0x0000, 0x1000, CRC(70e46897) SHA1(85b4360912fc05243b3b2df29bde5a3def94086b))
+ROM_END
+
+
+COMP(1981, adm36, 0, 0, adm36, adm36, adm36_state, empty_init, "Lear Siegler", "ADM 36 Video Display Terminal", MACHINE_IS_SKELETON)
diff --git a/src/mame/drivers/adp.cpp b/src/mame/drivers/adp.cpp
index 0c5317b7b0f..50200fc0a47 100644
--- a/src/mame/drivers/adp.cpp
+++ b/src/mame/drivers/adp.cpp
@@ -540,34 +540,34 @@ void adp_state::fstation_hd63484_map(address_map &map)
map(0x80000, 0xfffff).ram();
}
-MACHINE_CONFIG_START(adp_state::quickjac)
-
- MCFG_DEVICE_ADD(m_maincpu, M68000, 8000000)
- MCFG_DEVICE_PROGRAM_MAP(quickjac_mem)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(adp_state, duart_iack_handler)
+void adp_state::quickjac(machine_config &config)
+{
+ M68000(config, m_maincpu, 8000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &adp_state::quickjac_mem);
+ m_maincpu->set_irq_acknowledge_callback(FUNC(adp_state::duart_iack_handler));
MCFG_MACHINE_START_OVERRIDE(adp_state,skattv)
MCFG_MACHINE_RESET_OVERRIDE(adp_state,skattv)
- MCFG_DEVICE_ADD( "duart", MC68681, XTAL(8'664'000) / 2 )
- MCFG_MC68681_IRQ_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_4))
- MCFG_MC68681_A_TX_CALLBACK(WRITELINE("microtouch", microtouch_device, rx))
- MCFG_MC68681_INPORT_CALLBACK(IOPORT("DSW1"))
+ MC68681(config, m_duart, XTAL(8'664'000) / 2);
+ m_duart->irq_cb().set_inputline(m_maincpu, M68K_IRQ_4);
+ m_duart->a_tx_cb().set(m_microtouch, FUNC(microtouch_device::rx));
+ m_duart->inport_cb().set_ioport("DSW1");
- MCFG_MICROTOUCH_ADD( "microtouch", 9600, WRITELINE("duart", mc68681_device, rx_a_w) )
+ MICROTOUCH(config, m_microtouch, 9600).stx().set(m_duart, FUNC(mc68681_device::rx_a_w));
NVRAM(config, m_nvram, nvram_device::DEFAULT_NONE);
- MCFG_DEVICE_ADD("rtc", MSM6242, XTAL(32'768))
- //MCFG_MSM6242_OUT_INT_HANDLER(WRITELINE(*this, adp_state, rtc_irq))
+ MSM6242(config, "rtc", XTAL(32'768));
+ //rtc.out_int_handler().set(FUNC(adp_state::rtc_irq));
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_SIZE(384, 280)
- MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1)
- MCFG_SCREEN_UPDATE_DEVICE("acrtc", hd63484_device, update_screen)
- 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(2500));
+ screen.set_size(384, 280);
+ screen.set_visarea_full();
+ screen.set_screen_update("acrtc", FUNC(hd63484_device::update_screen));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette, FUNC(adp_state::adp_palette), 0x10);
@@ -577,8 +577,7 @@ MACHINE_CONFIG_START(adp_state::quickjac)
ym2149_device &aysnd(YM2149(config, "aysnd", 3686400/2));
aysnd.port_a_read_callback().set_ioport("PA");
aysnd.add_route(ALL_OUTPUTS, "mono", 0.10);
-
-MACHINE_CONFIG_END
+}
void adp_state::skattv(machine_config &config)
{
@@ -604,32 +603,31 @@ void adp_state::ramdac_map(address_map &map)
map(0x000, 0x3ff).rw("ramdac", FUNC(ramdac_device::ramdac_pal_r), FUNC(ramdac_device::ramdac_rgb666_w));
}
-MACHINE_CONFIG_START(adp_state::funland)
+void adp_state::funland(machine_config &config)
+{
quickjac(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(funland_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &adp_state::funland_mem);
PALETTE(config.replace(), m_palette, palette_device::BLACK, 0x100);
ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, m_palette));
ramdac.set_addrmap(0, &adp_state::ramdac_map);
- MCFG_DEVICE_MODIFY("acrtc")
- MCFG_HD63484_ADDRESS_MAP(fstation_hd63484_map)
-MACHINE_CONFIG_END
+ m_acrtc->set_addrmap(0, &adp_state::fstation_hd63484_map);
+}
-MACHINE_CONFIG_START(adp_state::fstation)
+void adp_state::fstation(machine_config &config)
+{
funland(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(fstation_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &adp_state::fstation_mem);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_size(640, 480);
+ screen.set_visarea_full();
m_palette->set_init(FUNC(adp_state::fstation_palette));
-MACHINE_CONFIG_END
+}
ROM_START( quickjac )
diff --git a/src/mame/drivers/advision.cpp b/src/mame/drivers/advision.cpp
index a2a4498e31f..ca9c168cbe9 100644
--- a/src/mame/drivers/advision.cpp
+++ b/src/mame/drivers/advision.cpp
@@ -31,7 +31,7 @@
READ8_MEMBER( advision_state::rom_r )
{
offset += 0x400;
- return m_cart->read_rom(space, offset & 0xfff);
+ return m_cart->read_rom(offset & 0xfff);
}
void advision_state::program_map(address_map &map)
@@ -93,7 +93,6 @@ void advision_state::advision(machine_config &config)
SPEAKER(config, "speaker").front_center();
DAC_2BIT_BINARY_WEIGHTED(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
- vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
diff --git a/src/mame/drivers/aeroboto.cpp b/src/mame/drivers/aeroboto.cpp
index 45a7daa8de6..9ec149faaa6 100644
--- a/src/mame/drivers/aeroboto.cpp
+++ b/src/mame/drivers/aeroboto.cpp
@@ -244,26 +244,26 @@ void aeroboto_state::machine_reset()
m_sy = 0;
}
-MACHINE_CONFIG_START(aeroboto_state::formatz)
-
+void aeroboto_state::formatz(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MC6809, XTAL(10'000'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ MC6809(config, m_maincpu, XTAL(10'000'000)/2); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &aeroboto_state::main_map);
- MCFG_DEVICE_ADD("audiocpu", MC6809, XTAL(10'000'000)/4) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
+ MC6809(config, m_audiocpu, XTAL(10'000'000)/4); /* verified on pcb */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &aeroboto_state::sound_map);
/* 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, 31*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(aeroboto_state, screen_update_aeroboto)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, aeroboto_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, 31*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(aeroboto_state::screen_update_aeroboto));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(aeroboto_state::vblank_irq));
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_aeroboto)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_aeroboto);
PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256);
@@ -279,7 +279,7 @@ MACHINE_CONFIG_START(aeroboto_state::formatz)
ay1.add_route(ALL_OUTPUTS, "mono", 0.25);
AY8910(config, "ay2", XTAL(10'000'000)/16).add_route(ALL_OUTPUTS, "mono", 0.25); /* verified on pcb */
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/aerofgt.cpp b/src/mame/drivers/aerofgt.cpp
index 62e85461888..0639b91322b 100644
--- a/src/mame/drivers/aerofgt.cpp
+++ b/src/mame/drivers/aerofgt.cpp
@@ -1861,7 +1861,7 @@ void aerofgt_state::turbofrc(machine_config &config)
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(61.31); /* verified on pcb */
+ screen.set_refresh_hz(61.31); /* verified on pcb */
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(64*8, 32*8);
screen.set_visarea(0*8, 44*8-1, 0*8, 30*8-1);
diff --git a/src/mame/drivers/agat.cpp b/src/mame/drivers/agat.cpp
index a0560a020af..b0d8cb1b2f8 100644
--- a/src/mame/drivers/agat.cpp
+++ b/src/mame/drivers/agat.cpp
@@ -1076,21 +1076,21 @@ static void agat7_cards(device_slot_interface &device)
// Nippel Co-processor (R65C02 clone + dual-ported RAM)
}
-MACHINE_CONFIG_START(agat7_state::agat7)
- MCFG_DEVICE_ADD(m_maincpu, M6502, XTAL(14'300'000) / 14)
- MCFG_DEVICE_PROGRAM_MAP(agat7_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER(A7_VIDEO_TAG ":a7screen", agat7_state, agat_vblank)
+void agat7_state::agat7(machine_config &config)
+{
+ M6502(config, m_maincpu, XTAL(14'300'000) / 14);
+ m_maincpu->set_addrmap(AS_PROGRAM, &agat7_state::agat7_map);
+ m_maincpu->set_vblank_int(A7_VIDEO_TAG ":a7screen", FUNC(agat7_state::agat_vblank));
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", agat7_state, timer_irq, A7_VIDEO_TAG ":a7screen", 0, 1)
+ TIMER(config, "scantimer").configure_scanline(FUNC(agat7_state::timer_irq), A7_VIDEO_TAG ":a7screen", 0, 1);
- MCFG_DEVICE_ADD(m_video, AGAT7VIDEO, RAM_TAG, "gfx1")
+ AGAT7VIDEO(config, m_video, RAM_TAG, "gfx1");
RAM(config, m_ram).set_default_size("32K").set_default_value(0);//.set_extra_options("64K,128K");
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD(A7_SPEAKER_TAG, SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.00);
/* /INH banking */
ADDRESS_MAP_BANK(config, m_upperbank).set_map(&agat7_state::inhbank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x3000);
@@ -1112,26 +1112,27 @@ MACHINE_CONFIG_START(agat7_state::agat7)
m_ay3600->ako().set(FUNC(agat7_state::ay3600_ako_w));
/* repeat timer. 10 Hz per Mymrin's book */
- MCFG_TIMER_DRIVER_ADD_PERIODIC("repttmr", agat7_state, ay3600_repeat, attotime::from_hz(10))
+ TIMER(config, "repttmr").configure_periodic(FUNC(agat7_state::ay3600_repeat), attotime::from_hz(10));
/*
* slot 0 is reserved for SECAM encoder or Apple II compat card.
* slot 1 always holds the CPU card.
*/
- MCFG_DEVICE_ADD(m_a2bus, A2BUS, 0)
- MCFG_A2BUS_CPU(A7_CPU_TAG)
- MCFG_A2BUS_OUT_IRQ_CB(WRITELINE(*this, agat7_state, a2bus_irq_w))
- MCFG_A2BUS_OUT_NMI_CB(WRITELINE(*this, agat7_state, a2bus_nmi_w))
- MCFG_A2BUS_OUT_INH_CB(WRITELINE(*this, agat7_state, a2bus_inh_w))
+ A2BUS(config, m_a2bus, 0);
+ m_a2bus->set_space(m_maincpu, AS_PROGRAM);
+ m_a2bus->irq_w().set(FUNC(agat7_state::a2bus_irq_w));
+ m_a2bus->nmi_w().set(FUNC(agat7_state::a2bus_nmi_w));
+ m_a2bus->inh_w().set(FUNC(agat7_state::a2bus_inh_w));
+ m_a2bus->dma_w().set_inputline(m_maincpu, INPUT_LINE_HALT);
A2BUS_SLOT(config, "sl2", m_a2bus, agat7_cards, "a7lang");
A2BUS_SLOT(config, "sl3", m_a2bus, agat7_cards, "a7fdc");
A2BUS_SLOT(config, "sl4", m_a2bus, agat7_cards, "a7ports");
A2BUS_SLOT(config, "sl5", m_a2bus, agat7_cards, nullptr);
A2BUS_SLOT(config, "sl6", m_a2bus, agat7_cards, "a7ram");
- MCFG_CASSETTE_ADD(m_cassette)
- MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED)
-MACHINE_CONFIG_END
+ CASSETTE(config,m_cassette);
+ m_cassette->set_default_state(CASSETTE_STOPPED);
+}
/***************************************************************************
diff --git a/src/mame/drivers/age_candy.cpp b/src/mame/drivers/age_candy.cpp
index 331a421c7f7..49c55908dd8 100644
--- a/src/mame/drivers/age_candy.cpp
+++ b/src/mame/drivers/age_candy.cpp
@@ -13,6 +13,7 @@ Device is a 27c256 location U3
*/
#include "emu.h"
+#include "cpu/hpc/hpc.h"
#include "speaker.h"
@@ -21,7 +22,7 @@ class age_candy_state : public driver_device
public:
age_candy_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
- // ,m_maincpu(*this, "maincpu")
+ , m_maincpu(*this, "maincpu")
{ }
void age_candy(machine_config &config);
@@ -31,7 +32,7 @@ private:
virtual void machine_reset() override;
void age_candy_map(address_map &map);
-// required_device<mcs51_cpu_device> m_maincpu;
+ required_device<hpc_device> m_maincpu;
};
static INPUT_PORTS_START( age_candy )
@@ -48,24 +49,19 @@ void age_candy_state::machine_reset()
}
-#ifdef UNUSED_DEFINITION
void age_candy_state::age_candy_map(address_map &map)
{
- map(0xc000, 0xffff).rom().region("maincpu", 0x4000);
+ map(0x8000, 0xffff).rom().region("maincpu", 0);
}
-#endif
-MACHINE_CONFIG_START(age_candy_state::age_candy)
-
- /* basic machine hardware */
-// MCFG_DEVICE_ADD("maincpu", HPC46104, 8000000) // unknown clock; HPC emulation needed
-// MCFG_DEVICE_PROGRAM_MAP(age_candy_map)
-// MCFG_DEVICE_IO_MAP(age_candy_io)
+void age_candy_state::age_candy(machine_config &config)
+{
+ HPC46104(config, m_maincpu, 16_MHz_XTAL); // HPC still not actually emulated
+ m_maincpu->set_addrmap(AS_PROGRAM, &age_candy_state::age_candy_map);
/* sound hardware */
SPEAKER(config, "mono").front_center();
-MACHINE_CONFIG_END
-
+}
ROM_START( age_cand )
diff --git a/src/mame/drivers/aim65.cpp b/src/mame/drivers/aim65.cpp
index d292923be37..dc8a1dbed81 100644
--- a/src/mame/drivers/aim65.cpp
+++ b/src/mame/drivers/aim65.cpp
@@ -188,32 +188,32 @@ image_init_result aim65_state::load_cart(device_image_interface &image, generic_
MACHINE_CONFIG_START(aim65_state::aim65)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6502, AIM65_CLOCK) /* 1 MHz */
- MCFG_DEVICE_PROGRAM_MAP(aim65_mem)
+ M6502(config, m_maincpu, AIM65_CLOCK); /* 1 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &aim65_state::aim65_mem);
config.set_default_layout(layout_aim65);
/* alpha-numeric display */
- MCFG_DEVICE_ADD("ds1", DL1416T, u32(0))
- MCFG_DL1416_UPDATE_HANDLER(WRITE16(*this, aim65_state, aim65_update_ds<1>))
- MCFG_DEVICE_ADD("ds2", DL1416T, u32(0))
- MCFG_DL1416_UPDATE_HANDLER(WRITE16(*this, aim65_state, aim65_update_ds<2>))
- MCFG_DEVICE_ADD("ds3", DL1416T, u32(0))