version 1.5, 2006/12/31 13:39:19
|
version 1.6, 2007/05/05 17:26:03
|
Line 27 DEFER XEMIT ( xc -- )
|
Line 27 DEFER XEMIT ( xc -- )
|
DEFER XKEY ( -- xc ) |
DEFER XKEY ( -- xc ) |
DEFER XCHAR+ ( xc-addr1 -- xc-addr2 ) |
DEFER XCHAR+ ( xc-addr1 -- xc-addr2 ) |
DEFER XCHAR- ( xc-addr1 -- xc-addr2 ) |
DEFER XCHAR- ( xc-addr1 -- xc-addr2 ) |
DEFER +X/STRING ( xc-addr1 u1 -- xc-addr2 u2 ) |
DEFER +XSTRING ( xc-addr1 u1 -- xc-addr2 u2 ) |
DEFER -X/STRING ( xc-addr1 u1 -- xc-addr2 u2 ) |
DEFER -XSTRING ( xc-addr1 u1 -- xc-addr2 u2 ) |
|
DEFER XSTRING+ ( xc-addr1 u1 -- xc-addr1 u2 ) |
|
DEFER XSTRING- ( xc-addr1 u1 -- xc-addr1 u2 ) |
DEFER XC@ ( xc-addr -- xc ) |
DEFER XC@ ( xc-addr -- xc ) |
DEFER XC!+? ( xc xc-addr1 u1 -- xc-addr2 u2 f ) \ f if operation succeeded |
DEFER XC!+? ( xc xc-addr1 u1 -- xc-addr2 u2 f ) \ f if operation succeeded |
DEFER XC@+ ( xc-addr1 -- xc-addr2 xc ) |
DEFER XC@+ ( xc-addr1 -- xc-addr2 xc ) |
Line 38 DEFER -TRAILING-GARBAGE ( addr u1 -- add
|
Line 40 DEFER -TRAILING-GARBAGE ( addr u1 -- add
|
|
|
\ derived words, faster implementations are probably possible |
\ derived words, faster implementations are probably possible |
|
|
: X@+/string ( xc-addr1 u1 -- xc-addr2 u2 xc ) |
: x@+/string ( xc-addr1 u1 -- xc-addr2 u2 xc ) |
\ !! check for errors? |
\ !! check for errors? |
over >r +x/string |
over >r +xstring |
r> xc@ ; |
r> xc@ ; |
|
|
\ fixed-size versions of these words |
\ fixed-size versions of these words |
Line 48 DEFER -TRAILING-GARBAGE ( addr u1 -- add
|
Line 50 DEFER -TRAILING-GARBAGE ( addr u1 -- add
|
: char- ( c-addr1 -- c-addr2 ) |
: char- ( c-addr1 -- c-addr2 ) |
[ 1 chars ] literal - ; |
[ 1 chars ] literal - ; |
|
|
: 1/string ( c-addr1 u1 -- c-addr2 u2 ) |
: +string ( c-addr1 u1 -- c-addr2 u2 ) |
1 /string ; |
1 /string ; |
|
: -string ( c-addr1 u1 -- c-addr2 u2 ) |
: -1/string ( c-addr1 u1 -- c-addr2 u2 ) |
|
-1 /string ; |
-1 /string ; |
|
|
|
: string+ ( c-addr1 u1 -- c-addr1 u2 ) |
|
1+ ; |
|
: string- ( c-addr1 u1 -- c-addr1 u2 ) |
|
1- ; |
|
|
: c!+? ( c c-addr1 u1 -- c-addr2 u2 f ) |
: c!+? ( c c-addr1 u1 -- c-addr2 u2 f ) |
dup 1 chars u< if \ or use < ? |
dup 1 chars u< if \ or use < ? |
rot drop false |
rot drop false |
Line 70 DEFER -TRAILING-GARBAGE ( addr u1 -- add
|
Line 76 DEFER -TRAILING-GARBAGE ( addr u1 -- add
|
['] key is xkey |
['] key is xkey |
['] char+ is xchar+ |
['] char+ is xchar+ |
['] char- is xchar- |
['] char- is xchar- |
['] 1/string is +x/string |
['] +string is +xstring |
['] -1/string is -x/string |
['] -string is -xstring |
|
['] string+ is xstring+ |
|
['] string- is xstring- |
['] c@ is xc@ |
['] c@ is xc@ |
['] c!+? is xc!+? |
['] c!+? is xc!+? |
['] count is xc@+ |
['] count is xc@+ |