Linux Format

How to emulate an Oric 8-bit computer

Les Pounder puts a daffodil in his lapel and enters his surprising­ly spacious blue police box to once again take us back to the 1980s…

-

The 1980s home computer scene was such an important time in our (GenX) lives. Intel was yet to make its mark in the UK, and we still favoured Commodore, Sinclair and Amstrad machines.

In 1982 the Cambridges­hire-based Tangerine Computer Systems released its Oric-1. This was a 1MHz MOS Technology 6502 CPU powered 8-bit computer that came with either 16 or 48KB of RAM. It was designed and priced to compete with Sinclair’s Spectrum.

The Oric-1 and the ZX Spectrum shared one design trait: an awkward keyboard. Where the ZX Spectrum used “dead flesh” rubber keys, the Oric-1 used small, thin plastic keys that were a typist’s nightmare. This issue was later fixed in 1983 with the introducti­on of the Oric Atmos, essentiall­y an Oric-1 with a better keyboard and improved BASIC ROM. It also saw the release of a number of peripheral­s; a printer, disk drive and modem were initially promised for the Oric-1. The Atmos has the better keyboard, but the Oric-1 has a charming design aesthetic.

With the ever-rising cost of retro hardware, emulation has become the most popular means to relive the past. For the past 18 month we at Linux Format have covered the most popular machines, and a few of those niche machines that “your cousin or mate at school” had and no-one knew about. The 1980s saw so many machines that you would be forgiven for missing out on some hidden gems, and the Oric machines are just that. We took an Oric-1 for a spin via an emulator and enjoyed our time learning about the rich range of games and a competent BASIC coding experience.

Emulating an Oric

To emulate an Oric-1 and Oric Atmos we need to use Clock Signal by Thomas Harte (https://github.com/ TomHarte/CLK). Clock Signal is an impressive emulator that does away with complex configurat­ion. Instead it uses drag and drop to load ROMs and images.

Clock Signal can emulate the Oric-1 and Oric Atmos, but you’ll also notice that it can emulate quite a number of other machines: the Apple II, Amstrad CPC, ZX80/81 and even an Atari ST.

To install Clock Signal on Ubuntu we used a pre-built Snap image. This image should work on other distributi­ons that support Snap, but if not then Harte has the source on their Github page and this can be compiled for your machine.

To install Clock Signal using a Snap, open a terminal and type the following, then press Enter:

$ sudo snap install clock-signal

Clock Signal can now be launched via your Applicatio­ns menu, or in our case by typing Clock Signal

into the Gnome Shell search box. When Clock Signal

opens you’ll find multiple machines listed under tabs. Scroll to the right for Oric and select the Oric-1 model and then click Start Machine, located in the bottom right of the window. Next, Clock Signal will tell us that we need basic10.rom in order to start the emulator. Optionally we can also use a colour rom, but this is barely used and not essential for emulation. Drop your basic10.rom on to the window and the Oric-1 will boot to a familiar BASIC interprete­r. The interprete­r also works as a means to load tapes and floppy disks – something that we shall later cover.

If you’re more interested in the Oric Atmos, then you’ll need to select that machine and then click Start

Machine. You’ll also need a copy of basic11.rom – the ROM which gives us BASIC 1.1 interprete­r for the Atmos.

Oric Extended BASIC

Let’s flex a little BASIC muscles. We’ve done this a few times on many different machines but we start as always with the ol’ 10 PRINT project. Each line of BASIC code for a project will start with a number: 10, 20, 30, etc. This tells the interprete­r the sequence of code, which jumps from one line to the next in ascending order. But why do we do this? Quite simply, if we make a mistake and miss out a line of code then we can insert another line without messing up the original code. Let’s do the 10 PRINT project to illustrate this:

10 PRINT “HELLO WORLD”

20 GOTO 10

If we RUN this code it’ll print HELLO WORLD over and over again. Press F7 on the keyboard to break the running code. But what if we want to add another line? We can insert a new line between 10 and 20. Logically this would be 11, giving us many more options to expand or correct the code. But we are going to use 15 because this is just a simple test:

10 PRINT “HELLO WORLD”

15 PRINT “LXF ROOLZ”

20 GOTO 10

Now RUN this new code and you’ll see alternatin­g lines of HELLO WORLD and LXF ROOLZ on the screen. Press Ctrl+C to stop the code.

This issue our project is a pocket money calculator. In the 1980s we all saved up for new toys using our weekly pocket money (allowance for US readers). The savvy saver would often go weeks without a new toy, game or comic. Or they would save part of their money and buy games from the budget section. But what if you wanted something bigger? Say a new disk drive, monitor or even a new computer? For this we need to do a little maths and using our BASIC project we can easily work out how long we have to save.

We start with the CLS command to clear the screen. This removes the Oric interprete­r welcome message.

10 CLS

Line 20, and we use the PRINT command to ask the user for the purchase price of their coveted item.

20 PRINT “HOW MUCH IS THE ITEM?”

To capture the price we use INPUT to read the keyboard input from the user. This is then stored in a variable called PRICE. 30 INPUT PRICE

For line 40 we use PRINT to ask the user how much their pocket money is per week.

40 PRINT “HOW MUCH POCKET MONEY DO YOU

GET A WEEK?”

We then use another INPUT on line 50, to save our pocket money to the variable POCKET.

50 INPUT POCKET

To store the calculatio­n, line 60 sees us create a new variable using LET. We call the variable WEEKS and use = to assign the output of the equation PRICE/POCKET:

60 LET WEEKS = PRICE / POCKET

Line 70 is where we output the answer to the user. It starts off, quite innocently as a basic PRINT statement. We say “To save up it will take “and then we use a semicolon to break up the line of code into sections. The next section in the line prints the contents of the WEEKS variable into the sentence. Finally, we use another semicolon for the last section that appends “weeks” to the end of the line. The semicolons aren’t strictly necessary – we consulted the Oric-1 BASIC Programmin­g Manual to confirm this. It is merely a means to help the user see the different sections.

70 PRINT “TO SAVE UP IT WILL TAKE “;WEEKS;”

WEEKS”

Use LIST to check that your code matches the lines above. If so, type RUN to launch the applicatio­n and

calculate how long you’ll need to wait for that shiny new game.

But wait! Our applicatio­n is great, but we need to make a title to say that we made it. Luckily we used line number 10, 20, 30, etc., which gives us the necessary space between these lines to add extra code. Spacing code in tens was a common method because IDEs were quite primitive in the 1980s.

To add a new line (15) to the code we start with the line number and then use a PRINT statement to add our own custom title:

15 PRINT “**LXF POCKET MONEY CALCULATOR**”

Use the LIST command to check that line 15 is present, and then when you’re ready type RUN to start the applicatio­n.

BASIC may be an old language – it was first created in the 1960s, after all – but it’s still impressive in the 21st century. BASIC was the Python of the 1980s, launching many careers and sparking an interest in computing in adults and children alike.

Playing a game

In the UK in the 1980s, cassette tapes were the media of choice for home computers and the Oric-1 was no differnet. For emulation, games are stored as ROM images – tape images stored to a file. Oric ROMs are saved as .tap (tape) files and they can be loaded into Clock Signal by first starting the Oric emulator, then clicking File>Insert and navigating to the file. This inserts the virtual tape into the cassette player, but to load the game we need to enter a command into the interprete­r. the following and press Enter load: CLOAD”” .

The benefit of emulation is our game loads in record time. a Commodore 64 owner in early 1980s this author can attest to long loading times, often with crashes to add insult to injury.

Back to the Oric-1 and we enjoyed a few hours of “diligent testing” with Harrier Attack and Zorgon’s Revenge. Harrier Attack was part simulator and part shoot ‘em-up. Our goal is to fly from an aircraft carrier and destroy enemy targets. Released less than a year after the Falklands War, it’s clear how this game received its inspiratio­n. Zorgon’s Revenge was a bit of a curveball for us. We’ve never played it before and so we dived straight in. This is a side-scrolling platform game that requires fast reflexes, but the bird mission left us quite confused. We had no idea that we needed to catch the bird to fly up the screen, while avoiding stones falling on our head. Classic 1980s game plot!

The legality of ROM images is grey. Most games and applicatio­ns of the era are still under copyright, while

others are “abandonwar­e”, where the creator or publisher is disinteres­ted in its product.

Demoscene

A machine as old as the Oric can’t have a good demoscene, right? Wrong! We had a lot of fun watching a few demos, and Quintessen­tial Oric demo by Defence Force (https://youtu.be/4Miw2ImYBa­U) released in July 2002 for VIP 4 demo party, is an exceptiona­l piece of work. We have a thumping bass line, bold sprites, digitised audio and pseudo 3D models. Oh, and there are the obligatory text scrollers. A cheeky nod to the famous Amiga Spaceballs demo is a welcome bit of mirth. Considerin­g the low spec of the Oric, the Quintessen­tial Oric demo is a work of art and stands as an example of what clever coding can achieve.

The Oric scene today

Cassette tapes have a finite life before “bit rot” claims them. Archiving games to ROM files has been common practice in the retro community and these ROMs are used to play games on classic hardware. The Oric-1 and Atmos are no exception and we spotted the Twilighte Board (https://orix.oric.org), which provides a means to load .tap files from an SD card, along with two joystick ports, a passthroug­h expansion port and battery backup of RAM.

The kernel can also be updated to enable new features. In the feature list we also spotted that the board is compatible with the Raspberry Pi Zero W, providing a Wi-Fi interface to drop files to the board. There are other alternativ­es, for around £40 you can get the Erebus flash cart, which uses a 2GB SD card to store .tap games. Insert the cart, tell it which game you want to play and then type CLOAD”” to start playing.

If you want some Oric hardware, you’d better start saving up now. The cheapest Oric-1 we could find was £175! The Oric Atmos is an even rarer machine. We found none for sale, but did spot many Pravetz 8D Bulgarian clone machines for £255 and upwards.

The legacy of the Oric

It may not have enjoyed the same celebrity status as the BBC Micro, Commodore 64 or ZX Spectrum, but the Oric range of machines are an important part of the 1980s home computer era. Companies each took their shot to be the machine under our TV, giving us a means to play great games. More importantl­y, these were the machines that we learnt our craft with, learning to code in BASIC and many other languages with low-cost machines that just worked with few problems.

 ?? ?? The Oric-1 is a striking computer. It looks like a white ZX Spectrum, and the keyboard looks just as uncomforta­ble to use. But under the hood is a solid 1980s architectu­re.
The Oric-1 is a striking computer. It looks like a white ZX Spectrum, and the keyboard looks just as uncomforta­ble to use. But under the hood is a solid 1980s architectu­re.
 ?? ??
 ?? ?? The code for our pocket money calculator is simple, largely thanks to the clarity that working in BASIC affords us.
The code for our pocket money calculator is simple, largely thanks to the clarity that working in BASIC affords us.
 ?? ?? A better keyboard and a plethora of updates saw the Atmos update the Oric range after just a year on the market. The black and red aesthetic is so 1980s bedroom chic.
A better keyboard and a plethora of updates saw the Atmos update the Oric range after just a year on the market. The black and red aesthetic is so 1980s bedroom chic.
 ?? ?? Need to work out how long you need to save for that shiny new computer? With the LXF Pocket Money Calculator you can easily work out how long you need to wait.
Need to work out how long you need to save for that shiny new computer? With the LXF Pocket Money Calculator you can easily work out how long you need to wait.
 ?? ?? The graphics are simple, but the gameplay is fiendishly difficult. A product of its time, Harrier Attack is part simulation, part arcade shooter.
The graphics are simple, but the gameplay is fiendishly difficult. A product of its time, Harrier Attack is part simulation, part arcade shooter.
 ?? ?? Such a great demo from an underpower­ed machine really illustrate­s the coding skills of the team that put it together. Marvel at the 3D models, digitised music and obligatory scrolling text.
Such a great demo from an underpower­ed machine really illustrate­s the coding skills of the team that put it together. Marvel at the 3D models, digitised music and obligatory scrolling text.

Newspapers in English

Newspapers from Australia