5150: Setting up HxC2001 Floppy Disk Emulator

MAIN 5150 REFERENCE

TABLE OF CONTENTS

  • Why Use Floppy Disk Emulators
  • What Disk Drive Emulator Device to Use
  • Dip Switch Settings
  • Floppy Disk Ribbon Cables
  • Power Connector
  • How to Use HxC2001 Software
  • Required: Specifying a Configuration (HXCSDFE.CFG)
  • Caution and Limitations

Why Use Floppy Disk Emulators

The main reason to use a disk drive emulator is because I have no 5.25″ floppy disks. I couldn’t do much with my 5150 except boot to ROM BASIC. I’ll discuss ROM BASIC in another article (where I did acquire a cassette deck to save and load BASIC programs).

Then I discovered WinWorldPC (https://winworldpc.com) that has an archive of many IBM PC software titles (to find bootable DOS images, search for “PC DOS” at their site). To use these data images, there are two options:

  • (option 1) export them back to physical media and boot them using a physical 5.25″ drive
  • (option 2) use a floppy disk emulator.

Option 1 is more “authentic” but is also more tedious and has some limitations. The main limitation is being limited to 5.25″ disks. For an excellent write up on one way to do this, using the 8250 serial IO, see here.

Option 2 has these benefits:

  • Can emulate 5.25″ and 3.5″ drives (and transition without rebooting)
  • An individual drive emulator will model two disk drives in one device (i.e. for one device you get both an A: and B: drive), making it easy to configure up to 4x disk drives that the original 5150 supports
  • SD cards can store many disk images (I use 2GB SD cards) and the LCD screen and buttons of the disk emulator device lets you swap between images (replicating the action of “removing a disk” and “inserting a new disk”)
  • Saves “wear and tear” on the original mechanical disk drives (while also using less power)

Going with Option 2…

I ordered 2x HxC devices, since I didn’t realize one device would model two disk drives. This worked out anyway since it let me explore setting up 4x disk drives (2x “internal” and 2x “external”) with the stock 5150 FDC (floppy disk controller).

Be aware that the stock FDC is limited to supporting only up to 3.5″ 720KB disks (and I believe both the IBM PC 5150 and IBM PC XT use the same FDC). This FDC does not support high density (HD) media, which means it can’t support 5.25″ HD 1.22mb disks either. The original 160KB and 180KB disks are quite limited in capacity, so being able to use 720KB is very convenient for exploring many old software titles.

Also supporting two devices is very convenient, as you’ll typically BOOT from Drive A: and then have a program or data in Drive B:. As those programs terminate and “return to DOS” they may need to re-load the COMMAND.COM that is on the BOOT disk.

What Disk Drive Emulator Device to Use

As of Summer 2021, I went with the HxC2001 device (which are made in Poland and sold through a France-domain website). While a little expensive, I had no trouble with the order and they do work very well (just the documentation and software support may be a little tricky to find, but they are available in English).

http://hxc2001.free.fr/floppy_drive_emulator/

There are a few variations of these devices (such as a version that uses USB thumbstick instead of SD cards). There is a smaller “mini” version. They also have an older RevC version that uses jumpers while the newer RevF uses dip-switches. The choice just depends on how you want to use these (such as what enclosure you may want to use).

The specific device I went with is: (note the “34-pin” is most important for IBM PC)

SD HxC Floppy Emulator REV F 3″1/2 Form factor/cased (HE10 34 pins interface)
https://lotharek.pl/productdetail.php?id=27

The HxC2001 itself can support HIGH DENSITY (HD) formats, however remember that the standard IBM PC 5150 floppy disk drive controller does not. It only supports DOUBLE DENSITY (DD). This limits 5.25″ formats to 360KB and 3.5″ formats to 720KB. Also keep in mind that DOS itself has some format limitations depending on the version.

A very nice summary of which DOS has what limitations is at the following Wikipedia page (search their site “comparison of DOS operating systems”):

https://en.wikipedia.org/wiki/Comparison_of_DOS_operating_systems

For starters, I would recommend PC-DOS 2.10. This has all the same BASIC samples as PC-DOS 1.0, and PC-DOS 1.x only supports 160KB disk images. The 160KB format is a little tough to work with due to some adjustments in that first year of release in 1981 (you can boot to PC-DOS 1.0 using an 160KB HFE image, but adding data to it or creating new 160KB disk images may not be straightforward). So, PC-DOS 2.10 gets you that “original” experience and with a little less hassle (by using a 180KB format instead of the actual original 160KB format).

PC-DOS 3.00 is the last version that works with 64KB of system RAM.

If you want to use a fixed disk, keep in mind that very early versions of DOS are limited to what capacity can be used (again, consult the Wikipedia “comparison of DOS” chart to see which version of DOS supports up to which fixed disk capacity).

For me, I settled on DR-DOS 3.41 since it can be installed with under 256KB system RAM and supports 128MB fixed disks.

The DR-DOS 3.41 installer may fail, but just use the following commands to initialize the drive…
SYS C:
MKDIR C:\DRDOS
COPY *.* C:\DRDOS

Dip Switch Settings

The HxC manual was confusing to me on exactly how to setup the dip switches. I’ll just say, through trial and error, I settled on the following (for both my internal and external HxC) as shown below. This setting lets a single device emulate both A: and B: drive.

ID0A UP
ID1A DOWN
ID2A UP
ID3A UP

ID0B DOWN
ID1B UP
ID2B UP
ID3B UP

Floppy Disk Ribbon Cables

The next challenge in using a floppy disk emulator device is figuring out what ribbon cable to use. There are just a few things to know:

  • The cable is 34-pin (not 20, not 37, not 40 – IBM PC disks are 34-pin)
  • The picture below shows which way PIN 1 goes (typically indicated with the red wire). It goes “towards” the 4-pin power header (or towards the “middle” of the device).
  • There is a “twist” in the cable to distinguish A: vs B: drives. This twist can be at the “beginning” or “end” of the cable, that may just impact which drive is treated as A: vs B:.
  • (I may be wrong, but in an early experiment it seems I used my drive emulator with a cable that didn’t have a twist; the emulator itself may be able to model this difference without a twisted cable — but it so happened I still had an old proper disk cable, so I ended up using that)
(1) is the ribbon cable with twist and (2) is the 4-pin power connector

Power Connector

The final challenge is how to power the disk emulator. Since I don’t plan to use the original 5.25″ drives in the 5150 CPU, I removed the large Molex power cable on both those drives. This ensures there will be no “wear and tear” on those disk drives, since they won’t even be powered up.

Respect: In the 1970s, floppy disk drives were the size of a small refrigerator (but could have capacity up to 1MB). It took a lot of ingenuity to continuously reduce the size of disk drives, to figure out how to build smaller motors needed to physically “spin” the disk in a reliable fashion. Disk were used well into the 1990s, until portable read-write “solid state drives” became more reliable at larger capacity. (“SRAM” was available in the mid-1980s and used in some commercial cartridge games for saving game-state, but the capacity was very limited; see here)

The Molex connector may be “snug” so be careful in removing it from the disk drives. It can be removed by hand, no specific tool is necessary (smaller hands might help, or might consider removing the FDC out of the way to make this easier and less risk to equipment — but removing the FDC does require a screwdriver).

Once this power plug is disconnected from the original floppy drives, you can then get a “Molex to 4-pin power splitter adapter” to split the “large 4-pin Molex” connector into two “mini 4-pin” connectors. I still had many of these in storage, but you can find them on Amazon still. Search something like “4 Pin Molex 5.25 Male to 2 X 4 Pin 3.5 Floppy Drive FDD Female Y-Splitter” and it will look something like this:

Kentek 8 Inch 8" 4 Pin Molex 5.25 Male to 2 X 4 Pin 3.5 Floppy Drive FDD Female Y-Splitter M/F IDE DC Internal Computer PC Power Cable Adapter Cord

The smaller white 4-pin connectors plug into the 4-pin power pins of the HxC emulator. The length of the cable will depend on how you end up settings things up. There are a few options:

  • You can try to mount your floppy disk emulator within the case itself (once you have a floppy disk image you like, you don’t really need to switch SD cards often). If you’re not to worried about the cosmetics of the case, you can just Velcro the devices in place.
  • If you have an available expansion slot that is not being used, you can remove its slot cover and just tether the cable through the back of the case. This won’t be detrimental to airflow or cooling.
  • If it a temporary setup for a few days, you can just leave the case off and hang the disk emulators to the side. As in the previous option, you may want to use longer floppy disk ribbon cables and power cables for this.

For mounting the 3.5″ enclosure itself in place of the 5.25″ stock disk drives, I don’t have much to recommend there. I didn’t want to risk any damage to the 5.25″ stock drives, so I just kept mine in place.

How to Use HxC2001 Software

The SD-cards used by the HxC2001 are normal FAT formatted. The firmware will read the FAT format and look for valid image files (typically HFE files), then it presents that list of files on its little LCD display (long filenames are scrolled). The HFE files themselves will hold multiple DOS files (.EXE, .COM, .SYS, .TXT, etc.).

And yes, it can be a little tedious to convert other image formats into this HFE format. The HxC tool does have a Batch Conversion option. Also, there was one key requirement to getting the SD-cards to work with the HxC – and that step requires obtaining the HxCFloppyEmulator software. So I’ll explain that first:

At the HxC2001 site, click the Download page, and scroll down to look for the section…

Download : SD HxC Floppy Emulators

Then look for something like…

HxCFloppyEmulator software v2.5.6.6

This is “informal software” which just means no formal installer. You just uncompress the archive and remember where you uncompressed it at. The executable will be something like this:

Run that executable, then you can create disk images using the “Floppy image|Create DOS/AmigaDOS disk” (ALT+C)….

A File Browser will open up that is blank. To actually Create the disk, first select a format. For the IBM PC, two common formats will be:

  • 5″25_8″ 360KB DSDD 360RPM FAT12 (DS = Double Sided, DD = Double Density)
  • 3″5 720KB DSDD FAT12

Once you select the “File system type”, then make sure to click “Create Disk”. From there, you can now use “Get Files” to insert programs or data that you want to try out on the actual IBM PC system. These can be files extracted from other images (e.g. by using WinImage), or uncompressed out of zips. You can also load certain other disk images, but just be warned it may not always work on the 160KB and 180KB images (you can try “Load Raw image” but this gets a little advanced). Some images are “non-dos” disks (like the original Flight Simulator 1.0 or Microsoft Adventure 1.0), and don’t conform to the typical layout of files.

Note you can use the HxCFloppyEmulator software to create new disk images, or also add files to existing images.

Once you have created or acquired HFE disk images, then you just copy them to the SD card. Here is a sample of one of my SD disks, where I have multiple DOS versions that I can boot with (selected when powering on the system) and a few disks to use for Drive B: (the mTCP tools, the 3C509B NIC driver, and the SoundBlaster installation disks)

Required: Specifying a Configuration (HXCSDFE.CFG)

One last final important thing, the Configuration Settings. I was initially frustrated that the HxC wasn’t working, until I realized that firmware explicitly looks for a configuration file first. If that is missing, then no images will be hosted by the emulator.

For each SD card that plan to use in the HXC disk emulator, you need to define an HXCSDFE.CFG file (you can also copy a .CFG file from other SD media). Even if not using any special configuration, a configuration file must exists. But with this configuration, you can do things like have certain images loaded on startup and autobooted (like a preferred version of DOS).

Use Settinjgs|SD HxC Floppy Emulator settings to open the settings dialog. Then be sure to click “Save config file” to save it to the SD card.

Caution and Limitations

This is an authentic disk emulator, which means the disk images created could technically be written to physical disks and used. This means you are limited to the original capacity of those disks, like 360KB or 720KB.

Also keep in mind the IBM PC (and XT) has an 8088 processor. Not every .EXE file is limited to just the 8088 instruction set, and they might use 80186/80286 or even 80386/486/Pentium instructions. If that happens, the old 8088 processor won’t know what to do and might “dead lock” (go into an infinite loop on itself), which is why some programs just “won’t work” on the old processor and makes it “lock up.” These machines are “backwards compatible” but not “forwards compatible.”

Most .COM programs should work on an 8088 IBM PC, but again this is not guaranteed (there may have been some 80186 assemblers, or in any case nothing really prevents a .COM from being loaded and having more modern opcodes embedded inside — as data could be executed as code, which is both the danger and benefit of “real mode”).

So, the breakdown is like this:

  • Many programs from 1981/1982 were “non-dos” format, since DOS was new and many people didn’t even know how to program DOS. So these “booter” programs either went straight to code and just used very little BIOS calls, or had their own “mini-OS” built in. This fashion was also an implicit form of early copy-protection. The HXC can support these kinds of images, but the setup may be a little more challenging.

  • 1982-1986 most programs were still IBM PC 5150 “real mode” compatible. This is the “sweet spot” of where most programs can be ran on the IBM PC.

  • 1985-1987: The “80186” and ‘286 were sort of intermediate half-steps. While some compilers did make use of their instructions, there wasn’t (yet) a huge market of users, so it was generally avoided by developers (i.e. they tended to keep their programs compiled as 8088-compatible).

  • By 1987, many developers and compiler tools had gained an understanding of the benefits of ‘386 and accessing more amounts of RAM (“protected mode”). But it just took awhile for these systems to become common in the home/office to make it worth developing software that took advantage of their features. By 1990 is was fairly common to see “minimum requirements” of software to be an 80386.

This is to say, running the oldest IBM PC software may be tricky (1981/1982 era). Then any software after about 1990 also becomes tricky (even if it runs, it may just be too slow without processor upgrades). So that’s what you’re looking for: software from about 1983 to 1986. Outside of those years, the software may be either “too primitive” (“non-dos” format) or “too advanced” (‘286/’386 required). There will be exceptions, as I have found interesting titles from 1982 or newer than even 1990 (Kroz 2 for example).

Leave a Reply

%d bloggers like this: