h11264
s 00775/00000/00000
d D 1.1 83/03/15 21:09:50 tes 1 0
c date and time created 83/03/15 21:09:50 by tes
e
u
4
U
t
T
I 1
#-h-  dd512.c             local   06/27/82  14:55:47
#-h-  dd512.rat          local   01/20/82  09:30
subroutine dd512 (contrl, intin, rlin, intout, rlout)
########################################################################
#                                                                      #
#          THIS MATERIAL IS CONFIDENTIAL AND IS FURNISHED UNDER        #
#          A WRITTEN LICENSE AGREEMENT.  IT MAY NOT BE USED,           #
#          COPIED OR DISCLOSED TO OTHERS EXCEPT IN ACCORDANCE          #
#          WITH THE TERMS OF THAT AGREEMENT.                           #
#                                                                      #
#          COPYRIGHT (C) 1982 GRAPHIC SOFTWARE SYSTEMS INC.            #
#          ALL RIGHTS RESERVED.                                        #
#                                                                      #
#     Function: GSS-CORE device driver for AED 512 terminal            #
#                                                                      #
#     Input Parameters:                                                #
#            contrl(1-3) - An integer array with following information #
#                          contrl(1) - opcode for driver function      #
#                          contrl(2) - length of integer array intin   #
#                          contrl(3) - length of real input array rlin #
#                                                                      #
#            intin   -     Array of integer input parameters           #
#                                                                      #
#            rlin    -     Array of real input parameters              #
#                                                                      #
#     Output Parameters:                                               #
#            contrl(4-6) - contrl(4) - length of integer array intout  #
#                          contrl(5) - length of integer array rlout   #
#                          contrl(6) - count of any other control parms#
#                                                                      #
#             rlout  -     Array of integer output parameters          #
#                                                                      #
#     Routines Called:                                                 #
#             Dr512 - move/draw for AED 512 terminal                   #
#             gdevot - put out a character to the device               #
#             gdstot - put out a character string to the device        #
#             dc512 - color changing on AED 512 terminal               #
#             dm512 - emulate markers for AED 512 terminal             #
#             itoch  - convert integer to character string             #
#             gimnmx - bounds checking function for integers           #
#             inside - find point inside polygon                       #
#                                                                      #
########################################################################
 
include mgsdef
 
# local defines
define(X_LIMITS_AED512,511.)             # Terminal width
define(Y_LIMITS_AED512,482.)             # Terminal heigth
define(OUTLINE,1)                       # Outline polygons
 
integer contrl(1),intin(1),intout(1)
real rlin(1),rlout(1)
 
integer opcode, icnvt(3), gimnmx, endcmd(2),
        box(2), lstyle(11), newfrm(3), bcolor(2),
        setclr(2), setup(8),
        linsty(6), solid(9),
        ltltxt(13), bigtxt(14),
        tries, enable(4), line(7), booboo(2)
 
real xcoord, ycoord, xy(2), txtwd1, txtwd2, txthg1, txthg2
 
integer cl512(256,3)
 
include mgscom
 
common /cm512/ cl512
 
equivalence (xy(1) , xcoord), (xy(2) , ycoord)
 
#  Display a filled box / <esc> o /
data box /ESC, LETO/
 
#  Change line patterns  /<esc> 1 0 0 0 <cr> 8 5 <cr> <soh> <newline>/
data lstyle /ESC,DIG1,DIG0,DIG0,DIG0,CR,DIG8,DIG5,CR,SOH,NEWLINE/
 
#  Need to be able to set a solid line pattern  / <esc> 1 2 5 5 <cr> 8 5 <cr>
data solid /ESC, DIG1, DIG2, DIG5, DIG5, CR, DIG8, DIG5, CR/
 
# The AED has no default patterns of its own, these patterns
# will be used whenever a user wants something other than a line
data linsty / 255, 204, 240, 228, 250, 170/
 
#  Erase the screen  / <esc> ~ <soh> /
data newfrm / ESC, TILDE, SOH /
 
#  Change the background color / <esc> [ /
data bcolor / ESC, LBRACK /
 
# Set color map  / <esc> K /
data setclr / ESC, BIGK/
 
# Command for small text size
data ltltxt / ESC, CARET, DIG1, DIG7, DIG9, CR, DIG1, DIG3, CR, BIGL,
     CR, SOH, NEWLINE/
 
# Command for big text size
data bigtxt / ESC, CARET, DIG2, DIG7, DIG1, DIG7, CR, DIG2, DIG6, CR,
     BIGL, CR, SOH, NEWLINE/
 
#  Set the command encoding scheme: <esc> G 1 D D D . <cr>
data setup / ESC, BIGG, DIG1, BIGD, BIGD, BIGD, PERIOD, CR/
 
#  Enable 4010 gin
data enable / SOH, ESC, SUB, NEWLINE/
 
#  Report a gin mistake
data booboo / BELL, NEWLINE/
 
#  Characters to end an AED 512 command
data endcmd/ SOH, NEWLINE/
 
data txtwd1 /.0175781/
data txtwd2 /.03323031/
data txthg1 /.0253906/
data txthg2 /.05078/
 
 
opcode=contrl(OPCODE)
 
#
#  opcode move and draw
#
if  ((opcode == DRAW) | (opcode == MOVE)) {
   if ((opcode == DRAW) & (ndclrp ~= ndclrl))   { # Change the color
      i = ndclrl
      call dc512 (i)
      }
   call dr512 (opcode, rlin)
   call gdstot (2, endcmd) # Leave command mode
   }
#
#  opcode text
#
else if (opcode == TEXT) {
 
   if (ndclrp ~= ndclrt)  {  # Change the color
      i = ndclrt
      call dc512 (i)
      }
 
   # Put out a control character to terminate command mode
   call gdevot (SOH)
 
   i = contrl (INTEGER_IN_LENGTH)
   call gdstot (i, intin)
   call gdstot (2, endcmd)
   }
 
#
#  opcode marker
#
else if (opcode == MARKER) {
 
   if (ndlntp ~= 255)  {  # Must be using a dash pattern
      call gdstot (9, solid)
      }
 
   if (ndclrp ~= ndclrm)  {  # Need a different color to do a marker
      i = ndclrm
      call dc512 (i)
      }
   call dm512 (intin, rlin)
 
   # Now may need to restore the dash pattern
   if (ndlntp ~= 255)  {
      len = itoch (ndlntp, lstyle(3), 3, ierror)
      call gdstot (11, lstyle)
      }
   call gdstot (2, endcmd) # Leave command mode
   }
 
#
#  opcode polygon edge style
#
else if (opcode == SET_POLYGON_EDGE_STYLE) {
   ndedgs = intin(1)
   }
 
#
#  opcode polygon
#
else if (opcode == POLYGON) {
   if (ndedgs == OUTLINE) i = ndclrl
   else                   i = ndclrf
 
   call dc512 (i)              # Set polygon edge color
   # Set the line type to solid for the edge being drawn
   call gdstot (9, solid)
 
   j = intin(1)                # Get start of x-coordinates
   k = intin(2)                # Get start of y-coordinates
   xcoord = rlin(j)
   ycoord = rlin(k)
   call dr512 (MOVE, xy)       # Move to first point
   for (i=2; i <= contrl(3); i=i+1) {
      j = j + 1
      k = k + 1
      xcoord = rlin(j)
      ycoord = rlin(k)
      call dr512 (DRAW, xy)    # Draw polygon edges
      }
   i = intin(1)
   j = intin(2)
   call inside (contrl(3), rlin(i), rlin(j), xcoord, ycoord)
   call dr512 (MOVE, xy)       # Move inside polygon
 
   i = ndclrf                  # Set fill color
   call dc512 (i)
 
   call gdevot (ESC)           # Flood interior
   call gdevot (BIGI)
   call gdevot (CR)
 
   # Restore the users dash pattern
   len = itoch (ndlntp, lstyle(3), 3, ierror)
   call gdstot (11, lstyle)
   }
 
#
#  opcode filled bar
#
else if (opcode == BAR_FILL) {
 
   if (ndclrf ~= ndclrp)  {  # Need a different color
      i = ndclrf
      call dc512 (i)
      }
   # Set the line type to solid for the edge being drawn
   call gdstot (9, solid)
 
   call dr512 (MOVE, rlin)       # Move to first point
   xcoord = rlin(3)
   ycoord = rlin(2)
   call dr512 (DRAW, xy)  # Draw to lower right
   xcoord = rlin(3)
   ycoord = rlin(4)
   call dr512 (DRAW, xy)  # Draw to upper right
   xcoord = rlin(1)
   ycoord = rlin(4)
   call dr512 (DRAW, xy)  # Draw to upper left
   call dr512 (DRAW, rlin) # Draw to lower left
 
   # Determine center of the bar so can fill it
   # xy(1)
   xcoord = (rlin(1)+rlin(3))/2.
   # xy(2)
   ycoord = (rlin(2)+rlin(4))/2.
 
   call dr512 (MOVE, xy)       # Move inside polygon
 
   call gdevot (ESC)           # Flood interior
   call gdevot (BIGI)
   call gdevot (CR)
 
   # Restore the users dash pattern
   len = itoch (ndlntp, lstyle(3), 3, ierror)
   call gdstot (11, lstyle)
 
##############################################################
#      this block is used when the aed 512 can do its filled bars itself
##############################################################
#   if ( ndclrf ~= ndclrp )  {  # Need another color for the bar
#      i = ndclrf
#      call dc512 (i)
#      }
#   # Move to the lower left corner
#   call dr512 (MOVE,rlin)
#
#   call gdstot (2, box) # Begin the box command
#
#   i = rlin(3) * X_LIMITS_AED512
#   len = itoch (i, icnvt, 3, ierror)
#   call gdstot (len, icnvt)
#   call gdevot (CR) # End the x point
#
#   i = rlin(4) * Y_LIMITS_AED512
#   len = itoch ( i, icnvt, 3, ierror)
#   call gdstot (len, icnvt)
#   call gdevot (CR)  # End the y point
#   call gdstot (2, endcmd)  # Leave command mode
##########################################################
   }
 
#
#  opcode set fill color
#
else if (opcode == SET_FILL_COLOR) {
   ndclrf = gimnmx( intin(1), 0, 255)
   intout(1) = ndclrf      # Communicate which pattern was selected
   }
 
#
#  opcode text size
#
else if (opcode == TEXT_SIZE) {
 
   #                   big width*big height
   if (rlin(1)*rlin(2) <= .00158688)      {  # Use little char size
      call gdstot (13, ltltxt)
      rlout(1) = txtwd1
      rlout(2) = txthg1
      }
   else {
      call gdstot (14, bigtxt)
      rlout(1) = txtwd2
      rlout(2) = txthg2
      }
   }
 
#
#  opcode line style
#
else if (opcode == LINESTYLE) {
   i = gimnmx( intin(1), 1, 6)
   intout(1) = i    # Inform upper level of style selected
   ndlntp = linsty(i)  # Index the correct pattern to set
   len = itoch (ndlntp, lstyle(3), 3, ierror)
   call gdstot (11, lstyle)   # Send out the pattern
   }
 
#
#    opcode new_frame
#
else if (opcode == NEW_FRAME) {
   call gdstot (3, newfrm)  # Clear the screen
   }
 
#
#   Set background color
#
else if (opcode == SET_BACKGROUND_COLOR) {
   intout(1) = gimnmx (intin(1),0,255)
   call gdstot ( 2, bcolor)
   len = itoch (intout(1), icnvt, 3, ierror)
   call gdstot (len, icnvt)
   call gdevot (CR)
   call gdstot (2, endcmd)  # Leave command mode
   }
 
#
#  Set line color
#
else if (opcode == SET_LINE_COLOR)  {
   ndclrl = gimnmx (intin(1), 0, 255)
   intout(1) = ndclrl
   }
 
#
#  Set text color
#
else if (opcode == SET_TEXT_COLOR)  {
   ndclrt = gimnmx( intin(1), 0, 255)
   intout(1) = ndclrt
   }
 
#
#  Set marker color
#
else if (opcode == SET_MARKER_COLOR)  {
   ndclrm = gimnmx( intin(1), 0, 255)
   intout(1) = ndclrm
   }
 
#
# Set device color
#
else if (opcode == COLOR)  {
 
   call gdstot (2, setclr)
 
   i = gimnmx(intin(1),0,255)  # Index to set
   len = itoch (i, icnvt, 3, ierror)
   call gdstot (len, icnvt)
   call gdevot (CR)
 
   call gdevot (DIG1)  # Only going to set one color
   call gdevot (CR)
 
   do j = 1, 3    {  # for each red, green, and blue
      k = rlin(j) * 255. #  Scale color up to 0-255
      cl512(i+1,j) = k     # Put the color into common
      len = itoch (k, icnvt, 3, ierror)
      call gdstot (len, icnvt)
      call gdevot (CR)
      }
   call gdstot (2, endcmd)  # Leave command mode
   }
 
#
#  opcode inquire color index
#
else if (opcode == INQUIRE_COLOR_INDEX) {
   i = gimnmx( intin(1), 0, 255) + 1
   do j = 1, 3  {
      rlout(j) = float( cl512(i,j))/255.
      }
   }
 
#
# opcode set_device_parameters
#
else if (opcode == SET_DEVICE_PARAMETERS) {
 
   # set up device capability array
 
   devcap(TEXT_CAP) = YES      # Text capability
   devcap(LINESTYLE_CAP) = 6   # Capable of 6 different linestyle
   devcap(COLOR_CAP) = 256     # Capable of 256 different colors
   devcap(TEXT_SIZE_CAP) = 2   # Capable of 2 different text sizes
   devcap(GIN_CAP) = YES       # Capable of graphic input
   devcap(MARKER_CAP) = 5      # Capable of 5 different markers
   devcap(POLYGON_FILL_CAP) = YES # Capable of filling polygons
   devcap(BAR_FILL_CAP) = 255  # Capable of filling a rectangle
 
   # Initialize Device Driver globals
 
   zdlgax = X_LIMITS_AED512  # Set the length of the longest axis
                                # in device units
   zdxlng = 1.0              # Set x and y axis lengths in NDC units
   zdylng = .94324853        # Y_LIMITS_AED512/X_LIMITS_AED512
 
   ndlntp = 255              # Default line type is solid
   ndclrl = 1                # Default line color is red
   ndclrm = 1                # Default marker color is red
   ndclrt = 1                # Default text color is red
   ndclrf = 1                # Default panel fill is red
   ndclrp = -1               # And no color is set at the device
   ndedgs = OUTLINE          # Set default polygon mode to outline
 
   zdxpos = 0.0              # Default position is at home
   zdypos = 0.0
   zdtxsz = txtwd1         # Set character size in common
   zdtysz = txthg1
 
   # Initialize all colors to black and then set non-zero values
   do i = 1, 256 {
      do j = 1, 3 {
         cl512(i,j) = 0
         }
      }
 
   cl512(2,1) = 255 # Red
   cl512(3,2) = 255
   cl512(4,3) = 255
   cl512(5,2) = 255
   cl512(5,3) = 255
   cl512(6,1) = 255 # Yellow
   cl512(6,2) = 255
   cl512(7,1) = 255 # Magenta
   cl512(7,3) = 255
   cl512(8,1) = 255 # White
   cl512(8,2) = 255
   cl512(8,3) = 255
 
   # initialize the terminal
   call gdstot (8,setup)
   call gdstot (9, solid)  # Solid dash pattern
   call gdstot (13, ltltxt) # Initialize the small text
 
   # Initialize the colormap at the device
   call gdstot (2,setclr)
   call gdevot (DIG0)     # Start at index 0
   call gdevot (CR)
 
   call gdevot (DIG0)
   call gdevot (CR)
 
   do i = 1, 256  {  # For each color
      do j = 1, 3  {
         len = itoch (cl512(i,j), icnvt, 3, ierror)
         call gdstot (len, icnvt)
         call gdevot (CR)
         }
      }
   call gdstot (2, endcmd)  # Leave command mode
   }
 
#
#    get point
#
else if (opcode == GET_POINT) {
   contrl(4) = 0  # Initialize the output count
   ginok = YES
   tries = 0
   repeat {
      # Enable gin
      call gdstot (4, enable)
      call gdstin (7, line, i)
 
      call gdevot (LF)  # Use a linefeed to cancel a bypass
      call gdstot (8, setup)  # Reset the command interpreter
                             # Since gin messes it up
 
      if ( i <= 5 )  { # Check the characters that were returned
         for (j=2; j<=i; j=j+1)  { # Verify characters valid
            if (line(j) < SPACE | line(j) > QMARK) {
               ginok = NO
               call gdstot (2, booboo)
               }
            }
         }
      else  {  # Too many characters returned
         ginok = NO
         call gdstot (2, booboo)
         }
      tries = tries + 1
      }  until (ginok == YES | tries > 3)
 
   #  Decode the data
   if (ginok == YES) {
      xcoord = float ((line(2)-SPACE)*SPACE + line(3)-SPACE)
      ycoord = float ((line(4)-SPACE)*SPACE + line(5)-SPACE)
      rlout(1) = xcoord / 1024.  # Put the point into NDC space
      rlout(2) = ycoord / 1024.
      intout(1) = line(1)
      contrl(4) = 1
      }
 
   # xy(1)
   xcoord = zdxpos
   # xy(2)
   ycoord = zdypos
   call dr512 (MOVE, xy)  # Need to reposition the cursor
   call gdevot (SOH)  # Leave command mode
   }
 
#
#     inquire screen size
#
else if (opcode == INQUIRE_SCREEN_SIZE) {
      rlout(1) = zdxlng
      rlout(2) = zdylng
      rlout(3) = X_LIMITS_AED512
      }
 
#
#  opcode escape
#
else if (opcode == ESCAPE) {
      j = contrl(INTEGER_IN_LENGTH)
      call gdstot (j, intin)
      call gdstot (2, endcmd) # Leave command mode
      }
#
#     stop graphics
#
else if (opcode == STOP_GRAPHICS) {
      call gdstot (2, endcmd) # Terminate graphics by exiting command mode
      }
 
return
end
#-t-  dd512.rat          local   01/20/82  09:30
#-h-  dm512.rat          local   03/24/82  11:21
subroutine dm512 (marker,rlin)
########################################################################
#                                                                      #
#          THIS MATERIAL IS CONFIDENTIAL AND IS FURNISHED UNDER        #
#          A WRITTEN LICENSE AGREEMENT.  IT MAY NOT BE USED,           #
#          COPIED OR DISCLOSED TO OTHERS EXCEPT IN ACCORDANCE          #
#          WITH THE TERMS OF THAT AGREEMENT.                           #
#                                                                      #
#          COPYRIGHT (C) 1982 GRAPHIC SOFTWARE SYSTEMS INC.            #
#          ALL RIGHTS RESERVED.                                        #
#                                                                      #
#     Function: Place a marker at the current location on 512 type     #
#               devices                                                #
#                                                                      #
#     Input Parameters:                                                #
#            marker - marker symbol index (1-5)                        #
#            rlin   - x/y location for marker                          #
#     Output Parameters:                                               #
#            none                                                      #
#                                                                      #
#     Routines Called:                                                 #
#            dr512 - AED 512 move/draw routine                         #
#                                                                      #
########################################################################
 
include mgsdef
 
define (MARK_PERIOD,1)
define (MARK_PLUS,2)
define (MARK_STAR,3)
define (MARK_O,4)
define (MARK_X,5)
define (FULLSZ,.0125)
define (HALFSZ,.00625)
define (FPERSZ,.005)
define (HPERSZ,.0025)
 
integer marker
real rlin(1)
 
real fsize, hsize, x1, x2, y1, y2
real rxy(2), rxy1, rxy2
 
include mgscom
 
# The following equivalence statements are used to decrease the amount of code
#    necessary to access specific array elements. The arrays and the
#    variables equivalenced are listed below:
#
#       rxy(1) :: rxy1
#       rxy(2) :: rxy2
 
equivalence (rxy(1), rxy1), (rxy(2), rxy2)
 
 
   if (marker == MARK_PERIOD) {
      fsize = FPERSZ
      hsize = HPERSZ
      }
   else {
      fsize = FULLSZ
      hsize = HALFSZ
      }
 
   x1 = rlin(1) - hsize        #clip marker to device limits
   x2 = x1 + fsize
   y1 = rlin(2) - hsize
   y2 = y1 + fsize
   if ((amin1(x1,y1) < 0.0) | (x2 > zdxlng) | (y2 > zdylng)) return
 
   # output appropriate marker centered on location
 
   rxy1 = x1
   rxy2 = y1
   call dr512 (MOVE, rxy)   # move to lower left corner of character cell
 
   if (marker == MARK_PERIOD | marker == MARK_O) {
      rxy1 = x2
      call dr512 (DRAW, rxy)
      rxy2 = y2
      call dr512 (DRAW, rxy)
      rxy1 = x1
      call dr512 (DRAW, rxy)
      rxy2 = y1
      call dr512 (DRAW, rxy)
      }
   else {
      if (marker == MARK_X | marker == MARK_STAR) {
         rxy1 = x2
         rxy2 = y2
         call dr512 (DRAW, rxy)
         rxy2 = y1
         call dr512 (MOVE, rxy)
         rxy1 = x1
         rxy2 = y2
         call dr512 (DRAW, rxy)
         }
      if (marker == MARK_PLUS | marker == MARK_STAR) {
         rxy2 = y1 + hsize
         call dr512 (MOVE, rxy)
         rxy1 = x2
         call dr512 (DRAW, rxy)
         rxy1 = x1 + hsize
         rxy2 = y1
         call dr512 (MOVE, rxy)
         rxy2 = y2
         call dr512 (DRAW, rxy)
         }
      }
   call dr512 (MOVE, rlin)     # Return the cursor position to the original
                                #    value
   return
end
#-t-  dm512.rat          local   03/24/82  11:21
#-h-  dr512.rat          local   01/20/82  09:30
subroutine dr512 (opcode, rlin)
########################################################################
#                                                                      #
#          THIS MATERIAL IS CONFIDENTIAL AND IS FURNISHED UNDER        #
#          A WRITTEN LICENSE AGREEMENT.  IT MAY NOT BE USED,           #
#          COPIED OR DISCLOSED TO OTHERS EXCEPT IN ACCORDANCE          #
#          WITH THE TERMS OF THAT AGREEMENT.                           #
#                                                                      #
#          COPYRIGHT (C) 1982 GRAPHIC SOFTWARE SYSTEMS INC.            #
#          ALL RIGHTS RESERVED.                                        #
#                                                                      #
#     Function: GSS-CORE device driver move/draw for AED 512           #
#                                                                      #
#     Input Parameters:                                                #
#           opcode - driver function, either move/draw                 #
#                                                                      #
#            rlin    -     Array of real input parameters              #
#                                                                      #
#     Output Parameters: none                                          #
#                                                                      #
#     Routines Called:                                                 #
#            gdstot - put a character string to a device               #
#            gdevot - put a character to a device                      #
#            itoch  - convert an integer into a string of characters   #
#                                                                      #
########################################################################
 
include mgsdef
 
integer opcode
real rlin(1)
 
integer len, xcoord, ycoord, movdrw(2), iconvt(3)
 
include mgscom
 
data movdrw /ESC, BIGQ/ # / <esc> Q /
 
   movdrw(2) = BIGQ                      # Always prepare to do a move
   if (opcode == DRAW) movdrw(2) = BIGA  # Change it for a draw
 
   zdxpos = rlin(1)
   zdypos = rlin(2)
   xcoord = int (zdxpos*zdlgax)       # convert coords to device space
   ycoord = int (zdypos*zdlgax)
 
   call gdstot (2, movdrw)
   len = itoch (xcoord,iconvt,3,ierr)
   call gdstot (len,iconvt)
   call gdevot (CR)
   len = itoch (ycoord,iconvt,5,ierr)
   call gdstot (len,iconvt)
   call gdevot (CR)
   return
end
#-t-  dr512.rat          local   01/20/82  09:30
#-h-  dc512.rat          local   03/24/82  11:21
subroutine dc512 (color)
########################################################################
#                                                                      #
#          THIS MATERIAL IS CONFIDENTIAL AND IS FURNISHED UNDER        #
#          A WRITTEN LICENSE AGREEMENT.  IT MAY NOT BE USED,           #
#          COPIED OR DISCLOSED TO OTHERS EXCEPT IN ACCORDANCE          #
#          WITH THE TERMS OF THAT AGREEMENT.                           #
#                                                                      #
#          COPYRIGHT (C) 1982 GRAPHIC SOFTWARE SYSTEMS INC.            #
#          ALL RIGHTS RESERVED.                                        #
#                                                                      #
#     Function: Change the color on the AED 512 terminal               #
#                                                                      #
#     Input Parameters:                                                #
#            color - color to change to                                #
#     Output Parameters:                                               #
#            none                                                      #
#                                                                      #
#     Routines Called:                                                 #
#            gdstot - output a string to the current device            #
#            gdevot - output a character to the current device         #
#            itoch  - convert an integer into a string of characters   #
#                                                                      #
########################################################################
 
include mgsdef
 
integer color
 
integer clr(2), icnvt(3), ierror, len
 
include mgscom
 
#    Set the color   / <esc> C /
data clr / ESC, BIGC /
 
   ndclrp = color    # Set the current color
 
   call gdstot (2, clr)
   len = itoch (color,icnvt,3,ierror)
   call gdstot (len,icnvt)
   call gdevot (CR)
   return
end
#-t-  dc512.rat          local   03/24/82  11:21
#-t-  dd512.c             local   06/27/82  14:55:47
#-h-  dd6211.c            local   06/27/82  14:57:02
E 1
