-- JaMMOSSIM.mesa
-- created by Suzuki: May 5, 1981  9:09 AM
-- last edited by Thacker: July 26, 1981  11:42 AM
-- last edited by Suzuki: September 8, 1981  9:30 AM
-- last edited by Haeberli: September 24, 1981  5:52 PM
-- last edited by Haeberli:   7-Jan-82 13:17:44

DIRECTORY
  JaMFnsDefs,
  JaMMOSSIMFns,
  Mopcodes,
  MOSSIMFns,
  Resident USING [UnboundProcedure],
  StreamDefs,
  StringDefs;

JaMMOSSIM: PROGRAM
  IMPORTS JaMFnsDefs, JaMMOSSIMFns, Resident
  EXPORTS MOSSIMFns =
  {
  OPEN JaMFnsDefs, JaMMOSSIMFns, MOSSIMFns, StreamDefs;


  UnderJaM: PUBLIC BOOLEAN ← TRUE;

  {
  Register["init", Init ! Resident.UnboundProcedure => GOTO StandAlone];
  Register["simread", SimRead];

  Register["hi", SetInputHigh];
  Register["xhi", SetInputHigh];

  Register["lo", SetInputLow];
  Register["xlo", SetInputLow];

  Register["x", SetInputX];
  Register["xtx", SetInputX];

  Register["question", Question];
  Register["exclamation", Exclamation];

  Register["getnodevalue", GetNodeValue];
  Register["xgnv1", GetNodeValue];

  Register["printnodevalue", PrintNodeValue];
  Register["simsolve", Step];
  Register["thi", THi];
  Register["tlo", TLo];
  Register["tx", Tx];
  Register["tinit", Tinit];
  Register["tstep", Tstep];
  Register["gnv1", Gnv1];
  Register["bitstring", BitString];
  Register["getvectorvalue", GetVectorValue];
  Register["getvectorword", GetVectorWord];
  Register["putvectorvalue", PutVectorValue];
  Register["printvectorvalue", PrintVectorValue];
  Register["resetchangecount", ResetChangeCount];
  Register["displaychangednodes", DisplayChangedNodes];
  Register["tracenodes", TraceNodes];
  Register["untracenodes", UnTraceNodes];
  Register["warning", Warning];
  Register["enter", Enter];
  Register["loadtest", LoadTest];
  Register["out", Out];
  Register["runtest", RunTest];
  Register["setuptester", SetUpTester];
  Register["in", In];
  Register["checktest", CheckTest];

  Register["setupintact", SetUpIntact];
  Register["readstate", ReadState];
  Register["readchan", ReadChan];
  Register["setchan", SetChan];


  EXITS StandAlone => {UnderJaM ← FALSE; Enter[]; };
  };

  }.