[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