xref: /csrg-svn/sys/vax/stand/srt0.c (revision 3349)
1*3349Swnj /*	srt0.c	4.7	81/03/22	*/
2326Sbill 
33263Swnj #include "../h/mtpr.h"
4*3349Swnj #define	LOCORE
5*3349Swnj #include "../h/cpu.h"
63263Swnj 
71914Swnj /*
81914Swnj  * Startup code for standalone system
91914Swnj  * Non-relocating version -- for programs which are loaded by boot
101914Swnj  */
11326Sbill 
12*3349Swnj 	.globl	_end
131757Sbill 	.globl	_edata
14326Sbill 	.globl	_main
15326Sbill 	.globl	__rtt
163263Swnj 	.globl	_configure
17*3349Swnj 	.globl	_cpu
18*3349Swnj 	.globl	_openfirst
19326Sbill 
20326Sbill 	.set	HIGH,31		# mask for total disable
21326Sbill 
222438Swnj entry:	.globl	entry
23326Sbill 	.word	0x0
24326Sbill 	mtpr	$HIGH,$IPL		# just in case
25*3349Swnj #ifdef REL
26*3349Swnj 	movl	$RELOC,sp
27*3349Swnj #else
28*3349Swnj 	movl	$RELOC-0x2400,sp
29*3349Swnj #endif
302438Swnj start:
31*3349Swnj 	movl	aedata,r0
32411Sbill clr:
33411Sbill 	clrl	(r0)+
34411Sbill 	cmpl	r0,sp
35411Sbill 	jlss	clr
36*3349Swnj #ifdef REL
37*3349Swnj 	movc3	aend,*$0,(sp)
38*3349Swnj 	jmp	*abegin
39*3349Swnj begin:
40*3349Swnj #endif
41*3349Swnj 	mtpr	$0,$SCBB
423263Swnj 	calls	$0,_configure
43*3349Swnj 	movl	$1,_openfirst
44326Sbill 	calls	$0,_main
45*3349Swnj #ifndef TP
46326Sbill 	jmp	start
47*3349Swnj #else
48*3349Swnj 	ret
49*3349Swnj #endif
50326Sbill 
51*3349Swnj 	.data
52*3349Swnj #ifdef REL
53*3349Swnj abegin:	.long	begin
54*3349Swnj aend:	.long	_end-RELOC
55*3349Swnj aedata:	.long	_edata-RELOC
56*3349Swnj #else
57*3349Swnj aedata:	.long	_edata
58*3349Swnj #endif
59*3349Swnj 
60326Sbill __rtt:
61326Sbill 	.word	0x0
62326Sbill 	jmp	start
63*3349Swnj 
64*3349Swnj 	.globl	_badloc
65*3349Swnj _badloc:
66*3349Swnj 	.word	0
67*3349Swnj 	movl	$1,r0
68*3349Swnj 	movl	4(ap),r3
69*3349Swnj 	movl	$4,r2
70*3349Swnj 	movab	9f,(r2)
71*3349Swnj 	tstl	(r3)
72*3349Swnj 1:	clrl	r0			# made it w/o machine checks
73*3349Swnj 2:	movl	$4,r2
74*3349Swnj 	clrl	(r2)
75*3349Swnj 	ret
76*3349Swnj 	.align	2
77*3349Swnj 9:
78*3349Swnj 	casel	_cpu,$1,$VAX_MAX
79*3349Swnj 0:
80*3349Swnj 	.word	8f-0b		# 1 is 780
81*3349Swnj 	.word	5f-0b		# 2 is 750
82*3349Swnj 	.word	5f-0b		# 3 is 730
83*3349Swnj 5:
84*3349Swnj 	mtpr	$0xf,$MCESR
85*3349Swnj 	brb	1f
86*3349Swnj 8:
87*3349Swnj 	mtpr	$0,$SBIFS
88*3349Swnj 1:
89*3349Swnj 	addl2	(sp)+,sp		# discard mchchk trash
90*3349Swnj 	movab	2b,(sp)
91*3349Swnj 	rei
92