Historical high-resolution graphics on Raspberry Pi
Raspberry Pi Trading engineer James Hughes recently pointed out a project to us that he’d found on the Raspberry Pi forum. Using a Raspberry Pi, forum member Rene Richarz has written a Tektronix 4010, 4013, 4014, 4015, and ARDS terminal emulator. The project sounded cool, but Helen and I didn’t 100% get it, so we asked James to write an introduction for us. You can find that below, followed by the project itself. James’s intro is amazing, because, despite this heat messing with my concentration, I understand the project now! That James – what a treasure. And here he is:
Those of a certain age will remember the vector graphics display of arcade games like Battlezone and Asteroids, and the subsequent colour displays of Star Wars and Tempest. Even earlier than these games came the less sophisticated Tektronic storage tube terminals used by the pioneers of computer graphics, combined with the PDP-11s and Vax’s that were the staple of computer graphics labs of the era.
Unlike the raster displays that everyone uses now, these terminals used a steerable electron beam (the ‘write gun’) to draw lines directly on the phosphor of the monitor, which were kept illuminated by a secondary ‘flood gun’. These devices had very high resolution, up to 1024×1024 pixels, but the big problem was that you could not erase just a bit of the display — you had to erase the whole image!
Rene Richarz’s project emulates these fascinating old displays, even down to the speed of drawing: because the display needed to be charged, the electron gun could only travel at a limited speed of 1500–4000 vector inches/second!
Once memory prices started dropping, the cost of raster displays also dropped significantly, meaning these early computer graphics vector displays were consigned to the annals of history. But their memory lives on, not only in the project we see here but in many of the algorithms and techniques developed in those early years that are still used today.
As Rene explains on the GitHub repo, his project “makes an effort to emulate the storage tube display of the Tektronix 4010, including the bright drawing spot. It can be used to log into a historical Unix system such as 2.11 BSD on the PiDP-11 or a real historical system. It can also be used to display historical plot data.”
You can see more information on the project, and join in the community discussion, on our forum, and find all the relevant code and instructions for creating your own on GitHub. And if you’d like a primer on how the bistable storage CRTs that Rene is emulating work, you could do worse than take a look at how Tektronix explained it to their customers in the July 1972 issue of Tekscope magazine.
We’ll close with this underappreciated reflection on the virtues of vector displays:
Yes raster is faster, but raster is vaster, and vector just seems more correcter.
Reproduced from old.carto.net; attributed to Dana Tomlin, 1990
Oh the good old days, when I convinced the Professor Emeritus of the Computer Department to grant me, a lowly first-year undergraduate, to use the only Tek terminal in the computer lab. What an upgrade from the paper-roll TTY machine that I was used to!
Of course, I also had to learn FORTRAN on top of BASIC, and then figure out how to project £D trig functions onto a 2D plane (for display)- you know, the stone dropped in the pond, as shown in the YouTube trailer for this article.
You can therefore understand my amazement when I first got my hands on a Raspberry Pi Minus 1B (the venerable old BBC Micro)
So, fantastic project – well done
That brings back memories from when I had just started work in the early 80’s. Many thanks for reminding me just how long ago that was :-)
The Tektronix terminal was a prehistoric relict when I used it in the university. Even if it was crouded this terminal was free. Nobody seemed to know that this decorative furniture was still connected.
But it was really bad VT100 terminal:
1) To hide the password a bunch of random characters were printed on the screen. It was not possible to read the printed password between all this lines, when it was shown for some time. But this was an awfull workaround. As you can see in the embedded video, the actual drawn line was highlighted. So the password was still readable when drawn for the first time.
2) It was not bidirectional (connected?). Not a problem for a quick check for new e-mails. But playing a mud was no fun. When players or NPCs were too chatty, I was not able to send commands while lines came in without any pause. Really bad if you have to attend the next lesson and cannot send the log out command ;)
Sadly I have never seen a graphic demo on the original hardware. In its time it must have been an awsome machine.
We had to tektronix graphic workstations in our drawing office.
They were the size of an office desk with two 10mB hard disks and one 8 inch floppy disk on one side and the computer on the other. The ram was about 128kB.
I drew many electrical drawings on them in the 1980s before we finally scrapped them.
Ah this takes me back to my days sitting in front of a Tektronix graphic terminal(can’t remember the model number) and getting my eyeballs cooked. This was in the mid to late 1970s.
Whoa! I have not seen this since the pages of Byte Magazine and a few other sources, and been wanting to try it one something to make those mathematical functions! But that did this 18 yr old at the time had? A Vic20 with the Super Expander Cartridge!
And yes I tried to do them on said Vic20!
Now I can do it on emulated hardware on a Raspberry Pi? Where do I sign up?!!
Ah yes, the VIC20’s. I had a friend go through Computer Science GRAD school using a VIC20, using Pascal and Basic. Me, I used a home built Heathkit H89 with extra memory and color graphics card.
Seems like awfully slow graphics for a quad-core, multi GHz CPU.
I’ve seen movable vector demos and games, on a Commodore, looking better than this!
First of all, the vectors can be drawn much, much faster, if the program was running direct machinecode, Rather than programmed from python or something.
Second, since there is a quad-core under the hood, at least 4 vectors can be drawn at a time.
Third, the broadcom graphics chip, can draw at least 2 more at a time, hardware accelerated, which, according to the specs should draw about as fast as CPU vectors.
Having 6 vectors to your disposal, drawn at the same time on the screen, can be very interesting for games.
Reduce it to 3, and use 2 CPU cores and some GPU resources, to mix vectors with rasterized graphics for eg: backgrounds, and there’s quite some gaming or demo potential!
That, and the fact that the pi can put out 4k imagery!
While I agree with your words, I think you’re missing the point of this.
Maybe re-read the main article to understand how the emulation sought to faithfully replcate the original hardware – especially when it came to “vector-inches per second”
My start in computing was using an Olivetti programmable calculator.then trying Fortran, but the company had no machines I could try it on. Learned Basic from a book, and tried to use it on a PET machine. Campaigned to get PCs, but the data processing department wouldn’t allow them. We were given mainframe terminals with APL access, no support and photocopied manuals. Learned APL to find that we were supposed to use ADRS – a departmental reporting system – a predecessor to spreadsheets. I managed to write a learner curve calculation programme in APL, just before it went obsolete. I used a Sinclair Z80 to do some iterative cost profiling in order to embarrass the mainframe department to give better facilities. We eventually were given second hand machines from other sites that were closing!
I first really learned to program, in Fortran, on a Systime 6000 (really a PDP-11) running RS/TS, and spent hours in my evenings after school, drawing graphs on a Tektronix 4010 and its associated plotter. This was 1979 and 1980, during my 6th form. All access courtesy of Derby Tech (now the University of Derby). Also got my hands on Apple Pascal (on an Apple 2+),and BASIC on Apple 2 and Commodore Pet. Did badly in my A-levels on account of focussing on programming, but it stood me in good stead for my career.
I believe the plural of Vax is Vaxen ?
And I’ve also just realised that Vax is a vacuum cleaner, and VAX is the type of computer – lolness.
Nothing sucks like a Vax! We said the same thing about our VAX back around ’80.
Very nostalgic! Even down to the speeding up and slowing down of vector drawing due perhaps (I assumed at the time, 1980s) to the shared link to the mainframe.
It looks like a hologram! https://www.raspberrypi.org/search/hologram
Remember those holograms that were all green and 3 dimensional? unlike these modern ‘holograms’ with their fancy colours and animation and not actually 3 dimensions.
Now all we need is a project to project these 2D images into a frustum, and it will look like a 2D image floating in mid-air.
Why you use a so tiny fonts on your information web site? Is ignorance or just you have discriminatory behavior against people that have low vision acuity or astigmatism?
I was convinced that raspberry pi was an educational website.
It would be good if someone could make a video with this demo running on an actual Tektronix vector terminal so one could do a side by side comparison. One could send to two serial ports at a time: one connected to the emulator and the other to the real thing.
Brings back memories of running ANSYS FEA on a VAX 11/780 using a Tek 4014 for graphics output. Printout was thru a thermal printer that scanned the screen. The printouts turned black if left out on desk for more than a couple of months. Now if there is a Raspberry Pi that emulates an IBM 5080 graphics terminal, with function keypad and knob board, AND run CADAM 2-1/2 D CAD program…
Unfortunately, I’m old enough to remember the vector graphics having supported PDP11’s and Vax 780’s during my working career at GlaxoSmithKline.