[Coco] OS-9 Level II booting from Palm Vx

John R. Hogerhuis jhoger at pobox.com
Tue Nov 9 14:57:55 EST 2004


OK, I thought I'd let folks know that I've had my first success with
PWire, a Palm implementation of DriveWire 1.1 virtual disk drive serial
protocol.

Yesterday I booted the version of NitrOS-9 6809 that comes with the
DriveWire cable that I loaded onto a PalmVx. Incidentally, I'm
CLOADM:EXEC 'ing the DWDOS from an MP3 player... no disk drive is
connected to the Coco 3 at all, and there is no ROM chip. Boisy made
this special version of DWDOS at my request some weeks ago.

I am not done however, and this milestone did not come without some
difficulty:

1. I also have a Palm IIIxe, and I can't boot my Coco 3 from it. I
believe the DriveWire 57600 bps serial input routine is somehow
incompatible with the IIIxe. I can boot from the IIIxe if I pass the
connection through my sniffer (the sniffer is just a laptop with two
serial ports... it actively passes data).

2. The CRC algorithm in the DriveWire 1.1 spec is not correct. The
actual CRC for DriveWire is just a logical XOR of all bytes in the
sector being read. Here's what it should actually look like:

UInt16 compute_crc (UInt16 *datap, int numbytes)
{
   unsigned i;
   unsigned limit = numbytes / 2;
   unsigned crc = 0;

   for (i = 0; i < limit; i++, datap++)
      crc = crc ^ *datap;

   return (crc);
}


3. I've only implemented 'READ' for now, so I can boot, do directories,
run utilities, etc. but I can't write to the DSK image (yet).

4. I found a utility called 'par' which I use to convert the .DSK images
to .PDB "stream" files which can be loaded on the Palm and read/written
with the file stream API. However, for the long term I think it's
important to add run length encoding or some other kind of fast
compression to the images, since these images take up a lot of space,
and take a long time to load onto the Palm. This will not affect the DW
protocol (though transmitting/receiving compressed blocks might speed
serial comm up a bit), it's an internal thing to PWire.

So, next I can implement write, add some GUI so that images can
interactively be assigned to drive numbers, and I think I'll be done :-)

-- John.




More information about the Coco mailing list