; HD64180-Macro-Library - 14.04.85 .z80 .xlist CNTLA0 equ 00h CNTLA1 equ 01h CNTLB0 equ 02h CNTLB1 equ 03h STAT0 equ 04h STAT1 equ 05h TDR0 equ 06h TDR1 equ 07h TSR0 equ 08h TSR1 equ 09h CNTR equ 0ah TRDR equ 0bh TMDROL equ 0ch TMDROH equ 0dh RLDROL equ 0eh RLDROH equ 0fh TCR equ 10h TMDR1L equ 14h TMDR1H equ 15h RLDR1L equ 16h RLDR1H equ 17h SAR0L equ 20h SAR0H equ 21h SAR0B equ 22h DAR0L equ 23h DAR0H equ 24h DAR0B equ 25h BCR0L equ 26h BCR0H equ 27h MAR1L equ 28h MAR1H equ 29h MAR1B equ 2ah IAR1L equ 2bh IAR1H equ 2ch BCR1L equ 2eh BCR1H equ 2fh DSTAT equ 30h DMODE equ 31h DCNTL equ 32h IL equ 33h ITC equ 34h RCR equ 36h CBR equ 38h BBR equ 39h CBAR equ 3ah ICR equ 3fh hdword macro x if '&X' eq 'BC' or '&X' eq 'bc' ww defl 0 ; INIT mit 0, BC=0 else if '&X' eq 'DE' or '&X' eq 'de' ww defl 1 else if '&X' eq 'HL' or '&X' eq 'hl' ww defl 2 else if '&X' eq 'SP' or '&X' eq 'sp' ww defl 3 else .printx 'HD-Word-Error' endif endif endif endif endm hdreg macro x ifidn ,<(hl)> reg defl 6 else ifidn ,<(HL)> reg defl 6 else if '&X' eq 'B' or '&X' eq 'b' reg defl 0 else if '&X' eq 'C' or '&X' eq 'c' reg defl 1 else if '&X' eq 'D' or '&X' eq 'd' reg defl 2 else if '&X' eq 'E' or '&X' eq 'e' reg defl 3 else if '&X' eq 'H' or '&X' eq 'h' reg defl 4 else if '&X' eq 'L' or '&X' eq 'l' reg defl 5 else if '&X' eq 'A' or '&X' eq 'a' reg defl 7 else .printx 'HD-Reg Error' endif endif endif endif endif endif endif endif endif endm mlt macro x hdword x db 0edh,4ch+ww*10h endm slp macro db 0edh,076h endm in0 macro x,y hdreg x db 0edh,reg*8,y endm out0 macro y,x hdreg x db 0edh,reg*8+1,y endm tst macro x ; Test register hdreg x db 0edh,reg*8+4 endm otim macro db 0edh,83h endm otimr macro db 0edh,93h endm otdm macro db 0edh,8bh endm otdmr macro db 0edh,9bh endm tstio macro x db 0edh,074h,x endm ; ENDE der HD64180-Macros