[Coco] DLOAD upload program for CoCo 1/2?

RETRO Innovations go4retro at go4retro.com
Sun Jan 29 21:19:30 EST 2023


On 1/29/2023 7:43 PM, Allen Huffman via Coco wrote:
>> Perfect! We needed a Commodore-experienced person on this one.
I suspect the current crowd will allow a certain amount of this, but not 
*TOO* much :-)
>> Microsoft’s DLOAD protocol was a load via serial. If it’s accurate that it first appeared in 1977, that would have it something they’d already have had around by the time of PET BASIC, I think. Though I don’t remember how the PET disk drives worked.

Are you sure it's Microsoft DLOAD?  This link:

https://www.pagetable.com/?p=46

Notes that MS was very generic on LOAD/SAVE, and offered nothing else.  
vendors added in the extra stuff.

>> Do you have a pointer to what the Commode disk drive serial protocol was like?

It's complicated:

On the bus (assuming device #8):

  * You would send a $28 which signals device 8 on the bus to "listen"
  * $f0 sent which means open channel 0
  * send filename, with last byte sent in a special way to signal EOI
    (End or Identify)
  * $3f (unlisten)
  * Now, send a $48 (talk to device 8)
  * And a $60 (open channel 0 for reading).  The bus "turns around and
    the drive becomes the master at this point.
  * Data is sent as a stream until the last byte is sent with EOI flag
  * Send $5f (untalk)
  * Send $28 (#8 listen)
  * Send $e0 (close channel 0)
  * Send $3f unlisten

Data is sent with ATN high, commands are sent with ATN low.

I admit, I like it better than the "dumb" peripherals on many other 
platforms, including the CoCo, but it also made for expensive 
peripherals in the day, so everything has a tradeoff.

>>
>> DLOAD”$” then a LIST would have been very similar to LOAD”$”,8,1 then a LIST, provided that the other end sent back a file called $ the could be LISTED.
Yes.
>>
>> Actually, how did the directory work? I don’t remember it having line numbers at the start of each line,
It did.  The line numbers were actually the number of 254 byte "blocks" 
the program took up, and the whole thing was stored like a program (2 
byte line number followed by BASIC data and keywords. IIRC, CBM BASIC 
would re-compute the next line address if you put 00 in for the next 
line address, which I think is what "$" does as a BASIC program.  Note 
that you can also open "$" as a file and you get a different format.
>> but I do remember one could cursor up a few lines and do a L+CHARACTER sequence (shortcut for LOAD) or something to quickly run something.

All CBM shortcuts were 
<first_letter_of_cmd><second_letter_but_with_shift_depressed>, so 
l<shift>o.  The shortcut worked because LOAD ignored data until it found 
a '"" and then read until it found another.  But, the trick only worked 
on tape, as the proper command was/is load "filename",8[,1 for no 
relocation]  You could skip the ,<device> but it then defaults to tape.

Since most int he US moved away from tape, most speedloader/DOS wedges 
patched to make 8 the default drive, meaning your trick would work.

Jim


More information about the Coco mailing list