• waigl@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      2 months ago

      This is x86 assembler. (Actually, looking at the register names, it’s probably x86_64. On old school x86, they were named something like al, ah (8 bit), ax (16 bit), or eax (32 bit).) Back in the old days, when you pressed a key on the keyboard, the keyboard controller would generate a hardware interrupt, which, unless masked, would immediately make the CPU jump to a registered interrupt handler, interrupting whatever else it was doing at the point. That interrupt handler would then usually save all registers on the stack, communicate with the keyboard controller to figure out what exactly happened, react to that, restore the old registers again and then jump back to where the CPU was before.

      In modern times, USB keyboards are periodically actively polled instead.

      • starman2112@sh.itjust.works
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        2 months ago

        The virgin USB: hey, uh, when you get a chance, uh, if it’s not too much trouble, could you, uh, put an ‘e’ there? Whenever you get the chance is fine

        The chad PS/2: THE USER SAID E.

      • WhyJiffie@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 months ago

        does that mean though that if I connect a PS/2 keyboard or mouse to my relatively modern computer (a “gamer” motherboard made ~6 years ago) 's PS/2 port, that it’ll still trigger such an interrupt?

        • atomicbocks@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 months ago

          The other commenter is on the right track but the chip controls both USB and PS/2 as well as others;

          In the 90s and 2000s, for x86 machines, slower I/O was handled by a chip called the Southbridge which worked in conjunction with a chip called the Northbridge that handled faster I/O like IDE and PCI. Later these were integrated into a single chip and, as of recent processor generations, into the processor itself.

          AFAIK ghosting and key rollover are issues when using PS/2 but it can offer some milliseconds off latency when used in high cpu games.

        • Colloidal@programming.dev
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 months ago

          I think there’s a USB device inside the mobo to handle dumb peripherals. So it would still trigger an interrupt, but it wouldn’t make it to the CPU. The USB keyboard controller would handle it and cache the strokes locally until polled by the CPU.

          • grue@lemmy.world
            link
            fedilink
            arrow-up
            0
            ·
            2 months ago

            I would expect that any motherboard that went to the trouble of including a PS/2 port would handle it with a real hardware interrupt, because the whole point of still having those things is to avoid the latency overhead of USB.