The NitrOS-9 Boot Process Explained

From NitrOS-9
Revision as of 13:12, 12 January 2014 by Tormod (Talk | contribs) (added link to Chris' troubleshooting document)

Jump to: navigation, search

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:

  1. Track 34 gets loaded into address $2600. The first two bytes of the contents at track 34 are 'O' and 'S'. Upon load, execution of code starts at $2602.
  2. $2602 contains a BRA to the execution point of the REL module.
  3. REL copies the boot track ($2600 to $3800) to address $ED00, and jumps to another routine inside of REL, at the new address.
  4. REL then jumps to KRN, which sets up system variables, the system memory map, system call tables, IRQ & SWI setup, and calls BOOT.
  5. BOOT reads sector $000000 off of a disk, and finds out where the OS9Boot file is.
  6. BOOT requests system memory for the size of OS9Boot, seeks to where OS9Boot is, and loads it directly into RAM.
  7. It then returns to KRN, after setting up pointers in low memory to the OS9Boot file.
  8. KRN links to KRNP2, and jumps into it.
  9. KRNP2 sets up more system calls, links to the CLOCK module, and calls it.
  10. CLOCK sets up some more system calls, starts multitasking, and returns to KRNP2.
  11. KRNP2 then does F$Chain of SYSGO. 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/062120.html