From e2dd1e0d8fe9a443f733aeb41b55eea623a87b3d Mon Sep 17 00:00:00 2001 From: crc Date: Fri, 10 Nov 2017 19:27:57 +0000 Subject: [PATCH] commit test copy of new Glossary (generated by glossary.forth) FossilOrigin-Name: ea4e14412398732dfdf08a1e73b98720242de5885cb5d04d913b9a64e4e4fcd5 --- wip/Glossary.txt | 4180 ++++++++++++++++++++++++++++++++++++++++++++ wip/glossary.forth | 4 +- 2 files changed, 4182 insertions(+), 2 deletions(-) create mode 100644 wip/Glossary.txt diff --git a/wip/Glossary.txt b/wip/Glossary.txt new file mode 100644 index 0000000..3f5ce10 --- /dev/null +++ b/wip/Glossary.txt @@ -0,0 +1,4180 @@ +* + + Data: nn-n + Addr: - + Float: - + +Multiply `n1` by `n2` and return the result. + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + ++ + + Data: nn-n + Addr: - + Float: - + +Add `n1` to `n2` and return the result. + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +, + + Data: n- + Addr: - + Float: - + +Store the specified value into the memory at `here` and increment `Heap` by 1. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +- + + Data: nn-n + Addr: - + Float: - + +Subtract `n1` from `n2` and return the difference. + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +---reveal--- + + Data: - + Addr: - + Float: - + +Switch to the exposed (public) portion of a lexical namespace. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +-eq? + + Data: nn-f + Addr: - + Float: - + +Compare two values for inequality. Returns `TRUE` if they are not equal or `FALSE` otherwise. + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +-if + + Data: fq- + Addr: - + Float: - + +Execute the quotation if the flag is `FALSE`. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +/ + + Data: mn-o + Addr: - + Float: - + +Divide `m` by `n` and return the result. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +/mod + + Data: nm-op + Addr: - + Float: - + +Divide `n` by `m` and return the result and remainder. + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +0; + + Data: n-n || n- + Addr: - + Float: - + +If `n` is zero, drop `n` and exit the current word. If non-zero, leave `n` alone and allow execution to continue. + +Class Handler: {n/a} | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +; + + Data: - + Addr: - + Float: - + +End the current definition. + +Class Handler: class:macro | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +?dup + + Data: n-nn || n-n + Addr: - + Float: - + +Duplicate top value on stack if not zero. If zero, do nothing. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:ACK + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:BEL + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:BS + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:CAN + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:CR + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:DC1 + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:DC2 + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:DC3 + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:DC4 + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:DEL + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:DLE + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:EM + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:ENQ + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:EOT + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:ESC + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:ETB + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:ETX + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:FF + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:FS + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:GS + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:HT + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:LF + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:NAK + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:NUL + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:RS + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:SI + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:SO + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:SOH + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:SPACE + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:STX + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:SUB + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:SYN + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:US + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +ASCII:VT + + Data: -n + Addr: - + Float: - + +Constant. Refers to specific ASCII code. + +Class Handler: class:data | Namespace: ASCII | Interface Layer: all + +---------------------------------------------------------------- + +Compiler + + Data: -a + Addr: - + Float: - + +Variable. Holds the compiler state. If TRUE, the compiler is active. If FALSE, it is not. + +Class Handler: class:data | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +Dictionary + + Data: -a + Addr: - + Float: - + +Variable. Holds a pointer to the most recent dictionary header. + +Class Handler: class:data | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +EOM + + Data: -n + Addr: - + Float: - + +Constant. Returns the last addressable memory address. + +Class Handler: {n/a} | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +FALSE + + Data: -n + Addr: - + Float: - + +Constant. Returns `0`, the value used to indicate a FALSE result. + +Class Handler: {n/a} | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +FREE + + Data: -n + Addr: - + Float: - + +Returns the number of cells available to your application. This is the amount of memory, less the already consumed portion and buffers mapped for RETRO's internal use. + +Class Handler: {n/a} | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +Heap + + Data: -a + Addr: - + Float: - + +Variable. Holds the address of the next available cell. + +Class Handler: class:data | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +RewriteUnderscores + + Data: -a + Addr: - + Float: - + +Variable. When set to `TRUE`, RETRO will replace underscores in strings with spaces. When `FALSE`, RETRO does not. + +Class Handler: class:data | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +STRINGS + + Data: -a + Addr: - + Float: - + +Return the address of the start of the temporary string pool. + +Class Handler: {n/a} | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +ScopeList + + Data: -a + Addr: - + Float: - + +Variable. This holds some information used by `{{` and `}}`. + +Class Handler: class:data | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +TRUE + + Data: -n + Addr: - + Float: - + +Constant. Returns `-1`, the value used to indicate a TRUE result. + +Class Handler: {n/a} | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +TempStringMax + + Data: -a + Addr: - + Float: - + +Variable. Holds the maximum length of a temporary string. + +Class Handler: class:data | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +TempStrings + + Data: -a + Addr: - + Float: - + +Variable. Holds the number of temporary strings. + +Class Handler: class:data | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +Version + + Data: -a + Addr: - + Float: - + +Variable. This stores the version number. + +Class Handler: class:data | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +[ + + Data: - + Addr: - + Float: - + +Begin a quotation. + +Class Handler: class:macro | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +] + + Data: - + Addr: - + Float: - + +End a quotation. + +Class Handler: class:macro | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +again + + Data: - + Addr: - + Float: - + +Close an unconditional loop. Branches back to the prior `repeat`. + +Class Handler: class:macro | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +allot + + Data: n- + Addr: - + Float: - + +Allocate the specified number of cells from the `Heap`. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +and + + Data: nm-o + Addr: - + Float: - + +Perform a bitwise AND operation between the two provided values. + +Class Handler: {n/a} | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +as{ + + Data: -f + Addr: - + Float: - + +Begin an assembly section. + +Class Handler: {n/a} | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +bi + + Data: xqq-? + Addr: - + Float: - + +Execute q1 against x, then execute q2 against a copy of x. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +bi* + + Data: xyqq-? + Addr: - + Float: - + +Execute q1 against x and q2 against y. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +bi@ + + Data: xyq-? + Addr: - + Float: - + +Execute q against x, then execute q against y. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +buffer:add + + Data: n- + Addr: - + Float: - + +Append a value to the current buffer. + +Class Handler: class:word | Namespace: buffer | Interface Layer: all + +---------------------------------------------------------------- + +buffer:empty + + Data: - + Addr: - + Float: - + +Reset the current buffer to an empty state. + +Class Handler: class:word | Namespace: buffer | Interface Layer: all + +---------------------------------------------------------------- + +buffer:end + + Data: -a + Addr: - + Float: - + +Return a pointer to the current end of the active buffer. + +Class Handler: class:word | Namespace: buffer | Interface Layer: all + +---------------------------------------------------------------- + +buffer:get + + Data: -n + Addr: - + Float: - + +Remove the last value from the current buffer. + +Class Handler: class:word | Namespace: buffer | Interface Layer: all + +---------------------------------------------------------------- + +buffer:preserve + + Data: q- + Addr: - + Float: - + +Save and restore the current buffer before and after executing the specified quote. + +Class Handler: class:word | Namespace: buffer | Interface Layer: all + +---------------------------------------------------------------- + +buffer:set + + Data: a- + Addr: - + Float: - + +Assign a new buffer as the current one. + +Class Handler: class:word | Namespace: buffer | Interface Layer: all + +---------------------------------------------------------------- + +buffer:size + + Data: -n + Addr: - + Float: - + +Return the number of cells in the buffer. + +Class Handler: class:word | Namespace: buffer | Interface Layer: all + +---------------------------------------------------------------- + +buffer:start + + Data: -a + Addr: - + Float: - + +Return the start address of the current buffer. + +Class Handler: class:word | Namespace: buffer | Interface Layer: all + +---------------------------------------------------------------- + +c:-consonant? + + Data: c-f + Addr: - + Float: - + +Return TRUE if character is a not consonant or FALSE otherwise. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:-digit? + + Data: c-f + Addr: - + Float: - + +Return TRUE if character is a not numeric digit or FALSE otherwise. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:-lowercase? + + Data: c-f + Addr: - + Float: - + +Return TRUE if character is not lowercase or FALSE otherwise. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:-uppercase? + + Data: c-f + Addr: - + Float: - + +Return TRUE if character is not uppercase or FALSE otherwise. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:-visible? + + Data: c-f + Addr: - + Float: - + +Return TRUE if character is not printable or FALSE otherwise. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:-vowel? + + Data: c-f + Addr: - + Float: - + +Return TRUE if character is not a vowel or FALSE otherwise. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:-whitespace? + + Data: c-f + Addr: - + Float: - + +Return TRUE if character is not whitespace, or FALSE otherwise. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:consonant? + + Data: c-f + Addr: - + Float: - + +Return TRUE if character is a consonant or FALSE otherwise. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:digit? + + Data: c-f + Addr: - + Float: - + +Return TRUE if character is a numeric digit or FALSE otherwise. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:letter? + + Data: c-f + Addr: - + Float: - + +Return TRUE if character is an ASCII letter or FALSE otherwise. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:lowercase? + + Data: c-f + Addr: - + Float: - + +Return TRUE if character is lowercase or FALSE otherwise. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:to-lower + + Data: c-c + Addr: - + Float: - + +Convert character to lowercase equivalent. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:to-string + + Data: c-s + Addr: - + Float: - + +Convert character into a string. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:to-upper + + Data: c-c + Addr: - + Float: - + +Convert character to uppercase equivalent. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:toggle-case + + Data: c-c + Addr: - + Float: - + +Convert an ASCII character to the opposite case. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:uppercase? + + Data: c-f + Addr: - + Float: - + +Return TRUE if character is uppercase or FALSE otherwise. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:visible? + + Data: c-f + Addr: - + Float: - + +Return TRUE if character is printable or FALSE otherwise. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:vowel? + + Data: c-f + Addr: - + Float: - + +Return TRUE if character is a vowel or FALSE otherwise. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +c:whitespace? + + Data: c-f + Addr: - + Float: - + +Return TRUE if character is whitespace, or FALSE otherwise. + +Class Handler: class:word | Namespace: c | Interface Layer: all + +---------------------------------------------------------------- + +call + + Data: a- + Addr: - + Float: - + +Call a function. + +Class Handler: {n/a} | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +case + + Data: nmq- || nmq-n + Addr: - + Float: - + +If `n` is equal to `m`, drop both and execute the specified quote before exiting the calling word. If not equal, leave `n` on the stack and let execution continue. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +choose + + Data: fqq- + Addr: - + Float: - + +Execute q1 if the flag is `TRUE` or q2 if it is not. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +class:data + + Data: n- || n-n + Addr: - + Float: - + +Class handler for data structures. + +Interpret Time: + Keep the address or value on the stack. + +Compile Time: + Compile the value or address as a literal into the current definition. + +Class Handler: {n/a} | Namespace: class | Interface Layer: all + +---------------------------------------------------------------- + +class:macro + + Data: a- + Addr: - + Float: - + +Class handler for compiler macros (immediate words) + +Interpret Time: + Execute the function at the provided address. + +Compile Time: + Execute the function at the provided address. + +Class Handler: {n/a} | Namespace: class | Interface Layer: all + +---------------------------------------------------------------- + +class:primitive + + Data: a- + Addr: - + Float: - + +Class handler for primitive words (words which map to Nga instructions) + +Interpret Time: + Execute the function. + +Compile Time: + Compile the machine code in the definiton into the current definition. + +Class Handler: {n/a} | Namespace: class | Interface Layer: all + +---------------------------------------------------------------- + +class:word + + Data: a- + Addr: - + Float: - + +Class handler for normal words. + +Interpret Time: + Execute the function at the provided address. + +Compile Time: + Compile a call to the specified address into the current definition. + +Class Handler: {n/a} | Namespace: class | Interface Layer: all + +---------------------------------------------------------------- + +compile:call + + Data: a- + Addr: - + Float: - + +Compile a call to the specified address into the current definition. + +Class Handler: class:word | Namespace: compile | Interface Layer: all + +---------------------------------------------------------------- + +compile:jump + + Data: a- + Addr: - + Float: - + +Compile a jump to the specified address into the current definition. + +Class Handler: class:word | Namespace: compile | Interface Layer: all + +---------------------------------------------------------------- + +compile:lit + + Data: n- + Addr: - + Float: - + +Compile the code to push a number to the stack into the current definition. + +Class Handler: class:word | Namespace: compile | Interface Layer: all + +---------------------------------------------------------------- + +compile:ret + + Data: - + Addr: - + Float: - + +Compile a return instruction into the current definition. + +Class Handler: class:word | Namespace: compile | Interface Layer: all + +---------------------------------------------------------------- + +compiling? + + Data: -f + Addr: - + Float: - + +Return `TRUE` if compiler is on or `FALSE` otherwise. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +const + + Data: ns- + Addr: - + Float: - + +Create a constant returning the specified value. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +copy + + Data: sdl- + Addr: - + Float: - + +Copy `l` cells from memory at `s` to the memory at `d`. These should not overlap. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +curry + + Data: nq-q + Addr: - + Float: - + +Bind a value to a function and return a new quote that calls the bound action. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +d + + Data: n- + Addr: - + Float: - + +Inline a numeric value to the current assembly segment. + +Class Handler: {n/a} | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +d:add-header + + Data: saa- + Addr: - + Float: - + +Create a header. Provide a string (s) for the name, a pointer to the class handler (a1) and a pointer to the word definition (a2) Generally this won't be used directly. + +Class Handler: class:word | Namespace: d | Interface Layer: all + +---------------------------------------------------------------- + +d:class + + Data: d-a + Addr: - + Float: - + +Given a dictionary header, return the class field. + +Class Handler: class:word | Namespace: d | Interface Layer: all + +---------------------------------------------------------------- + +d:create + + Data: s- + Addr: - + Float: - + +Create a new dictionary header named the specified string. The new header will point to `here` and have a class of `class:data`. + +Class Handler: class:word | Namespace: d | Interface Layer: all + +---------------------------------------------------------------- + +d:for-each + + Data: q- + Addr: - + Float: - + +Execute the specified quote once for each header in the dictionary. Before running the quote, this also pushes a pointer to the header onto the stack. + +Class Handler: class:word | Namespace: d | Interface Layer: all + +---------------------------------------------------------------- + +d:last + + Data: -d + Addr: - + Float: - + +Return the most recent dictionary header. + +Class Handler: class:word | Namespace: d | Interface Layer: all + +---------------------------------------------------------------- + +d:last + + Data: -a + Addr: - + Float: - + +Return a pointer to the class field of the most recent dictionary header. + +Class Handler: class:word | Namespace: d | Interface Layer: all + +---------------------------------------------------------------- + +d:last + + Data: -s + Addr: - + Float: - + +Return a pointer to the name field of the most recent dictionary header. + +Class Handler: class:word | Namespace: d | Interface Layer: all + +---------------------------------------------------------------- + +d:last + + Data: -a + Addr: - + Float: - + +Return a pointer to the xt field of the most recent dictionary header. + +Class Handler: class:word | Namespace: d | Interface Layer: all + +---------------------------------------------------------------- + +d:link + + Data: d-a + Addr: - + Float: - + +Given a dictionary header, return the link field. + +Class Handler: class:word | Namespace: d | Interface Layer: all + +---------------------------------------------------------------- + +d:lookup + + Data: s-d + Addr: - + Float: - + +Lookup the specified name in the dictionary and return a pointer to its dictionary header. This returns zero if the word is not found. + +Class Handler: class:word | Namespace: d | Interface Layer: all + +---------------------------------------------------------------- + +d:lookup-xt + + Data: a-d + Addr: - + Float: - + +Lookup the specified address in the dictionary and return a pointer to its dictionary header. This returns zero if the word is not found. + +Class Handler: class:word | Namespace: d | Interface Layer: all + +---------------------------------------------------------------- + +d:name + + Data: d-s + Addr: - + Float: - + +Given a dictionary header, return the name field. + +Class Handler: class:word | Namespace: d | Interface Layer: all + +---------------------------------------------------------------- + +d:xt + + Data: d-a + Addr: - + Float: - + +Given a dictionary header, return the xt field. + +Class Handler: class:word | Namespace: d | Interface Layer: all + +---------------------------------------------------------------- + +data + + Data: - + Addr: - + Float: - + +Change the class of the most recently defined word to `class:data`. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +depth + + Data: -n + Addr: - + Float: - + +Return the number of items on the stack. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +dip + + Data: nq-n + Addr: - + Float: - + +Temporarily remove n from the stack, execute the quotation, and then restore n to the stack. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +does + + Data: q- + Addr: - + Float: - + +Attach an action to the most recently created word. This is used in a manner similar to CREATE/DOES> in traditional Forth. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +drop + + Data: n- + Addr: - + Float: - + +Discard the top value on the stack. + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +drop-pair + + Data: nn- + Addr: - + Float: - + +Remove top two items on the stack. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +dump-stack + + Data: - + Addr: - + Float: - + +Display the items on the data stack. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +dup + + Data: n-nn + Addr: - + Float: - + +Duplicate the top item on the stack. + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +dup-pair + + Data: nm-nmnm + Addr: - + Float: - + +Duplicate the top two items on the stack. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +eq? + + Data: nn-f + Addr: - + Float: - + +Compare two values for equality. Returns `TRUE` if they are equal or `FALSE` otherwise. + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +err:notfound + + Data: - + Addr: - + Float: - + +Error handler. Called when a word is not found by `interpret`. + +Class Handler: class:word | Namespace: err | Interface Layer: all + +---------------------------------------------------------------- + +f:* + + Data: - + Addr: - + Float: FF-F + +Multiply two floating point numbers, returning the result. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:+ + + Data: - + Addr: - + Float: FF-F + +Add two floating point numbers, returning the result. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:- + + Data: - + Addr: - + Float: FF-F + +Subtract F2 from F1 returing the result. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:-eq? + + Data: -f + Addr: - + Float: FF- + +Compare two floating point values for inequality. Returns `TRUE` if they are not equal or `FALSE` otherwise. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:/ + + Data: - + Addr: - + Float: FF-F + +Divide floating point value F1 by F2. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:abs + + Data: - + Addr: - + Float: F-F + +Return the absolute value for a floating point value. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:depth + + Data: -n + Addr: - + Float: - + +Return the number of items on the floating point stack. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:drop + + Data: - + Addr: - + Float: F- + +Discard the top item on the floating point stack. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:dup + + Data: - + Addr: - + Float: F-FF + +Duplicate the top item on the floating point stack. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:eq? + + Data: -f + Addr: - + Float: FF- + +Compare two floating point values for equality. Returns `TRUE` if they are equal or `FALSE` otherwise. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:floor + + Data: - + Addr: - + Float: F-F + +Perform a mathmatical floor operation on the floating point value. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:gt? + + Data: -f + Addr: - + Float: FF- + +Compare two floating point values for greater than. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:log + + Data: - + Addr: - + Float: FF-F + +Return log(F1) for base F2 for floating point values. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:lt? + + Data: -f + Addr: - + Float: FF- + +Compare two floating point values for less than. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:negate + + Data: - + Addr: - + Float: F-F + +Invert the sign of the floating point value. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:negative? + + Data: -f + Addr: - + Float: F- + +Return `TRUE` if floating point value is negative or `FALSE` if not. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:over + + Data: - + Addr: - + Float: FG-FGF + +Put a copy of the second floating point value over the top one. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:positive? + + Data: -f + Addr: - + Float: F- + +Return `TRUE` if floating point value is positive or `FALSE` otherwise. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:power + + Data: - + Addr: - + Float: FF-F + +Return F1^F2 for floating point values. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:swap + + Data: - + Addr: - + Float: FG-GF + +Exchange the top and second items on the floating point stack. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:to-number + + Data: -n + Addr: - + Float: F- + +Convert a floating point value into a number. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:to-string + + Data: -s + Addr: - + Float: F- + +Convert a floating point value into a string. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +f:tuck + + Data: - + Addr: - + Float: FG-GFG + +Tuck a copy of the top floating point value under the second one. + +Class Handler: class:word | Namespace: f | Interface Layer: rre + +---------------------------------------------------------------- + +fetch + + Data: a-n + Addr: - + Float: - + +Fetch the value stored at the specified address. + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +fetch-next + + Data: a-an + Addr: - + Float: - + +Fetch the value stored at the specified address. Returns the next address and the value. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +file:A + + Data: -n + Addr: - + Float: - + +Constant for opening a file in APPEND mode. + +Class Handler: class:data | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:R + + Data: -n + Addr: - + Float: - + +Constant for opening a file in READ mode. + +Class Handler: class:data | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:R+ + + Data: -n + Addr: - + Float: - + +Constant for opening a file in READ & WRITE mode. + +Class Handler: class:data | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:W + + Data: -n + Addr: - + Float: - + +Constant for opening a file in WRITE mode. + +Class Handler: class:data | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:close + + Data: h- + Addr: - + Float: - + +Given a file handle, close the file. + +Class Handler: class:word | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:delete + + Data: s- + Addr: - + Float: - + +Delete the named file. + +Class Handler: class:word | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:exists? + + Data: s-f + Addr: - + Float: - + +Given a file name, return `TRUE` if it exists or `FALSE` if it does not. + +Class Handler: class:word | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:flush + + Data: h- + Addr: - + Float: - + +Given a file handle, flush any pending writes to disk. + +Class Handler: class:word | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:for-each-line + + Data: sq- + Addr: - + Float: - + +Given a file name, open it and run the quote once for each line in the file. + +Class Handler: class:word | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:open + + Data: sm-h + Addr: - + Float: - + +Open a named file (s) with the given mode (m). Returns a handle identifying the file. + +Class Handler: class:word | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:read + + Data: h-c + Addr: - + Float: - + +Given a file handle, read and return the next character in it. + +Class Handler: class:word | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:read-line + + Data: f-s + Addr: - + Float: - + +Given a file handle, read a line and return a pointer to it. + +Class Handler: class:word | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:seek + + Data: nh- + Addr: - + Float: - + +Move the current offset into a file to the specified one. + +Class Handler: class:word | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:size + + Data: h-n + Addr: - + Float: - + +Given a file handle, return the size of the file (in bytes). + +Class Handler: class:word | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:slurp + + Data: as- + Addr: - + Float: - + +Given an address and a file name, read the file contents into memory starting at the address. + +Class Handler: class:word | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:tell + + Data: h-n + Addr: - + Float: - + +Given a file handle, return the current offset in the file. + +Class Handler: class:word | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +file:write + + Data: ch- + Addr: - + Float: - + +Write a character to the file represented by the handle. + +Class Handler: class:word | Namespace: file | Interface Layer: rre + +---------------------------------------------------------------- + +getc + + Data: -c + Addr: - + Float: - + +Read a single keypress. + +Class Handler: class:word | Namespace: global | Interface Layer: rre + +---------------------------------------------------------------- + +gopher:get + + Data: asns-n + Addr: - + Float: - + +Takes an address, a server, a port, and a selector. Fetch the resource and store it at address. Return the number of bytes received. + +Class Handler: class:word | Namespace: gopher | Interface Layer: rre + +---------------------------------------------------------------- + +gt? + + Data: nn-f + Addr: - + Float: - + +Compare n1 and n2. Return `TRUE` if n1 is greater than n2, or `FALSE` otherwise. + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +gteq? + + Data: nn-f + Addr: - + Float: - + +Compare n1 and n2. Return `TRUE` if n1 is greater than or equal to n2, or `FALSE` otherwise. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +here + + Data: -a + Addr: - + Float: - + +Return the next free address in memory. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +i + + Data: s- + Addr: - + Float: - + +Assemble the instructions specified by the string into the current assembly scope. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +if + + Data: fq- + Addr: - + Float: - + +Execute the quote if the flag is `TRUE`. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +immediate + + Data: - + Addr: - + Float: - + +Change the class of the most recently defined word to `class:macro`. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +interpret + + Data: s- + Addr: - + Float: - + +Interpret a single input token. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +lt? + + Data: nn-f + Addr: - + Float: - + +Compare n1 and n2. Return `TRUE` if n1 is less than n2, or `FALSE` otherwise. + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +lteq? + + Data: nn-f + Addr: - + Float: - + +Compare n1 and n2. Return `TRUE` if n1 is less than or equal to n2, or `FALSE` otherwise. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +mod + + Data: nm-o + Addr: - + Float: - + +Divide `n` by `m` and return the remainder. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +n:-zero? + + Data: n-f + Addr: - + Float: - + +Return `TRUE` if number is not zero, or `FALSE` otherwise. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:MAX + + Data: -n + Addr: - + Float: - + +Return the maximum value that will fit in a cell. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:MIN + + Data: -n + Addr: - + Float: - + +Return the minimum value that will fit in a cell. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:abs + + Data: n-n + Addr: - + Float: - + +Return the absolute value of a number. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:between? + + Data: nlu-f + Addr: - + Float: - + +Return TRUE if number is between the lower (l) and upper (u) bounds. If not, return FALSE. This is inclusive of the limits. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:dec + + Data: n-m + Addr: - + Float: - + +Decrement n by one. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:even? + + Data: n-f + Addr: - + Float: - + +Return `TRUE` if number is even, or `FALSE` if not. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:inc + + Data: n-m + Addr: - + Float: - + +Increment n by one. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:limit + + Data: nlu-m + Addr: - + Float: - + +Return n if it is within the lower (l) and upper (u) bounds. If outside the bounds, return the closes boundary value. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:max + + Data: mn-o + Addr: - + Float: - + +Return the greater of two values. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:min + + Data: mn-o + Addr: - + Float: - + +Return the lesser of two values. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:negate + + Data: n-n + Addr: - + Float: - + +Invert the sign of a number. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:negative? + + Data: n-f + Addr: - + Float: - + +Return `TRUE` if number is negative, or `FALSE` if not. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:odd? + + Data: n-f + Addr: - + Float: - + +Return `TRUE` if number is odd, or `FALSE` if not. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:positive? + + Data: n-f + Addr: - + Float: - + +Return `TRUE` if number is positive, or `FALSE` if not. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:pow + + Data: bp-n + Addr: - + Float: - + +Return base (b) to power (p). + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:sqrt + + Data: n-m + Addr: - + Float: - + +Return the square root of a number. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:square + + Data: n-m + Addr: - + Float: - + +Return the square of a number. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:strictly-positive? + + Data: n-f + Addr: - + Float: - + +Return TRUE if number is greater than zero or FALSE if it is zero or less. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:to-float + + Data: n- + Addr: - + Float: -F + +Convert a number into a floating point value. + +Class Handler: class:word | Namespace: n | Interface Layer: rre + +---------------------------------------------------------------- + +n:to-string + + Data: n-s + Addr: - + Float: - + +Convert a number into a string. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +n:zero? + + Data: n-f + Addr: - + Float: - + +Return `TRUE` if number is zero, or `FALSE` otherwise. + +Class Handler: class:word | Namespace: n | Interface Layer: all + +---------------------------------------------------------------- + +nip + + Data: nm-m + Addr: - + Float: - + +Remove the second item from the stack. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +nl + + Data: - + Addr: - + Float: - + +Display a newline. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +not + + Data: n-m + Addr: - + Float: - + +Perform a logical NOT operation. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +or + + Data: mn-o + Addr: - + Float: - + +Perform a bitwise OR between the provided values. + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +over + + Data: nm-nmn + Addr: - + Float: - + +Put a copy of n over m. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +pop + + Data: -n + Addr: n- + Float: - + +Move a value from the return stack to the data stack. + +Class Handler: {n/a} | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +prefix:! + + Data: ns- + Addr: - + Float: - + +Store a value into a variable. + +Interpret Time: + Store a value into the named variable. + +Compile Time: + Compile the code to store a value into a named variable. + +Class Handler: {n/a} | Namespace: prefix | Interface Layer: all + +---------------------------------------------------------------- + +prefix:# + + Data: s-n + Addr: - + Float: - + +Process token as a number. + +Interpret Time: + Convert the string into a number and leave on the stack. + +Compile Time: + Convert the string into a number and compile into the current definition as a literal. + +Class Handler: {n/a} | Namespace: prefix | Interface Layer: all + +---------------------------------------------------------------- + +prefix:$ + + Data: s-c + Addr: - + Float: - + +Process token as an ASCII character. + +Interpret Time: + Fetch first character from string. Leave on stack. + +Compile Time: + Fetch first character from the string. Compile into the current definition as literal. + +Class Handler: {n/a} | Namespace: prefix | Interface Layer: all + +---------------------------------------------------------------- + +prefix:& + + Data: s-a + Addr: - + Float: - + +Return a pointer to a named item. + +Interpret Time: + Lookup name in dictionary, return contents of the xt field on the stack. + +Compile Time: + Lookup name in dictionary, compile code to push the contents of the xt field into the current definition. + +Class Handler: {n/a} | Namespace: prefix | Interface Layer: all + +---------------------------------------------------------------- + +prefix:' + + Data: s-s + Addr: - + Float: - + +Process token as a string. + +Interpret Time: + Move string into temporary buffer. If `RewriteUnderscores` is `TRUE`, replace all instances of _ with space. + +Compile Time: + Move string into temporary buffer. If `RewriteUnderscores` is `TRUE`, replace all instances of _ with space. Then compile the string into the current definition. + +Class Handler: {n/a} | Namespace: prefix | Interface Layer: all + +---------------------------------------------------------------- + +prefix:( + + Data: s- + Addr: - + Float: - + +Process token as a comment. + +Interpret Time: + Discard the string. + +Compile Time: + Discard the string. + +Class Handler: {n/a} | Namespace: prefix | Interface Layer: all + +---------------------------------------------------------------- + +prefix:. + + Data: s- + Addr: - + Float: -F + +Interpret time: convert string to a floating point value. +Compile time: convert string to a floating point value and compile code to push this value to the float stack. + +Class Handler: {n/a} | Namespace: prefix | Interface Layer: rre + +---------------------------------------------------------------- + +prefix:: + + Data: s- + Addr: - + Float: - + +Process token as a new definition. + +Interpret Time: + Create a header pointing to `here` with the provided string as the name. Sets class to `class:word`. + +Class Handler: @Compiler | Namespace: prefix | Interface Layer: all + +---------------------------------------------------------------- + +prefix:@ + + Data: s-n + Addr: - + Float: - + +Fetch from a stored variable. + +Interpret Time: + Fetch a value from a named variable. + +Compile Time: + Compile the code to fetch a value from a named variable into the current definition. + +Class Handler: {n/a} | Namespace: prefix | Interface Layer: all + +---------------------------------------------------------------- + +prefix:` + + Data: s- + Addr: - + Float: - + +Process token as a bytecode. + +Interpret Time: + Discard the string. + +Compile Time: + Convert the string to a number and use `,` to inline it into the current definition. + +Class Handler: {n/a} | Namespace: prefix | Interface Layer: all + +---------------------------------------------------------------- + +push + + Data: n- + Addr: -n + Float: - + +Move a value from the data stack to the return stack. + +Class Handler: {n/a} | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +putc + + Data: c- + Addr: - + Float: - + +Display a single character. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +putf + + Data: - + Addr: - + Float: F- + +Display a floating point number. + +Class Handler: class:word | Namespace: global | Interface Layer: rre + +---------------------------------------------------------------- + +putn + + Data: n- + Addr: - + Float: - + +Display a number. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +puts + + Data: s- + Addr: - + Float: - + +Display a string. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +r + + Data: s- + Addr: - + Float: - + +Lookup a reference by name and inline its pointer to the current assembly segment. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +reclass + + Data: a- + Addr: - + Float: - + +Change the class handler of the most recently defined word to the specified one. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +reorder + + Data: ...ss-? + Addr: - + Float: - + +Restructure the order of items on the stack. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +repeat + + Data: - + Addr: - + Float: - + +Begin an unconditional loop. + +Class Handler: class:macro | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +reset + + Data: ...- + Addr: - + Float: - + +Remove all items from the stack. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +rot + + Data: abc-bca + Addr: - + Float: - + +Rotate the top three values. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +s, + + Data: s- + Addr: - + Float: - + +Compile the code needed to push a string pointer to the stack and inline the string data into the current definition. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +s:ASCII-LETTERS + + Data: -s + Addr: - + Float: - + +Constant. Returns a string of the ASCII letters (upper and lower case) + +Class Handler: class:data | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:ASCII-LOWERCASE + + Data: -s + Addr: - + Float: - + +Constant. Returns a string of the ASCII letters in lowercase + +Class Handler: class:data | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:ASCII-UPPERCASE + + Data: -s + Addr: - + Float: - + +Constant. Returns a string of the ASCII letters in uppercase + +Class Handler: class:data | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:DIGITS + + Data: -s + Addr: - + Float: - + +Constant. Return a string of characters recognized as numeric digits. + +Class Handler: class:data | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:PUNCTUATION + + Data: -s + Addr: - + Float: - + +Constant. Return a string of characters recognized as punctuation. + +Class Handler: class:data | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:WHITESPACE + + Data: -s + Addr: - + Float: - + +Constant. Returns a string of characters recognized as whitespace. + +Class Handler: class:data | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:append + + Data: ss-s + Addr: - + Float: - + +Return a new string consisting of s1 followed by s2. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:case + + Data: sSq- || sSq-s + Addr: - + Float: - + +If the `s` matches `S`, discard `s` and run the quote before exiting the caller. If they do not match, discard the quote and leave `s` on the stack. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:chop + + Data: s-s + Addr: - + Float: - + +Remove the last character from a string. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:const + + Data: ss- + Addr: - + Float: - + +Create a constant named s2, returning a pointer to s1. This will use `s:keep` to preserve the original string. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:contains-char? + + Data: sc-f + Addr: - + Float: - + +Return `TRUE` if the character is present in the string or `FALSE` otherwise. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:contains-string? + + Data: ss-f + Addr: - + Float: - + +Return `TRUE` if the second string is present in the first string or `FALSE` otherwise. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:copy + + Data: sa- + Addr: - + Float: - + +Copy a string (s) to a destination (a). This will include the terminator character when copying. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:empty + + Data: -s + Addr: - + Float: - + +Return an empty string. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:eq? + + Data: ss-f + Addr: - + Float: - + +Compare two strings for equality. Return `TRUE` if identical or `FALSE` if not. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:evaluate + + Data: s-? + Addr: - + Float: - + +Evaluate string as if it was typed into the interpreter. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:filter + + Data: sq-s + Addr: - + Float: - + +Execite the quote once for each value in the string. If the quote returns `TRUE`, append the value into a new string. If `FALSE` the value will be discarded. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:for-each + + Data: sq- + Addr: - + Float: - + +Execute the quote once for each value in the string. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:hash + + Data: s-n + Addr: - + Float: - + +Calculate a hash value for a string. This uses the djb2 algorithim. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:index-of + + Data: sc-n + Addr: - + Float: - + +Return the location of the first instance of the specified character in the string. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:index-of-string + + Data: ss-n + Addr: - + Float: - + +Return the location of the first instance of the specified substring (s2) in the string (s1). Returns -1 if not found. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:keep + + Data: s-s + Addr: - + Float: - + +Store a string into the heap and return a pointer to the start of it. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:left + + Data: sn-s + Addr: - + Float: - + +Return a new string containing the first `n` characters from the source string. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:length + + Data: s-n + Addr: - + Float: - + +Return the number of characters in a string, excluding the NULL terminator. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:map + + Data: sq-s + Addr: - + Float: - + +Execute the specified quote once for each character in the string. Builds a new string from the return value of the quote. The quote should return only one value. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:prepend + + Data: ss-s + Addr: - + Float: - + +Return a new string consisting of s2 followed by s1. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:replace + + Data: sss-s + Addr: - + Float: - + +Replace the first instance of s2 in s1 with s3. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:reverse + + Data: s-s + Addr: - + Float: - + +Reverse the order of ASCII characters in a string. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:right + + Data: sn-s + Addr: - + Float: - + +Return a new string containing the specified number of characters from the right side of the string. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:skip + + Data: - + Addr: - + Float: - + +Internal helper function used to skip over a string in a definition. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:split + + Data: sc-ss + Addr: - + Float: - + +Split a string on the first occurrance of the specified character. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:split-on-string + + Data: ss-ss + Addr: - + Float: - + +Split a string on the first occurrance of the specified string. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:substr + + Data: sfl-s + Addr: - + Float: - + +Extract a substring from the specified string. This will take the characters starting at `f` and extend `l` characters in length. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:temp + + Data: s-s + Addr: - + Float: - + +Move a string into the temporary string buffers. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:to-float + + Data: s- + Addr: - + Float: -F + +Convert a string representation into a floating point value. + +Class Handler: class:word | Namespace: s | Interface Layer: rre + +---------------------------------------------------------------- + +s:to-lower + + Data: s-s + Addr: - + Float: - + +Convert uppercase ASCII characters in a string to lowercase. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:to-number + + Data: s-n + Addr: - + Float: - + +Convert a string to a number. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:to-upper + + Data: s-s + Addr: - + Float: - + +Convert lowercase ASCII characters in a string to uppercase. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:trim + + Data: s-s + Addr: - + Float: - + +Trim leading and trailing whitespace from a string. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:trim-left + + Data: s-s + Addr: - + Float: - + +Trim leading whitespace from a string. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:trim-right + + Data: s-s + Addr: - + Float: - + +Trim trailing whitespace from a string. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +s:with-format + + Data: ...s-s + Addr: - + Float: - + +Construct a new string using the template passed and items from the stack. + +Class Handler: class:word | Namespace: s | Interface Layer: all + +---------------------------------------------------------------- + +set:contains-string? + + Data: sa-f + Addr: - + Float: - + +Return `TRUE` if the string value is in the set or`FALSE` otherwise. + +Class Handler: class:word | Namespace: set | Interface Layer: all + +---------------------------------------------------------------- + +set:contains? + + Data: na-f + Addr: - + Float: - + +Return `TRUE` if the value is in the set or `FALSE` otherwise. + +Class Handler: class:word | Namespace: set | Interface Layer: all + +---------------------------------------------------------------- + +set:dup + + Data: a-b + Addr: - + Float: - + +Make a copy of a set. Return the address of the copy. + +Class Handler: class:word | Namespace: set | Interface Layer: all + +---------------------------------------------------------------- + +set:filter + + Data: aq-b + Addr: - + Float: - + +For each item in the initial set, run the specified quote. If the quote returns `TRUE`, copy the item into a new set. If `FALSE`, discard it. Returns a pointer to the new set. + +Class Handler: class:word | Namespace: set | Interface Layer: all + +---------------------------------------------------------------- + +set:for-each + + Data: aq- + Addr: - + Float: - + +Execute the quote once for each item in the set. + +Class Handler: class:word | Namespace: set | Interface Layer: all + +---------------------------------------------------------------- + +set:from-results + + Data: q-a + Addr: - + Float: - + +Execute quote. Return a new set containing the values the quote leaves on the stack. + +Class Handler: class:word | Namespace: set | Interface Layer: all + +---------------------------------------------------------------- + +set:from-string + + Data: s-a + Addr: - + Float: - + +Create a new set with the characters in the source string. + +Class Handler: class:word | Namespace: set | Interface Layer: all + +---------------------------------------------------------------- + +set:length + + Data: a-n + Addr: - + Float: - + +Return the length of a set. + +Class Handler: class:word | Namespace: set | Interface Layer: all + +---------------------------------------------------------------- + +set:map + + Data: aq- + Addr: - + Float: - + +Execute quote once for each item in the set. Constructs a new set from the value returned by the quote. + +Class Handler: class:word | Namespace: set | Interface Layer: all + +---------------------------------------------------------------- + +set:nth + + Data: an-b + Addr: - + Float: - + +Return the actual address of the nth item in the set. + +Class Handler: class:word | Namespace: set | Interface Layer: all + +---------------------------------------------------------------- + +set:reduce + + Data: pnq-n + Addr: - + Float: - + +Takes a set, a starting value, and a quote. This will apply the quote to each item in the set; the quote should consume two values and return one. + +Class Handler: class:word | Namespace: set | Interface Layer: all + +---------------------------------------------------------------- + +set:reverse + + Data: a-b + Addr: - + Float: - + +Reverse the order of items in a set. This will return a new set. + +Class Handler: class:word | Namespace: set | Interface Layer: all + +---------------------------------------------------------------- + +shift + + Data: mn-o + Addr: - + Float: - + +Peform a bitwise shift of m by n bits. If n is positive, shift right. If negative, the shift will be to the left. + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +sip + + Data: nq-n + Addr: - + Float: - + +Run quote. After execution completes, put a copy of n back on top of the stack. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +sp + + Data: - + Addr: - + Float: - + +Display a space (`ASCII:SPACE`) + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +store + + Data: na- + Addr: - + Float: - + +Store a value into the specified address. + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +store-next + + Data: na-a + Addr: - + Float: - + +Store a value into the specified address and return the next address. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +swap + + Data: nm-mn + Addr: - + Float: - + +Exchange the position of the top two items on the stack + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +sys:argc + + Data: -n + Addr: - + Float: - + +Return the number of arguments passed to the program. + +Class Handler: class:word | Namespace: sys | Interface Layer: rre + +---------------------------------------------------------------- + +sys:argv + + Data: n-s + Addr: - + Float: - + +Given an argument number, return the argument as a string. + +Class Handler: class:word | Namespace: sys | Interface Layer: rre + +---------------------------------------------------------------- + +tab + + Data: - + Addr: - + Float: - + +Display a tab (`ASCII:HT`) + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +times + + Data: nq- + Addr: - + Float: - + +Run the specified quote the specified number of times. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +tors + + Data: -n + Addr: - + Float: - + +Get a copy of the top item on the return stack. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +tri + + Data: xqqq-? + Addr: - + Float: - + +Apply q1 against x, then q2 against a copy of x, and finally q3 against another copy of x. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +tri* + + Data: xyzqqq-? + Addr: - + Float: - + +Apply q1 against x, q2 against y, and q3 against z. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +tri@ + + Data: xyzq-? + Addr: - + Float: - + +Apply q against x, then against y, and finally against z. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +tuck + + Data: nm-mnm + Addr: - + Float: - + +Put a copy of the top item on the stack under the second one. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +unix:chdir + + Data: s- + Addr: - + Float: - + +Change the current working directory to the specified one. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +unix:exec0 + + Data: s- + Addr: - + Float: - + +Execute a process by running the application specified by s. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +unix:exec1 + + Data: ss- + Addr: - + Float: - + +Execute a process by running the application specified by s1. Pass s2 as an argument. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +unix:exec2 + + Data: sss- + Addr: - + Float: - + +Execute a process by running the application specified by s1. Pass s2 and s3 as arguments. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +unix:exec3 + + Data: ssss- + Addr: - + Float: - + +Execute a process by running the application specified by s1. Pass s2, s3, and s4 as arguments. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +unix:exit + + Data: n- + Addr: - + Float: - + +Exit the current process, returning the specified return code. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +unix:fork + + Data: -n + Addr: - + Float: - + +Fork the current process. Returns a PID. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +unix:getenv + + Data: sa- + Addr: - + Float: - + +Get an environment variable. Provide the name and an address to store it in. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +unix:getpid + + Data: -n + Addr: - + Float: - + +Return the PID of the current process. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +unix:kill + + Data: nn- + Addr: - + Float: - + +Terminates a process. Takes a process and a signal to send. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +unix:pclose + + Data: n- + Addr: - + Float: - + +Close a pipe. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +unix:popen + + Data: sn-n + Addr: - + Float: - + +Open a pipe. Takes a command to run, and a file mode (`file:R` or `file:W`; `file:R+` may work on some systems). Returns a file ID usable with words in the `file:` namespace. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +unix:putenv + + Data: s- + Addr: - + Float: - + +Takes a string in the form `name=value` and sets an environment variable named `name` to `value`. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +unix:system + + Data: s- + Addr: - + Float: - + +Runs another application using the system shell and returns after execution is completed. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +unix:wait + + Data: -n + Addr: - + Float: - + +Waits for a child process to complete. This maps to the wait() system call. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +unix:write + + Data: sh- + Addr: - + Float: - + +Write a string to the specified file handle. + +Class Handler: class:word | Namespace: unix | Interface Layer: rre + +---------------------------------------------------------------- + +until + + Data: q- + Addr: - + Float: - + +Execute quote repeatedly while the quote returns a value of `FALSE`. The quote must return a flag of either `TRUE` or `FALSE` to be used with this. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +v:dec + + Data: a- + Addr: - + Float: - + +Decrement the value stored at the specified address by 1. + +Class Handler: class:word | Namespace: v | Interface Layer: all + +---------------------------------------------------------------- + +v:dec-by + + Data: na- + Addr: - + Float: - + +Decrement the value stored at the specified address by the specified value. + +Class Handler: class:word | Namespace: v | Interface Layer: all + +---------------------------------------------------------------- + +v:inc + + Data: a- + Addr: - + Float: - + +Increment the value stored at the specified address by 1. + +Class Handler: class:word | Namespace: v | Interface Layer: all + +---------------------------------------------------------------- + +v:inc-by + + Data: na- + Addr: - + Float: - + +Increment the value stored at the specified address by the specified value. + +Class Handler: class:word | Namespace: v | Interface Layer: all + +---------------------------------------------------------------- + +v:limit + + Data: alu- + Addr: - + Float: - + +Fetch the value stored at the address, then run `n:limit` against it, using the specified lower and upper bounds. Then store the resulting value back to the original address. + +Class Handler: class:word | Namespace: v | Interface Layer: all + +---------------------------------------------------------------- + +v:off + + Data: a- + Addr: - + Float: - + +Set a variable to 0. + +Class Handler: class:word | Namespace: v | Interface Layer: all + +---------------------------------------------------------------- + +v:on + + Data: a- + Addr: - + Float: - + +Set a variable to -1. + +Class Handler: class:word | Namespace: v | Interface Layer: all + +---------------------------------------------------------------- + +v:preserve + + Data: aq- + Addr: - + Float: - + +Make a copy of the value at the address, then run the quote. Once the quote completes, restore the address to the specified value. + +Class Handler: class:word | Namespace: v | Interface Layer: all + +---------------------------------------------------------------- + +v:update-using + + Data: aq- + Addr: - + Float: - + +Fetch a value from the specified address, then run the quotation with this value on the stack. Afterwards, store the returned value at the original address. + +Class Handler: class:word | Namespace: v | Interface Layer: all + +---------------------------------------------------------------- + +var + + Data: s- + Addr: - + Float: - + +Create a variable. The variable is initialized to 0. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +var + + Data: ns- + Addr: - + Float: - + +Create a variable with the specified initial value. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +while + + Data: q- + Addr: - + Float: - + +Execute quote repeatedly while the quote returns a value of `TRUE`. The quote must return a flag of either `TRUE` or `FALSE` to be used with this. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +words + + Data: - + Addr: - + Float: - + +Display a list of all named items in the `Dictionary`. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +xor + + Data: mn-o + Addr: - + Float: - + +Perform a bitwise XOR operation. + +Class Handler: class:primitive | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +{{ + + Data: - + Addr: - + Float: - + +Begin a lexically scoped area. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +}as + + Data: f- + Addr: - + Float: - + +End an assembly section + +Class Handler: class:macro | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + +}} + + Data: - + Addr: - + Float: - + +End a lexically scoped area. + +Class Handler: class:word | Namespace: global | Interface Layer: all + +---------------------------------------------------------------- + diff --git a/wip/glossary.forth b/wip/glossary.forth index 79e0856..206553b 100755 --- a/wip/glossary.forth +++ b/wip/glossary.forth @@ -5,11 +5,11 @@ data set. It's intended to be used like: - ./words.forth describe s:filter + ./glossary.forth describe s:filter Or: - ./words.forth export glossary + ./glossary.forth export glossary First, exit if the required number of argumenta are not passed.