print.ti revision 7c478bd95313f5f23a4c958a745db2134aa03244
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (the "License"). You may not use this file except in compliance
# with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 1993 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
# All Rights Reserved
#ident "%Z%%M% %I% %E% SMI"
######################################################################
#
# Generic entry for the C.Itoh 8510 printer and emulations:
#
citoh+basic,
# The 8510 I use only allows 79 columns!
cols#79,
lines#66,
it#8,
orc#1,
orhi#10,
orl#24,
orvi#144,
cr=\r,
cud1=\n,
cuf1=\s,
ff=\f,
ht=\t,
cpi=%?%p1%{10}%=%t\EN%e%p1%{12}%=%t\EE%e%p1%{16}%=%p1%{17}%=%O%t\EQ%;,
cvr=%?%p1%{0}%>%p1%{100}%<%&%t\ET%p1%02d%;,
is1=^Q^X,
is2=\Ec1\Ev66.,
smso=\E!,
rmso=\E",
smul=\EX,
rmul=\EY,
bold=\E!,
ssubm=\Es2,
rsubm=\Es0,
ssupm=\Es1,
rsupm=\Es0,
swidm=^N,
rwidm=^O,
sgr0=\E"\EY\Es0^O,
sgr=%?%p1%p6%|%t\E!%e\E"%;%?%p2%t\EX%e\EY%;,
rep=\ER%p2%03d%p1%c,
snlq=\Em2,
snrmq=\Em1,
sdrfq=\Em0,
smglp=\EL%p1%03d,
smgrp=\E/%{1}%p1%+%03d,
slines=\Ev%p1%02d.,
u9=\Ev%p1%02d.,
citoh+low,
npins#8,
spinv#68,
spinh#136,
porder=8\,7\,6\,5\,4\,3\,2\,1;0,
sbim=\ES%p1%04d,
birep=\EV%p2%04d%p3%c,
bitwin#1,
bitype#1,
# Set the line spacing to 17/144 inch to get (almost) 68 dots
# per inch vertically (8 * 144/17).
# Set the character spacing to compressed (1/17 inch or 17
# characters per inch); at 136 dots per inch horizontally this
# means 8 dots per character.
# Set the left margin at the left edge of the image.
# The C.Itoh doesn't have parameterized vertical motion,
# so we simulate it with linefeeds. Assume we never need
# to move more than 63 lines (at 17/144 LPI).
# Set uni-directional motion; bi-directional causes a wavy
# image.
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>%;,
endbi=\EA\EP\EL001\E<,
binel=\n\r\EL%p1%{8}%/%03d,
######################################################################
#
# Specific printers:
#
citoh|8510|C.Itoh 8510 printer,
bufsz#1024,
cps#120,
use=citoh+basic, use=citoh+low,
######################################################################
#
# Generic entry for the daisy wheel printers and emulations:
#
#
# Basic capabilities:
#
daisy+basic,
daisy,
cols#132,
lines#66,
orc#12,
orhi#120,
orl#8,
orvi#48,
cr=^M,
cud1=^J,
cuf1=\s,
ff=^L,
ht=^I,
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%;,
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%;,
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%;,
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%;,
is2=\E\rP\EW\E.\EL08\EE12\E%\E<,
smso=\EQ,
rmso=\ER,
smul=\EI,
rmul=\EJ,
bold=\EKd,
sshm=\EQ,
rshm=\ER,
sgr0=\ER\EM\EJ,
sgr=%?%p1%t\EQ%e\ER%;%?%p2%t\EI%e\EJ%;%?%p6%t\EKd%e\EM%;,
smgb=\E-,
smgl=\E9,
smgr=\E0,
smgt=\E+,
slines=\EF%p1%02d,
u9=\EF%p1%02d,
#
# Graphics capabilities:
#
daisy+lowres,
#
# We could use the graphics on/graphics off control sequences
# (ESC G/ESC 4) but for these problems:
#
# - graphics mode gets turned off when a \r is received;
# - printing a character doesn't cause motion, which
# means that each ``cell'' must be followed by a space;
# - to get the best aspect ratio, three horizontal dots
# must be sent per ``cell'' (using the ESC 3 graphics mode
# (1/60 instead of 1/120) alleviates this problem but
# gives a worse aspect ratio).
#
# So instead we set the HMI and VMI to 1/40 and 1/48 inch,
# respectively.
#
npins#1,
spinv#48,
spinh#40,
porder=o\,o\,o\,o\,1\,1\,1\,o;32,
bitwin#1,
bitype#1,
birep=%?%p3%{32}%=%t\EH%p2%{3}%*%Px%gx%{256}%/%{64}%+%c%gx%{256}%m%{16}%/%{64}%+%c%gx%{16}%m%{64}%+%c%;,
# THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
# maybe not in the first column.)
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>%;,
endbi=\EL08\EE12\E<,
binel=\n\r%p1%{3}%*%Px\EH%gx%{256}%/%{64}%+%c%gx%{256}%m%{16}%/%{64}%+%c%gx%{16}%m%{64}%+%c,
######################################################################
#
# Specific printers:
#
daisy,
use=daisy+basic, use=daisy+lowres,
qume|sprint11|Qume Sprint 11,
bufsz#500,
cps#55,
use=daisy,
######################################################################
#
# Generic entries for the various DEC printers and emulations.
#
# The dec+... entries are really for any ANSI X3.64 printer,
# but "ansi" is already used for terminals. It would be more
# work to do "use=ansi" because there are too many screen
# oriented caps that would have to be removed.
#
#
# Basic capabilities:
#
dec+basic,
cols#132,
lines#66,
it#8,
cpix,
orc#1,
orhi#10,
orl#2,
orvi#12,
#
# FIX? Are xhpa and xvpa really needed?
xhpa,
xvpa,
cr=^M,
ff=^L,
ht=^I,
cud1=^J,
cuf1=\s,
cuu1=\EM,
cud=\E[%p1%de,
cuf=\E[%p1%da,
hpa=\E[%p1%d`,
vpa=\E[%p1%dd,
nel=\EE,
is1=\Ec,
is2=\E[20l,
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%;,
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%;,
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%;,
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(}%;,
sshm=\E[5m,
rshm=\E[m,
smgtp=\E[%p1%dr,
smgbp=\E[;%p1%dr,
smglp=\E[%{1}%p1%+%ds,
smgrp=\E[;%{1}%p1%+%ds,
slines=\E[%p1%dt,
u9=\E[%p1%dt,
#
# Graphics capabilities (low resolution, 6-pin):
#
dec+low,
npins#6,
spinv#72,
spinh#75,
porder=o\,o\,6\,5\,4\,3\,2\,1;63,
bitwin#1,
bitype#1,
birep=!%p2%d%p3%c,
# X is in 1/75 increments; set char spacing to 1/16.7
# increments to allow us to get close; column is X*16.7/75.
# Y is in 1/72 increments; set line spacing to 1/12
# increments to allow us to get close; line is Y/6.
defbi=%?%p5%{1}%=%t\E[4w\E[%p1%{167}%*%{750}%/%d`\E[w\E[3z\E[%p2%{6}%/%dd\E[z\EP0q%;,
endbi=^X,
binel=-,
bicr=$,
######################################################################
#
# Specific printers:
#
la100|DEC LA100 Printer,
use=dec+basic, use=dec+low,
ln03|DEC LN03 Laser Printer,
# I'm guessing here. I think the ln03 can scale up to 6.
# X is in 1/75 increments; set char spacing to 1/16.7
# increments to allow us to get close; column is X*16.7/75.
# Y is in 1/72 increments; set line spacing to 1/12
# increments to allow us to get close; line is Y/6.
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%;,
use=dec+basic, use=dec+low,
######################################################################
#
# Epson LQ-2500
#
#
# Basic capabilities:
#
ep2500+basic,
cols#136,
lines#66,
it#8,
cpix,
orc#6,
orhi#60,
orl#30,
orvi#180,
cr=^M,
cud1=^J,
cuf1=\s,
cub1=\b,
ff=^L,
ht=^I,
cpi=%?%p1%{10}%=%t^R\EP%e%p1%{12}%=%t^R\EM%e%p1%{20}%=%t^O\EM%e%p1%{17}%=%t^O\EP%;,
cvr=%?%p1%{0}%>%p1%{256}%<%&%t\E3%p1%c%;,
is1=^Q^X,
is2=\E@\E%0\EO,
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%;,
scs=%?%p1%{0}%=%t\E7%e%p1%{1}%=%t\E6%e%p1%{1}%>%p1%{15}%<%&%t\ER%p1%{126}%+%c%;
smso=\EE,
rmso=\EF,
smul=\E-1,
rmul=\E-0,
bold=\EG,
sshm=\EE,
rshm=\EF,
ssubm=\ES1,
rsubm=\ET,
ssupm=\ES0,
rsupm=\ET,
swidm=\EW1,
rwidm=\EW0,
sitm=\E4,
ritm=\E5,
sgr0=\EF\E-0\EH\ET\EW0\E5,
sgr=%?%p1%t\EE%e\EF%;%?%p2%t\E-1%e\E-0%;%?%p6%t\EG%e\EH%;,
#
# For now we can't set the margin in the first (0th) column
# due to limitations in the Curses code. This should be changed
# in the future. For now, shift right 1. Note that the right
# margin is the last USEABLE column in Terminfo, but is 1
# PAST that for the Epson.
smglp=%?%p1%{256}%<%t\El%p1%{1}%+%c%;,
smgrp=%?%p1%{256}%<%t\EQ%p1%{2}%+%c%;,
slines=%?%p1%{0}%>%p1%{128}%<%&%t\EC%p1%c%;,
u9=%?%p1%{0}%>%p1%{128}%<%&%t\EC%p1%c%;,
snrmq=\Ex0,
snlq=\Ex1,
#
# Graphics capabilities:
#
ep2500+low,
npins#8,
spinv#60,
spinh#60,
porder=1\,2\,3\,4\,5\,6\,7\,8;0,
sbim=\EK%p1%{256}%m%c%p1%{256}%/%c,
bitwin#1,
bitype#1,
# Set the line spacing to 8/60 inch (7.5 lines per inch)
# to get 60 dots per inch vertically (7.5 lines/" * 8 pins/line).
# Set the character spacing to pica (1/10 inch or 10 characters
# per inch); at 60 dots per inch horizontally this means 6
# dots per character.
# Set vertical and horizontal tab stops at the upper left corner
# of the image, then tab to the upper left corner.
# Note: $<> is a true null (only works with special Curses routine).
# THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
# maybe not in the first column.)
defbi=%?%p5%{1}%=%t\E3\030^R\EP\EB%p2%{8}%/%c$<>\ED%p1%{6}%/%c$<>\013\r\t%;,
endbi=\E3\036,
binel=\n\r\t,
bicr=\r\t,
#
# Graphics capabilities:
#
ep2500+high,
npins#24,
spinv#180,
spinh#180,
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,
sbim=\E*\047%p1%{256}%m%c%p1%{256}%/%c,
# Set the line spacing to 8/60 inch (7.5 lines per inch)
# to get 180 dots per inch vertically (7.5 lines/" * 24 pins/line).
# Set the character spacing to pica (1/10 inch or 10 characters
# per inch); at 180 dots per inch horizontally this means 18
# dots per character.
# Set vertical and horizontal tab stops at the upper left corner
# of the image, then tab to the upper left corner.
# Note: $<> is a true null (only works with special Curses routine).
# THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
# maybe not in the first column.)
defbi=%?%p5%{1}%=%t\E3\030^R\EP\EB%p2%{24}%/%c$<>\ED%p1%{18}%/%c$<>\013\r\t%;,
use=ep2500+low,
#
# Color capability:
#
ep2500+color,
colors#3,
setcolor=%?%p1%{0}%=%t\Er0%;%?%p1%{1}%=%t\Er2%;%?%p1%{2}%=%t\Er1%;%?%p1%{3}%=%t\Er4%;,
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%;,
######################################################################
#
# Specific printers:
#
epson2500|Epson LQ-2500; low resolution,
use=ep2500+basic, use=ep2500+low, use=ep2500+color,
epson2500-hi|Epson LQ-2500; high resolution,
use=ep2500+basic, use=ep2500+high, use=ep2500+color,
epson2500-80|Epson LQ-2500; low resolution; 80-col,
cols#80,
use=ep2500+basic, use=ep2500+low, use=ep2500+color,
epson2500-hi80|Epson LQ-2500; high resolution; 80-col,
cols#80,
use=ep2500+basic, use=ep2500+high, use=ep2500+color,
######################################################################
#
# Generic entry for the HP Laserjet printers and emulations:
#
#
# Basic capabilities:
#
hplaser+basic,
cols#80,
lines#60,
orc#12,
orhi#120,
orl#8,
orvi#48,
cr=^M,
cud1=^J,
cuf1=\s,
cud=\E&a+%p1%dR,
cuf=\E&a+%p1%dC,
ff=^L,
hpa=\E&a%p1%dC,
vpa=\E&a%p1%dR,
cpi=%?%p1%{10}%=%t\E&k0S%e%p1%{17}%=%t\E&k2S%;,
chr=%?%p1%{0}%>%p1%{127}%<%t\E&k%p1%dH%;,
cvr=%?%p1%{0}%>%p1%{127}%<%t\E&l%p1%dC%;,
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%;,
# Reset printer and set how EOL is handled.
# \E&k0G is cr=cr, lf=lf, ff=ff
# \E&k1G is cr=cr+lf, lf=lf, ff=ff
# \E&k2G is cr=cr, lf=cr+lf, ff=cr+ff (this is what UNIX uses)
# \E&k3G is cr=cr+lf, lf=cr+lf, ff=cr+ff
is2=\EE\E&k2G,
mgc=\E9,
rmul=\E&d\100,
ritm=\E(s0S,
smul=\E&dD,
sitm=\E(s1S,
smgtp=\E&l%p1%{1}%+%dE,
smgbp=\E&l%p1%{1}%+%dF,
smglp=\E&a%p1%dL,
smgrp=\E&a%p1%dM,
#Set top margin at +2 offset
smgtp=\E&l%p1%dE,
#Set page length
slines=\E&l%p1P,
u9=\E&l%p1P,
#
# Graphics capabilities:
#
hplaser+high,
npins#8,
spinv#300,
spinh#300,
porder=1\,2\,3\,4\,5\,6\,7\,8;0,
sbim=\E*b%p1%dW,
bitwin#1,
bitype#2,
# X (or Y) * scale * 12/5 == pos in decipoints (12/5 == 720/300)
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%;,
endbi=\E*rB,
######################################################################
#
# Specific printers:
#
hplaserjet|hplaser|HP Laserjet I,
use=hplaser+basic, use=hplaser+high,
######################################################################
#
# Generic entries for the various IBM printers and emulations.
#
###################################
#
# IBM Graphics
#
#
# Basic capabilities:
#
ibmg+basic,
cols#80,
lines#66,
it#8,
cpix,
orc#1,
orhi#10,
orl#12,
orvi#72,
cr=^M,
ff=^L,
ht=^I,
cud1=^J,
cuf1=\s,
cpi=%?%p1%{10}%=%t^R%e%p1%{16}%=%p1%{17}%=%O%t^O%;,
cvr=%?%p1%{0}%>%p1%{256}%<%&%t\EA%p1%c\E2%;,
is1=^X,
is2=^R\EA\014\E2\EF\EH\EW0\ET\E-0\E7\EO,
csnm=%?%p1%{0}%=%p1%{1}%=%O%tcharacter_set_1%e%p1%{2}%=%tcharacter_set_2%;,
scs=%?%p1%{0}%=%p1%{1}%=%O%t\E7%e%p1%{2}%=%t\E6%;,
smso=\EE,
rmso=\EF,
smul=\E-1,
rmul=\E-0,
bold=\EG,
smacs=\E6,
rmacs=\E7,
sshm=\EE,
rshm=\EF,
ssubm=\ES1,
rsubm=\ET,
ssupm=\ES0,
rsupm=\ET,
swidm=\EW1,
rwidm=\EW0,
sgr0=\EF\E-0\EH\E7\ET\EW0,
sgr=%?%p1%t\EE%e\EF%;%?%p2%t\E-1%e\E-0%;%?%p6%t\EG%e\EH%;%?%p9%t\E6%e\E7%;,
slines=%?%p1%{0}%>%p1%{128}%<%&%t\EC%p1%c%;,
u9=%?%p1%{0}%>%p1%{128}%<%&%t\EC%p1%c%;,
#
# Graphics capabilities (low resolution, 9-pin):
#
ibmg+low,
npins#8,
spinv#72,
spinh#60,
porder=1\,2\,3\,4\,5\,6\,7\,8;0,
sbim=\EK%p1%{256}%m%c%p1%{256}%/%c,
bitwin#1,
bitype#1,
# Set the line spacing to 8/72 inch (9 lines per inch)
# to get 72 dots per inch vertically (9 lines/inch * 8 pins/line).
# Set the character spacing to pica (1/10 inch or 10 characters
# per inch); at 60 dots per inch horizontally this means 6
# dots per character.
# The IBM Graphics doesn't have parameterized motion,
# so we simulate it with linefeeds and spaces.
# Assume we never need to move across more than 63 colums
# or down more than 31 lines.
# THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
# maybe not in the first column.)
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 %;%;,
endbi=\EA\014\E2,
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 %;,
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 %;,
###################################
#
# IBM Color
#
#
# Basic capabilities:
#
ibmc+basic,
cub1=\b,
is1=^Q^X,
is2=^R\EA\014\E2\EF\EH\EW0\ET\E-0\E7\EO\ER\E50\EM0\EX^A\210\Eb\ECB,
smglp=\EX%p1%{1}%+%c%p2%{1}%+%c,
use=ibmg+basic,
#
# Graphics capabilities (low resolution, 9-pin, 5:6 aspect ratio):
#
ibmc+low+5x6,
spinv#84,
spinh#70,
# Set 5:6 aspect ratio.
# Set the line spacing to 7/72 inch (10.29 lines per inch)
# to get approximately 84 dots per inch vertically
# (10.29 lines/inch * 8 pins/line equals 82.28 dots per inch).
# Set the character spacing to pica (1/10 inch or 10 characters
# per inch); at 70 dots per inch horizontally this means 7
# dots per character.
# Set vertical and horizontal tab stops at the upper left corner
# of the image, then tab to the upper left corner.
# Note: $<> is a true null (only works with special Curses routine).
# THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
# maybe not in the first column.)
defbi=%?%p5%{1}%=%t\En^B\E1^R\EB%p2%{8}%/%c$<>\ED%p1%{7}%/%c$<>\013\r\t%;,
binel=\n\r\t,
bicr=\r\t,
use=ibmg+low,
#
# Graphics capabilities (low resolution, 9-pin, 1:1 aspect ratio):
#
ibmc+low+1x1,
spinh#84,
# Set 1:1 aspect ratio.
# Set the line spacing to 7/72 inch (10.29 lines per inch)
# to get approximately 84 dots per inch vertically
# (10.29 lines/inch * 8 pins/line equals 82.28 dots per inch).
# Set the character spacing to pica (1/10 inch or 10 characters
# per inch); at 84 dots per inch horizontally this means 8.4
# dots per character.
# Set vertical and horizontal tab stops at the upper left corner
# of the image, then tab to the upper left corner.
# Note: $<> is a true null (only works with special Curses routine).
# THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
# maybe not in the first column.)
defbi=%?%p5%{1}%=%t\En^A\E1^R\EB%p2%{8}%/%c$<>\ED%p1%{10}%*%{84}%/%c$<>\013\r\t%;,
use=ibmc+low+5x6,
#
# Color capability:
#
ibmc+color,
colors#3,
setcolor=%?%p1%{0}%=%t\Eb%;%?%p1%{1}%=%t\Ec%;%?%p1%{2}%=%t\Em%;%?%p1%{3}%=%t\Ey%;,
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%;,
###################################
#
# IBM Proprinter XL:
#
# This printer appears to be a superset of the IBM Graphics
# and IBM Color printers, with a 24-wire printhead. The entry
# below uses the full capabilities of the superset and printhead.
# The printer has an Alternate Graphics Mode (AGM) that changes
# the vertical resolution from 1/216" to 1/180", and the graphics
# aspect ratio from 5:6 to 1:1. HOWEVER, there does not appear to
# be a control sequence that switches into this mode--it must be
# done by hand!
#
#
# Basic capabilities (printer not in AGM):
#
ibmxl+basic,
orc#12,
orhi#120,
orl#36,
orvi#216,
cub1=\b,
cpi=%?%p1%{10}%=%t^R%e%p1%{12}%=%t\E:%e%p1%{17}%=%t^O%;,
cvr=%?%p1%{0}%>%p1%{256}%<%&%t\E3%p1%c%;,
is1=^Q^X,
is2=^R\EP0\EA\014\E2\EC\102\EO\ER\Eb\E50\EF\EH\EW0\ET\E-0\E_0\E7,
is3=\EX\001\120,
use=ibmg+basic,
#
# Basic capabilities (printer in AGM):
#
ibmxlagm+basic,
orl#30,
orvi#180,
is2=^R\EP0\EA\012\E2\EC\102\EO\ER\Eb\E50\EF\EH\EW0\ET\E-0\E_0\E7,
use=ibmxl+basic,
#
# Graphics capabilities (low resolution, 8-pin, 5:6 aspect ratio):
#
ibmxl+low+5x6,
spinv#72,
spinh#60,
# Set the line spacing to 8/72 inch (9 lines per inch)
# to get 72 dots per inch vertically (9 lines/" * 8 pins/line).
# Set the character spacing to pica (1/10 inch or 10 characters
# per inch); at 60 dots per inch horizontally this means 6
# dots per character.
# Set vertical and horizontal tab stops at the upper left corner
# of the image, then tab to the upper left corner.
# Note: $<> is a true null (only works with special Curses routine).
# THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
# maybe not in the first column.)
defbi=%?%p5%{1}%=%t\EA\010\E2^R\EB%p2%{8}%/%c$<>\ED%p1%{6}%/%c$<>\013\r\t%;,
use=ibmc+low+5x6,
#
# Graphics capabilities (low resolution, 8-pin, 1:1 aspect ratio):
#
ibmxl+low+1x1,
spinv#60,
# In AGM the "defbi" cap from ibmxl+low+5x6 will work. The
# line spacing will be 8/60 inch to get 60 dots per inch, using
# the same control sequence.
use=ibmxl+low+5x6,
#
# Graphics capabilities (high resolution, 24-pin, 5:6 aspect ratio):
#
# This doesn't work as the pin spacing doesn't get set to
# 1/216 inch, but stays at 1/180 inch, even out of AGM.
#
#
# Graphics capabilities (high resolution, 24-pin, 1:1 aspect ratio):
#
ibmxl+high+1x1,
npins#24,
spinv#180,
spinh#180,
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,
sbim=\E*\047%p1%{256}%m%c%p1%{256}%/%c,
# Set the line spacing to 8/60 inch (7.5 lines per inch)
# to get 180 dots per inch vertically (7.5 lines/" * 24 pins/line).
# This requires the printer or emulation in Alternate Graphics Mode.
# Set the character spacing to pica (1/10 inch or 10 characters
# per inch); at 180 dots per inch horizontally this means 18
# dots per character.
# Set vertical and horizontal tab stops at the upper left corner
# of the image, then tab to the upper left corner.
# Note: $<> is a true null (only works with special Curses routine).
# THIS ASSUMES WE START AT THE TOP OF THE PAGE! (although
# maybe not in the first column.)
defbi=%?%p5%{1}%=%t\EA\010\E2^R\EB%p2%{24}%/%c$<>\ED%p1%{18}%/%c$<>\013\r\t%;,
use=ibmc+low+5x6,
######################################################################
#
# Specific printers:
#
ibmgraphics|ibmproprinter|proprinter|IBM Graphics printer,
use=ibmg+basic, use=ibmg+low,
ibmcolor|IBM Color printer; 5:6 aspect ratio,
use=ibmc+basic, use=ibmc+low+5x6, use=ibmc+color,
ibmcolor-1x1|IBM Color printer; 1:1 aspect ratio,
use=ibmc+basic, use=ibmc+low+1x1, use=ibmc+color,
ibmxl|IBM Proprinter XL; 5:6 aspect ratio; low resolution,
cols#136,
is3=\EX\001\210,
use=ibmxl+basic, use=ibmxl+low+5x6, use=ibmc+color,
ibmxl-1x1|IBM Proprinter XL in AGM; 1:1 aspect ratio; low resolution,
cols#136,
is3=\EX\001\210,
use=ibmxlagm+basic, use=ibmxl+low+1x1, use=ibmc+color,
ibmxl-1x1-hi|IBM Proprinter XL in AGM; 1:1 aspect ratio; high resolution,
cols#136,
is3=\EX\001\210,
use=ibmxlagm+basic, use=ibmxl+high+1x1, use=ibmc+color,
ibmxl-80|IBM Proprinter XL; 5:6 aspect ratio; low resolution; 80-col,
use=ibmxl+basic, use=ibmxl+low+5x6, use=ibmc+color,
ibmxl-1x1-80|IBM Proprinter XL in AGM; 1:1 aspect ratio; low res; 80-col,
use=ibmxlagm+basic, use=ibmxl+low+1x1, use=ibmc+color,
ibmxl-1x1-hi80|IBM Proprinter XL in AGM; 1:1 aspect ratio; high res; 80-col,
use=ibmxlagm+basic, use=ibmxl+high+1x1, use=ibmc+color,
##############################################################
#
# HP plotter:
#
7550|hp7550|HP7550|Hewlett Packard 7550A,
bufsz#5000,
is2=.@5000;2:.I81;;17:.NO;19:.P;1:.(,