Skip to content

Commit

Permalink
new working ZX Spectrum slot devices: DISCiPLE and +D disk interfaces (
Browse files Browse the repository at this point in the history
…mamedev#5931)

* plusd working (rom patch)

* plusd done

* added disciple, not working

* disciple working

* wd_fdc fix

* final tidy-up

* ready for pr

* Pernod70 changes

* cuavas changes #1

* combine devices + files

* sort out side_effects
  • Loading branch information
TwistedTom authored and Vas Crabb committed Nov 21, 2019
1 parent c38f63c commit b400364
Show file tree
Hide file tree
Showing 9 changed files with 949 additions and 46 deletions.
83 changes: 42 additions & 41 deletions hash/spectrum_cass.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60614,31 +60614,31 @@
</software>

<software name="disciple">
<description>DISCiPLE System Tape v1</description>
<year>19??</year>
<publisher>&lt;unknown&gt;</publisher>
<description>DISCiPLE System Tape v2</description>
<year>1987</year>
<publisher>Miles Gordon Technology</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="13344">
<rom name="disciple system tape v1.tzx" size="13344" crc="678e3e15" sha1="40aa91b4be6674d1d660fe7c6764af6e22a91e89"/>
<rom name="disciple system tape v2.tzx" size="13344" crc="678e3e15" sha1="40aa91b4be6674d1d660fe7c6764af6e22a91e89"/>
</dataarea>
</part>
</software>

<software name="disciple_a" cloneof="disciple">
<description>DISCiPLE System Tape v2</description>
<year>19??</year>
<publisher>&lt;unknown&gt;</publisher>
<description>DISCiPLE System Tape v2b</description>
<year>1987</year>
<publisher>Miles Gordon Technology</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="13343">
<rom name="disciple system tape v2.tzx" size="13343" crc="992a23fc" sha1="c0bea1d0275782a79762c2b8ba496dc255bcc414"/>
<rom name="disciple system tape v2b.tzx" size="13343" crc="992a23fc" sha1="c0bea1d0275782a79762c2b8ba496dc255bcc414"/>
</dataarea>
</part>
</software>

<software name="disciple_b" cloneof="disciple">
<description>DISCiPLE System Tape v2c</description>
<year>19??</year>
<publisher>&lt;unknown&gt;</publisher>
<year>1987</year>
<publisher>Miles Gordon Technology</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="13510">
<rom name="disciple system tape v2c.tzx" size="13510" crc="b45f0766" sha1="f72dabd21169113d0d96bdad9d08426c513e3935"/>
Expand All @@ -60648,19 +60648,30 @@

<software name="disciple_c" cloneof="disciple">
<description>DISCiPLE System Tape v3a</description>
<year>19??</year>
<publisher>&lt;unknown&gt;</publisher>
<year>1987</year>
<publisher>Miles Gordon Technology</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="13910">
<rom name="disciple system tape v3a.tzx" size="13910" crc="219af476" sha1="7bf03234dc817a857458406b8a20a75b1c5620de"/>
</dataarea>
</part>
</software>

<software name="disciple_d" cloneof="disciple">
<description>DISCiPLE System Tape v3b</description>
<year>1987</year>
<publisher>Miles Gordon Technology</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="13900">
<rom name="disciple system tape v3b.tzx" size="13900" crc="ce4f4108" sha1="62fa0f4ae51cea30b569c8019a05ffd8a1916970"/>
</dataarea>
</part>
</software>

<software name="disciple_e" cloneof="disciple">
<description>DISCiPLE System Tape v3d</description>
<year>19??</year>
<publisher>&lt;unknown&gt;</publisher>
<year>1987</year>
<publisher>Miles Gordon Technology</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="24077">
<rom name="disciple system tape v3d.tzx" size="24077" crc="e09fe7ff" sha1="239908071d560eeb4ae868097232afe3f1443503"/>
Expand Down Expand Up @@ -106717,45 +106728,35 @@
</software>

<software name="plusdsys">
<description>Plus D System Tape (MGT)</description>
<year>19??</year>
<publisher>&lt;unknown&gt;</publisher>
<description>Plus D System Tape v2a</description>
<year>1987</year>
<publisher>Miles Gordon Technology</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="24362">
<rom name="plus d system tape (mgt).tzx" size="24362" crc="948c5cc9" sha1="1ef58a4d60c234fd187329ee1219ce969956f747"/>
<dataarea name="cass" size="24352">
<rom name="plus d system tape v2a.tzx" size="24352" crc="892644d5" sha1="6beb6507c01426e17679720604f4da4868b9ebfc"/>
</dataarea>
</part>
</software>

<software name="plusdsys_a" cloneof="plusdsys">
<description>Plus D System Tape v1.0</description>
<year>19??</year>
<publisher>&lt;unknown&gt;</publisher>
<description>Plus D System Tape v1</description>
<year>1987</year>
<publisher>Miles Gordon Technology</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="48402">
<rom name="plus d system tape v1.0.tzx" size="48402" crc="a69bd63c" sha1="dd353f31dc5567a12755889163ca2d9d6b7447a7"/>
<dataarea name="cass" size="24266">
<rom name="plus d system tape v1.tzx" size="24266" crc="198fb732" sha1="128ed4ad929a8e856d57092bf1d21484090484f6"/>
</dataarea>
</part>
</software>

<!-- data is just 3 bytes different from v2a, title screen shows v2a, might just be bad dump? -->
<software name="plusdsys_b" cloneof="plusdsys">
<description>Plus D System Tape v2.3</description>
<year>19??</year>
<publisher>&lt;unknown&gt;</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="24373">
<rom name="plus d system tape v2.3.tzx" size="24373" crc="6e3f966b" sha1="85bacfdd3b3d4d969c423857899d7d31d4b1db12"/>
</dataarea>
</part>
</software>

<software name="plusdsys_c" cloneof="plusdsys">
<description>Plus D System Tape v2a</description>
<year>19??</year>
<publisher>&lt;unknown&gt;</publisher>
<description>Plus D System Tape v2b?</description>
<year>1987</year>
<publisher>Miles Gordon Technology</publisher>
<part name="cass" interface="spectrum_cass">
<dataarea name="cass" size="24269">
<rom name="plus d system tape v2a.tzx" size="24269" crc="7e1a097c" sha1="1f702857d90dd49014f13aa86187152caf0d5a8b"/>
<dataarea name="cass" size="24362">
<rom name="plus d system tape v2b.tzx" size="24362" crc="efa5bdbe" sha1="00fd3ea95069b9ca0ffdd087e057a649ef3d8d6a"/>
</dataarea>
</part>
</software>
Expand Down
111 changes: 111 additions & 0 deletions hash/spectrum_mgt_flop.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">

<!-- ZX Spectrum MGT Disciple / +D disk images
images for the "Disciple" and "+D" ZX Spectrum fdd interfaces produced by MGT (Miles Gordan Technology)
insert system disk,
'RUN' boots the main DOS from disk
'CAT 1/2' lists disk 1/2 catalogue
'LOAD Pn' loads program #n
more commands listed in devices\bus\spectrum\plusd.cpp or disciple.cpp
for disciple, must use matching rom/system disk versions:
v2 rom -> system disk/system tape ver 2, 2b, 2c
v3 rom -> system disk/system tape ver 3a, 3b or 3d
-->

<softwarelist name="spectrum_mgt_flop" description="ZX Spectrum MGT Disciple/Plus D disks">
<software name="plusdsys">
<description>Plus D System Disk v2a</description>
<year>1986</year>
<publisher>Miles Gordon Technology</publisher>
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="819200">
<rom name="plus d system disk v2a.mgt" size="819200" crc="abaeb064" sha1="d98dbf3bbdecd48e33a5c191ecaca29358984394"/>
</dataarea>
</part>
</software>
<software name="disciplesys">
<description>DISCiPLE System Disk v3d</description>
<year>1986</year>
<publisher>Miles Gordon Technology</publisher>
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="819200">
<rom name="disciple system disk v3d.mgt" size="819200" crc="fd931fba" sha1="6446120e6993dcae13e2259bf9a6d83ca300e166"/>
</dataarea>
</part>
</software>
<software name="disciplesys_a">
<description>DISCiPLE System Disk v3b</description>
<year>1986</year>
<publisher>Miles Gordon Technology</publisher>
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="819200">
<rom name="disciple system disk v3b.mgt" size="819200" crc="4fef82ca" sha1="69ab399bfc8b47090ca1c4cdaec8d01e6d901d06"/>
</dataarea>
</part>
</software>
<software name="disciplesys_b">
<description>DISCiPLE System Disk v3a</description>
<year>1986</year>
<publisher>Miles Gordon Technology</publisher>
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="819200">
<rom name="disciple system disk v3a.mgt" size="819200" crc="57a42968" sha1="435ae58de3dfdd1bbc17f97af8acf80328c276e6"/>
</dataarea>
</part>
</software>
<software name="disciplesys_c">
<description>DISCiPLE System Disk v2c</description>
<year>1986</year>
<publisher>Miles Gordon Technology</publisher>
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="819200">
<rom name="disciple system disk v2c.mgt" size="819200" crc="87e6484f" sha1="56cbaac201fdb8a4736c64adaeeb719a64d872d6"/>
</dataarea>
</part>
</software>
<software name="disciplesys_d">
<description>DISCiPLE System Disk v2b</description>
<year>1986</year>
<publisher>Miles Gordon Technology</publisher>
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="819200">
<rom name="disciple system disk v2b.mgt" size="819200" crc="84221dc8" sha1="6530305e69a9b02275b82abe0e7bca9afcc5c49f"/>
</dataarea>
</part>
</software>
<software name="disciplesys_e">
<description>DISCiPLE System Disk v2</description>
<year>1986</year>
<publisher>Miles Gordon Technology</publisher>
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="819200">
<rom name="disciple system disk v2.mgt" size="819200" crc="97de35a1" sha1="fa7bb3572910becbe9f9ed718ada43faf83e7f80"/>
</dataarea>
</part>
</software>
<software name="unidos">
<description>Uni-Dos</description>
<year>1990</year>
<publisher>S.D. Software</publisher>
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="819200">
<rom name="uni-dos v1.mgt" size="819200" crc="bfa654cd" sha1="1fafbdfdfe608bf20585fe46eace2eede3a95a6f"/>
</dataarea>
</part>
</software>
<software name="pickpoke">
<description>Pick-Poke-It</description>
<year>1989</year>
<publisher>Miles Gordon Technology</publisher>
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="819200">
<rom name="pick-poke-it.mgt" size="819200" crc="9efa0d0c" sha1="489a48fc842e79531b1a06c4f0c269ca696acccc"/>
</dataarea>
</part>
</software>
</softwarelist>
2 changes: 2 additions & 0 deletions scripts/src/bus.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3611,6 +3611,8 @@ if (BUSES["SPECTRUM"]~=null) then
MAME_DIR .. "src/devices/bus/spectrum/melodik.h",
MAME_DIR .. "src/devices/bus/spectrum/mface.cpp",
MAME_DIR .. "src/devices/bus/spectrum/mface.h",
MAME_DIR .. "src/devices/bus/spectrum/mgt.cpp",
MAME_DIR .. "src/devices/bus/spectrum/mgt.h",
MAME_DIR .. "src/devices/bus/spectrum/mikroplus.cpp",
MAME_DIR .. "src/devices/bus/spectrum/mikroplus.h",
MAME_DIR .. "src/devices/bus/spectrum/opus.cpp",
Expand Down
8 changes: 4 additions & 4 deletions src/devices/bus/spectrum/exp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -156,17 +156,16 @@ void spectrum_expansion_slot_device::mreq_w(offs_t offset, uint8_t data)
// slot devices
#include "beta.h"
#include "beta128.h"
//#include "disciple.h"
#include "intf1.h"
#include "intf2.h"
#include "fuller.h"
#include "kempjoy.h"
#include "melodik.h"
#include "mface.h"
#include "mgt.h"
#include "mikroplus.h"
#include "opus.h"
#include "plus2test.h"
//#include "plusd.h"
#include "protek.h"
#include "specdrum.h"
#include "uslot.h"
Expand All @@ -180,7 +179,7 @@ void spectrum_expansion_devices(device_slot_interface &device)
device.option_add("betav3", SPECTRUM_BETAV3);
device.option_add("betaplus", SPECTRUM_BETAPLUS);
device.option_add("beta128", SPECTRUM_BETA128);
//device.option_add("disciple", SPECTRUM_DISCIPLE);
device.option_add("disciple", SPECTRUM_DISCIPLE);
device.option_add("intf1", SPECTRUM_INTF1);
device.option_add("intf2", SPECTRUM_INTF2);
device.option_add("fuller", SPECTRUM_FULLER);
Expand All @@ -191,7 +190,7 @@ void spectrum_expansion_devices(device_slot_interface &device)
device.option_add("mikroplus", SPECTRUM_MIKROPLUS);
device.option_add("mprint", SPECTRUM_MPRINT);
device.option_add("opus", SPECTRUM_OPUS);
//device.option_add("plusd", SPECTRUM_PLUSD);
device.option_add("plusd", SPECTRUM_PLUSD);
device.option_add("protek", SPECTRUM_PROTEK);
device.option_add("specdrum", SPECTRUM_SPECDRUM);
device.option_add("uslot", SPECTRUM_USLOT);
Expand All @@ -211,6 +210,7 @@ void spec128_expansion_devices(device_slot_interface &device)
device.option_add("mikroplus", SPECTRUM_MIKROPLUS);
device.option_add("mprint", SPECTRUM_MPRINT);
device.option_add("opus", SPECTRUM_OPUS);
//device.option_add("plusd", SPECTRUM_PLUSD);
device.option_add("plus2test", SPECTRUM_PLUS2TEST);
device.option_add("protek", SPECTRUM_PROTEK);
device.option_add("specdrum", SPECTRUM_SPECDRUM);
Expand Down
Loading

0 comments on commit b400364

Please sign in to comment.