IF_LT_BRANCH	macro	where
		scope
		jr	nc,where
		endmac	IF_LT_BRANCH

IF_GT_BRANCH	macro	where
		scope
		jr	c,where
		endmac	IF_GT_BRANCH

IF_EQ_BRANCH	macro	where
		scope
		jr	z,where
		endmac	IF_EQ_BRANCH

IF_NE_BRANCH	macro	where
		scope
		jr	nz,where
		endmac	IF_NE_BRANCH

IF_EQ_GOSUB	macro	where
		scope
		call	z,where
		endmac	IF_EQ_GOSUB

IF_GE_GOSUB	macro	where
		scope
		call	z,where			; If EQUAL =.
		call	c,where			; If GREATER THAN > then carry is set.
		endmac	IF_GE_GOSUB

IF_GT_GOSUB	macro	where
		scope
		call	c,where			; GREATER THAN >.
		endmac	IF_GT_GOSUB

IF_LE_GOSUB	macro	where
		scope
		call	z,where			; If EQUAL =.
		call	nc,where		; If LESS THAN <.
		endmac	IF_LE_GOSUB

IF_LT_GOSUB	macro	where			; If LESS THAN <.
		scope
		call	nc,where
		endmac	IF_LT_GOSUB

IF_NE_GOSUB	macro	where			; If NOT EQUAL <>.
		scope
		call	nz,where
		endmac	IF_NE_GOSUB

IF_PE_GOSUB	macro	where			; If parity even then gosub.
		scope
		call	pe,label
		endmac	IF_PE_GOSUB

IF_PO_GOSUB	macro	where			; If parity off gosub.
		scope
		call	po,where
		endmac	IF_PO_GOSUB

IF_EQ_GOTO	macro	where
		scope
		jp	z,where
		endmac	IF_EQ_GOTO

IF_GE_GOTO	macro	where
		scope
		jp	z,where
		jp	c,where
		endmac	IF_GE_GOTO

IF_GT_GOTO	macro	where
		scope
		jp	c,where
		endmac	IF_GT_GOTO

IF_LE_GOTO	macro	where
		scope
		jp	z,where
		jp	nc,where
		endmac	IF_LE_GOTO

IF_LT_GOTO	macro	where
		scope
		jp	nc,where
		endmac	IF_LT_GOTO

IF_NE_GOTO	macro	where
		scope
		jp	nz,where
		endmac	IF_NE_GOTO

IF_EQ_RETURN	macro				; If equal, z is set, return.
		scope
		ret	z
		endmac	IF_EQ_RETURN

IF_NE_RETURN	macro				; If Z flag NOT set, return.
		scope
		ret	nz
		endmac	IF_NE_RETURN