this post was submitted on 05 Oct 2024
293 points (99.0% liked)

Programmer Humor

19704 readers
124 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
293
PS/2 things (lemmy.world)
submitted 1 month ago* (last edited 1 month ago) by [email protected] to c/programmer_humor
 

In todays edition of "stuff that I found in my storage" a PS/2 meme

Image transcription:

mov rax, rbx add rax, rcx HELLO IT'S THE KEYBOARD I HAVE AN IMPORTANT MESSAGE E

top 23 comments
sorted by: hot top controversial new old
[–] tengkuizdihar 25 points 1 month ago

Ah yes, the little old interrupt

[–] [email protected] 24 points 1 month ago (1 children)
[–] [email protected] 5 points 1 month ago (1 children)
[–] [email protected] 33 points 1 month ago

Ps/2 keyboards used interrupt when transferring data, meaning instead of waiting for the cpu to get the data it is trying to send when it is free, it will just interrupt what the cpu is currently doing and tell it to process what the keyboard is sending.

[–] [email protected] 12 points 1 month ago

Alright this has me giggling this morning

[–] [email protected] 12 points 1 month ago (1 children)

What bothers me the most here is that those are 64 bit instructions, which did not exist when PS/2 was a Thing. But I still chuckled, nice work.

Back then our registers were 32 bits wide, and we liked it 🤣

[–] [email protected] 10 points 1 month ago (2 children)

I was definitely still using ps/2 with my first Athlon 64 chip.

[–] [email protected] 2 points 1 month ago

I'm still using one PS/2 keyboard (BTC 5139), although it might be a PS/2 -> USB converter chip on the motherboard.

[–] [email protected] 2 points 1 month ago

My mistake then! Except for the 486 series I was strictly an Intel kid. I guess we often forget that AMD is the one who “won” the 64 bit war.

I have fond memories of writing interrupt handlers (staying on topic…) and using Soft-ICE on my side monochrome monitor to debug them. Good times!

[–] Gobbel2000 8 points 1 month ago (2 children)

Does USB not use interrupts?

[–] [email protected] 14 points 1 month ago (3 children)
[–] [email protected] 10 points 1 month ago* (last edited 1 month ago) (1 children)

Actually it's both, there's polling with a timeout interrupt if an incoming urb hasn't been processed quickly.

https://crlab.ece.ucr.edu/usbgps/ohci_uhci.html

This way you can take them in batches at regular intervals.

[–] [email protected] 4 points 1 month ago

It makes sense given that even microcontrollers (which are a lot simpler than microprocessors) have dedicated hardware doing the send/receive part of the work which is independent of the processing core and will only fire interrupts if the send or receive buffers reach an empty state.

This way of doing things was already usual before USB for things like I2C, Serial and SPI and whilst the USB protocol is significantly more complex, the same kind of design was also used for it.

[–] [email protected] 2 points 1 month ago

Does usb use general dma or just a small n-byte buffer that needs regular servicing?

(The last time I cared about serial IO it was for an atari 800, curious what the state of the art is.)

[–] [email protected] 2 points 1 month ago

Oh, is that what the frequency I can set in my mouse app for? So it does the USB polling more frequently?

[–] [email protected] 3 points 1 month ago

It uses polling afaik

[–] JackbyDev 5 points 1 month ago

Knock knock

Who's there?

Interrupting cow

Interrupting cow w-

MOO!

[–] [email protected] 2 points 1 month ago (1 children)

Explain please :p Thanks <3

[–] [email protected] 3 points 1 month ago

PS/2 keyboards and mice send an interrupt to the CPU and the CPU stops whatever it’s doing, handles the mouse or keyboard input, then goes back to what it was doing.

This is not true of USB devices.

[–] [email protected] 1 points 1 month ago
[–] [email protected] 1 points 1 month ago

PS2 be like

[–] [email protected] 0 points 1 month ago (1 children)
[–] JackbyDev 3 points 1 month ago* (last edited 1 month ago)

WRONG. While it interrupts the CPU the protocol is still orders of magnitude slower than USB. You'd be able to have read the key press from USB before PS2 even finished sending it.