1: \ environmental queries
2:
3: \ wordlist constant environment-wordlist
4:
5: Create environment-wordlist wordlist drop
6:
7: : environment? ( c-addr u -- false / ... true )
8: environment-wordlist search-wordlist if
9: execute true
10: else
11: false
12: endif ;
13:
14: environment-wordlist set-current
15: get-order environment-wordlist swap 1+ set-order
16:
17: \ assumes that chars, cells and doubles use an integral number of aus
18:
19: \ this should be computed in C as CHAR_BITS/sizeof(char),
20: \ but I don't know any machine with gcc where an au does not have 8 bits.
21: 8 constant ADDRESS-UNIT-BITS
22: 1 ADDRESS-UNIT-BITS chars lshift 1- constant MAX-CHAR
23: MAX-CHAR constant /COUNTED-STRING
24: ADDRESS-UNIT-BITS cells 2* 2 + constant /HOLD
25: &84 constant /PAD
26: true constant CORE
27: true constant CORE-EXT?
28: 1 -3 mod 0< constant FLOORED
29:
30: 1 ADDRESS-UNIT-BITS cells 1- lshift 1- constant MAX-N
31: -1 constant MAX-U
32:
33: -1 MAX-N 2constant MAX-D
34: -1. 2constant MAX-UD
35:
36: 0 1 2constant gforth \ minor major version
37:
38: \ !! RETURN-STACK-CELLS
39: \ !! STACK-CELLS
40: \ !! floating-stack
41: \ !! max-float
42: 15 constant #locals \ 1000 64 /
43: \ One local can take up to 64 bytes, the size of locals-buffer is 1000
44: maxvp constant wordlists
45:
46: forth definitions
47: previous
48:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>