head     56.3;
access   paws bayes jws quist brad dew jwh cfb;
symbols  ;
locks    ; strict;
comment  @# @;


56.3
date     93.01.27.13.29.32;  author jwh;  state Exp;
branches ;
next     56.2;

56.2
date     93.01.27.12.07.03;  author jwh;  state Exp;
branches ;
next     56.1;

56.1
date     91.11.05.09.51.07;  author jwh;  state Exp;
branches ;
next     55.2;

55.2
date     91.10.10.09.00.19;  author cfb;  state Exp;
branches ;
next     55.1;

55.1
date     91.08.25.10.26.49;  author jwh;  state Exp;
branches ;
next     54.3;

54.3
date     91.07.11.08.58.01;  author cfb;  state Exp;
branches ;
next     54.2;

54.2
date     91.07.09.09.47.09;  author cfb;  state Exp;
branches ;
next     54.1;

54.1
date     91.03.18.15.29.57;  author jwh;  state Exp;
branches ;
next     53.1;

53.1
date     91.03.11.19.29.56;  author jwh;  state Exp;
branches ;
next     52.1;

52.1
date     91.02.19.09.13.56;  author jwh;  state Exp;
branches ;
next     51.1;

51.1
date     91.01.30.16.13.52;  author jwh;  state Exp;
branches ;
next     50.1;

50.1
date     90.10.29.16.28.40;  author jwh;  state Exp;
branches ;
next     49.1;

49.1
date     90.08.14.14.12.34;  author jwh;  state Exp;
branches ;
next     48.1;

48.1
date     90.07.26.11.18.50;  author jwh;  state Exp;
branches ;
next     47.1;

47.1
date     90.05.14.11.02.30;  author dew;  state Exp;
branches ;
next     46.1;

46.1
date     90.05.07.08.49.37;  author jwh;  state Exp;
branches ;
next     45.1;

45.1
date     90.04.19.15.57.33;  author jwh;  state Exp;
branches ;
next     44.1;

44.1
date     90.04.01.22.14.39;  author jwh;  state Exp;
branches ;
next     43.1;

43.1
date     90.03.20.14.06.39;  author jwh;  state Exp;
branches ;
next     42.1;

42.1
date     90.01.23.17.51.23;  author jwh;  state Exp;
branches ;
next     41.1;

41.1
date     89.12.22.11.33.37;  author jwh;  state Exp;
branches ;
next     40.1;

40.1
date     89.09.29.11.55.00;  author jwh;  state Exp;
branches ;
next     39.1;

39.1
date     89.09.26.16.39.36;  author dew;  state Exp;
branches ;
next     38.1;

38.1
date     89.08.29.11.31.36;  author jwh;  state Exp;
branches ;
next     37.1;

37.1
date     89.05.12.11.44.52;  author dew;  state Exp;
branches ;
next     36.1;

36.1
date     89.02.06.10.22.41;  author dew;  state Exp;
branches ;
next     35.1;

35.1
date     89.02.02.13.37.55;  author dew;  state Exp;
branches ;
next     34.1;

34.1
date     89.01.23.16.13.07;  author jwh;  state Exp;
branches ;
next     33.1;

33.1
date     89.01.16.11.44.49;  author dew;  state Exp;
branches ;
next     32.1;

32.1
date     89.01.10.11.53.46;  author bayes;  state Exp;
branches ;
next     31.1;

31.1
date     88.12.14.18.14.48;  author bayes;  state Exp;
branches ;
next     30.1;

30.1
date     88.12.09.13.51.45;  author dew;  state Exp;
branches ;
next     29.1;

29.1
date     88.10.31.15.36.37;  author bayes;  state Exp;
branches ;
next     28.1;

28.1
date     88.10.06.11.03.03;  author dew;  state Exp;
branches ;
next     27.1;

27.1
date     88.09.29.11.43.20;  author bayes;  state Exp;
branches ;
next     26.1;

26.1
date     88.09.28.13.21.10;  author bayes;  state Exp;
branches ;
next     25.2;

25.2
date     88.03.30.09.14.01;  author bayes;  state Exp;
branches ;
next     25.1;

25.1
date     88.03.02.09.37.16;  author bayes;  state Exp;
branches ;
next     24.1;

24.1
date     87.08.31.10.02.57;  author jws;  state Exp;
branches ;
next     23.1;

23.1
date     87.08.26.10.40.56;  author bayes;  state Exp;
branches ;
next     22.1;

22.1
date     87.08.17.11.26.59;  author bayes;  state Exp;
branches ;
next     21.1;

21.1
date     87.08.12.14.09.00;  author bayes;  state Exp;
branches ;
next     20.1;

20.1
date     87.07.30.11.22.53;  author bayes;  state Exp;
branches ;
next     19.1;

19.1
date     87.06.01.08.36.14;  author jws;  state Exp;
branches ;
next     18.1;

18.1
date     87.05.20.15.38.52;  author bayes;  state Exp;
branches ;
next     17.1;

17.1
date     87.04.30.10.47.32;  author jws;  state Exp;
branches ;
next     16.1;

16.1
date     87.04.26.15.58.40;  author jws;  state Exp;
branches ;
next     15.1;

15.1
date     87.04.13.09.36.30;  author jws;  state Exp;
branches ;
next     14.1;

14.1
date     87.04.01.15.43.23;  author jws;  state Exp;
branches ;
next     13.1;

13.1
date     87.02.28.18.42.55;  author jws;  state Exp;
branches ;
next     12.1;

12.1
date     87.02.02.13.34.45;  author jws;  state Exp;
branches ;
next     11.1;

11.1
date     87.01.19.10.01.08;  author jws;  state Exp;
branches ;
next     10.1;

10.1
date     86.12.24.11.13.06;  author jws;  state Exp;
branches ;
next     9.1;

9.1
date     86.12.12.14.56.08;  author bayes;  state Exp;
branches ;
next     8.1;

8.1
date     86.11.27.12.09.35;  author jws;  state Exp;
branches ;
next     7.1;

7.1
date     86.11.20.14.14.32;  author hal;  state Exp;
branches ;
next     6.1;

6.1
date     86.11.04.18.13.22;  author paws;  state Exp;
branches ;
next     5.2;

5.2
date     86.10.29.14.41.01;  author geli;  state Exp;
branches ;
next     5.1;

5.1
date     86.10.28.17.01.49;  author hal;  state Exp;
branches ;
next     4.1;

4.1
date     86.09.30.19.58.14;  author hal;  state Exp;
branches ;
next     3.3;

3.3
date     86.09.26.12.43.28;  author hal;  state Exp;
branches ;
next     3.2;

3.2
date     86.09.24.11.11.03;  author hal;  state Exp;
branches ;
next     3.1;

3.1
date     86.09.01.12.08.37;  author hal;  state Exp;
branches ;
next     2.1;

2.1
date     86.07.30.14.57.21;  author hal;  state Exp;
branches ;
next     1.1;

1.1
date     86.06.30.15.54.42;  author danm;  state tmp;
branches ;
next     ;


desc
@Base file for PWS 3.2 release.

@


56.3
log
@
pws2rcs automatic delta on Wed Jan 27 13:14:25 MST 1993
@
text
@$TABLES$
$LIST OFF$
{                                                                           }
{ Graphics Low End                                                          }
{                                                                           }
{ Module    = GLE_TYPES                                                     }
{ Programer = BJS                                                           }
{ Date      = 10- 5-82                                                      }
{                                                                           }
{ Purpose: To define the graphics control blocks used by GLE.               }

{ Rev history                                                               }
{  Created  - 10- 5-82  BJS                                                 }
{  Modified - 11-29-82  BJS  Clean up and changed booleans to shortints     }
{  Modified - 10- 8-84  SFB  Gatorbox/Bobcat types added                    }

{     (c) Copyright Hewlett-Packard Company, 1985.
      All rights are reserved.  Copying or other
      reproduction of this program except for archival
      purposes is prohibited without the prior
      written consent of Hewlett-Packard Company.


		  RESTRICTED RIGHTS LEGEND

      Use, duplication, or disclosure by the Government
      is subject to restrictions as set forth in
      paragraph (b) (3) (B) of the Rights in Technical
      Data and Computer Software clause in
      DAR 7-104.9(a).

      HEWLETT-PACKARD COMPANY
      Fort Collins, Colorado                              }

$tables on$
$modcal$
$include 'OPTIONS'$ { compiler options }
$linenum 1000$

module gle_types;

export

type gle_byte = -128 .. 127;
     gle_shortint = -32768 .. 32767;

     anychar = packed array [1..maxint] of char;
     anychar_ptr = ^anychar;

     gle_char6 = packed array [1..6] of char;

     graphics_control_block_ptr = ^graphics_control_block;
     graphics_input_control_block_ptr = ^graphics_input_control_block;
$page$
{****************************** OUTPUT **************************************}

     graphics_control_block =
       packed record
	 info1 : integer;     { holds info passed to and from GLE }
	 info2 : integer;
	 info3 : integer;
	 info4 : integer;

	 info_ptr1 : anyptr;
	 info_ptr2 : anyptr;

	 await_blanking      : procedure ( gcb : graphics_control_block_ptr );
	 buffer_mode         : procedure ( gcb : graphics_control_block_ptr );
	 char_size           : procedure ( gcb : graphics_control_block_ptr );
	 clear               : procedure ( gcb : graphics_control_block_ptr );
	 clip_limits         : procedure ( gcb : graphics_control_block_ptr );
	 cursor              : procedure ( gcb : graphics_control_block_ptr );
	 define_color_map    : procedure ( gcb : graphics_control_block_ptr );
	 define_drawing_mode : procedure ( gcb : graphics_control_block_ptr );
	 draw                : procedure ( gcb : graphics_control_block_ptr );
	 fill_index_color    : procedure ( gcb : graphics_control_block_ptr );
	 flush_buffer        : procedure ( gcb : graphics_control_block_ptr );
	 get_color_map       : procedure ( gcb : graphics_control_block_ptr );
	 get_raster          : procedure ( gcb : graphics_control_block_ptr );
	 get_polygon_info    : procedure ( gcb : graphics_control_block_ptr );
	 gload               : procedure ( gcb : graphics_control_block_ptr );
	 graphics_on_off     : procedure ( gcb : graphics_control_block_ptr );
	 gstore              : procedure ( gcb : graphics_control_block_ptr );
	 index_color         : procedure ( gcb : graphics_control_block_ptr );
	 inq_p1p2            : procedure ( gcb : graphics_control_block_ptr );
	 linewidth           : procedure ( gcb : graphics_control_block_ptr );
	 linestyle           : procedure ( gcb : graphics_control_block_ptr );
	 marker              : procedure ( gcb : graphics_control_block_ptr );
	 marker_size         : procedure ( gcb : graphics_control_block_ptr );
	 move                : procedure ( gcb : graphics_control_block_ptr );
	 output_escapei      : procedure ( gcb : graphics_control_block_ptr );
	 output_escapeo      : procedure ( gcb : graphics_control_block_ptr );
	 polygon             : procedure ( gcb : graphics_control_block_ptr );
	 set_marker          : procedure ( gcb : graphics_control_block_ptr );
	 text                : procedure ( gcb : graphics_control_block_ptr );
	 text_dir            : procedure ( gcb : graphics_control_block_ptr );
	 text_just           : procedure ( gcb : graphics_control_block_ptr );
	 text_spacing        : procedure ( gcb : graphics_control_block_ptr );

	 dummy_xxx           : procedure ( gcb : graphics_control_block_ptr );

	 io_inq_timeout      : procedure ( anyvar iocb_ptr : anyptr; var value : integer);
	 io_read             : procedure ( anyvar iocb_ptr, dev_buf_ptr : anyptr );
	 io_set_timeout      : procedure ( anyvar iocb_ptr : anyptr; value : integer);
	 io_term             : procedure ( anyvar iocb_ptr : anyptr );
	 io_write            : procedure ( anyvar iocb_ptr, dev_buf_ptr : anyptr );

	 iocb          : anyptr;       { ptr to io system dependent info }
	 device_buf    : anyptr;       { ptr to device dependent buffer  }
	 dev_dep_stuff : anyptr;       { ptr to device dependent information }
	 device_info   : anyptr;       { pointer to device identifier (e.g. 3) }
	 device_info_char_count : gle_shortint; { # char in device_info }
	 error_return  : gle_shortint; { used by some procedures }
	 spooling      : gle_shortint; { '1' if output goes to a file }

	 display_name               : gle_char6;    { name of display device }
	 display_name_char_count    : gle_shortint; { # chars used in display_name }
	 display_handler_name       : gle_char6;    { 'HPGL', 'RASTER', 'GPIS' }
	 display_handler_char_count : gle_shortint; { # chars used in display_handler_name }

	 display_res_x : real;        { points per mm in x direction }
	 display_res_y : real;        { points per mm in y direction }
	 display_min_x : integer;     { minimum x device coordinate }
	 display_min_y : integer;     { minimum y device coordinate }
	 display_max_x : integer;     { maximum x device coordinate }
	 display_max_y : integer;     { maximum y device coordinate }

	 { general info stuff }
	 background           : gle_shortint;  { '1' if drawing in color 0 supported, '0' if not }
	 complement_support   : gle_shortint;  { '1' if complement drawing supported }
	 non_dominant_support : gle_shortint;  { '1' if non-dominant drawing supported }
	 erase_support        : gle_shortint;  { '1' if erase drawing supported }
	 color_map_support    : gle_shortint;  { '1' if color map supported }
	 polygon_support      : gle_shortint;  { '1' if polygons are supported }
	 redef_background     : gle_shortint;  { '1' if color 0 can be changed }
	 polygon_fill_factor  : gle_shortint;  { aprox size of a line in device units }
	 polygon_solid_fill   : gle_shortint;  { fill line spacing which is used for doild fill }
	 dither_support       : gle_shortint;  { '1' if polygons use dither }
	 pallette             : integer;   { number of distinct colors supported  }
	 gamut                : integer;   { number of colors which can appear at same time}
	 cont_linestyles : gle_shortint;   { number of continuous linestyles supported }
	 vect_linestyles : gle_shortint;   { number of vector adjusted linestyles supported }
	 linewidths : gle_shortint;   { number of linewidths supported }
	 char_sizes : gle_shortint;   { number of character sizes supported,
					-1 for continuously varying sizes }

	 { current value information }
	 current_pos_x : integer;      { last point used }
	 current_pos_y : integer;
	 end_x         : integer;
	 end_y         : integer;

	 marker_type   : gle_shortint;
	 marker_width  : integer;
	 marker_height : integer;

	 kata          : gle_shortint; { '1' if kata char set to be used }

	 char_width    : integer;      { current character info }
	 char_height   : integer;
	 char_space    : integer;
	 line_space    : integer;
	 text_sin_dir  : integer;
	 text_cos_dir  : integer;
	 char_just_x   : integer;
	 char_just_y   : integer;

	 clip_limits_xmin : integer;
	 clip_limits_xmax : integer;
	 clip_limits_ymin : integer;
	 clip_limits_ymax : integer;

	 current_cursor_state : gle_shortint;  { off = 0; on = 1 }
	 current_cursor_x     : integer;
	 current_cursor_y     : integer;

	 current_buffer_mode  : gle_shortint;  { buffered = 1; unbuffered = 0 }

	 current_linestyle         : gle_shortint;
	 current_linestyle_pattern : gle_shortint;
	 current_pattern_length    : gle_shortint;
	 current_linestyle_mode    : gle_shortint;

	 current_color_index       : gle_shortint;
	 current_fill_index        : gle_shortint;
	 current_drawing_mode      : gle_shortint;
	 current_linewidth         : gle_shortint;

	 current_polygon_color     : gle_shortint;   { index, -1 if rgb }
	 current_polygon_red       : gle_shortint;
	 current_polygon_green     : gle_shortint;
	 current_polygon_blue      : gle_shortint;

	 { temp storage of some regs }
	 old_a5 : integer;
	 old_a6 : integer;

	 { software text stuff }
	 text_space_x : integer;  { spacing x&y after characters }
	 text_space_y : integer;

	 text_line_x : integer;   { linefeed spacing }
	 text_line_y : integer;
	 cosx_table  : packed array [0..7]  of gle_shortint;
	 cosy_table  : packed array [0..15] of gle_shortint;
	 sinx_table  : packed array [0..7]  of gle_shortint;
	 siny_table  : packed array [0..15] of gle_shortint;

	 calc_text_xform      : gle_shortint; { '1' if text xform needs to be recalculated }
	 calc_soft_text_xform : procedure ( gcb : graphics_control_block_ptr );

	 soft_font_ptr   : anyptr;  { points to font table }

	 soft_text_temp1 : integer;
	 soft_text_temp2 : integer;

	 { software clipping stuff }
	 unclipped_move : procedure ( gcb : graphics_control_block_ptr );
	 unclipped_draw : procedure ( gcb : graphics_control_block_ptr );

	 soft_clip_savex0 : integer;
	 soft_clip_savex1 : integer;
	 soft_clip_savey0 : integer;
	 soft_clip_savey1 : integer;
	 soft_clip_switch : gle_shortint;

	 soft_clip_cpx    : integer;
	 soft_clip_cpy    : integer;
       end;
$page$
{***************************** INPUT ****************************************}

     graphics_input_control_block =
       packed record
	 info1 : integer;   { holds info passed to and from GLE }
	 info2 : integer;
	 info3 : integer;
	 info4 : integer;

	 info_ptr1 : anyptr;

	 get_digitize     : procedure ( gcb : graphics_input_control_block_ptr );
	 inq_p1p2         : procedure ( gcb : graphics_input_control_block_ptr );
	 input_echo       : procedure ( gcb : graphics_input_control_block_ptr );
	 input_escapei    : procedure ( gcb : graphics_input_control_block_ptr );
	 input_escapeo    : procedure ( gcb : graphics_input_control_block_ptr );
	 sample           : procedure ( gcb : graphics_input_control_block_ptr );
	 start_digitize   : procedure ( gcb : graphics_input_control_block_ptr );

	 dummy_xxx        : procedure ( gcb : graphics_input_control_block_ptr );

	 io_inq_timeout      : procedure ( anyvar iocb_ptr : anyptr; var value : integer);
	 io_read             : procedure ( anyvar iocb_ptr, dev_buf_ptr : anyptr );
	 io_set_timeout      : procedure ( anyvar iocb_ptr : anyptr; value : integer);
	 io_term             : procedure ( anyvar iocb_ptr : anyptr );
	 io_write            : procedure ( anyvar iocb_ptr, dev_buf_ptr : anyptr );

	 iocb         : anyptr;       { ptr to io system dependent info }
	 device_buf   : anyptr;       { ptr to device dependent buffer  }
	 dev_dep_stuff: anyptr;       { ptr to device dependent information }
	 device_info  : anyptr;       { pointer to device identifier (e.g. 701) }
	 device_info_char_count : gle_shortint; { # char in device_info }
	 error_return : gle_shortint; { used by some procedures }

	 input_name               : gle_char6;    { name of display device }
	 input_name_char_count    : gle_shortint; { # chars used in display_name }
	 input_handler_name       : gle_char6;    { 'HPGL', 'KNOB', 'GPIS' }
	 input_handler_char_count : gle_shortint; { # chars used in display_handler_name }

	 input_res_x : real;         { points per mm in x direction }
	 input_res_y : real;         { points per mm in y direction }
	 input_min_x : integer;      { input, min and max device coordinates }
	 input_max_x : integer;
	 input_min_y : integer;
	 input_max_y : integer;

	 input_cpx : integer;        { Where device dependent echoes are started }
	 input_cpy : integer;
       end;

       status_def =
    packed record
      bit15,bit14,bit13,bit12,bit11,bit10,bit9,bit8,
      notbusy,bit6,vblank,bit4,hz50,monochrome,bit1,bit0 : boolean;
    end;

       w_array     = packed array[1..maxint] of gle_shortint;


const
  munknown     = 0;
  m9816a       = 1;
  m9826a       = 2;
  m9836a       = 3;
  m9836c       = 4;
  m98627a      = 5;
  m9837a       = 6;
  mgator_c     = 7;  { 7,8,9 new for 3.1 SFB }
  mgatorbox    = 7;
  mbobcat      = 8;
  mbobcatlores = 9;
  mcatseye     = 10; {98549A - SFB 2/9/88}
  mcatseye_hrx = 11; {98548A, 98550A - SFB 2/23/88}
  mvga_woodcut = 12; {CFB 7JUN91}
  mmed_woodcut = 13; {CFB 7JUN91}
  mhrx_woodcut = 14; {CFB 7JUN91}
  mvgam_woodcut= 15; {CFB 30JUL91}
  mhrxm_woodcut= 16; {CFB 30JUL91}

  no  = 0;
  yes = 1;

var

  rule_reg : ^gle_shortint;    { [HEX('564008')] : gle_shortint;}
  width_reg : ^gle_shortint;   { [HEX('56400C')] : gle_shortint;}
  inq_buffer: ^gle_shortint;   { [HEX('564100')] : packed array [0..maxint] of
				     gle_shortint;}
  crt  : ^w_array;             { [ HEX('566000') ] : word_array;}
  status : ^status_def;        { [ hex('564000') ] : status_def;}
  ww_reg : ^gle_shortint;      { [ hex('564108') ] : gle_shortint;}
  blink1_reg  [ hex('564100') ] : gle_shortint;
  blink2_reg [ hex('564104') ] : gle_shortint;
  write_to_status : boolean;
  control_space : integer;

implement

$page$
end. { GLE_TYPES }
$LIST ON$

@


56.2
log
@
pws2rcs automatic delta on Wed Jan 27 11:57:27 MST 1993
@
text
@d1 332
@


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@a0 332
$TABLES$
$LIST OFF$
{                                                                           }
{ Graphics Low End                                                          }
{                                                                           }
{ Module    = GLE_TYPES                                                     }
{ Programer = BJS                                                           }
{ Date      = 10- 5-82                                                      }
{                                                                           }
{ Purpose: To define the graphics control blocks used by GLE.               }

{ Rev history                                                               }
{  Created  - 10- 5-82  BJS                                                 }
{  Modified - 11-29-82  BJS  Clean up and changed booleans to shortints     }
{  Modified - 10- 8-84  SFB  Gatorbox/Bobcat types added                    }

{     (c) Copyright Hewlett-Packard Company, 1985.
      All rights are reserved.  Copying or other
      reproduction of this program except for archival
      purposes is prohibited without the prior
      written consent of Hewlett-Packard Company.


		  RESTRICTED RIGHTS LEGEND

      Use, duplication, or disclosure by the Government
      is subject to restrictions as set forth in
      paragraph (b) (3) (B) of the Rights in Technical
      Data and Computer Software clause in
      DAR 7-104.9(a).

      HEWLETT-PACKARD COMPANY
      Fort Collins, Colorado                              }

$tables on$
$modcal$
$include 'OPTIONS'$ { compiler options }
$linenum 1000$

module gle_types;

export

type gle_byte = -128 .. 127;
     gle_shortint = -32768 .. 32767;

     anychar = packed array [1..maxint] of char;
     anychar_ptr = ^anychar;

     gle_char6 = packed array [1..6] of char;

     graphics_control_block_ptr = ^graphics_control_block;
     graphics_input_control_block_ptr = ^graphics_input_control_block;
$page$
{****************************** OUTPUT **************************************}

     graphics_control_block =
       packed record
	 info1 : integer;     { holds info passed to and from GLE }
	 info2 : integer;
	 info3 : integer;
	 info4 : integer;

	 info_ptr1 : anyptr;
	 info_ptr2 : anyptr;

	 await_blanking      : procedure ( gcb : graphics_control_block_ptr );
	 buffer_mode         : procedure ( gcb : graphics_control_block_ptr );
	 char_size           : procedure ( gcb : graphics_control_block_ptr );
	 clear               : procedure ( gcb : graphics_control_block_ptr );
	 clip_limits         : procedure ( gcb : graphics_control_block_ptr );
	 cursor              : procedure ( gcb : graphics_control_block_ptr );
	 define_color_map    : procedure ( gcb : graphics_control_block_ptr );
	 define_drawing_mode : procedure ( gcb : graphics_control_block_ptr );
	 draw                : procedure ( gcb : graphics_control_block_ptr );
	 fill_index_color    : procedure ( gcb : graphics_control_block_ptr );
	 flush_buffer        : procedure ( gcb : graphics_control_block_ptr );
	 get_color_map       : procedure ( gcb : graphics_control_block_ptr );
	 get_raster          : procedure ( gcb : graphics_control_block_ptr );
	 get_polygon_info    : procedure ( gcb : graphics_control_block_ptr );
	 gload               : procedure ( gcb : graphics_control_block_ptr );
	 graphics_on_off     : procedure ( gcb : graphics_control_block_ptr );
	 gstore              : procedure ( gcb : graphics_control_block_ptr );
	 index_color         : procedure ( gcb : graphics_control_block_ptr );
	 inq_p1p2            : procedure ( gcb : graphics_control_block_ptr );
	 linewidth           : procedure ( gcb : graphics_control_block_ptr );
	 linestyle           : procedure ( gcb : graphics_control_block_ptr );
	 marker              : procedure ( gcb : graphics_control_block_ptr );
	 marker_size         : procedure ( gcb : graphics_control_block_ptr );
	 move                : procedure ( gcb : graphics_control_block_ptr );
	 output_escapei      : procedure ( gcb : graphics_control_block_ptr );
	 output_escapeo      : procedure ( gcb : graphics_control_block_ptr );
	 polygon             : procedure ( gcb : graphics_control_block_ptr );
	 set_marker          : procedure ( gcb : graphics_control_block_ptr );
	 text                : procedure ( gcb : graphics_control_block_ptr );
	 text_dir            : procedure ( gcb : graphics_control_block_ptr );
	 text_just           : procedure ( gcb : graphics_control_block_ptr );
	 text_spacing        : procedure ( gcb : graphics_control_block_ptr );

	 dummy_xxx           : procedure ( gcb : graphics_control_block_ptr );

	 io_inq_timeout      : procedure ( anyvar iocb_ptr : anyptr; var value : integer);
	 io_read             : procedure ( anyvar iocb_ptr, dev_buf_ptr : anyptr );
	 io_set_timeout      : procedure ( anyvar iocb_ptr : anyptr; value : integer);
	 io_term             : procedure ( anyvar iocb_ptr : anyptr );
	 io_write            : procedure ( anyvar iocb_ptr, dev_buf_ptr : anyptr );

	 iocb          : anyptr;       { ptr to io system dependent info }
	 device_buf    : anyptr;       { ptr to device dependent buffer  }
	 dev_dep_stuff : anyptr;       { ptr to device dependent information }
	 device_info   : anyptr;       { pointer to device identifier (e.g. 3) }
	 device_info_char_count : gle_shortint; { # char in device_info }
	 error_return  : gle_shortint; { used by some procedures }
	 spooling      : gle_shortint; { '1' if output goes to a file }

	 display_name               : gle_char6;    { name of display device }
	 display_name_char_count    : gle_shortint; { # chars used in display_name }
	 display_handler_name       : gle_char6;    { 'HPGL', 'RASTER', 'GPIS' }
	 display_handler_char_count : gle_shortint; { # chars used in display_handler_name }

	 display_res_x : real;        { points per mm in x direction }
	 display_res_y : real;        { points per mm in y direction }
	 display_min_x : integer;     { minimum x device coordinate }
	 display_min_y : integer;     { minimum y device coordinate }
	 display_max_x : integer;     { maximum x device coordinate }
	 display_max_y : integer;     { maximum y device coordinate }

	 { general info stuff }
	 background           : gle_shortint;  { '1' if drawing in color 0 supported, '0' if not }
	 complement_support   : gle_shortint;  { '1' if complement drawing supported }
	 non_dominant_support : gle_shortint;  { '1' if non-dominant drawing supported }
	 erase_support        : gle_shortint;  { '1' if erase drawing supported }
	 color_map_support    : gle_shortint;  { '1' if color map supported }
	 polygon_support      : gle_shortint;  { '1' if polygons are supported }
	 redef_background     : gle_shortint;  { '1' if color 0 can be changed }
	 polygon_fill_factor  : gle_shortint;  { aprox size of a line in device units }
	 polygon_solid_fill   : gle_shortint;  { fill line spacing which is used for doild fill }
	 dither_support       : gle_shortint;  { '1' if polygons use dither }
	 pallette             : integer;   { number of distinct colors supported  }
	 gamut                : integer;   { number of colors which can appear at same time}
	 cont_linestyles : gle_shortint;   { number of continuous linestyles supported }
	 vect_linestyles : gle_shortint;   { number of vector adjusted linestyles supported }
	 linewidths : gle_shortint;   { number of linewidths supported }
	 char_sizes : gle_shortint;   { number of character sizes supported,
					-1 for continuously varying sizes }

	 { current value information }
	 current_pos_x : integer;      { last point used }
	 current_pos_y : integer;
	 end_x         : integer;
	 end_y         : integer;

	 marker_type   : gle_shortint;
	 marker_width  : integer;
	 marker_height : integer;

	 kata          : gle_shortint; { '1' if kata char set to be used }

	 char_width    : integer;      { current character info }
	 char_height   : integer;
	 char_space    : integer;
	 line_space    : integer;
	 text_sin_dir  : integer;
	 text_cos_dir  : integer;
	 char_just_x   : integer;
	 char_just_y   : integer;

	 clip_limits_xmin : integer;
	 clip_limits_xmax : integer;
	 clip_limits_ymin : integer;
	 clip_limits_ymax : integer;

	 current_cursor_state : gle_shortint;  { off = 0; on = 1 }
	 current_cursor_x     : integer;
	 current_cursor_y     : integer;

	 current_buffer_mode  : gle_shortint;  { buffered = 1; unbuffered = 0 }

	 current_linestyle         : gle_shortint;
	 current_linestyle_pattern : gle_shortint;
	 current_pattern_length    : gle_shortint;
	 current_linestyle_mode    : gle_shortint;

	 current_color_index       : gle_shortint;
	 current_fill_index        : gle_shortint;
	 current_drawing_mode      : gle_shortint;
	 current_linewidth         : gle_shortint;

	 current_polygon_color     : gle_shortint;   { index, -1 if rgb }
	 current_polygon_red       : gle_shortint;
	 current_polygon_green     : gle_shortint;
	 current_polygon_blue      : gle_shortint;

	 { temp storage of some regs }
	 old_a5 : integer;
	 old_a6 : integer;

	 { software text stuff }
	 text_space_x : integer;  { spacing x&y after characters }
	 text_space_y : integer;

	 text_line_x : integer;   { linefeed spacing }
	 text_line_y : integer;
	 cosx_table  : packed array [0..7]  of gle_shortint;
	 cosy_table  : packed array [0..15] of gle_shortint;
	 sinx_table  : packed array [0..7]  of gle_shortint;
	 siny_table  : packed array [0..15] of gle_shortint;

	 calc_text_xform      : gle_shortint; { '1' if text xform needs to be recalculated }
	 calc_soft_text_xform : procedure ( gcb : graphics_control_block_ptr );

	 soft_font_ptr   : anyptr;  { points to font table }

	 soft_text_temp1 : integer;
	 soft_text_temp2 : integer;

	 { software clipping stuff }
	 unclipped_move : procedure ( gcb : graphics_control_block_ptr );
	 unclipped_draw : procedure ( gcb : graphics_control_block_ptr );

	 soft_clip_savex0 : integer;
	 soft_clip_savex1 : integer;
	 soft_clip_savey0 : integer;
	 soft_clip_savey1 : integer;
	 soft_clip_switch : gle_shortint;

	 soft_clip_cpx    : integer;
	 soft_clip_cpy    : integer;
       end;
$page$
{***************************** INPUT ****************************************}

     graphics_input_control_block =
       packed record
	 info1 : integer;   { holds info passed to and from GLE }
	 info2 : integer;
	 info3 : integer;
	 info4 : integer;

	 info_ptr1 : anyptr;

	 get_digitize     : procedure ( gcb : graphics_input_control_block_ptr );
	 inq_p1p2         : procedure ( gcb : graphics_input_control_block_ptr );
	 input_echo       : procedure ( gcb : graphics_input_control_block_ptr );
	 input_escapei    : procedure ( gcb : graphics_input_control_block_ptr );
	 input_escapeo    : procedure ( gcb : graphics_input_control_block_ptr );
	 sample           : procedure ( gcb : graphics_input_control_block_ptr );
	 start_digitize   : procedure ( gcb : graphics_input_control_block_ptr );

	 dummy_xxx        : procedure ( gcb : graphics_input_control_block_ptr );

	 io_inq_timeout      : procedure ( anyvar iocb_ptr : anyptr; var value : integer);
	 io_read             : procedure ( anyvar iocb_ptr, dev_buf_ptr : anyptr );
	 io_set_timeout      : procedure ( anyvar iocb_ptr : anyptr; value : integer);
	 io_term             : procedure ( anyvar iocb_ptr : anyptr );
	 io_write            : procedure ( anyvar iocb_ptr, dev_buf_ptr : anyptr );

	 iocb         : anyptr;       { ptr to io system dependent info }
	 device_buf   : anyptr;       { ptr to device dependent buffer  }
	 dev_dep_stuff: anyptr;       { ptr to device dependent information }
	 device_info  : anyptr;       { pointer to device identifier (e.g. 701) }
	 device_info_char_count : gle_shortint; { # char in device_info }
	 error_return : gle_shortint; { used by some procedures }

	 input_name               : gle_char6;    { name of display device }
	 input_name_char_count    : gle_shortint; { # chars used in display_name }
	 input_handler_name       : gle_char6;    { 'HPGL', 'KNOB', 'GPIS' }
	 input_handler_char_count : gle_shortint; { # chars used in display_handler_name }

	 input_res_x : real;         { points per mm in x direction }
	 input_res_y : real;         { points per mm in y direction }
	 input_min_x : integer;      { input, min and max device coordinates }
	 input_max_x : integer;
	 input_min_y : integer;
	 input_max_y : integer;

	 input_cpx : integer;        { Where device dependent echoes are started }
	 input_cpy : integer;
       end;

       status_def =
    packed record
      bit15,bit14,bit13,bit12,bit11,bit10,bit9,bit8,
      notbusy,bit6,vblank,bit4,hz50,monochrome,bit1,bit0 : boolean;
    end;

       w_array     = packed array[1..maxint] of gle_shortint;


const
  munknown     = 0;
  m9816a       = 1;
  m9826a       = 2;
  m9836a       = 3;
  m9836c       = 4;
  m98627a      = 5;
  m9837a       = 6;
  mgator_c     = 7;  { 7,8,9 new for 3.1 SFB }
  mgatorbox    = 7;
  mbobcat      = 8;
  mbobcatlores = 9;
  mcatseye     = 10; {98549A - SFB 2/9/88}
  mcatseye_hrx = 11; {98548A, 98550A - SFB 2/23/88}
  mvga_woodcut = 12; {CFB 7JUN91}
  mmed_woodcut = 13; {CFB 7JUN91}
  mhrx_woodcut = 14; {CFB 7JUN91}
  mvgam_woodcut= 15; {CFB 30JUL91}
  mhrxm_woodcut= 16; {CFB 30JUL91}

  no  = 0;
  yes = 1;

var

  rule_reg : ^gle_shortint;    { [HEX('564008')] : gle_shortint;}
  width_reg : ^gle_shortint;   { [HEX('56400C')] : gle_shortint;}
  inq_buffer: ^gle_shortint;   { [HEX('564100')] : packed array [0..maxint] of
				     gle_shortint;}
  crt  : ^w_array;             { [ HEX('566000') ] : word_array;}
  status : ^status_def;        { [ hex('564000') ] : status_def;}
  ww_reg : ^gle_shortint;      { [ hex('564108') ] : gle_shortint;}
  blink1_reg  [ hex('564100') ] : gle_shortint;
  blink2_reg [ hex('564104') ] : gle_shortint;
  write_to_status : boolean;
  control_space : integer;

implement

$page$
end. { GLE_TYPES }
$LIST ON$

@


55.2
log
@Added support for High-res and Greyscale - CFB
@
text
@@


55.1
log
@Automatic bump of revision number for PWS version 3.25A
@
text
@d307 2
@


54.3
log
@removed . from include file names - CFB
@
text
@@


54.2
log
@Added support for WOODCUT graphics hardware - CFB
@
text
@d37 1
a37 1
$include 'OPTIONS.'$ { compiler options }
@


54.1
log
@Automatic bump of revision number for PWS version 3.24
@
text
@d37 1
a37 1
$include 'OPTIONS'$ { compiler options }
d304 3
@


53.1
log
@Automatic bump of revision number for PWS version 3.24B
@
text
@@


52.1
log
@Automatic bump of revision number for PWS version 3.24A
@
text
@@


51.1
log
@Automatic bump of revision number for PWS version 3.24d
@
text
@@


50.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@@


49.1
log
@Automatic bump of revision number for PWS version 3.24b
@
text
@@


48.1
log
@Automatic bump of revision number for PWS version 3.24a
@
text
@@


47.1
log
@Automatic bump of revision number for PWS version 3.23
@
text
@@


46.1
log
@Automatic bump of revision number for PWS version 3.23
@
text
@@


45.1
log
@Automatic bump of revision number for PWS version 3.23C
@
text
@@


44.1
log
@Automatic bump of revision number for PWS version 3.23B
@
text
@@


43.1
log
@Automatic bump of revision number for PWS version 3.23aA
@
text
@@


42.1
log
@Automatic bump of revision number for PWS version 3.23e
@
text
@@


41.1
log
@Automatic bump of revision number for PWS version 3.23d
@
text
@@


40.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@@


39.1
log
@Automatic bump of revision number for PWS version 3.23b
@
text
@@


38.1
log
@Automatic bump of revision number for PWS version 3.23a
@
text
@@


37.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@@


36.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


35.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


34.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


33.1
log
@Automatic bump of revision number for PWS version 3.22D
@
text
@@


32.1
log
@Automatic bump of revision number for PWS version 3.22C
@
text
@@


31.1
log
@Automatic bump of revision number for PWS version 3.22B
@
text
@@


30.1
log
@Automatic bump of revision number for PWS version 3.22A
@
text
@@


29.1
log
@Automatic bump of revision number for PWS version 3.22b
@
text
@@


28.1
log
@Automatic bump of revision number for PWS version 3.3b
@
text
@@


27.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@@


26.1
log
@Automatic bump of revision number for PWS version 3.3 Synch
@
text
@@


25.2
log
@For CATSEYE support
@
text
@@


25.1
log
@Automatic bump of revision number for PWS version 3.2Y
@
text
@d302 2
a303 1
  mcatseye     = 10; {only LCC CATSEYE SFB 9/09/86}
@


24.1
log
@Automatic bump of revision number for PWS version 3.2
@
text
@@


23.1
log
@Automatic bump of revision number for PWS version 3.2P
@
text
@@


22.1
log
@Automatic bump of revision number for PWS version 3.2N
@
text
@@


21.1
log
@Automatic bump of revision number for PWS version 3.2M
@
text
@@


20.1
log
@Automatic bump of revision number for PWS version 3.2L
@
text
@@


19.1
log
@Automatic bump of revision number for PWS version 3.2K
@
text
@@


18.1
log
@Automatic bump of revision number for PWS version 3.2J
@
text
@@


17.1
log
@Automatic bump of revision number for PWS version 3.2I+
@
text
@@


16.1
log
@Automatic bump of revision number for PWS version 3.2I
@
text
@@


15.1
log
@Automatic bump of revision number for PWS version 3.2H
@
text
@@


14.1
log
@Automatic bump of revision number for PWS version 3.2G
@
text
@@


13.1
log
@Automatic bump of revision number for PWS version 3.2F
@
text
@@


12.1
log
@Automatic bump of revision number for PWS version 3.2E
@
text
@@


11.1
log
@Automatic bump of revision number for PWS version 3.2D
@
text
@@


10.1
log
@Automatic bump of revision number for PWS version 3.2C
@
text
@@


9.1
log
@Automatic bump of revision number for PWS version 3.2B
@
text
@@


8.1
log
@Automatic bump of revision number for PWS version 3.2A
@
text
@@


7.1
log
@Automatic bump of revision number for PWS version 3.2l
@
text
@@


6.1
log
@Automatic bump of revision number for PWS version 3.2k
@
text
@@


5.2
log
@Changes from Scott Bayes
@
text
@@


5.1
log
@Automatic bump of revision number for PWS version 3.2j
@
text
@d302 1
a302 1

@


4.1
log
@Automatic bump of revision number for PWS version 3.2i
@
text
@@


3.3
log
@Revert to 3.1 version so we can turn 3.2i.
@
text
@@


3.2
log
@Changes from Scott Bayes.
@
text
@d302 1
a302 1
  mcatseye     = 10; {only LCC CATSEYE SFB 9/09/86}
@


3.1
log
@Automatic bump of revision number for PWS version 3.2h
@
text
@d302 1
a302 1

@


2.1
log
@Auto bump rev number to 2.1 for sys 3.2e.
@
text
@@


1.1
log
@Initial revision
@
text
@@
