Chapter 2. ICL 5
Verbs as Subroutines
You can think of verbs as camera functions or subroutines. A single-verb
instruction such as
flash()
or
clear_until_trig()
can be expanded into a
sequence of camera-specific instructions. Most verbs are directions for the
camera to perform the function immediately using the current settings.
Begin and End
There are two commands required for every script, if either command is
missing, the program sets an error code.
script_begin();
script_end(contin_clear);
script_begin
specifies the start of the program. Anything appearing before
script_begin
is considered whitespace and is ignored by the script processor.
Therefore you can insert comments at the head of a script without using
comment delimiters.
script_end
specifies that the script is finished, transmit to the camera. If
script_end
appears, the script processor will not continue to the null-
terminating character at the end of the input string.
Looping Verbs
Use the following verbs for looping:
loop_begin(loop_count);
loop_end();
All instructions occurring between these two verbs are executed
loop_count
times. The mechanism that performs this communication is camera specific. On
most systems, built-in commands are used to perform looping. However, on
some systems, the instructions inside the loop may be duplicated
loop_count
times. You can nest loops, up to 16 deep. For every
loop_begin
function, there
must be one
loop_end
instruction. If you create a different number of
loop_begin
and
loop_end
, it generates an error, and the script fails.
Shift Verbs
A shift verb tells the camera to immediately shift one or more lines in the
parallel register using the currently selected shifting mode.
A
shift_mode
verb changes the current state of the camera and specifies the
clocking method used during exposure (MPP or normal). The new state is
implemented the next time that the shift verb is executed.
shift_mode_is();
shift_mode_is_alt();
shift_mode_ism();
shift_mode_ism_alt();
shift_mode_s();
shift_mode_s_alt();
shift_mode_sm();
shift_mode_sm_alt();
Note that script_begin initializes the shift mode to shift_mode_is.