Mercurial > hg > Members > kono > nitros9-code
comparison level3/ReadMe.l3 @ 2349:f506d1905781
Added Level 3
author | boisy |
---|---|
date | Sun, 17 Jan 2010 21:35:51 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
2348:8132c03a36cf | 2349:f506d1905781 |
---|---|
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. |