Pristine Ack-5.5
[Ack-5.5.git] / mach / z80 / libmon / head_em.s
1 .define EARRAY,ERANGE,EILLINS,EILLSIZE,ECASE,EMON,EHEAP
2 .define hol0,trapproc,trpim,argv,hp,.reghp,envp,begbss,ignmask
3 .define savebc,savede,savehl,saveix,saveaf,saveiy,ebadmon
4 .define WRITE,EXIT
5 .sect .text
6 .sect .rom
7 .sect .data
8 .sect .bss
9 .sect .text
10    EARRAY = 0
11    ERANGE = 1
12    EHEAP = 17
13    EILLINS=18
14    EILLSIZE=19
15    ECASE=20
16    EMON=25
17    ebadmon=25
18
19
20 .sect .text
21
22                                 ! clear .sect .bss
23         ld sp,0x7ffe            !address of fbase
24         ld de,endbss
25         ld h,d
26         ld l,e
27         ld bc,begbss
28         xor a                   ! to clear carry
29         sbc hl,bc
30         ld a,h
31         or l
32         jr z,1f
33 2:
34         xor a
35         ld (de),a
36         dec de
37         dec hl
38         ld a,h
39         or l
40         jr nz,2b
41 1:                              ! hl == 0
42
43         ld bc,envp
44         push bc
45         ld bc,argv
46         push bc
47         ld bc,1
48         push bc
49         call __m_a_i_n
50 EXIT:
51         jp 0x20
52 WRITE:
53         jp __write
54
55 .sect .bss
56 begbss:
57 .sect .data
58 hol0:
59         .data2 0,0
60         .data2 0,0
61 saveaf:
62         .data2 0
63 savebc:
64         .data2 0
65 savede:
66         .data2 0
67 savehl:
68         .data2 0
69 saveix:
70         .data2 0
71 saveiy:
72         .data2 0
73 ignmask:
74         .data2 0
75 hp:
76         .data2 0
77 trapproc:
78         .data2 0
79 trpim:
80         .data2 0
81 argv:
82         .data2 3f
83 envp:
84         .data2 0
85 3:
86         .asciz 'PROGRAM'
87 .reghp:
88         .data2 endbss