-- JaMStartImpl.mesa
-- Last changed by Doug Wyatt,  7-Oct-81 11:16:29

DIRECTORY
  JaMInternal USING [Frame],
  JaMOps USING [InstallReason];

JaMStartImpl: PROGRAM
EXPORTS JaMOps = {
OPEN JaMOps, JaMInternal;

installMax: CARDINAL = 20;
InstallEntry: TYPE = PROC[InstallReason,Frame];
InstallTable: TYPE = ARRAY[0..installMax) OF InstallEntry;

installLen: CARDINAL ← 0;
installs: InstallTable;

Install: PUBLIC PROC[proc: PROC[InstallReason,Frame]] = {
  IF NOT installLen<installMax THEN ERROR;
  installs[installLen] ← proc;
  installLen ← installLen + 1;
  };

ForEachInstalled: PUBLIC PROC[why: InstallReason, frame: Frame] = {
  FOR i: CARDINAL IN[0..installLen) DO installs[i][why,frame] ENDLOOP;
  };

}.