BASICODE: A Bit Like Java, But From The 1980s

Those of us ancient enough to remember the time, or even having grown up during the heyday of the 8-bit home computer, may recall the pain of trying to make your latest creation work on another brand of computer. They all spoke some variant of BASIC, yet were wildly incompatible with each other regardless. BASICODE was a neat solution to this, acting as an early compatibility standard and abstraction layer. It was essentially a standardized BASIC subset with a few extra routines specialized per platform.

But that’s only part of the story. The BASICODE standard program was invented by Dutch radio engineer Hessel de Vries, who worked for the Dutch national radio broadcaster Nederlandse Omroep Stichting (NOS). It was designed to be broadcast over FM radio! The idea of standardization and free national deployment was brilliant and lasted until 1992, when corporate changes and technological advancements ultimately led to its decline.

The way this was achieved was to firstly use only the hardware instructions that were common among all the computers, which meant BASICODE applications couldn’t utilize graphics, sound, or even local storage. This may seem very limiting, but there’s still a lot you can do with that, especially if you don’t have to write it yourself, pay for it, or even leave the room! First, the BASICODE program needed to be loaded from local storage, which, when started, allowed the import of the BASICODE application that you previously recorded off the radio. It’s kind of like a manually loaded bootloader, except it includes an additional software library that the application can use.

Later versions of the standard included storage handling (or an emulation of it), basic monochrome graphics, and eventually sound support. The linked Wikipedia article mentions a list of about 23 BASICODE platforms; however, since there is a standard, you could easily create your own with some effort. In addition to allowing users to send application programs, BASICODE also enabled the reading of FM-broadcast ‘journals,’ which were transmissions of news, programming tutorials, and other documents that might interest BASICODE users. It was an interesting concept that this writer had never encountered at the time, but that’s not surprising since only one country adopted it.

If this has got you hankering for the good old days, before the internet, when it was just you, your trusty machine and your own imagination, then we think the ten-line BASIC competition might be of interest. Don’t have such a machine, but have a web browser? (we know you do), then check this out. Finally, if you want to see something really crazy (for a BASIC program), then we’ve got that covered as well.

Thanks to [Suren Y] for sending this in!

18 thoughts on “BASICODE: A Bit Like Java, But From The 1980s

  1. Interesting. But I don’t know what the title has to do with it. A bit like Java? Where? In what? Nothing could be further from Java. Did whoever wrote the title want to write “Java” somewhere because they felt like it? A mystery.

    1. Hardware-independence.
      There had been so many BASIC dialects at the time.
      The only sort of industry “standard” was Microsoft’s BASIC implementation due to popularity, maybe.
      But even here the level of compatibility was hit and miss, depending on the computer model.
      The C64 BASIC V2 was inferior to that of ZX81 or BBC Micro computers, for example.
      There had been learning computers (toy computers) made for kids age 6 and up with more complete BASIC than C64 BASIC.

    2. Agreed. This has much more in common with JavaScript. They’re both interpreted, have janky abstraction and severely limited functionality based on the lowest common denominator. Sadly, I can’t seem to escape either language professionally.

    3. A good bit of this article pulls from the Wiki entry, which points to the Java analogy in this (awkward) sentence, “The underlying concept of BASICODE, which is the definition of a language standard for platform-independent software development and the implementation of said standard as system-specific runtimes (Bascoder) was later revisited in the programming language Java, via operating system-specific Java Virtual Machines which execute Java programs.”

      The analogy should have been reiterated in the final article.

  2. This idea of wanting to reach out beyond your computer in the days before the internet reminds me of how I did this in the early 1990s. (The internet existed at the time, and so did BBSes, but that required money, which I didn’t really have.) I had a portable SCSI hard drive I would take to various college computer labs all over the East Coast, plug into a Macintosh, and then explore the network for warez to download. I would fill up on all sorts of amazing programs, including an early gene sequencing application. I would then take them home and hack them to bypass their copy protections, which often included physical dongles. I got very good at finding where in the code the jumps happened and redirecting them. Ah, those were the days!

  3. The concept was cooler than reality, at least from the perspective of a 13 year old (which was my age at the time). The weekly broadcasts contained stuff like “towers of Hanoi” or a perpetual calendar program or something else that from a technical perspective was fun or interesting, but for my it just didn’t compare to the colorful games and pretty music included with the Arcade games I could copy from my friends at school. So interest dropped pretty quickly.

  4. Although developed in the Netherlands German TV Station WDR used it in their Computer Club Program in the 80s.

    You could record the so called hard bit rock with your cassette recorder in front of the TV (if your family was as nerdy as you and tolerated minutes of screaming data).

    Loved it.

  5. In that early home computer era all those basic dialects were pretty much incompatible with each other, and limiting (sort of) a basic dialect to whatever were the most common features of those dialects never sounded like a good idea to me.

    Sometimes I wonder why C was never used on those home computers. After a bit of reading, one of the earlier versions of C was included in “Version 2 Unix” (1972).

    https://en.wikipedia.org/wiki/C_(programming_language)
    https://en.wikipedia.org/wiki/Research_Unix

    First release of GCC was in 1987
    https://en.wikipedia.org/wiki/GNU_Compiler_Collection

    I bought Borland’s Turbo C++ in the early ’90-ies, not being aware of FOSS software. My first experience with GCC was for Atmels AT90S2313 and that was a quite amazing experience back then.

    Lattice C was apparently the first C compiler for IBM PC’s (1982, USD500), and later also ported to Atari ST and Amiga. But by then the era of the first generation (8-bitters) of home computers was already past.
    https://en.wikipedia.org/wiki/Lattice_C
    https://en.wikipedia.org/wiki/Megamax_C

    I never liked basic much myself. It did too many weird things such as adding carriage returns / newlines just when you wanted to output some text. I sometimes wonder why basic became popular in the first place, but that’s pretty easy. It simply was the only available language for that first generation of home computers, and it (often?) was already included. In later years I even played a bit with an IBM XT that booted directly into basic, but by then that thing was already old and written off, and it got disposed of pretty quick.

    1. There were commercial C compilers that ran on (and produced output for) machines like the Commodore 64 and Apple 2. And these days you can find open-source C compilers (usually cross compilers from modern hardware) for all kinds of 8-bit hardware.

Leave a Reply to E. RodommocCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.