Oric-1 is the latest of a new breed of colour micros vying for space in the personal computer market. Priced at £99.95 for the 16K, £169.95 for the 48K version, featuring 8 colours, built-in sound and printer interface, it is very much in direct competition with Sinclair's Spectrum.
This article is intended as a review of the features which would make the Oric a good choice for music making, namely: Graphics, Sound, Machine code programming and external interfacing.
The computer is very attractively styled in a sturdy, moulded grey plastic case. All the circuitry is enclosed in the lower section of the case which is angled, sloping the upper section; the keyboard, towards the user.
Keys are arranged in standard QWERTY format with clear, uncluttered labeling above each key. The keyboard is constructed from separate plastic tabs placed over a sheet of silicon rubber with conductive rubber dimples which, when pressed, bridge gold-plated contacts on a PCB. The 'snap effect' produced by the dimples gives the keyboard a nice 'positive' feel.
Internally, the quality of construction is very high. A second, resist coated, PCB sits above the keyboard containing all of the main circuitry.
The 6502 CPU, I/O Ports and AY-3-8912 sound generator are situated below two ROMs containing the 16K Oric Basic (right of the speaker).
Left of the speaker are: the dynamic RAM, 48K in this case; ULA (Uncommitted Logic Array); Address decoding; Audio amp and Video circuitry.
All the connections to the board are made with sockets, alleviating the problems associated with direct edge connections. From left to right (in the internal photo) these are: phono for UHFTV; 5-pin DIN for RG&B colour monitor signals; 7-pin DIN for cassette interface and sound output; 20-way 0.1" connector for printer connection (Centronics compatible); 34-way 0.1" connector for system expansion and a DC power socket.
When power is applied to the machine it replies with a black and white display of the number of bytes free and 'Ready' — commands can now be entered.
There are 4 graphics modes available: TEXT — which prints ASCII characters in black on a white background; LORES 0 — which prints ASCII characters in white on to a black background; LORES 1 which prints the alternative graphics set, used for Teletext/Viewdata; and HIRES which provides a 240 x 200 pixel window for plotting and 3 lines of text for commands.
Foreground and background colours are accessed using INK and PAPER commands each with 8 possible colours: Black, Red, Green, Yellow, Blue, Magenta, Cyan and White. Characters can also be printed in HIRES mode.
The built-in generator is capable of producing 3 channels of sound, comprising of 3 tones and/or noise with versatile envelope control. Signals from the chip are amplified by an LM386, audio power-amp, which produces about ½W into the speaker. This is certainly loud enough for most applications but an output is also available from the cassette DIN socket, for connections to an external amplifier, if required.
Sounds are generated in normal use with high or low frequency 'pips' for ASCII or control key depressions. These can, however, be disabled by typing CNTL F. Also, a high frequency 'ping' is produced when a line containing over 76 characters is entered.
Several sound commands have been provided for use in Basic programs. Three of these produce sounds suggested by their names: ZAP — short falling frequency sweep; SHOOT — short burst of noise and EXPLODE — long decaying envelope of noise. Obviously these are intended to be used in games but they do demonstrate some of the possibilities available.
Three more interesting commands are SOUND, MUSIC and PLAY. These allow the user to create his, or her, own effects within a program.
SOUND (Channel, Period, Volume)
The three parameters shown in brackets must be numeric but can be variables. Channel: selects tone or tone and noise in any of the 3 channels. Period: sets the frequency of the tone.
Volume: sets volume level or if 0 passes control to the envelope set in the play command.
MUSIC (Channel, Octave, Note, Volume)
Similar to the SOUND command with with the pitch set in musical intervals.
Octave: Values range from 0 to 6 with 0 giving the lowest tone. Note: Numbers from 1 to 12 representing semitone intervals from C to B. Channel and Volume: Set as in the Sound command.
PLAY (Tone Enable, Noise Enable, Envelope Mode, Envelope Period)
Tone Enable: Numbers from 0 to 7 select the 8 tone combinations possible with 3 channels
Noise Enable: Numbers from 0 to 7 select which of the 8 tone combinations noise is added to.
Envelope Mode: Seven modes are available — Single envelope with short attack and set decay; Single envelope with set attack and decay; Continuous rising and falling envelope with set attack and decay; Reverse single envelope with set decay from maximum to minimum volume and short attack to maximum again; Continuous rising envelope with set attack and short decay and reverse single envelope with short decay and set attack to maximum volume.
Envelope Period: Sets the value of the attack or decay period.
Using these commands it is possible within a program to produce a large range of musical and non-musical effects.
It must be said, however, that the output is almost too loud and cannot be set when using the PLAY command.
As BASIC is really too slow a language to use for direct sound generation or control applications, the ease in which machine code programs can be generated is very important.
With no assembler or machine code monitor, instructions must be poked into a section of memory reserved for MC programs.
Hex instruction codes can be entered directly, however, when preceded with a '#' character.
The command CALL followed by the address can be used to transfer control from BASIC to a MC routine, a return being made with the instruction RTS.
Another way of calling a MC routine is to define the address with DEF USR = Address then PRINT USR (0) whenever required.
Locations from 0400H to 0420H are reserved for MC programs but more memory can be reserved by limiting the amount allowed for BASIC using HIMEM address.
Two commands DEEK and DOKE are also provided which allow decimal numbers, up to 65535, to be PEEKed or POKEd into two consecutive locations.
Writing or reading to or from the screen is a simple matter using either MC or BASIC programs as the Video locations are memory mapped and with the expansion bus provided at the back of the unit, external circuitry such as ADCs and DACs can be connected and decoded to be used in music production.
MC programs, or blocks of memory, can be saved on tape by specifying the start and finish addresses, data transfer being accomplished at 2400 baud. This allows 16K to be loaded or saved in approximately 2 minutes. Data can be transferred at 300 baud but the normal speed works adequately with good quality tapes.
Overall, the ORIC is well engineered, both internally and externally, with a very 'clean' appearance.
The Basic has most of the commands found in Standard Microsoft, with additional sound and graphic commands but without logical operators: AND, OR, NOT and tape VERIFY, which seem a strange omission.
Every command must be typed in full, rather than single key entry as on the Sinclair's, but this can be faster and more precise than constantly using shift functions.
The manual supplied does seem to lack detail in some areas but no doubt 'user' literature will soon start pouring onto the computer bookshelves, as it has done for so many other machines.
Whether you are looking for a computer which can be used as a creative music-making tool, generating it's own sounds or controlling external instruments, or as a general purpose machine for use in the home, the Oric would be a good choice.
When the Oric Modem is available the machine will be able to provide access to Prestel information and electronic mail communications as well as 101 other applications.
Review by Kenneth McAlpine
mu:zines is the result of thousands of hours of effort, and will require many thousands more going forward to reach our goals of getting all this content online.
If you value this resource, you can support this project - it really helps!