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