/* * * Tektronix 4014 control codes. * */ #define NUL '\000' #define SOH '\001' #define STX '\002' #define ETX '\003' #define EOT '\004' #define ENQ '\005' #define ACK '\006' #define BEL '\007' #define BS '\010' #define HT '\011' #define NL '\012' #define VT '\013' #define FF '\014' #define CR '\015' #define SO '\016' #define SI '\017' #define DLE '\020' #define DC1 '\021' #define DC2 '\022' #define DC3 '\023' #define DC4 '\024' #define NAK '\025' #define SYN '\026' #define ETB '\027' #define CAN '\030' #define EM '\031' #define SUB '\032' #define ESC '\033' #define FS '\034' #define GS '\035' #define RS '\036' #define US '\037' #define DEL '\177' /* * * A few definitions used to classify the different tektronix states. OUTMODED * is returned by control() and esc(), and typically means the state has changed. * */ #define OUTMODED -1 #define ALPHA 0 #define GIN 1 #define GRAPH 2 #define POINT 3 #define SPECIALPOINT 4 #define INCREMENTAL 5 #define RESET 6 #define EXIT 7 /* * * The pen state, either UP or DOWN, controls whether vectors are drawn. * */ #define UP 0 #define DOWN 1 /* * * Coordinates of the upper right corner of the screen - almost the real screen * dimensions. * */ #define TEKXMAX 4096 #define TEKYMAX 3120 /* * * The size of the spot in SPECIALPOINT mode is controlled by a non-linear * function that has a domain that consists of the integers from 040 to 0175. * The next definition is used to initialize the special point mode intensity * array that implements the function. Data came from table F-6 in the tektronix * 4014 manual. * */ #define INTENSITY \ \ { \ 14, 16, 17, 19, 20, 22, 23, 25, \ 28, 31, 34, 38, 41, 44, 47, 50, \ 56, 62, 69, 75, 81, 88, 94,100, \ 56, 62, 69, 75, 81, 88, 94,100, \ 0, 1, 1, 1, 1, 1, 1, 2, \ 2, 2, 2, 2, 3, 3, 3, 3, \ 4, 4, 4, 5, 5, 5, 6, 6, \ 7, 8, 9, 10, 11, 12, 12, 13, \ 14, 16, 17, 19, 20, 22, 23, 25, \ 28, 31, 34, 38, 41, 44, 47, 50, \ 56, 62, 69, 75, 81, 88, 94,100, \ 56, 62, 69, 75, 81, 88, 94,100, \ } /* * * The next two definitions give the height and width of characters in the four * different sizes available on tektronix terminals. TEKFONT is the default index * into CHARHEIGHT and CHARWIDTH. * */ #define CHARHEIGHT {88, 82, 53, 48} #define CHARWIDTH {56, 51, 34, 31} #define TEKFONT 2 /* * * The entries defined in STYLES are passed on to the PostScript operator setdash. * They're used to implement the different tektronix line styles. Belongs in the * prologue! * */ #define STYLES \ \ { \ "[]", \ "[.5 2]", \ "[.5 2 4 2]", \ "[4 4]", \ "[8 4]", \ "[]" \ } /* * * Variables of type Point are used to keep track of the cursor position. * */ typedef struct { int x; int y; } Point; /* * * 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 valued functions in posttek.c. * */ char *get_font();