this post was submitted on 05 Oct 2024
228 points (99.6% liked)

Programmer Humor

19623 readers
2838 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
228
PS/2 things (lemmy.world)
submitted 1 month ago* (last edited 1 month ago) by carrylex to c/[email protected]
 

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
[–] somethingsomethingidk 23 points 1 month ago (1 children)
[–] darthsid 5 points 1 month ago (1 children)
[–] fatalicus 27 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] 22 points 1 month ago

Ah yes, the little old interrupt

[–] fulg 9 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 🤣

[–] Alexstarfire 9 points 1 month ago (2 children)

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

[–] ZILtoid1991 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.

[–] fulg 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!

[–] nek0d3r 9 points 1 month ago

Alright this has me giggling this morning

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

Does USB not use interrupts?

[–] CEbbinghaus 12 points 1 month ago (3 children)
[–] InverseParallax 6 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.

[–] Aceticon 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.

[–] gedhrel 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.)

[–] kevindqc 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?

[–] qaz 1 points 1 month ago

It uses polling afaik

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

Knock knock

Who's there?

Interrupting cow

Interrupting cow w-

MOO!

[–] rainerloeten 2 points 1 month ago (1 children)

Explain please :p Thanks <3

[–] TheRealKuni 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.

[–] mvirts 1 points 1 month ago
[–] CEbbinghaus 1 points 1 month ago

PS2 be like

[–] bruhduh 0 points 1 month ago (1 children)
[–] [email protected] 1 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.