-- E.Satterthwaite September 12, 1977 2:39 PM
-- R.Johnsson September 18, 1977 9:03 PM
-- J.Sandman October 19, 1977 10:32 AM
DIRECTORY
RectangleDefs: FROM "RectangleDefs",
SegmentDefs: FROM "SegmentDefs",
TeleSilDefs: FROM "TeleSilDefs";

TeleSilProcDefs
: DEFINITIONS =
BEGIN
OPEN TeleSilDefs;

-- Implemented by TeleSilDisplay --
ChangeFonts: PROCEDURE;
Confirm: PROCEDURE RETURNS[BOOLEAN];
Error: PROCEDURE[s: STRING];
FontHeight: PROCEDURE[fontno: FontNumber] RETURNS[CARDINAL];
FontLoaded: PROCEDURE[n: FontNumber] RETURNS[BOOLEAN];
FontName: PROCEDURE[fontno: FontNumber] RETURNS[STRING];
GetString: PROCEDURE[s: STRING, fno: FontNumber, ch: CHARACTER]
RETURNS[CARDINAL, CARDINAL];
SetBM: PROCEDURE[newBM: RectangleDefs.BMptr];

TeleSilDisplay
: PROGRAM;

-- Implemented by TeleSilIO --
DefaultExtension: PROCEDURE[fileName, extension: STRING];
HardCopy: PROCEDURE;
Input: PROCEDURE;
InputFile: PROCEDURE[
EndOfFile: PROCEDURE RETURNS[BOOLEAN],
GetWord: PROCEDURE RETURNS[WORD],
GetBlock: PROCEDURE[address: POINTER, words: INTEGER]];
Output: PROCEDURE;
OutputFile: PROCEDURE[
PutWord: PROCEDURE[word: WORD],
PutBlock: PROCEDURE[address: POINTER, words: INTEGER]];

-- Implemented by TeleSilMain --
AllocateObject: PROCEDURE[kind: ObjKind];
FreeObject: PROCEDURE[pObj: ObjPtr];
InputStatus: PROCEDURE[GetWord: PROCEDURE RETURNS[WORD]];
NewPicture: PROCEDURE;
OutputStatus: PROCEDURE[ PutWord: PROCEDURE[word: WORD]];
Rebuild: PROCEDURE;
Rover: PROCEDURE RETURNS[POINTER TO ObjPtr];
SetEtherOn: PROCEDURE[newValue: BOOLEAN];

TeleSilMain
: PROGRAM;

-- Implemented by TeleSilPup --
CmdWaiting: PROCEDURE RETURNS[BOOLEAN];
Connect: PROCEDURE;
Disconnect: PROCEDURE;
FreeCmd: PROCEDURE[CmdPtr];
Listen: PROCEDURE;
NextCmd: PROCEDURE RETURNS[pCmd: CmdPtr];
Refresh: PROCEDURE;
RequestControl: PROCEDURE RETURNS[BOOLEAN];
SendCmd: PROCEDURE[pCmd: CmdPtr];
Yield: PROCEDURE;

-- Implemented by TeleSilResident --
BitMapDisplay: PROCEDURE;
CursorPosition: PROCEDURE RETURNS[Coord];
DisplayTicks: PROCEDURE;
EraseRectangle: PROCEDURE[z: Zone];
EraseTicks: PROCEDURE;
InitDisplay: PROCEDURE;
LockFonts: PROCEDURE[FD: DESCRIPTOR FOR ARRAY OF FontDesc];
Mark: PROCEDURE[point: Coord, icon: CursorIcon];
MouseEvent: PROCEDURE[m: CARDINAL] RETURNS[CARDINAL];
MouseValue: PROCEDURE RETURNS[INTEGER];
PaintRectangle: PROCEDURE[f: CARDINAL, z: Zone, g: GrayTone];
PaintString: PROCEDURE[s:STRING, z: Zone, fno: FontNumber] RETURNS [CARDINAL];
SetCursorIcon: PROCEDURE[icon: CursorIcon] RETURNS[oldIcon: CursorIcon];
SetMousePosition: PROCEDURE[point: Coord];
SetGridSpacing: PROCEDURE[gridSpacing: GridSpacing];
ShrinkBM: PROCEDURE;
TypeScriptWindow: PROCEDURE;

TeleSilResident: PROGRAM;

-- implemented by TeleSilInit --
GetCursorIcons: PROCEDURE
RETURNS [DESCRIPTOR FOR ARRAY CursorIcon OF CursorBitMap];
GetGrayToneCode: PROCEDURE
RETURNS [DESCRIPTOR FOR ARRAY GrayTone OF GrayToneMap];
GetFonts: PROCEDURE RETURNS [DESCRIPTOR FOR ARRAY FontNumber OF FontDesc];

END.