### Diff for /gforth/kernel/vars.fs between versions 1.8 and 1.21

version 1.8, 1998/12/19 13:43:18 version 1.21, 2000/05/15 14:04:12
Line 25  hex \ everything now hex! Line 25  hex \ everything now hex!
\ dpANS6 (sect 3.1.3.1) says   \ dpANS6 (sect 3.1.3.1) says
\ "a true flag ... [is] a single-cell value with all bits set"  \ "a true flag ... [is] a single-cell value with all bits set"
\ better definition: 0 0= constant true ( no dependence on 2's compl)  \ better definition: 0 0= constant true ( no dependence on 2's compl)
-1 Constant true               \ see starts looking for   -1 Constant true ( -- f ) \ core-ext
\ primitives after this word!  \G @code{Constant} -- @i{f} is a cell with all bits set.
0 Constant false  \ see starts looking for primitives after this word!

0 Constant false ( -- f ) \ core-ext
\G @code{Constant} -- @i{f} is a cell with all bits clear.

[IFUNDEF] cell
1 cells Constant cell ( -- u ) \ gforth  1 cells Constant cell ( -- u ) \ gforth
\G @code{Constant} -- the number of address units corresponding to 1 cell.
[THEN]

1 floats Constant float ( -- u ) \ gforth  1 floats Constant float ( -- u ) \ gforth
\G @code{Constant} -- the number of address units corresponding to a floating-point number.

20 Constant bl \ used by docon:, must be constant  20 Constant bl ( -- c-char ) \ core b-l
\G @i{c-char} is the character value for a space.
\ used by docon:, must be constant

FF Constant /line  FF Constant /line

Line 40  FF Constant /line Line 50  FF Constant /line
10 Constant l/s  10 Constant l/s
400 Constant chars/block  400 Constant chars/block

\$20 8 2* cells + 2 + cell+ constant word-pno-size ( -- u )  20 8 2* cells + 2 + cell+ constant word-pno-size ( -- u )
create holdbuf word-pno-size chars allot
holdbuf word-pno-size chars + aconstant holdbuf-end
avariable holdptr holdbuf-end holdptr a!
avariable holdend holdbuf-end holdend a!

84 constant pad-minsize ( -- u )  84 constant pad-minsize ( -- u )

\ that's enough so long  \ that's enough so long

\ User variables                                       13feb93py  \ User variables                                       13feb93py
Line 55  Create main-task  has? OS [IF] 100 [ELSE Line 71  Create main-task  has? OS [IF] 100 [ELSE
UNLOCK tup ! LOCK  UNLOCK tup ! LOCK

Variable udp \ user area size? -anton  Variable udp ( -- a-addr ) \ gforth
\ user area size? -anton

AUser sp0       \ used by douser:, must be user  AUser sp0 ( -- a-addr ) \ gforth
' sp0 Alias s0  \G @code{User} variable -- initial value of the data stack pointer.
AUser rp0       ' rp0 Alias r0  \ sp0 is used by douser:, must be user
AUser fp0       \ no f0, because this leads to unexpected results      ' sp0 Alias s0 ( -- a-addr ) \ gforth
AUser lp0       ' lp0 Alias l0  \G OBSOLETE alias of @code{sp0}

AUser rp0 ( -- a-addr ) \ gforth
\G @code{User} variable -- initial value of the return stack pointer.
' rp0 Alias r0 ( -- a-addr ) \ gforth
\G OBSOLETE alias of @code{rp0}

AUser fp0 ( -- a-addr ) \ gforth
\G @code{User} variable -- initial value of the floating-point stack pointer.
\ no f0, because this leads to unexpected results when using hex

AUser lp0 ( -- a-addr ) \ gforth
\G @code{User} variable -- initial value of the locals stack pointer.
' lp0 Alias l0 ( -- a-addr ) \ gforth
\G OBSOLETE alias of @code{lp0}

AUser handler   \ pointer to last throw frame  AUser handler   \ pointer to last throw frame
has? backtrace [IF]
User backtrace-empty \ true if the next THROW should store a backtrace
AUser backtrace-rp0 \ rp at last call of interpret
[THEN]
\ AUser output  \ AUser output
\ AUser input  \ AUser input

Line 76  AUser "error            0 "error ! Line 112  AUser "error            0 "error !
[IFUNDEF] #tib          \ in ec-Version we may define this ourself  [IFUNDEF] #tib          \ in ec-Version we may define this ourself
User tibstack          \ saves >tib in execute   User tibstack          \ saves >tib in execute
User >tib              \ pointer to terminal input buffer   User >tib              \ pointer to terminal input buffer
User #tib              \ chars in terminal input buffer   User #tib ( -- a-addr ) \ core-ext number-t-i-b
User >in               0 >in ! \ char number currently processed in tib   \G @code{User} variable -- @i{a-addr} is the address of a cell containing
\G the number of characters in the terminal input buffer.
\G OBSOLESCENT: @code{source} superceeds the function of this word.

User >in ( -- a-addr ) \ core to-in
\G @code{User} variable -- @i{a-addr} is the address of a cell containing the
\G char offset from the start of the input buffer to the start of the
\G parse area.
0 >in ! \ char number currently processed in tib
[THEN]  [THEN]
has? file [IF]  has? file [IF]
User blk               0 blk !   User blk ( -- a-addr ) \ block b-l-k
\G @code{User} variable -- @i{a-addr} is the address of a cell containing zero
\G (in which case the input source is not a block and can be identified
\G by @code{source-id}) or the number of the block currently being
\G interpreted. A Standard program should not alter @code{blk} directly.
0 blk !

Line 94  has? file [IF] Line 144  has? file [IF]
\ the current interpreted line (in TIB)                          \ the current interpreted line (in TIB)
[THEN]  [THEN]

User base              A base !   User base ( -- a-addr ) \ core
User dpl               -1 dpl !   \G @code{User} variable -- @i{a-addr} is the address of a cell that stores the
\G number base used by default for number conversion during input and output.
A base !
User dpl ( -- a-addr ) \ gforth
\G @code{User} variable -- @i{a-addr} is the address of a cell that stores the
\G position of the decimal point in the most recent numeric conversion.
\G Initialised to -1. After the conversion of a number containing no
\G decimal point, @code{@ dpl} is -1. After the conversion of @code{2.} it holds
\G 0. After the conversion of 234123.9 it contains 1, and so forth.
-1 dpl !

User state ( -- a-addr ) \ core,tools-ext
\G containing the compilation state flag. 0 => interpreting, -1 =>
\G compiling.  A program shall not directly alter the value of
\G @code{state}. The following Standard words alter the value in
\G @code{state}: @code{:} (colon) @code{;} (semicolon) @code{abort}
\G @code{quit} @code{:noname} @code{[} (left-bracket) @code{]}
\G (right-bracket) @code{;code}. Don't use @code{state}! For an
\G alternative see @ref{Interpretation and Compilation Semantics}.
\ Recommended reading: @cite{@code{State}-smartness--Why it is evil
\ and how to exorcise it},
\ @url{http://www.complang.tuwien.ac.at/papers/ertl98.ps.gz}; short
\ version: Don't use @code{state}!
0 state !

User state             0 state !
AUser normal-dp         \ the usual dictionary pointer  AUser normal-dp         \ the usual dictionary pointer
AUser dpp               normal-dp dpp !  AUser dpp               normal-dp dpp !
\ the pointer to the current dictionary pointer                          \ the pointer to the current dictionary pointer

 Removed from v.1.8 changed lines Added in v.1.21

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>