pic18/double-pred.ss
#lang planet zwizwa/staapl/pic18 \ -*- forth -*-
staapl pic18/double-math
provide-all

\ predicates

: _=
    _-
: _0=    
    INDF0 iorwf
    z? if
        INDF0 setf
        -1 retlw
    then
        INDF0 clrf
        0 retlw
    
\ SIGNED

: _sign>flag-invert
    #x80 xor
: _sign>flag
    rot<< 1 and
    0 sublw
    INDF0 movwf ;

    
: _<   _-   _sign>flag ;
: _>=  _-   _sign>flag-invert ;

: _>   _-   _negate _sign>flag ;
: _<=  _-   _negate _sign>flag-invert ;