Moog Animatics SmartMotor™ Developer's Guide,Rev. L
Page 348 of 909
C{number}
Command Label
APPLICATION: Program execution and flow control
DESCRIPTION: Program statement label
EXECUTION: N/A
CONDITIONAL TO: N/A
LIMITATIONS: Labels C0…C999 are permitted
READ/REPORT: N/A
WRITE: N/A
LANGUAGE ACCESS: N/A
UNITS: N/A
RANGE OF VALUES: N/A
TYPICAL VALUES: N/A
DEFAULT VALUE: N/A
FIRMWARE VERSION: 5.x and later
COMBITRONIC: N/A
DETAILED DESCRIPTION:
C{number} is a statement label, where "number" is a value between 0 and 999. Statement
labels provide the internal addressing required to support the GOSUB{number} and GOTO
{number} language commands. For example, GOTO1 directs the program to label C1,
whereas GOSUB37 directs the program to the subroutine that starts at label C37. You can also
use labels to simply enhance program clarity. Statement labels may be placed anywhere
within a program except in the middle of an expression.
NOTE: Program labels work by using a jump table in the header of the compiled
program. The header contains the location of every label from 0 up to the highest
label value used.
EXAMPLE: (consider these two programs)
C0
END
and
C999
END
Both programs behave exactly the same. However, the first compiled program (C0...END) will
be much smaller than the second (C999...END) because the second contains all the label
locations from 0-999.
The program header is read whenever the SmartMotor™ powers up or is reset. This means
that the SmartMotor knows how to jump to any label location, even if the program has never
been run, and start executing the program from there. This is a common means of making a
single program with several routines that can be invoked on demand from a host.
Part 2: Commands: C{number}