[Coco] Programs larger than 32K?

William Astle lost at l-w.ca
Mon Jan 21 17:35:54 EST 2019


On 2019-01-21 2:59 p.m., Tormod Volden wrote:
> The Dragon 64 has a second BASIC ROM, with the same code (except
> bootstrap) assembled at origin $C000 instead of $8000. A pin on PIA1
> switches between the ROMs. It should be possible to do the same with
> the CoCo BASIC, and load the high BASIC from disk.

In theory. There are a couple of fun things to be aware of:

* Falling off the end of the program would result in "BREAK IN ####" if 
the address of the end of that line's text is above $7FFF. That's 
basically harmless, but it's worth being aware of.

* Color Basic, Extended Basic, and Disk Basic combined require about 23K 
and *all* of that would have to be relocated. You could gain an extra 8K 
of program space by doing so on a Coco 1 or 2 with 64K RAM, though.

* On the Coco 3, the dead space in Disk Basic and the Coco3 Basic stuff 
is only about 2K total unused space so it's probably not worth the 
hassle of doing on a Coco3.

Depending what you're doing, a couple of strategic USR functions 
implemented in assembly which fetch information from the extended memory 
on the Coco3 combined with a loader that puts the data into extended 
memory might give you more bang for your buck since it's relatively easy 
to load one or more binary files into arbitrary memory blocks in a 
loader. You could use LPEEK and LPOKE but those are quite slow.


More information about the Coco mailing list