[Coco] Patching NitrOS9 for 8 meg

Dave Philipsen dave at davebiz.com
Fri May 4 03:32:13 EDT 2018


I'm not 100% sure but if you look at Kevin Darling's book on page 2-1-4 
it shows some stuff that's in system RAM.  It confirms what I mentioned 
from Boisy's document about the block map being 256 bytes long and that 
bits 0, 1, and 7 of each byte are used to describe how the block is 
used.  It also mentions a task table (at $0100-011F) that only has 32 
entries.  Could it be that this table contains the process IDs of all 
processes and there's only room for 32?

There's also mention of the virtual DAT task map which appears to be a 
set of up to 32 pointers (64 bytes since each pointer is 16 bits) which 
point to DAT images which are stored in the process descriptors.  So if 
I'm reading this correctly (and I may not be!), the time-slicer steps 
through the virtual DAT task map (or perhaps the task table which then 
references the virtual task map) and gets a pointer to a DAT image which 
is then copied to the task registers ($FFA8-FFAF for user programs) for 
each time slice (1/10 of a second). This sets up the MMU for the correct 
memory to be mapped in for each individual process.  I would assume that 
if the time-slicer finds a zero or some other terminator there in the 
table that it resets and goes back to the first entry of the virtual DAT 
task map.  This *seems* to be proof that, indeed, there are only 32 
tasks available of which the first two are reserved for the system so, 
in reality, there may only be 30 available for user programs.

Apparently, Jim's CoCoMEM allows for more than just two sets of task 
registers (as we have in the CoCo 3) so that DAT tables would not be 
needed in the OS9 system because the DAT images for each process could 
be stored in multiple sets of task registers in hardware obviating the 
need for OS9 to lookup and copy the DAT image at every time slice.  It 
could just step through the selects for the task registers.  This could 
slightly reduce the amount of time spent in system mode and give 
slightly more CPU time to user programs (although the improvement might 
be minimal).

I am just postulating here based upon what I'm reading and may not be 
understanding 100%.  Please correct me if I'm wrong.

Dave


On 5/3/2018 4:27 PM, Allen Huffman wrote:
> On May 3, 2018, at 3:45 PM, Dave Philipsen <dave at davebiz.com> wrote:
>>   You say that the maximum number of processes allowed under OS9 is 32, right?
> Wasn’t 32 just the number of task registers for the enhanced MMU of the memory board?
>
> OS-9 6809 surely supports more than 32 processes, doesn’t it???
>
> I just tested OS-9 Level 1 and have 40 processes running right now.
>



More information about the Coco mailing list