1 
2 // automatically generated by m4 from headers in proto subdir
3 
4 
5 #if __Z180
6 
7 #ifndef __Z180_H__
8 #define __Z180_H__
9 
10 #include <arch.h>
11 #include <stdint.h>
12 
13 // Runtime IM 2
14 
15 #include <im2.h>
16 
17 // Exact T State Delay Busy Loop
18 
19 extern void __LIB__ z180_delay_ms(uint16_t ms) __smallc __z88dk_fastcall;
20 
21 
22 extern void __LIB__ z180_delay_tstate(uint16_t tstates) __smallc __z88dk_fastcall;
23 
24 
25 extern uint8_t __LIB__ z180_get_int_state(void) __smallc;
26 
27 
28 extern void __LIB__ z180_set_int_state(uint8_t state) __smallc __z88dk_fastcall;
29 
30 
31 
32 // IO By Function
33 
34 extern uint8_t __LIB__ z180_inp(uint16_t port) __smallc __z88dk_fastcall;
35 
36 
37 extern void __LIB__ *z180_inir(void *dst,uint8_t port,uint8_t num) __smallc;
38 extern void __LIB__ *z180_inir_callee(void *dst,uint8_t port,uint8_t num) __smallc __z88dk_callee;
39 #define z180_inir(a,b,c) z180_inir_callee(a,b,c)
40 
41 
42 extern void __LIB__ *z180_indr(void *dst,uint8_t port,uint8_t num) __smallc;
43 extern void __LIB__ *z180_indr_callee(void *dst,uint8_t port,uint8_t num) __smallc __z88dk_callee;
44 #define z180_indr(a,b,c) z180_indr_callee(a,b,c)
45 
46 
47 extern void __LIB__ z180_outp(uint16_t port,uint8_t data) __smallc;
48 extern void __LIB__ z180_outp_callee(uint16_t port,uint8_t data) __smallc __z88dk_callee;
49 #define z180_outp(a,b) z180_outp_callee(a,b)
50 
51 
52 extern void __LIB__ *z180_otir(void *src,uint8_t port,uint8_t num) __smallc;
53 extern void __LIB__ *z180_otir_callee(void *src,uint8_t port,uint8_t num) __smallc __z88dk_callee;
54 #define z180_otir(a,b,c) z180_otir_callee(a,b,c)
55 
56 
57 extern void __LIB__ *z180_otdr(void *src,uint8_t port,uint8_t num) __smallc;
58 extern void __LIB__ *z180_otdr_callee(void *src,uint8_t port,uint8_t num) __smallc __z88dk_callee;
59 #define z180_otdr(a,b,c) z180_otdr_callee(a,b,c)
60 
61 
62 
63 extern void __LIB__ *z180_otimr(void *dst,uint8_t port,uint8_t num) __smallc;
64 extern void __LIB__ *z180_otimr_callee(void *dst,uint8_t port,uint8_t num) __smallc __z88dk_callee;
65 #define z180_otimr(a,b,c) z180_otimr_callee(a,b,c)
66 
67 
68 extern void __LIB__ *z180_otdmr(void *src,uint8_t port,uint8_t num) __smallc;
69 extern void __LIB__ *z180_otdmr_callee(void *src,uint8_t port,uint8_t num) __smallc __z88dk_callee;
70 #define z180_otdmr(a,b,c) z180_otdmr_callee(a,b,c)
71 
72 
73 
74 // Memory by Address
75 
76 #define z180_bpoke(a,b)  (*(unsigned char *)(a) = b)
77 #define z180_wpoke(a,b)  (*(unsigned int *)(a) = b)
78 #define z180_lpoke(a,b)  (*(unsigned long *)(a) = b)
79 
80 #define z180_bpeek(a)    (*(unsigned char *)(a))
81 #define z180_wpeek(a)    (*(unsigned int *)(a))
82 #define z180_lpeek(a)    (*(unsigned long *)(a))
83 
84 #ifdef __CLANG
85 
86 #define z180_llpoke(a,b) (*(unsigned long long *)(a) = b)
87 #define z180_llpeek(a)   (*(unsigned long long *)(a))
88 
89 #endif
90 
91 #ifdef __SDCC
92 
93 #define z180_llpoke(a,b) (*(unsigned long long *)(a) = b)
94 #define z180_llpeek(a)   (*(unsigned long long *)(a))
95 
96 #endif
97 
98 // INTERNAL INTERRUPT VECTORS
99 
100 #if (__Z180 & __Z180_Z80180)
101 
102    // Z80180 CLASS
103 
104 #else
105 
106    // Z8S180 / Z8L180 CLASS
107 
108 #endif
109 
110 // IO MAPPED INTERNAL REGISTERS
111 
112 #if (__Z180 & __Z180_Z80180)
113 
114    // Z80180 CLASS
115 
116    #ifdef __CLANG
117 
118    extern unsigned char CNTLA0;
119    extern unsigned char CNTLA1;
120    extern unsigned char CNTLB0;
121    extern unsigned char CNTLB1;
122    extern unsigned char STAT0;
123    extern unsigned char STAT1;
124    extern unsigned char TDR0;
125    extern unsigned char TDR1;
126    extern unsigned char RDR0;
127    extern unsigned char RDR1;
128 
129    extern unsigned char CNTR;
130    extern unsigned char TRDR;
131 
132    extern unsigned char TMDR0L;
133    extern unsigned char TMDR0H;
134    extern unsigned char RLDR0L;
135    extern unsigned char RLDR0H;
136    extern unsigned char TCR;
137    extern unsigned char TMDR1L;
138    extern unsigned char TMDR1H;
139    extern unsigned char RLDR1L;
140    extern unsigned char RLDR1H;
141 
142    extern unsigned char FRC;
143 
144    extern unsigned char SAR0L;
145    extern unsigned char SAR0H;
146    extern unsigned char SAR0B;
147    extern unsigned char DAR0L;
148    extern unsigned char DAR0H;
149    extern unsigned char DAR0B;
150    extern unsigned char BCR0L;
151    extern unsigned char BCR0H;
152    extern unsigned char MAR1L;
153    extern unsigned char MAR1H;
154    extern unsigned char MAR1B;
155    extern unsigned char IAR1L;
156    extern unsigned char IAR1H;
157    extern unsigned char BCR1L;
158    extern unsigned char BCR1H;
159    extern unsigned char DSTAT;
160    extern unsigned char DMODE;
161    extern unsigned char DCNTL;
162 
163    extern unsigned char IL;
164    extern unsigned char ITC;
165 
166    extern unsigned char RCR;
167 
168    extern unsigned char CBR;
169    extern unsigned char BBR;
170    extern unsigned char CBAR;
171 
172    extern unsigned char OMCR;
173    extern unsigned char ICR;
174 
175    #else
176 
177    __sfr __at __IO_CNTLA0 CNTLA0;
178    __sfr __at __IO_CNTLA1 CNTLA1;
179    __sfr __at __IO_CNTLB0 CNTLB0;
180    __sfr __at __IO_CNTLB1 CNTLB1;
181    __sfr __at __IO_STAT0 STAT0;
182    __sfr __at __IO_STAT1 STAT1;
183    __sfr __at __IO_TDR0 TDR0;
184    __sfr __at __IO_TDR1 TDR1;
185    __sfr __at __IO_RDR0 RDR0;
186    __sfr __at __IO_RDR1 RDR1;
187 
188    __sfr __at __IO_CNTR CNTR;
189    __sfr __at __IO_TRDR TRDR;
190 
191    __sfr __at __IO_TMDR0L TMDR0L;
192    __sfr __at __IO_TMDR0H TMDR0H;
193    __sfr __at __IO_RLDR0L RLDR0L;
194    __sfr __at __IO_RLDR0H RLDR0H;
195    __sfr __at __IO_TCR TCR;
196    __sfr __at __IO_TMDR1L TMDR1L;
197    __sfr __at __IO_TMDR1H TMDR1H;
198    __sfr __at __IO_RLDR1L RLDR1L;
199    __sfr __at __IO_RLDR1H RLDR1H;
200 
201    __sfr __at __IO_FRC FRC;
202 
203    __sfr __at __IO_SAR0L SAR0L;
204    __sfr __at __IO_SAR0H SAR0H;
205    __sfr __at __IO_SAR0B SAR0B;
206    __sfr __at __IO_DAR0L DAR0L;
207    __sfr __at __IO_DAR0H DAR0H;
208    __sfr __at __IO_DAR0B DAR0B;
209    __sfr __at __IO_BCR0L BCR0L;
210    __sfr __at __IO_BCR0H BCR0H;
211    __sfr __at __IO_MAR1L MAR1L;
212    __sfr __at __IO_MAR1H MAR1H;
213    __sfr __at __IO_MAR1B MAR1B;
214    __sfr __at __IO_IAR1L IAR1L;
215    __sfr __at __IO_IAR1H IAR1H;
216    __sfr __at __IO_BCR1L BCR1L;
217    __sfr __at __IO_BCR1H BCR1H;
218    __sfr __at __IO_DSTAT DSTAT;
219    __sfr __at __IO_DMODE DMODE;
220    __sfr __at __IO_DCNTL DCNTL;
221 
222    __sfr __at __IO_IL IL;
223    __sfr __at __IO_ITC ITC;
224 
225    __sfr __at __IO_RCR RCR;
226 
227    __sfr __at __IO_CBR CBR;
228    __sfr __at __IO_BBR BBR;
229    __sfr __at __IO_CBAR CBAR;
230 
231    __sfr __at __IO_OMCR OMCR;
232    __sfr __at __IO_ICR ICR;
233 
234    #endif
235 
236 #else
237 
238    // Z8S180 / Z8L180 CLASS
239 
240    #ifdef __CLANG
241 
242    extern unsigned char CNTLA0;
243    extern unsigned char CNTLA1;
244    extern unsigned char CNTLB0;
245    extern unsigned char CNTLB1;
246    extern unsigned char STAT0;
247    extern unsigned char STAT1;
248    extern unsigned char TDR0;
249    extern unsigned char TDR1;
250    extern unsigned char RDR0;
251    extern unsigned char RDR1;
252    extern unsigned char ASEXT0;
253    extern unsigned char ASEXT1;
254    extern unsigned char ASTC0L;
255    extern unsigned char ASTC0H;
256    extern unsigned char ASTC1L;
257    extern unsigned char ASTC1H;
258 
259    extern unsigned char CNTR;
260    extern unsigned char TRDR;
261 
262    extern unsigned char TMDR0L;
263    extern unsigned char TMDR0H;
264    extern unsigned char RLDR0L;
265    extern unsigned char RLDR0H;
266    extern unsigned char TCR;
267    extern unsigned char TMDR1L;
268    extern unsigned char TMDR1H;
269    extern unsigned char RLDR1L;
270    extern unsigned char RLDR1H;
271 
272    extern unsigned char FRC;
273    extern unsigned char CMR;
274    extern unsigned char CCR;
275 
276    extern unsigned char SAR0L;
277    extern unsigned char SAR0H;
278    extern unsigned char SAR0B;
279    extern unsigned char DAR0L;
280    extern unsigned char DAR0H;
281    extern unsigned char DAR0B;
282    extern unsigned char BCR0L;
283    extern unsigned char BCR0H;
284    extern unsigned char MAR1L;
285    extern unsigned char MAR1H;
286    extern unsigned char MAR1B;
287    extern unsigned char IAR1L;
288    extern unsigned char IAR1H;
289    extern unsigned char IAR1B;
290    extern unsigned char BCR1L;
291    extern unsigned char BCR1H;
292    extern unsigned char DSTAT;
293    extern unsigned char DMODE;
294    extern unsigned char DCNTL;
295 
296    extern unsigned char IL;
297    extern unsigned char ITC;
298 
299    extern unsigned char RCR;
300 
301    extern unsigned char CBR;
302    extern unsigned char BBR;
303    extern unsigned char CBAR;
304 
305    extern unsigned char OMCR;
306    extern unsigned char ICR;
307 
308    #else
309 
310    __sfr __at __IO_CNTLA0 CNTLA0;
311    __sfr __at __IO_CNTLA1 CNTLA1;
312    __sfr __at __IO_CNTLB0 CNTLB0;
313    __sfr __at __IO_CNTLB1 CNTLB1;
314    __sfr __at __IO_STAT0 STAT0;
315    __sfr __at __IO_STAT1 STAT1;
316    __sfr __at __IO_TDR0 TDR0;
317    __sfr __at __IO_TDR1 TDR1;
318    __sfr __at __IO_RDR0 RDR0;
319    __sfr __at __IO_RDR1 RDR1;
320    __sfr __at __IO_ASEXT0 ASEXT0;
321    __sfr __at __IO_ASEXT1 ASEXT1;
322    __sfr __at __IO_ASTC0L ASTC0L;
323    __sfr __at __IO_ASTC0H ASTC0H;
324    __sfr __at __IO_ASTC1L ASTC1L;
325    __sfr __at __IO_ASTC1H ASTC1H;
326 
327    __sfr __at __IO_CNTR CNTR;
328    __sfr __at __IO_TRDR TRDR;
329 
330    __sfr __at __IO_TMDR0L TMDR0L;
331    __sfr __at __IO_TMDR0H TMDR0H;
332    __sfr __at __IO_RLDR0L RLDR0L;
333    __sfr __at __IO_RLDR0H RLDR0H;
334    __sfr __at __IO_TCR TCR;
335    __sfr __at __IO_TMDR1L TMDR1L;
336    __sfr __at __IO_TMDR1H TMDR1H;
337    __sfr __at __IO_RLDR1L RLDR1L;
338    __sfr __at __IO_RLDR1H RLDR1H;
339 
340    __sfr __at __IO_FRC FRC;
341    __sfr __at __IO_CMR CMR;
342    __sfr __at __IO_CCR CCR;
343 
344    __sfr __at __IO_SAR0L SAR0L;
345    __sfr __at __IO_SAR0H SAR0H;
346    __sfr __at __IO_SAR0B SAR0B;
347    __sfr __at __IO_DAR0L DAR0L;
348    __sfr __at __IO_DAR0H DAR0H;
349    __sfr __at __IO_DAR0B DAR0B;
350    __sfr __at __IO_BCR0L BCR0L;
351    __sfr __at __IO_BCR0H BCR0H;
352    __sfr __at __IO_MAR1L MAR1L;
353    __sfr __at __IO_MAR1H MAR1H;
354    __sfr __at __IO_MAR1B MAR1B;
355    __sfr __at __IO_IAR1L IAR1L;
356    __sfr __at __IO_IAR1H IAR1H;
357    __sfr __at __IO_IAR1B IAR1B;
358    __sfr __at __IO_BCR1L BCR1L;
359    __sfr __at __IO_BCR1H BCR1H;
360    __sfr __at __IO_DSTAT DSTAT;
361    __sfr __at __IO_DMODE DMODE;
362    __sfr __at __IO_DCNTL DCNTL;
363 
364    __sfr __at __IO_IL IL;
365    __sfr __at __IO_ITC ITC;
366 
367    __sfr __at __IO_RCR RCR;
368 
369    __sfr __at __IO_CBR CBR;
370    __sfr __at __IO_BBR BBR;
371    __sfr __at __IO_CBAR CBAR;
372 
373    __sfr __at __IO_OMCR OMCR;
374    __sfr __at __IO_ICR ICR;
375 
376    #endif
377 
378 #endif
379 
380 #endif
381 
382 #endif
383