Diff for /gforth/kernel/vars.fs between versions 1.25 and 1.40

version 1.25, 2000/10/29 20:27:03 version 1.40, 2006/02/26 17:23:47
Line 1 Line 1
 \ VARS.FS      Kernal variables  \ VARS.FS      Kernal variables
   
 \ Copyright (C) 1995,1996,1997,1998,2000 Free Software Foundation, Inc.  \ Copyright (C) 1995,1996,1997,1998,2000,2003 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 48  has? floating [IF] Line 48  has? floating [IF]
   
 FF Constant /line  FF Constant /line
   
   has? file [IF]
 40 Constant c/l  40 Constant c/l
 10 Constant l/s  10 Constant l/s
 400 Constant chars/block  400 Constant chars/block
   [THEN]
   
 20 8 2* cells + 2 + cell+ constant word-pno-size ( -- u )  20 8 2* cells + 2 + cell+ constant word-pno-size ( -- u )
   
   has? EC 0= [IF]
 create holdbuf word-pno-size chars allot  create holdbuf word-pno-size chars allot
 holdbuf word-pno-size chars + aconstant holdbuf-end  holdbuf word-pno-size chars + aconstant holdbuf-end
 avariable holdptr holdbuf-end holdptr a!  avariable holdptr holdbuf-end holdptr a!
 avariable holdend holdbuf-end holdend a!  avariable holdend holdbuf-end holdend a!
   [THEN]
   
 84 constant pad-minsize ( -- u )  84 constant pad-minsize ( -- u )
   
Line 69  $400 Value def#tib Line 74  $400 Value def#tib
   
 \ initialized by COLD  \ initialized by COLD
   
 Create main-task  has? OS [IF] 100 [ELSE] 40 [THEN] cells allot  has? no-userspace 0= [IF]
   Create main-task  has? OS [IF] 100 [ELSE] 40 [THEN] cells dup allot
   
 \ set user-pointer from cross-compiler right  \ set user-pointer from cross-compiler right
 main-task   main-task 
 UNLOCK tup ! LOCK  UNLOCK swap region user-region user-region setup-region 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 !
 AUser save-task        0 save-task !  AUser save-task        0 save-task !
   [THEN]
 AUser sp0 ( -- a-addr ) \ gforth  AUser sp0 ( -- a-addr ) \ gforth
 \G @code{User} variable -- initial value of the data stack pointer.  \G @code{User} variable -- initial value of the data stack pointer.
 \ sp0 is used by douser:, must be user  \ sp0 is used by douser:, must be user
     ' sp0 Alias s0 ( -- a-addr ) \ gforth  \    ' sp0 Alias s0 ( -- a-addr ) \ gforth
 \G OBSOLETE alias of @code{sp0}  \G OBSOLETE alias of @code{sp0}
   
 AUser rp0 ( -- a-addr ) \ gforth  AUser rp0 ( -- a-addr ) \ gforth
 \G @code{User} variable -- initial value of the return stack pointer.  \G @code{User} variable -- initial value of the return stack pointer.
     ' 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]  has? floating [IF]
Line 101  AUser fp0 ( -- a-addr ) \ gforth Line 108  AUser fp0 ( -- a-addr ) \ gforth
 has? glocals [IF]  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]  [THEN]
   
Line 145  has? file [IF] Line 152  has? file [IF]
   
  User loadfile          0 loadfile !   User loadfile          0 loadfile !
   
  User loadfilename#     0 loadfilename# !   2user loadfilename     0 0 loadfilename 2! \ addr u for sourcefilename
        
  User loadline          \ number of the currently interpreted   User loadline          \ number of the currently interpreted
                         \ (in TIB) line if the interpretation                          \ (in TIB) line if the interpretation
                         \ is in a textfile                          \ is in a textfile
Line 157  has? file [IF] Line 164  has? file [IF]
 [THEN]  [THEN]
 [THEN]  [THEN]
   
  User base ( -- a-addr ) \ core   2user includefilename  0 0 includefilename 2! \ innermost included file
  \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 base ( -- a-addr ) \ core
  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 number base used by default for number conversion during input and output.
  \G position of the decimal point in the most recent numeric conversion.                         A base !
  \G Initialised to -1. After the conversion of a number containing no  User dpl ( -- a-addr ) \ gforth
  \G decimal point, @code{@ dpl} is -1. After the conversion of @code{2.} it holds  \G @code{User} variable -- @i{a-addr} is the address of a cell that stores the          
  \G 0. After the conversion of 234123.9 it contains 1, and so forth.  \G position of the decimal point in the most recent numeric conversion.
  -1 dpl !  \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
  User state ( -- a-addr ) \ core,tools-ext  \G 0. After the conversion of 234123.9 it contains 1, and so forth.
  \G @code{User} variable -- @i{a-addr} is the address of a cell  -1 dpl !
  \G containing the compilation state flag. 0 => interpreting, -1 =>  
  \G compiling.  A program shall not directly alter the value of  User state ( -- a-addr ) \ core,tools-ext
  \G @code{state}. The following Standard words alter the value in  \G @code{User} variable -- @i{a-addr} is the address of a cell
  \G @code{state}: @code{:} (colon) @code{;} (semicolon) @code{abort}  \G containing the compilation state flag. 0 => interpreting, -1 =>
  \G @code{quit} @code{:noname} @code{[} (left-bracket) @code{]}  \G compiling.  A program shall not directly alter the value of
  \G (right-bracket) @code{;code}. Don't use @code{state}! For an  \G @code{state}. The following Standard words alter the value in
  \G alternative see @ref{Interpretation and Compilation Semantics}.  \G @code{state}: @code{:} (colon) @code{;} (semicolon) @code{abort}
  \ Recommended reading: @cite{@code{State}-smartness--Why it is evil  \G @code{quit} @code{:noname} @code{[} (left-bracket) @code{]}
  \ and how to exorcise it},  \G (right-bracket) @code{;code}. Don't use @code{state}! For an
  \ @url{http://www.complang.tuwien.ac.at/papers/ertl98.ps.gz}; short  \G alternative see @ref{Interpretation and Compilation Semantics}.
  \ version: Don't use @code{state}!  \ Recommended reading: @cite{@code{State}-smartness--Why it is evil
  0 state !  \ 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 !
   
 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 192  AUser dpp  normal-dp dpp ! Line 202  AUser dpp  normal-dp dpp !
 AUser LastCFA  AUser LastCFA
 AUser Last  AUser Last
   
   User max-name-length \ maximum length of all names defined yet
   32 max-name-length !
       
   \  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.25  
changed lines
  Added in v.1.40


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