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


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

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

56.1
date     91.11.05.09.48.43;  author jwh;  state Exp;
branches ;
next     55.1;

55.1
date     91.08.25.10.25.11;  author jwh;  state Exp;
branches ;
next     54.1;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

14.1
date     87.04.01.15.36.11;  author jws;  state Exp;
branches ;
next     13.2;

13.2
date     87.04.01.10.27.56;  author jws;  state Exp;
branches ;
next     13.1;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.1
date     86.06.30.15.32.35;  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
@{                                                                            }
{ Pascal work station graphics library                                       }
{                                                                            }
{ Module    = DGL_INQ                                                        }
{ Programer = BJS                                                            }
{ Date      = 4/13/82                                                        }
{ Modified    5/01/85 SFB - Added bobcat/gatorbox support                    }

{ Purpose:    Holds all code for user inquires to the DGL system.            }

{     (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                              }

$modcal$
$search 'TYPES',
	'DGL_VARS',
	'GEN',
	'GLE_LIB'$
$include 'OPTIONS'$
$linenum 6000$
$ALLOW_PACKED ON$ {JWS 3/31/87}

module dgl_inq;

import dgl_types;

export

procedure inq_ws (       opcode : integer;
			 ssize  : integer;
			 isize  : integer;
			 rsize  : integer;
		  anyvar slist  : gchar_list;
		  anyvar ilist  : gint_list;
		  anyvar rlist  : greal_list;
		     var ierr   : integer);

procedure inq_color_table ( index : integer;
			    var parm1 : real;
			    var parm2 : real;
			    var parm3 : real);

procedure inq_pgn_table ( index : integer;
			var pdensity : real;
			var porient : real;
			var pedge   : integer);

implement

import dgl_vars,
       gle_ras_out,
       dgl_gen,
       GLE_HPHIL_ABSI {for dvr_rec};


procedure inq_color_table ( index : integer;
			    var parm1 : real;
			    var parm2 : real;
			    var parm3 : real);

{ Purpose:  To return information about a color table location            }

begin
  ck_system_init;
  ck_display_init;
  with gcb^,gle_gcb^ do         {SFB NOV 84 - added gatorbox/bobcat}
    begin
      if color_table_size = 0 then error(err_no_ctable);
      if (index < 0) or (index > color_table_size) then error(err_bad_parms);
      if not realmap then
       with big_color_table_def(color_table_ptr^)[index] do
	if dgl_current_color_model = 1 { rgb } then
	 begin
	   parm1 := dglfloat(red);
	   parm2 := dglfloat(green);
	   parm3 := dglfloat(blue);
	 end
	else            { not rgb }
	 convert_rgb_to_hsl(dglfloat(red),dglfloat(green),dglfloat(blue),
			    parm1,parm2,parm3)
      else             { not gatorbox or bobcat }
       with color_table_ptr^[index] do
	if dgl_current_color_model = 1 { rgb } then
	 begin
	   parm1 := red;
	   parm2 := green;
	   parm3 := blue;
	 end
	else           { not rgb }
	 convert_rgb_to_hsl(red,green,blue,parm1,parm2,parm3);
    end;        { with gcb^, gle_gcb^ do }
end;

procedure inq_pgn_table ( index : integer;
			var pdensity : real;
			var porient : real;
			var pedge   : integer);

{ Purpose:  To return information about a polygon table location            }

begin
  ck_system_init;
  ck_display_init;

  with gcb^ do
    begin
      if (index < 1) or (index > number_polygon_styles) then error(err_bad_parms);
      with poly_table_ptr^ [ index ] do
	begin
	  pdensity := density;
	  porient := orient;
	  if edge then pedge := 1
	  else pedge := 0;
	end;
    end;
end;

procedure inq_ws (       opcode : integer;
			 ssize  : integer;
			 isize  : integer;
			 rsize  : integer;
		  anyvar slist  : gchar_list;
		  anyvar ilist  : gint_list;
		  anyvar rlist  : greal_list;
		     var ierr   : integer);

{ Purpose:  To return information some part of the DGL graphics system.   }

label 1;

const numopcodes = 40;

type
  opcode_type_def = (inq_250,   inq_251,   inq_252,   inq_253,   inq_254,
		     inq_255,   inq_256,   inq_257,   inq_258,   inq_259,
		     inq_450,   inq_451,
		     inq_1050,  inq_1051,  inq_1052,  inq_1053,  inq_1054,
				inq_1056,  inq_1057,             inq_1059,
		     inq_1060,             inq_1062,  inq_1063,  inq_1064,
		     inq_1065,  inq_1066,  inq_1067,  inq_1068,  inq_1069,
		     inq_1070,  inq_1071,  inq_1072,  inq_1073,  inq_1074,
		     inq_1075,  inq_1076,
		     inq_11050, inq_11052,
		     inq_12050,
		     inq_13052                                             );

  opcode_def = 0..32767;
  opcode_list_entry_def = packed record
      opcode      : opcode_def;
      opcode_type : opcode_type_def;
    end;
  opcode_list_def = packed array [1..numopcodes] of opcode_list_entry_def;

const
  opcode_list = opcode_list_def[
     opcode_list_entry_def[opcode : 250,   opcode_type : inq_250   ],
     opcode_list_entry_def[opcode : 251,   opcode_type : inq_251   ],
     opcode_list_entry_def[opcode : 252,   opcode_type : inq_252   ],
     opcode_list_entry_def[opcode : 253,   opcode_type : inq_253   ],
     opcode_list_entry_def[opcode : 254,   opcode_type : inq_254   ],
     opcode_list_entry_def[opcode : 255,   opcode_type : inq_255   ],
     opcode_list_entry_def[opcode : 256,   opcode_type : inq_256   ],
     opcode_list_entry_def[opcode : 257,   opcode_type : inq_257   ],
     opcode_list_entry_def[opcode : 258,   opcode_type : inq_258   ],
     opcode_list_entry_def[opcode : 259,   opcode_type : inq_259   ],
     opcode_list_entry_def[opcode : 450,   opcode_type : inq_450   ],
     opcode_list_entry_def[opcode : 451,   opcode_type : inq_451   ],
     opcode_list_entry_def[opcode : 1050,  opcode_type : inq_1050  ],
     opcode_list_entry_def[opcode : 1051,  opcode_type : inq_1051  ],
     opcode_list_entry_def[opcode : 1052,  opcode_type : inq_1052  ],
     opcode_list_entry_def[opcode : 1053,  opcode_type : inq_1053  ],
     opcode_list_entry_def[opcode : 1054,  opcode_type : inq_1054  ],
     opcode_list_entry_def[opcode : 1056,  opcode_type : inq_1056  ],
     opcode_list_entry_def[opcode : 1057,  opcode_type : inq_1057  ],
     opcode_list_entry_def[opcode : 1059,  opcode_type : inq_1059  ],
     opcode_list_entry_def[opcode : 1060,  opcode_type : inq_1060  ],
     opcode_list_entry_def[opcode : 1062,  opcode_type : inq_1062  ],
     opcode_list_entry_def[opcode : 1063,  opcode_type : inq_1063  ],
     opcode_list_entry_def[opcode : 1064,  opcode_type : inq_1064  ],
     opcode_list_entry_def[opcode : 1065,  opcode_type : inq_1065  ],
     opcode_list_entry_def[opcode : 1066,  opcode_type : inq_1066  ],
     opcode_list_entry_def[opcode : 1067,  opcode_type : inq_1067  ],
     opcode_list_entry_def[opcode : 1068,  opcode_type : inq_1068  ],
     opcode_list_entry_def[opcode : 1069,  opcode_type : inq_1069  ],
     opcode_list_entry_def[opcode : 1070,  opcode_type : inq_1070  ],
     opcode_list_entry_def[opcode : 1071,  opcode_type : inq_1071  ],
     opcode_list_entry_def[opcode : 1072,  opcode_type : inq_1072  ],
     opcode_list_entry_def[opcode : 1073,  opcode_type : inq_1073  ],
     opcode_list_entry_def[opcode : 1074,  opcode_type : inq_1074  ],
     opcode_list_entry_def[opcode : 1075,  opcode_type : inq_1075  ],
     opcode_list_entry_def[opcode : 1076,  opcode_type : inq_1076  ],
     opcode_list_entry_def[opcode : 11050, opcode_type : inq_11050 ],
     opcode_list_entry_def[opcode : 11052, opcode_type : inq_11052 ],
     opcode_list_entry_def[opcode : 12050, opcode_type : inq_12050 ],
     opcode_list_entry_def[opcode : 13052, opcode_type : inq_13052 ]];

var
  index : gshortint;
  workstring : string[10];
  strcnt : integer;

begin
  ck_system_init;

  ierr := opcode_ck ( opcode,isize,rsize);  { ck for good parms }

  { Find opcode in list }
  for index := 1 to numopcodes do
    if opcode_list[index].opcode = opcode then goto 1;
  ierr := 1;

1:

  if ierr = 0 then
    with gcb^,gle_gcb^ do
      case opcode_list[index].opcode_type of
	inq_250 : { return cell size (250) }
	  begin
	    rlist[1] := gcb^.dgl_char_width;
	    rlist[2] := gcb^.dgl_char_height;
	  end;

	inq_251 : { return marker cell size (251) }
	  begin
	    rlist[1] := marker_size_x * xdtow_scale;
	    rlist[2] := marker_size_y * ydtow_scale;
	  end;

	inq_252 : { return display resolution (252) }
	  if disp_init then
	    begin
	      with gcb^,raster_device_rec_ptr(dev_dep_stuff)^ do
		begin
		  rlist[1] := display_res_x;
		  rlist[2] := display_res_y;
		end;
	    end
	  else
	    begin
	      rlist[1] := 0;
	      rlist[2] := 0;
	    end;

	inq_253 : { return max display dimensions (253) }
	  if disp_init then
	    with max_disp_lim do
	      begin
	      with gcb^,raster_device_rec_ptr(dev_dep_stuff)^ do
		begin
		  rlist[1] := (xmax - xmin) / display_res_x;
		  rlist[2] := (ymax - ymin) / display_res_y;
		end;
	      end
	  else
	    begin
	      rlist[1] := 0;
	      rlist[2] := 0;
	    end;

	inq_254 : { return aspect ratios (254) }
	  begin
	    rlist[1] := aspect_ratio;
	    rlist[2] := log_aspect;
	  end;

	inq_255 : { return locator resolution (255) }
	  if loc_init then
	    with gle_gcbi^ do
	      begin
		rlist[1] := input_res_x;
		rlist[2] := input_res_y;
	      end
	  else
	    begin
	      rlist[1] := 0;
	      rlist[2] := 0;
	    end;

	inq_256 : { max locator dimensions (256) }
	  if loc_init then
	    with gle_gcbi^, max_loc_lim do
	      begin
		rlist[1] := (xmax - xmin) / input_res_x;
		rlist[2] := (ymax - ymin) / input_res_y;
	      end
	  else
	    begin
	      rlist[1] := 0;
	      rlist[2] := 0;
	    end;

	inq_257 : { locator echo pos (257) }
	  begin
	    rlist[1] := w_loc_echo_x;
	    rlist[2] := w_loc_echo_y;
	  end;

	inq_258 : { current virtual limits (258) }
	  with cur_vir_lim do
	    begin
	      rlist[1] := xlim;
	      rlist[2] := ylim;
	    end;

	inq_259 : { return cp (259) }
	  begin
	    if int_cp then
	      begin
		rlist[1] := world_int_cpx;
		rlist[2] := world_int_cpy;
	      end
	    else
	      begin
		rlist[1] := world_real_cpx;
		rlist[2] := world_real_cpy;
	      end;
	  end;

	inq_450: { return window limits (450) }
	  with window_lim do
	    begin
	      rlist[1] := xmin;
	      rlist[2] := xmax;
	      rlist[3] := ymin;
	      rlist[4] := ymax;
	    end;

	inq_451: { return viewport limits (451) }
	  with viewport_lim do
	    begin
	      rlist[1] := xmin;
	      rlist[2] := xmax;
	      rlist[3] := ymin;
	      rlist[4] := ymax;
	    end;

	inq_1050: { Clipping supported at physical limits (1050) }
	  begin
	    if clipping_support then ilist [1] := 1
	    else                     ilist [1] := 0;
	  end;

	inq_1051: { return display justification info (1051) }
	  begin
	    if disp_just = centered then ilist [1] := 0
	    else                         ilist [1] := 1;
	  end;

	inq_1052: { return info about drawing in the background color (1052) }
	  with gle_gcb^ do
	    begin
	      if disp_init then ilist [1] := background
	      else              ilist [1] := 0;
	    end;

	inq_1053: { return color palette info (1053) }
	  begin
	    if disp_init then ilist[1] := pallette
	    else              ilist[1] := 0;
	  end;

	inq_1054: { return color gamut info (1054) }
	  begin
	    if disp_init then ilist[1] := gamut
	    else              ilist[1] := 0;
	  end;

	inq_1056: { return number linestyles (1056) }
	  begin
	    if disp_init then ilist[1] := number_dgl_linestyles
	    else              ilist[1] := 0;
	  end;

	inq_1057: { return number linewidths (1057) }
	  begin
	    if disp_init then ilist[1] := linewidths
	    else              ilist[1] := 0;
	  end;

	inq_1059: { return number markers (1059) }
	  begin
	    if disp_init then ilist[1] := number_markers
	    else              ilist[1] := 0;
	  end;

	inq_1060: { return current color (1060) }
	  begin
	    ilist[1] := dgl_current_color;
	  end;

	inq_1062: { return current linestyle (1062) }
	  begin
	    ilist[1] := dgl_current_linestyle;
	  end;

	inq_1063: { return current linewidth (1063) }
	  begin
	    ilist[1] := dgl_current_linewidth;
	  end;

	inq_1064: { return current timming mode }
	  begin
	    ilist[1] := dgl_current_timming_mode;
	  end;

	inq_1065: { return number polygon styles supported ( 1065) }
	  begin
	    if disp_init then ilist[1] := number_polygon_styles
	    else              ilist[1] := 0;
	  end;

	inq_1066: { return current polygon color (1066) }
	  begin
	    ilist[1] := dgl_current_polygon_color;
	  end;

	inq_1067: { return current polygon style (1067) }
	  begin
	    ilist[1] := dgl_current_polygon_style;
	  end;

	inq_1068: { return maximum polygon vertices supported (1068) }
	  begin
	    if disp_init then ilist[1] := maximum_polygon_vertices
	    else              ilist[1] := 0;
	  end;

	inq_1069: { retroactive polygon support (1069) }
	  begin
	    if disp_init and retroactive_polygon_support then ilist[1] := 1
	    else                                              ilist[1] := 0;
	  end;

	inq_1070: { device dependent polygons ( 1070 ) }
	  begin
	    if disp_init and (polygon_support = 1) then ilist [1] := 1
	    else                                        ilist [1] := 0;
	  end;

	inq_1071: { retroactive color support ( 1071 ) }
	  begin
	    if disp_init and retroactive_color_support then ilist [1] := 1
	    else                                            ilist [1] := 0;
	  end;

	inq_1072: { redef of background ( 1072 ) }
	  begin
	    if disp_init then ilist [1] := redef_background
	    else              ilist [1] := 0;
	  end;

	inq_1073: { redef of color capability table ( 1073 ) }
	  begin
	    if disp_init and (color_table_size > 0) then ilist [1] := 1
	    else                                         ilist [1] := 0;
	  end;

	inq_1074: { return current color model ( 1074 ) }
	  begin
	    ilist [1] := dgl_current_color_model;
	  end;

	inq_1075: { return color capability table size ( 1075 ) }
	  ilist [1] := color_table_size;

	inq_1076: { return current polygon linestyle ( 1076 ) }
	  ilist [1] := dgl_current_polygon_linestyle;

	inq_11050: { return display device association (11050) }
	  begin
	    if not disp_init then
	      begin
		if ssize >= 1 then
		  begin
		    slist[1] := '0';
		    ilist[1] := 1;
		  end
		else ierr := 4;
	      end
	    else
	    if disp_file_name <> '' then
	      begin
		for index := 1 to strlen(disp_file_name) do
		  slist[index] := disp_file_name[index];
		ilist [1] := strlen(disp_file_name);
	      end
	    else
	      begin
		setstrlen(workstring,0);
		strwrite(workstring,1,strcnt,disp_dev_adr:0);
		strcnt := strcnt - 1;
		if ssize >= strcnt then
		  begin
		    for index := 1 to strcnt do
		      slist[index] := workstring[index];
		    ilist[1] := strcnt;
		  end
		else
		  ierr := 4;
	      end;
	  end;

	inq_11052: { return locator device association (11052) }
	  begin
	    if not loc_init then
	      begin
		if ssize >= 1 then
		  begin
		    slist[1] := '0';
		    ilist[1] := 1;
		  end
		else ierr := 4;
	      end
	    else
	      begin
		setstrlen(workstring,0);
		strwrite(workstring,1,strcnt,loc_dev_adr:0);
		strcnt := strcnt - 1;
		if ssize >= strcnt then
		  begin
		    for index := 1 to strcnt do
		      slist[index] := workstring[index];
		    ilist[1] := strcnt;
		  end
		else
		  ierr := 4;
	      end;
	  end;

	inq_12050: { return display info (12050) }
	  begin
	    if not disp_init then
	      begin
		if ssize >= 6 then
		  begin
		    for index := 1 to 6 do
		      slist[index] := ' ';
		    ilist[1] := 6;
		    ilist[2] := 0; { disabled }
		  end
		else ierr := 4;
	      end
	    else
	      begin
		if ssize >= display_name_char_count then
		  begin
		    for index := 1 to display_name_char_count do
		      slist[index] := display_name[index];
		    ilist[1] := display_name_char_count;
		    ilist[2] := 1; { enabled }
		  end
		else
		  ierr := 4;
	      end;
	  end;

	inq_13052: { return locator info (13052) }
	  begin
	    if not loc_init then
	      begin
		if ssize >= 6 then
		  begin
		    for index := 1 to 6 do
		      slist[index] := ' ';
		    ilist[1] := 6;
		    ilist[2] := 0; { disabled }
		    ilist[3] := 0;
		  end
		else ierr := 4;
	      end
	    else
	      begin
		with gle_gcbi^ do
		  if ssize >= input_name_char_count then
		    begin
		      for index := 1 to input_name_char_count do
			slist[index] := input_name[index];
		      ilist[1] := input_name_char_count;
		      ilist[2] := 1; { enabled }
		      $partial_eval on$ {for dvr_rec^ evaluation        SFB}
		      if  (gle_gcbi^.input_handler_name = 'KNOB  ')
		       or ((loc_dev_adr = 202) and (dvr_rec^.extend <> 0)) then
			 ilist[3] := 255
		      else
		       if (loc_dev_adr = 201) or (loc_dev_adr = 202) then
			ilist[3] := 7
		       else
			ilist[3] := 1;
		      $partial_eval off$
		    end
		  else
		    ierr := 4;
	      end;
	  end;
	end; { of case }

end;

end.  { of module }

@


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


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@a0 615
{                                                                            }
{ Pascal work station graphics library                                       }
{                                                                            }
{ Module    = DGL_INQ                                                        }
{ Programer = BJS                                                            }
{ Date      = 4/13/82                                                        }
{ Modified    5/01/85 SFB - Added bobcat/gatorbox support                    }

{ Purpose:    Holds all code for user inquires to the DGL system.            }

{     (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                              }

$modcal$
$search 'TYPES',
	'DGL_VARS',
	'GEN',
	'GLE_LIB'$
$include 'OPTIONS'$
$linenum 6000$
$ALLOW_PACKED ON$ {JWS 3/31/87}

module dgl_inq;

import dgl_types;

export

procedure inq_ws (       opcode : integer;
			 ssize  : integer;
			 isize  : integer;
			 rsize  : integer;
		  anyvar slist  : gchar_list;
		  anyvar ilist  : gint_list;
		  anyvar rlist  : greal_list;
		     var ierr   : integer);

procedure inq_color_table ( index : integer;
			    var parm1 : real;
			    var parm2 : real;
			    var parm3 : real);

procedure inq_pgn_table ( index : integer;
			var pdensity : real;
			var porient : real;
			var pedge   : integer);

implement

import dgl_vars,
       gle_ras_out,
       dgl_gen,
       GLE_HPHIL_ABSI {for dvr_rec};


procedure inq_color_table ( index : integer;
			    var parm1 : real;
			    var parm2 : real;
			    var parm3 : real);

{ Purpose:  To return information about a color table location            }

begin
  ck_system_init;
  ck_display_init;
  with gcb^,gle_gcb^ do         {SFB NOV 84 - added gatorbox/bobcat}
    begin
      if color_table_size = 0 then error(err_no_ctable);
      if (index < 0) or (index > color_table_size) then error(err_bad_parms);
      if not realmap then
       with big_color_table_def(color_table_ptr^)[index] do
	if dgl_current_color_model = 1 { rgb } then
	 begin
	   parm1 := dglfloat(red);
	   parm2 := dglfloat(green);
	   parm3 := dglfloat(blue);
	 end
	else            { not rgb }
	 convert_rgb_to_hsl(dglfloat(red),dglfloat(green),dglfloat(blue),
			    parm1,parm2,parm3)
      else             { not gatorbox or bobcat }
       with color_table_ptr^[index] do
	if dgl_current_color_model = 1 { rgb } then
	 begin
	   parm1 := red;
	   parm2 := green;
	   parm3 := blue;
	 end
	else           { not rgb }
	 convert_rgb_to_hsl(red,green,blue,parm1,parm2,parm3);
    end;        { with gcb^, gle_gcb^ do }
end;

procedure inq_pgn_table ( index : integer;
			var pdensity : real;
			var porient : real;
			var pedge   : integer);

{ Purpose:  To return information about a polygon table location            }

begin
  ck_system_init;
  ck_display_init;

  with gcb^ do
    begin
      if (index < 1) or (index > number_polygon_styles) then error(err_bad_parms);
      with poly_table_ptr^ [ index ] do
	begin
	  pdensity := density;
	  porient := orient;
	  if edge then pedge := 1
	  else pedge := 0;
	end;
    end;
end;

procedure inq_ws (       opcode : integer;
			 ssize  : integer;
			 isize  : integer;
			 rsize  : integer;
		  anyvar slist  : gchar_list;
		  anyvar ilist  : gint_list;
		  anyvar rlist  : greal_list;
		     var ierr   : integer);

{ Purpose:  To return information some part of the DGL graphics system.   }

label 1;

const numopcodes = 40;

type
  opcode_type_def = (inq_250,   inq_251,   inq_252,   inq_253,   inq_254,
		     inq_255,   inq_256,   inq_257,   inq_258,   inq_259,
		     inq_450,   inq_451,
		     inq_1050,  inq_1051,  inq_1052,  inq_1053,  inq_1054,
				inq_1056,  inq_1057,             inq_1059,
		     inq_1060,             inq_1062,  inq_1063,  inq_1064,
		     inq_1065,  inq_1066,  inq_1067,  inq_1068,  inq_1069,
		     inq_1070,  inq_1071,  inq_1072,  inq_1073,  inq_1074,
		     inq_1075,  inq_1076,
		     inq_11050, inq_11052,
		     inq_12050,
		     inq_13052                                             );

  opcode_def = 0..32767;
  opcode_list_entry_def = packed record
      opcode      : opcode_def;
      opcode_type : opcode_type_def;
    end;
  opcode_list_def = packed array [1..numopcodes] of opcode_list_entry_def;

const
  opcode_list = opcode_list_def[
     opcode_list_entry_def[opcode : 250,   opcode_type : inq_250   ],
     opcode_list_entry_def[opcode : 251,   opcode_type : inq_251   ],
     opcode_list_entry_def[opcode : 252,   opcode_type : inq_252   ],
     opcode_list_entry_def[opcode : 253,   opcode_type : inq_253   ],
     opcode_list_entry_def[opcode : 254,   opcode_type : inq_254   ],
     opcode_list_entry_def[opcode : 255,   opcode_type : inq_255   ],
     opcode_list_entry_def[opcode : 256,   opcode_type : inq_256   ],
     opcode_list_entry_def[opcode : 257,   opcode_type : inq_257   ],
     opcode_list_entry_def[opcode : 258,   opcode_type : inq_258   ],
     opcode_list_entry_def[opcode : 259,   opcode_type : inq_259   ],
     opcode_list_entry_def[opcode : 450,   opcode_type : inq_450   ],
     opcode_list_entry_def[opcode : 451,   opcode_type : inq_451   ],
     opcode_list_entry_def[opcode : 1050,  opcode_type : inq_1050  ],
     opcode_list_entry_def[opcode : 1051,  opcode_type : inq_1051  ],
     opcode_list_entry_def[opcode : 1052,  opcode_type : inq_1052  ],
     opcode_list_entry_def[opcode : 1053,  opcode_type : inq_1053  ],
     opcode_list_entry_def[opcode : 1054,  opcode_type : inq_1054  ],
     opcode_list_entry_def[opcode : 1056,  opcode_type : inq_1056  ],
     opcode_list_entry_def[opcode : 1057,  opcode_type : inq_1057  ],
     opcode_list_entry_def[opcode : 1059,  opcode_type : inq_1059  ],
     opcode_list_entry_def[opcode : 1060,  opcode_type : inq_1060  ],
     opcode_list_entry_def[opcode : 1062,  opcode_type : inq_1062  ],
     opcode_list_entry_def[opcode : 1063,  opcode_type : inq_1063  ],
     opcode_list_entry_def[opcode : 1064,  opcode_type : inq_1064  ],
     opcode_list_entry_def[opcode : 1065,  opcode_type : inq_1065  ],
     opcode_list_entry_def[opcode : 1066,  opcode_type : inq_1066  ],
     opcode_list_entry_def[opcode : 1067,  opcode_type : inq_1067  ],
     opcode_list_entry_def[opcode : 1068,  opcode_type : inq_1068  ],
     opcode_list_entry_def[opcode : 1069,  opcode_type : inq_1069  ],
     opcode_list_entry_def[opcode : 1070,  opcode_type : inq_1070  ],
     opcode_list_entry_def[opcode : 1071,  opcode_type : inq_1071  ],
     opcode_list_entry_def[opcode : 1072,  opcode_type : inq_1072  ],
     opcode_list_entry_def[opcode : 1073,  opcode_type : inq_1073  ],
     opcode_list_entry_def[opcode : 1074,  opcode_type : inq_1074  ],
     opcode_list_entry_def[opcode : 1075,  opcode_type : inq_1075  ],
     opcode_list_entry_def[opcode : 1076,  opcode_type : inq_1076  ],
     opcode_list_entry_def[opcode : 11050, opcode_type : inq_11050 ],
     opcode_list_entry_def[opcode : 11052, opcode_type : inq_11052 ],
     opcode_list_entry_def[opcode : 12050, opcode_type : inq_12050 ],
     opcode_list_entry_def[opcode : 13052, opcode_type : inq_13052 ]];

var
  index : gshortint;
  workstring : string[10];
  strcnt : integer;

begin
  ck_system_init;

  ierr := opcode_ck ( opcode,isize,rsize);  { ck for good parms }

  { Find opcode in list }
  for index := 1 to numopcodes do
    if opcode_list[index].opcode = opcode then goto 1;
  ierr := 1;

1:

  if ierr = 0 then
    with gcb^,gle_gcb^ do
      case opcode_list[index].opcode_type of
	inq_250 : { return cell size (250) }
	  begin
	    rlist[1] := gcb^.dgl_char_width;
	    rlist[2] := gcb^.dgl_char_height;
	  end;

	inq_251 : { return marker cell size (251) }
	  begin
	    rlist[1] := marker_size_x * xdtow_scale;
	    rlist[2] := marker_size_y * ydtow_scale;
	  end;

	inq_252 : { return display resolution (252) }
	  if disp_init then
	    begin
	      with gcb^,raster_device_rec_ptr(dev_dep_stuff)^ do
		begin
		  rlist[1] := display_res_x;
		  rlist[2] := display_res_y;
		end;
	    end
	  else
	    begin
	      rlist[1] := 0;
	      rlist[2] := 0;
	    end;

	inq_253 : { return max display dimensions (253) }
	  if disp_init then
	    with max_disp_lim do
	      begin
	      with gcb^,raster_device_rec_ptr(dev_dep_stuff)^ do
		begin
		  rlist[1] := (xmax - xmin) / display_res_x;
		  rlist[2] := (ymax - ymin) / display_res_y;
		end;
	      end
	  else
	    begin
	      rlist[1] := 0;
	      rlist[2] := 0;
	    end;

	inq_254 : { return aspect ratios (254) }
	  begin
	    rlist[1] := aspect_ratio;
	    rlist[2] := log_aspect;
	  end;

	inq_255 : { return locator resolution (255) }
	  if loc_init then
	    with gle_gcbi^ do
	      begin
		rlist[1] := input_res_x;
		rlist[2] := input_res_y;
	      end
	  else
	    begin
	      rlist[1] := 0;
	      rlist[2] := 0;
	    end;

	inq_256 : { max locator dimensions (256) }
	  if loc_init then
	    with gle_gcbi^, max_loc_lim do
	      begin
		rlist[1] := (xmax - xmin) / input_res_x;
		rlist[2] := (ymax - ymin) / input_res_y;
	      end
	  else
	    begin
	      rlist[1] := 0;
	      rlist[2] := 0;
	    end;

	inq_257 : { locator echo pos (257) }
	  begin
	    rlist[1] := w_loc_echo_x;
	    rlist[2] := w_loc_echo_y;
	  end;

	inq_258 : { current virtual limits (258) }
	  with cur_vir_lim do
	    begin
	      rlist[1] := xlim;
	      rlist[2] := ylim;
	    end;

	inq_259 : { return cp (259) }
	  begin
	    if int_cp then
	      begin
		rlist[1] := world_int_cpx;
		rlist[2] := world_int_cpy;
	      end
	    else
	      begin
		rlist[1] := world_real_cpx;
		rlist[2] := world_real_cpy;
	      end;
	  end;

	inq_450: { return window limits (450) }
	  with window_lim do
	    begin
	      rlist[1] := xmin;
	      rlist[2] := xmax;
	      rlist[3] := ymin;
	      rlist[4] := ymax;
	    end;

	inq_451: { return viewport limits (451) }
	  with viewport_lim do
	    begin
	      rlist[1] := xmin;
	      rlist[2] := xmax;
	      rlist[3] := ymin;
	      rlist[4] := ymax;
	    end;

	inq_1050: { Clipping supported at physical limits (1050) }
	  begin
	    if clipping_support then ilist [1] := 1
	    else                     ilist [1] := 0;
	  end;

	inq_1051: { return display justification info (1051) }
	  begin
	    if disp_just = centered then ilist [1] := 0
	    else                         ilist [1] := 1;
	  end;

	inq_1052: { return info about drawing in the background color (1052) }
	  with gle_gcb^ do
	    begin
	      if disp_init then ilist [1] := background
	      else              ilist [1] := 0;
	    end;

	inq_1053: { return color palette info (1053) }
	  begin
	    if disp_init then ilist[1] := pallette
	    else              ilist[1] := 0;
	  end;

	inq_1054: { return color gamut info (1054) }
	  begin
	    if disp_init then ilist[1] := gamut
	    else              ilist[1] := 0;
	  end;

	inq_1056: { return number linestyles (1056) }
	  begin
	    if disp_init then ilist[1] := number_dgl_linestyles
	    else              ilist[1] := 0;
	  end;

	inq_1057: { return number linewidths (1057) }
	  begin
	    if disp_init then ilist[1] := linewidths
	    else              ilist[1] := 0;
	  end;

	inq_1059: { return number markers (1059) }
	  begin
	    if disp_init then ilist[1] := number_markers
	    else              ilist[1] := 0;
	  end;

	inq_1060: { return current color (1060) }
	  begin
	    ilist[1] := dgl_current_color;
	  end;

	inq_1062: { return current linestyle (1062) }
	  begin
	    ilist[1] := dgl_current_linestyle;
	  end;

	inq_1063: { return current linewidth (1063) }
	  begin
	    ilist[1] := dgl_current_linewidth;
	  end;

	inq_1064: { return current timming mode }
	  begin
	    ilist[1] := dgl_current_timming_mode;
	  end;

	inq_1065: { return number polygon styles supported ( 1065) }
	  begin
	    if disp_init then ilist[1] := number_polygon_styles
	    else              ilist[1] := 0;
	  end;

	inq_1066: { return current polygon color (1066) }
	  begin
	    ilist[1] := dgl_current_polygon_color;
	  end;

	inq_1067: { return current polygon style (1067) }
	  begin
	    ilist[1] := dgl_current_polygon_style;
	  end;

	inq_1068: { return maximum polygon vertices supported (1068) }
	  begin
	    if disp_init then ilist[1] := maximum_polygon_vertices
	    else              ilist[1] := 0;
	  end;

	inq_1069: { retroactive polygon support (1069) }
	  begin
	    if disp_init and retroactive_polygon_support then ilist[1] := 1
	    else                                              ilist[1] := 0;
	  end;

	inq_1070: { device dependent polygons ( 1070 ) }
	  begin
	    if disp_init and (polygon_support = 1) then ilist [1] := 1
	    else                                        ilist [1] := 0;
	  end;

	inq_1071: { retroactive color support ( 1071 ) }
	  begin
	    if disp_init and retroactive_color_support then ilist [1] := 1
	    else                                            ilist [1] := 0;
	  end;

	inq_1072: { redef of background ( 1072 ) }
	  begin
	    if disp_init then ilist [1] := redef_background
	    else              ilist [1] := 0;
	  end;

	inq_1073: { redef of color capability table ( 1073 ) }
	  begin
	    if disp_init and (color_table_size > 0) then ilist [1] := 1
	    else                                         ilist [1] := 0;
	  end;

	inq_1074: { return current color model ( 1074 ) }
	  begin
	    ilist [1] := dgl_current_color_model;
	  end;

	inq_1075: { return color capability table size ( 1075 ) }
	  ilist [1] := color_table_size;

	inq_1076: { return current polygon linestyle ( 1076 ) }
	  ilist [1] := dgl_current_polygon_linestyle;

	inq_11050: { return display device association (11050) }
	  begin
	    if not disp_init then
	      begin
		if ssize >= 1 then
		  begin
		    slist[1] := '0';
		    ilist[1] := 1;
		  end
		else ierr := 4;
	      end
	    else
	    if disp_file_name <> '' then
	      begin
		for index := 1 to strlen(disp_file_name) do
		  slist[index] := disp_file_name[index];
		ilist [1] := strlen(disp_file_name);
	      end
	    else
	      begin
		setstrlen(workstring,0);
		strwrite(workstring,1,strcnt,disp_dev_adr:0);
		strcnt := strcnt - 1;
		if ssize >= strcnt then
		  begin
		    for index := 1 to strcnt do
		      slist[index] := workstring[index];
		    ilist[1] := strcnt;
		  end
		else
		  ierr := 4;
	      end;
	  end;

	inq_11052: { return locator device association (11052) }
	  begin
	    if not loc_init then
	      begin
		if ssize >= 1 then
		  begin
		    slist[1] := '0';
		    ilist[1] := 1;
		  end
		else ierr := 4;
	      end
	    else
	      begin
		setstrlen(workstring,0);
		strwrite(workstring,1,strcnt,loc_dev_adr:0);
		strcnt := strcnt - 1;
		if ssize >= strcnt then
		  begin
		    for index := 1 to strcnt do
		      slist[index] := workstring[index];
		    ilist[1] := strcnt;
		  end
		else
		  ierr := 4;
	      end;
	  end;

	inq_12050: { return display info (12050) }
	  begin
	    if not disp_init then
	      begin
		if ssize >= 6 then
		  begin
		    for index := 1 to 6 do
		      slist[index] := ' ';
		    ilist[1] := 6;
		    ilist[2] := 0; { disabled }
		  end
		else ierr := 4;
	      end
	    else
	      begin
		if ssize >= display_name_char_count then
		  begin
		    for index := 1 to display_name_char_count do
		      slist[index] := display_name[index];
		    ilist[1] := display_name_char_count;
		    ilist[2] := 1; { enabled }
		  end
		else
		  ierr := 4;
	      end;
	  end;

	inq_13052: { return locator info (13052) }
	  begin
	    if not loc_init then
	      begin
		if ssize >= 6 then
		  begin
		    for index := 1 to 6 do
		      slist[index] := ' ';
		    ilist[1] := 6;
		    ilist[2] := 0; { disabled }
		    ilist[3] := 0;
		  end
		else ierr := 4;
	      end
	    else
	      begin
		with gle_gcbi^ do
		  if ssize >= input_name_char_count then
		    begin
		      for index := 1 to input_name_char_count do
			slist[index] := input_name[index];
		      ilist[1] := input_name_char_count;
		      ilist[2] := 1; { enabled }
		      $partial_eval on$ {for dvr_rec^ evaluation        SFB}
		      if  (gle_gcbi^.input_handler_name = 'KNOB  ')
		       or ((loc_dev_adr = 202) and (dvr_rec^.extend <> 0)) then
			 ilist[3] := 255
		      else
		       if (loc_dev_adr = 201) or (loc_dev_adr = 202) then
			ilist[3] := 7
		       else
			ilist[3] := 1;
		      $partial_eval off$
		    end
		  else
		    ierr := 4;
	      end;
	  end;
	end; { of case }

end;

end.  { of module }

@


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


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


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


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.2
log
@Pws2unix automatic delta on Wed Apr  1 08:30:27 MST 1987
@
text
@@


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


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
@d66 2
a67 1
       dgl_gen;
d594 10
a603 3
		      if gle_gcbi^.input_handler_name = 'KNOB  ' then
		      ilist[3] := 255
		      else ilist[3] := 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
@d66 1
a66 2
       dgl_gen,
       GLE_HPHIL_ABSI {for dvr_rec};
d593 3
a595 10
		      $partial_eval on$ {for dvr_rec^ evaluation        SFB}
		      if  (gle_gcbi^.input_handler_name = 'KNOB  ')
		       or ((loc_dev_adr = 202) and (dvr_rec^.extend <> 0)) then
			 ilist[3] := 255
		      else
		       if (loc_dev_adr = 201) or (loc_dev_adr = 202) then
			ilist[3] := 7
		       else
			ilist[3] := 1;
		      $partial_eval off$
@


3.1
log
@Automatic bump of revision number for PWS version 3.2h
@
text
@d66 2
a67 1
       dgl_gen;
d594 10
a603 3
		      if gle_gcbi^.input_handler_name = 'KNOB  ' then
		      ilist[3] := 255
		      else ilist[3] := 1;
@


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


1.1
log
@Initial revision
@
text
@@
