A Tribute to the Dick Smith System 80
(aka Video Genie and PMC-80/81)

A Review of the Colour Genie - by Simon Goodwin


his review appeared in "Computing Today", (date unknown)


Pedigree

The Colour Genie is the second computer from Hong Kong box-makers EACA. It follows the Video Genie, a computer which closely resembled the TRS-80 (to the extent that the memory-maps and ROMs were almost identical).

The Video Genie (later modified and renamed 'GENIE I' and 'GENIE II') has sold quite well in the UK through the importers Lowe Electronics, an amateur-radio firm turned computer-shack. Since that machine was introduced it has been undercut and outperformed by a wide variety of cheaper computers. The BBC Micro, Sinclair Spectrum, Dragon 32 and other machines have arrived on the UK computer scene and the market for personal computers has shifted from the hobbyist to the home market. EACA have responded to that challenge by producing a new, cheaper machine aimed fair and square at the market-slot occupied by the VIC, Dragon, Atari and BBC computers.

Overview

The Colour Genie is supplied with a demonstration cassette of programs and leads to connect it to a UK colour or black-and-white TV set, an standard cassette-recorder (motor-control is not provided) and the 240V mains. The computer contains 16K of ROM BASIC and 16K RAM memory, with connections ready for optional joysticks, parallel or serial printers and a Hi-Fi amplifier. It contains a modern graphics chip and a sound-generator similar to the one used in the BBC Micro (need I say more!). A 'bus' connector will eventually allow the computer to control disks, although the appropriate controller is not yet on the market. The original Video Genie Expander is not compatible with the Colour machine.

Hardware

The Colour Genie is similar in appearance to the Commodore VIC computers, although slightly larger in each dimension. This resemblance is heightened by the presence of four user-programmable keys on the right hand side of the keyboard, and the preset graphics legends on the front faces of some keys. It is possible to program the user-keys to generate any sequence of up to ten characters, with an optional automatic RETURN at the end of the sequence. Graphics are obtained by pressing the 'Mode Select' key and then the appropriate sequence of letters.

Unlike its competitor the Dragon, lower-case (small) letters can be entered from the Genie keyboard. A ratchet-action Shift-lock button is provided to select capitals only, but this unfortunately acts upon the numeric keys as well, meaning that the user must release 'Shift lock' while typing in numbers. A repeat key generates the last key pressed over and over again when it is selected - useful when editing or filling graphics strings - and the clear key can be used to blank the screen and move the cursor to the top left-hand corner of the display.

Four arrow keys can be used for cursor-movements in games and a CTRL key is useful for graphics and colour selections. The usual 'Return' key marks the end of a line and 'Break' can be used to halt BASIC programs. The original Genie had a hardware reset button on the back panel, useful for stopping machine-code programs or escaping when the computer decides to wait for messages from a non-existent device (such as a printer). The break key will not work in these cases since the computer will be devoting all its attention to the machine-code.

The Colour Genie reset button has been relocated so that two buttons on either side of the keyboard must be pressed simultaneously before the machine will reset. That is a sensible precaution since an accidental reset could halt a program in the middle of a statement, making continuation impossible. The reset is, however, quite forgiving, since it dos not delete the program unless the 'R' key is pressed as well as both of the other buttons.

Television or Colour monitor display is handled by a specialised Hitachi controller-chip. Curiously, slightly fewer colours are available when using a monitor. The computer performed creditably on both black-and-white or colour televisions, although older televisions tended to blur the colours and lines slightly. The picture produced was comparable with that from a ZX Spectrum, only slightly inferior to the colour display of a BBC micro.

The new Genie has two graphics modes. Text mode allows 16 colours to be displayed at once on a 40 x 24 grid of characters, while the other mode allows medium resolution graphics with 160 x 96 point resolution. Four different colours can be used on the medium resolution screen, and the colour of each point can be set individually.

In text mode the use of colour is more limited, since each character-position may contain only one colour on a black background. The pattern of 8 x 8 dots in each character-position can be varied by POKEing binary values into reserved memory, allowing user-defined-characters similar to those on the BBC Micro or VIC-20). Quite attractive displays can still be produced in text mode, since it has, in effect, twice the resolution of the standard VIC display. Problems come when the graphics will not fit on a character-grid - in this case the medium resolution screen is easier to use.

Technical notes about the display controller indicate that it has considerably more power than is used by the standard graphic modes. From these notes it appears possible for an ingenious programmer to modify the instructions given to the chip and hence increase the graphics resolution purely by software, although this would be a fairly complex process.

Sound on the new Genie is handled by another custom chip, almost identical to the one used in the BBC micro. This allows three simultaneous notes to be sounded, along with a 'noise' channel useful for sound effects such as 'explosion in sandpit' noises. This is a very powerful device, and a connector on the back of the Genie allows the user to connect the computer to a Hi-Fi system if required. BASIC commands allow direct access to the registers in the controller, making a wide variety of effects possible. Unfortunately the only waveform which can be generated is a square-wave, giving all of the sounds a rather 'reedy' tone.

The cassette system works at 1200 baud, which means that a 4K (4000 character) program can be saved or loaded in about 35 seconds. That rate is more than twice as fast as the original Video Genie, but, along with format changes, it unfortunately means that tapes written by its predecessor cannot be read by the Colour computer. A program has been written to allow an old-model Genie to generate tapes for one of the new machines, and it is hoped that a similar program can be produced to run in the Colour Genie, allowing tapes of the old format to be read. The time-constants used by the cassette routines are, most sensibly, stored in RAM so it is possible to POKE new values and modify the speed of the interface accordingly. Rates much higher than 1200 baud could certainly be used for transfers between machines.

The claim that the Colour Genie contains both a parallel and serial interface is a half-truth, hardly surprisingly in view of the low price of the machine. The serial interface consists of little more than a facility to set and test the voltage-levels of two wires from the machine. There is no software support for the interface and no documentation of its facilities. The Colour Genie would support 'software RS-232' in which a new machine-code program would handle all of the timing needed for serial communication. Existing owners may be interested to know that the interface is wired to port 255 - bit one is used for input and bit two for output.

The parallel port is designed for connection to a dot-matrix printer. The ROM contains routines to communicate with it, using LPRINT and LLIST from BASIC, but an external adapter is needed to generate signals for a standard Centronics printer.

The processor in the Colour Genie is a Z80, running at 2.2 MHz (30 per cent faster than on the TRS-80 or Video Genie). This choice is unusual for a home computer - all the computers listed above with the exception of the Spectrum use the Motorola-style 6502 or 6809 processors, and the Z80 in the Colour Genie belies the similar name and parenthood of Tandy's Color Computer. They are completely different machines.

The Basic

Colour Genie BASIC is derived from the original Microsoft BASIC interpreter for the long-gone Altair computer. That program has been modified and used in the TRS-80, Nascom, and CP/M MBASIC, making it one of the most popular interpreters in existence, with over half a million copies in circulation.

Altair BASIC was an 8K program written in machine-code for the 8080 processor. Most computers now running it use the more powerful Z80 processor, which can run 8080 programs (although some of its power is consequently wasted). The Genie ROM occupies 16K, and is written in a mixture of Z80 and 8080 code. The bottom 12K closely resembles the extended cassette BASIC of the TRS-80, although there have been a few changes to hook in an extra 4K of graphics, sound and utility routines.

EACA have tried hard to preserve compatibility between the new ROM and the 12K BASIC in earlier Genies. They have been fairly successful, although there is one annoying inconsistency. The old read-character, print and display routines can all be entered at their original addresses, but there has been one change. The display routine now 'forgets' the character it has shown after it has been printed. Consequently any program that displays a character and then acts on its value will no longer work. The original ROM used to retain the character-code after a call to 'display', so that many programs must be converted to save and restore the value. That can force major alterations.

EACA have even left in some of the old TRS-80 bugs, although they are presumably not important since half a million users have been able to put up with them!

Old and new Genie users might be interested to discover that their computer issues an error message when asked to find VAL("%"), whereas VAL works perfectly for any other non-numeric character, returning the value zero.

Type SYSTEM and then press the Tab or right-arrow key repeatedly. After about twenty presses strange numbers start to appear on the screen. This is because BASIC has assumed that you will want to load a machine-code program soon, and consequently it has moved the Z80 stack into the BASIC input buffer for safe-keeping. The TAB characters overwrite the computer's list of return addresses, so that it gets lost.

There is one new bug in the Colour Genie. When you turn the machine on it displays a "MEM SIZE?" message, asking the user to reserve memory for machine-code if required. A number is expected here, and strange things happen if you repeatedly type text instead!

Despite these minor idiosyncrasies, Colour Genie BASIC is a powerful language, allowing four different types of variable - strings (length 0-255 characters) - integers (whole numbers between -32768 and 32767) - and single or double-precision floating-point numbers. Variables are assumed to be single-precision, accurate to six decimal digits, unless declared otherwise. Double-precision calculations are carried out to an accuracy of 15 decimal places, but they take longer to process than single-precision and occupy more memory.

Integer variables are handled very quickly by the Colour Genie. If calculations can be carried out with whole numbers only (when extracting arrays elements, for example) integer variables can be twice as fast as single-precision.

Variable-names can be any length, although Genie BASIC will not distinguish them beyond their first two characters, so that GENIE and GEISHA would be treated as the same variable. Variable names must not contain imbedded reserved-words, which means that variables such as TO and XLENGTH are not allowed. Programs can be entered in capitals or lower-case letters - the Genie will automatically capitalise text outside strings and comments.

Genie BASIC allows arrays of every variable-type, and there is no limit to the number of dimensions other than the size of available memory. On a 16K Genie there is just under 10K free for BASIC programs after space has been reserved for the display and the interpreter's working storage. This can be increased to about 14K if the MODE SELECT key is held down when the computer is turned on, since the machine will then assume that medium-resolution graphics are not required and the appropriate memory will be released. To avoid powering-down the machine the memory can be freed from the keyboard by pressing 'R', MODE SELECT and both reset buttons, all at once!

Normally the Colour Genie reserves memory for both the text and graphics displays, using up over 5K of RAM but allowing the user to skip back and forth between displays without losing either picture. The display modes are explained in more detail later in this review.

Colour Genie BASIC allows program lines up to 240 characters long to be entered, and structures such as IF...THEN...ELSE enable the programmer to take full advantage of this facility. There is a line-editor built into the ROM. This allows the programmer to insert or delete text within a line, so that incorrect lines don't have to be re-typed from scratch. Unfortunately this is not a proper screen-editor so it is not possible to duplicate or renumber lines using the Genie editor.

To call up the editor type 'EDIT line number', or 'EDIT .' if the line concerned has just been listed or entered. The '.' is an abbreviation for 'current line', and can be used in LIST commands - 'LIST .-' would list onwards from the current line, for example, and 'LIST 10-.' will list all lines between 10 and the current one. The Genie does not check the syntax of lines when they are entered, but it automatically sets up the current line and calls the editor if a syntax error occurs while a program is running.

Other abbreviations include "?" for PRINT, "'" (apostrophe) for :REM, and &H used to denote hexadecimal numbers - &H7FFF would be 32767, for example.

Error messages on the new Genie are rather odd - rather than issue error-numbers or English explanations, Genie reports take the form 'SN Error at 1010' or 'NF error'. Two character abbreviations indicate the error which has taken place, so that 'SN' would be short for 'Syntax', 'NF' means 'NEXT without FOR', (contrary to what right-wingers might tell you) and the ingenious '/0 Error' indicates that a program has attempted to divide by zero. The Genie can generate 23 such messages, and it takes a while to learn what they mean. They are an improvement over the 'WHAT?', 'HOW?' and 'SORRY?' of the early micros but it seems strange that EACA could not use some of the extra 4K ROM to include more helpful comments.

Colour Genie BASIC contains a few useful programming utilities including an AUTO command which can be used to generate line numbers in any regular sequence without the need for the programmer to type them in by hand. The RENUM instruction reorganises the line-numbers of the program in memory, evenly numbering the lines and correcting the target numbers of GOTO and GOSUB at the same time. BASIC provides an ON...ERROR...GOTO facility which means that program errors can be trapped without a return to the READY message. Two variables ERL and ERR are set up to contain the line number in which the error took place and a number corresponding to the type of error. Unfortunately the RENUM command does not correct references to ERL, which is rather annoying.

The BASIC is, on the whole, very comprehensive, though it lacks facilities to handle user-defined functions or procedures. There is a full set of mathematical functions (unfortunately only accurate to six digits) and all of the usual string functions are there too. One function, VARPTR, allows the programmer to find the addresses of variables in memory. On the TRS-80 this feature has been used for a wide variety of ingenious purposes, including high-speed graphics and linkages between BASIC and Z80 machine-code. Two statements, CALL and USR, can be used to call up machine-code routines previously POKEd into memory. It is possible to reserve memory above BASIC to leave room for such routines.

Graphics The Colour Genie features a quite extensive set of graphics commands, although it is annoying that their syntax is inconsistent - some of them require brackets around values while others object to them.

The colour of characters in the text mode can be selected by use of the COLOUR command. Sixteen different colours can be displayed on a TV, while a colour monitor will show only eight.

The FGR statement selects the medium-resolution graphics display. Normally it will show whatever was last plotted there, although FCLS can be used to clear that away. BGRD sets the background colour to pink, blue, orange or green, although black can replace pink if the NBGRD statement is used instead.

FCOLOUR selects the ink colour from the four possibilities, and then lines or circles can be drawn on the grid of 160 by 96 points.

It is possible to POKE tables of 'shapes' into reserved memory - each four bits of RAM stores the colour-code for a point (0-3) and a movement direction (up, down, left or right). A painstaking programmer can use this facility to set up complex designs and then move them across the screen with a set of SHAPE commands.

My favourite command is PAINT, which is used to colour in an area of the display. Simply draw a line around the area to be coloured and then PAINT into it. PAINT X,Y,C1,C2 starts from position X,Y, plotting points in colour C2 until a boundary in colour C1 is reached - just like emptying water into a pool.

Sound

The sound generator in the Colour Genie can be controlled in two ways. A simple PLAY command is useful for music, while more complex effects can be generated by writing directly to the control registers of the chip using the SOUND instruction.

PLAY(CH,OC,NT,VL) will play a single note. VL is the volume (0-15) and CH is the channel number (1-3). At any time there can be a different note sounding on each channel, so that three-note chords can easily be generated. The pitch of the note is selected by NT, where 0 represents a rest and 1,2,3 represent the notes C,D and E respectively. Values greater than 7 generate the notes C sharp, D sharp, and so on. OC contains the octave number (1-8).

Joysticks

The 50 pound pricetag on a pair of Colour Genie joysticks is partly explained by the fact that they each have a numeric keypad on them. These pads can be read by the functions KEYPAD1 and KEYPAD2, while X and Y joystick coordinates can also be read with BASIC statements.

Manual

Much of the information above is not in the provisional manual for the Colour Genie - a hand-bound photocopied document that has accompanied early computers. A pair of printed manuals should be available soon, and a prospective purchaser would do well to ensure that these are available with a 'new' machine. Hopefully EACA have improved their technical writing since they produced the final manuals for the Video Genie system. Those were rather poor, and a set of TRS-80 manuals were needed to get the most from the machine.

Luckily TRS-80 manuals are available cheaply from Tandy shops - they documented many features of the original Genie which EACA did not mention, and may well be useful to users of the Colour Genie - from the point of view of BASIC only the display format has changed. With luck the new EACA manuals will make these purchases unnecessary, but it is useful to know that alternative documentation is available. Of course TRS-80 manuals will not cover features such as the Colour Genie sound and display.

Soft Options

The future of the Colour Genie will be decided by the availability of software for the machine. The UK distributors, Lowe Electronics, have announced that they do not intend to market software for the machine, and this decision could cost them a substantial share of the hobby market. The Colour Genie is a good computer, typical of its class although not outstanding. Colour Genie graphics are inferior to those of the cheaper Spectrum, and the Dragon 32 boasts twice as much memory as the Genie.

Each of those machines also has disadvantages - the inferior keyboard and slow BASIC hamper the Spectrum, while the Dragon lacks lower-case characters. Both rival computers are outclassed by the Genie's sound generator. In practice it is the availability of software that will determine whether or not an informed hobbyist buys the Genie, and in this respect it lags behind all of its competitors.

There are a few encouraging signs for the new Genie. Many machines have been sold to people who used to own Video Genie or TRS-80 systems, and these people are well equiped to translate the vast library of TRS-80 programs onto the new computer. In theory this conversion should be quite simple - certainly a small fraction of the effort needed to write new software - and already converted programs are becoming available.

Thanks

We'd like to thank Marc Leduc for helpful information about the Colour Genie. He is an ex-TRS-80 user who has set out to tackle this problem by forming a National Colour Genie Users Group. He has converted a number of machine-code programs for the Colour machine, including adventures, an assembler and arcade games. If you've already taken the plunge, he can be contacted on 0602-225165.

(Back to parent page)