Look at this:
Code:
MATH_CMP macro Zin, Xin ; Compare Pvars - result in M_EQ and M_GTE bits
MOVE?PP Zin, REG_Z ; Z <=> X -> STATUS(C,Z)
MOVE?PP Xin, REG_X
CLRFSR ; clear FSR first
L?CALL M_CMP
MOVE?TT STATUS,Z, _M_EQ ; STATUS,Z set if Z == X
MOVE?TT STATUS,C, _M_GTE ; STATUS,C set if Z => X;
endm
If I understand Darrel's code then:- If Z and X are equal you have set M_EQ and M_GTE
- If Z is greater than X, bit M_GTE is set, bit M_EQ is 0
- If Z is less than X, M_GTE and M_EQ are 0
EDIT:
PBP code should look like this:
IF M_EQ=1 AND M_GTE=1 THEN
'Z = X
ELSEIF M_EQ=0 AND M_GTE=1 THEN
'Z > X
ELSE 'M_EQ=0 AND M_GTE=0
'Z < X
ENDIF
Bookmarks