Booting a Prop from MS-DOS
Tubular
Posts: 4,697
Dear fellow Proppers,
I need to write a utility that can boot up, and possibly program the EEPROM, from MS-DOS (this is not a miss-print)
The datasheet talks about "converses with the host" during boot-up. Where can I find the detail on this protocol?
Thanks
tubular
I need to write a utility that can boot up, and possibly program the EEPROM, from MS-DOS (this is not a miss-print)
The datasheet talks about "converses with the host" during boot-up. Where can I find the detail on this protocol?
Thanks
tubular
Comments
The Propeller is running off its internal clock during the bootload. This is not calibrated and the Propeller can't accurately time serial communications. To get around this, the boot protocol uses a ratiometric technique where bits are represented by pulses either 1T (0) or 2T (1) in width and imbeds these pulses in serial characters so they can be sent via an ordinary serial channel. The start bit of the serial character $FF becomes a 1T and the start bit plus the first data bit of the serial character $FE becomes a 2T. You can optionally pack 3 bits per serial character this way.
In either case it's possible to write a program to do what you want but for 16-bit MS-DOS you may not have access to USB ports or indeed anything other than COM1 through COM4, and you won't have long filename support. If you can live with that, no problem.
As part of a project I'm working on I will be writing a command line downloader and that should be portable to 16-bit MS-DOS. I don't know when that will happen.
It shouldn't be too hard to write your own. There are quite a few examples of bootloaders in various languages on the forum plus discussion of the protocol and together they should give you a good idea of what's going on and what the protocol is. There's no 'official documentation' in any other form that I know of.
There are a couple of useful links on the Propeller Wiki ...
propeller.wikispaces.com/Bootloaders
propeller.wikispaces.com/Download+Protocol
If yourself ( or anyone ) finds example bootloaders and other useful documentation on the forum, then please do feel free to update those pages. Just links and a short description will do, others can tidy it up later.
And as an aside - Many thanks to reltham for the recent effort of knocking the Wiki into shape, and of course to everyone else who has contributed.
Its for 16 bit MS-DOS. ROM-DOS to be exact which has support for long filenames, some networking and socket apps (ftp/http/email) and some usb (flash drive and keyboard connection anyway). I don't think it supports com ports over USB.
The language is microsoft basic PD7 (Quickbasic 4.5 heritage)...
tubular