Note: this is the third and final part of three articles about my experience building a 1980s Yugoslav 8-bit computer called the Galaksija. This part is mostly focused on software creation, distribution and preservation. You can find Part I, focused on the tech, here, and Part II, focused on the history of the Galaksija, here. It is largely based on my sprawling Twitter thread about the Galaksija.
The first computer I remember using was my grandparents’ Windows 3.1 machine. This was some time in the 90s, and while it used 5.25″ and 3.5″ floppies as removable storage, it also had a hard drive and for all intents and purposes wasn’t that different from computers we use now. I can literally boot up DOS and Windows 3.1 on a modern laptop without too much trouble right now. The 8-bit computers like the Galaksija were different, and for me one of the most fascinating aspects about them was the idea of storing programs on audio cassettes and on paper!
This wasn’t unique to the Galaksija, of course. All the other major 8-bit machines of the day like the Commodore 64 or the ZX Spectrum also used cassette tape interface for cheap data storage, but most of the other major Western machines soon introduced support for cartridges and floppy disks, or even hard disks, as they were much easier to use and way more reliable. However, since the Galaksija was literally a computer designed around specific import limitations, and people building them had limited spending power in the first place, it relied on the slow and cumbersome, but cheap and accessible audio cassettes.
Cassette tape storage: technical background
Some basics and oversimplified facts first — all digital data consists of bits: units of 1 and 0. In computers, we often count those bits in groups of 8 as bytes. These days we transfer millions of bytes per second when we doom scroll Twitter, but at the end of the day they’re still just ones and zeros. While today those ones and zeros may be going between our phone to a cell tower through the air, or if we’re old school through ethernet cables between our computer to a switch or a router, at the physical level we are still transferring electrical signals of 1 and 0 – on and off.
The same thing happens when using cassette tapes as storage. To store data on a tape, Galaksija generates modulated sounds that corresponds to ones and zeros it can understand. Above is what half a second of that sound looks like in Audacity (this is the code to the Snake game). Below is what that sounds like (warning: check your volume before playing!).
The sound is modulated to achieve appropriate efficiency for the hardware. Tomaž Šolc has a good write up on this, including the comparison between Galaksija and ZX Spectrum’s tapes.
But how exactly does this sound go in/out of Galaksija? Typical stereo analog audio consists of 3 wires: left, right and ground. Galaksija uses one channel for input, one channel for output. You connect it to your tape deck’s headphone jack to load, or the mic jack to save files.
Distributing software for the Galaksija
But how was software for the Galaksija published and distributed? Unless you wrote the program yourself, in the 80s you had three options:
– obtain a listing printed out in a magazine and type it manually
– buy or borrow a cassette tape
– tape a program being broadcast on the radio
It was common to publish programs in Računari and other computer magazines. Here’s an example of a hex loader program published in Svet Kompjutera in February 1986. You would type this in and then save to tape for future use.
There have been some commercial programs (mostly games) sold for the Galaksija, but most software was shared for free in the community. Here’s an example of an educational tape for math, published by Zavod za udžbenike i nastavna sredstva, found and made available online by Marko Šolajić.
From what I can tell, Zavod za udžbenike i nastavna sredstva was the only serious publisher of software for the Galaksija. They solicited submissions from programmers in magazines and then published them on tapes. Here’s an ad from Svet Kompjutera magazine (November 1984) where Zavod za udžbenike advertises a competition for Galaksija, “Sinkler” (I assume this is the ZX Spectrum) and Commodore 64 programmers.
Here’s another interesting Zavod za udžbenike ad (Svet kompjutera 4/84): you can order Galaksija computers, accessories, tapes (chess, math, demo tape) and books and manuals.
The coolest way to get a program was to “download” it over the air. In Belgrade, late Zoran Modli would broadcast Galaksija programs on his radio show Ventilator 202. The listeners would prepare their recorders and then tape the awful sounds coming from the radio! Ventilator 202 was a very popular show, and Zoran Modli was another important part of the emerging community at the intersection of tech and culture. Here’s an interview with him from 1990.
Modli was also a professional pilot and flew 727s for Jat Yugoslav Airlines. He sadly passed away last year, but will appear posthumously in the Galaksija documentary currently in post production.
Getting Galaksija software today
Let’s take a look at some Galaksija software that is available to us to download and load onto our Galaksijas today! There are three types of files you can find online these days:
– scans of text files to type in
– .gpt files that are HEX dumps of BASIC or machine code
– WAV recordings ready to load.
retrospec has one of the best organized collections of Galaksija compatible software, but everything is available in .gpt files, not wav. This is where Tomaž Šolc saves the day once more. His Galaksija development tools feature a gtp2wav program that will convert any .gpt hex dump into a Galaksija compatible wav file! Once you obtain your audio file, you’ll connect the Galaksija tape interface to your sound output. Then you’ll type in OLD command and run it, and then play your file/tape. The screen will turn black while the tape is loading.
At this point you can run the program by typing RUN! BASIC programs can be viewed easily by hitting the STOP/LIST button or typing LIST. Machine code programs will show up only with the BASIC command 10 A=U. (&2C3A) telling the computer to find the program at memory address &2C3A. Many games were written in machine code because it ran much faster than BASIC, allowing for speed needed in games. Here’s what LISTing Tetris looks like. Just one command telling the computer where to find machine code.
But some software is in BASIC. This is Žaboglavac, a game published last year for the Galaksija and the ZX Spectrum by RETRO INFO, a computer heritage organization based in Zagreb.
As comparison, this is what the Comets game looks in hex dump of machine code.
Selection of cool Galaksija programs
One of the coolest Galaksija programs I’ve found is Sintesajzer. This program let’s you use your Galaksija as a synth by utilizing the tape output. Galaksija doesn’t have sound support, but it generates tones to transfer data. This program flips that around to generate sound! Here’s what that sounds like in my poor rendition of Jingle Bells. I’m pressing keys G, H, J, K and L. The screen turns off while you play. I think this is for the same reason it turns off while you’re loading/saving to/from tape — to conserve processing power normally used for generating the image on the screen. The program seems to have been recreated/re-released in 2006.
Another fun game is Night Pilot, a “fly by instruments” game, that lets you fly between the capitals of Yugoslav republics and independent provinces. What I love about this game is that it’s such a great representation of what many games for Galaksija are like – due to limited graphic capabilities, most is left to the imagination. Most of the time you’re just adjusting numbers: roll, pitch, speed, flaps. You have a basic map. The only moment when something shows up on the screen is when the airstrip shows up for you to land. Game description explains why: this is night flying, so lights have to be turned on the runway for you to see it!
The game was published in Svet kompjutera in December 1985. It consists of over 2 pages of assembly code to type in! It also requires ROM B to work, otherwise it will fail on startup.
I love this game! You play as Inspektor Spiridon, the world famous detective who needs to collect the keys in the Haunted Castle in order to find a secret code. The game is actually pretty hard (as you can see from my play-through), so it’s no wonder that the author, Dragan Janković, included an add-on cheating program that lets you select infinite lives, invincibility and level selection.
No 8-bit computer would be complete without a text adventure, and Galaksija had Ziul, written by Dejan Ristanović. You play as Ziul the dwarf, who finds himself in the mysterious labyrinth of the dangerous wizard Marduk. Marduk is, thankfully, not at home, but many of his evil ghosts are roaming the labyrinth while he’s away. The only way out for Ziul is to find the magical ring that will open an exit.
This is a chess program, called Superšah. It’s significant because it was one of the few monetized Galaksija games, originally published by PAGE SOFTWARE and advertised in Moj Mirko in September 1984. The game was then picked up by Zavod za udžbenike which published a slightly different version.
Compared to other 8-bit computers, the variety of software for the Galaksija is very modest, even when compared to some other Yugoslav machines like the Orao. The software available mostly consists of games — there is virtually no productivity software like text editors, or other utilities that may be used in business. But this makes sense, given that the Galaksija was a DIY computer meant for folks who were just starting out and learning about computers and programming. Even though most programmers were amateurs, there was already a move toward professionalization and monetization of software. Ironically, local programmers wrote more professional software for Western computers like the ZX Spectrum than for the Galaksija itself (see Kontrabant and Vruće letovanje). But that shouldn’t take away from the importance Galaksija had as a teaching platform. While only few published games survive, there were likely countless practice programs which the thousands of Galaksija users wrote while teaching themselves BASIC and assembly programming.
This concludes my three part series about the Galaksija. I’ve truly enjoyed researching this wonderful computer and all the amazing people who’ve worked on it and used it. Building a Galaksija prompted me to dive deep into the history of Yugoslav computing, and in addition to researching other Yugoslav microcomputers like the Orao, I’m currently exploring other areas of computing including the mainframe and mini computer eras, but also the development of early networks and BBSs in Yugoslavia. If you have any stories about the Galaksija or other 80s microcomputers that you would like to share, please reach out! You can find me on Twitter or email me at vladimirvince at gmail dot com. I would love to hear your story!