-- Copyright (C) 1983, 1985  by Xerox Corporation. All rights reserved. 
--DisplayHeadDummy.mesa, HGM,  3-Jul-85  3:28:11

DIRECTORY
  BeepFace USING [],
  BitBlt USING [BBTable],
  DisplayFace USING [Background, CursorPtr, GlobalStatePtr, Point],
  DriverStartChain USING [],
  Environment USING [BitAddress, PageCount, PageNumber],
  HeadStartChain USING [Start],
  KeyboardFace USING [DownUp, KeyboardType],
  Keys USING [KeyBits],
  KeyStations USING [],
  MouseFace USING [Buttons, Point];

DisplayHeadDummy: PROGRAM
  IMPORTS RemainingHeads: HeadStartChain
  EXPORTS HeadStartChain, BeepFace, DisplayFace, DriverStartChain, KeyboardFace, MouseFace =
  BEGIN
  
  -- BeepFace
  BeepOn: PUBLIC PROCEDURE [CARDINAL] = BEGIN END;
  BeepOff: PUBLIC PROCEDURE = BEGIN END;

  -- DisplayFace
  hasBuffer, hasBorder, scrollingInhibitsCursor: PUBLIC BOOLEAN ← FALSE;
  width, height: PUBLIC CARDINAL [0..32767] ← 500;
  pixelsPerInch: PUBLIC CARDINAL ← 100;
  globalStateSize: PUBLIC CARDINAL ← 0;
  scrollXQuantum, scrollYQuantum: PUBLIC CARDINAL ← 1;
  cursorPosition: PUBLIC LONG POINTER TO READONLY DisplayFace.Point = @displayCursor;
  displayCursor: DisplayFace.Point;
  pagesForBitmap: PUBLIC Environment.PageCount ← 0;
  Connect: PUBLIC PROCEDURE [bitmap: Environment.PageNumber] = BEGIN ERROR; END;
  Disconnect: PUBLIC PROCEDURE = BEGIN ERROR; END;
  TurnOn: PUBLIC PROCEDURE = BEGIN ERROR; END;
  TurnOff: PUBLIC PROCEDURE = BEGIN ERROR; END;
  GetBitBltTable: PUBLIC PROCEDURE RETURNS [BitBlt.BBTable] = BEGIN ERROR; END;
  SetBackground: PUBLIC PROCEDURE [DisplayFace.Background] = BEGIN ERROR; END;   
  SetCursorPosition: PUBLIC PROCEDURE [DisplayFace.Point] = BEGIN ERROR; END;
  SetCursorPattern: PUBLIC PROCEDURE [DisplayFace.CursorPtr] = BEGIN ERROR; END;
  Initialize: PUBLIC PROCEDURE [DisplayFace.GlobalStatePtr, WORD] = BEGIN END;
  InitializeCleanup: PUBLIC PROCEDURE = BEGIN END;
  CreateScrollWindow: PUBLIC PROCEDURE [DisplayFace.Point, CARDINAL, CARDINAL] = BEGIN ERROR; END;
  Scroll: PUBLIC PROCEDURE [Environment.BitAddress, CARDINAL, INTEGER] = BEGIN ERROR; END;
  DeleteScrollWindow: PUBLIC PROCEDURE = BEGIN ERROR; END;
  SetBorderPattern: PUBLIC PROCEDURE [[0..377B], [0..377B]] = BEGIN ERROR; END;
  
  -- KeyboardFace
  keyboardType: PUBLIC KeyboardFace.KeyboardType ← LOOPHOLE[27];
  keyboard: PUBLIC LONG POINTER TO READONLY PACKED ARRAY OF KeyboardFace.DownUp = LOOPHOLE[LONG[@keyBits]];
  keyBits: Keys.KeyBits ← ALL[up];
  
  -- MouseFace
  position: PUBLIC LONG POINTER TO READONLY MouseFace.Point = @mousePosition;
  mousePosition: MouseFace.Point;
  buttons: PUBLIC LONG POINTER TO READONLY MouseFace.Buttons = @mouseButtons;
  mouseButtons: MouseFace.Buttons ← ALL[up];
  SetPosition: PUBLIC PROCEDURE [new: MouseFace.Point] = BEGIN mousePosition ← new; END;

  Start: PUBLIC PROCEDURE =
    BEGIN
    RemainingHeads.Start[];
    END;

  END....