6

Back in the day we had a sixword swiftdisk we were ahead of the game on our speccy allowing us to us 3.5inch floppy disks. See:

I see the full hardware spec and even the rom is available online at the hardware.speccy.org link above which is pretty amazing.

Does anyone have an idea what disk format was used (it was a snapshot of the entire memory) and how our old floppies might be digitalized for the modern retro world. Possibly we could convert them to FDI format?

Motivation:

It would be kind of nice to try and upload our never released game Galactic Patrol like we did with StarBlade. Apologies for making the enemy waves too evil there! Could have done with some more playtesting but we were both still in school.

This ran in 'full' colour using the rapid screen switch scheme my brother devised which is mentioned here in crash.

3
  • 3
    It might be worth getting the disks to someone with a device like a Greaseweazle. It will generate a raw image of the magnetic flux patterns on the disk that can be reassembled into a filesystem later. Information on the SwiftDisk is thin on the ground, but it does seem to use a standard DSDD 3½" drive so recovery may not be too complex. Good luck! – scruss Jan 15 at 16:06
  • As an emulator author, I will wager that if you can get a flux-level capture then I — or someone else like me — can emulate the Swift or otherwise parse the disk image sufficiently to extract the data, given that the ROM is available. That is, if there isn’t already an emulator such that it just works. The quoted 32us bit length plus the size of the company strongly implies a standard MFM encoding, so you might even just be able to do a sector dump using a regular PC drive, or even a USB drive, and capture everything. – Tommy Jan 15 at 19:56
  • Talking of the greaseweazle and similar are there any available to buy anywhere ready assembled? I could probably cobble it together myself but given enough time but I have a knack of messing up with hardware. Also there's an element of yak shaving. – Bruce Adams Jan 18 at 16:03
3

I couldn't find technical information or an existing emulator but via your links I found this high-resolution image of the interface's board.

From there I notice the following things:

  • the disk controller is a WD1770, that's the big one on the left;
  • the two large chips on the right both half underneath the edge connector are an 8kb RAM and an EPROM; and
  • everything else that's visible is 74-series logic.

It's a safe bet based on the architecture of the Spectrum that the interrupt button switches in the on-board ROM and triggers an NMI.

The ROM images linked are 32kb and 16kb in size but the former just seems to be 16kb data copied twice you can also adduce that the EPROM is 16kb, in which case there might be some guesswork in figuring out when and where that 8kb of RAM appears.

I found old mentions in comp.sys.sinclair that the Microdrive emulation added to a later version was partly hardware based, but seems to have come with a board revision. So an emulator author would probably start with the older EPROM in the hope that the extra hardware wasn't yet present.

Otherwise, the good news is that the disk controller is an extremely standard part that just does vanilla IBM encoding, and based on the advertised floppy capacity of "thirteen 48kb games per disk", you can assume the physical format of the data on disk is MFM (i.e. regular PC 'double density').

So: you might be able to image your disk using a plain USB disk drive (unless you find one that supports high density floppies only) as MFM is essentially the only thing they support — but they're often restricted to 512-byte sectors with fixed numbering so this isn't guaranteed. Might be worth a try before looking around for a less-common solution though. This MSX-related page gives a guide for Linux and macOS though the Windows section is empty. Some slight more research might be necessary there.

Failing that, look into solutions that can image floppies for a machine like the Amstrad CPC, as those should handle different sector sizes and addressing, and the common CPC-related file formats can retain all that information. If you have an old enough PC to have a pre-USB floppy-disk controller and drive and an OS like DOS that gives software unfettered access to the controller then that should do the trick. Or low-level disk controllers now exist for exactly this problem, such as the Greaseweazle mentioned by scruss, the Kryoflux and others.

Starting from a working Spectrum emulator it then shouldn't be too much of a trek to get the Swift disc interface added and to read your floppy.

What software should write to a WD1770 is very well-known so you could isolate those addresses fairly easily, and pretty much the first thing the NMI routine will need to do is backup the current display so you'd likely be able to figure out the RAM question without too much dilemma. At that point it might well be as easy as just plugging in your disk image.

A lot of the time when these slightly more obscure interfaces don't get emulated it's just because no test data is available; it's very possible that you'd be able to get an existing author interested just by having a disk image. Otherwise a Spectrum emulator is easy to knock up so someone like me who has the generally correct sort of code kicking about should be able to help.

Alternatively, since my search wasn't especially thorough, you might find that the thing already is emulated — in which case please let me know so that I can change 90% of this answer.

3
  • Thanks for a very helpful answer. What about reading the disks with an Amiga? I haven't booted it up in a long while but last time I did it was working very well. I recall reading that PCs couldn't read amiga disks because the amiga controller could do things the PC disk controllers couldn't. From what you say this sounds incorrect so its a mere matter of software. If there is a usb connectable floppy drive that would work with a modern linux or windows PC though it would make life easier. – Bruce Adams Jan 18 at 15:58
  • An Amiga disk controller could definitely read all the information on a disk based on the controller in use; I don't know the first thing about imaging formats on an Amiga though so I can't help with what software you'd use to do the reading or what form you'd end up with. Certainly if there is a tool for capturing to a file format like Amstrad CPC DSK then you could just use that. – Tommy Jan 18 at 16:03
2

Looks like it uses WD1770 I am not familiar with it but first check if WD1770 is compatible with IBM format. If yes then you can read the discs directly on PC ... If not you need HW capable of reading the disc.

So in case of PC compatible you just image it using direct sector access in C++ (or any other language or utility) instead of file format. After you obtain the binary image of the floppy (one way or the other) there are two options:

  1. emulate FDC

    so you need to have some emulator capable of emulating your FDC interface or add such functionality to some open source code one.

    In your last link are ROM images and also circuit (but that one is unreadable) so it might be possible to emulate this by reversing the circuitry... I done this before for my emulator and D40/D80 FDC based on WD2797. However this is easily doable only for emulators that runs on MC (machine cycle) timing resolution (like mine) otherwise the FDC must be only hacked by hooking up to the HW and SW condition bypassing Z80 code and injecting FDC code/operations instead (that is how most emulators do it however this is not 100% compatible and custom loaders and stuff might not work) which no one without deep knowledge on the targeted FDC workings can do.

  2. extract files

    or you bypass the FDC completely and extract the non compressed files from the image into format readable by emulators like *.tap. In case you share some images (best with description what files and how long are in it) I would be happy to try to create a win32 converter that would do this for you.

    as the files are just snapshots this might be your best option. Ideally if you have also access to the HW you could create a specific memory pattern and save it to floppy so the inffering of filesystem is easier ... for example fill the 128K (RAM part) with 32 bit addresses (incremental value) so we can get the sectors together in correct order and then match it to FAT if its used...

2
  • The WD1770 was super popular; it’s also used with the +D/DISCiple interface and the SAM Coupé, the Acorn Electron, BBC and Archimedes, the MSX, the Oric, the Atari ST and probably a lot more that aren’t springing to mind right now. Also it has a really great datasheet — all logic is just provided accurately in a flow chart. – Tommy Jan 16 at 15:08
  • I recall the hardware died (which is one reason why we never attempted upload) but I think we still have it somehwere. – Bruce Adams Jan 18 at 15:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.