Creating Apple disk images with the Central Point Deluxe Option Board

The Central Point Deluxe Option Board can be used to read floppy disks written on an Apple II in a standard 5.25″ drive on PC running DOS.

The TransCopy (TC.EXE) software automatically detects some Apple disks and copies them to an image with one track.  The result is a bit-level image of the disk much as an Apple disk controller card would see it.

One issue with these images is that the image contains only one copy each track.  This can be used to make standard disk images, but often more data is required if a sector crosses the index pulse.

Fortunately, the TC.EXE executable can be patched relatively easily.  Changing 8 select bytes will cause TC.EXE to believe that every disk is an Apple disk, and copy 16Kbytes or even 32Kbytes of data to the image file.

Before the TC.EXE executable can be patched, it must be unpacked.   This is done with an unpack tool, such as can be found at: http://ftp.sunet.se/pub/simtelnet/msdos/execomp/unp411.zip

Running unpack on the 5.40 version of TC.EXE results in:

unp i tc.exe

processing file : TC.EXE
DOS file size : 41207
file-structure : executable (EXE)
EXE part sizes : header 512 bytes, image 40695 bytes, overlay 0 bytes
processed with : EXEPACK V4.05 or V4.06

processing file : TC.EXE
DOS file size : 41207
file-structure : executable (EXE)
EXE part sizes : header 512 bytes, image 40695 bytes, overlay 0 bytes
processed with : EXEPACK V4.05 or V4.06
action : decompressing… done
new file size : 61600

The unpacked version of TC.EXE can be patched in two ways, one with the standard DOS debugger, or with a hex editor.

To patch the software with debug, the following can be done:

debug tc.exe
a 48c4
jmp 48d1

a 473a
mov dx,4000
nop

e cs:6838
3f

g

The first assemble command forces the program to detect all disks as Apple II disks.  The second assemble causes it to save 0x4000 bytes to the image file.  While the 4000 can be made larger, keep in mind that the DMA process will only load 64k at a time.  The final alteration changes the DMA count table to capture 0x4000 bytes (times two).  This should also be adjusted for even larger images.

The resulting program is run and will output images that are 0x4000 bytes in length.

To adjust the software in a hex editor, simply alter the following bytes and save:


4914: EB 0B
478A: BA 00 40 90
6888: 3F

or, to capture 32Kbytes at a time:

4914: EB 0B
478A: BA 00 80 90
6888: 3F

On my system, I have noticed that there is usually a burst of invalid data immediately after the track ends. However, data following it is valid until the end of the capture.

Information regarding the TC.EXE image format can be found here: ftp://ftp.blarg.net/users/genet/image_format.txt

Each track can be found by using the four bytes at 0x305+track*4 and shifting the results 4 bits left to obtain the index for the track within the file.

Generally, the first track is found at 0x4000, and for 32k captures, will be at 0x4000, 0x010000, 0x020000, 0x030000, and so on.

These tracks are captured starting immediately after an index pulse is detected and are thus index aligned.

I have had some success with extracting the last 16Kbytes of each track from an 80 track 32Kbyte TC.EXE image and duplicating them twice to create a standard quarter-track EDD disk image and using the image in an emulator.