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