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

HP-85 Review

HP85001

The answer to a research fellows dream could be the 85, read on to find out why!

By Henry Budgett

After my first tentative mutterings on the HP micro a couple of months ago it became clear that it was not going to be an overnight job to finish the thing off, so at long last, here is the remainder of the story. To briefly recap for those of you who missed the April issue the HP-85 is a personal, desktop microcomputer for professionals in both research and industry.

What, you may ask, is it doing between the pages of a “hobby” magazine? Well, quite apart from general interest – how did he get in here – it does represent the direction that personal computing is moving in.

The Heart of The Matter

We carefully took the lid off the box and… Figure 1 reveals the naked truth about where your money went. What you are paying for, is research and development of a large number of custom designed ICs which perform all the boring tasks usually allotted to a board full of humble TTL. They even decided to make their own eight-bit CPU, a decision that some people seem unhappy about. The overall result of this little piece of high tech is a professional unit, designed to last a lifetime and be very reliable.

HP85002

Figure 1. The CPU board laid bare!

For those of you with sharp eyes the lack of solder masking on the board is due to the fact that this is a demo model, HP even warned us about the possibility of damp causing memory problems! Never fear, your shop bought model will be masked and you won’t need to keep it warm at night.

Documentation

One word will suffice, superb. I detect a note of suspicion but you really can’t find fault with the supplied material. Every facet of operation of the machine is covered in copious detail and the sections on programming are thorough to a fault. Software security is obviously not a worry to HP as they list all the programs in their Standard Pac along with other details, saving you the trouble of folding up all that printout. Presumably they thought that any dedicated person could break down the security codes and saved you the problem. Whilst on the subject of programs it is worth noting that many of the answers to set problems are well worth saving.

Purists will say, and several have already, that no details of machine code are given. Although this is quite correct it hardly matters. At the moment I understand that some details of the assembly language are to be published in the HP newsletter for users, and that they are working on a variety of ROM Pacs. Since the ROM Pacs contain machine code and they are being supplied by HP a lot of effort can be saved.

Of Numbers and Things

Many of you will have read of such things as Tiny BASIC and Integer BASIC and understand that they denote the number handling capabilities of the language. You could say the HP has a Fuller-than-most Scientific BASIC! This very impressive hunk of language sits somewhere within the top 24K and does quite a lot that others cannot do. The number handling capability is a variable in that you can specify one of three ranges. These are INTEGER which gives you -99999 to +99999, SHORT which offers -9.9999 10^-99 to 9.9999 10^99 or the default option of REAL which offers a massive -9.99999999999 10^-499 to 9.99999999999 10^499. It makes good sense to specify those variables which only need to be of INTEGER and SHORT values as this saves an appreciable amount of memory. See Table 1.

All the usual mathematical functions are available with this version of BASIC, as are quite a few that you may not be so familiar with. A summary of the predefined functions is in Table 2.

Filing Facts

The advantages of the HP cartridge system over the usual cassette are both many and varied. The system, as I mentioned in the earlier report, uses a similar storage format to that of a soft sectored floppy disc. This results in both faster and more flexible access to the stored information. On machines such as the PET which use cassette, the main bulk of time is spent searching the tape to find the correct header. On the HP tape there is a directory, called CAT, and the program is first located in this – which gives its position on the tape – and the machine can then spool off to this absolute location, much quicker.

When you wish to save a program you merely have to hit the key labelled STORE and then type the name of your file in quotes, “FRED”. The system then checks to see if you are allowing write actions to the tape – there is a hardware tab that can be set – and that’s all. Recall of a program is the reverse using the LOAD key, except that there is no read protection. (See Fig.2 for key layout).

HP85003

Figure 2. A key for every job and every job has a key

All the usual PRINT# and READ# commands are available for data files. The operating system allows up to ten data files to be set up and used simultaneously during a program run. This unusual offering is performed by using buffers that only write to the tape when they are full.

Two methods of securing data are available. The first is the hardware tab that I mentioned a little earlier; the second is a set of commands that give up to four levels of protection on both program and data files. Mechanical details of the tape system are given in Table 3 and security levels are shown in Table 4.

The most powerful of all the commands associated with the tape system must be CHAIN which allows one program to load and execute other programs, and if properly set up you can actually share or exchange variables between these programs.

HP85004

Pretty Printing

Both DISP and PRINT output statements can be made to conform to a predetermined format by using an IMAGE statement. Table 5 reveals the symbols that can be used but suffice to say that the range and flexibility is superb. For an actual example of their use in a program, the Multiplication example in the April issue used a formatted output on both screen and printer. Whilst on the subject it should be noted that if you can’t remember to change your usual PRINTS to DISPs when loading a program in you can swop the roles in the machine by saying CRT IS 2 @ PRINTER IS 1. This is actually executable as a BASIC command so you can swop around within the running of your program. If you wanted to have everything printed out, a diagnostic run for example, you can simply say PRINT ALL, and it does!

Diagnostics

Although functions such as STEP are provided on the keyboard, along with PAUSE and CONT, the HP also offers three TRACE functions. These can be programmed in to work on a certain section of code or executed from the keyboard to operate on the whole program, all information is printed. Between them they allow you to follow variables or program lines and really do make debugging a doddle.

Also worthy of note within this section on diagnostics is that the HP has a built-in test sequence initiated by keying TEST, which checks out all internals and prints out the character set with underlining. Why with underlining? Simple, the underline character occupies the top bit so this tests all the bits and not just the lower seven of the printer.

Graphically Speaking

They say that a picture can be worth a thousand words and if that’s true then the 85 must rate as quite an author. The power unleashed by just sixteen commands, see Table 6, is quite amazing. The flexibility is based around the system capability to address any of the available 49,152 dots on the screen which are arranged on a 256 by 192 grid. To compensate for the non-square nature of the screen it is possible to scale the X and Y axes independently. The maximum scale allowed is 100 by 100 but if you try to draw circles in the centre without correcting for the shape of the screen you tend to get ovals! The scaling factor is X-4/3 Y and it is not the nuisance that it might at first appear.

Having grasped the concepts of scaling things the manual leads you on into a vast array of powerful commands that take a little bit of time to come to terms with. For example you can draw a scale on your axes with ‘tics’ at determined intervals with a single command such as XAXIS0,1. This gives the X,Y intercept a value of (0) on the X scale and puts tics at every interval on the predefined scale.

After scales and axes you begin to get a hankering to actually draw something, and here you find that the machine acts rather like a pen and paper. What you do is to specify the colour of your ink and that of the paper. This is done by PEN and PENUP commands. To move the PEN around you can DRAWx,y or PLOTx,y or MOVEx,y where the x and y are real co-ordinates on your screen. By adding a prefix of I to the MOVE and DRAW commands you specify incremental operation rather than absolute. Labelling your graphs is performed by the rather unusual command, LABEL and, as if that wasn’t obvious enough, the orientation of the aforesaid label is controlled by LDIRn – where n is the ‘angle’ of the label.

By this stage of the game you have produced a screen full of straight lines and labels but what about curves? Well you can’t draw curves as curves, you have to draw lots of little straight lines that make up a curve. If you make the lines short enough the curves are very good indeed. All the above graphic capability is easily mastered and is quite sufficient for most purposes, what comes next is not quite so easy.

Shape Definition

It is possible to define a shape by character codes and plot these using strings. What you have to do is to draw the shape of your required ‘object’ on graph paper, the object now reduces to patterns of dots – each segment being one dot. In summary, the graphics are extremely powerful and flexible, you don’t have access to pretty little spaceships and men but you do have the facility to produce them if you want, you can store them as data files even!

Now, divide up the result into bytes and convert the binary value to decimal. All, all?, you have to do is to output the resulting string of characters using BPLOT. Figure 3 shows a triangle reduced to a string and the command BPLOT T$,1 where T$ is the string we are using. At this point I graciously admitted defeat and went onto something else. I’m quite sure that practice and careful study will make this function ‘child’s play’ but trying to implement the functions in a crowded office is not the best idea.

Figure003

Figure 3. Coding up for a character plot.

Expansion

This section of any computer review is supposed to list a vast selection of esoteric goodies that you can hang on to the machine, not so this time. All that is currently available is a 16K RAM expansion and a ROM drawer. There will be floppy discs and a range of ‘Capricorn to others’ bus converters to allow connection of IEEE devices etc. It is unlikely that any special equipment will be developed as the expected use fits in with all the existing HP laboratory equipment – including atomic clocks – and most of the software merely needs to be converted from the minis.

HP85005

Neat uncluttered rear panel, with the Capricorn slots at the right.

Conclusions

Having crept out of a research laboratory not so very long ago I can appreciate this as one of the machines that I would want on my bench (next to the PDP 8, but that’s another story). My only regret is that it is expensive, a lower price would have meant volume sales and perhaps they are not geared up for that yet, we can only hope for a reduction in the next year.

The system is a true personal computer, not a machine for playing with, and as such represents the first of a new breed that will emerge over the next few years – serious machines for serious purposes. If HP ever feel generous I would love to have it back, permanently!

Acknowledgements

We are indebted to Hewlett Packard of King Street Lane, Winnersh, Wokingham, Berkshire for the loan of the machine for a very generous period.

Table 1. How the HP uses variables and arrays, and what they cost in terms of memory.
Precision Accuracy Range Maximum Array Size (standard memory, no program)
REAL 12 Digits ±9.99999999999E±499 1800
SHORT 5 Digits ±9.9999E±99 3600
INTEGER 5 Digits -99999 through 99999 4800
Simple Variables Bytes of Memory
Full precision 10 bytes
Short precision 6 bytes
Integer 5 bytes
String 8 bytes + 1 byte per character
Array variables  
Full precision 8 bytes + 8 bytes per element
Short precision 8 bytes + 4 bytes per element
Integer 8 bytes + 3 bytes per element
Table 2. Pre-defined Basic functions that leave a little to be desired
ABS(X) Absolute value of X
ACS(X) Arccosine of X, in 1st or 2nd quadrant
ASN(X) Arcsine of X, in 1st or 4th quadrant
ATN(X) Arctangent of X, in 1st or 4th quadrant
ATN2(Y,X) Arctangent of Y/X, in proper quadrant
CEIL(X) Smallest integer >=X
CHR$(X) Character whose decimal character code is X.0<=X<=255
COS(X) Cosine of X
COT(X) Cotangent of X
SCS(X) Cosecant of X
DATE Julian date in format yydd (assumes system timer has been properly set)
DTR(X) Degree to radian conversion
EPS Smallest machine number (1E-499)
ERRL Line number of latest error
ERRN Number of latest error
EXP(X) e^x
FLOOR(X) Same as INT(X) (relates to CEIL)
FP(X) Fractional part of X
INF Largest machine number (9.99999999999E499)
INT(X) Largest integer <=X
IP(X) Integer part ox X
LEN(S$) Length of string S$
LGT(X) Log to base 10 of X, X>0
LOG(X) Natural logarithm, X>0
MAX(X,Y) If X>Y then X, else Y
MIN(X,Y) If X
NUM(S$) Decimal character code of first character of S$
PI 3.14159265359
POS(S1$, S2$) Searches string S1$ for the first occurrence of string S2$. Returns starting index if found, otherwise returns 0
RMD(X,Y) Remainder of X/Y: X-Y * IP(X/Y)
RND Next number, X, in sequence of pseudo-random numbers, 0<=X<1
RTD(X) Radian to degree conversion
SEC(X0 Secant of X
SGN(X) The sign of X: -1 if X<0, 0 if X=0 and +1 if X>0
SQR(X) Positive square root of X
TAB(N) Skips to specified column
TAN(X) Tangent of X
TIME Time in seconds since midnight (assumed system timer has been set properly) or since power on.
UPC$(S$) Converts all lower-case alphabetic characters in S$ to upper-case
VAL(S$) Returns the numeric equivalent of the string S$
VAL$(X) String equivalent of X
Table 3. Mechanical details about the cartridge system
Parameter Value
Rewind time 29 seconds
Initialisation time 15 seconds
Search speed 60 inches per second
Read/write speed 10 inches per second
Tape length 43 metres (140 feet)
Number of tracks 2 independent tracks
Typical tape capacity 780 program records (195K bytes) 850 data records (210K bytes)
Tape directory capacity 42 files (directory entries)
Typical access rate (search speed) 7,800 bytes/second
Typical transfer rate 650 bytes/second
Typical tape life (continuous use) 50 to 100 hours
Typical error rate <1 in 10^8 (that’s less than one in every 100 million!)
Table 4. Data security types and what they do
Type Secured against
0 LIST, PLIST and edit
1 STORE (duplication), LIST, PLIST and edit
2 STORE (overwriting), PRINT#, STORE BIN
3 CAT (blank name directory)
Table 5. Format characters for “pretty printing”
n(…) Parentheses allow field replication n times
A String character
Z Digit position or leading zero
* Digit position or leading asterisk (*)
D Digit position or leading blank
. Decimal point (.)
S Sign (+ or -)
M Minus sign or blank
E Exponent in form ESDDD
K Use default format
X Blanks
R Comma radix (,)
C Comma (,)
P Period (.)
/ Carriage return/line feed
“” Literal
Table 6. The graphics commands
ALPHA Sets the display to alphanumeric code
BPLOT

character string, number of characters per line

Plots a group of dots on the graphics display as specified by the character string.
DRAW x-coordinate, y-coordinate Draws a line from the current pen position on the graphics screen to the x,y coordinate position specified.
GCLEAR(y) Clears the graphics screen from the specified y value to the bottom of the screen, or the entire screen if no parameter is specified, in current pen colour.
GRAPH Sets the display to graphics mode.
I DRAW x-increment, y-increment Incremental draw. Draws a line from the current pen position to the position determined by incrementing the current pen coordinates by the specified increment values.
IMOVE x-increment, y-increment Incremental move. Moves the pen from the current pen position to the position determined by incrementing the current pen coordinates by the specified increment values.
LABEL character string Writes a character string on the graphics display at the current pen position.
LDIR numeric expression Label direction. Specifies the direction for labels in graphics mode. Horizontal labels are specified by values less than 45. Vertical labels are specified by values greater than or equal to 45. Default label direction is horizontal.
MOVE x-coordinate, y-coordinate Moves the pen to the specified coordinate position without drawing a line on the graphics display.
PEN numeric expression Specifies whether the plotting is done with white dots or black dots. When the expression is positive, a white dot is specified; when it is negative, a black dot is specified.
PENUP Lifts the pen; inhibits line generation.
PLOT x-coordinate, y-coordinate Moves the pen from the current point to the specified location, drops the pen, and makes a dot. If the pen was down, draws a line from current point to specified point
SCALE x min, x max, y min, y max Scales the graphics display in user-defined units. Default values are 0,100, 0, 100.
XAXIS y-intercept [, tic spacing [, x min, x max]] Draws a horizontal axis on the graphics display. Tic marks and initial and final x values can be specified. Positive tic parameters specify the left side of the screen as a reference, negative tics specify the right side as a reference.
YAXIS x-intercept [, tic spacing [, y min, y max]] Draws a vertical axis on the graphics display. Tic marks and initial and final y values can be specified. Positive tic parameters specify the bottom of the screen as a reference, negative tics specify the top of the screen as a reference.

First published in Computing Today magazine, June 1980

Enter the Dragon

Dragon_32crop

British designed and built, this 6809-based system could represent the first ‘off-the-peg’ home computer. We venture inside for a close look.

By Henry Budgett

Ove the last 18 months, the computer market has seen a considerable number of microcomputer systems which all seem to offer the same basic specification. In general, these are based around the well-proven Z80 processor and feature the maximum allowance of RAM (64K) together with twin discs, the CP/M Disc Operating System and a variety of software packages and language options.

The main reason for this proliferation has been that it is, in general, cheaper to fully equip a system of this type than to offer memory expansion and hardware add-ons as extras. Memory and disc drive prices have fallen as a result of the increased demand and this can be passed on to the bulk buyers allowing them to build comprehensive systems at the same price as the basic unit would have cost some 12 months ago.

Now, the main reason for the similarity is that there are only a finite number of ways in which you can assemble a certain family of chips: CPU, RAM, I/O and peripheral devices. It took about two years before the manufacturers started to capitalise on this and reduce their design costs significantly. It is therefore, interesting to note that one new manufacturer has followed the example of his predecessors and produced a 6809-based system by following the same route.

A new start

The new computer is called the Dragon 32 and hails from South Wales, courtesy of Dragon Data who are building the system for Mettoy – the well-known toy makers. On the surface it simply appears to be a 6809-based system with colour graphics and 32K of user memory. Added features are the ability to plug in ROM-based cartridges, to attach joysticks and add a limited number of peripherals through the various ports. If, at this point, you are beginning to feel a slight sense of deja vu then take a brief bow. The system is aimed directly at the home market and, on price at least, must be taken as a competitor to the Texas Instruments TI-99/4A, the Atari 400 and the BBC Model A systems.

I mentioned earlier that the system is designed from the standard range of support devices for the 6809 CPU. Well, there are only two other 6809-based systems currently on the market: the Fujitsu triple processor system which can be discounted as it is very much more powerful; and the Tandy Color Computer which we reviewed in April of this year. The similarity between the Tandy and the Dragon 32 is almost uncanny and the reason is not simply because the same chips have been used.

I don’t know how Tandy produced the design for the Color Computer but the Dragon 32 was designed with the aid of the PAT Centre, a high technology design group who have been responsible for such devices as Moore and Wright’s digital micrometer. As far as I can unravel the story, the basic specification was taken to them with the brief to produce a result from off-the-peg components. Time being of the essence, they appear to have opted for the standard chip set approach and then equipped the resulting hardware with the only commercially available 6809-coded version of BASIC, Microsoft Extended Colour BASIC.

The inside story

The Dragon 32 arrives in a single box complete with power supply, TV lead, manual and quick reference chart. (Don’t waste time looking for the cassette lead, it’s an extra!) The first thing that strikes you about the system is that it has a ‘proper’ keyboard although the quality of the particular unit chosen is a little dubious.

The system is enclosed in a cream plastic box which is considerably larger than one might have expected. Quite why they made it this big is beyond me, it could have been at least an inch thinner and nearly the same reduction could have been made in width too. The power supply’s transformer is external and there is adequate ventilation, so overheating is unlikely to be the reason. Still, it’s a nice chunky case and styled so that it looks narrower than it really is because all the sockets are recessed at the side.

Inside the box (no mention, appears in any of the documentation to dissuade you from undoing the screws but I don’t recommend it unless you’re certain of what you’re doing) the layout is almost clinically neat. Excluding the keyboard assembly there are two PCBs, one holding the logic and the other, the regulator circuitry and the modulator. The latter is larger than usually found as it allows the sound channel to be heard through the TV speaker. Connection to the TV is made by a conventional phono to UHF lead which uses considerably better quality cable than most, potentially removing some of the interference caused by stray mains cables and the like. If you don’t fancy suffering the degraded quality pictures from a TV, you can take a monitor feed directly from the RGB drive circuitry. Although no connection details are given in the manual, it would appear to be a straight RGB plus sync output.

Dragon_32_002

The main PCB shows the small number of ICs used. The socket at the right-hand side is the cartridge port.

The main PCB is equipped with all the expected devices and even uses the twin video processing chips found in the Tandy, the SAM and VDG which we covered in detail when we reviewed the Color Computer. The RAM is provided in the form of eight Hitachi 4864 chips and there is a total of 16K of ROM provided by two 2716s. The 6809, the two ROMs and the eight RAMs are all socketed, none of the other devices are. One interesting point is the provision of a number of ‘patches’ on the layout, these are in the vicinity of the RAM chips and it is possible that an alternative memory capacity system could be produced using pin compatible devices. It would, at least in theory, be possible to use the new 64K by 1 RAMs to produce a 64K Dragon but whether this is something planned I cannot say.

Turn on

Readers who are familiar with the TRS-80 range of systems might be hoping that the format of the text screen found on the Dragon 32 would be an improvement. No such luck, it’s still 16 lines of 32 characters in text mode with no lower case letters, reversed upper case being used instead. Other screen formats include a low resolution plotting capability of 32 by 64 pixels and a high resolution mode of 192 by 256 points. A total of 16 predefined graphics shapes are available, all the variations of a two by two matrix, but these are supplied in eight colour options as some form of compensation. The same eight colours can be defined as background colours for the text screen area, although in text mode only green and black are available as the foreground colour depending on the background selected. The displayed colour picture is of reasonable quality but nothing exceptional. It has been tested on a Philips and an Hitachi portable but the best picture was obtained on my own 22″ Ferguson, the TX chassis series proving itself once again.

Slight to noticeable colour fringing occurs and there is some sound pickup too, but the main objection is that the primary colours are not clean; red, blue and green should be red, blue and green and not ‘off’ shades.

The initial screen display simply announces the machine and its version of BASIC. What it does not tell you is how much memory you have available. Typing PRINT MEM returns a value of around 24K which might seem a little surprising since you just bought a 32K computer! The missing 8K of RAM hasn’t really vanished, it is being used for the system variables and to create the high resolution graphics areas. While this means less space for you to program in, it does mean that when you come to use the high resolution graphics your memory doesn’t shrink dramatically like some other systems we could mention!

Screen editing is through a standard Microsoft line editor system which is initiated by the command EDIT<linenumber>. All the usual commands operate and you either like or hate it depending on what you’re used to. Bulk line deletion and program renumbering are available under BASIC although automatic line numbering is not. The usual trace functions, TRON and TROFF (Walt Disney take note), are included.

For those into data handling the cassette interface can be used for data files through BASIC although the reliability of the system is not particularly good. The interface seems to be slightly level sensitive but my main criticism would have to be the lack of decent messages, single letters displayed on the screen don’t count as messages in my book! The main stumbling point over the cassette interface is the lack of any supplied lead and, as the manual fails to give connection details for the frustrated DIY-er, Fig. 1 should be welcome. There are only two interesting commands on the cassette side: SKIPF which allows you to skip over the named file in order to position the tape for recording or loading files which are not at the beginning; and MOTOR which allows the cassette motor to be controlled by the keyboard and saves having to keep unplugging the remote control lead.

Dragon_32_006

Fig. 1. The connections to the cassette recorder socket for those wishing to make their own leads.

Possibly the only remaining function, other than the graphics which I’ll cover in a moment, is the ability to halt a program at any point during execution by pressing Shift @. Pressing any other key, excluding Break (although this is not made clear in the manual) restarts the program so you can take a break in the middle of that dogfight to answer the phone or perform other necessary functions.

Basic graphics

The Microsoft Extended Colour BASIC implemented on the Dragon 32 is as complete an example of microcomputer BASIC for this level of machine as any you’ll find. It supports all the normal BASIC functions, including IF…THEN…ELSE, as well as offering a comprehensive colour graphics command set. Full line drawing with both absolute and relative positioning is available and the single LINE command can be extended to produce rectangles, draw in either foreground or background colour and even fill in a completed box. For filling larger areas of the screen with colour the PAINT command can be used but be warned of leaving holes.

If you’re into things round, then the CIRCLE command will certainly satisfy all your needs. As well as producing simple rings of given colour and radius at any point on the screen, it can be extended to produce ellipses by changing the height/width ratio parameter or arcs rather than complete circles. All these high resolution commands are just the basic set, animation using the multiple pages of graphics memory and shape tables using the ingenious DRAW command can be mastered with a modicum of experiment and practice.

As an added extra dimension to graphics games the BASIC JOYSTK function allows up to two joysticks to be used, complete with ‘fire’ buttons. The values returned by the expression can be related to the x and y positions of either stick and it takes a total of six statements to examine both sticks together with the fire buttons. Now, the BASIC isn’t exactly slow, (Table 1 gives the Benchmark results) but there must be a better way than this to recover the values which then have to be scaled to suit the screen size in current use.

Wherever you find a home computer, which the Dragon 32 unreservedly is, with colour graphics you almost invariably find sound facilities as well. Simple, single tone noises are produced by the SOUND command where two parameters, frequency and duration, are all that is needed to produce the desired effect through the TV speaker. More complex sound sequences are best constructed under the PLAY function. Here, in a manner similar to that used by the Sharp systems, a complete note passage is programmed into a string which is made up of the note name, octave, duration and volume. Pauses and changes in tempo can also be programmed and as the notation used is similar to ‘real’ music, it is remarkably easy to use. My personal favourite in the sound department is AUDIO OFF which disables the audio output completely, but then again…

Ins and outs

The interfacing options of the Dragon 32 appear somewhat limited. The system provides for the basic requirements of a cassette and TV or RGB monitor together with the option joysticks. The only remaining options are the parallel printer port, Centronics compatible and fully supported under BASIC, and the ROM cartridge slot. It is interesting to note that the Tandy Color Computer chose to offer a serial port. A quick count of the available peripheral devices inside the Dragon 32 leads one to wonder just how they managed to create this extra parallel port as there simply aren’t enough bits available. The only possible explanation of this is that the printer shares the same PIA as the joysticks; it uses the port as an output whereas the joysticks use it as an input. All the rest is fairly conventional in terms of operation and design but it should be noted that the internal TIMER function will be upset by the use of the cassette interface as it is interrupt driven and not a hardware device.

Dragon_32_003

The left-hand side sockets include UHF, two joystick ports and a cassette connector plus the
printer port. The black button is the Reset.

Dragon_32_004

The rear panel features the power inlet, power switch and monitor output.

Further expansion does not, at first glance, seem possible until one remembers the ROM pack slot. All the indications are that most of the address, data and control bus lines should be available through here for expansion. Quite whether the range of Program Paks offered by Tandy will operate in this slot is open to question. The indications are that they should but without complete information on the pin connections of the Dragon 32, I’d rather not suggest that you plug one in to try! If the connectors are the same, expansion to include discs and make use of the 6809’s own DOS, FLEX, becomes a strong possibility as many US companies are offering these facilities for the Tandy Color Computer. Tandy themselves offer a range of add-ons but these ignore both FLEX and the S50 bus structure which is so suited to the 6809 CPU.

Currently, the only options available from Dragon Data/Mettoy are the cassette lead, a small choice of ROM packs and a joystick. I’ve played with their version of a Pacman-type game and while the game was OK, the control offered by the joystick left an awful lot to be desired. Whether the design will be improved or not I do not know but a strong suggestion is to find another source if the joystick you’re offered simply flops from side to side like our review sample. For those into building their own joysticks or modifying commercial offerings, the connections shown in Fig. 2 should be of some assistance. You can also use this information to connect other analogue devices to the Dragon 32 such as temperature sensors and the like.

Dragon_32_005

Fig 2. How the joysticks are assembled together with the necessary connection information.

Words of wisdom

Two pieces of documentation accompanied our review machine: a manual and a quick reference guide to the BASIC. The manual is written by Richard Wadman with the assistance of University College, Swansea, and, as manuals go, is not too bad. There are a number of small errors which may well have been cleared up by the time the machine hits the streets in a big way, but the main feeling is one of missing information. There are no details of any of the hardware, interface connections or add-ons. Nor are there any facts about the monitor program and how to get 6809-code into the system. There are brief references to the fact that it can be done, you can certainly save machine code programs on tape, but as to how you create them…

On the whole, it will satisfy the beginner as it is all clearly laid out and important pages have green edges to highlight their contents. The quick reference guide is a welcome addition as it enables those familiar with another version of BASIC to start trying out the extra commands available without having to rummage through acres of text.

One suggestion I will make though is that if you are really interested in pursuing the BASIC on the Dragon 32, you pay a visit to your local Tandy shop. There you can buy for the princely sum of £3.95 an excellent book called Going Ahead With Extended Color BASIC which contains more detail on Microsoft, provides colour pictures of many of the example programs in action and, best of all, a memory map and a list of operating system entry points. Now, as far as I and another colleague can discover, all these entry points work on the Dragon 32 so you can start to try out simple machine code calls to recover data from peripherals such as the joysticks, etc. One other book you might like to cast your eyes over while in the Tandy shop is the Color Computer Technical Reference Manual. Now, I will concede that it is not directly related to your Dragon 32 but it does explain the workings of the SAM and VDG devices and should give an overview at least of the internal operations. Another good reason for buying it is that according to my copy at least, while it costs nearly $15 in the States, it only cost me 99p here!

In the end

Just what has the Dragon 32 got to offer over its rivals? Well, if you were looking for a home computer to play games with and maybe try a little programming on, it does have the advantage of a reasonable amount of RAM and an almost decent keyboard. The BASIC is powerful enough for domestic use but if you really want a programming tool then BBC BASIC still stands out ahead, although the Model A offers less memory at the price. As an alternative to the Tandy Color Computer it wins on price alone although it certainly doesn’t look as nice.

As for its other rivals, the Atari and Texas systems, the choice of ready-to-run games and add-ons possibly tends to weigh against the Dragon 32. Another possible source of concern is that Mettoy have never been in the computer market before whereas both the others have a long pedigree but, in reality, there is little that can go wrong in a system like this that cannot be simply and easily fixed.

All these systems are readily available in the High Street, at least the Dragon 32 should be by now, and as is so often the case, it must come down to personal choice. There is certainly nothing wrong with the Dragon 32 and it offers an alternative and British-made solution to the home computer buyer. Whether it will succeed in making an impact on the market will probably depend on the general availability of both it and its extras and the effectiveness of the current advertising campaign.

Benchmark Time
BM1 1.27
BM2 9.14
BM3 17.70
BM4 19.17
BM5 22.16
BM6 31.07
BM7 44.68
BM8 10.82

Table 1. The benchmark timings for the Dragon 32. All are in seconds and timed using the internal clock function. Note that BM8 is taken over 100 loops instead of the usual 1,000

Factsheet for Dragon 32

  • CPU: 6809
  • Clock: 0.89Mhz
  • ROM: 16K
  • RAM: 32K
  • Language: Microsoft Extended Colour Basic
  • Keyboard: 53 key standard layout
  • Display: 16 lines of 32 characters on TV or monitor. Block mapped graphics on 32 by 64 grid. Dot resolution graphics to 192 by 256. 16 block graphics characters. Eight colours plus black.
  • Cassette: 1500 baud with independent motor control.
  • I/O: Two joystick ports. Parallel (Centronics) printer port. ROM cartridge slot.
  • Options: Joystick Unit (£10.00), ROM cartridges (£20.00), Cassette software (£8.00), 5.25” disc drive (NYA), OS9 operating system (NYA).
  • Cost: Dragon 32 (£199.50)
  • Manufacturer: Dragon Data Ltd, Queensway, Swansea Industrial Estate, Swansea, SA5 4EH

First published in Computing Today magazine, November 1982

Commodore’s 64

C64-001

It might look like a VIC-20 but inside the case resides a whole host of extra features plus 64K of memory. Our review team brings you the vital details.

By Henry Budgett and Chris Palmer

In the beginning there was the PET, and it was seen to be good. Then came the 3000, 4000 and 8000 systems and they were better. At last the big C realised the need for a smaller machine for the home market and the VIC-20 was introduced, but still the older machines flourished despite their outdated architecture and their lack of advanced features. So, the big C decreed that a whole new range of machines should be created to re-establish the company’s dominance of the market.

The first of these new systems to arrive is the Commodore 64 which received its press debut at the Hanover Messe earlier this year. Admittedly, the system was then still in the pre-production stage but it certainly looked interesting and appeared to offer a new slant on the way in which Commodore designed its systems. Looking very similar to the VIC-20, indeed the only distinguishing differences are that the 64 has two control ports on the right-hand side and a much smaller cartridge slot at the rear, it is based around the new family of devices produced by MOS Technology, the corporation who brought you Chuck Peddle (and the 6502).

Design philosophy

C64-002

The internal layout of the 64 reveals the use of much new chippery. The RAM is at the bottom left, all 64K of it! Note also the use of shielding around the HF sections.

As its name suggests, the Commodore 64 is equipped with 64K of RAM based on Mitsubishi 16-pin 64K by 1 device and is essentially a ‘soft’ machine. I say essentially because the BASIC is loaded from ROM by default thus making it look like a conventional ROM-based system. The processor is the new 6510 device and that is by no means the end of the new silicon inside. To control the video there is a new variation of the VIC chip that produces and controls programmable objects known as MOBs (sprites to the rest of us) and the new, all-singing, all-dancing SID chip which produces sound effects, music and the now obligatory beeps and whistles. Apart from these major devices there is a regular sprinkling of I/O devices and just a small quantity of ordinary logic.

The whole design is based on the new generation chips and seems to make effective use of the facilities they offer – the only question being whether people actually want those facilities in the first place! Personally, we have found it rather difficult to place the machine in a given area of the market. It is equipped with the capability to produce fantastic games and display graphics, it will handle all the domestic add-ons like a cassette recorder, small printer and joysticks, and yet it also offers the possibility of being used for serious purposes with its serial port, excellent keyboard and capability of driving a monitor as well as a TV. If a company was only producing one system which had appeal across a wide spectrum of the market, then one would say that this was perfectly acceptable and, indeed, a sensible approach to take. However, Commodore are also launching the 500 series, the 700 series, the VIC-10, the VIC-30 and, according to recent reports, there appears to be at least two more systems being currently examined for their market potential. Now, the dividing line between the VIC-30, the Commodore 64 and the 500 series is a remarkably thin one in our opinion and perhaps only time will tell if they’ve got their strategy right.

Pandora’s box

At this point it is only fair to point out that the Commodore 64 we reviewed was an American model. Normally, as you are probably well aware, we would not look at a non-UK version of a system but, apart from the power supply running at 110 volts and the TV picture appearing in NTSC format, we were assured that the guts of the system were identical to UK models. Certainly, when we opened up the system there was no indication of any board modifications or lashed up ROMs. It was a clean production unit with all the patches configured for the US.

While this meant that we were able to receive a Commodore 64 earlier than we had expected, which was good news, it meant that we had to obtain an American standard power unit and TV. While the former proved no problem at all, the latter complication was only solved by the helpful attentions of Hitachi who kindly provided one of their new multi-system TV/monitors for the duration. Sadly, however, the picture quality still proved insufficient to produce screen photographs of the graphics in action – a treat for which you will have to be patient!

C64-003

The keyboard layout is essentially the same as that on the VIC-20. Graphics legends are clearly marked on the key fronts.

C64-004

Rear pane socketry from left to right comprises cartridge port, channel switch, UHF output, monitor and serial port sockets, cassette connector and user port.

The VIC-style case is coloured a light chocolate brown for the Commodore 64 and is well constructed. The keyboard is excellent and has a nice sculptured feel. The angle at which it is set is possibly a little too steep but that’s really something that only long-term use will reveal. None of the sockets on the rear panel were labelled as to their function, a serious oversight as they have managed to label the side connectors quite adequately. The rear panel connectors comprise the cassette, user, serial and expansion ports together with the monitor socket and the TV phono socket. Also recessed neatly into the panel is a somewhat mysterious switch which changes the UHF channel output to something other than 36; what channel it actually is the manual does not bother to say!

Inside the case, as we have already mentioned, the construction is excellent, the PCB is well laid out and all the nasty, high frequency modulating bits are well wrapped up in metal boxes. The case is well ventilated but none of the regulator devices are mounted on heatsinks. With the actual transformer being elsewhere, the case size can be kept down along with much of the heating problems. All the major ICs, with the exception of the RAMs, are socketed for easy replacement – should the need arise.

Along with the keyboard/CPU unit comes the power pack, a heavy duty phono-to-phono lead and an aerial tapping box, although it is likely that the latter two will be replaced by a UK standard device when you open the box here! There is no supplied cassette lead as the 64 is designed to operate with the usual CBM/VIC type cassette unit which has its own integral lead and power cable. The manual which came with the American review sample will, as far as we can tell, be the one supplied in the UK and more will be said about this in a later section.

Language talk

The Commodore 64 is equipped, to all intents, with an identical version of BASIC to its predecessors, V2 BASIC from the VIC-20 to be precise. Despite the fact that this is a third generation system there are no structured programming functions such as IF…THEN…ELSE and, indeed, the language is barely different to that found on the oldest of PETs. Now, while this gives a remarkable flexibility to the system in that, with a minimum of effort, software can be converted to the 64 it does make one wonder about the lack of progress.

The Commodore 64 screen is based on the 25 lines of 40 characters format which is so familiar to users of microcomputer systems, but the address map has been moved and there is a second area of screen memory set aside for the colour information. The position map lies between 1024 and 2023 and the colour map lies between 55296 and 56295. The choice of colours has been expanded to 16 (including black and white) and the colour value of any location on the screen can be set by adjusting the corresponding location in the colour map.

Now, as you may have gathered from the introduction to this piece, the Commodore 64 is equipped with 64K of RAM and yet, when you turn  on the system, you only appear to have 38911 bytes left! Why, you may well ask. The reason is that the system is designed to be capable of running under languages other than BASIC; COMAL, LOGO, FORTH, UCSD Pascal and PILOT being likely possibilities. However, rather than taking the Sharp approach where the language has to be loaded into an empty system from disc or tape, Commodore have opted for the ROM-based approach. Inside the Commodore 64 is a BASIC ROM which, provided it is given no other instructions, inserts itself into the memory map at power up. There is actually a noticeable delay at power on while the operating system tests the complete complement of RAM.

So, as it comes, the Commodore 64 is equipped with a perfectly ordinary version of BASIC which offers no extra facilities, doesn’t support Hi-Res graphics or sound (despite the fact that both facilities are built-in to the system), and appears to be no better than the language offered on the original 2001 series PET. Surely this is not really as it seems? Well, if you have been used to a VIC-20, you will already be aware of the fact that the additions to BASIC to give Hi-Res graphics come in an expansion cartridge so it is quite likely that you will accept these constraints. If, however, you are used to something like a BBC Micro, Dragon 32, Tandy Color Computer or even a ZX Spectrum then these restrictions may well annoy you considerably.

Sounding off

Equipping home computers with sophisticated sound generating facilities is no new thing. Keyboard bleepers have been billed as music facilities for almost as long as we’ve been writing reviews, but on the Commodore 64 the provision of the SID chip gives a whole new dimension to the art. The controls for the SID device are many and varied (they would probably rate an entire manual on their own) but the first thing that you notice is that all the operations are handled by memory locations rather than as reserved BASIC words. If the manual tells you about something called the Waveform Register, and it’s something that you are going to be using quite a lot, why on earth didn’t they create a system variable called WAVEFORM? But such ideas are too fancy it seems, us mere mortals have to remember that the blasted thing is location 54276 and POKE to it. One register you might live with, but there are 28 registers controlling three voices and they all require thinking about as they are often shared – you quickly learn all about masking and bit manipulation techniques on this machine!

As to the sound that the Commodore 64 actually produces, well, it’s versatile and really quite pleasant. You can take the output directly to the TV set as the modulator is a sound plus vision type, or you can take a direct audio feed from the monitor socket to drive the monitor’s amplifier or even your Hi-Fi. It would take more, much more, than the pages available in this magazine to cover the possible ways in which you can manipulate the sounds which the SID can generate but, surprisingly, the actual characteristics of the SID are not too different to that mainstay of computer music devotees – the GIAY-9-8910! Users of the BBC Micro who have successfully acquired their new manuals and mastered the SOUND and ENVELOPE commands can bask in the knowledge that their system is still the most sophisticated.

Colour crazy

A logical extension to any system offering Hi-Res graphics capability in colour is to provide some means of manipulating objects once they have been created. The first popular system to offer this sort of facility was the Apple II which supported shape tables but was not exactly easy to use. The first system to offer usable facilities along these lines was the Atari 400/800 system and the defined pictures were christened Players, sprites to the rest of us. The theory is that you create a picture using the smallest pixels available, generally the actual character dots, which is then stored. This image can now be retrieved and positioned anywhere on the display, moved, and made bigger or smaller as you require. Because you can often create several of these sprites, rules have to be established as to their priority – which ones pass in front of others or vice versa.

The Commodore 64’s VIC chip offers up to eight simultaneous sprites (in BASIC) each of which is based on a 24 wide by 21 deep block. In sprite mode, the screen is transformed into a Hi-Res format of 512 dots by 256 dots and the sprites can be positioned at any point, even over the border if you wish to make them appear and then disappear. Each sprite is programmed in the form of a DATA statement whose values are then loaded into an area of memory reserved for user defined characters. The control of the size, shape and priority of each sprite is handled by no less than 46 special registers which have to be PEEKed and POKEd in BASIC. Sadly, as with the music facilities, there is no special set of reserved words to control these registers, it all has to be done the hard way but, doubtless, an optional cartridge will appear soon to make the use of the sprites and the Hi-Res screen area a simpler matter. For anyone who has experienced the heartache of programming the sprite facility on the Atari, the Commodore 64 system will seem a whole lot easier (for a start it can be done at a decent speed in BASIC), but is far from ideal. The sprite register map is provided as an Appendix to the manual and doubtless some enterprising individual will soon produce a wipe clean plastic version together with a book of sprite planner sheets – it will probably sell like hot cakes!

I have referred to the programmable graphics blocks throughout as sprites because that name is at least familiar. It is also the word used in the manual which accompanied the review Commodore 64 system but the indications are that in the UK, the equally correct word will be MOB or Movable Object Block – it appears that some enterprising person at Commodore has registered both sprite and MOB as something which only appears on his make of computer!

C64-005

The keyboard and the power light mounted on the top half of the case are easily unplugged allowing ready access to the interior. The two games ports and the power input can be seen at the rear right.

Words of caution

In the very early days of Commodore, a pair of employees in the UK were so horrified by the quality of the manual provided by the American company that they completely re-wrote it for the UK market. What they produced certainly wouldn’t have won prizes by today’s standards of documentation but it was a definite improvement. When the VIC-20 appeared a number of reviewers criticised its manual as being insufficient and, considering the vast number of extra facilities provided on the Commodore 64, it comes as a bit of a shock to find a mere 165 pages of information being called a manual.

There is to be an extended manual, we hope, and the sooner it appears the better, as the supplied User’s Guide is, to put not too fine a point on it, awful! While it covers the basic points of the system and outlines the commands available and the facilities provided, it introduces ideas that a first time user is unlikely to grasp. If you are already familiar with micros, whether Commodore’s or not, it is almost equally annoying in that it fails to provide comprehensive information about monitor addresses, memory areas and the like. I’m sure that it is OK for the American market where systems like this are generally treated as super ‘games/toys’ (at least the VIC-20 was) but in the UK, we tend to take a much deeper interest in the actual workings of the hardware. So, an urgent need for a better and more comprehensive manual will probably be felt. Whether Commodore manage to produce it in time or it is done independently we’ll have to wait and see.

In the end

As a machine to summarise, the Commodore 64 is not the easiest of beasts. Quite how Commodore are going to market it is not yet obvious. Will it be treated as a PET replacement (the 500 series is probably a better bet for that) or will it try to fill a gap between the VIC-20 and the existing 4000 series? In terms of price it must be seen as a direct competitor to the BBC Model A and yet its BASIC and overall facilities are not as comprehensive. It does, however, have the backing of the entire existing Commodore range: discs, printers, add-ons and most importantly of all, software.

With the possibility of other languages, the potential for networking through the new Keynet exists and with its nice compact styling, I have a feeling that it could be used as a classroom terminal or, possibly, as a general purpose intelligent terminal. The logical choice of host computers would be the new 700 series systems, specifically the 710 and 720 but, as yet, there has been no indication from Commodore as to this possibility.

The Comodore 64 will undoubtedly sell, the strength of the Commodore name alone will probably guarantee this, but the market may well have to be created for the system rather than the other way around.

Factsheet

  • Machine: Commodore 64
  • CPU: 6510
  • Clock:
  • ROM: 26K
  • RAM: 64K
  • Language: Basic V2
  • Keyboard: 61 key full ASCII. Four programmable function keys. Cursor controls.
  • Display: 25 lines of 40 characters on TV or monitor. 64 bloc graphics characters. Up to eight sprites. Up to 16 colours available.
  • Cassette: CBM C2N cassette unit required (£44.95)
  • I/O: User port, serial port, bus expansion. Twin joystick ports.
  • Options: All VIC peripherals. Alternative languages. Second processor. KEYNET networking unit. Graphics/utility cartridges.
  • Costs: Commodore 64 – £299.00 + VAT. Graphics cartridges – £50.00 (approx.)
  • Supplier: Commodore Business Machines (UK) Ltd, 675 Ajax Avenue, Trading Estate, Slough, Berkshire, SL1 4BG

First published in Computing Today magazine, November 1982

ZX80 Reviewed

The personal micro goes handheld. Clive Sinclair’s new system comes under our eagle eye.

Z80MainWEB

By now every person who has access to a computer journal, or one of the electronic monthlies, such as ETI, will have heard of the new Sinclair ZX80 microcomputer and (judging by the amount of mail) wants to know more. Rather than reviewing a prototype model, we waited until a production kit became available and then took a long hard look at the machine. This is the result of that inspection and we hope that it will enable you to decide whether the system is what you require or not.

A Jumbled Start

As you can see from the photos of the kit there are not too many components to worry about, the parts list details all of them and it is well worthwhile checking them before construction is started. The instructions are clear and fairly concise, certainly no glaring errors, and for a reasonably competent constructor an evening should see it complete and running.

We decided to fit a switch to allow the video to be reversed at any time and it would be a useful idea to bring a push-button out in the same manner to ground the reset line: the circuit diagram is adequate for both these minor enhancements. Our kit worked first time and has not shown any signs of failing yet despite concern over the regulator, see the hardware section later.

Setting Up

ZX80ImageWEB

We had no problems with a standard black and white set, but with a rented colour TV we obtained a double (ghosted) image all the time which rendered the system unusable. The reason for fitting the switch to reverse the video was that some TVs gave a clearer picture with a conventional white on black image and some preferred the inverse type. No reason really but subjectively the author prefers white on black.

A page of notes that were included with the manual solved the minor problem with the tape interface and although it is slow it functioned without error. Overall the first impression of the system was that it was easy to build and equally easy to set up.

Mask of Intrigue

ZX80_Main2WEB

Being of a hardware background the author started to delve within the entrails of the machine, and soon regretted the intrusion! The circuit diagram is none too clear in its layout and so the telephone lines to Cambridge soon began to hum. The criteria appears to have been to pack as much in as there was space in the case. The system is supplied with a 4K ROM, 1K of RAM that acts as the user area, CPU scratchpad and VDU buffer.

The heart of any computer is the clock circuitry and normally this is controlled by a crystal. This is not so with the ZX80, however, it uses an oscillator circuit based on a ceramic filter. This is quite simply not accurate enough to ensure absolute control, in my opinion. The edges are not fast enough (the Mk 14 had a crystal and that was half the price!) Secondly the expansion facilities of the system are, at the moment, totally inadequate. The maximum memory capacity for RAM is 16K and whilst that is enough for programming it is nowhere near the needs of a system which requires a disc. The ROM capacity is 4K, but it appears that by re-routing bits of the PC track you could expand this to 16K, not really practical, but possible.

The outstanding nasty is that the Z80 processor has the capability to use dynamic memory and even gives a refresh signal to synchronise the operation – this signal is used to trigger the video circuitry and because of this it will be risky to try to interface dynamic memory. Why risky? Well the mean refresh time for most dynamic RAM is about 2 mS, on the ZX 80 it would get a mean refresh at 20 mS intervals (according to the designer) and you could even lose RAM contents because of this delay.

The keyboard is an excellent piece of design and works far better than we had dared hope after experience with the Mk 14. The legend is securely printed and has not yet shown any sign of wear, the film did lift a little in one corner but then we were trying pretty hard!

Overall conclusions on the hardware design are that the system was designed to fit in a given size of box and that expansion was to be limited, if you want to try you must insert buffers onto all the bus lines as your first task.

The second major problem is the lack of proper I/O addressing, which means you will have to be extremely careful about what you connect to what, as that address line may be performing some other task. The final problem is that the machine does not use ASCII codes, so you will be unable to connect a conventional printer or terminal without writing look-up tables to convert all the internal codes to ASCII.

ZX80Inside_WEB

Softly Does It

We have left the VDU until now because it forms part of the firmware, rather than being a piece of hardware. The 4K “SuperROM” contains, to the best of our knowledge, an implementation of an Integer BASIC, some kind of monitor/operating system and the character set. The chaps at Nine Tiles deserve a considerable pat on the back for their valiant efforts in cramming what they have into the space available.

It is a very useable BASIC as it caters for all the normal functions and has an excellent syntax checker that is quite infuriating to use – mainly because it is right and you’re not. It also has an excellent screen editor which is both powerful and versatile. But why provide these at the expense of better and more powerful BASIC commands?

The single keystroke programming is a much discussed feature of the ZX80 and the author feels that he would rather type the command out than have a little routine do it for him.

Why? Because not all the single keys are associated with obvious letters and because he has got so used to typing “?” for “PRINT” and “INPUT” for “INPUT” that he has to think twice to do anything else. Any traditional programmer is likely to make the same comments – any novice will love it!

ZX80KBoardWEB

The VDU has taken more than a few knocks in the press, we found it to be adequate in definition, annoying to use when it goes blank and unnerving when it flickered (on hitting a key). Again all these comments would only be applicable to someone who is used to “other more expensive” equipment, anyone starting out with the ZX80 would not bat an eyelid.

Basically Implemented

The BASIC is adequate within the limits of the machine. It will serve most of the usual requirements, bearing in mind that it can only work in whole numbers, unless you write acres of code to perform fraction routines. The next step is, in this case, down to machine code. Can you pack the RAM area with machine code? Yes, using POKE and USR, but Sinclair are not going to tell you much about the monitor routines and even less as to where they are. No mention is given in the manual as to how you access machine code, other than the fact that you POKE it and no details are given about the Z80.

Documenwhat?

The manual is described as a teach yourself BASIC volume, which is as accurate as a bent ruler! It may teach you to use the ZX 80, but it does not teach good or economic programming and should be instantly supplemented by a recognised manual, such as Coan’s “Basic BASIC”, or Alcock’s “Illustrating BASIC”.

As a measure of the content it has two types of chapter, one for the experienced and one for the beginner. We suggest that all of you read all of it very carefully. Any program that uses interactive graphics (PEEKs and POKEs on a memory mapped screen) will be unusable on this system. Any program that uses a full BASIC will have to be modified and the reverse is also true, in that ZX80 software will need conversion to run on other machines. The tape interface is non-standard so you can’t load and dump to other machines through this medium. Much of which, of course applies to many other, much more costly, machines.

Expandability

The ZX80 has a theoretical capability of 64K of RAM/ROM/IO but only 16K of this theoretical memory space is available for user expansion. This area can be partially filled with a 3K RAM board for a further £60 or, at some time in the future, by a 16K RAM board. It is not possible, as reported elsewhere, to piggy-back the 3K boards. The designer agreed in discussion that a mother/bufferboard would be needed if any serious expansion was to be considered. It is envisaged that Sinclair Research will produce a printer, but it is unlikely that discs will appear.

Appraisal

The ZX80 is arguably the first complete system. The novice or first time programmer who has never had access to any kind of computer will be perfectly satisfied with his (or her) investment. It is unlikely that it will make anyone into a good BASIC programmer overnight, it will, however, teach the fundamentals well and for this it is highly commended.

Pros and Cons

To give a brief view of the facilities we have produced a table which may give a quick overall impression.

Pros:

  • Z80 CPU, with powerful instruction set for machine coders.
  • BASIC language, which is easy to learn for the rest of us.
  • Large quantities of software “free” in magazines.
  • Cheap and easy to build, with good instructions.
  • Excellent screen editor and syntax checker.
  • Good first system.

Cons:

  • Lack of machine code explanation.
  • Poor BASIC manual.
  • Incompatible BASIC with only integer arithmetic.
  • Cassette format incompatible with any other system.
  • Poor expansion capability.
  • Non memory mapped display (means no graphics games).
  • Use of non-standard character codes (means no direct printer attachment).
Table 1. The BASIC functions as implemented on the ZX80, all available at a single key-stroke except those marked *
System Commands:
CLEAR Clears variables
CLS Clears screen
BREAK Halts run and returns to command stage
EDIT Returns current line (at pointer) to bottom of the screen for editing
LIST Lists specified line(s) of program
STOP Halts execution
NEW Clears memory and awaits new program
LOAD Loads from cassette interface
SAVE Writes current program to cassette interface
RUN Executes current program
CONT Continues STOPped program
HOME Moves cursor to top line of program list
RUBOUT Deletes character to left of cursor
Statements
REM Allows inclusion of text for comments
IF Comparative
INPUT Assigns value of keyboard input to variable
PRINT Prints specified variable to the TV screen
DIM Dimensions array size
FOR Used in conjunction with NEXT to execute a defined loop
GOTO Jumps to specified statement
POKE Places assigned value in defined memory location, used in machine code programming
PEEK* Returns value of specified memory location
GOSUB Jumps to defined subroutine
RETURN Returns to main program from subroutine
LET Assigns specified value to specified variable
RANDOMIZE Resets seed value of random number generator
NOT, AND, THEN, TO Comparative “tokens”
CHR$* Produces the character whose code is specified
STR$* Produces the decimal value of the specified string
TL$* Returns the specified string less the first character
CODE* Produces the code for the first character in a specified string
RND* Generates a pseudo-random number within defined range
USR* Calls machine code routine located at address specified
ABS* Returns absolute value of specified variable.

First published in Computing Today magazine, June 1980