Diff for /gforth/kernel/vars.fs between versions 1.22 and 1.30

version 1.22, 2000/08/10 20:46:26 version 1.30, 2003/01/19 23:35:35
Line 1 Line 1
 \ VARS.FS      Kernal variables  \ VARS.FS      Kernal variables
   
 \ Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc.  \ Copyright (C) 1995-2003 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 16 Line 16
   
 \ You should have received a copy of the GNU General Public License  \ You should have received a copy of the GNU General Public License
 \ along with this program; if not, write to the Free Software  \ along with this program; if not, write to the Free Software
 \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  \ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
   
 hex \ everything now hex!                               11may93jaw  hex \ everything now hex!                               11may93jaw
   
Line 37  hex \ everything now hex! Line 37  hex \ everything now hex!
 \G @code{Constant} -- @code{1 cells}  \G @code{Constant} -- @code{1 cells}
 [THEN]  [THEN]
   
   has? floating [IF]
 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.  \G @code{Constant} -- the number of address units corresponding to a floating-point number.
   [THEN]
   
 20 Constant bl ( -- c-char ) \ core b-l  20 Constant bl ( -- c-char ) \ core b-l
 \G @i{c-char} is the character value for a space.  \G @i{c-char} is the character value for a space.
Line 58  avariable holdend holdbuf-end holdend a! Line 60  avariable holdend holdbuf-end holdend a!
   
 84 constant pad-minsize ( -- u )  84 constant pad-minsize ( -- u )
   
   $400 Value def#tib
   \G default size of terminal input buffer. Default size is 1K
   
 \ that's enough so long  \ that's enough so long
   
Line 72  main-task Line 76  main-task
 UNLOCK tup ! LOCK  UNLOCK tup ! LOCK
   
 Variable udp ( -- a-addr ) \ gforth  Variable udp ( -- a-addr ) \ gforth
 \ user area size? -anton  \G user area size
   
 AUser next-task        main-task next-task !  AUser next-task        main-task next-task !
 AUser prev-task        main-task prev-task !  AUser prev-task        main-task prev-task !
Line 88  AUser rp0 ( -- a-addr ) \ gforth Line 92  AUser rp0 ( -- a-addr ) \ gforth
     ' rp0 Alias r0 ( -- a-addr ) \ gforth      ' rp0 Alias r0 ( -- a-addr ) \ gforth
 \G OBSOLETE alias of @code{rp0}  \G OBSOLETE alias of @code{rp0}
   
   has? floating [IF]
 AUser fp0 ( -- a-addr ) \ gforth  AUser fp0 ( -- a-addr ) \ gforth
 \G @code{User} variable -- initial value of the floating-point stack pointer.  \G @code{User} variable -- initial value of the floating-point stack pointer.
 \ no f0, because this leads to unexpected results when using hex  \ no f0, because this leads to unexpected results when using hex
   [THEN]
   
   has? glocals [IF]
 AUser lp0 ( -- a-addr ) \ gforth  AUser lp0 ( -- a-addr ) \ gforth
 \G @code{User} variable -- initial value of the locals stack pointer.  \G @code{User} variable -- initial value of the locals stack pointer.
     ' lp0 Alias l0 ( -- a-addr ) \ gforth      ' lp0 Alias l0 ( -- a-addr ) \ gforth
 \G OBSOLETE alias of @code{lp0}  \G OBSOLETE alias of @code{lp0}
   [THEN]
   
 AUser handler   \ pointer to last throw frame  AUser handler   \ pointer to last throw frame
 has? backtrace [IF]  has? backtrace [IF]
Line 109  AUser errorhandler Line 117  AUser errorhandler
   
 AUser "error            0 "error !  AUser "error            0 "error !
   
 [IFUNDEF] #tib          \ in ec-Version we may define this ourself  has? new-input [IF]
  User tibstack          \ saves >tib in execute      User current-input
  User >tib              \ pointer to terminal input buffer  [ELSE]
  User #tib ( -- a-addr ) \ core-ext number-t-i-b      [IFUNDEF] #tib              \ in ec-Version we may define this ourself
  \G @code{User} variable -- @i{a-addr} is the address of a cell containing          User tibstack           \ saves >tib in execute
  \G the number of characters in the terminal input buffer.          User >tib               \ pointer to terminal input buffer
  \G OBSOLESCENT: @code{source} superceeds the function of this word.          User #tib ( -- a-addr ) \ core-ext number-t-i-b
           \G @code{User} variable -- @i{a-addr} is the address of a cell containing
  User >in ( -- a-addr ) \ core to-in          \G the number of characters in the terminal input buffer.
  \G @code{User} variable -- @i{a-addr} is the address of a cell containing the          \G OBSOLESCENT: @code{source} superceeds the function of this word.
  \G char offset from the start of the input buffer to the start of the          
  \G parse area.          User >in ( -- a-addr ) \ core to-in
                         0 >in ! \ char number currently processed in tib          \G @code{User} variable -- @i{a-addr} is the address of a cell containing the
 [THEN]          \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]
   
 has? file [IF]  has? file [IF]
  User blk ( -- a-addr ) \ block b-l-k   User blk ( -- a-addr ) \ block b-l-k
  \G @code{User} variable -- @i{a-addr} is the address of a cell containing zero   \G @code{User} variable -- @i{a-addr} is the address of a cell containing zero
Line 143  has? file [IF] Line 155  has? file [IF]
 2User linestart         \ starting file postition of  2User linestart         \ starting file postition of
                         \ the current interpreted line (in TIB)                          \ the current interpreted line (in TIB)
 [THEN]  [THEN]
   [THEN]
   
  User base ( -- a-addr ) \ core  User base ( -- a-addr ) \ core
  \G @code{User} variable -- @i{a-addr} is the address of a cell that stores the  \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.  \G number base used by default for number conversion during input and output.
                         A base !                         A base !
  User dpl ( -- a-addr ) \ gforth  User dpl ( -- a-addr ) \ gforth
  \G @code{User} variable -- @i{a-addr} is the address of a cell that stores the                   \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 position of the decimal point in the most recent numeric conversion.
  \G Initialised to -1. After the conversion of a number containing no  \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 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.  \G 0. After the conversion of 234123.9 it contains 1, and so forth.
  -1 dpl !  -1 dpl !
   
  User state ( -- a-addr ) \ core,tools-ext  User state ( -- a-addr ) \ core,tools-ext
  \G @code{User} variable -- @i{a-addr} is the address of a cell  \G @code{User} variable -- @i{a-addr} is the address of a cell
  \G containing the compilation state flag. 0 => interpreting, -1 =>  \G containing the compilation state flag. 0 => interpreting, -1 =>
  \G compiling.  A program shall not directly alter the value of  \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}. The following Standard words alter the value in
  \G @code{state}: @code{:} (colon) @code{;} (semicolon) @code{abort}  \G @code{state}: @code{:} (colon) @code{;} (semicolon) @code{abort}
  \G @code{quit} @code{:noname} @code{[} (left-bracket) @code{]}  \G @code{quit} @code{:noname} @code{[} (left-bracket) @code{]}
  \G (right-bracket) @code{;code}. Don't use @code{state}! For an  \G (right-bracket) @code{;code}. Don't use @code{state}! For an
  \G alternative see @ref{Interpretation and Compilation Semantics}.  \G alternative see @ref{Interpretation and Compilation Semantics}.
  \ Recommended reading: @cite{@code{State}-smartness--Why it is evil  \ Recommended reading: @cite{@code{State}-smartness--Why it is evil
  \ and how to exorcise it},  \ and how to exorcise it},
  \ @url{http://www.complang.tuwien.ac.at/papers/ertl98.ps.gz}; short  \ @url{http://www.complang.tuwien.ac.at/papers/ertl98.ps.gz}; short
  \ version: Don't use @code{state}!  \ version: Don't use @code{state}!
  0 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 !
Line 179  AUser dpp  normal-dp dpp ! Line 192  AUser dpp  normal-dp dpp !
 AUser LastCFA  AUser LastCFA
 AUser Last  AUser Last
   
   AUser last-compiled \ last compile,d xt
                       \ 0 if last xt was dyn-compiled already (basic-block-end)
   0 last-compiled !
   AUser last-compiled-here \ where LAST-COMPILED should be stored
   
   has? peephole  [IF]
   0 value peeptable \ initialized in boot
   [THEN]
   
 has? glocals [IF]  has? glocals [IF]
 User locals-size \ this is the current size of the locals stack  User locals-size \ this is the current size of the locals stack
                  \ frame of the current word                   \ frame of the current word

Removed from v.1.22  
changed lines
  Added in v.1.30


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