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 setup the 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 the 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. 'math syntax'), which describes the online calculator, command stacking, and other shortcuts. ♀ ERRORS Most errors are self explanitory, 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 completly closed, and when trying to do a fade/dx out, the shutter must be completly 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, ie. cpu is too slow. Or some other hardware/driver is using up the cpu, 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 \OPCSK200\BIN\OPCS.EXE - the executable program \OPCSK200\BIN\MAN.EXE - online documentation program \OPCSK200\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) 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