xref: /csrg-svn/sys/tahoe/stand/srt0.c (revision 30513)
1*30513Skarels /*	srt0.c	1.5	87/02/17	*/
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 
1830313Ssam #ifndef	REL
1930313Ssam 	.globl	_device_space
2030313Ssam _device_space:			# Tapemaster config block, etc.
2130313Ssam 	.space	0x1000-RELOC
2230313Ssam 
2329955Skarels 	.globl	_entry
2429955Skarels _entry:
2525870Ssam 	.word	0x00			# 'call' by relsrt0.
2625870Ssam #endif
2725870Ssam _start:
2825870Ssam 	mtpr	$HIGH,$IPL		# just in case
2929955Skarels #ifdef REL
3030313Ssam 	movl	$BOOTRELOC,sp
3125870Ssam 
3230313Ssam 	movl	$RELOC,r0	/* source address to copy from */
3330313Ssam 	movl	$BOOTRELOC,r1	/* destination address */
34*30513Skarels 	movl	tdlen,r2	/* length to copy */
3529553Sroot 	addl2	r2,r0
3629553Sroot 	addl2	r2,r1
3725870Ssam mvloop:
3829553Sroot 	decl	r0
3929553Sroot 	decl	r1
4025870Ssam 	movb	(r0),(r1)
4125870Ssam 	decl	r2
4229553Sroot 	bgeq	mvloop
4329553Sroot 
4429955Skarels /*
4529955Skarels  * zero bss
4629955Skarels  */
47*30513Skarels 	movl	aedata,r1		/* destination address */
48*30513Skarels 	subl3	$_edata,$_end,r2	/* length to zero */
4929955Skarels zloop:
5029955Skarels 	movb	$0,(r1)
5129955Skarels 	incl	r1
5229955Skarels 	decl	r2
5329955Skarels 	bgeq	zloop
5429955Skarels 
55*30513Skarels 	mtpr	$1,$PACC
56*30513Skarels 	mtpr	$1,$PADC
5725870Ssam 	jmp	*abegin
5829955Skarels #endif
5929553Sroot 
6025870Ssam begin:
6129955Skarels 	movl	fp,ofp
6225870Ssam 	movl	$1,_openfirst
6325870Ssam 	callf	$4,_main
6429955Skarels #ifdef REL
6529955Skarels 	halt
6629955Skarels #endif
6729955Skarels 	ret
6825870Ssam 
6925870Ssam __rtt:
7025870Ssam 	.word	0x0
7129955Skarels #ifdef REL
7229955Skarels 	halt
7329955Skarels #endif
7429955Skarels 	movl	ofp,fp
7529955Skarels 	ret
7625870Ssam 
7725870Ssam 	.data
7825870Ssam abegin:	.long	begin
7930313Ssam #ifdef REL
80*30513Skarels aedata:	.long	_edata
81*30513Skarels tdlen:	.long	_edata-BOOTRELOC
8230313Ssam #endif
8329955Skarels ofp:	.long	0
84