EmADM.Mesa
Last Edited by: Spreitzer, January 11, 1986 2:41:19 pm PST
DIRECTORY CharDisplays, DisplayControllers, DisplayControllerSteps, Rope, TermProgs;
Emulates Lear-Sigler ADM terminals.
EmADM: CEDAR PROGRAM
IMPORTS DisplayControllers, DisplayControllerSteps, TermProgs
= {OPEN DisplayControllers, DisplayControllerSteps, TermProgs;
MakeADM3: PROC RETURNS [t: Term] = {
t ← NEW [TermRep ← [cp: NewControlProgram[] ]];
AddInstruction[t.cp, LIST["\000"], [Naught]];
AddInstruction[t.cp, LIST["\015"], [CarriageReturn]];
AddInstruction[t.cp, LIST["\012"], [SkipCursor, $down]];
AddInstruction[t.cp, LIST["\007"], [Beep]];
AddInstruction[t.cp, LIST["\010"], [SkipCursor, $left]];
AddInstruction[t.cp, LIST["\032"], [ClearScreen]];
};
MakeADM3a: PROC RETURNS [t: Term] = {
t ← MakeADM3[];
AddInstruction[t.cp, LIST["\000"], [Naught]];
AddInstruction[t.cp, LIST["\036"], [Home]];
AddInstruction[t.cp, LIST["\014"], [SkipCursor, $right]];
AddInstruction[t.cp, LIST["\013"], [SkipCursor, $up]];
AddInstruction[t.cp,
LIST[
"\033=",
NEW [DecodeRep ← [reg: line, base: NumChars, org: ' , len: 1]],
NEW [DecodeRep ← [reg: col, base: NumChars, org: ' , len: 1]]
],
[JumpCursor, $hv]];
};
RegTerm["adm3", MakeADM3[]];
RegTerm["adm3a", MakeADM3a[]];
}.