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