Skip to content

Host Platforms

Keir Fraser edited this page Aug 28, 2024 · 93 revisions

General Notes

Computers:

Electronic synthesizers:

Embedded & Industrial:

General Notes

Most systems require Shugart interface (the default) and select line 0 (jumper on S0). Such systems will work out of the box with a factory-fresh Gotek programmed with FlashFloppy firmware, requiring only a physical jumper at the rear to be moved from S1 to S0.

If this does not work then also try the following:

  • Jumper at S1 only
  • Jumpers at JC and S0
  • Jumpers at JC and S1

If the system still does not work and the Gotek green LED is permanently lit then you may need to try connecting the ribbon cable 'upside down'.

This gives a total of eight possible jumper/ribbon configurations to try, and there are further instructions for certain specific systems listed below.

A final note: In most cases except when connecting to an IBM PC, FlashFloppy requires a straight floppy cable with no 'twist' between the connectors. If you do use a twisted cable, you should jumper MO instead of S0. The exception is the one case that the twist was designed for: connecting FlashFloppy as Drive A to an IBM PC or compatible.

Acorn Archimedes

To use ADFS D/E/F sector images, which usually have suffix ADF, you must explicitly configure the host type in FF.CFG as Amiga sector images share the same suffix:

host = acorn

Some ADF images may not be exactly the correct size (usually 800kB or 1.6MB) and thus not be detected as valid by FlashFloppy. These can be modified to the exact correct size using the dd utility on Mac or Linux. For example, for an 800kB image:

# dd if=/dev/zero of=fixed.adf bs=5120 count=160
# dd if=bad.adf of=fixed.adf bs=5120 count=160 conv=notrunc

Early Models: A3xx/A4xx/A3000/R140/A540/R2xx

Note that on A3xx/A4xx/R140 models the orientation of the IDC connector is flipped 180 degrees on the motherboard (Pin 1 becomes Pin 34, Pin 2 becomes 33 etc.) so will require a standard cable to be turned over. A3000/A540/R2xx models have standard orientation.

These use WDC-177x controlled double density drives for up to 800kB capacities so use:

interface = shugart

The A3xx/A4xx models drive pin 1 so to avoid 'Drive Empty' messages and damaging the IC29 line driver they require pin 1 (Disc Eject) to be disconnected, either on the cable or on the Gotek since the standard Gotek grounds this signal along with the rest of the odd pins.

A3xx/1, A4xx/1 & R140 models have the same issue which can alternatively be deactivated by removing LK9 jumper if it is fitted.

Later Models: A5000/A4 Laptop/A3010/A3020/A4000

These use PC-compatible HD drives for 1.6Mb capacities and require the drive-select jumper at position S1, and interface = ibmpc in FF.CFG.

Also these models may use index pulses to determine whether a disk is inserted in the drive. If you are seeing spurious "Drive Empty" messages then add the following to FF.CFG:

index-suppression = no

Acorn BBC Micro

BBC Micro systems using the original single-density 8271 controller require regular index pulses to avoid disk-not-ready errors (described here). These errors are reported on the video screen as Drive fault 10 at xx/xx.

This issue is solved by specifying the following FF.CFG option:

index-suppression = no

Akai

Akai systems require explicit configuration in FF.CFG to recognise IMG files correctly:

host = akai

The correct jumper selection is usually S0, with the following interface selections in FF.CFG, depending on model:

S2000, S3000XL:

interface = ibmpc-hdout

S950:

interface = akai-s950

S2800, S3000:

interface = ibmpc-hdout
pin34 = dens

S01, S900:

interface = shugart

S1000, S1100:

These hosts send a signal to the floppy drive on pin 2, hence this pin must be configured nc:

interface = shugart
pin02 = nc

X7000

The Quick Disk version of the FlashFloppy firmware has been tested working on X7000. Follow the Quick Disk connection and installation instructions: Note that you require a jumper at location MO only, and pin ordering of the QD header is reversed. No explicit configuration is required in FF.CFG.

Amstrad CPC

FlashFloppy works with a wide range of CPC DSK images, however compatibility is not perfect with copy-protected images. If you have an original image which does not work, this is often due to 'GAPS protection' where extra data is stored in the gaps between sectors. These images can sometimes be fixed to work with FlashFloppy by running a script included in the FlashFloppy distribution, for example:

# python scripts/edsk_fix_gaps.py crazy_cars.dsk crazy_cars_fixed.dsk

Physical Connection of a Standard Gotek

See here for guidance on connecting the CPC's 26-pin cable to the Gotek 34-pin header. Also note that the CPC's power cable has +5v and +12v reversed: you must use an adapter or otherwise somehow insert the power connector backwards. If you do not, you will damage your Gotek and destroy any USB stick that you insert!

Note that Gotek clones designed specifically for CPC (or Spectrum +3) will use the data and power connectors as-is, and the above should be ignored.

Amstrad PCW

WARNING: Some PCW models (PCW9512+, PCW9526, PCW10) use a 26-pin header with integrated power as described here (CPCWiki), requiring an adapter to connect to the Gotek 34-pin header plus power. Please note that this is NOT the same as the CPC 26-pin header, and if you use a CPC-compatible adapter or cable you may damage your Gotek or your PCW!

Fixing Boot-Time Hangs

Later versions of LocoScript and CP/M require Drive A to correctly respond to the Motor signal (Gotek pin 16), by deasserting Ready (Gotek pin 34) when the motor is off. Unfortunately the Gotek usually ignores Motor, and the PCW will hang during boot waiting for the drive to respond correctly. This page (in Italian, so use Google Translate) explains how to modify the Gotek to fix this problem. Section 8.3 of this document gives more technical information on the floppy-drive probe logic which causes this issue.

Alternatively, an option for correct motor emulation is provided in FF.CFG: motor-delay = 200. Note that a standard Gotek needs a circuit modification to connect the motor signal. This is an alternative to the extra external circuitry described in the previous paragraph.

180k Disk Images

If the PCW determines that the Gotek is an 80-cylinder (80c) drive, it will support 40c disk images by double-stepping the drive heads to move between tracks. This is because 40c disks have their tracks twice as far apart as on 80c disks. The effect on Gotek is that 180k DSK files will give disk errors, as the double steps will skip every other track in the disk image!

There are two possible solutions:

  • Convert to HFE: Using the HxCFloppyEmulator software, Load the DSK image, then in SD HxC Floppy Emulator settings tick the Double Step box. Now Export your DSK image as an HFE file. The resulting HFE file is flagged to expect double-step behaviour.
  • Track-Double the DSK: A script is provided to double up the tracks in your DSK file. The resulting 'fixed' DSK file will respond correctly to the PCW's double-step behaviour.
# python scripts/edsk_double_step.py my.dsk my_fixed.dsk

Amstrad PPC

Although IBM PC compatible, the Amstrad PPC (Portable PC) series uses the Shugart floppy interface, and thus require a jumper at position S0 only.

If you find that large file writes, and disk copies, to the Gotek drive cause "Not Ready" errors, then you should add write-drain=eot to your FF.CFG file (#320).

Atari ST

No special configuration is required. Interface is Shugart (the default) and drive-select jumper should typically be at position S0.

Commodore Amiga

Internal Drive (DF0)

To replace an existing Amiga internal drive usually requires a jumper on S0 only. One exception are Escom A1200 boards, which are modded to use PC drives: if you have one of these then you require a jumper on JC (or interface = ibmpc in FF.CFG). For improved compatibility you can undo the Escom mod as described by RetroGameModz.

External Drive (DF1-DF3)

Replacing an external drive depends on the enclosure or cable being used. Amiga external drive enclosures usually include the circuitry to allow the Amiga to identify the presence of the drive. In this case the Gotek with S0 jumper is usually a straight swap for the old floppy drive. If using a passive cable such as this Ebay item then be aware that this identification circuitry is missing, but for arcane reasons identification will typically happen to work as long as the Gotek has an image mounted when the Amiga boots. If you are having problems with your drive being identified, see Drive Identification.

High-Density Disks

Amiga Kickstart versions 2.05 and later support high-density disks with 1760kB formatted capacity. This enhancement required a customised (and nowadays expensive!) HD drive modified to rotate at half speed and emit a special ID sequence to the Amiga when an HD disk is inserted.

FlashFloppy supports this enhancement for 1760kB ADF images, but the high-density ID sequence must be explicitly enabled in FF.CFG (see Drive Identification).

If using an Amiga external drive enclosure, please bear in mind that the enclosure's interface board usually emits a fixed double-density ID sequence which will make HD images unreadable. In this case you must disconnect the enclosure's ID circuitry on its interface PCB:

  • Cut the PCB connection to external connector, pin 1.
  • Connect a jumper wire between internal connector pin 34 and external connector, pin 1.

Drive Identification

Amiga hosts expect a drive ID sequence from external and Amiga-high-density drives on pin 34 of the floppy interface when the drive motor is disabled (pin 34 carries the Ready/RDY signal when the drive motor is enabled). In contrast, FlashFloppy's default interface mode (interface = shugart) permanently attaches RDY to pin 34, regardless of motor.

This default behaviour usually works fine:

  • Drive ID signalling is not required for double-density DF0 operation
  • External drive enclosures often implement the drive-ID circuitry
  • A mounted disk image asserts RDY which happens to match the Amiga ID sequence for a double-density drive anyway

However, there are a couple of cases where this default behaviour may not suffice:

  • Using high-density disk images (1760kB formatted capacity)
  • Using as an external drive with a passive interface cable, if FlashFloppy does not assert RDY during boot (eg. eject-at-power-on, no USB stick, or too slow to initialise)

In the above cases FlashFloppy can be configured to emulate the drive ID in several ways:

1. Basic identification (any Gotek)

The following line in FF.CFG will force FlashFloppy to emit the drive ID on pin 34 at all times:

interface = amiga

When high-density images are not being used, and when FlashFloppy is being used as DF0 or without problems as DF1-DF3, then the default interface type (interface = shugart) is preferred as this gives more accurate behaviour on pin 34 when the drive motor is on.

2. Accurate identification (AT32F435 Gotek)

This method requires FlashFloppy running on an AT32F435 microcontroller, an additional jumper strap at position MOR, and the following lines in FF.CFG:

interface = amiga
motor-delay = 500

This correctly multiplexes ID and RDY signals onto pin 34 based on motor, synchronises the high-density ID signal to motor off, and emulates a realistic 500-millisecond delay from motor on to RDY.

Unfortunately only AT32F435-based Goteks emulate these signals fast enough to benefit from this more accurate method.

3. External identification circuitry

When interface = amiga is configured in FF.CFG, FlashFloppy outputs a density signal at jumper pin JC:

  • JC floats when a high-density disk is mounted
  • JC is LOW in all other cases

This can be used by an external circuit (eg the FZ-357 circuit with some modifications) to generate pin 34 independently of FlashFloppy.

DEC

DEC systems require host = dec in FF.CFG for correct IMG layout detection. The RX33 and RX50 formats are supported.

Dragon

No special configuration is required in order to use Dragon VDK disk images.

If you wish to use DSK images for Tandy Coco, with appropriate ROM and disk controller, then you will need host = tandy-coco in FF.CFG.

E-mu ESI-32

Requires jumpers at S0 and JC. Works with 1.44MB (HD) IMG files.

Ensoniq

Ensoniq systems use custom 800kB and 1600kB disk formats which are supported as IMG files if the host-type is configured in FF.CFG:

host = ensoniq

The common EDE/EDA/EDS/EDT/EDV image formats are not directly supported by FlashFloppy. These can be converted to HFE or IMG format using either the well-known HxC software or the free version of Chicken Systems' Translator.

Notes:

  • host = ensoniq is required in FF.CFG for IMG-format support
    • Mirage and SQ-80 880kB IMG formats require use of examples/Host/Ensoniq/IMG.CFG
  • IMG format is especially preferred for 1600kB HD disks

ASR, MR61, TS: These series require an IBM-PC interface with density-select output. These require a jumper on S0 only, and the following additional line in FF.CFG:

interface = ibmpc-hdout

EPS: Ensoniq EPS series typically requires a jumper on S0 only, and the following lines in FF.CFG:

interface = shugart
chgrst = delay-3

The chgrst line requires v3.3a or later: disk changes may not be detected reliably with earlier firmwares.

SD1: Requires a jumper on S0 only. Standard Shugart interface (requires no configuration in FF.CFG).

General Music (GEM)

GEM systems using the 1.6MB high-density disk format require explicit configuration in FF.CFG to recognise IMG files correctly:

host = gem

GEM WS1: Requires jumpers at S0 and JC. Supports 720kB disk images.

IBM 3174

IBM 3174 establishment controllers require the following options in FF.CFG:

host = ibm-3174
interface = ibmpc

Select-line jumper S1 should be installed. The actual drive ID will be determined by the interface cable.

A ready signal is required on pin 4 of the interface. This can be acheived by connecting a diode between pin 1 and 10 of the jumper block as shown below:

Diode Connection

If only a single drive is present then you can install jumper J5 instead of the diode which will cause the ready signal to be permanently asserted.

IBM PC

IBM PC compatibles have a non-Shugart interface which must be explicitly configured in FlashFloppy:

  • IBM-PC interface mode must be configured
    • Strap jumper JC at the rear of the Gotek; or
    • Specify via FF.CFG: interface = ibmpc
  • Strap select-line jumper S1 at the rear of the Gotek
    • S0, S2, MO should all be left open

IBM PS/2

A number of interfaces are used in the various models of PS/2. You may require a 40-pin edge to 34-pin IDC adapter.

Take particular care with models which feature a 34-pin header (eg Model 30): These provide power on pins 3 and 6 which must be disconnected in your interface cable!

Also note: You may need to ground pin 4 (place a jumper at J5) for the Gotek to be detected as a High Density drive.

Kaypro

Kaypro disk images are typically TD0 or IMD format. These can be converted to HFE, or to IMG (raw sector image). In the latter case you will require the format definitions defined in examples/Host/Kaypro/IMG.CFG, distributed with FlashFloppy. Copy this file to your USB stick.

Korg

Korg synths require host = akai in FF.CFG for correct IMG layout detection.

Trinity: Jumpers at positions S1 and JC.

Triton: Jumper at position S1 and interface=ibmpc-hdout in FF.CFG.

KUKA

KUKA KRC1 uses normal IBM-PC HD drives and PC-format disks. You should place jumpers at locations S1 and JC and you can use PC-formatted 1440kB IMG files.

Kurzweil

Kurzweil K2500 requires jumpers at S0 and JC. This is likely to apply across the entire K range.

Memotech

Memotech systems require the following options in FF.CFG:

host = memotech         # auto-detect IMG layout
index-suppression = no  # SDX/FDX require regular index pulses 

Microware

Microware OS-9 system requires jumper at S0 and the following lines in FF.CFG. Emulation will work with 1.6MB IMG files.

interface = ibmpc
host = akai

MSX

MSX systems require host = msx in FF.CFG for correct IMG layout detection.

NEC PC-98

PC-98 FDI and HDM disk images are supported directly. For raw IMG files (rare), host = pc98 needs to be set in FF.CFG.

For most machines the default Shugart interface is correct (jumper only at position S0 at rear of Gotek). Internal pinout varies between PC-98 machines but many use a 26-pin laptop floppy drive connector. Appropriate adapters can be sourced from eBay or wired directly as follows:

(26-pin) -> (34-pin + power)
1 -> 5V
2 -> 8
4 -> 10
6 -> 2
7 -> 12
8 -> 34
10 -> 16
12 -> 18
14 -> 20
15 -> GND
16 -> 22
18 -> 24
20 -> 26
22 -> 28
24 -> 30
26 -> 32

Roland

Roland synths typically work out of the box with no special configuration required in FF.CFG, and a jumper at position S0 only at the rear of the Gotek.

Slow loading

OS and System disks will load very slowly using default FlashFloppy settings on some synths. This can be fixed using examples/Host/Roland/IMG.CFG copied to your USB drive, and rename your OS image file to have suffix .os.img. Read the comments in the IMG.CFG file for more information.

Variations

E-96, G-800, MT-200, MT-300: Jumper at S0 only, and interface = jppc-hdout in FF.CFG.

G-1000 Arranger: Jumper at position S1 only.

MT-120: This synth is reported to require jumpers at S0 and MO, and pin02 = high in FF.CFG.

MKS-100, MT-100, PR-100, S-10, S-20: The Quick Disk version of the FlashFloppy firmware has been tested working on these samplers. Follow the Quick Disk connection and installation instructions, and note that you require jumpers at locations MO and JC.

S-760: Jumper at S0 only, and interface = ibmpc-hdout in FF.CFG.

Sequential Circuits Prophet 3000

Requires host = akai in FF.CFG for correct IMG layout detection.

Sharp

MZ-800: The Quick Disk version of the FlashFloppy firmware has been tested working. Follow the Quick Disk connection and installation instructions, and note that you require jumpers at locations MO and JC.

Sinclair QL

The QL has been tested to work with IMG files on all of the floppy interfaces tried so far: Sandy Q-Board, Miracle Systems Trump Card, and Super Gold Card. FF.CFG needs to be configured as follows, otherwise formatting will not work and HD disks won't work on the Super Gold Card (even if FLP_DENSITY is used to manually set the disk type):

interface = shugart
pin02 = dens

All other drive-related settings should be left at their default values.

Note that all interfaces which use the default Q-Jump Toolkit II version of the FORMAT command fail to determine the correct number of sides on in a floppy image and hence format single sided, giving 720 sectors rather than the expected 1440. However, if a pre-formatted image generated by dumping a real floppy or from an emulator is used then everything works. This is due to a trick used by the command to determine the number of sides only working on real hardware, or when using the HFE image format.

The version of FORMAT on the Miracle Systems Gold Card and Super Gold Card use a different algorithm and work correctly. It is unknown if the FORMAT command in SMSQ/e running on a Super Gold Card works or not.

You cannot format ED disk images but, using examples/Host/Sinclair_QL/IMG.CFG copied to your USB drive, you can read and write to pre-formatted IMG images.

Images can be generated using the Qltools utility in the following manner:

Double-sided, double-density: qltools myimage.img -fdd DSKLABEL

Double-sided, high-density: qltools myimage.qlhd.img -fhd DSKLABEL

Double-sided, extended-density: qltools myimage.qled.img -fed DSKLABEL

Qltools is available as a pre-built binary for Linux and Windows and will build with minor modifications on macOS using the Xcode command line tools up to macOS Mojave (Catalina onwards support only 64-bit executables).

Spectrum

FlashFloppy boasts 100% compatibility with the TOSEC collection of DSK images, however some are missing 'weak sector' information and must be fixed up before use. If you find a game title fails to boot then you can fix the image in two ways.

  1. Using Simon Owen's SAMdisk
# SAMdisk robocop.dsk robocop_fixed.dsk --fix
  1. Using the Python script included in the FlashFloppy distribution
# python scripts/edsk_fix_speedlock.py robocop.dsk robocop_fixed.dsk

Spectrum +3: Physical Connection of a Standard Gotek

See here for guidance on connecting the Spectrum +3's 26-pin cable to the Gotek 34-pin header. Also note that the +3's power cable has +5v and +12v reversed: you must use an adapter or otherwise somehow insert the power connector backwards. If you do not, you will damage your Gotek and destroy any USB stick that you insert!

Note that Gotek clones designed specifically for CPC and Spectrum +3 will use the data and power connectors as-is, and the above should be ignored.

Tandy Color Computer

Requires host = tandy-coco in FF.CFG to indentify DSK images as JVC format.

TI-99/4A

Requires host = ti99 in FF.CFG to identify DSK images as V9T9 format.

TSC Flex

Flex disks can have mixed density (single-density track 0, double-density everywhere else). Suitable formats are defined in examples/Host/TSC_Flex/IMG.CFG distributed with FlashFloppy. Copy this file to your USB stick.

UKNC, DVK

These Soviet PDP-11 clones have a modified IBM track format which must be explicitly configured via host = uknc in FF.CFG.

Yamaha

DX7II-FD

This vintage synthesizer uses an old drive type with an explicit Disk Change Reset signal on pin 1 of the ribbon cable. This requires a hardware modification to the ribbon cable or Gotek, as described in the Hardware Mods.

It also requires the following line in FF.CFG:

chgrst = pa14

EX5

Reported working as an IBMPC drive (jumpers at S1 and JC).

PSR-1700

Reported working with a custom adapter cable to interface to the Yamaha's 24-way FFC connector. Please note you will need soldering experience and the risk of damage is high if you don't know what you're doing! To my knowledge no pre-made adapter kit exists.

QX1, QX5FD

Reported working as a Shugart drive (jumper at S0 only) using HFE image files.

QX3

Requires connecting or jumpering the Motor signal. On SFRKC30AT4.35 you should strap jumper position MOR. On other Gotek models a hardware modification is required. In addition you will require a jumper at location S0 and the following line in FF.CFG:

motor-delay = 500

QY700

Reported working as an IBMPC drive (jumpers at S1 and JC).

RM1x

Reported working as an IBMPC drive (jumpers at S1 and JC). IMG files on the USB drive need to be formatted using the RM1x Disk job menu.

SY77, SY99

Uses a 26-pin connector with integrated power, for which you will need an adapter to convert to 34-pin plus power. A jumper is then required at S0.