--- gforth/environ.fs 1996/10/25 17:09:43 1.9 +++ gforth/environ.fs 1997/09/13 12:04:55 1.15 @@ -22,13 +22,19 @@ Create environment-wordlist wordlist drop -: environment? ( c-addr u -- false / ... true ) +: environment? ( c-addr u -- false / ... true ) \ core environment-query environment-wordlist search-wordlist if execute true else false endif ; +: e? name environment? 0= ABORT" environmental dependency not existing" ; + +: has? name environment? IF ELSE false THEN ; + +: $has? environment? IF ELSE false THEN ; + environment-wordlist set-current get-order environment-wordlist swap 1+ set-order @@ -51,11 +57,20 @@ true constant CORE-EXT -1 MAX-N 2constant MAX-D -1. 2constant MAX-UD -0 1 2constant gforth \ minor major version +version-string 2constant gforth \ version string (for versions>0.3.0) +\ the version strings of the various versions are guaranteed to be +\ sorted lexicographically + +: return-stack-cells ( -- n ) + [ forthstart 6 cells + ] literal @ cell / ; + +: stack-cells ( -- n ) + [ forthstart 4 cells + ] literal @ cell / ; + +: floating-stack ( -- n ) + [ forthstart 5 cells + ] literal @ + [IFDEF] float float [ELSE] [ 1 floats ] Literal [THEN] / ; -\ !! RETURN-STACK-CELLS -\ !! STACK-CELLS -\ !! floating-stack \ !! max-float 15 constant #locals \ 1000 64 / \ One local can take up to 64 bytes, the size of locals-buffer is 1000