;; ;; HD64180 MACRO LIBRARY ;; ;; THE FOLLOWING MACROS ENABLE ASSEMBLING HD64180 INSTRUCTIONS ;; WITH SLR Z80ASM ;; ;; INVOKE WITH "MACLIB H80" ;; ;; ;; ;; MACRO FORMATS ;; ----- ------- ;; ;; HD64180 Unique instructions: ;; ;; SLP ; Enter SLEEP mode ;; MLT RR ; 8 bit multiply with 16 bit result ;; IN0 R,P (or IN0 P) ; Input from internal port ;; OUT0 P,R (or OUT0 P) ; Output to internal port ;; OTIM ; Block output, increment ;; OTIMR ; Block output, increment and repeat ;; OTDM ; Block output, decrement ;; OTDMR ; Block output, decrement and repeat ;; TSTIO P ; Non destructive AND, I/O port and A ;; TSTR R (or TST R) ; Non destructive AND, reg and A ;; TSTD D (or TST ID) ; Non destructive AND, immediate data and A ;; TSTP (or TST M) ; Non destructive AND, (HL) and A ;; (or TST (HL)) ;; ;; ;; ;; HD64180 orignal command support ??BC EQU 0 ; Double-register definitions ??DE EQU 1 ??HL EQU 2 ??SP EQU 3 ??A EQU 7 ; Single-register defintions ??B EQU 0 ??C EQU 1 ??D EQU 2 ??E EQU 3 ??H EQU 4 ??L EQU 5 SLP MACRO DB 0EDH,76H ENDM MLT MACRO ?R DB 0EDH,4CH+(??&?R AND 3) SHL 4 ENDM IN0 MACRO ?R,?P IF NUL ?P DB 0EDH,??A SHL 3,?R ELSE DB 0EDH,(??&?R AND 7) SHL 3, ?P ENDIF ENDM OUT0 MACRO ?P,?R IF NUL ?R DB 0EDH,1+??A SHL 3,?P ELSE DB 0EDH,1+(??&?R AND 7) SHL 3,?P ENDIF 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 ?P DB 0EDH,74H,?P ENDM TSTR MACRO ?R DB 0EDH,4+(??&?R AND 7) SHL 3 ENDM TSTD MACRO ?P DB 0EDH,64H,?P ENDM TSTP MACRO DB 0EDH,34H ENDM TST MACRO ?R ?D: SET 0 IRPC ?X,?R ?D: SET ?D+1 ; Count # chars in "?R" ENDM IF ?D EQ 1 ; IF # chars = 1 IRPC ?X,ABCDEHL ; Look up the character IF ??&?X EQ ??&?R DB 0EDH,4+(??&?R AND 7) SHL 3 EXITM ENDIF ENDM DB 0EDh,64h,?R EXITM ENDIF IF (?R = 2) & (?D = 4) ?D: SET 0 IRPC ?X,?R IFIDN ,<(> DB 0EDh,34h EXITM ENDIF ?D: SET ?D + 1 ENDM ENDIF IF ?D NE 0 DB 0EDH,64H,?R ENDIF ENDM ;; End of H80.LIB  AND 7) SHL 3, ?P ENDIF ENDM OUT0 MACRO