mirror of
https://github.com/holub/mame
synced 2025-04-20 15:32:45 +03:00
steps towards some spectrum expansions - attempt 2 (resynced to AJRs changes) (nw) (#5417)
* steps towards some spectrum expansions - attempt 2 (nw) * (nw) * (nw)
This commit is contained in:
parent
89040a2acd
commit
d193b2f3ad
813
hash/spectrum_microdrive.xml
Normal file
813
hash/spectrum_microdrive.xml
Normal file
@ -0,0 +1,813 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
|
||||
<!--
|
||||
Microdrive 'cartridges'
|
||||
These are infinite tape loop based devices that act like discs
|
||||
-->
|
||||
<softwarelist name="spectrum_microdrive" description="Sinclair ZX Microdrive tapes/cartridges">
|
||||
|
||||
<software name="outl001" supported="no">
|
||||
<description>Outlet (Issue 001)</description>
|
||||
<year>1987</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 001).mdr" size="137923" crc="72140119" sha1="2289c623b2eac1247ba68106d00301be20fb3ba6"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl002" supported="no">
|
||||
<description>Outlet (Issue 002)</description>
|
||||
<year>1987</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 002).mdr" size="137923" crc="b9fc8e8c" sha1="c238cfb8a845bd8eb7d3581a3f6a944ff2107d3d"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl003" supported="no">
|
||||
<description>Outlet (Issue 003)</description>
|
||||
<year>1987</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 003).mdr" size="137923" crc="34984328" sha1="0c65873be60070c192bfed1c0b1ea4b6c8ea6649"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl004" supported="no">
|
||||
<description>Outlet (Issue 004)</description>
|
||||
<year>1987</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 004).mdr" size="137923" crc="4e794fee" sha1="a450a650b36d3c912695a6a6a0741ab815878728"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl005a" supported="no">
|
||||
<description>Outlet (Issue 005a)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 005a).mdr" size="137923" crc="9cb77d3e" sha1="edb8bef1c3152769f6315142ff90a31ff2a76ab2"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl005b" supported="no">
|
||||
<description>Outlet (Issue 005b)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 005b).mdr" size="137923" crc="ef14c78a" sha1="e1a70203a96cb93150ddb8b810baaefa97e1738f"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl006a" supported="no">
|
||||
<description>Outlet (Issue 006a)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 006a).mdr" size="137923" crc="6e51cc02" sha1="5eeb2c04d50d39ec09daeaa6b55d52e84d51e95d"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl006b" supported="no">
|
||||
<description>Outlet (Issue 006b)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 006b).mdr" size="137923" crc="6cb20433" sha1="08a92834e5fc618155bffa0588c3c3b12eee4ca2"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl007a" supported="no">
|
||||
<description>Outlet (Issue 007a)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 007a).mdr" size="137923" crc="8e4f73aa" sha1="a41c30ae56c3b8455bd5f7d86cb47c801535dc80"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl007b" supported="no">
|
||||
<description>Outlet (Issue 007b)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 007b).mdr" size="137923" crc="8984d42c" sha1="cd82df621b52544517d1c62547b9a4ab25652fcd"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl008a" supported="no">
|
||||
<description>Outlet (Issue 008a)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 008a).mdr" size="137923" crc="c3520758" sha1="a09efe5ccb0796ef483f3ce43773baa2c218dd95"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl008b" supported="no">
|
||||
<description>Outlet (Issue 008b)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 008b).mdr" size="137923" crc="8a566f1b" sha1="6191440aaca5a3b11dc791b71258135ea29efbcd"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl009a" supported="no">
|
||||
<description>Outlet (Issue 009a)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 009a).mdr" size="137923" crc="38a69b30" sha1="410be3577aad858709afca2b97a5263dca63e56a"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl009b" supported="no">
|
||||
<description>Outlet (Issue 009b)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 009b).mdr" size="137923" crc="1ff1a612" sha1="a3740d743fd2454bae50acf8dcadd954449464c9"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl009bx" supported="no">
|
||||
<description>Outlet (Issue 009bx)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 009bx).mdr" size="137923" crc="e13436a4" sha1="d9d1c97a2d5ed8c210410ee1549b3fd5ff7d63f3"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl010a" supported="no">
|
||||
<description>Outlet (Issue 010a)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 010a).mdr" size="137923" crc="3b8a14ad" sha1="c4450e00e19d4b8e17907e9aefb3dbd76c2a70d0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl010b" supported="no">
|
||||
<description>Outlet (Issue 010b)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 010b).mdr" size="137923" crc="6919bdd3" sha1="4c5ecf469440194fa7bc115f3df6cb95b809bab7"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl011a" supported="no">
|
||||
<description>Outlet (Issue 011a)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 011a).mdr" size="137923" crc="ef4ce378" sha1="b750dc6f52a87028e83cbcf47b88326b6759fbff"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl011b" supported="no">
|
||||
<description>Outlet (Issue 011b)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 011b).mdr" size="137923" crc="360ae313" sha1="174eccf7818e9b7685db6eed2167519ecc85e1eb"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl012a" supported="no">
|
||||
<description>Outlet (Issue 012a)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 012a).mdr" size="137923" crc="4b2c60de" sha1="d5b43f69b5dac9f3aa024973bb4f9e11c5c2b6c6"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl012b" supported="no">
|
||||
<description>Outlet (Issue 012b)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 012b).mdr" size="137923" crc="43bc3578" sha1="3bac15652dae67236b792f8ee9736cd53ef8375a"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl013a" supported="no">
|
||||
<description>Outlet (Issue 013a)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 013a).mdr" size="137923" crc="f610e7fa" sha1="4a9063fcc8e1186d99a4edc4ea02d315e80a2246"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl013b" supported="no">
|
||||
<description>Outlet (Issue 013b)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 013b).mdr" size="137923" crc="81355e67" sha1="4b317335fdd1649c69282d912a522df79e95056e"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl014a" supported="no">
|
||||
<description>Outlet (Issue 014a)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 014a).mdr" size="137923" crc="94ef50bf" sha1="8df6e237eb96b0930cf63deaf04d57fcdbc6a473"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl014b" supported="no">
|
||||
<description>Outlet (Issue 014b)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 014b).mdr" size="137923" crc="acec3cf5" sha1="13c6a6806d4982948591fd00d61ebf4217d91032"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl015a" supported="no">
|
||||
<description>Outlet (Issue 015a)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 015a).mdr" size="137923" crc="3218da10" sha1="951a0df879706b40b96b95d0dac05e3a71800b6b"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl015b" supported="no">
|
||||
<description>Outlet (Issue 015b)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 015b).mdr" size="137923" crc="d90a0e6b" sha1="1c8902bcb0bf7e2b3895d11a4b0f4ebe54be6a8c"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl016a" supported="no">
|
||||
<description>Outlet (Issue 016a)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 016a).mdr" size="137923" crc="6baa42f8" sha1="d89f4ad0941d8de42dba1063961c1d01f6ca34b0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl016b" supported="no">
|
||||
<description>Outlet (Issue 016b)</description>
|
||||
<year>1988</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 016b).mdr" size="137923" crc="8944fd90" sha1="ad91dd55fe55c979294bb15b5dbf2625f109326e"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl017a" supported="no">
|
||||
<description>Outlet (Issue 017a)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 017a).mdr" size="137923" crc="bf35dfc4" sha1="8223f9c83961c66cd6a6411cc653cc742a9f9a77"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl017b" supported="no">
|
||||
<description>Outlet (Issue 017b)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 017b).mdr" size="137923" crc="242b54a8" sha1="738b6fbcb0a8a85b052c26ba05f07757886fdeb5"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl018a" supported="no">
|
||||
<description>Outlet (Issue 018a)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 018a).mdr" size="137923" crc="c380540e" sha1="6f6fe0e751edd3d7db40b11148d9d15f74052de1"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl018b" supported="no">
|
||||
<description>Outlet (Issue 018b)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 018b).mdr" size="137923" crc="59f7446d" sha1="3bd6eaf3cb8c9b86113d74bb5004c00adee5487e"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl019a" supported="no">
|
||||
<description>Outlet (Issue 019a)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 019a).mdr" size="137923" crc="fc09bffa" sha1="c599c203bcdfb217edcbc216ec5896aa83fdbaf8"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl019b" supported="no">
|
||||
<description>Outlet (Issue 019b)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 019b).mdr" size="137923" crc="a1e78cf5" sha1="6a2fdad7c4e25c96383db65fb84566543c25882b"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl020a" supported="no">
|
||||
<description>Outlet (Issue 020a)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 020a).mdr" size="137923" crc="8442b009" sha1="5d3e03b46954a0841c61965c8566554d4081802a"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl020b" supported="no">
|
||||
<description>Outlet (Issue 020b)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 020b).mdr" size="137923" crc="36f53c1b" sha1="a906d840096a2d73107381730ab616d336c22edc"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl021a" supported="no">
|
||||
<description>Outlet (Issue 021a)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 021a).mdr" size="137923" crc="981d48dc" sha1="a77d20df81d7ef7cb79a61a60aace21e86689b24"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl021b" supported="no">
|
||||
<description>Outlet (Issue 021b)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 021b).mdr" size="137923" crc="33fa5641" sha1="363aaf70f39afd41149b08d15bd384e008b1ab15"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl022a" supported="no">
|
||||
<description>Outlet (Issue 022a)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 022a).mdr" size="137923" crc="5c0b851f" sha1="8e2ef91fe01796e9bd29919d90d4f38fc902ffd4"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl022b" supported="no">
|
||||
<description>Outlet (Issue 022b)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 022b).mdr" size="137923" crc="32583176" sha1="c3b5c10b7810f2ae76e2afab3367d62dcf04ef72"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl023a" supported="no">
|
||||
<description>Outlet (Issue 023a)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 023a).mdr" size="137923" crc="bdf2f83b" sha1="acea2c404bf502573562bafba9d30c4999c6c2fe"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl023b" supported="no">
|
||||
<description>Outlet (Issue 023b)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 023b).mdr" size="137923" crc="394e2629" sha1="b9447df6abe8280a0aaf48d33fbc533ec390107b"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl024a" supported="no">
|
||||
<description>Outlet (Issue 024a)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 024a).mdr" size="137923" crc="7899613a" sha1="3a4ab59b99fe0e3ccd890cd171db98876624a82d"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl024b" supported="no">
|
||||
<description>Outlet (Issue 024b)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 024b).mdr" size="137923" crc="38b59619" sha1="7f87b6ae4ff81c2d1a36eb0da7656769b848c279"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl025a" supported="no">
|
||||
<description>Outlet (Issue 025a)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 025a).mdr" size="137923" crc="12b87473" sha1="084dc863c7366d4b964b5d22ca7b2ad0917af258"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl025b" supported="no">
|
||||
<description>Outlet (Issue 025b)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 025b).mdr" size="137923" crc="f5aa4cdb" sha1="da06b7d8c2baed80eefb779eb987b71f794c08b7"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl026a" supported="no">
|
||||
<description>Outlet (Issue 026a)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 026a).mdr" size="137923" crc="e41d4ce4" sha1="6b7eb4b3002932ea76c4d7e645f11618ef3ecf0d"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl026b" supported="no">
|
||||
<description>Outlet (Issue 026b)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 026b).mdr" size="137923" crc="98aceddb" sha1="80b4b7bbc3e03b8fed9107fe14ad0705c0c2b9c1"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl027a" supported="no">
|
||||
<description>Outlet (Issue 027a)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 027a).mdr" size="137923" crc="31ce0cd5" sha1="d8a49c2ad3d29d6bf664d27d5a30c71915b1933e"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl027b" supported="no">
|
||||
<description>Outlet (Issue 027b)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 027b).mdr" size="137923" crc="fc3ea927" sha1="db1261cc0852d78c0eb28c64f287c326a0d24b9b"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl028a" supported="no">
|
||||
<description>Outlet (Issue 028a)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 028a).mdr" size="137923" crc="9aef7d04" sha1="e65329aefb71d9cba2fbdc0760ff9b2cb08ce6fd"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl028b" supported="no">
|
||||
<description>Outlet (Issue 028b)</description>
|
||||
<year>1989</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 028b).mdr" size="137923" crc="38a6bc13" sha1="e9d3b253d0d0d1218fa065de53c73320648c32e4"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl029a" supported="no">
|
||||
<description>Outlet (Issue 029a)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 029a).mdr" size="137923" crc="9666ac84" sha1="eaf6444419395a921fe3ac7499cf58998ec84826"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl029b" supported="no">
|
||||
<description>Outlet (Issue 029b)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 029b).mdr" size="137923" crc="223404d6" sha1="6152aebfbc18da8a1d4b08477dd804f89d7f6d56"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl030a" supported="no">
|
||||
<description>Outlet (Issue 030a)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 030a).mdr" size="137923" crc="c5e54d1d" sha1="a3e9c11e5d486597648b5bc70616026eb1aa6f7c"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl030b" supported="no">
|
||||
<description>Outlet (Issue 030b)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 030b).mdr" size="137923" crc="b21985e1" sha1="437af3e2bb52c1fbe75b5bbe034342556af31647"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl031a" supported="no">
|
||||
<description>Outlet (Issue 031a)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 031a).mdr" size="137923" crc="79eb5140" sha1="71a1ae5bd344f9426ce876ca0c7469b9568dc0b0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl031b" supported="no">
|
||||
<description>Outlet (Issue 031b)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 031b).mdr" size="137923" crc="36c7848f" sha1="b5642fe2a7d49b4df75e31373093976467e6fb6b"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl032a" supported="no">
|
||||
<description>Outlet (Issue 032a)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 032a).mdr" size="137923" crc="52325161" sha1="38bdb25bb5098bc2aef8d8bd049cf7701a6f8d31"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl032b" supported="no">
|
||||
<description>Outlet (Issue 032b)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 032b).mdr" size="137923" crc="caaae604" sha1="4f912bc7c8ab3af08dc6c19c2c8c21cccfe48c4c"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl033a" supported="no">
|
||||
<description>Outlet (Issue 033a)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 033a).mdr" size="137923" crc="d04a0ff0" sha1="bc85e2e1a222dd7ddc12ace899f5f8c86f36c7c4"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl033b" supported="no">
|
||||
<description>Outlet (Issue 033b)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 033b).mdr" size="137923" crc="b7d30aa1" sha1="b619ddf4e7ee2d28382e916a2c1d53333d71e833"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl034a" supported="no">
|
||||
<description>Outlet (Issue 034a)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 034a).mdr" size="137923" crc="00f51e51" sha1="ca1066743639c547b5386073d7599e9eff137a50"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl034b" supported="no">
|
||||
<description>Outlet (Issue 034b)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 034b).mdr" size="137923" crc="589b2366" sha1="bcfa0bd46214eb24e13b9766e956e2845f5212f2"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl035a" supported="no">
|
||||
<description>Outlet (Issue 035a)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 035a).mdr" size="137923" crc="202a88b6" sha1="dd5664644fde9bef793a98d1444e41ce27132cd9"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl035b" supported="no">
|
||||
<description>Outlet (Issue 035b)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 035b).mdr" size="137923" crc="fda82f9e" sha1="16ac0d2355531966f63f22100ad6e4bc9434dff7"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl036a" supported="no">
|
||||
<description>Outlet (Issue 036a)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 036a).mdr" size="137923" crc="c0d45c9c" sha1="083a5176c4df08a7c96aaebf2d4101b8abaab123"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl036b" supported="no">
|
||||
<description>Outlet (Issue 036b)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 036b).mdr" size="137923" crc="73988143" sha1="d90bb38e4be53b0c58bf52b5beccc1672e9303ea"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl037a" supported="no">
|
||||
<description>Outlet (Issue 037a)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 037a).mdr" size="137923" crc="9d8eeb24" sha1="b2ce5ff001c686406900e6bb41a307fd1f3a88f5"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl037b" supported="no">
|
||||
<description>Outlet (Issue 037b)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 037b).mdr" size="137923" crc="95616194" sha1="7a2329383b70dae10d919e2591a6499f76b31a11"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl038a" supported="no">
|
||||
<description>Outlet (Issue 038a)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 038a).mdr" size="137923" crc="5b326911" sha1="7752e74e8b1ba2b7a88a4837899b3d758307d7dc"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="outl038b" supported="no">
|
||||
<description>Outlet (Issue 038b)</description>
|
||||
<year>1990</year>
|
||||
<publisher>Outlet</publisher>
|
||||
<part name="cass" interface="ql_cass">
|
||||
<dataarea name="cass" size="137923">
|
||||
<rom name="outlet (issue 038b).mdr" size="137923" crc="b4c772fa" sha1="1059d30ab0b091a806cbdee4446bcd998ba592b9"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
21
hash/spectrum_wafadrive.xml
Normal file
21
hash/spectrum_wafadrive.xml
Normal file
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
|
||||
<!--
|
||||
Wafadrive 'cartridges'
|
||||
These are infinite tape loop based devices that act like discs
|
||||
-->
|
||||
<softwarelist name="spectrum_wafadrive" description="Sinclair ZX Wafadrive tapes/cartridges">
|
||||
|
||||
<software name="spctrlwr" supported="no">
|
||||
<description>Spectral Writer</description>
|
||||
<year>1984</year>
|
||||
<publisher>Softek International Ltd</publisher>
|
||||
<part name="cass" interface="wafadrive_cart">
|
||||
<dataarea name="wafa" size="77450">
|
||||
<rom name="spectral writer.wdr" size="77450" crc="3faa506e" sha1="4da9ecaa055ce307ad830cdff4b293d6dca9ecca"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
@ -3483,6 +3483,8 @@ if (BUSES["SPECTRUM"]~=null) then
|
||||
MAME_DIR .. "src/devices/bus/spectrum/usource.h",
|
||||
MAME_DIR .. "src/devices/bus/spectrum/uspeech.cpp",
|
||||
MAME_DIR .. "src/devices/bus/spectrum/uspeech.h",
|
||||
MAME_DIR .. "src/devices/bus/spectrum/wafa.cpp",
|
||||
MAME_DIR .. "src/devices/bus/spectrum/wafa.h",
|
||||
}
|
||||
end
|
||||
|
||||
|
@ -61,6 +61,8 @@ files {
|
||||
MAME_DIR .. "src/devices/imagedev/printer.h",
|
||||
MAME_DIR .. "src/devices/imagedev/snapquik.cpp",
|
||||
MAME_DIR .. "src/devices/imagedev/snapquik.h",
|
||||
MAME_DIR .. "src/devices/imagedev/wafadrive.cpp",
|
||||
MAME_DIR .. "src/devices/imagedev/wafadrive.h",
|
||||
}
|
||||
|
||||
|
||||
|
@ -185,7 +185,7 @@ void spectrum_expansion_slot_device::mreq_w(offs_t offset, uint8_t data)
|
||||
#include "uslot.h"
|
||||
#include "usource.h"
|
||||
#include "uspeech.h"
|
||||
|
||||
#include "wafa.h"
|
||||
|
||||
void spectrum_expansion_devices(device_slot_interface &device)
|
||||
{
|
||||
@ -207,6 +207,7 @@ void spectrum_expansion_devices(device_slot_interface &device)
|
||||
device.option_add("uslot", SPECTRUM_USLOT);
|
||||
device.option_add("usource", SPECTRUM_USOURCE);
|
||||
device.option_add("uspeech", SPECTRUM_USPEECH);
|
||||
device.option_add("wafadrive", SPECTRUM_WAFA);
|
||||
}
|
||||
|
||||
void spec128_expansion_devices(device_slot_interface &device)
|
||||
@ -223,6 +224,7 @@ void spec128_expansion_devices(device_slot_interface &device)
|
||||
device.option_add("plus2test", SPECTRUM_PLUS2TEST);
|
||||
device.option_add("protek", SPECTRUM_PROTEK);
|
||||
device.option_add("specdrum", SPECTRUM_SPECDRUM);
|
||||
device.option_add("wafadrive", SPECTRUM_WAFA);
|
||||
}
|
||||
|
||||
void specpls3_expansion_devices(device_slot_interface &device)
|
||||
|
@ -53,6 +53,8 @@ void spectrum_intf1_device::device_add_mconfig(machine_config &config)
|
||||
SPECTRUM_EXPANSION_SLOT(config, m_exp, spectrum_expansion_devices, nullptr);
|
||||
m_exp->irq_handler().set(DEVICE_SELF_OWNER, FUNC(spectrum_expansion_slot_device::irq_w));
|
||||
m_exp->nmi_handler().set(DEVICE_SELF_OWNER, FUNC(spectrum_expansion_slot_device::nmi_w));
|
||||
|
||||
SOFTWARE_LIST(config, "microdrive_list").set_original("spectrum_microdrive");
|
||||
}
|
||||
|
||||
const tiny_rom_entry *spectrum_intf1_device::device_rom_region() const
|
||||
@ -162,10 +164,45 @@ void spectrum_intf1_device::mreq_w(offs_t offset, uint8_t data)
|
||||
|
||||
uint8_t spectrum_intf1_device::iorq_r(offs_t offset)
|
||||
{
|
||||
return m_exp->iorq_r(offset);
|
||||
uint8_t data = 0xff;
|
||||
|
||||
if ((offset & 0x18) != 0x18)
|
||||
{
|
||||
switch (offset & 0x18)
|
||||
{
|
||||
case 0x00:
|
||||
logerror("%s: iorq_r (microdrive) %04x\n", machine().describe_context(), offset);
|
||||
break;
|
||||
case 0x08:
|
||||
logerror("%s: iorq_r (control) %04x\n", machine().describe_context(), offset);
|
||||
break;
|
||||
case 0x10:
|
||||
logerror("%s: iorq_r (network) %04x\n", machine().describe_context(), offset);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
data &= m_exp->iorq_r(offset);
|
||||
return data;
|
||||
}
|
||||
|
||||
void spectrum_intf1_device::iorq_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
if ((offset & 0x18) != 0x18)
|
||||
{
|
||||
switch (offset & 0x18)
|
||||
{
|
||||
case 0x00:
|
||||
logerror("%s: iorq_w (microdrive) %04x: %02x\n", machine().describe_context(), offset, data);
|
||||
break;
|
||||
case 0x08:
|
||||
logerror("%s: iorq_w (control) %04x: %02x\n", machine().describe_context(), offset, data);
|
||||
break;
|
||||
case 0x10:
|
||||
logerror("%s: iorq_w (network) %04x: %02x\n", machine().describe_context(), offset, data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
m_exp->iorq_w(offset, data);
|
||||
}
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include "exp.h"
|
||||
#include "bus/rs232/rs232.h"
|
||||
#include "imagedev/microdrv.h"
|
||||
#include "softlist.h"
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
|
187
src/devices/bus/spectrum/wafa.cpp
Normal file
187
src/devices/bus/spectrum/wafa.cpp
Normal file
@ -0,0 +1,187 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood
|
||||
/**********************************************************************
|
||||
|
||||
Rotronics Wafadrive
|
||||
|
||||
Provides 2 built-in 'infinite loop' tape based drives that act like
|
||||
discs (similar to Microdrive), a Centronics port, a RS232 port, and
|
||||
the standard pass-thru connector.
|
||||
|
||||
Tapes could hold 128k, 64k or 16k (approximate sizes) with longer
|
||||
seek times on the higher capacity media. Loading was significantly
|
||||
slower than the Microdrive (but faster than cassette)
|
||||
|
||||
Media was highly unreliable and prone to snapping.
|
||||
|
||||
use
|
||||
NEW *
|
||||
to initialize
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "wafa.h"
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
DEFINE_DEVICE_TYPE(SPECTRUM_WAFA, spectrum_wafa_device, "spectrum_wafa", "Rotronics Wafadrive")
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_DRIVER( wafa )
|
||||
//-------------------------------------------------
|
||||
|
||||
ROM_START( wafadrive )
|
||||
ROM_REGION( 0x2000, "rom", 0 )
|
||||
ROM_LOAD("wafa108.rom", 0x0000, 0x2000, CRC(179d4600) SHA1(e979f9b1ada4a723ec69734c1848adbbf8d920c5) )
|
||||
ROM_END
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
void spectrum_wafa_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
WAFADRIVE_IMAGE(config, m_wafa1);
|
||||
WAFADRIVE_IMAGE(config, m_wafa2);
|
||||
|
||||
/* passthru */
|
||||
SPECTRUM_EXPANSION_SLOT(config, m_exp, spectrum_expansion_devices, nullptr);
|
||||
m_exp->irq_handler().set(DEVICE_SELF_OWNER, FUNC(spectrum_expansion_slot_device::irq_w));
|
||||
m_exp->nmi_handler().set(DEVICE_SELF_OWNER, FUNC(spectrum_expansion_slot_device::nmi_w));
|
||||
|
||||
SOFTWARE_LIST(config, "wafadrive_list").set_original("spectrum_wafadrive");
|
||||
}
|
||||
|
||||
const tiny_rom_entry *spectrum_wafa_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME( wafadrive );
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
// LIVE DEVICE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// spectrum_wafa_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
spectrum_wafa_device::spectrum_wafa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, SPECTRUM_WAFA, tag, owner, clock)
|
||||
, device_spectrum_expansion_interface(mconfig, *this)
|
||||
, m_exp(*this, "exp")
|
||||
, m_rom(*this, "rom")
|
||||
, m_wafa1(*this, "wafa1")
|
||||
, m_wafa2(*this, "wafa2")
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void spectrum_wafa_device::device_start()
|
||||
{
|
||||
save_item(NAME(m_romcs));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_reset - device-specific reset
|
||||
//-------------------------------------------------
|
||||
|
||||
void spectrum_wafa_device::device_reset()
|
||||
{
|
||||
m_romcs = 0;
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
// IMPLEMENTATION
|
||||
//**************************************************************************
|
||||
|
||||
READ_LINE_MEMBER(spectrum_wafa_device::romcs)
|
||||
{
|
||||
return m_romcs | m_exp->romcs();
|
||||
}
|
||||
|
||||
void spectrum_wafa_device::opcode_fetch(offs_t offset)
|
||||
{
|
||||
m_exp->opcode_fetch(offset);
|
||||
|
||||
if (!machine().side_effects_disabled())
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
case 0x0008: case 0x1708:
|
||||
{
|
||||
//logerror("wafa enabled\n");
|
||||
m_romcs = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void spectrum_wafa_device::opcode_fetch_post(offs_t offset)
|
||||
{
|
||||
m_exp->opcode_fetch_post(offset);
|
||||
|
||||
if (!machine().side_effects_disabled())
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
// guess, manual wording indicates it gets disabled via an IN command in RAM tho, but no such thing is executed unless we disable it here first?
|
||||
// it seems the port reads are instead are an alt way to reenable it
|
||||
case 0x00a0:
|
||||
{
|
||||
//logerror("^wafa disable\n");
|
||||
m_romcs = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
uint8_t spectrum_wafa_device::mreq_r(offs_t offset)
|
||||
{
|
||||
uint8_t data = 0xff;
|
||||
|
||||
if (m_romcs)
|
||||
data &= m_rom->base()[offset & 0x1fff];
|
||||
|
||||
if (m_exp->romcs())
|
||||
data &= m_exp->mreq_r(offset);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
void spectrum_wafa_device::mreq_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
if (m_exp->romcs())
|
||||
m_exp->mreq_w(offset, data);
|
||||
}
|
||||
|
||||
uint8_t spectrum_wafa_device::iorq_r(offs_t offset)
|
||||
{
|
||||
uint8_t data = 0xff;
|
||||
|
||||
if (((offset & 0x00ff) != 0x00fe) && ((offset & 0x00ff) != 0x000c))
|
||||
logerror("%s: iorq_r %04x\n", machine().describe_context(), offset);
|
||||
|
||||
if ((offset & 0x00ff) == 0x000c)
|
||||
m_romcs = 1;
|
||||
|
||||
data &= m_exp->iorq_r(offset);
|
||||
return data;
|
||||
}
|
||||
|
||||
void spectrum_wafa_device::iorq_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
if ((offset & 0x00fe) != 0x00fe)
|
||||
logerror("%s: iorq_w %04x %02x\n", machine().describe_context(), offset, data);
|
||||
|
||||
m_exp->iorq_w(offset, data);
|
||||
}
|
64
src/devices/bus/spectrum/wafa.h
Normal file
64
src/devices/bus/spectrum/wafa.h
Normal file
@ -0,0 +1,64 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood
|
||||
/**********************************************************************
|
||||
|
||||
Rotronics Wafadrive
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef MAME_BUS_SPECTRUM_WAFA_H
|
||||
#define MAME_BUS_SPECTRUM_WAFA_H
|
||||
|
||||
#include "exp.h"
|
||||
#include "imagedev/wafadrive.h"
|
||||
|
||||
#include "softlist.h"
|
||||
#include "bus/generic/slot.h"
|
||||
#include "bus/generic/carts.h"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
class spectrum_wafa_device:
|
||||
public device_t,
|
||||
public device_spectrum_expansion_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
spectrum_wafa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
static constexpr feature_type unemulated_features() { return feature::DISK | feature::LAN; }
|
||||
|
||||
protected:
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
// optional information overrides
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
|
||||
virtual void opcode_fetch(offs_t offset) override;
|
||||
virtual void opcode_fetch_post(offs_t offset) override;
|
||||
virtual uint8_t mreq_r(offs_t offset) override;
|
||||
virtual void mreq_w(offs_t offset, uint8_t data) override;
|
||||
virtual uint8_t iorq_r(offs_t offset) override;
|
||||
virtual void iorq_w(offs_t offset, uint8_t data) override;
|
||||
virtual DECLARE_READ_LINE_MEMBER(romcs) override;
|
||||
|
||||
private:
|
||||
required_device<spectrum_expansion_slot_device> m_exp;
|
||||
required_memory_region m_rom;
|
||||
required_device<wafadrive_image_device> m_wafa1;
|
||||
required_device<wafadrive_image_device> m_wafa2;
|
||||
|
||||
int m_romcs;
|
||||
};
|
||||
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(SPECTRUM_WAFA, spectrum_wafa_device)
|
||||
|
||||
|
||||
#endif /* MAME_BUS_SPECTRUM_WAFA_H */
|
@ -2,9 +2,11 @@
|
||||
// copyright-holders:Curt Coder
|
||||
/*********************************************************************
|
||||
|
||||
microdrv.c
|
||||
microdrv.cpp
|
||||
|
||||
MESS interface to the Sinclair Microdrive image abstraction code
|
||||
MAME interface to the Sinclair Microdrive image abstraction code
|
||||
(this seems to be QL format specific and hardcoded to a specific
|
||||
size, Spectrum might need a different implementation?)
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
@ -83,6 +85,7 @@ image_init_result microdrive_image_device::call_load()
|
||||
if (length() != MDV_IMAGE_LENGTH)
|
||||
return image_init_result::FAIL;
|
||||
|
||||
// huh
|
||||
for (int i = 0; i < MDV_IMAGE_LENGTH / 2; i++)
|
||||
{
|
||||
fread(m_left.get(), 1);
|
||||
@ -97,8 +100,11 @@ image_init_result microdrive_image_device::call_load()
|
||||
|
||||
void microdrive_image_device::call_unload()
|
||||
{
|
||||
memset(m_left.get(), 0, MDV_IMAGE_LENGTH / 2);
|
||||
memset(m_right.get(), 0, MDV_IMAGE_LENGTH / 2);
|
||||
if (m_left.get())
|
||||
memset(m_left.get(), 0, MDV_IMAGE_LENGTH / 2);
|
||||
|
||||
if (m_right.get())
|
||||
memset(m_right.get(), 0, MDV_IMAGE_LENGTH / 2);
|
||||
}
|
||||
|
||||
void microdrive_image_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
microdrv.h
|
||||
|
||||
MESS interface to the Sinclair Microdrive image abstraction code
|
||||
MAME interface to the Sinclair Microdrive image abstraction code
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
@ -53,7 +53,7 @@ public:
|
||||
virtual bool must_be_loaded() const override { return 0; }
|
||||
virtual bool is_reset_on_load() const override { return 0; }
|
||||
virtual const char *image_interface() const override { return "ql_cass"; }
|
||||
virtual const char *file_extensions() const override { return "mdv"; }
|
||||
virtual const char *file_extensions() const override { return "mdv,mdr"; }
|
||||
|
||||
// specific implementation
|
||||
DECLARE_WRITE_LINE_MEMBER( clk_w );
|
||||
|
52
src/devices/imagedev/wafadrive.cpp
Normal file
52
src/devices/imagedev/wafadrive.cpp
Normal file
@ -0,0 +1,52 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood
|
||||
/*********************************************************************
|
||||
|
||||
wafadrive.cpp
|
||||
|
||||
Emulation of an individual drive within the Wafadrive unit
|
||||
(preliminary, no actual emulation yet)
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "wafadrive.h"
|
||||
|
||||
/***************************************************************************
|
||||
TYPE DEFINITIONS
|
||||
***************************************************************************/
|
||||
|
||||
// device type definition
|
||||
DEFINE_DEVICE_TYPE(WAFADRIVE_IMAGE, wafadrive_image_device, "wafadrive_image", "Sinclair Wafadrive Image")
|
||||
|
||||
//-------------------------------------------------
|
||||
// microdrive_image_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
wafadrive_image_device::wafadrive_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, WAFADRIVE_IMAGE, tag, owner, clock),
|
||||
device_image_interface(mconfig, *this)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// microdrive_image_device - destructor
|
||||
//-------------------------------------------------
|
||||
|
||||
wafadrive_image_device::~wafadrive_image_device()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void wafadrive_image_device::device_start()
|
||||
{
|
||||
}
|
||||
|
||||
image_init_result wafadrive_image_device::call_load()
|
||||
{
|
||||
return image_init_result::PASS;
|
||||
}
|
||||
|
||||
void wafadrive_image_device::call_unload()
|
||||
{
|
||||
}
|
58
src/devices/imagedev/wafadrive.h
Normal file
58
src/devices/imagedev/wafadrive.h
Normal file
@ -0,0 +1,58 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood
|
||||
/*********************************************************************
|
||||
|
||||
wafadrive.h
|
||||
|
||||
Emulation of an individual drive within the Wafadrive unit
|
||||
(preliminary, no actual emulation yet)
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
#ifndef MAME_DEVICES_IMAGEDEV_WAFADRIVE_H
|
||||
#define MAME_DEVICES_IMAGEDEV_WAFADRIVE_H
|
||||
|
||||
#include "softlist_dev.h"
|
||||
|
||||
#pragma once
|
||||
|
||||
/***************************************************************************
|
||||
TYPE DEFINITIONS
|
||||
***************************************************************************/
|
||||
|
||||
// ======================> microdrive_image_device
|
||||
|
||||
class wafadrive_image_device : public device_t,
|
||||
public device_image_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
wafadrive_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
|
||||
virtual ~wafadrive_image_device();
|
||||
|
||||
// image-level overrides
|
||||
virtual image_init_result call_load() override;
|
||||
virtual void call_unload() override;
|
||||
virtual const software_list_loader &get_software_list_loader() const override { return image_software_list_loader::instance(); }
|
||||
|
||||
virtual iodevice_t image_type() const override { return IO_MAGTAPE; } // what are these classed as? they're infinite loop tapes, in a cartridge shell that operate like discs
|
||||
|
||||
virtual bool is_readable() const override { return 1; }
|
||||
virtual bool is_writeable() const override { return 1; }
|
||||
virtual bool is_creatable() const override { return 0; } // should be (although would need a way to specify size)
|
||||
virtual bool must_be_loaded() const override { return 0; }
|
||||
virtual bool is_reset_on_load() const override { return 0; }
|
||||
virtual const char *image_interface() const override { return "wafadrive_cart"; }
|
||||
virtual const char *file_extensions() const override { return "wdr"; }
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
private:
|
||||
};
|
||||
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(WAFADRIVE_IMAGE, wafadrive_image_device)
|
||||
|
||||
#endif // MAME_DEVICES_IMAGEDEV_WAFADRIVE_H
|
Loading…
Reference in New Issue
Block a user