-- Copyright (C) 1983, 1985  by Xerox Corporation. All rights reserved. 
-- EERom.mesa, HGM,  6-Apr-85 11:35:31

DIRECTORY
  Ascii USING [NUL],
  Boot USING [Location],
  System USING [GreenwichMeanTime];

 EERom: DEFINITIONS =
  BEGIN
  
  bootLocationVersion: CARDINAL = 1;
  dataVersion: CARDINAL = 1;
  
  maxChars: CARDINAL = 3574;  -- Fill up everything beyond the first page

  bytesPerChip: CARDINAL = 2048;
  numberOfChips: CARDINAL = 2;
  totalWords: CARDINAL = (bytesPerChip*numberOfChips)/2;
  trap: CARDINAL [0..1) = totalWords - SIZE[WholeEERom];
  

  WholeEERom: TYPE = RECORD [
    bootLocation: BootLocation,
    unused: ARRAY [SIZE[BootLocation]..256) OF WORD,
    data: Data];

  BootLocation: TYPE = RECORD [
    checksum: WORD,
    version: CARDINAL ← bootLocationVersion,
    write: System.GreenwichMeanTime,
    location: Boot.Location ];

  StoreBootLocation: PROCEDURE [LONG POINTER TO BootLocation];
  FetchBootLocation: PROCEDURE [LONG POINTER TO BootLocation];
  
  Data: TYPE = RECORD [
    checksum: WORD,
    version: CARDINAL ← dataVersion,
    write: System.GreenwichMeanTime,
    used: [0..maxChars),
    data: PACKED ARRAY [0..maxChars) OF CHARACTER ← ALL[Ascii.NUL] ];
    
  StoreData: PROCEDURE [LONG POINTER TO Data];
  FetchData: PROCEDURE [LONG POINTER TO Data];
  SmashData: PROCEDURE;
  
  END.