home *** CD-ROM | disk | FTP | other *** search
- ; $NetBSD$
-
- ;
- ; Copyright (c) 1994 Mark Brinicombe.
- ; Copyright (c) 1994 Brini.
- ; All rights reserved.
- ;
- ; This code is derived from software written for Brini by Mark Brinicombe
- ;
- ; Redistribution and use in source and binary forms, with or without
- ; modification, are permitted provided that the following conditions
- ; are met:
- ; 1. Redistributions of source code must retain the above copyright
- ; notice, this list of conditions and the following disclaimer.
- ; 2. Redistributions in binary form must reproduce the above copyright
- ; notice, this list of conditions and the following disclaimer in the
- ; documentation and/or other materials provided with the distribution.
- ; 3. All advertising materials mentioning features or use of this software
- ; must display the following acknowledgement:
- ; This product includes software developed by Brini.
- ; 4. The name of the company nor the name of the author may be used to
- ; endorse or promote products derived from this software without specific
- ; prior written permission.
- ;
- ; THIS SOFTWARE IS PROVIDED BY BRINI ``AS IS'' AND ANY EXPRESS OR IMPLIED
- ; WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- ; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- ; IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- ; INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- ; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- ; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- ; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- ; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- ; SUCH DAMAGE.
- ;
- ; RiscBSD kernel project
- ;
- ; _main.s
- ;
- ; boot loader entry point
- ;
- ; Created : 12/09/94
- ; Last updated : 12/09/94
- ;
- ; Based on kate/boot/_main.s
- ;
- ; $Id$
- ;
-
- GET h.asmregs
-
- AREA |C$$code|, CODE, READONLY
-
- ENTRY
-
- IMPORT |_main|
- EXPORT |__main|
-
- |__main|
- SWI &20010 ; OS_GetEnv
- MOV sp,a2
- SUB sl,sp,#2048
-
- LDR a4,[pc,#|__cli_ptr|-.-8]
- STR a1,[a4,#0]
- LDR a4,[pc,#|__himem_ptr|-.-8]
- STR a2,[a4,#0]
- LDR a4,[pc,#|__stack_ptr|-.-8]
- STR sl,[a4,#0]
- LDMIA a3,{a1,a2}
- AND a2,a2,#&ff
- LDR a3,[pc,#|__time_ptr|-.-8]
- STMIA a3,{a1,a2}
- LDR a4,[pc,#|__robase_ptr|-.-8]
- LDR a1,[a4,#0]
- LDR a4,[pc,#|__base_ptr|-.-8]
- STR a1,[a4,#0]
- LDR a4,[pc,#|__rwlimit_ptr|-.-8]
- LDR a1,[a4,#0]
- LDR a4,[pc,#|__lomem_ptr|-.-8]
- STR a1,[a4,#0]
- LDR a4,[pc,#|__break_ptr|-.-8]
- STR a1,[a4,#0]
-
- CMP sl,a1
- MOVLSS pc,lr ; no stack - exit fast
- ADD sl,sl,#256
- MOV fp,#0
- LDR a1,[pc,#|__alloca_list_ptr|-.-8]
- CMP a1,#0
- STRNE fp,[a1,#0]
- B |_main|
-
-
- IMPORT |Image$$RO$$Base|
- IMPORT |Image$$RW$$Base|
- IMPORT |Image$$RW$$Limit|
-
- |__cli_ptr|
- DCD |__cli|
-
- |__robase_ptr|
- DCD |__robase|
- |__base_ptr|
- DCD |__base|
- |__rwbase_ptr|
- DCD |__rwbase|
- |__rwlimit_ptr|
- DCD |__rwlimit|
- |__himem_ptr|
- DCD |__himem|
- |__lomem_ptr|
- DCD |__lomem|
-
- |__break_ptr|
- DCD |__break|
- |__stack_ptr|
- DCD |__stack|
-
- |__time_ptr|
- DCD |__time|
-
- IMPORT |__alloca_list|,WEAK
- |__alloca_list_ptr|
- DCD |__alloca_list|
-
- IMPORT |__uname_dont_pack|,WEAK
- EXPORT |__uname_dont_pack_ptr|
- |__uname_dont_pack_ptr|
- DCD |__uname_dont_pack|
-
-
-
- EXPORT |__cli| ; CLI from OS_GetEnv
- |__cli|
- DCD 0
-
- EXPORT |__base| ; BASE (application = 0x8000)
- |__robase|
- DCD |Image$$RO$$Base|
- |__base|
- DCD 0
- EXPORT |__lomem| ; LOMEM
- |__rwbase|
- DCD |Image$$RW$$Base|
- |__rwlimit|
- DCD |Image$$RW$$Limit|
- |__lomem|
- DCD 0
- EXPORT |__himem| ; HIMEM from OS_GetEnv
- |__himem|
- DCD 0
-
- EXPORT |__break| ; the 'break'
- |__break|
- DCD 0
- EXPORT |__stack| ; stack limit
- |__stack|
- DCD 0
-
- EXPORT |__time| ; start time - 5 byte format
- |__time|
- DCD 0 ; low word
- DCD 0 ; high byte
-
- END
-