#: 12758 S10/OS9/6809 (CoCo)
29-Oct-91 00:13:32
Sb: #12757-multivue
Fm: Kevin Darling 76703,4227
To: Kevin Darling 76703,4227 (X)
PMap is far more informative. It shows which block numbers are allocated (and
where they will be mapped) for each process. It visually demonstrates that
data memory is mapped in at the bottom of each process' 64K map, and that
modules are mapped in a the top. It also lets you diagnose problems where you
run out of process map memory (error 207).
ID 01 23 45 67 89 AB CD EF Program
*--- -- -- -- -- -- -- -- -- -------
1 00 .. 05 01 02 03 04 3F SYSTEM (kernel)
2 07 .. .. .. .. .. 08 09 shell
3 0A .. .. .. .. .. .. 0D PMap
4 0B .. .. .. .. .. 08 09 shell
5 12 .. .. .. .. .. 08 09 shell
Here, we see that the kernel itself has allocated blocks 0,5,1,2,3,4 and $3F.
Combined with SMap, we can know exactly how much memory the system can still
allocate for the kernel (for proc descriptors, etc), and we see one empty spot
where another 8K block (or module) could be mapped/linked in.
The shell module is obviously merged in with other modules, in blocks 8,9...
because we can see it mapped in all shell procs. But each shell has a
different data block (on the leftmost of its line).
The ID is the process id number. The numbers across the top are useful for
people heavy into debugging/etc... they give the logical address within the 64K
maps. That is, the first 8K block is from $0000-$1FFF. The second 8K block is
from $2000-$3FFF, and so on.
PMap is pretty handy with Basic09 stuff... because you can see your basic09 map
getting filled up as subroutines are linked in (like gfx2, etc). Ask again
about anything that seems unclear. - kev
|