|
|
1.1 root 1: #ifndef lint
2: static char sccsid[] = "@(#)open.c 4.1 (Berkeley) 11/11/83";
3: #endif
4:
5: /*
6: * Displays plot files on a AED512 graphics terminal.
7: */
8:
9: #include "aed.h"
10:
11: char dbuf[BUFSIZ]; /* Used to buffer display characters */
12: struct sgttyb sgttyb; /* Used to save terminal control bits */
13: int curx, cury; /* Current screen position */
14: int xbot, ybot; /* Coordinates of screen lower-left corner */
15: int scale; /* The number of pixels per 2**12 units
16: * of world coordinates.
17: */
18:
19: /*
20: * The following is the color map, containing reg, green, and blue
21: * values for color locations 0 and 1.
22: */
23:
24: static int colors[] = {200, 200, 200, 0, 0, 125, 125, 0, 0, 125, 0, 0};
25:
26: /*---------------------------------------------------------
27: * Openpl initializes the graphics display and clears its screen.
28: *
29: * Results: None.
30: *
31: * Side Effects:
32: * The display is re-initialized and the file is remembered for
33: * use in all subsequent calls to this module. The display's
34: * color map is reset. The display is put into raw mode, but
35: * the previous mode bits are saved.
36: *
37: * Errors: None.
38: *---------------------------------------------------------
39: */
40: openpl()
41: {
42: int flags, *p, i;
43: char dum[4];
44:
45: /* First, grab up the display modes, then reset them to put it
46: * into cooked mode. Also, lock the terminal.
47: */
48:
49: (void) gtty(fileno(stdout), &sgttyb);
50: flags = sgttyb.sg_flags;
51: sgttyb.sg_flags = (sgttyb.sg_flags & ~(RAW | CBREAK)) | EVENP | ODDP;
52: (void) stty(fileno(stdout), &sgttyb);
53: sgttyb.sg_flags = flags;
54:
55: /* Save the file pointer around for later use, then output an
56: * initialization string to the display. The initialization
57: * string resets the terminal, sets formats, clears the display,
58: * initializes the read and write masks, and sets the color map.
59: */
60:
61: setbuf(stdout, dbuf);
62: fputs("\33\33G1HHHN[00LFFCFFMFFFFFFFF", stdout);
63: fputs("K0004", stdout);
64: p = colors;
65: for (i=0; i<12; i++)
66: {
67: chex(*p++, dum, 2);
68: fputs(dum, stdout);
69: }
70: fputs("^15060AL", stdout);
71: scale = 1<<12;
72: curx = cury = xbot = ybot = 0;
73: (void) fflush(stdout);
74: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.