696
|
1 <!--
|
|
2 The author has not been contacted about adding this article to the
|
|
3 documentation set.
|
|
4 -->
|
|
5 <article>
|
|
6 <articleinfo>
|
|
7 <title>The OS-9 Boot Process</title>
|
|
8 <author><firstname>Alan</firstname><surname>DeKok</surname>
|
|
9 <affiliation>
|
|
10 <address>
|
|
11 <email>aland@striker.ottawa.on.ca</email>
|
|
12 </address>
|
|
13 </affiliation>
|
|
14 </author>
|
|
15 <revhistory>
|
|
16 <revision>
|
|
17 <revnumber>1</revnumber>
|
|
18 <date>Tue Apr 29 21:53:46 EDT 1997</date>
|
1148
|
19 </revision>
|
|
20 <revision>
|
|
21 <revnumber>2</revnumber>
|
|
22 <date>13-Apr-2003</date>
|
|
23 <revremark>DragonDOS boot added</revremark>
|
696
|
24 </revision>
|
|
25 </revhistory>
|
|
26 </articleinfo>
|
1148
|
27 <section>
|
|
28 <title>COCO Computer</title>
|
696
|
29 <orderedlist>
|
|
30 <listitem><para>Typing 'DOS' at the DECB 'OK' prompt loads in track 34 off of the disk.</para></listitem>
|
|
31
|
|
32 <listitem><para> Track 34 gets loaded into address $2600, and execution of code
|
|
33 starts at $2602.</para></listitem>
|
|
34
|
|
35 <listitem><para> $2602 contains a BRA to the execution point of the REL module.</para></listitem>
|
|
36
|
|
37 <listitem><para> REL copies the boot track ($2600 to $3800) to address $ED00, and jumps to
|
|
38 another routine inside of REL, at the new address.</para></listitem>
|
|
39
|
|
40 <listitem><para> REL then jumps to OS9p1, which sets up system variables, the system
|
|
41 memory map, system call tables, IRQ & SWI setup, and calls BOOT.</para></listitem>
|
|
42
|
|
43 <listitem><para> BOOT reads sector $000000 off of a disk, and finds out where the
|
|
44 OS9Boot file is.</para></listitem>
|
|
45
|
|
46 <listitem><para> BOOT requests system memory for the size of OS9Boot, seeks to where
|
|
47 OS9Boot is, and loads it directly into RAM.</para></listitem>
|
|
48
|
|
49 <listitem><para> It then returns to OS9p1, after setting up pointers in low memory to
|
|
50 the OS9Boot file.</para></listitem>
|
|
51
|
|
52 <listitem><para> OS9p1 links to OS9p2, and executes it.</para></listitem>
|
|
53
|
|
54 <listitem><para> OS9p2 sets up more system calls, links to the clock module, and
|
|
55 calls it.</para></listitem>
|
|
56
|
|
57 <listitem><para> Clock sets up some more system calls, starts multitasking, and
|
|
58 returns to OS9p2.</para></listitem>
|
|
59
|
|
60 <listitem><para> OS9p2 then does F$Chain of 'CC3Go'. This prints a start up banner,
|
|
61 and runs your 'startup' file through a shell.</para></listitem>
|
|
62 </orderedlist>
|
1148
|
63 </section>
|
|
64 <section>
|
|
65 <title>Dragon 64</title>
|
|
66 <para>
|
|
67 DragonDOS BOOT (when you type BOOT)
|
|
68 loads sectors (numbered from 0) 2-17 (4096 bytes) into
|
|
69 RAM at location $2600. The first two bytes of sector 2 must be ASCII 'OS'
|
|
70 for this to work. It then jumps to $2602 and begins execution.
|
|
71 The boot code switches into RAM mode, and copies the entire section to
|
|
72 $F000 and jumps to $F04F.
|
|
73 </para>
|
|
74 </section>
|
696
|
75 </article>
|