Files
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

59 lines
1.1 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; MACRO LIBRARY FOR 8-BIT COMPARISON OPERATION
;
TEST? MACRO X,Y
;; UTILTITY MACRO TO GENERATE CONDITION CODES
IF NOT NUL X ;;THEN LOAD X
LDA X ;;X ASSUMED TO BE IN MEMORY
ENDIF
IRPC ?Y,Y ;;Y MAY BE CONSTANT OPERAND
TDIG? SET '&?Y'-'0' ;;FIRST CHAR DIGIT?
EXITM ;;STOP IRPC AFTER FIRST CHAR
ENDM
IF TDIG? <= 9 ;;Y NUMERIC?
SUI Y ;;YES, SO SUB IMMEDIATE
ELSE
LXI H,Y ;;Y NOT NUMERIC
SUB M ;;SO SUB FROM MEMORY
ENDM
;
LSS MACRO X,Y,TL
;; X LSS THAN Y TEST,
;; TRANSFER TO TL (TRUE LABEL) IF TRUE,
;; CONTINUE IF TEST IS FALSE
TEST? X,Y ;;SET CONDITION CODES
JC TL
ENDM
;
LEQ MACRO X,Y,TL
;; X LESS THAN OR EQUAL TO Y TEST
LSS X,Y,TL
JZ TL
ENDM
;
EQL MACRO X,Y,TL
;; X EQUAL TO Y TEST
TEST? X,Y
JZ TL
ENDM
;
NEQ MACRO X,Y,TL
;; X NOT EQUAL TO Y TEST
TEST? X,Y
JNZ TL
ENDM
;
GEQ MACRO X,Y,TL
;; X GREATER THAN OR EQUAL TO Y TEST
TEST? X,Y
JNC TL
ENDM
;
GTR MACRO X,Y,TL
;; X GREATER THAN Y TEST
LOCAL FL ;;FALSE LABEL
TEST? X,Y
JC FL
DCR A
JNC TL
FL: ENDM