• drathvedro@lemm.ee
    link
    fedilink
    arrow-up
    3
    ·
    5 months ago

    It’s actually the other way around. Check out Ben Eater’s awesome videos for technical details.

    TLDR: PS/2 sends separate key up and key down events, sequentially - like #1 Down - #2 Down - #1 Up - #2 Up - each in separate message, allowing for theoretically infinite rollover (excluding certain edge-cases). USB, on the other hand, polls only for keys being pressed at the moment. By default, the keyboard responds with a 8-byte message, with 1 byte being the bitmask for 8 modifier keys (4 on each side), a spacer, and 6 bytes/slots for identifiers of keys being held down. If one identifier is present in one response but is missing or replaced in next one, the system assumes a key-up event. It is possible by USB spec to negotiate connection in such a way that the keyboard responds with a bitmask for every single key it has. But this is not well supported by things like BIOS and KVM’s, so very few keyboard manufacturers bother implementing it. Most keyboarrds advertising NKRO are actually only capable of doing so via the PS/2 adapter.

    • JackbyDev@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      ·
      5 months ago

      There are proper NKRO USB keyboards though. The packet sort of reminds me of a piano. Each key has a bit that says if it is pressed or not.