Research V7 development
[unix-history] / usr / src / libc / csu / fmcrt0.s
CommitLineData
6b23496e
DR
1/ C runtime startoff including monitoring
2
3cbufs = 300.
4exit = 1.
5write = 4.
6signal = 48.
7
8.globl _monitor
9.globl _sbrk
10.globl _main
11.globl _exit
12.globl _environ
13.globl _etext
14.globl __cleanup
15.globl countbase
16.globl fptrap
17
18
19start:
20 sys signal; 4; fptrap
21 setd
22 mov 2(sp),r0
23 clr -2(r0)
24 mov sp,r0
25 sub $4,sp
26 mov 4(sp),(sp)
27 tst (r0)+
28 mov r0,2(sp)
291:
30 tst (r0)+
31 bne 1b
32 cmp r0,*2(sp)
33 blo 1f
34 tst -(r0)
351:
36 mov r0,4(sp)
37 mov r0,_environ
38
39 mov $_etext,r1
40 sub $eprol,r1
41 add $7,r1
42 ash $-3,r1
43 bic $!17777,r1
44 mov $cbufs,-(sp)
45 add $3*[cbufs+1],r1
46 mov r1,-(sp)
47 asl r1
48 mov r1,-(sp)
49 jsr pc,_sbrk
50 tst (sp)+
51 cmp r0,$-1
52 beq 9f
53 mov r0,-(sp)
54 add $6,r0
55 mov r0,countbase
56 mov $_etext,-(sp)
57 mov $eprol,-(sp)
58 jsr pc,_monitor
59 add $10.,sp
60 jsr pc,_main
61 cmp (sp)+,(sp)+
62 mov r0,(sp)
63 jsr pc,_exit
64
659:
66 mov $2,r0
67 sys write; 8f; 9f-8f
68
69.data; 8: <No space for monitor buffer\n>; 9:.even; .text
70
71_exit:
72 mov r5,-(sp)
73 mov sp,r5
74 jsr pc,__cleanup
75 clr -(sp)
76 jsr pc,_monitor
77 tst (sp)+
78 mov 4(r5),r0
79 sys exit
80eprol:
81.bss
82_environ:
83 .=.+2
84countbase:
85 .=.+2
86.data
87 .=.+2