Commodore 128 CP/M v3.0
Z80 assembly macros
; @CHK MACRO USED FOR CHECKING 8 BIT DISPLACMENTS
;
@CHK MACRO ?DD ;; USED FOR CHECKING RANGE OF 8-BIT DISP.S
IF (?DD GT 7FH) AND (?DD LT 0FF80H)
'DISPLACEMENT RANGE ERROR - Z80 LIB'
ENDIF
ENDM
LDX MACRO ?R,?D
@CHK ?D
DB 0DDH,?R*8+46H,?D
ENDM
LDY MACRO ?R,?D
@CHK ?D
DB 0FDH,?R*8+46H,?D
ENDM
STX MACRO ?R,?D
@CHK ?D
DB 0DDH,70H+?R,?D
ENDM
STY MACRO ?R,?D
@CHK ?D
DB 0FDH,70H+?R,?D
ENDM
MVIX MACRO ?N,?D
@CHK ?D
DB 0DDH,36H,?D,?N
ENDM
MVIY MACRO ?N,?D
@CHK ?D
DB 0FDH,36H,?D,?N
ENDM
LDAI MACRO
DB 0EDH,57H
ENDM
LDAR MACRO
DB 0EDH,5FH
ENDM
STAI MACRO
DB 0EDH,47H
ENDM
STAR MACRO
DB 0EDH,4FH
ENDM
LXIX MACRO ?NNNN
DB 0DDH,21H
DW ?NNNN
ENDM
LXIY MACRO ?NNNN
DB 0FDH,21H
DW ?NNNN
ENDM
LDED MACRO ?NNNN
DB 0EDH,5BH
DW ?NNNN
ENDM
LBCD MACRO ?NNNN
DB 0EDH,4BH
DW ?NNNN
ENDM
LSPD MACRO ?NNNN
DB 0EDH,07BH
DW ?NNNN
ENDM
LIXD MACRO ?NNNN
DB 0DDH,2AH
DW ?NNNN
ENDM
LIYD MACRO ?NNNN
DB 0FDH,2AH
DW ?NNNN
ENDM
SBCD MACRO ?NNNN
DB 0EDH,43H
DW ?NNNN
ENDM
SDED MACRO ?NNNN
DB 0EDH,53H
DW ?NNNN
ENDM
SSPD MACRO ?NNNN
DB 0EDH,73H
DW ?NNNN
ENDM
SIXD MACRO ?NNNN
DB 0DDH,22H
DW ?NNNN
ENDM
SIYD MACRO ?NNNN
DB 0FDH,22H
DW ?NNNN
ENDM
SPIX MACRO
DB 0DDH,0F9H
ENDM
SPIY MACRO
DB 0FDH,0F9H
ENDM
PUSHIX MACRO
DB 0DDH,0E5H
ENDM
PUSHIY MACRO
DB 0FDH,0E5H
ENDM
POPIX MACRO
DB 0DDH,0E1H
ENDM
POPIY MACRO
DB 0FDH,0E1H
ENDM
EXAF MACRO
DB 08H
ENDM
EXX MACRO
DB 0D9H
ENDM
XTIX MACRO
DB 0DDH,0E3H
ENDM
XTIY MACRO
DB 0FDH,0E3H
ENDM
LDI MACRO
DB 0EDH,0A0H
ENDM
LDIR MACRO
DB 0EDH,0B0H
ENDM
LDD MACRO
DB 0EDH,0A8H
ENDM
LDDR MACRO
DB 0EDH,0B8H
ENDM
CCI MACRO
DB 0EDH,0A1H
ENDM
CCIR MACRO
DB 0EDH,0B1H
ENDM
CCD MACRO
DB 0EDH,0A9H
ENDM
CCDR MACRO
DB 0EDH,0B9H
ENDM
ADDX MACRO ?D
@CHK ?D
DB 0DDH,86H,?D
ENDM
ADDY MACRO ?D
@CHK ?D
DB 0FDH,86H,?D
ENDM
ADCX MACRO ?D
@CHK ?D
DB 0DDH,8EH,?D
ENDM
ADCY MACRO ?D
@CHK ?D
DB 0FDH,8EH,?D
ENDM
SUBX MACRO ?D
@CHK ?D
DB 0DDH,96H,?D
ENDM
SUBY MACRO ?D
@CHK ?D
DB 0FDH,96H,?D
ENDM
SBCX MACRO ?D
@CHK ?D
DB 0DDH,9EH,?D
ENDM
SBCY MACRO ?D
@CHK ?D
DB 0FDH,9EH,?D
ENDM
ANDX MACRO ?D
@CHK ?D
DB 0DDH,0A6H,?D
ENDM
ANDY MACRO ?D
@CHK ?D
DB 0FDH,0A6H,?D
ENDM
XORX MACRO ?D
@CHK ?D
DB 0DDH,0AEH,?D
ENDM
XORY MACRO ?D
@CHK ?D
DB 0FDH,0AEH,?D
ENDM
ORX MACRO ?D
@CHK ?D
DB 0DDH,0B6H,?D
ENDM
ORY MACRO ?D
@CHK ?D
DB 0FDH,0B6H,?D
ENDM
CMPX MACRO ?D
@CHK ?D
DB 0DDH,0BEH,?D
ENDM
CMPY MACRO ?D
@CHK ?D
DB 0FDH,0BEH,?D
ENDM
INRX MACRO ?D
@CHK ?D
DB 0DDH,34H,?D
ENDM
INRY MACRO ?D
@CHK ?D
DB 0FDH,34H,?D
ENDM
DCRX MACRO ?D
@CHK ?D
DB 0DDH,035H,?D
ENDM
DCRY MACRO ?D
@CHK ?D
DB 0FDH,35H,?D
ENDM
NEG MACRO
DB 0EDH,44H
ENDM
IM0 MACRO
DB 0EDH,46H
ENDM
IM1 MACRO
DB 0EDH,56H
ENDM
IM2 MACRO
DB 0EDH,5EH
ENDM
BC EQU 0
DE EQU 2
HL EQU 4
IX EQU 4
IY EQU 4
DADC MACRO ?R
DB 0EDH,?R*8+4AH
ENDM
DSBC MACRO ?R
DB 0EDH,?R*8+42H
ENDM
DADX MACRO ?R
DB 0DDH,?R*8+09H
ENDM
DADY MACRO ?R
DB 0FDH,?R*8+09H
ENDM
INXIX MACRO
DB 0DDH,23H
ENDM
INXIY MACRO
DB 0FDH,23H
ENDM
DCXIX MACRO
DB 0DDH,2BH
ENDM
DCXIY MACRO
DB 0FDH,2BH
ENDM
BIT MACRO ?N,?R
DB 0CBH,?N*8+?R+40H
ENDM
SETB MACRO ?N,?R
DB 0CBH,?N*8+?R+0C0H
ENDM
RES MACRO ?N,?R
DB 0CBH,?N*8+?R+80H
ENDM
BITX MACRO ?N,?D
@CHK ?D
DB 0DDH,0CBH,?D,?N*8+46H
ENDM
BITY MACRO ?N,?D
@CHK ?D
DB 0FDH,0CBH,?D,?N*8+46H
ENDM
SETX MACRO ?N,?D
@CHK ?D
DB 0DDH,0CBH,?D,?N*8+0C6H
ENDM
SETY MACRO ?N,?D
@CHK ?D
DB 0FDH,0CBH,?D,?N*8+0C6H
ENDM
RESX MACRO ?N,?D
@CHK ?D
DB 0DDH,0CBH,?D,?N*8+86H
ENDM
RESY MACRO ?N,?D
@CHK ?D
DB 0FDH,0CBH,?D,?N*8+86H
ENDM
JR MACRO ?N
DB 18H,?N-$-1
@CHK ?N-$-3
ENDM
JRC MACRO ?N
DB 38H,?N-$-1
@CHK ?N-$-3
ENDM
JRNC MACRO ?N
DB 30H,?N-$-1
@CHK ?N-$-3
ENDM
JRZ MACRO ?N
DB 28H,?N-$-1
@CHK ?N-$-3
ENDM
JRNZ MACRO ?N
DB 20H,?N-$-1
@CHK ?N-$-3
ENDM
DJNZ MACRO ?N
DB 10H,?N-$-1
@CHK ?N-$-3
ENDM
PCIX MACRO
DB 0DDH,0E9H
ENDM
PCIY MACRO
DB 0FDH,0E9H
ENDM
RETI MACRO
DB 0EDH,4DH
ENDM
RETN MACRO
DB 0EDH,45H
ENDM
INP MACRO ?R
DB 0EDH,?R*8+40H
ENDM
OUTP MACRO ?R
DB 0EDH,?R*8+41H
ENDM
INI MACRO
DB 0EDH,0A2H
ENDM
INIR MACRO
DB 0EDH,0B2H
ENDM
IND MACRO
DB 0EDH,0AAH
ENDM
INDR MACRO
DB 0EDH,0BAH
ENDM
OUTI MACRO
DB 0EDH,0A3H
ENDM
OUTIR MACRO
DB 0EDH,0B3H
ENDM
OUTD MACRO
DB 0EDH,0ABH
ENDM
OUTDR MACRO
DB 0EDH,0BBH
ENDM
RLCR MACRO ?R
DB 0CBH, 00H + ?R
ENDM
RLCX MACRO ?D
@CHK ?D
DB 0DDH, 0CBH, ?D, 06H
ENDM
RLCY MACRO ?D
@CHK ?D
DB 0FDH, 0CBH, ?D, 06H
ENDM
RALR MACRO ?R
DB 0CBH, 10H+?R
ENDM
RALX MACRO ?D
@CHK ?D
DB 0DDH, 0CBH, ?D, 16H
ENDM
RALY MACRO ?D
@CHK ?D
DB 0FDH, 0CBH, ?D, 16H
ENDM
RRCR MACRO ?R
DB 0CBH, 08H + ?R
ENDM
RRCX MACRO ?D
@CHK ?D
DB 0DDH, 0CBH, ?D, 0EH
ENDM
RRCY MACRO ?D
@CHK ?D
DB 0FDH, 0CBH, ?D, 0EH
ENDM
RARR MACRO ?R
DB 0CBH, 18H + ?R
ENDM
RARX MACRO ?D
@CHK ?D
DB 0DDH, 0CBH, ?D, 1EH
ENDM
RARY MACRO ?D
@CHK ?D
DB 0FDH, 0CBH, ?D, 1EH
ENDM
SLAR MACRO ?R
DB 0CBH, 20H + ?R
ENDM
SLAX MACRO ?D
@CHK ?D
DB 0DDH, 0CBH, ?D, 26H
ENDM
SLAY MACRO ?D
@CHK ?D
DB 0FDH, 0CBH, ?D, 26H
ENDM
SRAR MACRO ?R
DB 0CBH, 28H+?R
ENDM
SRAX MACRO ?D
@CHK ?D
DB 0DDH, 0CBH, ?D, 2EH
ENDM
SRAY MACRO ?D
@CHK ?D
DB 0FDH, 0CBH, ?D, 2EH
ENDM
SRLR MACRO ?R
DB 0CBH, 38H + ?R
ENDM
SRLX MACRO ?D
@CHK ?D
DB 0DDH, 0CBH, ?D, 3EH
ENDM
SRLY MACRO ?D
@CHK ?D
DB 0FDH, 0CBH, ?D, 3EH
ENDM
RLD MACRO
DB 0EDH, 6FH
ENDM
RRD MACRO
DB 0EDH, 67H
ENDM