bus/msx_cart, msx1_cart.xml: Added external floppy and Kanji cartridges. (#10549)

msx1_flop.xml:
- Moved msxdostb to msx1_flop_525.xml.

msx1_cart.xml:
- Added Kanji ROM to Japanese MSX-Write.
- Added Toshiba Kanji ROM
- Added Konami Word Processor with Kanji cartridge.
- Added several external floppy controllers and drives.

New working software list additions (msx1_cart.xml)
----------------------------------
CDX-2 + 5.25" DSDD floppy drive (Brazil) [openMSX]
DDX + 5.25" DSDD floppy drive (Brazil, v3.0d) [openMSX]
DDX + 5.25" DSDD floppy drive (Brazil, v3.0) [openMSX]
DPF-550 Controller + 5.25" SSDD floppy drive (Argentina) [openMSX]
DPF-550 Controller + 5.25" SSDD floppy drive (Belgium/Netherlands) [openMSX]
EC-700 Word Processor (EC-701 + EC-702) (Japan) [openMSX]
FD-051 Controller + FD-05 3.5" DSDD floppy drive [openMSX]
HB-3600 Controller + HB-6000 5.25" DSDD floppy drive (Brazil) [openMSX]
HBD-20W (Floppy controller + 3.5" DSDD floppy drive) (Japan) [openMSX]
HBD-50 (Floppy controller + 3.5" SSDD floppy drive, SNYJX121) [openMSX]
HBD-F1 (Floppy controller + 3.5" DSDD floppy drive) (Japan) [openMSX]
HX-F101PE Controller + 3.5" SSDD floppy drive (Europe) [openMSX]
MFD-001 (Controller + enclosure with 1 5.25" DSDD floppy drive) (Europe) [openMSX]
ML-30DC Controller + ML-30FD enclosure with 1 3.5" DSDD floppy drive (Japan) [openMSX]
NMS-1200 Floppy controller + 3.5" DSDD floppy drive (Europe, v1.06) [openMSX]
NMS-1200 Floppy controller + 3.5" DSDD floppy drive (Europe, v1.04) [openMSX]
Toshiba Kanji ROM Cartridge HX-M200 (Japan) [openMSX]

New software marked as NOT_WORKING (msx1_cart.xml)
----------------------------------
FD-03 Controller + 3.5" DSDD floppy drive v3.8 [openMSX]
FD-03 Controller + 3.5" DSDD floppy drive v3.5 [openMSX]
This commit is contained in:
wilbertpol 2022-11-22 18:46:13 +00:00 committed by GitHub
parent 1b3fa402e6
commit 3fb466a1aa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 1492 additions and 450 deletions

View File

@ -674,7 +674,6 @@ Xyzolog - Electric Software
<year>1986</year>
<publisher>ASCII</publisher>
<info name="alt_title" value="日本語MSX-Write" />
<info name="usage" value="To display texts this needs to run on a machine with kanji support or have an external kanji cartridge mounted." />
<part name="cart" interface="msx_cart">
<feature name="pcb" value="MSX WRITE 900178B" />
<feature name="slot" value="msxwrite" />
@ -682,6 +681,9 @@ Xyzolog - Electric Software
<dataarea name="rom" size="524288">
<rom name="225 aa 8716 zoo" size="524288" crc="ef02e4f3" sha1="4180544158a57c99162269e33e4f2c77c9fce84e" offset="0" />
</dataarea>
<dataarea name="kanji" size="131072">
<rom name="kanjifont.rom" size="131072" crc="3b8fdf44" sha1="fc71561a64f73da0e0043d256f67fd18d7fc3a7f" />
</dataarea>
</part>
</software>
@ -16231,12 +16233,321 @@ legacy FM implementations cannot find it.
</software>
<!-- Kanji cartridges -->
<software name="hxm200">
<description>Toshiba Kanji ROM Cartridge HX-M200 (Japan)</description>
<year>1984</year>
<publisher>Toshiba</publisher>
<info name="alt_title" value="東芝漢字ROMカートリッジ" />
<part name="cart" interface="msx_cart">
<feature name="slot" value="kanji" />
<dataarea name="kanji" size="131072">
<rom name="kanjifont.rom" size="131072" crc="d23d4d2d" sha1="db03211b7db46899df41db2b1dfbec972109a967" />
</dataarea>
</part>
</software>
<software name="ec700">
<description>EC-700 Word Processor (EC-701 + EC-702) (Japan)</description>
<year>1985</year>
<publisher>Konami</publisher>
<info name="alt_title" value="日本語ワードプロセッサ" />
<!-- Word processor -->
<part name="ec701" interface="msx_cart">
<feature name="slot" value="ec701" />
<dataarea name="rom" size="524288">
<rom name="ec701_program.ic1" size="32768" crc="1caec27b" sha1="4cc5be7536c11a89b5ec736a62a2b832361cd23d" />
<!-- should be 3 roms at ic2, ic3, and ic4 -->
<rom name="ec701_dictionary.rom" size="393216" crc="b3582eb0" sha1="661c7261dc261e9ef2106755946f95d8b9b699b4" status="baddump" offset="0x20000" />
</dataarea>
</part>
<!-- Kanji ROM -->
<part name="ec702" interface="msx_cart">
<feature name="slot" value="kanji" />
<dataarea name="kanji" size="131072">
<rom name="kanjifont.rom" size="131072" crc="3b8fdf44" sha1="fc71561a64f73da0e0043d256f67fd18d7fc3a7f" />
</dataarea>
</part>
</software>
<!-- Devices -->
<!-- TODO possibility to add a second drive -->
<software name="avdpf550">
<description>DPF-550 Controller + 5.25" SSDD floppy drive (Belgium/Netherlands)</description>
<year>1985</year>
<publisher>AVT</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_avdpf550" />
<dataarea name="rom" size="0x4000">
<rom name="avt_dpf-550_disk.rom" size="0x4000" crc="938f51b0" sha1="633ad62599361bbb8ba6803cdcfaa14c54521c43" />
</dataarea>
</part>
</software>
<!-- Was sold alone or in combination with a 5.25" drive (unknown if single or double sided). -->
<!-- TODO: Supports up to 2 single or double sided 5.25" or 3.5" floppy drives -->
<software name="cdx2">
<description>CDX-2 + 5.25" DSDD floppy drive (Brazil)</description>
<year>19??</year>
<publisher>Microsol</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_cdx2" />
<dataarea name="rom" size="0x4000">
<rom name="cdx-2.rom" size="0x4000" crc="7d55811a" sha1="ffc1bafca38d20ed6e9a27c90c6ab089a8482d89" />
</dataarea>
</part>
</software>
<!-- Was sold alone or in combination with a 5.25" double sided drive. -->
<!-- TODO: Supports up to 2 single or double sided 5.25" or 3.5" floppy drives -->
<software name="ddx30d">
<description>DDX + 5.25" DSDD floppy drive (Brazil, v3.0d)</description>
<year>19??</year>
<publisher>Digital Design</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_ddx3" />
<dataarea name="rom" size="0x4000">
<rom name="interface_405033.u2" size="0x4000" crc="2a623a9a" sha1="a363015286341ffabcdc38ef0d890897ed51e322" />
</dataarea>
</part>
</software>
<!-- Was sold alone or in combination with a 5.25" double sided drive. -->
<!-- TODO: Supports up to 2 single or double sided 5.25" or 3.5" floppy drives -->
<software name="ddx30" cloneof="ddx30d">
<description>DDX + 5.25" DSDD floppy drive (Brazil, v3.0)</description>
<year>19??</year>
<publisher>Digital Design</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_ddx3" />
<dataarea name="rom" size="0x4000">
<rom name="ddx30.rom" size="0x4000" crc="337b11b7" sha1="124126cee840e43c7668c11c2bec2f34b3d00c68" />
</dataarea>
</part>
</software>
<!-- TODO possibility to add a second drive -->
<software name="fd03_38" supported="no">
<description>FD-03 Controller + 3.5" DSDD floppy drive v3.8</description>
<year>1986</year>
<publisher>Yamaha</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_fd03" />
<dataarea name="rom" size="0x8000">
<!-- Dump contains contents of the memory mapped FDC registers starting at 3fc0 -->
<rom name="fd03_38.bin" size="0x8000" crc="f691d69b" sha1="ea3c1d20310e7fbaacfdede839be0118ecea015e" status="baddump" />
</dataarea>
</part>
</software>
<!-- TODO possibility to add a second drive -->
<software name="fd03_35" cloneof="fd03_38" supported="no">
<description>FD-03 Controller + 3.5" DSDD floppy drive v3.5</description>
<year>1986</year>
<publisher>Yamaha</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_fd03" />
<dataarea name="rom" size="0x4000">
<!-- Dump contains contents of the memory mapped FDC registers starting at 3fc0 and contains the text "I love Mariel\nMemole M" -->
<rom name="fd03_35.bin" size="0x4000" crc="ec1aca6e" sha1="5a5cc35ffb7f78ef440df9548c7360ab56719c5a" status="baddump" />
</dataarea>
</part>
</software>
<!-- TODO possibility to add a second drive -->
<software name="fd051">
<description>FD-051 Controller + FD-05 3.5" DSDD floppy drive</description>
<year>1985</year>
<publisher>Yamaha</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_fd051" />
<dataarea name="rom" size="0x4000">
<rom name="fd051.bin" size="0x4000" crc="ab94a273" sha1="4b08a057e5863ade179dcf8bc9377e90940e6d61" />
</dataarea>
<!-- The floppy drive was bundled with a blank 2DD disk. -->
</part>
</software>
<software name="fsfd1">
<description>FS-FD1 (Floppy controller + 3.5" DSDD floppy drive) (Japan)</description>
<year>1987</year>
<publisher>Panasonic</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_fsfd1" />
<dataarea name="rom" size="0x4000">
<!-- hashes not verified -->
<rom name="fs_fd1.rom" size="0x4000" crc="4c9b8214" sha1="8e3f6f08309f082a82be8298a66c9b90f2d34ad4" offset="0" />
</dataarea>
</part>
<!-- TODO: The floppy drive was bundled with a copy of MSX-DOS, undumped -->
</software>
<software name="fsfd1a">
<description>FS-FD1A (3.5" DSDD floppy drive with integrated controller) (Japan)</description>
<year>1987</year>
<publisher>Panasonic</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_fsfd1a" />
<dataarea name="rom" size="0x4000">
<!-- hashes not verified -->
<rom name="fs_fd1a.rom" size="0x4000" crc="4b673b29" sha1="74ead27eec8d876144c2a015c0260d6db2117d72" offset="0" />
</dataarea>
</part>
<!-- TODO: The floppy drive was bundled with a copy of MSX-DOS, undumped -->
</software>
<!-- TODO possibility to add a second drive -->
<software name="fscf351">
<description>FS-CF351 Controller + FS-FD351 DSDD 3.5" Floppy drive (Japan)</description>
<year>1985</year>
<publisher>National</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_fscf351" />
<dataarea name="rom" size="0x4000">
<!-- hashes not verified -->
<rom name="fs_cf351.rom" size="0x4000" crc="006fba38" sha1="c1fb0fa01fadf82d86ed02daff46e7bd4ad7a59d" offset="0" />
</dataarea>
</part>
<!-- TODO: The floppy drive was bundled with a copy of MSX-DOS, undumped -->
</software>
<!-- TODO possibility to add a second drive -->
<software name="hb3600">
<description>HB-3600 Controller + HB-6000 5.25" DSDD floppy drive (Brazil)</description>
<year>19??</year>
<publisher>Sharp</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_hb3600" />
<dataarea name="rom" size="0x4000">
<rom name="hb3600_disk.rom" size="0x4000" crc="af445c3d" sha1="608e8e9ab91c67f7015a67ea12f52ea3b0d609cd" />
</dataarea>
</part>
</software>
<software name="hbd20w">
<description>HBD-20W (Floppy controller + 3.5" DSDD floppy drive) (Japan)</description>
<year>1987</year>
<publisher>Sony</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_hbd20w" />
<dataarea name="rom" size="0x4000">
<rom name="hbd-20w.rom" size="0x4000" crc="54c73ad6" sha1="12f2cc79b3d09723840bae774be48c0d721ec1c6" />
</dataarea>
</part>
<!-- TODO: The floppy drive was bundled with a copy of MSX-DOS, undumped -->
</software>
<!-- TODO: possibility to add a second drive -->
<software name="hbd50_121">
<description>HBD-50 (Floppy controller + 3.5" SSDD floppy drive, SNYJX121)</description>
<year>1984</year>
<publisher>Sony</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_hbd50" />
<dataarea name="rom" size="0x4000">
<!-- Dump contains contents of the memory mapped FDC registers starting at 3ff8 -->
<rom name="hbd-50.rom" size="0x4000" crc="a8569f6f" sha1="ab57b4c8e5d47c2a39031c2057b97d2d10546582" status="baddump" />
</dataarea>
</part>
</software>
<software name="hbdf1">
<description>HBD-F1 (Floppy controller + 3.5" DSDD floppy drive) (Japan)</description>
<year>1988</year>
<publisher>Sony</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_hbdf1" />
<dataarea name="rom" size="0x4000">
<rom name="hbd-f1.rom" size="0x4000" crc="54c73ad6" sha1="12f2cc79b3d09723840bae774be48c0d721ec1c6" />
</dataarea>
</part>
<!-- TODO: The floppy drive was bundled with a copy of MSX-DOS, undumped. -->
</software>
<!-- TODO has a connector to add a second drive, but it is unknown if any were actually released. -->
<software name="hxf101pe">
<description>HX-F101PE Controller + 3.5" SSDD floppy drive (Europe)</description>
<year>1985</year>
<publisher>Toshiba</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_hxf101pe" />
<dataarea name="rom" size="0x4000">
<rom name="hxf101.ic1" size="0x4000" crc="8c3b1271" sha1="b88c507720a0617a27141c329755de1a48b89deb" />
</dataarea>
</part>
</software>
<!-- TODO possibility to add a second drive to the enclosure -->
<software name="mfd001">
<description>MFD-001 (Controller + enclosure with 1 5.25" DSDD floppy drive) (Europe)</description>
<year>19??</year>
<publisher>Sanyo</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_mfd001" />
<dataarea name="rom" size="0x4000">
<rom name="mfd-001_disk.rom" size="0x4000" crc="7055c36f" sha1="bb72819da1160bc375fa3623f2d0a5424d08c89b" />
</dataarea>
</part>
</software>
<!-- TODO possibility to add a second drive to the enclosure -->
<software name="ml30dc">
<description>ML-30DC Controller + ML-30FD enclosure with 1 3.5" DSDD floppy drive (Japan)</description>
<year>1985</year>
<publisher>Mitsubishi</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_ml30dc" />
<dataarea name="rom" size="0x4000">
<rom name="ml30dc.rom" size="0x4000" crc="0ed4d468" sha1="658bc7cd4b19bd5face14f09e4e2904157a5c298" />
</dataarea>
</part>
</software>
<!-- TODO possibility to add a second drive -->
<software name="nms1200_6">
<description>NMS-1200 Floppy controller + 3.5" DSDD floppy drive (Europe, v1.06)</description>
<year>19??</year>
<publisher>Philips</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_nms1200" />
<dataarea name="rom" size="0x4000">
<rom name="nms1200_6.rom" size="0x4000" crc="7c0b1439" sha1="f0e0447a0872a2f09d7b28d9599fdd183acb5cb2" />
</dataarea>
</part>
</software>
<!-- TODO possibility to add a second drive -->
<software name="nms1200_4" cloneof="nms1200_6">
<description>NMS-1200 Floppy controller + 3.5" DSDD floppy drive (Europe, v1.04)</description>
<year>19??</year>
<publisher>Philips</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_nms1200" />
<dataarea name="rom" size="0x4000">
<rom name="nms1200_4.rom" size="0x4000" crc="6df59842" sha1="0b63e9cf99bc2a3d7f21cabf1cb668a6ca71ad2d" />
</dataarea>
</part>
</software>
<!-- TODO possibility to add a second drive -->
<software name="tadpf550">
<description>DPF-550 Controller + 5.25" SSDD floppy drive (Argentina)</description>
<year>19??</year>
<publisher>Talent</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_tadpf550" />
<dataarea name="rom" size="0x4000">
<rom name="dpf-550_disk.rom" size="0x4000" crc="bed64b97" sha1="d9c82e091b5fa1b5ee9b7f012f0084611762eb93" />
</dataarea>
</part>
</software>
<!-- TODO: possibility to add a second drive -->
<software name="vy0010">
<description>VY-0010 (Floppy controller + 3.5" SSDD floppy drive)</description>
<year>198?</year>
<description>VY-0010 (Floppy controller + 3.5" SSDD floppy drive) (Europe)</description>
<year>1985</year>
<publisher>Philips</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_vy0010" />
@ -16246,65 +16557,6 @@ legacy FM implementations cannot find it.
<rom name="27128q25-8.ic2" size="0x4000" crc="164f5a6d" sha1="8924e3e11eb1c8c1edcb7efa63c26d2bdc142473" status="baddump" offset="0" />
</dataarea>
</part>
<!-- The package came with a copy of MSX-DOS -->
<!--
<part name="flop1" interface="floppy_3_5">
</part>
-->
</software>
<software name="fsfd1">
<description>FS-FD1 (Floppy controller + 3.5" DSDD floppy drive)</description>
<year>198?</year>
<publisher>Panasonic</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_fsfd1" />
<dataarea name="rom" size="0x4000">
<!-- hashes not verified -->
<rom name="fs_fd1.rom" size="0x4000" crc="4c9b8214" sha1="8e3f6f08309f082a82be8298a66c9b90f2d34ad4" offset="0" />
</dataarea>
</part>
<!--
The floppy drive was most likely bundled with a copy of MSX-DOS, but we are not 100% sure yet
<part name="flop1" interface="floppy_3_5">
</part>
-->
</software>
<software name="fsfd1a">
<description>FS-FD1A (3.5" DSDD floppy drive with integrated controller)</description>
<year>198?</year>
<publisher>Panasonic</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_fsfd1a" />
<dataarea name="rom" size="0x4000">
<!-- hashes not verified -->
<rom name="fs_fd1a.rom" size="0x4000" crc="4b673b29" sha1="74ead27eec8d876144c2a015c0260d6db2117d72" offset="0" />
</dataarea>
</part>
<!--
The floppy drive was most likely bundled with a copy of MSX-DOS, but we are not 10% sure yet
<part name="flop1" interface="floppy_3_5">
</part>
-->
</software>
<software name="fscf351">
<description>FS-CF351 Controller + FS-FD351 DSDD 3.5" Floppy drive</description>
<year>198?</year>
<publisher>National</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="disk_fscf351" />
<dataarea name="rom" size="0x4000">
<!-- hashes not verified -->
<rom name="fs_cf351.rom" size="0x4000" crc="006fba38" sha1="c1fb0fa01fadf82d86ed02daff46e7bd4ad7a59d" offset="0" />
</dataarea>
</part>
<!--
The floppy drive was most likely bundled with a copy of MSX-DOS, but we are not 10% sure yet
<part name="flop1" interface="floppy_3_5">
</part>
-->
</software>
<!-- SORT -->

View File

@ -135,18 +135,7 @@ The following floppies came with the machines.
</part>
</software>
<software name="msxdostb">
<description>MSX-DOS Tools (Bra, v4.3)</description>
<year>1991</year>
<publisher>Nemesis Informatica</publisher>
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="184320">
<rom name="msx-dos tools v4.3 (1991)(nemesis informatica)(br).dsk" size="184320" crc="e93070dd" sha1="f78578bf88fa08d0268d7ed2f3cb62406527c500" offset="0" />
</dataarea>
</part>
</software>
<software name="msxdostba" cloneof="msxdostb">
<software name="msxdostba">
<description>MSX-DOS Tools (Bra, v2.1)</description>
<year>1984</year>
<publisher>Nemesis Informatica</publisher>

22
hash/msx1_flop_525.xml Normal file
View File

@ -0,0 +1,22 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!--
license:CC0
-->
<softwarelist name="msx1_flop_525" description="MSX1 5.25&quot; disk images">
<!--
MSX(1) software that was released on 5 1/4" floppies
-->
<software name="msxdostb">
<description>MSX-DOS Tools (Brazil, v4.3)</description>
<year>1991</year>
<publisher>Nemesis Informatica</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="184320">
<rom name="msx-dos tools v4.3 (1991)(nemesis informatica)(br).dsk" size="184320" crc="e93070dd" sha1="f78578bf88fa08d0268d7ed2f3cb62406527c500" />
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -34,16 +34,13 @@
void msx_cart(device_slot_interface &device)
{
msx_cart_disk_register_options(device);
device.option_add_internal("arc", MSX_CART_ARC);
device.option_add_internal("ascii8", MSX_CART_ASCII8);
device.option_add_internal("ascii8_sram", MSX_CART_ASCII8_SRAM);
device.option_add_internal("ascii16", MSX_CART_ASCII16);
device.option_add_internal("ascii16_sram", MSX_CART_ASCII16_SRAM);
device.option_add_internal("cross_blaim", MSX_CART_CROSSBLAIM);
device.option_add_internal("disk_vy0010", MSX_CART_VY0010);
device.option_add_internal("disk_fsfd1", MSX_CART_FSFD1);
device.option_add_internal("disk_fsfd1a", MSX_CART_FSFD1A);
device.option_add_internal("disk_fscf351", MSX_CART_FSCF351);
device.option_add_internal("dooly", MSX_CART_DOOLY);
device.option_add_internal("easispeech", MSX_CART_EASISPEECH);
device.option_add_internal("fmpac", MSX_CART_FMPAC);
@ -73,6 +70,7 @@ void msx_cart(device_slot_interface &device)
device.option_add_internal("super_swangi", MSX_CART_SUPER_SWANGI);
device.option_add_internal("superloderunner", MSX_CART_SUPERLODERUNNER);
device.option_add_internal("synthesizer", MSX_CART_SYNTHESIZER);
device.option_add_internal("ec701", MSX_CART_EC701);
device.option_add("bm_012", MSX_CART_BM_012);
device.option_add("moonsound", MSX_CART_MOONSOUND);
}

File diff suppressed because it is too large Load Diff

View File

@ -5,142 +5,6 @@
#pragma once
#include "bus/msx_cart/cartridge.h"
#include "machine/wd_fdc.h"
#include "machine/upd765.h"
#include "imagedev/floppy.h"
DECLARE_DEVICE_TYPE(MSX_CART_VY0010, msx_cart_vy0010_device)
DECLARE_DEVICE_TYPE(MSX_CART_FSFD1, msx_cart_fsfd1_device)
DECLARE_DEVICE_TYPE(MSX_CART_FSFD1A, msx_cart_fsfd1a_device)
DECLARE_DEVICE_TYPE(MSX_CART_FSCF351, msx_cart_fscf351_device)
class msx_cart_disk_device : public device_t, public msx_cart_interface
{
public:
virtual void initialize_cartridge() override;
protected:
msx_cart_disk_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
required_device<floppy_connector> m_floppy0;
optional_device<floppy_connector> m_floppy1;
floppy_image_device *m_floppy;
static void floppy_formats(format_registration &fr);
};
class msx_cart_disk_wd_device : public msx_cart_disk_device
{
protected:
msx_cart_disk_wd_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
required_device<wd_fdc_analog_device_base> m_fdc;
};
class msx_cart_disk_type1_device : public msx_cart_disk_wd_device
{
public:
virtual void initialize_cartridge() override;
protected:
msx_cart_disk_type1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_post_load() override;
u8 side_control_r();
u8 control_r();
u8 status_r();
void set_side_control(u8 data);
void set_control(u8 data);
output_finder<> m_led;
u8 m_side_control;
u8 m_control;
};
class msx_cart_disk_type2_device : public msx_cart_disk_wd_device
{
public:
virtual void initialize_cartridge() override;
protected:
msx_cart_disk_type2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_post_load() override;
void set_control(u8 data);
u8 status_r();
output_finder<> m_led;
u8 m_control;
};
class msx_cart_vy0010_device : public msx_cart_disk_type1_device
{
public:
msx_cart_vy0010_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected:
virtual void device_add_mconfig(machine_config &config) override;
};
class msx_cart_fsfd1_device : public msx_cart_disk_type1_device
{
public:
msx_cart_fsfd1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected:
virtual void device_add_mconfig(machine_config &config) override;
};
class msx_cart_fscf351_device : public msx_cart_disk_type2_device
{
public:
msx_cart_fscf351_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected:
virtual void device_add_mconfig(machine_config &config) override;
};
class msx_cart_disk_tc8566_device : public msx_cart_disk_device
{
protected:
msx_cart_disk_tc8566_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
required_device<tc8566af_device> m_fdc;
};
class msx_cart_fsfd1a_device : public msx_cart_disk_tc8566_device
{
public:
msx_cart_fsfd1a_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
virtual void initialize_cartridge() override;
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_add_mconfig(machine_config &config) override;
};
void msx_cart_disk_register_options(device_slot_interface &device);
#endif // MAME_BUS_MSX_CART_DISK_H

View File

@ -13,6 +13,7 @@ DEFINE_DEVICE_TYPE(MSX_CART_SYNTHESIZER, msx_cart_synthesizer_device,
DEFINE_DEVICE_TYPE(MSX_CART_SOUND_SNATCHER, msx_cart_konami_sound_snatcher_device, "msx_cart_sound_snatcher", "MSX Cartridge - Sound Snatcher")
DEFINE_DEVICE_TYPE(MSX_CART_SOUND_SDSNATCHER, msx_cart_konami_sound_sdsnatcher_device, "msx_cart_sound_sdsnatcher", "MSX Cartridge - Sound SD Snatcher")
DEFINE_DEVICE_TYPE(MSX_CART_KEYBOARD_MASTER, msx_cart_keyboard_master_device, "msx_cart_keyboard_master", "MSX Cartridge - Keyboard Master")
DEFINE_DEVICE_TYPE(MSX_CART_EC701, msx_cart_ec701_device, "msx_cart_ec701", "MSX Cartridge - Konami EC-701")
msx_cart_konami_device::msx_cart_konami_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
@ -524,3 +525,58 @@ uint8_t msx_cart_keyboard_master_device::io_00_r()
{
return m_vlm5030->bsy() ? 0x10 : 0x00;
}
msx_cart_ec701_device::msx_cart_ec701_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: device_t(mconfig, MSX_CART_EC701, tag, owner, clock)
, msx_cart_interface(mconfig, *this)
, m_rombank(*this, "rombank")
, m_view(*this, "view")
{
}
void msx_cart_ec701_device::device_reset()
{
m_view.select(0);
}
void msx_cart_ec701_device::initialize_cartridge()
{
m_rombank->configure_entries(0, 24, get_rom_base() + 0x20000, 0x4000);
page(1)->install_view(0x4000, 0x7fff, m_view);
m_view[0].install_rom(0x4000, 0x7fff, get_rom_base());
m_view[1].install_read_bank(0x4000, 0x7fff, m_rombank);
m_view[2].nop_read(0x4000, 0x7fff);
page(2)->install_rom(0x8000, 0xbfff, get_rom_base() + 0x4000);
page(2)->install_write_handler(0xbff8, 0xbfff, write8smo_delegate(*this, FUNC(msx_cart_ec701_device::bank_w)));
}
void msx_cart_ec701_device::bank_w(u8 data)
{
data = ~data;
switch (data & 0x38)
{
case 0x00: // ic1
m_view.select(0);
break;
case 0x20: // ic2
m_view.select(1);
m_rombank->set_entry(data & 0x07);
break;
case 0x28: // ic3
m_view.select(1);
m_rombank->set_entry(0x08 + (data & 0x07));
break;
case 0x30: // ic4
m_view.select(1);
m_rombank->set_entry(0x10 + (data & 0x07));
break;
default:
m_view.select(2);
break;
}
}

View File

@ -18,6 +18,7 @@ DECLARE_DEVICE_TYPE(MSX_CART_SYNTHESIZER, msx_cart_synthesizer_device)
DECLARE_DEVICE_TYPE(MSX_CART_SOUND_SNATCHER, msx_cart_konami_sound_snatcher_device)
DECLARE_DEVICE_TYPE(MSX_CART_SOUND_SDSNATCHER, msx_cart_konami_sound_sdsnatcher_device)
DECLARE_DEVICE_TYPE(MSX_CART_KEYBOARD_MASTER, msx_cart_keyboard_master_device)
DECLARE_DEVICE_TYPE(MSX_CART_EC701, msx_cart_ec701_device)
class msx_cart_konami_device : public device_t, public msx_cart_interface
@ -189,4 +190,25 @@ private:
class msx_cart_ec701_device : public device_t, public msx_cart_interface
{
public:
msx_cart_ec701_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected:
// device-level overrides
virtual void device_start() override { }
virtual void device_reset() override;
virtual void initialize_cartridge() override;
private:
void bank_w(u8 data);
memory_bank_creator m_rombank;
memory_view m_view;
};
#endif // MAME_BUS_MSX_CART_KONAMI_H

View File

@ -32,6 +32,14 @@ const char *msx_format::extensions() const
// Unverified gap sizes
const msx_format::format msx_format::formats[] = {
{ /* 180K 5 1/4 inch double density single sided */
floppy_image::FF_525, floppy_image::SSDD, floppy_image::MFM,
2000, 9, 40, 1, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 360K 5 1/4 inch double density */
floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
2000, 9, 40, 2, 512, {}, 1, {}, 80, 50, 22, 80
},
{ /* 3 1/2 inch single sided double density */
// 80x4e 12x00 3xf6 fc
// 26x4e 12x00 3xf5 fe 2x00 01 02 f7 24x4e 12x00 3xf5 fb 512xe5 f7