[Coco] Brother Jeremy's OS-9 Level 3 (are you out there, Jeremy?)

L. Curtis Boyle curtisboyle at sasktel.net
Thu Apr 12 19:25:57 EDT 2007

On Thu, 12 Apr 2007 16:52:28 -0600, Allen Huffman <alsplace at pobox.com>  

> Microware did OS-9 Level 1 (flat memory model, everything in one address  
> space), and OS-9 Level 2 (where memory could be remapped).  CoCo 1/2  
> used Level 1 (64K) and CoCo 3 used the MMU to map in 512K or beyond in  
> 8K blocks, thus Level 2 memory management.
> I am not sure where Level 2 was used outside of the 6809 (original)  
> version of OS-9.  Every other OS-9 and OS-9000 (today just called OS-9)  
> made by Microware was Level 1 (flat memory model).

As far as I know, only the 6809 version (but not just the Coco version)  
did this. GMX used it on their Gimix systems, too, although they had  
smaller MMU blocks than we did, but a MUCH better IRQ system.

> Level 3 was the NitrOS-9 gang's way to break up the 64K map a bit  
> further, giving more memory for processes to use at one time. I ran a  
> BBS (StG Net) and it REALLY helped -- the system could be loaded and I  
> could run more commands from the same address space.  It took a hit on  
> performance, but all the 6309 code and other optimizations probably made  
> it come out similar speed-wise to a stock, unpatched OS-9 Level 2.

     Yes, this was Alan Dekok's work. He made a swappable 16K chunk for SCF  
and it's drivers/descriptors, as well as an RBF chunk, so that you would  
essentially have 80K for system modules/RAM. It could have been expanded  
to other file managers (pipeman would have been overkill, and was thus  
never implemented this way, but MSF would have been a good candidate).  
 From what I remember (I didn't run it that often), it still ran a bit  
faster than stock OS-9 Level II.
> I do not know which "version" current NitrOS-9 uses, but I can't really  
> think of any reason not to be using the Level 3.  I seem to recall that  
> it split up, if I recall, memory so SCF and maybe other file managers  
> had their own 64K block.  So, instead of all your drives, etc. having to  
> fit in to 64K, only the base stuff (kernel, etc.) had to be there, then  
> serial drivers, etc. had their own map. I forget what the magic was, but  
> I seem to recall it letting me dynamically load up multiple hard drive  
> drivers and use them, where before I had to merge them in to my bootfile  
> to have any room left over.
> The "Level 2 Upgrade" (which we may have called Level III wayback when)  
> is a souped up MultiVue, basically.

Well, it's a bit more than that... it is OS-9 Level II, Version 3.0. It  
had named pipes, a much expanded Windint/Grfrdv with resizable/movable  
windows, vector fonts, windows that could be picked up off one screen and  
dropped on another (like virtual desktops on Windows/Mac machines today),  
the 3D look, the SCF keyboard editor, Shellplus 2.9 (with extensible shell  
modules), a whole bunch of additional information stored in the process  
header, and Alarm Syscall that could be individual to each process  
(instead of system wide), several new graphic commands in GRFDRV (Filled  
circle/ellipse, and rounded corner dialog boxes like the Mac), and the  
splitting out of the keyboard, mouse and sound drivers, as well as bug  
fixes, speedups, etc. Chunks of this have made it to Nitros9, some of it  
has been improved on (Level 3 memory management, speed, etc.). A different  
Shellplus (2.2a), etc. wer put in up to version 2.x, and then the driver  
model split was done on version 3.x. Resizable/movable windows have not  
been, and some of the other stuff that slowed the system down. Actually,  
Bill and I had started designing a completely different way of doing the  
resizable/movable windows that would have been 1) faster and 2) a lot  
easier to program for, but it 3) took up a LOT more RAM.

I think only Kevin Darling had the _FULL_ version, as the vector fonts,  
etc. don't seem to work on the version either Brother Jeremy has or the  
version Bill and I accidentally got from Bruce Isted when developing for  
the TC-9. Bill and I had started disassembling the chunks we had  
(Windint/Grfdrv), but we were far enough along in the Nitros9 project  
(1.09 or 1.10 rings a bell), that it was too much to try and retrofit, so  
what we added that was from the upgrade was "clean room" style - duplicate  
the functionality, ignore the original code.

L. Curtis Boyle

More information about the Coco mailing list