The NitrOS-9 Boot Process Explained
From NitrOS-9
Typing 'DOS' at the Disk Extended Color BASIC 'OK' prompt on a CoCo loads in track 34 off of the disk. Track 34 consists of 18 total 256 byte sectors; that's 4,608 bytes. Here's what happens when 'DOS' is typed:
- Typing 'DOS' at the DECB 'OK' prompts loads track 34 off of the disk.
- Track 34 gets loaded into address $2600. The first two bytes of the contents of track 34 are 'O' and 'S'.
- Upon load, execution of code starts at $2602, which is a BRA to the execution entry point of the REL module.
- REL copies the book track ($2600 to $3800) to address $ED00, and jumps to another routine inside of REL at the new address
- REL then jumps to KRN (OS9P1), which sets up system variables, the system memory map, system call tables, IRQ and SWI setup, and calls BOOT.
- BOOT reads sector $000000 off of a disk, and finds out where the OS9Boot file is.
- BOOT requests system memory for the size of OS9Boot, seeks to where OS9Boot is, and loads it directly into RAM.
- It then returns to KRN (OS9P1), after setting up pointers in low memory to the OS9Boot file.
- KRN (OS9P1) links to KRNP2 (OS9P2), and jumps into its execution entry point.
- KRNP2 (OS9P2) sets up more system calls, links to the CLOCK module, and calls it.
- CLOCK sets up some more system calls, starts multitasking, and returns to KRNP2.
- KRNP2 then does F$Chain of SYSGO (CC3GO). This prints a start up banner, and runs your 'startup' file through a shell.
Troubleshooting the NitrOS-9 Level2 boot
See Chris Hawks post http://five.pairlist.net/pipermail/coco/2012-September/115836.html and http://five.pairlist.net/pipermail/coco/2012-September/115879.html