[Coco] tape format and .cas file problems

William Astle lost at l-w.ca
Wed Nov 19 15:19:05 EST 2008


Roger Taylor wrote:
> Probably overkill.  Also, CLOADM only supports one start address as far
> as I recall.  This means the entire ML program has to be contiguous,
> unlike the multi-record LOADM format which can jump all around RAM doing
> what it wants.
> 
> I remember back in the 80's seeing Rainbow magazine ads selling CoCo
> tricks like "Auto executing tape programs" but I could be wrong.  I'd
> like to know how a lowly 16k or even 4k CoCo 1 could do this just by
> typing CLOADM.  I don't see anything in the tape format that allows for
> such a trick.
> 

One way to autostart a cassette program:

- create a program that loads starting at $182
- said program relocates itself to somewhere sane if needed and calls
the appropriate ROM routines to read the rest of the program from tape
(possibly "cloadm" to load the next binary from the tape).
- said program invalidates the reset vector to force a cold start upon reset
- then transfer control to the newly loaded program

Of course, this assumes that the program has no need of the BASIC ROM
because it will mess up most of the vectors. On the other hand, it
should work on any Coco. It should also work for LOADM as well.

I suppose one could, theoretically, do the same thing by hooking the the
command interpretation loop vector.

That said, anyone with Extended Basic would be able to load multi-record
files from tape. Extended Basic actually replaced the CLOADM command
with a different version that can handle multiple records which makes
autostarting trivial since one can load the entire file and have the
last block hook the IRQ or other basic vector.




More information about the Coco mailing list