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