DIRECTORY Rope USING [ROPE]; TerminalIO: CEDAR DEFINITIONS = BEGIN UserAbort: SIGNAL; WriteRope: PROC [text: Rope.ROPE]; WriteLn: PROC []; WriteChar: PROC [ch: CHAR]; WriteInt: PROC [c: INT]; RequestRope: PROC [text, text2: Rope.ROPE _ NIL] RETURNS [Rope.ROPE]; RequestChar: PROC [text, text2: Rope.ROPE _ NIL] RETURNS [CHAR]; RequestInt: PROC [text, text2: Rope.ROPE _ NIL] RETURNS [INT]; UserSaysYes: PROC [label, text: Rope.ROPE _ NIL, default: BOOLEAN_FALSE] RETURNS [BOOLEAN]; RequestSelection: PROC [label: Rope.ROPE _ NIL, choice: LIST OF Rope.ROPE, text: Rope.ROPE _ NIL, default: CARDINAL_0] RETURNS [CARDINAL]; AddLock: PROC [lock, unLock: PROC]; END. pTerminalIO.mesa By Ch. Jacobi August 3, 1983 9:54 am Last edited by Ch. Jacobi August 5, 1983 5:18 pm Sequential IO for "terminal and keyboard" --label and choices may be clipped to one line! --returns 1 for first choice, 2 for second... --returns 0 if discarded --Procedures to prevent other processes of accepting userinput --while the user is expected to answer a request. --The lock, unLock procedures are called within the monitorlock --locks cannot (yet?) be removed, use only one lock per module Restrictions: Current implementation may deadlock if routines are called from inside a viewers repaint-procedure. Êè˜J˜Jšœ™Jšœ$™$Jšœ0™0Jšœ)™)J˜šÏk œ˜ Jšœœœ˜J˜—JšÏb œœ œ˜ Jš˜J˜Jšœ œ˜J˜JšÏn œœ œ˜"JšŸœœ˜JšŸ œœœ˜JšŸœœœ˜J˜Jš Ÿ œœœœœœ˜EJš Ÿ œœœœœœ˜@Jš Ÿ œœœœœœ˜>JšŸ œœœœ œœœœ˜[šŸœœœœ œœœ œœ œ˜vJšœœ˜Jšœ/™/Jšœ-™-Jšœ™J˜—šŸœœœ˜#Jšœ>™>Jšœ1™1Jšœ?™?Jšœ>™>—J™Jšœ˜J˜šœ ™ JšœF™FJšœ™——…—¦þ