The noncanon
program provides a means of entering data
via the keyboard without echoing it to the screen. This is known as
non-canonical input mode, the usual echoing of input being canonical
input mode. The general details of terminal control
are very complex, but simple access has been provided with the
kbd channel
.
Here is a sample program which may be used to test the effect of
kbd channel
:
PROGRAM noncanon CONTEXT VOID USE standard BEGIN STRING password; FILE kbd; open(kbd,"",kbd channel); WHILE CHAR ch; get bin(kbd,ch); ch /= REPR lf DO password+:=ch; print("*") OD; close(kbd); print(("You entered [", password,"]", newline)) END FINISH
Notice that the program cannot be aborted by pressing
^C
. Ensure you close the FILE
opened with
the kbd channel
after use otherwise you'll find all your
commands at the command prompt unechoed. If that happens, issue the
following command at the prompt:
$ stty sane
when normal echoing will be restored.