/* * * Definitions used by the PostScript translator for Diablo 1640 files. * * Diablo printers have horizontal and vertical resolutions of 120 and 48 dpi. * We'll use a single resolution of 240 dpi and let the program scale horizontal * and vertical positions by HSCALE and VSCALE. * */ #define RES 240 #define HSCALE 2 #define VSCALE 5 /* * * HMI is the default character spacing and VMI is the line spacing. Both values * are in terms of the 240 dpi resolution. * */ #define HMI (12 * HSCALE) #define VMI (8 * VSCALE) /* * * Paper dimensions don't seem to be all that important. They're just used to * set the right and bottom margins. Both are given in terms of the 240 dpi * resolution. * */ #define LEFTMARGIN 0 #define RIGHTMARGIN 3168 #define TOPMARGIN 0 #define BOTTOMMARGIN 2640 /* * * ROWS and COLUMNS set the dimensions of the horizontal and vertical tab arrays. * The way I've implemented both kinds of tabs leaves something to be desired, but * it was simple and should be good enough for now. If arrays are going to be used * to mark tab stops I probably should use malloc() to get enough space once the * initial hmi and vmi are know. * */ #define ROWS 400 #define COLUMNS 200 /* * * An array of type Fontmap helps convert font names requested by users into * legitimate PostScript names. The array is initialized using FONTMAP, which must * end with an entry that has NULL defined as its name field. * */ typedef struct { char *name; /* user's font name */ char *val; /* corresponding PostScript name */ } Fontmap; #define FONTMAP \ \ { \ "R", "Courier", \ "I", "Courier-Oblique", \ "B", "Courier-Bold", \ "CO", "Courier", \ "CI", "Courier-Oblique", \ "CB", "Courier-Bold", \ "CW", "Courier", \ "PO", "Courier", \ "courier", "Courier", \ "cour", "Courier", \ "co", "Courier", \ NULL, NULL \ } /* * * Some of the non-integer functions in postdaisy.c. * */ char *get_font();