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

Programmer Humor

19932 readers
3303 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 2 years ago
MODERATORS
231
PS/2 things (lemmy.world)
submitted 3 months ago* (last edited 3 months 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 3 months ago (1 children)
[–] darthsid 5 points 3 months ago (1 children)
[–] fatalicus 27 points 3 months 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 3 months ago

Ah yes, the little old interrupt

[–] nek0d3r 9 points 3 months ago

Alright this has me giggling this morning

[–] fulg 8 points 3 months 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 3 months ago (2 children)

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

[–] ZILtoid1991 2 points 3 months 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 3 months 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!

[–] [email protected] 7 points 3 months ago (2 children)

Does USB not use interrupts?

[–] CEbbinghaus 12 points 3 months ago (3 children)
[–] InverseParallax 6 points 3 months ago* (last edited 3 months 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 3 months 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 3 months 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 3 months 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 3 months ago

It uses polling afaik

[–] [email protected] 3 points 3 months ago

Knock knock

Who's there?

Interrupting cow

Interrupting cow w-

MOO!

[–] rainerloeten 2 points 3 months ago (1 children)

Explain please :p Thanks <3

[–] TheRealKuni 3 points 3 months 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 3 months ago
[–] CEbbinghaus 1 points 3 months ago

PS2 be like

[–] bruhduh 0 points 3 months ago (1 children)
[–] [email protected] 1 points 3 months ago* (last edited 3 months 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.