26 lines
642 B
FortranFixed
26 lines
642 B
FortranFixed
|
|
: if $ brz >asm ; immediate
|
||
|
|
: then resolve ; immediate
|
||
|
|
: else r> $ jmpr >asm >r resolve ; immediate
|
||
|
|
: variable create 0 , does> ;
|
||
|
|
: arshift $ arshift asm ;
|
||
|
|
: lshift [ $ lshift asm ] ;
|
||
|
|
: rshift [ $ rshift asm ] ;
|
||
|
|
: u> [ $ gt ] asm ;
|
||
|
|
: u< [ $ lt ] asm ;
|
||
|
|
: rdrop r> pop ;
|
||
|
|
: over 1 pick ;
|
||
|
|
: nip swap pop ;
|
||
|
|
: -rot rot rot ;
|
||
|
|
: tuck dup -rot ;
|
||
|
|
: space 32 emit ;
|
||
|
|
: cr 13 emit 10 emit ;
|
||
|
|
: +! dup @ rot + swap ! ;
|
||
|
|
: 2dup 1 pick 1 pick ;
|
||
|
|
: allot here swap &heap +! ;
|
||
|
|
: negate -1 ^ 1 + ;
|
||
|
|
: free negate &heap +! here ;
|
||
|
|
: c+! dup c@ rot + swap c! ;
|
||
|
|
: ror dup 1 rshift swap 23 lshift | ;
|
||
|
|
: rol dup 23 rshift swap 1 lshift | ;
|
||
|
|
: abs dup 0 < if negate then ;
|