mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
Merge pull request #612 from dlabi/master
Sord m5 driver update [Ales Dlabac] added support for RAM expansions EM-5,64KBI,64KBF,64KRX added m5p_brno mod Sord m5+1024kB ramdisk+cp/m 2 cart slots
This commit is contained in:
commit
a880c4fce7
143
hash/m5_cart.xml
143
hash/m5_cart.xml
@ -57,8 +57,8 @@ Learning Soft:
|
||||
|
||||
Programming Languages:
|
||||
|
||||
- FLAC
|
||||
- FLAC-II
|
||||
- FALC
|
||||
- FALC-II
|
||||
- BASIC-I
|
||||
- BASIC-G
|
||||
- BASIC-F
|
||||
@ -97,7 +97,7 @@ and why some of the dumps below have weird size?
|
||||
<info name="usage" value="Requires 36k RAM" />
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="tank battlaion (1980)(namco)(jp).bin" size="8192" crc="daa0d610" sha1="5867090fbe2584654dd2c2aaa215e69243f2f599" offset="00000" status="baddump" />
|
||||
<rom name="tank battalion (1980)(namco)(jp).bin" size="8192" crc="daa0d610" sha1="5867090fbe2584654dd2c2aaa215e69243f2f599" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -162,7 +162,7 @@ and why some of the dumps below have weird size?
|
||||
<info name="alt_title" value="スーパーコブラ" />
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="super cobra (1981)(konami)(jp).bin" size="8192" crc="55cbd90b" sha1="d29f1d1d88a0b6738b68cf8d2406fbf1f05ba39b" offset="00000" status="baddump" />
|
||||
<rom name="super cobra (1981)(konami)(jp).bin" size="8192" crc="55cbd90b" sha1="d29f1d1d88a0b6738b68cf8d2406fbf1f05ba39b" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -232,14 +232,14 @@ and why some of the dumps below have weird size?
|
||||
</software>
|
||||
|
||||
<software name="pooyana" cloneof="pooyan">
|
||||
<description>Pooyan (Alt)</description>
|
||||
<description>Pooyan (Alt)Modified version cooperating with 64kB RAM</description>
|
||||
<year>1982</year>
|
||||
<publisher>Konami</publisher>
|
||||
<info name="serial" value="11" />
|
||||
<info name="alt_title" value="プーヤン" />
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="pooyan (1982)(konami)(jp).bin" size="8192" crc="ded8b4f4" sha1="4c9e58e52d336b4c01a24e3ca2e62fb7757407fd" offset="00000" status="baddump" />
|
||||
<rom name="pooyan (1982)(konami)(jp).bin" size="8192" crc="ded8b4f4" sha1="4c9e58e52d336b4c01a24e3ca2e62fb7757407fd" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -252,7 +252,7 @@ and why some of the dumps below have weird size?
|
||||
<info name="alt_title" value="ヘビーボクシング" />
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="heavy boxing (1983)(takara)(jp).bin" size="8192" crc="19540dce" sha1="388838ed501bcc3a9fd18e32488f13a6ce6a0689" offset="00000" status="baddump" />
|
||||
<rom name="heavy boxing (1983)(takara)(jp).bin" size="8192" crc="19540dce" sha1="388838ed501bcc3a9fd18e32488f13a6ce6a0689" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -265,7 +265,7 @@ and why some of the dumps below have weird size?
|
||||
<info name="alt_title" value="リアルテニス" />
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="real tennis (1983)(takara)(jp).bin" size="8192" crc="ed80d6c9" sha1="03f3385b360c3573edab1fca53f82b4d6a4f8736" offset="00000" status="baddump" />
|
||||
<rom name="real tennis (1983)(takara)(jp).bin" size="8192" crc="ed80d6c9" sha1="03f3385b360c3573edab1fca53f82b4d6a4f8736" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -278,7 +278,7 @@ and why some of the dumps below have weird size?
|
||||
<info name="alt_title" value="ワードメイズ" />
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="word maze (19xx)(sord)(jp).bin" size="8192" crc="fda88e0d" sha1="a0fbe727bfca773d3cc193eb7a9c77e7b418b0a2" offset="00000" status="baddump" />
|
||||
<rom name="word maze (19xx)(sord)(jp).bin" size="8192" crc="fda88e0d" sha1="a0fbe727bfca773d3cc193eb7a9c77e7b418b0a2" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -344,7 +344,7 @@ and why some of the dumps below have weird size?
|
||||
<info name="alt_title" value="エスキモン" />
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="eskimon (1984)(takara)(jp).bin" size="8192" crc="96931021" sha1="115eee645e5213c16ad4a27bbeed5e2f3fa4be22" offset="00000" status="baddump" />
|
||||
<rom name="eskimon (1984)(takara)(jp).bin" size="8192" crc="96931021" sha1="115eee645e5213c16ad4a27bbeed5e2f3fa4be22" offset="00000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -357,7 +357,7 @@ and why some of the dumps below have weird size?
|
||||
<info name="alt_title" value="ファニーマウス" />
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="funny mouse (1983)(takara)(jp).bin" size="8192" crc="94145074" sha1="43c2a1a5959ab8057c7d149472512a0c7996c798" offset="00000" status="baddump" />
|
||||
<rom name="funny mouse (1983)(takara)(jp).bin" size="8192" crc="94145074" sha1="43c2a1a5959ab8057c7d149472512a0c7996c798" offset="00000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -394,7 +394,7 @@ and why some of the dumps below have weird size?
|
||||
<publisher>Takara</publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="4096">
|
||||
<rom name="dragon attack (1983)(takara)(jp).bin" size="4096" crc="5862d06c" sha1="f2707ad6dd564df01e7f81a21a00842e17cd49a4" offset="00000" status="baddump" />
|
||||
<rom name="dragon attack (1983)(takara)(jp).bin" size="4096" crc="5862d06c" sha1="f2707ad6dd564df01e7f81a21a00842e17cd49a4" offset="00000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -405,7 +405,7 @@ and why some of the dumps below have weird size?
|
||||
<publisher>Takara</publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="4096">
|
||||
<rom name="fruit search (1983)(takara)(jp).bin" size="4096" crc="333ac50f" sha1="a838fbf0bc4513d3b6bcc3165f1eac33ca27d6fa" offset="00000" status="baddump" />
|
||||
<rom name="fruit search (1983)(takara)(jp).bin" size="4096" crc="333ac50f" sha1="a838fbf0bc4513d3b6bcc3165f1eac33ca27d6fa" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -431,7 +431,7 @@ and why some of the dumps below have weird size?
|
||||
<publisher>Sord</publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="20480">
|
||||
<rom name="basic-f (198x)(sord)(jp).bin" size="20480" crc="47be051f" sha1="9942b8f05a441b5dee7ab31ec5b8a643f7e268b8" offset="00000" status="baddump" />
|
||||
<rom name="basic-f (198x)(sord)(jp).bin" size="20480" crc="47be051f" sha1="9942b8f05a441b5dee7ab31ec5b8a643f7e268b8" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -442,7 +442,7 @@ and why some of the dumps below have weird size?
|
||||
<publisher>Sord</publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="basic-g (198x)(sord)(jp).bin" size="16384" crc="107b5ddc" sha1="071fa84c7b10d9d7841c504564825609ebf66140" offset="00000" status="baddump" />
|
||||
<rom name="basic-g (198x)(sord)(jp).bin" size="16384" crc="107b5ddc" sha1="071fa84c7b10d9d7841c504564825609ebf66140" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -453,7 +453,7 @@ and why some of the dumps below have weird size?
|
||||
<publisher>Sord</publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="basic-i (198x)(sord)(jp).bin" size="8192" crc="9a98e6ce" sha1="d11f7623919ee593e275e9f00f8a4acf7aed3cf5" offset="00000" status="baddump" />
|
||||
<rom name="basic-i (198x)(sord)(jp).bin" size="8192" crc="9a98e6ce" sha1="d11f7623919ee593e275e9f00f8a4acf7aed3cf5" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -465,7 +465,7 @@ and why some of the dumps below have weird size?
|
||||
<info name="usage" value="Requires 36k RAM" />
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="falc (198x)(sord)(jp).bin" size="16384" crc="78037f97" sha1="4cd917388a626d38dd8b16834c2e610d0ba6d505" offset="00000" status="baddump" />
|
||||
<rom name="falc (198x)(sord)(jp).bin" size="16384" crc="78037f97" sha1="4cd917388a626d38dd8b16834c2e610d0ba6d505" offset="00000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -476,32 +476,32 @@ and why some of the dumps below have weird size?
|
||||
<publisher>Sord</publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="zzz-unk-pdesigne.bin" size="16384" crc="af987f7b" sha1="3a4cffc8d81a384f8bb2dfebf5e02cda1f0c7e21" offset="00000" status="baddump" />
|
||||
<rom name="zzz-unk-pdesigner.bin" size="16384" crc="af987f7b" sha1="3a4cffc8d81a384f8bb2dfebf5e02cda1f0c7e21" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Unidentified items -->
|
||||
<software name="basicw">
|
||||
<!-- is this legit?!? might it be Disk BASIC? -->
|
||||
<!-- Modified Basic-F with floppy support(WD2797B) -->
|
||||
<description>BASIC-W</description>
|
||||
<year>198?</year>
|
||||
<publisher>Sord?</publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="20480">
|
||||
<rom name="basic-w (198x)(sord)(jp).bin" size="20480" crc="2b1087cf" sha1="aa8d7c6c405e1360f074590abdc3d82df07cb564" offset="00000" status="baddump" />
|
||||
<rom name="basic-w (198x)(sord)(jp).bin" size="20480" crc="2b1087cf" sha1="aa8d7c6c405e1360f074590abdc3d82df07cb564" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="m5term">
|
||||
<!-- is this legit?!? might it be M-Editor? -->
|
||||
<!-- Terminal for serial interface -->
|
||||
<description>M5 Terminal</description>
|
||||
<year>19??</year>
|
||||
<publisher><unknown></publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="7168">
|
||||
<rom name="m5 terminal (19xx)(-).bin" size="7168" crc="2b73c483" sha1="53c093d4c3c5ba990bf8673963f9ff529e99a252" offset="00000" status="baddump" />
|
||||
<rom name="m5 terminal (19xx)(-).bin" size="7168" crc="2b73c483" sha1="53c093d4c3c5ba990bf8673963f9ff529e99a252" offset="00000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -512,7 +512,7 @@ and why some of the dumps below have weird size?
|
||||
<publisher><unknown></publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="4400">
|
||||
<rom name="zac banic (19xx)(-).bin" size="4400" crc="fd421eea" sha1="6c3d5c15817617508de5f994c0a980ff6c6ca303" offset="00000" status="baddump" />
|
||||
<rom name="zac banic (19xx)(-).bin" size="4400" crc="fd421eea" sha1="6c3d5c15817617508de5f994c0a980ff6c6ca303" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -536,7 +536,7 @@ and why some of the dumps below have weird size?
|
||||
<info name="usage" value="Requires 36k RAM" />
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="6176">
|
||||
<rom name="drops (1986)(spc)(jp).bin" size="6176" crc="fa321348" sha1="e9a44e12eed9d51cdb40ce4b6f1cb19a1ebed35d" offset="00000" status="baddump" />
|
||||
<rom name="drops (1986)(spc)(jp).bin" size="6176" crc="fa321348" sha1="e9a44e12eed9d51cdb40ce4b6f1cb19a1ebed35d" offset="00000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -548,7 +548,7 @@ and why some of the dumps below have weird size?
|
||||
<info name="usage" value="Requires 36k RAM" />
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="5920">
|
||||
<rom name="jumping jack (1986)(spc)(jp).bin" size="5920" crc="49030973" sha1="c8716276fe6c4b0808078086f505efce1137afc9" offset="00000" status="baddump" />
|
||||
<rom name="jumping jack (1986)(spc)(jp).bin" size="5920" crc="49030973" sha1="c8716276fe6c4b0808078086f505efce1137afc9" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -560,7 +560,7 @@ and why some of the dumps below have weird size?
|
||||
<info name="usage" value="Requires 36k RAM" />
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="12288">
|
||||
<rom name="masterchess (19xx)(-).bin" size="12288" crc="c10a6e96" sha1="5dd24aae17c3a293ae91ef5086c1c4f3e59263ed" offset="00000" status="baddump" />
|
||||
<rom name="masterchess (19xx)(-).bin" size="12288" crc="c10a6e96" sha1="5dd24aae17c3a293ae91ef5086c1c4f3e59263ed" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -572,7 +572,7 @@ and why some of the dumps below have weird size?
|
||||
<info name="usage" value="Requires 36k RAM" />
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="6392">
|
||||
<rom name="reversi (19xx)(games of skill).bin" size="6392" crc="ca2cd257" sha1="a048a1055d175ace09155e50da0387986e150f92" offset="00000" status="baddump" />
|
||||
<rom name="reversi (19xx)(games of skill).bin" size="6392" crc="ca2cd257" sha1="a048a1055d175ace09155e50da0387986e150f92" offset="00000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -580,11 +580,10 @@ and why some of the dumps below have weird size?
|
||||
<!-- these come from TOSEC: they do not work and it's not clear where they
|
||||
come from... they might be eventually removed -->
|
||||
|
||||
<!-- the first contains Czech text strings so it might be a real Czech cart,
|
||||
but we need more info -->
|
||||
<!-- Actualy this is wordmaze translated into Czech 1990 by ROS-->
|
||||
<software name="unk_maze" supported="no">
|
||||
<description>Unknown CSMAZE</description>
|
||||
<year>19??</year>
|
||||
<year>1983</year>
|
||||
<publisher><unknown></publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="8448">
|
||||
@ -606,4 +605,88 @@ but we need more info -->
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
|
||||
<!-- This is only Sord memory expansion -->
|
||||
<software name="em-5" supported="no">
|
||||
<description>EM-5 Expansion memory 32Kb</description>
|
||||
<year>198?</year>
|
||||
<publisher>Sord</publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<feature name="slot" value="ram"/>
|
||||
<dataarea name="ram" size="32768">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Homebrew memory modules -->
|
||||
|
||||
<software name="64kbi" supported="no">
|
||||
<description>EM-64 Expansion memory 64Kb</description>
|
||||
<year>198?</year>
|
||||
<publisher>unknown</publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<feature name="slot" value="ram"/>
|
||||
<dataarea name="ram" size="65536">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="64kbf" supported="no">
|
||||
<description>64Kbf Expansion memory 64Kb</description>
|
||||
<year>199?</year>
|
||||
<publisher>unknown</publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<feature name="slot" value="ram"/>
|
||||
<dataarea name="ram" size="65536">
|
||||
</dataarea>
|
||||
<dataarea name="rom" size="20480">
|
||||
<rom name="basic-f (198x)(sord)(jp).bin" size="20480" crc="47be051f" sha1="9942b8f05a441b5dee7ab31ec5b8a643f7e268b8" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="64krx" supported="no">
|
||||
<description>64Krx Expansion board 64Kb</description>
|
||||
<year>199?</year>
|
||||
<publisher>unknown</publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<feature name="slot" value="ram"/>
|
||||
<dataarea name="ram" size="65536">
|
||||
</dataarea>
|
||||
<dataarea name="rom" size="0x16000">
|
||||
<rom name="krx_rom2.rom" size="0x2000" crc="5AF18FBD" sha1="cd67d65fb51cdb3a47cc8350a878a77360a353c8" offset="0x0000"/>
|
||||
<rom name="basic-i (198x)(sord)(jp).bin" size="0x2000" crc="9a98e6ce" sha1="d11f7623919ee593e275e9f00f8a4acf7aed3cf5" offset="0x2000"/>
|
||||
<rom name="krx_rom4.rom" size="0x4000" crc="27FFB883" sha1="be930946e7cd5f0f3e803792906e087cce122703" offset="0x6000"/>
|
||||
<rom name="krx_rom5.rom" size="0x4000" crc="107B5DDC" sha1="071fa84c7b10d9d7841c504564825609ebf66140" offset="0xa000"/>
|
||||
<rom name="krx_rom6.rom" size="0x4000" crc="4D6E9C1A" sha1="d8bf96fc4016e245fd84d713fd988dd503a38d0b" offset="0xe000"/>
|
||||
<rom name="krx_rom7.rom" size="0x4000" crc="4EF7830A" sha1="9527236af9dd0db25498f4029793703ba8672af5" offset="0x12000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Brno mod ROMs -->
|
||||
|
||||
<software name="brno_boot" supported="no">
|
||||
<description>Boot for Brno ramdisk</description>
|
||||
<year>1989</year>
|
||||
<publisher><Pavel Brychta a spol.></publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="3456">
|
||||
<rom name="brno_boot.rom" size="3456" crc="60008729" sha1="FB26E2AE9F74B0AE0D723B417A038A8EF3D72782" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="brno_win" supported="no">
|
||||
<description>Brno windows boot</description>
|
||||
<year>1989</year>
|
||||
<publisher><Ladislav Novak></publisher>
|
||||
<part name="cart" interface="m5_cart">
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="brno_win.rom" size="8192" crc="f4cfb2ee" sha1="23f41d2d9ac915545409dd0163f3dc298f04eea2" offset="00000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
||||
|
16
hash/m5_flop.xml
Normal file
16
hash/m5_flop.xml
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
<softwarelist name="m5_flop" description="Sord m5 diskettes">
|
||||
|
||||
<software name="bb">
|
||||
<description>Booting diskette for CP/M.[Brno mod]</description>
|
||||
<year>1989</year>
|
||||
<publisher></publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="860416">
|
||||
<rom name="brno_boot_cpm.dsk" size="860416" crc="dabb3256" sha1="61a5d638f6166e09d3bbbb12b653f6bf3fb2393f" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
63
src/devices/bus/m5/rom.cpp
Normal file
63
src/devices/bus/m5/rom.cpp
Normal file
@ -0,0 +1,63 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
M5 cart emulation
|
||||
|
||||
|
||||
***********************************************************************************************************/
|
||||
|
||||
|
||||
#include "emu.h"
|
||||
#include "rom.h"
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// m5_rom_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
const device_type M5_ROM_STD = &device_creator<m5_rom_device>;
|
||||
const device_type M5_ROM_RAM = &device_creator<m5_ram_device>;
|
||||
|
||||
|
||||
m5_rom_device::m5_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
|
||||
: device_t(mconfig, type, name, tag, owner, clock, shortname, source),
|
||||
device_m5_cart_interface( mconfig, *this )
|
||||
{
|
||||
}
|
||||
|
||||
m5_rom_device::m5_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, M5_ROM_STD, "M5 Standard ROM Carts", tag, owner, clock, "m5_rom", __FILE__),
|
||||
device_m5_cart_interface( mconfig, *this )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
m5_ram_device::m5_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: m5_rom_device(mconfig, M5_ROM_RAM, "M5 Expansion memory cart", tag, owner, clock, "m5_ram", __FILE__)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
mapper specific handlers
|
||||
-------------------------------------------------*/
|
||||
|
||||
READ8_MEMBER(m5_rom_device::read_rom)
|
||||
{
|
||||
if (offset < m_rom_size)
|
||||
return m_rom[offset];
|
||||
else
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
READ8_MEMBER(m5_ram_device::read_ram)
|
||||
{
|
||||
return m_ram[offset];
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(m5_ram_device::write_ram)
|
||||
{
|
||||
m_ram[offset] = data;
|
||||
}
|
50
src/devices/bus/m5/rom.h
Normal file
50
src/devices/bus/m5/rom.h
Normal file
@ -0,0 +1,50 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Fabio Priuli
|
||||
#ifndef __M5_ROM_H
|
||||
#define __M5_ROM_H
|
||||
|
||||
#include "slot.h"
|
||||
|
||||
|
||||
// ======================> m5_rom_device
|
||||
|
||||
class m5_rom_device : public device_t,
|
||||
public device_m5_cart_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
m5_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
|
||||
m5_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_start() {}
|
||||
virtual void device_reset() {}
|
||||
|
||||
// reading and writing
|
||||
virtual DECLARE_READ8_MEMBER(read_rom);
|
||||
};
|
||||
|
||||
// ======================> m5_ram_device
|
||||
|
||||
class m5_ram_device : public m5_rom_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
m5_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_start() {}
|
||||
virtual void device_reset() {}
|
||||
|
||||
// reading and writing
|
||||
virtual DECLARE_READ8_MEMBER(read_ram);
|
||||
virtual DECLARE_WRITE8_MEMBER(write_ram);
|
||||
};
|
||||
|
||||
|
||||
// device type definition
|
||||
extern const device_type M5_ROM_STD;
|
||||
extern const device_type M5_ROM_RAM;
|
||||
|
||||
|
||||
#endif
|
275
src/devices/bus/m5/slot.cpp
Normal file
275
src/devices/bus/m5/slot.cpp
Normal file
@ -0,0 +1,275 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
M5 cart emulation
|
||||
(through slot devices)
|
||||
|
||||
***********************************************************************************************************/
|
||||
|
||||
|
||||
#include "emu.h"
|
||||
#include "slot.h"
|
||||
|
||||
//**************************************************************************
|
||||
// GLOBAL VARIABLES
|
||||
//**************************************************************************
|
||||
|
||||
const device_type M5_CART_SLOT = &device_creator<m5_cart_slot_device>;
|
||||
|
||||
//**************************************************************************
|
||||
// M5 Cartridges Interface
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_m5_cart_interface - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
device_m5_cart_interface::device_m5_cart_interface(const machine_config &mconfig, device_t &device)
|
||||
: device_slot_card_interface(mconfig, device),
|
||||
m_rom(NULL),
|
||||
m_rom_size(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ~device_m5_cart_interface - destructor
|
||||
//-------------------------------------------------
|
||||
|
||||
device_m5_cart_interface::~device_m5_cart_interface()
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// rom_alloc - alloc the space for the cart
|
||||
//-------------------------------------------------
|
||||
|
||||
void device_m5_cart_interface::rom_alloc(UINT32 size, const char *tag)
|
||||
{
|
||||
if (m_rom == NULL)
|
||||
{
|
||||
m_rom = device().machine().memory().region_alloc(std::string(tag).append(M5SLOT_ROM_REGION_TAG).c_str(), size, 1, ENDIANNESS_LITTLE)->base();
|
||||
m_rom_size = size;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ram_alloc - alloc the space for the ram
|
||||
//-------------------------------------------------
|
||||
|
||||
void device_m5_cart_interface::ram_alloc(UINT32 size)
|
||||
{
|
||||
m_ram.resize(size);
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// LIVE DEVICE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// m5_cart_slot_device - constructor
|
||||
//-------------------------------------------------
|
||||
m5_cart_slot_device::m5_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
device_t(mconfig, M5_CART_SLOT, "M5 Cartridge Slot", tag, owner, clock, "m5_cart_slot", __FILE__),
|
||||
device_image_interface(mconfig, *this),
|
||||
device_slot_interface(mconfig, *this),
|
||||
m_type(M5_STD), m_cart(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// m5_cart_slot_device - destructor
|
||||
//-------------------------------------------------
|
||||
|
||||
m5_cart_slot_device::~m5_cart_slot_device()
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void m5_cart_slot_device::device_start()
|
||||
{
|
||||
m_cart = dynamic_cast<device_m5_cart_interface *>(get_card_device());
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_config_complete - perform any
|
||||
// operations now that the configuration is
|
||||
// complete
|
||||
//-------------------------------------------------
|
||||
|
||||
void m5_cart_slot_device::device_config_complete()
|
||||
{
|
||||
// set brief and instance name
|
||||
update_names();
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// M5 PCB
|
||||
//-------------------------------------------------
|
||||
|
||||
struct m5_slot
|
||||
{
|
||||
int pcb_id;
|
||||
const char *slot_option;
|
||||
};
|
||||
|
||||
// Here, we take the feature attribute from .xml (i.e. the PCB name) and we assign a unique ID to it
|
||||
static const m5_slot slot_list[] =
|
||||
{
|
||||
{EM_5,"em-5"},
|
||||
{MEM64KBI,"64kbi"},
|
||||
{MEM64KBF,"64kbf"},
|
||||
{MEM64KRX,"64krx"}
|
||||
};
|
||||
|
||||
static int m5_get_pcb_id(const char *slot)
|
||||
{
|
||||
for (int i = 0; i < ARRAY_LENGTH(slot_list); i++)
|
||||
{
|
||||
if (!core_stricmp(slot_list[i].slot_option, slot))
|
||||
return slot_list[i].pcb_id;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const char *m5_get_slot(int type)
|
||||
{
|
||||
for (int i = 0; i < ARRAY_LENGTH(slot_list); i++)
|
||||
{
|
||||
if (slot_list[i].pcb_id == type)
|
||||
return slot_list[i].slot_option;
|
||||
}
|
||||
|
||||
return "std";
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
call load
|
||||
-------------------------------------------------*/
|
||||
|
||||
bool m5_cart_slot_device::call_load()
|
||||
{
|
||||
if (m_cart)
|
||||
{
|
||||
m_type=M5_STD;
|
||||
|
||||
if (software_entry() != NULL)
|
||||
{
|
||||
const char *pcb_name = get_feature("slot");
|
||||
//software_info *name=m_software_info_ptr;
|
||||
if (pcb_name) //is it ram cart?
|
||||
m_type = m5_get_pcb_id(m_full_software_name.c_str());
|
||||
else
|
||||
m_type=M5_STD; //standard cart(no feature line in xml)
|
||||
}
|
||||
|
||||
if (m_type == M5_STD || m_type>2) //carts with roms
|
||||
{
|
||||
|
||||
UINT32 size = (software_entry() == NULL) ? length() : get_software_region_length("rom");
|
||||
|
||||
if (size > 0x5000 && m_type == M5_STD)
|
||||
{
|
||||
seterror(IMAGE_ERROR_UNSPECIFIED, "Image extends beyond the expected size for an M5 cart");
|
||||
return IMAGE_INIT_FAIL;
|
||||
}
|
||||
|
||||
m_cart->rom_alloc(size, tag());
|
||||
|
||||
if (software_entry() == NULL)
|
||||
fread(m_cart->get_rom_base(), size);
|
||||
else
|
||||
memcpy(m_cart->get_rom_base(), get_software_region("rom"), size);
|
||||
|
||||
}
|
||||
if (!M5_STD)
|
||||
if (get_software_region("ram"))
|
||||
m_cart->ram_alloc(get_software_region_length("ram"));
|
||||
|
||||
|
||||
//printf("Type: %s\n", m5_get_slot(m_type));
|
||||
}
|
||||
|
||||
return IMAGE_INIT_PASS;
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
call softlist load
|
||||
-------------------------------------------------*/
|
||||
|
||||
bool m5_cart_slot_device::call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry)
|
||||
{
|
||||
load_software_part_region(*this, swlist, swname, start_entry);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
get default card software
|
||||
-------------------------------------------------*/
|
||||
|
||||
void m5_cart_slot_device::get_default_card_software(std::string &result)
|
||||
{
|
||||
if (open_image_file(mconfig().options()))
|
||||
{
|
||||
const char *slot_string = "std";
|
||||
UINT32 size = core_fsize(m_file);
|
||||
int type = M5_STD;
|
||||
|
||||
|
||||
slot_string = m5_get_slot(type);
|
||||
|
||||
//printf("type: %s\n", slot_string);
|
||||
clear();
|
||||
|
||||
result.assign(slot_string);
|
||||
return;
|
||||
}
|
||||
|
||||
software_get_default_slot(result, "std");
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
read
|
||||
-------------------------------------------------*/
|
||||
|
||||
READ8_MEMBER(m5_cart_slot_device::read_rom)
|
||||
{
|
||||
if (m_cart)
|
||||
return m_cart->read_rom(space, offset);
|
||||
else
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
read
|
||||
-------------------------------------------------*/
|
||||
|
||||
READ8_MEMBER(m5_cart_slot_device::read_ram)
|
||||
{
|
||||
if (m_cart)
|
||||
return m_cart->read_ram(space, offset);
|
||||
else
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
write
|
||||
-------------------------------------------------*/
|
||||
|
||||
WRITE8_MEMBER(m5_cart_slot_device::write_ram)
|
||||
{
|
||||
if (m_cart)
|
||||
m_cart->write_ram(space, offset, data);
|
||||
}
|
119
src/devices/bus/m5/slot.h
Normal file
119
src/devices/bus/m5/slot.h
Normal file
@ -0,0 +1,119 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Fabio Priuli
|
||||
#ifndef __M5_SLOT_H
|
||||
#define __M5_SLOT_H
|
||||
|
||||
/***************************************************************************
|
||||
TYPE DEFINITIONS
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
/* PCB */
|
||||
enum
|
||||
{
|
||||
EM_5 = 1,
|
||||
MEM64KBI,
|
||||
MEM64KBF,
|
||||
MEM64KRX
|
||||
};
|
||||
|
||||
|
||||
#define M5_STD 0
|
||||
|
||||
|
||||
// ======================> device_m5_cart_interface
|
||||
|
||||
class device_m5_cart_interface : public device_slot_card_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
device_m5_cart_interface(const machine_config &mconfig, device_t &device);
|
||||
virtual ~device_m5_cart_interface();
|
||||
|
||||
// reading and writing
|
||||
virtual DECLARE_READ8_MEMBER(read_rom) { return 0xff; }
|
||||
virtual DECLARE_READ8_MEMBER(read_ram) { return 0xff; }
|
||||
virtual DECLARE_WRITE8_MEMBER(write_ram) {}
|
||||
|
||||
void rom_alloc(UINT32 size, const char *tag);
|
||||
void ram_alloc(UINT32 size);
|
||||
UINT8* get_rom_base() { return m_rom; }
|
||||
UINT8* get_ram_base() { return &m_ram[0]; }
|
||||
UINT32 get_rom_size() { return m_rom_size; }
|
||||
UINT32 get_ram_size() { return m_ram.size(); }
|
||||
|
||||
void save_ram() { device().save_item(NAME(m_ram)); }
|
||||
|
||||
protected:
|
||||
// internal state
|
||||
UINT8 *m_rom;
|
||||
UINT32 m_rom_size;
|
||||
dynamic_buffer m_ram;
|
||||
};
|
||||
|
||||
|
||||
// ======================> m5_cart_slot_device
|
||||
|
||||
class m5_cart_slot_device : public device_t,
|
||||
public device_image_interface,
|
||||
public device_slot_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
m5_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
virtual ~m5_cart_slot_device();
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_start();
|
||||
virtual void device_config_complete();
|
||||
|
||||
// image-level overrides
|
||||
virtual bool call_load();
|
||||
virtual void call_unload() {}
|
||||
virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry);
|
||||
|
||||
int get_type() { return m_type; }
|
||||
|
||||
void save_ram() { if (m_cart && m_cart->get_ram_size()) m_cart->save_ram(); }
|
||||
|
||||
virtual iodevice_t image_type() const { return IO_CARTSLOT; }
|
||||
virtual bool is_readable() const { return 1; }
|
||||
virtual bool is_writeable() const { return 0; }
|
||||
virtual bool is_creatable() const { return 0; }
|
||||
virtual bool must_be_loaded() const { return 0; }
|
||||
virtual bool is_reset_on_load() const { return 1; }
|
||||
virtual const option_guide *create_option_guide() const { return NULL; }
|
||||
virtual const char *image_interface() const { return "m5_cart"; }
|
||||
virtual const char *file_extensions() const { return "bin,rom"; }
|
||||
|
||||
// slot interface overrides
|
||||
virtual void get_default_card_software(std::string &result);
|
||||
|
||||
// reading and writing
|
||||
virtual DECLARE_READ8_MEMBER(read_rom);
|
||||
virtual DECLARE_READ8_MEMBER(read_ram);
|
||||
virtual DECLARE_WRITE8_MEMBER(write_ram);
|
||||
virtual DECLARE_SETOFFSET_MEMBER (read_off);
|
||||
|
||||
protected:
|
||||
|
||||
int m_type;
|
||||
device_m5_cart_interface* m_cart;
|
||||
};
|
||||
|
||||
|
||||
|
||||
// device type definition
|
||||
extern const device_type M5_CART_SLOT;
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
DEVICE CONFIGURATION MACROS
|
||||
***************************************************************************/
|
||||
|
||||
#define M5SLOT_ROM_REGION_TAG ":cart:rom"
|
||||
|
||||
#define MCFG_M5_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \
|
||||
MCFG_DEVICE_ADD(_tag, M5_CART_SLOT, 0) \
|
||||
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,12 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Curt Coder
|
||||
// copyright-holders:Curt Coder, Ales Dlabac
|
||||
#ifndef __M5__
|
||||
#define __M5__
|
||||
|
||||
|
||||
#include "machine/z80ctc.h"
|
||||
#include "imagedev/snapquik.h"
|
||||
|
||||
|
||||
#define Z80_TAG "ic17"
|
||||
#define Z80CTC_TAG "ic19"
|
||||
@ -15,6 +18,10 @@
|
||||
#define UPD765_TAG "upd765"
|
||||
#define CENTRONICS_TAG "centronics"
|
||||
#define SCREEN_TAG "screen"
|
||||
//brno mod
|
||||
#define WD2797_TAG "5f"
|
||||
#define RAMDISK "ramdisk"
|
||||
|
||||
|
||||
class m5_state : public driver_device
|
||||
{
|
||||
@ -22,36 +29,40 @@ public:
|
||||
m5_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, Z80_TAG),
|
||||
m_fd5cpu(*this, Z80_FD5_TAG),
|
||||
m_ctc(*this, Z80CTC_TAG),
|
||||
m_fd5cpu(*this, Z80_FD5_TAG),
|
||||
m_ppi(*this, I8255A_TAG),
|
||||
m_fdc(*this, UPD765_TAG),
|
||||
m_floppy0(*this, UPD765_TAG ":0:525dd"),
|
||||
m_cassette(*this, "cassette"),
|
||||
m_cart(*this, "cartslot"),
|
||||
m_cart1(*this, "cartslot1"),
|
||||
m_cart2(*this, "cartslot2"),
|
||||
m_centronics(*this, CENTRONICS_TAG),
|
||||
m_ram(*this, RAM_TAG),
|
||||
m_floppy0(*this, UPD765_TAG ":0:525dd"),
|
||||
m_reset(*this, "RESET")
|
||||
m_reset(*this, "RESET"),
|
||||
m_DIPS(*this, "DIPS")
|
||||
{ }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_fd5cpu;
|
||||
required_device<z80ctc_device> m_ctc;
|
||||
required_device<i8255_device> m_ppi;
|
||||
required_device<upd765a_device> m_fdc;
|
||||
//I've changed following devices to optional since we have to remove them in BRNO mod (I don't know better solution)
|
||||
optional_device<cpu_device> m_fd5cpu;
|
||||
optional_device<i8255_device> m_ppi;
|
||||
optional_device<upd765a_device> m_fdc;
|
||||
optional_device<floppy_image_device> m_floppy0;
|
||||
required_device<cassette_image_device> m_cassette;
|
||||
required_device<generic_slot_device> m_cart;
|
||||
optional_device<m5_cart_slot_device> m_cart1;
|
||||
optional_device<m5_cart_slot_device> m_cart2;
|
||||
required_device<centronics_device> m_centronics;
|
||||
required_device<ram_device> m_ram;
|
||||
required_device<floppy_image_device> m_floppy0;
|
||||
required_ioport m_reset;
|
||||
optional_ioport m_DIPS;
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void machine_start();
|
||||
virtual void machine_reset();
|
||||
|
||||
DECLARE_READ8_MEMBER( sts_r );
|
||||
DECLARE_WRITE8_MEMBER( com_w );
|
||||
|
||||
DECLARE_READ8_MEMBER( ppi_pa_r );
|
||||
DECLARE_WRITE8_MEMBER( ppi_pa_w );
|
||||
DECLARE_WRITE8_MEMBER( ppi_pb_w );
|
||||
@ -65,23 +76,90 @@ public:
|
||||
DECLARE_WRITE8_MEMBER( fd5_ctrl_w );
|
||||
DECLARE_WRITE8_MEMBER( fd5_tc_w );
|
||||
|
||||
DECLARE_FLOPPY_FORMATS( floppy_formats );
|
||||
|
||||
// video state
|
||||
// const TMS9928a_interface *m_vdp_intf;
|
||||
|
||||
int m_centronics_busy;
|
||||
DECLARE_WRITE_LINE_MEMBER(write_centronics_busy);
|
||||
|
||||
// floppy state
|
||||
DECLARE_DRIVER_INIT(pal);
|
||||
DECLARE_DRIVER_INIT(ntsc);
|
||||
DECLARE_WRITE_LINE_MEMBER(sordm5_video_interrupt_callback);
|
||||
|
||||
// memory
|
||||
DECLARE_READ8_MEMBER( mem64KBI_r );
|
||||
DECLARE_WRITE8_MEMBER( mem64KBI_w );
|
||||
DECLARE_WRITE8_MEMBER( mem64KBF_w );
|
||||
DECLARE_WRITE8_MEMBER( mem64KRX_w );
|
||||
UINT8 m_ram_mode;
|
||||
UINT8 m_ram_type;
|
||||
memory_region *m_cart_rom;
|
||||
m5_cart_slot_device *m_cart_ram, *m_cart;
|
||||
|
||||
// floppy state for fd5
|
||||
UINT8 m_fd5_data;
|
||||
UINT8 m_fd5_com;
|
||||
int m_intra;
|
||||
int m_ibfa;
|
||||
int m_obfa;
|
||||
DECLARE_DRIVER_INIT(pal);
|
||||
DECLARE_DRIVER_INIT(ntsc);
|
||||
DECLARE_WRITE_LINE_MEMBER(sordm5_video_interrupt_callback);
|
||||
|
||||
};
|
||||
|
||||
|
||||
class brno_state : public m5_state
|
||||
{
|
||||
public:
|
||||
brno_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: m5_state(mconfig, type, tag),
|
||||
|
||||
m_fdc(*this, WD2797_TAG),
|
||||
m_floppy0(*this, WD2797_TAG":0"),
|
||||
m_floppy1(*this, WD2797_TAG":1")
|
||||
// m_ramdisk(*this, RAMDISK)
|
||||
{ }
|
||||
|
||||
|
||||
required_device<wd2797_t> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
optional_device<floppy_connector> m_floppy1;
|
||||
floppy_image_device *m_floppy;
|
||||
|
||||
|
||||
|
||||
DECLARE_READ8_MEMBER( mmu_r );
|
||||
DECLARE_WRITE8_MEMBER( mmu_w );
|
||||
DECLARE_READ8_MEMBER( ramsel_r );
|
||||
DECLARE_WRITE8_MEMBER(ramsel_w );
|
||||
DECLARE_READ8_MEMBER( romsel_r );
|
||||
DECLARE_WRITE8_MEMBER(romsel_w );
|
||||
|
||||
DECLARE_READ8_MEMBER( fd_r );
|
||||
DECLARE_WRITE8_MEMBER( fd_w );
|
||||
DECLARE_FLOPPY_FORMATS( floppy_formats );
|
||||
|
||||
|
||||
// DECLARE_WRITE_LINE_MEMBER( wd2797_intrq_w );
|
||||
// DECLARE_WRITE_LINE_MEMBER( wd2797_drq_w );
|
||||
// DECLARE_WRITE_LINE_MEMBER( wd2797_index_callback);
|
||||
|
||||
//required_device<ram_device> m_ramdisk;
|
||||
DECLARE_DRIVER_INIT(brno);
|
||||
DECLARE_SNAPSHOT_LOAD_MEMBER( brno );
|
||||
// DECLARE_DEVICE_IMAGE_LOAD_MEMBER(m5_cart);
|
||||
|
||||
|
||||
virtual void machine_start();
|
||||
virtual void machine_reset();
|
||||
|
||||
UINT8 m_rambank; // bank #
|
||||
UINT8 m_ramcpu; //where Ramdisk bank is mapped
|
||||
bool m_romen;
|
||||
bool m_ramen;
|
||||
|
||||
|
||||
UINT8 m_rammap[16]; // memory map
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -1153,6 +1153,7 @@ jupace // Jupiter Ace
|
||||
// Sord
|
||||
m5
|
||||
m5p
|
||||
m5p_brno
|
||||
|
||||
// APF Electronics Inc.
|
||||
apfm1000
|
||||
|
Loading…
Reference in New Issue
Block a user