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