CAM(OPCS)		Optical Printer Control System		CAM(OPCS)

    NAME
        cam - shoot frames on the camera

    USAGE
	cam [value]          # run camera so many frames fwd or reverse

    EXAMPLES
	cam 12               # run camera 12 frames forward
	cam -12              # run camera 12 frames in reverse
	cam 54'11            # run camera 54 feet 11 frames
	cam >0               # run camera TO counter frame zero
	cam >-32             # run camera TO counter frame -32
	cam >34'8            # run camera TO counter 34 ft 8 frms
	cam >(108/(10+2))    # run camera 9 frames (See SYNTAX(OPCS))

    DESCRIPTION
	This command will shoot the specified frames on the camera
	using the current shutter speed set by SPD(OPCS). The current
	shutter speed is always displayed at the top/right of the screen.

	Negative numbers will shoot in reverse. So -100 will run the
	camera in reverse 100 frames.

	Values can also be specified as feet/frames (e.g. 2'15), or as
	a mathematical expression (as shown above).

	If the value is preceded by '>', this indicates the camera
	should "go to" the absolute camera frame counter value.

	For fast windoffs that don't involve exposing film, use SEEK(OPCS)
	which uses the camera's slewing speed and caps the fader before
	moving the camera.

    FADE/DX
        If there are any pending fades or dissolves, the fader will FIRST
        move to its next position before the camera exposes a frame.

    FEED
        If FEED(OPCS) is enabled, the motors will /first/ move to position
        before the camera exposes a frame. (Similar to fade/dx)

    AUTOFILT
        If AUTOFILT(OPCS) is enabled, the camera will first expose the filter
        in the gate before moving the filter wheel. (Like the projector, what
	you see in the gate before shooting is what's about to be shot)

    ALLSTOP
        Hitting the ALLSTOP key (usually the (`) key) will halt the motors
        at the nearest frame. ALLSTOP is safe during shooting; it will not
        affect exposure, and always leaves the shutter closed after stopping.
        The allstop key can be redefined by ALLSTOP(OPCSDEFS).

    BUCKLE/VIEWER
        The camera WILL NOT RUN if the buckle is tripped. When exposing film,
        it also won't run if the viewer is open. If either condition occurs
        while the camera is shooting, the motors will stop with an error at 
        the nearest frame, similar to ALLSTOP.

        If 'hardware no' is in effect, the buckle/viewer state is ignored,
        so that the OPCS software can run on remote computers that are not
        physically connected to an optical printer.

    TENSION MOTORS
        Before the camera or projector move, the appropriate tension motors
        are enabled, to ensure take-ups are in correct modes for film motion.

    COUNTER OVERFLOWS
        The software internally manages frame numbers in 32-bits,
        and therefore can handle values in the range of +/-2 billion.

        However, the frame counter /display/ has a limited number of
	characters it can display, causing it to 'clock over' like
	the odometer of a car.

        For 'bigcounters yes' (See BIGCOUNTERS(OPCSDEFS)), the limit
        is 6 digits, i.e. -99,999 thru 999,999.

        For 'bigcounters nixie', in K2.10 and up supports 8 digits,
        i.e. -9,999,999 thru 99,999,999.

        In these cases where the counter overflows, it 'clocks over'
        to zero. In version K2.10 and up, a hash flag appears at the
        left of the counter display, warning of counter overflow, e.g.:

             

        ..or in "ASCII art", that would be:

    ######################################################################
    ####  ##  ##                                                        ##
    ###  ##  ##                                                 ####    ##
    ##  ##  ##  #                                              ##  ##   ##
    ## ##  ##  ##                                             ##    ##  ##
    ####  ##  ##                                              ##    ##  ##
    ###  ##  ##                                               ##    ##  ##
    ##  ##  ##  #                                              ##  ##   ##
    ## ##  ##  ##                                               ####    ##
    ####  ##  ##                                                        ##
    ######################################################################

        Similarly, negative underflows (counts below zero) clock to
        zero displaying a negative sign prefix.

        For 'bigcounters yes', counter progression works this way, where
        '//' represents the hashmark:

                Actual Frame   'bigcounter yes' Display
                ------------   ------------------------
                 -100,002             //   -2  <-- wraps to -2, shows hashmark
                 -100,001             //   -1  <-- wraps to -1, shows hashmark
                 -100,000             //    0  <-- wraps to -0, shows hashmark
                  -99,999             -99,999
                  -98,999             -98,999
                     :                      :
                    -1                     -1
                     0                      0
                     1                      1
                     :                      :
                  999,998             999,998
                  999,999             999,999  
                1,000,000             //    0  <-- wraps to 0, shows hashmark
                1,000,001             //    1  <-- wraps to 1, shows hashmark
                     :                      :

        For 'bigcounters nixie', in version K2.10 and up, counter progression
        works this way:

               Actual Frame  'bigcounters nixie' Display
               ------------  ---------------------------
                     :                   :
              -10,000,002       //      -2    <-- wraps to -2, shows hashmark
              -10,000,001       //      -1    <-- wraps to -1, shows hashmark
              -10,000,000       //      -0    <-- wraps to -0, shows hashmark
                -9,999,999      -9,999,999
                -9,999,998      -9,999,998
                     :                   :
                    -1                  -1
                     0                   0
                     1                   1
                     :                   :
               99,999,998       99,999,998
               99,999,999       99,999,999
              100,000,000       //       0    <-- wraps to 0, shows hashmark
              100,000,001       //       1    <-- wraps to 1, shows hashmark
              100,000,002       //       2    <-- wraps to 2, shows hashmark
                     :                   :

        This 'clock over' behavior is only true of the display; internally
	the software still keeps track of the /actual/ positions, so commands
	like 'cam >2000000' will still work correctly.

        Note that 'bigcounters small' and 'bigcounters mocon' does not
        clip digits at all, and can display the full capabilities of 32bit
        values.

      > Use 'bigcounters small' to maximize operator's screen history
                                (21 lines of screen history)
      > Use 'bigcounters mocon' to monitor all channels for mocon moves.
                                (18 lines of screen history)
      > Use 'bigcounters nixie' for normal printing and medium sized counters.
                                (14 lines of screen history)
      > Use 'bigcounters large' for normal printing and largest counters.
                                (12 lines of screen history)

    

    SEE ALSO
        -- Operator Commands (OPCS) --
	PRO / CAM  - run frames on the projector / camera
	RAT, REP   - tandem shooting (interlock)
	RES        - reset computer's pro/cam counters to new values
	CHK        - check if the pro/cam/shu counters are at certain values
	SEEK       - run the camera/projector at slewing speeds
	FEED       - feed motion control moves to motors every camera frame
	VELREP     - special purpose velocities for tandem shoots (eg. YCM)
	AUTOFILT   - enable/disable the auto-wedging filter wheel

	SHU        - send the fader shutter to absolute position in degrees
	OPN, CLS   - open/close the fader shutter
	DXI, DXO   - set up a dissolve
	FDI, FDO   - set up a fade

	MATH(DOCS)     - math expressions (for use in frame specifications)
	SYNTAX(OPCS)   - online calculator and OPCS math expression syntax
	MOTORS         - enable/disable motor hardware for debugging scripts

        -- Setup/Definitions (OPCSDEFS) --
	SPDINTERP      - configure exposure speed interpolations
	SPD            - configure camera's default exposure and slewing speeds
	RAMP           - configure camera's maximum accelerations and velocities
        MRP            - configure 'maximum ramp pulses' for shutter motors
        PPR            - configure 'pulses per revolution' for a motor

	BIGCOUNTERS    - enable/disable the large counter display
	FPF            - configure the 'frames-per-foot' (16mm, 35mm, Vista..)
	BUCKLE, VIEWER - configure buckle/viewer sensor's ports and bitmasks
	TENSION        - configure tension motors
	ALLSTOP        - define the ALLSTOP key
	HARDWARE       - enable/disable using printer hardware

    HISTORY
        This command was in the first version of OPCS (Apple ][+).

    ORIGIN
	Gregory Ercolano, Los Feliz California 12/18/89
© Copyright 1997 Greg Ercolano. All rights reserved.