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 &amp; 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>