|
|
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 _main
9: .globl _environ
10:
11: #
12: # C language startup routine
13:
14: start:
15: .word 0x0000
16: movab -8(sp),sp
17: movl 8(sp),(sp) # argc
18: movab 12(sp),r0
19: movl r0,4(sp) # argv
20: jmp L3
21: L1:
22: addl2 $4,r0
23: L3:
24: tstl (r0) # null args term ?
25: jneq L1
26: addl2 $4,r0
27: cmpl r0,*4(sp) # end of 'env' or 'argv' ?
28: jlss L2
29: subl2 $4,r0 # envp's are in list
30: L2:
31: movl r0,8(sp) # env
32: movl r0,_environ # indir is 0 if no env ; not 0 if env
33: callf $4*3+4,_main
34: pushl r0
35: callf $4*1+4,_exit
36: kcall $exit
37: #
38: .data
39: _environ: .space 4
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.