Disk Tools

What's here

There are three categories of disk tool available via this site

  1. ISIS disk which support the associated Intel ISIS repository
  2. Ports of older disk management tools to work under modern systems
  3. Converting Kryoflux to IMD

You can download prebuilt 32 bit windows versions of the tools from this site and the source code for all of these tools is available on my github site disktools.

If you run into problems with the tools, please check the github site, as it will always have the latest prebuilt 32 bit windows versions of the individual tools.

You may also contact me via the feedback form.

ISIS disk and repository managment

These tools intially started as a way of extracting the files from .IMD and .IMG files of ISIS disks, with the intent of identifying various versions of some of the Intel tools.

As part of this process it became clear that many of the disk images available, were user copies or had errors. Some of the common errors I found were

  • Data corruption. Some were minor e.g. additional padding to a sector boundary, some had corrupt or missing sectors
  • Disk layout was none standard, i.e. system files in wrong place
  • Intel P/N saved as part of the disk image filename, did not match the disk label or in some cases the content was not that expected
  • SD content on DD disks and vice-versa
  • Interleave, Skew and unused sectors did not match the Intel ISIS standard.
In the light of the above, rather than using the disk image copies, I took a different approach
  1. I created a file repository of intel files, structured around applications and version, rather than disk content. For example in the repository the files for the 3 versions of pl/m-80 compiler I have, are stored under the directories
    • Intel80/plm80/3.0
    • Intel80/plm80/3.1
    • Intel80/plm80/4.0
  2. In support of this repository I created a catalog which records the SHA1 hash for every file. This is expected to be unique for every non-zero length file.
  3.  When I get a new disk image, I use my tool unidsk to extract the individual files and to create a recipe file that describes the content on the disk This file also records SHA1 hash for each file, recording whether it exists in the repository. Using this approach it is simple to see the version number of each known file.
  4. For new files, I do a number of checks before adding to the repository, including where possible idenfitying the version. I also check for corrupt files and replace with known good versions if available.

With the repository and recipes, I can then use another of my tools mkidsk, which takes one of the recipe files and creates a pristine disk image. The tool also allows for bespoke disks to be created.

I have also created a tool irepo to help update the repository catalog as files are changed. It also can update recipe files to reflect these changes and check to see if a file is the repository and where it is. This allows simple identifcation of existing files.

Note the above approach is used for ISIS I, ISIS II and ISIS PDS. Although unidsk also supports ISIS IV and some iRMX disks, mkidsk does not, as unidsk saves the information in a different format.

Additional information can be found on the following pages

  • unidsk & mkidsk - the unidsk and mkidsk manual pages
  • recipe files - describes the file format used for recipes. Including how to create your own
  • Intel file repository - details how to set up your own copy of my Intel file repository and the use of the irepo tool.
    It also contains the link to a zipped file containing the executables, the repository, the repository catalog and my collection of recipe files to generate Intel disks.
    There is also a link to allow you to browse the collection.

Ported disk tools

I regulalry use a number of Dave Dunfield's IMD tools, however the original tools require a MSDOS emulator to run on 64 bit Windows and *nix. Although the source code for the tools is freely available, at Dave's Old Computers,  the dialect of C used  is non-standard. To alllow the tools to be run natively on 32 bit and 64 bit computers, I have ported a number of the applications to modern C, in the process I fixed a couple of minor bugs. The specific applications are:

  • IMDU
  • TD02IMD

I also created a minor variant of TD02IMD, named TD02IMG, that creates .IMG files, instead of IMD files. The command line options are identical.

Download imdPorts.zip for the prebuilt Win32 applications, the original documentation and a pdf of the main IMD.TXT file.. The pdf file has bookmarks added to help with navigation.


Converting Kryoflux to IMD

Although there are several applications available that support translation from Kryoflux data files to various disk image formats, none support the Intel M2FM format particularly well.

Sometime ago I wrote a tool I called idd2imd, that supported the conversion of Kryoflux images of Intel ISIS DD disks to IMD format. This current tool flux2imd is a much enhanced version of this tool, that can also convert other formats, including some rare hard sector formats. I have also improved the decoder to better handle the marginal disk reads that arise due to the poor state of the ancient physical media. This is done by automatically trying alternative tuning options, if a sector cannot be decoded.

For usage information see the flux2imd manual page and download flux2imd.zip for the win32 executable.

Although not posted here, I do have some perl scripts that I have written that can extract content from files processed by flux2imd, specifically for Zilog ZDS and RIO formats and LSI hard sector disks. Please contact me via the feedback form if these would be of interest.








Last Updated: 16-Nov-2020Copyright © 2020  Mark Ogden