Microtan 65 Review

Microtan_65_001

Just another 6502 system? We think not. Microtan’s expandability is almost second to none and it could be a winner.

By Henry Budgett

The ideal system in most people’s minds is one that is as cheap as possible, provides the most facilities, is expandable to the limits of its design and can be obtained piece by piece as the money is saved. Up to now there have been several systems that have sought to achieve these varied aims, and the results have been many and varied.

The machine reviewed here is another contender in this field and certainly seems to be set for success where others have not. Based on the 6502 CPU, the same chip as used in PET and Apple among others, it has several very interesting items to offer.

Concept of A System

The usefulness of a computer on a board is limited, the usefulness of a system with attendant peripherals is much greater. The ideal balance is struck when the single board can become part of a system and thus have the capability of fulfilling the needs of both markets.

Microtan has been designed in this way, the complete system has been planned and is then offered board by board. This review is only going to cover the basic board but mention will be made of the available expansion to construct the system. Table 1 gives details of the various stages that are available, in their various configured forms.

Assembly Or Assembled?

I built the Microtan from a kit, something that I believe is worth doing as you not only save money but you do get an insight into how the hardware is strung together.

Presentation is superb and to anyone who is competent with a soldering iron this should represent no more than an evening’s work. Please note that the PCB is double sided and through-hole-plated so you must use a fine tip on the iron and fine solder otherwise you will have problems.

The manual that is supplied covers all the areas needed to construct the kit and get it up and running. It covers other areas that I will mention later. The only serious omission is the lack of a circuit diagram, but this is being rectified I gather. You will need a power supply, the 5 volt supply that we published in CT serves admirably or you can buy one from Tangerine.

The true test of any kit is whether it works, it did in its basic format and with the graphics option in place but it died when I tried to add the lower case option. Immediate thoughts of dead ROMs were not correct, the eventual culprit was a tri-state device that was permanently tri-stated. Quick work by Tangerine meant that I was back on the screen before the postman had called twice.

Micro Monitor

The old question of “How much can you fit into a pint pot?” rears its ugly head with Tanbug, the 1K monitor supplied as standard. The answer in this case is “Enough!”. At this stage you have a system that can only deal with machine code and a glance at Table 2 will show that there is only one possible omission from the monitor, that of cassette handling. Well, you don’t have a cassette interface yet so what are you worrying about? If you are going to expand to Tanex, which has that necessary interface, you get the routine for handling named files which you can either load up yourself or get in an EPROM that plugs in to a socket and is called through Tanbug. The cassette handling is at a choice of 300 or 4800 Baud so you can’t even boil the kettle let alone drink a cup of coffee while loading programs.

What does Tanbug have that sets it apart from other monitors? Two things really, you get a full listing of the firmware with notes and explanations and you don’t get any bugs, at least I haven’t found any yet. It does all that the Microtan user will require and if you ever get big enough to warrant it there is a bigger version called XBUG lurking in a dark corner.

Manual Means Handy?

The little orange covered book that is supplied is worthy of a mention in its own right. OK, it’s not perfect but it is detailed and concise. One or two errors have escaped correction but nothing that will cause the crashing of programs or other damage. The book fits into a ring binder and will be joined by the manuals for Tanex and the other family members, a neat concept in its own way.

For a change the manual is logical, it explains the concept of the board, then the system, then the details of the 6502 with the complete instruction set and then a very detailed chapter on the monitor and its uses – complete with the listing and finally it gives you a couple of games. It is essential to read the whole thing through from cover to cover before starting to play, the unit is complex and should be understood before anything is attempted.

What You Get

Once the board is built and the manual read you are ready to go. All you need now is a black and white TV and a 5 volt power supply at about 1 amp. Connect up, turn on and hit reset. The screen is covered in a pretty pattern with the words TANBUG at the bottom followed by a prompt character. At this point we find the only serious problem with the system. You have a ? on the screen but you are told that you should have a square blob, have you blown it up? No, you haven’t got the lower case option. It is explained in the manual but it is very unclear and has caused much confusion and alarm both in the office and outside.

So, you have a working system. Machine code programmers can now go and have a ball, the rest of us start learning. If you are a dedicated BASIC person Tanex is a must, throw away the Hex keypad (superb thought it is), plug in the full ASCII, the system works out which you are using, and let yourself go with a 10K Microsoft BASIC.

Points worth of note, and praise, are the rock steady display on your TV, the VDU RAM is only accessed when the system RAM is not so you don’t get the usual flicker, the excellent Hex keypad and the almost unbelievable packing density. Because the system is based around the 6502 comparisons with the Acorn, reviewed in August 79, are almost inevitable. With Microtan you get a proper VDU as opposed to an LED display, a decent keypad that is separate and a slightly more powerful monitor but you do lose the cassette (at this stage).

The Guts Of The Matter

Figure_001

Fig.1. Microtan’s architecture, all on one board to!

Because of a lack of space on the board certain apparently ignored features are implemented at other points in the system. Figure 1 shows the architecture of the board, the keyboard interface is intelligent in that it detects what type is being used. The memory map of the system, see Fig.2, appears to be rather limited, full decoding is done on the Tanex board and gives the map shown in Figure 3. This is not the disadvantage that it might appear to be, it allows the contents of RAM on Microtan to be protected against DMA as are the I/O ports and the ROM area. Whilst on the subject of I/O it is worth noting that you get a 1K area that is addressable as I/O, this compares with a maximum of 256 on devices using the Z80 or 8080.

Figure_002

Fig.2. The simple memory map produced by Microtan

Figure_003

Fig.3. Once you’ve added Tanex you get a proper memory map, which is fairly impressive.

The system expansion is shown in Figure 4, full details of the bus structure are given along with notes for DIY people. The address bus buffer chips are supplied as part of the Tanex unit, so don’t worry about the empty sockets.

Figure_004

Fig.4. How you expand through Tanbus

On Board Options

Despite the fact that the basic Microtan packs in a 6502, keyboard interface, VDU, 1K of RAM and 1K of monitor ROM there is more to come! As seen from the previously mentioned Fig.4 the address bus buffers fit on, but that’s not the end. You can have lower case alphabetics, not essential at this stage, and pixel type graphics, sometimes called “high resolution” but really made up of little squares not dots. Tangerine are quite honest about them and call them “Chunky” which is a very apt description, they are good enough for Teletext simulations and games etc.

Because of the ingenious VDU design it is quite possible to run a program that actually resides in the screen memory without bombing everything, try that on your system.

Expanding Horizons

Glancing back to Table 1 you can see the basis of your system emerging. The rest is coming shortly and completes the story. Tanram will be the next board to go on sale and offers 40K of memory on a single board and this will have the capability of bank selection so RAM freaks can have the odd megabyte or six if they want. You may have realised that the system is now full, see Fig.3. Next on the stocks is Tandisc, offering you the floppies that you dream of, up to four double density units are planned.

Microtan_65_004

The Microtan board installed in the mini-rack

Microtan_65_003

Tanex fits on top in the mini-rack system, along with the power supply and Hex keyboard.

Housing all this exotic hardware need not be a problem either, the case that Tangerine supply will hold Microtan and Tanex complete with power supply. The other style that you could use is a card frame, I am building my system in a Vero unit, assembled from System KM4C parts which also offer such goodies as front panels and modules. However you could design your system to fit into a VDU case and have a self-contained system, it’s up to you.

Microtan_65_002

The author’s system growing inside a Vero rack.

Summing Up

Microtan, and its attendant extras, offer the first time buyer a low cost entry point into computing. Taking a boxed two-board system with all the options, power supply and key board you have a more powerful unit than a PET, it has more I/O capability and at £350 it is a lot cheaper!

The product appears to have been launched with a great deal of thought and planning, in itself a change from some rivals, and seems to have found a niche in the market almost overnight. The only thing it hasn’t got is a “second generation” CPU such as a Z80 or 6809 but that doesn’t seem to be too much of a handicap, the dedicated machine code programmers among you might disagree but no-one else has!

Table 1. The various system configurations for Microtan
Board Microtan 65
Features 6502, 1K RAM, 1K ROM, 6 I/O ports
Options Pixel graphics, lower case alphas, address bus buffers
Need to run TV, Hex keypad, 5V PSU @ 1A

 

Board Tanex
Features 1K RAM, 16 parallel I/O, TTL serial I/O, cassette I/O, 2 by 16 bit counter timers, full memory map, data bus buffers
Options 6K RAM, 4K ROM, 10K Microsoft BASIC, double above I/O plus RS232/20 mA serial with full modem control

 

Board Tanram
Features 40K mixed static and dynamic RAM

 

Board Tandisc
Features Control of four drives
Extras Motherboard, case, power supply, Hex keypad, ASCII keyboard

 

Table. 2 The available monitor commands on Tanbug
Monitor Command Function
M(add)(term) Modify memory locations, terminator type allows step through, cancel or jump out.
L(add),(numb)(term) Lists the contents of specified memory locations in tabular form.
G(add)(term) Sets internal registers and executes program at address given. NB cursor disappears.
R Sets memory modify command to register mode. Allows the 6502s internal registers to be altered.
S Sets single step mode, see P & N
N Resets to normal mode from single step
P Causes monitor to execute next instruction, can be set to execute n instructions. Gives display of all registers and returns to monitor.
B(add),(numb)(term) Sets breakpoint at specified address, up to eight are allowed. All registers are displayed and P command may be sued to continue.
O(branch add)(dest add)(term) Calculates offsets between specified addresses for use in branch arguments.
C(start add)(end add)(start add dest)(term) NB (term) can be CR, LF or SP Copies memory locations and blocks.

 First published in Computing Today magazine, June 1980

Oric 1

Another contender for the home market, tested by Steve Mann

Oric_Main_WEB

The appearance of the Oric-1 has demonstrated once again the almost comical inability of British micro manufacturers to launch a new machine properly. Funded by British Car Auctions and utilising the considerable experience of Tangerine Computers, the Oric is aimed at the fastest growing sector of the micro market – the sub-£200 home computer.

The delivery difficulties that dogged both the BBC Computer and the Sinclair Spectrum should have alerted Oric to the pitfalls ahead, but the new company observed their rivals’ mistakes, then promptly went out and repeated them. Adverts inviting customers to send off their cheques began appearing in October, and prospective buyers of the 48k machine had the additional carrot of a free Forth cassette dangled in front of their noses. 30,000 orders were received in the first two months and Oric was confident that large numbers would be delivered in time for Christmas. But delivery of ROM chips was delayed, and it became apparent that Oric’s deadlines were hopelessly optimistic.

PCW received a pre-production model for a review on 23 December. It didn’t work. It was impossible to get any sort of display, there was no editor in the software, the demonstration tape demonstrated only that it wouldn’t load, and the ‘manual’ was a hastily assembled 32-page booklet that couldn’t even get the syntax for loading programs right and gave no hint of the micro’s capabilities.

After Christmas a second machine arrived. This one had an editor – but the display was still faulty and the demo tape was still unloadable. Feeling that even attempting to review this would be unfair to Oric – even though they presumably wanted an appraisal; after all, it had been sent out as a review machine – we accordingly exchanged it for a third model, which again arrived minus any proper documentation, although the worst mistakes in the booklet had been corrected.

The stupid thing about all this is that the worst sufferer of the debacle has been Oric itself. I’ve always felt that it is pointless to send a micro out of the factory without a proper manual. It would have been far better if Oric had held back on the hardware (and the advertising) until the full manual was ready – after all, if you manufacture a product and are keen to get publicity from reviewers, surely it makes sense to ensure that those reviewers get all the information necessary to write about it? As it happened, the full manual did not arrive until some weeks after review machines had been sent out.

As a result of this short-sightedness, reviews have already appeared in some magazines that will have dissuaded a large number of prospective purchasers from buying. These reviews have contained wrong information and have failed to mention any of the Oric’s strong points. This is no reflection on the journalists involved – there is no way they could have done a proper job with the material provided.

Anyway, back to the PCW review machine. This still contained numerous bugs and Oric’s long-suffering PR firm replaced it yet again. By now, time was running out and it was evident that, bugs or no bugs, this was the model that would have to be reviewed So, here goes…

First of all, let it be said that the Oric-1 represents extraordinarily good value for money. To produce a 16k colour and sound machine, with Centronics printer interface and RGB monitor socket fitted as standard, at a price of under £100 is quite an achievement I suspect that most people will probably go for the 48k version which, at just under £170, is slightly cheaper than the 48k Spectrum. It is inevitable that the Spectrum will be Oric’s main rival, and the Sinclair machine has a good headstart, having just clocked up 200,000 sales. Accordingly, throughout this review, comparisons will be made with the Spectrum.

Hardware

Oricpic2aWEB

A model of elegance – Oric’s neatly designed PCB

The Oric-1 is housed in a reassuringly robust wedge-shaped plastic casing, finished in matt black and grey and adorned with a couple of thin blue lines. Oric makes much of the ‘drivability’ of its baby, so I can only assume that these lines are the equivalent of the ‘go-faster’ stripes lovingly applied by keen Cortina owners. Measuring 280x175x52mm, the Oric weighs in at 1.1kg.

The keyboard has 57 keys, described as possessing ‘tactile feedback’, which are a sort of halfway house between a full keyboard and the Spectrum ‘dead flesh’ keys. The keys are set at the correct angle and are the right distance apart for accurate typing. Keys have a positive feel and bleep when contact is made; Return and control keys giving a deeper tone than the alphanumeric ones. All keys have auto-repeat. The keyboard is considerably less cluttered than the Spectrum’s, with a maximum of two functions per key. The cursor control keys are sensibly arranged on either side of the space bar.

Opening up the case reveals a very neat and uncluttered interior. It is clear that a lot of thought has gone into the layout; components are neatly arrayed in groups and there are no last-minute additions or alterations as there are on the Lynx or Spectrum. There are eight 64 kbit RAM chips, 16 kbytes of which are overlaid by ROM. External control signals will allow the use of the full 64k RAM.

Next to the 6502 A microprocessor in the centre of the board is the loudspeaker, which is driven by a General Instruments 8912 sound chip. To the rear are the connections to the outside world – reading from left to right these are: TV output, RGB monitor (5-pin DIN), cassette interface (7-pin DIN), Centronics printer interface, which can double as 16 general-purpose I/O lines, and the main expansion port; this allows connection of the modem and microdrives and gives control lines for RAM and ROM to be externally expanded.

The disk pack and microdrives will use these lines to give 64k internal RAM on the 48k model. In our review machines ROM chips were not fitted; instead there were two EPROMs. All references to ‘ROM’ in this review should take this into account.

Underneath the machine is a reset button which provides a ‘warm start’ facility, enabling the Oric to be reset without losing the contents of memory.

Software

Oricpic2bWEB

The Oric uses an extended version of Microsoft Basic. Unlike the Sinclair dialect this version does not use ‘tokenised’ keywords – all these have to be entered in full. A welcome consequence of this is that the keyboard presents a much less cluttered appearance; whereas on the Spectrum some keys have as many as six functions, on the Oric each has a maximum of two.

On power-up, the display is in TEXT mode with caps lock on. This is important as all keywords and variables must be entered in upper case – any attempt to use lower case is met with ‘?SYNTAX ERROR’. Variable names can be of any length, but only the first two characters are recognised. Great care must be taken when choosing variable names – the Oric is very fussy about what it will accept. Despite the fact that only the first two characters are significant, reserved words anywhere in the variable title will stop execution of the program. Unfortunately there are a lot of reserved words, and the characters that make them up occur in many descriptive names – you can’t, for example, have a variable called ‘SCORE’ as that contains the Boolean operator OR; TO crops up in ‘TOTAL’; and it is all too easy to overlook combinations including ON, AND, IF, etc.

The manual is strangely reticent on this subject – it warns against the use of ‘PIG’ or ‘PIPES’ as they both contain PI, but then gives an example using ‘JONI’ which contains the reserved word ON and thus doesn’t work. I can’t help thinking that this could have been avoided – after all, the One is perfectly capable of differentiating between EXP (exponential) and EXPLODE (a built-in sound command) – and it will no doubt prove extremely irritating at times.

Variables can be suffixed with ‘%’ to indicate an integer in the range -32768 to 32767; this is supposed to speed execution time, although on running the Benchmarks I found it made little difference – in some cases using the integer suffix even appeared to make it slower!

Strings may be up to 255 characters in length, and are concatenated (joined together) with +. Strings may be compared by using =, <, >, <=, >=, and <>, and manipulated with ASC (returns ASCII code of the first character), MID$, LEFT$, RIGHT$, VAL and LEN. The function STR$ will convert a numeric expression into a string but a bug in the review machine’s ROM prevented this working properly. For example

10 A = 1234
20 A$ = STR$(A)
30 PRINT VAL (A$)
40 PRINT LEN (A$)

should produce 1234 for VAL and 4 for LEN. On our machine the results were 0 and 5 respectively. Somehow the Oric is inserting an invisible control character into A$. To get round the problem you need the somewhat convoluted program line

30 PRINT VAL (MID$(A$,2,LINE A$)).

This strips off the unwanted first character and gives the correct result.

While on the subject of bugs, it should be noted that the TAB command does not function properly, either. The syntax for this is TAB(N) and on the review model values of 1-10 had no effect at all while other values had a seemingly haphazard result. The TAB bug is all the more unfortunate because the One has no PRINT AT command. The manual gives a short machine code routine which allows the exclamation mark to be configured as a PRINT AT key, but it seems an astonishing oversight in a Basic which is generally very powerful and well designed.

And there’s no doubt that this Basic is an extremely good implementation, with features often not found on considerably more expensive computers. As on the Spectrum, computed GOTOs and GOSUBs are supported – a line like GOTO A* 100 is quitein order (always assuming you’ve given A a value earlier in the program!). Structured programming purists will be glad to see that you can GOTO or GOSUB a label; define COUNT as, say, 500 and you can quite happily GOSUB COUNT at any time. This makes renumbering of a program considerably easier, instead of having to go through the whole program line by line you simply change the initial value assigned to the subroutine. A word of warning to those reared on Sinclair Basic, however: the Oric requires that you hit line numbers exactly. On the Spectrum you can GOTO 499 even if there is no such line; execution will continue from the next line. On the Oric this will halt the program.

Generally, though, Oric Basic has more to recommend it than Sinclair’s version. Other commands supported by Oric, but not by the Spectrum include REPEAT…UNTIL, DEEK and DOKE, CALL, DEF USR, FRE, IF…THEN…ELSE, LOG, ON…GOTO/GOSUB, SPC, TRON and TROFF, plus a few more that apply to HIRES mode only and are thus not strictly comparable.

REPEAT…UNTIL sets up a loop to repeat all program lines between the two statements until the condition specified by UNTIL is true.

DEEK and DOKE are exact equivalents of PEEK and POKE, except they work on two memory addresses at a time. Thus DOKE x, v stores INT(v/256) in location x+1 and the remainder goes in x.

CALL x transfers control to a machine code routine starting at address x.

DEF USR defines the start of a machine code routine.

FRE has two functions – FRE(0) returns the amount of memory available, while FRE(“”) forces variable garbage collection.

IF…THEN…ELSE executes all instructions following THEN if the expression following IF is true. If false these instructions are ignored and the program executes the instructions following ELSE. ELSE may be omitted, in which case program execution continues from the next line.

LOG returns base 10 logarithms. LN give natural logs.

ON n GOSUB/GOTO x,y,z branches to the line number specified, depending on the value of n.

SPC(n) prints n number of spaces on screen, n is an integer in the range 0-255.

TRON (Trace On) is a useful debugging aid. As the program executes, line numbers are printed in square brackets on the screen in the order of execution. TROFF, as you would expect, simply turns the trace off again.

Random numbers are dealt with in three different ways. The standard format is A = RND (1)*6, in which case A will be given a random value between 0 and 5.9999. Repeating the instruction will give a different value for A. However, if the number in brackets is zero the value of A will again be between 0 and 5.9999, but this value will stay the same no matter how many times the instruction is repeated. If the number in brackets is negative then the random seed is set to a particular number and subsequent positive RND calls will always produce the same sequence.

There are two commands that are equivalent to the Spectrum’s INKEY$ – GET and KEYS. GET strobes the keyboard and waits until a key is pressed; this is useful when displaying instructions on the screen, giving the user time to read the screen at his own pace before pressing any key to move n. KEYS also strobes the keyboard, but does not wait. It takes the form X$ =KEYS, and must be preceded by a WAIT (n) program line, where n is a multiple of 10 ms. X$ will contain the value of any key pressed.

However, there are some strange omissions. As previously mentioned, there is no PRINT AT command but Oric Basic is also without any method of VERIFYing programs. As the cassette interface is very reliable this is not the problem it could have been but, being an extremely paranoid individual, it worries me when I can’t check that the program on tape is the same as the program in memory. There is also no way of MERGEing Basic programs.

Graphics and sound

In addition to TEXT mode, there are three other modes available on the Oric – LORES0, LORES1 and HIRES.

For low-resolution graphics, TEXT mode can be retained, or the user can select either of the two LORES commands. The only difference between them is that LORES0 gives the standard character set while LORES1 selects the alternate, teletext graphics set. Although screen resolution is theoretically 28 lines of 40 characters, in most cases the far left column cannot be used as it contains the attribute controlling the background colour for each row. Colours can be set globally, using Sinclair-style INK and PAPER commands, or locally – in which case attributes are POKEd or PLOTted onto the screen. If colours are set globally, it should be noted that INK and PAPER will change the whole screen instantly, without needing a CLS command. When POKEing or PLOTting on screen, care should be taken to ensure that codes are entered at an area of the screen that is blank; failure to do this will mean that any character already there is overwritten and replaced by a space.

When working in LORESO, the alternate characters can be accessed by using PRINT CHR$(9) and the standard set regained with CHR$(8).

In HIRES mode, the screen is divided into pixels with a resolution of 240 by 200. You are not limited in the number of colours displayed at any time, and the Oric gives more flexibility than does the Spectrum in changing colours. Each attribute will work on an area one character square in width by one pixel in depth – thus you can have 200 lines of alternating colours down the screen. The definition is generally very good, with each colour sharp and distinct. Characters can be plotted onto the high-resolution screen using CHAR, and there is provision for three lines of text to be entered at the bottom of the screen. Drawing on screen is simplicity itself. The cursor is moved to the relevant place with CURSET followed by the pixel coordinates and what is described in the manual as an ‘FB’ number. ‘FB’ stands for foreground or background, and thus lines or points can be plotted or erased. Relative moves are handled by CURMOV, which has the same syntax. CIRCLE draws what should be a circle but in fact appears to be an ellipse. Oric supports eight colours – the advertisements rather misleadingly claim 16 but in fact this just means eight foreground and eight background. There is only one level of brightness, but against this must be set the fact that the Oric is extremely flexible in dealing with different text formats – characters can be normal or double-sized, flashing or steady and this is achieved with the minimum of fuss by using the CTRL key.

It is easy to define your own characters, using either the standard or the alternate character set. Characters are unusual in that they’re defined on an 8×6 grid, with the leftmost two columns always being blank.

For anyone used to the weedy BEEPs produced by the Spectrum as an excuse for sound and music, the Oric’s sound facilities will come as a revelation. In addition to the arcade-style pre-programmed noises (PING, SHOOT, ZAP, EXPLODE), the Oric has three tone channels and a noise channel that can be manipulated to produce effects that are limited only by the user’s imagination. With a range of six octaves, some very respectable music can be obtained.

Sound generation is controlled by the MUSIC, SOUND and PLAY commands – the output is defined with MUSIC or SOUND and the envelope is controlled by PLAY. The envelope determines the ‘shape’ of the sound, enabling you to decide whether it starts sharply like a guitar, or smoothly as on an organ. There are seven different envelope ‘shapes’ and some stunning effects can be achieved. The sound commands are relatively complex (although not as fiddly as on the BBC Micro, on which the ‘Envelope’ command takes 14 parameters!) but the results that can be achieved are well worth the time and experimentation involved. Volume can be set in SOUND and MUSIC statements in the range 1-15 (if 0 is entered the volume level is variable and will be controlled by the PLAY command) and this is more than adequate, with a level of 7 or 8 being plenty loud enough for all but the deaf. One thing you have to remember is to include a PLAY 0,0,0,0 program line – otherwise the last note played will continue indefinitely!

Sound is definitely one of the Oric’s strong points and, while not on a par with that of the BBC machine, could well be a deciding factor for someone who is hesitating between buying an Oric or a Spectrum.

Entering programs

Oric Basic makes the entering of programs very easy. All variables are pre-set to zero, and arrays are automatically allowed 11 elements – more if they are re-dimensioned. Spaces in program lines are not critical and Oric does not require LET when variables are assigned. It is also possible to omit the variable name after a NEXT statement, although this is not recommended as it is very easy to lose track of which particular loop you are dealing with. Multiple statement lines are allowed, but Oric does restrict line length to 78 characters.

The CTRL key can be used to keep the display tidy – CTRD-L clears the screen, CTRD-Q removes the flashing cursor, and CTRL-S turns off the display entirely. CTRD-T turns the caps lock on and off, and CTRL-D allows double-height characters to be entered – a very useful facility. In addition, CTRL-F turns off the keyboard bleep, CTRL-X deletes the line you are entering and sends the cursor to the beginning of the next line, while CTRD-] turns off the column protection for the far left column, thus giving a full 40 characters across. CTRL-C will stop program execution. All CTRL key actions can be duplicated in PRINT statements by using CHR$(x) where x is the number corresponding to the relevant letter – CHR$(4), for example, is equivalent to CTRL-D. All CTRL keys are toggle action – repeating the sequence cancels the command.

Editing is done in two ways – the line to be edited can be pulled out of the listing with EDIT line number, or the cursor can be moved to the relevant line with the arrow keys. The line is then copied by using CTRL-A, which moves the cursor along the line; parts that are to be changed are simply typed over. Deleting is achieved by skipping over the text with the cursor keys. To enter additional text you have to move the cursor to the line above and then type in the new information (it doesn’t matter if you overwrite what’s already there), before moving the cursor down again, backspacing to the point where the additional text started, and using CTRL-A to copy the rest of the line. It sounds complicated, but you soon get the hang of it. The manual ignores entering of new text in a program line entirely.

It is possible to enter programs in HIRES mode, but unless you are entering direct commands and want to see their effect as you do so it is better to stick to TEXT mode – in HIRES the listing is only visible on three line at the bottom of the screen and it scrolls so fast it’s almost unreadable.

Listing is achieved with LIST (in which case the screen scrolls until the end of the listing is reached, but can be stopped at any time by pressing the space bar), LIST m-n (all lines between and including m and n are listed) and LIST n (line n alone is listed).

Numbers can be entered in either decimal or hex form – a hash mark preceding the figures will make the Oric accept it as a hexadecimal number – and conversions between the two number bases can be carried out directly using PRINT HEX$(16) (this will produce #10) or PRINT #10 (this gives 16). Upper limit for conversion is 65535 (FFFF).

Machine code programming is made easy by the CALL and DEF USR functions and the manual gives two examples which will configure the ! and @ keys to give PRINT AT and the vertical cursor position respectively. HIMEM sets the top of user memory (directly equivalent to Sinclair’s RAMTOP) and enables machine code programs to be protected from overwriting by Basic. Machine code programs can be saved and loaded using CSAVE/CLOAD “PROGNAME”, A,E where A is the start of the block of memory and E is the end address.

In general, the Oric is very forgiving when programs are entered and executed. The error messages are straightforward and unambiguous (there are 20 in all) and, despite the skimpy and inaccurate documentation, it should be relatively easy for the beginner to get started on writing his own programs.

Documentation

The Oric manual is a typical example of the curate’s egg syndrome – there’s a wealth of useful information in the various appendices and some very good material on mathematical functions, but generally the documentation does not go into sufficient detail and in some cases it is downright misleading.

The ‘Better Basic’ section persistently confuses colons and semi-colons and the ‘Oric Basic’ section, which give a brief rundown on commands and functions, has numerous – admittedly minor – mistakes that better proof-reading should have spotted.

As a quick reference guide, the appendices are excellent – they cover everything from a list of 6502 machine code instructions through to a very comprehensive ‘Pin Output Chart’ which explains the function of every pin on the various expansion ports at the rear of the machine.

However, a manual for this class of computer should really function as a Basic tutorial for beginners, and in this the Oric manual falls down. This is excellent news for the Tim Hartnells of this world – I foresee a flood of books designed to explain Oric Basic properly – but not so good for those on a limited budget. In general, the Oric manual is not as thorough as the Spectrum’s and shows signs of being somewhat hastily produced.

Conclusions

First of all, let it be said that the Oric is an extremely good machine and one that represents extraordinarily good value for money. There’s no doubt that it will prove to be a strong rival to the Spectrum in what is an extremely competitive sector of the market. Major plus-points are the built-in facilities for communicating with the outside world and the vastly more sophisticated sound capabilities.

That said, I think the Spectrum may be a better machine for the absolute beginner. The graphics facilities are easier to handle on Sinclair’s machine and the Spectrum manual, though far from perfect, is considerably more helpful than Oric’s effort. The Sinclair ‘tokenised’ keywords are also probably easier for the beginner. For anyone with a previous grounding in computers, though – a ZX81 owner, say, or a VIC-20 user who has grown tired of the restrictions imposed by the limited memory – the Oric should prove ideal.

I say ‘should’ advisedly, because the Oric as it stands has some glaring faults. In each of the four models I’ve looked at EPROMs have been installed in place of ROMs and the Basic has contained some annoying errors. I had assumed that all this would be corrected before machines were sent out to customers – indeed, as I’ve said in this review, I wish the company had waited until everything was bug-free before sending out even review machines.

But it appears that some Orics – I hope a small number only – have been sold through the Spectrum (no relation) retail chain and there are therefore people who are very probably beginners to computing who have walked into shops and bought what is basically a sub-standard product. Presumably Oric will replace these faulty models – under the Sale of Goods Act the customer is entitled to either a new machine or his/her money back – but it is a situation that should never have arisen in the first place.

This being so, it is impossible to recommend the Oric-1 unreservedly. However, when final ROMs have been installed and consequently the present bugs have been dealt with, and if Oric rewrites its manual to a higher standard, then the Oric-1 should prove to be a best-selling machine. It’s just unfortunate that Oric should have set about marketing its product in this unprofessional and slapdash way – it can do the company’s reputation no good and, what is worse, it’s liable to be reflected in the consumer developing a distrust of the computer that, subject to those improvements mentioned above, it really does not deserve.

Erratum

Earlier in this review I made some disparaging comments about the fact that the Oric has no PRINT AT facility. This is, in fact, not the case – the Oric’s equivalent to PRINT AT takes the form PLOT x,y where x and y are column and row coordinates. This is applicable in both TEXT and LORES modes – in HIRES, CHAR must be used. My apologies too Oric for this unwarranted slur.

Prices

Oric 16k £99.95
Oric 48k £169.95
Oric Communications Modem £79.00
Oric Microdrive TBA

Technical specifications
Processor 6502A
RAM 16K or 48K
ROM 16K
Keyboard 57 key, ‘tactile feedback’ ASCII, autorepeat
Screen Domestic TV, provision for RGB colour monitor
Disk Microdrive, not yet available
Language Basic in ROM
Benchmark timings
BM1 2.01
BM2 17.29
BM3 29.35
BM4 31.72
BM5 38.10
BM6 50.10
BM7 76.08
BM8 233.40

All timings in seconds. Please note that BM8 now gives the timing for 1000 iterations of the loop – previous Benchmarks have referred to 100 passes. For a full explanation of Benchmark timings, see PCW November 1982.

First published in Personal Computer World magazine, April 1983