xref: /onnv-gate/usr/src/cmd/terminfo/print.ti (revision 0:68f95e015346)
1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License, Version 1.0 only
6# (the "License").  You may not use this file except in compliance
7# with the License.
8#
9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10# or http://www.opensolaris.org/os/licensing.
11# See the License for the specific language governing permissions
12# and limitations under the License.
13#
14# When distributing Covered Code, include this CDDL HEADER in each
15# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16# If applicable, add the following below this CDDL HEADER, with the
17# fields enclosed by brackets "[]" replaced with your own identifying
18# information: Portions Copyright [yyyy] [name of copyright owner]
19#
20# CDDL HEADER END
21#
22#
23# Copyright 1993 Sun Microsystems, Inc.  All rights reserved.
24# Use is subject to license terms.
25#
26
27#	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
28#	  All Rights Reserved
29
30#ident	"%Z%%M%	%I%	%E% SMI"
31
32######################################################################
33#
34# Generic entry for the C.Itoh 8510 printer and emulations:
35#
36
37citoh+basic,
38
39#   The 8510 I use only allows 79 columns!
40	cols#79,
41
42	lines#66,
43	it#8,
44
45	orc#1,
46	orhi#10,
47	orl#24,
48	orvi#144,
49
50	cr=\r,
51	cud1=\n,
52	cuf1=\s,
53	ff=\f,
54	ht=\t,
55
56	cpi=%?%p1%{10}%=%t\EN%e%p1%{12}%=%t\EE%e%p1%{16}%=%p1%{17}%=%O%t\EQ%;,
57	cvr=%?%p1%{0}%>%p1%{100}%<%&%t\ET%p1%02d%;,
58
59	is1=^Q^X,
60	is2=\Ec1\Ev66.,
61
62	smso=\E!,
63	rmso=\E",
64	smul=\EX,
65	rmul=\EY,
66	bold=\E!,
67	ssubm=\Es2,
68	rsubm=\Es0,
69	ssupm=\Es1,
70	rsupm=\Es0,
71	swidm=^N,
72	rwidm=^O,
73	sgr0=\E"\EY\Es0^O,
74	sgr=%?%p1%p6%|%t\E!%e\E"%;%?%p2%t\EX%e\EY%;,
75
76	rep=\ER%p2%03d%p1%c,
77
78	snlq=\Em2,
79	snrmq=\Em1,
80	sdrfq=\Em0,
81
82	smglp=\EL%p1%03d,
83	smgrp=\E/%{1}%p1%+%03d,
84
85	slines=\Ev%p1%02d.,
86	u9=\Ev%p1%02d.,
87
88citoh+low,
89
90	npins#8,
91	spinv#68,
92	spinh#136,
93
94	porder=8\,7\,6\,5\,4\,3\,2\,1;0,
95
96	sbim=\ES%p1%04d,
97
98	birep=\EV%p2%04d%p3%c,
99
100	bitwin#1,
101	bitype#1,
102
103#	Set the line spacing to 17/144 inch to get (almost) 68 dots
104#	per inch vertically (8 * 144/17).
105#	Set the character spacing to compressed (1/17 inch or 17
106#	characters per inch); at 136 dots per inch horizontally this
107#	means 8 dots per character.
108#	Set the left margin at the left edge of the image.
109#	The C.Itoh doesn't have parameterized vertical motion,
110#	so we simulate it with linefeeds. Assume we never need
111#	to move more than 63 lines (at 17/144 LPI).
112#	Set uni-directional motion; bi-directional causes a wavy
113#	image.
114	defbi=%?%p5%{1}%=%t\ET17\EQ\EL%p1%{8}%/%03d%p2%{8}%/%Py%?%gy%{31}%>%t\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n%gy%{32}%-%Py%;%?%gy%{15}%>%t\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n%gy%{16}%-%Py%;%?%gy%{7}%>%t\n\n\n\n\n\n\n\n%gy%{8}%-%Py%;%?%gy%{3}%>%t\n\n\n\n%gy%{4}%-%Py%;%?%gy%{1}%>%t\n\n%gy%{2}%-%Py%;%?%gy%{0}%>%t\n%;\E>%;,
115
116	endbi=\EA\EP\EL001\E<,
117
118	binel=\n\r\EL%p1%{8}%/%03d,
119
120######################################################################
121#
122# Specific printers:
123#
124
125citoh|8510|C.Itoh 8510 printer,
126
127	bufsz#1024,
128	cps#120,
129
130	use=citoh+basic, use=citoh+low,
131
132######################################################################
133#
134# Generic entry for the daisy wheel printers and emulations:
135#
136
137#
138# Basic capabilities:
139#
140daisy+basic,
141
142	daisy,
143
144	cols#132,
145	lines#66,
146
147	orc#12,
148	orhi#120,
149	orl#8,
150	orvi#48,
151
152	cr=^M,
153	cud1=^J,
154	cuf1=\s,
155	ff=^L,
156	ht=^I,
157	hpa=%?%p1%{100}%<%t\EC%p1%02d%e%p1%{110}%<%t\ECA%p1%{100}%-%d%e%p1%{120}%<%t\ECB%p1%{110}%-%d%e%p1%{130}%<%t\ECC%p1%{120}%-%d%e%p1%{140}%<%t\ECD%p1%{130}%-%d%e%p1%{150}%<%t\ECE%p1%{140}%-%d%e%p1%{160}%<%t\ECF%p1%{150}%-%d%;,
158	vpa=%?%p1%{100}%<%t\EP%p1%02d%e%p1%{110}%<%t\EPA%p1%{100}%-%d%e%p1%{120}%<%t\EPB%p1%{110}%-%d%e%p1%{130}%<%t\EPC%p1%{120}%-%d%e%p1%{140}%<%t\EPD%p1%{130}%-%d%e%p1%{150}%<%t\EPE%p1%{140}%-%d%e%p1%{160}%<%t\EPF%p1%{150}%-%d%;,
159
160	chr=%?%p1%{100}%<%t\EE%p1%02d%e%p1%{110}%<%t\EEA%p1%{100}%-%d%e%p1%{120}%<%t\EEB%p1%{110}%-%d%e%p1%{130}%<%t\EEC%p1%{120}%-%d%e%p1%{140}%<%t\EED%p1%{130}%-%d%e%p1%{150}%<%t\EEE%p1%{140}%-%d%e%p1%{160}%<%t\EEF%p1%{150}%-%d%;,
161	cvr=%?%p1%{100}%<%t\EL%p1%02d%e%p1%{110}%<%t\ELA%p1%{100}%-%d%e%p1%{120}%<%t\ELB%p1%{110}%-%d%e%p1%{130}%<%t\ELC%p1%{120}%-%d%e%p1%{140}%<%t\ELD%p1%{130}%-%d%e%p1%{150}%<%t\ELE%p1%{140}%-%d%e%p1%{160}%<%t\ELF%p1%{150}%-%d%;,
162
163	is2=\E\rP\EW\E.\EL08\EE12\E%\E<,
164
165	smso=\EQ,
166	rmso=\ER,
167	smul=\EI,
168	rmul=\EJ,
169	bold=\EKd,
170	sshm=\EQ,
171	rshm=\ER,
172	sgr0=\ER\EM\EJ,
173	sgr=%?%p1%t\EQ%e\ER%;%?%p2%t\EI%e\EJ%;%?%p6%t\EKd%e\EM%;,
174
175	smgb=\E-,
176	smgl=\E9,
177	smgr=\E0,
178	smgt=\E+,
179
180	slines=\EF%p1%02d,
181	u9=\EF%p1%02d,
182
183#
184# Graphics capabilities:
185#
186daisy+lowres,
187
188#
189#	We could use the graphics on/graphics off control sequences
190#	(ESC G/ESC 4) but for these problems:
191#
192#		- graphics mode gets turned off when a \r is received;
193#		- printing a character doesn't cause motion, which
194#		  means that each ``cell'' must be followed by a space;
195#		- to get the best aspect ratio, three horizontal dots
196#		  must be sent per ``cell'' (using the ESC 3 graphics mode
197#		  (1/60 instead of 1/120) alleviates this problem but
198#		  gives a worse aspect ratio).
199#
200#	So instead we set the HMI and VMI to 1/40 and 1/48 inch,
201#	respectively.
202#
203	npins#1,
204	spinv#48,
205	spinh#40,
206
207	porder=o\,o\,o\,o\,1\,1\,1\,o;32,
208
209	bitwin#1,
210	bitype#1,
211
212	birep=%?%p3%{32}%=%t\EH%p2%{3}%*%Px%gx%{256}%/%{64}%+%c%gx%{256}%m%{16}%/%{64}%+%c%gx%{16}%m%{64}%+%c%;,
213
214#	THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
215#	maybe not in the first column.)
216	defbi=%?%p5%{1}%=%t\EL01\EE03%p1%{3}%*%Px\r\EH%gx%{256}%/%{64}%+%c%gx%{256}%m%{16}%/%{64}%+%c%gx%{16}%m%{64}%+%c\EV%p2%{256}%/%{64}%+%c%p2%{256}%m%{16}%/%{64}%+%c%p2%{16}%m%{64}%+%c\E>%;,
217
218	endbi=\EL08\EE12\E<,
219
220	binel=\n\r%p1%{3}%*%Px\EH%gx%{256}%/%{64}%+%c%gx%{256}%m%{16}%/%{64}%+%c%gx%{16}%m%{64}%+%c,
221
222######################################################################
223#
224# Specific printers:
225#
226
227daisy,
228
229	use=daisy+basic, use=daisy+lowres,
230
231qume|sprint11|Qume Sprint 11,
232
233	bufsz#500,
234	cps#55,
235
236	use=daisy,
237
238######################################################################
239#
240# Generic entries for the various DEC printers and emulations.
241#
242#	The dec+... entries are really for any ANSI X3.64 printer,
243#	but "ansi" is already used for terminals. It would be more
244#	work to do "use=ansi" because there are too many screen
245#	oriented caps that would have to be removed.
246#
247
248#
249# Basic capabilities:
250#
251dec+basic,
252
253	cols#132,
254	lines#66,
255	it#8,
256
257	cpix,
258	orc#1,
259	orhi#10,
260	orl#2,
261	orvi#12,
262
263#
264# FIX? Are xhpa and xvpa really needed?
265	xhpa,
266	xvpa,
267
268	cr=^M,
269	ff=^L,
270	ht=^I,
271	cud1=^J,
272	cuf1=\s,
273	cuu1=\EM,
274	cud=\E[%p1%de,
275	cuf=\E[%p1%da,
276	hpa=\E[%p1%d`,
277	vpa=\E[%p1%dd,
278	nel=\EE,
279
280	is1=\Ec,
281	is2=\E[20l,
282
283	cpi=%?%p1%{10}%=%t\E[w%e%p1%{12}%=%t\E[2w%e%p1%{5}%=%t\E[5w%e%p1%{13}%=%p1%{14}%=%O%t\E[3w%e%p1%{16}%=%p1%{17}%=%O%t\E[4w%e%p1%{6}%=%t\E[6w%e%p1%{7}%=%t\E[7w%e%p1%{8}%=%t\E[8w%;,
284	lpi=%?%p1%{2}%=%t\E[4z%e%p1%{3}%=%t\E[5z%e%p1%{4}%=%t\E[6z%e%p1%{6}%=%t\E[z%e%p1%{8}%=%t\E[2z%e%p1%{12}%=%t\E[3z%;,
285
286	csnm=%?%p1%{0}%=%tusascii%e%p1%{1}%=%tenglish%e%p1%{2}%=%tfinnish%e%p1%{3}%=%tjapanese%e%p1%{4}%=%tnorwegian%e%p1%{5}%=%tswedish%e%p1%{6}%=%tgermanic%e%p1%{7}%=%tfrench%e%p1%{8}%=%tcanadian_french%e%p1%{9}%=%titalian%e%p1%{10}%=%tspanish%e%p1%{11}%=%tline%e%p1%{12}%=%tsecurity%e%p1%{13}%=%tebcdic%e%p1%{14}%=%tapl%e%p1%{15}%=%tmosaic%;,
287	scs=%?%p1%{0}%=%t\E(B%e%p1%{1}%=%t\E(A%e%p1%{2}%=%t\E(C%e%p1%{3}%=%t\E(D%e%p1%{4}%=%t\E(E%e%p1%{5}%=%t\E(H%e%p1%{6}%=%t\E(K%e%p1%{7}%=%t\E(R%e%p1%{8}%=%t\E(Q%e%p1%{9}%=%t\E(Y%e%p1%{10}%=%t\E(Z%e%p1%{11}%=%t\E(0%e%p1%{12}%=%t\E(1%e%p1%{13}%=%t\E(3%e%p1%{14}%=%t\E(8%e%p1%{15}%=%t\E(}%;,
288
289	sshm=\E[5m,
290	rshm=\E[m,
291
292	smgtp=\E[%p1%dr,
293	smgbp=\E[;%p1%dr,
294	smglp=\E[%{1}%p1%+%ds,
295	smgrp=\E[;%{1}%p1%+%ds,
296
297	slines=\E[%p1%dt,
298	u9=\E[%p1%dt,
299
300#
301# Graphics capabilities (low resolution, 6-pin):
302#
303dec+low,
304
305	npins#6,
306	spinv#72,
307	spinh#75,
308
309	porder=o\,o\,6\,5\,4\,3\,2\,1;63,
310
311	bitwin#1,
312	bitype#1,
313
314	birep=!%p2%d%p3%c,
315
316#	X is in 1/75 increments; set char spacing to 1/16.7
317#	increments to allow us to get close; column is X*16.7/75.
318#	Y is in 1/72 increments; set line spacing to 1/12
319#	increments to allow us to get close; line is Y/6.
320	defbi=%?%p5%{1}%=%t\E[4w\E[%p1%{167}%*%{750}%/%d`\E[w\E[3z\E[%p2%{6}%/%dd\E[z\EP0q%;,
321
322	endbi=^X,
323
324	binel=-,
325
326	bicr=$,
327
328######################################################################
329#
330# Specific printers:
331#
332
333la100|DEC LA100 Printer,
334
335	use=dec+basic, use=dec+low,
336
337ln03|DEC LN03 Laser Printer,
338
339#	I'm guessing here. I think the ln03 can scale up to 6.
340#	X is in 1/75 increments; set char spacing to 1/16.7
341#	increments to allow us to get close; column is X*16.7/75.
342#	Y is in 1/72 increments; set line spacing to 1/12
343#	increments to allow us to get close; line is Y/6.
344	defbi=%?%p5%{0}%>%p5%{7}%<%&%t\E[4w\E[%p1%{167}%*%{750}%/%d`\E[w\E[3z\E[%p2%{6}%/%dd\E[z\EP9;0;%p5%dq"1;1%;,
345
346	use=dec+basic, use=dec+low,
347
348######################################################################
349#
350# Epson LQ-2500
351#
352
353#
354# Basic capabilities:
355#
356ep2500+basic,
357
358	cols#136,
359	lines#66,
360	it#8,
361
362	cpix,
363	orc#6,
364	orhi#60,
365	orl#30,
366	orvi#180,
367
368	cr=^M,
369	cud1=^J,
370	cuf1=\s,
371	cub1=\b,
372	ff=^L,
373	ht=^I,
374
375	cpi=%?%p1%{10}%=%t^R\EP%e%p1%{12}%=%t^R\EM%e%p1%{20}%=%t^O\EM%e%p1%{17}%=%t^O\EP%;,
376	cvr=%?%p1%{0}%>%p1%{256}%<%&%t\E3%p1%c%;,
377
378	is1=^Q^X,
379	is2=\E@\E%0\EO,
380
381	csnm=%?%p1%{0}%=%tcharacter_set_1%e%p1%{1}%=%tcharacter_set_2%e%p1%{2}%=%tusa%e%p1%{3}%=%tfrench%e%p1%{4}%=%tgerman%e%p1%{5}%=%tuk%e%p1%{6}%=%tdanish1%e%p1%{7}%=%tswedish%e%p1%{8}%=%titalian%e%p1%{9}%=%tspanish1%e%p1%{10}%=%tjapanese%e%p1%{11}%=%tnorwegian%e%p1%{12}%=%tdanish2%e%p1%{13}%=%tspanish2%e%p1%{14}%=%tlatin_american%;,
382	scs=%?%p1%{0}%=%t\E7%e%p1%{1}%=%t\E6%e%p1%{1}%>%p1%{15}%<%&%t\ER%p1%{126}%+%c%;
383
384	smso=\EE,
385	rmso=\EF,
386	smul=\E-1,
387	rmul=\E-0,
388	bold=\EG,
389	sshm=\EE,
390	rshm=\EF,
391	ssubm=\ES1,
392	rsubm=\ET,
393	ssupm=\ES0,
394	rsupm=\ET,
395	swidm=\EW1,
396	rwidm=\EW0,
397	sitm=\E4,
398	ritm=\E5,
399	sgr0=\EF\E-0\EH\ET\EW0\E5,
400	sgr=%?%p1%t\EE%e\EF%;%?%p2%t\E-1%e\E-0%;%?%p6%t\EG%e\EH%;,
401
402#
403#	For now we can't set the margin in the first (0th) column
404#	due to limitations in the Curses code. This should be changed
405#	in the future. For now, shift right 1. Note that the right
406#	margin is the last USEABLE column in Terminfo, but is 1
407#	PAST that for the Epson.
408	smglp=%?%p1%{256}%<%t\El%p1%{1}%+%c%;,
409	smgrp=%?%p1%{256}%<%t\EQ%p1%{2}%+%c%;,
410
411	slines=%?%p1%{0}%>%p1%{128}%<%&%t\EC%p1%c%;,
412	u9=%?%p1%{0}%>%p1%{128}%<%&%t\EC%p1%c%;,
413
414	snrmq=\Ex0,
415	snlq=\Ex1,
416
417#
418# Graphics capabilities:
419#
420ep2500+low,
421
422	npins#8,
423	spinv#60,
424	spinh#60,
425
426	porder=1\,2\,3\,4\,5\,6\,7\,8;0,
427
428	sbim=\EK%p1%{256}%m%c%p1%{256}%/%c,
429
430	bitwin#1,
431	bitype#1,
432
433#	Set the line spacing to 8/60 inch (7.5 lines per inch)
434#	to get 60 dots per inch vertically (7.5 lines/" * 8 pins/line).
435#	Set the character spacing to pica (1/10 inch or 10 characters
436#	per inch); at 60 dots per inch horizontally this means 6
437#	dots per character.
438#	Set vertical and horizontal tab stops at the upper left corner
439#	of the image, then tab to the upper left corner.
440#	Note: $<> is a true null (only works with special Curses routine).
441#	THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
442#	maybe not in the first column.)
443	defbi=%?%p5%{1}%=%t\E3\030^R\EP\EB%p2%{8}%/%c$<>\ED%p1%{6}%/%c$<>\013\r\t%;,
444
445	endbi=\E3\036,
446
447	binel=\n\r\t,
448
449	bicr=\r\t,
450
451#
452# Graphics capabilities:
453#
454ep2500+high,
455
456	npins#24,
457	spinv#180,
458	spinh#180,
459
460	porder=1\,2\,3\,4\,5\,6\,7\,8\,9\,10\,11\,12\,13\,14\,15\,16\,17\,18\,19\,20\,21\,22\,23\,24;0,
461
462	sbim=\E*\047%p1%{256}%m%c%p1%{256}%/%c,
463
464#	Set the line spacing to 8/60 inch (7.5 lines per inch)
465#	to get 180 dots per inch vertically (7.5 lines/" * 24 pins/line).
466#	Set the character spacing to pica (1/10 inch or 10 characters
467#	per inch); at 180 dots per inch horizontally this means 18
468#	dots per character.
469#	Set vertical and horizontal tab stops at the upper left corner
470#	of the image, then tab to the upper left corner.
471#	Note: $<> is a true null (only works with special Curses routine).
472#	THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
473#	maybe not in the first column.)
474	defbi=%?%p5%{1}%=%t\E3\030^R\EP\EB%p2%{24}%/%c$<>\ED%p1%{18}%/%c$<>\013\r\t%;,
475
476	use=ep2500+low,
477
478#
479# Color capability:
480#
481ep2500+color,
482
483	colors#3,
484
485	setcolor=%?%p1%{0}%=%t\Er0%;%?%p1%{1}%=%t\Er2%;%?%p1%{2}%=%t\Er1%;%?%p1%{3}%=%t\Er4%;,
486
487	colornm=%?%p1%{0}%=%tblack%;%?%p1%{1}%=%tcyan%;%?%p1%{2}%=%tmagenta%;%?%p1%{3}%=%tyellow%;%?%p1%{4}%=%torange=yellow+magenta%;%?%p1%{5}%=%tgreen=yellow+cyan%;%?%p1%{6}%=%tviolet=magenta+cyan%;%?%p1%{7}%=%tbrown=magenta+black%;,
488
489######################################################################
490#
491# Specific printers:
492#
493
494epson2500|Epson LQ-2500; low resolution,
495
496	use=ep2500+basic, use=ep2500+low, use=ep2500+color,
497
498epson2500-hi|Epson LQ-2500; high resolution,
499
500	use=ep2500+basic, use=ep2500+high, use=ep2500+color,
501
502epson2500-80|Epson LQ-2500; low resolution; 80-col,
503
504	cols#80,
505	use=ep2500+basic, use=ep2500+low, use=ep2500+color,
506
507epson2500-hi80|Epson LQ-2500; high resolution; 80-col,
508
509	cols#80,
510	use=ep2500+basic, use=ep2500+high, use=ep2500+color,
511
512######################################################################
513#
514# Generic entry for the HP Laserjet printers and emulations:
515#
516
517#
518# Basic capabilities:
519#
520hplaser+basic,
521
522	cols#80,
523	lines#60,
524
525	orc#12,
526	orhi#120,
527	orl#8,
528	orvi#48,
529
530	cr=^M,
531	cud1=^J,
532	cuf1=\s,
533	cud=\E&a+%p1%dR,
534	cuf=\E&a+%p1%dC,
535	ff=^L,
536	hpa=\E&a%p1%dC,
537	vpa=\E&a%p1%dR,
538
539	cpi=%?%p1%{10}%=%t\E&k0S%e%p1%{17}%=%t\E&k2S%;,
540	chr=%?%p1%{0}%>%p1%{127}%<%t\E&k%p1%dH%;,
541	cvr=%?%p1%{0}%>%p1%{127}%<%t\E&l%p1%dC%;,
542	lpi=%?%p1%{1}%=%t\E&l1D%e%p1%{2}%=%t\E&l2D%e%p1%{3}%=%t\E&l3D%e%p1%{4}%=%t\E&l4D%e%p1%{6}%=%t\E&l6D%e%p1%{8}%=%t\E&l8D%e%p1%{12}%=%t\E&l12D%e%p1%{16}%=%t\E&l16D%e%p1%{24}%=%t\E&l24D%e%p1%{48}%=%t\E&l48D%;,
543
544# Reset printer and set how EOL is handled.
545# \E&k0G is cr=cr, lf=lf, ff=ff
546# \E&k1G is cr=cr+lf, lf=lf, ff=ff
547# \E&k2G is cr=cr, lf=cr+lf, ff=cr+ff (this is what UNIX uses)
548# \E&k3G is cr=cr+lf, lf=cr+lf, ff=cr+ff
549
550	is2=\EE\E&k2G,
551	mgc=\E9,
552
553	rmul=\E&d\100,
554	ritm=\E(s0S,
555	smul=\E&dD,
556	sitm=\E(s1S,
557	smgtp=\E&l%p1%{1}%+%dE,
558	smgbp=\E&l%p1%{1}%+%dF,
559	smglp=\E&a%p1%dL,
560	smgrp=\E&a%p1%dM,
561
562#Set top margin at +2 offset
563	smgtp=\E&l%p1%dE,
564
565#Set page length
566	slines=\E&l%p1P,
567	u9=\E&l%p1P,
568
569#
570# Graphics capabilities:
571#
572hplaser+high,
573
574	npins#8,
575	spinv#300,
576	spinh#300,
577
578	porder=1\,2\,3\,4\,5\,6\,7\,8;0,
579
580	sbim=\E*b%p1%dW,
581
582	bitwin#1,
583	bitype#2,
584
585#	    X (or Y) * scale * 12/5 == pos in decipoints (12/5 == 720/300)
586	defbi=%?%p5%{0}%>%p5%{5}%<%&%t\E&a%p1%p5%*%{12}%*%{5}%/%dH\E&a%p2%p5%*%{12}%*%{5}%/%dV\E*t%{300}%p5%/%dR\E*r1A%;,
587
588	endbi=\E*rB,
589
590######################################################################
591#
592# Specific printers:
593#
594
595hplaserjet|hplaser|HP Laserjet I,
596
597	use=hplaser+basic, use=hplaser+high,
598
599######################################################################
600#
601# Generic entries for the various IBM printers and emulations.
602#
603
604###################################
605#
606# IBM Graphics
607#
608
609#
610# Basic capabilities:
611#
612ibmg+basic,
613
614	cols#80,
615	lines#66,
616	it#8,
617
618	cpix,
619	orc#1,
620	orhi#10,
621	orl#12,
622	orvi#72,
623
624	cr=^M,
625	ff=^L,
626	ht=^I,
627	cud1=^J,
628	cuf1=\s,
629
630	cpi=%?%p1%{10}%=%t^R%e%p1%{16}%=%p1%{17}%=%O%t^O%;,
631	cvr=%?%p1%{0}%>%p1%{256}%<%&%t\EA%p1%c\E2%;,
632
633	is1=^X,
634	is2=^R\EA\014\E2\EF\EH\EW0\ET\E-0\E7\EO,
635
636	csnm=%?%p1%{0}%=%p1%{1}%=%O%tcharacter_set_1%e%p1%{2}%=%tcharacter_set_2%;,
637	scs=%?%p1%{0}%=%p1%{1}%=%O%t\E7%e%p1%{2}%=%t\E6%;,
638
639	smso=\EE,
640	rmso=\EF,
641	smul=\E-1,
642	rmul=\E-0,
643	bold=\EG,
644	smacs=\E6,
645	rmacs=\E7,
646	sshm=\EE,
647	rshm=\EF,
648	ssubm=\ES1,
649	rsubm=\ET,
650	ssupm=\ES0,
651	rsupm=\ET,
652	swidm=\EW1,
653	rwidm=\EW0,
654	sgr0=\EF\E-0\EH\E7\ET\EW0,
655	sgr=%?%p1%t\EE%e\EF%;%?%p2%t\E-1%e\E-0%;%?%p6%t\EG%e\EH%;%?%p9%t\E6%e\E7%;,
656
657	slines=%?%p1%{0}%>%p1%{128}%<%&%t\EC%p1%c%;,
658	u9=%?%p1%{0}%>%p1%{128}%<%&%t\EC%p1%c%;,
659
660#
661# Graphics capabilities (low resolution, 9-pin):
662#
663ibmg+low,
664
665	npins#8,
666	spinv#72,
667	spinh#60,
668
669	porder=1\,2\,3\,4\,5\,6\,7\,8;0,
670
671	sbim=\EK%p1%{256}%m%c%p1%{256}%/%c,
672
673	bitwin#1,
674	bitype#1,
675
676#	Set the line spacing to 8/72 inch (9 lines per inch)
677#	to get 72 dots per inch vertically (9 lines/inch * 8 pins/line).
678#	Set the character spacing to pica (1/10 inch or 10 characters
679#	per inch); at 60 dots per inch horizontally this means 6
680#	dots per character.
681#	The IBM Graphics doesn't have parameterized motion,
682#	so we simulate it with linefeeds and spaces.
683#	Assume we never need to move across more than 63 colums
684#	or down more than 31 lines.
685#	THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
686#	maybe not in the first column.)
687	defbi=%?%p5%{1}%=%t\EA\010\E2^R%p2%{8}%/%Py%?%gy%{15}%>%t\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n%gy%{16}%-%Py%;%?%gy%{7}%>%t\n\n\n\n\n\n\n\n%gy%{8}%-%Py%;%?%gy%{3}%>%t\n\n\n\n%gy%{4}%-%Py%;%?%gy%{1}%>%t\n\n%gy%{2}%-%Py%;%?%gy%{0}%>%t\n%;\r%p1%{6}%/%Px%?%gx%{31}%>%t                                %gx%{32}%-%Px%;%?%gx%{15}%>%t                %gx%{16}%-%Px%;%?%gx%{7}%>%t        %gx%{8}%-%Px%;%?%gx%{3}%>%t    %gx%{4}%-%Px%;%?%gx%{1}%>%t  %gx%{2}%-%Px%;%?%gx%{0}%>%t %;%;,
688
689	endbi=\EA\014\E2,
690
691	binel=\n\r%p1%{6}%/%Px%?%gx%{31}%>%t                                %gx%{32}%-%Px%;%?%gx%{15}%>%t                %gx%{16}%-%Px%;%?%gx%{7}%>%t        %gx%{8}%-%Px%;%?%gx%{3}%>%t    %gx%{4}%-%Px%;%?%gx%{1}%>%t  %gx%{2}%-%Px%;%?%gx%{0}%>%t %;,
692
693	bicr=\r%p1%{6}%/%Px%?%gx%{31}%>%t                                %gx%{32}%-%Px%;%?%gx%{15}%>%t                %gx%{16}%-%Px%;%?%gx%{7}%>%t        %gx%{8}%-%Px%;%?%gx%{3}%>%t    %gx%{4}%-%Px%;%?%gx%{1}%>%t  %gx%{2}%-%Px%;%?%gx%{0}%>%t %;,
694
695###################################
696#
697# IBM Color
698#
699
700#
701# Basic capabilities:
702#
703ibmc+basic,
704
705	cub1=\b,
706
707	is1=^Q^X,
708	is2=^R\EA\014\E2\EF\EH\EW0\ET\E-0\E7\EO\ER\E50\EM0\EX^A\210\Eb\ECB,
709
710	smglp=\EX%p1%{1}%+%c%p2%{1}%+%c,
711
712	use=ibmg+basic,
713
714#
715# Graphics capabilities (low resolution, 9-pin, 5:6 aspect ratio):
716#
717ibmc+low+5x6,
718
719	spinv#84,
720	spinh#70,
721
722#	Set 5:6 aspect ratio.
723#	Set the line spacing to 7/72 inch (10.29 lines per inch)
724#	to get approximately 84 dots per inch vertically
725#	(10.29 lines/inch * 8 pins/line equals 82.28 dots per inch).
726#	Set the character spacing to pica (1/10 inch or 10 characters
727#	per inch); at 70 dots per inch horizontally this means 7
728#	dots per character.
729#	Set vertical and horizontal tab stops at the upper left corner
730#	of the image, then tab to the upper left corner.
731#	Note: $<> is a true null (only works with special Curses routine).
732#	THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
733#	maybe not in the first column.)
734	defbi=%?%p5%{1}%=%t\En^B\E1^R\EB%p2%{8}%/%c$<>\ED%p1%{7}%/%c$<>\013\r\t%;,
735
736	binel=\n\r\t,
737
738	bicr=\r\t,
739
740	use=ibmg+low,
741
742#
743# Graphics capabilities (low resolution, 9-pin, 1:1 aspect ratio):
744#
745ibmc+low+1x1,
746
747	spinh#84,
748
749#	Set 1:1 aspect ratio.
750#	Set the line spacing to 7/72 inch (10.29 lines per inch)
751#	to get approximately 84 dots per inch vertically
752#	(10.29 lines/inch * 8 pins/line equals 82.28 dots per inch).
753#	Set the character spacing to pica (1/10 inch or 10 characters
754#	per inch); at 84 dots per inch horizontally this means 8.4
755#	dots per character.
756#	Set vertical and horizontal tab stops at the upper left corner
757#	of the image, then tab to the upper left corner.
758#	Note: $<> is a true null (only works with special Curses routine).
759#	THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
760#	maybe not in the first column.)
761	defbi=%?%p5%{1}%=%t\En^A\E1^R\EB%p2%{8}%/%c$<>\ED%p1%{10}%*%{84}%/%c$<>\013\r\t%;,
762
763	use=ibmc+low+5x6,
764
765#
766# Color capability:
767#
768ibmc+color,
769
770	colors#3,
771
772	setcolor=%?%p1%{0}%=%t\Eb%;%?%p1%{1}%=%t\Ec%;%?%p1%{2}%=%t\Em%;%?%p1%{3}%=%t\Ey%;,
773
774	colornm=%?%p1%{0}%=%tblack%;%?%p1%{1}%=%tcyan%;%?%p1%{2}%=%tmagenta%;%?%p1%{3}%=%tyellow%;%?%p1%{4}%=%torange=yellow+magenta%;%?%p1%{5}%=%tgreen=yellow+cyan%;%?%p1%{6}%=%tviolet=magenta+cyan%;%?%p1%{7}%=%tbrown=magenta+black%;,
775
776###################################
777#
778# IBM Proprinter XL:
779#
780#	This printer appears to be a superset of the IBM Graphics
781#	and IBM Color printers, with a 24-wire printhead. The entry
782#	below uses the full capabilities of the superset and printhead.
783#	The printer has an Alternate Graphics Mode (AGM) that changes
784#	the vertical resolution from 1/216" to 1/180", and the graphics
785#	aspect ratio from 5:6 to 1:1. HOWEVER, there does not appear to
786#	be a control sequence that switches into this mode--it must be
787#	done by hand!
788#
789
790#
791# Basic capabilities (printer not in AGM):
792#
793ibmxl+basic,
794
795	orc#12,
796	orhi#120,
797	orl#36,
798	orvi#216,
799
800	cub1=\b,
801
802	cpi=%?%p1%{10}%=%t^R%e%p1%{12}%=%t\E:%e%p1%{17}%=%t^O%;,
803	cvr=%?%p1%{0}%>%p1%{256}%<%&%t\E3%p1%c%;,
804
805	is1=^Q^X,
806	is2=^R\EP0\EA\014\E2\EC\102\EO\ER\Eb\E50\EF\EH\EW0\ET\E-0\E_0\E7,
807	is3=\EX\001\120,
808
809	use=ibmg+basic,
810
811#
812# Basic capabilities (printer in AGM):
813#
814ibmxlagm+basic,
815
816	orl#30,
817	orvi#180,
818
819	is2=^R\EP0\EA\012\E2\EC\102\EO\ER\Eb\E50\EF\EH\EW0\ET\E-0\E_0\E7,
820
821	use=ibmxl+basic,
822
823#
824# Graphics capabilities (low resolution, 8-pin, 5:6 aspect ratio):
825#
826ibmxl+low+5x6,
827
828	spinv#72,
829	spinh#60,
830
831#	Set the line spacing to 8/72 inch (9 lines per inch)
832#	to get 72 dots per inch vertically (9 lines/" * 8 pins/line).
833#	Set the character spacing to pica (1/10 inch or 10 characters
834#	per inch); at 60 dots per inch horizontally this means 6
835#	dots per character.
836#	Set vertical and horizontal tab stops at the upper left corner
837#	of the image, then tab to the upper left corner.
838#	Note: $<> is a true null (only works with special Curses routine).
839#	THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
840#	maybe not in the first column.)
841	defbi=%?%p5%{1}%=%t\EA\010\E2^R\EB%p2%{8}%/%c$<>\ED%p1%{6}%/%c$<>\013\r\t%;,
842
843	use=ibmc+low+5x6,
844
845#
846# Graphics capabilities (low resolution, 8-pin, 1:1 aspect ratio):
847#
848ibmxl+low+1x1,
849
850	spinv#60,
851
852#	In AGM the "defbi" cap from ibmxl+low+5x6 will work. The
853#	line spacing will be 8/60 inch to get 60 dots per inch, using
854#	the same control sequence.
855
856	use=ibmxl+low+5x6,
857
858#
859# Graphics capabilities (high resolution, 24-pin, 5:6 aspect ratio):
860#
861#	This doesn't work as the pin spacing doesn't get set to
862#	1/216 inch, but stays at 1/180 inch, even out of AGM.
863#
864
865#
866# Graphics capabilities (high resolution, 24-pin, 1:1 aspect ratio):
867#
868ibmxl+high+1x1,
869
870	npins#24,
871	spinv#180,
872	spinh#180,
873
874	porder=1\,2\,3\,4\,5\,6\,7\,8\,9\,10\,11\,12\,13\,14\,15\,16\,17\,18\,19\,20\,21\,22\,23\,24;0,
875
876	sbim=\E*\047%p1%{256}%m%c%p1%{256}%/%c,
877
878#	Set the line spacing to 8/60 inch (7.5 lines per inch)
879#	to get 180 dots per inch vertically (7.5 lines/" * 24 pins/line).
880#	This requires the printer or emulation in Alternate Graphics Mode.
881#	Set the character spacing to pica (1/10 inch or 10 characters
882#	per inch); at 180 dots per inch horizontally this means 18
883#	dots per character.
884#	Set vertical and horizontal tab stops at the upper left corner
885#	of the image, then tab to the upper left corner.
886#	Note: $<> is a true null (only works with special Curses routine).
887#	THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
888#	maybe not in the first column.)
889	defbi=%?%p5%{1}%=%t\EA\010\E2^R\EB%p2%{24}%/%c$<>\ED%p1%{18}%/%c$<>\013\r\t%;,
890
891	use=ibmc+low+5x6,
892
893######################################################################
894#
895# Specific printers:
896#
897
898ibmgraphics|ibmproprinter|proprinter|IBM Graphics printer,
899
900	use=ibmg+basic, use=ibmg+low,
901
902ibmcolor|IBM Color printer; 5:6 aspect ratio,
903
904	use=ibmc+basic, use=ibmc+low+5x6, use=ibmc+color,
905
906ibmcolor-1x1|IBM Color printer; 1:1 aspect ratio,
907
908	use=ibmc+basic, use=ibmc+low+1x1, use=ibmc+color,
909
910ibmxl|IBM Proprinter XL; 5:6 aspect ratio; low resolution,
911
912	cols#136,
913	is3=\EX\001\210,
914	use=ibmxl+basic, use=ibmxl+low+5x6, use=ibmc+color,
915
916ibmxl-1x1|IBM Proprinter XL in AGM; 1:1 aspect ratio; low resolution,
917
918	cols#136,
919	is3=\EX\001\210,
920	use=ibmxlagm+basic, use=ibmxl+low+1x1, use=ibmc+color,
921
922ibmxl-1x1-hi|IBM Proprinter XL in AGM; 1:1 aspect ratio; high resolution,
923
924	cols#136,
925	is3=\EX\001\210,
926	use=ibmxlagm+basic, use=ibmxl+high+1x1, use=ibmc+color,
927
928ibmxl-80|IBM Proprinter XL; 5:6 aspect ratio; low resolution; 80-col,
929
930	use=ibmxl+basic, use=ibmxl+low+5x6, use=ibmc+color,
931
932ibmxl-1x1-80|IBM Proprinter XL in AGM; 1:1 aspect ratio; low res; 80-col,
933
934	use=ibmxlagm+basic, use=ibmxl+low+1x1, use=ibmc+color,
935
936ibmxl-1x1-hi80|IBM Proprinter XL in AGM; 1:1 aspect ratio; high res; 80-col,
937
938	use=ibmxlagm+basic, use=ibmxl+high+1x1, use=ibmc+color,
939
940##############################################################
941#
942# HP plotter:
943#
944
9457550|hp7550|HP7550|Hewlett Packard 7550A,
946	bufsz#5000,
947	is2=.@5000;2:.I81;;17:.NO;19:.P;1:.(,
948