perm filename EXTERN.PAS[EAL,HE]3 blob
sn#710491 filedate 1983-05-05 generic text, type C, neo UTF8
COMMENT ā VALID 00008 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 (* Definitions of all externally available routines *)
C00005 00003 (* Interpreter Routines *)
C00016 00004 (* Editor routines *)
C00045 00005 (* Arithmetic Routines *)
C00048 00006 (* Message-passing Routines *)
C00049 00007 (* Display-related Routines *)
C00052 00008 (* CALLER routines for inter-overlay calling *)
C00058 ENDMK
Cā;
(* Definitions of all externally available routines *)
(* From ALLOC *)
procedure initAlloc; external;
function newVector: vectorp; external;
procedure relVector(v: vectorp); external;
function newTrans: transp; external;
procedure relTrans(t: transp); external;
function newNode: nodep; external;
procedure relNode(n: nodep); external;
function newEvent: eventp; external;
procedure relEvent(n: eventp); external;
function newEentry: enventryp; external;
procedure relEentry(n: enventryp); external;
function newToken: tokenp; external;
procedure relToken(n: tokenp); external;
function newIdent: identp; external;
procedure relIdent(n: identp); external;
function newStrng: strngp; external;
procedure relStrng(n: strngp); external;
function newCmoncb: cmoncbp; external;
procedure relCmoncb(n: cmoncbp); external;
function newVaridef: varidefp; external;
procedure relVaridef(n: varidefp); external;
function newFrame: framep; external;
procedure relFrame(n: framep); external;
function newEheader: envheaderp; external;
procedure relEheader(n: envheaderp); external;
function newStatement: statementp; external;
procedure relStatement(n: statementp); external;
function newPdb: pdbp; external;
procedure relPdb(n: pdbp); external;
function newEnvironment: environp; external;
procedure relEnvironment(n: environp); external;
(* From FREE *)
procedure freStrng(st: strngp); external;
procedure freeNode(n: nodep); external;
procedure freeIds; external;
procedure freeStatement(s: statementp); external;
(* Interpreter Routines *)
-------------------- Level 1 ------------------------------
(* From IAUX1A *)
procedure iAux1aGet; external;
procedure push (n: nodep); external;
function pop: nodep; external;
procedure upTrans (var t: transp; tp: transp); external;
function envLookup (offset: integer; envhdr: envheaderp): enventryp; external;
function getELev(hdr: envheaderp): integer; external;
function getEntry (level, offset: byte): enventryp; external;
function getVar (level, offset: byte): enventryp; external;
function gtVarn (n: nodep): enventryp; external;
function getNval(n: nodep; var b: boolean): nodep; external;
function getPdb: pdbp; external;
procedure freePdb(p: pdbp); external;
function getEvent: eventp; external;
procedure freeEvent(e: eventp); external;
function enterEntry (var i,j: integer; var env: environp;
envhdr: envheaderp; v: varidefp): enventryp; external;
procedure makeCmon(e: enventryp; vari: varidefp); external;
procedure makeVar(e: enventryp; vari: varidefp; tbits: integer);external;
procedure killNode(n: nodep); external;
procedure killStack; external;
procedure sendCmd; external;
procedure sendTrans(tr: transp); external;
(* From IAUX1B *)
procedure iAux1bGet; external;
procedure prntSval(s: real); external;
procedure prntVec(v: vectorp); external;
procedure prntTrans(t: transp); external;
procedure prntStrng(length: integer; s: strngp); external;
procedure prntPlist(n: nodep); external;
procedure onum(s: integer); external;
procedure prntVar(v: nodep); external;
procedure badJoints(angle: integer); external;
procedure ppArmError (err: errortypes; angle: integer); external;
procedure addPdb(var plist: pdbp; pn: pdbp); external;
procedure sleep(whenV: integer); external;
procedure deClkQueue(po: pdbp); external;
procedure msgDispatch; external;
procedure swap(newp: pdbp); external;
(* From IAUX1C.MAC *)
procedure getTime; external;
procedure clrTimeQueue; external;
-------------------- Level 2 ------------------------------
(* From IAUX2A *)
procedure getReply; external;
function whereArm (mech: integer): transp; external;
procedure nextTime; external;
procedure eval (f: framep); external;
function feval (f: framep): transp; external;
function invalidate (f: framep): boolean; external;
procedure stvals (f: framep); external;
procedure change (f: framep; res: nodep); external;
procedure getDevice (f: framep; r: nodep); external;
procedure getFrame (f: framep; r: nodep); external;
procedure getVal (level, offset: byte); external;
procedure setVal (level, offset: byte); external;
procedure affixaux (f, d: framep; cnt: integer); external;
function unfixaux (f: framep; cnt: integer): boolean; external;
procedure unfix (f1,f2: framep); external;
procedure killVar(e: enventryp); external;
procedure killEnv; external;
(* From IAUX2B *)
procedure iAux2bGet; external;
procedure cmonDisable(c: cmoncbp); external;
function cmonCheck: boolean; external;
procedure cmonEnable(e: enventryp); external;
-------------------- Level 3 ------------------------------
(* From IINIT *)
procedure initArms; external;
procedure killarms; external;
procedure calibrate; external;
procedure consDef; external;
procedure initWorld; external;
(* From IFLUSH *)
procedure flushLevel(dLev: integer); external;
procedure flushAll(p: pdbp; dLev: integer); external;
procedure unwind(p: pdbp; eLev: integer); external;
procedure flushPdb(p: pdbp); external;
procedure flushKids(p: pdbp; zapit: boolean); external;
(* From IEXPR *)
procedure evalExp; external;
(* From IOV1 *)
procedure doProg; external;
procedure doBlock; external;
procedure doCoblock; external;
procedure doEnd; external;
procedure doFor; external;
procedure doIf; external;
procedure doWhile; external;
procedure doUntil; external;
(* From IOV2 *)
procedure iOv2Get; external;
procedure doCase; external;
procedure doCall; external;
procedure doReturn; external;
procedure doAssign; external;
procedure doPrompt; external;
procedure doSignal; external;
procedure doWait; external;
(* From IOV3 *)
procedure doEnable; external;
procedure doDisable; external;
procedure doAffix; external;
procedure doUnfix; external;
(* From IOV4 *)
procedure doPrint; external;
procedure doPause; external;
procedure doAbort; external;
procedure doSetbase; external;
procedure doWrist; external;
procedure doRetry; external;
(* Fro IOV5 *)
procedure doSay; external;
procedure doFloat; 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;
(* From IMOVE1 *)
procedure iMove1Get; external;
procedure doMove; external;
(* From IMOVE2 *)
procedure iMove2Get; external;
procedure doCmon; external;
procedure doOperate; external;
procedure doOpen; (* & doClose *) external;
procedure doCenter; external;
procedure doStop; external;
procedure doArmmagic; external;
-------------------- Level 4 ------------------------------
(* From IMAIN *)
procedure interp(dLev: integer); external;
-------------------- Level 5 ------------------------------
(* From IROOT *)
function i1bTaxis (t: transp): vectorp; external;
function i1bTmagn (t: transp): scalar; external;
procedure i1bSetVal (level, offset: byte); external;
function i1bGetVar (level, offset: byte): enventryp; external;
function i2bWhereArm (mech: integer): transp; external;
procedure ov2FlushKids(p: pdbp; zapit: boolean); external;
function m1Forcebits(fn: nodep; var negv: boolean): integer; external;
function m1GetMechbits: integer; external;
procedure m1MvStart; external;
procedure m1MvEnd; external;
procedure m1MvRetry; external;
function m2Forcebits(fn: nodep; var negv: boolean): integer; external;
function m2GetMechbits: integer; external;
procedure m2MvStart; external;
procedure m2MvEnd; external;
procedure m2MvRetry; external;
(* Editor routines *)
-------------------- Level 1 ------------------------------
(* From EAUX1A *)
function getAChar: ascii; external;
procedure out1Line(line,start,length: integer); external;
procedure clearLine(i: integer); external;
function upperCase(c: ascii): ascii; external;
function eqStrng(s1: strngp; s2,len: integer): boolean; external;
function hash(ch: ascii): integer; external;
function resLookup(str,len: integer): reswordp; external;
function idLookup(str,len: integer): identp; external;
function makeNVar(vartype: datatypes; vid: identp): varidefp; external;
function makeUVar(vartype: datatypes; vid: identp): varidefp; external;
function varLookup(id: identp): varidefp; external;
procedure pushStmnt(s: statementp; indent: integer); external;
procedure pushNode(n: nodep); external;
procedure bannerLine(ch: ascii; l: integer); external;
procedure borderLines; external;
procedure adjustDisplay; external;
(* From EAUX1B *)
procedure eAux1bGet; external;
procedure appendEnd(s,so: statementp); external;
function defNode(d: datatypes): nodep; external;
function getDtype(n: nodep): datatypes; external;
function checkArg(n: nodep; d: datatypes): nodep; external;
function copyExpr(n: nodep; lcp: boolean): nodep; external;
(* From EAUX1C *)
procedure errprnt; external;
procedure relExpr(n: nodep); external;
function evalOrder(what,last: nodep; pcons: boolean): nodep; external;
function matchdim(d1,d2: nodep; exactp: boolean): boolean; external;
function getdim(n: nodep; var d: nodep): nodep; external;
procedure ppFlush; external;
(* From EPUT *)
procedure ePutGet; external;
procedure putChar(ch: ascii); external;
procedure put5(ch: c5str; length: integer); external;
procedure put10(ch: cstring; length: integer); external;
procedure putLine; external;
procedure putReal(s: real); external;
procedure putInt(r: real); external;
procedure putVec(v: vectorp); external;
procedure putTrans(t: transp); external;
procedure putStrng(length: integer; s: strngp); external;
procedure putTlist(t: tokenp); external;
function getExprLength(n: nodep): integer; external;
procedure putexpr(n: nodep; opp: integer); external;
(* From EEXPED *)
function exprEditor(line,lstart,llength,estart: integer;
var elength: integer; off: integer): ascii; external;
-------------------- Level 2 ------------------------------
(* From EAUX2A *)
procedure eAux2aGet; external;
procedure flushVar(oldvar: varidefp); external;
procedure makeNewVar(newvar: varidefp); external;
procedure initEditor; external;
(* From EAUX2B *)
procedure nextStmnt(i: integer; downp: boolean); external;
procedure lastStmnt(i: integer; downp: boolean); external;
procedure parentStmnt(n: integer); external;
(* From EAUX2C *)
procedure eAux2cGet; external;
procedure setECurInt; external;
procedure displayLines(var pfrom: integer); external;
procedure deleteLines(start,number,coff: integer); external;
procedure insertLines(start,number,coff: integer); external;
(* From EAUX2D *)
procedure readPPLine(off: integer); external;
procedure readline; external;
(* From ETOKEN *)
procedure getToken; external;
function copyToken: tokenp; external;
procedure dimCheck(n,d: nodep); external;
procedure getDelim(char: ascii); external;
(* From EPUTST *)
procedure putstmnt(s: statementp; indent, plevel: integer); external;
procedure newline(indent: integer); external;
procedure outExpr(n: nodep); external;
(* From EPUTS1 *)
procedure ePs1Get; external;
procedure putst1(s: statementp; indent, plevel: integer;
var l: integer); external;
(* From EPUTS2 *)
procedure ePs2Get; external;
procedure putst2(s: statementp; indent, plevel: integer;
var l: integer); external;
(* From EPUTS3 *)
procedure ePs3Get; external;
procedure putst3(s: statementp; indent, plevel: integer;
var l: integer); external;
(* From EMOVEO *)
procedure moveOrder(st: statementp); external;
(* From EINIT1 *)
procedure initReswords; external;
(* From EINIT2 *)
procedure init1Idents; external;
(* From EINIT3 *)
procedure init2Idents; external;
-------------------- Level 3 ------------------------------
(* From EEXPAR *)
function exprParse: nodep; external;
procedure getArgs(opn: nodep); external;
(* From EPAR3A *)
procedure ePar3aGet; external;
procedure assignParse(st: statementp; np: nodep); external;
procedure forParse(st: statementp); external;
procedure affixParse(st: statementp); external;
procedure unfixParse(st: statementp); external;
procedure enableParse(st: statementp); external;
(* From EPAR3B *)
procedure ePar3bGet; external;
function idGet(st: statementp; indent,l: integer): ascii; external;
function plistParse(st: statementp;
e0,indent,l,ocur: integer): ascii; external;
procedure labelParse; external;
procedure clabelParse(n: nodep); external;
procedure reFormatStmnt(st: statementp; indent,ocur: integer); external;
(* From EPAR3C *)
procedure ePar3cGet; external;
function declarationp: boolean; external;
function getEDeclarations(pdef: boolean; lev: integer;
var vo: varidefp; var numvars: integer): varidefp; external;
function varParse(st: statementp; indent,l: integer): ascii; external;
function procParse(n: nodep; indent,l: integer): ascii; external;
(* From EPAR3D *)
procedure ePar3dGet; external;
function addNewDeclarations: integer; external;
procedure reParse(st: statementp); external;
procedure delStmnt(arg: integer); external;
(* From EPAR3E *)
procedure ePar3eGet; external;
function clauseParse(n: nodep; absSeen: boolean): nodep; external;
procedure cmonParse(st: statementp; getStart: boolean); external;
procedure mClauseParse(n: nodep); external;
(* From EPAR3F *)
procedure ePar3fGet; external;
procedure moveParse(st: statementp; bp: boolean); external;
procedure stopParse(st: statementp); external;
procedure returnParse(st: statementp); external;
procedure wristParse(st: statementp); external;
(* From EPAR3G *)
function thenCode(evp: boolean; s: statementp): statementp; external;
procedure waitParse(sp: statementp); external;
procedure armMagicParse(sp: statementp); external;
(* From EAUX3A *)
procedure eAux3aGet; external;
procedure setPPSize(arg: integer); external;
procedure flushOldEnvironments(dLev: integer); external;
procedure saveOutermostEnv; external;
procedure fileParse(var fname: c20str); external;
procedure writeProg; external;
procedure initOuterBlock (which:integer); external;
procedure setUpStmnt(which: integer); external;
procedure getEcmd; external;
procedure doSetcmd; external;
procedure makeOuterBlock; external;
procedure openTalk; external;
(* From EAUX3B *)
procedure varDefine; external;
procedure setBpt(st: statementp); external;
procedure clrBpt(st: statementp); external;
procedure clrAllBpts; external;
procedure setTBpt(st: statementp); external;
procedure stepStmnt(bpttype: integer); external;
procedure clrTBpts; external;
procedure tracePdb(p: pdbp); external;
procedure trace(all: boolean); external;
procedure redrawDisplay; external;
procedure collectStmnt(s: statementp); external;
(* From EAUX3C - addStmnt aux routines *)
function getEmptyStmnt(sp:statementp): statementp; external;
function getBlkId: identp; external;
procedure flushSemi(slabel: varidefp); external;
procedure addNSt(sty: stmntypes; nextLinep: cursorpp;
var sp: statementp; slabel: varidefp;
emptyp,stok: boolean; var nogood: boolean); external;
function addNode(nextLinep: cursorpp; slabel:varidefp): nodep; external;
procedure addNEnv; external;
procedure descend(st: statementp); external;
function elseTest(emptyp): boolean; external;
procedure restoreCursor; external;
procedure setUpNewStmnt(sp: statementp; ind: integer); external;
procedure viaOk(i: integer; clOk: boolean; var viaCl: nodep;
var nextLinep: cursorpp); external; external;
(* From EAUX3D *)
procedure bracketStmnt; external;
procedure mark; external;
procedure unmark(all: boolean); external;
procedure gotoMark(n: integer); external;
function atStmnt: boolean; external;
(* From EDEBUG *)
procedure eDbgGet; external;
function dGetPdb(st: statementp): pdbp; external;
procedure dfreePdb(p: pdbp); external;
function getPCline(st: statementp): integer; external;
procedure runStmnt(which: integer); external;
procedure executeStmnt(st: statementp; which: integer); external;
procedure pevalExpr(n: nodep; which: integer); external;
procedure goStmnt(which: integer); external;
-------------------- Level 4 ------------------------------
(* From EMAIN *)
procedure edit; external;
(* From EMAIN1 *)
procedure em1Get; external;
procedure editInit; external;
procedure eMain1Aux(oc: integer); external;
(* From EMAIN2 *)
procedure eDo1Cmd (ch: ascii; iCh: integer;
var done, minus, okp: boolean;
oldline, oldcline, arg: integer); external;
(* From EMAIN3 *)
procedure em3Get; external;
procedure readProg; external;
procedure doAtCmd; external;
procedure eDoECmd (var okp: boolean); external;
(* From EMAIN4 *)
procedure em4Get; external;
procedure eDoStmnt; external;
procedure eDoOtherCmd; external;
(* From EMAIN5 *)
procedure eGetCommand (ch: ascii); external;
(* From EMAIN6 *)
procedure em6Get; external;
procedure eDo2Cmd (ch: ascii; iCh: integer; var okp: boolean;
arg: integer); external;
(* From EADDST *)
procedure addStmnt(firstTime: boolean); external;
(* From EADD1 *)
procedure addst1(sp: statementp); external;
(* From EADD2 *)
procedure addst2 (nextLinep: cursorpp; sp: statementp); external;
(* From EADD3 *)
procedure addSetup(nextLinep: cursorpp;
var emptyp,stok,clok: boolean; var l,elen: integer;
firstTime: boolean; var echar: ascii); external;
(* From EADD4 *)
procedure add1Aux (var l,lcur: integer; nextLinep: cursorpp;
var sp: statementp; var slabel: varidefp;
var emptyp,stok,clok,nogood,labp: boolean); external;
(* From EADD5 *)
procedure addEndStmnt (nextLinep: cursorpp;
var nogood,emptyp: boolean; var l,ocur: integer); external;
procedure add2Aux (nextLinep: cursorpp;
var l,ocur,lcur: integer; var nogood: boolean;
slabel: varidefp; labp: boolean); external;
procedure add4Aux (sp: statementp; var lcur,ocur: integer;
slabel: varidefp; nextLinep: cursorpp;
nogood,emptyp: boolean; var firstTime: boolean); external;
(* From EADD6 *)
procedure add1Filler(nextLinep: cursorpp; var l,lcur: integer;
var emptyp,stok,clok,nogood,flushp: boolean;
var sp: statementp; slabel: varidefp; viaCl: nodep); external;
(* From EADD7 *)
procedure addDeclSt(nextLinep: cursorpp; var sp: statementp;
slabel: varidefp; emptyp,stok: boolean;
var nogood,flushp: boolean; var lcur: integer); external;
procedure add3Aux (nextLinep: cursorpp; sp: statementp;
slabel: varidefp; var emptyp,stok,nogood,labp: boolean;
var lcur: integer); external;
(* From EADD8 *)
procedure addCmon(defer: boolean; nextLinep: cursorpp;
var sp: statementp; slabel: varidefp;
emptyp,clok,stok: boolean; var nogood,flushp: boolean); external;
(* From EEDITS *)
procedure echarDo (echar: ascii; var again: boolean); external;
function editExpr(n: nodep; l,e0,elen: integer;
echar: ascii; var again: boolean): nodep; external;
procedure downLine (var again:boolean; var ocur: integer); external;
procedure editStmnt; external;
(* From EEDIT1 *)
procedure eEdit1 (s: statementp; l,indent,e0,elen: integer;
var echar: ascii; var again: boolean; var ocur: integer); external;
(* From EEDIT2 *)
procedure eEdit2 (s: statementp; l,indent,e0,elen: integer;
var echar: ascii; var again: boolean; var ocur: integer); external;
(* From EEDIT3 *)
procedure eEdit3 (s: statementp; l,indent,e0,elen: integer;
var echar: ascii; var again: boolean; var ocur: integer); external;
(* From EEDIT4 *)
procedure eEditOther (n: nodep; l,indent,e0,elen: integer;
var echar: ascii; var again: boolean); external;
-------------------- Level 5 ------------------------------
(* From EROOT: Inter-overlay calls *)
function eptaxis (t: transp): vectorp; external;
function eptmagn (t: transp): scalar; external;
procedure e2cputstmnt(s: statementp; indent, plevel: integer); external;
procedure ep1putstmnt(s: statementp; indent, plevel: integer); external;
procedure ep2putstmnt(s: statementp; indent, plevel: integer); external;
procedure ep3putstmnt(s: statementp; indent, plevel: integer); external;
function e3aExprParse: nodep; external;
function e3bExprParse: nodep; external;
function e3cExprParse: nodep; external;
procedure e3cReParse(st: statementp); external;
function e3dExprParse: nodep; external;
function e3eExprParse: nodep; external;
function e3fExprParse: nodep; external;
function e3gExprParse: nodep; external;
function ea3bExprParse: nodep; external;
procedure e3gGetArgs(opn: nodep); external;
procedure edbFlLevel(dLev: integer); external;
procedure edbFlKids(p: pdbp; zapit: boolean); external;
procedure edbUnwind(p: pdbp; eLev: integer); external;
function edbExprParse: nodep; external;
function edbAddNewDeclarations: integer; external;
procedure em3AddStmnt(firstTime: boolean); external;
(* Arithmetic Routines *)
(* From ARITH1 *)
function sind(d: real): real; external;
function cosd(d: real): real; external;
function tand(d: real): real; external;
function vdot (u,v: vectorp): scalar; external;
function vmagn (v: vectorp): scalar; external;
function svmul (s: scalar; v: vectorp): vectorp; external;
function vsdiv (v: vectorp; s: scalar): vectorp; external;
function vadd (u,v: vectorp): vectorp; external;
function vsub (u,v: vectorp): vectorp; external;
function unitv (v: vectorp): vectorp; external;
function vcross (u,v: vectorp): vectorp; external;
function tvmul (t: transp; v: vectorp): vectorp; external;
function vsaxwr(ax: vectorp; w: real): transp; external;
function construct(org,vx,vxy: vectorp): transp; external;
function vmkfrc(v: vectorp): transp; external;
(* From ARITH2 *)
function asin(x: real): real; external;
function acos(x: real): real; external;
function atan2(x,y: real): real; external;
function vmake (a,b,c: scalar): vectorp; external;
function taxis (t: transp): vectorp; external;
function tmagn (t: transp): scalar; external;
function tpos (t: transp): vectorp; external;
function torient (t: transp): transp; external;
function tmake (t: transp; v: vectorp): transp; external;
function tvadd (t: transp; v: vectorp): transp; external;
function tvsub (t: transp; v: vectorp): transp; external;
function ttmul (t1,t2: transp): transp; external;
function tinvrt (t: transp): transp; external;
function auxExp(s:scalar): scalar; external;
function auxLn(s:scalar): scalar; external;
function auxTime: real; external;
(* Message-passing Routines *)
(* From RSXRUT *)
procedure initMsg(var buf: messagep; var flag: boolean); external;
procedure sndmsg (var res,err: integer); external;
procedure rcvmsg (var res,err: integer); external;
function doRqst: integer; external;
procedure signalArm; external;
procedure markTime(when: integer; var curTime,stime: integer); external;
(* From RSXMSG *)
function startArm: boolean; external;
function SendArm: boolean; external;
function GetArm: boolean; external;
(* Display-related Routines *)
(* From PP *)
procedure ppGlitch; external;
function getLine(length: integer): linerecp; external;
procedure relLine(l: linerecp); external;
procedure ppLine; external;
procedure ppOutNow; external;
procedure ppChar(ch: ascii); external;
procedure pp5(ch: c5str; length: integer); external;
procedure pp10(ch: cstring; length: integer); external;
procedure pp10L(ch: cstring; length: integer); external;
procedure pp20(ch: c20str; length: integer); external;
procedure pp20L(ch: c20str; length: integer); external;
procedure ppInt(i: integer); external;
procedure ppReal(r: real); external;
procedure ppStrng(length: integer; s: strngp); external;
procedure ppDtype(d: datatypes); external;
procedure ppDelChar; external;
(* From DISP *)
function initScreen(var l: listingarray): integer; external;
procedure reInitScreen; external;
procedure resetScreen; external;
procedure clearScreen; external;
procedure echo(on: boolean); external;
procedure beep; external;
procedure showCursor(line,col: integer); external;
procedure outLine(line,col,start,length: integer); external;
function getChar: ascii; external;
procedure outChar(line,col: integer; ch: ascii; bold: boolean); external;
procedure insChar(line,col: integer; ch: ascii); external;
procedure delChar(line,col: integer); external;
procedure insLine(line,num: integer); external;
procedure delLine(line,num: integer); external;
function anyChar(var ch: ascii): boolean; external;
procedure escInit(var flg: boolean); external;
(* CALLER routines for inter-overlay calling *)
procedure i1bPpReal(r: real); external;
function p1eReadLine(var line: linestr): integer; external;
procedure e2akillVar(e: enventryp); external;
procedure e3aInterp(dLev: integer); external;
procedure e3aFlushAll(p: pdbp; dLev: integer); external;
procedure edbInterp(dLev,which: integer); external;
procedure em6EditStmnt; external;
procedure emAddStmnt(firstTime: boolean; which: integer); external;
function em4StmntParse(var cblk,newDecs: statementp;
cproc: varidefp): statementp; external;
procedure ea3bXecuteStmnt(st: statementp; which: integer); external;