|
|
1.1 root 1: # @(#)crt0.s 4.1 (Berkeley) 12/21/80
2: # C runtime startoff
3: # TAHOE 3/83
4:
5: .set exit,1
6: .globl _exit
7: .globl start
8: .globl hstart
9: .globl _main
10: .globl _environ
11:
12: #
13: # C language startup routine
14:
15: hstart:
16: .word 0x0000
17: clrl r1
18: jmp L0
19: start:
20: .word 0x0000
21: movl $1,r1
22: L0:
23: movab -8(sp),sp
24: movl 8(sp),(sp) # argc
25: movab 12(sp),r0
26: movl r0,4(sp) # argv
27: jmp L3
28: L1:
29: addl2 $4,r0
30: L3:
31: tstl (r0) # null args term ?
32: jneq L1
33: addl2 $4,r0
34: cmpl r0,*4(sp) # end of 'env' or 'argv' ?
35: jlss L2
36: subl2 $4,r0 # envp's are in list
37: L2:
38: movl r0,8(sp) # env
39: movl r0,r10
40: tstl r1
41: jneq L4
42: callf $4,_rlc
43: L4:
44: movl r10,_environ # indir is 0 if no env ; not 0 if env
45: callf $4*3+4,_main
46: pushl r0
47: callf $4*1+4,_exit
48: kcall $exit
49: #
50: .data
51: _environ: .space 4
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.