The OS-9 Boot Process AlanDeKok
aland@striker.ottawa.on.ca
1 Tue Apr 29 21:53:46 EDT 1997 2 13-Apr-2003 DragonDOS boot added
COCO Computer Typing 'DOS' at the DECB 'OK' prompt loads in track 34 off of the disk. Track 34 gets loaded into address $2600, and execution of code starts at $2602. $2602 contains a BRA to the execution point of the REL module. REL copies the boot track ($2600 to $3800) to address $ED00, and jumps to another routine inside of REL, at the new address. REL then jumps to OS9p1, which sets up system variables, the system memory map, system call tables, IRQ & 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 OS9p1, after setting up pointers in low memory to the OS9Boot file. OS9p1 links to OS9p2, and executes it. 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 OS9p2. OS9p2 then does F$Chain of 'CC3Go'. This prints a start up banner, and runs your 'startup' file through a shell.
Dragon 64 DragonDOS BOOT (when you type BOOT) loads sectors (numbered from 0) 2-17 (4096 bytes) into RAM at location $2600. The first two bytes of sector 2 must be ASCII 'OS' for this to work. It then jumps to $2602 and begins execution. The boot code switches into RAM mode, and copies the entire section to $F000 and jumps to $F04F.