LET readstring( prompt, buffer, size )  =  VALOF
$(
    LET length  =  0

    writef( "%S*E", prompt )

    $(  //  Repeat loop to read characters into the string.
    
        LET ch  =  rdch()
        
        IF  ch = '*N'  |  ch = '*E'  THEN  BREAK

        IF  ch = endstreamch  THEN  RESULTIS  FALSE
        IF  length = size     THEN  RESULTIS  FALSE

        length           :=  length + 1
        buffer % length  :=  ch
    $)
    REPEAT

    buffer % 0  :=  length

    RESULTIS  TRUE
$)


