mirror of
https://github.com/holub/mame
synced 2025-07-05 18:08:04 +03:00
Merge branch 'master' into trs80dt1
This commit is contained in:
commit
c86461ae82
@ -383,7 +383,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Konami Four Game Arcade</description>
|
||||
<year>19??</year>
|
||||
<publisher>Konami</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="4game.dsk" size="225536" crc="19cc28fa" sha1="fed6c4972fc72ac51952f3b800c43f1b1240643b" offset="000000" />
|
||||
</dataarea>
|
||||
@ -394,7 +394,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>256 Games Pack for Einstein 256</description>
|
||||
<year>1986</year>
|
||||
<publisher>Merlin Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="432111">
|
||||
<rom name="256 games pack (1986)(merlin software).dsk" size="432111" crc="2146b276" sha1="f1264ae29aed7ef14a99ce3a851adf0a4888e427" offset="000000" />
|
||||
</dataarea>
|
||||
@ -405,7 +405,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Agrovator</description>
|
||||
<year>19??</year>
|
||||
<publisher>Syntaxsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="432111">
|
||||
<rom name="agrovator (19xx)(syntaxsoft).dsk" size="432111" crc="c63f389c" sha1="1c83b50e3bbd91ae8a2003734a6028b88aecd42a" offset="000000" />
|
||||
</dataarea>
|
||||
@ -416,7 +416,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Alice and the March Hare</description>
|
||||
<year>1986</year>
|
||||
<publisher>Orion Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="alice and the march hare (1986)(orion software).dsk" size="215296" crc="064166a6" sha1="d7138afc0068fe192ac1718ae6566b016de26571" offset="000000" />
|
||||
</dataarea>
|
||||
@ -428,7 +428,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Assembly Language Course</description>
|
||||
<year>1985</year>
|
||||
<publisher>Glentop</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="assembly.dsk" size="215296" crc="ca014880" sha1="0c512676eb9bd2769459d5f3cf98fa173fe7ae40" offset="000000" />
|
||||
</dataarea>
|
||||
@ -439,7 +439,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Boardello</description>
|
||||
<year>1985</year>
|
||||
<publisher>Bubble Bus</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="boardelo.dsk" size="215296" crc="4f428e86" sha1="1aaecade1d2d7e5ca7ffdd056fe66054d0c1e36d" offset="000000" />
|
||||
</dataarea>
|
||||
@ -450,7 +450,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Basic Tutorial</description>
|
||||
<year>1984</year>
|
||||
<publisher>Solo Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="basic.dsk" size="215296" crc="f3433463" sha1="da34ca555b1173b7683c5288209696f1780386c2" offset="000000" />
|
||||
</dataarea>
|
||||
@ -461,7 +461,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Castle Quest & Quest</description>
|
||||
<year>19??</year>
|
||||
<publisher>Kuma Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="castle.dsk" size="215296" crc="d21a8b66" sha1="cc12ce160e9da03c687f1d325deacf750c63622b" offset="000000" />
|
||||
</dataarea>
|
||||
@ -472,7 +472,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Chuckie Egg</description>
|
||||
<year>1984</year>
|
||||
<publisher>Tatung Einsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="chuckie.dsk" size="215296" crc="646a2e35" sha1="0ec273fef5172259a81a3837904450ad03842e42" offset="000000" />
|
||||
</dataarea>
|
||||
@ -483,7 +483,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>CP/M+</description>
|
||||
<year>19??</year>
|
||||
<publisher>Duncan Elvin</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="cpm3.dsk" size="215296" crc="ba285bc6" sha1="862af9d340226fb8f21ab8ae209dba209775bc6e" offset="000000" />
|
||||
</dataarea>
|
||||
@ -494,7 +494,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Cluedo</description>
|
||||
<year>1984</year>
|
||||
<publisher>Leisure Genius</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="cluedo.dsk" size="215296" crc="9c512cd7" sha1="2c0c2db7d7b029b2dac634891429e3b2fc0ab896" offset="000000" />
|
||||
</dataarea>
|
||||
@ -505,7 +505,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Colour Fantasia</description>
|
||||
<year>1984</year>
|
||||
<publisher>Kuma</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="colour fantasia (1984)(kuma).dsk" size="215296" crc="9ba560b0" sha1="315cf7972b5ab4101d7fa36b8473f95bfbb0b5c9" offset="000000" />
|
||||
</dataarea>
|
||||
@ -516,7 +516,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>The Cracker (v2.31c)</description>
|
||||
<year>1985</year>
|
||||
<publisher>Tatung</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="cracker, the v2.31c (1985)(tatung).dsk" size="215296" crc="d7281b0d" sha1="92866de491cb5e8dd42d1c1cd458e17b2e0d3dcd" offset="000000" />
|
||||
</dataarea>
|
||||
@ -527,7 +527,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Cursed Chambers & ZRIM</description>
|
||||
<year>19??</year>
|
||||
<publisher>Kuma Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="cchamber.dsk" size="215296" crc="5ed3b3f6" sha1="77deff35d7d68dbf22ebdffe950e0a160a888799" offset="000000" />
|
||||
</dataarea>
|
||||
@ -538,7 +538,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Cursed Chambers & ZRIM (Alt)</description>
|
||||
<year>19??</year>
|
||||
<publisher>Kuma Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="cursed chambers & zrim (198x)(kuma software).dsk" size="215296" crc="e90b6d6e" sha1="42fdd02da64b5141e968a8edbeafbf244a8b67de" offset="000000" />
|
||||
</dataarea>
|
||||
@ -549,7 +549,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Dan Diamond Trilogy</description>
|
||||
<year>19??</year>
|
||||
<publisher>Tatung Einsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="diamond.dsk" size="215296" crc="7995e95b" sha1="af9784f5129c91de29d896cd4ef6eb013abe4b2e" offset="000000" />
|
||||
</dataarea>
|
||||
@ -560,7 +560,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>The Disc</description>
|
||||
<year>19??</year>
|
||||
<publisher>Emsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="disk.dsk" size="215296" crc="2a18d569" sha1="45950a6d63d661c4819a53e156da8027055eff42" offset="000000" />
|
||||
</dataarea>
|
||||
@ -571,7 +571,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Disco Dan</description>
|
||||
<year>1984</year>
|
||||
<publisher>Tatung Einsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="disco.dsk" size="215296" crc="21006fae" sha1="0c8563fb3b5d92d10f7560ed70558b74b203e2ca" offset="000000" />
|
||||
</dataarea>
|
||||
@ -583,7 +583,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Druid</description>
|
||||
<year>19??</year>
|
||||
<publisher>Merlin Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="druid.dsk" size="215296" crc="25de2d70" sha1="008fec6fdfa922172cf385166a676c3d76943a71" offset="000000" />
|
||||
</dataarea>
|
||||
@ -594,7 +594,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Eazidraw</description>
|
||||
<year>1988</year>
|
||||
<publisher>Supasoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="eazidraw.dsk" size="215296" crc="8999581b" sha1="49a00d2489ae0e9bc14cf96d5363b916fe242608" offset="000000" />
|
||||
</dataarea>
|
||||
@ -605,7 +605,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Fire!!! / Para-Shoot / Apocalypse / Headache / Gold Miner / Kentucky Derby</description>
|
||||
<year>19??</year>
|
||||
<publisher>Solo Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="6in1.dsk" size="215296" crc="ab3cba74" sha1="42c12012e0053d8017cd2c9c07bd38e9b54f2e03" offset="000000" />
|
||||
</dataarea>
|
||||
@ -616,7 +616,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Einstein Compendium</description>
|
||||
<year>19??</year>
|
||||
<publisher>Emsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="einstein compendium (19xx)(emsoft).dsk" size="215296" crc="40aaf5ff" sha1="c3a4b1b128e77b97b4cfd1a8b6d5e9a718ed8136" offset="000000" />
|
||||
</dataarea>
|
||||
@ -627,7 +627,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Einstein Micro Plox</description>
|
||||
<year>1989</year>
|
||||
<publisher>Henry Philippe</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="microplx.dsk" size="215296" crc="8559318d" sha1="4c585dce341652c37d5066c63864030cd0aaa44b" offset="000000" />
|
||||
</dataarea>
|
||||
@ -638,7 +638,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Elite</description>
|
||||
<year>198?</year>
|
||||
<publisher>Firebird</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="elite.dsk" size="215296" crc="17dad062" sha1="e0ee4579e436ea0de01d6dc68e4034a119ee8777" offset="000000" />
|
||||
</dataarea>
|
||||
@ -649,7 +649,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Escape from Merlin 8</description>
|
||||
<year>19??</year>
|
||||
<publisher>Merlin Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="escape.dsk" size="215296" crc="354f1dc7" sha1="46fff7aaa171c13e370329eed2f8857e3349b74a" offset="000000" />
|
||||
</dataarea>
|
||||
@ -660,7 +660,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Fathom's Deep</description>
|
||||
<year>19??</year>
|
||||
<publisher>Merlin Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="fathoms deep (19xx)(merlin software).dsk" size="215296" crc="303afc4f" sha1="4a619ebc15353c6a7cc0ec4844a430343acec68f" offset="000000" />
|
||||
</dataarea>
|
||||
@ -671,7 +671,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Flight Simulation</description>
|
||||
<year>1985</year>
|
||||
<publisher>ScreenSoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="flightsim.dsk" size="215296" crc="9af55027" sha1="a8187166874feca2bdc8463a2c4c8ce923c4cede" offset="000000" />
|
||||
</dataarea>
|
||||
@ -682,7 +682,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Fu-Kung in Las Vegas</description>
|
||||
<year>1985</year>
|
||||
<publisher>Tatung Einsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="fukung.dsk" size="215296" crc="1fa870f3" sha1="c191b77d3a688a0cc7666e82df4ab767c0985bd7" offset="000000" />
|
||||
</dataarea>
|
||||
@ -693,7 +693,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Games Compendium</description>
|
||||
<year>19??</year>
|
||||
<publisher>Solo Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="games.dsk" size="215296" crc="c3b528b7" sha1="f7065b08ceced334afa94a56bbf9c6f32a9c15f5" offset="000000" />
|
||||
</dataarea>
|
||||
@ -704,7 +704,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Get Lost & Mr Fixit</description>
|
||||
<year>1984</year>
|
||||
<publisher>Solo Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="get lost & mr fixit (1984)(solo software).dsk" size="215296" crc="07b9417b" sha1="078e78f81c251fe3bef2caefe766f21454c06985" offset="000000" />
|
||||
</dataarea>
|
||||
@ -715,7 +715,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Gronks</description>
|
||||
<year>198?</year>
|
||||
<publisher><unknown></publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="gronks.dsk" size="215296" crc="706fbb82" sha1="4be0e5f6c901fddbd0d4e3867a4686e24466f9eb" offset="000000" />
|
||||
</dataarea>
|
||||
@ -726,7 +726,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Heli-Maths</description>
|
||||
<year>1985</year>
|
||||
<publisher>Screensoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="heli-maths (1985)(screensoft).dsk" size="215296" crc="05554ee4" sha1="ad180db0a1de09fa9bc33b78a616602515567032" offset="000000" />
|
||||
</dataarea>
|
||||
@ -737,7 +737,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Highway Encounter</description>
|
||||
<year>1985</year>
|
||||
<publisher>Orion Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="highway.dsk" size="1722368" crc="6a0b9186" sha1="dc88e7aa2cdf9d066fece5dc10092a41de077075" offset="000000" />
|
||||
</dataarea>
|
||||
@ -748,7 +748,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Hitchhikers Guide to the Galaxy</description>
|
||||
<year>1984</year>
|
||||
<publisher>Infocom</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="hitchiker.dsk" size="215296" crc="6d67855a" sha1="99f91956d576d815ca28f0f872bbb625d23c9ba8" offset="000000" />
|
||||
</dataarea>
|
||||
@ -759,7 +759,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Hustler</description>
|
||||
<year>1985</year>
|
||||
<publisher>Bubble Bus</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="hustler.dsk" size="215296" crc="86602255" sha1="964e96a6b800bf609546fc5fbb3ceb12a63c73d8" offset="000000" />
|
||||
</dataarea>
|
||||
@ -771,7 +771,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Island of Artuan</description>
|
||||
<year>19??</year>
|
||||
<publisher>Kuma Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="artuan.dsk" size="215296" crc="02a10c4b" sha1="e1db7bdfd057ed98416aea91641489a295e6b977" offset="000000" />
|
||||
</dataarea>
|
||||
@ -782,7 +782,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Jet Set Willy</description>
|
||||
<year>19??</year>
|
||||
<publisher>Software Projects</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="willy.dsk" size="215296" crc="0cb80035" sha1="13e0de50a739103b2e3839cf2274510e2440224c" offset="000000" />
|
||||
</dataarea>
|
||||
@ -793,7 +793,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Kuma Disc Utility (v1.0)</description>
|
||||
<year>19??</year>
|
||||
<publisher>Kuma Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="kumautil.dsk" size="215296" crc="49149c08" sha1="ddb0aa5ac4bb63b9d9c90218db7bad794a564ab9" offset="000000" />
|
||||
</dataarea>
|
||||
@ -804,7 +804,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Lazy Jones</description>
|
||||
<year>1985</year>
|
||||
<publisher>Terminal Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="lazyjone.dsk" size="215296" crc="fff1af5d" sha1="ed44cace57f25ddf865091f1b9753e8e0555b8c6" offset="000000" />
|
||||
</dataarea>
|
||||
@ -815,7 +815,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Les Flics</description>
|
||||
<year>1985</year>
|
||||
<publisher>Electric Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="lesflics.dsk" size="215296" crc="8014e1f0" sha1="e0602ee608b7416089e05929b7bb36116a42344f" offset="000000" />
|
||||
</dataarea>
|
||||
@ -826,7 +826,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Manic Miner</description>
|
||||
<year>1985</year>
|
||||
<publisher>Software Projects</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="manicmin.dsk" size="215296" crc="074d1c59" sha1="1cb57d05ff38517fa7aa4bcedf56a324e57d57c0" offset="000000" />
|
||||
</dataarea>
|
||||
@ -837,7 +837,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Manik Panik & Galaxoids</description>
|
||||
<year>19??</year>
|
||||
<publisher>Solo Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="432111">
|
||||
<rom name="manik panik & galaxoids (19xx)(solo software).dsk" size="432111" crc="3512fac4" sha1="e48e44ba48535665cd97a54185c94c559bd7813a" offset="000000" />
|
||||
</dataarea>
|
||||
@ -848,7 +848,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Mathe-Magic & Scoop</description>
|
||||
<year>19??</year>
|
||||
<publisher>Solo Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="mathe.dsk" size="215296" crc="88a08a2f" sha1="bfbdd42f5fb5eeeb97c8ab04b1c8474ce59ddf40" offset="000000" />
|
||||
</dataarea>
|
||||
@ -859,7 +859,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Maths Quest & Alphabet Quest</description>
|
||||
<year>19??</year>
|
||||
<publisher>Solo Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="mathsq.dsk" size="215296" crc="e90111b1" sha1="0949b404180115fa914d12f37edfb24de4bc83d2" offset="000000" />
|
||||
</dataarea>
|
||||
@ -870,7 +870,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Maxima</description>
|
||||
<year>1985</year>
|
||||
<publisher>Solo Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="maxima.dsk" size="215296" crc="9af76546" sha1="b8683812dd2f64f5f6048899863cf41ef0f60cc4" offset="000000" />
|
||||
</dataarea>
|
||||
@ -881,7 +881,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Miner Dick</description>
|
||||
<year>1984</year>
|
||||
<publisher>Merlin Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="miner dick (1984)(merlin software).dsk" size="215296" crc="85b403e9" sha1="a5902ca0d2eb6e33840c771fc204a77afc93416b" offset="000000" />
|
||||
</dataarea>
|
||||
@ -892,7 +892,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Monopoly</description>
|
||||
<year>19??</year>
|
||||
<publisher>Leisure Genius</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="monopoly.dsk" size="215296" crc="28059487" sha1="03681989f41e434388b26e58fdc124de39864f60" offset="000000" />
|
||||
</dataarea>
|
||||
@ -903,7 +903,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Mouse Art</description>
|
||||
<year>19??</year>
|
||||
<publisher>Emsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="mouse art (19xx)(emsoft).dsk" size="215296" crc="0645ec91" sha1="4c207b635a8acbf83361659a55953999e33cd335" offset="000000" />
|
||||
</dataarea>
|
||||
@ -914,7 +914,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Music Composer</description>
|
||||
<year>1984</year>
|
||||
<publisher>Kuma Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="mcomposer.dsk" size="215296" crc="24a295c6" sha1="dc9682960157204ec5d2938a96a56a271bbffc11" offset="000000" />
|
||||
</dataarea>
|
||||
@ -925,7 +925,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Music Workshop</description>
|
||||
<year>19??</year>
|
||||
<publisher>Screensoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="mworkshop.dsk" size="215296" crc="a4bfa2ef" sha1="edd4a4aa4ba14f72632099cfe9eaca9519fc0a4a" offset="000000" />
|
||||
</dataarea>
|
||||
@ -936,7 +936,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Music Workshop (Alt)</description>
|
||||
<year>19??</year>
|
||||
<publisher>Screensoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="music workshop (19xx)(screensoft)[a].dsk" size="215296" crc="bc7e66cf" sha1="438398a62e92b003672dd595d7358de662de9b70" offset="000000" />
|
||||
</dataarea>
|
||||
@ -947,7 +947,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Nightmare Park & Commando Plain</description>
|
||||
<year>19??</year>
|
||||
<publisher>Solo Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="nightmare.dsk" size="215296" crc="13b56567" sha1="22776fe320f00fb0908ce29a8908f0dc38e0f719" offset="000000" />
|
||||
</dataarea>
|
||||
@ -958,7 +958,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Oh Mummy!</description>
|
||||
<year>1984</year>
|
||||
<publisher>Tatung Einsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="ohmummy.dsk" size="215296" crc="86ae70c1" sha1="ceb5fb85e83a1af8540a51f70ebac366e0f588d8" offset="000000" />
|
||||
</dataarea>
|
||||
@ -969,7 +969,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Pakman & Millipede</description>
|
||||
<year>198?</year>
|
||||
<publisher>Kuma Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="pakman & millipede (198x)(kuma software).dsk" size="215296" crc="e4873d5c" sha1="9706faecc8a4df33bdcbd0dc7549d6b70257a97d" offset="000000" />
|
||||
</dataarea>
|
||||
@ -980,7 +980,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Panzer Attack</description>
|
||||
<year>1985</year>
|
||||
<publisher>Lothlorien</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="panzer attack (1985)(lothlorien).dsk" size="215296" crc="0ce722b7" sha1="78c2c21534f9299814a6757f7334d4f5b21c3995" offset="000000" />
|
||||
</dataarea>
|
||||
@ -991,7 +991,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Pete's Utilities</description>
|
||||
<year>19??</year>
|
||||
<publisher>Merlin Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="peteutil.dsk" size="215296" crc="33f92503" sha1="551a8b97c5bbf1d9f2202f1fee516455d2d67c7b" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1002,7 +1002,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Programmers Kit</description>
|
||||
<year>19??</year>
|
||||
<publisher>Merlin Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="progkit.dsk" size="215296" crc="2feebf86" sha1="e488c6a92706021f94de645206dafaf1beb52b8c" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1013,7 +1013,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Punchy</description>
|
||||
<year>1985</year>
|
||||
<publisher>Tatung Einsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="punchy.dsk" size="215296" crc="644c1a0a" sha1="ff4c740976a57ec01eb9b11e09af141c20219b02" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1024,7 +1024,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Quantum</description>
|
||||
<year>19??</year>
|
||||
<publisher>Merlin Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="432111">
|
||||
<rom name="quantum (19xx)(orion software).dsk" size="432111" crc="2145a675" sha1="53aedb6567deafc5a5b29b1b714141ae78a78d20" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1035,7 +1035,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>River Bandits</description>
|
||||
<year>19??</year>
|
||||
<publisher>Merlin Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="435183">
|
||||
<rom name="river bandits (19xx)(merlin software).dsk" size="435183" crc="84f88b5c" sha1="728678c6f3eee525ac752c7f8b0226e6df18ec31" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1046,7 +1046,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Rocket / Giant Maths / Mighty Writer</description>
|
||||
<year>19??</year>
|
||||
<publisher>Solo Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="rocket.dsk" size="215296" crc="8ffe425c" sha1="04036decd519566ab407787d9ce837416182d986" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1057,7 +1057,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Roverball</description>
|
||||
<year>19??</year>
|
||||
<publisher>Merlin Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="432111">
|
||||
<rom name="roverball (19xx)(merlin software).dsk" size="432111" crc="72ade6bd" sha1="ac2aedfa2cb5565591d444ddf50cfc013a4e23cb" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1068,7 +1068,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Qoko 2</description>
|
||||
<year>19??</year>
|
||||
<publisher>Orion Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="qoko2.dsk" size="215296" crc="bcbd472f" sha1="c53d9272306f119acd9e441ddacb1cd467160cc3" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1079,7 +1079,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Scrabble</description>
|
||||
<year>1985</year>
|
||||
<publisher>Leisure Genius</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="scrabble.dsk" size="215296" crc="d0925441" sha1="6249757df8309764c3c2577b1e682cba7bb25a0c" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1090,7 +1090,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Screen Plus</description>
|
||||
<year>1985</year>
|
||||
<publisher>Syntaxsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="screenpl.dsk" size="215296" crc="a2098af2" sha1="bd8afb974470c6d25c35a4610c5c3717b3bb6971" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1101,7 +1101,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Southern Belle</description>
|
||||
<year>19??</year>
|
||||
<publisher>Merlin Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="southern belle (19xx)(hewson consultants)[rm].dsk" size="215296" crc="fde43d49" sha1="62def9be94e32e6d608534bc9af460d657d0d14b" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1112,7 +1112,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Space Trap</description>
|
||||
<year>1985</year>
|
||||
<publisher>Solo Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="spactrap.dsk" size="215296" crc="ca2fd938" sha1="a17b65b031eafe359c452c28c1ecd6260a21eb2e" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1123,7 +1123,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Special Operations</description>
|
||||
<year>198?</year>
|
||||
<publisher>Lothlorien</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="specops.dsk" size="215296" crc="608c9413" sha1="f5cec117a1a4a1c82a678a5a291c55c91617d26f" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1134,7 +1134,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Spectrum Emulator Disk 1</description>
|
||||
<year>19??</year>
|
||||
<publisher>Syntaxsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="spectrum emulator disk 1 (19xx)(syntaxsoft).dsk" size="215296" crc="51cfd4ef" sha1="17fad087a94be68c659d36d16db73c82ee3fb083" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1145,7 +1145,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Spell n' Build</description>
|
||||
<year>19??</year>
|
||||
<publisher>Solo Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="spelbuld.dsk" size="215296" crc="f59fbfd8" sha1="2fabe45acc4e830ea66778099adadca1a333239e" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1156,7 +1156,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Spellbreaker</description>
|
||||
<year>1985</year>
|
||||
<publisher>Infocom</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="spellbreaker (1985)(infocom).dsk" size="215296" crc="292a832d" sha1="372cfdb1cfb7be518b0f6114fad7d1c26781a227" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1167,7 +1167,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Spreadsheet</description>
|
||||
<year>1984</year>
|
||||
<publisher>Kuma Computers</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="speadsht.dsk" size="215296" crc="96f8e1b8" sha1="976e16127b445ef672f4f7008a0e81e9f8dc4bba" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1178,7 +1178,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Starcross</description>
|
||||
<year>198?</year>
|
||||
<publisher>Infocom</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="star+.dsk" size="215296" crc="fdc09965" sha1="e571189c00bd2f117f84431fb01383debd1d772e" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1189,7 +1189,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Starquake</description>
|
||||
<year>19??</year>
|
||||
<publisher>Merlin Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="starq.dsk" size="215296" crc="c8e4344f" sha1="884aa4fac99205e6972f089d3c41ce757ad17099" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1200,7 +1200,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Stepper</description>
|
||||
<year>1986</year>
|
||||
<publisher>KH Scriven</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="stepper.dsk" size="215296" crc="bf206229" sha1="98bb1935d18ef060b142d6205443a89ae5a49d14" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1211,7 +1211,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Superchess</description>
|
||||
<year>1984</year>
|
||||
<publisher>Kuma Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="schess.dsk" size="215296" crc="330ee711" sha1="ecb705079c67ed7310ace0fd54a17fb938b62aa9" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1222,7 +1222,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>SuperFORTH (v1.12)</description>
|
||||
<year>1984</year>
|
||||
<publisher>Tatung Einsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="sforth.dsk" size="215296" crc="adba426f" sha1="1a7b90ff0f5878594c23c2f2d625df50da3987e8" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1233,7 +1233,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Super Six Game Pack (Tatung)</description>
|
||||
<year>198?</year>
|
||||
<publisher>Tatung Einsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="super6.dsk" size="215296" crc="d30f1ed7" sha1="c9d36bec2116db5fa2f376e2f0c52f78ee8b8667" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1244,7 +1244,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Super Six Game Pack (Tatung, Alt)</description>
|
||||
<year>198?</year>
|
||||
<publisher>Tatung Einsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="super six game pack (198x)(tatung einsoft).dsk" size="215296" crc="a2e1621d" sha1="60854afb50f96f64069349635fd91d03ba4cda2a" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1255,7 +1255,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Super 6 Games (Bell)</description>
|
||||
<year>19??</year>
|
||||
<publisher>Bell Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="432111">
|
||||
<rom name="super 6 games disc (19xx)(bell software).dsk" size="432111" crc="f38c6b10" sha1="7d515b1a84378549e87c9aaa61af106f5201c3bd" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1266,7 +1266,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Superstore</description>
|
||||
<year>19??</year>
|
||||
<publisher>Kuma Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="supstor.dsk" size="215296" crc="cc3c0961" sha1="3bf8f107646e7f45ea0a20a8286eb81da73aa78a" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1277,7 +1277,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Suspended</description>
|
||||
<year>19??</year>
|
||||
<publisher>A.C.E. Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="supend.dsk" size="215296" crc="90d5482c" sha1="c7f7073ef5b643f38ac06c945bad437fe67602b9" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1288,7 +1288,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>System 5</description>
|
||||
<year>19??</year>
|
||||
<publisher>Crystal Research</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="system5.dsk" size="215296" crc="d33a17f2" sha1="eeb2a41b244db29fff7b6ac9dde21e860fb018f2" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1299,7 +1299,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>System 80</description>
|
||||
<year>19??</year>
|
||||
<publisher>Tatung</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="sys80.dsk" size="215296" crc="e77e6eb0" sha1="0912b399a59003e9fa611f7393f466e27502de25" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1310,7 +1310,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Tasprint</description>
|
||||
<year>1985</year>
|
||||
<publisher>Tasman Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="tasprint.dsk" size="215296" crc="c1d1ffd4" sha1="46c9629c62bbe0394d58cd17837efc0011b79b59" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1321,7 +1321,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Tasword</description>
|
||||
<year>1985</year>
|
||||
<publisher>Tasman Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="tasword.dsk" size="215296" crc="94c27e94" sha1="5141c45b16fbbb4a6b740b2677e17635f63c8695" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1332,7 +1332,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Theatre Europe</description>
|
||||
<year>19??</year>
|
||||
<publisher>Merlin Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="theatre.dsk" size="215296" crc="b429b7e7" sha1="3c7b1686340204776e734652dbdce807301a7e7a" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1343,7 +1343,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Time Trap</description>
|
||||
<year>1984</year>
|
||||
<publisher>Tatung Einsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="timtrap.dsk" size="215296" crc="93d4de6f" sha1="6f947d5b36be85a8b9773c26e472c9a72c610d50" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1354,7 +1354,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Toado & Fruckles</description>
|
||||
<year>1986</year>
|
||||
<publisher>Syntaxsoft</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="toado & fruckles (1986)(syntaxsoft).dsk" size="215296" crc="588f1d91" sha1="727f1ee2f5073c4ffb3980592eb34cda3ff4e255" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1365,7 +1365,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Tombs of Karnak & Encounter</description>
|
||||
<year>19??</year>
|
||||
<publisher>Solo Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="tomb.dsk" size="215296" crc="c0efda16" sha1="9f8d07df2a09e189b17ce0ac43e16119f337ef30" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1376,7 +1376,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Tournament Snooker</description>
|
||||
<year>198?</year>
|
||||
<publisher>Hard Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="snooker.dsk" size="215296" crc="509a8c66" sha1="ded70d23bb2987c59a9221d2f8271ad249a0f7c8" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1387,7 +1387,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Traditional 16+ Maths & Cyfax</description>
|
||||
<year>198?</year>
|
||||
<publisher>Solo Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="cyfax & traditional 16+ maths (198x)(solo software).dsk" size="215296" crc="0c354ecd" sha1="5967d06ae1d0665d8523cb0b688ba5bf807457a5" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1398,7 +1398,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Tycoon & Pelmanism</description>
|
||||
<year>198?</year>
|
||||
<publisher>Kuma Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="tycoon.dsk" size="215296" crc="b019ca6d" sha1="06f58afed1e7f8741aa648a001d79ccaa7b78bb5" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1409,7 +1409,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Wishbringer</description>
|
||||
<year>19??</year>
|
||||
<publisher>Infocom</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="wishbringer (19xx)(infocom).dsk" size="215296" crc="6b9c0abe" sha1="9c9de627961e89cd6944613e96144cf93dacc389" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1420,7 +1420,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Word Processor 40</description>
|
||||
<year>19??</year>
|
||||
<publisher>Surrey Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="wordproc.dsk" size="215296" crc="ebcde8d6" sha1="f8079b7fb1a1422236d3d1a2f5610845c4145a64" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1431,7 +1431,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>The Wreck</description>
|
||||
<year>19??</year>
|
||||
<publisher>Electric Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="wreck.dsk" size="215296" crc="53fcd39a" sha1="76dd0102565ba64ad6fa885872c81c366a1a4c44" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1442,7 +1442,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>X-master</description>
|
||||
<year>198?</year>
|
||||
<publisher><unknown></publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="xmaster.dsk" size="215296" crc="15f20d52" sha1="31fca29a6de3e06c0209e95bb57b27d14a2aa832" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1453,7 +1453,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Xanagrams & Quadrax</description>
|
||||
<year>19??</year>
|
||||
<publisher>Kuma Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="xanagram.dsk" size="215296" crc="1ebdfff2" sha1="9d052b0ae1ab421c7e7e1af4cee61e730235cbd9" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1464,7 +1464,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Xtaldos 1.31</description>
|
||||
<year>198?</year>
|
||||
<publisher>Tatung</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="xtaldos.dsk" size="215296" crc="833a5fe8" sha1="998da7d4470f52ee353abfd1f5aaf5e4d36ce35b" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1476,7 +1476,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Zen Editor/Assembler</description>
|
||||
<year>19??</year>
|
||||
<publisher>Kuma Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="zen.dsk" size="215296" crc="6026bd29" sha1="214992bf15a1209eefc55a359e4f64743a2c56db" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1487,7 +1487,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Zork I - The Great Underground Empire</description>
|
||||
<year>198?</year>
|
||||
<publisher>Infocom</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="zork i - the great underground empire (198x)(infocom).dsk" size="215296" crc="f7b3609d" sha1="ba812a81498a55cb333c04f4243b82ad96d7e6bf" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1498,7 +1498,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Zork II</description>
|
||||
<year>198?</year>
|
||||
<publisher>Infocom</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="zork2.dsk" size="215296" crc="001fc68d" sha1="35c86af9a47cf16f434d4c1a58e1203170537779" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1509,7 +1509,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Zork III - The Dungeon Master</description>
|
||||
<year>198?</year>
|
||||
<publisher>Infocom</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="zork iii - the dungeon master (198x)(infocom).dsk" size="215296" crc="35f19012" sha1="0e7a3665bcb52432f5831635196b94cff52490de" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1524,7 +1524,7 @@ Xtal Systems (Xtal Research)
|
||||
<year>19??</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="author" value="Mario Castro" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="100 metres sprint & karate (19xx)(castro, mario).dsk" size="215296" crc="e19fddea" sha1="92e7f6cf7465ca99d3fea300c14a98fffe825087" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1536,7 +1536,7 @@ Xtal Systems (Xtal Research)
|
||||
<year>19??</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="author" value="Mario Castro" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="conan & boxing (19xx)(castro, mario).dsk" size="215296" crc="841c2f87" sha1="ef27be711470e8f1899002a7d2c135365433a7a1" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1548,7 +1548,7 @@ Xtal Systems (Xtal Research)
|
||||
<year>2005</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="author" value="Mario Castro" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="lottery (2005)(castro, mario).dsk" size="215296" crc="356cbdbb" sha1="dc832b72dda5d3997b22f48f26619eecd809b007" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1560,7 +1560,7 @@ Xtal Systems (Xtal Research)
|
||||
<year>19??</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="author" value="Mario Castro" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="ski-jump & nubble trubble (19xx)(castro, mario).dsk" size="215296" crc="589a78d2" sha1="e474ef511c440c8c61b8fa4cfd551cfa60e27f51" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1573,7 +1573,7 @@ Xtal Systems (Xtal Research)
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="author" value="Mario Castro" />
|
||||
<info name="usage" value="Start with Tatung-Xtaldos 1.31" /> <!-- Star Trek is a Basic Game -->
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="star trek (19xx)(castro, mario).dsk" size="215296" crc="525d1dd2" sha1="0f438ac14b52ff5a5071106b148c81293ba747d7" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1585,7 +1585,7 @@ Xtal Systems (Xtal Research)
|
||||
<year>19??</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="author" value="Mario Castro" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="sword feud (19xx)(a.c.e. software).dsk" size="215296" crc="b871d8f0" sha1="410710023db949bd37d6af41b844650dcfb6cefa" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1597,7 +1597,7 @@ Xtal Systems (Xtal Research)
|
||||
<year>1984?</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="author" value="R.T. Russell" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="bbc basic v2.31 (1984)(russell, r.t.).dsk" size="215296" crc="358103e1" sha1="6d26185b34ea0ac4f6773af7f3fa2a556bd266eb" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1609,7 +1609,7 @@ Xtal Systems (Xtal Research)
|
||||
<year>19??</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="author" value="Andrew Dunipace" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="einstein disk international 1 (19xx)(dunipace, andrew).dsk" size="215296" crc="bc633dd3" sha1="b82eb7b2868e7243559815520143c6b59e966be7" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1621,7 +1621,7 @@ Xtal Systems (Xtal Research)
|
||||
<year>19??</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="author" value="Andrew Dunipace" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="einstein disk international 2 (19xx)(dunipace, andrew).dsk" size="215296" crc="da550c81" sha1="4ca4c297c3d661ccab7e1f7bb2b3a161ae95f2b2" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1633,7 +1633,7 @@ Xtal Systems (Xtal Research)
|
||||
<year>198?</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="author" value="Andrew Dunipace?" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="einstein disk international 3 (19xx)(-).dsk" size="215296" crc="ff3219ea" sha1="505f3b7aafa54addeba34dab7a21009b2f9a7baa" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1644,7 +1644,7 @@ Xtal Systems (Xtal Research)
|
||||
<description>Game Compilation (Cracked)</description>
|
||||
<year>19??</year>
|
||||
<publisher><unknown></publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="game compilation (19xx)(-)[cr].dsk" size="215296" crc="e9e06cad" sha1="7c584b517c0e961cc3d6ea9424876743fa0706fb" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1656,7 +1656,7 @@ Xtal Systems (Xtal Research)
|
||||
<year>1983</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="author" value="Dave Rand" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<part name="flop1" interface="floppy_3">
|
||||
<dataarea name="flop" size="215296">
|
||||
<rom name="steam computer software volume 22 v1.05 (1983-07-27)(rand, dave).dsk" size="215296" crc="67aa01e8" sha1="b7e7006e7e4e7b95a3a085ccfd64872cab40184b" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1664,5 +1664,3 @@ Xtal Systems (Xtal Research)
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
||||
|
||||
|
||||
|
@ -41,7 +41,7 @@ Arquelphos D.O.
|
||||
Aska Base Algo 1989/5 SET(CD+FD)
|
||||
Aska Word Algo 1991/1 SET(CD+FD)
|
||||
Band-kun Koei 1991/1 SET(CD+FD)
|
||||
Battle JAM 1992/10 CD
|
||||
Battle GAM 1992/10 CD
|
||||
Battle Chess Fujitsu 1991/9 CD
|
||||
Bell's Avenue Vol. 3 Wendy Magazine 1995/4 CD
|
||||
Bible Master 2: Aglia no Jashin Glodia 1995/1 SET(CD+FD)
|
||||
@ -80,7 +80,7 @@ CG Syndicate Vol. 1: Lisa Northpoint R Key
|
||||
Chiemi & Naomi Fairytale (Red Zone) 1993/12 CD
|
||||
Chiisana Ensouka Fujitsu Social Science Laboratory 1993/9 CD
|
||||
Chikyuu no Himitsu (Kankyou Kyouiku Kyouzai) Fujitsu 1994/7 CD
|
||||
Chinmoku no Kantai JAM 1992/4 SET(CD+FD)
|
||||
Chinmoku no Kantai GAM 1992/4 SET(CD+FD)
|
||||
Chinsei Toshiba EMI 1989/11 CD
|
||||
Chiri Jigsaw World 2 Fujitsu Ooita Software Laboratory 1994/12 SET(CD+FD)
|
||||
Chotto Shita Ohanashi Fujitsu 1995/11 CD
|
||||
@ -139,7 +139,6 @@ Doki Doki Vacation Cocktail Soft
|
||||
Dor Best Selection Gekan D.O. 1993/5 CD×02
|
||||
Do-Re-Mi Canvas Tokyo Shoseki 1994/12 CD
|
||||
Dracula Hakushaku Fairytale 1993/3 CD
|
||||
Dragon Shock Log 1989/11 CD
|
||||
Dragon Souseiki Basho House 1993/12 CD
|
||||
Drive Simulator Home Navi Fujitsu Ten 1994/8 SET(CD+FD)
|
||||
Dynamic Business English 1 DynEd Japan 1994/11 SET(CD+FD)
|
||||
@ -217,8 +216,8 @@ Fujitsu Habitat V2.1 Fujitsu
|
||||
Fukui Toshio no Otenki Map Inter Limited Logic 1991/2 CD
|
||||
Functioning in Business Part 1 DynEd Japan 1992/7 SET(CD+FD)
|
||||
Functioning in Business Part 2 DynEd Japan 1992/7 SET(CD+FD)
|
||||
Fuzzy Kakeibo JAM 1993/4 SET(CD+FD)
|
||||
Fuzzy Kakeibo 3 JAM 1995/11 CD
|
||||
Fuzzy Kakeibo GAM 1993/4 SET(CD+FD)
|
||||
Fuzzy Kakeibo 3 GAM 1995/11 CD
|
||||
G5 AMR 1989/7 CD
|
||||
Gadget Toshiba EMI 1993/12 CD
|
||||
Gakuen Bakuretsu Tenkousei! ZyX 1996/3 CD
|
||||
@ -229,7 +228,7 @@ Game Nihonshi: Tenkabito Hideyoshi to Ieyasu Koei
|
||||
Garou Densetsu Special Mahou (Nihon Home Data) 1996/9 SET(CD+FD)
|
||||
GearPOWER V1.1 Fujitsu 1995/1 CD
|
||||
Gedit Towns Data West 1989/3 CD
|
||||
Geimu Jan+ JAM 1993/5 CD
|
||||
Geimu Jan+ GAM 1993/5 CD
|
||||
Geitassha Towns Shoubi Gakuen 1989/7 CD
|
||||
Gendai Yougo no Kiso Chishiki (1989) Fujitsu 1989/12 CD
|
||||
Gendai Yougo no Kiso Chishiki (1991) Fujitsu 1991/1 CD
|
||||
@ -327,7 +326,7 @@ If 1-2-3 CD Collection Active
|
||||
If 3 Active 1995/4 CD
|
||||
Igo Doujou Shodan Kaigan! Kyuu kara Dan e no Chousen Fujitsu OA 1991/5 CD
|
||||
Igo Doujou Yaburi: Menkyo Kaiden!! Mezase 7-kyuu Fujitsu OA 1990/10 CD
|
||||
Igo Nyuumon Doujou JAM 1991/6 CD
|
||||
Igo Nyuumon Doujou GAM 1991/6 CD
|
||||
Illust Hyakka: Yamashita Hideki no Ikiiki Cut-shuu CSK Research Institute (CRI) 1990/8 CD
|
||||
Image Art System Raison 1990/6 CD
|
||||
Image Art System Pro Raison 1990/8 CD
|
||||
@ -346,7 +345,6 @@ J.League Professional Soccer 1994 Victor Entertainme
|
||||
JAF Drive Guide JAF Shuppansha 1990/8 SET(CD+FD)
|
||||
JAF Drive Guide - Best Ski 150 (Resort-hen) JAF Shuppansha 1990/12 SET(CD+FD)
|
||||
JAF Drive Guide (Ver. 2) JAF Shuppansha 1992/2 SET(CD+FD)
|
||||
Jealousy Interheart 1995/7 CD
|
||||
Jinmon Yuugi Fairytale (Red Zone) 1995/8 SET(CD+FD)
|
||||
Jintaizu System Skeleton Medical System 1995/8 CD
|
||||
Joker Towns Birdy Soft 1992/7 CD
|
||||
@ -496,7 +494,6 @@ NHK Eigo de Asobo 1 Fujitsu
|
||||
NHK Eigo de Asobo 2 Fujitsu 1993/12 CD
|
||||
NHK Eigo de Asobo 3 Fujitsu 1994/7 CD
|
||||
NHK Hitori de Dekiru Mon! Ray 1995/3 CD
|
||||
NHK Jissen Eikaiwa CRC Sougou Kenkyuusho 1991/8 CD
|
||||
NHK Jissen Eikaiwa (Marty compatible) CRC Sougou Kenkyuusho 1993/3 CD
|
||||
NHK Jissen Eikaiwa Part 2 CRC Sougou Kenkyuusho 1993/12 CD
|
||||
Nihon Kiin no Jouseki Daijiten Misawa Home Sougou Kenkyuusho 1992/7 CD
|
||||
@ -532,12 +529,10 @@ Noushuku Angel 120% Cocktail Soft
|
||||
Noyama no Kensakuka Fujitsu Social Science Laboratory 1995/3 CD
|
||||
O Hoshi Senjutsu Daireigen Victor Entertainment 1990/2 CD
|
||||
Obaachan no Chiebukuro Gyousei 1991/11 CD
|
||||
Okumanchouja 2 Cosmos Computer 1991/7 CD
|
||||
Only You: Seikimatsu Juliet-tachi Alice Soft 1996/1 CD
|
||||
Orient Express Gyousei 1994/12 CD
|
||||
Oryx Blue Wave: Eikou e no Kiseki Data West 1995/10 SET(CD+FD)
|
||||
Oshare Club Misawa Home Sougou Kenkyuusho 1991/3 CD
|
||||
Oshare Cooking 2 Misawa Home Sougou Kenkyuusho 1990/9 CD
|
||||
Oshiete, Nouveau TDK Core 1994/3 CD
|
||||
Otto Anime-kun Nihon Micom Hanbai 1990/3 CD
|
||||
Palamedes Ving 1991/10 CD
|
||||
@ -593,7 +588,7 @@ Sakura no Mori Active
|
||||
Sangokushi 2 Koei 1990/6 SET(CD+FD)
|
||||
Sangokushi 4 Koei 1994/6 SET(CD+FD)
|
||||
Sanseido Word Hunter Multi CD-ROM Jiten Fujitsu 1991/10 CD
|
||||
Sargon 5 JAM 1992/11 CD
|
||||
Sargon 5 GAM 1992/11 CD
|
||||
Sayonara no Mukougawa Foster 1997/8 CD
|
||||
School Accessory Illust-hen V1.0 Fujitsu 1993/2 CD
|
||||
School Navi Nihon no Rekishi CD : Heian, Kamakura Unitybell 1995/8 CD
|
||||
@ -661,7 +656,7 @@ Stingo Monogatari ST-3: Stingo Umi ni Iku Technos Yashima
|
||||
Stingo Monogatari ST-4: Stingo Yuuenchi ni Iku Technos Yashima 1995/1 CD
|
||||
Stingo Monogatari ST-5: Stingo no Christmas Technos Yashima 1995/1 CD
|
||||
Stress Toshiba EMI 1989/11 CD
|
||||
Suikoden: Tenmei no Sakai Koei 1990/2 SET(CD+FD)
|
||||
* Suikoden: Tenmei no Chikai Koei 1990/2 SET(CD+FD)
|
||||
Suisai Graphic Art Software NTT Data Tsuushin 1993/8 CD
|
||||
Sunshine 1-nen Uchida Youkou 1993/7 CD
|
||||
Sunshine 2-nen Uchida Youkou 1993/7 CD
|
||||
@ -669,7 +664,7 @@ Super Kakitaoshi Nikkonren Kikaku
|
||||
Super Real Mahjong PII & PIII + Ving 1993/3 CD
|
||||
Super Zurukamashi Nikkonren Kikaku 1993/? SET(CD+FD)
|
||||
Suzaku Wolf Team 1992/10 SET(CD+FD)
|
||||
Tactical Tank Corps DX JAM 1995/2 SET(CD+FD)
|
||||
Tactical Tank Corps DX GAM 1995/2 SET(CD+FD)
|
||||
Taiken Shiyou! Marty Channel Fujitsu 1993/2 SET(CD+FD)
|
||||
Taiken Shiyou! Marty Channel 2 Fujitsu 1993/6 CD×02
|
||||
Takken Ou Techno Business 1994/10 CD
|
||||
@ -706,13 +701,11 @@ Think Read: Chuugaku Series Catena
|
||||
Think Read: Shougaku Series Catena ? SET(CD+FD)
|
||||
Time Stripper Mako-chan Foster 1996/1 CD
|
||||
Tom Snyder's Puppy Love Fujitsu 1989/7 CD
|
||||
Tom Snyder's Puppy Love 2 Fujitsu 1993/3 CD
|
||||
Total English 1-nen Uchida Youkou 1993/9 CD
|
||||
Total English 2-nen Uchida Youkou 1993/9 CD
|
||||
Touch the Music by Casiopea Fujitsu 1994/3 SET(CD+FD)
|
||||
Tougenkyou (Shichuusuimeigaku Nyuumon) Nanken Koubou 1991/2 CD
|
||||
Toukyou Genshikai - Tokyo Sexy Ave. HOP 1994/7 SET(CD+FD)
|
||||
Toushin Toshi II Alice Soft 1995/4 CD
|
||||
Towns Amone Kozu System 1990/4 SET(CD+FD)
|
||||
Towns Chiri Jigsaw World Fujitsu Ooita Software Laboratory 1991/3 CD
|
||||
Towns Chiri Shizen no Naritachi Fujitsu Ooita Software Laboratory 1991/9 CD
|
||||
@ -751,7 +744,7 @@ Ujibushi no Chiiku Game Nihon Keisoku Souc
|
||||
Unmei no Tobira Fujitsu 1992/9 CD
|
||||
URM: 15 Wakusei ni Umarete Japan Home Video (JHV) 1994/12 CD
|
||||
Ushiro no Shoumen Raison 1991/9 CD
|
||||
Utaimasenka JAM 1995/11 SET(CD+FD)
|
||||
Utaimasenka GAM 1995/11 SET(CD+FD)
|
||||
Vampire High School Interheart 1993/6 CD
|
||||
Vanishing Point: Tenshi no Kieta Machi Tiara 1995/10 CD
|
||||
Vector Moji Pattern 2 Fujitsu 1992/12 IC
|
||||
@ -765,8 +758,8 @@ VIPER V12 Sogna
|
||||
VIPER V8 Turbo RS Sogna 1995/6 CD
|
||||
Virtuacall 2 Fairytale 1995/12 SET(CD+FD)
|
||||
Virtual Tours V1.0 Fujitsu 1995/1 SET(CD+FD)
|
||||
Watashi no Tsukue JAM 1994/9 SET(CD+FD)
|
||||
Watashi no Tsukue 2 JAM 1995/11 SET(CD+FD)
|
||||
Watashi no Tsukue GAM 1994/9 SET(CD+FD)
|
||||
Watashi no Tsukue 2 GAM 1995/11 SET(CD+FD)
|
||||
Watashi-tachi no Iseikatsu Uchida Youkou 1994/3 CD
|
||||
Watashi-tachi no Shokuji Shindan Uchida Youkou 1994/3 CD
|
||||
Wedding Plan Computer System 1990/4 CD
|
||||
@ -1863,6 +1856,22 @@ User/save disks that can be created from the game itself are not included.
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="anotowns">
|
||||
<!--
|
||||
Origin: P2P
|
||||
<rom name="[FM-TOWNS] AnotherTOWNSあなた~One to Sevenフリーソフトウェアコレクション.iso" size="655826944" crc="28e553ac" sha1="4b5ca2bc9ae2b3b6fe9da0b2a9378123d99e5206"/>
|
||||
-->
|
||||
<description>AnotherTOWNS - Anata~ Free Software Collection</description>
|
||||
<year>1999?</year>
|
||||
<publisher><doujin></publisher>
|
||||
<info name="usage" value="Requires 32 MB of RAM" />
|
||||
<part name="cdrom" interface="fmt_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="anotowns" sha1="f6b1a56808d9abd79b50a830b409c1b87659ab01" />
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="appare1">
|
||||
<!--
|
||||
Origin: P2P
|
||||
@ -3318,6 +3327,23 @@ User/save disks that can be created from the game itself are not included.
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="drgshock">
|
||||
<!--
|
||||
Origin: P2P
|
||||
<rom name="Image.cue" size="381" crc="5bf84c71" sha1="a16d98615fb735b3e2f54e78c98159c6d7a137cd"/>
|
||||
<rom name="Image.img" size="235011840" crc="c0c9d26f" sha1="6acfa1aa858f9cbbd1afea603af8af9b03236cda"/>
|
||||
-->
|
||||
<description>Dragon Shock</description>
|
||||
<year>1989</year>
|
||||
<publisher>ログ (Log)</publisher>
|
||||
<info name="release" value="198911xx" />
|
||||
<part name="cdrom" interface="fmt_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="drgshock" sha1="3cce3b9b985d523593d26ac7cf3040160df57aec" />
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="drakkhen">
|
||||
<!--
|
||||
Origin: Neo Kobe Collection
|
||||
@ -6585,6 +6611,23 @@ User/save disks that can be created from the game itself are not included.
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="nhkeikai">
|
||||
<!--
|
||||
Origin: P2P
|
||||
<rom name="Image.cue" size="135" crc="25b78af5" sha1="59f27e03d61c1a8bc9b9b268a5ec903353df4abd"/>
|
||||
<rom name="Image.img" size="487040400" crc="0afe5df8" sha1="bae8c46b1c27b75e5afe2ebe7c94d987725baaaa"/>
|
||||
-->
|
||||
<description>NHK Jissen Eikaiwa</description>
|
||||
<year>1991</year>
|
||||
<publisher>CRC総合研究所 (CRC Sougou Kenkyuusho)</publisher>
|
||||
<info name="release" value="199108xx" />
|
||||
<part name="cdrom" interface="fmt_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="nhkeikai" sha1="aa3f3c0a48bde7032fb8357f446ce4f2736dee53" />
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="nihonmb">
|
||||
<!--
|
||||
Origin: Tokugawa Corporate Forums (yukin)
|
||||
@ -6801,6 +6844,23 @@ User/save disks that can be created from the game itself are not included.
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="okuman2">
|
||||
<!--
|
||||
Origin: P2P
|
||||
<rom name="image.cue" size="2800" crc="602de601"/>
|
||||
<rom name="image.img" size="544546800" crc="b7cb448c"/>
|
||||
-->
|
||||
<description>Okumanchouja II</description>
|
||||
<year>1991</year>
|
||||
<publisher>コスモス・コンピュータ (Cosmos Computer)</publisher>
|
||||
<info name="release" value="199107xx" />
|
||||
<part name="cdrom" interface="fmt_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="okuman2" sha1="0b646c69dc9a4e8c0e9343885c188d6b9456f513" />
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="opwolf">
|
||||
<!--
|
||||
Origin: Neo Kobe Collection
|
||||
@ -6830,7 +6890,7 @@ User/save disks that can be created from the game itself are not included.
|
||||
-->
|
||||
<description>Oshare Cooking</description>
|
||||
<year>1989</year>
|
||||
<publisher>Misawa Home</publisher>
|
||||
<publisher>ミサワホーム総合研究所 (Misawa Home Sougou Kenkyuusho)</publisher>
|
||||
<part name="cdrom" interface="fmt_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="oshare cooking" sha1="d6175d9a81760fbd9e497e6a396dbaf2aad6d57c" />
|
||||
@ -6838,6 +6898,23 @@ User/save disks that can be created from the game itself are not included.
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="oshacoo2">
|
||||
<!--
|
||||
Origin: P2P
|
||||
<rom name="Image.cue" size="1160" crc="885a0d6d" sha1="77a34d0a15c9361a934ace3dec67f651777d6a2c"/>
|
||||
<rom name="Image.img" size="361137840" crc="1bef4781" sha1="3de4e86c6f63e3c7c2bacda7982277059def3536"/>
|
||||
-->
|
||||
<description>Oshare Cooking II</description>
|
||||
<year>1990</year>
|
||||
<publisher>ミサワホーム総合研究所 (Misawa Home Sougou Kenkyuusho)</publisher>
|
||||
<info name="release" value="199011xx" />
|
||||
<part name="cdrom" interface="fmt_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="oshacoo2" sha1="dfcd058c69ec2a8cd1a29978b0f1cc772a1fe51c" />
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="ougonras">
|
||||
<!--
|
||||
Origin: Neo Kobe Collection
|
||||
@ -7393,6 +7470,23 @@ User/save disks that can be created from the game itself are not included.
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="puplove2">
|
||||
<!--
|
||||
Origin: P2P
|
||||
<rom name="image.cue" size="1611" crc="e66faddb"/>
|
||||
<rom name="image.img" size="513676800" crc="ba0073f5"/>
|
||||
-->
|
||||
<description>Tom Snyder's Puppy Love 2</description>
|
||||
<year>1993</year>
|
||||
<publisher>富士通 (Fujitsu)</publisher>
|
||||
<info name="release" value="199303xx" />
|
||||
<part name="cdrom" interface="fmt_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="puplove2" sha1="35c86cc71dfbdc0d4351892f1270b6b8772e1b67" />
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="puyopuyo">
|
||||
<!--
|
||||
Origin: Neo Kobe Collection
|
||||
@ -8586,6 +8680,24 @@ User/save disks that can be created from the game itself are not included.
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Missing a floppy disk, the game doesn't work without it -->
|
||||
<software name="suikoden" supported="no">
|
||||
<!--
|
||||
Origin: P2P
|
||||
<rom name="SUIKODEN.BIN" size="451226496" crc="ea330a93" sha1="8c56e2b77b58ac136f80cb19e6dffdef4adb0d2c"/>
|
||||
<rom name="SUIKODEN.CUE" size="584" crc="46e415ae" sha1="e1169e4b277d495c1b90cf20b97ba6071186e1d3"/>
|
||||
-->
|
||||
<description>Suikoden - Tenmei no Chikai</description>
|
||||
<year>1990</year>
|
||||
<publisher>光栄 (Koei)</publisher>
|
||||
<info name="release" value="199002xx" />
|
||||
<part name="cdrom" interface="fmt_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="suikoden" sha1="e0276dafedb588a7d2b455f72d94a0c9039fe990" />
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="syndicat">
|
||||
<!--
|
||||
Origin: Neo Kobe Collection
|
||||
@ -8861,7 +8973,27 @@ User/save disks that can be created from the game itself are not included.
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="toshint2">
|
||||
<software name="toshin2">
|
||||
<!--
|
||||
Origin: P2P
|
||||
<rom name="Image.cdm" size="7055" crc="878fdc3f" sha1="d0a1af456f758de8a3aae8ca5aae4407a29a21ee"/>
|
||||
<rom name="Image.cue" size="1406" crc="ab5112e6" sha1="caddbfdaa9002bd2cbd9d44a0320de0ba83188e4"/>
|
||||
<rom name="Image.img" size="604240560" crc="3a4479b0" sha1="59fa6c2e95b8e2a79d25ec3b70b9c7902642faf5"/>
|
||||
<rom name="Image.sub" size="24662880" crc="20f890dc" sha1="4fe043a928835600b7cdddc517aac410323384bd"/>
|
||||
-->
|
||||
<description>Toushin Toshi II</description>
|
||||
<year>1995</year>
|
||||
<publisher>アリスソフト (AliceSoft)</publisher>
|
||||
<info name="release" value="199504xx" />
|
||||
<info name="usage" value="Requires HDD installation"/>
|
||||
<part name="cdrom" interface="fmt_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="toshin2" sha1="4316f227a3809c089f086cf216d76d7c09466407" />
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="toshin2s">
|
||||
<!--
|
||||
Origin: Neo Kobe Collection
|
||||
<rom name="Toushin Toshi II - Soshite Sorekara....ccd" size="3809" crc="9c8e2336" sha1="02d5cc4f6c53bf8119209973cc8997e0419baa2c"/>
|
||||
|
153
hash/ibm5150.xml
153
hash/ibm5150.xml
@ -5306,6 +5306,17 @@ has been replaced with an all-zero block. -->
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="qnxdemo">
|
||||
<description>QNX Demonstration (Apr 17th, 1989)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Quantum Software Systems</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "368640">
|
||||
<rom name="qnx1989.img" size="368640" crc="1f63eb66" sha1="746d459686e4b8f9ca6e22c20138557e2bff363d" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- "Thoroughbred Passport" copy-protection dongle not emulated -->
|
||||
<software name="tbos" supported="no">
|
||||
<description>Thoroughbred/OS 6.6.2-6</description>
|
||||
@ -5586,6 +5597,123 @@ has been replaced with an all-zero block. -->
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="azurebnd">
|
||||
<description>Advanced Dungeons & Dragons - Curse of the Azure Bonds (V1.2)</description>
|
||||
<year>1989</year>
|
||||
<publisher>SSI</publisher>
|
||||
<info name="version" value="1.2" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "368640">
|
||||
<rom name="azurebnd_1.img" size="368640" crc="9fa8ca28" sha1="236ca717a0eede9a8f90cb9e4fe3250ffaa46595" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "368640">
|
||||
<rom name="azurebnd_2.img" size="368640" crc="44f4999f" sha1="cb4b65d94c96caaeeaf3a4bd84fdf23185b14cbf" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop3" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "368640">
|
||||
<rom name="azurebnd_3.img" size="368640" crc="17b7d451" sha1="c574643cb1808037a250ba5da624ab89b5feab4f" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop4" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "368640">
|
||||
<rom name="azurebnd_4.img" size="368640" crc="ecea8cc9" sha1="33f8fcac0f0c8d6fb0e8d45d98afb5754fc22380" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="azurebnda" cloneof="azurebnd">
|
||||
<description>Advanced Dungeons & Dragons - Curse of the Azure Bonds (V1.1)</description>
|
||||
<year>1989</year>
|
||||
<publisher>SSI</publisher>
|
||||
<info name="version" value="1.1" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "368640">
|
||||
<rom name="Curse of the Azure Bonds (USA) (5.25'') (Disk 1).img" size="368640" crc="8edb2f3c" sha1="d43ee33399e3594b4cd1afd35a1a062089e40c5c" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "368640">
|
||||
<rom name="Curse of the Azure Bonds (USA) (5.25'') (Disk 2).img" size="368640" crc="7cec17f4" sha1="a8cad973fa508e88f16b681d230857249b30f02d" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop3" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "368640">
|
||||
<rom name="Curse of the Azure Bonds (USA) (5.25'') (Disk 3).img" size="368640" crc="5c55a8ca" sha1="23165433804e07706b450e3aa51cde23f39bb992" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop4" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "368640">
|
||||
<rom name="Curse of the Azure Bonds (USA) (5.25'') (Disk 4).img" size="368640" crc="08644e84" sha1="4f2443861e454e716470c9d3128c4c76a6ea4b5f" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="poolrad">
|
||||
<description>Advanced Dungeons & Dragons - Pool of Radiance</description>
|
||||
<year>1988</year>
|
||||
<publisher>SSI</publisher>
|
||||
<info name="version" value="1.2" />
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "737280">
|
||||
<rom name="Pool of Radiance (USA) (Disk 1).img" size="737280" crc="7fceae07" sha1="a081a9f811ba0cf8d6fedb0aca4771bbe8e787de" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "737280">
|
||||
<rom name="Pool of Radiance (USA) (Disk 2).img" size="737280" crc="360019c5" sha1="9b2b08d5bd64c635032fa0582362f218cf4a1b94" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="pooldark">
|
||||
<description>Advanced Dungeons & Dragons - Pools of Darkness</description>
|
||||
<year>1991</year>
|
||||
<publisher>SSI</publisher>
|
||||
<info name="version" value="1.00" />
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "737280">
|
||||
<rom name="Pools of Darkness (USA) (Disk 1).img" size="737280" crc="732e3424" sha1="5345521c5e6083641fc3cf4a7c37bfc63c7b079c" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "737280">
|
||||
<rom name="Pools of Darkness (USA) (Disk 2).img" size="737280" crc="18e5a10d" sha1="1602709a31850016a608d7298b81afd0b2bbb23d" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop3" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "737280">
|
||||
<rom name="Pools of Darkness (USA) (Disk 3).img" size="737280" crc="576daf15" sha1="0fd8ecf7a44be7b1f1e6dfb24e9016e77039ab73" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="silvblad">
|
||||
<description>Advanced Dungeons & Dragons - Secret of the Silver Blades (1.20)</description>
|
||||
<year>1990</year>
|
||||
<publisher>SSI</publisher>
|
||||
<info name="version" value="1.20" />
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "737280">
|
||||
<rom name="Secret of the Silver Blades (1990)(SSI).dsk" size="737280" crc="fac4327b" sha1="05c4a640183fb83d7c539eefb4f82cb213ebaa9f" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="silvblada" cloneof="silvblad">
|
||||
<description>Advanced Dungeons & Dragons - Secret of the Silver Blades (1.10)</description>
|
||||
<year>1990</year>
|
||||
<publisher>SSI</publisher>
|
||||
<info name="version" value="1.10" />
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "737280">
|
||||
<rom name="Secret of the Silver Blades (USA).img" size="737280" crc="64b5ce63" sha1="66f92af0f871081d3c1ff7554ab8b6b1c3402344" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="captcom">
|
||||
<description>The Adventures of Captain Comic</description>
|
||||
<year>1988</year>
|
||||
@ -5598,6 +5726,20 @@ has been replaced with an all-zero block. -->
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="alpntram">
|
||||
<!-- Dumped via Kryoflux, four tracks show as modified -->
|
||||
<description>Alpine Tram Ride</description>
|
||||
<year>1987</year>
|
||||
<publisher>Learning Technologies</publisher>
|
||||
<info name="version" value="1.1" />
|
||||
<info name="user_notes" value="Must be run from drive A" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "1167427">
|
||||
<rom name="Alpine Tram Ride 1.1 for IBM PC (1987) (Kryoflux).mfm" size="1167427" crc="65210439" sha1="f47d610d0c539f2e8d41ee9ea95f7246255e3f44" offset="0" status="baddump"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="aaow">
|
||||
<description>The Ancient Art of War</description>
|
||||
<year>1984</year>
|
||||
@ -7990,17 +8132,6 @@ has been replaced with an all-zero block. -->
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="silvblad">
|
||||
<description>Secret of the Silver Blades</description>
|
||||
<year>1990</year>
|
||||
<publisher>SSI</publisher>
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "737280">
|
||||
<rom name="Secret of the Silver Blades (1990)(SSI).dsk" size="737280" crc="fac4327b" sha1="05c4a640183fb83d7c539eefb4f82cb213ebaa9f" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="agidemos">
|
||||
<description>Sierra Demo</description>
|
||||
<year>1987</year>
|
||||
|
279
hash/ibm5170.xml
279
hash/ibm5170.xml
@ -2409,6 +2409,192 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="pcmos1">
|
||||
<description>PC-MOS/386 Version 1.02</description>
|
||||
<year>1987</year>
|
||||
<publisher>The Software Link</publisher>
|
||||
<info name="version" value="1.02" />
|
||||
<info name="serial" value="05-04648" />
|
||||
<part name="disk1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "1474560">
|
||||
<rom name="Disk1.img" size="1474560" crc="615acf20" sha1="6e5b14f2c457f653cf09c8b4c0cb7ef7b2d56573" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="pcmos3">
|
||||
<description>PC-MOS/386 Version 3.00</description>
|
||||
<year>1988</year>
|
||||
<publisher>The Software Link</publisher>
|
||||
<info name="version" value="3.00" />
|
||||
<info name="serial" value="05-018868" />
|
||||
<part name="disk1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "1474560">
|
||||
<rom name="Disk1.img" size="1474560" crc="06981cb6" sha1="23ee2c0646cae310f8c8db5fd74200d641dfa9b0" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="pcmos5">
|
||||
<description>PC-MOS Version 5.01</description>
|
||||
<year>1994</year>
|
||||
<publisher>The Software Link</publisher>
|
||||
<info name="version" value="5.01" />
|
||||
<info name="serial" value="09-50003953" />
|
||||
<part name="disk1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "1474560">
|
||||
<rom name="PCMOS386-9-user.img" size="1474560" crc="936c016a" sha1="d31ef3d07b11b12085546e1b5a45f8ecfa4163d3" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="qnx4demo">
|
||||
<description>QNX Internet Appliance Toolkit Demo (v1.0a)</description>
|
||||
<year>1997</year>
|
||||
<publisher>QNX Software Systems</publisher>
|
||||
<info name="version" value="1.0a" />
|
||||
<info name="user_notes" value="8MB RAM required" />
|
||||
<part name="disk1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "1474560">
|
||||
<!-- source image is only 1469440 bytes, added 0xF6 padding -->
|
||||
<rom name="qnxdemo v10a.dat" size="1474560" crc="909bb0ae" sha1="a234d02397d4af648a77d46ab277c5e674b4f1cb" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="qnx4demoa" cloneof="qnx4demo">
|
||||
<description>QNX Internet Appliance Toolkit Demo (v1.0a Beta)</description>
|
||||
<year>1997</year>
|
||||
<publisher>QNX Software Systems</publisher>
|
||||
<info name="version" value="1.0a" />
|
||||
<info name="user_notes" value="8MB RAM required" />
|
||||
<part name="disk1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "1474560">
|
||||
<!-- source image is only 1469440 bytes, added 0xF6 padding -->
|
||||
<rom name="qnxdemo v10a beta.dat" size="1474560" crc="e5df63c4" sha1="0c9423ede835c7f867baf945bab52ebdae40183a" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="qnx4demob" cloneof="qnx4demo">
|
||||
<description>QNX Internet Appliance Toolkit Demo (v1.0)</description>
|
||||
<year>1997</year>
|
||||
<publisher>QNX Software Systems</publisher>
|
||||
<info name="version" value="1.0" />
|
||||
<info name="user_notes" value="8MB RAM required" />
|
||||
<part name="disk1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "1474560">
|
||||
<!-- source image is only 1469440 bytes, added 0xF6 padding -->
|
||||
<rom name="qnxdemo v10.dat" size="1474560" crc="c0a120e4" sha1="bf8fbf753e978e00bb95f1da4a6d2e37a91092e7" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="qnx4demoru" cloneof="qnx4demo">
|
||||
<description>QNX Internet Appliance Toolkit Demo (v1.1 - Russian)</description>
|
||||
<year>1998</year>
|
||||
<publisher>QNX Software Systems</publisher>
|
||||
<info name="version" value="1.1" />
|
||||
<info name="user_notes" value="8MB RAM required" />
|
||||
<part name="disk1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "1474560">
|
||||
<!-- source image is only 1469440 bytes, added 0xF6 padding -->
|
||||
<rom name="qnxdemo v11 russian.dat" size="1474560" crc="3e50f719" sha1="9336ff81e57169baa363108cde8a9b2babe77765" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="qnx4modd">
|
||||
<description>QNX Demo (Modem v405)</description>
|
||||
<year>1999</year>
|
||||
<publisher>QNX Software Systems</publisher>
|
||||
<info name="version" value="4.05" />
|
||||
<info name="user_notes" value="8MB RAM required" />
|
||||
<part name="disk1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "1474560">
|
||||
<rom name="qnxdemo modem v405.dat" size="1474560" crc="1449909a" sha1="e35b2822eb2391ebcac04cb5f3ec8a284f601bb8" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="qnx4modda" cloneof="qnx4modd">
|
||||
<description>QNX Demo (Modem v4.00)</description>
|
||||
<year>1999</year>
|
||||
<publisher>QNX Software Systems</publisher>
|
||||
<info name="version" value="4.00" />
|
||||
<info name="user_notes" value="8MB RAM required" />
|
||||
<part name="disk1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "1474560">
|
||||
<rom name="qnxdemo modem v400.dat" size="1474560" crc="7cc3be15" sha1="3ded9ef17784b18f1c356e2bfeacfd9ecef4f716" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="qnx4moddb" cloneof="qnx4modd">
|
||||
<description>QNX Internet Appliance Toolkit Demo (Modem v3.03)</description>
|
||||
<year>1998</year>
|
||||
<publisher>QNX Software Systems</publisher>
|
||||
<info name="version" value="3.03" />
|
||||
<info name="user_notes" value="8MB RAM required" />
|
||||
<part name="disk1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "1474560">
|
||||
<rom name="qnxdemo modem v303.dat" size="1474560" crc="de42476d" sha1="b330dc04a920886f2243377c9edd80c23bc3e90a" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="qnx4netd">
|
||||
<description>QNX Demo (Network v405)</description>
|
||||
<year>1999</year>
|
||||
<publisher>QNX Software Systems</publisher>
|
||||
<info name="version" value="4.05" />
|
||||
<info name="user_notes" value="8MB RAM required" />
|
||||
<part name="disk1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "1474560">
|
||||
<rom name="qnxdemo network v405.dat" size="1474560" crc="315a822c" sha1="c8baa52161c069dae25410ce09a3b1c095961323" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="qnx4netda" cloneof="qnx4netd">
|
||||
<description>QNX Demo (Network v4.00)</description>
|
||||
<year>1999</year>
|
||||
<publisher>QNX Software Systems</publisher>
|
||||
<info name="version" value="4.00" />
|
||||
<info name="user_notes" value="8MB RAM required" />
|
||||
<part name="disk1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "1474560">
|
||||
<rom name="qnxdemo network v400.dat" size="1474560" crc="72d7de91" sha1="bcc589a419500376cf5101ddf80d416ee43c0c1d" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="qnx4netdb" cloneof="qnx4netd">
|
||||
<description>QNX Internet Appliance Toolkit Demo (Network v3.03)</description>
|
||||
<year>1998</year>
|
||||
<publisher>QNX Software Systems</publisher>
|
||||
<info name="version" value="3.03" />
|
||||
<info name="user_notes" value="8MB RAM required" />
|
||||
<part name="disk1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "1474560">
|
||||
<rom name="qnxdemo network v303.dat" size="1474560" crc="694a0448" sha1="d1bb83273ae2da9fb1fe93ae08c951ec91d6ea3f" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="qnx4netdc" cloneof="qnx4netd">
|
||||
<description>QNX Internet Appliance Toolkit Demo (Network v2.0)</description>
|
||||
<year>1998</year>
|
||||
<publisher>QNX Software Systems</publisher>
|
||||
<info name="version" value="2.0" />
|
||||
<info name="user_notes" value="8MB RAM required" />
|
||||
<part name="disk1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size = "1474560">
|
||||
<rom name="qnxdemo network v20.dat" size="1474560" crc="2026021a" sha1="a8a49d60accc19f67b09e8fe5b84ae6c3c18806e" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="win95b">
|
||||
<description>Microsoft Windows 95 (Bootdisk)</description>
|
||||
<year>1995</year>
|
||||
@ -2900,37 +3086,37 @@
|
||||
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="disk1.img" size="737280" crc="f7ae33c3" sha1="b19fcad2e0c77fb7b3f574b7feb499ee9bcc42f0" offset="0" />
|
||||
<rom name="disk1dd.img" size="737280" crc="f7ae33c3" sha1="b19fcad2e0c77fb7b3f574b7feb499ee9bcc42f0" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="disk2.img" size="737280" crc="8d3b4522" sha1="3099e82c7974ea33e6498dbb5f308a1ef38ade4b" offset="0" />
|
||||
<rom name="disk2dd.img" size="737280" crc="8d3b4522" sha1="3099e82c7974ea33e6498dbb5f308a1ef38ade4b" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop3" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="disk3.img" size="737280" crc="75ed39ee" sha1="fe87c98f020541a0f44aeabd612cf3ac746285f4" offset="0" />
|
||||
<rom name="disk3dd.img" size="737280" crc="75ed39ee" sha1="fe87c98f020541a0f44aeabd612cf3ac746285f4" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop4" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="disk4.img" size="737280" crc="0bbb5163" sha1="afd7e856c7ffa6ba1518a4443e63d4e85af90eee" offset="0" />
|
||||
<rom name="disk4dd.img" size="737280" crc="0bbb5163" sha1="afd7e856c7ffa6ba1518a4443e63d4e85af90eee" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop5" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="disk5.img" size="737280" crc="9bad78fc" sha1="717e55075c33d04f73b728fb00455175e01f6207" offset="0" />
|
||||
<rom name="disk5dd.img" size="737280" crc="9bad78fc" sha1="717e55075c33d04f73b728fb00455175e01f6207" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop6" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="disk6.img" size="737280" crc="aece5056" sha1="7e8786d56a13dcc6dbe604e773cfef3dcb81526f" offset="0" />
|
||||
<rom name="disk6dd.img" size="737280" crc="aece5056" sha1="7e8786d56a13dcc6dbe604e773cfef3dcb81526f" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop7" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="737280">
|
||||
<rom name="disk7.img" size="737280" crc="53978e51" sha1="8aca13779c8d142a8989d854482d019c2d7252de" offset="0" />
|
||||
<rom name="disk7dd.img" size="737280" crc="53978e51" sha1="8aca13779c8d142a8989d854482d019c2d7252de" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -2942,27 +3128,27 @@
|
||||
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="1228800">
|
||||
<rom name="disk1.img" size="1228800" crc="062ea5a7" sha1="4c1a2a22c68bb82e90db7c454f71f4fef3d5e1b9" offset="0" />
|
||||
<rom name="disk1mf.img" size="1228800" crc="062ea5a7" sha1="4c1a2a22c68bb82e90db7c454f71f4fef3d5e1b9" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="1228800">
|
||||
<rom name="disk2.img" size="1228800" crc="1946eee6" sha1="adaf696fd6f1458ee5a73dea8b0a5fb5e306be90" offset="0" />
|
||||
<rom name="disk2mf.img" size="1228800" crc="1946eee6" sha1="adaf696fd6f1458ee5a73dea8b0a5fb5e306be90" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop3" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="1228800">
|
||||
<rom name="disk3.img" size="1228800" crc="93fbd992" sha1="271a52a62a83ce7bdcf6514f779b46c534cdf2a6" offset="0" />
|
||||
<rom name="disk3mf.img" size="1228800" crc="93fbd992" sha1="271a52a62a83ce7bdcf6514f779b46c534cdf2a6" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop4" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="1228800">
|
||||
<rom name="disk4.img" size="1228800" crc="a6b5cba5" sha1="10dfb52912edbb02e6ffc48a7d46038dba9d499c" offset="0" />
|
||||
<rom name="disk4mf.img" size="1228800" crc="a6b5cba5" sha1="10dfb52912edbb02e6ffc48a7d46038dba9d499c" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop5" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="1228800">
|
||||
<rom name="disk5.img" size="1228800" crc="54cc9762" sha1="b07c0c8f56bf005a3d526fb3ea9fe29e6204add2" offset="0" />
|
||||
<rom name="disk5mf.img" size="1228800" crc="54cc9762" sha1="b07c0c8f56bf005a3d526fb3ea9fe29e6204add2" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -3464,47 +3650,47 @@
|
||||
<publisher>Microsoft</publisher>
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="1474560">
|
||||
<rom name="disk01.img" size="1474560" crc="a456c5c1" sha1="845136f162498e0a53444f269abf4f49986e19bd" offset="0" />
|
||||
<rom name="disk01u.img" size="1474560" crc="a456c5c1" sha1="845136f162498e0a53444f269abf4f49986e19bd" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="1474560">
|
||||
<rom name="disk02.img" size="1474560" crc="60a61b4e" sha1="f2c1bd78ec784b2a4544901f38b6343875a9a1ed" offset="0" />
|
||||
<rom name="disk02u.img" size="1474560" crc="60a61b4e" sha1="f2c1bd78ec784b2a4544901f38b6343875a9a1ed" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop3" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="1474560">
|
||||
<rom name="disk03.img" size="1474560" crc="f7b18361" sha1="7d9e8bc8ce54ee6ce6d0c6198b8c5a62c9c0f25e" offset="0" />
|
||||
<rom name="disk03u.img" size="1474560" crc="f7b18361" sha1="7d9e8bc8ce54ee6ce6d0c6198b8c5a62c9c0f25e" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop4" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="1474560">
|
||||
<rom name="disk04.img" size="1474560" crc="e2946dbd" sha1="130eda5a79750a1b08a897c0c235235d0aba3f66" offset="0" />
|
||||
<rom name="disk04u.img" size="1474560" crc="e2946dbd" sha1="130eda5a79750a1b08a897c0c235235d0aba3f66" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop5" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="1474560">
|
||||
<rom name="disk05.img" size="1474560" crc="a94d27b4" sha1="3d453878879922594d05f6451d6e5636c215c219" offset="0" />
|
||||
<rom name="disk05u.img" size="1474560" crc="a94d27b4" sha1="3d453878879922594d05f6451d6e5636c215c219" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop6" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="1474560">
|
||||
<rom name="disk06.img" size="1474560" crc="f46858ea" sha1="f7243506ec484095fece35acacc54189ea9eb65c" offset="0" />
|
||||
<rom name="disk06u.img" size="1474560" crc="f46858ea" sha1="f7243506ec484095fece35acacc54189ea9eb65c" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop7" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="1474560">
|
||||
<rom name="disk07.img" size="1474560" crc="21f25ba7" sha1="adcb00920e352cc28ec5bf3ffb7893eb1938dac2" offset="0" />
|
||||
<rom name="disk07u.img" size="1474560" crc="21f25ba7" sha1="adcb00920e352cc28ec5bf3ffb7893eb1938dac2" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop8" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="1474560">
|
||||
<rom name="disk08.img" size="1474560" crc="46802720" sha1="f5ef16231c078c8f818a8edac77074b0edeb34fb" offset="0" />
|
||||
<rom name="disk08u.img" size="1474560" crc="46802720" sha1="f5ef16231c078c8f818a8edac77074b0edeb34fb" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop9" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="1474560">
|
||||
<rom name="disk09.img" size="1474560" crc="44177162" sha1="f7b6b911c9efff0e6ba1c3dbc43c7cf1709fc52b" offset="0" />
|
||||
<rom name="disk09u.img" size="1474560" crc="44177162" sha1="f7b6b911c9efff0e6ba1c3dbc43c7cf1709fc52b" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -4607,6 +4793,45 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="pct71_525" cloneof="pct71">
|
||||
<!-- Dumped via Kryoflux, shows as good and unmodified -->
|
||||
<description>PC Tools 7.1 (5.25" HD)</description>
|
||||
<year>1991</year>
|
||||
<publisher>Central Point Software, Inc.</publisher>
|
||||
<info name="version" value="7.1" />
|
||||
<info name="developer" value="Central Point Software, Inc." />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "1228800">
|
||||
<rom name="pct71_525_1.img" size="1228800" crc="062b12dd" sha1="b7cca618cc0d80b77438700372e42d624bae8e5d" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "1228800">
|
||||
<rom name="pct71_525_2.img" size="1228800" crc="cce86276" sha1="da795768cda4625720faccb30c6b20377b5fc3dc" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop3" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "1228800">
|
||||
<rom name="pct71_525_3.img" size="1228800" crc="b5a89a5a" sha1="c7e70749fb9a1850eb26d9c455217da7314df1d8" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop4" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "1228800">
|
||||
<rom name="pct71_525_4.img" size="1228800" crc="e505d407" sha1="82426b2d00fbc41c095c3dc6b47045619adb09e8" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop5" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "1228800">
|
||||
<rom name="pct71_525_5.img" size="1228800" crc="4dd1e757" sha1="6906b8b1af5aa8ebeebdec4643e4528b69b68973" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop6" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "1228800">
|
||||
<rom name="pct71_525_6.img" size="1228800" crc="a85217c9" sha1="5a12930041ae333d56aff308078eb16e4ff98030" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="pct8">
|
||||
<description>PC Tools 8 (5.25" HD)</description>
|
||||
<year>1992</year>
|
||||
@ -4615,32 +4840,32 @@
|
||||
<info name="developer" value="Central Point Software, Inc." />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "1228800">
|
||||
<rom name="PC Tools 8 [Central Point Software] [1992] [3.5DD] [Disk 1 of 6].img" size="1228800" crc="9e32b700" sha1="e3448a677db9da18f3933dcad536b712883276a5" offset="0"/>
|
||||
<rom name="PC Tools 8 [Central Point Software] [1992] [5.25HD] [Disk 1 of 6].img" size="1228800" crc="9e32b700" sha1="e3448a677db9da18f3933dcad536b712883276a5" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "1228800">
|
||||
<rom name="PC Tools 8 [Central Point Software] [1992] [3.5DD] [Disk 2 of 6].img" size="1228800" crc="58e67911" sha1="bb2b9b4447fbc3e469caa0d2ea651162e15a62da" offset="0"/>
|
||||
<rom name="PC Tools 8 [Central Point Software] [1992] [5.25HD] [Disk 2 of 6].img" size="1228800" crc="58e67911" sha1="bb2b9b4447fbc3e469caa0d2ea651162e15a62da" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop3" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "1228800">
|
||||
<rom name="PC Tools 8 [Central Point Software] [1992] [3.5DD] [Disk 3 of 6].img" size="1228800" crc="8950b0bb" sha1="ab3c91b07df198168d259643d05df123a67cebb9" offset="0"/>
|
||||
<rom name="PC Tools 8 [Central Point Software] [1992] [5.25HD] [Disk 3 of 6].img" size="1228800" crc="8950b0bb" sha1="ab3c91b07df198168d259643d05df123a67cebb9" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop4" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "1228800">
|
||||
<rom name="PC Tools 8 [Central Point Software] [1992] [3.5DD] [Disk 4 of 6].img" size="1228800" crc="0fb54af3" sha1="909de4592581fcc56a47452a13f32c7f3455fdc7" offset="0"/>
|
||||
<rom name="PC Tools 8 [Central Point Software] [1992] [5.25HD] [Disk 4 of 6].img" size="1228800" crc="0fb54af3" sha1="909de4592581fcc56a47452a13f32c7f3455fdc7" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop5" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "1228800">
|
||||
<rom name="PC Tools 8 [Central Point Software] [1992] [3.5DD] [Disk 5 of 6].img" size="1228800" crc="be00b76b" sha1="012617155cbcbb2ee1fbd3227ddfc585197f751d" offset="0"/>
|
||||
<rom name="PC Tools 8 [Central Point Software] [1992] [5.25HD] [Disk 5 of 6].img" size="1228800" crc="be00b76b" sha1="012617155cbcbb2ee1fbd3227ddfc585197f751d" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop6" interface="floppy_5_25">
|
||||
<dataarea name="flop" size = "1228800">
|
||||
<rom name="PC Tools 8 [Central Point Software] [1992] [3.5DD] [Disk 6 of 6].img" size="1228800" crc="25def657" sha1="ef253ae828ddd915c4e67a121b257368a21f7d2e" offset="0"/>
|
||||
<rom name="PC Tools 8 [Central Point Software] [1992] [5.25HD] [Disk 6 of 6].img" size="1228800" crc="25def657" sha1="ef253ae828ddd915c4e67a121b257368a21f7d2e" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
@ -181,18 +181,6 @@ KinderComp (Spinnaker)
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- This rom acts as a bios replacement, this is not yet supported by the driver -->
|
||||
<software name="quiksilv" supported="no">
|
||||
<description>QuickSilver</description>
|
||||
<year>19??</year>
|
||||
<publisher>Synectics</publisher>
|
||||
<part name="cart" interface="ibmpcjr_cart">
|
||||
<dataarea name="rom" size="65536">
|
||||
<rom name="quiksilv.bin" size="65536" crc="86aaa1c4" sha1="b3d7e8ce5de17441891e0b71e5261ed01a169dc1" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="riveraid">
|
||||
<description>River Raid</description>
|
||||
<year>1984</year>
|
||||
|
@ -5,7 +5,6 @@ Undumped games:
|
||||
* Hyperdrome (Telegames 1999)
|
||||
|
||||
Undumped Self-Published Titles:
|
||||
* Alpine Games (R. & J. Graf)
|
||||
* CGE 5th (Songbird Productions, CF30B2)
|
||||
* Championship Rally (Songbird Productions, CF2006)
|
||||
* Cyber Virus (Songbird Productions, CF2007)
|
||||
@ -1062,6 +1061,18 @@ Known undumped prototypes:
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="alpineg" supported="no"> <!-- Needs granularity set as 0x400 instead as 0x800 like the driver expects for 512k cartridges. Also will need eeprom support -->
|
||||
<description>Alpine Games</description>
|
||||
<year>2004</year>
|
||||
<publisher><homebrew></publisher>
|
||||
<info name="developer" value="R. & J. Graf" />
|
||||
<part name="cart" interface="lynx_cart">
|
||||
<dataarea name="rom" size="524288">
|
||||
<rom name="AlpineGames.bin" size="524288" crc="95a1ea09" sha1="fb71ad96f0730f88acd7d51eaa761e475a015d6c" offset="000000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dragnet">
|
||||
<description>Dragnet Sound Demo</description>
|
||||
<year>1995</year>
|
||||
|
@ -25,4 +25,37 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="rsz">
|
||||
<description>PX-4 Rom Writer</description>
|
||||
<year>198?</year>
|
||||
<publisher>EPSON</publisher>
|
||||
<part name="cart" interface="px4_cart">
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="px4rsz.bin" size="32768" crc="12aa3f9c" sha1="c51af300c3d5bc7e8fa45ca9193f093e769cc611" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="rmwr">
|
||||
<description>PX-4 Prom Writer Cartridge V2.0</description>
|
||||
<year>198?</year>
|
||||
<publisher>EPSON</publisher>
|
||||
<part name="cart" interface="px4_cart">
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="px4rmwr.bin" size="32768" crc="9a91bde0" sha1="aa650613672e702572b98eebf048555c988c7f5b" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="pw2">
|
||||
<description>PX-4 Rom Write</description>
|
||||
<year>198?</year>
|
||||
<publisher>EPSON</publisher>
|
||||
<part name="cart" interface="px4_cart">
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="px4promwriter2.bin" size="32768" crc="5c54faf3" sha1="4879a126b1975f09fadba8831e14c7e8f41c40f3" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: MAME\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-10-03 10:32+1100\n"
|
||||
"PO-Revision-Date: 2016-02-20 18:03+0100\n"
|
||||
"PO-Revision-Date: 2017-10-26 22:51+0100\n"
|
||||
"Last-Translator: pmos69\n"
|
||||
"Language-Team: MAME Language Team\n"
|
||||
"Language: pt\n"
|
||||
@ -501,7 +501,7 @@ msgstr "Cor de fundo do rato-premido"
|
||||
|
||||
#: src/frontend/mame/ui/custui.cpp:469
|
||||
msgid "Restore originals colors"
|
||||
msgstr "restaurar cores originais"
|
||||
msgstr "Restaurar cores originais"
|
||||
|
||||
#: src/frontend/mame/ui/custui.cpp:481
|
||||
msgid "UI Colors Settings"
|
||||
@ -677,7 +677,7 @@ msgstr "Não Mecânico"
|
||||
|
||||
#: src/frontend/mame/ui/utils.cpp:64
|
||||
msgid "Category"
|
||||
msgstr "categoria"
|
||||
msgstr "Categoria"
|
||||
|
||||
#: src/frontend/mame/ui/utils.cpp:65
|
||||
msgid "Favorites"
|
||||
@ -1272,11 +1272,11 @@ msgstr "Requer Artwork\tNão\n"
|
||||
|
||||
#: src/frontend/mame/ui/selgame.cpp:947
|
||||
msgid "Requires Clickable Artwork\tYes\n"
|
||||
msgid "Requer Artwork Clicável\tSim\n"
|
||||
msgstr "Requer Artwork Clicável\tSim\n"
|
||||
|
||||
#: src/frontend/mame/ui/selgame.cpp:947
|
||||
msgid "Requires Clickable Artwork\tNo\n"
|
||||
msgid "Requer Artwork Clicável\tNão\n"
|
||||
msgstr "Requer Artwork Clicável\tNão\n"
|
||||
|
||||
#: src/frontend/mame/ui/selgame.cpp:948
|
||||
msgid "Support Cocktail\tYes\n"
|
||||
@ -1312,31 +1312,31 @@ msgstr "Orientação de Ecrã\tHorizontal\n"
|
||||
|
||||
#: src/frontend/mame/ui/selgame.cpp:961
|
||||
msgid "Requires CHD\tYes\n"
|
||||
msgid "Requer CHD\tSim\n"
|
||||
msgstr "Requer CHD\tSim\n"
|
||||
|
||||
#: src/frontend/mame/ui/selgame.cpp:961
|
||||
msgid "Requires CHD\tNo\n"
|
||||
msgid "Requer CHD\tNão\n"
|
||||
msgstr "Requer CHD\tNão\n"
|
||||
|
||||
#: src/frontend/mame/ui/selgame.cpp:974
|
||||
msgid "ROM Audit Result\tOK\n"
|
||||
msgid "Resultado da Audit à ROM\tOK\n"
|
||||
msgstr "Resultado da Audit à ROM\tOK\n"
|
||||
|
||||
#: src/frontend/mame/ui/selgame.cpp:976
|
||||
msgid "ROM Audit Result\tBAD\n"
|
||||
msgid "Resultado da Audit à ROM\tFALHA\n"
|
||||
msgstr "Resultado da Audit à ROM\tFALHA\n"
|
||||
|
||||
#: src/frontend/mame/ui/selgame.cpp:979
|
||||
msgid "Samples Audit Result\tNone Needed\n"
|
||||
msgid "Resultado da Audit às Samples\tNenhuma Necessária\n"
|
||||
msgstr "Resultado da Audit às Samples\tNenhuma Necessária\n"
|
||||
|
||||
#: src/frontend/mame/ui/selgame.cpp:981
|
||||
msgid "Samples Audit Result\tOK\n"
|
||||
msgid "Resultado da Audit às Samples\tOK\n"
|
||||
msgstr "Resultado da Audit às Samples\tOK\n"
|
||||
|
||||
#: src/frontend/mame/ui/selgame.cpp:983
|
||||
msgid "Samples Audit Result\tBAD\n"
|
||||
msgid "Resultado da Audit às Samples\tFALHA\n"
|
||||
msgstr "Resultado da Audit às Samples\tFALHA\n"
|
||||
|
||||
#: src/frontend/mame/ui/selgame.cpp:987
|
||||
msgid ""
|
||||
@ -2124,7 +2124,7 @@ msgstr "Impulso da Moeda"
|
||||
|
||||
#: src/frontend/mame/ui/submenu.cpp:87
|
||||
msgid "Device Mapping"
|
||||
msgstr "mapeamento de Dispositivos"
|
||||
msgstr "Mapeamento de Dispositivos"
|
||||
|
||||
#: src/frontend/mame/ui/submenu.cpp:88
|
||||
msgid "Lightgun Device Assignment"
|
||||
@ -2132,7 +2132,7 @@ msgstr "Atribuição do Dispositivo Pistola de Luz"
|
||||
|
||||
#: src/frontend/mame/ui/submenu.cpp:89
|
||||
msgid "Trackball Device Assignment"
|
||||
msgstr "Atribuição do Dispositivo trackball"
|
||||
msgstr "Atribuição do Dispositivo Trackball"
|
||||
|
||||
#: src/frontend/mame/ui/submenu.cpp:90
|
||||
msgid "Pedal Device Assignment"
|
||||
@ -2184,7 +2184,7 @@ msgstr "Filtragem Bi-linear"
|
||||
|
||||
#: src/frontend/mame/ui/submenu.cpp:108
|
||||
msgid "Bitmap Prescaling"
|
||||
msgstr "Bitmap Prescaling"
|
||||
msgstr "Prescaling de Bitmaps"
|
||||
|
||||
#: src/frontend/mame/ui/submenu.cpp:109
|
||||
msgid "Window Mode"
|
||||
|
@ -1760,6 +1760,8 @@ if (BUSES["A2BUS"]~=null) then
|
||||
MAME_DIR .. "src/devices/bus/a2bus/agat7ram.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ssprite.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ssprite.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ssbapple.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ssbapple.h",
|
||||
}
|
||||
end
|
||||
|
||||
@ -3280,3 +3282,33 @@ if (BUSES["INTERPRO_KEYBOARD"]~=null) then
|
||||
MAME_DIR .. "src/devices/bus/interpro/keyboard/hle.h"
|
||||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
--
|
||||
--@src/devices/bus/einstein/pipe/pipe.h,BUSES["TATUNG_PIPE"] = true
|
||||
---------------------------------------------------
|
||||
|
||||
if (BUSES["TATUNG_PIPE"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/bus/einstein/pipe/pipe.cpp",
|
||||
MAME_DIR .. "src/devices/bus/einstein/pipe/pipe.h",
|
||||
MAME_DIR .. "src/devices/bus/einstein/pipe/tk02.cpp",
|
||||
MAME_DIR .. "src/devices/bus/einstein/pipe/tk02.h",
|
||||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
--
|
||||
--@src/devices/bus/einstein/userport/userport.h,BUSES["EINSTEIN_USERPORT"] = true
|
||||
---------------------------------------------------
|
||||
|
||||
if (BUSES["EINSTEIN_USERPORT"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/bus/einstein/userport/userport.cpp",
|
||||
MAME_DIR .. "src/devices/bus/einstein/userport/userport.h",
|
||||
MAME_DIR .. "src/devices/bus/einstein/userport/mouse.cpp",
|
||||
MAME_DIR .. "src/devices/bus/einstein/userport/mouse.h",
|
||||
MAME_DIR .. "src/devices/bus/einstein/userport/speech.cpp",
|
||||
MAME_DIR .. "src/devices/bus/einstein/userport/speech.h",
|
||||
}
|
||||
end
|
||||
|
@ -663,6 +663,7 @@ BUSES["CRVISION"] = true
|
||||
BUSES["DMV"] = true
|
||||
BUSES["ECBBUS"] = true
|
||||
BUSES["ECONET"] = true
|
||||
BUSES["EINSTEIN_USERPORT"] = true
|
||||
BUSES["ELECTRON"] = true
|
||||
BUSES["EP64"] = true
|
||||
BUSES["EPSON_SIO"] = true
|
||||
@ -731,6 +732,7 @@ BUSES["SPECTRUM"] = true
|
||||
BUSES["SUNKBD"] = true
|
||||
BUSES["SVI_EXPANDER"] = true
|
||||
BUSES["SVI_SLOT"] = true
|
||||
BUSES["TATUNG_PIPE"] = true
|
||||
BUSES["TI8X"] = true
|
||||
BUSES["TI99"] = true
|
||||
BUSES["TI99X"] = true
|
||||
@ -3061,6 +3063,7 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/tv910.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/tv950.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/tv990.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/ts3000.cpp",
|
||||
}
|
||||
|
||||
createMESSProjects(_target, _subtarget, "tem")
|
||||
@ -3406,11 +3409,13 @@ files {
|
||||
|
||||
createMESSProjects(_target, _subtarget, "skeleton")
|
||||
files {
|
||||
MAME_DIR .. "src/mame/drivers/acd.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/aceex.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/akaiax80.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/alesis_qs.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/alphasma.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/ampro.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/ampscarp.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/amust.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/anzterm.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/applix.cpp",
|
||||
@ -3501,6 +3506,7 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/lft.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/lg-dvd.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/lola8a.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/lilith.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/m79152pc.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/mccpm.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/mes.cpp",
|
||||
@ -3538,6 +3544,7 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/p8k.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/pegasus.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/pencil2.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/perq.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/pes.cpp",
|
||||
MAME_DIR .. "src/mame/includes/pes.h",
|
||||
MAME_DIR .. "src/mame/drivers/pipbug.cpp",
|
||||
@ -3545,6 +3552,7 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/pm68k.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/pockchal.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/poly.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/powerstack.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/proteus3.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/pt68k4.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/ptcsol.cpp",
|
||||
@ -3561,6 +3569,7 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/softbox.cpp",
|
||||
MAME_DIR .. "src/mame/includes/softbox.h",
|
||||
MAME_DIR .. "src/mame/drivers/squale.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/solbourne.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/swtpc.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/swyft.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/symbolics.cpp",
|
||||
@ -3582,6 +3591,7 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/vii.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/vsmilepro.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/wicat.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/wyse.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/xor100.cpp",
|
||||
MAME_DIR .. "src/mame/includes/xor100.h",
|
||||
MAME_DIR .. "src/mame/drivers/xavix.cpp",
|
||||
|
@ -39,8 +39,8 @@
|
||||
DEFINE_DEVICE_TYPE(A2BUS_VIDEOTERM, a2bus_videoterm_device, "a2vidtrm", "Videx VideoTerm")
|
||||
DEFINE_DEVICE_TYPE(A2BUS_IBSAP16, a2bus_ap16_device, "a2ap16", "IBS AP-16 80 column card")
|
||||
DEFINE_DEVICE_TYPE(A2BUS_IBSAP16ALT, a2bus_ap16alt_device, "a2ap16a", "IBS AP-16 80 column card (alt. version)")
|
||||
DEFINE_DEVICE_TYPE(A2BUS_VTC1, a2bus_vtc1_device, "a2vtc1", "Unknown VideoTerm clone #1")
|
||||
DEFINE_DEVICE_TYPE(A2BUS_VTC2, a2bus_vtc2_device, "a2vtc2", "Unknown VideoTerm clone #2")
|
||||
DEFINE_DEVICE_TYPE(A2BUS_VTC1, a2bus_vtc1_device, "a2vtc1", "unknown VideoTerm clone #1")
|
||||
DEFINE_DEVICE_TYPE(A2BUS_VTC2, a2bus_vtc2_device, "a2vtc2", "unknown VideoTerm clone #2")
|
||||
DEFINE_DEVICE_TYPE(A2BUS_AEVIEWMASTER80, a2bus_aevm80_device, "a2aevm80", "Applied Engineering Viewmaster 80")
|
||||
|
||||
#define VIDEOTERM_ROM_REGION "vterm_rom"
|
||||
|
91
src/devices/bus/a2bus/ssbapple.cpp
Normal file
91
src/devices/bus/a2bus/ssbapple.cpp
Normal file
@ -0,0 +1,91 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:R. Belmont
|
||||
/*********************************************************************
|
||||
|
||||
ssbapple.c
|
||||
|
||||
Implementation of the SSB Apple speech card
|
||||
Must be in slot 2 for the provided software to work!
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "ssbapple.h"
|
||||
#include "sound/tms5220.h"
|
||||
#include "speaker.h"
|
||||
|
||||
/***************************************************************************
|
||||
PARAMETERS
|
||||
***************************************************************************/
|
||||
|
||||
//**************************************************************************
|
||||
// GLOBAL VARIABLES
|
||||
//**************************************************************************
|
||||
|
||||
DEFINE_DEVICE_TYPE(A2BUS_SSBAPPLE, a2bus_ssb_device, "a2ssbapl", "Multitech Industrial SSB Apple speech card")
|
||||
|
||||
#define TMS_TAG "tms5220"
|
||||
|
||||
/***************************************************************************
|
||||
FUNCTION PROTOTYPES
|
||||
***************************************************************************/
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_MEMBER( a2bus_ssb_device::device_add_mconfig )
|
||||
MCFG_SPEAKER_STANDARD_MONO("ssbapple")
|
||||
MCFG_SOUND_ADD(TMS_TAG, TMS5220, 640000) // guess - this gives 8 kHz output according to the datasheet
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "ssbapple", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
//**************************************************************************
|
||||
// LIVE DEVICE
|
||||
//**************************************************************************
|
||||
|
||||
a2bus_ssb_device::a2bus_ssb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, type, tag, owner, clock),
|
||||
device_a2bus_card_interface(mconfig, *this),
|
||||
m_tms(*this, TMS_TAG)
|
||||
{
|
||||
}
|
||||
|
||||
a2bus_ssb_device::a2bus_ssb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
a2bus_ssb_device(mconfig, A2BUS_SSBAPPLE, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void a2bus_ssb_device::device_start()
|
||||
{
|
||||
// set_a2bus_device makes m_slot valid
|
||||
set_a2bus_device();
|
||||
|
||||
if (m_slot != 2)
|
||||
{
|
||||
popmessage("SSB Card should be in slot 2!\n");
|
||||
}
|
||||
}
|
||||
|
||||
void a2bus_ssb_device::device_reset()
|
||||
{
|
||||
}
|
||||
|
||||
bool a2bus_ssb_device::take_c800()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
uint8_t a2bus_ssb_device::read_cnxx(address_space &space, uint8_t offset)
|
||||
{
|
||||
return 0x1f | m_tms->status_r(space, 0);
|
||||
}
|
||||
|
||||
void a2bus_ssb_device::write_cnxx(address_space &space, uint8_t offset, uint8_t data)
|
||||
{
|
||||
m_tms->data_w(space, 0, data);
|
||||
}
|
50
src/devices/bus/a2bus/ssbapple.h
Normal file
50
src/devices/bus/a2bus/ssbapple.h
Normal file
@ -0,0 +1,50 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:R. Belmont
|
||||
/*********************************************************************
|
||||
|
||||
ssbapple.h
|
||||
|
||||
Implementation of the SSB Apple speech card
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
#ifndef MAME_BUS_A2BUS_SSBAPPLE_H
|
||||
#define MAME_BUS_A2BUS_SSBAPPLE_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "a2bus.h"
|
||||
#include "sound/tms5220.h"
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
class a2bus_ssb_device:
|
||||
public device_t,
|
||||
public device_a2bus_card_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
a2bus_ssb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
static constexpr feature_type imperfect_features() { return feature::SOUND; }
|
||||
|
||||
required_device<tms5220_device> m_tms;
|
||||
|
||||
protected:
|
||||
a2bus_ssb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
|
||||
// overrides of standard a2bus slot functions
|
||||
virtual uint8_t read_cnxx(address_space &space, uint8_t offset) override;
|
||||
virtual void write_cnxx(address_space &space, uint8_t offset, uint8_t data) override;
|
||||
virtual bool take_c800() override;
|
||||
};
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(A2BUS_SSBAPPLE, a2bus_ssb_device)
|
||||
|
||||
#endif // MAME_BUS_A2BUS_A2SSBAPPLE_H
|
@ -150,16 +150,14 @@ DEFINE_DEVICE_TYPE(COCOSSC_SAC, cocossc_sac_device, "cocossc_sac", "CoCo SSC Sou
|
||||
// MACHINE FRAGMENTS AND ADDRESS MAPS
|
||||
//**************************************************************************
|
||||
|
||||
static ADDRESS_MAP_START(ssc_io_map, AS_IO, 8, coco_ssc_device)
|
||||
AM_RANGE(TMS7000_PORTA, TMS7000_PORTA) AM_READ(ssc_port_a_r)
|
||||
AM_RANGE(TMS7000_PORTB, TMS7000_PORTB) AM_WRITE(ssc_port_b_w)
|
||||
AM_RANGE(TMS7000_PORTC, TMS7000_PORTC) AM_READWRITE(ssc_port_c_r, ssc_port_c_w)
|
||||
AM_RANGE(TMS7000_PORTD, TMS7000_PORTD) AM_READWRITE(ssc_port_d_r, ssc_port_d_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
MACHINE_CONFIG_MEMBER(coco_ssc_device::device_add_mconfig)
|
||||
MCFG_CPU_ADD(PIC_TAG, TMS7040, DERIVED_CLOCK(1, 2))
|
||||
MCFG_CPU_IO_MAP(ssc_io_map)
|
||||
MCFG_TMS7000_IN_PORTA_CB(READ8(coco_ssc_device, ssc_port_a_r))
|
||||
MCFG_TMS7000_OUT_PORTB_CB(WRITE8(coco_ssc_device, ssc_port_b_w))
|
||||
MCFG_TMS7000_IN_PORTC_CB(READ8(coco_ssc_device, ssc_port_c_r))
|
||||
MCFG_TMS7000_OUT_PORTC_CB(WRITE8(coco_ssc_device, ssc_port_c_w))
|
||||
MCFG_TMS7000_IN_PORTD_CB(READ8(coco_ssc_device, ssc_port_d_r))
|
||||
MCFG_TMS7000_OUT_PORTD_CB(WRITE8(coco_ssc_device, ssc_port_d_w))
|
||||
|
||||
MCFG_RAM_ADD("staticram")
|
||||
MCFG_RAM_DEFAULT_SIZE("2K")
|
||||
|
@ -6,7 +6,10 @@
|
||||
*
|
||||
* Terco T4426 CNC Programming Station multi cart
|
||||
*
|
||||
* The code here is heavily inspired by coco_pak and coco_232
|
||||
* The T4426 is based on a Color Computer II PCB revision 26-3134A with a modified
|
||||
* Extended Basic fitted through an adapter and a soldered wire as one address line
|
||||
* was missing. Modifications involved obfuscation changing names of some common
|
||||
* commands such as LIST renamed to LARS (which happens to be the name of the CEO).
|
||||
*
|
||||
* +-------------------------------------------------------------------------------+
|
||||
* ||__|+-----+ oo 75 |O ||||||||||||||| O| |
|
||||
@ -51,7 +54,7 @@
|
||||
#define LOG_PIA (1U << 2)
|
||||
#define LOG_ACIA (1U << 3)
|
||||
|
||||
//#define VERBOSE (LOG_ACIA|LOG_GENERAL) // (LOG_PIA | LOG_GENERAL | LOG_SETUP)
|
||||
//#define VERBOSE (LOG_PIA) // (LOG_PIA | LOG_GENERAL | LOG_SETUP)
|
||||
//#define LOG_OUTPUT_STREAM std::cout
|
||||
#include "logmacro.h"
|
||||
|
||||
@ -182,7 +185,7 @@ ROM_START( coco_t4426 )
|
||||
|
||||
// 8 banked ROM:s
|
||||
ROM_LOAD("tercoED4426-0-8549-5.3.bin", 0x0000, 0x2000, CRC(45665428) SHA1(ff49a79275772c4c4ab1ae29db662c9b10a744a7))
|
||||
ROM_LOAD("tercoED4426-1-8549-5.3.bin", 0x2000, 0x2000, CRC(44baba33) SHA1(01cee1b208c158e598e7ecd2189b5e0ffa7f3ab9))
|
||||
ROM_LOAD("tercoED4426-1-8549-5.3.bin", 0x2000, 0x2000, CRC(854cd50d) SHA1(0786391b4e7a78af0a984b6313eec7f71fb4ad9e))
|
||||
ROM_LOAD("tercoPD4426-2-8632-6.4.bin", 0x4000, 0x2000, CRC(258e443a) SHA1(9d8901f3e70ae4f8526dde1b5208b22f066f801f))
|
||||
ROM_LOAD("tercoPD4426-3-8638-6.4.bin", 0x6000, 0x2000, CRC(640d1de4) SHA1(5ae7427cb5729fd3920361855d954ea1f97f6ae5))
|
||||
ROM_LOAD("tercoCA4426-4-8549-3.4.bin", 0x8000, 0x2000, CRC(df18397b) SHA1(2f9de210c039619c649be223c37a4eff873fa600))
|
||||
|
119
src/devices/bus/einstein/pipe/pipe.cpp
Normal file
119
src/devices/bus/einstein/pipe/pipe.cpp
Normal file
@ -0,0 +1,119 @@
|
||||
// license: GPL-2.0+
|
||||
// copyright-holders: Dirk Best
|
||||
/***************************************************************************
|
||||
|
||||
Einstein "Tatung Pipe"
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "pipe.h"
|
||||
|
||||
// supported devices
|
||||
#include "tk02.h"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
DEFINE_DEVICE_TYPE(TATUNG_PIPE, tatung_pipe_device, "tatung_pipe", "Tatung Pipe Slot")
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// SLOT DEVICE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// tatung_pipe_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
tatung_pipe_device::tatung_pipe_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, TATUNG_PIPE, tag, owner, clock),
|
||||
device_slot_interface(mconfig, *this),
|
||||
m_program(nullptr),
|
||||
m_io(nullptr),
|
||||
m_card(nullptr),
|
||||
m_int_handler(*this),
|
||||
m_nmi_handler(*this),
|
||||
m_reset_handler(*this)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// tatung_pipe_device - destructor
|
||||
//-------------------------------------------------
|
||||
|
||||
tatung_pipe_device::~tatung_pipe_device()
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void tatung_pipe_device::device_start()
|
||||
{
|
||||
// resolve callbacks
|
||||
m_int_handler.resolve_safe();
|
||||
m_nmi_handler.resolve_safe();
|
||||
m_reset_handler.resolve_safe();
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_reset - device-specific reset
|
||||
//-------------------------------------------------
|
||||
|
||||
void tatung_pipe_device::device_reset()
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// set_program_space - set address space we are attached to
|
||||
//-------------------------------------------------
|
||||
|
||||
void tatung_pipe_device::set_program_space(address_space *program)
|
||||
{
|
||||
m_program = program;
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// set_io_space - set address space we are attached to
|
||||
//-------------------------------------------------
|
||||
|
||||
void tatung_pipe_device::set_io_space(address_space *io)
|
||||
{
|
||||
m_io = io;
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// CARD INTERFACE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_tatung_pipe_interface - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
device_tatung_pipe_interface::device_tatung_pipe_interface(const machine_config &mconfig, device_t &device) :
|
||||
device_slot_card_interface(mconfig, device)
|
||||
{
|
||||
m_slot = dynamic_cast<tatung_pipe_device *>(device.owner());
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// ~device_tatung_pipe_interface - destructor
|
||||
//-------------------------------------------------
|
||||
|
||||
device_tatung_pipe_interface::~device_tatung_pipe_interface()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// SLOT INTERFACE
|
||||
//**************************************************************************
|
||||
|
||||
SLOT_INTERFACE_START( tatung_pipe_cards )
|
||||
SLOT_INTERFACE("tk02", TK02_80COL)
|
||||
SLOT_INTERFACE_END
|
135
src/devices/bus/einstein/pipe/pipe.h
Normal file
135
src/devices/bus/einstein/pipe/pipe.h
Normal file
@ -0,0 +1,135 @@
|
||||
// license: GPL-2.0+
|
||||
// copyright-holders: Dirk Best
|
||||
/***************************************************************************
|
||||
|
||||
Einstein "Tatung Pipe"
|
||||
|
||||
60-pin slot
|
||||
|
||||
+5V 1 2 D7
|
||||
+5V 3 4 D6
|
||||
GND 5 6 D5
|
||||
GND 7 8 D4
|
||||
GND 9 10 D3
|
||||
GND 11 12 D2
|
||||
GND 13 14 D1
|
||||
GND 15 16 D0
|
||||
GND 17 18 A15
|
||||
A14 19 20 A13
|
||||
A12 21 22 A11
|
||||
A10 23 24 A9
|
||||
A8 25 26 A7
|
||||
A6 27 28 A5
|
||||
A4 29 30 A3
|
||||
A2 31 32 A1
|
||||
A0 33 34 /RESET
|
||||
GND 35 36 /RFSH
|
||||
GND 37 38 /M1
|
||||
GND 39 40 /BUSACK
|
||||
GND 41 42 /WR
|
||||
GND 43 44 /RD
|
||||
GND 45 46 /IORQ
|
||||
GND 47 48 /MREQ
|
||||
GND 49 50 /HALT
|
||||
GND 51 52 /NMI
|
||||
GND 53 54 /INT
|
||||
GND 55 56 /WAIT
|
||||
GND 57 58 /BUSREQ
|
||||
GND 59 60 SYSCLK
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef MAME_BUS_EINSTEIN_PIPE_PIPE_H
|
||||
#define MAME_BUS_EINSTEIN_PIPE_PIPE_H
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_TATUNG_PIPE_ADD(_tag) \
|
||||
MCFG_DEVICE_ADD(_tag, TATUNG_PIPE, 0) \
|
||||
MCFG_DEVICE_SLOT_INTERFACE(tatung_pipe_cards, nullptr, false)
|
||||
|
||||
#define MCFG_TATUNG_PIPE_INT_HANDLER(_devcb) \
|
||||
devcb = &tatung_pipe_device::set_int_handler(*device, DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_TATUNG_PIPE_NMI_HANDLER(_devcb) \
|
||||
devcb = &tatung_pipe_device::set_nmi_handler(*device, DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_TATUNG_PIPE_RESET_HANDLER(_devcb) \
|
||||
devcb = &tatung_pipe_device::set_reset_handler(*device, DEVCB_##_devcb);
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
class device_tatung_pipe_interface;
|
||||
|
||||
class tatung_pipe_device : public device_t, public device_slot_interface
|
||||
{
|
||||
friend class device_tatung_pipe_interface;
|
||||
public:
|
||||
// construction/destruction
|
||||
tatung_pipe_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
virtual ~tatung_pipe_device();
|
||||
|
||||
void set_program_space(address_space *program);
|
||||
void set_io_space(address_space *io);
|
||||
|
||||
// callbacks
|
||||
template <class Object> static devcb_base &set_int_handler(device_t &device, Object &&cb)
|
||||
{ return downcast<tatung_pipe_device &>(device).m_int_handler.set_callback(std::forward<Object>(cb)); }
|
||||
|
||||
template <class Object> static devcb_base &set_nmi_handler(device_t &device, Object &&cb)
|
||||
{ return downcast<tatung_pipe_device &>(device).m_nmi_handler.set_callback(std::forward<Object>(cb)); }
|
||||
|
||||
template <class Object> static devcb_base &set_reset_handler(device_t &device, Object &&cb)
|
||||
{ return downcast<tatung_pipe_device &>(device).m_reset_handler.set_callback(std::forward<Object>(cb)); }
|
||||
|
||||
// called from card device
|
||||
DECLARE_WRITE_LINE_MEMBER( int_w ) { m_int_handler(state); }
|
||||
DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_nmi_handler(state); }
|
||||
DECLARE_WRITE_LINE_MEMBER( reset_w ) { m_reset_handler(state); }
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
address_space *m_program;
|
||||
address_space *m_io;
|
||||
|
||||
device_tatung_pipe_interface *m_card;
|
||||
|
||||
private:
|
||||
devcb_write_line m_int_handler;
|
||||
devcb_write_line m_nmi_handler;
|
||||
devcb_write_line m_reset_handler;
|
||||
};
|
||||
|
||||
// class representing interface-specific live pipe device
|
||||
class device_tatung_pipe_interface : public device_slot_card_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
device_tatung_pipe_interface(const machine_config &mconfig, device_t &device);
|
||||
virtual ~device_tatung_pipe_interface();
|
||||
|
||||
protected:
|
||||
address_space &program_space() { return *m_slot->m_program; }
|
||||
address_space &io_space() { return *m_slot->m_io; }
|
||||
|
||||
tatung_pipe_device *m_slot;
|
||||
};
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(TATUNG_PIPE, tatung_pipe_device)
|
||||
|
||||
// supported devices
|
||||
SLOT_INTERFACE_EXTERN(tatung_pipe_cards);
|
||||
|
||||
#endif // MAME_BUS_EINSTEIN_PIPE_PIPE_H
|
231
src/devices/bus/einstein/pipe/tk02.cpp
Normal file
231
src/devices/bus/einstein/pipe/tk02.cpp
Normal file
@ -0,0 +1,231 @@
|
||||
// license: GPL-2.0+
|
||||
// copyright-holders: Dirk Best, Phill Harvey-Smith
|
||||
/***************************************************************************
|
||||
|
||||
TK02 80 Column Monochrome Unit
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "tk02.h"
|
||||
#include "screen.h"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
DEFINE_DEVICE_TYPE(TK02_80COL, tk02_device, "tk02", "TK02 80 Column Monochrome Unit")
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_address_map
|
||||
//-------------------------------------------------
|
||||
|
||||
DEVICE_ADDRESS_MAP_START(map, 8, tk02_device)
|
||||
// AM_RANGE(0x00, 0x07) AM_SELECT(0xff00) AM_READWRITE(ram_r, ram_w) // no AM_SELECT (or AM_MASK) support here
|
||||
AM_RANGE(0x08, 0x08) AM_MIRROR(0xff00) AM_DEVWRITE("crtc", mc6845_device, address_w)
|
||||
AM_RANGE(0x09, 0x09) AM_MIRROR(0xff00) AM_DEVWRITE("crtc", mc6845_device, register_w)
|
||||
AM_RANGE(0x0c, 0x0c) AM_MIRROR(0xff00) AM_READ(status_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
//-------------------------------------------------
|
||||
// rom_region - device-specific ROM region
|
||||
//-------------------------------------------------
|
||||
|
||||
ROM_START( tk02 )
|
||||
ROM_REGION(0x2000, "gfx", 0)
|
||||
ROM_LOAD("tk02-v100.bin", 0x0000, 0x2000, CRC(ad3c4346) SHA1(cd57e630371b4d0314e3f15693753fb195c7257d))
|
||||
ROM_END
|
||||
|
||||
const tiny_rom_entry *tk02_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME( tk02 );
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// input_ports - device-specific input ports
|
||||
//-------------------------------------------------
|
||||
|
||||
static INPUT_PORTS_START( tk02_links )
|
||||
PORT_START("M001")
|
||||
PORT_DIPUNUSED_DIPLOC(0x01, 0x01, "M001:1")
|
||||
|
||||
PORT_START("M002")
|
||||
PORT_DIPNAME(0x01, 0x00, "TV Standard") PORT_DIPLOCATION("M002:1")
|
||||
PORT_DIPSETTING(0x00, "625 lines/50 Hz")
|
||||
PORT_DIPSETTING(0x01, "525 lines/60 Hz")
|
||||
|
||||
PORT_START("M003")
|
||||
PORT_DIPNAME(0x01, 0x00, "Startup Mode") PORT_DIPLOCATION("M003:1")
|
||||
PORT_DIPSETTING(0x00, "Normal")
|
||||
PORT_DIPSETTING(0x01, "Automatic 80 Column")
|
||||
|
||||
PORT_START("M004")
|
||||
PORT_DIPNAME(0x01, 0x00, "Character Set") PORT_DIPLOCATION("M004:1")
|
||||
PORT_DIPSETTING(0x00, "Modified")
|
||||
PORT_DIPSETTING(0x01, "Normal")
|
||||
INPUT_PORTS_END
|
||||
|
||||
ioport_constructor tk02_device::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME( tk02_links );
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// gfx_layout - only for the char viewer
|
||||
//-------------------------------------------------
|
||||
|
||||
static const gfx_layout tk02_charlayout =
|
||||
{
|
||||
8, 10,
|
||||
256,
|
||||
1,
|
||||
{ 0 },
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7 },
|
||||
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 0x800*8, 0x801*8 },
|
||||
8*8
|
||||
};
|
||||
|
||||
static GFXDECODE_START( tk02 )
|
||||
GFXDECODE_ENTRY("gfx", 0x0000, tk02_charlayout, 0, 1)
|
||||
GFXDECODE_ENTRY("gfx", 0x1000, tk02_charlayout, 0, 1)
|
||||
GFXDECODE_END
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_MEMBER( tk02_device::device_add_mconfig )
|
||||
MCFG_SCREEN_ADD_MONOCHROME("mono", RASTER, rgb_t::green())
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL_8MHz * 2, 1024, 0, 640, 312, 0, 250)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
|
||||
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", tk02)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "mono", XTAL_8MHz / 4)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(tk02_device, crtc_update_row)
|
||||
MCFG_MC6845_OUT_DE_CB(WRITELINE(tk02_device, de_w))
|
||||
|
||||
MCFG_TATUNG_PIPE_ADD("pipe")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// LIVE DEVICE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// tk02_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
tk02_device::tk02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, TK02_80COL, tag, owner, clock),
|
||||
device_tatung_pipe_interface(mconfig, *this),
|
||||
m_pipe(*this, "pipe"),
|
||||
m_crtc(*this, "crtc"),
|
||||
m_palette(*this, "palette"),
|
||||
m_gfx(*this, "gfx"),
|
||||
m_links(*this, "M00%u", 1),
|
||||
m_de(0)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void tk02_device::device_start()
|
||||
{
|
||||
// setup ram
|
||||
m_ram = std::make_unique<uint8_t[]>(0x800);
|
||||
memset(m_ram.get(), 0xff, 0x800);
|
||||
|
||||
// register for save states
|
||||
save_pointer(NAME(m_ram.get()), 0x800);
|
||||
save_item(NAME(m_de));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_reset - device-specific reset
|
||||
//-------------------------------------------------
|
||||
|
||||
void tk02_device::device_reset()
|
||||
{
|
||||
m_pipe->set_io_space(&io_space());
|
||||
m_pipe->set_program_space(&program_space());
|
||||
|
||||
io_space().install_device(0x40, 0x4f, *this, &tk02_device::map);
|
||||
io_space().install_readwrite_handler(0x40, 0x47, 0, 0, 0xff00, read8_delegate(FUNC(tk02_device::ram_r), this), write8_delegate(FUNC(tk02_device::ram_w), this));
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// IMPLEMENTATION
|
||||
//**************************************************************************
|
||||
|
||||
MC6845_UPDATE_ROW( tk02_device::crtc_update_row )
|
||||
{
|
||||
const pen_t *pen = m_palette->pens();
|
||||
|
||||
for (int i = 0; i < x_count; i++)
|
||||
{
|
||||
uint8_t code = m_ram[(ma + i) & 0x07ff];
|
||||
|
||||
// 12-------------- link M004
|
||||
// --11------------ ra3
|
||||
// ----109876543--- data from ram
|
||||
// -------------210 ra0..2
|
||||
uint8_t data = m_gfx->as_u8((m_links[3]->read() << 12) | ((ra & 0x08) << 8) | (code << 3) | (ra & 0x07));
|
||||
|
||||
if (i == cursor_x)
|
||||
data ^= 0xff;
|
||||
|
||||
bitmap.pix32(y, i * 8 + 0) = pen[BIT(data, 7)];
|
||||
bitmap.pix32(y, i * 8 + 1) = pen[BIT(data, 6)];
|
||||
bitmap.pix32(y, i * 8 + 2) = pen[BIT(data, 5)];
|
||||
bitmap.pix32(y, i * 8 + 3) = pen[BIT(data, 4)];
|
||||
bitmap.pix32(y, i * 8 + 4) = pen[BIT(data, 3)];
|
||||
bitmap.pix32(y, i * 8 + 5) = pen[BIT(data, 2)];
|
||||
bitmap.pix32(y, i * 8 + 6) = pen[BIT(data, 1)];
|
||||
bitmap.pix32(y, i * 8 + 7) = pen[BIT(data, 0)];
|
||||
}
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( tk02_device::de_w )
|
||||
{
|
||||
m_de = state;
|
||||
}
|
||||
|
||||
// lower 3 bits of address define a 256-byte "row"
|
||||
// upper 8 bits define the offset in the row
|
||||
READ8_MEMBER( tk02_device::ram_r )
|
||||
{
|
||||
return m_ram[((offset & 0x07) << 8) | ((offset >> 8) & 0xff)];
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( tk02_device::ram_w )
|
||||
{
|
||||
m_ram[((offset & 0x07) << 8) | ((offset >> 8) & 0xff)] = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER( tk02_device::status_r )
|
||||
{
|
||||
// 7654---- unused
|
||||
// ----3--- link M001
|
||||
// -----2-- link M002
|
||||
// ------1- link M003
|
||||
// -------0 mc6845 display enabled
|
||||
|
||||
uint8_t data = 0xf0;
|
||||
|
||||
data |= m_links[0]->read() << 3;
|
||||
data |= m_links[1]->read() << 2;
|
||||
data |= m_links[2]->read() << 1;
|
||||
data |= m_de << 0;
|
||||
|
||||
return data;
|
||||
}
|
61
src/devices/bus/einstein/pipe/tk02.h
Normal file
61
src/devices/bus/einstein/pipe/tk02.h
Normal file
@ -0,0 +1,61 @@
|
||||
// license: GPL-2.0+
|
||||
// copyright-holders: Dirk Best, Phill Harvey-Smith
|
||||
/***************************************************************************
|
||||
|
||||
TK02 80 Column Monochrome Unit
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef MAME_BUS_EINSTEIN_TK02_H
|
||||
#define MAME_BUS_EINSTEIN_TK02_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "pipe.h"
|
||||
#include "video/mc6845.h"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
// ======================> tk02_device
|
||||
|
||||
class tk02_device : public device_t, public device_tatung_pipe_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
tk02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
protected:
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
virtual ioport_constructor device_input_ports() const override;
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
private:
|
||||
DECLARE_ADDRESS_MAP(map, 8);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(de_w);
|
||||
|
||||
DECLARE_READ8_MEMBER(ram_r);
|
||||
DECLARE_WRITE8_MEMBER(ram_w);
|
||||
DECLARE_READ8_MEMBER(status_r);
|
||||
|
||||
MC6845_UPDATE_ROW(crtc_update_row);
|
||||
|
||||
required_device<tatung_pipe_device> m_pipe;
|
||||
required_device<mc6845_device> m_crtc;
|
||||
required_device<palette_device> m_palette;
|
||||
required_memory_region m_gfx;
|
||||
required_ioport_array<4> m_links;
|
||||
|
||||
std::unique_ptr<uint8_t[]> m_ram;
|
||||
int m_de;
|
||||
};
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(TK02_80COL, tk02_device)
|
||||
|
||||
#endif // MAME_BUS_EINSTEIN_TK02_H
|
106
src/devices/bus/einstein/userport/mouse.cpp
Normal file
106
src/devices/bus/einstein/userport/mouse.cpp
Normal file
@ -0,0 +1,106 @@
|
||||
// license: GPL-2.0+
|
||||
// copyright-holders: Dirk Best
|
||||
/***************************************************************************
|
||||
|
||||
Einstein Mouse
|
||||
|
||||
TODO: Verify implementation (mouse directions are digital only?)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "mouse.h"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
DEFINE_DEVICE_TYPE(EINSTEIN_MOUSE, einstein_mouse_device, "einstein_mouse", "Einstein Mouse")
|
||||
|
||||
//-------------------------------------------------
|
||||
// input_ports - device-specific input ports
|
||||
//-------------------------------------------------
|
||||
|
||||
static INPUT_PORTS_START( mouse )
|
||||
PORT_START("mouse_b")
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1) PORT_NAME("Mouse Left Button")
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(1) PORT_NAME("Mouse Right Button")
|
||||
|
||||
PORT_START("mouse_x")
|
||||
PORT_BIT(0xff, 0x00, IPT_MOUSE_X) PORT_PLAYER(1) PORT_SENSITIVITY(100) PORT_KEYDELTA(5)
|
||||
|
||||
PORT_START("mouse_y")
|
||||
PORT_BIT(0xff, 0x00, IPT_MOUSE_Y) PORT_PLAYER(1) PORT_SENSITIVITY(100) PORT_KEYDELTA(5)
|
||||
INPUT_PORTS_END
|
||||
|
||||
ioport_constructor einstein_mouse_device::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME( mouse );
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// LIVE DEVICE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// einstein_speech_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
einstein_mouse_device::einstein_mouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, EINSTEIN_MOUSE, tag, owner, clock),
|
||||
device_einstein_userport_interface(mconfig, *this),
|
||||
m_mouse_b(*this, "mouse_b"),
|
||||
m_mouse_x(*this, "mouse_x"),
|
||||
m_mouse_y(*this, "mouse_y"),
|
||||
m_x(0), m_y(0)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void einstein_mouse_device::device_start()
|
||||
{
|
||||
// register for save states
|
||||
save_item(NAME(m_x));
|
||||
save_item(NAME(m_y));
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// IMPLEMENTATION
|
||||
//**************************************************************************
|
||||
|
||||
// 7------- not used
|
||||
// -6------ not used
|
||||
// --5----- right button
|
||||
// ---4---- left button
|
||||
// ----3--- right
|
||||
// -----2-- left
|
||||
// ------1- down
|
||||
// -------0 up
|
||||
|
||||
uint8_t einstein_mouse_device::read()
|
||||
{
|
||||
uint8_t data = 0;
|
||||
|
||||
uint8_t x = m_mouse_x->read();
|
||||
uint8_t y = m_mouse_y->read();
|
||||
|
||||
int dx = m_x - x;
|
||||
int dy = m_y - y;
|
||||
|
||||
data |= m_mouse_b->read() << 4;
|
||||
data |= (dx < 0) ? 0 : 1 << 3;
|
||||
data |= (dx > 0) ? 0 : 1 << 2;
|
||||
data |= (dy < 0) ? 0 : 1 << 1;
|
||||
data |= (dy > 0) ? 0 : 1 << 0;
|
||||
|
||||
m_x = x;
|
||||
m_y = y;
|
||||
|
||||
return data;
|
||||
}
|
47
src/devices/bus/einstein/userport/mouse.h
Normal file
47
src/devices/bus/einstein/userport/mouse.h
Normal file
@ -0,0 +1,47 @@
|
||||
// license: GPL-2.0+
|
||||
// copyright-holders: Dirk Best
|
||||
/***************************************************************************
|
||||
|
||||
Einstein Mouse
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef MAME_BUS_EINSTEIN_USERPORT_MOUSE_H
|
||||
#define MAME_BUS_EINSTEIN_USERPORT_MOUSE_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "userport.h"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
// ======================> einstein_mouse_device
|
||||
|
||||
class einstein_mouse_device : public device_t, public device_einstein_userport_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
einstein_mouse_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
protected:
|
||||
virtual ioport_constructor device_input_ports() const override;
|
||||
virtual void device_start() override;
|
||||
|
||||
virtual uint8_t read() override;
|
||||
|
||||
private:
|
||||
required_ioport m_mouse_b;
|
||||
required_ioport m_mouse_x;
|
||||
required_ioport m_mouse_y;
|
||||
|
||||
int m_x;
|
||||
int m_y;
|
||||
};
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(EINSTEIN_MOUSE, einstein_mouse_device)
|
||||
|
||||
#endif // MAME_BUS_EINSTEIN_USERPORT_MOUSE_H
|
88
src/devices/bus/einstein/userport/speech.cpp
Normal file
88
src/devices/bus/einstein/userport/speech.cpp
Normal file
@ -0,0 +1,88 @@
|
||||
// license: GPL-2.0+
|
||||
// copyright-holders: Dirk Best
|
||||
/***************************************************************************
|
||||
|
||||
Einstein Speech Synthesiser (J&K Software)
|
||||
|
||||
TODO: Verify implementation
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "speech.h"
|
||||
#include "speaker.h"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
DEFINE_DEVICE_TYPE(EINSTEIN_SPEECH, einstein_speech_device, "einstein_speech", "Einstein Speech Synthesiser")
|
||||
|
||||
//-------------------------------------------------
|
||||
// rom_region - device-specific ROM region
|
||||
//-------------------------------------------------
|
||||
|
||||
ROM_START( sp0256 )
|
||||
ROM_REGION(0x10000, "sp0256", 0)
|
||||
ROM_LOAD("sp0256a-al2.bin", 0x1000, 0x0800, CRC(b504ac15) SHA1(e60fcb5fa16ff3f3b69d36c7a6e955744d3feafc))
|
||||
ROM_END
|
||||
|
||||
const tiny_rom_entry *einstein_speech_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME( sp0256 );
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_MEMBER( einstein_speech_device::device_add_mconfig )
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
MCFG_SOUND_ADD("sp0256", SP0256, 3120000) // ???
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// LIVE DEVICE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// einstein_speech_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
einstein_speech_device::einstein_speech_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, EINSTEIN_SPEECH, tag, owner, clock),
|
||||
device_einstein_userport_interface(mconfig, *this),
|
||||
m_sp0256(*this, "sp0256")
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void einstein_speech_device::device_start()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// IMPLEMENTATION
|
||||
//**************************************************************************
|
||||
|
||||
// 7------- reset?
|
||||
// -6------ sp0256 lrq
|
||||
// --543210 sp0256 ald
|
||||
|
||||
uint8_t einstein_speech_device::read()
|
||||
{
|
||||
return m_sp0256->lrq_r() ? 0x00 : 0x40;
|
||||
}
|
||||
|
||||
void einstein_speech_device::write(uint8_t data)
|
||||
{
|
||||
if (BIT(data, 7) == 0)
|
||||
m_sp0256->ald_w(machine().dummy_space(), 0, data & 0x3f);
|
||||
}
|
45
src/devices/bus/einstein/userport/speech.h
Normal file
45
src/devices/bus/einstein/userport/speech.h
Normal file
@ -0,0 +1,45 @@
|
||||
// license: GPL-2.0+
|
||||
// copyright-holders: Dirk Best
|
||||
/***************************************************************************
|
||||
|
||||
Einstein Speech Synthesiser (J&K Software)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef MAME_BUS_EINSTEIN_USERPORT_SPEECH_H
|
||||
#define MAME_BUS_EINSTEIN_USERPORT_SPEECH_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "userport.h"
|
||||
#include "sound/sp0256.h"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
// ======================> einstein_speech_device
|
||||
|
||||
class einstein_speech_device : public device_t, public device_einstein_userport_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
einstein_speech_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
protected:
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
virtual void device_start() override;
|
||||
|
||||
virtual uint8_t read() override;
|
||||
virtual void write(uint8_t data) override;
|
||||
|
||||
private:
|
||||
required_device<sp0256_device> m_sp0256;
|
||||
};
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(EINSTEIN_SPEECH, einstein_speech_device)
|
||||
|
||||
#endif // MAME_BUS_EINSTEIN_USERPORT_SPEECH_H
|
124
src/devices/bus/einstein/userport/userport.cpp
Normal file
124
src/devices/bus/einstein/userport/userport.cpp
Normal file
@ -0,0 +1,124 @@
|
||||
// license: GPL-2.0+
|
||||
// copyright-holders: Dirk Best
|
||||
/***************************************************************************
|
||||
|
||||
Einstein User Port
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "userport.h"
|
||||
|
||||
// supported devices
|
||||
#include "mouse.h"
|
||||
#include "speech.h"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
DEFINE_DEVICE_TYPE(EINSTEIN_USERPORT, einstein_userport_device, "einstein_userport", "Einstein User Port")
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// SLOT DEVICE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// einstein_userport_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
einstein_userport_device::einstein_userport_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, EINSTEIN_USERPORT, tag, owner, clock),
|
||||
device_slot_interface(mconfig, *this),
|
||||
m_card(nullptr),
|
||||
m_bstb_handler(*this)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// einstein_userport_device - destructor
|
||||
//-------------------------------------------------
|
||||
|
||||
einstein_userport_device::~einstein_userport_device()
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void einstein_userport_device::device_start()
|
||||
{
|
||||
// resolve callbacks
|
||||
m_bstb_handler.resolve_safe();
|
||||
|
||||
m_card = dynamic_cast<device_einstein_userport_interface *>(get_card_device());
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_reset - device-specific reset
|
||||
//-------------------------------------------------
|
||||
|
||||
void einstein_userport_device::device_reset()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// I/O PORTS
|
||||
//**************************************************************************
|
||||
|
||||
READ8_MEMBER( einstein_userport_device::read )
|
||||
{
|
||||
if (m_card)
|
||||
return m_card->read();
|
||||
else
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( einstein_userport_device::write )
|
||||
{
|
||||
if (m_card)
|
||||
m_card->write(data);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( einstein_userport_device::brdy_w )
|
||||
{
|
||||
if (m_card)
|
||||
m_card->brdy_w(state);
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// CARTRIDGE INTERFACE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_einstein_userport_interface - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
device_einstein_userport_interface::device_einstein_userport_interface(const machine_config &mconfig, device_t &device) :
|
||||
device_slot_card_interface(mconfig, device)
|
||||
{
|
||||
m_slot = dynamic_cast<einstein_userport_device *>(device.owner());
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// ~device_einstein_userport_interface - destructor
|
||||
//-------------------------------------------------
|
||||
|
||||
device_einstein_userport_interface::~device_einstein_userport_interface()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// SLOT INTERFACE
|
||||
//**************************************************************************
|
||||
|
||||
SLOT_INTERFACE_START( einstein_userport_cards )
|
||||
SLOT_INTERFACE("mouse", EINSTEIN_MOUSE)
|
||||
SLOT_INTERFACE("speech", EINSTEIN_SPEECH)
|
||||
SLOT_INTERFACE_END
|
96
src/devices/bus/einstein/userport/userport.h
Normal file
96
src/devices/bus/einstein/userport/userport.h
Normal file
@ -0,0 +1,96 @@
|
||||
// license: GPL-2.0+
|
||||
// copyright-holders: Dirk Best
|
||||
/***************************************************************************
|
||||
|
||||
Einstein User Port
|
||||
|
||||
16-pin slot
|
||||
|
||||
+5V 1 2 D0
|
||||
GND 3 4 D1
|
||||
BRDY 5 6 D2
|
||||
GND 7 8 D3
|
||||
GND 9 10 D4
|
||||
/BSTB 11 12 D5
|
||||
GND 13 14 D6
|
||||
+5V 15 16 D7
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef MAME_BUS_EINSTEIN_USERPORT_USERPORT_H
|
||||
#define MAME_BUS_EINSTEIN_USERPORT_USERPORT_H
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_EINSTEIN_USERPORT_ADD(_tag) \
|
||||
MCFG_DEVICE_ADD(_tag, EINSTEIN_USERPORT, 0) \
|
||||
MCFG_DEVICE_SLOT_INTERFACE(einstein_userport_cards, nullptr, false)
|
||||
|
||||
#define MCFG_EINSTEIN_USERPORT_BSTB_HANDLER(_devcb) \
|
||||
devcb = &einstein_userport_device::set_bstb_handler(*device, DEVCB_##_devcb);
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
class device_einstein_userport_interface;
|
||||
|
||||
class einstein_userport_device : public device_t, public device_slot_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
einstein_userport_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
virtual ~einstein_userport_device();
|
||||
|
||||
// callbacks
|
||||
template <class Object> static devcb_base &set_bstb_handler(device_t &device, Object &&cb)
|
||||
{ return downcast<einstein_userport_device &>(device).m_bstb_handler.set_callback(std::forward<Object>(cb)); }
|
||||
|
||||
// called from card device
|
||||
DECLARE_WRITE_LINE_MEMBER( bstb_w ) { m_bstb_handler(state); }
|
||||
|
||||
DECLARE_READ8_MEMBER( read );
|
||||
DECLARE_WRITE8_MEMBER (write );
|
||||
DECLARE_WRITE_LINE_MEMBER( brdy_w );
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
device_einstein_userport_interface *m_card;
|
||||
|
||||
private:
|
||||
devcb_write_line m_bstb_handler;
|
||||
};
|
||||
|
||||
// class representing interface-specific live userport device
|
||||
class device_einstein_userport_interface : public device_slot_card_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
virtual ~device_einstein_userport_interface();
|
||||
|
||||
virtual uint8_t read() { return 0xff; }
|
||||
virtual void write(uint8_t data) { }
|
||||
virtual void brdy_w(int state) { }
|
||||
|
||||
protected:
|
||||
device_einstein_userport_interface(const machine_config &mconfig, device_t &device);
|
||||
|
||||
einstein_userport_device *m_slot;
|
||||
};
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(EINSTEIN_USERPORT, einstein_userport_device)
|
||||
|
||||
// supported devices
|
||||
SLOT_INTERFACE_EXTERN(einstein_userport_cards);
|
||||
|
||||
#endif // MAME_BUS_EINSTEIN_USERPORT_USERPORT_H
|
@ -40,10 +40,6 @@
|
||||
#define RS232_BAUD_57600 (0x0c)
|
||||
#define RS232_BAUD_115200 (0x0d)
|
||||
|
||||
// Some systems may not include a dedicated XTAL capable of producing standard baud rates for the UART.
|
||||
// These slightly deviant rates, which might lie within tolerance limits of actual hardware, have been found in use.
|
||||
#define RS232_BAUD_9615 (0x0e)
|
||||
|
||||
#define MCFG_RS232_BAUD(_tag, _default_baud, _description, _class, _write_line) \
|
||||
PORT_START(_tag) \
|
||||
PORT_CONFNAME(0xff, _default_baud, _description) PORT_WRITE_LINE_DEVICE_MEMBER(DEVICE_SELF, _class, _write_line) \
|
||||
@ -55,7 +51,6 @@
|
||||
PORT_CONFSETTING( RS232_BAUD_2400, "2400") \
|
||||
PORT_CONFSETTING( RS232_BAUD_4800, "4800") \
|
||||
PORT_CONFSETTING( RS232_BAUD_9600, "9600") \
|
||||
PORT_CONFSETTING( RS232_BAUD_9615, "9615") \
|
||||
PORT_CONFSETTING( RS232_BAUD_14400, "14400") \
|
||||
PORT_CONFSETTING( RS232_BAUD_19200, "19200") \
|
||||
PORT_CONFSETTING( RS232_BAUD_28800, "28800") \
|
||||
@ -204,8 +199,7 @@ protected:
|
||||
28800,
|
||||
38400,
|
||||
57600,
|
||||
115200,
|
||||
9615
|
||||
115200
|
||||
};
|
||||
|
||||
return values[baud];
|
||||
|
@ -2245,13 +2245,24 @@ enum
|
||||
|
||||
oso_device::oso_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
bus::hexbus::hexbus_chained_device(mconfig, TI99_OSO, tag, owner, clock),
|
||||
m_int(*this),
|
||||
m_data(0),
|
||||
m_status(0xff),
|
||||
m_control(0),
|
||||
m_xmit(0),
|
||||
m_xmit(0), m_lasthxvalue(0x01),
|
||||
m_clkcount(0),
|
||||
m_xmit_send(0)
|
||||
m_sbav(false), m_sbavold(true),
|
||||
m_bav(false), m_bavhold(false),
|
||||
m_shsk(false), m_shskold(true),
|
||||
m_hsk(false), m_hskhold(false),
|
||||
m_wq1(false), m_wq1old(true), m_wq2(false), m_wq2old(true),
|
||||
m_wnp(false),
|
||||
m_wbusy(false), m_wbusyold(false),
|
||||
m_sendbyte(false),
|
||||
m_wrst(false), m_counting(false),
|
||||
m_rq2(false), m_rq2old(true)
|
||||
{
|
||||
(void)m_shskold;
|
||||
m_hexbus_inbound = nullptr;
|
||||
m_hexbus_outbound = nullptr;
|
||||
}
|
||||
@ -2270,7 +2281,11 @@ READ8_MEMBER( oso_device::read )
|
||||
case 1:
|
||||
// read 5FFA: read status register
|
||||
value = m_status;
|
||||
if (TRACE_OSO) logerror("Read status %02x\n", value);
|
||||
clear_int_status();
|
||||
if (TRACE_OSO) logerror("Read status %02x (HSKWT=%d,HSKRD=%d,BAVIAS=%d,BAVAIS=%d,SBAV=%d,WBUSY=%d,RBUSY=%d,SHSK=%d)\n", value,
|
||||
(value&HSKWT)? 1:0, (value&HSKRD)? 1:0, (value&BAVIAS)? 1:0,
|
||||
(value&BAVAIS)? 1:0, (value&SBAV)? 1:0, (value&WBUSY)? 1:0,
|
||||
(value&RBUSY)? 1:0,(value&SHSK)? 1:0);
|
||||
break;
|
||||
case 2:
|
||||
// read 5FFC: read control register
|
||||
@ -2294,14 +2309,30 @@ WRITE8_MEMBER( oso_device::write )
|
||||
case 0:
|
||||
// write 5FF8: write transmit register
|
||||
if (TRACE_OSO) logerror("Write transmit register %02x\n", data);
|
||||
|
||||
// trigger some actions in the write subsystem
|
||||
m_sendbyte = true;
|
||||
if (!m_wq1)
|
||||
{
|
||||
m_wbusy = true;
|
||||
m_wbusyold = true;
|
||||
set_status(WBUSY, m_wbusy);
|
||||
}
|
||||
|
||||
m_xmit = data;
|
||||
m_xmit_send = 2;
|
||||
m_status |= HSKWT;
|
||||
break;
|
||||
case 1:
|
||||
// write 5FFA: write control register
|
||||
if (TRACE_OSO) logerror("Write control register %02x\n", data);
|
||||
if (TRACE_OSO) logerror("Write control register %02x (WIEN=%d, RIEN=%d, BAVIAEN=%d, BAVAIEN=%d, BAVC=%d, WEN=%d, REN=%d)\n",
|
||||
data, (data & WIEN)? 1:0, (data & RIEN)? 1:0, (data&BAVIAEN)? 1:0, (data&BAVAIEN)? 1:0,
|
||||
(data & BAVC)? 1:0, (data & WEN)? 1:0, (data & REN)? 1:0);
|
||||
m_control = data;
|
||||
if (!control_bit(WEN))
|
||||
{
|
||||
// Reset some flipflops in the write timing section
|
||||
m_wq1 = m_wq2 = m_wrst = false;
|
||||
}
|
||||
m_bav = control_bit(BAVC);
|
||||
break;
|
||||
default:
|
||||
// write 5FFC, 5FFE: undefined
|
||||
@ -2310,6 +2341,12 @@ WRITE8_MEMBER( oso_device::write )
|
||||
}
|
||||
}
|
||||
|
||||
void oso_device::clear_int_status()
|
||||
{
|
||||
m_status &= ~(HSKWT | HSKRD | BAVIAS | BAVAIS);
|
||||
m_int(CLEAR_LINE);
|
||||
}
|
||||
|
||||
void oso_device::hexbus_value_changed(uint8_t data)
|
||||
{
|
||||
if (TRACE_OSO) logerror("Hexbus value changed to %02x\n", data);
|
||||
@ -2320,28 +2357,185 @@ void oso_device::hexbus_value_changed(uint8_t data)
|
||||
*/
|
||||
WRITE_LINE_MEMBER( oso_device::clock_in )
|
||||
{
|
||||
if (state==ASSERT_LINE) m_clkcount++;
|
||||
if (m_clkcount > 30 && ((m_control & WEN)!=0) && (m_xmit_send > 0))
|
||||
if (state==ASSERT_LINE)
|
||||
{
|
||||
if (TRACE_OSO) logerror("Write nibble %d\n", 3-m_xmit_send);
|
||||
hexbus_write(((m_xmit & 0x0c)<<4) | (m_xmit & 0x03));
|
||||
m_xmit >>= 4;
|
||||
m_clkcount = 0;
|
||||
m_xmit_send--;
|
||||
// Control lines SHSK, SBAV
|
||||
// When BAV/HSK is 0/1 for two rising edges of Phi3*, SBAV/SHSK goes to
|
||||
// 0/1 at the following falling edge of Phi3*.
|
||||
// Page 5
|
||||
m_sbav = m_bavhold && m_bav;
|
||||
m_bavhold = m_bav;
|
||||
m_shsk = m_hskhold && m_hsk;
|
||||
m_hskhold = m_hsk;
|
||||
set_status(SHSK, m_shsk);
|
||||
set_status(SBAV, m_sbav);
|
||||
|
||||
// Implement the write timing logic
|
||||
// This subcircuit in the OSO chip autonomously runs the Hexbus
|
||||
// protocol. After loading a byte into the transmit register, it sends
|
||||
// both nibbles (little-endian) one after another over the Hexbus,
|
||||
// pausing for 30 cycles, and checking the HSK line.
|
||||
|
||||
// The schematics show some fascinating signal line spaghetti with
|
||||
// embedded JK* flipflops which may give you some major headaches.
|
||||
// Compared to that, the lines below are a true relief.
|
||||
|
||||
if (control_bit(WEN)) // Nothing happens without WEN
|
||||
{
|
||||
if (TRACE_OSO) if (!m_wrst && m_sendbyte) logerror("Starting write process\n");
|
||||
// Page 3: Write timing
|
||||
// Note: First pass counts to 30, second to 31
|
||||
bool cnt30 = ((m_clkcount & 0x1e) == 30);
|
||||
bool cont = (m_wrst && !m_wq2 && !m_wq1) || (cnt30 && m_wq2 && !m_wq1)
|
||||
|| (cnt30 && !m_wq2 && m_wq1) || (m_shsk && m_wq2 && m_wq1);
|
||||
|
||||
bool jwq1 = cont && m_wq2;
|
||||
bool kwq1 = !((cont && !m_wq2) || (!cont && m_wq2 && m_wnp));
|
||||
|
||||
bool jwq2 = cont;
|
||||
bool kwq2 = !(m_wq1 && !cont);
|
||||
|
||||
if (m_wq1 == m_wq2) m_clkcount = 0;
|
||||
|
||||
// Reset "byte loaded" flipflop during the second phase
|
||||
if (m_wq1 == true)
|
||||
m_sendbyte = false;
|
||||
|
||||
// WBUSY is asserted on byte load, during phase 1, and phase 2.
|
||||
m_wbusy = m_sendbyte || m_wq1 || m_wq2;
|
||||
|
||||
// Set status bits and raise interrupt (p. 4)
|
||||
set_status(WBUSY, m_wbusy);
|
||||
if (m_wbusy != m_wbusyold)
|
||||
{
|
||||
// Raising edge of wbusy*
|
||||
if (!m_wbusy) set_status(HSKWT, !m_wbusy);
|
||||
m_wbusyold = m_wbusy;
|
||||
}
|
||||
|
||||
if (m_rq2 != m_rq2old)
|
||||
{
|
||||
// Raising edge of RQ2*
|
||||
if (!m_rq2)
|
||||
{
|
||||
set_status(HSKRD, m_rq2);
|
||||
}
|
||||
m_wbusyold = m_wbusy;
|
||||
}
|
||||
|
||||
if (m_sbav != m_sbavold)
|
||||
{
|
||||
// Raising edge of SBAV -> BAVIA
|
||||
// Falling edge of SBAV -> BAVAI
|
||||
if (m_sbav)
|
||||
set_status(BAVIAS, m_sbav);
|
||||
else
|
||||
set_status(BAVAIS, !m_sbav);
|
||||
}
|
||||
|
||||
// Operate flipflops
|
||||
// Write phases
|
||||
// 74LS109: J-K* flipflop (inverted K)
|
||||
if (jwq1)
|
||||
{
|
||||
if (!kwq1) m_wq1 = !m_wq1;
|
||||
else m_wq1 = true;
|
||||
}
|
||||
else
|
||||
if (!kwq1) m_wq1 = false;
|
||||
|
||||
if (jwq2)
|
||||
{
|
||||
if (!kwq2) m_wq2 = !m_wq2;
|
||||
else m_wq2 = true;
|
||||
}
|
||||
else
|
||||
if (!kwq2) m_wq2 = false;
|
||||
|
||||
// Set WNP on rising edge of WQ2*
|
||||
if (m_wq2 != m_wq2old)
|
||||
{
|
||||
if (!m_wq2)
|
||||
m_wnp = true;
|
||||
|
||||
m_wq2old = m_wq2;
|
||||
}
|
||||
m_wq1old = m_wq1;
|
||||
|
||||
// Set HSK
|
||||
m_hsk = !m_wq1 && m_wq2;
|
||||
|
||||
// Reset WNP if phases are done
|
||||
if (!m_wq2 && !m_wq1)
|
||||
{
|
||||
m_wnp = false;
|
||||
}
|
||||
update_hexbus();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_wq1 = m_wq2 = m_wrst = m_counting = false;
|
||||
m_clkcount = 0;
|
||||
}
|
||||
}
|
||||
// Actions that occur for Phi3=0
|
||||
else
|
||||
{
|
||||
m_wrst = m_sendbyte;
|
||||
// Only count when one phase is active
|
||||
m_counting = !(m_wq1==m_wq2);
|
||||
|
||||
if (m_counting)
|
||||
m_clkcount++;
|
||||
else
|
||||
m_clkcount = 0; // Reset when not counting
|
||||
}
|
||||
|
||||
// Show some lines in log
|
||||
if (TRACE_OSO) {
|
||||
if (m_sbav != m_sbavold) {
|
||||
logerror("SBAV = %d\n", m_sbav? 1 : 0);
|
||||
m_sbavold = m_sbav;
|
||||
}
|
||||
}
|
||||
|
||||
// Raise interrupt
|
||||
if ((control_bit(WIEN) && status_bit(HSKWT))
|
||||
|| (control_bit(RIEN) && status_bit(HSKRD))
|
||||
|| (control_bit(BAVAIEN) && status_bit(BAVAIS))
|
||||
|| (control_bit(BAVIAEN) && status_bit(BAVIAS)))
|
||||
{
|
||||
m_int(ASSERT_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
void oso_device::update_hexbus()
|
||||
{
|
||||
uint8_t value = 0x00;
|
||||
uint8_t nibble = m_xmit;
|
||||
if (m_wnp) nibble >>= 4;
|
||||
|
||||
value = ((m_xmit & 0x0c)<<4) | (m_xmit & 0x03);
|
||||
if (!m_hsk) value |= 0x10;
|
||||
if (!m_bav) value |= 0x04;
|
||||
if (value != m_lasthxvalue)
|
||||
{
|
||||
if (TRACE_OSO) logerror("Set hexbus = %02x (BAV*=%d, HSK*=%d, data=%01x)\n", value, (value & 0x04)? 1:0, (value & 0x10)? 1:0, ((value>>4)&0x0c) | (value&0x03));
|
||||
hexbus_write(value);
|
||||
}
|
||||
m_lasthxvalue = value;
|
||||
}
|
||||
|
||||
void oso_device::device_start()
|
||||
{
|
||||
logerror("Starting\n");
|
||||
m_status = m_xmit = m_control = m_data = 0;
|
||||
m_int.resolve_safe();
|
||||
|
||||
m_hexbus_outbound = dynamic_cast<bus::hexbus::hexbus_device*>(machine().device(TI_HEXBUS_TAG));
|
||||
|
||||
// Establish callback for inbound propagations
|
||||
m_hexbus_outbound->set_chain_element(this);
|
||||
// Establish callback
|
||||
m_hexbus_outbound->set_chain_element(this);
|
||||
|
||||
save_item(NAME(m_data));
|
||||
save_item(NAME(m_status));
|
||||
|
@ -436,15 +436,51 @@ public:
|
||||
|
||||
WRITE_LINE_MEMBER( clock_in );
|
||||
|
||||
// INT line
|
||||
devcb_write_line m_int;
|
||||
|
||||
private:
|
||||
bool control_bit(int bit) { return (m_control & bit)!=0; }
|
||||
bool status_bit(int bit) { return (m_status & bit)!=0; }
|
||||
void clear_int_status();
|
||||
void set_status(int bit, bool set) { m_status = (set)? (m_status | bit) : (m_status & ~bit); }
|
||||
void update_hexbus();
|
||||
|
||||
uint8_t m_data;
|
||||
uint8_t m_status;
|
||||
uint8_t m_control;
|
||||
uint8_t m_xmit;
|
||||
|
||||
uint8_t m_lasthxvalue;
|
||||
|
||||
int m_clkcount;
|
||||
|
||||
int m_xmit_send;
|
||||
bool m_sbav;
|
||||
bool m_sbavold;
|
||||
bool m_bav;
|
||||
bool m_bavhold;
|
||||
|
||||
bool m_shsk;
|
||||
bool m_shskold;
|
||||
bool m_hsk;
|
||||
bool m_hskhold;
|
||||
|
||||
// Page 3 in OSO schematics
|
||||
bool m_wq1;
|
||||
bool m_wq1old;
|
||||
bool m_wq2;
|
||||
bool m_wq2old;
|
||||
bool m_wnp;
|
||||
bool m_wbusy;
|
||||
bool m_wbusyold;
|
||||
bool m_sendbyte;
|
||||
|
||||
bool m_wrst;
|
||||
|
||||
bool m_counting;
|
||||
|
||||
bool m_rq2;
|
||||
bool m_rq2old;
|
||||
};
|
||||
|
||||
class mainboard8_device : public device_t
|
||||
@ -612,6 +648,9 @@ private:
|
||||
#define MCFG_MAINBOARD8_HOLD_CALLBACK(_write) \
|
||||
devcb = &bus::ti99::internal::mainboard8_device::set_hold_wr_callback(*device, DEVCB_##_write);
|
||||
|
||||
#define MCFG_OSO_INT_CALLBACK(_int) \
|
||||
devcb = &bus::ti99::internal::oso_device::set_int_callback(*device, DEVCB##_int);
|
||||
|
||||
DECLARE_DEVICE_TYPE_NS(TI99_MAINBOARD8, bus::ti99::internal, mainboard8_device)
|
||||
DECLARE_DEVICE_TYPE_NS(TI99_VAQUERRO, bus::ti99::internal, vaquerro_device)
|
||||
DECLARE_DEVICE_TYPE_NS(TI99_MOFETTA, bus::ti99::internal, mofetta_device)
|
||||
|
@ -120,11 +120,6 @@ DEFINE_DEVICE_TYPE(VME_MZR8300, vme_mzr8300_card_device, "mzr8300", "Mizar 8300
|
||||
* once a proper serial board hardware (ie MZ 8300) is found and emulated. */
|
||||
|
||||
|
||||
static DEVICE_INPUT_DEFAULTS_START( terminal )
|
||||
DEVICE_INPUT_DEFAULTS( "RS232_RXBAUD", 0xff, RS232_BAUD_9615 )
|
||||
DEVICE_INPUT_DEFAULTS( "RS232_TXBAUD", 0xff, RS232_BAUD_9615 )
|
||||
DEVICE_INPUT_DEFAULTS_END
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
@ -137,10 +132,9 @@ MACHINE_CONFIG_MEMBER( vme_mzr8300_card_device::device_add_mconfig )
|
||||
|
||||
MCFG_DEVICE_ADD("sio1", UPD7201_NEW, XTAL_4MHz)
|
||||
|
||||
MCFG_RS232_PORT_ADD ("rs232p1", default_rs232_devices, "terminal")
|
||||
MCFG_RS232_RXD_HANDLER (DEVWRITELINE ("sio0", upd7201_new_device, rxb_w))
|
||||
MCFG_RS232_CTS_HANDLER (DEVWRITELINE ("sio0", upd7201_new_device, ctsb_w))
|
||||
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
|
||||
MCFG_RS232_PORT_ADD("rs232p1", default_rs232_devices, "terminal")
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio0", upd7201_new_device, rxb_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("sio0", upd7201_new_device, ctsb_w))
|
||||
|
||||
MCFG_DEVICE_ADD("stc", AM9513, XTAL_4MHz)
|
||||
MCFG_AM9513_OUT1_CALLBACK(DEVWRITELINE("sio0", upd7201_new_device, rxca_w))
|
||||
|
@ -948,7 +948,7 @@ inline void h6280_device::bpl()
|
||||
***************************************************************/
|
||||
inline void h6280_device::brk()
|
||||
{
|
||||
logerror("BRK %04xn",PCW);
|
||||
logerror("BRK %04x\n",PCW);
|
||||
clear_t();
|
||||
PCW++;
|
||||
push(PCH);
|
||||
|
@ -1672,8 +1672,24 @@ static inline void m68ki_exception_address_error(m68000_base_device *m68k)
|
||||
}
|
||||
m68k->run_mode = RUN_MODE_BERR_AERR_RESET;
|
||||
|
||||
/* Note: This is implemented for 68000 only! */
|
||||
m68ki_stack_frame_buserr(m68k, sr);
|
||||
if (!CPU_TYPE_IS_010_PLUS(m68k->cpu_type))
|
||||
{
|
||||
/* Note: This is implemented for 68000 only! */
|
||||
m68ki_stack_frame_buserr(m68k, sr);
|
||||
}
|
||||
else if (CPU_TYPE_IS_010(m68k->cpu_type))
|
||||
{
|
||||
/* only the 68010 throws this unique type-1000 frame */
|
||||
m68ki_stack_frame_1000(m68k, REG_PPC(m68k), sr, EXCEPTION_BUS_ERROR);
|
||||
}
|
||||
else if (m68k->mmu_tmp_buserror_address == REG_PPC(m68k))
|
||||
{
|
||||
m68ki_stack_frame_1010(m68k, sr, EXCEPTION_BUS_ERROR, REG_PPC(m68k), m68k->mmu_tmp_buserror_address);
|
||||
}
|
||||
else
|
||||
{
|
||||
m68ki_stack_frame_1011(m68k, sr, EXCEPTION_BUS_ERROR, REG_PPC(m68k), m68k->mmu_tmp_buserror_address);
|
||||
}
|
||||
|
||||
m68ki_jump_vector(m68k, EXCEPTION_ADDRESS_ERROR);
|
||||
|
||||
|
@ -7,7 +7,13 @@
|
||||
reimplement as a push, not a pull
|
||||
- T0 output clock
|
||||
- get rid of i/o addressmap, use devcb for mcu pins
|
||||
- add CMOS devices, 1 new opcode(01 HALT)
|
||||
- add CMOS devices, 1 new opcode (01 HALT)
|
||||
- make timer update cleaner:
|
||||
timer is updated on S4 while I/O happens on S5
|
||||
due to very bad coding, Kaypro 10 keyboard depends on being able to see T=0 before interrupt is taken
|
||||
right now this is implemented with a hack in the mov_a_t handler
|
||||
in theory it should also be possible to see the timer flag before the interrupt is taken
|
||||
mov_t_a should also update the T register after it's incremented
|
||||
*/
|
||||
|
||||
/***************************************************************************
|
||||
@ -121,24 +127,6 @@
|
||||
MACROS
|
||||
***************************************************************************/
|
||||
|
||||
/* ROM is mapped to AS_PROGRAM */
|
||||
#define program_r(a) m_program->read_byte(a)
|
||||
|
||||
/* RAM is mapped to AS_DATA */
|
||||
#define ram_r(a) m_data->read_byte(a)
|
||||
#define ram_w(a,V) m_data->write_byte(a, V)
|
||||
|
||||
/* ports are mapped to AS_IO and callbacks */
|
||||
#define ext_r(a) m_io->read_byte(a)
|
||||
#define ext_w(a,V) m_io->write_byte(a, V)
|
||||
#define port_r(a) m_port_in_cb[a-1]()
|
||||
#define port_w(a,V) m_port_out_cb[a-1](V)
|
||||
#define test_r(a) m_test_in_cb[a]()
|
||||
#define test_w(a,V) m_test_out_cb[a](V)
|
||||
#define bus_r() m_bus_in_cb()
|
||||
#define bus_w(V) m_bus_out_cb(V)
|
||||
#define prog_w(V) m_prog_out_cb(V)
|
||||
|
||||
/* r0-r7 map to memory via the regptr */
|
||||
#define R0 m_regptr[0]
|
||||
#define R1 m_regptr[1]
|
||||
@ -151,24 +139,24 @@
|
||||
|
||||
|
||||
|
||||
DEFINE_DEVICE_TYPE(I8021, i8021_device, "i8021", "I8021")
|
||||
DEFINE_DEVICE_TYPE(I8022, i8022_device, "i8022", "I8022")
|
||||
DEFINE_DEVICE_TYPE(I8035, i8035_device, "i8035", "I8035")
|
||||
DEFINE_DEVICE_TYPE(I8048, i8048_device, "i8048", "I8048")
|
||||
DEFINE_DEVICE_TYPE(I8648, i8648_device, "i8648", "I8648")
|
||||
DEFINE_DEVICE_TYPE(I8748, i8748_device, "i8748", "I8748")
|
||||
DEFINE_DEVICE_TYPE(I8039, i8039_device, "i8039", "I8039")
|
||||
DEFINE_DEVICE_TYPE(I8049, i8049_device, "i8049", "I8049")
|
||||
DEFINE_DEVICE_TYPE(I8749, i8749_device, "i8749", "I8749")
|
||||
DEFINE_DEVICE_TYPE(I8040, i8040_device, "i8040", "I8040")
|
||||
DEFINE_DEVICE_TYPE(I8050, i8050_device, "i8050", "I8050")
|
||||
DEFINE_DEVICE_TYPE(I8041, i8041_device, "i8041", "I8041")
|
||||
DEFINE_DEVICE_TYPE(I8741, i8741_device, "i8741", "I8741")
|
||||
DEFINE_DEVICE_TYPE(I8042, i8042_device, "i8042", "I8042")
|
||||
DEFINE_DEVICE_TYPE(I8242, i8242_device, "i8242", "I8242")
|
||||
DEFINE_DEVICE_TYPE(I8742, i8742_device, "i8742", "I8742")
|
||||
DEFINE_DEVICE_TYPE(I8021, i8021_device, "i8021", "I8021")
|
||||
DEFINE_DEVICE_TYPE(I8022, i8022_device, "i8022", "I8022")
|
||||
DEFINE_DEVICE_TYPE(I8035, i8035_device, "i8035", "I8035")
|
||||
DEFINE_DEVICE_TYPE(I8048, i8048_device, "i8048", "I8048")
|
||||
DEFINE_DEVICE_TYPE(I8648, i8648_device, "i8648", "I8648")
|
||||
DEFINE_DEVICE_TYPE(I8748, i8748_device, "i8748", "I8748")
|
||||
DEFINE_DEVICE_TYPE(I8039, i8039_device, "i8039", "I8039")
|
||||
DEFINE_DEVICE_TYPE(I8049, i8049_device, "i8049", "I8049")
|
||||
DEFINE_DEVICE_TYPE(I8749, i8749_device, "i8749", "I8749")
|
||||
DEFINE_DEVICE_TYPE(I8040, i8040_device, "i8040", "I8040")
|
||||
DEFINE_DEVICE_TYPE(I8050, i8050_device, "i8050", "I8050")
|
||||
DEFINE_DEVICE_TYPE(I8041, i8041_device, "i8041", "I8041")
|
||||
DEFINE_DEVICE_TYPE(I8741, i8741_device, "i8741", "I8741")
|
||||
DEFINE_DEVICE_TYPE(I8042, i8042_device, "i8042", "I8042")
|
||||
DEFINE_DEVICE_TYPE(I8242, i8242_device, "i8242", "I8242")
|
||||
DEFINE_DEVICE_TYPE(I8742, i8742_device, "i8742", "I8742")
|
||||
DEFINE_DEVICE_TYPE(MB8884, mb8884_device, "mb8884", "MB8884")
|
||||
DEFINE_DEVICE_TYPE(N7751, n7751_device, "n7751", "N7751")
|
||||
DEFINE_DEVICE_TYPE(N7751, n7751_device, "n7751", "N7751")
|
||||
DEFINE_DEVICE_TYPE(M58715, m58715_device, "m58715", "M58715")
|
||||
|
||||
|
||||
@ -756,7 +744,7 @@ OPHANDLER( mov_a_r6 ) { m_a = R6; return 1; }
|
||||
OPHANDLER( mov_a_r7 ) { m_a = R7; return 1; }
|
||||
OPHANDLER( mov_a_xr0 ) { m_a = ram_r(R0); return 1; }
|
||||
OPHANDLER( mov_a_xr1 ) { m_a = ram_r(R1); return 1; }
|
||||
OPHANDLER( mov_a_t ) { m_a = m_timer; return 1; }
|
||||
OPHANDLER( mov_a_t ) { m_a = m_timer + ((m_timecount_enabled & TIMER_ENABLED) ? 1 : 0); return 1; }
|
||||
|
||||
OPHANDLER( mov_psw_a ) { m_psw = m_a; update_regptr(); return 1; }
|
||||
OPHANDLER( mov_sts_a ) { m_sts = (m_sts & 0x0f) | (m_a & 0xf0); return 1; }
|
||||
|
@ -242,6 +242,23 @@ protected:
|
||||
typedef int (mcs48_cpu_device::*mcs48_ophandler)();
|
||||
static const mcs48_ophandler s_opcode_table[256];
|
||||
|
||||
/* ROM is mapped to AS_PROGRAM */
|
||||
uint8_t program_r(offs_t a) { return m_program->read_byte(a); }
|
||||
|
||||
/* RAM is mapped to AS_DATA */
|
||||
uint8_t ram_r(offs_t a) { return m_data->read_byte(a); }
|
||||
void ram_w(offs_t a, uint8_t v) { m_data->write_byte(a, v); }
|
||||
|
||||
/* ports are mapped to AS_IO and callbacks */
|
||||
uint8_t ext_r(offs_t a) { return m_io->read_byte(a); }
|
||||
void ext_w(offs_t a, uint8_t v) { m_io->write_byte(a, v); }
|
||||
uint8_t port_r(offs_t a) { return m_port_in_cb[a - 1](); }
|
||||
void port_w(offs_t a, uint8_t v) { m_port_out_cb[a - 1](v); }
|
||||
int test_r(offs_t a) { return m_test_in_cb[a](); }
|
||||
uint8_t bus_r() { return m_bus_in_cb(); }
|
||||
void bus_w(uint8_t v) { m_bus_out_cb(v); }
|
||||
void prog_w(int v) { m_prog_out_cb(v); }
|
||||
|
||||
uint8_t opcode_fetch();
|
||||
uint8_t argument_fetch();
|
||||
void update_regptr();
|
||||
|
@ -161,12 +161,6 @@ void mips3_device::mips3drc_set_options(uint32_t options)
|
||||
-------------------------------------------------*/
|
||||
void mips3_device::clear_fastram(uint32_t select_start)
|
||||
{
|
||||
for (int i=select_start; i<MIPS3_MAX_FASTRAM; i++) {
|
||||
m_fastram[i].start = 0;
|
||||
m_fastram[i].end = 0;
|
||||
m_fastram[i].readonly = false;
|
||||
m_fastram[i].base = nullptr;
|
||||
}
|
||||
m_fastram_select=select_start;
|
||||
// Set cache to dirty so that re-mapping occurs
|
||||
m_cache_dirty = true;
|
||||
@ -189,6 +183,8 @@ void mips3_device::add_fastram(offs_t start, offs_t end, uint8_t readonly, void
|
||||
m_fastram[m_fastram_select].offset_base16 = (uint16_t*)((uint8_t*)base - start);
|
||||
m_fastram[m_fastram_select].offset_base32 = (uint32_t*)((uint8_t*)base - start);
|
||||
m_fastram_select++;
|
||||
// Set cache to dirty so that re-mapping occurs
|
||||
m_cache_dirty = true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -911,8 +907,8 @@ void mips3_device::static_generate_memory_accessor(int mode, int size, int iswri
|
||||
UML_ROLINS(block, I0, I3, 0, 0xfffff000); // rolins i0,i3,0,0xfffff000
|
||||
|
||||
if ((machine().debug_flags & DEBUG_FLAG_ENABLED) == 0)
|
||||
for (ramnum = 0; ramnum < MIPS3_MAX_FASTRAM; ramnum++)
|
||||
if (m_fastram[ramnum].base != nullptr && (!iswrite || !m_fastram[ramnum].readonly))
|
||||
for (ramnum = 0; ramnum < m_fastram_select; ramnum++)
|
||||
if (!(iswrite && m_fastram[ramnum].readonly))
|
||||
{
|
||||
void *fastbase = (uint8_t *)m_fastram[ramnum].base - m_fastram[ramnum].start;
|
||||
uint32_t skip = label++;
|
||||
@ -926,7 +922,6 @@ void mips3_device::static_generate_memory_accessor(int mode, int size, int iswri
|
||||
UML_CMP(block, I0, m_fastram[ramnum].start);// cmp i0,fastram_start
|
||||
UML_JMPc(block, COND_B, skip); // jb skip
|
||||
}
|
||||
|
||||
if (!iswrite)
|
||||
{
|
||||
if (size == 1)
|
||||
|
@ -2597,8 +2597,6 @@ static void cfunc_CHECKIRQ(void *param) { ((sh34_base_device *)param)->func_CHEC
|
||||
|
||||
void sh34_base_device::generate_update_cycles(drcuml_block *block, compiler_state *compiler, uml::parameter param, bool allow_exception)
|
||||
{
|
||||
/* TODO: this is likely wrong? - I've not seen it called when compiler->checkints is true */
|
||||
|
||||
/* check full interrupts if pending */
|
||||
if (compiler->checkints)
|
||||
{
|
||||
@ -2606,7 +2604,7 @@ void sh34_base_device::generate_update_cycles(drcuml_block *block, compiler_stat
|
||||
|
||||
/* param is pc + 2 (the opcode after the current one)
|
||||
as we're calling from opcode handlers here that will point to the current opcode instead
|
||||
but I believe the exception functoin requires it to point to the next one so update the
|
||||
but I believe the exception function requires it to point to the next one so update the
|
||||
local copy of the PC variable here for that? */
|
||||
UML_MOV(block, mem(&m_sh2_state->pc), param);
|
||||
|
||||
@ -3028,7 +3026,7 @@ bool sh34_base_device::generate_group_0_STCDBR(drcuml_block *block, compiler_sta
|
||||
}
|
||||
|
||||
void sh34_base_device::func_RTE() { RTE(); }
|
||||
static void cfunc_RTE(void *param) { ((sh34_base_device *)param)->func_RTE(); };
|
||||
static void cfunc_RTE(void *param) { ((sh34_base_device *)param)->func_RTE(); };
|
||||
|
||||
bool sh34_base_device::generate_group_0_RTE(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc, uint16_t opcode, int in_delay_slot, uint32_t ovrpc)
|
||||
{
|
||||
@ -3036,6 +3034,9 @@ bool sh34_base_device::generate_group_0_RTE(drcuml_block *block, compiler_state
|
||||
save_fast_iregs(block);
|
||||
UML_CALLC(block, cfunc_RTE, this);
|
||||
load_fast_iregs(block);
|
||||
|
||||
compiler->checkints = true;
|
||||
|
||||
UML_MOV(block, mem(&m_sh2_state->pc), mem(&m_sh2_state->m_delay));
|
||||
generate_update_cycles(block, compiler, mem(&m_sh2_state->ea), true); // <subtract cycles>
|
||||
UML_HASHJMP(block, 0, mem(&m_sh2_state->pc), *m_nocode); // and jump to the "resume PC"
|
||||
@ -3065,6 +3066,9 @@ bool sh34_base_device::generate_group_4_LDCSR(drcuml_block *block, compiler_stat
|
||||
UML_MOV(block, mem(&m_sh2_state->arg0), desc->opptr.w[0]);
|
||||
UML_CALLC(block, cfunc_LDCSR, this);
|
||||
load_fast_iregs(block);
|
||||
|
||||
compiler->checkints = true;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -3077,6 +3081,11 @@ bool sh34_base_device::generate_group_4_LDCMSR(drcuml_block *block, compiler_sta
|
||||
UML_MOV(block, mem(&m_sh2_state->arg0), desc->opptr.w[0]);
|
||||
UML_CALLC(block, cfunc_LDCMSR, this);
|
||||
load_fast_iregs(block);
|
||||
|
||||
compiler->checkints = true;
|
||||
if (!in_delay_slot)
|
||||
generate_update_cycles(block, compiler, desc->pc + 2, true);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -51,10 +51,6 @@ DEFINE_DEVICE_TYPE(TMS70C46, tms70c46_device, "tms70c46", "TMC70C46")
|
||||
|
||||
|
||||
// internal memory maps
|
||||
static ADDRESS_MAP_START(tms7000_io, AS_IO, 8, tms7000_device)
|
||||
AM_RANGE(TMS7000_PORTB, TMS7000_PORTB) AM_READNOP
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START(tms7000_mem, AS_PROGRAM, 8, tms7000_device )
|
||||
AM_RANGE(0x0000, 0x007f) AM_RAM // 128 bytes internal RAM
|
||||
AM_RANGE(0x0080, 0x00ff) AM_READWRITE(tms7000_unmapped_rf_r, tms7000_unmapped_rf_w)
|
||||
@ -114,7 +110,8 @@ tms7000_device::tms7000_device(const machine_config &mconfig, const char *tag, d
|
||||
tms7000_device::tms7000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal, uint32_t info_flags)
|
||||
: cpu_device(mconfig, type, tag, owner, clock),
|
||||
m_program_config("program", ENDIANNESS_BIG, 8, 16, 0, internal),
|
||||
m_io_config("io", ENDIANNESS_BIG, 8, 8, 0, ADDRESS_MAP_NAME(tms7000_io)),
|
||||
m_port_in_cb{{*this}, {*this}, {*this}, {*this}, {*this}},
|
||||
m_port_out_cb{{*this}, {*this}, {*this}, {*this}, {*this}},
|
||||
m_info_flags(info_flags)
|
||||
{
|
||||
}
|
||||
@ -177,8 +174,7 @@ tms70c46_device::tms70c46_device(const machine_config &mconfig, const char *tag,
|
||||
device_memory_interface::space_config_vector tms7000_device::memory_space_config() const
|
||||
{
|
||||
return space_config_vector {
|
||||
std::make_pair(AS_PROGRAM, &m_program_config),
|
||||
std::make_pair(AS_IO, &m_io_config)
|
||||
std::make_pair(AS_PROGRAM, &m_program_config)
|
||||
};
|
||||
}
|
||||
|
||||
@ -192,13 +188,17 @@ void tms7000_device::device_start()
|
||||
// init/zerofill
|
||||
m_program = &space(AS_PROGRAM);
|
||||
m_direct = &m_program->direct();
|
||||
m_io = &space(AS_IO);
|
||||
|
||||
m_icountptr = &m_icount;
|
||||
|
||||
m_irq_state[TMS7000_INT1_LINE] = false;
|
||||
m_irq_state[TMS7000_INT3_LINE] = false;
|
||||
|
||||
for (auto &cb : m_port_in_cb)
|
||||
cb.resolve_safe(0xff);
|
||||
for (auto &cb : m_port_out_cb)
|
||||
cb.resolve_safe();
|
||||
|
||||
m_idle_state = false;
|
||||
m_idle_halt = false;
|
||||
m_pc = 0;
|
||||
@ -512,7 +512,7 @@ READ8_MEMBER(tms7000_device::tms7000_pf_r)
|
||||
// note: port B is write-only, reading it returns the output value as if ddr is 0xff
|
||||
int port = offset / 2 - 2;
|
||||
if (!machine().side_effect_disabled())
|
||||
return (m_io->read_byte(port) & ~m_port_ddr[port]) | (m_port_latch[port] & m_port_ddr[port]);
|
||||
return (m_port_in_cb[port]() & ~m_port_ddr[port]) | (m_port_latch[port] & m_port_ddr[port]);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -594,7 +594,7 @@ WRITE8_MEMBER(tms7000_device::tms7000_pf_w)
|
||||
// note: in memory expansion modes, some port output pins are used for memory strobes.
|
||||
// this is currently ignored, since port writes will always be visible externally on peripheral expansion anyway.
|
||||
int port = offset / 2 - 2;
|
||||
m_io->write_byte(port, data & m_port_ddr[port]);
|
||||
m_port_out_cb[port](data & m_port_ddr[port]);
|
||||
m_port_latch[port] = data;
|
||||
break;
|
||||
}
|
||||
@ -888,7 +888,9 @@ void tms70c46_device::device_start()
|
||||
void tms70c46_device::device_reset()
|
||||
{
|
||||
m_control = 0;
|
||||
m_io->write_byte(TMS7000_PORTE, 0xff);
|
||||
|
||||
// reset port E
|
||||
m_port_out_cb[4](0xff);
|
||||
|
||||
tms7000_device::device_reset();
|
||||
}
|
||||
@ -902,7 +904,7 @@ WRITE8_MEMBER(tms70c46_device::control_w)
|
||||
{
|
||||
// d5: enable external databus
|
||||
if (~m_control & data & 0x20)
|
||||
m_io->write_byte(TMS7000_PORTE, 0xff); // go into high impedance
|
||||
m_port_out_cb[4](0xff); // put port E into high impedance
|
||||
|
||||
// d4: enable clock divider when accessing slow memory (not emulated)
|
||||
// known fast memory areas: internal ROM/RAM, system RAM
|
||||
|
@ -14,6 +14,33 @@
|
||||
#include "debugger.h"
|
||||
|
||||
|
||||
// read-only on 70x0
|
||||
#define MCFG_TMS7000_IN_PORTA_CB(_devcb) \
|
||||
devcb = &tms7000_device::set_port_read_cb(*device, 0, DEVCB_##_devcb);
|
||||
#define MCFG_TMS7000_OUT_PORTA_CB(_devcb) \
|
||||
devcb = &tms7000_device::set_port_write_cb(*device, 0, DEVCB_##_devcb);
|
||||
|
||||
// write-only
|
||||
#define MCFG_TMS7000_OUT_PORTB_CB(_devcb) \
|
||||
devcb = &tms7000_device::set_port_write_cb(*device, 1, DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_TMS7000_IN_PORTC_CB(_devcb) \
|
||||
devcb = &tms7000_device::set_port_read_cb(*device, 2, DEVCB_##_devcb);
|
||||
#define MCFG_TMS7000_OUT_PORTC_CB(_devcb) \
|
||||
devcb = &tms7000_device::set_port_write_cb(*device, 2, DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_TMS7000_IN_PORTD_CB(_devcb) \
|
||||
devcb = &tms7000_device::set_port_read_cb(*device, 3, DEVCB_##_devcb);
|
||||
#define MCFG_TMS7000_OUT_PORTD_CB(_devcb) \
|
||||
devcb = &tms7000_device::set_port_write_cb(*device, 3, DEVCB_##_devcb);
|
||||
|
||||
// TMS70C46 only
|
||||
#define MCFG_TMS7000_IN_PORTE_CB(_devcb) \
|
||||
devcb = &tms7000_device::set_port_read_cb(*device, 4, DEVCB_##_devcb);
|
||||
#define MCFG_TMS7000_OUT_PORTE_CB(_devcb) \
|
||||
devcb = &tms7000_device::set_port_write_cb(*device, 4, DEVCB_##_devcb);
|
||||
|
||||
|
||||
enum { TMS7000_PC=1, TMS7000_SP, TMS7000_ST };
|
||||
|
||||
enum
|
||||
@ -23,15 +50,6 @@ enum
|
||||
TMS7000_INT3_LINE
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
TMS7000_PORTA = 0, /* read-only on 70x0 */
|
||||
TMS7000_PORTB, /* write-only */
|
||||
TMS7000_PORTC,
|
||||
TMS7000_PORTD,
|
||||
TMS7000_PORTE /* TMS70C46 only */
|
||||
};
|
||||
|
||||
|
||||
class tms7000_device : public cpu_device
|
||||
{
|
||||
@ -39,6 +57,12 @@ public:
|
||||
// construction/destruction
|
||||
tms7000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
// static configuration
|
||||
template<class Object>
|
||||
static devcb_base &set_port_read_cb(device_t &device, int p, Object &&object) { return downcast<tms7000_device &>(device).m_port_in_cb[p].set_callback(std::move(object)); }
|
||||
template<class Object>
|
||||
static devcb_base &set_port_write_cb(device_t &device, int p, Object &&object) { return downcast<tms7000_device &>(device).m_port_out_cb[p].set_callback(std::move(object)); }
|
||||
|
||||
DECLARE_READ8_MEMBER(tms7000_unmapped_rf_r) { if (!machine().side_effect_disabled()) logerror("'%s' (%04X): unmapped_rf_r @ $%04x\n", tag(), m_pc, offset + 0x80); return 0; };
|
||||
DECLARE_WRITE8_MEMBER(tms7000_unmapped_rf_w) { logerror("'%s' (%04X): unmapped_rf_w @ $%04x = $%02x\n", tag(), m_pc, offset + 0x80, data); };
|
||||
|
||||
@ -91,13 +115,14 @@ protected:
|
||||
virtual void execute_one(uint8_t op);
|
||||
|
||||
address_space_config m_program_config;
|
||||
address_space_config m_io_config;
|
||||
|
||||
devcb_read8 m_port_in_cb[5];
|
||||
devcb_write8 m_port_out_cb[5];
|
||||
|
||||
uint32_t m_info_flags;
|
||||
|
||||
address_space *m_program;
|
||||
direct_read_data *m_direct;
|
||||
address_space *m_io;
|
||||
int m_icount;
|
||||
|
||||
bool m_irq_state[2];
|
||||
@ -319,8 +344,8 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(dockbus_data_w);
|
||||
|
||||
// access I/O port E if databus is disabled
|
||||
DECLARE_READ8_MEMBER(e_bus_data_r) { return machine().side_effect_disabled() ? 0xff : ((m_control & 0x20) ? 0xff : m_io->read_byte(TMS7000_PORTE)); }
|
||||
DECLARE_WRITE8_MEMBER(e_bus_data_w) { if (~m_control & 0x20) m_io->write_byte(TMS7000_PORTE, data); }
|
||||
DECLARE_READ8_MEMBER(e_bus_data_r) { return machine().side_effect_disabled() ? 0xff : ((m_control & 0x20) ? 0xff : m_port_in_cb[4]()); }
|
||||
DECLARE_WRITE8_MEMBER(e_bus_data_w) { if (~m_control & 0x20) m_port_out_cb[4](data); }
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
|
@ -100,6 +100,9 @@ DEFINE_DEVICE_TYPE(SONY_OA_D31V, sony_oa_d31v, "sony_oa_d31v", "Sony OA-D31V Mic
|
||||
DEFINE_DEVICE_TYPE(SONY_OA_D32W, sony_oa_d32w, "sony_oa_d32w", "Sony OA-D32W Micro Floppydisk Drive")
|
||||
DEFINE_DEVICE_TYPE(SONY_OA_D32V, sony_oa_d32v, "sony_oa_d32v", "Sony OA-D32V Micro Floppydisk Drive")
|
||||
|
||||
// TEAC 3" drives
|
||||
DEFINE_DEVICE_TYPE(TEAC_FD_30A, teac_fd_30a, "teac_fd_30a", "TEAC FD-30A FDD")
|
||||
|
||||
// TEAC 5.25" drives
|
||||
#if 0
|
||||
DEFINE_DEVICE_TYPE(TEAC_FD_55A, teac_fd_55a, "teac_fd_55a", "TEAC FD-55A FDD")
|
||||
@ -2150,6 +2153,39 @@ void sony_oa_d32v::handled_variants(uint32_t *variants, int &var_count) const
|
||||
variants[var_count++] = floppy_image::SSDD;
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// TEAC FD-30A
|
||||
//
|
||||
// track to track: 12 ms
|
||||
// average: 171 ms
|
||||
// setting time: 15 ms
|
||||
// motor start time: 400 ms
|
||||
//
|
||||
//-------------------------------------------------
|
||||
|
||||
teac_fd_30a::teac_fd_30a(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
floppy_image_device(mconfig, TEAC_FD_30A, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
teac_fd_30a::~teac_fd_30a()
|
||||
{
|
||||
}
|
||||
|
||||
void teac_fd_30a::setup_characteristics()
|
||||
{
|
||||
form_factor = floppy_image::FF_3;
|
||||
tracks = 40;
|
||||
sides = 1;
|
||||
set_rpm(300);
|
||||
}
|
||||
|
||||
void teac_fd_30a::handled_variants(uint32_t *variants, int &var_count) const
|
||||
{
|
||||
var_count = 0;
|
||||
variants[var_count++] = floppy_image::SSSD;
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// TEAC FD-55E
|
||||
//
|
||||
|
@ -261,6 +261,7 @@ DECLARE_FLOPPY_IMAGE_DEVICE(EPSON_SD_321, epson_sd_321, "floppy_5_
|
||||
DECLARE_FLOPPY_IMAGE_DEVICE(SONY_OA_D31V, sony_oa_d31v, "floppy_3_5")
|
||||
DECLARE_FLOPPY_IMAGE_DEVICE(SONY_OA_D32W, sony_oa_d32w, "floppy_3_5")
|
||||
DECLARE_FLOPPY_IMAGE_DEVICE(SONY_OA_D32V, sony_oa_d32v, "floppy_3_5")
|
||||
DECLARE_FLOPPY_IMAGE_DEVICE(TEAC_FD_30A, teac_fd_30a, "floppy_3")
|
||||
DECLARE_FLOPPY_IMAGE_DEVICE(TEAC_FD_55E, teac_fd_55e, "floppy_5_25")
|
||||
DECLARE_FLOPPY_IMAGE_DEVICE(TEAC_FD_55F, teac_fd_55f, "floppy_5_25")
|
||||
DECLARE_FLOPPY_IMAGE_DEVICE(TEAC_FD_55G, teac_fd_55g, "floppy_5_25")
|
||||
|
@ -313,16 +313,27 @@ WRITE8_MEMBER(addressable_latch_device::write_a3)
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// write_nibble - write handler using LSB of
|
||||
// write_nibble_d0 - write handler using LSB of
|
||||
// data as input and next three bits as address
|
||||
// (offset is ignored)
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER(addressable_latch_device::write_nibble)
|
||||
WRITE8_MEMBER(addressable_latch_device::write_nibble_d0)
|
||||
{
|
||||
write_bit((data & 0x0e) >> 1, data & 0x01);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// write_nibble_d3 - write handler using bit 3 of
|
||||
// data as input and lowest three bits as address
|
||||
// (offset is ignored)
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER(addressable_latch_device::write_nibble_d3)
|
||||
{
|
||||
write_bit(data & 0x07, BIT(data, 3));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// clear - pulse clear line from bus write
|
||||
//-------------------------------------------------
|
||||
|
@ -77,7 +77,8 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(write_d7);
|
||||
DECLARE_WRITE8_MEMBER(write_a0);
|
||||
DECLARE_WRITE8_MEMBER(write_a3);
|
||||
DECLARE_WRITE8_MEMBER(write_nibble);
|
||||
DECLARE_WRITE8_MEMBER(write_nibble_d0);
|
||||
DECLARE_WRITE8_MEMBER(write_nibble_d3);
|
||||
DECLARE_WRITE8_MEMBER(clear);
|
||||
|
||||
// read handlers (inlined for the sake of optimization)
|
||||
|
@ -100,13 +100,17 @@ void am9513_device::device_start()
|
||||
std::fill(std::begin(m_counter_armed), std::end(m_counter_armed), false);
|
||||
std::fill(std::begin(m_counter_running), std::end(m_counter_running), false);
|
||||
std::fill(std::begin(m_alternate_count), std::end(m_alternate_count), false);
|
||||
std::fill(std::begin(m_src), std::end(m_src), true);
|
||||
std::fill(std::begin(m_gate), std::end(m_gate), true);
|
||||
std::fill(std::begin(m_gate_alt), std::end(m_gate_alt), true);
|
||||
std::fill(std::begin(m_gate_active), std::end(m_gate_active), true);
|
||||
std::fill(std::begin(m_tc), std::end(m_tc), false);
|
||||
std::fill(std::begin(m_toggle), std::end(m_toggle), false);
|
||||
|
||||
// Unused SRC and GATE inputs are typically grounded
|
||||
std::fill(std::begin(m_src), std::end(m_src), false);
|
||||
std::fill(std::begin(m_gate), std::end(m_gate), false);
|
||||
std::fill(std::begin(m_gate_active), std::end(m_gate_active), false);
|
||||
|
||||
// Alternate gate inputs should be tied high if not used
|
||||
std::fill(std::begin(m_gate_alt), std::end(m_gate_alt), true);
|
||||
|
||||
// Set up frequency timers
|
||||
for (int f = 0; f < 5; f++)
|
||||
{
|
||||
|
@ -3,8 +3,6 @@
|
||||
#include "emu.h"
|
||||
#include "ds128x.h"
|
||||
|
||||
/// TODO: Only DV2/DV1/DV0 == 0/1/0 is supported as the chip only has a 15 stage divider and not 22.
|
||||
|
||||
DEFINE_DEVICE_TYPE(DS12885, ds12885_device, "ds12885", "DS12885 RTC/NVRAM")
|
||||
|
||||
//-------------------------------------------------
|
||||
@ -15,3 +13,13 @@ ds12885_device::ds12885_device(const machine_config &mconfig, const char *tag, d
|
||||
: mc146818_device(mconfig, DS12885, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
int ds12885_device::get_timer_bypass()
|
||||
{
|
||||
if( !( m_data[REG_A] & REG_A_DV0 ) ) //DV0 must be 0 for timekeeping
|
||||
{
|
||||
return 7; // Fixed at 1 Hz with clock at 32768Hz
|
||||
}
|
||||
|
||||
return 22; // No tick
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ public:
|
||||
|
||||
protected:
|
||||
virtual int data_size() override { return 128; }
|
||||
virtual int get_timer_bypass() override;
|
||||
};
|
||||
|
||||
// device type definition
|
||||
|
@ -317,8 +317,8 @@ void eeprom_base_device::internal_write(offs_t address, uint32_t data)
|
||||
{
|
||||
if (m_data_bits == 16)
|
||||
{
|
||||
m_data[address*2] = data;
|
||||
m_data[address*2+1] = data >> 8;
|
||||
m_data[address * 2] = data;
|
||||
m_data[address * 2 + 1] = data >> 8;
|
||||
} else
|
||||
m_data[address] = data;
|
||||
}
|
||||
|
@ -314,7 +314,7 @@ DECLARE_SERIAL_EEPROM_DEVICE(93cxx, s29190, S29190, 16)
|
||||
DECLARE_SERIAL_EEPROM_DEVICE(93cxx, s29290, S29290, 16)
|
||||
DECLARE_SERIAL_EEPROM_DEVICE(93cxx, s29390, S29390, 16)
|
||||
|
||||
// X24c44 8 bit 32byte ram/eeprom combo
|
||||
// X24c44 16 bit 32byte ram/eeprom combo
|
||||
DECLARE_SERIAL_EEPROM_DEVICE(x24c44, x24c44, X24C44, 16)
|
||||
|
||||
#endif // MAME_MACHINE_EEPROMSER_H
|
||||
|
@ -15,6 +15,9 @@
|
||||
#include <algorithm>
|
||||
#include <iterator>
|
||||
|
||||
//#define VERBOSE 1
|
||||
#include "logmacro.h"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE DEFINITIONS
|
||||
@ -79,6 +82,7 @@ TIMER_CALLBACK_MEMBER(input_merger_device::update_state)
|
||||
{
|
||||
if (BIT(m_state, param >> 1) != BIT(param, 0))
|
||||
{
|
||||
LOG("state[%d] = %d\n", param >> 1, BIT(param, 0));
|
||||
m_state ^= u32(1) << (param >> 1);
|
||||
m_output_handler((m_state ^ m_xorval) ? m_active : !m_active);
|
||||
}
|
||||
|
@ -412,31 +412,7 @@ void mc146818_device::update_timer()
|
||||
{
|
||||
int bypass;
|
||||
|
||||
switch (m_data[REG_A] & (REG_A_DV2 | REG_A_DV1 | REG_A_DV0))
|
||||
{
|
||||
case 0:
|
||||
bypass = 0;
|
||||
break;
|
||||
|
||||
case REG_A_DV0:
|
||||
bypass = 2;
|
||||
break;
|
||||
|
||||
case REG_A_DV1:
|
||||
bypass = 7;
|
||||
break;
|
||||
|
||||
case REG_A_DV2 | REG_A_DV1:
|
||||
case REG_A_DV2 | REG_A_DV1 | REG_A_DV0:
|
||||
bypass = 22;
|
||||
break;
|
||||
|
||||
default:
|
||||
// TODO: other combinations of divider bits are used for test purposes only
|
||||
bypass = 22;
|
||||
break;
|
||||
}
|
||||
|
||||
bypass = get_timer_bypass();
|
||||
|
||||
attotime update_period = attotime::never;
|
||||
attotime update_interval = attotime::never;
|
||||
@ -472,6 +448,41 @@ void mc146818_device::update_timer()
|
||||
m_periodic_timer->adjust(periodic_period, 0, periodic_interval);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// get_timer_bypass - get main clock divisor based on A register
|
||||
//---------------------------------------------------------------
|
||||
|
||||
int mc146818_device::get_timer_bypass()
|
||||
{
|
||||
int bypass;
|
||||
|
||||
switch (m_data[REG_A] & (REG_A_DV2 | REG_A_DV1 | REG_A_DV0))
|
||||
{
|
||||
case 0:
|
||||
bypass = 0;
|
||||
break;
|
||||
|
||||
case REG_A_DV0:
|
||||
bypass = 2;
|
||||
break;
|
||||
|
||||
case REG_A_DV1:
|
||||
bypass = 7;
|
||||
break;
|
||||
|
||||
case REG_A_DV2 | REG_A_DV1:
|
||||
case REG_A_DV2 | REG_A_DV1 | REG_A_DV0:
|
||||
bypass = 22;
|
||||
break;
|
||||
|
||||
default:
|
||||
// TODO: other combinations of divider bits are used for test purposes only
|
||||
bypass = 22;
|
||||
break;
|
||||
}
|
||||
|
||||
return bypass;
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// update_irq - Update irq based on B & C register
|
||||
|
@ -91,7 +91,6 @@ protected:
|
||||
|
||||
virtual int data_size() { return 64; }
|
||||
|
||||
private:
|
||||
enum
|
||||
{
|
||||
REG_SECONDS = 0,
|
||||
@ -153,7 +152,7 @@ private:
|
||||
void set_base_datetime();
|
||||
void update_irq();
|
||||
void update_timer();
|
||||
|
||||
virtual int get_timer_bypass();
|
||||
int get_seconds();
|
||||
void set_seconds(int seconds);
|
||||
int get_minutes();
|
||||
|
@ -200,15 +200,15 @@ void wd_fdc_device_base::set_floppy(floppy_image_device *_floppy)
|
||||
ready_callback(floppy, next_ready);
|
||||
}
|
||||
|
||||
void wd_fdc_device_base::dden_w(bool _dden)
|
||||
WRITE_LINE_MEMBER(wd_fdc_device_base::dden_w)
|
||||
{
|
||||
if(disable_mfm) {
|
||||
logerror("Error, this chip does not have a dden line\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if(dden != _dden) {
|
||||
dden = _dden;
|
||||
if(dden != bool(state)) {
|
||||
dden = bool(state);
|
||||
if (TRACE_LINES) logerror("select %s\n", dden ? "fm" : "mfm");
|
||||
}
|
||||
}
|
||||
@ -1368,27 +1368,27 @@ void wd_fdc_device_base::index_callback(floppy_image_device *floppy, int state)
|
||||
general_continue();
|
||||
}
|
||||
|
||||
bool wd_fdc_device_base::intrq_r()
|
||||
READ_LINE_MEMBER(wd_fdc_device_base::intrq_r)
|
||||
{
|
||||
return intrq;
|
||||
}
|
||||
|
||||
bool wd_fdc_device_base::drq_r()
|
||||
READ_LINE_MEMBER(wd_fdc_device_base::drq_r)
|
||||
{
|
||||
return drq;
|
||||
}
|
||||
|
||||
bool wd_fdc_device_base::hld_r()
|
||||
READ_LINE_MEMBER(wd_fdc_device_base::hld_r)
|
||||
{
|
||||
return hld;
|
||||
}
|
||||
|
||||
void wd_fdc_device_base::hlt_w(bool state)
|
||||
WRITE_LINE_MEMBER(wd_fdc_device_base::hlt_w)
|
||||
{
|
||||
hlt = state;
|
||||
hlt = bool(state);
|
||||
}
|
||||
|
||||
bool wd_fdc_device_base::enp_r()
|
||||
READ_LINE_MEMBER(wd_fdc_device_base::enp_r)
|
||||
{
|
||||
return enp;
|
||||
}
|
||||
|
@ -145,7 +145,7 @@ public:
|
||||
|
||||
void soft_reset();
|
||||
|
||||
void dden_w(bool dden);
|
||||
DECLARE_WRITE_LINE_MEMBER(dden_w);
|
||||
void set_floppy(floppy_image_device *floppy);
|
||||
void set_force_ready(bool force_ready);
|
||||
void set_disable_motor_control(bool _disable_motor_control);
|
||||
@ -175,13 +175,13 @@ public:
|
||||
DECLARE_READ8_MEMBER( read ) { return gen_r(offset); }
|
||||
DECLARE_WRITE8_MEMBER( write ) { gen_w(offset,data); }
|
||||
|
||||
bool intrq_r();
|
||||
bool drq_r();
|
||||
DECLARE_READ_LINE_MEMBER(intrq_r);
|
||||
DECLARE_READ_LINE_MEMBER(drq_r);
|
||||
|
||||
bool hld_r();
|
||||
void hlt_w(bool state);
|
||||
DECLARE_READ_LINE_MEMBER(hld_r);
|
||||
DECLARE_WRITE_LINE_MEMBER(hlt_w);
|
||||
|
||||
bool enp_r();
|
||||
DECLARE_READ_LINE_MEMBER(enp_r);
|
||||
|
||||
void index_callback(floppy_image_device *floppy, int state);
|
||||
|
||||
|
@ -122,10 +122,6 @@ z80sio_device::z80sio_device(const machine_config &mconfig, device_type type, co
|
||||
device_z80daisy_interface(mconfig, *this),
|
||||
m_chanA(*this, CHANA_TAG),
|
||||
m_chanB(*this, CHANB_TAG),
|
||||
m_rxca(0),
|
||||
m_txca(0),
|
||||
m_rxcb(0),
|
||||
m_txcb(0),
|
||||
m_out_txda_cb(*this),
|
||||
m_out_dtra_cb(*this),
|
||||
m_out_rtsa_cb(*this),
|
||||
@ -164,11 +160,12 @@ i8274_new_device::i8274_new_device(const machine_config &mconfig, const char *ta
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
// device_resolve_objects - device-specific setup
|
||||
//-------------------------------------------------
|
||||
void z80sio_device::device_start()
|
||||
void z80sio_device::device_resolve_objects()
|
||||
{
|
||||
LOG("%s\n", FUNCNAME);
|
||||
|
||||
// resolve callbacks
|
||||
m_out_txda_cb.resolve_safe();
|
||||
m_out_dtra_cb.resolve_safe();
|
||||
@ -185,14 +182,14 @@ void z80sio_device::device_start()
|
||||
m_out_txdrqa_cb.resolve_safe();
|
||||
m_out_rxdrqb_cb.resolve_safe();
|
||||
m_out_txdrqb_cb.resolve_safe();
|
||||
}
|
||||
|
||||
// configure channel A
|
||||
m_chanA->m_rxc = m_rxca;
|
||||
m_chanA->m_txc = m_txca;
|
||||
|
||||
// configure channel B
|
||||
m_chanB->m_rxc = m_rxcb;
|
||||
m_chanB->m_txc = m_txcb;
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
void z80sio_device::device_start()
|
||||
{
|
||||
LOG("%s\n", FUNCNAME);
|
||||
|
||||
// state saving
|
||||
save_item(NAME(m_int_state));
|
||||
@ -514,8 +511,13 @@ WRITE8_MEMBER( z80sio_device::ba_cd_w )
|
||||
z80sio_channel::z80sio_channel(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, Z80SIO_CHANNEL, tag, owner, clock)
|
||||
, device_serial_interface(mconfig, *this)
|
||||
, m_rx_error(0)
|
||||
, m_rx_fifo_depth(0)
|
||||
, m_rx_data_fifo(0)
|
||||
, m_rx_error_fifo(0)
|
||||
, m_rx_clock(0)
|
||||
, m_rx_count(0)
|
||||
, m_rx_bit(0)
|
||||
, m_rx_sr(0)
|
||||
, m_rx_first(0)
|
||||
, m_rx_break(0)
|
||||
, m_rx_rr0_latch(0)
|
||||
@ -530,21 +532,30 @@ z80sio_channel::z80sio_channel(const machine_config &mconfig, const char *tag, d
|
||||
, m_sync(0)
|
||||
{
|
||||
LOG("%s\n",FUNCNAME);
|
||||
// Reset all registers
|
||||
m_rr0 = m_rr1 = m_rr2 = 0;
|
||||
m_wr0 = m_wr1 = m_wr2 = m_wr3 = m_wr4 = m_wr5 = m_wr6 = m_wr7 = 0;
|
||||
|
||||
// Reset all registers
|
||||
m_rr0 = m_rr1 = m_rr2 = 0;
|
||||
m_wr0 = m_wr1 = m_wr2 = m_wr3 = m_wr4 = m_wr5 = m_wr6 = m_wr7 = 0;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// resove_objects - channel setup
|
||||
//-------------------------------------------------
|
||||
void z80sio_channel::device_resolve_objects()
|
||||
{
|
||||
LOG("%s\n",FUNCNAME);
|
||||
m_uart = downcast<z80sio_device *>(owner());
|
||||
m_index = m_uart->get_channel_index(this);
|
||||
m_variant = m_uart->m_variant;
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// start - channel startup
|
||||
//-------------------------------------------------
|
||||
void z80sio_channel::device_start()
|
||||
{
|
||||
LOG("%s\n",FUNCNAME);
|
||||
m_uart = downcast<z80sio_device *>(owner());
|
||||
m_index = m_uart->get_channel_index(this);
|
||||
m_variant = ((z80sio_device *)owner())->m_variant;
|
||||
|
||||
// state saving
|
||||
save_item(NAME(m_rr0));
|
||||
@ -558,8 +569,13 @@ void z80sio_channel::device_start()
|
||||
save_item(NAME(m_wr5));
|
||||
save_item(NAME(m_wr6));
|
||||
save_item(NAME(m_wr7));
|
||||
save_item(NAME(m_rx_error));
|
||||
save_item(NAME(m_rx_fifo_depth));
|
||||
save_item(NAME(m_rx_data_fifo));
|
||||
save_item(NAME(m_rx_error_fifo));
|
||||
save_item(NAME(m_rx_clock));
|
||||
save_item(NAME(m_rx_count));
|
||||
save_item(NAME(m_rx_bit));
|
||||
save_item(NAME(m_rx_sr));
|
||||
save_item(NAME(m_rx_first));
|
||||
save_item(NAME(m_rx_break));
|
||||
save_item(NAME(m_rx_rr0_latch));
|
||||
@ -583,7 +599,9 @@ void z80sio_channel::device_reset()
|
||||
LOG("%s\n", FUNCNAME);
|
||||
|
||||
// Reset RS232 emulation
|
||||
receive_register_reset();
|
||||
m_rx_fifo_depth = 0;
|
||||
m_rx_data_fifo = m_rx_error_fifo = 0U;
|
||||
receive_reset();
|
||||
transmit_register_reset();
|
||||
|
||||
// disable receiver
|
||||
@ -661,7 +679,8 @@ void z80sio_channel::tra_complete()
|
||||
|
||||
// empty transmit buffer
|
||||
m_rr0 |= RR0_TX_BUFFER_EMPTY;
|
||||
|
||||
if ((m_wr1 & WR1_WRDY_ENABLE) && !(m_wr1 & WR1_WRDY_ON_RX_TX))
|
||||
set_ready(true);
|
||||
if (m_wr1 & WR1_TX_INT_ENABLE)
|
||||
m_uart->trigger_interrupt(m_index, INT_TRANSMIT);
|
||||
}
|
||||
@ -698,33 +717,6 @@ void z80sio_channel::tra_complete()
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// rcv_callback -
|
||||
//-------------------------------------------------
|
||||
void z80sio_channel::rcv_callback()
|
||||
{
|
||||
if (m_wr3 & WR3_RX_ENABLE)
|
||||
{
|
||||
LOGBIT("%s() \"%s \"Channel %c Received Data Bit %d\n", FUNCNAME, owner()->tag(), 'A' + m_index, m_rxd);
|
||||
receive_register_update_bit(m_rxd);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// rcv_complete -
|
||||
//-------------------------------------------------
|
||||
void z80sio_channel::rcv_complete()
|
||||
{
|
||||
uint8_t data;
|
||||
|
||||
receive_register_extract();
|
||||
data = get_received_char();
|
||||
LOGRCV("%s() \"%s \"Channel %c Received Data %02x\n", FUNCNAME, owner()->tag(), 'A' + m_index, data);
|
||||
receive_data(data);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// get_clock_mode - get clock divisor
|
||||
//-------------------------------------------------
|
||||
@ -783,6 +775,20 @@ void z80sio_channel::update_rts()
|
||||
set_dtr((m_wr5 & WR5_DTR) ? 0 : 1);
|
||||
}
|
||||
|
||||
void z80sio_channel::set_ready(bool ready)
|
||||
{
|
||||
// WAIT mode not supported yet
|
||||
if (!(m_wr1 & WR1_WRDY_FUNCTION))
|
||||
return;
|
||||
|
||||
logerror("Channel %sready\n", ready ? "" : "not ");
|
||||
|
||||
if (m_index == z80sio_device::CHANNEL_A)
|
||||
m_uart->m_out_wrdya_cb(ready ? 0 : 1);
|
||||
else
|
||||
m_uart->m_out_wrdyb_cb(ready ? 0 : 1);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// get_stop_bits - get number of stop bits
|
||||
//-------------------------------------------------
|
||||
@ -1036,7 +1042,16 @@ void z80sio_channel::do_sioreg_wr0(uint8_t data)
|
||||
case WR0_ERROR_RESET:
|
||||
// error reset
|
||||
LOGCMD("%s %s Ch:%c : Error Reset\n", FUNCNAME, tag(), 'A' + m_index);
|
||||
m_rr1 &= ~(RR1_CRC_FRAMING_ERROR | RR1_RX_OVERRUN_ERROR | RR1_PARITY_ERROR);
|
||||
if ((WR1_RX_INT_FIRST == (m_wr1 & WR1_RX_INT_MODE_MASK)) && (m_rr1 & (RR1_CRC_FRAMING_ERROR | RR1_RX_OVERRUN_ERROR)))
|
||||
{
|
||||
// clearing framing and overrun errors advances the FIFO
|
||||
m_rr1 &= ~(RR1_CRC_FRAMING_ERROR | RR1_RX_OVERRUN_ERROR | RR1_PARITY_ERROR);
|
||||
advance_rx_fifo();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_rr1 &= ~(RR1_CRC_FRAMING_ERROR | RR1_RX_OVERRUN_ERROR | RR1_PARITY_ERROR);
|
||||
}
|
||||
break;
|
||||
case WR0_RETURN_FROM_INT:
|
||||
LOGINT("%s %s Ch:%c : Return from interrupt\n", FUNCNAME, tag(), 'A' + m_index);
|
||||
@ -1094,6 +1109,16 @@ void z80sio_channel::do_sioreg_wr1(uint8_t data)
|
||||
LOG("Z80SIO \"%s\" Channel %c : Receiver Interrupt on All Characters\n", owner()->tag(), 'A' + m_index);
|
||||
break;
|
||||
}
|
||||
|
||||
if (data & WR1_WRDY_ENABLE)
|
||||
{
|
||||
if (data & WR1_WRDY_ON_RX_TX)
|
||||
set_ready((m_rr0 & RR0_RX_CHAR_AVAILABLE) != 0);
|
||||
else
|
||||
set_ready((m_rr0 & RR0_TX_BUFFER_EMPTY) != 0);
|
||||
}
|
||||
else
|
||||
set_ready(false);
|
||||
}
|
||||
|
||||
void z80sio_channel::do_sioreg_wr2(uint8_t data)
|
||||
@ -1179,22 +1204,11 @@ void z80sio_channel::control_write(uint8_t data)
|
||||
//-------------------------------------------------
|
||||
uint8_t z80sio_channel::data_read()
|
||||
{
|
||||
uint8_t data = 0;
|
||||
uint8_t const data = uint8_t(m_rx_data_fifo & 0x000000ffU);
|
||||
|
||||
if (!m_rx_data_fifo.empty())
|
||||
{
|
||||
// load data from the FIFO
|
||||
data = m_rx_data_fifo.dequeue();
|
||||
|
||||
// load error status from the FIFO
|
||||
m_rr1 = (m_rr1 & ~(RR1_CRC_FRAMING_ERROR | RR1_RX_OVERRUN_ERROR | RR1_PARITY_ERROR)) | m_rx_error_fifo.dequeue();
|
||||
|
||||
if (m_rx_data_fifo.empty())
|
||||
{
|
||||
// no more characters available in the FIFO
|
||||
m_rr0 &= ~ RR0_RX_CHAR_AVAILABLE;
|
||||
}
|
||||
}
|
||||
// framing and overrun errors need to be cleared to advance the FIFO in interrupt-on-first mode
|
||||
if ((WR1_RX_INT_FIRST != (m_wr1 & WR1_RX_INT_MODE_MASK)) || !(m_rr1 & (RR1_CRC_FRAMING_ERROR | RR1_RX_OVERRUN_ERROR)))
|
||||
advance_rx_fifo();
|
||||
|
||||
LOG("Z80SIO \"%s\" Channel %c : Data Register Read '%02x'\n", owner()->tag(), 'A' + m_index, data);
|
||||
|
||||
@ -1217,75 +1231,126 @@ void z80sio_channel::data_write(uint8_t data)
|
||||
|
||||
// empty transmit buffer
|
||||
m_rr0 |= RR0_TX_BUFFER_EMPTY;
|
||||
|
||||
if ((m_wr1 & WR1_WRDY_ENABLE) && !(m_wr1 & WR1_WRDY_ON_RX_TX))
|
||||
set_ready(true);
|
||||
if (m_wr1 & WR1_TX_INT_ENABLE)
|
||||
m_uart->trigger_interrupt(m_index, INT_TRANSMIT);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGTX(" Transmitter %s, data byte dropped\n", m_wr5 & WR5_TX_ENABLE ? "not enabled" : "not emptied");
|
||||
LOGTX(" Transmitter not %s, data byte %02x pending\n", m_wr5 & WR5_TX_ENABLE ? "emptied" : "enabled", m_tx_data);
|
||||
m_rr0 &= ~RR0_TX_BUFFER_EMPTY;
|
||||
if ((m_wr1 & WR1_WRDY_ENABLE) && !(m_wr1 & WR1_WRDY_ON_RX_TX))
|
||||
set_ready(false);
|
||||
}
|
||||
|
||||
m_rr1 &= ~RR1_ALL_SENT;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// receive_reset - reset receive state
|
||||
//-------------------------------------------------
|
||||
void z80sio_channel::receive_reset()
|
||||
{
|
||||
m_rx_count = (get_clock_mode() - 1) / 2;
|
||||
m_rx_bit = 0;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// advance_rx_fifo - move to next received byte
|
||||
//-------------------------------------------------
|
||||
void z80sio_channel::advance_rx_fifo()
|
||||
{
|
||||
if (m_rx_fifo_depth)
|
||||
{
|
||||
if (--m_rx_fifo_depth)
|
||||
{
|
||||
// shift the FIFO
|
||||
m_rx_data_fifo >>= 8;
|
||||
m_rx_error_fifo >>= 8;
|
||||
|
||||
// load error status from the FIFO
|
||||
m_rr1 = (m_rr1 & ~RR1_CRC_FRAMING_ERROR) | uint8_t(m_rx_error_fifo & 0x000000ffU);
|
||||
}
|
||||
else
|
||||
{
|
||||
// no more characters available in the FIFO
|
||||
m_rr0 &= ~RR0_RX_CHAR_AVAILABLE;
|
||||
if ((m_wr1 & WR1_WRDY_ENABLE) && (m_wr1 & WR1_WRDY_ON_RX_TX))
|
||||
set_ready(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// receive_data - receive data word
|
||||
//-------------------------------------------------
|
||||
void z80sio_channel::receive_data(uint8_t data)
|
||||
void z80sio_channel::receive_data()
|
||||
{
|
||||
LOGRCV("%s(%02x) %s:%c\n",FUNCNAME, data, tag(), 'A' + m_index);
|
||||
LOGRCV("%s(%04x) %s:%c\n",FUNCNAME, m_rx_sr, tag(), 'A' + m_index);
|
||||
|
||||
if (m_rx_data_fifo.full())
|
||||
// check for parity and framing errors
|
||||
int const word_length = get_rx_word_length();
|
||||
bool const parity = 0U != (m_wr4 & WR4_PARITY_ENABLE);
|
||||
uint16_t const stop_bit = uint16_t(1U) << (word_length + (parity ? 1 : 0));
|
||||
uint32_t rx_error = (m_rx_sr & stop_bit) ? 0U : RR1_CRC_FRAMING_ERROR;
|
||||
m_rx_sr |= stop_bit;
|
||||
if (parity)
|
||||
{
|
||||
uint16_t par(m_rx_sr);
|
||||
for (int i = 1; word_length >= i; ++i)
|
||||
par ^= BIT(par, i);
|
||||
if (bool(BIT(par, 0)) == bool(m_wr4 & WR4_PARITY_EVEN))
|
||||
rx_error |= RR1_PARITY_ERROR;
|
||||
}
|
||||
|
||||
if (3 == m_rx_fifo_depth)
|
||||
{
|
||||
LOG(" Overrun detected\n");
|
||||
// receive overrun error detected
|
||||
m_rx_error |= RR1_RX_OVERRUN_ERROR;
|
||||
rx_error |= RR1_RX_OVERRUN_ERROR;
|
||||
|
||||
switch (m_wr1 & WR1_RX_INT_MODE_MASK)
|
||||
{
|
||||
case WR1_RX_INT_FIRST:
|
||||
if (!m_rx_first)
|
||||
{
|
||||
m_uart->trigger_interrupt(m_index, INT_SPECIAL);
|
||||
}
|
||||
break;
|
||||
|
||||
case WR1_RX_INT_ALL_PARITY:
|
||||
case WR1_RX_INT_ALL:
|
||||
m_uart->trigger_interrupt(m_index, INT_SPECIAL);
|
||||
break;
|
||||
}
|
||||
m_rx_data_fifo = (m_rx_data_fifo & 0x0000ffffU) | (uint32_t(m_rx_sr & 0x00ffU) << 16);
|
||||
m_rx_error_fifo = (m_rx_error_fifo & 0x0000ffffU) | (rx_error << 16);
|
||||
}
|
||||
else
|
||||
{
|
||||
// store received character and error status into FIFO
|
||||
m_rx_data_fifo.enqueue(data);
|
||||
m_rx_error_fifo.enqueue(m_rx_error);
|
||||
if (!m_rx_fifo_depth)
|
||||
m_rx_data_fifo = m_rx_error_fifo = 0U;
|
||||
m_rx_data_fifo |= uint32_t(m_rx_sr & 0x00ffU) << (8 * m_rx_fifo_depth);
|
||||
m_rx_error_fifo |= rx_error << (8 * m_rx_fifo_depth);
|
||||
++m_rx_fifo_depth;
|
||||
}
|
||||
|
||||
m_rr0 |= RR0_RX_CHAR_AVAILABLE;
|
||||
if ((m_wr1 & WR1_WRDY_ENABLE) && (m_wr1 & WR1_WRDY_ON_RX_TX))
|
||||
set_ready(true);
|
||||
if (!m_rx_fifo_depth)
|
||||
m_rr1 |= uint8_t(rx_error);
|
||||
|
||||
// receive interrupt
|
||||
switch (m_wr1 & WR1_RX_INT_MODE_MASK)
|
||||
{
|
||||
case WR1_RX_INT_FIRST:
|
||||
if (m_rx_first)
|
||||
{
|
||||
if (m_rx_first || (rx_error & (RR1_RX_OVERRUN_ERROR | RR1_CRC_FRAMING_ERROR)))
|
||||
m_uart->trigger_interrupt(m_index, INT_RECEIVE);
|
||||
m_rx_first = 0;
|
||||
}
|
||||
m_rx_first = 0;
|
||||
break;
|
||||
|
||||
case WR1_RX_INT_ALL_PARITY:
|
||||
case WR1_RX_INT_ALL:
|
||||
m_uart->trigger_interrupt(m_index, INT_RECEIVE);
|
||||
m_uart->trigger_interrupt(m_index, (rx_error & (RR1_CRC_FRAMING_ERROR | RR1_PARITY_ERROR)) ? INT_SPECIAL : INT_RECEIVE);
|
||||
break;
|
||||
|
||||
case WR1_RX_INT_ALL:
|
||||
m_uart->trigger_interrupt(m_index, (rx_error & RR1_CRC_FRAMING_ERROR) ? INT_SPECIAL : INT_RECEIVE);
|
||||
break;
|
||||
|
||||
default:
|
||||
LOG("No interrupt triggered\n");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -1403,18 +1468,63 @@ WRITE_LINE_MEMBER( z80sio_channel::sync_w )
|
||||
WRITE_LINE_MEMBER( z80sio_channel::rxc_w )
|
||||
{
|
||||
//LOG("Z80SIO \"%s\" Channel %c : Receiver Clock Pulse\n", owner()->tag(), m_index + 'A');
|
||||
int clocks = get_clock_mode();
|
||||
if (clocks == 1)
|
||||
rx_clock_w(state);
|
||||
else if(state)
|
||||
if ((m_wr3 & WR3_RX_ENABLE) && state && !m_rx_clock)
|
||||
{
|
||||
rx_clock_w(m_rx_clock < clocks/2);
|
||||
// RxD sampled on rising edge
|
||||
int const clocks = get_clock_mode() - 1;
|
||||
|
||||
m_rx_clock++;
|
||||
if (m_rx_clock == clocks)
|
||||
m_rx_clock = 0;
|
||||
if (!m_rx_bit)
|
||||
{
|
||||
// look for start bit
|
||||
if (m_rxd)
|
||||
{
|
||||
// line idle
|
||||
m_rx_count = (std::max)(m_rx_count, (clocks / 2) + 1) - 1;
|
||||
}
|
||||
else if (!m_rx_count)
|
||||
{
|
||||
// half a bit period expired, start shifting bits
|
||||
m_rx_count = clocks;
|
||||
++m_rx_bit;
|
||||
m_rx_sr = ~uint16_t(0U);
|
||||
}
|
||||
else
|
||||
{
|
||||
// ensure start bit lasts long enough
|
||||
--m_rx_count;
|
||||
}
|
||||
}
|
||||
else if (!m_rx_count)
|
||||
{
|
||||
// sample a data/parity/stop bit
|
||||
if (!m_rxd)
|
||||
m_rx_sr &= ~uint16_t(1U << (m_rx_bit - 1));
|
||||
|
||||
if ((get_rx_word_length() + ((m_wr4 & WR4_PARITY_ENABLE) ? 1 : 0) + 1) == m_rx_bit)
|
||||
{
|
||||
// this is the stop bit - framing error adds a half bit period
|
||||
m_rx_count = m_rxd ? 0 : clocks;
|
||||
m_rx_bit = 0;
|
||||
|
||||
LOGRCV("%s() \"%s \"Channel %c Received Data %02x\n", FUNCNAME, owner()->tag(), 'A' + m_index, m_rx_sr & 0xff);
|
||||
receive_data();
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGBIT("%s() \"%s \"Channel %c Received Data Bit %d\n", FUNCNAME, owner()->tag(), 'A' + m_index, m_rxd);
|
||||
|
||||
// wait a whole bit period for the next bit
|
||||
m_rx_count = clocks;
|
||||
++m_rx_bit;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// bit period hasn't expired
|
||||
--m_rx_count;
|
||||
}
|
||||
}
|
||||
m_rx_clock = state;
|
||||
}
|
||||
|
||||
|
||||
@ -1444,8 +1554,8 @@ WRITE_LINE_MEMBER( z80sio_channel::txc_w )
|
||||
//-------------------------------------------------
|
||||
void z80sio_channel::update_serial()
|
||||
{
|
||||
int data_bit_count = get_rx_word_length();
|
||||
stop_bits_t stop_bits = get_stop_bits();
|
||||
int const data_bit_count = get_rx_word_length();
|
||||
stop_bits_t const stop_bits = get_stop_bits();
|
||||
parity_t parity;
|
||||
|
||||
LOG("%s\n", FUNCNAME);
|
||||
@ -1463,20 +1573,7 @@ void z80sio_channel::update_serial()
|
||||
|
||||
set_data_frame(1, data_bit_count, parity, stop_bits);
|
||||
|
||||
int clocks = get_clock_mode();
|
||||
|
||||
if (m_rxc > 0)
|
||||
{
|
||||
LOG("- RxC:%d/%d = %d\n", m_rxc, clocks, m_rxc / clocks);
|
||||
set_rcv_rate(m_rxc / clocks);
|
||||
}
|
||||
|
||||
if (m_txc > 0)
|
||||
{
|
||||
LOG("- TxC:%d/%d = %d\n", m_txc, clocks, m_txc / clocks);
|
||||
set_tra_rate(m_txc / clocks);
|
||||
}
|
||||
receive_register_reset(); // if stop bits is changed from 0, receive register has to be reset
|
||||
receive_reset(); // if stop bits is changed from 0, receive register has to be reset
|
||||
}
|
||||
|
||||
|
||||
@ -1493,14 +1590,3 @@ void z80sio_channel::set_dtr(int state)
|
||||
else
|
||||
m_uart->m_out_dtrb_cb(m_dtr);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// write_rx -
|
||||
//-------------------------------------------------
|
||||
WRITE_LINE_MEMBER(z80sio_channel::write_rx)
|
||||
{
|
||||
m_rxd = state;
|
||||
//only use rx_w when self-clocked
|
||||
if(m_rxc)
|
||||
device_serial_interface::rx_w(state);
|
||||
}
|
||||
|
@ -67,9 +67,6 @@
|
||||
#define SIO_CHANB_TAG "chb"
|
||||
|
||||
/* Generic macros */
|
||||
#define MCFG_Z80SIO_OFFSETS(_rxa, _txa, _rxb, _txb) \
|
||||
z80sio_device::configure_channels(*device, _rxa, _txa, _rxb, _txb);
|
||||
|
||||
#define MCFG_Z80SIO_OUT_INT_CB(_devcb) \
|
||||
devcb = &z80sio_device::set_out_int_callback(*device, DEVCB_##_devcb);
|
||||
|
||||
@ -129,23 +126,16 @@
|
||||
|
||||
class z80sio_device;
|
||||
|
||||
class z80sio_channel : public device_t,
|
||||
public device_serial_interface
|
||||
class z80sio_channel : public device_t, public device_serial_interface
|
||||
{
|
||||
friend class z80sio_device;
|
||||
|
||||
public:
|
||||
z80sio_channel(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
// device_serial_interface overrides
|
||||
virtual void tra_callback() override;
|
||||
virtual void tra_complete() override;
|
||||
virtual void rcv_callback() override;
|
||||
virtual void rcv_complete() override;
|
||||
|
||||
// read register handlers
|
||||
uint8_t do_sioreg_rr0();
|
||||
@ -169,18 +159,17 @@ public:
|
||||
uint8_t data_read();
|
||||
void data_write(uint8_t data);
|
||||
|
||||
void receive_data(uint8_t data);
|
||||
void receive_reset();
|
||||
void receive_data();
|
||||
void advance_rx_fifo();
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER( write_rx );
|
||||
DECLARE_WRITE_LINE_MEMBER( write_rx ) { m_rxd = state; }
|
||||
DECLARE_WRITE_LINE_MEMBER( cts_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( dcd_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( rxc_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( txc_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( sync_w );
|
||||
|
||||
int m_rxc;
|
||||
int m_txc;
|
||||
|
||||
// Register state
|
||||
// read registers enum
|
||||
uint8_t m_rr0; // REG_RR0_STATUS
|
||||
@ -292,11 +281,11 @@ protected:
|
||||
WR1_RX_INT_MODE_MASK = 0x18,
|
||||
WR1_RX_INT_DISABLE = 0x00,
|
||||
WR1_RX_INT_FIRST = 0x08,
|
||||
WR1_RX_INT_ALL_PARITY = 0x10, // not supported
|
||||
WR1_RX_INT_ALL_PARITY = 0x10,
|
||||
WR1_RX_INT_ALL = 0x18,
|
||||
WR1_WRDY_ON_RX_TX = 0x20, // not supported
|
||||
WR1_WRDY_FUNCTION = 0x40, // not supported
|
||||
WR1_WRDY_ENABLE = 0x80 // not supported
|
||||
WR1_WRDY_ON_RX_TX = 0x20,
|
||||
WR1_WRDY_FUNCTION = 0x40, // WAIT not supported
|
||||
WR1_WRDY_ENABLE = 0x80
|
||||
};
|
||||
|
||||
enum
|
||||
@ -366,10 +355,16 @@ protected:
|
||||
WR5_DTR = 0x80
|
||||
};
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_resolve_objects() override;
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
void update_serial();
|
||||
void update_rts();
|
||||
void set_dtr(int state);
|
||||
void set_rts(int state);
|
||||
void set_ready(bool ready);
|
||||
|
||||
int get_clock_mode();
|
||||
stop_bits_t get_stop_bits();
|
||||
@ -377,11 +372,15 @@ protected:
|
||||
int get_tx_word_length();
|
||||
|
||||
// receiver state
|
||||
util::fifo<uint8_t, 3> m_rx_data_fifo;
|
||||
util::fifo<uint8_t, 3> m_rx_error_fifo;
|
||||
uint8_t m_rx_error; // current receive error
|
||||
int m_rx_fifo_depth;
|
||||
uint32_t m_rx_data_fifo;
|
||||
uint32_t m_rx_error_fifo;
|
||||
|
||||
int m_rx_clock; // receive clock line state
|
||||
int m_rx_count; // clocks until next sample
|
||||
int m_rx_bit; // receive data bit (0 = start bit, 1 = LSB, etc.)
|
||||
uint16_t m_rx_sr; // receive shift register
|
||||
|
||||
int m_rx_clock; // receive clock pulse count
|
||||
int m_rx_first; // first character received
|
||||
int m_rx_break; // receive break condition
|
||||
uint8_t m_rx_rr0_latch; // read register 0 latched
|
||||
@ -439,15 +438,6 @@ public:
|
||||
dev.m_cputag = tag;
|
||||
}
|
||||
|
||||
static void configure_channels(device_t &device, int rxa, int txa, int rxb, int txb)
|
||||
{
|
||||
z80sio_device &dev = downcast<z80sio_device &>(device);
|
||||
dev.m_rxca = rxa;
|
||||
dev.m_txca = txa;
|
||||
dev.m_rxcb = rxb;
|
||||
dev.m_txcb = txb;
|
||||
}
|
||||
|
||||
DECLARE_READ8_MEMBER( cd_ba_r );
|
||||
DECLARE_WRITE8_MEMBER( cd_ba_w );
|
||||
DECLARE_READ8_MEMBER( ba_cd_r );
|
||||
@ -484,6 +474,7 @@ protected:
|
||||
z80sio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant);
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_resolve_objects() override;
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
@ -519,11 +510,6 @@ protected:
|
||||
required_device<z80sio_channel> m_chanB;
|
||||
|
||||
// internal state
|
||||
int m_rxca;
|
||||
int m_txca;
|
||||
int m_rxcb;
|
||||
int m_txcb;
|
||||
|
||||
devcb_write_line m_out_txda_cb;
|
||||
devcb_write_line m_out_dtra_cb;
|
||||
devcb_write_line m_out_rtsa_cb;
|
||||
|
@ -6065,8 +6065,10 @@ uint8_t saturn_state::get_odd_bit( void )
|
||||
|
||||
int saturn_state::get_vblank_start_position( void )
|
||||
{
|
||||
/* TODO: test says that second setting happens at 241, might need further investigation ... */
|
||||
const int d_vres[4] = { 240, 240, 256, 256 };
|
||||
// TODO: test says that second setting happens at 241, might need further investigation ...
|
||||
// also first one happens at 240, but needs mods in SMPC otherwise we get 2 credits at startup in shanhigw and sokyugrt
|
||||
// (i.e. make a special screen device that handles this for us)
|
||||
const int d_vres[4] = { 224, 240, 256, 256 };
|
||||
int vres_mask;
|
||||
int vblank_line;
|
||||
|
||||
|
@ -33,6 +33,7 @@ todo:
|
||||
- vdp engine -- make run at correct speed
|
||||
- vr/hr/fh flags: double-check all of that
|
||||
- make vdp engine work in exp. ram
|
||||
- fix save state support
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
|
@ -450,10 +450,11 @@ bool device_t::findit(bool isvalidation) const
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// start - start a device
|
||||
// resolve_objects - find objects referenced in
|
||||
// configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
void device_t::start()
|
||||
void device_t::resolve_objects()
|
||||
{
|
||||
// prepare the logerror buffer
|
||||
if (m_machine->allow_logging())
|
||||
@ -463,6 +464,20 @@ void device_t::start()
|
||||
if (!findit(false))
|
||||
throw emu_fatalerror("Missing some required objects, unable to proceed");
|
||||
|
||||
// allow implementation to do additional setup
|
||||
device_resolve_objects();
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// start - start a device
|
||||
//-------------------------------------------------
|
||||
|
||||
void device_t::start()
|
||||
{
|
||||
// prepare the logerror buffer
|
||||
if (m_machine->allow_logging())
|
||||
m_string_buffer.reserve(1024);
|
||||
|
||||
// let the interfaces do their pre-work
|
||||
for (device_interface &intf : interfaces())
|
||||
intf.interface_pre_start();
|
||||
@ -680,6 +695,18 @@ void device_t::device_reset_after_children()
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_resolve_objects - resolve objects that
|
||||
// may be needed for other devices to set
|
||||
// initial conditions at start time
|
||||
//-------------------------------------------------
|
||||
|
||||
void device_t::device_resolve_objects()
|
||||
{
|
||||
// do nothing by default
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_stop - clean up anything that needs to
|
||||
// happen before the running_machine goes away
|
||||
|
@ -541,6 +541,7 @@ public:
|
||||
protected:
|
||||
// miscellaneous helpers
|
||||
void set_machine(running_machine &machine);
|
||||
void resolve_objects();
|
||||
void start();
|
||||
void stop();
|
||||
void debug_setup();
|
||||
@ -557,6 +558,7 @@ protected:
|
||||
virtual ioport_constructor device_input_ports() const;
|
||||
virtual void device_config_complete();
|
||||
virtual void device_validity_check(validity_checker &valid) const ATTR_COLD;
|
||||
virtual void device_resolve_objects() ATTR_COLD;
|
||||
virtual void device_start() ATTR_COLD = 0;
|
||||
virtual void device_stop() ATTR_COLD;
|
||||
virtual void device_reset() ATTR_COLD;
|
||||
|
@ -325,35 +325,27 @@ INTERRUPT_GEN_MEMBER( driver_device::nmi_line_assert ) { device.execute().set_i
|
||||
//-------------------------------------------------
|
||||
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq0_line_hold ) { device.execute().set_input_line(0, HOLD_LINE); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq0_line_pulse ) { generic_pulse_irq_line(device.execute(), 0, 1); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq0_line_assert ) { device.execute().set_input_line(0, ASSERT_LINE); }
|
||||
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq1_line_hold ) { device.execute().set_input_line(1, HOLD_LINE); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq1_line_pulse ) { generic_pulse_irq_line(device.execute(), 1, 1); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq1_line_assert ) { device.execute().set_input_line(1, ASSERT_LINE); }
|
||||
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq2_line_hold ) { device.execute().set_input_line(2, HOLD_LINE); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq2_line_pulse ) { generic_pulse_irq_line(device.execute(), 2, 1); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq2_line_assert ) { device.execute().set_input_line(2, ASSERT_LINE); }
|
||||
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq3_line_hold ) { device.execute().set_input_line(3, HOLD_LINE); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq3_line_pulse ) { generic_pulse_irq_line(device.execute(), 3, 1); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq3_line_assert ) { device.execute().set_input_line(3, ASSERT_LINE); }
|
||||
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq4_line_hold ) { device.execute().set_input_line(4, HOLD_LINE); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq4_line_pulse ) { generic_pulse_irq_line(device.execute(), 4, 1); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq4_line_assert ) { device.execute().set_input_line(4, ASSERT_LINE); }
|
||||
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq5_line_hold ) { device.execute().set_input_line(5, HOLD_LINE); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq5_line_pulse ) { generic_pulse_irq_line(device.execute(), 5, 1); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq5_line_assert ) { device.execute().set_input_line(5, ASSERT_LINE); }
|
||||
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq6_line_hold ) { device.execute().set_input_line(6, HOLD_LINE); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq6_line_pulse ) { generic_pulse_irq_line(device.execute(), 6, 1); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq6_line_assert ) { device.execute().set_input_line(6, ASSERT_LINE); }
|
||||
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq7_line_hold ) { device.execute().set_input_line(7, HOLD_LINE); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq7_line_pulse ) { generic_pulse_irq_line(device.execute(), 7, 1); }
|
||||
INTERRUPT_GEN_MEMBER( driver_device::irq7_line_assert ) { device.execute().set_input_line(7, ASSERT_LINE); }
|
||||
|
||||
|
||||
|
@ -138,35 +138,27 @@ public:
|
||||
INTERRUPT_GEN_MEMBER( nmi_line_assert );
|
||||
|
||||
INTERRUPT_GEN_MEMBER( irq0_line_hold );
|
||||
INTERRUPT_GEN_MEMBER( irq0_line_pulse );
|
||||
INTERRUPT_GEN_MEMBER( irq0_line_assert );
|
||||
|
||||
INTERRUPT_GEN_MEMBER( irq1_line_hold );
|
||||
INTERRUPT_GEN_MEMBER( irq1_line_pulse );
|
||||
INTERRUPT_GEN_MEMBER( irq1_line_assert );
|
||||
|
||||
INTERRUPT_GEN_MEMBER( irq2_line_hold );
|
||||
INTERRUPT_GEN_MEMBER( irq2_line_pulse );
|
||||
INTERRUPT_GEN_MEMBER( irq2_line_assert );
|
||||
|
||||
INTERRUPT_GEN_MEMBER( irq3_line_hold );
|
||||
INTERRUPT_GEN_MEMBER( irq3_line_pulse );
|
||||
INTERRUPT_GEN_MEMBER( irq3_line_assert );
|
||||
|
||||
INTERRUPT_GEN_MEMBER( irq4_line_hold );
|
||||
INTERRUPT_GEN_MEMBER( irq4_line_pulse );
|
||||
INTERRUPT_GEN_MEMBER( irq4_line_assert );
|
||||
|
||||
INTERRUPT_GEN_MEMBER( irq5_line_hold );
|
||||
INTERRUPT_GEN_MEMBER( irq5_line_pulse );
|
||||
INTERRUPT_GEN_MEMBER( irq5_line_assert );
|
||||
|
||||
INTERRUPT_GEN_MEMBER( irq6_line_hold );
|
||||
INTERRUPT_GEN_MEMBER( irq6_line_pulse );
|
||||
INTERRUPT_GEN_MEMBER( irq6_line_assert );
|
||||
|
||||
INTERRUPT_GEN_MEMBER( irq7_line_hold );
|
||||
INTERRUPT_GEN_MEMBER( irq7_line_pulse );
|
||||
INTERRUPT_GEN_MEMBER( irq7_line_assert );
|
||||
|
||||
|
||||
|
@ -133,6 +133,7 @@ enum
|
||||
XTAL_11_8MHz = 11800000, /* IBM PC Music Feature Card */
|
||||
XTAL_11_9808MHz = 11980800, /* Luxor ABC 80 */
|
||||
XTAL_12MHz = 12000000, /* Extremely common, used on 100's of PCBs */
|
||||
XTAL_12_0576MHz = 12057600, /* Poly 1 (38400 * 314) */
|
||||
XTAL_12_096MHz = 12096000, /* Some early 80's Atari games */
|
||||
XTAL_12_288MHz = 12288000, /* Sega Model 3 digital audio board */
|
||||
XTAL_12_432MHz = 12432000, /* Kaneko Fly Boy/Fast Freddie Hardware */
|
||||
@ -150,6 +151,7 @@ enum
|
||||
XTAL_13_5168MHz = 13516800, /* Kontron KDT6 */
|
||||
XTAL_14MHz = 14000000,
|
||||
XTAL_14_112MHz = 14112000, /* Timex/Sinclair TS2068 */
|
||||
XTAL_14_192640MHz = 14192640, /* Reported by Central Data 2650 document, true xtal unchecked on PCB */
|
||||
XTAL_14_3MHz = 14300000, /* Agat-7 */
|
||||
XTAL_14_314MHz = 14314000, /* Taito TTL Board */
|
||||
XTAL_14_31818MHz = 14318181, /* Extremely common, used on 100's of PCBs (4x NTSC subcarrier) */
|
||||
@ -161,7 +163,7 @@ enum
|
||||
XTAL_15_468MHz = 15468480, /* Bank Panic h/w, Sega G80 */
|
||||
XTAL_15_8976MHz = 15897600, /* IAI Swyft */
|
||||
XTAL_15_92MHz = 15920000, /* HP Integral PC */
|
||||
XTAL_15_9744MHz = 15974400, /* Osborne 1 */
|
||||
XTAL_15_9744MHz = 15974400, /* Osborne 1 (9600 * 52 * 32) */
|
||||
XTAL_16MHz = 16000000, /* Extremely common, used on 100's of PCBs */
|
||||
XTAL_16_384MHz = 16384000,
|
||||
XTAL_16_4MHz = 16400000, /* MS 6102 */
|
||||
|
@ -974,6 +974,10 @@ void running_machine::logfile_callback(const char *buffer)
|
||||
|
||||
void running_machine::start_all_devices()
|
||||
{
|
||||
// resolve objects first to avoid messy start order dependencies
|
||||
for (device_t &device : device_iterator(root_device()))
|
||||
device.resolve_objects();
|
||||
|
||||
m_dummy_space.start();
|
||||
|
||||
// iterate through the devices
|
||||
|
@ -129,10 +129,9 @@ void n8080_state::spacefev_sound_pins_changed()
|
||||
{
|
||||
start_mono_flop(2, attotime::from_usec(550 * 22 * 33));
|
||||
}
|
||||
if (changes & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5)))
|
||||
{
|
||||
generic_pulse_irq_line(*m_audiocpu, 0, 2);
|
||||
}
|
||||
|
||||
bool irq_active = (~m_curr_sound_pins & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5))) != 0;
|
||||
m_audiocpu->set_input_line(INPUT_LINE_IRQ0, irq_active ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
@ -152,25 +151,22 @@ void n8080_state::sheriff_sound_pins_changed()
|
||||
{
|
||||
start_mono_flop(1, attotime::from_usec(550 * 33 * 33));
|
||||
}
|
||||
if (changes & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5)))
|
||||
{
|
||||
generic_pulse_irq_line(*m_audiocpu, 0, 2);
|
||||
}
|
||||
|
||||
bool irq_active = (~m_curr_sound_pins & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5))) != 0;
|
||||
m_audiocpu->set_input_line(INPUT_LINE_IRQ0, irq_active ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
void n8080_state::helifire_sound_pins_changed()
|
||||
{
|
||||
uint16_t changes = ~m_curr_sound_pins & m_prev_sound_pins;
|
||||
//uint16_t changes = ~m_curr_sound_pins & m_prev_sound_pins;
|
||||
|
||||
/* ((m_curr_sound_pins >> 0xa) & 1) not emulated */
|
||||
/* ((m_curr_sound_pins >> 0xb) & 1) not emulated */
|
||||
/* ((m_curr_sound_pins >> 0xc) & 1) not emulated */
|
||||
|
||||
if (changes & (1 << 6))
|
||||
{
|
||||
generic_pulse_irq_line(*m_audiocpu, 0, 2);
|
||||
}
|
||||
bool irq_active = (~m_curr_sound_pins & (1 << 6)) != 0;
|
||||
m_audiocpu->set_input_line(INPUT_LINE_IRQ0, irq_active ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
|
48
src/mame/drivers/acd.cpp
Normal file
48
src/mame/drivers/acd.cpp
Normal file
@ -0,0 +1,48 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:
|
||||
/***********************************************************************************************************************************
|
||||
|
||||
2017-10-28 Skeleton
|
||||
|
||||
Advanced Computer Design computer. CPU is WD9000. Some details at bitsavers.
|
||||
|
||||
************************************************************************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
//#include "cpu/mcs51/mcs51.h"
|
||||
|
||||
class acd_state : public driver_device
|
||||
{
|
||||
public:
|
||||
acd_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
// , maincpu(*this, "maincpu")
|
||||
{ }
|
||||
|
||||
protected:
|
||||
// required_device<i80c52_device> maincpu;
|
||||
};
|
||||
|
||||
static INPUT_PORTS_START( acd )
|
||||
INPUT_PORTS_END
|
||||
|
||||
//static ADDRESS_MAP_START( prg_map, AS_PROGRAM, 8, acd_state )
|
||||
//ADDRESS_MAP_END
|
||||
|
||||
static MACHINE_CONFIG_START( acd )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
ROM_START( acd )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "d9_cpu_c4_rev_2.4.2.bin", 0x000000, 0x000200, CRC(481b8d65) SHA1(b766b22282cd321c707c18137ddb4c133fd0ede4) )
|
||||
ROM_LOAD( "d9_cpu_c5.bin", 0x000000, 0x000200, CRC(481b8d65) SHA1(b766b22282cd321c707c18137ddb4c133fd0ede4) )
|
||||
ROM_LOAD( "dr.bin", 0x000000, 0x000020, CRC(a0baab49) SHA1(50b91bf00390c7923b8e03975c1c6fea3c153cd7) )
|
||||
ROM_LOAD( "btwph.bin", 0x000000, 0x000020, CRC(a48a80d1) SHA1(60490d1dbd01441ebb9a9860a98131d628d5e3f9) )
|
||||
ROM_LOAD( "btwpl.bin", 0x000000, 0x000020, CRC(0f6fb759) SHA1(7ab376865faf57841960bfcfd3e038219b5b66b6) )
|
||||
ROM_LOAD( "d7_cpu_b14_rev_1.2.bin", 0x000000, 0x000200, CRC(51b2bb18) SHA1(533ef263146c1e03e5ef30e792a669293f31a1d3) )
|
||||
ROM_LOAD( "d7_cpu_c4_rev_2.4.2.bin", 0x000000, 0x000200, CRC(b1b59b5f) SHA1(5c199836a59da78ab404de663d306d0cc10aaf83) )
|
||||
ROM_LOAD( "d7_cpu_c5.bin", 0x000000, 0x000200, CRC(7db9ecca) SHA1(535a34608e59c72d13434e3fc2892db9841a0f60) )
|
||||
ROM_LOAD( "d9_cpu_b14_rev_1.2.bin", 0x000000, 0x000200, CRC(5572ff8b) SHA1(9e8158c338b2798f7fb1d9c4fa6dd99592d2fae3) )
|
||||
ROM_END
|
||||
|
||||
COMP( 198?, acd, 0, 0, acd, acd, acd_state, 0, "Advanced Computer Design", "unknown ACD computer", MACHINE_IS_SKELETON )
|
@ -25,6 +25,7 @@
|
||||
|
||||
#include "emu.h"
|
||||
#include "bus/rs232/rs232.h"
|
||||
//#include "bus/s100/s100.h"
|
||||
#include "cpu/i8085/i8085.h"
|
||||
#include "machine/6850acia.h"
|
||||
#include "machine/clock.h"
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "cpu/z80/z80daisy.h"
|
||||
#include "machine/z80ctc.h"
|
||||
#include "machine/z80pio.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80dma.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
@ -95,7 +96,7 @@ static ADDRESS_MAP_START(altos5_io, AS_IO, 8, altos5_state)
|
||||
AM_RANGE(0x14, 0x17) AM_WRITE(port14_w)
|
||||
AM_RANGE(0x1c, 0x1f) AM_DEVREADWRITE("dart", z80dart_device, ba_cd_r, ba_cd_w)
|
||||
//AM_RANGE(0x20, 0x23) // Hard drive
|
||||
AM_RANGE(0x2c, 0x2f) AM_DEVREADWRITE("sio", z80sio0_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x2c, 0x2f) AM_DEVREADWRITE("sio", z80sio_device, ba_cd_r, ba_cd_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/* Input ports */
|
||||
@ -380,29 +381,28 @@ static MACHINE_CONFIG_START( altos5 )
|
||||
// Channel B - printer
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("sio", Z80SIO0, XTAL_8MHz / 2)
|
||||
MCFG_DEVICE_ADD("sio", Z80SIO, XTAL_8MHz / 2)
|
||||
// Channel A - console #2
|
||||
// WRDY connects to (altos5_state, fdc_intrq_w)
|
||||
// Channel B - console #1
|
||||
MCFG_Z80DART_OUT_TXDB_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_Z80DART_OUT_DTRB_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
MCFG_Z80DART_OUT_RTSB_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80SIO_OUT_TXDB_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_Z80SIO_OUT_DTRB_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
MCFG_Z80SIO_OUT_RTSB_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_8MHz / 2)
|
||||
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("sio", z80dart_device, rxtxcb_w)) // SIO Ch B
|
||||
MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("sio", z80sio_device, rxtxcb_w)) // SIO Ch B
|
||||
MCFG_Z80CTC_ZC1_CB(DEVWRITELINE("dart", z80dart_device, txca_w)) // Z80DART Ch A, SIO Ch A
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("dart" ,z80dart_device, rxca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio" ,z80sio0_device, txca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio" ,z80sio0_device, rxca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio" ,z80sio_device, txca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio" ,z80sio_device, rxca_w))
|
||||
MCFG_Z80CTC_ZC2_CB(DEVWRITELINE("dart", z80dart_device, rxtxcb_w)) // Z80DART Ch B
|
||||
|
||||
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal")
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio", z80sio0_device, rxb_w))
|
||||
MCFG_RS232_DCD_HANDLER(DEVWRITELINE("sio", z80sio0_device, dcdb_w))
|
||||
MCFG_RS232_RI_HANDLER(DEVWRITELINE("sio", z80sio0_device, rib_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("sio", z80sio0_device, ctsb_w))
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio", z80sio_device, rxb_w))
|
||||
MCFG_RS232_DCD_HANDLER(DEVWRITELINE("sio", z80sio_device, dcdb_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("sio", z80sio_device, ctsb_w))
|
||||
|
||||
MCFG_FD1797_ADD("fdc", XTAL_8MHz / 8)
|
||||
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(altos5_state, fdc_intrq_w))
|
||||
|
40
src/mame/drivers/ampscarp.cpp
Normal file
40
src/mame/drivers/ampscarp.cpp
Normal file
@ -0,0 +1,40 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:
|
||||
/***********************************************************************************************************************************
|
||||
|
||||
2017-10-29 Skeleton
|
||||
|
||||
Motorola AMPS Car Phone.
|
||||
|
||||
************************************************************************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
//#include "cpu/mcs51/mcs51.h"
|
||||
|
||||
class ampscarp_state : public driver_device
|
||||
{
|
||||
public:
|
||||
ampscarp_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
// , maincpu(*this, "maincpu")
|
||||
{ }
|
||||
|
||||
protected:
|
||||
// required_device<i80c52_device> maincpu;
|
||||
};
|
||||
|
||||
static INPUT_PORTS_START( ampscarp )
|
||||
INPUT_PORTS_END
|
||||
|
||||
//static ADDRESS_MAP_START( prg_map, AS_PROGRAM, 8, ampscarp_state )
|
||||
//ADDRESS_MAP_END
|
||||
|
||||
static MACHINE_CONFIG_START( ampscarp )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
ROM_START( ampscarp )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||
ROM_LOAD( "motorola_amps_car_phone_dump.bin", 0x0000, 0x20000, CRC(677ec85e) SHA1(219611b6c4b16461705e2df61d79a0f7ac8f529f) )
|
||||
ROM_END
|
||||
|
||||
COMP( 1998, ampscarp, 0, 0, ampscarp, ampscarp, ampscarp_state, 0, "Motorola", "AMPS Car Phone", MACHINE_IS_SKELETON )
|
@ -78,6 +78,7 @@ II Plus: RAM options reduced to 16/32/48 KB.
|
||||
#include "bus/a2bus/ramcard16k.h"
|
||||
#include "bus/a2bus/timemasterho.h"
|
||||
#include "bus/a2bus/ssprite.h"
|
||||
#include "bus/a2bus/ssbapple.h"
|
||||
|
||||
#include "screen.h"
|
||||
#include "softlist.h"
|
||||
@ -1321,6 +1322,7 @@ static SLOT_INTERFACE_START(apple2_cards)
|
||||
SLOT_INTERFACE("ezcgi9938", A2BUS_EZCGI_9938) /* E-Z Color Graphics Interface (TMS9938) */
|
||||
SLOT_INTERFACE("ezcgi9958", A2BUS_EZCGI_9958) /* E-Z Color Graphics Interface (TMS9958) */
|
||||
SLOT_INTERFACE("ssprite", A2BUS_SSPRITE) /* Synetix SuperSprite Board */
|
||||
SLOT_INTERFACE("ssbapple", A2BUS_SSBAPPLE) /* SSB Apple speech board */
|
||||
// SLOT_INTERFACE("magicmusician", A2BUS_MAGICMUSICIAN) /* Magic Musician Card */
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
|
@ -148,6 +148,7 @@ Address bus A0-A11 is Y0-Y11
|
||||
#include "bus/a2bus/a2eext80col.h"
|
||||
#include "bus/a2bus/a2eramworks3.h"
|
||||
#include "bus/a2bus/ssprite.h"
|
||||
#include "bus/a2bus/ssbapple.h"
|
||||
|
||||
#include "bus/rs232/rs232.h"
|
||||
|
||||
@ -3743,6 +3744,7 @@ static SLOT_INTERFACE_START(apple2_cards)
|
||||
// SLOT_INTERFACE("magicmusician", A2BUS_MAGICMUSICIAN) /* Magic Musician Card */
|
||||
SLOT_INTERFACE("pcxport", A2BUS_PCXPORTER) /* Applied Engineering PC Transporter */
|
||||
SLOT_INTERFACE("ssprite", A2BUS_SSPRITE) /* Synetix SuperSprite Board */
|
||||
SLOT_INTERFACE("ssbapple", A2BUS_SSBAPPLE) /* SSB Apple speech board */
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
static SLOT_INTERFACE_START(apple2eaux_cards)
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include "cpu/i8089/i8089.h"
|
||||
#include "formats/apridisk.h"
|
||||
#include "imagedev/flopdrv.h"
|
||||
#include "machine/clock.h"
|
||||
#include "machine/ram.h"
|
||||
#include "machine/74153.h"
|
||||
#include "machine/i8255.h"
|
||||
@ -412,8 +413,10 @@ static MACHINE_CONFIG_START( apricot )
|
||||
MCFG_TTL153_ZA_CB(DEVWRITELINE("ic15", z80sio_device, rxca_w))
|
||||
MCFG_TTL153_ZB_CB(DEVWRITELINE("ic15", z80sio_device, txca_w))
|
||||
|
||||
MCFG_CLOCK_ADD("ic15_rxtxcb", XTAL_4MHz / 16)
|
||||
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("ic15", z80sio_device, rxtxcb_w))
|
||||
|
||||
MCFG_DEVICE_ADD("ic15", Z80SIO, XTAL_15MHz / 6)
|
||||
MCFG_Z80SIO_OFFSETS(0, 0, XTAL_4MHz / 16, XTAL_4MHz / 16)
|
||||
MCFG_Z80SIO_CPU("ic91")
|
||||
MCFG_Z80SIO_OUT_TXDA_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_Z80SIO_OUT_DTRA_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
|
@ -35,7 +35,7 @@
|
||||
#include "machine/input_merger.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
#include "machine/z80ctc.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "screen.h"
|
||||
|
||||
|
||||
@ -82,7 +82,7 @@ public:
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<z80ctc_device> m_ctc;
|
||||
required_device<z80sio2_device> m_sio;
|
||||
required_device<z80sio_device> m_sio;
|
||||
required_device<wd2797_device> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
required_device<floppy_connector> m_floppy1;
|
||||
@ -266,7 +266,7 @@ static ADDRESS_MAP_START( act_f1_io, AS_IO, 16, f1_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x000f) AM_WRITE8(system_w, 0xffff)
|
||||
AM_RANGE(0x0010, 0x0017) AM_DEVREADWRITE8(Z80CTC_TAG, z80ctc_device, read, write, 0x00ff)
|
||||
AM_RANGE(0x0020, 0x0027) AM_DEVREADWRITE8(Z80SIO2_TAG, z80sio2_device, ba_cd_r, ba_cd_w, 0x00ff)
|
||||
AM_RANGE(0x0020, 0x0027) AM_DEVREADWRITE8(Z80SIO2_TAG, z80sio_device, ba_cd_r, ba_cd_w, 0x00ff)
|
||||
// AM_RANGE(0x0030, 0x0031) AM_WRITE8(ctc_ack_w, 0x00ff)
|
||||
AM_RANGE(0x0040, 0x0047) AM_DEVREADWRITE8(WD2797_TAG, wd2797_device, read, write, 0x00ff)
|
||||
// AM_RANGE(0x01e0, 0x01ff) winchester
|
||||
@ -353,8 +353,8 @@ static MACHINE_CONFIG_START( act_f1 )
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD(APRICOT_KEYBOARD_TAG, APRICOT_KEYBOARD, 0)
|
||||
|
||||
MCFG_DEVICE_ADD(Z80SIO2_TAG, Z80SIO2, 2500000)
|
||||
MCFG_Z80DART_OUT_INT_CB(DEVWRITELINE("irqs", input_merger_device, in_w<0>))
|
||||
MCFG_DEVICE_ADD(Z80SIO2_TAG, Z80SIO, 2500000)
|
||||
MCFG_Z80SIO_OUT_INT_CB(DEVWRITELINE("irqs", input_merger_device, in_w<0>))
|
||||
|
||||
MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, 2500000)
|
||||
MCFG_Z80CTC_INTR_CB(DEVWRITELINE("irqs", input_merger_device, in_w<1>))
|
||||
@ -362,7 +362,7 @@ static MACHINE_CONFIG_START( act_f1 )
|
||||
MCFG_Z80CTC_ZC2_CB(WRITELINE(f1_state, ctc_z2_w))
|
||||
|
||||
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(DEVWRITELINE(Z80SIO2_TAG, z80dart_device, ctsa_w))
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(DEVWRITELINE(Z80SIO2_TAG, z80sio_device, ctsa_w))
|
||||
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
|
||||
|
||||
|
@ -35,7 +35,7 @@
|
||||
#include "machine/pit8253.h"
|
||||
#include "machine/ram.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "sound/sn76496.h"
|
||||
#include "video/mc6845.h"
|
||||
#include "screen.h"
|
||||
@ -111,7 +111,7 @@ public:
|
||||
required_device<am9517a_device> m_dmac;
|
||||
required_device<pic8259_device> m_pic;
|
||||
required_device<pit8253_device> m_pit;
|
||||
required_device<z80dart_device> m_sio;
|
||||
required_device<z80sio_device> m_sio;
|
||||
required_device<wd2797_device> m_fdc;
|
||||
required_device<mc6845_device> m_crtc;
|
||||
required_device<ram_device> m_ram;
|
||||
@ -435,7 +435,7 @@ static ADDRESS_MAP_START( fp_io, AS_IO, 16, fp_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x000, 0x007) AM_DEVREADWRITE8(WD2797_TAG, wd2797_device, read, write, 0x00ff)
|
||||
AM_RANGE(0x008, 0x00f) AM_DEVREADWRITE8(I8253A5_TAG, pit8253_device, read, write, 0x00ff)
|
||||
AM_RANGE(0x018, 0x01f) AM_DEVREADWRITE8(Z80SIO0_TAG, z80sio0_device, ba_cd_r, ba_cd_w, 0x00ff)
|
||||
AM_RANGE(0x018, 0x01f) AM_DEVREADWRITE8(Z80SIO0_TAG, z80sio_device, ba_cd_r, ba_cd_w, 0x00ff)
|
||||
AM_RANGE(0x020, 0x021) AM_DEVWRITE8("cent_data_out", output_latch_device, write, 0x00ff)
|
||||
AM_RANGE(0x022, 0x023) AM_WRITE8(pint_clr_w, 0x00ff)
|
||||
AM_RANGE(0x024, 0x025) AM_READ8(prtr_snd_r, 0x00ff)
|
||||
@ -634,8 +634,8 @@ static MACHINE_CONFIG_START( fp )
|
||||
MCFG_PIT8253_CLK1(2000000)
|
||||
MCFG_PIT8253_CLK2(2000000)
|
||||
|
||||
MCFG_DEVICE_ADD(Z80SIO0_TAG, Z80SIO0, 2500000)
|
||||
MCFG_Z80DART_OUT_INT_CB(DEVWRITELINE(I8259A_TAG, pic8259_device, ir4_w))
|
||||
MCFG_DEVICE_ADD(Z80SIO0_TAG, Z80SIO, 2500000)
|
||||
MCFG_Z80SIO_OUT_INT_CB(DEVWRITELINE(I8259A_TAG, pic8259_device, ir4_w))
|
||||
|
||||
MCFG_WD2797_ADD(WD2797_TAG, 2000000)
|
||||
MCFG_WD_FDC_INTRQ_CALLBACK(DEVWRITELINE(I8259A_TAG, pic8259_device, ir1_w))
|
||||
|
@ -43,11 +43,23 @@
|
||||
* nnnnY - I/O port receive (nnnn = address of data loaded)
|
||||
* Z - Auto Disk Test (1Z for drive B)
|
||||
*
|
||||
* For the 8086 board (will display an 'x' if the 8086 board is not installed):
|
||||
* [ - 8086 RAM Test
|
||||
* ] - SCC Test
|
||||
* ( - GPIB Listener/Talker Test
|
||||
* ) - GPIB Controller Test
|
||||
*
|
||||
* The Attache 8:16 is an upgraded Attache adding an 8086 (+ optional 8087) board with its own 256kB of RAM,
|
||||
* and optionally a GPIB controller (TMS9914A) and serial synchronous port (Z8530 SCC). It also has modifications
|
||||
* to the main Z80 board, specifically the display circuitry, adding a high-resolution display, and replacing
|
||||
* the character ROM with a larger ROM containing an IBM character set.
|
||||
* It effectively allows the Attache to run MS-DOS and use a 10MB hard disk.
|
||||
*
|
||||
* TODO:
|
||||
* - Keyboard repeat
|
||||
* - Get at least some of the system tests to pass
|
||||
* - and probably lots more I've forgotten, too.
|
||||
* - implement Z80-8086 comms on the 8:16
|
||||
*
|
||||
*/
|
||||
|
||||
@ -61,8 +73,9 @@
|
||||
#include "machine/ram.h"
|
||||
#include "machine/upd765.h"
|
||||
#include "machine/z80ctc.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "machine/z80pio.h"
|
||||
#include "cpu/i86/i86.h"
|
||||
#include "sound/ay8910.h"
|
||||
#include "video/tms9927.h"
|
||||
|
||||
@ -172,7 +185,7 @@ private:
|
||||
required_device<msm5832_device> m_rtc;
|
||||
required_device<ay8912_device> m_psg;
|
||||
required_device<upd765a_device> m_fdc;
|
||||
required_device<z80sio0_device> m_sio;
|
||||
required_device<z80sio_device> m_sio;
|
||||
required_device<z80pio_device> m_pio;
|
||||
required_device<z80ctc_device> m_ctc;
|
||||
required_device<tms9927_device> m_crtc;
|
||||
@ -215,6 +228,17 @@ private:
|
||||
uint8_t m_memmap;
|
||||
};
|
||||
|
||||
class attache816_state : public attache_state
|
||||
{
|
||||
public:
|
||||
attache816_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: attache_state(mconfig, type, tag),
|
||||
m_extcpu(*this,"extcpu")
|
||||
{ }
|
||||
private:
|
||||
required_device<cpu_device> m_extcpu;
|
||||
};
|
||||
|
||||
// Attributes (based on schematics):
|
||||
// bit 0 = ALT
|
||||
// bit 1 = RW
|
||||
@ -285,7 +309,7 @@ uint32_t attache_state::screen_update(screen_device &screen, bitmap_rgb32 &bitma
|
||||
|
||||
for(scan=0;scan<10;scan++) // 10 scanlines per line
|
||||
{
|
||||
data = m_char_rom->base()[ch*16+scan];
|
||||
data = m_char_rom->base()[(ch*16+scan)];
|
||||
if((m_attr_ram[(vy*128)+x] & 0xc0) != 0xc0) // if not strikethrough
|
||||
{
|
||||
if(m_attr_ram[(vy*128)+x] & 0x40) // superscript
|
||||
@ -743,7 +767,7 @@ WRITE_LINE_MEMBER( attache_state::fdc_dack_w )
|
||||
{
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( attache_map , AS_PROGRAM, 8, attache_state)
|
||||
static ADDRESS_MAP_START( attache_map, AS_PROGRAM, 8, attache_state)
|
||||
AM_RANGE(0x0000,0x1fff) AM_RAMBANK("bank1")
|
||||
AM_RANGE(0x2000,0x3fff) AM_RAMBANK("bank2")
|
||||
AM_RANGE(0x4000,0x5fff) AM_RAMBANK("bank3")
|
||||
@ -754,11 +778,11 @@ static ADDRESS_MAP_START( attache_map , AS_PROGRAM, 8, attache_state)
|
||||
AM_RANGE(0xe000,0xffff) AM_RAMBANK("bank8")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( attache_io , AS_IO, 8, attache_state)
|
||||
static ADDRESS_MAP_START( attache_io, AS_IO, 8, attache_state)
|
||||
AM_RANGE(0xe0, 0xed) AM_DEVREADWRITE("dma",am9517a_device,read,write) AM_MIRROR(0xff00)
|
||||
AM_RANGE(0xee, 0xee) AM_WRITE(display_command_w) AM_MIRROR(0xff00)
|
||||
AM_RANGE(0xef, 0xef) AM_READWRITE(dma_mask_r, dma_mask_w) AM_MIRROR(0xff00)
|
||||
AM_RANGE(0xe6, 0xe7) AM_DEVREADWRITE("sio",z80sio0_device,ba_cd_r, ba_cd_w) AM_MIRROR(0xff00)
|
||||
AM_RANGE(0xe6, 0xe7) AM_DEVREADWRITE("sio",z80sio_device,ba_cd_r, ba_cd_w) AM_MIRROR(0xff00)
|
||||
AM_RANGE(0xf4, 0xf7) AM_DEVREADWRITE("ctc",z80ctc_device,read,write) AM_MIRROR(0xff00)
|
||||
AM_RANGE(0xf8, 0xfb) AM_DEVREADWRITE("pio",z80pio_device,read_alt,write_alt) AM_MIRROR(0xff00)
|
||||
AM_RANGE(0xfc, 0xfd) AM_DEVICE("fdc",upd765a_device,map) AM_MIRROR(0xff00)
|
||||
@ -766,6 +790,33 @@ static ADDRESS_MAP_START( attache_io , AS_IO, 8, attache_state)
|
||||
AM_RANGE(0xff, 0xff) AM_READWRITE(memmap_r, memmap_w) AM_MIRROR(0xff00)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( attache816_io, AS_IO, 8, attache_state)
|
||||
// 0xb8 - 8086 comms port (connects to PPI port A)
|
||||
// 0xb9 - Status/Control
|
||||
AM_RANGE(0xe0, 0xed) AM_DEVREADWRITE("dma",am9517a_device,read,write) AM_MIRROR(0xff00)
|
||||
AM_RANGE(0xee, 0xee) AM_WRITE(display_command_w) AM_MIRROR(0xff00)
|
||||
AM_RANGE(0xef, 0xef) AM_READWRITE(dma_mask_r, dma_mask_w) AM_MIRROR(0xff00)
|
||||
AM_RANGE(0xe6, 0xe7) AM_DEVREADWRITE("sio",z80sio_device,ba_cd_r, ba_cd_w) AM_MIRROR(0xff00)
|
||||
AM_RANGE(0xf4, 0xf7) AM_DEVREADWRITE("ctc",z80ctc_device,read,write) AM_MIRROR(0xff00)
|
||||
AM_RANGE(0xf8, 0xfb) AM_DEVREADWRITE("pio",z80pio_device,read_alt,write_alt) AM_MIRROR(0xff00)
|
||||
AM_RANGE(0xfc, 0xfd) AM_DEVICE("fdc",upd765a_device,map) AM_MIRROR(0xff00)
|
||||
AM_RANGE(0xfe, 0xfe) AM_READWRITE(display_data_r, display_data_w) AM_SELECT(0xff00)
|
||||
AM_RANGE(0xff, 0xff) AM_READWRITE(memmap_r, memmap_w) AM_MIRROR(0xff00)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( attache_x86_map, AS_PROGRAM, 16, attache_state)
|
||||
AM_RANGE(0x00000, 0x3ffff) AM_RAM
|
||||
AM_RANGE(0xb0000, 0xbffff) AM_NOP // triggers IRQ?
|
||||
AM_RANGE(0xfe000, 0xfffff) AM_ROM AM_REGION("x86bios",0x0000)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( attache_x86_io, AS_IO, 16, attache_state)
|
||||
// 0x100-0x104 - i8255 PPI
|
||||
// 0x108/9 - Set/Clear IBF IRQ enable
|
||||
// 0x10c/d - Set/Clear OBF IRQ enable
|
||||
AM_RANGE(0x104, 0x105) AM_NOP
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static INPUT_PORTS_START(attache)
|
||||
PORT_START("row0")
|
||||
PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("BS") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
|
||||
@ -919,6 +970,71 @@ static MACHINE_CONFIG_START( attache )
|
||||
MCFG_Z80_DAISY_CHAIN(attache_daisy_chain)
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(60))
|
||||
|
||||
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green())
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(64)) /* not accurate */
|
||||
MCFG_SCREEN_SIZE(640,240)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(attache_state, screen_update)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(DEVWRITELINE("ctc", z80ctc_device, trg2))
|
||||
|
||||
MCFG_PALETTE_ADD_MONOCHROME_HIGHLIGHT("palette")
|
||||
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
MCFG_SOUND_ADD("psg", AY8912, XTAL_8MHz / 4)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
|
||||
MCFG_MSM5832_ADD("rtc",XTAL_32_768kHz)
|
||||
|
||||
MCFG_DEVICE_ADD("pio", Z80PIO, XTAL_8MHz/26)
|
||||
MCFG_Z80PIO_IN_PA_CB(READ8(attache_state, pio_portA_r))
|
||||
MCFG_Z80PIO_OUT_PA_CB(WRITE8(attache_state, pio_portA_w))
|
||||
MCFG_Z80PIO_IN_PB_CB(READ8(attache_state, pio_portB_r))
|
||||
MCFG_Z80PIO_OUT_PB_CB(WRITE8(attache_state, pio_portB_w))
|
||||
|
||||
MCFG_DEVICE_ADD("sio", Z80SIO, XTAL_8MHz / 26)
|
||||
|
||||
MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_8MHz / 4)
|
||||
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("dma", AM9517A, XTAL_8MHz / 4)
|
||||
MCFG_AM9517A_OUT_HREQ_CB(WRITELINE(attache_state, hreq_w))
|
||||
MCFG_AM9517A_OUT_EOP_CB(WRITELINE(attache_state, eop_w))
|
||||
MCFG_AM9517A_IN_MEMR_CB(READ8(attache_state, dma_mem_r))
|
||||
MCFG_AM9517A_OUT_MEMW_CB(WRITE8(attache_state, dma_mem_w))
|
||||
MCFG_AM9517A_IN_IOR_0_CB(READ8(attache_state, fdc_dma_r))
|
||||
MCFG_AM9517A_OUT_IOW_0_CB(WRITE8(attache_state, fdc_dma_w))
|
||||
// MCFG_AM9517A_OUT_DACK_0_CB(WRITELINE(attache_state, fdc_dack_w))
|
||||
|
||||
MCFG_UPD765A_ADD("fdc", true, true)
|
||||
MCFG_UPD765_INTRQ_CALLBACK(DEVWRITELINE("ctc", z80ctc_device, trg3))
|
||||
MCFG_UPD765_DRQ_CALLBACK(DEVWRITELINE("dma", am9517a_device, dreq0_w)) MCFG_DEVCB_INVERT
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", attache_floppies, "525dd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:1", attache_floppies, "525dd", floppy_image_device::default_floppy_formats)
|
||||
|
||||
MCFG_DEVICE_ADD("crtc", TMS9927, 12324000)
|
||||
MCFG_TMS9927_CHAR_WIDTH(8)
|
||||
|
||||
MCFG_NVRAM_ADD_0FILL("nvram")
|
||||
|
||||
MCFG_RAM_ADD(RAM_TAG)
|
||||
MCFG_RAM_DEFAULT_SIZE("64k")
|
||||
|
||||
MCFG_SOFTWARE_LIST_ADD("disk_list","attache")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( attache816 )
|
||||
MCFG_CPU_ADD("maincpu",Z80,XTAL_8MHz / 2)
|
||||
MCFG_CPU_PROGRAM_MAP(attache_map)
|
||||
MCFG_CPU_IO_MAP(attache816_io)
|
||||
MCFG_Z80_DAISY_CHAIN(attache_daisy_chain)
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(60))
|
||||
|
||||
MCFG_CPU_ADD("extcpu",I8086,XTAL_24MHz / 3)
|
||||
MCFG_CPU_PROGRAM_MAP(attache_x86_map)
|
||||
MCFG_CPU_IO_MAP(attache_x86_io)
|
||||
|
||||
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green())
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
@ -942,7 +1058,7 @@ static MACHINE_CONFIG_START( attache )
|
||||
MCFG_Z80PIO_IN_PB_CB(READ8(attache_state, pio_portB_r))
|
||||
MCFG_Z80PIO_OUT_PB_CB(WRITE8(attache_state, pio_portB_w))
|
||||
|
||||
MCFG_DEVICE_ADD("sio", Z80SIO0, XTAL_8MHz / 26)
|
||||
MCFG_DEVICE_ADD("sio", Z80SIO, XTAL_8MHz / 26)
|
||||
|
||||
MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_8MHz / 4)
|
||||
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
@ -978,10 +1094,12 @@ ROM_START( attache )
|
||||
ROM_FILL(0x0000,0x10000,0x00)
|
||||
|
||||
ROM_REGION(0x1000, "boot", 0)
|
||||
ROM_SYSTEM_BIOS(0, "u252revg", "Boot Rev.G")
|
||||
ROMX_LOAD("u252revg.bin", 0x0000, 0x1000, CRC(113136b7) SHA1(845afd9ed2fd2b28c39921d8f2ba99e5295e0330), ROM_BIOS(1))
|
||||
ROM_SYSTEM_BIOS(1, "u252revf", "Boot Rev.F")
|
||||
ROMX_LOAD("u252revf.bin", 0x0000, 0x1000, CRC(b49eb3b2) SHA1(5b1b348301b2f76b1f250ba68bb8733fc15d18c2), ROM_BIOS(2))
|
||||
ROM_SYSTEM_BIOS(0, "u252revh", "Boot Rev.H")
|
||||
ROMX_LOAD("u252revh.bin", 0x0000, 0x1000, CRC(a06f0bdf) SHA1(d526cf23bfe0f8f9bcde812cd864a2a4cbc8b673), ROM_BIOS(1))
|
||||
ROM_SYSTEM_BIOS(1, "u252revg", "Boot Rev.G")
|
||||
ROMX_LOAD("u252revg.bin", 0x0000, 0x1000, CRC(113136b7) SHA1(845afd9ed2fd2b28c39921d8f2ba99e5295e0330), ROM_BIOS(2))
|
||||
ROM_SYSTEM_BIOS(2, "u252revf", "Boot Rev.F")
|
||||
ROMX_LOAD("u252revf.bin", 0x0000, 0x1000, CRC(b49eb3b2) SHA1(5b1b348301b2f76b1f250ba68bb8733fc15d18c2), ROM_BIOS(3))
|
||||
|
||||
ROM_REGION(0x1000, "video", 0)
|
||||
ROM_LOAD("u416vid.bin", 0x0000, 0x1000, CRC(e376ec59) SHA1(7b9e9db575e77ce2f479eb9ae913528e4f0d125d) )
|
||||
@ -994,7 +1112,40 @@ ROM_START( attache )
|
||||
|
||||
ROM_REGION(0x100, "floppy", 0)
|
||||
ROM_LOAD("u630.bin", 0x0000, 0x0100, CRC(f7a5c821) SHA1(fea07d9ac7e4e5f4f72aa7b2159deaedbd662ead) )
|
||||
|
||||
ROM_END
|
||||
|
||||
ROM_START( attache816 )
|
||||
ROM_REGION(0x10000, "maincpu", 0)
|
||||
ROM_FILL(0x0000,0x10000,0x00)
|
||||
|
||||
ROM_REGION(0x1000, "boot", 0)
|
||||
ROM_SYSTEM_BIOS(0, "u252revh", "Boot Rev.H")
|
||||
ROMX_LOAD("u252revh.bin", 0x0000, 0x1000, CRC(a06f0bdf) SHA1(d526cf23bfe0f8f9bcde812cd864a2a4cbc8b673), ROM_BIOS(1))
|
||||
ROM_SYSTEM_BIOS(1, "u252revg", "Boot Rev.G")
|
||||
ROMX_LOAD("u252revg.bin", 0x0000, 0x1000, CRC(113136b7) SHA1(845afd9ed2fd2b28c39921d8f2ba99e5295e0330), ROM_BIOS(2))
|
||||
ROM_SYSTEM_BIOS(2, "u252revf", "Boot Rev.F")
|
||||
ROMX_LOAD("u252revf.bin", 0x0000, 0x1000, CRC(b49eb3b2) SHA1(5b1b348301b2f76b1f250ba68bb8733fc15d18c2), ROM_BIOS(3))
|
||||
|
||||
ROM_REGION(0x2000, "video", 0)
|
||||
ROM_LOAD("u416vid2.bin", 0x0000, 0x2000, CRC(0bdaed8d) SHA1(eee1e8505906e7c3587ecdf9dd9227a2a3b3cdd4) )
|
||||
|
||||
ROM_REGION(0x100, "attr", 0)
|
||||
ROM_LOAD("u413.bin", 0x0000, 0x0100, CRC(5b60e622) SHA1(43450c747db1394466eabe5c26a61bf75a4f3b52) )
|
||||
|
||||
ROM_REGION(0x200, "iosel", 0)
|
||||
ROM_LOAD("u110.bin", 0x0000, 0x0200, CRC(70dd255a) SHA1(36dcce07a2c14eefc069433459c422341bd47efb) )
|
||||
|
||||
ROM_REGION(0x100, "floppy", 0)
|
||||
ROM_LOAD("u630.bin", 0x0000, 0x0100, CRC(f7a5c821) SHA1(fea07d9ac7e4e5f4f72aa7b2159deaedbd662ead) )
|
||||
|
||||
// chip locations based on schematics
|
||||
ROM_REGION(0x2000, "x86bios", 0)
|
||||
ROM_LOAD16_BYTE("u4.bin", 0x0000, 0x1000, CRC(658c8f93) SHA1(ce4b388af5b73884194f548afa706964305462f7) )
|
||||
ROM_LOAD16_BYTE("u9.bin", 0x0001, 0x1000, CRC(cc4cd938) SHA1(6a1d316628641f9b4de5c8c46f9430ef5bd6120f) )
|
||||
|
||||
ROM_END
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT DEVICE INIT COMPANY FULLNAME FLAGS
|
||||
COMP( 1982, attache, 0, 0, attache, attache, attache_state, 0, "Otrona", "Attach\xC3\xA9", MACHINE_IMPERFECT_GRAPHICS )
|
||||
COMP( 1983, attache816, attache,0, attache816, attache, attache816_state, 0, "Otrona", "Attach\xC3\xA9 8:16", MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
@ -53,7 +53,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( aussiebyte_io, AS_IO, 8, aussiebyte_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("sio1", z80sio0_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("sio1", z80sio_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("pio1", z80pio_device, read, write)
|
||||
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ctc", z80ctc_device, read, write)
|
||||
AM_RANGE(0x0c, 0x0f) AM_NOP // winchester interface
|
||||
@ -68,7 +68,7 @@ static ADDRESS_MAP_START( aussiebyte_io, AS_IO, 8, aussiebyte_state )
|
||||
AM_RANGE(0x1b, 0x1b) AM_WRITE(port1b_w) // winchester control
|
||||
AM_RANGE(0x1c, 0x1f) AM_WRITE(port1c_w) // gpebh select
|
||||
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("pio2", z80pio_device, read, write)
|
||||
AM_RANGE(0x24, 0x27) AM_DEVREADWRITE("sio2", z80sio0_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x24, 0x27) AM_DEVREADWRITE("sio2", z80sio_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x28, 0x28) AM_READ(port28_r) AM_DEVWRITE("votrax", votrax_sc01_device, write)
|
||||
AM_RANGE(0x2c, 0x2c) AM_DEVWRITE("votrax", votrax_sc01_device, inflection_w)
|
||||
AM_RANGE(0x30, 0x30) AM_WRITE(address_w)
|
||||
@ -368,29 +368,8 @@ static const z80_daisy_config daisy_chain_intf[] =
|
||||
************************************************************/
|
||||
|
||||
// baud rate generator. All inputs are 1.2288MHz.
|
||||
WRITE_LINE_MEMBER( aussiebyte_state::clock_w )
|
||||
{
|
||||
m_ctc->trg0(state);
|
||||
m_ctc->trg1(state);
|
||||
m_ctc->trg2(state);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( aussiebyte_state::ctc_z0_w )
|
||||
{
|
||||
m_sio1->rxca_w(state);
|
||||
m_sio1->txca_w(state);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( aussiebyte_state::ctc_z1_w )
|
||||
{
|
||||
m_sio1->rxtxcb_w(state);
|
||||
m_sio2->rxca_w(state);
|
||||
m_sio2->txca_w(state);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( aussiebyte_state::ctc_z2_w )
|
||||
{
|
||||
m_sio2->rxtxcb_w(state);
|
||||
m_ctc->trg3(1);
|
||||
m_ctc->trg3(0);
|
||||
}
|
||||
@ -496,13 +475,19 @@ static MACHINE_CONFIG_START( aussiebyte )
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
|
||||
|
||||
MCFG_DEVICE_ADD("ctc_clock", CLOCK, XTAL_4_9152MHz / 4)
|
||||
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(aussiebyte_state, clock_w))
|
||||
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("ctc", z80ctc_device, trg0))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("ctc", z80ctc_device, trg1))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("ctc", z80ctc_device, trg2))
|
||||
|
||||
MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_16MHz / 4)
|
||||
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80CTC_ZC0_CB(WRITELINE(aussiebyte_state, ctc_z0_w)) // SIO1 Ch A
|
||||
MCFG_Z80CTC_ZC1_CB(WRITELINE(aussiebyte_state, ctc_z1_w)) // SIO1 Ch B, SIO2 Ch A
|
||||
MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("sio1", z80sio_device, rxca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio1", z80sio_device, txca_w))
|
||||
MCFG_Z80CTC_ZC1_CB(DEVWRITELINE("sio1", z80sio_device, rxtxcb_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio2", z80sio_device, rxca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio2", z80sio_device, txca_w))
|
||||
MCFG_Z80CTC_ZC2_CB(WRITELINE(aussiebyte_state, ctc_z2_w)) // SIO2 Ch B, CTC Ch 3
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("sio2", z80sio_device, rxtxcb_w))
|
||||
|
||||
MCFG_DEVICE_ADD("dma", Z80DMA, XTAL_16MHz / 4)
|
||||
MCFG_Z80DMA_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
@ -523,21 +508,21 @@ static MACHINE_CONFIG_START( aussiebyte )
|
||||
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80PIO_OUT_PA_CB(WRITE8(aussiebyte_state, port20_w))
|
||||
|
||||
MCFG_DEVICE_ADD("sio1", Z80SIO0, XTAL_16MHz / 4)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80DART_OUT_WRDYA_CB(WRITELINE(aussiebyte_state, sio1_rdya_w))
|
||||
MCFG_Z80DART_OUT_WRDYB_CB(WRITELINE(aussiebyte_state, sio1_rdyb_w))
|
||||
MCFG_DEVICE_ADD("sio1", Z80SIO, XTAL_16MHz / 4)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80SIO_OUT_WRDYA_CB(WRITELINE(aussiebyte_state, sio1_rdya_w))
|
||||
MCFG_Z80SIO_OUT_WRDYB_CB(WRITELINE(aussiebyte_state, sio1_rdyb_w))
|
||||
|
||||
MCFG_DEVICE_ADD("sio2", Z80SIO0, XTAL_16MHz / 4)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80DART_OUT_WRDYA_CB(WRITELINE(aussiebyte_state, sio2_rdya_w))
|
||||
MCFG_Z80DART_OUT_WRDYB_CB(WRITELINE(aussiebyte_state, sio2_rdyb_w))
|
||||
MCFG_Z80DART_OUT_TXDA_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_Z80DART_OUT_DTRA_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
MCFG_Z80DART_OUT_RTSA_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_DEVICE_ADD("sio2", Z80SIO, XTAL_16MHz / 4)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80SIO_OUT_WRDYA_CB(WRITELINE(aussiebyte_state, sio2_rdya_w))
|
||||
MCFG_Z80SIO_OUT_WRDYB_CB(WRITELINE(aussiebyte_state, sio2_rdyb_w))
|
||||
MCFG_Z80SIO_OUT_TXDA_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_Z80SIO_OUT_DTRA_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
MCFG_Z80SIO_OUT_RTSA_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
|
||||
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "keyboard")
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio2", z80sio0_device, rxa_w))
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio2", z80sio_device, rxa_w))
|
||||
|
||||
MCFG_WD2797_ADD("fdc", XTAL_16MHz / 16)
|
||||
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(aussiebyte_state, fdc_intrq_w))
|
||||
|
@ -73,6 +73,7 @@ X - change banks
|
||||
#include "emu.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "cpu/z80/z80daisy.h"
|
||||
#include "machine/74259.h"
|
||||
#include "machine/clock.h"
|
||||
#include "machine/keyboard.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
@ -101,7 +102,7 @@ public:
|
||||
, m_fdc(*this, "fdc")
|
||||
, m_floppy0(*this, "fdc:0")
|
||||
, m_floppy1(*this, "fdc:1")
|
||||
, m_beeper(*this, "beeper")
|
||||
, m_syslatch1(*this, "syslatch1")
|
||||
, m_dsw(*this, "DSW")
|
||||
, m_bankr(*this, "bankr")
|
||||
, m_bankv(*this, "bankv")
|
||||
@ -109,11 +110,14 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
DECLARE_WRITE8_MEMBER(portc0_w );
|
||||
DECLARE_WRITE8_MEMBER(portc8_w );
|
||||
DECLARE_WRITE8_MEMBER(portcc_w );
|
||||
DECLARE_READ8_MEMBER(portc4_r);
|
||||
DECLARE_READ8_MEMBER(portd0_r);
|
||||
DECLARE_WRITE_LINE_MEMBER(side_select_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(smc1_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(smc2_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(head_load_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(disk_motor_w);
|
||||
DECLARE_WRITE8_MEMBER(syslatch2_w);
|
||||
DECLARE_READ8_MEMBER(status_port_r);
|
||||
DECLARE_READ8_MEMBER(kbd_r);
|
||||
void kbd_put(u8 data);
|
||||
DECLARE_WRITE_LINE_MEMBER(clock_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(busreq_w);
|
||||
@ -133,7 +137,6 @@ private:
|
||||
u8 m_term_data;
|
||||
u8 m_term_status;
|
||||
uint16_t m_cnt;
|
||||
bool m_c8[8];
|
||||
bool m_cc[8];
|
||||
floppy_image_device *m_floppy;
|
||||
virtual void machine_start() override;
|
||||
@ -151,18 +154,13 @@ private:
|
||||
required_device<mb8877_device> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
required_device<floppy_connector> m_floppy1;
|
||||
required_device<beep_device> m_beeper;
|
||||
required_device<ls259_device> m_syslatch1;
|
||||
required_ioport m_dsw;
|
||||
required_memory_bank m_bankr;
|
||||
required_memory_bank m_bankv;
|
||||
required_memory_bank m_banka;
|
||||
};
|
||||
|
||||
// Eprom programming port
|
||||
WRITE8_MEMBER( bigbord2_state::portc0_w )
|
||||
{
|
||||
}
|
||||
|
||||
/* Status port
|
||||
0 = RXDA
|
||||
1 = RXDB
|
||||
@ -173,16 +171,16 @@ WRITE8_MEMBER( bigbord2_state::portc0_w )
|
||||
6 = DIPSW 3
|
||||
7 = DIPSW 4 */
|
||||
|
||||
READ8_MEMBER( bigbord2_state::portc4_r )
|
||||
READ8_MEMBER(bigbord2_state::status_port_r)
|
||||
{
|
||||
u8 ret = m_term_status | 3 | (m_c8[6]<<2) | m_dsw->read();
|
||||
u8 ret = m_term_status | 3 | (m_syslatch1->q6_r() << 2) | m_dsw->read();
|
||||
m_term_status = 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
// KBD port - read ascii value of key pressed
|
||||
|
||||
READ8_MEMBER( bigbord2_state::portd0_r )
|
||||
READ8_MEMBER(bigbord2_state::kbd_r)
|
||||
{
|
||||
u8 ret = m_term_data;
|
||||
m_term_data = 0;
|
||||
@ -249,73 +247,35 @@ WRITE8_MEMBER( bigbord2_state::io_write_byte )
|
||||
|
||||
/* Read/Write Handlers */
|
||||
|
||||
|
||||
WRITE8_MEMBER( bigbord2_state::portc8_w )
|
||||
WRITE_LINE_MEMBER(bigbord2_state::side_select_w)
|
||||
{
|
||||
/*
|
||||
|
||||
This port uses a 74LS259, which allows individual bits
|
||||
to be switched on and off, while the other bits are
|
||||
unaffected.
|
||||
|
||||
bit signal description
|
||||
|
||||
0 D_S memory bank
|
||||
1 SIDSEL side select
|
||||
2 SMC1 u6 data separator pin 5
|
||||
3 SMC2 u6 data separator pin 6
|
||||
4 DDEN density
|
||||
5 HLD head load
|
||||
6 MOTOR disk motor
|
||||
7 BELL beeper pulse
|
||||
|
||||
*/
|
||||
|
||||
m_c8[data&7] = BIT(data, 3);
|
||||
|
||||
switch (data&7)
|
||||
{
|
||||
case 0:
|
||||
// memory bank
|
||||
m_bankr->set_entry(m_c8[0]);
|
||||
m_bankv->set_entry(m_c8[0]);
|
||||
m_banka->set_entry(m_c8[0]);
|
||||
break;
|
||||
case 1:
|
||||
// side select
|
||||
if (m_floppy)
|
||||
{
|
||||
m_floppy->ss_w(m_c8[1]);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 2:
|
||||
case 3:
|
||||
// these connect to "U6 (FDC9216B)" which drives the fdc "rawread" and "rclk" pins
|
||||
break;
|
||||
case 4:
|
||||
// density
|
||||
m_fdc->dden_w(m_c8[4]);
|
||||
break;
|
||||
case 5:
|
||||
// connects to HLD pin on floppy drive
|
||||
break;
|
||||
case 6:
|
||||
// motor on
|
||||
if (m_floppy)
|
||||
{
|
||||
m_floppy->mon_w(m_c8[6]? 0 : 1);
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
// beeper
|
||||
m_beeper->set_state(m_c8[7]);
|
||||
break;
|
||||
}
|
||||
if (m_floppy)
|
||||
m_floppy->ss_w(state);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( bigbord2_state::portcc_w )
|
||||
WRITE_LINE_MEMBER(bigbord2_state::smc1_w)
|
||||
{
|
||||
// connects to "U6 (FDC9216B)" which drives the fdc "rawread" and "rclk" pins
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(bigbord2_state::smc2_w)
|
||||
{
|
||||
// connects to "U6 (FDC9216B)" which drives the fdc "rawread" and "rclk" pins
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(bigbord2_state::head_load_w)
|
||||
{
|
||||
// connects to HLD pin on floppy drive
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(bigbord2_state::disk_motor_w)
|
||||
{
|
||||
// motor on
|
||||
if (m_floppy)
|
||||
m_floppy->mon_w(state ? 0 : 1);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(bigbord2_state::syslatch2_w)
|
||||
{
|
||||
/*
|
||||
|
||||
@ -346,6 +306,11 @@ WRITE8_MEMBER( bigbord2_state::portcc_w )
|
||||
//if (BIT(data, 4)) m_floppy = m_floppy3->get_device();
|
||||
|
||||
m_fdc->set_floppy(m_floppy);
|
||||
if (m_floppy)
|
||||
{
|
||||
m_floppy->ss_w(m_syslatch1->q1_r());
|
||||
m_floppy->mon_w(m_syslatch1->q6_r() ? 0 : 1);
|
||||
}
|
||||
|
||||
m_dma->rdy_w(m_cc[data & 7]);
|
||||
}
|
||||
@ -369,16 +334,17 @@ static ADDRESS_MAP_START( bigbord2_io, AS_IO, 8, bigbord2_state )
|
||||
AM_RANGE(0x80, 0x83) AM_DEVREADWRITE("sio", z80sio_device, ba_cd_r, ba_cd_w) // u16
|
||||
AM_RANGE(0x84, 0x87) AM_DEVREADWRITE("ctc1", z80ctc_device, read, write) // u37 has issues
|
||||
AM_RANGE(0x88, 0x8b) AM_DEVREADWRITE("ctc2", z80ctc_device, read, write) // u21
|
||||
AM_RANGE(0x8C, 0x8F) AM_DEVREADWRITE("dma", z80dma_device, read, write) // u62
|
||||
AM_RANGE(0xC0, 0xC3) AM_WRITE(portc0_w) // eprom programming port
|
||||
AM_RANGE(0xC4, 0xC7) AM_READ (portc4_r)
|
||||
AM_RANGE(0xC8, 0xCB) AM_WRITE(portc8_w)
|
||||
AM_RANGE(0xCC, 0xCF) AM_WRITE(portcc_w)
|
||||
AM_RANGE(0xD0, 0xD3) AM_READ (portd0_r)
|
||||
AM_RANGE(0xD4, 0xD7) AM_DEVREADWRITE("fdc", mb8877_device, read, write) // u10
|
||||
//AM_RANGE(0xD8, 0xDB) AM_READWRITE(portd8_r, portd8_w) // various external data ports; DB = centronics printer
|
||||
AM_RANGE(0xDC, 0xDC) AM_MIRROR(2) AM_DEVREADWRITE("crtc", mc6845_device, status_r, address_w) // u30
|
||||
AM_RANGE(0xDD, 0xDD) AM_MIRROR(2) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
|
||||
AM_RANGE(0x8c, 0x8f) AM_DEVREADWRITE("dma", z80dma_device, read, write) // u62
|
||||
AM_RANGE(0xc0, 0xc3) AM_DEVWRITE("proglatch", ls259_device, write_nibble_d3) // u41 - eprom programming port
|
||||
AM_RANGE(0xc4, 0xc7) AM_READ(status_port_r) // u11
|
||||
AM_RANGE(0xc8, 0xcb) AM_DEVWRITE("syslatch1", ls259_device, write_nibble_d3) // u14
|
||||
AM_RANGE(0xcc, 0xcf) AM_WRITE(syslatch2_w)
|
||||
AM_RANGE(0xd0, 0xd3) AM_READ(kbd_r) // u1
|
||||
AM_RANGE(0xd4, 0xd7) AM_DEVREADWRITE("fdc", mb8877_device, read, write) // u10
|
||||
//AM_RANGE(0xd8, 0xdb) AM_READWRITE(portd8_r, portd8_w) // various external data ports; DB = centronics printer
|
||||
AM_RANGE(0xd9, 0xd9) AM_DEVWRITE("outlatch1", ls259_device, write_nibble_d3) // u96
|
||||
AM_RANGE(0xdc, 0xdc) AM_MIRROR(2) AM_DEVREADWRITE("crtc", mc6845_device, status_r, address_w) // u30
|
||||
AM_RANGE(0xdd, 0xdd) AM_MIRROR(2) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -450,12 +416,8 @@ void bigbord2_state::machine_reset()
|
||||
{
|
||||
u8 i;
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
m_c8[i] = 0;
|
||||
m_cc[i] = 1;
|
||||
}
|
||||
m_cc[2] = 0;
|
||||
m_beeper->set_state(0);
|
||||
m_bankr->set_entry(0);
|
||||
m_bankv->set_entry(0);
|
||||
m_banka->set_entry(0);
|
||||
@ -632,6 +594,23 @@ static MACHINE_CONFIG_START( bigbord2 )
|
||||
MCFG_MC6845_UPDATE_ROW_CB(bigbord2_state, crtc_update_row)
|
||||
MCFG_MC6845_OUT_VSYNC_CB(DEVWRITELINE("ctc1", z80ctc_device, trg3))
|
||||
|
||||
MCFG_DEVICE_ADD("proglatch", LS259, 0) // U41
|
||||
MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(DEVWRITELINE("outlatch1", ls259_device, clear_w)) // FCRST - also resets the 8877
|
||||
|
||||
MCFG_DEVICE_ADD("syslatch1", LS259, 0) // U14
|
||||
MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(MEMBANK("bankr")) // D_S
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(MEMBANK("bankv"))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(MEMBANK("banka"))
|
||||
MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(bigbord2_state, side_select_w)) // SIDSEL
|
||||
MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(bigbord2_state, smc1_w)) // SMC1
|
||||
MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(bigbord2_state, smc2_w)) // SMC2
|
||||
MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(DEVWRITELINE("fdc", mb8877_device, dden_w)) // DDEN
|
||||
MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(bigbord2_state, head_load_w)) // HLD
|
||||
MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(WRITELINE(bigbord2_state, disk_motor_w)) // MOTOR
|
||||
MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(DEVWRITELINE("beeper", beep_device, set_state)) // BELL
|
||||
|
||||
MCFG_DEVICE_ADD("outlatch1", LS259, 0) // U96
|
||||
|
||||
/* keyboard */
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(PUT(bigbord2_state, kbd_put))
|
||||
@ -656,4 +635,4 @@ ROM_END
|
||||
/* System Drivers */
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS
|
||||
COMP( 1982, bigbord2, bigboard, 0, bigbord2, bigbord2, bigbord2_state, bigbord2, "Digital Research Computers", "Big Board II", MACHINE_NOT_WORKING )
|
||||
COMP( 1982, bigbord2, 0, 0, bigbord2, bigbord2, bigbord2_state, bigbord2, "Digital Research Computers", "Big Board II", MACHINE_NOT_WORKING )
|
||||
|
@ -914,4 +914,4 @@ GAME( 2002, bingor3, 0, bingor, bingor, bingor_state, 0, ROT0,
|
||||
GAME( 2002, bingor4, 0, bingor, bingor, bingor_state, 0, ROT0, "<unknown>", "Bingo Roll / Bell Star? (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
|
||||
GAME( 2002, bingor5, 0, bingor, bingor, bingor_state, 0, ROT0, "<unknown>", "Bingo Roll / Bell Star V3? (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
|
||||
|
||||
GAME( 2001, vip2000, 0, vip2000, bingor, bingor_state, 0, ROT0, "Paloma-Elektronik?", "Unknown 'VIP 2000' game", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
|
||||
GAME( 2001, vip2000, 0, vip2000, bingor, bingor_state, 0, ROT0, "Paloma-Elektronik?", "unknown 'VIP 2000' game", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
|
||||
|
@ -159,7 +159,7 @@ static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, boogwing_state )
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
AM_RANGE(0x140000, 0x140001) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0x140000, 0x140000) AM_DEVREAD("ioprot", deco104_device, soundlatch_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_DEVWRITE("audiocpu", h6280_device, timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
|
||||
@ -388,18 +388,17 @@ static MACHINE_CONFIG_START( boogwing )
|
||||
MCFG_DECO_SPRITE_GFX_REGION(4)
|
||||
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
|
||||
|
||||
MCFG_DECO104_ADD("ioprot104")
|
||||
MCFG_DECO104_ADD("ioprot")
|
||||
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
|
||||
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(INPUTLINE("audiocpu", 0))
|
||||
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_REVERSE
|
||||
MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", 32220000/9)
|
||||
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 1)) /* IRQ2 */
|
||||
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(boogwing_state, sound_bankswitch_w))
|
||||
|
@ -80,6 +80,7 @@ public:
|
||||
DECLARE_PALETTE_INIT(cb2001);
|
||||
uint32_t screen_update_cb2001(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(vblank_irq);
|
||||
DECLARE_READ8_MEMBER(irq_ack_r);
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
@ -578,7 +579,7 @@ static ADDRESS_MAP_START( cb2001_io, AS_IO, 16, cb2001_state )
|
||||
AM_RANGE(0x20, 0x21) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0xff00)
|
||||
AM_RANGE(0x22, 0x23) AM_DEVWRITE8("aysnd", ay8910_device, data_address_w, 0xffff)
|
||||
|
||||
AM_RANGE(0x30, 0x31) AM_WRITE(cb2001_vidctrl_w)
|
||||
AM_RANGE(0x30, 0x31) AM_READ8(irq_ack_r, 0x00ff) AM_WRITE(cb2001_vidctrl_w)
|
||||
AM_RANGE(0x32, 0x33) AM_WRITE(cb2001_vidctrl2_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -747,7 +748,13 @@ INPUT_PORTS_END
|
||||
|
||||
INTERRUPT_GEN_MEMBER(cb2001_state::vblank_irq)
|
||||
{
|
||||
generic_pulse_irq_line(device.execute(), NEC_INPUT_LINE_INTP0, 1);
|
||||
m_maincpu->set_input_line(NEC_INPUT_LINE_INTP0, ASSERT_LINE);
|
||||
}
|
||||
|
||||
READ8_MEMBER(cb2001_state::irq_ack_r)
|
||||
{
|
||||
m_maincpu->set_input_line(NEC_INPUT_LINE_INTP0, CLEAR_LINE);
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
static const gfx_layout cb2001_layout =
|
||||
|
@ -381,11 +381,6 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, cc40_state )
|
||||
AM_RANGE(0xd000, 0xefff) AM_ROMBANK("sysbank")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( main_io_map, AS_IO, 8, cc40_state )
|
||||
AM_RANGE(TMS7000_PORTA, TMS7000_PORTA) AM_READ(keyboard_r)
|
||||
AM_RANGE(TMS7000_PORTB, TMS7000_PORTB) AM_WRITE(keyboard_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
@ -584,7 +579,8 @@ static MACHINE_CONFIG_START( cc40 )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", TMS70C20, XTAL_5MHz / 2)
|
||||
MCFG_CPU_PROGRAM_MAP(main_map)
|
||||
MCFG_CPU_IO_MAP(main_io_map)
|
||||
MCFG_TMS7000_IN_PORTA_CB(READ8(cc40_state, keyboard_r))
|
||||
MCFG_TMS7000_OUT_PORTB_CB(WRITE8(cc40_state, keyboard_w))
|
||||
|
||||
MCFG_NVRAM_ADD_0FILL("sysram.0")
|
||||
MCFG_NVRAM_ADD_0FILL("sysram.1")
|
||||
|
@ -65,6 +65,7 @@ ToDo:
|
||||
#include "emu.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "bus/rs232/rs232.h"
|
||||
//#include "bus/s100/s100.h"
|
||||
#include "machine/ins8250.h"
|
||||
#include "machine/ram.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
|
@ -2,11 +2,25 @@
|
||||
// copyright-holders:Robbbert
|
||||
/***************************************************************************
|
||||
|
||||
Central Data cd2650
|
||||
Central Data 2650 Computer System
|
||||
|
||||
2010-04-08 Skeleton driver.
|
||||
|
||||
No info available on this computer apart from a few newsletters.
|
||||
No info available on this computer apart from a few newsletters and
|
||||
magazine articles. The computer was described in a series of articles
|
||||
published between April and June 1977 in Radio-Electronics, which include
|
||||
supposedly complete schematics and fairly detailed subsystem descriptions.
|
||||
|
||||
All signals to and from the 2650 board (including the built-in 300 baud
|
||||
Kansas City standard cassette tape interface) are passed through six ribbon
|
||||
cables. Central Data later produced an “extender board” that adapted the
|
||||
bus signals to a S-100 backplane. This interface was missing a considerable
|
||||
number of standard S-100 timing signals, though it was compatible at least
|
||||
with some dynamic RAM boards released by the company.
|
||||
|
||||
The unusual XTAL frequency seems deliberately chosen to produce a vertical
|
||||
sync rate of exactly 60 Hz.
|
||||
|
||||
The system only uses 1000-14FF for videoram and 17F0-17FF for
|
||||
scratch ram. All other ram is optional.
|
||||
|
||||
@ -23,13 +37,18 @@ V Verify?
|
||||
Press Esc to exit most commands.
|
||||
|
||||
TODO
|
||||
- Lots, probably. The computer is a complete mystery. No manuals or schematics exist.
|
||||
- Lots, probably. The computer is a complete mystery. No manuals are known to exist.
|
||||
- Cassette doesn't work.
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
#define CHARACTER_WIDTH 8
|
||||
#define CHARACTER_HEIGHT 8
|
||||
#define CHARACTER_LINES 12
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/s2650/s2650.h"
|
||||
//#include "bus/s100/s100.h"
|
||||
#include "imagedev/cassette.h"
|
||||
#include "imagedev/snapquik.h"
|
||||
#include "machine/keyboard.h"
|
||||
@ -95,8 +114,8 @@ READ8_MEMBER( cd2650_state::keyin_r )
|
||||
|
||||
static ADDRESS_MAP_START(cd2650_mem, AS_PROGRAM, 8, cd2650_state)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE( 0x0000, 0x03ff) AM_ROM AM_REGION("roms", 0)
|
||||
AM_RANGE( 0x1000, 0x7fff) AM_RAM AM_SHARE("videoram")
|
||||
AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION("roms", 0)
|
||||
AM_RANGE(0x1000, 0x7fff) AM_RAM AM_SHARE("videoram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( cd2650_io, AS_IO, 8, cd2650_state)
|
||||
@ -132,14 +151,14 @@ uint32_t cd2650_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap
|
||||
|
||||
for (y = 0; y < 16; y++)
|
||||
{
|
||||
for (ra = 0; ra < 10; ra++)
|
||||
for (ra = 0; ra < CHARACTER_LINES; ra++)
|
||||
{
|
||||
uint16_t *p = &bitmap.pix16(sy++);
|
||||
|
||||
for (x = 0; x < 80; x++)
|
||||
{
|
||||
gfx = 0;
|
||||
if ((ra) && (ra < 9))
|
||||
if (ra < CHARACTER_HEIGHT)
|
||||
{
|
||||
mem = offset + y + (x<<4);
|
||||
|
||||
@ -148,7 +167,7 @@ uint32_t cd2650_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap
|
||||
|
||||
chr = m_p_videoram[mem] & 0x3f;
|
||||
|
||||
gfx = m_p_chargen[(BITSWAP8(chr,7,6,2,1,0,3,4,5)<<3) | (ra-1) ];
|
||||
gfx = m_p_chargen[(BITSWAP8(chr,7,6,2,1,0,3,4,5)<<3) | ra];
|
||||
}
|
||||
|
||||
/* Display a scanline of a character */
|
||||
@ -261,7 +280,7 @@ QUICKLOAD_LOAD_MEMBER( cd2650_state, cd2650 )
|
||||
|
||||
static MACHINE_CONFIG_START( cd2650 )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu",S2650, XTAL_1MHz)
|
||||
MCFG_CPU_ADD("maincpu", S2650, XTAL_14_192640MHz / 12) // 1.182720MHz according to RE schematic
|
||||
MCFG_CPU_PROGRAM_MAP(cd2650_mem)
|
||||
MCFG_CPU_IO_MAP(cd2650_io)
|
||||
MCFG_CPU_DATA_MAP(cd2650_data)
|
||||
@ -270,12 +289,10 @@ static MACHINE_CONFIG_START( cd2650 )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL_14_192640MHz, 112 * CHARACTER_WIDTH, 0, 80 * CHARACTER_WIDTH, 22 * CHARACTER_LINES, 0, 16 * CHARACTER_LINES)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(cd2650_state, screen_update)
|
||||
MCFG_SCREEN_SIZE(640, 160)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 159)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", cd2650)
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
@ -297,7 +314,7 @@ MACHINE_CONFIG_END
|
||||
|
||||
/* ROM definition */
|
||||
ROM_START( cd2650 )
|
||||
ROM_REGION( 0x0400, "roms", 0 )
|
||||
ROM_REGION( 0x1000, "roms", 0 )
|
||||
ROM_LOAD( "cd2650.rom", 0x0000, 0x0400, CRC(5397328e) SHA1(7106fdb60e1ad2bc5e8e45527f348c23296e8d6a))
|
||||
|
||||
ROM_REGION( 0x0600, "chargen", 0 )
|
||||
@ -319,4 +336,4 @@ ROM_END
|
||||
/* Driver */
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
|
||||
COMP( 1977, cd2650, 0, 0, cd2650, cd2650, cd2650_state, 0, "Central Data", "CD 2650", 0 )
|
||||
COMP( 1977, cd2650, 0, 0, cd2650, cd2650, cd2650_state, 0, "Central Data", "2650 Computer System", 0 )
|
||||
|
@ -153,7 +153,7 @@ static ADDRESS_MAP_START( cninjabl_map, AS_PROGRAM, 16, cninja_state )
|
||||
|
||||
AM_RANGE(0x17ff22, 0x17ff23) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0x17ff28, 0x17ff29) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x17ff2a, 0x17ff2b) AM_WRITE(stoneage_sound_w)
|
||||
AM_RANGE(0x17ff2a, 0x17ff2b) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
|
||||
AM_RANGE(0x17ff2c, 0x17ff2d) AM_READ_PORT("INPUTS")
|
||||
|
||||
AM_RANGE(0x180000, 0x187fff) AM_RAM // more ram on bootleg?
|
||||
@ -324,7 +324,19 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cninja_state )
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ym2", ym2151_device, read, write)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
AM_RANGE(0x140000, 0x140001) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0x140000, 0x140000) AM_DEVREAD("ioprot104", deco104_device, soundlatch_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_DEVWRITE("audiocpu", h6280_device, timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_map_146, AS_PROGRAM, 8, cninja_state )
|
||||
AM_RANGE(0x000000, 0x00ffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x100001) AM_DEVREADWRITE("ym1", ym2203_device, read, write)
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ym2", ym2151_device, read, write)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
AM_RANGE(0x140000, 0x140000) AM_DEVREAD("ioprot", deco146_device, soundlatch_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_DEVWRITE("audiocpu", h6280_device, timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
|
||||
@ -332,17 +344,25 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_map_mutantf, AS_PROGRAM, 8, cninja_state )
|
||||
AM_RANGE(0x000000, 0x00ffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x100001) AM_READNOP AM_WRITENOP
|
||||
AM_RANGE(0x100000, 0x100001) AM_NOP
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
AM_RANGE(0x140000, 0x140001) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0x140000, 0x140001) AM_DEVREAD("ioprot", deco146_device, soundlatch_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_DEVWRITE("audiocpu", h6280_device, timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( stoneage_s_map, AS_PROGRAM, 8, cninja_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
|
||||
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0xa000, 0xa000) AM_DEVREAD("ioprot104", deco104_device, soundlatch_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( cninjabl_sound_map, AS_PROGRAM, 8, cninja_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
|
||||
@ -355,7 +375,7 @@ static ADDRESS_MAP_START( cninjabl2_s_map, AS_PROGRAM, 8, cninja_state )
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x9000, 0x9000) AM_WRITE(cninjabl2_oki_bank_w)
|
||||
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0xa000, 0xa000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0xa000, 0xa000) AM_DEVREAD("ioprot104", deco104_device, soundlatch_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( cninjabl2_oki_map, 0, 8, cninja_state )
|
||||
@ -855,13 +875,12 @@ static MACHINE_CONFIG_START( cninja )
|
||||
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
|
||||
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(INPUTLINE("audiocpu", 0))
|
||||
MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
|
||||
MCFG_SOUND_ADD("ym1", YM2203, XTAL_32_22MHz / 8)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
|
||||
|
||||
@ -946,15 +965,14 @@ static MACHINE_CONFIG_START( stoneage )
|
||||
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
|
||||
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(INPUTLINE("audiocpu", INPUT_LINE_NMI))
|
||||
MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", XTAL_32_22MHz / 9)
|
||||
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.45)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.45)
|
||||
|
||||
@ -969,6 +987,9 @@ static MACHINE_CONFIG_DERIVED( cninjabl2, stoneage )
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninjabl2)
|
||||
|
||||
MCFG_DEVICE_MODIFY("ioprot104")
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_REMOVE("ymsnd")
|
||||
|
||||
MCFG_OKIM6295_REPLACE("oki1", XTAL_32_22MHz / 32, PIN7_LOW)
|
||||
@ -983,7 +1004,7 @@ static MACHINE_CONFIG_START( cninjabl )
|
||||
MCFG_CPU_PROGRAM_MAP(cninjabl_map)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80, 3579545)
|
||||
MCFG_CPU_PROGRAM_MAP(stoneage_s_map)
|
||||
MCFG_CPU_PROGRAM_MAP(cninjabl_sound_map)
|
||||
|
||||
MCFG_DECO_IRQ_ADD("irq", "screen")
|
||||
MCFG_DECO_IRQ_RASTER1_IRQ_CB(INPUTLINE("maincpu", 3))
|
||||
@ -1036,9 +1057,10 @@ static MACHINE_CONFIG_START( cninjabl )
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", INPUT_LINE_NMI))
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", XTAL_32_22MHz / 9)
|
||||
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.45)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.45)
|
||||
|
||||
@ -1054,7 +1076,7 @@ static MACHINE_CONFIG_START( edrandy )
|
||||
MCFG_CPU_PROGRAM_MAP(edrandy_map)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", H6280, XTAL_32_22MHz / 8)
|
||||
MCFG_CPU_PROGRAM_MAP(sound_map)
|
||||
MCFG_CPU_PROGRAM_MAP(sound_map_146)
|
||||
|
||||
MCFG_DECO_IRQ_ADD("irq", "screen")
|
||||
MCFG_DECO_IRQ_RASTER1_IRQ_CB(INPUTLINE("maincpu", 3))
|
||||
@ -1112,12 +1134,11 @@ static MACHINE_CONFIG_START( edrandy )
|
||||
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
|
||||
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(INPUTLINE("audiocpu", 0))
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
|
||||
MCFG_SOUND_ADD("ym1", YM2203, XTAL_32_22MHz / 8)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
|
||||
|
||||
@ -1142,7 +1163,7 @@ static MACHINE_CONFIG_START( robocop2 )
|
||||
MCFG_CPU_PROGRAM_MAP(robocop2_map)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", H6280, XTAL_32_22MHz / 8)
|
||||
MCFG_CPU_PROGRAM_MAP(sound_map)
|
||||
MCFG_CPU_PROGRAM_MAP(sound_map_146)
|
||||
|
||||
MCFG_DECO_IRQ_ADD("irq", "screen")
|
||||
MCFG_DECO_IRQ_RASTER1_IRQ_CB(INPUTLINE("maincpu", 3))
|
||||
@ -1201,6 +1222,7 @@ static MACHINE_CONFIG_START( robocop2 )
|
||||
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
|
||||
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(INPUTLINE("audiocpu", 0))
|
||||
MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR
|
||||
|
||||
|
||||
@ -1299,6 +1321,7 @@ static MACHINE_CONFIG_START( mutantf )
|
||||
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
|
||||
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(INPUTLINE("audiocpu", 0))
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
@ -2249,16 +2272,6 @@ ROM_END
|
||||
|
||||
/**********************************************************************************/
|
||||
|
||||
DRIVER_INIT_MEMBER(cninja_state,cninja)
|
||||
{
|
||||
m_maincpu->space(AS_PROGRAM).install_write_handler(0x1bc0a8, 0x1bc0a9, write16_delegate(FUNC(cninja_state::cninja_sound_w),this));
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(cninja_state,stoneage)
|
||||
{
|
||||
m_maincpu->space(AS_PROGRAM).install_write_handler(0x1bc0a8, 0x1bc0a9, write16_delegate(FUNC(cninja_state::stoneage_sound_w),this));
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(cninja_state,cninjabl2)
|
||||
{
|
||||
m_maincpu->space(AS_PROGRAM).install_ram(0x180000, 0x18ffff);
|
||||
@ -2288,11 +2301,11 @@ GAME( 1990, edrandy2, edrandy, edrandy, edrandc, cninja_state, 0, ROT0
|
||||
GAME( 1990, edrandy1, edrandy, edrandy, edrandc, cninja_state, 0, ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (World ver 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1990, edrandyj, edrandy, edrandy, edrandc, cninja_state, 0, ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (Japan ver 3)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1991, cninja, 0, cninja, cninja, cninja_state, cninja, ROT0, "Data East Corporation", "Caveman Ninja (World ver 4)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, cninja1, cninja, cninja, cninja, cninja_state, cninja, ROT0, "Data East Corporation", "Caveman Ninja (World ver 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, cninjau, cninja, cninja, cninjau, cninja_state, cninja, ROT0, "Data East Corporation", "Caveman Ninja (US ver 4)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, joemac, cninja, cninja, cninja, cninja_state, cninja, ROT0, "Data East Corporation", "Tatakae Genshizin Joe & Mac (Japan ver 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, stoneage, cninja, stoneage, cninja, cninja_state, stoneage, ROT0, "bootleg", "Stoneage (bootleg of Caveman Ninja)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, cninja, 0, cninja, cninja, cninja_state, 0, ROT0, "Data East Corporation", "Caveman Ninja (World ver 4)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, cninja1, cninja, cninja, cninja, cninja_state, 0, ROT0, "Data East Corporation", "Caveman Ninja (World ver 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, cninjau, cninja, cninja, cninjau, cninja_state, 0, ROT0, "Data East Corporation", "Caveman Ninja (US ver 4)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, joemac, cninja, cninja, cninja, cninja_state, 0, ROT0, "Data East Corporation", "Tatakae Genshizin Joe & Mac (Japan ver 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, stoneage, cninja, stoneage, cninja, cninja_state, 0, ROT0, "bootleg", "Stoneage (bootleg of Caveman Ninja)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, cninjabl, cninja, cninjabl, cninja, cninja_state, 0, ROT0, "bootleg", "Caveman Ninja (bootleg)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, cninjabl2,cninja, cninjabl2,cninja, cninja_state, cninjabl2,ROT0, "bootleg", "Tatakae Genshizin Joe & Mac (Japan, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // tile layers need adjusting
|
||||
|
||||
|
@ -60,11 +60,6 @@ void codata_state::machine_reset()
|
||||
m_maincpu->reset();
|
||||
}
|
||||
|
||||
static DEVICE_INPUT_DEFAULTS_START( terminal )
|
||||
DEVICE_INPUT_DEFAULTS( "RS232_RXBAUD", 0xff, RS232_BAUD_9615 )
|
||||
DEVICE_INPUT_DEFAULTS( "RS232_TXBAUD", 0xff, RS232_BAUD_9615 )
|
||||
DEVICE_INPUT_DEFAULTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( codata )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu",M68000, XTAL_16MHz / 2)
|
||||
@ -90,7 +85,6 @@ static MACHINE_CONFIG_START( codata )
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart", upd7201_new_device, rxa_w))
|
||||
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart", upd7201_new_device, dcda_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart", upd7201_new_device, ctsa_w))
|
||||
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
|
||||
|
||||
MCFG_RS232_PORT_ADD("rs423b", default_rs232_devices, nullptr)
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart", upd7201_new_device, rxb_w))
|
||||
|
@ -832,6 +832,18 @@ ROM_START( dfkbl )
|
||||
ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(31f9eb0a) SHA1(322158779e969bb321241065dd49c1167b91ff6c) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( akatana )
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD16_WORD_SWAP( "u4", 0x000000, 0x400000, CRC(613fd380) SHA1(6e28480eef3b483d00b42d811a9d2c7fa1097924) ) // (2010/ 8/13 MASTER VER.)
|
||||
|
||||
ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF)
|
||||
ROM_LOAD( "u2", 0x000000, 0x8400000, CRC(89a2e1a5) SHA1(e6f4ec974406283665697fdd52bd606d0337dd11) )
|
||||
|
||||
ROM_REGION( 0x800000, "ymz770", ROMREGION_ERASEFF)
|
||||
ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x400000, CRC(34a67e24) SHA1(78a7e82123b86311f1116a80c39f147b8b695549) )
|
||||
ROM_LOAD16_WORD_SWAP( "u24", 0x400000, 0x400000, CRC(10760fed) SHA1(b70f4506c00f3901ff38f5efd4b897af1afc7a0c) )
|
||||
ROM_END
|
||||
|
||||
READ64_MEMBER(cv1k_state::speedup_r)
|
||||
{
|
||||
offs_t pc = downcast<cpu_device *>(&space.device())->pc();
|
||||
@ -892,7 +904,6 @@ DRIVER_INIT_MEMBER(cv1k_state,deathsml)
|
||||
DRIVER_INIT_MEMBER(cv1k_state,dpddfk)
|
||||
{
|
||||
install_speedups(0x02310, 0xc1d1346, true);
|
||||
|
||||
}
|
||||
|
||||
#define GAME_FLAGS (MACHINE_IMPERFECT_TIMING)
|
||||
@ -949,5 +960,8 @@ GAME( 2008, ddpdfk10, ddpdfk, cv1k_d, cv1k, cv1k_state, dpddfk, ROT270, "
|
||||
// CA019B Do-Don-Pachi Dai-Fukkatsu Black Label
|
||||
GAME( 2010, dfkbl, 0, cv1k_d, cv1k, cv1k_state, dpddfk, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Fukkatsu Black Label (2010/1/18 BLACK LABEL)", GAME_FLAGS )
|
||||
|
||||
// CA021 Akai Katana
|
||||
GAME( 2010, akatana, 0, cv1k_d, cv1k, cv1k_state, dpddfk, ROT0, "Cave (AMI license)", "Akai Katana (2010/ 8/13 MASTER VER.)", GAME_FLAGS )
|
||||
|
||||
// CMDL01 Medal Mahjong Moukari Bancho
|
||||
GAME( 2007, mmmbanc, 0, cv1k, cv1k, cv1k_state, pinkswts, ROT0, "Cave (AMI license)", "Medal Mahjong Moukari Bancho (2007/06/05 MASTER VER.)", MACHINE_NOT_WORKING )
|
||||
|
@ -55,12 +55,11 @@ class czk80_state : public driver_device
|
||||
{
|
||||
public:
|
||||
czk80_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_terminal(*this, TERMINAL_TAG),
|
||||
m_fdc(*this, "fdc")
|
||||
{
|
||||
}
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_terminal(*this, "terminal")
|
||||
, m_fdc(*this, "fdc")
|
||||
{ }
|
||||
|
||||
DECLARE_DRIVER_INIT(czk80);
|
||||
DECLARE_MACHINE_RESET(czk80);
|
||||
@ -112,10 +111,10 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START(czk80_io, AS_IO, 8, czk80_state)
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x40, 0x40) AM_WRITE(port40_w)
|
||||
AM_RANGE(0x4c, 0x4f) AM_DEVREADWRITE("z80pio", z80pio_device, read, write)
|
||||
AM_RANGE(0x50, 0x53) AM_DEVREADWRITE("z80dart", z80dart_device, cd_ba_r, cd_ba_w)
|
||||
AM_RANGE(0x54, 0x57) AM_DEVREADWRITE("z80ctc", z80ctc_device, read, write)
|
||||
AM_RANGE(0x80, 0x80) AM_READ(port80_r) AM_DEVWRITE(TERMINAL_TAG, generic_terminal_device, write)
|
||||
AM_RANGE(0x4c, 0x4f) AM_DEVREADWRITE("pio", z80pio_device, read, write)
|
||||
AM_RANGE(0x50, 0x53) AM_DEVREADWRITE("dart", z80dart_device, cd_ba_r, cd_ba_w)
|
||||
AM_RANGE(0x54, 0x57) AM_DEVREADWRITE("ctc", z80ctc_device, read, write)
|
||||
AM_RANGE(0x80, 0x80) AM_READ(port80_r) AM_DEVWRITE("terminal", generic_terminal_device, write)
|
||||
AM_RANGE(0x81, 0x81) AM_READ(port81_r)
|
||||
/* Select one of the below */
|
||||
//AM_RANGE(0xc0, 0xc0) AM_READ(portc0_r)
|
||||
@ -130,9 +129,9 @@ INPUT_PORTS_END
|
||||
|
||||
static const z80_daisy_config daisy_chain[] =
|
||||
{
|
||||
{ "z80pio" },
|
||||
{ "z80dart" },
|
||||
{ "z80ctc" },
|
||||
{ "pio" },
|
||||
{ "dart" },
|
||||
{ "ctc" },
|
||||
{ nullptr }
|
||||
};
|
||||
|
||||
@ -196,24 +195,24 @@ static MACHINE_CONFIG_START( czk80 )
|
||||
MCFG_Z80_DAISY_CHAIN(daisy_chain)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(czk80_state, czk80)
|
||||
|
||||
MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
|
||||
MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0)
|
||||
MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(czk80_state, kbd_put))
|
||||
MCFG_UPD765A_ADD("fdc", false, true)
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", czk80_floppies, "525dd", floppy_image_device::default_floppy_formats)
|
||||
|
||||
MCFG_DEVICE_ADD("z80ctc", Z80CTC, XTAL_16MHz / 4)
|
||||
MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_16MHz / 4)
|
||||
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80CTC_ZC0_CB(WRITELINE(czk80_state, ctc_z0_w))
|
||||
MCFG_Z80CTC_ZC1_CB(WRITELINE(czk80_state, ctc_z1_w))
|
||||
MCFG_Z80CTC_ZC2_CB(WRITELINE(czk80_state, ctc_z2_w))
|
||||
|
||||
MCFG_DEVICE_ADD("z80dart", Z80DART, XTAL_16MHz / 4)
|
||||
MCFG_DEVICE_ADD("dart", Z80DART, XTAL_16MHz / 4)
|
||||
//MCFG_Z80DART_OUT_TXDA_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
//MCFG_Z80DART_OUT_DTRA_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
//MCFG_Z80DART_OUT_RTSA_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_ADD("z80pio", Z80PIO, XTAL_16MHz/4)
|
||||
MCFG_DEVICE_ADD("pio", Z80PIO, XTAL_16MHz/4)
|
||||
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -94,9 +94,9 @@ public:
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_deco_tilegen1(*this, "tilegen1"),
|
||||
m_deco104(*this, "ioprot104"),
|
||||
m_deco104(*this, "ioprot"),
|
||||
m_sprgen(*this, "spritegen"),
|
||||
m_soundlatch(*this, "soundlatch")
|
||||
m_soundlatch_pending(false)
|
||||
{ }
|
||||
|
||||
/* memory pointers */
|
||||
@ -111,20 +111,20 @@ public:
|
||||
required_device<deco16ic_device> m_deco_tilegen1;
|
||||
required_device<deco104_device> m_deco104;
|
||||
required_device<decospr_device> m_sprgen;
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
|
||||
DECLARE_READ8_MEMBER(irq_latch_r);
|
||||
DECLARE_WRITE_LINE_MEMBER(soundlatch_irq_w);
|
||||
DECLARE_DRIVER_INIT(dblewing);
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
uint32_t screen_update_dblewing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
DECO16IC_BANK_CB_MEMBER(bank_callback);
|
||||
DECOSPR_PRIORITY_CB_MEMBER(pri_callback);
|
||||
void dblewing_sound_cb( address_space &space, uint16_t data, uint16_t mem_mask );
|
||||
|
||||
READ16_MEMBER( wf_protection_region_0_104_r );
|
||||
WRITE16_MEMBER( wf_protection_region_0_104_w );
|
||||
|
||||
private:
|
||||
bool m_soundlatch_pending;
|
||||
};
|
||||
|
||||
|
||||
@ -162,6 +162,10 @@ WRITE16_MEMBER( dblewing_state::wf_protection_region_0_104_w )
|
||||
m_deco104->write_data( space, deco146_addr, data, mem_mask, cs );
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( dblewing_state::soundlatch_irq_w )
|
||||
{
|
||||
m_soundlatch_pending = bool(state);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( dblewing_map, AS_PROGRAM, 16, dblewing_state )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
@ -189,7 +193,8 @@ ADDRESS_MAP_END
|
||||
|
||||
READ8_MEMBER(dblewing_state::irq_latch_r)
|
||||
{
|
||||
return m_soundlatch->pending_r() ? 0 : 1;
|
||||
// bit 0: irq type (0 = latch, 1 = ym)
|
||||
return m_soundlatch_pending ? 0 : 1;
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, dblewing_state )
|
||||
@ -197,7 +202,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, dblewing_state )
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym2151_device, status_r, write)
|
||||
AM_RANGE(0xb000, 0xb000) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0xc000, 0xc000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0xc000, 0xc000) AM_DEVREAD("ioprot", deco104_device, soundlatch_r)
|
||||
AM_RANGE(0xd000, 0xd000) AM_READ(irq_latch_r) //timing? sound latch?
|
||||
AM_RANGE(0xf000, 0xf000) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
ADDRESS_MAP_END
|
||||
@ -334,20 +339,6 @@ DECOSPR_PRIORITY_CB_MEMBER(dblewing_state::pri_callback)
|
||||
return 0; // sprites always on top?
|
||||
}
|
||||
|
||||
|
||||
void dblewing_state::machine_start()
|
||||
{
|
||||
}
|
||||
|
||||
void dblewing_state::machine_reset()
|
||||
{
|
||||
}
|
||||
|
||||
void dblewing_state::dblewing_sound_cb( address_space &space, uint16_t data, uint16_t mem_mask )
|
||||
{
|
||||
m_soundlatch->write(space, 0, data & 0xff);
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( dblewing )
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -399,22 +390,20 @@ static MACHINE_CONFIG_START( dblewing )
|
||||
MCFG_DECO_SPRITE_PRIORITY_CB(dblewing_state, pri_callback)
|
||||
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
|
||||
|
||||
MCFG_DECO104_ADD("ioprot104")
|
||||
MCFG_DECO104_ADD("ioprot")
|
||||
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
|
||||
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
|
||||
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_INTERLEAVE
|
||||
MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR
|
||||
MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(dblewing_state, dblewing_sound_cb)
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(WRITELINE(dblewing_state, soundlatch_irq_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("soundirq", input_merger_device, in_w<0>))
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_DATA_PENDING_CB(DEVWRITELINE("soundirq", input_merger_device, in_w<1>))
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", XTAL_32_22MHz/9)
|
||||
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundirq", input_merger_device, in_w<0>))
|
||||
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundirq", input_merger_device, in_w<1>))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
|
||||
|
||||
MCFG_OKIM6295_ADD("oki", XTAL_28MHz/28, PIN7_HIGH)
|
||||
@ -450,6 +439,8 @@ DRIVER_INIT_MEMBER(dblewing_state,dblewing)
|
||||
{
|
||||
deco56_decrypt_gfx(machine(), "gfx1");
|
||||
deco102_decrypt_cpu((uint16_t *)memregion("maincpu")->base(), m_decrypted_opcodes, 0x80000, 0x399d, 0x25, 0x3d);
|
||||
|
||||
save_item(NAME(m_soundlatch_pending));
|
||||
}
|
||||
|
||||
|
||||
|
@ -752,5 +752,5 @@ ROM_END
|
||||
CONS( 1999, dc, dcjp, 0, dc, dc, dc_cons_state, dcus, "Sega", "Dreamcast (USA, NTSC)", MACHINE_NOT_WORKING )
|
||||
CONS( 1998, dcjp, 0, 0, dc, dc, dc_cons_state, dcjp, "Sega", "Dreamcast (Japan, NTSC)", MACHINE_NOT_WORKING )
|
||||
CONS( 1999, dceu, dcjp, 0, dc, dc, dc_cons_state, dcus, "Sega", "Dreamcast (Europe, PAL)", MACHINE_NOT_WORKING )
|
||||
CONS( 200?, dctream,dcjp, 0, dc, dc, dc_cons_state, dcus,"unknown", "Treamcast", MACHINE_NOT_WORKING )
|
||||
CONS( 200?, dctream,dcjp, 0, dc, dc, dc_cons_state, dcus, "<unknown>", "Treamcast", MACHINE_NOT_WORKING )
|
||||
CONS( 1998, dcdev, 0, 0, dc, dc, dc_cons_state, dc, "Sega", "HKT-0120 Sega Dreamcast Development Box", MACHINE_NOT_WORKING )
|
||||
|
@ -48,7 +48,7 @@ ToDo:
|
||||
- graphics are completely broken in Secret Agent (bootleg);
|
||||
- Fighting Fantasy (bootleg) doesn't move on when killing the Lamia, is the MCU involved?
|
||||
- Hook up the 68705 in Midnight Resistance (bootleg) (it might not be used, leftover from the Fighting Fantasy bootleg on the same PCB?)
|
||||
- Get rid of ROM patches in Sly Spy and Hippodrome;
|
||||
- Get rid of ROM patch in Hippodrome;
|
||||
- background pen in Birdie Try is presumably wrong.
|
||||
- Pixel clock frequency isn't verified;
|
||||
- Finally, get a proper decap of the MCUs used by Dragonninja and Birdie Try;
|
||||
@ -502,12 +502,17 @@ READ16_MEMBER(dec0_state::slyspy_controls_r)
|
||||
|
||||
READ16_MEMBER(dec0_state::slyspy_protection_r)
|
||||
{
|
||||
/* These values are for Boulderdash, I have no idea what they do in Slyspy */
|
||||
switch (offset<<1) {
|
||||
switch (offset<<1)
|
||||
{
|
||||
/* These values are for Boulderdash, I have no idea what they do in Slyspy */
|
||||
case 0: return 0;
|
||||
case 2: return 0x13;
|
||||
case 4: return 0;
|
||||
case 6: return 0x2;
|
||||
// sly spy uses this port as RNG, for now let's do same thing as bootleg (i.e. reads 0x306028)
|
||||
// chances are that it actually ties to the main CPU xtal instead.
|
||||
// (reads at 6958 6696)
|
||||
case 0xc: return m_ram[0x2028/2] >> 8;
|
||||
}
|
||||
|
||||
logerror("%04x, Unknown protection read at 30c000 %d\n", space.device().safe_pc(), offset);
|
||||
@ -564,7 +569,7 @@ READ16_MEMBER(dec0_state::slyspy_state_r)
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( slyspy_protection_map, AS_PROGRAM, 16, dec0_state )
|
||||
AM_RANGE(0x04000, 0x04001) AM_MIRROR(0x30000) AM_READ(slyspy_state_r)
|
||||
AM_RANGE(0x04000, 0x04001) AM_MIRROR(0x30000) AM_READ(slyspy_state_r) AM_WRITENOP
|
||||
AM_RANGE(0x0a000, 0x0a001) AM_MIRROR(0x30000) AM_WRITE(slyspy_state_w)
|
||||
// Default state (called by Traps 1, 3, 4, 7, C)
|
||||
AM_RANGE(0x00000, 0x00007) AM_DEVWRITE("tilegen2", deco_bac06_device, pf_control_0_w)
|
||||
@ -669,15 +674,59 @@ ADDRESS_MAP_END
|
||||
/* Physical memory map (21 bits) */
|
||||
static ADDRESS_MAP_START( slyspy_s_map, AS_PROGRAM, 8, dec0_state )
|
||||
AM_RANGE(0x000000, 0x00ffff) AM_ROM
|
||||
AM_RANGE(0x090000, 0x090001) AM_DEVWRITE("ym2", ym3812_device, write)
|
||||
AM_RANGE(0x0a0000, 0x0a0001) AM_READNOP /* Protection counter */
|
||||
AM_RANGE(0x0b0000, 0x0b0001) AM_DEVWRITE("ym1", ym2203_device, write)
|
||||
AM_RANGE(0x0e0000, 0x0e0001) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0x0f0000, 0x0f0001) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0x080000, 0x0fffff) AM_DEVICE("sndprotect", address_map_bank_device, amap8 )
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
// sly spy sound state protection machine emulation
|
||||
// similar to the video state machine
|
||||
// current bank is at 0x1f0045, incremented by 1 then here is read
|
||||
READ8_MEMBER(dec0_state::slyspy_sound_state_r)
|
||||
{
|
||||
m_slyspy_sound_state ++;
|
||||
m_slyspy_sound_state &= 3;
|
||||
m_sndprotect->set_bank(m_slyspy_sound_state);
|
||||
|
||||
// returned value doesn't matter
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
READ8_MEMBER(dec0_state::slyspy_sound_state_reset_r)
|
||||
{
|
||||
m_slyspy_sound_state = 0;
|
||||
m_sndprotect->set_bank(m_slyspy_sound_state);
|
||||
|
||||
// returned value doesn't matter
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( slyspy_sound_protection_map, AS_PROGRAM, 8, dec0_state )
|
||||
AM_RANGE(0x020000, 0x020001) AM_MIRROR(0x180000) AM_READ(slyspy_sound_state_r) /* Protection counter */
|
||||
AM_RANGE(0x050000, 0x050001) AM_MIRROR(0x180000) AM_READ(slyspy_sound_state_reset_r)
|
||||
// state 0
|
||||
AM_RANGE(0x010000, 0x010001) AM_DEVWRITE("ym2", ym3812_device, write)
|
||||
AM_RANGE(0x030000, 0x030001) AM_DEVWRITE("ym1", ym2203_device, write)
|
||||
AM_RANGE(0x060000, 0x060001) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0x070000, 0x070001) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
// state 1
|
||||
AM_RANGE(0x090000, 0x090001) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0x0c0000, 0x0c0001) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0x0e0000, 0x0e0001) AM_DEVWRITE("ym1", ym2203_device, write)
|
||||
AM_RANGE(0x0f0000, 0x0f0001) AM_DEVWRITE("ym2", ym3812_device, write)
|
||||
// state 2
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0x140000, 0x140001) AM_DEVWRITE("ym1", ym2203_device, write)
|
||||
AM_RANGE(0x170000, 0x170001) AM_DEVWRITE("ym2", ym3812_device, write)
|
||||
// state 3
|
||||
AM_RANGE(0x190000, 0x190001) AM_DEVWRITE("ym2", ym3812_device, write)
|
||||
AM_RANGE(0x1c0000, 0x1c0001) AM_DEVWRITE("ym1", ym2203_device, write)
|
||||
AM_RANGE(0x1e0000, 0x1e0001) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0x1f0000, 0x1f0001) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( midres_s_map, AS_PROGRAM, 8, dec0_state )
|
||||
AM_RANGE(0x000000, 0x00ffff) AM_ROM
|
||||
AM_RANGE(0x108000, 0x108001) AM_DEVWRITE("ym2", ym3812_device, write)
|
||||
@ -1906,6 +1955,8 @@ MACHINE_RESET_MEMBER(dec0_state,slyspy)
|
||||
// set initial memory map
|
||||
m_slyspy_state = 0;
|
||||
m_pfprotect->set_bank(m_slyspy_state);
|
||||
m_slyspy_sound_state = 0;
|
||||
m_sndprotect->set_bank(m_slyspy_sound_state);
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( slyspy, dec1 )
|
||||
@ -1915,7 +1966,8 @@ static MACHINE_CONFIG_DERIVED( slyspy, dec1 )
|
||||
MCFG_CPU_PROGRAM_MAP(slyspy_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", dec0_state, irq6_line_hold) /* VBL, apparently it auto-acks */
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", H6280, XTAL_12MHz/2/3) /* verified on pcb (6Mhz is XIN on pin 10 of H6280, verified on pcb */
|
||||
// TODO: both games doesn't like /3 here, MT #06740
|
||||
MCFG_CPU_ADD("audiocpu", H6280, XTAL_12MHz/2/2) /* verified on pcb (6Mhz is XIN on pin 10 of H6280) */
|
||||
MCFG_CPU_PROGRAM_MAP(slyspy_s_map)
|
||||
|
||||
MCFG_DEVICE_ADD("pfprotect", ADDRESS_MAP_BANK, 0)
|
||||
@ -1925,6 +1977,14 @@ static MACHINE_CONFIG_DERIVED( slyspy, dec1 )
|
||||
MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(18)
|
||||
MCFG_ADDRESS_MAP_BANK_STRIDE(0x10000)
|
||||
|
||||
MCFG_DEVICE_ADD("sndprotect", ADDRESS_MAP_BANK, 0)
|
||||
MCFG_DEVICE_PROGRAM_MAP(slyspy_sound_protection_map)
|
||||
MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE)
|
||||
MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(8)
|
||||
MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(21)
|
||||
MCFG_ADDRESS_MAP_BANK_STRIDE(0x80000)
|
||||
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_slyspy)
|
||||
|
@ -380,14 +380,14 @@ NOTE: There are several unpopulated locations (denoted by *) for additional rom
|
||||
// ADDRESS MAPS
|
||||
//**************************************************************************
|
||||
|
||||
static ADDRESS_MAP_START( captaven_map, AS_PROGRAM, 32, deco32_state )
|
||||
static ADDRESS_MAP_START( captaven_map, AS_PROGRAM, 32, captaven_state )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x100007) AM_READ(_71_r)
|
||||
AM_RANGE(0x100000, 0x100003) AM_WRITE(buffer_spriteram_w)
|
||||
AM_RANGE(0x108000, 0x108003) AM_WRITENOP /* ? */
|
||||
AM_RANGE(0x110000, 0x111fff) AM_READWRITE(spriteram_r, spriteram_w)
|
||||
AM_RANGE(0x120000, 0x127fff) AM_RAM AM_SHARE("ram") /* Main RAM */
|
||||
AM_RANGE(0x128000, 0x12ffff) AM_READWRITE16(deco_146_r, deco_146_w, 0x0000ffff)
|
||||
AM_RANGE(0x128000, 0x12ffff) AM_READWRITE16(ioprot_r, ioprot_w, 0x0000ffff)
|
||||
AM_RANGE(0x130000, 0x131fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||
AM_RANGE(0x148000, 0x14800f) AM_DEVICE8("irq", deco_irq_device, map, 0x000000ff)
|
||||
AM_RANGE(0x160000, 0x167fff) AM_RAM /* Extra work RAM */
|
||||
@ -409,7 +409,7 @@ static ADDRESS_MAP_START( captaven_map, AS_PROGRAM, 32, deco32_state )
|
||||
AM_RANGE(0x1e4000, 0x1e5fff) AM_RAM_WRITE(pf4_rowscroll_w) AM_SHARE("pf4_rowscroll32") // unused
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( fghthist_map, AS_PROGRAM, 32, deco32_state )
|
||||
static ADDRESS_MAP_START( fghthist_map, AS_PROGRAM, 32, fghthist_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
// AM_RANGE(0x000000, 0x001fff) AM_ROM AM_WRITE(pf1_data_w) // wtf??
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
@ -419,12 +419,14 @@ static ADDRESS_MAP_START( fghthist_map, AS_PROGRAM, 32, deco32_state )
|
||||
AM_RANGE(0x120028, 0x12002b) AM_READ8(eeprom_r, 0x000000ff)
|
||||
AM_RANGE(0x12002c, 0x12002f) AM_WRITE8(eeprom_w, 0x000000ff)
|
||||
AM_RANGE(0x12002c, 0x12002f) AM_WRITE8(volume_w, 0x0000ff00)
|
||||
AM_RANGE(0x1201fc, 0x1201ff) AM_WRITE(sound_w)
|
||||
AM_RANGE(0x1201fc, 0x1201ff) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x000000ff)
|
||||
AM_RANGE(0x140000, 0x140003) AM_WRITE(vblank_ack_w)
|
||||
AM_RANGE(0x168000, 0x169fff) AM_RAM_WRITE(buffered_palette_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x16c008, 0x16c00b) AM_WRITE(palette_dma_w)
|
||||
AM_RANGE(0x16c010, 0x16c013) AM_READ(unk_status_r)
|
||||
AM_RANGE(0x178000, 0x179fff) AM_READWRITE(spriteram_r, spriteram_w)
|
||||
AM_RANGE(0x17c010, 0x17c013) AM_WRITE(buffer_spriteram_w)
|
||||
AM_RANGE(0x17c020, 0x17c023) AM_READ(unk_status_r)
|
||||
AM_RANGE(0x182000, 0x183fff) AM_DEVREADWRITE("tilegen1", deco16ic_device, pf1_data_dword_r, pf1_data_dword_w)
|
||||
AM_RANGE(0x184000, 0x185fff) AM_DEVREADWRITE("tilegen1", deco16ic_device, pf2_data_dword_r, pf2_data_dword_w)
|
||||
AM_RANGE(0x192000, 0x193fff) AM_RAM_WRITE(pf1_rowscroll_w) AM_SHARE("pf1_rowscroll32")
|
||||
@ -435,13 +437,11 @@ static ADDRESS_MAP_START( fghthist_map, AS_PROGRAM, 32, deco32_state )
|
||||
AM_RANGE(0x1d2000, 0x1d3fff) AM_RAM_WRITE(pf3_rowscroll_w) AM_SHARE("pf3_rowscroll32")
|
||||
AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM_WRITE(pf4_rowscroll_w) AM_SHARE("pf4_rowscroll32")
|
||||
AM_RANGE(0x1e0000, 0x1e001f) AM_DEVREADWRITE("tilegen2", deco16ic_device, pf_control_dword_r, pf_control_dword_w)
|
||||
AM_RANGE(0x16c000, 0x16c01f) AM_READNOP
|
||||
AM_RANGE(0x17c000, 0x17c03f) AM_READNOP
|
||||
AM_RANGE(0x200000, 0x207fff) AM_READWRITE16(deco_146_r, deco_146_w, 0xffff0000) AM_SHARE("prot32ram") // only maps on 16-bits
|
||||
AM_RANGE(0x200000, 0x207fff) AM_READWRITE16(ioprot_r, ioprot_w, 0xffff0000) AM_SHARE("prot32ram") // only maps on 16-bits
|
||||
AM_RANGE(0x208800, 0x208803) AM_WRITENOP /* ? */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( fghthsta_memmap, AS_PROGRAM, 32, deco32_state )
|
||||
static ADDRESS_MAP_START( fghthsta_memmap, AS_PROGRAM, 32, fghthist_state )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_SHARE("ram")
|
||||
AM_RANGE(0x140000, 0x140003) AM_WRITE(vblank_ack_w)
|
||||
@ -449,10 +449,10 @@ static ADDRESS_MAP_START( fghthsta_memmap, AS_PROGRAM, 32, deco32_state )
|
||||
AM_RANGE(0x150000, 0x150003) AM_WRITE8(volume_w, 0x0000ff00)
|
||||
AM_RANGE(0x168000, 0x169fff) AM_RAM_WRITE(buffered_palette_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x16c008, 0x16c00b) AM_WRITE(palette_dma_w)
|
||||
AM_RANGE(0x16c010, 0x16c013) AM_READNOP
|
||||
AM_RANGE(0x16c010, 0x16c013) AM_READ(unk_status_r)
|
||||
AM_RANGE(0x178000, 0x179fff) AM_READWRITE(spriteram_r, spriteram_w)
|
||||
AM_RANGE(0x17c010, 0x17c013) AM_WRITE(buffer_spriteram_w)
|
||||
AM_RANGE(0x17c020, 0x17c023) AM_READNOP
|
||||
AM_RANGE(0x17c020, 0x17c023) AM_READ(unk_status_r)
|
||||
AM_RANGE(0x182000, 0x183fff) AM_DEVREADWRITE("tilegen1", deco16ic_device, pf1_data_dword_r, pf1_data_dword_w)
|
||||
AM_RANGE(0x184000, 0x185fff) AM_DEVREADWRITE("tilegen1", deco16ic_device, pf2_data_dword_r, pf2_data_dword_w)
|
||||
AM_RANGE(0x192000, 0x193fff) AM_RAM_WRITE(pf1_rowscroll_w) AM_SHARE("pf1_rowscroll32")
|
||||
@ -463,7 +463,7 @@ static ADDRESS_MAP_START( fghthsta_memmap, AS_PROGRAM, 32, deco32_state )
|
||||
AM_RANGE(0x1d2000, 0x1d3fff) AM_RAM_WRITE(pf3_rowscroll_w) AM_SHARE("pf3_rowscroll32")
|
||||
AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM_WRITE(pf4_rowscroll_w) AM_SHARE("pf4_rowscroll32")
|
||||
AM_RANGE(0x1e0000, 0x1e001f) AM_DEVREADWRITE("tilegen2", deco16ic_device, pf_control_dword_r, pf_control_dword_w)
|
||||
AM_RANGE(0x200000, 0x207fff) AM_READWRITE16(deco_146_r, deco_146_w, 0xffff0000) AM_SHARE("prot32ram") // only maps on 16-bits
|
||||
AM_RANGE(0x200000, 0x207fff) AM_READWRITE16(ioprot_r, ioprot_w, 0xffff0000) AM_SHARE("prot32ram") // only maps on 16-bits
|
||||
ADDRESS_MAP_END
|
||||
|
||||
// the video drawing (especially sprite) code on this is too slow to cope with proper partial updates
|
||||
@ -471,7 +471,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( dragngun_map, AS_PROGRAM, 32, dragngun_state )
|
||||
AM_RANGE(0x0000000, 0x00fffff) AM_ROM
|
||||
AM_RANGE(0x0100000, 0x011ffff) AM_RAM AM_SHARE("ram")
|
||||
AM_RANGE(0x0120000, 0x0127fff) AM_READWRITE16(deco_146_r, deco_146_w, 0x0000ffff)
|
||||
AM_RANGE(0x0120000, 0x0127fff) AM_READWRITE16(ioprot_r, ioprot_w, 0x0000ffff)
|
||||
// AM_RANGE(0x01204c0, 0x01204c3) AM_WRITE(sound_w)
|
||||
AM_RANGE(0x0128000, 0x012800f) AM_DEVICE8("irq", deco_irq_device, map, 0x000000ff)
|
||||
AM_RANGE(0x0130000, 0x0131fff) AM_RAM_WRITE(buffered_palette_w) AM_SHARE("paletteram")
|
||||
@ -523,7 +523,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( lockload_map, AS_PROGRAM, 32, dragngun_state )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_SHARE("ram")
|
||||
AM_RANGE(0x120000, 0x127fff) AM_READWRITE16(deco_146_r, deco_146_w, 0x0000ffff)
|
||||
AM_RANGE(0x120000, 0x127fff) AM_READWRITE16(ioprot_r, ioprot_w, 0x0000ffff)
|
||||
AM_RANGE(0x128000, 0x12800f) AM_DEVICE8("irq", deco_irq_device, map, 0x000000ff)
|
||||
AM_RANGE(0x130000, 0x131fff) AM_RAM_WRITE(buffered_palette_w) AM_SHARE("paletteram")
|
||||
AM_RANGE(0x138000, 0x138003) AM_READONLY AM_WRITENOP //palette dma complete in bit 0x8? ack? return 0 else tight loop
|
||||
@ -555,7 +555,7 @@ static ADDRESS_MAP_START( lockload_map, AS_PROGRAM, 32, dragngun_state )
|
||||
AM_RANGE(0x500000, 0x500003) AM_WRITE(sprite_control_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( tattass_map, AS_PROGRAM, 32, deco32_state )
|
||||
static ADDRESS_MAP_START( tattass_map, AS_PROGRAM, 32, nslasher_state )
|
||||
AM_RANGE(0x000000, 0x0f7fff) AM_ROM
|
||||
AM_RANGE(0x0f8000, 0x0fffff) AM_ROM AM_WRITENOP
|
||||
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_SHARE("ram")
|
||||
@ -590,11 +590,11 @@ static ADDRESS_MAP_START( tattass_map, AS_PROGRAM, 32, deco32_state )
|
||||
AM_RANGE(0x1d2000, 0x1d3fff) AM_RAM_WRITE(pf3_rowscroll_w) AM_SHARE("pf3_rowscroll32")
|
||||
AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM_WRITE(pf4_rowscroll_w) AM_SHARE("pf4_rowscroll32")
|
||||
AM_RANGE(0x1e0000, 0x1e001f) AM_DEVREADWRITE("tilegen2", deco16ic_device, pf_control_dword_r, pf_control_dword_w)
|
||||
AM_RANGE(0x200000, 0x207fff) AM_READWRITE16(deco_104_r, deco_104_w, 0xffff0000)
|
||||
AM_RANGE(0x200000, 0x207fff) AM_READWRITE16(ioprot_r, ioprot_w, 0xffff0000)
|
||||
AM_RANGE(0x200000, 0x207fff) AM_READ16(nslasher_debug_r, 0x0000ffff)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( nslasher_map, AS_PROGRAM, 32, deco32_state )
|
||||
static ADDRESS_MAP_START( nslasher_map, AS_PROGRAM, 32, nslasher_state )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_SHARE("ram")
|
||||
AM_RANGE(0x120000, 0x1200ff) AM_NOP /* ACIA (unused) */
|
||||
@ -627,7 +627,7 @@ static ADDRESS_MAP_START( nslasher_map, AS_PROGRAM, 32, deco32_state )
|
||||
AM_RANGE(0x1d2000, 0x1d3fff) AM_RAM_WRITE(pf3_rowscroll_w) AM_SHARE("pf3_rowscroll32")
|
||||
AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM_WRITE(pf4_rowscroll_w) AM_SHARE("pf4_rowscroll32")
|
||||
AM_RANGE(0x1e0000, 0x1e001f) AM_DEVREADWRITE("tilegen2", deco16ic_device, pf_control_dword_r, pf_control_dword_w)
|
||||
AM_RANGE(0x200000, 0x207fff) AM_READWRITE16(deco_104_r, deco_104_w, 0xffff0000)
|
||||
AM_RANGE(0x200000, 0x207fff) AM_READWRITE16(ioprot_r, ioprot_w, 0xffff0000)
|
||||
AM_RANGE(0x200000, 0x207fff) AM_READ16(nslasher_debug_r, 0x0000ffff) // seems to be debug switches / code activated by this?
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -637,12 +637,17 @@ static ADDRESS_MAP_START( h6280_sound_map, AS_PROGRAM, 8, deco32_state )
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
AM_RANGE(0x140000, 0x140001) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0x140000, 0x140000) AM_DEVREAD("ioprot", deco_146_base_device, soundlatch_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_DEVWRITE("audiocpu", h6280_device, timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( h6280_sound_custom_latch_map, AS_PROGRAM, 8, deco32_state )
|
||||
AM_RANGE(0x140000, 0x140000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_IMPORT_FROM(h6280_sound_map)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
// Z80 based sound
|
||||
static ADDRESS_MAP_START( z80_sound_mem, AS_PROGRAM, 8, deco32_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
@ -650,7 +655,7 @@ static ADDRESS_MAP_START( z80_sound_mem, AS_PROGRAM, 8, deco32_state )
|
||||
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
|
||||
AM_RANGE(0xb000, 0xb000) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0xc000, 0xc000) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
AM_RANGE(0xd000, 0xd000) AM_READ(latch_r)
|
||||
AM_RANGE(0xd000, 0xd000) AM_DEVREAD("ioprot", deco_146_base_device, soundlatch_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( z80_sound_io, AS_IO, 8, deco32_state )
|
||||
@ -662,40 +667,22 @@ ADDRESS_MAP_END
|
||||
// PROTECTION
|
||||
//**************************************************************************
|
||||
|
||||
READ16_MEMBER( deco32_state::deco_104_r )
|
||||
READ16_MEMBER( deco32_state::ioprot_r )
|
||||
{
|
||||
offs_t real_address = 0 + (offset *2);
|
||||
offs_t deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
|
||||
uint8_t cs = 0;
|
||||
|
||||
return m_deco104->read_data( deco146_addr, mem_mask, cs );
|
||||
return m_ioprot->read_data( deco146_addr, mem_mask, cs );
|
||||
}
|
||||
|
||||
WRITE16_MEMBER( deco32_state::deco_104_w )
|
||||
WRITE16_MEMBER( deco32_state::ioprot_w )
|
||||
{
|
||||
offs_t real_address = 0 + (offset *2);
|
||||
offs_t deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
|
||||
uint8_t cs = 0;
|
||||
|
||||
m_deco104->write_data( space, deco146_addr, data, mem_mask, cs );
|
||||
}
|
||||
|
||||
READ16_MEMBER( deco32_state::deco_146_r )
|
||||
{
|
||||
offs_t real_address = 0 + (offset * 2);
|
||||
offs_t deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8,7,6,5,4,3,2,1, 0) & 0x7fff;
|
||||
uint8_t cs = 0;
|
||||
|
||||
return m_deco146->read_data(deco146_addr, mem_mask, cs);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER( deco32_state::deco_146_w )
|
||||
{
|
||||
offs_t real_address = 0 + (offset * 2);
|
||||
offs_t deco146_addr = BITSWAP32(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8,7,6,5,4,3,2,1, 0) & 0x7fff;
|
||||
uint8_t cs = 0;
|
||||
|
||||
m_deco146->write_data(space, deco146_addr, data, mem_mask, cs);
|
||||
m_ioprot->write_data( space, deco146_addr, data, mem_mask, cs );
|
||||
}
|
||||
|
||||
|
||||
@ -703,21 +690,6 @@ WRITE16_MEMBER( deco32_state::deco_146_w )
|
||||
// SOUND
|
||||
//**************************************************************************
|
||||
|
||||
WRITE32_MEMBER( deco32_state::sound_w )
|
||||
{
|
||||
m_soundlatch->write(space, 0, data & 0xff);
|
||||
m_audiocpu->set_input_line(0, HOLD_LINE);
|
||||
}
|
||||
|
||||
READ8_MEMBER(deco32_state::latch_r)
|
||||
{
|
||||
/* bit 1 of nslasher_sound_irq specifies IRQ command writes */
|
||||
m_nslasher_sound_irq &= ~0x02;
|
||||
m_audiocpu->set_input_line(0, (m_nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
|
||||
|
||||
return m_soundlatch->read(space,0);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( deco32_state::volume_w )
|
||||
{
|
||||
// TODO: assume linear with a 0.0-1.0 dB scale for now
|
||||
@ -729,7 +701,7 @@ WRITE8_MEMBER( deco32_state::volume_w )
|
||||
m_oki2->set_output_gain(ALL_OUTPUTS, vol_output);
|
||||
}
|
||||
|
||||
READ8_MEMBER( deco32_state::captaven_soundcpu_status_r )
|
||||
READ8_MEMBER( captaven_state::captaven_soundcpu_status_r )
|
||||
{
|
||||
// 7------- sound cpu status (0 = busy)
|
||||
// -6543210 unknown
|
||||
@ -782,36 +754,15 @@ LC7535_VOLUME_CHANGED( dragngun_state::volume_gun_changed )
|
||||
m_oki3->set_output_gain(ALL_OUTPUTS, m_vol_gun->normalize(attenuation_left));
|
||||
}
|
||||
|
||||
void deco32_state::deco32_sound_cb(address_space &space, uint16_t data, uint16_t mem_mask)
|
||||
WRITE_LINE_MEMBER( nslasher_state::tattass_sound_irq_w )
|
||||
{
|
||||
m_soundlatch->write(space, 0, data & 0xff);
|
||||
m_audiocpu->set_input_line(0, HOLD_LINE);
|
||||
}
|
||||
|
||||
void deco32_state::nslasher_sound_cb(address_space &space, uint16_t data, uint16_t mem_mask)
|
||||
{
|
||||
/* bit 1 of nslasher_sound_irq specifies IRQ command writes */
|
||||
m_soundlatch->write(space,0,(data)&0xff);
|
||||
m_nslasher_sound_irq |= 0x02;
|
||||
m_audiocpu->set_input_line(0, (m_nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
void deco32_state::tattass_sound_cb(address_space &space, uint16_t data, uint16_t mem_mask)
|
||||
{
|
||||
/* 'Swap bits 0 and 3 to correct for design error from BSMT schematic' */
|
||||
int soundcommand = (data)&0xff;
|
||||
soundcommand = BITSWAP8(soundcommand,7,6,5,4,0,2,1,3);
|
||||
m_decobsmt->bsmt_comms_w(space, 0, soundcommand);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( deco32_state::sound_irq_nslasher )
|
||||
{
|
||||
/* bit 0 of nslasher_sound_irq specifies IRQ from sound chip */
|
||||
if (state)
|
||||
m_nslasher_sound_irq |= 0x01;
|
||||
else
|
||||
m_nslasher_sound_irq &= ~0x01;
|
||||
m_audiocpu->set_input_line(0, (m_nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
|
||||
{
|
||||
uint8_t data = m_ioprot->soundlatch_r(machine().dummy_space(), 0);
|
||||
// Swap bits 0 and 3 to correct for design error from BSMT schematic
|
||||
data = BITSWAP8(data, 7, 6, 5, 4, 0, 2, 1, 3);
|
||||
m_decobsmt->bsmt_comms_w(machine().dummy_space(), 0, data);
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( deco32_state::sound_bankswitch_w )
|
||||
@ -847,19 +798,19 @@ WRITE32_MEMBER( deco32_state::buffer_spriteram_w )
|
||||
memcpy(m_spriteram16_buffered, m_spriteram16, 0x1000);
|
||||
}
|
||||
|
||||
READ32_MEMBER( deco32_state::spriteram2_r )
|
||||
READ32_MEMBER( nslasher_state::spriteram2_r )
|
||||
{
|
||||
return m_spriteram16_2[offset] ^ 0xffff0000;
|
||||
}
|
||||
|
||||
WRITE32_MEMBER( deco32_state::spriteram2_w )
|
||||
WRITE32_MEMBER( nslasher_state::spriteram2_w )
|
||||
{
|
||||
data &= 0x0000ffff;
|
||||
mem_mask &= 0x0000ffff;
|
||||
COMBINE_DATA(&m_spriteram16_2[offset]);
|
||||
}
|
||||
|
||||
WRITE32_MEMBER( deco32_state::buffer_spriteram2_w )
|
||||
WRITE32_MEMBER( nslasher_state::buffer_spriteram2_w )
|
||||
{
|
||||
memcpy(m_spriteram16_2_buffered, m_spriteram16_2, 0x1000);
|
||||
}
|
||||
@ -875,7 +826,7 @@ READ32_MEMBER( dragngun_state::unk_video_r)
|
||||
return machine().rand();
|
||||
}
|
||||
|
||||
DECOSPR_PRIORITY_CB_MEMBER( deco32_state::captaven_pri_callback )
|
||||
DECOSPR_PRIORITY_CB_MEMBER( captaven_state::captaven_pri_callback )
|
||||
{
|
||||
if ((pri & 0x60) == 0x00)
|
||||
{
|
||||
@ -895,7 +846,7 @@ DECOSPR_PRIORITY_CB_MEMBER( deco32_state::captaven_pri_callback )
|
||||
}
|
||||
}
|
||||
|
||||
DECO16IC_BANK_CB_MEMBER( deco32_state::captaven_bank_callback )
|
||||
DECO16IC_BANK_CB_MEMBER( captaven_state::captaven_bank_callback )
|
||||
{
|
||||
bank = bank >> 4;
|
||||
bank = (bank & 2) >> 1;
|
||||
@ -903,7 +854,7 @@ DECO16IC_BANK_CB_MEMBER( deco32_state::captaven_bank_callback )
|
||||
return bank * 0x4000;
|
||||
}
|
||||
|
||||
DECO16IC_BANK_CB_MEMBER( deco32_state::fghthist_bank_callback )
|
||||
DECO16IC_BANK_CB_MEMBER( fghthist_state::fghthist_bank_callback )
|
||||
{
|
||||
bank = bank >> 4;
|
||||
bank = (bank & 1) | ((bank & 4) >> 1) | ((bank & 2) << 1);
|
||||
@ -924,7 +875,7 @@ DECO16IC_BANK_CB_MEMBER( dragngun_state::bank_2_callback )
|
||||
return bank * 0x1000;
|
||||
}
|
||||
|
||||
DECO16IC_BANK_CB_MEMBER( deco32_state::tattass_bank_callback )
|
||||
DECO16IC_BANK_CB_MEMBER( nslasher_state::tattass_bank_callback )
|
||||
{
|
||||
bank = bank >> 4;
|
||||
return bank * 0x1000;
|
||||
@ -935,12 +886,12 @@ DECO16IC_BANK_CB_MEMBER( deco32_state::tattass_bank_callback )
|
||||
// INPUTS
|
||||
//**************************************************************************
|
||||
|
||||
READ8_MEMBER( deco32_state::captaven_dsw1_r ) { return ioport("DSW1")->read(); }
|
||||
READ8_MEMBER( deco32_state::captaven_dsw2_r ) { return ioport("DSW2")->read(); }
|
||||
READ8_MEMBER( deco32_state::captaven_dsw3_r ) { return ioport("DSW3")->read(); }
|
||||
READ8_MEMBER( captaven_state::captaven_dsw1_r ) { return ioport("DSW1")->read(); }
|
||||
READ8_MEMBER( captaven_state::captaven_dsw2_r ) { return ioport("DSW2")->read(); }
|
||||
READ8_MEMBER( captaven_state::captaven_dsw3_r ) { return ioport("DSW3")->read(); }
|
||||
|
||||
READ16_MEMBER( deco32_state::fghthist_in0_r ) { return ioport("IN0")->read(); }
|
||||
READ16_MEMBER( deco32_state::fghthist_in1_r ) { return ioport("IN1")->read(); }
|
||||
READ16_MEMBER( fghthist_state::fghthist_in0_r ) { return ioport("IN0")->read(); }
|
||||
READ16_MEMBER( fghthist_state::fghthist_in1_r ) { return ioport("IN1")->read(); }
|
||||
|
||||
// TODO: probably clears both player 1 and player 2
|
||||
WRITE32_MEMBER( dragngun_state::gun_irq_ack_w )
|
||||
@ -1034,7 +985,7 @@ WRITE8_MEMBER( dragngun_state::eeprom_w )
|
||||
m_eeprom->cs_write(BIT(data, 2) ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
WRITE32_MEMBER( deco32_state::tattass_control_w )
|
||||
WRITE32_MEMBER( nslasher_state::tattass_control_w )
|
||||
{
|
||||
/* Eprom in low byte */
|
||||
if (ACCESSING_BITS_0_7) { /* Byte write to low byte only (different from word writing including low byte) */
|
||||
@ -1161,7 +1112,7 @@ WRITE32_MEMBER( deco32_state::tattass_control_w )
|
||||
//logerror("%08x: %08x data\n",data,mem_mask);
|
||||
}
|
||||
|
||||
READ16_MEMBER( deco32_state::port_b_tattass )
|
||||
READ16_MEMBER( nslasher_state::port_b_tattass )
|
||||
{
|
||||
return m_tattass_eprom_bit;
|
||||
}
|
||||
@ -1171,24 +1122,28 @@ READ16_MEMBER( deco32_state::port_b_tattass )
|
||||
// MACHINE
|
||||
//**************************************************************************
|
||||
|
||||
READ16_MEMBER( deco32_state::nslasher_debug_r )
|
||||
READ32_MEMBER( fghthist_state::unk_status_r )
|
||||
{
|
||||
// bit 3 needs to be 0
|
||||
return 0xfffffff7;
|
||||
}
|
||||
|
||||
READ16_MEMBER( nslasher_state::nslasher_debug_r )
|
||||
{
|
||||
return 0xffff;
|
||||
}
|
||||
|
||||
READ32_MEMBER( deco32_state::_71_r )
|
||||
READ32_MEMBER( captaven_state::_71_r )
|
||||
{
|
||||
/* Bit 0x80 goes high when sprite DMA is complete, and low
|
||||
while it's in progress, we don't bother to emulate it */
|
||||
return 0xffffffff;
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER( deco32_state, captaven )
|
||||
DRIVER_INIT_MEMBER( captaven_state, captaven )
|
||||
{
|
||||
deco56_decrypt_gfx(machine(), "gfx1");
|
||||
deco56_decrypt_gfx(machine(), "gfx2");
|
||||
|
||||
save_item(NAME(m_nslasher_sound_irq));
|
||||
}
|
||||
|
||||
extern void process_dvi_data(device_t *device,uint8_t* dvi_data, int offset, int regionsize);
|
||||
@ -1247,7 +1202,7 @@ DRIVER_INIT_MEMBER( dragngun_state, dragngunj )
|
||||
ROM[0x1a1b4/4]=0xe1a00000; // bl $ee000: NOP test switch lock
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER( deco32_state, fghthist )
|
||||
DRIVER_INIT_MEMBER( fghthist_state, fghthist )
|
||||
{
|
||||
deco56_decrypt_gfx(machine(), "gfx1");
|
||||
deco74_decrypt_gfx(machine(), "gfx2");
|
||||
@ -1265,14 +1220,12 @@ DRIVER_INIT_MEMBER( dragngun_state, lockload )
|
||||
memcpy(RAM+0x300000,RAM+0x100000,0x100000);
|
||||
memset(RAM+0x100000,0,0x100000);
|
||||
|
||||
save_item(NAME(m_nslasher_sound_irq));
|
||||
|
||||
// ROM[0x3fe3c0/4]=0xe1a00000;// NOP test switch lock
|
||||
// ROM[0x3fe3cc/4]=0xe1a00000;// NOP test switch lock
|
||||
// ROM[0x3fe40c/4]=0xe1a00000;// NOP test switch lock
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER( deco32_state, tattass )
|
||||
DRIVER_INIT_MEMBER( nslasher_state, tattass )
|
||||
{
|
||||
uint8_t *RAM = memregion("gfx1")->base();
|
||||
std::vector<uint8_t> tmp(0x80000);
|
||||
@ -1299,7 +1252,7 @@ DRIVER_INIT_MEMBER( deco32_state, tattass )
|
||||
save_item(NAME(m_byteAddr));
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER( deco32_state, nslasher )
|
||||
DRIVER_INIT_MEMBER( nslasher_state, nslasher )
|
||||
{
|
||||
uint8_t *RAM = memregion("gfx1")->base();
|
||||
std::vector<uint8_t> tmp(0x80000);
|
||||
@ -1319,10 +1272,6 @@ DRIVER_INIT_MEMBER( deco32_state, nslasher )
|
||||
|
||||
deco156_decrypt(machine());
|
||||
|
||||
m_soundlatch->preset_w(0xff);
|
||||
|
||||
save_item(NAME(m_nslasher_sound_irq));
|
||||
|
||||
/* The board for Night Slashers is very close to the Fighter's History and
|
||||
Tattoo Assassins boards, but has an encrypted ARM cpu. */
|
||||
}
|
||||
@ -1919,7 +1868,7 @@ static MACHINE_CONFIG_START( captaven )
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL_28MHz / 4, 442, 0, 320, 274, 8, 248)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_captaven)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(captaven_state, screen_update_captaven)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", captaven)
|
||||
@ -1948,7 +1897,7 @@ static MACHINE_CONFIG_START( captaven )
|
||||
MCFG_DECO16IC_PF2_COL_BANK(0x00)
|
||||
MCFG_DECO16IC_PF1_COL_MASK(0x0f)
|
||||
MCFG_DECO16IC_PF2_COL_MASK(0x00)
|
||||
MCFG_DECO16IC_BANK1_CB(deco32_state, captaven_bank_callback)
|
||||
MCFG_DECO16IC_BANK1_CB(captaven_state, captaven_bank_callback)
|
||||
// no bank2 callback
|
||||
MCFG_DECO16IC_PF12_8X8_BANK(0)
|
||||
MCFG_DECO16IC_PF12_16X16_BANK(2)
|
||||
@ -1956,25 +1905,23 @@ static MACHINE_CONFIG_START( captaven )
|
||||
|
||||
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
|
||||
MCFG_DECO_SPRITE_GFX_REGION(3)
|
||||
MCFG_DECO_SPRITE_PRIORITY_CB(deco32_state, captaven_pri_callback)
|
||||
MCFG_DECO_SPRITE_PRIORITY_CB(captaven_state, captaven_pri_callback)
|
||||
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
|
||||
|
||||
MCFG_DECO146_ADD("ioprot")
|
||||
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
|
||||
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
|
||||
MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(deco32_state, deco32_sound_cb)
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(INPUTLINE("audiocpu", 0))
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(deco32_state,captaven)
|
||||
MCFG_VIDEO_START_OVERRIDE(captaven_state, captaven)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", XTAL_32_22MHz/9) /* verified on pcb */
|
||||
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 1))
|
||||
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(deco32_state,sound_bankswitch_w))
|
||||
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(deco32_state, sound_bankswitch_w))
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.42)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.42)
|
||||
|
||||
@ -1994,13 +1941,13 @@ static MACHINE_CONFIG_START( fghthist )
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", deco32_state, irq0_line_assert)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", H6280, XTAL_32_22MHz / 8)
|
||||
MCFG_CPU_PROGRAM_MAP(h6280_sound_map)
|
||||
MCFG_CPU_PROGRAM_MAP(h6280_sound_custom_latch_map)
|
||||
|
||||
MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL_28MHz / 4, 442, 0, 320, 274, 8, 248)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_fghthist)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(fghthist_state, screen_update_fghthist)
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", fghthist)
|
||||
MCFG_PALETTE_ADD("palette", 2048)
|
||||
@ -2014,8 +1961,8 @@ static MACHINE_CONFIG_START( fghthist )
|
||||
MCFG_DECO16IC_PF2_COL_BANK(0x10)
|
||||
MCFG_DECO16IC_PF1_COL_MASK(0x0f)
|
||||
MCFG_DECO16IC_PF2_COL_MASK(0x0f)
|
||||
MCFG_DECO16IC_BANK1_CB(deco32_state, fghthist_bank_callback)
|
||||
MCFG_DECO16IC_BANK2_CB(deco32_state, fghthist_bank_callback)
|
||||
MCFG_DECO16IC_BANK1_CB(fghthist_state, fghthist_bank_callback)
|
||||
MCFG_DECO16IC_BANK2_CB(fghthist_state, fghthist_bank_callback)
|
||||
MCFG_DECO16IC_PF12_8X8_BANK(0)
|
||||
MCFG_DECO16IC_PF12_16X16_BANK(1)
|
||||
MCFG_DECO16IC_GFXDECODE("gfxdecode")
|
||||
@ -2029,8 +1976,8 @@ static MACHINE_CONFIG_START( fghthist )
|
||||
MCFG_DECO16IC_PF2_COL_BANK(0x30)
|
||||
MCFG_DECO16IC_PF1_COL_MASK(0x0f)
|
||||
MCFG_DECO16IC_PF2_COL_MASK(0x0f)
|
||||
MCFG_DECO16IC_BANK1_CB(deco32_state, fghthist_bank_callback)
|
||||
MCFG_DECO16IC_BANK2_CB(deco32_state, fghthist_bank_callback)
|
||||
MCFG_DECO16IC_BANK1_CB(fghthist_state, fghthist_bank_callback)
|
||||
MCFG_DECO16IC_BANK2_CB(fghthist_state, fghthist_bank_callback)
|
||||
MCFG_DECO16IC_PF12_8X8_BANK(0)
|
||||
MCFG_DECO16IC_PF12_16X16_BANK(2)
|
||||
MCFG_DECO16IC_GFXDECODE("gfxdecode")
|
||||
@ -2046,12 +1993,13 @@ static MACHINE_CONFIG_START( fghthist )
|
||||
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_INTERLEAVE
|
||||
MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(deco32_state, fghthist)
|
||||
MCFG_VIDEO_START_OVERRIDE(fghthist_state, fghthist)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", 0))
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", 32220000/9)
|
||||
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 1))
|
||||
@ -2072,6 +2020,14 @@ MACHINE_CONFIG_END
|
||||
static MACHINE_CONFIG_DERIVED( fghthsta, fghthist )
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
MCFG_CPU_PROGRAM_MAP(fghthsta_memmap)
|
||||
|
||||
MCFG_CPU_MODIFY("audiocpu")
|
||||
MCFG_CPU_PROGRAM_MAP(h6280_sound_map)
|
||||
|
||||
MCFG_DEVICE_REMOVE("soundlatch")
|
||||
|
||||
MCFG_DEVICE_MODIFY("ioprot")
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(INPUTLINE("audiocpu", 0))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
// DE-0396-0
|
||||
@ -2082,10 +2038,14 @@ static MACHINE_CONFIG_DERIVED( fghthistu, fghthsta )
|
||||
MCFG_CPU_PROGRAM_MAP(z80_sound_mem)
|
||||
MCFG_CPU_IO_MAP(z80_sound_io)
|
||||
|
||||
MCFG_INPUT_MERGER_ANY_HIGH("sound_irq_merger")
|
||||
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DEVICE_MODIFY("ioprot")
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(DEVWRITELINE("sound_irq_merger", input_merger_any_high_device, in_w<0>))
|
||||
|
||||
MCFG_SOUND_MODIFY("ymsnd")
|
||||
//MCFG_YM2151_IRQ_HANDLER(WRITELINE(deco32_state,sound_irq_nslasher))
|
||||
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(deco32_state, sound_bankswitch_w))
|
||||
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("sound_irq_merger", input_merger_any_high_device, in_w<1>))
|
||||
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.40)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.40)
|
||||
@ -2159,17 +2119,15 @@ static MACHINE_CONFIG_START( dragngun )
|
||||
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
|
||||
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
|
||||
MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(deco32_state, deco32_sound_cb)
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(INPUTLINE("audiocpu", 0))
|
||||
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_REVERSE
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", 32220000/9)
|
||||
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 1))
|
||||
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(deco32_state,sound_bankswitch_w))
|
||||
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(deco32_state, sound_bankswitch_w))
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.42)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.42)
|
||||
|
||||
@ -2212,12 +2170,15 @@ static MACHINE_CONFIG_START( lockload )
|
||||
MCFG_CPU_ADD("maincpu", ARM, XTAL_28MHz / 4)
|
||||
MCFG_CPU_PROGRAM_MAP(lockload_map)
|
||||
|
||||
MCFG_INPUT_MERGER_ANY_HIGH("irq_merger")
|
||||
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", ARM_IRQ_LINE))
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80, 32220000/8)
|
||||
MCFG_CPU_PROGRAM_MAP(z80_sound_mem)
|
||||
MCFG_CPU_IO_MAP(z80_sound_io)
|
||||
|
||||
MCFG_INPUT_MERGER_ANY_HIGH("irq_merger")
|
||||
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", ARM_IRQ_LINE))
|
||||
MCFG_INPUT_MERGER_ANY_HIGH("sound_irq_merger")
|
||||
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_DECO_IRQ_ADD("irq", "screen")
|
||||
MCFG_DECO_IRQ_LIGHTGUN1_CB(IOPORT("LIGHT0_Y"))
|
||||
@ -2279,7 +2240,7 @@ static MACHINE_CONFIG_START( lockload )
|
||||
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
|
||||
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
|
||||
MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(deco32_state, deco32_sound_cb)
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(DEVWRITELINE("sound_irq_merger", input_merger_any_high_device, in_w<0>))
|
||||
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_REVERSE
|
||||
|
||||
/* sound hardware */
|
||||
@ -2288,8 +2249,8 @@ static MACHINE_CONFIG_START( lockload )
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", 32220000/9)
|
||||
MCFG_YM2151_IRQ_HANDLER(WRITELINE(deco32_state,sound_irq_nslasher))
|
||||
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(deco32_state,sound_bankswitch_w))
|
||||
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("sound_irq_merger", input_merger_any_high_device, in_w<1>))
|
||||
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(deco32_state, sound_bankswitch_w))
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.42)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.42)
|
||||
|
||||
@ -2321,7 +2282,7 @@ static MACHINE_CONFIG_START( tattass )
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL_28MHz / 4, 442, 0, 320, 274, 8, 248)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_nslasher)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(nslasher_state, screen_update_nslasher)
|
||||
|
||||
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
|
||||
MCFG_DECO16IC_SPLIT(0)
|
||||
@ -2332,8 +2293,8 @@ static MACHINE_CONFIG_START( tattass )
|
||||
MCFG_DECO16IC_PF2_COL_BANK(0x10)
|
||||
MCFG_DECO16IC_PF1_COL_MASK(0x0f)
|
||||
MCFG_DECO16IC_PF2_COL_MASK(0x0f)
|
||||
MCFG_DECO16IC_BANK1_CB(deco32_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_BANK2_CB(deco32_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_BANK1_CB(nslasher_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_BANK2_CB(nslasher_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_PF12_8X8_BANK(0)
|
||||
MCFG_DECO16IC_PF12_16X16_BANK(1)
|
||||
MCFG_DECO16IC_GFXDECODE("gfxdecode")
|
||||
@ -2347,8 +2308,8 @@ static MACHINE_CONFIG_START( tattass )
|
||||
MCFG_DECO16IC_PF2_COL_BANK(0x30)
|
||||
MCFG_DECO16IC_PF1_COL_MASK(0x0f)
|
||||
MCFG_DECO16IC_PF2_COL_MASK(0x0f)
|
||||
MCFG_DECO16IC_BANK1_CB(deco32_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_BANK2_CB(deco32_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_BANK1_CB(nslasher_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_BANK2_CB(nslasher_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_PF12_8X8_BANK(0)
|
||||
MCFG_DECO16IC_PF12_16X16_BANK(2)
|
||||
MCFG_DECO16IC_GFXDECODE("gfxdecode")
|
||||
@ -2364,14 +2325,14 @@ static MACHINE_CONFIG_START( tattass )
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", tattass)
|
||||
MCFG_PALETTE_ADD("palette", 2048)
|
||||
|
||||
MCFG_DECO104_ADD("ioprot104")
|
||||
MCFG_DECO104_ADD("ioprot")
|
||||
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_DECO146_IN_PORTB_CB(READ16(deco32_state, port_b_tattass))
|
||||
MCFG_DECO146_IN_PORTB_CB(READ16(nslasher_state, port_b_tattass))
|
||||
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
|
||||
MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(deco32_state, tattass_sound_cb)
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(WRITELINE(nslasher_state, tattass_sound_irq_w))
|
||||
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_INTERLEAVE
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(deco32_state,nslasher)
|
||||
MCFG_VIDEO_START_OVERRIDE(nslasher_state,nslasher)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_DECOBSMT_ADD(DECOBSMT_TAG)
|
||||
@ -2388,13 +2349,16 @@ static MACHINE_CONFIG_START( nslasher )
|
||||
MCFG_CPU_PROGRAM_MAP(z80_sound_mem)
|
||||
MCFG_CPU_IO_MAP(z80_sound_io)
|
||||
|
||||
MCFG_INPUT_MERGER_ANY_HIGH("sound_irq_merger")
|
||||
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* to improve main<->audio comms */
|
||||
|
||||
MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL_28_322MHz / 4, 442, 0, 320, 274, 8, 248)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_nslasher)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(nslasher_state, screen_update_nslasher)
|
||||
|
||||
MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
|
||||
MCFG_DECO16IC_SPLIT(0)
|
||||
@ -2405,8 +2369,8 @@ static MACHINE_CONFIG_START( nslasher )
|
||||
MCFG_DECO16IC_PF2_COL_BANK(0x10)
|
||||
MCFG_DECO16IC_PF1_COL_MASK(0x0f)
|
||||
MCFG_DECO16IC_PF2_COL_MASK(0x0f)
|
||||
MCFG_DECO16IC_BANK1_CB(deco32_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_BANK2_CB(deco32_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_BANK1_CB(nslasher_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_BANK2_CB(nslasher_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_PF12_8X8_BANK(0)
|
||||
MCFG_DECO16IC_PF12_16X16_BANK(1)
|
||||
MCFG_DECO16IC_GFXDECODE("gfxdecode")
|
||||
@ -2420,8 +2384,8 @@ static MACHINE_CONFIG_START( nslasher )
|
||||
MCFG_DECO16IC_PF2_COL_BANK(0x30)
|
||||
MCFG_DECO16IC_PF1_COL_MASK(0x0f)
|
||||
MCFG_DECO16IC_PF2_COL_MASK(0x0f)
|
||||
MCFG_DECO16IC_BANK1_CB(deco32_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_BANK2_CB(deco32_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_BANK1_CB(nslasher_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_BANK2_CB(nslasher_state, tattass_bank_callback)
|
||||
MCFG_DECO16IC_PF12_8X8_BANK(0)
|
||||
MCFG_DECO16IC_PF12_16X16_BANK(2)
|
||||
MCFG_DECO16IC_GFXDECODE("gfxdecode")
|
||||
@ -2437,23 +2401,21 @@ static MACHINE_CONFIG_START( nslasher )
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", nslasher)
|
||||
MCFG_PALETTE_ADD("palette", 2048)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(deco32_state,nslasher)
|
||||
MCFG_VIDEO_START_OVERRIDE(nslasher_state, nslasher)
|
||||
|
||||
MCFG_DECO104_ADD("ioprot104")
|
||||
MCFG_DECO104_ADD("ioprot")
|
||||
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_DECO146_IN_PORTB_CB(DEVREADLINE("eeprom", eeprom_serial_93cxx_device, do_read)) MCFG_DEVCB_BIT(0)
|
||||
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
|
||||
MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(deco32_state, nslasher_sound_cb)
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(DEVWRITELINE("sound_irq_merger", input_merger_any_high_device, in_w<0>))
|
||||
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_INTERLEAVE
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", 32220000/9)
|
||||
MCFG_YM2151_IRQ_HANDLER(WRITELINE(deco32_state,sound_irq_nslasher))
|
||||
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(deco32_state,sound_bankswitch_w))
|
||||
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("sound_irq_merger", input_merger_any_high_device, in_w<1>))
|
||||
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(deco32_state, sound_bankswitch_w))
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.40)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.40)
|
||||
|
||||
@ -2474,12 +2436,12 @@ static MACHINE_CONFIG_DERIVED( nslasheru, nslasher )
|
||||
MCFG_SOUND_MODIFY("ymsnd")
|
||||
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 1))
|
||||
|
||||
MCFG_DEVICE_REMOVE("ioprot104")
|
||||
MCFG_DECO104_ADD("ioprot104")
|
||||
MCFG_DEVICE_REMOVE("ioprot")
|
||||
MCFG_DECO104_ADD("ioprot")
|
||||
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_DECO146_IN_PORTB_CB(DEVREADLINE("eeprom", eeprom_serial_93cxx_device, do_read)) MCFG_DEVCB_BIT(0)
|
||||
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
|
||||
MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(deco32_state, deco32_sound_cb)
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(INPUTLINE("audiocpu", 0))
|
||||
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_INTERLEAVE
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -3932,38 +3894,38 @@ ROM_END
|
||||
//**************************************************************************
|
||||
|
||||
// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS
|
||||
GAME( 1991, captaven, 0, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (Asia Rev 1.4)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, captavena, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (Asia Rev 1.0)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, captavene, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (UK Rev 1.4)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, captavenu, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (US Rev 1.9)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, captavenuu, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (US Rev 1.6)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, captavenua, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (US Rev 1.4)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, captavenj, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (Japan Rev 0.2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, captaven, 0, captaven, captaven, captaven_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (Asia Rev 1.4)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, captavena, captaven, captaven, captaven, captaven_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (Asia Rev 1.0)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, captavene, captaven, captaven, captaven, captaven_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (UK Rev 1.4)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, captavenu, captaven, captaven, captaven, captaven_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (US Rev 1.9)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, captavenuu, captaven, captaven, captaven, captaven_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (US Rev 1.6)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, captavenua, captaven, captaven, captaven, captaven_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (US Rev 1.4)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, captavenj, captaven, captaven, captaven, captaven_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (Japan Rev 0.2)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
// DE-0396-0 PCB sets (Z80 for sound)
|
||||
GAME( 1993, fghthistu, fghthist, fghthistu, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-09, DE-0396-0 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthistu, fghthist, fghthistu, fghthist, fghthist_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-09, DE-0396-0 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
// DE-0395-1 PCB sets (HuC6280 for sound)
|
||||
GAME( 1993, fghthist, 0 , fghthsta, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (World ver 43-09, DE-0395-1 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthistua, fghthist, fghthsta, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-06, DE-0395-1 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthistub, fghthist, fghthsta, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-05, DE-0395-1 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthistj, fghthist, fghthsta, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (Japan ver 41-07, DE-0395-1 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthist, 0 , fghthsta, fghthist, fghthist_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (World ver 43-09, DE-0395-1 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthistua, fghthist, fghthsta, fghthist, fghthist_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-06, DE-0395-1 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthistub, fghthist, fghthsta, fghthist, fghthist_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-05, DE-0395-1 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthistj, fghthist, fghthsta, fghthist, fghthist_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (Japan ver 41-07, DE-0395-1 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
// DE-0380-2 PCB sets (HuC6280 for sound)
|
||||
GAME( 1993, fghthista, fghthist, fghthist, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (World ver 43-07, DE-0380-2 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthistb, fghthist, fghthist, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (World ver 43-05, DE-0380-2 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthistuc, fghthist, fghthist, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-03, DE-0380-2 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthistja, fghthist, fghthist, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (Japan ver 41-05, DE-0380-2 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthista, fghthist, fghthist, fghthist, fghthist_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (World ver 43-07, DE-0380-2 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthistb, fghthist, fghthist, fghthist, fghthist_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (World ver 43-05, DE-0380-2 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthistuc, fghthist, fghthist, fghthist, fghthist_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-03, DE-0380-2 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthistja, fghthist, fghthist, fghthist, fghthist_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (Japan ver 41-05, DE-0380-2 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
// DE-0380-1 PCB sets (HuC6280 for sound)
|
||||
GAME( 1993, fghthistjb, fghthist, fghthist, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (Japan ver 41-04, DE-0380-1 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1993, fghthistjb, fghthist, fghthist, fghthist, fghthist_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (Japan ver 41-04, DE-0380-1 PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
// DE-0397-0 PCB sets (Z80 for sound)
|
||||
GAME( 1994, nslasher, 0, nslasher, nslasher, deco32_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (Korea Rev 1.3, DE-0397-0 PCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1994, nslasherj, nslasher, nslasher, nslasher, deco32_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (Japan Rev 1.2, DE-0397-0 PCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1994, nslashers, nslasher, nslasher, nslasher, deco32_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (Over Sea Rev 1.2, DE-0397-0 PCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1994, nslasher, 0, nslasher, nslasher, nslasher_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (Korea Rev 1.3, DE-0397-0 PCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1994, nslasherj, nslasher, nslasher, nslasher, nslasher_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (Japan Rev 1.2, DE-0397-0 PCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1994, nslashers, nslasher, nslasher, nslasher, nslasher_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (Over Sea Rev 1.2, DE-0397-0 PCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
// DE-0395-1 PCB sets (HuC6280 for sound)
|
||||
GAME( 1994, nslasheru, nslasher, nslasheru, nslasher, deco32_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (US Rev 1.2, DE-0395-1 PCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1994, nslasheru, nslasher, nslasheru, nslasher, nslasher_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (US Rev 1.2, DE-0395-1 PCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1994, tattass, 0, tattass, tattass, deco32_state, tattass, ROT0, "Data East Pinball", "Tattoo Assassins (US prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1994, tattassa, tattass, tattass, tattass, deco32_state, tattass, ROT0, "Data East Pinball", "Tattoo Assassins (Asia prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1994, tattass, 0, tattass, tattass, nslasher_state, tattass, ROT0, "Data East Pinball", "Tattoo Assassins (US prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1994, tattassa, tattass, tattass, tattass, nslasher_state, tattass, ROT0, "Data East Pinball", "Tattoo Assassins (Asia prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
// Dragon Gun / Lock 'n' Loaded have very different sprite hardware
|
||||
GAME( 1993, dragngun, 0, dragngun, dragngun, dragngun_state, dragngun, ROT0, "Data East Corporation", "Dragon Gun (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -77,7 +77,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, dietgo_state )
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0x130000, 0x130001) AM_NOP /* This board only has 1 oki chip */
|
||||
AM_RANGE(0x140000, 0x140001) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0x140000, 0x140000) AM_DEVREAD("ioprot104", deco104_device, soundlatch_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_DEVWRITE("audiocpu", h6280_device, timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
|
||||
@ -259,14 +259,13 @@ static MACHINE_CONFIG_START( dietgo )
|
||||
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
|
||||
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(INPUTLINE("audiocpu", 0))
|
||||
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_INTERLEAVE
|
||||
MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", XTAL_32_22MHz/9) /* verified on pcb */
|
||||
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 1)) /* IRQ 2 */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45)
|
||||
|
@ -42,7 +42,7 @@
|
||||
#include "machine/ldstub.h"
|
||||
#include "machine/watchdog.h"
|
||||
#include "machine/z80ctc.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80sio.h"
|
||||
#include "sound/ay8910.h"
|
||||
#include "sound/spkrdev.h"
|
||||
#include "render.h"
|
||||
@ -408,7 +408,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( dleuro_io_map, AS_IO, 8, dlair_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x03) AM_MIRROR(0x7c) AM_DEVREADWRITE("ctc", z80ctc_device, read, write)
|
||||
AM_RANGE(0x80, 0x83) AM_MIRROR(0x7c) AM_DEVREADWRITE("sio", z80dart_device, ba_cd_r, ba_cd_w)
|
||||
AM_RANGE(0x80, 0x83) AM_MIRROR(0x7c) AM_DEVREADWRITE("sio", z80sio_device, ba_cd_r, ba_cd_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -755,8 +755,8 @@ static MACHINE_CONFIG_START( dleuro )
|
||||
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80CTC_ZC0_CB(WRITELINE(dlair_state, write_speaker))
|
||||
|
||||
MCFG_DEVICE_ADD("sio", Z80SIO0, MASTER_CLOCK_EURO/4 /* same as "maincpu" */)
|
||||
MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD("sio", Z80SIO, MASTER_CLOCK_EURO/4 /* same as "maincpu" */)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
// TODO: hook up tx and rx callbacks
|
||||
|
||||
MCFG_WATCHDOG_ADD("watchdog")
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include "emu.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "cpu/i8085/i8085.h"
|
||||
//#include "bus/s100/s100.h"
|
||||
#include "machine/terminal.h"
|
||||
|
||||
|
||||
|
@ -59,11 +59,10 @@
|
||||
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "cpu/z80/z80daisy.h"
|
||||
#include "bus/einstein/userport/userport.h"
|
||||
#include "machine/clock.h"
|
||||
#include "machine/z80pio.h"
|
||||
#include "sound/ay8910.h"
|
||||
|
||||
#include "rendlay.h"
|
||||
#include "softlist.h"
|
||||
#include "speaker.h"
|
||||
|
||||
@ -71,87 +70,6 @@
|
||||
#define VERBOSE_KEYBOARD 0
|
||||
#define VERBOSE_DISK 0
|
||||
|
||||
/***************************************************************************
|
||||
80 COLUMN DEVICE
|
||||
***************************************************************************/
|
||||
|
||||
/* lower 3 bits of address define a 256-byte "row".
|
||||
* upper 8 bits define the offset in the row,
|
||||
* data bits define data to write
|
||||
*/
|
||||
WRITE8_MEMBER(einstein_state::einstein_80col_ram_w)
|
||||
{
|
||||
m_crtc_ram[((offset & 0x07) << 8) | ((offset >> 8) & 0xff)] = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(einstein_state::einstein_80col_ram_r)
|
||||
{
|
||||
return m_crtc_ram[((offset & 0x07) << 8) | ((offset >> 8) & 0xff)];
|
||||
}
|
||||
|
||||
/* TODO: Verify implementation */
|
||||
/* From traces of the TK02 board character ROM is addressed by the 6845 as follows
|
||||
bit 0..2 ra0..ra2
|
||||
bit 3..10 data 0..7 from VRAM
|
||||
bit 11 ra3
|
||||
bit 12 jumper M004, this could be used to select two different character
|
||||
sets.
|
||||
*/
|
||||
MC6845_UPDATE_ROW( einstein_state::crtc_update_row )
|
||||
{
|
||||
const rgb_t *palette = m_palette->palette()->entry_list_raw();
|
||||
uint8_t *data = m_region_gfx1->base();
|
||||
uint8_t char_code, data_byte;
|
||||
int i, x;
|
||||
|
||||
for (i = 0, x = 0; i < x_count; i++, x += 8)
|
||||
{
|
||||
char_code = m_crtc_ram[(ma + i) & 0x07ff];
|
||||
data_byte = data[(char_code << 3) + (ra & 0x07) + ((ra & 0x08) << 8)];
|
||||
|
||||
bitmap.pix32(y, x + 0) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 7)];
|
||||
bitmap.pix32(y, x + 1) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 6)];
|
||||
bitmap.pix32(y, x + 2) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 5)];
|
||||
bitmap.pix32(y, x + 3) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 4)];
|
||||
bitmap.pix32(y, x + 4) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 3)];
|
||||
bitmap.pix32(y, x + 5) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 2)];
|
||||
bitmap.pix32(y, x + 6) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 1)];
|
||||
bitmap.pix32(y, x + 7) = palette[tms9928a_device::PALETTE_SIZE + BIT(data_byte, 0)];
|
||||
}
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(einstein_state::einstein_6845_de_changed)
|
||||
{
|
||||
m_de=state;
|
||||
}
|
||||
|
||||
/* bit 0 - latched display enabled (DE) from 6845
|
||||
* bit 1 - Jumper M003 0 = 40 column mode (color monitor), 1 = 80 column mode (b/w monitor)
|
||||
* bit 2 - Jumper M002 0 = 50Hz, 1 = 60Hz
|
||||
* bit 3 - Jumper M001 0 = ???, 1=??? perminently wired high on both the boards I have seen - PHS.
|
||||
*/
|
||||
READ8_MEMBER(einstein_state::einstein_80col_state_r)
|
||||
{
|
||||
uint8_t result = 0;
|
||||
|
||||
result |= m_de;
|
||||
result |= m_80column_dips->read() & 0x06;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/* int priority */
|
||||
/* keyboard int->ctc/adc->pio */
|
||||
static const z80_daisy_config einstein_daisy_chain[] =
|
||||
{
|
||||
{ "keyboard_daisy" },
|
||||
{ IC_I058 },
|
||||
{ "adc_daisy" },
|
||||
{ IC_I063 },
|
||||
{ "fire_daisy" },
|
||||
{ nullptr }
|
||||
};
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
KEYBOARD
|
||||
@ -222,27 +140,19 @@ READ8_MEMBER(einstein_state::einstein_keyboard_data_read)
|
||||
|
||||
WRITE8_MEMBER(einstein_state::einstein_drsel_w)
|
||||
{
|
||||
if(VERBOSE_DISK)
|
||||
if (VERBOSE_DISK)
|
||||
logerror("%s: einstein_drsel_w %02x\n", machine().describe_context(), data);
|
||||
|
||||
/* bit 0 to 3 select the drive */
|
||||
static const char *names[] = { IC_I042 ":0", IC_I042 ":1", IC_I042 ":2", IC_I042 ":3" };
|
||||
floppy_image_device *floppy = nullptr;
|
||||
for(int i=0; i<4; i++) {
|
||||
if(BIT(data, i)) {
|
||||
floppy_connector *con = machine().device<floppy_connector>(names[i]);
|
||||
if(con)
|
||||
floppy = con->get_device();
|
||||
}
|
||||
}
|
||||
|
||||
/* double sided drive connected? */
|
||||
if (m_config->read() & data)
|
||||
{
|
||||
/* bit 4 selects the side then */
|
||||
//floppy->ss_w(BIT(data, 4));
|
||||
}
|
||||
if (floppy) floppy->ss_w(0);
|
||||
if (BIT(data, 0)) floppy = m_floppy[0]->get_device();
|
||||
if (BIT(data, 1)) floppy = m_floppy[1]->get_device();
|
||||
if (BIT(data, 2)) floppy = m_floppy[2]->get_device();
|
||||
if (BIT(data, 3)) floppy = m_floppy[3]->get_device();
|
||||
|
||||
if (floppy)
|
||||
floppy->ss_w(BIT(data, 4));
|
||||
|
||||
m_fdc->set_floppy(floppy);
|
||||
}
|
||||
|
||||
@ -283,6 +193,18 @@ WRITE8_MEMBER(einstein_state::einstein_rom_w)
|
||||
INTERRUPTS
|
||||
***************************************************************************/
|
||||
|
||||
/* int priority */
|
||||
/* keyboard int->ctc/adc->pio */
|
||||
static const z80_daisy_config einstein_daisy_chain[] =
|
||||
{
|
||||
{ "keyboard_daisy" },
|
||||
{ IC_I058 },
|
||||
{ "adc_daisy" },
|
||||
{ IC_I063 },
|
||||
{ "fire_daisy" },
|
||||
{ nullptr }
|
||||
};
|
||||
|
||||
WRITE_LINE_MEMBER(einstein_state::write_centronics_busy)
|
||||
{
|
||||
m_centronics_busy = state;
|
||||
@ -382,13 +304,13 @@ WRITE8_MEMBER(einstein_state::einstein_fire_int_w)
|
||||
|
||||
void einstein_state::machine_start()
|
||||
{
|
||||
// setup expansion slot
|
||||
m_pipe->set_program_space(&m_maincpu->space(AS_PROGRAM));
|
||||
m_pipe->set_io_space(&m_maincpu->space(AS_IO));
|
||||
}
|
||||
|
||||
void einstein_state::machine_reset()
|
||||
{
|
||||
//device_t *floppy;
|
||||
//uint8_t config = m_config->read();
|
||||
|
||||
/* initialize memory mapping */
|
||||
m_bank2->set_base(m_ram->pointer());
|
||||
m_bank3->set_base(m_ram->pointer() + 0x8000);
|
||||
@ -399,57 +321,6 @@ void einstein_state::machine_reset()
|
||||
to be set to 1, which causes all these to be DISABLED */
|
||||
m_interrupt = 0;
|
||||
m_interrupt_mask = 0;
|
||||
|
||||
/* configure floppy drives */
|
||||
/* floppy_type_t type_80 = FLOPPY_STANDARD_5_25_DSHD;
|
||||
floppy_type_t type_40 = FLOPPY_STANDARD_5_25_SSDD_40;
|
||||
floppy = machine().device("floppy0");
|
||||
floppy_drive_set_geometry(floppy, config & 0x01 ? type_80 : type_40);
|
||||
floppy = machine().device("floppy1");
|
||||
floppy_drive_set_geometry(floppy, config & 0x02 ? type_80 : type_40);
|
||||
floppy = machine().device("floppy2");
|
||||
floppy_drive_set_geometry(floppy, config & 0x04 ? type_80 : type_40);
|
||||
floppy = machine().device("floppy3");
|
||||
floppy_drive_set_geometry(floppy, config & 0x08 ? type_80 : type_40);*/
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(einstein_state,einstein2)
|
||||
{
|
||||
/* call standard initialization first */
|
||||
einstein_state::machine_reset();
|
||||
|
||||
/* 80 column card palette */
|
||||
m_palette->set_pen_color(tms9928a_device::PALETTE_SIZE, rgb_t::black());
|
||||
m_palette->set_pen_color(tms9928a_device::PALETTE_SIZE + 1, rgb_t(0, 224, 0));
|
||||
}
|
||||
|
||||
MACHINE_START_MEMBER(einstein_state,einstein2)
|
||||
{
|
||||
m_crtc_ram = std::make_unique<uint8_t[]>(2048);
|
||||
memset(m_crtc_ram.get(), 0, sizeof(uint8_t) * 2048);
|
||||
einstein_state::machine_start();
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
VIDEO EMULATION
|
||||
***************************************************************************/
|
||||
|
||||
uint32_t einstein_state::screen_update_einstein2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
if (&screen == m_color_screen)
|
||||
{
|
||||
bitmap_rgb32 &src = m_tms9929a->get_bitmap();
|
||||
for (int y = cliprect.min_y; y <= cliprect.max_y; y++)
|
||||
for (int x = cliprect.min_x; x <= cliprect.max_x; x++)
|
||||
bitmap.pix32(y, x) = src.pix32(y, x);
|
||||
}
|
||||
else if (&screen == m_crtc_screen)
|
||||
m_mc6845->screen_update( screen, bitmap, cliprect);
|
||||
else
|
||||
fatalerror("Unknown screen '%s'\n", screen.tag());
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -485,21 +356,13 @@ static ADDRESS_MAP_START( einstein_io, AS_IO, 8, einstein_state )
|
||||
/* block 5, z80ctc */
|
||||
AM_RANGE(0x28, 0x2b) AM_MIRROR(0xff04) AM_DEVREADWRITE(IC_I058, z80ctc_device, read, write)
|
||||
/* block 6, z80pio */
|
||||
AM_RANGE(0x30, 0x33) AM_MIRROR(0xff04) AM_DEVREADWRITE(IC_I063, z80pio_device, read, write)
|
||||
AM_RANGE(0x30, 0x33) AM_MIRROR(0xff04) AM_DEVREADWRITE(IC_I063, z80pio_device, read_alt, write_alt)
|
||||
#if 0
|
||||
/* block 7, adc */
|
||||
AM_RANGE(0x38, 0x38) AM_MIRROR(0xff07) AM_DEVREADWRITE_LEGACY(IC_I050, adc0844_r, adc0844_w)
|
||||
#endif
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( einstein2_io, AS_IO, 8, einstein_state )
|
||||
AM_IMPORT_FROM(einstein_io)
|
||||
AM_RANGE(0x40, 0x47) AM_SELECT(0xff00) AM_READWRITE(einstein_80col_ram_r, einstein_80col_ram_w)
|
||||
AM_RANGE(0x48, 0x48) AM_MIRROR(0xff00) AM_DEVWRITE("crtc", mc6845_device, address_w)
|
||||
AM_RANGE(0x49, 0x49) AM_MIRROR(0xff00) AM_DEVWRITE("crtc", mc6845_device, register_w)
|
||||
AM_RANGE(0x4c, 0x4c) AM_MIRROR(0xff00) AM_READ(einstein_80col_state_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
INPUT PORTS
|
||||
@ -613,33 +476,6 @@ static INPUT_PORTS_START( einstein )
|
||||
/* analog joystick 2 Y axis */
|
||||
PORT_START("JOY2_Y")
|
||||
PORT_BIT(0xff, 0x80, IPT_AD_STICK_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_MINMAX(1,0xff) PORT_CODE_DEC(JOYCODE_Y_UP_SWITCH) PORT_CODE_INC(JOYCODE_Y_DOWN_SWITCH) PORT_PLAYER(2) PORT_REVERSE
|
||||
|
||||
PORT_START("config")
|
||||
PORT_CONFNAME(0x01, 0x00, "Floppy drive #1")
|
||||
PORT_CONFSETTING(0x00, "Single sided")
|
||||
PORT_CONFSETTING(0x01, "Double sided")
|
||||
PORT_CONFNAME(0x02, 0x00, "Floppy drive #2")
|
||||
PORT_CONFSETTING(0x00, "Single sided")
|
||||
PORT_CONFSETTING(0x02, "Double sided")
|
||||
PORT_CONFNAME(0x04, 0x00, "Floppy drive #3")
|
||||
PORT_CONFSETTING(0x00, "Single sided")
|
||||
PORT_CONFSETTING(0x04, "Double sided")
|
||||
PORT_CONFNAME(0x08, 0x00, "Floppy drive #4")
|
||||
PORT_CONFSETTING(0x00, "Single sided")
|
||||
PORT_CONFSETTING(0x08, "Double sided")
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( einstein_80col )
|
||||
PORT_INCLUDE(einstein)
|
||||
|
||||
/* dip switches on the 80 column card */
|
||||
PORT_START("80column_dips")
|
||||
PORT_DIPNAME(0x02, 0x00, "Startup mode")
|
||||
PORT_DIPSETTING(0x00, "40 column")
|
||||
PORT_DIPSETTING(0x02, "80 column")
|
||||
PORT_DIPNAME(0x04, 0x00, "50/60Hz")
|
||||
PORT_DIPSETTING(0x00, "50Hz")
|
||||
PORT_DIPSETTING(0x04, "60Hz")
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -647,27 +483,13 @@ INPUT_PORTS_END
|
||||
MACHINE DRIVERS
|
||||
***************************************************************************/
|
||||
|
||||
/* F4 Character Displayer */
|
||||
static const gfx_layout einstei2_charlayout =
|
||||
{
|
||||
8, 10, /* 8 x 10 characters */
|
||||
256, /* 256*2 characters */
|
||||
1, /* 1 bits per pixel */
|
||||
{ 0 },
|
||||
/* x offsets */
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7 },
|
||||
/* y offsets */
|
||||
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 0x800*8, 0x801*8 },
|
||||
8*8
|
||||
};
|
||||
|
||||
static GFXDECODE_START( einstei2 )
|
||||
GFXDECODE_ENTRY( "gfx1", 0x0000, einstei2_charlayout, 16, 1 )
|
||||
GFXDECODE_ENTRY( "gfx1", 0x1000, einstei2_charlayout, 16, 1 )
|
||||
GFXDECODE_END
|
||||
|
||||
static SLOT_INTERFACE_START( einstein_floppies )
|
||||
SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
|
||||
SLOT_INTERFACE("3ss", TEAC_FD_30A)
|
||||
SLOT_INTERFACE("3ds", FLOPPY_3_DSDD)
|
||||
SLOT_INTERFACE("525ssqd", FLOPPY_525_SSQD)
|
||||
SLOT_INTERFACE("525qd", FLOPPY_525_QD)
|
||||
SLOT_INTERFACE("35ssdd", FLOPPY_35_SSDD)
|
||||
SLOT_INTERFACE("35dd", FLOPPY_35_DD)
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
static MACHINE_CONFIG_START( einstein )
|
||||
@ -684,7 +506,10 @@ static MACHINE_CONFIG_START( einstein )
|
||||
MCFG_DEVICE_ADD(IC_I063, Z80PIO, XTAL_X002 / 2)
|
||||
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE(IC_I001, INPUT_LINE_IRQ0))
|
||||
MCFG_Z80PIO_OUT_PA_CB(DEVWRITE8("cent_data_out", output_latch_device, write))
|
||||
MCFG_Z80PIO_OUT_PB_CB(DEVWRITELINE("centronics", centronics_device, write_strobe))
|
||||
MCFG_Z80PIO_OUT_ARDY_CB(DEVWRITELINE("centronics", centronics_device, write_strobe))
|
||||
MCFG_Z80PIO_IN_PB_CB(DEVREAD8("user", einstein_userport_device, read))
|
||||
MCFG_Z80PIO_OUT_PB_CB(DEVWRITE8("user", einstein_userport_device, write))
|
||||
MCFG_Z80PIO_OUT_BRDY_CB(DEVWRITELINE("user", einstein_userport_device, brdy_w))
|
||||
|
||||
MCFG_DEVICE_ADD(IC_I058, Z80CTC, XTAL_X002 / 2)
|
||||
MCFG_Z80CTC_INTR_CB(INPUTLINE(IC_I001, INPUT_LINE_IRQ0))
|
||||
@ -705,9 +530,9 @@ static MACHINE_CONFIG_START( einstein )
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD( "tms9929a", TMS9929A, XTAL_10_738635MHz / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000) /* 16k RAM, provided by IC i040 and i041 */
|
||||
MCFG_TMS9928A_SET_SCREEN( "screen" )
|
||||
MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9929a", tms9929a_device, screen_update )
|
||||
MCFG_TMS9928A_SET_SCREEN("screen")
|
||||
MCFG_TMS9928A_SCREEN_ADD_PAL("screen")
|
||||
MCFG_SCREEN_UPDATE_DEVICE("tms9929a", tms9929a_device, screen_update)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -730,10 +555,10 @@ static MACHINE_CONFIG_START( einstein )
|
||||
|
||||
MCFG_WD1770_ADD(IC_I042, XTAL_X002)
|
||||
|
||||
MCFG_FLOPPY_DRIVE_ADD(IC_I042 ":0", einstein_floppies, "525dd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(IC_I042 ":1", einstein_floppies, "525dd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(IC_I042 ":2", einstein_floppies, "525dd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(IC_I042 ":3", einstein_floppies, "525dd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(IC_I042 ":0", einstein_floppies, "3ss", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(IC_I042 ":1", einstein_floppies, "3ss", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(IC_I042 ":2", einstein_floppies, "525qd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(IC_I042 ":3", einstein_floppies, "525qd", floppy_image_device::default_floppy_formats)
|
||||
|
||||
/* software lists */
|
||||
MCFG_SOFTWARE_LIST_ADD("disk_list","einstein")
|
||||
@ -742,36 +567,13 @@ static MACHINE_CONFIG_START( einstein )
|
||||
/* internal ram */
|
||||
MCFG_RAM_ADD(RAM_TAG)
|
||||
MCFG_RAM_DEFAULT_SIZE("64K")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
// tatung pipe connector
|
||||
MCFG_TATUNG_PIPE_ADD("pipe")
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( einstei2, einstein )
|
||||
|
||||
MCFG_CPU_MODIFY(IC_I001)
|
||||
MCFG_CPU_IO_MAP(einstein2_io)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(einstein_state,einstein2)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(einstein_state,einstein2)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
|
||||
|
||||
MCFG_SCREEN_ADD("80column", RASTER)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
|
||||
MCFG_SCREEN_SIZE(640, 400)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1)
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(einstein_state, screen_update_einstein2)
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", einstei2)
|
||||
|
||||
/* 2 additional colors for the 80 column screen */
|
||||
MCFG_PALETTE_ADD("palette", tms9928a_device::PALETTE_SIZE + 2)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "80column", XTAL_X002 / 4)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(einstein_state, crtc_update_row)
|
||||
MCFG_MC6845_OUT_DE_CB(WRITELINE(einstein_state, einstein_6845_de_changed))
|
||||
// user port
|
||||
MCFG_EINSTEIN_USERPORT_ADD("user")
|
||||
MCFG_EINSTEIN_USERPORT_BSTB_HANDLER(DEVWRITELINE(IC_I063, z80pio_device, strobe_b))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -796,32 +598,16 @@ ROM_START( einstein )
|
||||
ROM_FILL(0x4000, 0x4000, 0xff)
|
||||
ROM_END
|
||||
|
||||
ROM_START( einstei2 )
|
||||
ROM_REGION(0x8000, "bios", 0)
|
||||
/* i023 */
|
||||
ROM_SYSTEM_BIOS(0, "mos12", "MOS 1.2")
|
||||
ROMX_LOAD("mos12.i023", 0, 0x2000, CRC(ec134953) SHA1(a02125d8ebcda48aa784adbb42a8b2d7ef3a4b77), ROM_BIOS(1))
|
||||
ROM_SYSTEM_BIOS(1, "mos121", "MOS 1.21")
|
||||
ROMX_LOAD("mos121.i023", 0, 0x2000, CRC(a746eeb6) SHA1(f75aaaa777d0fd92225acba291f6bf428b341d3e), ROM_BIOS(2))
|
||||
ROM_RELOAD(0x2000, 0x2000)
|
||||
/* i024 */
|
||||
ROM_FILL(0x4000, 0x4000, 0xff)
|
||||
|
||||
/* character rom from 80 column card */
|
||||
ROM_REGION(0x2000, "gfx1", 0)
|
||||
ROM_LOAD("tk02-v1.00.rom", 0, 0x2000, CRC(ad3c4346) SHA1(cd57e630371b4d0314e3f15693753fb195c7257d))
|
||||
ROM_END
|
||||
|
||||
ROM_START( einst256 )
|
||||
ROM_REGION(0x8000, "bios", 0)
|
||||
ROM_LOAD("tc256.rom", 0x0000, 0x4000, CRC(ef8dad88) SHA1(eb2102d3bef572db7161c26a7c68a5fcf457b4d0) )
|
||||
ROM_END
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
GAME DRIVERS
|
||||
***************************************************************************/
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS
|
||||
COMP( 1984, einstein, 0, 0, einstein, einstein, einstein_state, 0, "Tatung", "Einstein TC-01", 0 )
|
||||
COMP( 1984, einstei2, einstein, 0, einstei2, einstein_80col, einstein_state, 0, "Tatung", "Einstein TC-01 + 80 column device", 0 )
|
||||
COMP( 1984, einst256, 0, 0, einstein, einstein, einstein_state, 0, "Tatung", "Einstein 256", MACHINE_NOT_WORKING )
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS
|
||||
COMP( 1984, einstein, 0, 0, einstein, einstein, einstein_state, 0, "Tatung", "Einstein TC-01", 0 )
|
||||
COMP( 1984, einst256, 0, 0, einstein, einstein, einstein_state, 0, "Tatung", "Einstein 256", MACHINE_NOT_WORKING )
|
||||
|
@ -420,18 +420,6 @@ static ADDRESS_MAP_START(tms7020_mem, AS_PROGRAM, 8, exelv_state)
|
||||
AM_RANGE(0xc800, 0xf7ff) AM_NOP
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START(tms7020_port, AS_IO, 8, exelv_state)
|
||||
AM_RANGE(TMS7000_PORTA, TMS7000_PORTA) AM_READ(tms7020_porta_r)
|
||||
AM_RANGE(TMS7000_PORTB, TMS7000_PORTB) AM_WRITE(tms7020_portb_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START(tms7041_port, AS_IO, 8, exelv_state)
|
||||
AM_RANGE(TMS7000_PORTA, TMS7000_PORTA) AM_READ(tms7041_porta_r)
|
||||
AM_RANGE(TMS7000_PORTB, TMS7000_PORTB) AM_WRITE(tms7041_portb_w)
|
||||
AM_RANGE(TMS7000_PORTC, TMS7000_PORTC) AM_READWRITE(tms7041_portc_r, tms7041_portc_w)
|
||||
AM_RANGE(TMS7000_PORTD, TMS7000_PORTD) AM_READWRITE(tms7041_portd_r, tms7041_portd_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START(tms7040_mem, AS_PROGRAM, 8, exelv_state)
|
||||
AM_RANGE(0x0080, 0x00ff) AM_NOP
|
||||
@ -490,12 +478,19 @@ static MACHINE_CONFIG_START( exl100 )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", TMS7020_EXL, XTAL_4_9152MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(tms7020_mem)
|
||||
MCFG_CPU_IO_MAP(tms7020_port)
|
||||
MCFG_TMS7000_IN_PORTA_CB(READ8(exelv_state, tms7020_porta_r))
|
||||
MCFG_TMS7000_OUT_PORTB_CB(WRITE8(exelv_state, tms7020_portb_w))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", exelv_state, exelv_hblank_interrupt, "screen", 0, 1)
|
||||
MCFG_MACHINE_START_OVERRIDE(exelv_state, exl100)
|
||||
|
||||
MCFG_CPU_ADD("tms7041", TMS7041, XTAL_4_9152MHz)
|
||||
MCFG_CPU_IO_MAP(tms7041_port)
|
||||
MCFG_TMS7000_IN_PORTA_CB(READ8(exelv_state, tms7041_porta_r))
|
||||
MCFG_TMS7000_OUT_PORTB_CB(WRITE8(exelv_state, tms7041_portb_w))
|
||||
MCFG_TMS7000_IN_PORTC_CB(READ8(exelv_state, tms7041_portc_r))
|
||||
MCFG_TMS7000_OUT_PORTC_CB(WRITE8(exelv_state, tms7041_portc_w))
|
||||
MCFG_TMS7000_IN_PORTD_CB(READ8(exelv_state, tms7041_portd_r))
|
||||
MCFG_TMS7000_OUT_PORTD_CB(WRITE8(exelv_state, tms7041_portd_w))
|
||||
|
||||
MCFG_QUANTUM_PERFECT_CPU("maincpu")
|
||||
|
||||
@ -539,12 +534,19 @@ static MACHINE_CONFIG_START( exeltel )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", TMS7040, XTAL_4_9152MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(tms7040_mem)
|
||||
MCFG_CPU_IO_MAP(tms7020_port)
|
||||
MCFG_TMS7000_IN_PORTA_CB(READ8(exelv_state, tms7020_porta_r))
|
||||
MCFG_TMS7000_OUT_PORTB_CB(WRITE8(exelv_state, tms7020_portb_w))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", exelv_state, exelv_hblank_interrupt, "screen", 0, 1)
|
||||
MCFG_MACHINE_START_OVERRIDE(exelv_state, exeltel)
|
||||
|
||||
MCFG_CPU_ADD("tms7042", TMS7042, XTAL_4_9152MHz)
|
||||
MCFG_CPU_IO_MAP(tms7041_port)
|
||||
MCFG_TMS7000_IN_PORTA_CB(READ8(exelv_state, tms7041_porta_r))
|
||||
MCFG_TMS7000_OUT_PORTB_CB(WRITE8(exelv_state, tms7041_portb_w))
|
||||
MCFG_TMS7000_IN_PORTC_CB(READ8(exelv_state, tms7041_portc_r))
|
||||
MCFG_TMS7000_OUT_PORTC_CB(WRITE8(exelv_state, tms7041_portc_w))
|
||||
MCFG_TMS7000_IN_PORTD_CB(READ8(exelv_state, tms7041_portd_r))
|
||||
MCFG_TMS7000_OUT_PORTD_CB(WRITE8(exelv_state, tms7041_portd_w))
|
||||
|
||||
MCFG_QUANTUM_PERFECT_CPU("maincpu")
|
||||
|
||||
|
@ -927,32 +927,32 @@ ROM_START( pbillrd )
|
||||
ROM_LOAD( "82s129.3c", 0x0500, 0x0100, CRC(cc1657e5) SHA1(358f20dce376c2389009f9673ce38b297af863f6) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( pbillrds ) /* Encrytped with a Sega MC-8123 (317-0030) CPU module */
|
||||
ROM_START( pbillrds ) /* Encrytped with a Sega MC-8123 (317-0030) CPU module, Sega ID# 836-6304 PERFECT BILLIARD */
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) /* Z80 Code */
|
||||
ROM_LOAD( "10626.8n", 0x0000, 0x4000, CRC(51d725e6) SHA1(d7007c983530780e7fa3686cb7a6d7c382c802fa) ) /* encrypted */
|
||||
ROM_LOAD( "10625.8r", 0x4000, 0x8000, CRC(8977c724) SHA1(f00835a04dc6fa7d8c1e382dace515f2aa7d6f44) ) /* encrypted */
|
||||
ROM_LOAD( "10627.10n", 0xc000, 0x4000, CRC(2335e6dd) SHA1(82352b6f4abea88aad3a96ca63cccccb6e278f48) ) /* encrypted */
|
||||
ROM_LOAD( "epr-10626.8n", 0x0000, 0x4000, CRC(51d725e6) SHA1(d7007c983530780e7fa3686cb7a6d7c382c802fa) ) /* encrypted */
|
||||
ROM_LOAD( "epr-10625.8r", 0x4000, 0x8000, CRC(8977c724) SHA1(f00835a04dc6fa7d8c1e382dace515f2aa7d6f44) ) /* encrypted */
|
||||
ROM_LOAD( "epr-10627.10n", 0xc000, 0x4000, CRC(2335e6dd) SHA1(82352b6f4abea88aad3a96ca63cccccb6e278f48) ) /* encrypted */
|
||||
|
||||
ROM_REGION( 0x2000, "maincpu:key", 0 ) /* MC8123 key */
|
||||
ROM_LOAD( "317-0030.key", 0x0000, 0x2000, CRC(9223f06d) SHA1(51a22a4c80fe273526bde68918c13c6476cec383) )
|
||||
|
||||
ROM_REGION( 0xc000, "gfx1", 0 ) /* GFX */
|
||||
ROM_LOAD( "10622.3h", 0x000000, 0x04000, CRC(23b864ac) SHA1(5a13ad6f2278761967269eed8c07077293c921d6) )
|
||||
ROM_LOAD( "10623.3h", 0x004000, 0x04000, CRC(3dbfb790) SHA1(81a2645b7b3addf8f5b83043c967647cea476002) )
|
||||
ROM_LOAD( "10624.3g", 0x008000, 0x04000, CRC(b80032a9) SHA1(20096bdae1aad8913d8d7b1045912ea5ae7fce6f) )
|
||||
ROM_LOAD( "epr-10622.3h", 0x000000, 0x04000, CRC(23b864ac) SHA1(5a13ad6f2278761967269eed8c07077293c921d6) ) /* these 3 roms had a green strip down the middle of the label */
|
||||
ROM_LOAD( "epr-10623.3h", 0x004000, 0x04000, CRC(3dbfb790) SHA1(81a2645b7b3addf8f5b83043c967647cea476002) ) /* these 3 roms had a green strip down the middle of the label */
|
||||
ROM_LOAD( "epr-10624.3g", 0x008000, 0x04000, CRC(b80032a9) SHA1(20096bdae1aad8913d8d7b1045912ea5ae7fce6f) ) /* these 3 roms had a green strip down the middle of the label */
|
||||
|
||||
ROM_REGION( 0x6000, "gfx2", 0 ) /* GFX */
|
||||
ROM_LOAD( "10619.3r", 0x000000, 0x02000, CRC(3296b9d9) SHA1(51393306f74394de96c4097b6244e8eb36114dac) )
|
||||
ROM_LOAD( "10621.3m", 0x002000, 0x02000, CRC(3dca8e4b) SHA1(ca0416d8faba0bb5e6b8c0a8fc227b57caa75f71) )
|
||||
ROM_LOAD( "10620.3n", 0x004000, 0x02000, CRC(ee76b079) SHA1(99abe2c5b1889d20bc3f5720b168690e3979fb2f) )
|
||||
ROM_LOAD( "epr-10619.3r", 0x000000, 0x02000, CRC(3296b9d9) SHA1(51393306f74394de96c4097b6244e8eb36114dac) )
|
||||
ROM_LOAD( "epr-10621.3m", 0x002000, 0x02000, CRC(3dca8e4b) SHA1(ca0416d8faba0bb5e6b8c0a8fc227b57caa75f71) )
|
||||
ROM_LOAD( "epr-10620.3n", 0x004000, 0x02000, CRC(ee76b079) SHA1(99abe2c5b1889d20bc3f5720b168690e3979fb2f) )
|
||||
|
||||
ROM_REGION( 0x0600, "proms", 0 )
|
||||
ROM_LOAD( "82s129.3a", 0x0000, 0x0100, CRC(44802169) SHA1(f181d80185e0f87ee906d2b40e3a5deb6f563aa2) )
|
||||
ROM_LOAD( "82s129.4d", 0x0100, 0x0100, CRC(69ca07cc) SHA1(38ab08174633b53d70a38aacb40059a25cf12069) )
|
||||
ROM_LOAD( "82s129.4a", 0x0200, 0x0100, CRC(145f950a) SHA1(b007d0c1cc9545e0e241b39b79a48593d457f826) )
|
||||
ROM_LOAD( "82s129.3d", 0x0300, 0x0100, CRC(43d24e17) SHA1(de5c9391574781dcd8f244794010e8eddffa1c1e) )
|
||||
ROM_LOAD( "82s129.3b", 0x0400, 0x0100, CRC(7fdc872c) SHA1(98572560aa524490489d4202dba292a5af9f15e7) )
|
||||
ROM_LOAD( "82s129.3c", 0x0500, 0x0100, CRC(cc1657e5) SHA1(358f20dce376c2389009f9673ce38b297af863f6) )
|
||||
ROM_LOAD( "pr10628.3a", 0x0000, 0x0100, CRC(44802169) SHA1(f181d80185e0f87ee906d2b40e3a5deb6f563aa2) ) /* 82s129 or compatible BPROM */
|
||||
ROM_LOAD( "pr10633.4d", 0x0100, 0x0100, CRC(69ca07cc) SHA1(38ab08174633b53d70a38aacb40059a25cf12069) ) /* 82s129 or compatible BPROM */
|
||||
ROM_LOAD( "pr10632.4a", 0x0200, 0x0100, CRC(145f950a) SHA1(b007d0c1cc9545e0e241b39b79a48593d457f826) ) /* 82s129 or compatible BPROM */
|
||||
ROM_LOAD( "pr10631.3d", 0x0300, 0x0100, CRC(43d24e17) SHA1(de5c9391574781dcd8f244794010e8eddffa1c1e) ) /* 82s129 or compatible BPROM */
|
||||
ROM_LOAD( "pr10629.3b", 0x0400, 0x0100, CRC(7fdc872c) SHA1(98572560aa524490489d4202dba292a5af9f15e7) ) /* 82s129 or compatible BPROM */
|
||||
ROM_LOAD( "pr10630.3c", 0x0500, 0x0100, CRC(cc1657e5) SHA1(358f20dce376c2389009f9673ce38b297af863f6) ) /* 82s129 or compatible BPROM */
|
||||
ROM_END
|
||||
|
||||
ROM_START( pbillrdsa ) /* all ROMs were HN4827128G-25, except 17, HN27256G-25, CPU module marked 317-5008, but seems to act the same as above */
|
||||
|
@ -32,6 +32,7 @@ public:
|
||||
DECLARE_READ16_MEMBER(switches_r);
|
||||
|
||||
private:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
required_shared_ptr<uint16_t> m_p_base;
|
||||
@ -64,6 +65,12 @@ static INPUT_PORTS_START( ft68m )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
void ft68m_state::machine_start()
|
||||
{
|
||||
// GATE 1 is tied to Vcc; other GATE and SRC pins are all grounded
|
||||
subdevice<am9513_device>("stc")->gate1_w(1);
|
||||
}
|
||||
|
||||
void ft68m_state::machine_reset()
|
||||
{
|
||||
uint8_t* ROM = memregion("roms")->base();
|
||||
|
@ -155,7 +155,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, funkyjet_state )
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0x130000, 0x130001) AM_NOP /* This board only has 1 oki chip */
|
||||
AM_RANGE(0x140000, 0x140001) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0x140000, 0x140000) AM_DEVREAD("ioprot", deco146_device, soundlatch_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_DEVWRITE("audiocpu", h6280_device, timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
|
||||
@ -334,6 +334,7 @@ static MACHINE_CONFIG_START( funkyjet )
|
||||
MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
|
||||
MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
|
||||
MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
|
||||
MCFG_DECO146_SOUNDLATCH_IRQ_CB(INPUTLINE("audiocpu", 0))
|
||||
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_INTERLEAVE
|
||||
|
||||
|
||||
@ -361,8 +362,6 @@ static MACHINE_CONFIG_START( funkyjet )
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", XTAL_32_22MHz/9)
|
||||
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 1)) // IRQ2
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.45)
|
||||
|
@ -7117,10 +7117,10 @@ GAME( 199?, soccernw, 0, royalcd1, royalcrd, funworld_state, soccernw,
|
||||
// Other games...
|
||||
GAME( 198?, funquiz, 0, funquiz, funquiz, funworld_state, 0, ROT0, "Fun World / Oehlinger", "Fun World Quiz (Austrian)", 0 )
|
||||
GAMEL( 1986, novoplay, 0, fw2ndpal, novoplay, funworld_state, 0, ROT0, "Admiral/Novomatic", "Novo Play Multi Card / Club Card", 0, layout_novoplay )
|
||||
GAME( 1991, intrgmes, 0, intrgmes, funworld, funworld_state, 0, ROT0, "Inter Games", "Unknown Inter Games poker", MACHINE_NOT_WORKING )
|
||||
GAMEL( 1985, fw_a7_11, 0, fw_a7_11, funworld, funworld_state, 0, ROT0, "Fun World", "Unknown Fun World A7-11 game 1", MACHINE_NOT_WORKING, layout_jollycrd )
|
||||
GAMEL( 1985, fw_a7_11a, fw_a7_11, fw_a7_11, funworld, funworld_state, 0, ROT0, "Fun World", "Unknown Fun World A7-11 game 2", MACHINE_NOT_WORKING, layout_jollycrd )
|
||||
GAMEL( 1991, fw_a0_1, 0, fw_a7_11, funworld, funworld_state, 0, ROT0, "Fun World", "Unknown Fun World A0-1 game", MACHINE_NOT_WORKING, layout_jollycrd )
|
||||
GAME( 1991, intrgmes, 0, intrgmes, funworld, funworld_state, 0, ROT0, "Inter Games", "unknown Inter Games poker", MACHINE_NOT_WORKING )
|
||||
GAMEL( 1985, fw_a7_11, 0, fw_a7_11, funworld, funworld_state, 0, ROT0, "Fun World", "unknown Fun World A7-11 game 1", MACHINE_NOT_WORKING, layout_jollycrd )
|
||||
GAMEL( 1985, fw_a7_11a, fw_a7_11, fw_a7_11, funworld, funworld_state, 0, ROT0, "Fun World", "unknown Fun World A7-11 game 2", MACHINE_NOT_WORKING, layout_jollycrd )
|
||||
GAMEL( 1991, fw_a0_1, 0, fw_a7_11, funworld, funworld_state, 0, ROT0, "Fun World", "unknown Fun World A0-1 game", MACHINE_NOT_WORKING, layout_jollycrd )
|
||||
|
||||
// These are 2-in-1 stealth boards, they can run the Poker game, or, using completely separate hardware on the same PCB, a NES / MSX Multigames!
|
||||
GAMEL( 1991, royalcrd_nes, royalcrd, royalcd2, royalcrd, funworld_state, 0, ROT0, "bootleg", "Royal Card (stealth with NES multigame)", MACHINE_NOT_WORKING, layout_jollycrd )
|
||||
|
@ -66,7 +66,7 @@ U.S.A. Trivia New Sports General Facts
|
||||
or alt: Adult Sex 2 or alt: Adult Sex 3 or alt: Gay Times
|
||||
|
||||
NOTE: Trivia Question rom names are the internal names used. IE: read from the file with
|
||||
a Hex Editor. Any "_alt" extention is used to separate different roms with the same
|
||||
a Hex Editor. Any "_alt" extension is used to separate different roms with the same
|
||||
label or internal name.
|
||||
|
||||
*/
|
||||
@ -90,26 +90,12 @@ public:
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_dac(*this, "dac"),
|
||||
m_ticket(*this, "ticket"),
|
||||
m_screen(*this, "screen") { }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<dac_bit_interface> m_dac;
|
||||
optional_device<ticket_dispenser_device> m_ticket;
|
||||
required_device<screen_device> m_screen;
|
||||
|
||||
virtual void video_start() override;
|
||||
m_screen(*this, "screen"),
|
||||
m_signature(*this, "signature"),
|
||||
m_rombank(*this, "rombank") { }
|
||||
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
bitmap_ind16 m_bitmap;
|
||||
|
||||
uint8_t m_drawctrl[3];
|
||||
uint8_t m_color[8];
|
||||
int m_prevoffset;
|
||||
int m_yadd;
|
||||
int m_signature_answer;
|
||||
int m_signature_pos;
|
||||
uint8_t m_nmi_mask;
|
||||
DECLARE_WRITE8_MEMBER(gei_drawctrl_w);
|
||||
DECLARE_WRITE8_MEMBER(gei_bitmap_w);
|
||||
DECLARE_READ8_MEMBER(catchall);
|
||||
@ -137,50 +123,83 @@ public:
|
||||
DECLARE_READ8_MEMBER(banksel_5_r);
|
||||
DECLARE_READ8_MEMBER(signature_r);
|
||||
DECLARE_WRITE8_MEMBER(signature_w);
|
||||
DECLARE_WRITE8_MEMBER(signature2_w);
|
||||
DECLARE_WRITE8_MEMBER(lamps_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_w);
|
||||
DECLARE_WRITE8_MEMBER(sound2_w);
|
||||
DECLARE_WRITE8_MEMBER(lamps2_w);
|
||||
DECLARE_WRITE8_MEMBER(nmi_w);
|
||||
DECLARE_READ8_MEMBER(portC_r);
|
||||
DECLARE_DRIVER_INIT(geimulti);
|
||||
|
||||
DECLARE_DRIVER_INIT(setbank);
|
||||
DECLARE_DRIVER_INIT(bank2k);
|
||||
DECLARE_DRIVER_INIT(bank8k);
|
||||
DECLARE_DRIVER_INIT(geimulti);
|
||||
|
||||
INTERRUPT_GEN_MEMBER(vblank_irq);
|
||||
|
||||
protected:
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
bitmap_ind16 m_bitmap;
|
||||
|
||||
uint8_t m_drawctrl[3];
|
||||
uint8_t m_color[8];
|
||||
int m_prevoffset;
|
||||
int m_yadd;
|
||||
int m_signature_answer;
|
||||
int m_signature_pos;
|
||||
uint8_t m_nmi_mask;
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<dac_bit_interface> m_dac;
|
||||
optional_device<ticket_dispenser_device> m_ticket;
|
||||
required_device<screen_device> m_screen;
|
||||
optional_region_ptr<uint8_t> m_signature;
|
||||
optional_memory_bank m_rombank;
|
||||
};
|
||||
|
||||
|
||||
WRITE8_MEMBER(gei_state::gei_drawctrl_w)
|
||||
{
|
||||
m_drawctrl[offset] = data;
|
||||
|
||||
if (offset == 2)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 8; i++)
|
||||
if (BIT(m_drawctrl[1],i)) m_color[i] = m_drawctrl[0] & 7;
|
||||
for (int i = 0; i < 8; i++)
|
||||
if (BIT(m_drawctrl[1], i)) m_color[i] = m_drawctrl[0] & 7;
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(gei_state::gei_bitmap_w)
|
||||
{
|
||||
int sx,sy;
|
||||
int i;
|
||||
|
||||
m_yadd = (offset==m_prevoffset) ? (m_yadd+1):0;
|
||||
m_yadd = (offset == m_prevoffset) ? (m_yadd + 1) : 0;
|
||||
m_prevoffset = offset;
|
||||
|
||||
sx = 8 * (offset % 64);
|
||||
sy = offset / 64;
|
||||
int sx = 8 * (offset % 64);
|
||||
int sy = offset / 64;
|
||||
sy = (sy + m_yadd) & 0xff;
|
||||
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
m_bitmap.pix16(sy, sx+i) = m_color[8-i-1];
|
||||
for (int i = 0; i < 8; i++)
|
||||
m_bitmap.pix16(sy, sx + i) = m_color[8 - i - 1];
|
||||
}
|
||||
|
||||
void gei_state::video_start()
|
||||
{
|
||||
m_screen->register_screen_bitmap(m_bitmap);
|
||||
|
||||
save_item(NAME(m_drawctrl));
|
||||
save_item(NAME(m_color));
|
||||
save_item(NAME(m_prevoffset));
|
||||
save_item(NAME(m_yadd));
|
||||
save_item(NAME(m_nmi_mask));
|
||||
save_item(NAME(m_bitmap));
|
||||
|
||||
if (m_signature.found())
|
||||
{
|
||||
save_item(NAME(m_signature_answer));
|
||||
save_item(NAME(m_signature_pos));
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t gei_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
@ -192,28 +211,28 @@ uint32_t gei_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, c
|
||||
WRITE8_MEMBER(gei_state::lamps_w)
|
||||
{
|
||||
/* 5 button lamps */
|
||||
output().set_led_value(0,data & 0x01);
|
||||
output().set_led_value(1,data & 0x02);
|
||||
output().set_led_value(2,data & 0x04);
|
||||
output().set_led_value(3,data & 0x08);
|
||||
output().set_led_value(4,data & 0x10);
|
||||
output().set_led_value(0, data & 0x01);
|
||||
output().set_led_value(1, data & 0x02);
|
||||
output().set_led_value(2, data & 0x04);
|
||||
output().set_led_value(3, data & 0x08);
|
||||
output().set_led_value(4, data & 0x10);
|
||||
|
||||
/* 3 button lamps for deal, cancel, stand in poker games;
|
||||
lamp order verified in poker and selection self tests */
|
||||
output().set_led_value(7,data & 0x20);
|
||||
output().set_led_value(5,data & 0x40);
|
||||
output().set_led_value(6,data & 0x80);
|
||||
output().set_led_value(7, data & 0x20);
|
||||
output().set_led_value(5, data & 0x40);
|
||||
output().set_led_value(6, data & 0x80);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(gei_state::sound_w)
|
||||
{
|
||||
/* bit 3 - coin lockout, lamp10 in poker / lamp6 in trivia test modes */
|
||||
machine().bookkeeping().coin_lockout_global_w(~data & 0x08);
|
||||
output().set_led_value(9,data & 0x08);
|
||||
output().set_led_value(9, data & 0x08);
|
||||
|
||||
/* bit 5 - ticket out in trivia games */
|
||||
if (m_ticket != nullptr)
|
||||
m_ticket->write(machine().dummy_space(), 0, (data & 0x20)<< 2);
|
||||
m_ticket->write(machine().dummy_space(), 0, (data & 0x20) << 2);
|
||||
|
||||
/* bit 6 enables NMI */
|
||||
m_nmi_mask = data & 0x40;
|
||||
@ -224,16 +243,16 @@ WRITE8_MEMBER(gei_state::sound_w)
|
||||
|
||||
WRITE8_MEMBER(gei_state::sound2_w)
|
||||
{
|
||||
/* bit 3,6 - coin lockout, lamp10+11 in selection test mode */
|
||||
/* bit 3,6 - coin lockout, lamp 10 + 11 in selection test mode */
|
||||
machine().bookkeeping().coin_lockout_w(0, ~data & 0x08);
|
||||
machine().bookkeeping().coin_lockout_w(1, ~data & 0x40);
|
||||
output().set_led_value(9,data & 0x08);
|
||||
output().set_led_value(10,data & 0x40);
|
||||
output().set_led_value(9, data & 0x08);
|
||||
output().set_led_value(10, data & 0x40);
|
||||
|
||||
/* bit 4,5 - lamps 12, 13 in selection test mode;
|
||||
12 lights up if dsw maximum bet = 30 an bet > 15 or if dsw maximum bet = 10 an bet = 10 */
|
||||
output().set_led_value(11,data & 0x10);
|
||||
output().set_led_value(12,data & 0x20);
|
||||
output().set_led_value(11, data & 0x10);
|
||||
output().set_led_value(12, data & 0x20);
|
||||
|
||||
/* bit 7 goes directly to the sound amplifier */
|
||||
m_dac->write(BIT(data, 7));
|
||||
@ -242,13 +261,13 @@ WRITE8_MEMBER(gei_state::sound2_w)
|
||||
WRITE8_MEMBER(gei_state::lamps2_w)
|
||||
{
|
||||
/* bit 4 - play/raise button lamp, lamp 9 in poker test mode */
|
||||
output().set_led_value(8,data & 0x10);
|
||||
output().set_led_value(8, data & 0x10);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(gei_state::nmi_w)
|
||||
{
|
||||
/* bit 4 - play/raise button lamp, lamp 9 in selection test mode */
|
||||
output().set_led_value(8,data & 0x10);
|
||||
output().set_led_value(8, data & 0x10);
|
||||
|
||||
/* bit 6 enables NMI */
|
||||
m_nmi_mask = data & 0x40;
|
||||
@ -271,68 +290,68 @@ READ8_MEMBER(gei_state::portC_r)
|
||||
|
||||
WRITE8_MEMBER(gei_state::banksel_main_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x8000);
|
||||
m_rombank->set_entry(0);
|
||||
}
|
||||
WRITE8_MEMBER(gei_state::banksel_1_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x10000);
|
||||
m_rombank->set_entry(1);
|
||||
}
|
||||
WRITE8_MEMBER(gei_state::banksel_2_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x18000);
|
||||
m_rombank->set_entry(2);
|
||||
}
|
||||
WRITE8_MEMBER(gei_state::banksel_3_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x20000);
|
||||
m_rombank->set_entry(3);
|
||||
}
|
||||
WRITE8_MEMBER(gei_state::banksel_4_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x28000);
|
||||
m_rombank->set_entry(4);
|
||||
}
|
||||
WRITE8_MEMBER(gei_state::banksel_5_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x30000);
|
||||
m_rombank->set_entry(5);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(gei_state::banksel_1_1_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x10000);
|
||||
m_rombank->set_entry(0);
|
||||
}
|
||||
WRITE8_MEMBER(gei_state::banksel_2_1_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x14000);
|
||||
m_rombank->set_entry(2);
|
||||
}
|
||||
WRITE8_MEMBER(gei_state::banksel_3_1_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x18000);
|
||||
m_rombank->set_entry(4);
|
||||
}
|
||||
WRITE8_MEMBER(gei_state::banksel_4_1_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x1c000);
|
||||
m_rombank->set_entry(6);
|
||||
}
|
||||
WRITE8_MEMBER(gei_state::banksel_5_1_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x20000);
|
||||
m_rombank->set_entry(8);
|
||||
}
|
||||
WRITE8_MEMBER(gei_state::banksel_1_2_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x12000);
|
||||
m_rombank->set_entry(1);
|
||||
}
|
||||
WRITE8_MEMBER(gei_state::banksel_2_2_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x16000);
|
||||
m_rombank->set_entry(3);
|
||||
}
|
||||
WRITE8_MEMBER(gei_state::banksel_3_2_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x1a000);
|
||||
m_rombank->set_entry(5);
|
||||
}
|
||||
WRITE8_MEMBER(gei_state::banksel_4_2_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x1e000);
|
||||
m_rombank->set_entry(7);
|
||||
}
|
||||
WRITE8_MEMBER(gei_state::banksel_5_2_w)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x22000);
|
||||
m_rombank->set_entry(9);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(gei_state::geimulti_bank_w)
|
||||
@ -360,36 +379,36 @@ WRITE8_MEMBER(gei_state::geimulti_bank_w)
|
||||
}
|
||||
|
||||
if (bank != -1)
|
||||
membank("bank1")->set_base(memregion("bank")->base() + bank*0x8000);
|
||||
m_rombank->set_entry(bank);
|
||||
}
|
||||
|
||||
READ8_MEMBER(gei_state::banksel_1_r)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x10000);
|
||||
m_rombank->set_entry(1);
|
||||
return 0x03;
|
||||
}
|
||||
|
||||
READ8_MEMBER(gei_state::banksel_2_r)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x18000);
|
||||
m_rombank->set_entry(2);
|
||||
return 0x03;
|
||||
}
|
||||
|
||||
READ8_MEMBER(gei_state::banksel_3_r)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x20000);
|
||||
m_rombank->set_entry(3);
|
||||
return 0x03;
|
||||
}
|
||||
|
||||
READ8_MEMBER(gei_state::banksel_4_r)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x28000);
|
||||
m_rombank->set_entry(4);
|
||||
return 0x03;
|
||||
}
|
||||
|
||||
READ8_MEMBER(gei_state::banksel_5_r)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x30000);
|
||||
m_rombank->set_entry(5);
|
||||
return 0x03;
|
||||
}
|
||||
|
||||
@ -403,24 +422,10 @@ READ8_MEMBER(gei_state::signature_r)
|
||||
WRITE8_MEMBER(gei_state::signature_w)
|
||||
{
|
||||
if (data == 0) m_signature_pos = 0;
|
||||
|
||||
else
|
||||
{
|
||||
static const uint8_t signature[8] = { 0xff, 0x01, 0xfd, 0x05, 0xf5, 0x15, 0xd5, 0x55 };
|
||||
|
||||
m_signature_answer = signature[m_signature_pos++];
|
||||
|
||||
m_signature_pos &= 7; /* safety; shouldn't happen */
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(gei_state::signature2_w)
|
||||
{
|
||||
if (data == 0) m_signature_pos = 0;
|
||||
else
|
||||
{
|
||||
static const uint8_t signature[8] = { 0xff, 0x01, 0xf7, 0x11, 0xd7, 0x51, 0x57, 0x51 };
|
||||
|
||||
m_signature_answer = signature[m_signature_pos++];
|
||||
m_signature_answer = m_signature[m_signature_pos++];
|
||||
|
||||
m_signature_pos &= 7; /* safety; shouldn't happen */
|
||||
}
|
||||
@ -428,7 +433,7 @@ WRITE8_MEMBER(gei_state::signature2_w)
|
||||
|
||||
static ADDRESS_MAP_START( getrivia_map, AS_PROGRAM, 8, gei_state )
|
||||
AM_RANGE(0x0000, 0x1fff) AM_ROM
|
||||
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("rombank")
|
||||
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
|
||||
AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
|
||||
@ -450,7 +455,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( gselect_map, AS_PROGRAM, 8, gei_state )
|
||||
AM_RANGE(0x0000, 0x1fff) AM_ROM
|
||||
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("rombank")
|
||||
AM_RANGE(0x4000, 0x40ff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0x4400, 0x4400) AM_WRITE(banksel_1_1_w)
|
||||
AM_RANGE(0x4401, 0x4401) AM_WRITE(banksel_1_2_w)
|
||||
@ -465,7 +470,7 @@ ADDRESS_MAP_END
|
||||
// TODO: where are mapped the lower 0x2000 bytes of the banks?
|
||||
static ADDRESS_MAP_START( amuse_map, AS_PROGRAM, 8, gei_state )
|
||||
AM_RANGE(0x0000, 0x1fff) AM_ROM
|
||||
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("rombank")
|
||||
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
|
||||
AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
|
||||
@ -481,7 +486,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( gepoker_map, AS_PROGRAM, 8, gei_state )
|
||||
AM_RANGE(0x0000, 0x1fff) AM_ROM
|
||||
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("rombank")
|
||||
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
|
||||
AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
|
||||
@ -498,7 +503,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( amuse1_map, AS_PROGRAM, 8, gei_state )
|
||||
AM_RANGE(0x0000, 0x1fff) AM_ROM
|
||||
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("rombank")
|
||||
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0x4400, 0x4400) AM_WRITE(banksel_1_1_w)
|
||||
AM_RANGE(0x4401, 0x4401) AM_WRITE(banksel_2_1_w)
|
||||
@ -528,7 +533,7 @@ static ADDRESS_MAP_START( findout_map, AS_PROGRAM, 8, gei_state )
|
||||
AM_RANGE(0x6200, 0x6200) AM_WRITE(signature_w)
|
||||
AM_RANGE(0x6400, 0x6400) AM_READ(signature_r)
|
||||
AM_RANGE(0x7800, 0x7fff) AM_ROM /*space for diagnostic ROM?*/
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("rombank")
|
||||
AM_RANGE(0x8000, 0x8002) AM_WRITE(gei_drawctrl_w)
|
||||
AM_RANGE(0xc000, 0xffff) AM_WRITE(gei_bitmap_w)
|
||||
AM_RANGE(0x0000, 0xffff) AM_READ(catchall)
|
||||
@ -546,7 +551,7 @@ static ADDRESS_MAP_START( quizvid_map, AS_PROGRAM, 8, gei_state )
|
||||
AM_RANGE(0x603d, 0x603d) AM_READ(banksel_2_r)
|
||||
AM_RANGE(0x603e, 0x603e) AM_READ(banksel_1_r)
|
||||
AM_RANGE(0x7800, 0x7fff) AM_ROM /*space for diagnostic ROM?*/
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("rombank")
|
||||
AM_RANGE(0x8000, 0x8002) AM_WRITE(gei_drawctrl_w)
|
||||
AM_RANGE(0xc000, 0xffff) AM_WRITE(gei_bitmap_w)
|
||||
AM_RANGE(0x0000, 0xffff) AM_READ(catchall)
|
||||
@ -557,7 +562,7 @@ static ADDRESS_MAP_START( suprpokr_map, AS_PROGRAM, 8, gei_state )
|
||||
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
|
||||
AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
|
||||
AM_RANGE(0x6200, 0x6200) AM_WRITE(signature2_w)
|
||||
AM_RANGE(0x6200, 0x6200) AM_WRITE(signature_w)
|
||||
AM_RANGE(0x6400, 0x6400) AM_READ(signature_r)
|
||||
AM_RANGE(0x8000, 0x8002) AM_WRITE(gei_drawctrl_w)
|
||||
AM_RANGE(0xc000, 0xffff) AM_WRITE(gei_bitmap_w)
|
||||
@ -573,7 +578,7 @@ static ADDRESS_MAP_START( geimulti_map, AS_PROGRAM, 8, gei_state )
|
||||
AM_RANGE(0x5a00, 0x5cff) AM_WRITE(geimulti_bank_w)
|
||||
AM_RANGE(0x6000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x8002) AM_WRITE(gei_drawctrl_w)
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("rombank")
|
||||
AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(gei_bitmap_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -587,7 +592,7 @@ static ADDRESS_MAP_START( sprtauth_map, AS_PROGRAM, 8, gei_state )
|
||||
AM_RANGE(0x5a00, 0x5cff) AM_WRITE(geimulti_bank_w)
|
||||
AM_RANGE(0x6000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x8002) AM_WRITE(gei_drawctrl_w)
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("rombank")
|
||||
AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(gei_bitmap_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -870,6 +875,37 @@ static INPUT_PORTS_START(sexappl)
|
||||
PORT_INCLUDE(trivia_standard)
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START(bigjoke)
|
||||
PORT_START("DSWA")
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1")
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2")
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4")
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, "Orientation" ) PORT_DIPLOCATION("SW1:5")
|
||||
PORT_DIPSETTING( 0x10, "Horizontal" )
|
||||
PORT_DIPSETTING( 0x00, "Vertical" )
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:6")
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7")
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_INCLUDE(trivia_standard)
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( gt103 )
|
||||
PORT_START("DSWA") /* DSW A */
|
||||
PORT_DIPNAME( 0x07, 0x01, "Coinage Multiplier" ) PORT_DIPLOCATION("SW1:1,2,3")
|
||||
@ -951,7 +987,7 @@ static INPUT_PORTS_START(geimulti)
|
||||
PORT_INCLUDE(gselect)
|
||||
|
||||
PORT_MODIFY("DSWA")
|
||||
PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
|
||||
PORT_DIPNAME( 0x0f, 0x09, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
|
||||
PORT_DIPSETTING( 0x07, DEF_STR( 7C_1C ) )
|
||||
PORT_DIPSETTING( 0x06, DEF_STR( 6C_1C ) )
|
||||
@ -986,7 +1022,7 @@ static INPUT_PORTS_START(sprtauth)
|
||||
PORT_INCLUDE(trivia_standard)
|
||||
|
||||
PORT_START("DSWA")
|
||||
PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
|
||||
PORT_DIPNAME( 0x0f, 0x09, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
|
||||
PORT_DIPSETTING( 0x07, DEF_STR( 7C_1C ) )
|
||||
PORT_DIPSETTING( 0x06, DEF_STR( 6C_1C ) )
|
||||
@ -1020,7 +1056,7 @@ INPUT_PORTS_END
|
||||
|
||||
INTERRUPT_GEN_MEMBER(gei_state::vblank_irq)
|
||||
{
|
||||
if(m_nmi_mask)
|
||||
if (m_nmi_mask)
|
||||
device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
@ -1028,7 +1064,7 @@ INTERRUPT_GEN_MEMBER(gei_state::vblank_irq)
|
||||
static MACHINE_CONFIG_START( getrivia )
|
||||
MCFG_CPU_ADD("maincpu",Z80,4000000) /* 4 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP(getrivia_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", gei_state, vblank_irq)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", gei_state, vblank_irq)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -1157,6 +1193,7 @@ static MACHINE_CONFIG_DERIVED( sprtauth, getrivia )
|
||||
MCFG_CPU_PROGRAM_MAP(sprtauth_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
/***************************************************
|
||||
Rom board is UVM-1A
|
||||
|
||||
@ -1200,7 +1237,7 @@ Rom board is UVM-1B
|
||||
|
||||
Contains:
|
||||
4 2732 eproms (Program Code)
|
||||
Battery (3.5V litium battery) backed up NEC 8444XF301
|
||||
Battery (3.5V lithium battery) backed up NEC 8444XF301
|
||||
DM7408N
|
||||
|
||||
****************************************************/
|
||||
@ -1219,7 +1256,7 @@ Rom board is UVM 10 B
|
||||
Contains:
|
||||
2 2764 eproms (Program Code)
|
||||
5 27128 eproms (Question roms)
|
||||
Battery (3V litium battery) backed up HM6117P-4
|
||||
Battery (3V lithium battery) backed up HM6117P-4
|
||||
SN74LS374
|
||||
MMI PAL10L8
|
||||
|
||||
@ -1228,7 +1265,7 @@ Sets will be listed by "series" - the program code version
|
||||
is not as important as maintaining the correct questions
|
||||
sets as per known series
|
||||
Missing sets will be filled as dumped, as question roms
|
||||
are interchangeable, operators did thier own swaps
|
||||
are interchangeable, operators did their own swaps
|
||||
|
||||
Note: Question roms that contain "#1" (or 2 ect)
|
||||
are corrected roms (spelling and / or answers)
|
||||
@ -1357,7 +1394,7 @@ Rom board is UVM-4B
|
||||
|
||||
Contains 5 2764 eproms, MMI PAL16R4CN
|
||||
|
||||
Battery (3V litium battery) backed up HM6117P-4
|
||||
Battery (3V lithium battery) backed up HM6117P-4
|
||||
|
||||
Roms labeled as:
|
||||
|
||||
@ -1408,7 +1445,7 @@ PAL16R4
|
||||
|
||||
Roms in this order on the UMV 10 C board:
|
||||
|
||||
Label Normaly in the slot
|
||||
Label Normally in the slot
|
||||
--------------------------------
|
||||
High
|
||||
Control
|
||||
@ -1456,7 +1493,7 @@ ROM_START( gepoker1 ) /* v50.02 with roms for ICB dated 9-30-86 */
|
||||
ROM_LOAD( "blackjack_icb_9-30-86", 0x12000, 0x2000, CRC(82804184) SHA1(2e2e6a80c99c8eb226dc54c1d32d0bf24de300a4) )
|
||||
ROM_LOAD( "casinoslots_icb_9-30-86", 0x14000, 0x2000, CRC(713c3963) SHA1(a9297c04fc44522ca6891516a2c744712132896a) )
|
||||
ROM_LOAD( "beatthespread_icb_9-30-86", 0x16000, 0x2000, CRC(93654d2a) SHA1(3aa5a54b91867c03182e93a7f1607545503a33f7) )
|
||||
ROM_LOAD( "instantbingo_t24_10-07-86", 0x18000, 0x2000, CRC(de87ed0a) SHA1(4a26d93368c1a39dd38aabe450c34203101f0ef7) ) /* Found with this set, is it compatible or an operater swap? */
|
||||
ROM_LOAD( "instantbingo_t24_10-07-86", 0x18000, 0x2000, CRC(de87ed0a) SHA1(4a26d93368c1a39dd38aabe450c34203101f0ef7) ) /* Found with this set, is it compatible or an operator swap? */
|
||||
ROM_END
|
||||
|
||||
ROM_START( gepoker2 ) /* v50.02 with control dated 9-30-84 */
|
||||
@ -1509,7 +1546,7 @@ Rom board is "GEI, inc UVM-8B" with a date code of "8339"
|
||||
|
||||
Contains 1 AM2732A eprom, 5 HN4827128G eproms, 1 MMI PAL16R4CN, 1 7474N
|
||||
|
||||
Battery (3V litium battery) backed up HM6117P-4
|
||||
Battery (3V lithium battery) backed up HM6117P-4
|
||||
|
||||
Roms labeled as:
|
||||
|
||||
@ -1539,6 +1576,12 @@ ROM_START( suprpokr ) /* Super Poker Version 10.19S BOBC. Rom board UMV-7C */
|
||||
ROM_LOAD( "supr_pokr_10.19s_#1", 0x00000, 0x4000, CRC(50662b4d) SHA1(967161a755db43d2cfd5ce92e14c5284f1f1f8ad) )
|
||||
ROM_LOAD( "supr_pokr_10.19s_#2", 0x08000, 0x4000, CRC(22b45aeb) SHA1(006c3072cc44c6fde9b4d15163dc70707bbd5a9c) )
|
||||
ROM_RELOAD( 0x0c000, 0x4000 )
|
||||
|
||||
ROM_REGION( 0x0800, "nvram", 0 )
|
||||
ROM_LOAD( "suprpokr.nvram", 0x0000, 0x0800, CRC(0e716e23) SHA1(15e35bfbab9a6778834df1c85c25643010054cdb) )
|
||||
|
||||
ROM_REGION( 0x0008, "signature", 0 )
|
||||
ROM_LOAD( "suprpokr.sig", 0x0000, 0x0008, CRC(8f622afe) SHA1(8c1c8cee444c88211760a0f5c3adcfd887da5bb7) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( suprpokra ) /* Super Poker Version 10.15S BOBC. Rom board UMV-7C */
|
||||
@ -1546,6 +1589,12 @@ ROM_START( suprpokra ) /* Super Poker Version 10.15S BOBC. Rom board UMV-7C */
|
||||
ROM_LOAD( "supr_pokr_10.15s_#1", 0x00000, 0x4000, CRC(5cc7c1e0) SHA1(1cdca32c4df7227dab77574abe344b291741139e) )
|
||||
ROM_LOAD( "supr_pokr_10.15s_#2", 0x08000, 0x4000, CRC(e47d6e2a) SHA1(9cabc42275dad8be6cd5b167e381ddb5bf08276d) )
|
||||
ROM_RELOAD( 0x0c000, 0x4000 )
|
||||
|
||||
ROM_REGION( 0x0800, "nvram", 0 )
|
||||
ROM_LOAD( "suprpokr.nvram", 0x0000, 0x0800, CRC(0e716e23) SHA1(15e35bfbab9a6778834df1c85c25643010054cdb) )
|
||||
|
||||
ROM_REGION( 0x0008, "signature", 0 )
|
||||
ROM_LOAD( "suprpokr.sig", 0x0000, 0x0008, CRC(8f622afe) SHA1(8c1c8cee444c88211760a0f5c3adcfd887da5bb7) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( suprpokrb ) /* Super Poker Version 10.10 BOBC. Rom board UMV-7C */
|
||||
@ -1553,6 +1602,12 @@ ROM_START( suprpokrb ) /* Super Poker Version 10.10 BOBC. Rom board UMV-7C */
|
||||
ROM_LOAD( "supr_pokr_10.10_#1", 0x00000, 0x4000, CRC(8324471f) SHA1(c38b7a735ef06feea3e8d4ba6dd963e24d38c792) )
|
||||
ROM_LOAD( "supr_pokr_10.10_#2", 0x08000, 0x4000, CRC(a82ca9c5) SHA1(3b0f4ad7d53370dc1f00dec696e993359147a496) )
|
||||
ROM_RELOAD( 0x0c000, 0x4000 )
|
||||
|
||||
ROM_REGION( 0x0800, "nvram", 0 )
|
||||
ROM_LOAD( "suprpokr.nvram", 0x0000, 0x0800, CRC(0e716e23) SHA1(15e35bfbab9a6778834df1c85c25643010054cdb) )
|
||||
|
||||
ROM_REGION( 0x0008, "signature", 0 )
|
||||
ROM_LOAD( "suprpokr.sig", 0x0000, 0x0008, CRC(8f622afe) SHA1(8c1c8cee444c88211760a0f5c3adcfd887da5bb7) )
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -1565,6 +1620,12 @@ ROM_START( reelfun ) /* v7.03 */
|
||||
ROM_LOAD( "reelfun-3-phrase", 0x20000, 0x8000, CRC(199e36b0) SHA1(d9dfe39c9a4fca1169150f8941f8ebc499dfbaf5) )
|
||||
ROM_LOAD( "reelfun-4-person", 0x28000, 0x8000, CRC(49b0710b) SHA1(a38b3251bcb8683d43bdb903036970140a9735e6) )
|
||||
ROM_LOAD( "reelfun-5-song_title", 0x30000, 0x8000, CRC(cce01c45) SHA1(c484f5828928edf39335cedf21acab0b9e2a6881) )
|
||||
|
||||
ROM_REGION( 0x0800, "nvram", 0 )
|
||||
ROM_LOAD( "reelfun.nvram", 0x0000, 0x0800, CRC(fbb791ce) SHA1(0db77cbc42b5362b3d2ecde46a4289619e8f59a6) ) /* Defaults */
|
||||
|
||||
ROM_REGION( 0x0008, "signature", 0 ) // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps
|
||||
ROM_LOAD( "reelfun.sig", 0x0000, 0x0008, CRC(c8e944a3) SHA1(d34de9e3163ba61fa4e4f2264caff40434fcc9b0) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( reelfun1 ) /* v7.01 */
|
||||
@ -1576,6 +1637,12 @@ ROM_START( reelfun1 ) /* v7.01 */
|
||||
ROM_LOAD( "reelfun-3-phrase", 0x20000, 0x8000, CRC(199e36b0) SHA1(d9dfe39c9a4fca1169150f8941f8ebc499dfbaf5) )
|
||||
ROM_LOAD( "reelfun-4-person", 0x28000, 0x8000, CRC(49b0710b) SHA1(a38b3251bcb8683d43bdb903036970140a9735e6) )
|
||||
ROM_LOAD( "reelfun-5-song_title", 0x30000, 0x8000, CRC(cce01c45) SHA1(c484f5828928edf39335cedf21acab0b9e2a6881) )
|
||||
|
||||
ROM_REGION( 0x0800, "nvram", 0 )
|
||||
ROM_LOAD( "reelfun.nvram", 0x0000, 0x0800, CRC(fbb791ce) SHA1(0db77cbc42b5362b3d2ecde46a4289619e8f59a6) ) /* Defaults */
|
||||
|
||||
ROM_REGION( 0x0008, "signature", 0 ) // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps
|
||||
ROM_LOAD( "reelfun.sig", 0x0000, 0x0008, CRC(c8e944a3) SHA1(d34de9e3163ba61fa4e4f2264caff40434fcc9b0) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( findout )
|
||||
@ -1590,6 +1657,12 @@ ROM_START( findout )
|
||||
|
||||
ROM_REGION( 0x0200, "gfx2", 0 )
|
||||
ROM_LOAD( "82s147.bin", 0x0000, 0x0200, CRC(f3b663bb) SHA1(5a683951c8d3a2baac4b49e379d6e10e35465c8a) ) /* unknown */
|
||||
|
||||
ROM_REGION( 0x0800, "nvram", 0 )
|
||||
ROM_LOAD( "findout.nvram", 0x0000, 0x0800, CRC(b6950ffc) SHA1(ecc08904b208fb87c7a47d2f6081652405bf73b4) ) /* Defaults */
|
||||
|
||||
ROM_REGION( 0x0008, "signature", 0 ) // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps
|
||||
ROM_LOAD( "findout.sig", 0x0000, 0x0008, CRC(c8e944a3) SHA1(d34de9e3163ba61fa4e4f2264caff40434fcc9b0) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( gt507uk )
|
||||
@ -1599,7 +1672,7 @@ ROM_START( gt507uk )
|
||||
ROM_LOAD( "aerospace", 0x10000, 0x8000, CRC(cb555d46) SHA1(559ae05160d7893ff96311a2177eba039a4cf186) ) /* Also found in Series #11 set */
|
||||
ROM_LOAD( "english_sport_4", 0x18000, 0x8000, CRC(6ae8a63d) SHA1(c6018141d8bbe0ed7619980bf7da89dd91d7fcc2) )
|
||||
ROM_LOAD( "general_facts", 0x20000, 0x8000, CRC(f921f108) SHA1(fd72282df5cee0e6ab55268b40785b3dc8e3d65b) ) /* Also found in Series #11 set */
|
||||
ROM_LOAD( "horrors", 0x28000, 0x8000, CRC(5f7b262a) SHA1(047480d6bf5c6d0603d538b84c996bd226f07f77) ) /* Possiblely Series #13 rom */
|
||||
ROM_LOAD( "horrors", 0x28000, 0x8000, CRC(5f7b262a) SHA1(047480d6bf5c6d0603d538b84c996bd226f07f77) ) /* Possibly Series #13 rom */
|
||||
ROM_LOAD( "pop_music", 0x30000, 0x8000, CRC(884fec7c) SHA1(b389216c17f516df4e15eee46246719dd4acb587) )
|
||||
ROM_END
|
||||
|
||||
@ -1695,6 +1768,9 @@ ROM_START( gtsers15 ) /* v5.06, From a TRIV3D romboard */
|
||||
ROM_LOAD( "nfl_football", 0x28000, 0x8000, CRC(42eb2849) SHA1(c24e681a508ef8350f7e5d50aea2c31cf70ce5c9) )
|
||||
ROM_LOAD( "adult_sex_6", 0x30000, 0x8000, CRC(d66f35f7) SHA1(81b56756230b27b0903d0c5df30439726526afe2) )
|
||||
/* Missing unknown question rom (and alternate question?) */
|
||||
|
||||
ROM_REGION( 0x0008, "signature", 0 ) // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps
|
||||
ROM_LOAD( "gtsers15.sig", 0x0000, 0x0008, CRC(c8e944a3) SHA1(d34de9e3163ba61fa4e4f2264caff40434fcc9b0) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( gt103a1 ) /* Need to verify which series these belong to */
|
||||
@ -1790,6 +1866,27 @@ ROM_START( quiz211 )
|
||||
ROM_LOAD( "pal10l8cn.bin", 0x0000, 0x002c, CRC(86095226) SHA1(e7496efbd5ca240f0df2dfa5627402342c7f5384) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( bigjoke ) /* TRIV3D PCB, stickered THE JOKE 11/87 */
|
||||
ROM_REGION( 0x38000, "maincpu", 0 )
|
||||
ROM_LOAD( "joke_cont_128", 0x00000, 0x4000, CRC(acb4355f) SHA1(0fc9a218e94fc49297bd11547fb193d1f91ce90c) )
|
||||
ROM_LOAD( "joke_2764", 0x08000, 0x2000, CRC(8a7ac263) SHA1(6f9a18b7f38e83cc2d1f1911e3b01ada7df4d2ba) ) /* banked */
|
||||
ROM_LOAD( "joke_drty_nsty_1012", 0x10000, 0x8000, CRC(e3fcd0e3) SHA1(fae1ddfb244e5c84e9ba6d4b90bd265365a4f662) ) /* banked ROMs for solution data */
|
||||
ROM_LOAD( "joke_fams_folk_1012", 0x18000, 0x8000, CRC(08eb35f2) SHA1(0dba706750a9276dac9976eb07f64ecf4a42e658) )
|
||||
ROM_LOAD( "joke_jmbl_joke_1012", 0x20000, 0x8000, CRC(26daf757) SHA1(76560bf437b4ee851f075b30e79df563367830cf) )
|
||||
ROM_LOAD( "joke_racl_ethn_1012", 0x28000, 0x8000, CRC(ca814fa9) SHA1(0c2ac15568bd64c282f257089305309ef7f91411) )
|
||||
ROM_LOAD( "joke_wrkg_wrld_1012", 0x30000, 0x8000, CRC(f4b0fa76) SHA1(70b4a29d928729da52948c12e55473ecf83b3daa) )
|
||||
|
||||
ROM_REGION( 0x0800, "nvram", 0 )
|
||||
ROM_LOAD( "bigjoke.nvram", 0x0000, 0x0800, CRC(89e0e325) SHA1(c2398c64f938e8ed036e72a5ba0b703513f31a6d) )
|
||||
|
||||
ROM_REGION( 0x0400, "pld", 0 ) // probably one of the two GALs provides the "signature"
|
||||
ROM_LOAD( "gal16v8", 0x0000, 0x0117, NO_DUMP ) /* read protected */
|
||||
ROM_LOAD( "gal18v8", 0x0200, 0x0117, NO_DUMP ) /* read protected */
|
||||
|
||||
ROM_REGION( 0x0008, "signature", 0 ) // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps
|
||||
ROM_LOAD( "bigjoke.sig", 0x0000, 0x0008, CRC(bfa5388b) SHA1(876bf954116fcc14d0bed017a9bec42038c5f89a) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( sexappl ) /* TRIV3D PCB, stickered SEX APPL 6.02 5/92 */
|
||||
ROM_REGION( 0x38000, "maincpu", 0 )
|
||||
ROM_LOAD( "6.02_cont", 0x00000, 0x4000, CRC(63ad3593) SHA1(fd93a71b82ef04757d79485ca4c7e306b2983c76) )
|
||||
@ -1802,6 +1899,13 @@ ROM_START( sexappl ) /* TRIV3D PCB, stickered SEX APPL 6.02 5/92 */
|
||||
|
||||
ROM_REGION( 0x0800, "nvram", 0 )
|
||||
ROM_LOAD( "sexappl.nvram", 0x0000, 0x0800, CRC(be65737c) SHA1(5b8a603a9ddecdad4aaef0b9e8ef373885b236c0) ) /* Defaults but with card dispenser OFF! */
|
||||
|
||||
ROM_REGION( 0x0400, "pld", 0 ) // probably one of the two GALs provides the "signature"
|
||||
ROM_LOAD( "gal16v8", 0x0000, 0x0117, NO_DUMP ) /* read protected */
|
||||
ROM_LOAD( "gal18v8", 0x0200, 0x0117, NO_DUMP ) /* read protected */
|
||||
|
||||
ROM_REGION( 0x0008, "signature", 0 ) // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps
|
||||
ROM_LOAD( "sexappl.sig", 0x0000, 0x0008, CRC(c8e944a3) SHA1(d34de9e3163ba61fa4e4f2264caff40434fcc9b0) )
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
@ -1877,78 +1981,98 @@ ROM_START( sprtauth )
|
||||
ROM_LOAD( "sprt-auth-supr-bowl.bank9", 0x40000, 0x8000, CRC(3a548fe5) SHA1(6ad35516651a8a878b512cb3eff697952e194dd0) )
|
||||
ROM_LOAD( "sprt-auth-rev1-kb.grph", 0x68000, 0x8000, CRC(c4f734ac) SHA1(028217fe6d7be75f75e9f67b665d465c729d2995) )
|
||||
|
||||
ROM_REGION( 0x0800, "nvram", 0 )
|
||||
ROM_LOAD( "sprtauth.nvram", 0x0000, 0x0800, CRC(969869f9) SHA1(a5a7b679e99255650dc8ea12d2b36e97e6296aae) ) /* Defaults but with card dispenser OFF! */
|
||||
|
||||
ROM_REGION( 0x0008, "signature", 0 ) // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps
|
||||
ROM_LOAD( "sprtauth.sig", 0x0000, 0x0008, CRC(c8e944a3) SHA1(d34de9e3163ba61fa4e4f2264caff40434fcc9b0) )
|
||||
ROM_END
|
||||
|
||||
DRIVER_INIT_MEMBER(gei_state,setbank)
|
||||
DRIVER_INIT_MEMBER(gei_state, setbank)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("maincpu")->base() + 0x2000);
|
||||
m_rombank->set_base(memregion("maincpu")->base() + 0x2000);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(gei_state,geimulti)
|
||||
DRIVER_INIT_MEMBER(gei_state, bank2k)
|
||||
{
|
||||
membank("bank1")->set_base(memregion("bank")->base() + 0x0000);
|
||||
m_rombank->configure_entries(0, 10, memregion("maincpu")->base() + 0x10000, 0x2000);
|
||||
m_rombank->set_entry(0);
|
||||
}
|
||||
|
||||
GAME( 1982, jokpoker, 0, gselect, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1983, jokpokera, jokpoker, jokpokera, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03BI 5-10-85, Joker Poker ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1983, jokpokerb, jokpoker, jokpokera, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.04BI 10-19-88, Joker Poker ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1983, jokpokerc, jokpoker, jokpokera, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03BI 5-10-85, Poker No Raise ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1982, superbwl, 0, gselect, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Super Bowl (Version 16.03B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
DRIVER_INIT_MEMBER(gei_state, bank8k)
|
||||
{
|
||||
m_rombank->configure_entries(0, 6, memregion("maincpu")->base() + 0x8000, 0x8000);
|
||||
m_rombank->set_entry(0);
|
||||
}
|
||||
|
||||
GAME( 1982, gs4002, 0, gselect, gselect, gei_state, 0, ROT0, "Greyhound Electronics", "Selection (Version 40.02TMB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1982, gs4002a, gs4002, gselect, gselect, gei_state, 0, ROT0, "Greyhound Electronics", "Selection (Version 40.02TMB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
DRIVER_INIT_MEMBER(gei_state, geimulti)
|
||||
{
|
||||
m_rombank->configure_entries(0, 14, memregion("bank")->base(), 0x8000);
|
||||
m_rombank->set_entry(0);
|
||||
}
|
||||
|
||||
GAME( 1982, amuse, 0, amuse, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Amuse (Version 50.08 IBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1982, amuse1, amuse, amuse1, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Amuse (Version 30.08 IBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1983, amuse1a, amuse, amuse1, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Amuse (Version 30.08A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1982, jokpoker, 0, gselect, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1983, jokpokera, jokpoker, jokpokera, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03BI 5-10-85, Joker Poker ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1983, jokpokerb, jokpoker, jokpokera, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.04BI 10-19-88, Joker Poker ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1983, jokpokerc, jokpoker, jokpokera, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03BI 5-10-85, Poker No Raise ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, superbwl, 0, gselect, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Super Bowl (Version 16.03B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1984, gepoker, 0, gepoker, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gepoker1, gepoker, gepoker, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gepoker2, gepoker, gepoker, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gepoker3, gepoker, gepoker, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1982, gs4002, 0, gselect, gselect, gei_state, bank2k, ROT0, "Greyhound Electronics", "Selection (Version 40.02TMB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, gs4002a, gs4002, gselect, gselect, gei_state, bank2k, ROT0, "Greyhound Electronics", "Selection (Version 40.02TMB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1984, gtsers1, 0, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsers2, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsers3, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsers4, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsers5, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 5)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsers7, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 7)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsersa, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Alt revision questions set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsersb, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Alt revision questions set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsers8, 0, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 8)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsers8a, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 8 Alt Question Rom)",MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsers9, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 9)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsers10, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsers11, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsers11a, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 11 Alt Question Rom)",MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsers12, gtsers8, findout, gt103, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 12)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1986, gtsers14, gtsers8, findout, gt103, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 14)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1986, gtsers15, gtsers8, findout, gt103, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 15)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gt103a1, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Unsorted question roms)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gt103aa, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Alt questions 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gt103ab, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Alt questions 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gt103asx, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Sex questions)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1982, amuse, 0, amuse, gepoker, gei_state, bank2k, ROT0, "Greyhound Electronics", "Amuse (Version 50.08 IBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, amuse1, amuse, amuse1, gepoker, gei_state, bank2k, ROT0, "Greyhound Electronics", "Amuse (Version 30.08 IBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1983, amuse1a, amuse, amuse1, gepoker, gei_state, bank2k, ROT0, "Greyhound Electronics", "Amuse (Version 30.08A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1985, sextriv1, 0, getrivia, sextriv1, gei_state, 0, ROT0, "Kinky Kit and Game Co.", "Sexual Trivia (Version 1.02SB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1985, sextriv2, sextriv1, getrivia, sextriv1, gei_state, 0, ROT0, "Kinky Kit and Game Co.", "Sexual Trivia (Version 1.02SB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gepoker, 0, gepoker, gepoker, gei_state, bank2k, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gepoker1, gepoker, gepoker, gepoker, gei_state, bank2k, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gepoker2, gepoker, gepoker, gepoker, gei_state, bank2k, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gepoker3, gepoker, gepoker, gepoker, gei_state, bank2k, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1986, gt507uk, 0, findout, gt507uk, gei_state, 0, ROT0, "Grayhound Electronics", "Trivia (UK Version 5.07)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1984, gtsers1, 0, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gtsers2, gtsers1, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gtsers3, gtsers1, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gtsers4, gtsers1, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gtsers5, gtsers1, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 5)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gtsers7, gtsers1, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 7)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gtsersa, gtsers1, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Alt revision questions set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gtsersb, gtsers1, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Alt revision questions set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gtsers8, 0, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 8)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gtsers8a, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 8 Alt Question Rom)",MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gtsers9, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 9)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gtsers10, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gtsers11, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gtsers11a, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 11 Alt Question Rom)",MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gtsers12, gtsers8, findout, gt103, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 12)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, gtsers14, gtsers8, findout, gt103, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 14)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, gtsers15, gtsers8, findout, gt103, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 15)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gt103a1, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Unsorted question roms)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gt103aa, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Alt questions 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gt103ab, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Alt questions 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, gt103asx, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Sex questions)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1986, quiz, 0, findout, quiz, gei_state, 0, ROT0, "Elettronolo", "Quiz (Revision 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1985, sextriv1, 0, getrivia, sextriv1, gei_state, bank2k, ROT0, "Kinky Kit and Game Co.", "Sexual Trivia (Version 1.02SB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, sextriv2, sextriv1, getrivia, sextriv1, gei_state, bank2k, ROT0, "Kinky Kit and Game Co.", "Sexual Trivia (Version 1.02SB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1986, quizvid, 0, quizvid, quiz, gei_state, 0, ROT0, "bootleg", "Video Quiz", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1986, gt507uk, 0, findout, gt507uk, gei_state, bank8k, ROT0, "Grayhound Electronics", "Trivia (UK Version 5.07)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1986, reelfun, 0, findout, reelfun, gei_state, 0, ROT0, "Grayhound Electronics", "Reel Fun (Version 7.03)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1986, reelfun1, reelfun, findout, reelfun, gei_state, 0, ROT0, "Grayhound Electronics", "Reel Fun (Version 7.01)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1987, findout, 0, findout, findout, gei_state, 0, ROT0, "Elettronolo", "Find Out (Version 4.04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1986, quiz, 0, findout, quiz, gei_state, bank8k, ROT0, "Elettronolo", "Quiz (Revision 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1986, suprpokr, 0, suprpokr, suprpokr, gei_state, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.19S)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1986, suprpokra, suprpokr, suprpokr, suprpokr, gei_state, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.15S)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1986, suprpokrb, suprpokr, suprpokr, suprpokr, gei_state, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1986, quizvid, 0, quizvid, quiz, gei_state, bank8k, ROT0, "bootleg", "Video Quiz", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1991, quiz211, 0, findout, quiz, gei_state, 0, ROT0, "Elettronolo", "Quiz (Revision 2.11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1986, reelfun, 0, findout, reelfun, gei_state, bank8k, ROT0, "Grayhound Electronics", "Reel Fun (Version 7.03)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, reelfun1, reelfun, findout, reelfun, gei_state, bank8k, ROT0, "Grayhound Electronics", "Reel Fun (Version 7.01)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1987, findout, 0, findout, findout, gei_state, bank8k, ROT0, "Elettronolo", "Find Out (Version 4.04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1992, sexappl, 0, findout, sexappl, gei_state, 0, ROT0, "Grayhound Electronics", "Sex Appeal (Version 6.02)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1986, suprpokr, 0, suprpokr, suprpokr, gei_state, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.19S)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, suprpokra, suprpokr, suprpokr, suprpokr, gei_state, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.15S)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, suprpokrb, suprpokr, suprpokr, suprpokr, gei_state, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1992, geimulti, 0, geimulti, geimulti, gei_state, geimulti, ROT0, "Grayhound Electronics", "GEI Multi Game", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1992, sprtauth, 0, sprtauth, sprtauth, gei_state, geimulti, ROT0, "Classic Games", "Sports Authority", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1987, bigjoke, 0, findout, bigjoke, gei_state, bank8k, ROT0, "Grayhound Electronics", "The Big Joke (Version 0.00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1991, quiz211, 0, findout, quiz, gei_state, bank8k, ROT0, "Elettronolo", "Quiz (Revision 2.11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1992, sexappl, 0, findout, sexappl, gei_state, bank8k, ROT0, "Grayhound Electronics", "Sex Appeal (Version 6.02)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1992, geimulti, 0, geimulti, geimulti, gei_state, geimulti, ROT0, "Grayhound Electronics", "GEI Multi Game", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1992, sprtauth, 0, sprtauth, sprtauth, gei_state, geimulti, ROT0, "Classic Games", "Sports Authority", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -692,7 +692,10 @@ MACHINE_CONFIG_END
|
||||
|
||||
ROM_START( ibmpcjr )
|
||||
ROM_REGION(0x10000,"bios", 0)
|
||||
ROM_LOAD("bios.rom", 0x0000, 0x10000,CRC(31e3a7aa) SHA1(1f5f7013f18c08ff50d7942e76c4fbd782412414))
|
||||
ROM_SYSTEM_BIOS( 0, "default", "Default" )
|
||||
ROMX_LOAD("bios.rom", 0x0000, 0x10000,CRC(31e3a7aa) SHA1(1f5f7013f18c08ff50d7942e76c4fbd782412414), ROM_BIOS(1))
|
||||
ROM_SYSTEM_BIOS( 1, "quiksilver", "Quicksilver" ) // Alternate bios to boot up faster (Synectics)
|
||||
ROMX_LOAD("quiksilv.rom", 0x0000, 0x10000, CRC(86aaa1c4) SHA1(b3d7e8ce5de17441891e0b71e5261ed01a169dc1), ROM_BIOS(2))
|
||||
|
||||
ROM_REGION(0x08100,"gfx1", 0)
|
||||
ROM_LOAD("cga.chr", 0x00000, 0x01000, CRC(42009069) SHA1(ed08559ce2d7f97f68b9f540bddad5b6295294dd)) // from an unknown clone cga card
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/i8085/i8085.h"
|
||||
//#include "bus/s100/s100.h"
|
||||
#include "machine/i8251.h"
|
||||
#include "machine/pit8253.h"
|
||||
#include "machine/terminal.h"
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user