Epson HX-20 - TF-20 Startup disk creation

The EPSON HX-20 sold with an optional add-on, a dual Floppy unit, that turns out to need it's own boot disk. I don't have one, so let's make one using the disks in the unit and a bog standard 486 PC.

Intro

The EPSON HX-20 was what most consider to be the first "Lap-top" computer. It ran a funky dual CPU setup at sub-megahertz speeds, included a printer and a tape drive, and reasonable IO, while remaining portable and usable away from the desk. However, this did not match the functionality of most computers at the time, so an external Floppy drive, the TF-20 was sold as an accessory.

The TF-20 was (initially) just two quarter-height 5.25" 360K DD / DS Floppy drives in a case with a power supply, but it was modified to work with the HX-20 via serial. This required a CPU, and IO, which in turn required ROM and RAM.

The TF-20 with the HX-20 communication add-on ends up being a Z80 system running at 4 (?) MHz, and boots itself off the startup disk that is shipped with the system.

Unfortunately, I did not receive that disk with my TF-20, so it sat, un-used, in storage. We can't just use a "normal" PC 1.2 MB drive to write these disks, as they are the 360K type, which has less and wider cylinders / tracks.

Thanks to an Adrian's Digital Basement video [1] I had been informed that almost all FDDs use the same interface - including PC FDDs. This meant, than in combination with the image of the disk on vintagecomputer.net [2] that I should be able to use the TF-20's own drive to make the disk in a PC, without any other hardware!

Ingredients

  • 1x TF-20 (we don't need the HX-20 communications add-on card to make the disk, but to test it we will)
  • 1x 5.25" DS, DD (360K when using IBM formatting) floppy
  • 1x PC with a standard 3.5" / 5.25" FDD connector, and a BIOS that can support 360K disks (?)
  • 1x 5.25" FDD cable to connect to the above computer motherboard
  • MS-DOS, or compatible, on the computer
  • IMD floppy imaging tool (to run under DOS) [5]

Steps

  1. Carefully disassemble the TF-20 to remove one of the floppy drives - the RHS unit (B) is recommended as it already has the resistors for the pull-ups installed on it.
    1. Remove the four screws on either sides of the unit
    2. Pull the top cover off (pull upwards)
    3. Remove the bottom cover (pull downwards)
    4. Remove the screws in the top and bottom of the floppy drive
    5. Disconnect the cables from the drive - slide the drive a bit forward if it makes it easier
    6. Free the drive from the main unit by sliding it towards the front.
  2. Adjust the jumpers on the rear of the drive to 010001 (second drive, Head Load on Drive select)
  3. Connect it to the computer - usually the 5.25" connector is the second drive, but double check - if it's between the twist and the motherboard, it's good.
  4. Set your BIOS to match - second drive is 360K 5.25"
    1. tf20-fdd-biossettings
  5. Boot DOS
  6. Copy the IMD tool, and HX20BOOT.IMD to the computer (probably via the other floppy)
    1. I've done it like this: tf20-fdd-adrive
  7. Insert a 5.25" Double Density, Double Sided disk into the HX-20 drive
  8. Run IMD to write the image to the disk
    1. A: to change to the first floppy
    2. dir to confirm that IMD and HX20BOOT.IMD are on the disk
    3. imd to start IMD
    4. Read the instructions if you want
    5. ESC to exit the guide
    6. S to configure IMD
    7. Drive = B
    8. Cylinders = 40
    9. To format the disk and verify that IMD and the drive is working, we need to set some values that IMD will use just while we format the disk. IMD will usually pull these settings from the IMD file.
    10. Sides = Two
    11. Double-Step = Off
    12. Interleave = 1
    13. ESC
    14. F to format
    15. Enter 16 Sectors/Track? when prompted
    16. Accept the suggested data rate/type (250 kbps MFM for me)
    17. Set 256 Sector size
    18. This should run through without reporting errors, if the drive is working
    19. Return to the main menu
    20. Out of an abundance of caution, reset Interleave back to As read or BuestGuess
      1. tf20-fdd-imd
    21. W to write a disk
    22. Select the HX20BOOT file on A:
    23. At this point the emulator (PCem) seemed to break down, so you'll need to play it by ear
    24. Once IMD is finished writing the disk and the activity light stops, it's safe to remove the disk.
  9. Remove the disk, and re-assemble everything.
    1. The DIP switches will need to be restored back to default, which is 010010 for the second drive)

Verification

Once you've made the disk, the TF-20 should emit a particular pattern of disk accesses on a "successful" boot. You can see this on a video over on the vintagecomputer.net site again [3]. It's roughly described as one "long" access (~500ms), one "short" (~200ms) and then another long, before going idle. Each access causes a click of the head loading, and the light comes on for the duration.

At that point, you should be good to hook it up to your HX-20.

Theory

As described in Adrian's video, most FDDs use a "Shugart-Style" interface, as they were the the primary company involved in the design of the drives. Any units that weren't sold as part of a highly-integrated unit (for example, Commodore 64 FDDs) would likely be using off-the-shelf units, in the same way the PC did. We can confirm this with the TF-20 Service manual, which is available online, that shows the pin-out is basically the same as the "standard".

The PC actually uses a non-standard "trick" - the Shugart interface has four drive-select lines, allowing you to run four drives. Normally, jumpers on the FDD itself selects which select line the drive listens to. These select lines are arranged in such a way that allows you to swap / invert pins 10,12,14,16 around, which then swaps which signal the drive is seeing. The IBM PC used this to remove the need to set jumpers on the drives. You can see a more detailed explanation of this here: [4]. The downside is that now there's only a way to distinguish between two drives, rather than all four.

When we connected the EPSON drive to the PC, we connected a "standard" Shugart drive to a PC, as the B: (second) drive. We also set the jumpers on the EPSON drive to identify itself as the second drive. This all "just works" since it's before the twist, and all of the signals are in the right place.

The DIP Switches on the drive that we set configure the drive to behave as the second drive (thus answering the second "Drive-Select" signal) and to move the read/write head to the disk (called loading) when the drive has been selected. Most or all PC 5.25" drives load the head when the latch is pressed, so this signal needs to be remapped.

tf20-fdd-headers

Once the settings are changed on the drive, it becomes indistinguishable from a normal PC 360K drive, and allows us to read / write the disk.