Understanding how ANSI and machine carriage controls are used

In many environments (including mainframes and most minicomputers), printable data normally contains a carriage control character. The carriage control character acts as a vertical tab command to position the paper at the start of a new page, at a specified line on the page, or to control skipping to the next line. The characters can be one of two types: ANSI carriage control or machine carriage control.

  • ANSI carriage control characters
    • The most universal carriage control is ANSI, which consists of a single character that is a prefix for the print line. The standard ANSI characters are:
      ANSI Command
      space Single space the line and print.
      0 Double space the line and print.
      - Triple space the line and print.
      + Do not space the line and print.
      1 Skip to channel 1 (the top of the form, by convention).
      2–9 Skip to hardware-defined position on the page.
      A,B,C Defined by a vertical tab record or FCB.
      All ANSI control characters do the required spacing before the line is printed. ANSI controls can be encoded in EBCDIC (CCTYPE=A) or in ASCII (CCTYPE=Z).
  • Machine carriage control characters
    • Machine carriage controls were originally the actual hardware control commands for IBM printers and are often used on non-IBM systems. Machine controls are literal values, not symbols. They are not represented as characters in any encoding and, therefore, machine controls cannot be translated. Typical machine controls are:
      Machine Command
      X'09' Print the line and single space.
      X'11' Print the line and double space.
      X'19' Print the line and triple space.
      X'01' Print the line and do not space.
      X'0B' Space one line immediately (do not print).
      X'89' Print the line and then skip to channel 1 (top of form, by convention).
      X'8B' Skip to channel 1 immediately (do not print).
      Machine controls print before they do any required spacing. There are many more machine control commands than ANSI. Carriage controls can be present in a print file or not, but every record in the file must contain a carriage control if the controls are to be used. If the file contains carriage controls, but CC=NO is specified to ACIF, the carriage controls are treated as printing characters. If no carriage controls are specified, the file is printed as though it is single spaced.