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

77 lines
1.3 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,FL
;; X LSS THAN Y TEST,
;; IF TL IS PRESENT, ASSUME TRUE TEST
;; IF TL IS ABSENT, THEN INVERT TEST
IF NUL TL
GEQ X,Y,FL
ELSE
TEST? X,Y ;;SET CONDITION CODES
JC TL
ENDM
;
LEQ MACRO X,Y,TL,FL
;; X LESS THAN OR EQUAL TO Y TEST
IF NUL TL
GEQ X,Y,FL
ELSE
LSS X,Y,TL
JZ TL
ENDM
;
EQL MACRO X,Y,TL,FL
;; X EQUAL TO Y TEST
IF NUL TL
NEQ X,Y,FL
ELSE
TEST? X,Y
JZ TL
ENDM
;
NEQ MACRO X,Y,TL,FL
;; X NOT EQUAL TO Y TEST
IF NUL TL
EQL X,Y,FL
ELSE
TEST? X,Y
JNZ TL
ENDM
;
GEQ MACRO X,Y,TL,FL
;; X GREATER THAN OR EQUAL TO Y TEST
IF NUL TL
LSS X,Y,FL
ELSE
TEST? X,Y
JNC TL
ENDM
;
GTR MACRO X,Y,TL,FL
;; X GREATER THAN Y TEST
IF NUL TL
LEQ X,Y,FL
ELSE
LOCAL GFL ;;FALSE LABEL
TEST? X,Y
JC GFL
DCR A
JNC TL
GFL: ENDM