key#
Purpose#
Returns the ASCII value of the next key available in the keyboard buffer.
Format#
- y = key()#
- Returns:
y (scalar) – ASCII value of next available key in keyboard buffer.
Examples#
format /rds 1,0;
kk = 0;
// Loop until q key
do until kk == 113;
kk = key;
if kk == 0;
continue;
elseif kk == vals(" ");
print "space \\" kk;
elseif kk >= vals("0") and kk <= vals("9");
print "digit \\" kk chrs(kk);
else;
print "\\" kk;
endif;
endo;
This is an example of a loop that processes keyboard
input. This loop will continue until the q
key
(ASCII 113) is pressed.
Remarks#
If you are working in terminal mode, key()
does not “see” any keystrokes
until ENTER is pressed. The value returned will be zero if no key is
available in the buffer or it will equal the ASCII value of the key if
one is available. The key is taken from the buffer at this time and the
next call to key will return the next key.
Here are the values returned if the key pressed is not a standard ASCII character in the range of 1-255:
Value |
Key Sequence |
---|---|
1015 |
Shift+Tab |
1016-1025 |
Alt+Q, W, E, R, T, Y, U, I, O, P |
1030-1038 |
Alt+A, S, D, F, G, H, J, K, L |
1044-1050 |
Alt+Z, X, C, V, B, N, M |
1059-1068 |
F1-F10 |
1071 |
HOME |
1072 |
CURSOR UP |
1073 |
PAGE UP |
1075 |
CURSOR LEFT |
1077 |
CURSOR RIGHT |
1079 |
END |
1080 |
CURSOR DOWN |
1081 |
PAGE DOWN |
1082 |
INSERT |
1083 |
DELETE |
1084-1093 |
Shift+F1-F10 |
1094-1103 |
Ctrl+F1-F10 |
1104-1113 |
Alt+F1-F10 |
1114 |
Ctrl+PRINT SCREEN |
1115 |
Ctrl+CURSOR LEFT |
1116 |
Ctrl+CURSOR RIGHT |
1117 |
Ctrl+END |
1118 |
Ctrl+PAGE DOWN |
1119 |
Ctrl+HOME |
1120-1131 |
Alt+1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, = |
1132 |
Ctrl+PAGE UP |