Keycodes are a dirivitive of the ascii indexes of the characters. So if you have an
ascii conversion chart (or memorized it) it would help to some extent (knowing that space is 32 and so on)
It works something like
0x<special><index>
so if you press shift... a, you would have
0x141
or
16^2 *
1 + 16^1 *
4 + 16^0 *
1
which is 321
I use 41 as the index becasue the hexidecimal value for 65 (keycode for a) is 41 (this is why an ascii chart is sometimes needed, its hard to explain how hexidecimal values work, its base 16 so figure it out)
the special case would be if shift or ctrl were true. (im guessing, since this is what it seems to do)
special = 1 would be shift
speical = 2 would be ctrl
so control + a would be
0x241
or
16^2 *
2 + 16^1 *
4 + 16^0 *
1
which is 577