-- file OpCodeParams.mesa
-- last edited by Sweet on Feb 15, 1979 12:46 PM
-- last edited by Satterthwaite 15-Apr-81 16:20:24

DIRECTORY
  Environment: TYPE USING [Byte],
  Mopcodes: TYPE USING [
    zEFC0, zJ2, zJEQ2, zJNE2, zLFC1, zLG0, zLI0, zLL0, zPL0, zR0, zRIL0, zSG0, zSL0, zW0],
  PrincOps: TYPE USING [globalbase, localbase];

OpCodeParams: DEFINITIONS =
  BEGIN OPEN Mopcodes;

  Byte: TYPE = Environment.Byte;

  GlobalBase: CARDINAL = PrincOps.globalbase;
  GlobalHB: TYPE = [GlobalBase..GlobalBase+16);
  GlobalLoadSlots: TYPE = [GlobalBase..GlobalBase+8);
  GlobalStoreSlots: TYPE = [GlobalBase..GlobalBase+4);

  LocalBase: CARDINAL = PrincOps.localbase;
  LocalHB: TYPE = [LocalBase..LocalBase+16);
  LocalLoadSlots: TYPE = [LocalBase..LocalBase+8);
  LocalStoreSlots: TYPE = [LocalBase..LocalBase+8);
  LocalPutSlots: TYPE = [LocalBase..LocalBase+4);

  HB: TYPE = [0..16);
  LoadImmediateSlots: TYPE = [0..7);
  ReadSlots: TYPE = [0..5);
  WriteSlots: TYPE = [0..3);
  RILSlots: TYPE = [0..1);
  MaxFIAJumps: INTEGER = 8;
  MaxFICJumps: INTEGER = 8;
  MaxFBJumps: INTEGER = 121;
  MaxBBJumps: INTEGER = 127;
  
  ExternalProcBase: CARDINAL = 0;
  LocalProcBase: CARDINAL = 1;
  ExternalProcSlots: TYPE = [ExternalProcBase..ExternalProcBase+16);
  LocalProcSlots: TYPE = [LocalProcBase..LocalProcBase+8);
  DstarLocalProcSlots: TYPE = [LocalProcBase..LocalProcBase+16);

  zRILn: Byte = zRIL0;
  zEFCn: Byte = zEFC0;
  zLFCn: Byte = zLFC1;
  zLIn: Byte = zLI0;
  zLLn: Byte = zLL0;
  zSLn: Byte = zSL0;
  zLGn: Byte = zLG0;
  zSGn: Byte = zSG0;
  zPLn: Byte = zPL0;
  zRn: Byte = zR0;
  zWn: Byte = zW0;
  zJn: Byte = zJ2;
  zJEQn: Byte = zJEQ2;
  zJNEn: Byte = zJNE2;

  END.