summaryrefslogtreecommitdiff
path: root/usr/src/ucbcmd/plot/libplot/aed/open.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/ucbcmd/plot/libplot/aed/open.c')
-rw-r--r--usr/src/ucbcmd/plot/libplot/aed/open.c88
1 files changed, 88 insertions, 0 deletions
diff --git a/usr/src/ucbcmd/plot/libplot/aed/open.c b/usr/src/ucbcmd/plot/libplot/aed/open.c
new file mode 100644
index 0000000000..6bbdc8befc
--- /dev/null
+++ b/usr/src/ucbcmd/plot/libplot/aed/open.c
@@ -0,0 +1,88 @@
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
+
+#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.1 */
+
+/*
+ * Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
+ * All Rights Reserved.
+ */
+
+/*
+ * Copyright (c) 1980 Regents of the University of California.
+ * All rights reserved. The Berkeley software License Agreement
+ * specifies the terms and conditions for redistribution.
+ */
+
+
+/*
+ * Displays plot files on a AED512 graphics terminal.
+ */
+
+#include "aed.h"
+
+char dbuf[BUFSIZ]; /* Used to buffer display characters */
+struct sgttyb sgttyb; /* Used to save terminal control bits */
+int curx, cury; /* Current screen position */
+int xbot, ybot; /* Coordinates of screen lower-left corner */
+int scale; /* The number of pixels per 2**12 units
+ * of world coordinates.
+ */
+
+/*
+ * The following is the color map, containing reg, green, and blue
+ * values for color locations 0 and 1.
+ */
+
+static int colors[] = {200, 200, 200, 0, 0, 125, 125, 0, 0, 125, 0, 0};
+
+/*---------------------------------------------------------
+ * Openpl initializes the graphics display and clears its screen.
+ *
+ * Results: None.
+ *
+ * Side Effects:
+ * The display is re-initialized and the file is remembered for
+ * use in all subsequent calls to this module. The display's
+ * color map is reset. The display is put into raw mode, but
+ * the previous mode bits are saved.
+ *
+ * Errors: None.
+ *---------------------------------------------------------
+ */
+openpl()
+{
+ int flags, *p, i;
+ char dum[4];
+
+ /* First, grab up the display modes, then reset them to put it
+ * into cooked mode. Also, lock the terminal.
+ */
+
+ (void) gtty(fileno(stdout), &sgttyb);
+ flags = sgttyb.sg_flags;
+ sgttyb.sg_flags = (sgttyb.sg_flags & ~(RAW)) | EVENP | ODDP;
+ (void) stty(fileno(stdout), &sgttyb);
+ sgttyb.sg_flags = flags;
+
+ /* Save the file pointer around for later use, then output an
+ * initialization string to the display. The initialization
+ * string resets the terminal, sets formats, clears the display,
+ * initializes the read and write masks, and sets the color map.
+ */
+
+ setbuf(stdout, dbuf);
+ fputs("\33\33G1HHHN[00LFFCFFMFFFFFFFF", stdout);
+ fputs("K0004", stdout);
+ p = colors;
+ for (i=0; i<12; i++)
+ {
+ chex(*p++, dum, 2);
+ fputs(dum, stdout);
+ }
+ fputs("^15060AL", stdout);
+ scale = 1<<12;
+ curx = cury = xbot = ybot = 0;
+ (void) fflush(stdout);
+}