Shop OBEX P1 Docs P2 Docs Learn Events
Booting a Prop from MS-DOS — Parallax Forums

Booting a Prop from MS-DOS

TubularTubular Posts: 4,697
edited 2008-09-25 00:42 in Propeller 1
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

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2008-09-24 15:08
    There is a "sticky thread" at the top of the Propeller forum thread list called "Propeller Announcement, FAQ and Thread Index stickies". One of the entries is "Graham Stabler's Good Thread Index". Under "Non-Windows Development" there's a link for "Propeller Loader" which is a Propeller downloader written in Spin. That should get you started. Some things to remember:

    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.
  • hippyhippy Posts: 1,981
    edited 2008-09-24 17:29
    @ tubular : Are you talking 16-bit MS-DOS ( 6.20 etc ) which is COMMAND.COM, CONFIG.SYS, AUTOEXEC.BAT and little else, 8-dot-3 filenames, or 32-bit MS-DOS as presented at the DOS Prompt under Windows ?

    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.
  • TubularTubular Posts: 4,697
    edited 2008-09-24 20:47
    Thanks Mike and Hippy for your pointers.

    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
  • hippyhippy Posts: 1,981
    edited 2008-09-25 00:42
    You should be okay; if it will run under MS-DOS it should run under ROM-DOS and with the extra benefits of what ROM-DOS provides. The only challenge there is getting access with PD7 to ROM-DOS abilities, but that's a secondary issue.
Sign In or Register to comment.