Keycode fix

The code as written operated under the assumption that the keycodes for characters correspond to their ASCII values, but that is not the case outside of 0-9, a-z. This maps values to the correct key codes for symbols outside of those previously mentioned in the case where shift is not needed, and in the case where shift is needed. This makes the assumption that the user's keyboard layout is US Standard. This was already the case, it just wasn't stated explicitly.