initial commit
[freebsd-arm:freebsd-arm.git] / boot / pc98 / boot0.5 / start.s
1 # Copyright (c) KATO Takenori, 1999, 2000, 2007.
2
3 # All rights reserved.  Unpublished rights reserved under the copyright
4 # laws of Japan.
5
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
9
10 # 1. Redistributions of source code must retain the above copyright
11 #    notice, this list of conditions and the following disclaimer as
12 #    the first lines of this file unmodified.
13 # 2. Redistributions in binary form must reproduce the above copyright
14 #    notice, this list of conditions and the following disclaimer in the
15 #    documentation and/or other materials provided with the distribution.
16 #
17 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 #
28 # $FreeBSD$
29 #
30         .global start
31         .code16
32
33         .text
34 start:
35         jmp     start1
36
37         # Magic
38         .org    0x053, 0x20
39         .byte   0x4e, 0x45, 0x43
40
41         .org    0x8f
42         .byte   0x32, 0x2e, 0x37, 0x30
43
44         .org    0x2d4
45 start1:
46         # The instruction 'call 0x9ab' can be here.  See also selector.s.
47         nop
48         nop
49         nop
50         cli
51         movw    %cs, %ax
52         movw    %ax, %ds
53         movw    %ss, iniss
54         movw    %sp, inisp
55         movw    %ax, %ss
56         movw    $0xfffe, %sp
57         sti     
58         xorw    %ax, %ax
59         movw    %ax, %es
60         call    main
61
62         cli
63         movw    %cs:iniss, %ss
64         movw    %cs:inisp, %sp
65         sti
66         int     $0x1e
67         # NOTREACHED
68         lret
69
70         .data
71         .global iniss, inisp
72 iniss:  .word   0
73 inisp:  .word   0