[Contents] [Commodore] [New] [Search] [Home]

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

[Contents] [Commodore] [New] [Search] [Home]
This page has been created by Sami Rautiainen.
Read the small print. Last updated September 05, 2020.