The NitrOS-9 Boot Process Explained

From NitrOS-9
Revision as of 15:05, 28 May 2016 by Glaw16 (Talk | contribs)

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. Typing 'DOS' at the DECB 'OK' prompts loads track 34 off of the disk.
  2. Track 34 gets loaded into address $2600. The first two bytes of the contents of track 34 are 'O' and 'S'.
  3. Upon load, execution of code starts at $2602, which is a BRA to the execution entry point of the REL module.
  4. REL copies the book track ($2600 to $3800) to address $ED00, and jumps to another routine inside of REL at the new address
  5. 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.
  6. BOOT reads sector $000000 off of a disk, and finds out where the OS9Boot file is.
  7. BOOT requests system memory for the size of OS9Boot, seeks to where OS9Boot is, and loads it directly into RAM.
  8. It then returns to KRN (OS9P1), after setting up pointers in low memory to the OS9Boot file.
  9. KRN (OS9P1) links to KRNP2 (OS9P2), and jumps into its execution entry point.
  10. KRNP2 (OS9P2) sets up more system calls, links to the CLOCK module, and calls it.
  11. CLOCK sets up some more system calls, starts multitasking, and returns to KRNP2.
  12. 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