Tangerine Computers

Introduction

Tangerine Computer Systems (later known as Oric Products International), based in Cambridge, UK, since the late 70's made a number of successful computer kits, followed by a number of microcomputers in the early 80's, starting with the Oric range, which were also well received. The Oric-1 was released on the 1st September 1982 and was followed up with the similar Oric Atmos on 1st February 1984.

While the computers sold a decent amount, manufacturing trouble and competition from rival computers caused financial issues for Tangerine, who had to be rescued multiple times and although a few more computers were produced, the company doors finally closed at the end of 1987.

Please note that this page will cover the Oric 1 and Oric Atmos.

All screenshots on this page, unless otherwise stated, were taken using RGB upscaled.

You may like to check out this video for an introduction to the Oric 1 and Oric Atmos by The Centre for Computing History:

Overview

The Oric-1 measures (WDH) 28 x 17.8 x 1.5 cm and somewhat resembles a Sinclair Spectrum, being a similar size and shape, and having the same memory options of 16K and 48K, with the 16K Oric-1 costing £129 and the 48K version £169. The Oric-1 originally came in a box with the BASIC programming user manual, (RF) TV lead, power supply, welcome tape and tape recorder lead.

At the rear of the computer you will find RF out, RGB out, tape socket (with cassette motor control, compatible with Acorn BBC and Electron), Centronics printer port (20 pin IDC plug), expansion connector (34 pin IDC plug for disk drive, etc.) and power socket. Note that the original power supply provided with the Oric is rated 240VAC 50Hz in, 9VDC 5.4VA, centre positive.

The Oric having RGB out was a big advantage over the original Spectrum ,which didn’t even have a composite video connection, RF being the only option.

If you have a TV with an analog RF input then the Oric’s RF connector can be used to get a picture by tuning the TV but the quality won’t be great. It’s better to use the Oric’s RGB output but if you don’t have a compatible monitor then you can buy or make an RGB to SCART adapter/lead which will give a very clear signal. There are two main approaches; the simpler one which is just a matter of wiring up the RGB connections to SCART (along with a power source to force the TV/upscaler into RGB mode) or a more complicated circuit that improves the RGB signal. Both methods are discussed in the following PDF:


http://andre.cheramy.net/trucs/peritel2.pdf


I built the simple RGB to SCART lead and that worked fine with my upscaler (your results may vary) and provided the blanking voltage via a 150 ohm resistor from a USB power source.

There are no joystick ports, potentially because they weren’t commonly used with computers at the time, but third party adapters for the Oric were provided which typically connected to the expansion or printer port. The Oric features a chiclet keyboard, so not the best to type on and feels quite odd to type on by today's standards. Back in 1983, however, R.A. Penfold in his book 'An Introduction to Programming the ORIC-1' (Bernard Babani Publishing/1983) states that: "Oric-1...with one of the most pleasant to use keyboards". That goes to show how bad other computer keyboards were at the time.

The Oric-1 keyboard has 57 keys and the Atmos has an improved keyboard more closer to the BBC Micro in terms of the types of keys, allowing for a more enjoyable typing experience while providing an extra key, the FUNCT modifier key.

Possibly to save costs the computer has no power switch and thus comes on as soon as you plug in the power; also there is no power indicator. There is an internal speaker, which (at least on my Oric) makes a low hum when no sound is being played, which can be distracting.

Emulators

Oric computers nowadays can cost a fair amount and while it's always a good idea to experience something in its original form where possible, emulators at least get us close to using a 'real' Oric and with greater convenience. As with any software downloaded from the Internet please use caution and be aware of the risks.

Euphoric

Runs on DOS/OS X, accurately emulates Oric and has built-in debugger. Can be downloaded from:

http://oric.free.fr/emulator.html

Oricutron

Open source emulator for the Oric series of computers, available for various systems, very well emulated. Can be downloaded from:

http://www.petergordon.org.uk/oricutron/

I tested out Oricutron V1.2 Windows version, as that was what was available at the time and suitable for my system. The downloaded file simply needs to be unzipped and the oricutron.exe file double-clicked to start the emulator without any configuration needed. Oricutron comes with various ROMs to support the different Oric computers, a number of virtual disk images (demo software) and a single tape file (Tron clone).

From when the emulator is launched the virtual Oric comes to life in a familiar manner to anyone that has used a real Oric. Here is the boot screen:

You can right-click on the main area of the window to bring up many options:

The various options can also be accessed through the keyboard; see ReadMe.txt included in the downloaded zip file for more details.

Left-click to select an option, or press the associated key, or press Esc to close the menu (only the function keys also work outside of the menu).

The Atmos is always the default computer every time the emulator is started, I haven't found a way to change that. To change the type of Oric emulated, right-click, select Hardware options... and select between Oric-1, Oric-1 16K, Atmos, Telestrat and Pravetz 8D. Note: 'Oric-1' is the 48K version and 'Pravetz 8D' is a Bulgarian Oric clone, as seen below:

Unfortunately, when I selected 'Telestrat' the emulator shut down.

Saving and loading using virtual tape files is easy: to save to tape: use CSAVE "filename" and your program will be saved as filename.tap (no need to specify the .tap extension). To load the program, use CLOAD "filename.tap". Note that you need to include the .tap extension to make the loading straightforward. Saving and loading using tape is very fast as the emulator uses a fast virtual tape system by default. You can disable Turbo tape from the Hardware options sub-menu.

Very handily you can copy/paste between the emulator and other programs. Simply copy the text (e.g., from Notepad) and in the emulator press F12 and the text will get copied in, greatly saving time typing. You can also copy to the clipboard the complete Oric screen (as text) including the status message(s) using F11.

The machine code monitor can be accessed using F2, useful for debugging your programs or learning how the Oric works. It consists of several sections as follows:

Top-left: shows the Oric screen, frozen in time, top-right CPU status and instructions, bottom-left the monitor command line, bottom-right VIA (I/O) and tape status. Press F2 again to exit the monitor.

One of the advantages of a multi-system emulator is that you can try out computers you don't own and this came in very handy when I wanted to confirm whether a Microsoft Easter Egg worked. This site talks about the various Microsoft Easter Eggs in the numerous versions of BASIC based on Microsoft BASIC, including the Oric systems:

https://www.pagetable.com/?p=43

User iss gives a BASIC listing to trigger the Easter Egg, saying it's "Confirmed for Tangerine Oric-1 and Oric-Atmos and Bulgarian clone Pravetz 8D." Here is the program reproduced here:

1 '***********************

2 ' MICROSOFT! Easter Egg

3 '***********************

4 B=#E435 : E=B+9

5 FOR I=E TO B STEP -1

6 J=PEEK(I) : J=J-INT(J/64)*64

7 IF I>B THEN A$=A$+CHR$(J+64) ELSE A$=A$+CHR$(J)

8 NEXT I

9 PRINT A$

If you run it on an Atmos or Pravetz 8D it does work and 'MICROSOFT!' is displayed as expected:

Note that the above screenshot was taken with the emulator in Atmos mode.

If, however, you run the program on an Oric-1 you will get a syntax error because of the apostrophes that begin on lines 1-3 but in the screenshot above I didn't even include those lines since they are just remarks even though the Atmos was being emulated which can handle the apostrophes. Anyway, on an Oric-1, real or emulated, if you don't include the first three lines and run the program you will get 'PHUeMicro' instead of 'MICROSOFT!' and the system will likely freeze:

The very simple reason is, due to bug fixes and other changes in the Oric V1.1 ROM, stuff got moved around and so the encoded Microsoft text has been moved slightly and one or more values passed to CHR$() probably confuses the Oric, causing it to hang. So, to get it working on V1.0 simply change line 4 to:

4 B=#E431 : E=B+9

Here is the result as seen on an Oric-1:

Expansion

ROM

Twin ROMs mod for Oric or Atmos to allow manual selection between Oric (V1.0) and Atmos (V1.1) BASIC, or any other firmware :

http://oric.signal11.org.uk/html/twinrom.htm

Joystick

The following article gives a good overview of the different ways to connect a joystick to the Oric as well as showing the many interfaces that were available:

https://www.osdk.org/index.php?page=articles&ref=ART17

Exploring BASIC

When you apply power to the Oric it will take a few seconds to start up and during that time you will likely see a garbled mess until it's cleared and you are presented with the boot screen:

If you don't get the boot screen, try removing the power and connecting it again as it seems it's quite normal for the computer to sometimes not fully start up. Please see the Troubleshooting section if further attempts aren't successful.

The above screen is from the Oric-1 48K, and it tells us what version of BASIC is available, the copyright and how much RAM the system has free. The 16K model will report 15104 bytes free.

To find out how much RAM is available for BASIC, use:

PRINT FRE(0)

You should get 39421 if you’ve just turned the computer on and have the Oric-1 48K version, which note is more RAM than the Commodore 64 offers for BASIC by default.

The Ready prompt and flashing cursor tells us the computer is waiting for BASIC commands or programs to be entered. The computer starts up in text mode which also supports low resolution graphics and is 40 x 28 characters. However, notice how the text is indented 2 characters from the left of the screen and after entering a line and pressing return the cursor waits at the very left edge of the screen but as you soon as you start typing the cursor will move to the third space from the screen left. This is because the first two columns are reserved for the screen attributes so you only actually get 38 characters horizontally for your use and because the top row is reserved there is only 27 rows for you to use.

To explain in more detail, the Oric uses serial attributes to control the screen aspects, which are foreground and background colour, foreground flash, double height characters and standard/alternate character set selection. This approach consumes less memory than systems that use parallel attributes and this is why the first two columns of the screen are reserved for the screen attributes, which can be thought of as control codes that are written to the first two columns of each line but aren't visible. By setting these attributes, the features (such as colour) can be set for each line, contrasting with other computers that let every character be its own colour at the cost of more memory.

When the INK or PAPER keywords are used to set the foreground or background colours respectively, the system sets the colour attributes values in the two left columns for the whole screen. The Oric only supports 8 colours, which are as follows, along with their associated values:

0 Black

1 Red

2 Green

3 Yellow

4 Blue

5 Magenta

6 Cyan

7 White

So, to change the text colour to blue you would use INK 4 and for the background to be red you would use PAPER 1, as follows:

Note that the cursor has taken on a cyan colour.

In the above screenshot I've entered a simple BASIC program that makes use of a loop by using the FOR and NEXT keywords, along with PRINT to output a varying string. When the program is run it prints out 'HI, I'M ORIC-' and then the current loop number held in variable X, from 1 to 10. Shame we didn't get anywhere close to having an ORIC-10!

To edit an existing BASIC listing LIST the program and move to the start of the line you need to edit and use CTRL and A to copy each characrter that you do not need to change (there will be no on-screen acknowledgement other than the cursor moving right). When you get to the character(s) that need correcting, type the corrections, and then CTRL and A if you need to copy other, correct characters on the line, and press return to save your changes. CTRL and X will discard any changes you've made before pressing return. This editing technique is more difficult to work with than other computers, such as the Commodore systems in which you can edit whatever program lines are on screen without having to copy first.

In the sound department Oric offers 3 different tones as well as a noise channel and very usefully it has BASIC commands to produce simple, preset sounds, using keywords ZAP, PING, SHOOT and EXPLODE. For defining your own sounds, use the keywords SOUND, MUSIC (both keywords defines the type of sound) and PLAY (controls the envelope, the shape of the sound). Generally, use SOUND for sound effects and MUSIC for playing music.

SOUND takes the parameters Channel, Period, Volume but what the manual calls 'period' is actually the frequency (pitch); the larger the number the lower the pitch. 4095 is the max useful value, anything higher is pointless since only the first 12 bits of the value are used. Volume takes a value from 1 to 15 (1 is the minimum and 15 the maximum), but using 0 for the volume specifies that the PLAY command will control the volume. There is no means to set the duration of the sound as part of the command, instead the duration is set with a WAIT command and then either a change of sound using another SOUND keyword or the sound can be stopped by using PLAY 0,0,0,0.

The parameters for MUSIC are Channel, Octave, Note, Volume, and PLAY has Tone Enable, Noise Enable, Envelope Mode, Envelope Period.

For e.g., MUSIC 1,3,11,7 will play an A# using channel 1, octave 3 at volume 7. The sound will keep playing until PLAY 0,0,0,0 is executed (if a BASIC program is running) or in direct mode, a key’s pressed.

The following program will play notes C to B in octave 3 on channel 1 in succession:

5 FOR X=1 TO 12

10 MUSIC 1,3,X,7

20 WAIT 20

30 NEXT

40 PLAY 0,0,0,0

BASIC and O/S Bugs

BASIC V1.0

In the book Computing with the Oric 1 (Newnes) the author addresses a number of bugs on page 129; please see the link in Resources section if you want to read up on them.

There are many bugs listed for V1.0 BASIC in section '2.16 Bugs in BASIC' in the Oric Atmos and Oric-1: Graphics and Machine Code Techniques (McGraw Hill Higher Education) book. Please see the link in Resources section if you want to read them all but some will be reproduced here:

1. TAB and COMMA do not work correctly. It is best to use either SPC or, alternatively,

POKE #269 with the TAB position.

2. STR$, when packing a positive number, puts the attribute ‘2’ at the front instead of a space. This often results in green numbers! The cure is to use MID$ to take off the unwanted character or to define a new STR$ function using the & function.

3. ELSE does not work under several conditions, for different reasons, so it is best to simply avoid the command altogether.

4. HIMEM is not set correctly on power-up. The solution is to always put in a HIMEM command at the start of the program, e.g., HIMEM #97FF.

12. If the single quote character is found at the start of a DATA item, then because of confusion with the REM facility, the rest of the DATA line is ignored. Use double quotes around any DATA items containing single quotes.

14. In the instruction POKE N, #8, the hexadecimal sign upsets BASIC, and zero will be POKEd. Always use a decimal value or a variable instead. The DOKE command does not suffer from this fault.

From my experience POKE N, #8 doesn't POKE zero, instead no value is written to memory. The address (N) is not affected by the bug so you can use hex or decimal to specify the address.

Testing the Printer Port

This section looks at how you can test the printer port if you don't have a compatible printer and explores whether it's possible to directly access the port in BASIC for other uses. Please note that I've only done the testing on an Oric-1.

First, a brief overview of how the Oric handles printing: data is sent to the printer by first placing the required value on D0 to D7, which is handled by the 6522's port A. Strobe, which is connected to bit 4 of the 6522's port B, is taken low and then high, to tell the printer there is a byte of data waiting for it. The computer waits for Acknowledge, connected to the 6522's CA1 input, to go from low to high so it knows that the printer has accepted the data.

Here is the circuit diagram for testing the printer port (downloadable from the bottom of the page as Oric-1 Printer Port Test.png) :

Using the circuit shown above we can use the following BASIC program to turn LED1 to LED 8 on and off in sequence, thus testing D0 to D7:

10 CALL #ED01

20 FOR C=0 TO 7

30 POKE #301,2^C

40 FOR D=1 TO 500:NEXT D

50 NEXT C

60 CALL #ECC7

Because of the conflict between the keyboard and printer port, in BASIC we have to effectively disable the keyboard while using the printer port and we do this on line 10, which calls a function to stop the system timer. On line 20 we set up a loop using C to keep count of which bit we are turning on and on line 30 we poke the 6522's port A in/out register with the bit value of the LED to turn on. Since port A defaults to all bits as outputs I've not needed to set the port direction bits. To calculate the bit value we raise the variable C value by the power of 2, giving us the required port values (1, 2, 4, 8, etc.). Note that the '^' symbol appears as an arrow when displayed by the Oric

Because we have disabled the Oric's timer we cannot use the WAIT command so on line 40 we create a short delay using a FOR loop and variable D. Next, on line 50 we cause variable C to increase by 1 as part of the loop, so that we can turn on the next data bit and in turn the LED connected to it. After all LEDs have been turned on in sequence, on line 60 we re-enable the timer using a different function call, otherwise the keyboard would be locked.

There are some side effects of the program and circuit: while the program is running you may hear the Oric's speaker 'singing'. Even without the program running you will notice LED1 flickering and LED2 to LED8 are on solid but when you type you will see different LEDs turn off depending on what key you press, which is due to the 6522 port A being used both for the keyboard and printer. Additionally, when you apply power to the Oric, if it hangs because it hasn't reset correctly, not all the LEDs will be lit.

Although I was able to directly manipulate the data bits I did not find a way to do the same with strobe and acknowledge without crashing the system but I did come up with a means to test them nonetheless.

We can use this simple BASIC program to test both acknowledge and strobe still using the circuit already shown:

10 LPRINT

20 PRINT "ACKNOWLEDGED!"

If the program is run and SW1 is not pressed (acknowledge is high) then ACKNOWLEDGED! will be printed immediately but if the switch is pressed (acknowledge is low) when the program is run then the message won't be displayed until the switch is released. The program takes advantage of LPRINT, which outputs a value to the printer and waits for acknowledge to go high. Note that since we are only waiting on the acknowledge signal there is no need for any value to be specified with LPRINT.

For testing strobe I’ve used a 555 timer IC wired as a monostable timer, triggered by strobe to the effect that when we use the test program above the LED will light for about 3 seconds (regardless of whether acknowledge is held low or not). As the Oric printer port doesn’t provide 5V you will need to supply that yourself, which you could get from the bus expansion connector. If you use a separate supply don’t forget to connect its OV connection to the Oric’s GND. You may find that the LED will be on until you apply power to the Oric, which will cause the LED to turn off.

An alternate way to make use of the printer port to receive data from the Oric, which doesn't cause any hardware conflicts but is still essentially using it as a printer port, is to use a latch IC (e.g., 74LS374), connecting its data inputs to the Oric's D0 to D7 signals and its clock input to the Oric's strobe and acknowledge signals. You can then use:

LPRINT CHR$(I);

to output values, where I is the value to output. Note the semi-colon at the end of the above line, which is required to avoid return and line feed control values also being sent.

Testing the Expansion Port

This simple test essentially adds an input port to the Oric. It uses a 74LS541 (IC1) octal buffer, which conveniently has the buffer inputs on one side and the outputs on the other. The circuit diagram follows (downloadable from the bottom of the page as Oric-1 Expansion Port Test.png):

The 74LS541 buffer inputs are held low by x8 10K pull-down resistors (R1-R8) but can be pulled high with the eight switches (SW1-SW8). The buffer outputs are wired directly to the CPU's data bus exposed on the expansion port, having the effect that the switches determine what value is read.

The Oric's I/O address range is #300 to #3FF but the Oric's internal 6522 lives at #300 to #30F so we can use any addresses from #310 to #3FF. To simplify the address decoding I have inverted A4 using a NAND gate wired as an inverter (74LS00, IC2) so that when A4 is high the 74LS541's /EN2 is low (enabled). When the I/O signal goes low it tells us the CPU is requesting access to memory in address range #300 to #3FF so, along with putting A4 into the equation, we can sense when the address is in the range #310 to #3FF. This means that, rather than just use one memory location, our switches appear at actually repeat at all locations from #310 to #3FF, again, to make things easier.

We also have to take into account Ø2, making sure it goes high before we enable the buffer. and that is why we use two NAND gates, to detect that I/O is low and Ø2 is high to produce a zero and enable the buffer via /EN1 (as well as /EN2 must also be low, as previously mentioned). However, we still have to manually disable the 6522 when using our own I/O even though we aren't clashing with its memory address and we do this by taking I/O control low when the buffer is enabled. This is done with another NAND gate, which detects when A4 is high and I/O is low (we ignore Ø2).

The simple test program continually displays the value at memory location #310 and by turning different switches on and off you should see the appropriate value displayed:

10 PRINT HEX$(PEEK(#310))

20 GOTO 10

Note that HEX$() displays # when the value is zero. The circuit could be expanded to include writable memory by taking into account the R/W line.

Resources

Oric-1 BASIC Programming Manual

https://www.defence-force.org/computing/oric/library/lib_manual_oric/files/oric1manual.pdf


The Oric Atmos Manual

https://www.defence-force.org/computing/oric/library/lib_manual_oric/files/manual_atmos.pdf


An Introduction to Programming the ORIC-1 (Bernard Babani Publishing)

https://archive.org/details/bernard-babani-publishing-an-introduction-to-programming-the-oric-1


Computing with the Oric 1 (Newnes)

https://archive.org/details/newnes-computing-with-the-oric-1


Machine Code for the Atmos and Oric-1 (Shiva)

https://archive.org/details/shiva-machine-code-for-the-atmos-and-oric-i


The Oric 1 and how to get the most from it (Granada)

https://archive.org/details/granada-the-oric-1-and-how-to-get-the-most-from-it


Oric Advanced User Guide (Adder)

https://library.defence-force.org/books/content/oric_advanced_user_guide.pdf


Oric Atmos and Oric-1: Graphics and Machine Code Techniques (McGraw Hill Higher Education)

http://www.1000bit.it/support/manuali/oric/oric.PDF

Note: this version has been provided by the author as freeware.


The Oric Handbook (Century Communications)

https://archive.org/details/century-communications-the-oric-handbook


Understanding Oric (Prentice Hall International)

https://archive.org/details/prentice-hall-understanding-oric


Service Manual For The Oric-1 and Oric Atmos Microcomputers

http://www.48katmos.freeuk.com/servman.pdf

Software

Introduction

While not many software titles were released for the Oric computers there is no denying that the titles are varied and unique. Tansoft was the Tangerine software label for their games and other programs. As with many microcomputers that left a lasting impression on its users, Software is still being developed for the Oric computers by hobbyists.

You may want to have a look at TOP 25 ORIC ATMOS GAMES by lluis segura:

Programming

OSDK cross-development system allowing you to create software for the Oric range of computers:

https://www.osdk.org/index.php?page=main

Technical

Memory

Oric memory map

https://www.osdk.org/index.php?page=documentation&subpage=memorymap

ROM

V1.1 ROM disassembly (mostly applicable for V1.0 also):

https://www.defence-force.org/ftp/oric/documentation/v1.1_rom_disassembly.pdf

V1.1b ROM disassembly with clickable address links (click on any instruction argument which is in the range $C000...$FFFF to jump to that address):

https://iss.sandacite.com/tools/oric-atmos-rom.html

Teardown

Teardown of Oric 1 and Oric Atmos (NatureAndTech):

Tips

All variable names must begin with a capital letter (lower case letters and punctuation marks cannot be used). Only the first two characters make the variable unique and the variable name cannot contain a BASIC keyword.

Array indexes start on 0 and the Oric will reserve 11 elements by default. The maximum number of dimensions is 255 but that many could not be defined due to the line limit of 78 characters.

Question mark (?) can be used as a shorthand for PRINT, e.g. ?”HELLO”

Hex numbers are specified with ‘#’, e.g., #100. This is also how the Oric displays hex numbers.

A BASIC program line is limited to 78 characters and this also applies to receiving input from the user using the INPUT keyword..

CTRL and C will stop a BASIC listing scrolling down the screen and the key combination can also be used to stop a BASIC program executing (use CONT to continue the program if no editing has been carried out). Space can be used to pause a BASIC listing running down the screen, which can then be resumed with any other key.

CTRL and F toggles off/on the noise made every time a key’s pressed.

CTRL and G produces a bell sound.

CTRL and L clears the screen (as does the CLS keyword).

CTRL and Q toggle the flashing cursor on/off.

CTRL and T toggles caps lock on/off. While CAPS lock is on, ‘CAPS’ will appear at the top right hand of the screen. Although the computer boots up with caps locks mode on, the ‘CAPS’ message doesn’t always appear (or, at least that's the case for my Oric), instead it only shows after caps lock is turned off and then on.

To delete a line you've entered (but not pressed return yet) press CTRL and X, which will place a backslash at the end of the line and the cursor will move to the next line.

PLAY 0,0,0,0 switches off any currently playing sounds.

To force garbage collection to free up memory use A=FRE(“”).

Control codes can be used in BASIC by using PRINT CHR$(X) where X is the value representing the key used with CTRL. A=1, B=2, and so on. So, PRINT CHR$(7) will make a bell sound (same as CTRL and G) because G=7.

Whereas PRINT is quite limiting where you can display text you can use the PLOT keyword to position text at the required coordinates but PLOT is not as versatile as PRINT when it comes to the types of information it can output.

The LORES graphics modes have no means to set the background colour unlike when using the TEXT and HIRES modes.

The RAM timer used for WAIT is stored at memory locations 630 and 631 and can be accessed with DEEK(630) and DOKE(630).

Memory location 524 contains the status of the caps lock toggle and memory address 618 contains other status values (key click sound, double height toggle, cursor on/off, etc.).

Programmatically identify whether an Oric is an Oric-1 or Atmos:

https://forum.defence-force.org/viewtopic.php?t=1790

Taken in part from Oric Atmos and Oric-1: Graphics and Machine Code Techniques (McGraw Hill Higher Education):

In order to make RND truly random, you must supply it with an initial negative random seed. Unless you do a WAIT command, and providing there has been some sort of user input (to delay the machine by an unknown time), you can use the third timer at #276,7. For example:

5 GET Z$

10 A=RND( – DEEK(#276))

Note that A itself is not a very random number – it will usually be a number smaller than 0.01– but any RND afterwards should be correctly balanced between 0 and 1.

Troubleshooting

No boot

Sometimes the Oric will fail to boot which appears to be normal and usually power cycling will get the computer to boot. In Computing with the Oric 1 (Newnes) the author acknowledges the issue and suggests wiring a button between pins 4 and 34 of the bus expansion socket as a more handy way to force the computer to start up correctly rather than having to remove the power.

Oric and Atmos Repair Guide

http://oric.signal11.org.uk/html/repairguide.htm

Repair Videos

Repair of Oric 1 (NatureAndTech)

All content of this and related pages is copyright (c) James S. 2022