Here's another simple example that demonstrates how to print messages from within a word. Be careful about the spacing: the actual string to be printed is framed by the ." and " words, which
are separate from the string.
: helloWorld ." Hello, world. " ;
ok
helloWorld
Hello, world. ok
If you define a word that already exists, it will be redefined:
: helloWorld ." Tag, Welt. " ;
redefine helloWorld ok
Constants and Variables
You can define words in Forth that represent numerical values. These words are called constants; you can use the word anywhere you really mean the number it represents. This is really handy for
making programs more readable.
To define a constant, push its value on the stack. Then use the word CONSTANT and supply a name. like this:
7 CONSTANT FULL
ok
You can the use FULL anywhere you really mean 7, like this:
FULL 2 0 MOTOR_SET
ok
Variables are even easier to define. Just use the word VARIABLE and supply a name:
VARIABLE z
ok
Values are stored in variables using the ! word, pronounced "store":
12 z !
ok
The value of a variable can be retrieved and placed on the stack with the @ word:
z @ .
12 ok
There's some tricky stuff going on here that I'll briefly discuss. A variable is really an address in memory. The ! word expects to find an address and a value on the stack; it stores the value at the
specified address. Similarly, the @ word expects to find an address on the stack. It replaces the address with the value at that address. When you declare a variable with the VARIABLE word, all
you're really doing is assigning an address (determined by the Forth interpreter) to a name.
Page 124
Need help?
Do you have a question about the MINDSTORMS Robots and is the answer not in the manual?