Retro video terminal experience at the Slovenian Computer History Museum

I’m Marko, a volunteer at the non-profit Slovenian Computer History Museum. For some time my passions have been retrocomputing and retrogaming, especially to try out all the interesting hardware from the 80s when I was born.

After I made a successful unicorn exit from a mobile apps company I co-founded I found the perfect match for my next calling in our Museum Society, which has been collecting exhibits since 2004 while part of the Ljubljana’s (now defunct) hackerspace Cyberpipe – they were looking for a permanent space to call home and I wanted to become involved in preserving, exploring and presenting our computing past. I bought 700 m2 of real estate to provide to the museum rent-free and after an intensive planning and renovation period we were hoping to open to the public last year but of course this was prevented by the pandemic.

Thanks to generous donations over the years we have an extensive collection of computers, peripherals, game consoles, video games, books and magazines from all periods of computer history. Our goal is to present as many of the exhibits in working condition as possible so everyone can experience the retro fun. So instead of working on our (now postponed) opening exhibition, I spent the time in quarantine building an interactive exhibit centered around old video terminals from our extensive collection.

The Hardware

At the heart of the exhibit are two video terminals:

  • A DEC VT320 with amber CRT
  • A Paka 3000 with green CRT, a Yugoslavian VT100-compatible made by the Slovenian companies Gorenje and Iskra Delta
The interactive exhibit with 2 video terminals, a line printer and the original Game Boy

These are connected using USB PL2303 RS232 adapters to a Raspberry Pi – it was easy to set them up as terminal clients for the Raspberry Pi OS using David Muckle’s guide as Linux supports everything out of the box.

There are 3 peripherals which can be interacted with:

  • An original Nintendo Game Boy DMG-01 with Game Boy Camera – using Brian Khuu’s Arduino Nano interface the photos can be easily grabbed and e-mailed. To avoid destroying a real Link Cable I designed and 3D printed my own plug. The Game Boy is powered directly from RPi using a USB-to-barrel jack cable from eBay.
  • A generic USB UVC WebCam to take photos with which are then converted into ASCII art for display on the terminals and:
  • A fully working vintage Fujitsu M3043D line printer (which uses the band printer design) to make ASCII art printouts on continuous form paper. It was only a matter of finding the right USB LPT adapter with bi-directional protocol support to make it work with the Raspberry Pi.
Sample line printer output and Game Boy Camera photo e-mail message

The Software

The video terminals are connected to a CLI program I wrote in Node.js. At the heart of it is anseki’s readline-sync module which has a built-in command prompt option running in a loop where one can specify their own commands, their arguments and then process them and output the result – a natural choice for the video terminal UI.

The command prompt available on our real video terminals as well as online

The main functionality is access to our museum inventory system – visitors can browse through it, get detailed information about a specific exhibit and even see what exhibits were part of which exhibition. The same functionality is reproduced at https://zbirka.muzej.si/, where a CRT terminal experience is provided using a fork of Anders Evenrud’s retro-looking shell implemented in CSS and JavaScript.

In addition, one can use the “gameboy” and “photo” commands to interact with the peripherals in exchange for a small donation to support our non-profit work and help pay the operating costs.

There was also the task of getting the full Slovenian alphabet working on keyboard input and display output – while the Paka 3000 has a custom ROM with a YU charset, on VT320 I had to research DEC’s Dynamically Redefined Character Set (DRCS) standard, draw the accented characters myself and convert them into terminal commands to upload them when the terminal is used.

Custom bitmap for the YU charset and the DRCS escape sequence in Node.js

I have published all my Node.js code, Raspberry Pi scripts and findings in my GitHub project.

Conclusion

I had lots of fun and learned a lot doing this project – I have never before worked on the classic video terminals or used a line printer. I see value in exposing more people to the humble command line interface, introducing them to the lost art of ASCII art and giving them a chance to experience the Game Boy Camera which was rare in Slovenia.

We’re looking forward to welcoming our first visitors from here and abroad in (hopefully) late 2021. Meanwhile, follow our daily social media posts about our exhibits on Facebook, Twitter and Instagram!


Leave a Reply

Your email address will not be published. Required fields are marked *