The troff in this directory (known as a.out) is a troff that produces machine-independent output. It requires a file of descriptive information about the particular typesetter you have in mind, and produces output parameterized for that device. Thus: a.out -T202 ... produces output for the mergenthaler linotron 202. (This is the default.) To make this work, one needs to create a set of device and font descriptions in the directory /usr/lib/font/devxxx where "xxx" is your device name. Currently supported devices are 202 mergenthaler 202 using our software aps autologic aps5 cat gsi cat (not really working at present) The file "DESC" contains information about the device itself and the character set. The file dev202/DESC is a good example; follow the format closely. In addition, each font needs a description of its characters, width and device-driving codes; see dev202/R and S for typical examples. The program "makedev" will convert these text descriptions into a binary form that the a.out can slurp up in a single gulp during initialization; these wind up in dev202/DESC.out (which includes default font info) and XX.out for info about font XX. The second half of the job is to write a post-processor that converts the more or less machine-independent a.out output into specific codes for your favorite typesetter. d202.c is the driver for the 202; it will serve as a useful prototype. In particular, it contains a precise description of the output language. Other postprocessors are daps aps5 dcat graphic systems CAT (not really up to date) tc tektronix 4014 hc hp2621 (mainly for crude graphics) ta prints ascii on ordinary terminals (crudely) dcan driver for Imagen/Canon laser printer d8400 untested driver for compugraphics 8400 The 202 driver writes onto /dev/202 in the same way that old troff writes on /dev/cat; to get its output on the std output, use, e.g., d202 -t ... >file. One can always simply run a.out and look at the output; it is guaranteed to be ascii text and thus safe to edit, grep, etc. (Since it is ascii, it is also guaranteed to be quite voluminous.) On our system, /usr/bin/troff is actually a shell program that detects -Txxx arguments; the current default is 202. Putting output codes into the font description files seems like the right thing to do but I'm not happy yet. Accordingly, the formats of any or all of the files described here are subject to drastic change; hang loose. To clear up one potential misapprehension, the code in this directory has not been retrofitted to make an nroff. That would require major surgery, primarily on n6.c and n10.c. As it says in the Unix warranty: "There is no warranty of merchantability nor any warranty of fitness for a particular purpose nor any other warranty, either express or implied, as to the accuracy of the enclosed materials or as to their suitability for any particular purpose. Accordingly, Bell Telephone Laboratories assumes no responsibility for their use by the recipient. Further, Bell Laboratories assumes no obligation to furnish any assistance of any kind whatsoever, or to furnish any additional information or documentation." Nevertheless, I will try to answer questions in cases of dire necessity. Suggestions and other comments would be appreciated. Brian W. Kernighan