\ 4tH library - TOOLBELT - Copyright 2003,2005 J.L. Bezemer
\ You can redistribute this file and/or modify it under
\ the terms of the GNU General Public License
[UNDEFINED] [VOID] [IF]
FALSE CONSTANT [VOID] IMMEDIATE
\ ==========
\ Common Use
\ ==========
[DEFINED] 4TH# [IF]
: APPEND-CHAR COUNT CHARS + DUP CHAR+ >R C! 0 R> C! ;
[THEN]
[UNDEFINED] 4TH# [IF]
: APPEND-CHAR DUP >R COUNT DUP 1+ R> C! + C! ;
[THEN]
\ ==============
\ Stack Handling
\ ==============
: THIRD ( x y z -- x y z x ) >R OVER R> SWAP ;
: FOURTH ( w x y z -- w x y z w ) >R >R OVER R> R> ROT ;
: 3DROP ( x y z -- ) DROP DROP DROP ;
: 2NIP ( w x y z -- y z ) >R >R DROP DROP R> R> ;
\ ================
\ Common Constants
\ ================
8 CONSTANT #BACKSPACE-CHAR
62 VALUE #CHARS/LINE
13 CONSTANT #EOL-CHAR
9 CONSTANT #TAB-CHAR
-1 CELLS CONSTANT -CELL
\ ===============
\ Filter Handling
\ ===============
VARIABLE TEMP
: NEXT-WORD ( -- str len )
BEGIN BL PARSE-WORD DUP IF EXIT THEN REFILL WHILE DROP DROP REPEAT ;
\ ==============
\ Error Checking
\ ==============
: FILE-CHECK ( n -- ) 0= ABORT" File Access Error " ;
\ ================
\ Generally Useful
\ ================
: ++ ( addr -- ) 1 SWAP +! ;
\ =============
\ Miscellaneous
\ =============
: HIWORD ( xxyy -- xx ) 16 RSHIFT ;
: LOWORD ( xxyy -- yy ) 65535 AND ;
[THEN]
|