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;