-- File: CountPrivate.mesa
-- Edited by Sandman on September 19, 1980  7:54 AM

DIRECTORY
  PerfStructures USING [FrameHandle, PsbHandle];

CountPrivate: DEFINITIONS =
  BEGIN

  VersionID: CARDINAL = 09190;

  Mode: TYPE = {plain, matrix};

  Table: TYPE = RECORD [
    SELECT OVERLAID Mode FROM
      plain => [plain: ARRAY [0..0) OF LONG CARDINAL],
      matrix => [matrix: ARRAY GroupIndex OF ARRAY GroupIndex OF LONG CARDINAL],
      ENDCASE];
  TableHandle: TYPE = POINTER TO Table;

  MaxGroup: CARDINAL = 15;
  GroupIndex: TYPE = CARDINAL [0..MaxGroup];
  GroupTable: TYPE = ARRAY [0..0) OF GroupIndex;
  GroupHandle: TYPE = POINTER TO GroupTable;

  ControlRecord: TYPE = MACHINE DEPENDENT RECORD [
    gfi(0), prevGfi(1): CARDINAL,
    newMeasurement(2): BOOLEAN,
    trace(3): BOOLEAN,
    mode(4): Mode,
    counts(5), times(6): TableHandle,
    groups(7): GroupHandle,
    length(8): CARDINAL,
    process(9): PerfStructures.PsbHandle,
    version(10): CARDINAL,
    saveBreakHandler(11): PerfStructures.FrameHandle,
    self(12): PerfStructures.FrameHandle,
    newSession(13): BOOLEAN,
    pulseConversion(14): LONG CARDINAL ← NULL];

  PCR: TYPE = POINTER TO ControlRecord;

  END..