This is so much better not being a programmer, and having no context. I just get to watch this get posted and people are enjoying whatever the fuck this is, and that makes me happy
post
Such an interrupting crow
"knock knock"
"Who's there"
"The interrupting cow"
"The interrupting cow wh.." "MOOOOOOO"
I recognize asm but what's a hellott keyboard?
This irqs me
The thing that bothers me the most here is that the meme is using 64bit assembly instructions, which did not exist at the time keyboards were using IRQs to communicate. 🤣
Did they upgrade PS/2 to use something other than interrupts? Because my earliest 64-bit CPU was in a computer manufactured in the early 00s and I'm pretty sure that mobo still had actual PS/2 ports, not USB converters or something.
I viscerally recall, and don't think kids now will ever fully comprehend the one week where all 4 wheels fell off the meme bus and this was what people were literally posting. I'm legitimately triggered.
I remember laughing at this meme and now I turn my nose up at 6-7
I used to game with a guy that swore by ps/2 keyboard for the interrupt supposedly making his inputs easier to perfectly time, but he got into a heated argument with my other gaming buddy over whether or not his mobo just had a usb ps/2 port that was basically a built in adapter and I never heard from either of them since.
I wish arch was a thing back then so I could have thrown in the standard line and have the last laugh.
This is legit the biggest lol. Yes I’m aware this is the PS/2 path only and today it’s actually polling on USB or Bluetooth keyboards but this really tickled me. The face of that CPU bird!
USB keyboards yelling into the void in the background hoping to be noticed.
They ain't even, the host actually polls "interrupt" endpoints
Couldn't quite remember how it worked, just that USB didn't CPU interrupt:-)
Modern CPUs can manage what interrupts them. Almost nothing actually does.
Computers have a CPU just to get in the way of things interrupting the main CPU.
Modern CPUs can manage what interrupts them. Almost nothing actually does.
Based
I'm remembering from back in the ol' single core days too. Where an interrupt was, well, an interrupt.
You have a CPU? Well, i have a CPU in a CPU!
If you want a USB host controller to interrupt your CPU, I can recommend some nice embedded SoCs
Can someone smarter than me explain what mov rax, rbx. Does it read keyboard input?
It moves the value of register (a CPU memory cell) rbx to register rax. It's not that important though.
Basically the comic shows that the CPU is happily chugging along, executing instructions when suddenly the keyboard sends an interrupt telling the CPU it must stop all work and listen to whatever it has to say.
That was how keyboards worked before USB (back when they used PS/2 or DIN connectors). With USB it's the other way around: the device gets polled X times per second to check if it has any data to send.
It's irrelevant to the humor, it's just an arbitrary x86 instruction. The point is that keyboard inputs (with a PS/2 keyboard) interrupt whatever the computer is doing
Though to answer your question, it moves the value from the rbx register to the rbx register
These are some assembly instructions that the computer is happily running with no keyboard input. The keyboard input is then coming in as an interrupt demanding immediate processing which is silencing the poor background bird process.
Why is this cropped?
USB keyboards don't use interrupts, but instead poll at a fixed frequency.
Technically, interrupts are still often involved... just from the USB controller on the state of the polling instead of the keyboard directly on a keypress
Some keyboards implement the USB Boot Keyboard profile specified in the USB Device Class Definition for Human Interface Devices (HID) v1.11 and are explicitly configured to use the boot protocol. These are limited to 6-key rollover (6KRO) and will interrupt the CPU every time the keyboard is polled (even if there is no state change) unless the USB controller is programmed to tell the keyboard to respond with negative acknowledgments, which the USB controller discards in hardware without interrupting the CPU, when there are no state changes to report
https://en.wikipedia.org/wiki/USB_human_interface_device_class#Keyboards
So if i created my own keyboard from scratch on a open hardware microcontroller, could i implement this?
There's also the case of Bluetooth dongle keyboards not working in UEFI (except that one) but USB always do. Is it this or just the UEFI not having drivers?
So if i created my own keyboard from scratch on a open hardware microcontroller, could i implement this?
The USB controller that interrupts the CPU lives on the other side of the connection, so you'd just be building hardware that responses to the polling. If you're curious what that looks like, Ben Eater has a cool video looking at what that looks like for a USB 2 keyboard https://youtu.be/wdgULBpRoXk
There’s also the case of Bluetooth dongle keyboards not working in UEFI (except that one) but USB always do. Is it this or just the UEFI not having drivers?
I am no USB Keyboard expert, but through the power of looking it up it seems like most of these do not operate as a HID (human interface device, like mouse and keyboard) so need driver support, but some start up with a basic HID proxy which might be you have one that works. From an older thread about BIOSes rather than UEIFs
A keyboard using Bluetooth cannot access the BIOS. Logitech Bluetooth keyboards get around this by having a dongle that pairs with the keyboard in a more basic, non-Bluetooth mode until the driver kicks in and switches modes. Microsoft might be similar mode with their keyboards and dongles, but I cannot confirm that.
https://superuser.com/questions/242457/use-a-bluetooth-keyboard-to-access-edit-the-bios
Is this assembly?
Do not give that bird an E
She'll be flying so hard she'll shit herself again



top 76 comments