1
0
mirror of https://github.com/hsoft/collapseos.git synced 2024-11-20 22:38:06 +11:00
collapseos/forth/cmp.fs
Virgil Dupras 22f132094a Clarify signed-ness
And fix broken negative display in ".".
2020-04-15 12:29:47 -04:00

44 lines
622 B
Forth

( Words useful for complex comparison operations )
: >= < NOT ;
: <= > NOT ;
: <0 32767 > ;
: >=0 <0 NOT ;
( n1 -- n1 true )
: <>{ 1 ;
( n1 f -- f )
: <>} SWAP DROP ;
: _|&
( n1 n2 cell )
>R >R DUP R> R> ( n1 n1 n2 cell )
@ EXECUTE ( n1 f )
;
( n1 f n2 -- n1 f )
: _|
CREATE , DOES>
( n1 f n2 cell )
ROT IF 2DROP 1 EXIT THEN ( n1 true )
_|&
;
: _&
CREATE , DOES>
( n1 f n2 cell )
ROT NOT IF 2DROP 0 EXIT THEN ( n1 true )
_|&
;
( All words below have this signature:
n1 f n2 -- n1 f )
' = _| |=
' = _& &=
' > _| |>
' > _& &>
' < _| |<
' < _& &<