a quick and dirty way that i do it is as follows
Function GetFileName()
FlushKeys
Local done = 0
Local c
Repeat
Cls
DrawText "Input File Name:> " + filename:String + ".LVL", 200, 100
c = GetChar()
If c <> 0
If c = 8
If Len(filename:String) > 0 Then filename:String = Left:String(filename:String, Len(filename:String) - 1)
EndIf
Select c
Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 71, 72, ..
73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, ..
97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, ..
110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122
filename = filename + Chr(c)
End Select
EndIf
If KeyHit(KEY_ENTER)
FlushKeys
done = 1
End If
Flip
Until done = 1
End Function
the case numbers are the value of all the keys that i want to know have been pressed or not, in this exampel keys 1-0 ,a-z and A-Z. its not pretty and i'm sure it can be done better, but i hope that helps somewhat