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


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

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

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

55.2
date     91.11.04.15.27.35;  author jwh;  state Exp;
branches ;
next     55.1;

55.1
date     91.08.25.10.06.55;  author jwh;  state Exp;
branches ;
next     54.2;

54.2
date     91.08.21.13.24.05;  author jwh;  state Exp;
branches ;
next     54.1;

54.1
date     91.03.18.15.15.33;  author jwh;  state Exp;
branches ;
next     53.3;

53.3
date     91.03.18.13.51.25;  author jwh;  state Exp;
branches ;
next     53.2;

53.2
date     91.03.15.15.34.06;  author jwh;  state Exp;
branches ;
next     53.1;

53.1
date     91.03.11.19.16.14;  author jwh;  state Exp;
branches ;
next     52.2;

52.2
date     91.03.11.17.07.18;  author jwh;  state Exp;
branches ;
next     52.1;

52.1
date     91.02.19.09.01.27;  author jwh;  state Exp;
branches ;
next     51.2;

51.2
date     91.02.18.21.04.19;  author jwh;  state Exp;
branches ;
next     51.1;

51.1
date     91.01.30.16.00.20;  author jwh;  state Exp;
branches ;
next     50.2;

50.2
date     91.01.30.09.39.30;  author jwh;  state Exp;
branches ;
next     50.1;

50.1
date     90.10.29.16.14.13;  author jwh;  state Exp;
branches ;
next     49.2;

49.2
date     90.10.29.14.28.41;  author jwh;  state Exp;
branches ;
next     49.1;

49.1
date     90.08.14.14.02.28;  author jwh;  state Exp;
branches ;
next     48.2;

48.2
date     90.08.14.09.54.27;  author jwh;  state Exp;
branches ;
next     48.1;

48.1
date     90.07.26.11.08.15;  author jwh;  state Exp;
branches ;
next     47.2;

47.2
date     90.07.24.15.14.05;  author jwh;  state Exp;
branches ;
next     47.1;

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

46.1
date     90.05.07.08.33.34;  author jwh;  state Exp;
branches ;
next     45.2;

45.2
date     90.05.04.15.08.13;  author jwh;  state Exp;
branches ;
next     45.1;

45.1
date     90.04.19.15.40.29;  author jwh;  state Exp;
branches ;
next     44.2;

44.2
date     90.04.19.13.37.49;  author jwh;  state Exp;
branches ;
next     44.1;

44.1
date     90.04.01.21.58.11;  author jwh;  state Exp;
branches ;
next     43.3;

43.3
date     90.04.01.16.37.16;  author jwh;  state Exp;
branches ;
next     43.2;

43.2
date     90.03.22.13.14.21;  author jwh;  state Exp;
branches ;
next     43.1;

43.1
date     90.03.20.13.48.01;  author jwh;  state Exp;
branches ;
next     42.2;

42.2
date     90.03.19.16.25.36;  author jwh;  state Exp;
branches ;
next     42.1;

42.1
date     90.01.23.17.33.35;  author jwh;  state Exp;
branches ;
next     41.2;

41.2
date     90.01.20.17.02.38;  author jwh;  state Exp;
branches ;
next     41.1;

41.1
date     89.12.22.11.15.59;  author jwh;  state Exp;
branches ;
next     40.2;

40.2
date     89.12.21.15.21.06;  author jwh;  state Exp;
branches ;
next     40.1;

40.1
date     89.09.29.11.38.57;  author jwh;  state Exp;
branches ;
next     39.2;

39.2
date     89.09.28.17.40.16;  author jwh;  state Exp;
branches ;
next     39.1;

39.1
date     89.09.26.16.24.12;  author dew;  state Exp;
branches ;
next     38.2;

38.2
date     89.09.26.14.57.44;  author dew;  state Exp;
branches ;
next     38.1;

38.1
date     89.08.29.11.14.30;  author jwh;  state Exp;
branches ;
next     37.2;

37.2
date     89.08.28.12.40.11;  author jwh;  state Exp;
branches ;
next     37.1;

37.1
date     89.05.12.11.27.35;  author dew;  state Exp;
branches ;
next     36.3;

36.3
date     89.05.12.09.35.51;  author quist;  state Exp;
branches ;
next     36.2;

36.2
date     89.05.11.12.08.37;  author quist;  state Exp;
branches ;
next     36.1;

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

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

34.1
date     89.01.23.15.52.54;  author jwh;  state Exp;
branches ;
next     33.2;

33.2
date     89.01.20.16.47.09;  author jwh;  state Exp;
branches ;
next     33.1;

33.1
date     89.01.16.11.28.39;  author dew;  state Exp;
branches ;
next     32.3;

32.3
date     89.01.13.11.46.09;  author dew;  state Exp;
branches ;
next     32.2;

32.2
date     89.01.11.10.40.45;  author jws;  state Exp;
branches ;
next     32.1;

32.1
date     89.01.10.11.34.19;  author bayes;  state Exp;
branches ;
next     31.2;

31.2
date     89.01.09.12.22.42;  author dew;  state Exp;
branches ;
next     31.1;

31.1
date     88.12.14.17.55.11;  author bayes;  state Exp;
branches ;
next     30.2;

30.2
date     88.12.14.13.54.43;  author bayes;  state Exp;
branches ;
next     30.1;

30.1
date     88.12.09.13.33.14;  author dew;  state Exp;
branches ;
next     29.2;

29.2
date     88.12.08.16.04.50;  author bayes;  state Exp;
branches ;
next     29.1;

29.1
date     88.10.31.15.17.33;  author bayes;  state Exp;
branches ;
next     28.3;

28.3
date     88.10.31.11.04.03;  author bayes;  state Exp;
branches ;
next     28.2;

28.2
date     88.10.27.10.53.40;  author bayes;  state Exp;
branches ;
next     28.1;

28.1
date     88.10.06.10.47.30;  author dew;  state Exp;
branches ;
next     27.2;

27.2
date     88.10.05.18.04.35;  author bayes;  state Exp;
branches ;
next     27.1;

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

26.1
date     88.09.28.12.27.05;  author bayes;  state Exp;
branches ;
next     25.3;

25.3
date     88.03.18.09.29.05;  author quist;  state Exp;
branches ;
next     25.2;

25.2
date     88.03.09.08.18.18;  author quist;  state Exp;
branches ;
next     25.1;

25.1
date     88.03.02.09.05.42;  author bayes;  state Exp;
branches ;
next     24.2;

24.2
date     88.03.01.09.14.48;  author bayes;  state Exp;
branches ;
next     24.1;

24.1
date     87.08.31.09.11.46;  author jws;  state Exp;
branches ;
next     23.2;

23.2
date     87.08.30.15.03.24;  author jws;  state Exp;
branches ;
next     23.1;

23.1
date     87.08.26.09.48.50;  author bayes;  state Exp;
branches ;
next     22.2;

22.2
date     87.08.25.18.44.46;  author jws;  state Exp;
branches ;
next     22.1;

22.1
date     87.08.17.10.28.26;  author bayes;  state Exp;
branches ;
next     21.2;

21.2
date     87.08.15.16.38.26;  author larry;  state Exp;
branches ;
next     21.1;

21.1
date     87.08.12.13.16.56;  author bayes;  state Exp;
branches ;
next     20.2;

20.2
date     87.08.12.10.13.14;  author bayes;  state Exp;
branches ;
next     20.1;

20.1
date     87.07.30.10.26.55;  author bayes;  state Exp;
branches ;
next     19.2;

19.2
date     87.07.29.17.50.25;  author larry;  state Exp;
branches ;
next     19.1;

19.1
date     87.06.01.07.45.23;  author jws;  state Exp;
branches ;
next     18.2;

18.2
date     87.05.31.14.51.09;  author jws;  state Exp;
branches ;
next     18.1;

18.1
date     87.05.20.14.38.50;  author bayes;  state Exp;
branches ;
next     17.2;

17.2
date     87.05.20.10.19.50;  author bayes;  state Exp;
branches ;
next     17.1;

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

16.1
date     87.04.26.15.12.33;  author jws;  state Exp;
branches ;
next     15.2;

15.2
date     87.04.24.18.00.18;  author jws;  state Exp;
branches ;
next     15.1;

15.1
date     87.04.13.08.36.31;  author jws;  state Exp;
branches ;
next     14.2;

14.2
date     87.04.12.16.37.35;  author jws;  state Exp;
branches ;
next     14.1;

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

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

13.1
date     87.02.28.18.01.53;  author jws;  state Exp;
branches ;
next     12.2;

12.2
date     87.02.28.15.35.50;  author jws;  state Exp;
branches ;
next     12.1;

12.1
date     87.02.02.12.47.35;  author jws;  state Exp;
branches ;
next     11.2;

11.2
date     87.02.02.10.08.03;  author jws;  state Exp;
branches ;
next     11.1;

11.1
date     87.01.19.09.14.18;  author jws;  state Exp;
branches ;
next     10.3;

10.3
date     87.01.18.18.52.12;  author jws;  state Exp;
branches ;
next     10.2;

10.2
date     87.01.14.12.26.09;  author jws;  state Exp;
branches ;
next     10.1;

10.1
date     86.12.24.10.19.31;  author jws;  state Exp;
branches ;
next     9.2;

9.2
date     86.12.23.16.45.29;  author jws;  state Exp;
branches ;
next     9.1;

9.1
date     86.12.12.13.40.13;  author bayes;  state Exp;
branches ;
next     8.2;

8.2
date     86.12.12.10.09.46;  author bayes;  state Exp;
branches ;
next     8.1;

8.1
date     86.11.27.11.17.36;  author jws;  state Exp;
branches ;
next     7.2;

7.2
date     86.11.26.16.44.02;  author jws;  state Exp;
branches ;
next     7.1;

7.1
date     86.11.20.13.02.48;  author hal;  state Exp;
branches ;
next     6.2;

6.2
date     86.11.19.15.40.03;  author bayes;  state Exp;
branches ;
next     6.1;

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

5.2
date     86.11.04.12.11.10;  author paws;  state Exp;
branches ;
next     5.1;

5.1
date     86.10.28.15.52.26;  author hal;  state Exp;
branches ;
next     4.2;

4.2
date     86.10.28.11.19.35;  author hal;  state Exp;
branches ;
next     4.1;

4.1
date     86.09.30.19.06.48;  author hal;  state Exp;
branches ;
next     3.2;

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

3.1
date     86.09.01.11.20.14;  author hal;  state Exp;
branches ;
next     2.2;

2.2
date     86.09.01.08.59.41;  author hal;  state Exp;
branches ;
next     2.1;

2.1
date     86.07.30.14.09.49;  author hal;  state Exp;
branches ;
next     1.3;

1.3
date     86.07.30.09.28.50;  author geli;  state Exp;
branches ;
next     1.2;

1.2
date     86.07.15.16.46.23;  author geli;  state Exp;
branches ;
next     1.1;

1.1
date     86.06.30.13.18.50;  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
@			    {file CONSTS}
import sysglobals;

export

const
      crevid = daterec[year:91,day:28,month:10];
      crevno = '3.25';
      compilername = 'Pascal';        {title}
      copyright1 = 'Copyright Hewlett-Packard Company, 1982, 1991.';
      copyright2 = 'All rights reserved.';
      FULLDUMP = false;         (* conditional compilation for tree dump *)
      allowmodcal = FALSE;      (* conditional compilation for $MODCAL$ *)
      MC68020 = TRUE;           (* conditional compilation for 68020/68881 *)
      IDLENGTH = 80;            (* # of significant chars in names. *)
      MAXCURSOR = 1023;         (* Source page size-1 (set by workstation) *)
      maxinfiles = 10;          (* Allow 5 levels of INCLUDE *)

      DISPLIMIT = 20;           (* Symbol table levels *)
      MAXPLEVEL = 15;           (* Procedure nesting depth *)
      LClimit = -32768;         (* Maximum size for local/global vars *)

      BITSPERADDR = 8;          (* # of bits in an address unit (byte) *)
      WORDSIZE = 4;             (* # of address units (bytes) in a word *)
      BITSPERWORD = 32;         (* # of bits per word *)
      WORDALIGN = 2;            (* Alignment requirement for a word *)
      INTSIZE = WORDSIZE;       (* Sizes of predefined types, in bytes *)
      SHORTINTSIZE = 2;
      REALSIZE = 8;
      CHARSIZE = 1;             (* Unpacked char size *)
      BITSPERCHAR = 8;          (* # of bits in a packed char *)
      BOOLSIZE = 1;             (* Unpacked boolean size *)
      SCALARSIZE = 2;           (* Unpacked enumerated type *)
      PTRSIZE = WORDSIZE;       (* Size of a pointer, in bytes *)
      proksize = 8;             (* Size of a procedure var, in bytes *)

      INTALIGN = WORDALIGN;     (* Alignment requirements *)
      REALALIGN = WORDALIGN;
      CHARALIGN = 1;            (* Unpacked char alignment *)
      BOOLALIGN = 1;            (* Unpacked boolean alignment *)
      SCALARALIGN = WORDALIGN;  (* Unpacked enumerated type *)
      PTRALIGN = WORDALIGN;
      prokalign = WORDALIGN;
      parmalign = WORDALIGN;    (* minimum alignment for a parameter *)

      bigsets = true;           (* support expanded set capacity ? *)
$if bigsets$
      setlow  = 0;              (* Bounds on ordinal value of set members *)
      sethigh = 261999;         (*                  allow 262000 elements *)
      setdefaulthigh = 8175;    (* Default bound for set constructors
				   containing variable element(s) *)
      oldsethigh = 255;         (* max ordinal set val before extending *)
      setelemsize = 2;          (* Allocate unpacked sets in word units *)
      setlensize = 2;           (* Use word to actual set size *)
      setelembits = 16;
      setalign = wordalign;     (* Alignment of unpacked set *)
      setsize = ( (sethigh + setelembits) div setelembits)
			* setelemsize + setlensize;
						 (* Max set size , in bytes *)
      setdefaultsize = ( (setdefaulthigh+setelembits) div setelembits )
			* setelemsize + setlensize;
						 (* Default set size,
						in bytes, for constructors
						with variable element(s) *)
$end$
$if not bigsets$
      setlow  = 0;              (* Bounds on ordinal value of set members *)
      sethigh = 255;
      setelemsize = 2;          (* Allocate unpacked sets in word units *)
      setlensize = 2;           (* Use word to actual set size *)
      setelembits = 16;
      setalign = wordalign;     (* Alignment of unpacked set *)
      setsize = 34;             (* Max size of a set, in bytes *)
$end$
      NILFILESIZE = 150+fidleng;(* Size of a file info block *)
      FILESIZE = 150+fblksize;  (* Size of FIB with mass storage buffer *)
      STRINGSIZE = 81;          (* size of the default string, in bytes *)
      STRGLGTH = 255;           (* max length of a string *)
      bigintlen = 10;           (* max number of digits in 32-bit integer *)
      LCAFTERMARKSTACK = 0;     (* Addr of first local variable *)
      markstacksize = 12;       (* Size of inner proc stack marker, in bytes *)
      level1markstacksize = 8;  (* Size of outer proc stack marker*)
      INITLC = 0;               (* starting LC in main prog *)
      initmodlc = 0;            (* starting LC in outer modules - ignored
				   if modownLC = false  *)
      nilvalue = 0;             (* representation of NIL *)
      linesperpage = 60;        (* default # of lines on a listing page *)
      maxerrors = 10;           (* maximum number of errors on a line *)
      optnsize = 13;            (* option name size *)
      refiledefault = 30;       (* default size for ref file *)
      defiledefault = 10;       (* default size for def file *)
      maxreg = 7;               (* 68000 register numbering *)
      searchdefault = 10;
      overlaydefault = 9;

TYPE

      ADDRRANGE = integer;

      alpha = string[idlength]; (* names *)
      alphaptr = ^alpha;

				(* constants *)

      byt = 0..255;

      reflistptr = ^localref;
      localref = record
		   pc: addrrange;
		   next: reflistptr;
		 end;

      scstref = ^scstruct;
      stp = ^structure; ctp = ^identifier;

      CSTCLASS = (REEL,PSET,paofch,STRNG,bigpaoc,strctconst
		  $IF MC68020$ ,chk2_bounds $END$);

      CSP = ^ CONSTREC;

      paoc = packed array[1..strglgth] of char;
      bigpac = packed array[1..1] of char;
      stortype = (bytte,wrd,long,multi);
$if bigsets$
      setrecptr = ^setrec;
      setrec = record
		nxt : setrecptr;
		val : set of 0..oldsethigh
	      end;
$end$

      CONSTREC = RECORD
		   CCLASS: CSTCLASS;
		   case {pooled:} boolean of
		     false:
		       (case cstclass of
			  strctconst:
			    (kstruc: scstref;
			     isdumped,hasbeenoutput: boolean;
			     namep: alphaptr;
			     location: addrrange));
		     true:
		       (next: csp;       (*chain of pooled constants*)
		       conlbl: reflistptr;   (* refs to this const *)
		       case cstclass of
 $if bigsets$
			  PSET: ( plgth : integer;
				  pval : setrecptr
				);
 $end$
 $if not bigsets$
			 PSET:      (plgth: shortint;
				     PVAL: SET OF setlow..sethigh);
 $end$
			 STRNG,
			 paofch:    (SLGTH: 0..STRGLGTH;
				     SVAL: paoc);
			 bigpaoc:   (paoclgth: integer;
				     paocval: bigpac);

			 REEL:(RVAL: real)

			 $IF MC68020$;
			 chk2_bounds: (lower,upper: integer;
				       size: stortype)
			 $END$ );
		 END;

      VALU = RECORD CASE intval: BOOLEAN OF
		      TRUE:  (IVAL: INTEGER);
		      FALSE: (VALP: CSP)
		    END;

      vcref = ^valucel;
      valucel = record
		  vcnxt: vcref;
		  vcval: valu;
		  case boolean of
		    true: (vid: ctp);
		  end;

      scstruct = record
		   scstp: stp;
		   scvcp: vcref;
		   end;

				(* machine-dependent attributes*)

      callmodetype = (abscall,relcall);
      regrange = 0..maxreg;
      regtype = (A,D,F);
      addrtype =
	(inAreg,inDreg,inFreg,multiple,predecr,
	 postincr,locinreg,topofstack,loconstack,
	 labelledconst,namedconst,enumconst,
	 shortabs,longabs,prel,immediate
	 $IF MC68020$
	 ,fmultiple
	 $END$
	 );
      accesstype = (direct,indirect);
      multiregs = packed array[regtype,regrange] of boolean;

      attrptr = ^attrtype;

      attrtype = record
		   next: attrptr;
		   offset: addrrange; {used by absolute,longconst,locinreg}
		   regnum: regrange;{used by inreg,locinreg}
		   access: accesstype;
		   storage: stortype;
		   indexed: boolean;
		   indexreg: regrange;
		   indexstorage: stortype;
		   $IF MC68020$
		     indexscale: 0..3;
		   $END$
		   packd: boolean;
		   signbit: boolean;
		   bitsize: shortint;
		   bitoffset: record
				static: integer;
				variable: -1..maxreg;
				storage: stortype;
			      end;
		   case addrmode: addrtype of
		     predecr,postincr,
		     topofstack,loconstack,
		     inAreg,inDreg,inFreg: ();      (* use regnum *)

		     locinreg : (gloptr: alphaptr);   (* uses regnum, offset *)

		     shortabs,
		     longabs,
		     prel     : (absaddr: valu);  (* address + offset *)
		     immediate: (smallval: integer);
		     namedconst: (constptr: csp; callmode: callmodetype);
		     labelledconst: (constvalp: csp);
		     enumconst: (enumstp: stp);
		     multiple: (regs: multiregs);
		     $IF MC68020$
		       fmultiple: (fregs: packed array[regrange] of boolean);
		     $END$
		     end;



@


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


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@a0 247
			    {file CONSTS}
import sysglobals;

export

const
      crevid = daterec[year:91,day:28,month:10];
      crevno = '3.25';
      compilername = 'Pascal';        {title}
      copyright1 = 'Copyright Hewlett-Packard Company, 1982, 1991.';
      copyright2 = 'All rights reserved.';
      FULLDUMP = false;         (* conditional compilation for tree dump *)
      allowmodcal = FALSE;      (* conditional compilation for $MODCAL$ *)
      MC68020 = TRUE;           (* conditional compilation for 68020/68881 *)
      IDLENGTH = 80;            (* # of significant chars in names. *)
      MAXCURSOR = 1023;         (* Source page size-1 (set by workstation) *)
      maxinfiles = 10;          (* Allow 5 levels of INCLUDE *)

      DISPLIMIT = 20;           (* Symbol table levels *)
      MAXPLEVEL = 15;           (* Procedure nesting depth *)
      LClimit = -32768;         (* Maximum size for local/global vars *)

      BITSPERADDR = 8;          (* # of bits in an address unit (byte) *)
      WORDSIZE = 4;             (* # of address units (bytes) in a word *)
      BITSPERWORD = 32;         (* # of bits per word *)
      WORDALIGN = 2;            (* Alignment requirement for a word *)
      INTSIZE = WORDSIZE;       (* Sizes of predefined types, in bytes *)
      SHORTINTSIZE = 2;
      REALSIZE = 8;
      CHARSIZE = 1;             (* Unpacked char size *)
      BITSPERCHAR = 8;          (* # of bits in a packed char *)
      BOOLSIZE = 1;             (* Unpacked boolean size *)
      SCALARSIZE = 2;           (* Unpacked enumerated type *)
      PTRSIZE = WORDSIZE;       (* Size of a pointer, in bytes *)
      proksize = 8;             (* Size of a procedure var, in bytes *)

      INTALIGN = WORDALIGN;     (* Alignment requirements *)
      REALALIGN = WORDALIGN;
      CHARALIGN = 1;            (* Unpacked char alignment *)
      BOOLALIGN = 1;            (* Unpacked boolean alignment *)
      SCALARALIGN = WORDALIGN;  (* Unpacked enumerated type *)
      PTRALIGN = WORDALIGN;
      prokalign = WORDALIGN;
      parmalign = WORDALIGN;    (* minimum alignment for a parameter *)

      bigsets = true;           (* support expanded set capacity ? *)
$if bigsets$
      setlow  = 0;              (* Bounds on ordinal value of set members *)
      sethigh = 261999;         (*                  allow 262000 elements *)
      setdefaulthigh = 8175;    (* Default bound for set constructors
				   containing variable element(s) *)
      oldsethigh = 255;         (* max ordinal set val before extending *)
      setelemsize = 2;          (* Allocate unpacked sets in word units *)
      setlensize = 2;           (* Use word to actual set size *)
      setelembits = 16;
      setalign = wordalign;     (* Alignment of unpacked set *)
      setsize = ( (sethigh + setelembits) div setelembits)
			* setelemsize + setlensize;
						 (* Max set size , in bytes *)
      setdefaultsize = ( (setdefaulthigh+setelembits) div setelembits )
			* setelemsize + setlensize;
						 (* Default set size,
						in bytes, for constructors
						with variable element(s) *)
$end$
$if not bigsets$
      setlow  = 0;              (* Bounds on ordinal value of set members *)
      sethigh = 255;
      setelemsize = 2;          (* Allocate unpacked sets in word units *)
      setlensize = 2;           (* Use word to actual set size *)
      setelembits = 16;
      setalign = wordalign;     (* Alignment of unpacked set *)
      setsize = 34;             (* Max size of a set, in bytes *)
$end$
      NILFILESIZE = 150+fidleng;(* Size of a file info block *)
      FILESIZE = 150+fblksize;  (* Size of FIB with mass storage buffer *)
      STRINGSIZE = 81;          (* size of the default string, in bytes *)
      STRGLGTH = 255;           (* max length of a string *)
      bigintlen = 10;           (* max number of digits in 32-bit integer *)
      LCAFTERMARKSTACK = 0;     (* Addr of first local variable *)
      markstacksize = 12;       (* Size of inner proc stack marker, in bytes *)
      level1markstacksize = 8;  (* Size of outer proc stack marker*)
      INITLC = 0;               (* starting LC in main prog *)
      initmodlc = 0;            (* starting LC in outer modules - ignored
				   if modownLC = false  *)
      nilvalue = 0;             (* representation of NIL *)
      linesperpage = 60;        (* default # of lines on a listing page *)
      maxerrors = 10;           (* maximum number of errors on a line *)
      optnsize = 13;            (* option name size *)
      refiledefault = 30;       (* default size for ref file *)
      defiledefault = 10;       (* default size for def file *)
      maxreg = 7;               (* 68000 register numbering *)
      searchdefault = 10;
      overlaydefault = 9;

TYPE

      ADDRRANGE = integer;

      alpha = string[idlength]; (* names *)
      alphaptr = ^alpha;

				(* constants *)

      byt = 0..255;

      reflistptr = ^localref;
      localref = record
		   pc: addrrange;
		   next: reflistptr;
		 end;

      scstref = ^scstruct;
      stp = ^structure; ctp = ^identifier;

      CSTCLASS = (REEL,PSET,paofch,STRNG,bigpaoc,strctconst
		  $IF MC68020$ ,chk2_bounds $END$);

      CSP = ^ CONSTREC;

      paoc = packed array[1..strglgth] of char;
      bigpac = packed array[1..1] of char;
      stortype = (bytte,wrd,long,multi);
$if bigsets$
      setrecptr = ^setrec;
      setrec = record
		nxt : setrecptr;
		val : set of 0..oldsethigh
	      end;
$end$

      CONSTREC = RECORD
		   CCLASS: CSTCLASS;
		   case {pooled:} boolean of
		     false:
		       (case cstclass of
			  strctconst:
			    (kstruc: scstref;
			     isdumped,hasbeenoutput: boolean;
			     namep: alphaptr;
			     location: addrrange));
		     true:
		       (next: csp;       (*chain of pooled constants*)
		       conlbl: reflistptr;   (* refs to this const *)
		       case cstclass of
 $if bigsets$
			  PSET: ( plgth : integer;
				  pval : setrecptr
				);
 $end$
 $if not bigsets$
			 PSET:      (plgth: shortint;
				     PVAL: SET OF setlow..sethigh);
 $end$
			 STRNG,
			 paofch:    (SLGTH: 0..STRGLGTH;
				     SVAL: paoc);
			 bigpaoc:   (paoclgth: integer;
				     paocval: bigpac);

			 REEL:(RVAL: real)

			 $IF MC68020$;
			 chk2_bounds: (lower,upper: integer;
				       size: stortype)
			 $END$ );
		 END;

      VALU = RECORD CASE intval: BOOLEAN OF
		      TRUE:  (IVAL: INTEGER);
		      FALSE: (VALP: CSP)
		    END;

      vcref = ^valucel;
      valucel = record
		  vcnxt: vcref;
		  vcval: valu;
		  case boolean of
		    true: (vid: ctp);
		  end;

      scstruct = record
		   scstp: stp;
		   scvcp: vcref;
		   end;

				(* machine-dependent attributes*)

      callmodetype = (abscall,relcall);
      regrange = 0..maxreg;
      regtype = (A,D,F);
      addrtype =
	(inAreg,inDreg,inFreg,multiple,predecr,
	 postincr,locinreg,topofstack,loconstack,
	 labelledconst,namedconst,enumconst,
	 shortabs,longabs,prel,immediate
	 $IF MC68020$
	 ,fmultiple
	 $END$
	 );
      accesstype = (direct,indirect);
      multiregs = packed array[regtype,regrange] of boolean;

      attrptr = ^attrtype;

      attrtype = record
		   next: attrptr;
		   offset: addrrange; {used by absolute,longconst,locinreg}
		   regnum: regrange;{used by inreg,locinreg}
		   access: accesstype;
		   storage: stortype;
		   indexed: boolean;
		   indexreg: regrange;
		   indexstorage: stortype;
		   $IF MC68020$
		     indexscale: 0..3;
		   $END$
		   packd: boolean;
		   signbit: boolean;
		   bitsize: shortint;
		   bitoffset: record
				static: integer;
				variable: -1..maxreg;
				storage: stortype;
			      end;
		   case addrmode: addrtype of
		     predecr,postincr,
		     topofstack,loconstack,
		     inAreg,inDreg,inFreg: ();      (* use regnum *)

		     locinreg : (gloptr: alphaptr);   (* uses regnum, offset *)

		     shortabs,
		     longabs,
		     prel     : (absaddr: valu);  (* address + offset *)
		     immediate: (smallval: integer);
		     namedconst: (constptr: csp; callmode: callmodetype);
		     labelledconst: (constvalp: csp);
		     enumconst: (enumstp: stp);
		     multiple: (regs: multiregs);
		     $IF MC68020$
		       fmultiple: (fregs: packed array[regrange] of boolean);
		     $END$
		     end;



@


55.2
log
@
pws2rcs automatic delta on Mon Nov  4 13:45:04 MST 1991
@
text
@@


55.1
log
@Automatic bump of revision number for PWS version 3.25A
@
text
@d7 2
a8 2
      crevid = daterec[year:91,day:13,month:08];
      crevno = '3.25A';
@


54.2
log
@
pws2rcs automatic delta on Wed Aug 21 12:59:22 MDT 1991
@
text
@@


54.1
log
@Automatic bump of revision number for PWS version 3.24
@
text
@d7 2
a8 2
      crevid = daterec[year:91,day:16,month:3];
      crevno = '3.24';
@


53.3
log
@
pws2rcs automatic delta on Mon Mar 18 13:19:08 MST 1991
@
text
@@


53.2
log
@Updated copyright message.
@
text
@d7 2
a8 2
      crevid = daterec[year:91,day:10,month:3];
      crevno = '3.24B';
@


53.1
log
@Automatic bump of revision number for PWS version 3.24B
@
text
@d10 1
a10 1
      copyright1 = 'Copyright Hewlett-Packard Company, 1982, 1990.';
@


52.2
log
@
pws2rcs automatic delta on Mon Mar 11 16:41:32 MST 1991
@
text
@@


52.1
log
@Automatic bump of revision number for PWS version 3.24A
@
text
@d7 2
a8 2
      crevid = daterec[year:91,day:16,month:02];
      crevno = '3.24A';
@


51.2
log
@
pws2rcs automatic delta on Mon Feb 18 20:38:36 MST 1991
@
text
@@


51.1
log
@Automatic bump of revision number for PWS version 3.24d
@
text
@d7 2
a8 2
      crevid = daterec[year:91,day:28,month:1];
      crevno = '3.24d';
@


50.2
log
@
pws2rcs automatic delta on Wed Jan 30 09:08:19 MST 1991
@
text
@@


50.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@d7 2
a8 2
      crevid = daterec[year:90,day:26,month:10];
      crevno = '3.24c';
@


49.2
log
@
pws2rcs automatic delta on Mon Oct 29 14:00:44 MST 1990
@
text
@@


49.1
log
@Automatic bump of revision number for PWS version 3.24b
@
text
@d7 2
a8 2
      crevid = daterec[year:90,day:13,month:08];
      crevno = '3.24b';
@


48.2
log
@
pws2rcs automatic delta on Tue Aug 14 09:29:26 MDT 1990
@
text
@@


48.1
log
@Automatic bump of revision number for PWS version 3.24a
@
text
@d7 2
a8 2
      crevid = daterec[year:90,day:23,month:07];
      crevno = '3.24a';
@


47.2
log
@
pws2rcs automatic delta on Tue Jul 24 14:47:20 MDT 1990
@
text
@@


47.1
log
@Automatic bump of revision number for PWS version 3.23
@
text
@d7 2
a8 2
      crevid = daterec[year:90,day:03,month:05];
      crevno = '3.23';
@


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


45.2
log
@
pws2rcs automatic delta on Fri May  4 14:44:01 MDT 1990
@
text
@@


45.1
log
@Automatic bump of revision number for PWS version 3.23C
@
text
@d7 2
a8 2
      crevid = daterec[year:90,day:18,month:04];
      crevno = '3.23C';
@


44.2
log
@
pws2rcs automatic delta on Thu Apr 19 13:13:04 MDT 1990
@
text
@@


44.1
log
@Automatic bump of revision number for PWS version 3.23B
@
text
@d7 2
a8 2
      crevid = daterec[year:90,day:31,month:03];
      crevno = '3.23B';
@


43.3
log
@
pws2rcs automatic delta on Sun Apr  1 16:13:30 MDT 1990
@
text
@@


43.2
log
@Fixed copyright date.
@
text
@d7 2
a8 2
      crevid = daterec[year:90,day:16,month:3];
      crevno = '3.23A';
@


43.1
log
@Automatic bump of revision number for PWS version 3.23aA
@
text
@d10 1
a10 1
      copyright1 = 'Copyright Hewlett-Packard Company, 1982, 1989.';
@


42.2
log
@
pws2rcs automatic delta on Mon Mar 19 16:00:53 MST 1990
@
text
@@


42.1
log
@Automatic bump of revision number for PWS version 3.23e
@
text
@d7 2
a8 2
      crevid = daterec[year:90,day:19,month:01];
      crevno = '3.23e';
@


41.2
log
@
pws2rcs automatic delta on Sat Jan 20 16:32:46 MST 1990
@
text
@@


41.1
log
@Automatic bump of revision number for PWS version 3.23d
@
text
@d7 2
a8 2
      crevid = daterec[year:89,day:19,month:12];
      crevno = '3.23d';
@


40.2
log
@
pws2rcs automatic delta on Thu Dec 21 14:54:59 MST 1989
@
text
@@


40.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@d7 2
a8 2
      crevid = daterec[year:89,day:27,month:09];
      crevno = '3.23c';
@


39.2
log
@
pws2rcs automatic delta on Thu Sep 28 17:16:32 MDT 1989
@
text
@@


39.1
log
@Automatic bump of revision number for PWS version 3.23b
@
text
@d7 2
a8 2
      crevid = daterec[year:89,day:25,month:9];
      crevno = '3.22b';
@


38.2
log
@
pws2rcs automatic delta on Tue Sep 26 14:31:31 MDT 1989
@
text
@@


38.1
log
@Automatic bump of revision number for PWS version 3.23a
@
text
@d7 2
a8 2
      crevid = daterec[year:89,day:25,month:08];
      crevno = '3.23a';
@


37.2
log
@
pws2rcs automatic delta on Mon Aug 28 12:16:08 MDT 1989
@
text
@@


37.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@d7 2
a8 2
      crevid = daterec[year:89,day:11,month:05];
      crevno = '3.3a';
@


36.3
log
@
pws2rcs automatic delta on Fri May 12 09:00:42 MDT 1989
@
text
@@


36.2
log
@
pws2rcs automatic delta on Thu May 11 11:32:36 MDT 1989
@
text
@d7 1
a7 1
      crevid = daterec[year:89,day:09,month:05];
@


36.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@d7 2
a8 2
      crevid = daterec[year:89,day:20,month:01];
      crevno = '3.22';
@


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.2
log
@
pws2rcs automatic delta on Fri Jan 20 16:16:31 MST 1989
@
text
@@


33.1
log
@Automatic bump of revision number for PWS version 3.22D
@
text
@d7 2
a8 2
      crevid = daterec[year:89,day:12,month:01];
      crevno = '3.22D';
@


32.3
log
@
pws2rcs automatic delta on Fri Jan 13 11:19:22 MST 1989
@
text
@@


32.2
log
@Fix copyright message

@
text
@d7 2
a8 2
      crevid = daterec[year:89,day:06,month:01];
      crevno = '3.22C';
@


32.1
log
@Automatic bump of revision number for PWS version 3.22C
@
text
@d10 1
a10 1
      copyright1 = 'Copyright Hewlett-Packard Company, 1982, 1988.';
@


31.2
log
@
pws2rcs automatic delta on Mon Jan  9 11:50:34 MST 1989
@
text
@@


31.1
log
@Automatic bump of revision number for PWS version 3.22B
@
text
@d7 2
a8 2
      crevid = daterec[year:88,day:12,month:12];
      crevno = '3.22B';
@


30.2
log
@
pws2rcs automatic delta on Wed Dec 14 13:22:28 MST 1988
@
text
@@


30.1
log
@Automatic bump of revision number for PWS version 3.22A
@
text
@d7 2
a8 2
      crevid = daterec[year:88,day:07,month:12];
      crevno = '3.22A';
@


29.2
log
@
pws2rcs automatic delta on Thu Dec  8 15:31:09 MST 1988
@
text
@@


29.1
log
@Automatic bump of revision number for PWS version 3.22b
@
text
@d7 2
a8 2
      crevid = daterec[year:88,day:27,month:10];
      crevno = '3.22b';
@


28.3
log
@
ipws2rcs automatic delta on Mon Oct 31 10:34:17 MST 1988
:w
:q
@
text
@@


28.2
log
@Changed title page copyright date to 1988.
Scott
@
text
@d7 2
a8 2
      crevid = daterec[year:88,day:05,month:10];
      crevno = '3.3a';
@


28.1
log
@Automatic bump of revision number for PWS version 3.3b
@
text
@d10 1
a10 1
      copyright1 = 'Copyright Hewlett-Packard Company, 1982, 1987.';
@


27.2
log
@pws2rcs automatic delta on Wed Oct  5 17:32:00 MDT 1988

@
text
@@


27.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@d7 2
a8 2
      crevid = daterec[year:88,day:16,month:3];
      crevno = '3.21b';
@


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


25.3
log
@Pws2unix automatic delta on Fri Mar 18 09:13:54 MST 1988
@
text
@@


25.2
log
@Pws2unix automatic delta on Wed Mar  9 08:03:11 MST 1988
@
text
@d7 2
a8 2
      crevid = daterec[year:88,day:8,month:3];
      crevno = '3.21a';
@


25.1
log
@Automatic bump of revision number for PWS version 3.2Y
@
text
@d7 2
a8 2
      crevid = daterec[year:88,day:12,month:2];
      crevno = '3.2Y';
@


24.2
log
@Pws2unix automatic delta on Tue Mar  1 09:01:42 MST 1988
@
text
@@


24.1
log
@Automatic bump of revision number for PWS version 3.2
@
text
@d7 2
a8 2
      crevid = daterec[year:87,day:29,month:8];
      crevno = '3.2';
@


23.2
log
@Pws2unix automatic delta on Sun Aug 30 14:43:47 MDT 1987
@
text
@@


23.1
log
@Automatic bump of revision number for PWS version 3.2P
@
text
@d7 2
a8 2
      crevid = daterec[year:87,day:25,month:8];
      crevno = '3.2P';
@


22.2
log
@Pws2unix automatic delta on Tue Aug 25 18:23:33 MDT 1987
@
text
@@


22.1
log
@Automatic bump of revision number for PWS version 3.2N
@
text
@d7 2
a8 2
      crevid = daterec[year:87,day:14,month:8];
      crevno = '3.2N';
d10 1
a10 1
      copyright1 = 'Copyright 1985 Hewlett-Packard Company.';
@


21.2
log
@Pws2unix automatic delta on Sat Aug 15 16:14:36 MDT 1987
@
text
@@


21.1
log
@Automatic bump of revision number for PWS version 3.2M
@
text
@d7 2
a8 2
      crevid = daterec[year:87,day:11,month:8];
      crevno = '3.2M';
@


20.2
log
@Pws2unix automatic delta on Wed Aug 12 09:47:30 MDT 1987
@
text
@@


20.1
log
@Automatic bump of revision number for PWS version 3.2L
@
text
@d7 2
a8 2
      crevid = daterec[year:87,day:28,month:7];
      crevno = '3.2L';
@


19.2
log
@Pws2unix automatic delta on Wed Jul 29 17:29:01 MDT 1987
@
text
@@


19.1
log
@Automatic bump of revision number for PWS version 3.2K
@
text
@d7 2
a8 2
      crevid = daterec[year:87,day:30,month:5];
      crevno = '3.2K';
@


18.2
log
@Pws2unix automatic delta on Sun May 31 14:33:16 MDT 1987
@
text
@@


18.1
log
@Automatic bump of revision number for PWS version 3.2J
@
text
@d7 2
a8 2
      crevid = daterec[year:87,day:19,month:5];
      crevno = '3.2J';
@


17.2
log
@Pws2unix automatic delta on Wed May 20 09:57:02 MDT 1987
@
text
@@


17.1
log
@Automatic bump of revision number for PWS version 3.2I+
@
text
@d7 2
a8 2
      crevid = daterec[year:87,day:24,month:4];
      crevno = '3.2I';
@


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


15.2
log
@Pws2unix automatic delta on Fri Apr 24 18:41:36 MDT 1987
@
text
@@


15.1
log
@Automatic bump of revision number for PWS version 3.2H
@
text
@d7 2
a8 2
      crevid = daterec[year:87,day:11,month:4];
      crevno = '3.2H';
@


14.2
log
@Pws2unix automatic delta on Sun Apr 12 17:10:24 MDT 1987
@
text
@@


14.1
log
@Automatic bump of revision number for PWS version 3.2G
@
text
@d7 2
a8 2
      crevid = daterec[year:87,day:31,month:3];
      crevno = '3.2G';
@


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
@d7 2
a8 2
      crevid = daterec[year:87,day:27,month:2];
      crevno = '3.2F';
@


12.2
log
@Pws2unix automatic delta on Sat Feb 28 15:17:33 MST 1987
@
text
@@


12.1
log
@Automatic bump of revision number for PWS version 3.2E
@
text
@d7 2
a8 2
      crevid = daterec[year:87,day:30,month:1];
      crevno = '3.2E';
@


11.2
log
@Pws2unix automatic delta on Mon Feb  2 09:47:34 MST 1987
@
text
@@


11.1
log
@Automatic bump of revision number for PWS version 3.2D
@
text
@d7 2
a8 2
      crevid = daterec[year:87,day:18,month:1];
      crevno = '3.2D';
@


10.3
log
@Pws2unix automatic delta on Sun Jan 18 18:33:43 MST 1987
@
text
@@


10.2
log
@Fix for packed array with non-0 base index 
@
text
@d7 2
a8 2
      crevid = daterec[year:86,day:23,month:12];
      crevno = '3.2C';
@


10.1
log
@Automatic bump of revision number for PWS version 3.2C
@
text
@d222 1
a222 1
				static: shortint;
@


9.2
log
@Pws2unix automatic delta on Tue Dec 23 16:24:27 MST 1986
@
text
@@


9.1
log
@Automatic bump of revision number for PWS version 3.2B
@
text
@d7 2
a8 2
      crevid = daterec[year:86,day:11,month:12];
      crevno = '3.2B';
@


8.2
log
@Pws2unix automatic delta on Fri Dec 12 09:42:40 MST 1986
@
text
@@


8.1
log
@Automatic bump of revision number for PWS version 3.2A
@
text
@d7 2
a8 2
      crevid = daterec[year:86,day:26,month:11];
      crevno = '3.2A';
@


7.2
log
@Pws2unix automatic delta on Wed Nov 26 16:18:22 MST 1986
@
text
@@


7.1
log
@Automatic bump of revision number for PWS version 3.2l
@
text
@d7 2
a8 2
      crevid = daterec[year:86,day:10,month:11];
      crevno = '3.2l';
@


6.2
log
@Pws2unix automatic delta on Wed Nov 19 15:16:12 MST 1986
@
text
@@


6.1
log
@Automatic bump of revision number for PWS version 3.2k
@
text
@d7 2
a8 2
      crevid = daterec[year:86,day:03,month:11];
      crevno = '3.2k';
@


5.2
log
@Pws2unix automatic delta on Tue Nov  4 11:36:56 MEZ 1986
@
text
@@


5.1
log
@Automatic bump of revision number for PWS version 3.2j
@
text
@d7 2
a8 2
      crevid = daterec[year:86,day:27,month:10];
      crevno = '3.2j';
@


4.2
log
@Pws2unix automatic delta on Tue Oct 28 10:57:29 MEZ 1986
@
text
@@


4.1
log
@Automatic bump of revision number for PWS version 3.2i
@
text
@d7 2
a8 2
      crevid = daterec[year:86,day:26,month:9];
      crevno = '3.2i';
@


3.2
log
@Pws2unix automatic delta on Tue Sep 30 13:50:02 MEZ 1986
@
text
@@


3.1
log
@Automatic bump of revision number for PWS version 3.2h
@
text
@d7 2
a8 2
      crevid = daterec[year:86,day:28,month:8];
      crevno = '3.2h';
@


2.2
log
@Pws2unix automatic delta on Mon Sep  1 08:51:28 MEZ 1986
@
text
@@


2.1
log
@Auto bump rev number to 2.1 for sys 3.2e.
@
text
@d7 2
a8 2
      crevid = daterec[year:86,day:29,month:7];
      crevno = '3.2e';
@


1.3
log
@Pws2unix automatic delta on Wed Jul 30 09:07:03 MEZ 1986
@
text
@@


1.2
log
@Pws2unix automatic delta on Tue Jul 15 16:35:26 MEZ 1986
@
text
@d7 2
a8 2
      crevid = daterec[year:86,day:14,month:7];
      crevno = '3.2d';
@


1.1
log
@Initial revision
@
text
@d7 2
a8 2
      crevid = daterec[year:86,day:13,month:6];
      crevno = '3.2b';
@
