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