mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-25 01:14:21 +00:00
59 lines
1.1 KiB
Plaintext
59 lines
1.1 KiB
Plaintext
; 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
|
||
|