Manual

Using ACL Variables 10-3
executes Download Sequence 50 until the value of variable 5 is greater than 20. For a
less-than-or-equal-to test:
V> 5, 20; XU 50, 0, 1;
executes Download Sequence 50 until the value of variable 5 is less than or equal to 20.
(Note the 0 in the XU command; it means "execute until the V> is false".)
Indirection And Indexing
A form of "indirection" or "array indexing" is also available. For example, suppose variable
3 contains the value 17. Then the command:
OV @3;
outputs the contents of variable 17.
Suppose variable 6 contains the value 12, and variable 12 contains 100. Then MA @@6,
20; moves to the coordinate 100, 20.
You may put up to 4 "@" characters before a number.
Numeric Representation Errors
Within the Automove System, the value of a variable is represented in 32 bits of memory.
The first 16 bits are the integer portion, generally interpreted as a binary 2's-complement
value. The last 16 bits are the binary fractional portion, with a fixed binary point between
the integer and fractional portions.
Because of this representation, the fractional part is only accurate to one part in 2^16, or one
part in 65536. This translates to about 7% error in the number 0.0001, which is the smallest
nonzero number which can be parsed and input into the Automove System.
The representation error becomes significant for numbers whose values are much smaller
than 1.0. For example:
VS 0, 0.0001; V* 0, 10000; OV 0;
gives the result 1.0681 because of the error in representing 0.0001. Therefore, to preserve
accuracy in numerical computations using variables, be sure that your intermediate and final
results are not substantially smaller than 1.0.
Arithmetic Errors
Addition and subtraction of variable values are performed without any numerical errors; i.e.,
all 32 bits of the result are correct.