

LaserJet display hacks for fun and more
source link: http://rachelbythebay.com/w/2012/02/24/pong/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

LaserJet display hacks for fun and more
Around the time when I was acting as a teacher's assistant for a computer lab at my school, I discovered that we had an extra HP LaserJet just sitting around. I don't know if it had been left by the previous occupant of that space, but it was easily the nicest printer in the entire school. I had some fun with that thing.
As part of my earlier DOS-based print server project, I had started learning about talking to parallel ports in software. It should then come as no surprise that I soon learned about PJL commands, particularly the one which would change the "ready message" from, well, "Ready", to... almost anything you wanted.
PJL RDYMSG was fun! Even though that little printer had approximately 10 characters on its display, that was enough to keep me busy. Naturally, I started with silly static messages like "INSERT COIN". I couldn't add a "FOR 1P START" with so few characters, but a solution was close at hand: flip between messages!
So, soon I had it saying both "INSERT COIN" and "FOR 1P START" just like a classic arcade game by having the computer drive it actively. Granted, I had to keep a small program running the whole time, but it was worth it to blow some minds. Having a printer say something bizarre amused people in and of itself, but having it keep changing was even better.
I think I wound up hacking some code to make it scroll messages very slowly by rendering them as one long string and using a sliding window to push things out. This would yield a series of messages like the following:
[INSERT COIN]
[NSERT COIN ]
[SERT COIN F]
[ERT COIN FO]
[RT COIN FOR]
... you get the idea. It actually looked pretty nice on there. Unfortunately, it turned out to be too annoying to send anything substantial (like output from BSD's "fortune") through it.
That left me in the realm of display hacks. The last thing I ever really did with that was to write "1 dimensional Pong". Yep. Normally, Pong is played with paddles and the ball has both an X and Y component. Since this was happening on a display which was about 10 characters wide and only 1 character tall, it only had an X component.
Given that there would be no point to actually trying to play this yourself, I just had the computer bounce a little block segment (my "pong ball") back and forth. Of course, what it was really doing is sending a series of RDYMSG updates with the block offset one position from wherever it had been previously, but it looked like movement.
To top off this particular silly display hack, I decided it needed to make a "dink" noise when it bounced off an end stop and changed direction. Since my attached PC was running the show, it knew when that would happen, and it was trivial to make a small sound through the system speaker.
This is the kind of stuff I would do during down time in the lab when there were no systems to be (re)installed, or wires to be crimped, or students to help with some random application issue.
Epilogue: years later, while working at my school district sysadmin job, I needed to chase down a rogue printer which was doing something bad on the network. For whatever reason, I needed physical access to set something straight. There was no map of patch panel ports, so even though I could tell where it was on our switch stack, the trail went cold when it jumped from there into the patch panel.
Rather than poking my head into every single office in the admin building (which had dozens of printers), I just put up a message on that printer's display. Instead of reading "00 Ready" or similar, it said "Please call xxxx" -- my office phone's extension. A few hours later, someone called me, and I thanked them for noticing. I asked where the printer was located, and my mystery was solved. Later, I was able to go straight to it and resolve the issue at my leisure.
I guess the moral of the story is that not all display hacks are wastes of time. Sometimes they can actually save it!
Recommend
-
28
27 M...
-
13
More fun with C++ STL containers and [] Last week, I talked about the fun that you get when you hand a bad pointer to std::string, like from a bad [] access into a vector...
-
6
Fun hacks for faster contentPosted 06 December 2016 - Seems I'm finding everything "fun" right nowA few weeks ago I was at Heathrow airport getting a bit of work done before a flight, and I noticed something odd about the performance...
-
11
Clever DIY project hacks old iMac into a Studio Display Here's a 2014 iMac made into an external display almost a beautiful as a Studio Display. Photo: Luke Miani...
-
6
The HP LaserJet III laser printer from 1990 used the “Printer Command Language” PCL 5 by default, but could be upgraded with the “HP PostScript Cartridge Plus” cartridge, which contained 2 MB of ROM with Adobe’s PostScript Level 2 rasterizer. Let’...
-
3
HP's newest LaserJet Pro printer targets SMBs with super-smart printing tools By Collin Probst published about 19 hours ago
-
1
Miller: Upcoming releases and more fun stuff [Posted December 13, 2022 by jake] Bugzilla project lead Dave Miller has
-
6
PostScript Cartridge for HP LaserJet We have recently dissected and dumped the Level 2 “Plus” version of HP’s PostScript cartridge...
-
7
HP prepping firmware update to fix critical security vulnerability in LaserJet printers The bug could allow hackers to remotely access sensitive information By
-
6
备查:HP Color LaserJet MFP M281fdw 打印机打印彩色照片时对颜色的调整 By:
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK