The C/A/T's basic unit of length is 1/432 of an inch (6 units to a typesetter's ``point''). The quantum of horizontal motion is one unit. The quantum of vertical motion is three units (1/144 of an inch, 1/2 point).
The top two bits of the code classify it as one of three major types: an escape code (top bit 1), a flash code (top bits 00), or a control code (top bits 01). A code of all zeros is ignored; a code of all ones is illegal.
A flash code specifies flashing one of 63 characters, as given by the remaining six bits. Since this is not enough to specify all possible characters, or even all characters in a single font --- there are 108 per font --- various control codes (described later) select a font and either the Lower or Upper half of the font. The Lower half is the first 63 characters of the font; the Upper half is the remaining 45. A flash code of 46 or higher in the Upper half is illegal.
An escape code specifies horizontal motion. The size of the motion, in horizontal quanta, is the one's-complement of the low seven bits of the code. The direction of the motion is set by control codes. Hitting the right or left margin limit switch is illegal and will cause the machine to stop. The machine starts out, after initialization, hard against the left margin limit switch; an initial escape of 16 units must be given before starting work, and the position after this motion should be the limit of all future leftward motions. From this point, the distance to the right margin limit switch is about 7.5 inches.
A code with the top three bits 011 is a lead code, specifying vertical motion. The remaining five bits are the one's-complement of the size of the motion, in vertical quanta. The direction of motion is set by control codes. The amount of vertical motion is, in principle, limited only by running off the paper in the upward direction and by the limited capacity of the output cartridge in the downward direction.
A code with the top four bits 0101 is a size-change code, which specifies movement of the lens turret and the doubler lens to change point size. These codes are as follows:
SizeCode 6 01011000 7 01010000 8 01010001 9 01010111 1001010010 1101010011 1201010100 1401010101 1601011001 1801010110 2001011010 2201011011 2401011100 2801011101 3601011110
Size changes involving the doubler lens alter the horizontal position. Changes from single to double sizes should be followed by a forward escape of 55 quanta; changes from double to single sizes should be followed by a reverse escape of 55 quanta. The single sizes are 6, 7, 8, 9, 10, 11, 12, 14, and 18; the double sizes are 16, 20, 22, 24, 28, and 36.
The control codes with the top four bits 0100 specify miscellaneous control codes, not all of which have valid meanings. They are:
initialize01000000 stop 01001001 upper rail01000010 lower rail01000001 upper mag01000011 lower mag01000100 tilt up01001110 tilt down01001111 upper font half01000110 lower font half01000101 escape forward01000111 escape backward01001000 lead forward01001010 lead backward01001100 software cut01001011
The initialize code causes leftward motion to the left margin limit switch, and sets the following modes: escape forward, lead forward, lower font half, lower rail, lower mag, tilt down. Note that the left margin limit switch does not define a precise position, and hence reinitializing the machine will destroy precise left-margin alignment.
The stop code stops the machine, which must be manually restarted (normally after changing output cartridges); this code should be used only at the end of a run.
Fonts are selected by the combination of rail, mag, and tilt. The tilt codes do not exist on the 4-font C/A/T; this is the only user-visible difference between the 4-font and 8-font machines. The correspondence between rail/mag/tilt and font number is as follows:
rail magtilt4font8font lower lowerup11 lower lowerdown12 upper lowerup23 upper lowerdown24 lower upperup35 lower upperdown36 upper upperup47 upper upperdown48
The software cut code should not be issued to the hardware, but is used by local spooling software to indicate places where it is legal for the spooler to break output between pages. This code should be followed by an initialize code.
A complete C/A/T file should begin with an initialize code followed by an escape-16 code, and should end with 14 inches of trailer and a stop code.
It's not the fastest or most modern typesetter.