start.s revision 1.2 1 1.1 chuck /*
2 1.1 chuck *
3 1.1 chuck * Copyright (c) 1995 Charles D. Cranor
4 1.1 chuck * All rights reserved.
5 1.1 chuck *
6 1.1 chuck * Redistribution and use in source and binary forms, with or without
7 1.1 chuck * modification, are permitted provided that the following conditions
8 1.1 chuck * are met:
9 1.1 chuck * 1. Redistributions of source code must retain the above copyright
10 1.1 chuck * notice, this list of conditions and the following disclaimer.
11 1.1 chuck * 2. Redistributions in binary form must reproduce the above copyright
12 1.1 chuck * notice, this list of conditions and the following disclaimer in the
13 1.1 chuck * documentation and/or other materials provided with the distribution.
14 1.1 chuck * 3. All advertising materials mentioning features or use of this software
15 1.1 chuck * must display the following acknowledgement:
16 1.1 chuck * This product includes software developed by Charles D. Cranor.
17 1.1 chuck * 4. The name of the author may not be used to endorse or promote products
18 1.1 chuck * derived from this software without specific prior written permission.
19 1.1 chuck *
20 1.1 chuck * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
21 1.1 chuck * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
22 1.1 chuck * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
23 1.1 chuck * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
24 1.1 chuck * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25 1.1 chuck * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 1.1 chuck * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 1.1 chuck * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 1.1 chuck * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
29 1.1 chuck * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 1.1 chuck */
31 1.1 chuck /*
32 1.1 chuck * start: at address 0x4000, load at 0xa000 (so put stack at 0x9ff0)
33 1.1 chuck */
34 1.1 chuck
35 1.1 chuck .text
36 1.1 chuck .globl start
37 1.1 chuck start:
38 1.1 chuck movb #0,_reboot
39 1.1 chuck jra Ldoit
40 1.1 chuck restart:
41 1.1 chuck movb #1,_reboot | fall through
42 1.1 chuck
43 1.1 chuck Ldoit:
44 1.1 chuck movl #0x00006ff0,sp
45 1.1 chuck jsr _sboot
46 1.1 chuck
47 1.2 chuck Lname:
48 1.2 chuck .ascii "sboot\0"
49 1.2 chuck
50 1.2 chuck .globl _go
51 1.2 chuck _go:
52 1.2 chuck clrl d0 | dev lun
53 1.2 chuck clrl d1 | ctrl lun
54 1.2 chuck movl #0x2c, d4 | flags for IPL
55 1.2 chuck movl d0, a0 | address of disk ctrl
56 1.2 chuck movl sp@(4), a1 | entry point of loaded program
57 1.2 chuck movl d0, a2 | media config block (NULL)
58 1.2 chuck movl sp@(8), a3 | nb args (start)
59 1.2 chuck movl sp@(12), a4 | nb end args
60 1.2 chuck movl #Lname, a5 | args
61 1.2 chuck movl #Lname+6, a6 | end args
62 1.2 chuck | SRT0 will set stack
63 1.2 chuck jmp a1@ | GO!
64