[Coladam] Transferring ADAM tape/disk images to physical media

Rich Drushel drushel at apk.net
Sun Aug 5 17:16:22 CEST 2012

On Sun, August 5, 2012 7:32 am, John Turner wrote:

> Jim, I think probably the easiest solution to access these images would be
> to create a serial server on the PC. This server could mount DDP and DSK
> images as they currently exist. A serial port on the Adam (even if it were a
> bit banger implemented with an existing port - such as the hand controller
> ports as mentioned by another yesterday) could connect the adam to the PC and
> the PC would act as a virtual Data Drive and Disk Drive. This should allow
> full read and write of the images as if they were physical media.  This would
> probably be easy under CP/M on the adam, but it might require a patched EOS
> Rom for non-cp/m use. The patch would replace the code that loads from DDP
> with code to load over the serial server or rather than replace the ddp code,
> co-exist with it which would allow a ddp image to be duped to a physical data
> drive. Just a thought... John

     My ADAMserve does this already, for hard drive images via a patched EOS
that redirects ADAMnet I/O requests to server devices to the serial link, via
a handshaking protocol.  ADAMserve also allowed redirection of ADAMnet floppy
disk I/O to a physical PC floppy drive, so you could read/write ADAM floppies
using the PC.

     The problem is that the extra code to do the device redirection, via a
user-configurable logical-to-physical device table, takes up space, and for
compatibility with existing Coleco software, EOS must not exceed 8K in size.
I made it work (just barely) by starting from the EOS-7 image (included with
Disk Manager and SmartBASIC 2.0) and doing even more code compaction.  The
sound routines remain intact (unlike hard drive patches), but the max block
number of a block device is limited to a 65535 (2 hex bytes) instead of
4294967296 (4 hex bytes) -- that rewrite was done in EOS-7, not by me, but it
saves many register PUSH/POPs.  Even so, there was not room to include
hardware overrun/framing error detection code in the serial link (even though
I wrote the code and it worked -- it is available as a conditional
assembly option).

     The complete code for the project is at


     I first ran into the 8K EOS limit when working on a project I called
"EOS8", which had the germ of the idea of supporting all 3rd-party ADAM
hardware at a virtual ADAMnet device level.  The rest of my post on this topic
was just
eaten by a login timeout, sigh.  Short version:  the "EOS8" project code isn't
online anywhere, but I do have it archived, and probably should dig it out.

     *Dr. D.*

Richard F. Drushel, Ph.D.            | "They fell:  for Heaven to them no hope
Department of Biology                |  imparts / Who hear not for the beating
Case Western Reserve University      |  of their hearts."
Cleveland, Ohio  44106-7080  U.S.A.  |         -- Edgar Allan Poe, "Al-Aaraaf"

More information about the Coladam mailing list