
Page 124
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.
Summary of Contents for MINDSTORMS Robots
Page 22: ...Page 18 The back tread wheels are anchored to the shafts with the 16t gears ...
Page 23: ...Page 19 Page 20 Next start building support for the drive motors ...
Page 26: ...Page 23 The touch sensors are attached only by the shaft that runs through them ...
Page 41: ...Page 41 ...
Page 43: ...Next build the support for the light sensor ...
Page 80: ...Page 85 Make sure the bump on the long pin is up against the 4u beam ...
Page 82: ......
Page 84: ...Page 89 ...
Page 85: ...Step 14 is similar to Step 11 take a deep breath and go slowly ...
Page 87: ...Page 91 ...
Page 88: ...Page 92 Make sure that the two sides are at the same angle They should mirror each other ...
Page 89: ...Page 93 Page 94 ...
Page 90: ...Structural Support Page 95 ...
Page 91: ...Idler Wheel Page 96 ...
Page 92: ...Page 97 Drive Motor ...
Page 93: ...While you re putting the motor in hold on to the worm gear so it doesn t slip off Page 98 ...
Page 94: ...Grabber Arm Motor ...
Page 95: ...Page 99 ...
Page 96: ...Page 100 RCX Attach the RCX on both sides as shown Page 101 ...
Page 158: ......
Page 159: ...Page 175 The 16t gears are nestled inside the tread wheels ...
Page 160: ...Page 176 ...
Page 161: ...Page 177 Attach the motors to output A and output C as shown Page 178 ...