|
|
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.