phil@RICE.ARPA (William LeFebvre) (04/19/85)
I just saw some messages fly by about the elusive C/A/T codes, and I think I might have something that will be of interest. After making a similar request several years ago, I got a copy of the following manual page from Henry Spencer of U of T. It is a manual page that has a rather thorough description of the codes understood by a Graphic Systems C/A/T phototypesetter. Just as a clarification, the original troff text processor produces codes for a C/A/T phototypesetter. The device-independent troff, which is sold as a separate system by AT&TBL, produces completely different output. The two should not be confused. I have attached a shar file to the end of this message that contains the manual page. Use your favorite shell to unpack it. Enjoy! William LeFebvre Department of Computer Science Rice University <phil@Rice.arpa> -------------------- Cut along dotted line -------------------- echo 'Start of distribution file cat.5:' echo 'Extracting cat.5...' sed 's/^X//' > cat.5 << '/' X.TH CAT 5 local writeup X.DA 4 April 1981 X.SH NAME Xcat \- C/A/T phototypesetter code X.SH DESCRIPTION XThe Graphic Systems C/A/T phototypesetter is driven by sending it a Xsequence of one-byte codes Xwhich specify characters, fonts, sizes, and other control information. X.PP XThe C/A/T's basic unit of length is 1/432 of an inch (6 units to a Xtypesetter's ``point''). XThe quantum of horizontal motion is one unit. XThe quantum of vertical motion is three units (1/144 of an inch, 1/2 point). X.PP XThe top two bits of the code classify it as one of three major Xtypes: Xan \fIescape\fR code (top bit 1), Xa \fIflash\fR code (top bits 00), Xor a control code (top bits 01). XA code of all zeros is ignored; a code of all ones is illegal. X.PP XA flash code specifies flashing one of 63 characters, as given by the Xremaining six bits. XSince this is not enough to specify all possible characters, or even Xall characters in a single font \(em there are 108 per font \(em Xvarious control codes (described later) select a font and either Xthe Lower or Upper half of the font. XThe Lower half is the first 63 characters of the font; the Upper Xhalf is the remaining 45. XA flash code of 46 or higher in the Upper half is illegal. X.PP XAn escape code specifies horizontal motion. XThe size of the motion, in horizontal quanta, is the one's-complement Xof the low seven bits of the code. XThe direction of the motion is set by control codes. XHitting the right or left margin limit switch is illegal and will Xcause the machine to stop. XThe machine starts out, after initialization, hard against the left Xmargin limit switch; an initial escape of 16 units \fImust\fR Xbe given before starting work, and the position after this motion Xshould be the limit of all future leftward motions. XFrom this point, the distance to the right margin limit switch Xis about 7.5 inches. X.PP XA code with the top three bits 011 is a \fIlead\fR code, Xspecifying vertical motion. XThe remaining five bits are the one's-complement of the size of Xthe motion, in vertical quanta. XThe direction of motion is set by control codes. XThe amount of vertical motion is, in principle, limited only by Xrunning off the paper in the upward direction and by the limited Xcapacity of the output cartridge in the downward direction. X.PP XA code with the top four bits 0101 is a size-change code, which Xspecifies movement of the lens turret and the doubler lens to Xchange point size. XThese codes are as follows: X.PP X.RS X.nf X.ta 2c XSize Code X X6 0101\|1000 X7 0101\|0000 X8 0101\|0001 X9 0101\|0111 X10 0101\|0010 X11 0101\|0011 X12 0101\|0100 X14 0101\|0101 X16 0101\|1001 X18 0101\|0110 X20 0101\|1010 X22 0101\|1011 X24 0101\|1100 X28 0101\|1101 X36 0101\|1110 X.DT X.fi X.RE X.PP XSize changes involving the doubler lens alter the horizontal position. XChanges from single to double sizes should be followed by a forward Xescape of 55 quanta; changes from double to single sizes should be Xfollowed by a reverse escape of 55 quanta. XThe single sizes are 6, 7, 8, 9, 10, 11, 12, 14, and 18; Xthe double sizes are 16, 20, 22, 24, 28, and 36. X.PP XThe control codes with the top four bits 0100 specify miscellaneous Xcontrol codes, not all of which have valid meanings. XThey are: X.PP X.RS X.ta 6c X.nf Xinitialize 0100\|0000 Xstop 0100\|1001 Xupper rail 0100\|0010 Xlower rail 0100\|0001 Xupper mag 0100\|0011 Xlower mag 0100\|0100 Xtilt up 0100\|1110 Xtilt down 0100\|1111 Xupper font half 0100\|0110 Xlower font half 0100\|0101 Xescape forward 0100\|0111 Xescape backward 0100\|1000 Xlead forward 0100\|1010 Xlead backward 0100\|1100 X.fi X.DT X.RE X.PP XThe \fIinitialize\fR code causes leftward motion to the left margin limit Xswitch, Xand sets the following modes: Xescape forward, lead forward, lower font half, Xlower rail, lower mag, tilt down. XNote that the left margin limit switch does not define a precise Xposition, and hence reinitializing the machine Xwill destroy precise left-margin alignment. X.PP XThe \fIstop\fR code stops the machine, which must be manually Xrestarted (normally after changing output cartridges); Xthis code should be used only at the end of a run. X.PP XFonts are selected by the combination of \fIrail\fR, \fImag\fR, and \fItilt\fR. XThe tilt codes do not exist on the 4-font C/A/T; this is the only user-visible Xdifference between the 4-font and 8-font machines. XThe correspondence between rail/mag/tilt and font number is as follows: X.PP X.RS X.nf X.ta 2c 4c 6c 8c Xrail mag tilt 4font 8font X Xlower lower up 1 1 Xlower lower down 1 2 Xupper lower up 2 3 Xupper lower down 2 4 Xlower upper up 3 5 Xlower upper down 3 6 Xupper upper up 4 7 Xupper upper down 4 8 X.DT X.fi X.RE X.PP XA complete C/A/T file should begin with an \fIinitialize\fR code following Xby an \fIescape\fR-16 code, Xand should end with 14 inches of trailer and a \fIstop\fR code. X.SH HISTORY XThis manual page written at U of T by Henry Spencer. X.SH BUGS XThe documentation and the hardware disagree on the initial tilt setting; Xthe above describes the hardware. X.PP XIt's not the fastest or most modern typesetter. / echo 'Distribution file cat.5 complete.'