# 2.11BSD#431 - /usr/src/usr.lib/libplot/aed/subr.c

##### Functions

    chex              X
    outxy20           X
    setcolor          X

       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[] = "@(#)subr.c	5.2 (Berkeley) 4/30/85";
       9: #endif not lint
      10:
      11:
      12: #include "aed.h"
      13:
      14: /*
      15:  * The following table is used to convert numbers to hex.  We cannot use
      16:  * standard C library conversion because it generates lower case letters
      17:  * which are bad news to the AED512.
      18:  */
      19:
      20: static char hex[] = "0123456789ABCDEF";
      21:
      22: /*---------------------------------------------------------
      23:  *	This is a local routine that converts an integer to a string
      24:  *	of hexadecimal characters.
      25:  *
      26:  *	Results:	None.
      27:  *
      28:  *	Side Effects:
      29:  *	The string contains the value of the low-order nchars 4-bit chunks
      30:  *	of val, as represented in hexadecimal.  String is zero-filled.
      31:  *---------------------------------------------------------
      32:  */
      33: chex(val, string, nchars)
      34: int val;            /* Integer value to be converted. */
      35: char *string;           /* Pointer to area for converted result. */
      36: int nchars;         /* Number of characters to be converted. */
      37: {
      38:     string = &(string[nchars]);
      39:     *string = '\0';
      40:     for (; nchars>0 ; nchars--)
      41:     {
      42:     *(--string) = hex[val & 017];
      43:     val >>= 4;
      44:     }
      45: }
      46:
      47: /*---------------------------------------------------------
      48:  *	This local routine outputs an x-y coordinate pair in the standard
      49:  *	format required by the AED display.
      50:  *
      51:  *	Results:	None.
      52:  *
      53:  *	Side Effects:
      54:  *	Characters are output to the AED512 in the standard way required
      55:  *	for values indicated by "xy20" in the user manual.
      56:  *
      57:  *	Errors:		None.
      58:  *---------------------------------------------------------
      59:  */
      60: outxy20(x, y)
      61: int x, y;           /* The coordinates to be output.  Note:
      62: 				 * these are world coordinates, not screen
      63: 				 * ones.  We scale in this routine.
      64: 				 */
      65: {
      66:     char s1[4], s2[4], s3[4];
      67:     x = ((x - xbot) * scale)>>12;
      68:     y = ((y - ybot) * scale)>>12;
      69:     chex(((y>>8)&03) | ((x>>6)&014), s1, 1);
      70:     chex(x&0377, s2, 2);
      71:     chex(y&0377, s3, 2);
      72:     fprintf(stdout, "%s%s%s", s1, s2, s3);
      73: }
      74:
      75: /*---------------------------------------------------------
      76:  *	This routine sets the display's current color.
      77:  *
      78:  *	Results:	None.
      79:  *
      80:  *	Side Effects:
      81:  *	The current color in the display is set to pcolor, if it
      82:  *	isn't that already.
      83:  *---------------------------------------------------------
      84:  */
      85: setcolor(pcolor)
      86: char *pcolor;           /* Pointer to a string giving the desired
      87: 				 * color in hexadecimal.
      88: 				 */
      89: {
      90:     static char curcolor[] = "xx";
      91:     if ((pcolor[0] != curcolor[0]) || (pcolor[1] != curcolor[1]))
      92:     {
      93:     curcolor[0] = pcolor[0];
      94:     curcolor[1] = pcolor[1];
      95:     putc('L', stdout);
      96:     fputs(curcolor, stdout);
      97:     }
      98: }

#### Defined functions

chex defined in line 33; used 5 times

- in line 69-71(3)
- in /usr/src/usr.lib/libplot/aed/circle.c line 31
- in /usr/src/usr.lib/libplot/aed/open.c line 74

outxy20 defined in line 60; used 6 times

- in /usr/src/usr.lib/libplot/aed/circle.c line 29
- in /usr/src/usr.lib/libplot/aed/erase.c line 27
- in /usr/src/usr.lib/libplot/aed/label.c line 30
- in /usr/src/usr.lib/libplot/aed/line.c line 21-23(2)
- in /usr/src/usr.lib/libplot/aed/point.c line 29

setcolor defined in line 85; used 5 times

- in /usr/src/usr.lib/libplot/aed/circle.c line 27
- in /usr/src/usr.lib/libplot/aed/erase.c line 23
- in /usr/src/usr.lib/libplot/aed/label.c line 28
- in /usr/src/usr.lib/libplot/aed/line.c line 19
- in /usr/src/usr.lib/libplot/aed/point.c line 27

#### Defined variables

hex defined in line 20; used 1 times

- in line 42

sccsid defined in line 8; never used

Last modified: 1987-02-18 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 562 |