summaryrefslogtreecommitdiff
path: root/dviware/quicspool/man/cat.l
blob: cac7d3a8149dd2271cb93a882217a50bc2db3de4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
.\" $Header: cat.l,v 1.1 88/01/15 12:58:13 simpson Rel $
.\" $Log:	cat.l,v $
.\" Revision 1.1  88/01/15  12:58:13  simpson
.\" initial release
.\" 
.\" Revision 0.1  87/12/11  17:56:49  simpson
.\" beta test
.\" 
.TH CAT 5 TRW
.UC 4
.SH NAME
cat \- GSI CAT-4/8 phototypesetter code
.SH DESCRIPTION
The Graphic Systems Industries CAT phototypesetter is driven by sending it a
sequence of one-byte codes
which specify characters, fonts, sizes, and other control information.
.PP
The CAT'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).
.PP
The top two bits of the code classify it as one of three major
types:
an 
.I escape
code (top bit 1),
a 
.I 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.
.PP
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
.I lower
or
.I 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.
.PP
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
.I 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.
.PP
A code with the top three bits 011 is a
.I 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.
.PP
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:
.PP
.RS
.nf
.ta 2c
Size	Code

6	0101\|1000
7	0101\|0000
8	0101\|0001
9	0101\|0111
10	0101\|0010
11	0101\|0011
12	0101\|0100
14	0101\|0101
16	0101\|1001
18	0101\|0110
20	0101\|1010
22	0101\|1011
24	0101\|1100
28	0101\|1101
36	0101\|1110
.DT
.fi
.RE
.PP
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.
.PP
The control codes with the top four bits 0100 specify miscellaneous
control codes, not all of which have valid meanings.
They are:
.PP
.RS
.ta 6c
.nf
initialize	0100\|0000
stop	0100\|1001
upper rail	0100\|0010
lower rail	0100\|0001
upper magazine	0100\|0011
lower magazine	0100\|0100
tilt up	0100\|1110
tilt down	0100\|1111
upper font half	0100\|0110
lower font half	0100\|0101
escape forward	0100\|0111
escape backward	0100\|1000
lead forward	0100\|1010
lead backward	0100\|1100
.fi
.DT
.RE
.PP
The
.I 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.
.PP
The
.I 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.
.PP
Fonts are selected by the combination of
.IR rail ,
.IR magazine ,
and
.IR tilt .
The tilt codes do not exist on the 4-font CAT;  this is the only user-visible
difference between the 4-font and 8-font machines.
The correspondence between rail/magazine/tilt and font number is as follows:
.PP
.RS
.nf
.ta 2c 5c 7c 9c
rail	magazine	tilt	4 font	8 font

lower	lower	up	1	1
lower	lower	down	1	2
upper	lower	up	2	3
upper	lower	down	2	4
lower	upper	up	3	5
lower	upper	down	3	6
upper	upper	up	4	7
upper	upper	down	4	8
.DT
.fi
.RE
.PP
Several additional commands were introduced locally to ease
the simulation of the CAT on a variety of raster plotters.
Each is several bytes long.
The first byte is the
.I extension
control code 0100\|1011.
The remaining bytes specify the command and its argument
(if any, treated as an unsigned integer).
The commands are:
.PP
.RS
.nf
.ta 6c
big lead	0000\|0001
big escape	0000\|0010
formfeed	0000\|0011
.fi
.DT
.RE
.PP
The
.I "big lead"
code specifies vertical motion whose magnitude is
64 * the following byte.
The
.I "big escape"
code specifies horizontal motion whose magnitude is
128 * the following byte.
The
.I formfeed
code specifies an advance to the next page resetting the current
row and column to <0,0>.
.PP
A complete CAT file should begin with an 
.I initialize
code followed
by an
.IR escape -16
code,
and should end with 14 inches of trailer and a
.I stop
code.
.SH AUTHORS
Henry Spencer, University of Toronto
.br
Michael Gorlick, TRW
.SH BUGS
The documentation and the hardware disagree on the initial tilt setting;
the above describes the hardware.