9. Dump the System Constants
#SILENCE
# FK ( -- ) dump system constants
# also shows how to use "#MACROEXPANSION" and "#NOMACROEXPANSION"
# to prevent unintentional macro expansion (e.g. "loop" in strings.)
#define kdump=FK
#BUFFER
{K
"\n n|value |description\n"
"--|----------|---------------------------------------------------------\n"
0 dup K swap " #|#w|address of data stack list head\n"
1 dup K swap " #|#D0|size of items on the data stack in bytes\n"
2 dup K swap
#NOMACROEXPANSION
" #|#w|address of the loop control stack list head\n"
#MACROEXPANSION
3 dup K swap
#NOMACROEXPANSION
" #|#D0|size of items on the loop control stack in bytes\n"
#MACROEXPANSION
4 dup K swap " #|#w|address of the function return stack list head\n"
5 dup K swap
" #|#D0|size of items on the function return stack in bytes\n"
6 dup K swap " #|#w|base address of the code string passed to interp\n"
7 dup K swap " #|#D0|size of one token in bytes\n"
8 dup K swap " #|#w|base address of the command vector table\n"
9 dup K swap
" #|#D0|size of each command vector table entry in bytes\n"
10 dup K swap "#|#w|address of NOP (non-operation) function\n"
11 dup K swap "#|#w|address of UNOP (unknown operation) function\n"
12 dup K swap "#|#w|address of output number base value (32-bits)\n"
13 dup K swap "#|#w|address of the base address of the global data area\n"
14 dup K swap "#|#D0|size of the global data area in bytes\n"
15 dup K swap "#|#w|address of the base address of the local data area\n"
16 dup K swap "#|#D0|size of the local data area in bytes\n"
17 dup K swap
"#|#w|address of the base address of the system constants area\n"
18 dup K swap "#|#D0|size of the system constants data area in bytes\n"
19 dup K swap
"#|#w|address of the base address of the global function table\n"
20 dup K swap
"#|#w|address of the base address of the local function table\n"
21 dup K swap "#|#w|interp's vector table initialization flag (always 1)\n"
22 dup K swap "#|#w|address of the base address of ibuf[]\n"
23 dup K swap "#|#w|address of the base address of ebuf[]\n"
24 dup K swap "#|#w|argc, number of CLI arguments including command\n"
25 dup K swap "#|#w|argv[], base address of arg list pointer table\n"
26 dup K swap "#|#w|address of optind, the first script argument\n"
27 dup K swap "#|#w|scratchpad1, for computing elapsed time\n"
28 dup K swap "#|#w|scratchpad2, for computing elapsed time\n"
29 dup K swap
"#|#D0|TYPE_OF_BUILD (0=OS, 1=NOFLAGS, 2=NOCLI, 3=SIN, 4=I2)\n"
30 dup K swap
"#|#D0|DATA_STACK_DEPTH (default is 1024)\n"
31 dup K swap
"#|#D0|LCSP_STACK_DEPTH (default is 1024)\n"
32 dup K swap
"#|#D0|FRSP_STACK_DEPTH (default is 1024)\n"
33 dup K swap
"#|#D0|VARIABLE_POOL_DEPTH (default is 1024)\n"
34 dup K swap
"#|#w|NO_PRIVATE_DATA (default=0/FALSE)\n"
35 dup K swap
"#|#D0|INBUF_SIZE (default is 4097)\n"
36 dup K swap
"#|#D0|BIGBUF_SIZE (default is 65536)\n"
37 dup K swap
"#|#w|ENFORCE_ADDRESS_ALIGNMENT (default=~0/TRUE)\n"
38 dup K swap
"#|#w|PRINT_ITERATOR_ADDRESS (default=0/NOT SET)\n"
39 dup K swap
"#|#D0|PRINT_ITERATOR_MODE (default=1/auto-increment)\n"
40 dup K swap
"#|#w|PRINT_ITERATOR_FIRST_ONE (default=~0/TRUE)\n"
}
#EXECUTE
#PROMPT