42 lines
679 B
Text
42 lines
679 B
Text
OPEN "/dev/stdin" FOR DEVICE AS in
|
|
|
|
FUNCTION get_odd()
|
|
|
|
LOCAL ch, letter
|
|
|
|
ch = MEMORY(1)
|
|
GETBYTE ch FROM in
|
|
|
|
IF NOT(REGEX(CHR$(PEEK(ch)), "[[:punct:]]")) THEN
|
|
letter = get_odd()
|
|
PRINT CHR$(PEEK(ch));
|
|
ELSE
|
|
letter = PEEK(ch)
|
|
END IF
|
|
|
|
FREE ch
|
|
RETURN letter
|
|
|
|
END FUNCTION
|
|
|
|
mem = MEMORY(1)
|
|
PRINT "Enter string: ";
|
|
|
|
WHILE TRUE
|
|
|
|
GETBYTE mem FROM in
|
|
PRINT CHR$(PEEK(mem));
|
|
|
|
IF REGEX(CHR$(PEEK(mem)), "[[:punct:]]") THEN
|
|
IF PEEK(mem) <> 46 THEN
|
|
POKE mem, get_odd()
|
|
PRINT CHR$(PEEK(mem));
|
|
END IF
|
|
IF PEEK(mem) = 46 THEN BREAK
|
|
END IF
|
|
WEND
|
|
|
|
FREE mem
|
|
CLOSE DEVICE in
|
|
|
|
PRINT
|