Files
Digital-Research-Source-Code/MPM OPERATING SYSTEMS/MPM II/MPM II SOURCE/CONTROL/COMPARE.LIB
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

59 lines
1.1 KiB
Plaintext
Raw 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