Added Comparision operators to forth
This commit is contained in:
parent
375368c751
commit
1ee3d8d296
|
@ -253,10 +253,86 @@
|
||||||
NOP ; Flags
|
NOP ; Flags
|
||||||
POPR R1 R14
|
POPR R1 R14
|
||||||
POPR R2 R14
|
POPR R2 R14
|
||||||
TRUE R0 ; Assume comparision is false
|
FALSE R0 ; Assume comparision is True
|
||||||
|
CMPSKIP.E R1 R2 ; Check if they are equal and skip if they are
|
||||||
|
TRUE R0 ; Looks like our assumption was wrong
|
||||||
|
PUSHR R0 R14
|
||||||
JSR_COROUTINE R11 ; NEXT
|
JSR_COROUTINE R11 ; NEXT
|
||||||
|
|
||||||
|
;; !=
|
||||||
|
:NEqual_Text
|
||||||
|
"!="
|
||||||
|
:NEqual_Entry
|
||||||
|
&Equal_Entry ; Pointer to =
|
||||||
|
&NEqual_Text ; Pointer to Name
|
||||||
|
NOP ; Flags
|
||||||
|
POPR R1 R14
|
||||||
|
POPR R2 R14
|
||||||
|
FALSE R0 ; Assume comparision is True
|
||||||
|
CMPSKIP.NE R1 R2 ; Check if they are not equal and skip if they are
|
||||||
|
TRUE R0 ; Looks like our assumption was wrong
|
||||||
|
PUSHR R0 R14
|
||||||
|
JSR_COROUTINE R11 ; NEXT
|
||||||
|
|
||||||
|
;; <
|
||||||
|
:Less_Text
|
||||||
|
"<"
|
||||||
|
:Less_Entry
|
||||||
|
&NEqual_Entry ; Pointer to !=
|
||||||
|
&Less_Text ; Pointer to Name
|
||||||
|
NOP ; Flags
|
||||||
|
POPR R1 R14
|
||||||
|
POPR R2 R14
|
||||||
|
FALSE R0 ; Assume comparision is True
|
||||||
|
CMPSKIP.L R1 R2 ; Check if less than and skip if they are
|
||||||
|
TRUE R0 ; Looks like our assumption was wrong
|
||||||
|
PUSHR R0 R14
|
||||||
|
JSR_COROUTINE R11 ; NEXT
|
||||||
|
|
||||||
|
;; <=
|
||||||
|
:LEqual_Text
|
||||||
|
"<="
|
||||||
|
:LEqual_Entry
|
||||||
|
&Less_Entry ; Pointer to <
|
||||||
|
&LEqual_Text ; Pointer to Name
|
||||||
|
NOP ; Flags
|
||||||
|
POPR R1 R14
|
||||||
|
POPR R2 R14
|
||||||
|
FALSE R0 ; Assume comparision is True
|
||||||
|
CMPSKIP.LE R1 R2 ; Check if they are less than or equal and skip if they are
|
||||||
|
TRUE R0 ; Looks like our assumption was wrong
|
||||||
|
PUSHR R0 R14
|
||||||
|
JSR_COROUTINE R11 ; NEXT
|
||||||
|
|
||||||
|
;; >
|
||||||
|
:Greater_Text
|
||||||
|
">"
|
||||||
|
:Greater_Entry
|
||||||
|
&LEqual_Entry ; Pointer to <=
|
||||||
|
&Greater_Text ; Pointer to Name
|
||||||
|
NOP ; Flags
|
||||||
|
POPR R1 R14
|
||||||
|
POPR R2 R14
|
||||||
|
FALSE R0 ; Assume comparision is True
|
||||||
|
CMPSKIP.G R1 R2 ; Check if greater and skip if they are
|
||||||
|
TRUE R0 ; Looks like our assumption was wrong
|
||||||
|
PUSHR R0 R14
|
||||||
|
JSR_COROUTINE R11 ; NEXT
|
||||||
|
|
||||||
|
;; >=
|
||||||
|
:GEqual_Text
|
||||||
|
">="
|
||||||
|
:GEqual_Entry
|
||||||
|
&Greater_Entry ; Pointer to >
|
||||||
|
&GEqual_Text ; Pointer to Name
|
||||||
|
NOP ; Flags
|
||||||
|
POPR R1 R14
|
||||||
|
POPR R2 R14
|
||||||
|
FALSE R0 ; Assume comparision is True
|
||||||
|
CMPSKIP.GE R1 R2 ; Check if they are equal and skip if they are
|
||||||
|
TRUE R0 ; Looks like our assumption was wrong
|
||||||
|
PUSHR R0 R14
|
||||||
|
JSR_COROUTINE R11 ; NEXT
|
||||||
|
|
||||||
:cold_start
|
:cold_start
|
||||||
;;
|
;;
|
||||||
|
|
Loading…
Reference in New Issue