July 27, 2020 9:55 PM   Subscribe

Funny, I was just browsing BASICODE, another (Dutch) standard for software broadcast over radio.
posted by RobotVoodooPower at 10:08 PM on July 27, 2020 [1 favorite]

What a world lost.
posted by clew at 10:22 PM on July 27, 2020 [4 favorites]

I seem to remember there were radio broadcasts in Germany in the late 80s of C=64 software that you could record in the middle of the night onto cassette and then load them in. I could be hallucinating that, but I was an exchange student in Germany in the late 80s, and do have a memory of that.
posted by hippybear at 10:27 PM on July 27, 2020

This is such a cool window into this, thank you for posting it.
Around the time of Antonić’s discovery, Dejan Ristanović—journalist, computer programmer, and wunderkind of the Rubik’s Cube—wrote a favorably received article on computing for a Yugoslavian science fiction and popular science magazine called Galaksija. Shortly after that article’s publication, Galaksija’s editor-in-chief, Jova Regasek, received a reader request that the magazine dedicate an issue entirely to computers. Though initially skeptical, Regasek tasked Ristanović with spearheading this project. At precisely this time, Antonić was looking for a place to publish the diagrams for his new DIY “people’s computer.” Though Antonić had bundles of home computing monthlies like Elektor from Germany and BYTE from the United States—foreign publications that were expensive to procure—accessibility was essential; SAM Magazine in Zagreb was a domestic periodical, but after a mutual friend connected him with Ristanović, the project found its home in Galaksija.
posted by LobsterMitten at 10:30 PM on July 27, 2020

The original Galaksija article was reprinted in PoC||GTFO 0x09, and an English translation was printed in the compiled PoC||GTFO volume 2. In case anyone was, uh, thinking about making their own. (You can still get Z80A chips in DIP packages from several sources.)
posted by phooky at 10:46 PM on July 27, 2020 [3 favorites]

Eurogamer did a very similar article on the Galaksija a few years ago. What a hopeful and bittersweet story.

The Eurogamer piece is worth reading for this quintessentially Balkan quote alone:

"It would be pretty immodest to say that the 100-page publication 'Računari u vašoj kući' set off the computer revolution in Yugoslavia," states Dejan Ristanović, author of the magazine. "So I won't say it."
posted by ZaphodB at 11:43 PM on July 27, 2020 [5 favorites]

Hmmmm. That 2013 Eurogamer piece is actually remarkably, even derivatively similar to the 2020 Tribune piece.
posted by Fiasco da Gama at 11:58 PM on July 27, 2020 [1 favorite]

aaaa those things are fucking beautiful
posted by fleacircus at 1:06 AM on July 28, 2020

"the system could only display three splendidly playful one-word error messages: users received a “WHAT?” if their BASIC code had a syntax error, a “HOW?” if their requested input was unrecognizable, and a “SORRY” if the machine exceeded its memory capacity"

I love this. It sounds like me.
posted by dowcrag at 3:13 AM on July 28, 2020 [23 favorites]

Thank you for posting this - I had no idea about the Galaksija computers - or about computing in Yugoslavia more generally. I do know that those countries which had a culture of "DIY" computing, based around inexpensive machines - went on to reap considerable rewards a generation later thanks to all the people who learned on these systems as kids. In the UK, the culture based around Clive Sinclair's computers spawned a host of corporate and individual skills that significantly boosted (and continue to boost) the country's economy. As with Galaksija , it was significant that there was a culture of creating games and programmes from code which could be (at least somewhat) shared and improved upon.

If we were to travel back in time, then we would might advise governments to subsidise cheap computer systems for the masses - crucially with the inclusion of openly visible and hackable code. The BBC did go to some lengths to do this - with the BBC Micro - created because they had predicted exactly this sort of long term economic boost - but the relatively high price of the computer meant it was aimed more at the relatively hacker unfriendly environment of the school classroom rather than the teen bedroom.
posted by rongorongo at 3:58 AM on July 28, 2020 [2 favorites]

Cool article; thanks.

What does this mean, exactly ...

"The 4K EPROM—erasable programmable read-only memory—was packed so tight that some bytes had to be used for multiple purposes; through this hack, Antonić says, his firmware now stands as proof that it is possible to use more than 100% of program memory."
posted by ZenMasterThis at 4:14 AM on July 28, 2020 [1 favorite]

Basically, because some parts of the data stored in these were used for more than one thing, in a sense, he “used more than 100% of its capacity”
posted by DoctorFedora at 4:34 AM on July 28, 2020 [1 favorite]

I'm curious about what it means too. My guess would be that a byte was used as a bitwise array for storing multiple flags, but I could be wrong.

E.g. a byte is 8 bits which usually represents a number from 0 to 255. It can be:
00000000 = 0
00000001 = 1
00000010 = 2
00000011 = 3
00000100 = 4
etc etc.

But if you're really tight on space you can use each of the eight bits within it to flag yes-no information about something different. You do some maths on the number, find out if the third bit from the right is a 0 or a 1, and that tells you whether something in your data is true or false.
posted by TheophileEscargot at 5:16 AM on July 28, 2020

Keep in mind this is non-volatile memory, ie. ROM, essentially.
posted by ZenMasterThis at 5:22 AM on July 28, 2020

They used cassette tapes and radio dj to send and receive programs!

The idea was that listeners could tape the programs off their receivers as they were broadcast, then load them into their personal machines.

An overnight sensation, this DJing practice quickly became a staple on Modli’s show. In the ensuing months, Ventilator 202 broadcast hundreds of computer programs. During the hour, Modli would announce when the segment was approaching, signaling to his listeners that it was time for them to fetch their equipment, cue up a tape, and get ready to hit record. Fans began to write programs with the expressed intention of mailing them into the station and broadcasting them during the segment. Those programs included audio and video recordings but also magazines, concert listings, party promotions, study aids, flight simulators, and action-adventure games. In the case of games, users would “download” the programs off the radio and alter them—inserting their own levels, challenges, and characters—then send them back to Modli for retransmission. In effect, this was file transfer well before the advent of the World Wide Web, a pre-internet pirating protocol

posted by affectionateborg at 5:27 AM on July 28, 2020 [5 favorites]

Antonić is also responsible for the Engineer's Assistant, a circuit diagnostic tool that packs a logic probe, a single channel logic state analyzer, a frequency counter and a serial code receiver into the 1024 program words of a PIC16F84A.

A clue to the "more than 100%" comment is in the Engineer's Assistant source code:
Note: The code is optimized for code space, and for that reason the most of code could not be written in modular format. For the same reason a lot of subroutines have more than one entry point and some of them are terminated by GOTO instead of RETURN.
posted by scruss at 5:28 AM on July 28, 2020 [4 favorites]

For a more technical overview, see Tomaž Šolc's Ultimate Galaksija Talk from the 2012 Chaos Communication Congress.
posted by offog at 6:42 AM on July 28, 2020 [4 favorites]

Also recall that Binary Coded Decimal (BCD) uses 4 bits to represent a digit rather than 8 (0000 through 1001). It was a very common method used to conserve memory and disk space.
posted by SPrintF at 7:00 AM on July 28, 2020

There's a whole lot of Galaksija info on the web. What I couldn't find was a working in-browser emulator. There are plenty of emulators though, and this page has a convenient-looking Windows emulator and some game images. Unfortunately the emulator zip is corrupted.
posted by Nelson at 7:24 AM on July 28, 2020

 Tomaž Šolc's Ultimate Galaksija Talk
Tomaž is also responsible for the CMOS Galaksija, perhaps the only Galaksija you might want to build today. The original used hard-to-find chips and likely output a video standard that nothing can display these days.

Voja's still making minimal things, like the Single chip retro game console, a PIC24-based game device that generates colour video and sound.

But no easy-to-find emulator. It's in MAME, but what isn't?
posted by scruss at 8:20 AM on July 28, 2020

I think the "used more than 100% of capacity" is something along the lines of "normally speaking, this memory location holds the number of frozzles, but every ten clock cycles it's used by the demuxer to store the number of zumzums"
posted by dmh at 8:40 AM on July 28, 2020

But there's no other persistent storage unless the user inserts a cassette and presses PLAY+RECORD, so the number of frozzles is then lost.
posted by TheophileEscargot at 9:08 AM on July 28, 2020

Not if you put the frozzles in the vessel with the pestle. If you put them in the flagon with the dragon, then the frozzles will be lost. You can temporarily store them in the chalice from the palace, but then you'll need to demux the zumzums that much sooner.

Since it's ROM, it's unlikely to be self-modifying code, so my money is on subroutines with multiple entry points continuing to a common return point. Sometimes you'd want the precursor code, sometimes you'd just jump in halfway through the subroutine. Since it's assembly (presumably), and ROM, you know where everything is going to be once you compile it.
posted by jenkinsEar at 11:05 AM on July 28, 2020 [4 favorites]

sometimes you'd just jump in halfway through the subroutine.

Thus the comments about GOTOs.

A nice article, but a little rah rah socialism, especially given that the roots of home computing are similar almost everywhere else. I mean this part:

Paralleling the Yugoslavian alternative to the bipolar world order, the Galaksija saga signals to uninitiated technologists that alternative modes of practice are possible, paths wholly separate from those of Western manufacturing overlords like IBM, Microsoft, Hewlett-Packard, or Apple.

Errm, considering the origins of Apple (Homebrew Computer Club et al.) these paths have the same origin. Apple was started by a hacker and a hippy. The IBM PC was a reaction to the spirited communitarian origins of the personal computer.
posted by zabuni at 12:13 PM on July 28, 2020 [2 favorites]

They used cassette tapes and radio dj to send and receive programs!

Lazy kids. Back in the day we had to manually type the BASIC code out of COMPUTE! magazine. How can you truly enjoy helping the little skier avoid those trees if you didn't work for it?

^^ ^
^^ ^
posted by Slarty Bartfast at 12:59 PM on July 28, 2020 [2 favorites]

Using program bytes for multiple purposes was relatively common in the 8-bit days: you need a particular bit-pattern but don't have space for it, so you look though what you've already got (object code and data) to see if you can find a match, or something close enough with a little trickery.

You could reuse machine instructions as constant values rather than having to embed the constant as an immediate value, and obviously reuse constants and (fragments of) data structures. Brian Raiter wrote a neat article about abusing the ELF header structures to get a Linux executable down to 45 bytes. That kind of thing used to be more common, and actually useful rather than just perversity.

In games, suitably random bits of your code could serve as explosions for both video and audio (as white noise). Some people would play their object code through the sound hardware listening for sections that worked as sound effects (you could maybe get a tolerable zap noise that way).

It's obviously harder to reuse ROM as code multiple ways, but there's the multiple entry points trick jenkinsEar mentioned, or expanding multiple variants into RAM if you're short of ROM but not RAM (probably not the case with the Galaksija).

Of course, doing any of these things makes your program an absolute nightmare to modify later.
posted by Slogby at 3:38 PM on July 28, 2020 [4 favorites]

My favorite one of these for the C64 was the BIT instruction, which could be used as a kind of jump table.
posted by MtDewd at 3:54 PM on July 28, 2020 [2 favorites]

In games, suitably random bits of your code could serve as explosions for both video and audio (as white noise).

This is seen notably in Yars' Revenge for the Atari 2600, where the full-screen explosion is the result of the program code being stuffed into the playfield registers.

But I think the programmer's comment is just a programmer bragging about clever programming, multiple entry points into subroutines and the like.
posted by RobotVoodooPower at 7:56 PM on July 28, 2020 [3 favorites]

"the system could only display three splendidly playful one-word error messages: users received a “WHAT?” if their BASIC code had a syntax error, a “HOW?” if their requested input was unrecognizable, and a “SORRY” if the machine exceeded its memory capacity"

This means they were using Palo Alto Tiny BASIC, written by Li-Chen Wang and published in Dr. Dobb's Journal of Computer Calisthenics and Orthodontia (Running Light without Overbyte) in May 1976. (It was probably best known for its appearance as the Level I BASIC for the original Radio Shack TRS-80 in 1977.)
posted by Harvey Kilobit at 1:19 AM on July 29, 2020 [4 favorites]

"In effect, this was file transfer well before the advent of the World Wide Web, a pre-internet pirating protocol."

Um. Well, the internet dates from the 1960s. File transfer has existed since the 70s in the form of XModem. Broadcasting software on the radio is a great idea, the UK had a similar thing whereby software for the BBC Micro was send over television using the CEEFAX teletext service.
posted by GallonOfAlan at 5:22 AM on July 31, 2020

I was reminded of Satellaview, the Nintendo broadcast system. But that wasn't until 1995. What I like about the Galaksija radio story is how ad hoc it was. No one designed a system for this purpose; some DJ just said "hey, it's an audio tape, what happens if I broadcast it?"

In retrospect I wonder if anyone in the West did that with Commodore or Apple media. We all jumped to floppy disk as fast as we could, but those machines still had cassette input jacks.
posted by Nelson at 7:00 AM on July 31, 2020 [1 favorite]

 a little rah rah socialism, especially given that the roots of home computing are similar almost everywhere else

Except the difference between Apple's origins and the Galaksija is the huge gulf in disposable income and available tech. California of the 1970s had thousands of well-paid electronics professionals with easy access to components and surplus. Even a Radio Shack was a bloody marvel compared to what most folks outside the USA had access to. In contrast, Galaksija builders had make their own boards and cobble their computers together with whatever components they could find.

I'm always amazed by the "programs over the radio!" incredulity shown by US commenters. There were national broadcasters, many without direct commercial pressure to stick to simple programming. The programs weren't big, and a reasonably clear radio signal could manage about 6 KB/minute. In Europe we were stuck with cassettes because some IP and tariff wrangling made disk drives incredibly expensive.

Still, if you want the nearest thing to a Galaksija that's actually available as a kit, Tynemouth's Minstrel 3 is a ZX81-compatible Z80 beastie. It's apparently well made and easy to build. Tynemouth also make a mini CBM PET kit should you enjoy too many addressing modes and not enough registers. For those really adventurous, the Pentagon 128 kit from Russia is apparently a very good ZX Spectrum clone.

I still think the Czech BT100 printer does the most with least: one dot, and carbon paper for a ribbon. I don't think I'd ever want to be within earshot of one, though.
posted by scruss at 10:24 AM on July 31, 2020 [1 favorite]

I'm always amazed by the "programs over the radio!" incredulity shown by US commenters.

It's because we remember how difficult and finicky it was to get programs loaded off of our own cassette tapes even when we had saved them ourselves, so just imagine how frustrating it would be to decode something recorded off the radio with added static and signal fading. Maybe the Galaksija had a more robust way of encoding data as sound than the TRS-80 did.

On the whole the TRS-80 and Apple II were pretty solid machines with decent keyboards and lots of features (assuming you had upgraded to Level II or Applesoft), disk drives were growing more common, and America seemed to have standardized on that level of technology by the turn of the decade. British 8-bit home computers, except for the magnificent BBC Micro, were definitely not as good -- more at the Timex/Sinclair ZX-80 level, which in the US were kind of a basic "if you can't afford a real micro" thing.

Still, I remember the intense fascination I had for small computers at the time, and if all I could get was a cheapo plastic box, I would have obsessively loved the hell out of it and programmed it to within an inch of its life. From the perspective of 2020 it's all primitive tech, but making it do stuff was a lot of early Gen-Xers' teenage passion. I was really happen to read this article and learn about the Galaksija. Thanks!
posted by Harvey Kilobit at 12:23 PM on July 31, 2020

« Older Downward spiral to the lost ark.   |   Orange walls in Copenhagen Newer »

This thread has been archived and is closed to new comments