Mercurial > hg > Members > kono > nitros9-code
view docs/articles/bootprocess.article @ 3051:d0ec54ac8b94
Added help files for sdir and sdrive
author | tlindner |
---|---|
date | Sun, 25 Jan 2015 12:05:20 -0800 |
parents | bc28c3bc3769 |
children |
line wrap: on
line source
<!-- The author has not been contacted about adding this article to the documentation set. --> <article> <articleinfo> <title>The OS-9 Boot Process</title> <author><firstname>Alan</firstname><surname>DeKok</surname> <affiliation> <address> <email>aland@striker.ottawa.on.ca</email> </address> </affiliation> </author> <revhistory> <revision> <revnumber>1</revnumber> <date>Tue Apr 29 21:53:46 EDT 1997</date> </revision> <revision> <revnumber>2</revnumber> <date>13-Apr-2003</date> <revremark>DragonDOS boot added</revremark> </revision> </revhistory> </articleinfo> <section> <title>COCO Computer</title> <orderedlist> <listitem><para>Typing 'DOS' at the DECB 'OK' prompt loads in track 34 off of the disk.</para></listitem> <listitem><para> Track 34 gets loaded into address $2600, and execution of code starts at $2602.</para></listitem> <listitem><para> $2602 contains a BRA to the execution point of the REL module.</para></listitem> <listitem><para> REL copies the boot track ($2600 to $3800) to address $ED00, and jumps to another routine inside of REL, at the new address.</para></listitem> <listitem><para> REL then jumps to OS9p1, which sets up system variables, the system memory map, system call tables, IRQ & SWI setup, and calls BOOT.</para></listitem> <listitem><para> BOOT reads sector $000000 off of a disk, and finds out where the OS9Boot file is.</para></listitem> <listitem><para> BOOT requests system memory for the size of OS9Boot, seeks to where OS9Boot is, and loads it directly into RAM.</para></listitem> <listitem><para> It then returns to OS9p1, after setting up pointers in low memory to the OS9Boot file.</para></listitem> <listitem><para> OS9p1 links to OS9p2, and executes it.</para></listitem> <listitem><para> OS9p2 sets up more system calls, links to the clock module, and calls it.</para></listitem> <listitem><para> Clock sets up some more system calls, starts multitasking, and returns to OS9p2.</para></listitem> <listitem><para> OS9p2 then does F$Chain of 'CC3Go'. This prints a start up banner, and runs your 'startup' file through a shell.</para></listitem> </orderedlist> </section> <section> <title>Dragon 64</title> <para> 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. </para> </section> </article>