xref: /plan9/sys/src/cmd/postscript/postdaisy/postdaisy.h (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
1*7dd7cddfSDavid du Colombier /*
2*7dd7cddfSDavid du Colombier  *
3*7dd7cddfSDavid du Colombier  * Definitions used by the PostScript translator for Diablo 1640 files.
4*7dd7cddfSDavid du Colombier  *
5*7dd7cddfSDavid du Colombier  * Diablo printers have horizontal and vertical resolutions of 120 and 48 dpi.
6*7dd7cddfSDavid du Colombier  * We'll use a single resolution of 240 dpi and let the program scale horizontal
7*7dd7cddfSDavid du Colombier  * and vertical positions by HSCALE and VSCALE.
8*7dd7cddfSDavid du Colombier  *
9*7dd7cddfSDavid du Colombier  */
10*7dd7cddfSDavid du Colombier 
11*7dd7cddfSDavid du Colombier #define RES		240
12*7dd7cddfSDavid du Colombier #define HSCALE		2
13*7dd7cddfSDavid du Colombier #define VSCALE		5
14*7dd7cddfSDavid du Colombier 
15*7dd7cddfSDavid du Colombier /*
16*7dd7cddfSDavid du Colombier  *
17*7dd7cddfSDavid du Colombier  * HMI is the default character spacing and VMI is the line spacing. Both values
18*7dd7cddfSDavid du Colombier  * are in terms of the 240 dpi resolution.
19*7dd7cddfSDavid du Colombier  *
20*7dd7cddfSDavid du Colombier  */
21*7dd7cddfSDavid du Colombier 
22*7dd7cddfSDavid du Colombier #define HMI		(12 * HSCALE)
23*7dd7cddfSDavid du Colombier #define VMI		(8 * VSCALE)
24*7dd7cddfSDavid du Colombier 
25*7dd7cddfSDavid du Colombier /*
26*7dd7cddfSDavid du Colombier  *
27*7dd7cddfSDavid du Colombier  * Paper dimensions don't seem to be all that important. They're just used to
28*7dd7cddfSDavid du Colombier  * set the right and bottom margins. Both are given in terms of the 240 dpi
29*7dd7cddfSDavid du Colombier  * resolution.
30*7dd7cddfSDavid du Colombier  *
31*7dd7cddfSDavid du Colombier  */
32*7dd7cddfSDavid du Colombier 
33*7dd7cddfSDavid du Colombier #define LEFTMARGIN	0
34*7dd7cddfSDavid du Colombier #define RIGHTMARGIN	3168
35*7dd7cddfSDavid du Colombier #define TOPMARGIN	0
36*7dd7cddfSDavid du Colombier #define BOTTOMMARGIN	2640
37*7dd7cddfSDavid du Colombier 
38*7dd7cddfSDavid du Colombier /*
39*7dd7cddfSDavid du Colombier  *
40*7dd7cddfSDavid du Colombier  * ROWS and COLUMNS set the dimensions of the horizontal and vertical tab arrays.
41*7dd7cddfSDavid du Colombier  * The way I've implemented both kinds of tabs leaves something to be desired, but
42*7dd7cddfSDavid du Colombier  * it was simple and should be good enough for now. If arrays are going to be used
43*7dd7cddfSDavid du Colombier  * to mark tab stops I probably should use malloc() to get enough space once the
44*7dd7cddfSDavid du Colombier  * initial hmi and vmi are know.
45*7dd7cddfSDavid du Colombier  *
46*7dd7cddfSDavid du Colombier  */
47*7dd7cddfSDavid du Colombier 
48*7dd7cddfSDavid du Colombier #define ROWS		400
49*7dd7cddfSDavid du Colombier #define COLUMNS		200
50*7dd7cddfSDavid du Colombier 
51*7dd7cddfSDavid du Colombier /*
52*7dd7cddfSDavid du Colombier  *
53*7dd7cddfSDavid du Colombier  * An array of type Fontmap helps convert font names requested by users into
54*7dd7cddfSDavid du Colombier  * legitimate PostScript names. The array is initialized using FONTMAP, which must
55*7dd7cddfSDavid du Colombier  * end with an entry that has NULL defined as its name field.
56*7dd7cddfSDavid du Colombier  *
57*7dd7cddfSDavid du Colombier  */
58*7dd7cddfSDavid du Colombier 
59*7dd7cddfSDavid du Colombier typedef struct {
60*7dd7cddfSDavid du Colombier 	char	*name;			/* user's font name */
61*7dd7cddfSDavid du Colombier 	char	*val;			/* corresponding PostScript name */
62*7dd7cddfSDavid du Colombier } Fontmap;
63*7dd7cddfSDavid du Colombier 
64*7dd7cddfSDavid du Colombier #define FONTMAP								\
65*7dd7cddfSDavid du Colombier 									\
66*7dd7cddfSDavid du Colombier 	{								\
67*7dd7cddfSDavid du Colombier 	    "R", "Courier",						\
68*7dd7cddfSDavid du Colombier 	    "I", "Courier-Oblique",					\
69*7dd7cddfSDavid du Colombier 	    "B", "Courier-Bold",					\
70*7dd7cddfSDavid du Colombier 	    "CO", "Courier",						\
71*7dd7cddfSDavid du Colombier 	    "CI", "Courier-Oblique",					\
72*7dd7cddfSDavid du Colombier 	    "CB", "Courier-Bold",					\
73*7dd7cddfSDavid du Colombier 	    "CW", "Courier",						\
74*7dd7cddfSDavid du Colombier 	    "PO", "Courier",						\
75*7dd7cddfSDavid du Colombier 	    "courier", "Courier",					\
76*7dd7cddfSDavid du Colombier 	    "cour", "Courier",						\
77*7dd7cddfSDavid du Colombier 	    "co", "Courier",						\
78*7dd7cddfSDavid du Colombier 	    NULL, NULL							\
79*7dd7cddfSDavid du Colombier 	}
80*7dd7cddfSDavid du Colombier 
81*7dd7cddfSDavid du Colombier /*
82*7dd7cddfSDavid du Colombier  *
83*7dd7cddfSDavid du Colombier  * Some of the non-integer functions in postdaisy.c.
84*7dd7cddfSDavid du Colombier  *
85*7dd7cddfSDavid du Colombier  */
86*7dd7cddfSDavid du Colombier 
87*7dd7cddfSDavid du Colombier char	*get_font();
88*7dd7cddfSDavid du Colombier 
89