\ 4tH library - COMUS - Copyright 2003,2008 J.L. Bezemer
\ You can redistribute this file and/or modify it under
\ the terms of the GNU General Public License
\ Load definitions when needed
[UNDEFINED] 2OVER [IF]
[NEEDS lib/2rotover.4th]
[THEN]
[UNDEFINED] UNDER+ [IF]
1 CELLS CONSTANT CELL
: (.) ( n -- str len )
BASE @ 10 = IF DUP ELSE 0 SWAP THEN ABS <# #S SIGN #> ;
: 2+ ( n1|u1 -- n2|u2 ) 1+ 1+ ;
: 2- ( n1|u1 -- n2|u2 ) 1- 1- ;
: 3DUP ( x1 x2 x3 -- x1 x2 x3 x1 x2 x3 ) DUP 2OVER ROT ;
: 4DUP ( x1 x2 x3 -- x1 x2 x3 x1 x2 x3 ) 2OVER 2OVER ;
: @+ ( a-addr1 -- a-addr2 x ) DUP CELL+ SWAP @ ;
: !+ ( addr1 x -- addr2 ) OVER ! CELL+ ;
: C@+ ( c-addr1 -- c-addr2 c ) DUP CHAR+ SWAP C@ ;
: C!+ ( c-addr1 c -- c-addr2 ) OVER C! CHAR+ ;
: C+! ( n c-addr -- ) DUP >R C@ + R> C! ;
: CLEAR ( i*x -- ) DEPTH 0 ?DO DROP LOOP ;
: NOOP ;
: OFF ( a-addr -- ) FALSE SWAP ! ;
: ON ( a-addr -- ) TRUE SWAP ! ;
: PERFORM ( i*x a-addr -- j*x ) @ EXECUTE ;
: UNDER+ ( n1|u1 x n2|u2 -- n3|u3 x ) ROT + SWAP ;
[THEN]
|