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
© Copyright 1997 Greg Ercolano. All rights reserved.