[gforth] / gforth / kernel / vars.fs  

gforth: gforth/kernel/vars.fs

Diff for /gforth/kernel/vars.fs between version 1.36 and 1.47

version 1.36, Fri Oct 3 09:14:27 2003 UTC version 1.47, Mon Dec 31 18:40:26 2007 UTC
Line 1 
Line 1 
 \ VARS.FS      Kernal variables  \ VARS.FS      Kernal variables
   
 \ Copyright (C) 1995,1996,1997,1998,2000,2003 Free Software Foundation, Inc.  \ Copyright (C) 1995,1996,1997,1998,2000,2003,2006,2007 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
 \ Gforth is free software; you can redistribute it and/or  \ Gforth is free software; you can redistribute it and/or
 \ modify it under the terms of the GNU General Public License  \ modify it under the terms of the GNU General Public License
 \ as published by the Free Software Foundation; either version 2  \ as published by the Free Software Foundation, either version 3
 \ of the License, or (at your option) any later version.  \ of the License, or (at your option) any later version.
   
 \ This program is distributed in the hope that it will be useful,  \ This program is distributed in the hope that it will be useful,
Line 15 
Line 15 
 \ GNU General Public License for more details.  \ GNU General Public License for more details.
   
 \ 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, see http://www.gnu.org/licenses/.
 \ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.  
   
 hex \ everything now hex!                               11may93jaw  hex \ everything now hex!                               11may93jaw
   
Line 46 
Line 45 
 \G @i{c-char} is the character value for a space.  \G @i{c-char} is the character value for a space.
 \ used by docon:, must be constant  \ used by docon:, must be constant
   
 FF Constant /line  has? EC [IF] 40 [ELSE] FF [THEN] 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 
Line 73 
   
 \ initialized by COLD  \ initialized by COLD
   
   has? no-userspace 0= [IF]
 Create main-task  has? OS [IF] 100 [ELSE] 40 [THEN] cells dup allot  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
Line 81 
Line 86 
 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 
Line 107 
 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]
   
 AUser handler   \ pointer to last throw frame  AUser handler   \ pointer to last throw frame
 has? backtrace [IF]  has? backtrace [IF]
 User backtrace-empty \ true if the next THROW should store a backtrace  
 AUser backtrace-rp0 \ rp at last call of interpret  AUser backtrace-rp0 \ rp at last call of interpret
 [THEN]  [THEN]
 \ AUser output  \ AUser output
Line 157 
Line 162 
 [THEN]  [THEN]
 [THEN]  [THEN]
   
    2user includefilename  0 0 includefilename 2! \ innermost included file
   
   
 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
 \G number base used by default for number conversion during input and output.  \G stores the number base used by default for number conversion during
   \G input and output.  Don't store to @code{base}, use
   \G @code{base-execute} instead.
                        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
Line 192 
Line 202 
 AUser LastCFA  AUser LastCFA
 AUser Last  AUser Last
   
   has? flash [IF]
       AUser flash-dp
       : rom  flash-dp dpp ! ;
       : ram  normal-dp dpp ! ;
   [THEN]
   
 User max-name-length \ maximum length of all names defined yet  User max-name-length \ maximum length of all names defined yet
 32 max-name-length !  32 max-name-length !
   


Generate output suitable for use with a patch program
Legend:
Removed from v.1.36  
changed lines
  Added in v.1.47

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help