projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
make it look more like the system version; controller addresses
[unix-history]
/
usr
/
src
/
sys
/
tahoe
/
stand
/
srt0.c
diff --git
a/usr/src/sys/tahoe/stand/srt0.c
b/usr/src/sys/tahoe/stand/srt0.c
index
20a54fc
..
7b2cf2e
100644
(file)
--- a/
usr/src/sys/tahoe/stand/srt0.c
+++ b/
usr/src/sys/tahoe/stand/srt0.c
@@
-1,6
+1,4
@@
-/* srt0.c 1.1 86/01/12 */
-/* srt0.c 4.8 81/04/03 */
-/* Tahoe version. 82/11/09 */
+/* srt0.c 1.3 86/11/03 */
#include "../machine/mtpr.h"
#define LOCORE
#include "../machine/mtpr.h"
#define LOCORE
@@
-10,7
+8,6
@@
*/
.globl _end
*/
.globl _end
- .globl _edata
.globl _main
.globl __rtt
.globl _openfirst
.globl _main
.globl __rtt
.globl _openfirst
@@
-18,51
+15,62
@@
.set HIGH,31 # mask for total disable
.set HIGH,31 # mask for total disable
+ .globl _entry
+_entry:
#ifndef REL
.word 0x00 # 'call' by relsrt0.
#endif
_start:
mtpr $HIGH,$IPL # just in case
#ifndef REL
.word 0x00 # 'call' by relsrt0.
#endif
_start:
mtpr $HIGH,$IPL # just in case
- movl $(RELOC),sp
- movl $RELOC,r0
- subl2 aedata,r0
- shar $2,r0,r0
- clrl r1 /* used to clear the memory */
-clr:
- pushl r1
- decl r0 /* decrement counter */
- jgeq clr /* more to clear */
-
+#ifdef REL
movl $RELOC,sp
movl $RELOC,sp
+
movl $0x800,r0 /* source address to copy from */
movl $RELOC,r1 /* destination address */
movl $0x800,r0 /* source address to copy from */
movl $RELOC,r1 /* destination address */
- movl aend,r2 /* length */
- subl2 $0x800,r2
- # movblk
- # simple loop replaces movblk - until hardware people are ready
+ movl aedata,r2 /* length to copy */
+ addl2 r2,r0
+ addl2 r2,r1
mvloop:
mvloop:
+ decl r0
+ decl r1
movb (r0),(r1)
movb (r0),(r1)
- incl r0
+ decl r2
+ bgeq mvloop
+
+/*
+ * zero bss
+ */
+ movab _edata,r1 /* destination address */
+ subl3 aend,aedata,r2 /* length to zero */
+zloop:
+ movb $0,(r1)
incl r1
decl r2
incl r1
decl r2
- b
neq mv
loop
- .globl goup
+ b
geq z
loop
+
mtpr $0,$PACC
mtpr $0,$PACC
-jumphigh:
- .set goup,jumphigh+0x800-RELOC
jmp *abegin
jmp *abegin
+#endif
+
begin:
begin:
+ movl fp,ofp
movl $1,_openfirst
callf $4,_main
movl $1,_openfirst
callf $4,_main
- jmp begin
+#ifdef REL
+ halt
+#endif
+ ret
__rtt:
.word 0x0
__rtt:
.word 0x0
- jmp begin
+#ifdef REL
+ halt
+#endif
+ movl ofp,fp
+ ret
.data
abegin: .long begin
.data
abegin: .long begin
-aend: .long _end-RELOC+0x800
-aedata: .long _edata-RELOC+0x800
- .globl _entry
- .set _entry,0x800
+aend: .long _end-RELOC
+aedata: .long _edata-RELOC
+ofp: .long 0