this modset adds special facilities to the pascal compiler for 
compiling the a68s compiler and run-time system.  the facilities 
added are sufficient for their purpose, but no checks for mis-use are
made, and anyone using them for other purposes does so at his own risk.

******************************************* 

******************************************** 

these mods introduce the following built-in procedures and functions:

   procedure setstktop(size, a, v: integer); 
      sets the word in (b5-1-a) (?) to the value v. size must be >0. 
   procedure enew(p: nilptr; size: integer); 
      as new, but exactly size words are obtained. 
   procedure edispose(p: nilptr; size: integer);
      as dispose, but exactly size words are returned.
   procedure moveleft(from, to: nilptr; size: integer);
      moves a block of 'size' words starting at 'from' to 'to'.
      copying starts at the leftmost word.
      size must be a multiple of word size.
   function getstktop(size, a: integer): integer;
      returns the value held in (b5-1-a)(?). size must be >0.
   function asptr(v: integer): nilptr;
      returns the value of v as if it were a pointer. the function
      asptr may be used in any context in a pascal program where nil
      would be acceptable (in algol 68 terminology - in any strong
      context). note that the language already provides the function
      'ord' to perform the converse operation of 'asptr'.
   function incptr(p: nilptr; v: integer): nilptr;
     increments the pointer p by v, and returns the result.

*********************************************

The following additional compiler options are provided

	e:      all procedure names external (even inner ones) (-)
	g:      global declarations compiled (+)
		when compiling segments of procedures:
		  g- implies that global declarations are merely repetitions
		  (which had better be correct!) of declarations in some
		  master segment.
		when compiling main program:
		  g- implies that such a master segment is being compiled.
	w:      generate warnings as well as error messages (+)
  
  all the above options are translated to lower case, thus are case
  independent. This applies to options in the source file and to those
  passed via C_EM_PC.

*********************************************

----------------------------
revision 2.10        
date: 86/08/19 15:22:09;  author: dw;  state: Exp;  lines added/del: 2/1
This lets 'getstktop' know about reals so it does not try to convert what
is already a real to a real and get it wrong.
----------------------------
revision 2.9        
date: 86/08/13 12:03:49;  author: dw;  state: Exp;  lines added/del: 3/2
more of 2.8, label now after goto descriptor 
----------------------------
revision 2.8        
date: 86/08/11 19:57:32;  author: dw;  state: Exp;  lines added/del: 49/0
This makes labels that are jumped to non-locally have a global label 
associated with them. The labels are of the form _xxxnnn where xxx is the
number of the label & nnn is the name of the routine.
----------------------------
revision 2.7        
date: 86/07/17 19:42:29;  author: dw;  state: Exp;  lines added/del: 2/1
This fixes getstktop. It now uses 'ads' rather than 'adu'. The changes have
been made in 'call'.
----------------------------
revision 2.6        
date: 86/07/17 19:30:30;  author: dw;  state: Exp;  lines added/del: 15/0
This causes all USER procedural identifiers ( <PRO> ) to be in upper case
Modifacation to 'argident'. (m_a_i_n) is left in lower case for 'ld'.
----------------------------
revision 2.5        
date: 86/07/17 19:25:10;  author: dw;  state: Exp;  lines added/del: 7/1
This forces the compiler to take note of where an EXTERN procedure is
declared and make it STATICALLY be there.
----------------------------
revision 2.4        
date: 86/07/17 19:22:39;  author: dw;  state: Exp;  lines added/del: 13/1
'r' option sets the effective upperbound as high as is possible
----------------------------
revision 2.3        
date: 86/07/17 19:20:20;  author: dw;  state: Exp;  lines added/del: 19/1
This implements incptr.
----------------------------
revision 2.2        
date: 86/03/14 20:35:27;  author: dw;  state: Exp;  lines added/del: 39/3
This should cure the problem of the compiler not allowing output to the
file OUTPUT from a seperatly compiled segment. It does this by always 
setting up INPUT and OUTPUT.
----------------------------
revision 2.1        
date: 86/03/03 21:53:06;  author: dw;  state: Exp;  lines added/del: 278/26
This is the alternate form of the compiler as modified by CHL
It offers several extentions to the existing compiler needed to compile
the ALGOL68S compiler.
=============================================================================
