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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

26.1
date     88.09.28.12.29.29;  author bayes;  state Exp;
branches ;
next     25.1;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

6.1
date     86.11.04.17.08.01;  author paws;  state Exp;
branches ;
next     5.1;

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

4.1
date     86.09.30.19.11.17;  author hal;  state Exp;
branches ;
next     3.1;

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

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

1.1
date     86.06.30.13.29.38;  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 GENDEFINE}

import
  globals,symtable,compio,compinit,loader,
  sysglobals;

export

  type
    opcodetype = (add,adda,addi,addq,andd,andi,asl,asr,
		  bra,bdummy,bhi,bls,bcc,bcs,bne,beq,bvc,
		  bvs,bpl,bmi,bge,blt,bgt,ble,
		  bchg,bclr,bset,btst,chk,clr,
		  cmp,cmpa,cmpm,cmpi,divs,
		  $IF MC68020$ divsl,extb,bfexts,bfextu,bfins,chk2, $END$
		  ext,jmp,jsr,lea,link,lsl,lsr,
		  move,movea,movetoCCR,movefromSR,moveI,movem,moveq,
		  muls,neg,nott,orr,pea,rts,
		  st,sf,shi,sls,scc,scs,sne,seq,svc,
		  svs,spl,smi,sge,slt,sgt,sle,
		  sub,suba,subi,subq,swap,trap,trapv,tst,unlk
		  $IF MC68020$ {68881 instructions}
		  ,fmovem,fmove,fsqrt,fabs,fcos,fsin,flogn,
		  fatan,fetox,fadd,fcmp,fdiv,fneg,fmul,fsub,
		  flognp1,fblt
		  $END$
		  );

    reftype = (abs16,abs32,rel16,rel16v,glob16,rel32);

  procedure genbody(curbody: stptr; fprocp: ctp);
  procedure codegeninit;

const
     SB =        5;     (* A5 is the stack base pointer *)
     localbase = 6;     (* A6 is local stack frame base register *)
     SP =        7;     (* A7 is top of stack pointer *)
     escapecodedisp = -2;
     FIBptrdisp =     -6;
     lastrecovdisp = -10;
     heapptrdisp =   -14;
     staticdisp = 8;    (* displacement of static link from stack marker *)
     {stackfudge = 700;  (* allowance for run time stack temporaries *)

     coderecs = 4;      (* number of 512 byte code buffers *)
     maxdir = 38;

   type
     dirange = 0..maxdir;
     libdirectory = array[dirange] of direntry;
     bytebufs = packed array[0..511] of byt;
     codebuffer = array[1..coderecs] of bytebufs;
     sizetype = (sby,sw,sl,fp,ub,uw);

     masktype = packed array[0..15] of boolean;

     flagtype = packed record case boolean of{8 bits}
		  true: (typ: reloctype;
			 size: sizetype;
			 patchable: boolean;
			 valueextend: boolean;
			 longoffset: boolean);
		  false: (b: byt);
		end;



   var
     globalattrlist: ^attrptr;   { points to the current statements attr list }
     freeattr: attrptr;          { points to a list of free attribute records }
     maxLCpatch: reflistptr;
     linenum: integer;
     bodylev,proclev: levrange;
     PCperline: integer;

     modulebody,ovflcheck,iocheck,
	       rangecheck,shortcircuit: boolean;
     callmode: callmodetype;
     curproc: ctp;
     PCcount: integer;

		    {Structured Constants}

     dedicatedregs: set of regrange;
     memorymodes: set of addrtype;
     conditionis: opcodetype;

		    {Files}

     codefileopen: boolean;
     file_name: fid;

     codephile: record
		  fileid: file;
		  buffer: ^codebuffer;
		  bytecount,
		  windowptr: addrrange;
		  headerblock,
		  startblock: shortint;
		end;

     defile: record
		fileid: file;
		buffer: ^bytebufs;
		bite,
		block: shortint;
	      end;

     refile: record
		fileid: file;
		buffer: ^bytebufs;
		bite,
		block: shortint;
	      end;

     totalbytesofcode : addrrange;
     startaddr : addrrange;                  { relative start address }

     defstartblock,refstartblock,extstartblock : shortint;
     sizeofdefs,sizeofrefs,sizeofexts : integer;

     libraryptr : ^libdirectory;
     nextmodule : dirrange;

   const
     max_module_nesting {minus 2} = 8;
   var
     def_ext_table: array[1..max_module_nesting]
				   of string[15];
     def_ext_top: shortint;

     ensure_valid_condition_code: boolean;

     OVERLAY,ADDRESS: string[7];
     EXEC: string[4];

@


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


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@a0 136
		      {file GENDEFINE}

import
  globals,symtable,compio,compinit,loader,
  sysglobals;

export

  type
    opcodetype = (add,adda,addi,addq,andd,andi,asl,asr,
		  bra,bdummy,bhi,bls,bcc,bcs,bne,beq,bvc,
		  bvs,bpl,bmi,bge,blt,bgt,ble,
		  bchg,bclr,bset,btst,chk,clr,
		  cmp,cmpa,cmpm,cmpi,divs,
		  $IF MC68020$ divsl,extb,bfexts,bfextu,bfins,chk2, $END$
		  ext,jmp,jsr,lea,link,lsl,lsr,
		  move,movea,movetoCCR,movefromSR,moveI,movem,moveq,
		  muls,neg,nott,orr,pea,rts,
		  st,sf,shi,sls,scc,scs,sne,seq,svc,
		  svs,spl,smi,sge,slt,sgt,sle,
		  sub,suba,subi,subq,swap,trap,trapv,tst,unlk
		  $IF MC68020$ {68881 instructions}
		  ,fmovem,fmove,fsqrt,fabs,fcos,fsin,flogn,
		  fatan,fetox,fadd,fcmp,fdiv,fneg,fmul,fsub,
		  flognp1,fblt
		  $END$
		  );

    reftype = (abs16,abs32,rel16,rel16v,glob16,rel32);

  procedure genbody(curbody: stptr; fprocp: ctp);
  procedure codegeninit;

const
     SB =        5;     (* A5 is the stack base pointer *)
     localbase = 6;     (* A6 is local stack frame base register *)
     SP =        7;     (* A7 is top of stack pointer *)
     escapecodedisp = -2;
     FIBptrdisp =     -6;
     lastrecovdisp = -10;
     heapptrdisp =   -14;
     staticdisp = 8;    (* displacement of static link from stack marker *)
     {stackfudge = 700;  (* allowance for run time stack temporaries *)

     coderecs = 4;      (* number of 512 byte code buffers *)
     maxdir = 38;

   type
     dirange = 0..maxdir;
     libdirectory = array[dirange] of direntry;
     bytebufs = packed array[0..511] of byt;
     codebuffer = array[1..coderecs] of bytebufs;
     sizetype = (sby,sw,sl,fp,ub,uw);

     masktype = packed array[0..15] of boolean;

     flagtype = packed record case boolean of{8 bits}
		  true: (typ: reloctype;
			 size: sizetype;
			 patchable: boolean;
			 valueextend: boolean;
			 longoffset: boolean);
		  false: (b: byt);
		end;



   var
     globalattrlist: ^attrptr;   { points to the current statements attr list }
     freeattr: attrptr;          { points to a list of free attribute records }
     maxLCpatch: reflistptr;
     linenum: integer;
     bodylev,proclev: levrange;
     PCperline: integer;

     modulebody,ovflcheck,iocheck,
	       rangecheck,shortcircuit: boolean;
     callmode: callmodetype;
     curproc: ctp;
     PCcount: integer;

		    {Structured Constants}

     dedicatedregs: set of regrange;
     memorymodes: set of addrtype;
     conditionis: opcodetype;

		    {Files}

     codefileopen: boolean;
     file_name: fid;

     codephile: record
		  fileid: file;
		  buffer: ^codebuffer;
		  bytecount,
		  windowptr: addrrange;
		  headerblock,
		  startblock: shortint;
		end;

     defile: record
		fileid: file;
		buffer: ^bytebufs;
		bite,
		block: shortint;
	      end;

     refile: record
		fileid: file;
		buffer: ^bytebufs;
		bite,
		block: shortint;
	      end;

     totalbytesofcode : addrrange;
     startaddr : addrrange;                  { relative start address }

     defstartblock,refstartblock,extstartblock : shortint;
     sizeofdefs,sizeofrefs,sizeofexts : integer;

     libraryptr : ^libdirectory;
     nextmodule : dirrange;

   const
     max_module_nesting {minus 2} = 8;
   var
     def_ext_table: array[1..max_module_nesting]
				   of string[15];
     def_ext_top: shortint;

     ensure_valid_condition_code: boolean;

     OVERLAY,ADDRESS: string[7];
     EXEC: string[4];

@


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.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.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.1
log
@Automatic bump of revision number for PWS version 3.2j
@
text
@@


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


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


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


1.1
log
@Initial revision
@
text
@@
