Try this. It ain't pretty, but it's cut and paste from Foxpro help. Should be close to dBase, but a way to test would be run this command:
?INKEY()
Then press your key.
After the following INKEY() list, are the READKEY() returns for Foxpro.
Key Alone Shift Ctrl Alt
--- ----- ----- ---- ---
F1 28 84 94 104
F2 -1 85 95 105
F3 -2 86 96 106
F4 -3 87 97 107
F5 -4 88 98 108
F6 -5 89 99 109
F7 -6 90 100 110
F8 -7 91 101 111
F9 -8 92 102 112
F10 -9 93 103 113
F11 133 135 137 139
F12 134 136 138 140
1 49 33 - 120
2 50 64 33 121
3 51 35 - 122
4 52 36 - 123
5 53 37 - 124
6 54 94 30 125
7 55 38 - 126
8 56 42 - 127
9 57 40 - 128
0 48 41 - 19
a 97 65 1 30
b 98 66 2 48
c 99 67 3 46
d 100 68 4 32
e 101 69 5 18
f 102 70 6 33
g 103 71 7 34
h 104 72 127 35
i 105 73 9 23
j 106 74 10 36
k 107 75 11 37
l 108 76 12 38
m 109 77 13 50
n 110 78 14 49
o 111 79 15 24
p 112 80 16 25
q 113 81 17 16
r 114 82 18 19
s 115 83 19 31
t 116 84 20 20
u 117 85 21 22
v 118 86 22 47
w 119 87 23 17
x 120 88 24 45
y 121 89 25 21
z 122 90 26 44
INS 22 22 146 162
HOME 1 1 29 151
DEL 7 7 147 163
END 6 6 23 159
PGUP 18 18 31 153
PGDN 3 51 30 161
UP 5 5 141 152
RIGHT 4 4 2 157
LEFT 19 19 26 155
DOWN 24 24 145 160
ESCAPE 27 27 27 1
ENTER 13 13 10 28
BSPACE 127 127 127 14
TAB 9 15 148 165
READKEY():
An integer between 0 and 36, or between 256 and 292 is returned. The value returned is between 0 and 36 if the data was not modified. The value returned is between 256 and 292 if the data is modified.
Values Returned by READKEY
Key(s) No Update Update Meaning
Code Code
ÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄ ÄÄÄÄÄÄÄ
Backspace
Left Arrow 0 256 Back 1
Ctrl+H char.
Ctrl+S
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Right Arrow
Ctrl+D* 1 257 Forward
Ctrl+L 1 char.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Home 2 258 Back 1
Ctrl+A* word
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
End 3 259 Forward
Ctrl+F 1 word
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Up Arrow
Ctrl+E* 4 260 Back 1
Shift+Tab field
Ctrl+K*
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Down Arrow
Ctrl+X*
Tab 5 261 Forward
Ctrl+Enter 1
Ctrl+I field
Ctrl+J
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
PgUp 6 262 Back 1
Ctrl+R* screen
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
PgDn 7 263 Forward
Ctrl+C 1 screen
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Ctrl+Left 8 264 Filled
Arrow
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Ctrl+Q 12 268 Exit
Escape without
save
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Ctrl+End - 270 Exit
Ctrl+W and save
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Enter 15 271 Return
Ctrl+Rt Arrow or
Ctrl+M filled
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Timeout 20 276 Timeout
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Ctrl+Home 33 289 Toggle
Ctrl+] menu
display
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Ctrl+PgUp 34 290 Zoom
Ctrl+_ out
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Ctrl+PgDn 35 291 Zoom in
Ctrl+^
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
F1 36 292 Help
func.
key
* If SET SYSMENU is OFF or FOXPLUS.FKY has been loaded, these values are returned. FOXPLUS.FKY can be found in the GOODIES directory.
<expN>
READKEY() returns a value that indicates how the last READ was terminated if the optional numeric expression <expN> is included. The numeric expression <expN> can be any value.
The following table lists the values returned by READKEY() with the reason the READ was terminated.
Value Reason
ÄÄÄÄÄ ÄÄÄÄÄÄ
1 None of the following
2 CLEAR READ issued
3 Terminating control chosen
4 READ window closed
5 DEACTIVATE clause returned .T.
6 READ timed out