Pristine Ack-5.5
[Ack-5.5.git] / mach / z8000 / libmon / head_em.s
1 .define  EXIT, WRITE, F_DUM
2 .define  ERANGE, ESET, EHEAP, EILLINS, EODDZ, ECASE, EBADMON
3 .define  hol0, trppc, trpim, reghp, argv, envp
4 .sect .text
5 .sect .rom
6 .sect .data
7 .sect .bss
8 .sect .text
9
10 F_DUM   = 0
11
12 ERANGE  = 1
13 ESET    = 2
14 EHEAP   = 17
15 EILLINS = 18
16 EODDZ   = 19
17 ECASE   = 20
18 EBADMON = 25
19
20 .sect .text
21                         !clear .sect .bss
22         ldk     R2, $0
23         ld      R3, $endbss
24         ld      R0, R3
25         sub     R0, $begbss
26         jr      EQ, 1f
27         sra     R0
28         push    *RR2, $0
29         dec     R0
30         jr      EQ, 1f
31         ldl     RR4, RR2
32         dec     R5, $2
33         lddr    *RR4, *RR2, R0
34 1:
35         ldb     RL0, $10                ! echo newline
36         sc      $4
37         ldl     RR14, $0
38         push    *RR14, envp
39         push    *RR14, argv
40         push    *RR14, $1
41         calr    __m_a_i_n
42 EXIT:
43         ldl     RR14, $0xC00017FC
44         sc      $0
45
46 WRITE:  jr      __write
47
48 .sect .bss
49 begbss:
50 .sect .data
51 hol0:
52         .data2 0,0                      ! line no
53         .data2 0,0                      ! file
54 trppc:
55         .data2 0
56 trpim:
57         .data2 0
58 argv:
59 envp:
60         .data2 1f
61         .data2 0
62 1:      .asciz  "program"
63 reghp:
64         .data2 endbss