ForthMinus
From OpenSimulator
(Difference between revisions)
Line 33: | Line 33: | ||
| Loads the words in n.dll | | Loads the words in n.dll | ||
|- | |- | ||
− | | : | + | | : [;] |
| Special | | Special | ||
| Define a user word. The first word following the : in the estack is the name. All words following until ; is the definition of the word | | Define a user word. The first word following the : in the estack is the name. All words following until ; is the definition of the word | ||
|- | |- | ||
− | + | | savestack | |
+ | | ( ... n -- ) | ||
+ | | Pops the entire stack into variable n | ||
+ | |- | ||
+ | | loadstack | ||
+ | | ( n -- ... ) | ||
+ | | Push's the stack saved in variable n | ||
+ | |- | ||
+ | | clearstack | ||
+ | | ( ... -- ) | ||
+ | | Clears the entire stack | ||
+ | |- | ||
+ | | if,[else],then | ||
+ | | ( n -- ) | ||
+ | | If n is true, execute words until else or then. If n is false, execute else to then | ||
+ | |- | ||
+ | | not | ||
+ | | ( n -- n ) | ||
+ | | If n is true, push false, if n is false, push true | ||
+ | |- | ||
+ | | > | ||
+ | | ( n1 n2 -- n ) | ||
+ | | If n1 > n2, push true else push false | ||
+ | |- | ||
+ | | < | ||
+ | | ( n1 n2 -- n) | ||
+ | | If n1 < n2, push true else push false | ||
+ | |- | ||
+ | | >= | ||
+ | | ( n1 n2 -- n ) | ||
+ | | If n1 >= n2, push true else push false | ||
+ | |- | ||
+ | | <= | ||
+ | | ( n1 n2 -- n) | ||
+ | | If n1 <= n2, push true else push false | ||
+ | |- | ||
+ | | = | ||
+ | | ( n1 n2 -- n ) | ||
+ | | If n1 == n2, push true else push false | ||
+ | |- | ||
+ | | != | ||
+ | | ( n1 n2 -- n ) | ||
+ | | If n1 != n2, push true else push false (technically pushes "= not" to estack) | ||
+ | |- | ||
+ | | ! | ||
+ | | ( n1 n2 -- ) | ||
+ | | Saves n1 to variable n2 | ||
+ | |- | ||
+ | | @ | ||
+ | | ( n -- n ) | ||
+ | | Pushes variable n to stack | ||
|} | |} |
Revision as of 10:29, 20 January 2008
LibCore
Word | Stack | Description |
---|---|---|
dup | ( n -- n n ) | Duplicates the top item of the stack |
. * | ( n -- ) | Prints the top item of the stack in console |
dump * | ( -- ) | Dumps the VM's current status in console |
swap | ( n1 n2 -- n2 n1) | Swaps the order of the top two items in the stack |
savestate * | ( n -- ) | Saves the VM's state to file n.fmo |
words * | ( -- ) | Lists the primitive words loaded to console |
loadlib | ( n -- ) | Loads the words in n.dll |
: [;] | Special | Define a user word. The first word following the : in the estack is the name. All words following until ; is the definition of the word |
savestack | ( ... n -- ) | Pops the entire stack into variable n |
loadstack | ( n -- ... ) | Push's the stack saved in variable n |
clearstack | ( ... -- ) | Clears the entire stack |
if,[else],then | ( n -- ) | If n is true, execute words until else or then. If n is false, execute else to then |
not | ( n -- n ) | If n is true, push false, if n is false, push true |
> | ( n1 n2 -- n ) | If n1 > n2, push true else push false |
< | ( n1 n2 -- n) | If n1 < n2, push true else push false |
>= | ( n1 n2 -- n ) | If n1 >= n2, push true else push false |
<= | ( n1 n2 -- n) | If n1 <= n2, push true else push false |
= | ( n1 n2 -- n ) | If n1 == n2, push true else push false |
!= | ( n1 n2 -- n ) | If n1 != n2, push true else push false (technically pushes "= not" to estack) |
! | ( n1 n2 -- ) | Saves n1 to variable n2 |
@ | ( n -- n ) | Pushes variable n to stack |