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