xref: /csrg-svn/sys/tahoe/stand/srt0.c (revision 29955)
1*29955Skarels /*	srt0.c	1.3	86/11/03	*/
225870Ssam 
325870Ssam #include "../machine/mtpr.h"
425870Ssam #define	LOCORE
525870Ssam 
625870Ssam /*
725870Ssam  * Startup code for standalone system
825870Ssam  */
925870Ssam 
1025870Ssam 	.globl	_end
1125870Ssam 	.globl	_main
1225870Ssam 	.globl	__rtt
1325870Ssam 	.globl	_openfirst
1425870Ssam 	.globl	_start
1525870Ssam 
1625870Ssam 	.set	HIGH,31		# mask for total disable
1725870Ssam 
18*29955Skarels 	.globl	_entry
19*29955Skarels _entry:
2025870Ssam #ifndef	REL
2125870Ssam 	.word	0x00			# 'call' by relsrt0.
2225870Ssam #endif
2325870Ssam _start:
2425870Ssam 	mtpr	$HIGH,$IPL		# just in case
25*29955Skarels #ifdef REL
2629553Sroot 	movl	$RELOC,sp
2725870Ssam 
2825870Ssam 	movl	$0x800,r0	/* source address to copy from */
2925870Ssam 	movl	$RELOC,r1	/* destination address */
30*29955Skarels 	movl	aedata,r2	/* length to copy */
3129553Sroot 	addl2	r2,r0
3229553Sroot 	addl2	r2,r1
3325870Ssam mvloop:
3429553Sroot 	decl	r0
3529553Sroot 	decl	r1
3625870Ssam 	movb	(r0),(r1)
3725870Ssam 	decl	r2
3829553Sroot 	bgeq	mvloop
3929553Sroot 
40*29955Skarels /*
41*29955Skarels  * zero bss
42*29955Skarels  */
43*29955Skarels 	movab	_edata,r1	/* destination address */
44*29955Skarels 	subl3	aend,aedata,r2	/* length to zero */
45*29955Skarels zloop:
46*29955Skarels 	movb	$0,(r1)
47*29955Skarels 	incl	r1
48*29955Skarels 	decl	r2
49*29955Skarels 	bgeq	zloop
50*29955Skarels 
5125870Ssam 	mtpr	$0,$PACC
5225870Ssam 	jmp	*abegin
53*29955Skarels #endif
5429553Sroot 
5525870Ssam begin:
56*29955Skarels 	movl	fp,ofp
5725870Ssam 	movl	$1,_openfirst
5825870Ssam 	callf	$4,_main
59*29955Skarels #ifdef REL
60*29955Skarels 	halt
61*29955Skarels #endif
62*29955Skarels 	ret
6325870Ssam 
6425870Ssam __rtt:
6525870Ssam 	.word	0x0
66*29955Skarels #ifdef REL
67*29955Skarels 	halt
68*29955Skarels #endif
69*29955Skarels 	movl	ofp,fp
70*29955Skarels 	ret
7125870Ssam 
7225870Ssam 	.data
7325870Ssam abegin:	.long	begin
74*29955Skarels aend:	.long	_end-RELOC
75*29955Skarels aedata:	.long	_edata-RELOC
76*29955Skarels ofp:	.long	0
77