Pristine Ack-5.5
[Ack-5.5.git] / mach / pdp / libsys / head_em.s
1 #
2 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
3 .define  LINO_AD,FILN_AD
4 .define  ERANGE,ESET,EHEAP,EILLINS,ECASE
5 .define  hol0,trppc~,trpim~,reghp~,.limhp
6 .define EXIT,WRITE,BRK
7 ! $Id: head_em.s,v 1.3 1994/06/24 13:21:02 ceriel Exp $
8
9 #define float 1
10 #define hardfp 1
11
12 LINO_AD = 0
13 FILN_AD = 4
14
15 ERANGE  = 1
16 ESET    = 2
17 EFOVFL  = 4
18 EFUNFL  = 5
19 EFDIVZ  = 7
20 EFUND   = 011
21 ECONV   = 012
22 EHEAP   = 021
23 EILLINS = 022
24 ECASE   = 024
25
26 #ifdef float
27 #ifndef hardfp
28 !       sys     060;.data2 4,fptrap     / if not commented it will appear as undefined
29 #endif
30         sys     060;.data2 010,sig8
31         ldfps   $07600
32 #endif
33         mov     2(sp),r0
34         clr     -2(r0)
35         mov     sp,r0
36         sub     $4,sp
37         mov     4(sp),(sp)
38         tst     (r0)+
39         mov     r0,2(sp)
40 1:
41         tst     (r0)+
42         bne     1b
43         cmp     r0,*2(sp)
44         blo     1f
45         tst     -(r0)
46 1:
47         mov     r0,4(sp)
48         jsr     pc,__m_a_i_n
49         mov     r0,-(sp)
50 EXIT:
51         jsr     pc,__exit
52         sys     1
53
54 WRITE:  jmp     __write
55
56 BRK:    jmp     __brk
57
58         .sect .data
59 hol0:   .data2 0,0     ! line no
60         .data2 0,0     ! file
61 trppc~: .data2 0
62 trpim~: .data2 0
63 reghp~: .data2 _end
64 .limhp: .data2 _end
65
66         .sect .text
67 sig8:
68 #ifdef float
69         mov     r0,-(sp)
70         stst    r0
71         mov     1f(r0),-(sp)
72         jsr     pc,trp~
73         sys     060;.data2 010,sig8
74         mov     (sp)+,r0
75         rti
76
77         .sect .data
78 1:      .data2 EILLINS, EILLINS, EFDIVZ, ECONV, EFOVFL, EFUNFL, EFUND, EILLINS
79         .sect .text
80 #endif