2349
|
1 My version of Level III!
|
|
2
|
|
3 The file 'LevelIII.lzh' has a previous (8k block) version, along with
|
|
4 much documentation as to how to set it up.
|
|
5
|
|
6 Quick theory:
|
|
7
|
|
8 The system map has 64k available, of which memory can be mapped in and out
|
|
9 in 8k blocks.
|
|
10
|
|
11 SCF and RBF (and all other file managers) are completely independent. You
|
|
12 can boot OS-9 without ANY SCF modules, and likewise without any RBF modules.
|
|
13
|
|
14 Next idea: map SCF and RBF in and out of the system map dynamically, so that
|
|
15 only one of them is in the map at a time.
|
|
16
|
|
17 The memory map looks like this:
|
|
18
|
|
19 $0000-$1FFF block 0, system direct page, etc.
|
|
20 $2000-$3FFF File Manager Local memory. Mapped in and out as appropriate.
|
|
21 $4000-$ECFF Process/path/device descriptors, Clock, IOMan, etc.
|
|
22 $ED00-$FEFF Kernel track: REL Boot OS9p1
|
|
23
|
|
24 On every system call and IRQ, the 16k block starting at $2000 is mapped
|
|
25 in or out, and the system DAT image changed also.
|
|
26
|
|
27 On boot up, the module 'NitrOS-9' (nitro.a here) sets up the various
|
|
28 maps, and moves up to 16k of SCF or RBF modules into the FM local memory.
|
|
29
|
|
30 Once the system is running, IOMan intercepts F$SRqMem and F$SRtMem calls
|
|
31 from all modules, and allocates FM local memory if the call originates from
|
|
32 there. i.e. RBF allocates a drive buffer, and IOMan gives it local memory,
|
|
33 so a 'smap' would show no change in the number of free pages.
|
|
34
|
|
35 One problem: CC3IO and Windint CANNOT be in FM local memory, as they are
|
|
36 both called via tha D.AltIRQ vector. Every time I try to put them in local
|
|
37 memory, the system crashes, despite all precautions I take. So don't.
|
|
38
|
|
39 The version of OS9p1 here is Level II OR Level III compliant.
|
|
40
|
|
41 IOMan is ONLY Level III, and Nitro.a is the Level 3 File Manager setup
|
|
42 module. '_end' is a dummy module, just a place-holder.
|
|
43
|
|
44 I've just discovered that CC3Disk11 will crash on trying to format a floppy
|
|
45 disk under Level III. It's probably the memory extensions I made to CC3Disk,
|
|
46 and I'm checking it out.
|