<> <> <<>> <<1) Is SetScanLineWakeup really necessary? Is it implementable on all controllers?>> <<2) Is 16 word alignment of globalState area necessary on D0?>> DIRECTORY PrincOps USING [BBTable, PageCount, PageNumber]; DisplayFace: CEDAR DEFINITIONS = BEGIN <<>> <> <> <> hasBuffer: READONLY BOOL; < display implementation provides real memory for bitmap;>> < client provides real memory for bitmap.>> pagesForBitmap: READONLY PrincOps.PageCount; <> Connect: PROC [bitmap: PrincOps.PageNumber]; <> Disconnect: PROC; <> TurnOn: PROC; <> TurnOff: PROC; <> GetBitBltTable: PROC RETURNS [PrincOps.BBTable]; SetBackground: PROC [background: Background]; Background: TYPE = {white, black}; < normal (black on white) view of bitmap (0=>white, 1=>black);>> < inverted (white on black) view of bitmap (0=>black, 1=>white);>> width, height: READONLY NAT; -- Dimensions of screen in pixels pixelsPerInch: READONLY CARDINAL; -- Size of a pixel refreshRate: READONLY CARDINAL; -- Number of times per second that entire screen is refreshed. interlaced: READONLY BOOL; -- Is the refresh two-way interlaced? SetScanLineWakeup: PROC [line: CARDINAL, mask: WORD]; <> GetScanLine: PROC RETURNS [line: CARDINAL]; <> hasBorder: READONLY BOOL; -- Is border pattern implemented? SetBorderPattern: PROC [oddPairs, evenPairs: [0..377B]]; <> MonitorType: TYPE = {alto, lf}; <> <> <> <> <> monitorType: MonitorType; -- the monitor connected to this machine FieldRate: TYPE = {normalAlto, normalLF, lfBall60hz, lfPhillips60hz}; SetFieldRate: PROC [rate: FieldRate] RETURNS [ok: BOOL]; <> SetVerticalWaveforms: PROC [sync, visible, topBorder: CARDINAL] RETURNS [ok: BOOL]; <> <> <> <> <> <> <> SetCursorPattern: PROC [cursorPtr: CursorPtr]; <> CursorPtr: TYPE = LONG POINTER TO Cursor; Cursor: TYPE = ARRAY [0..16) OF WORD; cursorPosition: READONLY LONG POINTER TO Point; Point: TYPE = RECORD [x, y: INTEGER]; -- x and y , measured from upper-left corner of screen. <<>> <> globalStateSize: READONLY CARDINAL; GlobalStatePtr: TYPE = LONG POINTER; InitializeCleanup: PROC; Initialize: UNSAFE PROC [globalState: GlobalStatePtr, wakeVF: WORD]; <> END.