-- N.Wirth June 1, 1977 -- S.Andler August 24, 1977 10:35 PM DIRECTORY PupDefs: FROM "PupDefs", RectangleDefs: FROM "RectangleDefs", SegmentDefs: FROM "SegmentDefs"; TeleSilDefs: DEFINITIONS= BEGIN -- Constants -- white: INTEGER= -1; gray: INTEGER= 6; black: INTEGER= 7; maxCARDINAL: CARDINAL= 177777B; sandBarOK: BOOLEAN= TRUE; zoneChecking: BOOLEAN= FALSE; rebuildChunk: CARDINAL= 50; -- Definition of the display -- BMWordsPerLine: CARDINAL= 38; BMBitsPerLine: CARDINAL= BMWordsPerLine*16; BMMaxHeight: CARDINAL= 798; -- in no. of scan lines FontDesc: TYPE= RECORD[name: STRING, height: CARDINAL, fnt: RectangleDefs.FAptr, fsh: SegmentDefs.FileSegmentHandle]; -- Types -- CursorIcon: TYPE= {arrow, blackArrow, greyArrow, rebuild, input}; Coord: TYPE= RECORD[x,y: INTEGER]; Zone: TYPE= RECORD[point: Coord, w,h: CARDINAL]; GrayTone: TYPE= [white .. black]; GridSpacing: TYPE= [0..6]; FontNumber: TYPE= [0..3]; ConnId: TYPE= [0..16); -- Ethernet connection identification ObjKind: TYPE = {line, area, text}; ObjState: TYPE= {dead, active, marked, selected}; Object: TYPE= RECORD[ next: ObjPtr, zone: Zone, state: ObjState, body: SELECT kind: ObjKind FROM line => NULL, area => [shade: GrayTone], text => [fontno: FontNumber, str: STRING], ENDCASE]; ObjPtr: TYPE= POINTER TO Object; CmdObj: TYPE= RECORD[ SELECT cmdType:* FROM mouse => [mouseEvent: CARDINAL, oldCoord, newCoord: Coord], keyboard => [char: CHARACTER, info: UNSPECIFIED], text => [z: Zone, s: STRING], ether => [etherCmd: EtherCommand], cursor => [point: Coord], mark => [point: Coord, icon: CursorIcon], setCursorIcon => [icon: CursorIcon], control => [action: {request, grant, reject}, address: RECORD[CARDINAL, CARDINAL]], ENDCASE]; CmdPtr: TYPE= POINTER TO CmdObj; EtherCommand: TYPE= {input, closing, connecting}; END. (2048)\183b12B