All of the development work for the Msc Virtual Instrument system was
performed on a HP64000 software development platform. All of the code
was written in Zilog Z80 and Intel 8051 assembler code. The HP64000
system's had a 5.25inch floppy disk and a special tape cartridge for
archiving the source code. Some of the Virtual Instrument software was
backed up onto 5.25inch floppies. I had stored these floppies along
with other past development source code.
The raw floppy disk format and floppy file system was special for the
HP64000 systems and no current systems could read the floppy disks. No
old HP64000 platforms were available to me for recovering the data so I
set about developing a simple tool that would run on a current system
to recover the data.
The Floppy Disks
The 5.25inch floppy disks were in good condition. Some did not have
write protect tags on them so these were added as appropriate for
safety.
System Used to Recover Data
We use, at BEAM, workstations using the Linux operating system running
on PC hardware. This is a very flexible platform allowing raw access to
hardware such as floppy disks. I had also kept some old 5.25inch
1.2M, 720M and 360M floppy drives. Current PC hardware can still use
these older 5.25inch drives.
So the platform used for recovery of the floppy disks was a RedHat 9
Linux system running on standard PC Pentium 4 hardware with a old style
1.2Mbyte 5.25inch floppy drive installed.
Discovering Disk Format
I installed and used the Fdutils package (fdutils-5.4) to determine the
raw floppy disk format and to read the raw data off the floppy disks.
Information on this package is available at: http://fdutils.linux.lu/. Using these tools the format of the floppies was determined as:
Data transfer rate
Double Density MFM (rate = 1)
Tracks
40 (double step on 80 track
drives)
Sectors
16 sectors (0 through 15)
Sector size
256 bytes
Reading the Raw disk image
A bash shell script was developed to read the entire disk image into a
file on the host system. This utility uses the Fdutils package to
actually read the data from the physical disk. This shell script is in
the file hp64000ReadDisk.
This was used to read the entire contents of the floppy into a system
file. This enabled me to investigate the high level format of the
floppy disks without having to further access the floppy disk. The
original floppy disks are thus only read once by this operation.
Discovering the HP64000 File system and reading files
I searched on the internet for information on the format used on
HP64000 floppies. Eventualy I found some sketchy information including
some supplied by Bob Maxwell. This, together with looking at hex dumps
of the floppies contents, helped me piece together the HP64000 file
format in enough detail to enable me to write a simple C++ program to
read the disks directory and copy the contents of the text files
contaiend out to the hosts hard disk. The source to this program is in
the file hp64000Copy.cpp.
I then used this utility to read the file contained in the floppy disk
image files to the hosts hard disk. The contents of these files was
examined and compared with code in the Msc Thesis to check that all was
Ok.