trap all input?

Blitz3D Forums/Blitz3D Programming/trap all input?

OK I know this is probably a simple question... but here goes... I want to TRAP all input from the PS2 keyboard... this would include NON-ASCII keys...

It would also include a MAG STRIP reader on the keyboard that essentially just loads the keybuffer and squirts the info out as keyboard is polled by program...

Is there a way I can read the keyboard buffer?

This isn't some hack job... I have to test POS keyboards and can't seem to read anything other than the ASCII set.

Rook

you can try keydown 0 to 255.

Something like
while keydown(1)=0
for i=0 to 255
 if keydown(i) then print "you pressed key n."+i
next
wend


Hey! That seems to do the trick! Thanks JFK

Replace keydown with keyhit, it will tell you if it was hit, not if it is being pressed at the exact same moment you happen to be calling keydown()...

While KeyDown(1)=0
    For i%=0 To 255
        If KeyHit(i%) Then Print "you pressed key n."+i%
    Next
Wend


Vinylpusher... (interesting name by the way! :) ) That lets me see a better image of what is read by the MAG STRIPE from the keyboard... YAY! Now if I could just read F13, F14, and F15 all would be wonderful...
Thanks
Rook

Hmm, F13, F14 and F15 should be scancodes 100, 101 and 102 respectively.

Does nothing happen when you press those keys (no scancode at all)?

You might find this useful at some point.

nada occours... I have an older OmniKey/PLUS keyboard... My dads... I love it! The keys have just the righr click and crispness to them... This is hard to find nowadays!

Does anyone know how big the keyboard buffer is?

RZ

FIXED IT:

Dim keybank$ (256)

ii%=1
keybank$(ii%)= " KEY_ESC " : ii%=ii%+1
keybank$(ii%)= " KEY_1" : ii%=ii%+1
keybank$(ii%)= " KEY_2 " : ii%=ii%+1
keybank$(ii%)= " KEY_3 " : ii%=ii%+1
keybank$(ii%)= " KEY_4 " : ii%=ii%+1
keybank$(ii%)= " KEY_5 " : ii%=ii%+1
keybank$(ii%)= " KEY_6 " : ii%=ii%+1
keybank$(ii%)= " KEY_7 " : ii%=ii%+1
keybank$(ii%)= " KEY_8 " : ii%=ii%+1
keybank$(ii%)= " KEY_9 " : ii%=ii%+1 
keybank$(ii%)= " KEY_0 " : ii%=ii%+1
keybank$(ii%)= " KEY_MINUS " : ii%=ii%+1
keybank$(ii%)= " KEY_EQUALS " : ii%=ii%+1
keybank$(ii%)= " KEY_BACKSPACE " : ii%=ii%+1
keybank$(ii%)= " KEY_TAB " : ii%=ii%+1
keybank$(ii%)= " KEY_Q " : ii%=ii%+1
keybank$(ii%)= " KEY_W " : ii%=ii%+1
keybank$(ii%)= " KEY_E " : ii%=ii%+1
keybank$(ii%)= " KEY_R " : ii%=ii%+1
keybank$(ii%)= " KEY_T " : ii%=ii%+1
keybank$(ii%)= " KEY_Y " : ii%=ii%+1;= 21
keybank$(ii%)= " KEY_U" : ii%=ii%+1
keybank$(ii%)= " KEY_I " : ii%=ii%+1
keybank$(ii%)= " KEY_O " : ii%=ii%+1
keybank$(ii%)= " KEY_P " : ii%=ii%+1
keybank$(ii%)= " KEY_LEFTBRACKET" : ii%=ii%+1; = 26
keybank$(ii%)= " KEY_RIGHTBRACKET " : ii%=ii%+1
keybank$(ii%)= " KEY_ENTER " : ii%=ii%+1
keybank$(ii%)= " KEY_LEFTCONTROL" : ii%=ii%+1
keybank$(ii%)= " KEY_A " : ii%=ii%+1
keybank$(ii%)= " KEY_S " : ii%=ii%+1
keybank$(ii%)= " KEY_D " : ii%=ii%+1;= 32
keybank$(ii%)= " KEY_F" : ii%=ii%+1
keybank$(ii%)= " KEY_G " : ii%=ii%+1
keybank$(ii%)= " KEY_H " : ii%=ii%+1
keybank$(ii%)= " KEY_J " : ii%=ii%+1
keybank$(ii%)= " KEY_K " : ii%=ii%+1
keybank$(ii%)= " KEY_L " : ii%=ii%+1
keybank$(ii%)= " KEY_SEMICOLON " : ii%=ii%+1
keybank$(ii%)= " KEY_APOS " : ii%=ii%+1;= 40
keybank$(ii%)= " KEY_GRAVE " : ii%=ii%+1 
keybank$(ii%)= " KEY_LSHIFT " : ii%=ii%+1
keybank$(ii%)= " KEY_BACKSLASH " : ii%=ii%+1
keybank$(ii%)= " KEY_Z " : ii%=ii%+1
keybank$(ii%)= " KEY_X " : ii%=ii%+1
keybank$(ii%)= " KEY_C " : ii%=ii%+1
keybank$(ii%)= " KEY_V " : ii%=ii%+1
keybank$(ii%)= " KEY_B " : ii%=ii%+1
keybank$(ii%)= " KEY_N " : ii%=ii%+1;= 49
keybank$(ii%)= " KEY_M " : ii%=ii%+1
keybank$(ii%)= " KEY_COMMA " : ii%=ii%+1
keybank$(ii%)= " KEY_FULLSTOP " : ii%=ii%+1
keybank$(ii%)= " KEY_SLASH " : ii%=ii%+1
keybank$(ii%)= " KEY_RSHIFT " : ii%=ii%+1
keybank$(ii%)= " KEY_NUM_ASTERISK " : ii%=ii%+1;= 55
keybank$(ii%)= " KEY_LALT " : ii%=ii%+1
keybank$(ii%)= " KEY_SPACE " : ii%=ii%+1
keybank$(ii%)= " KEY_CAPITAL " : ii%=ii%+1
keybank$(ii%)= " KEY_F1 " : ii%=ii%+1
keybank$(ii%)= " KEY_F2 " : ii%=ii%+1
keybank$(ii%)= " KEY_F3 = 61" : ii%=ii%+1
keybank$(ii%)= " KEY_F4 " : ii%=ii%+1
keybank$(ii%)= " KEY_F5 " : ii%=ii%+1
keybank$(ii%)= " KEY_F6 " : ii%=ii%+1
keybank$(ii%)= " KEY_F7 " : ii%=ii%+1
keybank$(ii%)= " KEY_F8 " : ii%=ii%+1
keybank$(ii%)= " KEY_F9 " : ii%=ii%+1;= 67
keybank$(ii%)= " KEY_F10 " : ii%=ii%+1
keybank$(ii%)= " KEY_NUMLOCK " : ii%=ii%+1
keybank$(ii%)= " KEY_SCRLOCK" : ii%=ii%+1 
keybank$(ii%)= " KEY_NUM_7 " : ii%=ii%+1
keybank$(ii%)= " KEY_NUM_8 " : ii%=ii%+1
keybank$(ii%)= " KEY_NUM_9 " : ii%=ii%+1;= 73
keybank$(ii%)= " KEY_NUM_MINUS " : ii%=ii%+1
keybank$(ii%)= " KEY_NUM_4 " : ii%=ii%+1
keybank$(ii%)= " KEY_NUM_5 " : ii%=ii%+1
keybank$(ii%)= " KEY_NUM_6 " : ii%=ii%+1
keybank$(ii%)= " KEY_NUM_ADD " : ii%=ii%+1
keybank$(ii%)= " KEY_NUM_1 " : ii%=ii%+1
keybank$(ii%)= " KEY_NUM_2 " : ii%=ii%+1
keybank$(ii%)= " KEY_NUM_3 " : ii%=ii%+1
keybank$(ii%)= " KEY_NUM_0 " : ii%=ii%+1
keybank$(ii%)= " KEY_NUM_DECIMAL " : ii%=ii%+1;= 83
keybank$(ii%)= " KEY_OEM_102 UK/GERMAN" : ii%=ii%+1		; UK and German keyboards.
keybank$(ii%)= " KEY_F11 = 87" : ii%=ii%+1
keybank$(ii%)= " KEY_F12 = 88" : ii%=ii%+1
keybank$(ii%)= " KEY_F13 = 100	" : ii%=ii%+1		; NEC PC98.
keybank$(ii%)= " KEY_F14 = 101	" : ii%=ii%+1		; NEC PC98.
keybank$(ii%)= " KEY_F15 = 102	" : ii%=ii%+1		; NEC PC98.
keybank$(ii%)= " KEY_KANA = 112	" : ii%=ii%+1	; Japanese keyboard.
keybank$(ii%)= " KEY_ABNT_C1 = 115	" : ii%=ii%+1	; Upside-down ? on Portugese keyboard.
keybank$(ii%)= " KEY_CONVERT = 121" : ii%=ii%+1		; Japanese keyboard.
keybank$(ii%)= " KEY_NOCONVERT = 123	" : ii%=ii%+1; Japanese keyboard.
keybank$(ii%)= " KEY_YEN = 125	" : ii%=ii%+1		; Japanese keyboard.
keybank$(ii%)= " KEY_ABNT_2 = 126" : ii%=ii%+1		; Numpad '.' on Portugese keyboard.
keybank$(ii%)= " KEY_NUM_EQUALS " : ii%=ii%+1;= 141	 NEC PC98 has an equals key on the numeric keypad.
keybank$(ii%)= " KEY_PREVTRACK " : ii%=ii%+1;= 144	 Previous track (DIK_CIRCUMFLEX on Japanese keyboard).
keybank$(ii%)= " KEY_AT = 145	" : ii%=ii%+1		; NEC PC98.
keybank$(ii%)= " KEY_COLON = 146	" : ii%=ii%+1	; NEC PC98.
keybank$(ii%)= " KEY_UNDERLINE " : ii%=ii%+1; 147	; NEC PC98.
keybank$(ii%)= " KEY_KANJI " : ii%=ii%+1; 148		; Japanese keyboard.
keybank$(ii%)= " KEY_STOP " : ii%=ii%+1; 149		; NEC PC98.
keybank$(ii%)= " KEY_AX " : ii%=ii%+1; 150			; Japanese AX.
keybank$(ii%)= " KEY_UNLABELED " : ii%=ii%+1; 151	J3100 (err, what?).
keybank$(ii%)= " KEY_NEXTTRACK " : ii%=ii%+1;153
keybank$(ii%)= " KEY_NUM_ENTER " : ii%=ii%+1
keybank$(ii%)= " KEY_RCONTROL " : ii%=ii%+1
keybank$(ii%)= " KEY_MUTE " : ii%=ii%+1
keybank$(ii%)= " KEY_CALCULATOR " : ii%=ii%+1
keybank$(ii%)= " KEY_PLAYPAUSE " : ii%=ii%+1
keybank$(ii%)= " KEY_MEDIASTOP " : ii%=ii%+1
keybank$(ii%)= " KEY_VOLDOWN " : ii%=ii%+1; 174
keybank$(ii%)= " KEY_VOLUP " : ii%=ii%+1
keybank$(ii%)= " KEY_WEBHOME " : ii%=ii%+1; 178
keybank$(ii%)= " KEY_NUM_COMMA " : ii%=ii%+1; 179	 NEC PC98 has a comma key on the numeric pad.
keybank$(ii%)= " KEY_NUM_DIVIDE " : ii%=ii%+1
keybank$(ii%)= " KEY_SYSREQ " : ii%=ii%+1; 183
keybank$(ii%)= " KEY_RALT " : ii%=ii%+1
keybank$(ii%)= " KEY_PAUSE " : ii%=ii%+1; 197
keybank$(ii%)= " KEY_HOME " : ii%=ii%+1
keybank$(ii%)= " KEY_UP " : ii%=ii%+1; 200
keybank$(ii%)= " KEY_PGUP " : ii%=ii%+1
keybank$(ii%)= " KEY_LEFT " : ii%=ii%+1
keybank$(ii%)= " KEY_RIGHT " : ii%=ii%+1; 205
keybank$(ii%)= " KEY_END " : ii%=ii%+1; 207
keybank$(ii%)= " KEY_DOWN " : ii%=ii%+1; 208
keybank$(ii%)= " KEY_NEXT " : ii%=ii%+1
keybank$(ii%)= " KEY_INSERT " : ii%=ii%+1; 210
keybank$(ii%)= " KEY_DELETE " : ii%=ii%+1; 211
keybank$(ii%)= " KEY_LWIN " : ii%=ii%+1; 219
keybank$(ii%)= " KEY_RWIN " : ii%=ii%+1; 220
keybank$(ii%)= " KEY_APPS " : ii%=ii%+1; 221
keybank$(ii%)= " KEY_POWER " : ii%=ii%+1; 222
keybank$(ii%)= " KEY_SLEEP " : ii%=ii%+1; 223
keybank$(ii%)= " KEY_WAKE " : ii%=ii%+1; 227
keybank$(ii%)= " KEY_WEB_SEARCH " : ii%=ii%+1; 229
keybank$(ii%)= " KEY_WEB_FAV " : ii%=ii%+1; 230
keybank$(ii%)= " KEY_WEB_REFRESH " : ii%=ii%+1; 231
keybank$(ii%)= " KEY_WEB_STOP " : ii%=ii%+1; 232
keybank$(ii%)= " KEY_WEB_FORWARD " : ii%=ii%+1; 233
keybank$(ii%)= " KEY_WEB_BACK " : ii%=ii%+1; 234
keybank$(ii%)= " KEY_MYCOMP " : ii%=ii%+1; 235
keybank$(ii%)= " KEY_MAIL " : ii%=ii%+1; 236
keybank$(ii%)= " KEY_MEDIASELECT" : ii%=ii%+1;= 237


Text 10,10,""+ii%
While KeyDown(1)=0
    For i%=0 To 255
		
        If KeyHit(i%) Then
			j$=keybank$(i%)
			Print "you pressed ASCII : "+i%+" which is: "+j$
		EndIf
    Next
Wend
Wasn't explaining things correctly to my tired old brain... Thanks for the scancodes!
RZ

Fair play :)