<> <> DIRECTORY CharDisplays, DisplayControllers, DisplayControllerSteps, Rope, TermProgs; <> 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[]]; }.