Transferring disk imagesUnder the UCSD P-System, the easiest way to transfer an entire disk image is to
use the File / Transfer command to copy the entire disk drive device such as #4: to the
REMOTE: device. This sends the disk's blocks out the serial port as unfiltered binary. By
capturing the serial stream with a nearby computer, using a terminal program that won't
filter the bytes, you can easily create a disk image in a few minutes.

This transfers the disk image in logical blocks, as opposed to the
physical order of blocks on the disk, so no de-skewing is necessary to read the blocks.
Note that the DOS-hosted P-System used DOS disk image files like "PSYSTEM.VOL"
in this same format.

Because this works in a raw fashion, I can use this to read RT-11 disks
under the P-System, too. However, RT-11 floppy disk format is somewhat sequential, meaning
UCSD often thinks it's read past the end of the disk and gets an error reading an
unformatted part of the disk, but this doesn't invalidate

Later versions of the P-System used .SVOL files in this fashion. I
believe these tools are compatible with .SVOL files. These tools are also
endian-insensitive. They can handle both types of UCSD disks.

My tools for reading RT-11 and UCSD P-System disksMy programs are:

tdThis program displays a directory of the files in a UCSD disk image file.

buThis program bursts the files from a UCSD disk image file. It is smart about
recognizing UCSD text files, and performs the conversion from the compressed text format
to ordinary ASCII. It optionally makes filenames compliant with WinNT. It also sets the
file dates to match those on the original disk.

tdrtThis program displays a directory of the files in an RT-11 disk image file.

burtThis program bursts the files from a RT-11 disk image file. It optionally makes
filenames compliant with WinNT. It also sets the file dates to match those on the original
disk.

Source codeHere is a link to a Zip file containing the ANSI C source code to my utilities
for reading UCSD and RT-11 disk images. Here's a zip of the source code. Here's
a zip of the Windows command-line
versions.

The source should be very portable. It is not dependent on the processor
endian. The time-stamp code hasn't been ported to Unix, but it should be easy to do if you
need it. The code includes a routine to translate Radix-50 (RAD50) characters to ASCII.

Future plansOne disadvantage to this disk-copying method is that it doesn't recover from
errors. Under the UCSD P-System I.5 system on my Terak, a simple CRC error while reading a
disk causes it to abort. The system becomes unstable at this point, and the REMOTE: device
no longer works, forcing a warm reboot.

A better scheme would be less sensitive to errors, and incorporate at
least some way to mark which blocks of the disk were unreadable.

Alternative disk copying methodsOn a PC, one alternative is Anadisk, a shareware program from Sydex. It can copy a disk image from a disk drive
connected to your PC. This can include a properly wired eight-inch disk drive. I've found
this program doesn't work under WinNT, forcing you to reboot to DOS. Anadisk has defined
its own optional file format that adds an eight-byte header to each sector of the disk
image. This scheme could be used to record which blocks had errors.