OPCS(OPCS) Optical Printer Control System OPCS(OPCS)
NAME
opcs - optical printer control system
USAGE
opcs [startup-file]
INTRO
The OPCS software is command oriented, executing commands like
a unix shell. The upper half of the screen is for film counters
and positions, the lower half for user entered commands.
There's at least two screen styles; 'bigcounters' which takes up
half the screen, and 'small counters' which takes up much less,
the latter leaving more room for the user's command history.
The heart of the software is the stepper motor driver routine
which can control 4 axes per up to 3 parallel ports on the back
of the computer.
STARTUP
By default 'opcs' loads the OPCSDEFS.OPC file that is in the
current directory. If the optional [startup-file] is specified,
that file is loaded as the opcsdefs.opc file instead.
The OPCSDEFS.OPC file contains special 'OPCSDEFS' commands that
set up the software, setting things like motor speeds, ports
for sensing buckle/viewer, defining motor hardware settings,
custom commands, etc.
To list all the OPCSDEFS.OPC commands, run 'man -k OPCSDEFS:'
and then you can focus on each one of the commands by running
'man' followed by the name of the command (e.g. 'man ramp')
COMMAND LINE EDITING KEYS
In OPCSK200 (released August 2020), new command line editing
features were added, to make it easier for operators to run
and edit commands, and access a command line history to retype
previously entered commands.
Edit keys are similar to modern command shells:
Up Arrow -- previous line in command history (^P)
Dn Arrow -- next line in command history (^N)
Lt Arrow -- move reverse one char on current line (^B)
Rt Arrow -- move forward one char on current line (^F)
Backspace -- backspace and delete (^H)
Delete -- delete character (^D)
Home -- move to start of current line (^A)
End -- move to end of current line (^E)
Ctrl-Home -- jump to top of command history
Ctrl-End -- jump to bottom of command history (current line)
Ctrl-Left -- word left
Ctrl-Right -- word right
^K -- clear to end of line
^U -- clear current line (hit again to 'undo')
^V -- enter next character literally
ESC -- clear current line (hit again to 'undo')
F3 -- re-type last command
F4 -- re-run last command (F3 + Enter)
OLD MS-DOS STYLE EDITING KEYS
In the older OPCS releases (K100), only the MS-DOS editing keys
were available, and were kinda funky to use, e.g.
F1 -- Repeats the letters of the last command line, one by one
Rt Arrow -- Same as F1
Ins -- Enables you to insert characters into the line
Del -- Deletes a character from the line
F2 -- Copies all characters from the last command buffer
up to, but not including, the next character you type
F3 -- Copies all remaining characters from the preceding command line
F4 -- Usually re-programmed by OPCS autoexec.bat to re-run last command
F5 -- Moves current line to buffer but doesn't execute it
ONLINE DOCUMENTATION
Use man -k opcs to get a list of all OPCS related documentation,
or man -k opcs: for just the OPCS commands themselves.
The same goes for 'man -k opcsdefs:' which will list just OPCSDEFS
commands that are available.
From the print out of these commands, you can determine which commands
to pull up a full man page on. Just type 'man' followed by the name of
the command you want to know more about:
man cam # find out more about the CAM(OPCS) command
Using this technique, you can guide yourself through all the OPCS
commands, and how they interact.
All the OPCS documentation pages follow a similar format. EXAMPLE:
................................................................................
: :
: CAM(OPCS) Optical Printer Control System CAM(OPCS) :
: | | | :
: | | The name of the software package :
: | | :
: | The section :
: | :
: The command or subject being documented. :
: :
: The above shows an example of a documentation page's header. :
: Often there are commands with the same name in different sections. :
: For example "SPD", which is both an operator command: SPD(OPCS), :
: and an opcsdefs.opc setup file command: SPD(OPCSDEFS). :
: Both manual pages will be displayed when you invoke man spd. :
: :
: NAME - This usually repeats the name of the command followed :
: by a one line description of the command. :
: :
: USAGE - This usually shows a syntactical representation of how :
: to use the command. :
: :
: EXAMPLES - Often literal examples are shown for commands that :
: may have a complex syntax. Throughout the MAN pages, literal examples :
: are usually in bold or underlined type. :
: :
: DESCRIPTION - Usually a few paragraphs, often accompanied by :
: examples describe the command and its functions. :
: :
: FILES - Any files relevant to the command documented. :
: :
: SEE ALSO - List of related commands, e.g. COMMAND(SECTION). :
: :
: BUGS - If there are known bugs or 'gotchyas' with a command, :
: they are listed here. These entries can be very helpful to avoid :
: problems you may run into later. :
:...............................................................................:
Documentation pages are viewed with the MAN command, and texts may
be customized by the end users if they wish.
TIPS
For additional help on how to formulate commands, and shortcuts for
typing commands, refer to SYNTAX(DOCS) (i.e. 'man syntax'), which
describes the online calculator, command stacking, and other shortcuts.
ERRORS
Most errors are self explanatory, but some need extra explanation,
covered below:
FADER NOT AT ### DEGREES FOR FDI/FDO/DXI/DXO
When trying to do a fade/dx in, the shutter must first be
completely closed, and when trying to do a fade/dx out, the shutter
must be completely open.
FILM BUCKLE or VIEWER OPEN
HIT ENTER to CONTINUE or ALLSTOP to ABORT:
While trying to run the camera, the film buckle switch has been
tripped or the viewer is open.
RECURSION ERROR
The RUN command prevents you from running a script that is
already running, to prevent infinite recursion.
A run script calling itself, or a child script that calls a
parent is considered 'recursion'. Here a script calls itself:
# fred.run
cam 1 pro 1
run fred.run <-- FAILS HERE
In this example, a child script calls one of its parents:
# test1.run
fdi 10 rep 10
run test2.run
# test2.run
fdo 10 rep 10
run test1.run <-- FAILS HERE
The way to get the desired result
is to remove this line, and start
the scripts by executing e.g.:
DO 12 RUN TEST1.RUN
NESTED TOO DEEP
Too many run script levels. When a script calls another script,
that is '2 levels' of nesting. Up to 10 levels of nesting are
allowed before this error occurs.
STOPPED AT LINE (#) OF (#)>(filename)
An error occurred in a run script, and this message indicates the
line number, nesting level, and the name of the script where the
initial error occurred. One message per nesting level is printed,
with the FIRST MESSAGE being the script containing the error.
INVALID REPEAT COUNT
In a DO command, the value specified was negative, or not a number.
SPEED OUT OF RANGE OR INVALID
In a SPD command, the number specified was too low (0 or below)
or too high. Normally, the software cannot run the motors slower
than a 10 second exposure speed, but depends on the motor ramping
and acceleration values. Have you recently changed them?
UNKNOWN OPCSDEFS COMMAND
A command in an OPCSDEFS file was invalid.
INVALID FEET/FRAMES
A specified feet/frames value was invalid. Usually, the frames
value exceeded the number of frames in a foot.
MISSING ARGUMENT AFTER 'command'
The software expected an argument where one wasn't supplied.
SYNC FAULT
The software was not able to keep up with the hardware.
Get a faster computer, seriously.
This is a fatal error where the motors probably stalled because
the software couldn't feed velocities fast enough to the motors,
i.e., if the cpu is too slow. Or some other hardware/driver is
using up the cpu by generating interrupts.
This error can also occur when debugging is enabled; debugging
messages can sometimes slow the software down enough to where
it can't update the motors quickly enough.
SPD: SPEED TOO SMALL (IGNORED)
The resulting speed set by the SPD(OPCS) command would have been
a value too small.
FILES
\OPCS\BIN\OPCS.EXE - the executable program
\OPCS\BIN\MAN.EXE - online documentation program
\OPCS\MAN\* - online documentation pages
OPCSDEFS.OPC - the 'start up' definition file
*.OPC - other opcs definition files
*.RUN - RUN(OPCS) scripts
*.LOG - LOG(OPCS) files
*.VRP - 'VELREP(OPCS)' files
ENVIRONMENT VARIABLES
OPCSDEFS=<hex> - pointer in memory to OpcsDefs structure
OPCSLOOP=# - DO loop iteration (0 if none)
OPCS_NOMOTOR_FRAME_DELAY=#
- Delay for simulated frames when 'motors off'
SEE ALSO
QUICKREF - OPCS camera operator quick reference/tutorial
SYNTAX - Online calculator and OPCS math expression syntax
OPCSSETUP - OPCS setup/installation procedures
OPCSHARDWARE - OPCS hardware specifics (wiring, etc)
VERSIONS - OPCS version information (a list of all revs)
man -k OPCS: - list all OPCS operator commands
man -k OPCSDEFS: - list all OPCSDEFS file commands
ORIGIN
Gregory Ercolano, Los Feliz California 01/18/91