perm filename IROOT.2[EAL,HE]2 blob sn#704689 filedate 1983-03-25 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	{$NOMAIN	Main part of the Interpreter }
C00004 00003	(* Routines to handle inter-overlay calls *)
C00007 ENDMK
CāŠ—;
{$NOMAIN	Main part of the Interpreter }

%include ialhdr.pas;

{ Externally defined routines: }

	(* Arithmetic routines *)
function ttmul (t1,t2: transp): transp; 			external;
function tinvrt (t: transp): transp; 				external;
function taxis (t: transp): vectorp; 				external;
function tmagn (t: transp): scalar; 				external;

	(* From IAUX1A *)
function getVar (level, offset: byte): enventryp;		external;

	(* From IAUX2A *)
procedure setVal (level, offset: byte);				external;

	(* From IFLUSH *)
procedure flushKids(p: pdbp; zapit: boolean);			external;

	(* From IMOVRT *)
function forcebits(fn: nodep; var negv: boolean): integer;	external;
function getMechbits: integer;					external;
procedure moveStart;						external;
procedure moveEnd;						external;
procedure moveRetry;						external;

	(* Routines used only to call in overlays *)
procedure iAux1bGet;						external;
procedure iOv2Get; 						external;
procedure iMove1Get; 						external;
procedure iMove2Get; 						external;

(* Routines to handle inter-overlay calls *)

function i1bTaxis (t: transp): vectorp; external;
function i1bTaxis ;
 begin i1bTaxis := taxis(t); iAux1bGet; end;

function i1bTmagn (t: transp): scalar; external;
function i1bTmagn ;
 begin i1bTmagn := tmagn(t); iAux1bGet; end;

procedure i1bSetVal (level, offset: byte); external;
procedure i1bSetVal;
 begin setval(level,offset); iAux1bGet end;

function i1bGetVar (level, offset: byte): enventryp; external;
function i1bGetVar;
 begin i1bGetVar := getVar(level,offset); iAux1bGet end;

procedure ov2FlushKids(p: pdbp; zapit: boolean); external;
procedure ov2FlushKids;
 begin flushKids (p,zapit); iOv2Get; end;

function m1Forcebits(fn: nodep; var negv: boolean): integer; external;
function m1Forcebits;
 begin m1Forcebits := forceBits(fn,negv); iMove1Get; end;

function m1GetMechbits: integer; external;
function m1GetMechbits;
 begin m1GetMechbits := getMechbits; iMove1Get; end;

procedure m1MvStart; external;
procedure m1MvStart;					
 begin moveStart; iMove1Get; end;

procedure m1MvEnd; external;
procedure m1MvEnd;					
 begin moveEnd; iMove1Get; end;

procedure m1MvRetry; external;
procedure m1MvRetry;					
 begin moveRetry; iMove1get; end;

function m2Forcebits(fn: nodep; var negv: boolean): integer; external;
function m2Forcebits;
 begin m2Forcebits := forceBits(fn,negv); iMove2Get; end;

function m2GetMechbits: integer; external;
function m2GetMechbits;			
 begin m2GetMechbits := getMechbits; iMove2Get; end;

procedure m2MvStart; external;
procedure m2MvStart;					
 begin moveStart; iMove2Get; end;

procedure m2MvEnd; external;
procedure m2MvEnd;					
 begin moveEnd; iMove2Get; end;

procedure m2MvRetry; external;
procedure m2MvRetry;					
 begin moveRetry; iMove2get; end;