Pristine Ack-5.5
[Ack-5.5.git] / mach / minixST / libsys / head_em.s
1 .define .lino,.filn
2 .define EXIT,WRITE,BRK
3 .define begtext,begdata,begbss
4 .define EARRAY,ERANGE,ESET,EIDIVZ,EHEAP,EILLINS,ECASE,EBADGTO
5 .define hol0,.reghp,.limhp,.trpim,.trppc
6 .sect .text
7 .sect .rom
8 .sect .data
9 .sect .bss
10
11
12
13 ! EM runtime start-off for MINIX ST
14
15
16 LINO_AD = 0
17 FILN_AD = 4
18
19 EARRAY  = 0
20 ERANGE  = 1
21 ESET    = 2
22 EIDIVZ  = 6
23 EHEAP   = 17
24 EILLINS = 18
25 ECASE   = 20
26 EBADGTO = 27
27
28         .sect .text
29 begtext:
30         move.l  sp,a0
31         move.l  (a0)+,d0
32         move.l  d0,d1
33         add.l   #1,d1
34         asl.l   #2,d1           ! pointers are four bytes on 68000
35         move.l  a0,a1
36         add.l   d1,a1
37         move.l  a1,-(sp)        ! push environ
38         move.l  a0,-(sp)        ! push argv
39         move.w  d0,-(sp)        ! push argc
40         jsr     __m_a_i_n
41         add     #010,sp
42 EXIT:
43         move.w  d0,-(sp)
44         jsr     __exit
45 L0:     bra     L0
46
47 BRK:    jmp     __brk
48
49 WRITE:  jmp     __write
50
51         .sect .data
52 begdata:
53 hol0:
54 .lino:
55         .data2  0,0     ! lino
56 .filn:
57         .data4  0       ! filn
58 .reghp:
59         .data4  endbss
60 .limhp:
61         .data4  endbss
62 .trppc:
63         .data4  0
64 .trpim:
65         .data2  0
66
67
68         .sect .bss
69 begbss: !initialization is not needed because ALL entries are in zero space!