-- AltoDisplay.mesa  Edited by Sandman on June 30, 1980  9:18 AM
-- Copyright  Xerox Corporation 1979, 1980

AltoDisplay: DEFINITIONS =
  BEGIN

  MaxWordsPerLine: CARDINAL = 38;
  MaxBitsPerLine: CARDINAL = 608;
  MaxScanLines: CARDINAL = 808;

  Resolution: TYPE = {high, low};
  Background: TYPE = {white, black};

  DCBchainHead: POINTER TO DCBHandle = LOOPHOLE[420B];
  DIW: POINTER TO WORD = LOOPHOLE[421B];
  DCBnil: DCBHandle = LOOPHOLE[0];
  DCBHandle: TYPE = POINTER TO DCB;

  DCB: TYPE = MACHINE DEPENDENT RECORD [
    next: DCBHandle,
    resolution: Resolution,
    background: Background,
    indenting: [0..77B], -- in units of 16 bits
    width: [0..377B], -- likewise; must be even
    bitmap: POINTER, -- must be even
    height: CARDINAL]; -- in double scan lines

  LongDCB: TYPE = MACHINE DEPENDENT RECORD [
    next: DCBHandle,
    resolution: Resolution,
    background: Background,
    indenting: [0..77B], -- in units of 16 bits
    width: [0..377B], -- likewise; must be even
    bitmap: POINTER, -- must be even
    tag: {short, long},
    height: [0..77777B], -- in double scan lines
    longBitmap: LONG POINTER];

  LongDCBSeal: POINTER = LOOPHOLE[177423B];

  CursorBits: TYPE = ARRAY [0..16) OF WORD;
  CursorHandle: TYPE = POINTER TO CursorBits;
  Cursor: CursorHandle = LOOPHOLE[431B];

  Coordinate: TYPE = MACHINE DEPENDENT RECORD [x, y: INTEGER];
  CursorXY: POINTER TO Coordinate = LOOPHOLE[426B];
  MouseXY: POINTER TO Coordinate = LOOPHOLE[424B];

  END.