Unless you’ve been hiding under a rock for the last 20-odd years, you will have come across The Matrix series of movies, and the cool green ‘digital rain’ effect used frequently. This inspired [Oli Wright] to wonder what it would look like if instead of running the animation on a modern display, using a digitally produced phosphor persistence effect, it was implemented on some retro PC hardware, using an actual high-persistence phosphor Green Monochrome monitor. (Video embedded, below) As luck would have it, [Oli] owns a 40-year-old IBM PC 5150 as well as the matching IBM 5151 monitor, so it was a simple matter to implement the effect in 8088 assembler to create falling sequences of characters. The final binary is less than 256 bytes!
The IBM 5151’s long display persistence was intended to reduce the visibility of display flicker due to the low scan rate, but has the unfortunate side effect of smearing horribly when the image changes. This is exactly what [Oli] needed to implement this effect and we think it looks jolly fine.
[Oli] made use of the excellent PCjs browser-based emulator written by [Jeff Parsons] to demonstrate what the software is doing, without the effect being evident. If you like, you can try it out for yourselves, as the assembly listing is available on the project GitHub.
Of course, we’ve covered the digital rain effect many. many times before, for example, with this Arduino Library, and here’s a custom PC case side panel from way back in December 2021, if you can remember those days.
11 thoughts on “Matrix Digital Rain On The IBM PC With A High Persistence Monitor”
I still have a pair of these so I’m going to HAVE to run this. Just hoping the 256-byte .com file doesn’t include a virus!!!
it´s a possibility… much can be done with just 256 bytes:
Series of movies? There’s only one. :p
You know more than me; I’ll get back under my rock.
Yep, this is the way is should look, beautiful. Also I suppose if you got an old monitor you could use this to check out the persistence of the phosphor, necessary? No? Cool? Hell yea!
Quote [Dave Rowntree]: ‘The IBM 5151’s long display persistence was intended to reduce the visibility of display flicker due to the low scan rate’
That’s not quite the reason. Close.
The hardware that generated the Video output shared RAM with the CPU. The CPU has priority so that when the CPU was accessing the part (block) of RAM or in some computers any RAM at all, the screen would have a black (or blank) horizontal line where the Video hardware didn’t have access to RAM.
Persistence reduced the visibility of this problem.
I had some of those long display persistence monitors back in the day, and I really miss them! I could stare at them and write code for 12-16 hours straight without looking away (except to eat or go to the bathroom) and I’ve long wondered if it would be possible to make a long display persistence LCD– even if they were just monochrome green.
Do you think custom firmware for an OLED monitor would work? Instead of rapidly turning the LEDs on and off, they could be programmed to fade once they’ve been lit?
Thinking about this more, it probably wouldn’t be necessary to modify a monitor, I’m sure it’d probably be easier to write some software that could do this.
I can see Neo standing center screen flipping the bird with both hands, so good work.
If you have an old IBM 5100 series CERN may be after you.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)