[Coco] coco in all ram mode mode
William Astle
lost at l-w.ca
Wed Apr 3 13:55:08 EDT 2019
First: to the OP, it would be a good idea not to put your entire message
in the subject line. I deleted the original message because it was blank.
In the interest of (un)clarity, the Coco doesn't have any "resource
management" program or anything like that. The Basic ROM set is self
contained. Once you swap out the ROMs, nothing is going to interfere
with what you're doing other than a hardware reset.
You do have to make sure that the program you load handles all aspects
of the hardware properly, but that's pretty straight forward on the
Coco. You generally only need to make sure you handle whatever
interrupts you have enabled properly and, of course, drive whatever
aspects of the hardware you're using (VDG, tape, disk controller, etc.).
This is, in fact, exactly what OS9 does.
You do have to make sure your loading method doesn't swap out the stuff
it needs to do the loading before it finishes, of course, so that may,
in fact, require a two stage loader. Depending how big your program is
and how it utilizes the memory map, it may be possible to load it all at
once and then it just takes over the entire machine when it runs. Many
games do this.
Nitros9 uses a two stage boot. The "DOS" command (or equivalent loader
program) first reads in a minimal set of code including the drivers
needed to read the rest of the system, from a well known location (in
this case, track 34) which relocates itself and then completes the
loading. The second stage doesn't rely on the ROMs at all. The first
stage obviously does. In this case, the Basic ROM is serving the purpose
of the BIOS or EFI scheme on a PC.
On 2019-04-03 11:28 a.m., Salvador Garcia via Coco wrote:
> This is an interesting question.
>
> I don't have experience with doing this on the CoCo, so I'll rely on past experience with similar systems to speculate.
>
> My first thought would be that you can't.
>
> The CoCo does not have a fully developed OS, like NitrOS09, OS/9, Linux, Windows, etc.where the language is run as an application. Remember GWBASIC under MS-DOS?
>
> Instead, the CoCo's BASIC is closely coupled with the software that manages the CoCo's resources which itself might use BASIC's ROM calls. If you attempt to clear BASIC you'll have to be careful because you might be wiping out code that the management program uses, causing the computer to become unresponsive or crash. To wipe out BASIC and then load something else, you might have to do it in stages:
>
> 1. Load your own monitor system to take over the CoCo completely, eliminating any dependencies on the existing code.
> 2. Have the loader load the new OS into memory and initialize all resources and interrupt vectors
> 3. Have the loader transfer control to the newly loaded OS and carry out any clean up to free whatever resources the loader used.
>
> I would prefer to have a more traditional loading system where the loader boots on startup and bypasses all the BASIC/monitor code like I *think* NitroOS9 and OS/9 does. I emphasize "think" because I don't really know how these OSes load. :-)
>
> Salvador
>
>
> On Tuesday, April 2, 2019, 4:30:20 PM CDT, Steve Pedersen <666jacktheknife666 at gmail.com> wrote:
>
>
>
More information about the Coco
mailing list