annotate level3/ReadMe.l3 @ 2630:e310e8613606

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