Reading and writing DD 5.25 disks on a 40 track drive with a greaseweazel (PC-8801, IBM 320/360k, etc.): The “secret sauce”

When writing and reading DD 5.25 disks for the old IBM PC, PC-8801, and similar 40 track formats on a 80 track drive, you’ll run into issues because the software thinks you’re writing an 80 track disk by default. After all, as the PC-9801 showed with it’s 640k 80 track format, there were in fact 80 track DD drives out there and used in at least one popular application (the PC-9801F/VF).

This means that if you want to read and write a 5.25 disk, you’ll need to use a special command. But first, you’ll want to google or look on bitsavers for your floppy drive’s datasheet. Make sure you have the proper jumper set for DD operation, for example on a Mitsubishi drive I had to set my drive to function in 300rpm and 360rpm mode depending on if DD mode was selected. Then; you will want to issue this command:

“gw read –tracks c=0-39:h=0,1:step=2 –dd=L yourimage.scp”

The most important part is the step command, along with the sectors you’re reading. The other important command is –dd=L, this sets pin 2 as low to enable double density reading and let the drive know “hey, this is a DD disk”. This is because 5.25 stupidly had no sense hole like 3.5 did later on. The step command tells the drive to “double step”, and read out a 40 track disk on an 80 track drive. When writing these disks, you will want to do the same:

“gw write –tracks c=0-39:h=0,1:step=2 –dd=L –pre-erase”

This does the same, along with erasing any failed attempts at writing the disk. You’ll probably want to use “gw erase” to wipe the disk as well in this case.

There you go, you’ll now be able to run PC-8801 games on the real hardware assuming both drives are functional.

Design a site like this with WordPress.com
Get started