BSD 1 development
[unix-history] / assubs / mcrt0.s
CommitLineData
fde98a2d
BJ
1/ C runtime startoff including monitoring
2/
3/ Modified to work in separate i/d
4/ Remove comments below to use without floating point
5/
6
7cbufs = 150.
8
9.globl _monitor
10.globl _sbrk
11.globl _main
12.globl _exit
13.globl _IEH3exit
14.globl _etext
15.comm countbase,2
16
17.comm savr5,2
18
19/.globl fptrap,fpjsr
20start:
21/ sys signal; 4; fptrap
22/ jsr pc,fpjsr
23 setd
24 mov sp,r0
25 mov (r0),-(sp)
26 tst (r0)+
27 mov r0,2(sp)
28
29 mov $_etext,r1
30 sub $eprol,r1
31 add $7,r1
32 ash $-3,r1
33 bic $!17777,r1
34 mov $cbufs,-(sp)
35 add $3*[cbufs+1],r1
36 mov r1,-(sp)
37 asl r1
38 mov r1,-(sp)
39 jsr pc,_sbrk
40 tst (sp)+
41 cmp r0,$-1
42 beq 9f
43 mov r0,-(sp)
44 add $6,r0
45 mov r0,countbase
46 mov $_etext,-(sp)
47 mov $eprol,-(sp)
48 jsr pc,_monitor
49 add $10.,sp
50 jsr pc,_main
51 cmp (sp)+,(sp)+
52 jsr pc,_exit
53
549:
55 mov $2,r0
56 sys write; 8f; 9f-8f
57
58.data; 8: <No space for monitor buffer\n>; 9:.even; .text
59
60_exit:
61_IEH3exit:
62 mov r5,-(sp)
63 mov sp,r5
64 clr -(sp)
65 jsr pc,_monitor
66 tst (sp)+
67 mov 4(r5),r0
68 sys exit
69eprol: