Crabs was probably the first graphical prank program—most assuredly the first well-documented one: there are a lot of scattered anecdotes about it around. Here's an amazing talk by Rob Pike where it's casually mentioned, for example:
It's not something you see very often anymore, partially because modern windowing systems (and systems in general, really) were built with different security models in mind (you can probably remember a few similar programs released into the wild for real mode operating systems, they were especially common then), but also because windowing systems have moved away from how simple UNIX's windowing system was at the time.
It's actually kind of relevant to something that was on the front-page recently: the displays they were using (JERQ/Blit bitmap displays) depended on a routine that Larry Tesler co-invented (the bit blit, hence the name "Blit").
The Blit (begat of Jerq, productized as the DMD 5620) was an interesting system: The thing could be a normal text terminal, but the magic came when the host sent it software to run locally. In short, if the IBM block-mode terminals were the equivalent of filling out HTML forms, the Blit was closer to WASM.
My favorite in this category was an old Macintosh extension named, I think, "Minitaur". Everytime you restarted the machine, it shaved off a single pixel of screen space, replacing it with black. So your screen got imperceptibly smaller over time until eventually you realized something was really not right.
I am reminded of the xcrab x11 program, where a crab would scuttle across the screen and abscond with the mouse pointer. That was late 80s. Not to be confused with xroach, where disgusting roaches would scatter when the window covering them was moved. Good times.
Excel 95: Goto B95, select row 95, Help > About > ctrl-alt-shift + [tech support] (I'm an easter egg, which is a joke program in a program. They don't make me anymore. :'( And you're welcome.)
Applesoft BASIC:
10 INPUT "Press any key to continue...";A$
20 GOTO 10
^ Tech support gets a flood of calls about "no 'any' key" s/any key/<ENTER>/
Or
00 REM Which OS are we using again? ;)
10 PRINT
20 PRINT "Not ready reading drive A"
30 INPUT "Abort, Ignore, Retry, Fail?";A$
40 PRINT
50 FOR X = 1 TO 20000
60 NEXT X
70 GOTO 10
EDIT: how many people will admit to writing a phony "FORMAT.COM" command in C || Pascal || assembly that hit the drive with pointless reads to make the hard drive light appear solid and realistic delays between % updates?
https://www.youtube.com/watch?v=_2NI6t2r_Hs
It's not something you see very often anymore, partially because modern windowing systems (and systems in general, really) were built with different security models in mind (you can probably remember a few similar programs released into the wild for real mode operating systems, they were especially common then), but also because windowing systems have moved away from how simple UNIX's windowing system was at the time.
It's actually kind of relevant to something that was on the front-page recently: the displays they were using (JERQ/Blit bitmap displays) depended on a routine that Larry Tesler co-invented (the bit blit, hence the name "Blit").
http://doc.cat-v.org/bell_labs/blit/
https://en.wikipedia.org/wiki/Bit_blit
If you want to give it a try, I think 9front ships with a Blit emulator these days; load up v8 and you should have a nice few hours poking around.
http://9front.org/
https://loomcom.com/blog/0115_emulating_the_dmd5620.html
Free drink holder program: yo boys, watch this. ejects CD-ROM tray
Xeyes: Am I a joke program to you?
Excel 95: Goto B95, select row 95, Help > About > ctrl-alt-shift + [tech support] (I'm an easter egg, which is a joke program in a program. They don't make me anymore. :'( And you're welcome.)
Applesoft BASIC:
^ Tech support gets a flood of calls about "no 'any' key" s/any key/<ENTER>/Or
EDIT: how many people will admit to writing a phony "FORMAT.COM" command in C || Pascal || assembly that hit the drive with pointless reads to make the hard drive light appear solid and realistic delays between % updates?