{17/10/85 - new routines elinestart, eprecall } {21/10/85 - new routine eprocref } {23/10/85 - additional parameters to paseprc & Eproc } {28/10/85 - new routine writename } {28/11/85 - make Namesaddr & Names external } { - remove param form call to Enextproc } {29.01.86 - call settrap from InitImp } {---------------------------------------------------------------} {06/02/86 - new routines EcaseJump, EcaseEntry, EpRestore, } { EpDiscard, Estkrconst & EprocLevel } %externalinteger Namesaddr ; ! address of name table area %owninteger Namesptr ; ! index into first free location in name table area %externalintegerarray Names(0:1000) ; ! Name table area %externalroutine InitImp %externalroutinespec settrap settrap Namesaddr=addr(Names(0)) Namesptr=0 %end %externalintegerfunction SetName(%string(255)Id) %string(255)%name Name %integer Adid Name==string(Namesaddr+Namesptr) Name=Id Adid=Namesptr Namesptr=Namesptr+(((Length(Id)+4)>>2)<<2) %result=Adid+Namesaddr %end %externalroutine WriteName(%integer Adid) %string(255)%name Name Name==string(Adid) printstring(Name) %end %externalroutinespec Eproc(%stringname Name,%integer Prop,Numpars, Paramsize,Astacklen,%integername Id) %externalroutine PasEprc(%integer Adid,Level,Prop,Numpars,Paramsize, %c Astacklen,%integername Id) %string(255)%name Name Name==string(Adid) Eproc(Name,Level<<16!Prop,Numpars,Paramsize,Astacklen,Id) %end %externalintegerfnspec Exname(%integer Type,%stringname Xref) %externalintegerfunction PasExnm(%integer Type,Adid) %string(255)%name Name Name==string(Adid) %result=Exname(Type,Name) %end %externalintegerfnspec Enextproc %externalintegerfunction PasEnpr %result=Enextproc %end %externalroutinespec Edataentry(%integer Area,Offset,Length,%stringname Name) %externalroutine Pasdent(%integer Area,Offset,Length,Adid) %string(255)%name Name Name==string(Adid) Edataentry(Area,Offset,Length,Name) %end %externalroutinespec Edataref(%integer Area,Offset,Length,%stringname Name) %externalroutine Pasdref(%integer Area,Offset,Length,Adid) %string(255)%name Name Name==string(Adid) Edataref(Area,Offset,Length,Name) %end %externalroutinespec Einitialise(%integer Lang,Aver,Astackca, Aglaca,options) %externalroutine einitia(%integer Lang,Aver,Astackca,Aglaca,options) Einitialise(Lang,Aver,Astackca,Aglaca,options) %end %externalroutinespec Eterminate(%integer adaraesizes) %externalroutine etermin(%integer adareasizes) Eterminate(adareasizes) %end %externalroutinespec Estkconst(%integer Len,Ad) %externalroutine estkcon(%integer Len,Ad) Estkconst(Len,Ad) %end %externalroutinespec Estkrconst(%integer Len,Ad) %externalroutine estkrco(%integer Len,Ad) Estkrconst(Len,Ad) %end %externalroutinespec Estkglobal(%integer Level,Offset,Adid,Bytes) %externalroutine estkglo(%integer Level,Offset,Adid,Bytes) Estkglobal(Level,Offset,Adid,Bytes) %end %externalroutinespec Estkglobalind(%integer Level,Offset,Adid,Bytes) %externalroutine estkgin(%integer Level,Offset,Adid,Bytes) Estkglobalind(Level,Offset,Adid,Bytes) %end %externalroutinespec Estkparind(%integer Level,Offset,Adid,Bytes) %externalroutine estkpin(%integer Level,Offset,Adid,Bytes) Estkparind(Level,Offset,Adid,Bytes) %end %externalroutinespec Estkresult(%integer Class,Type,Bytes) %externalroutine estkres(%integer Class,Type,Bytes) Estkresult(Class,Type,Bytes) %end %externalroutinespec Estkaddr(%integer Area,Offset,Adid,Bytes) %externalroutine estkadd(%integer Area,Offset,Adid,Bytes) Estkaddr(Area,Offset,Adid,Bytes) %end %externalroutinespec Estkgaddr(%integer Level,Offset,Adid,Bytes) %externalroutine estkgad(%integer Level,Offset,Adid,Bytes) Estkgaddr(Level,Offset,Adid,Bytes) %end %externalroutinespec Estkpaddr(%integer Level,Offset,Adid,Bytes) %externalroutine estkpad(%integer Level,Offset,Adid,Bytes) Estkpaddr(Level,Offset,Adid,Bytes) %end %externalroutinespec Elinestart(%integer Line) %externalroutine elinest(%integer Line) Elinestart(Line) %end %externalroutinespec Eprecall(%integer Id) %externalroutine eprecal(%integer Id) Eprecall(Id) %end %externalroutinespec Eprocref(%integer Id,Level) %externalroutine eprocre(%integer Id,Level) Eprocref(Id,Level) %end %externalroutinespec Eprocend(%integer Localsize,Diagdisp,Astacklen) %externalroutine eprocen(%integer Localsize,Diagdisp,Astacklen) Eprocend(Localsize,Diagdisp,Astacklen) %end %externalroutinespec Eproclevel(%integer Level) %externalroutine eprocle(%integer Level) Eproclevel(Level) %end %externalroutinespec EcaseJump(%integer Lower,Upper,ErrLabid,Wflag) %externalroutine ecaseju(%integer Lower,Upper,ErrLabid,Wflag) EcaseJump(Lower,Upper,ErrLabid,Wflag) %end %externalroutinespec EcaseEntry(%integer Index,Labelid) %externalroutine ecaseen(%integer Index,Labelid) EcaseEntry(Index,Labelid) %end %externalroutinespec EpRestore(%integer Descriptor) %externalroutine epresto(%integer Descriptor) EpRestore(Descriptor) %end %externalroutinespec EpDiscard(%integer Descriptor) %externalroutine epdisca(%integer Descriptor) EpDiscard(Descriptor) %end %endoffile