Reviewer: Dr David Aubrey Jones
Magazine: Your Computer
Date: November 1983
IN THESE DAYS when the price of micro-computers falls daily and the news of heavy losses by computer manufacturers is rife, it is a brave company that plunges into the fray with a new computer. That is exactly what Memotech has done. Memotech will already be familiar to ZX-81 owners as the maker of a wide range of high-quality peripherals for that machine. Now the company has left this safe and familiar path and produced its own computer, the MTX-500.
When everyone else seems to be fighting to produce the cheapest computer with both colour and sound Memotech has taken a very different approach. Leaving its ZX-8l beginnings far behind it has produced a computer that would not disgrace any executive's desk. The cost is £275.
The styling of the MTX-500 is striking. In fact it looks more like a 16 bit business computer than a home micro. When I first set eyes on it I mistook it for the SM1, the business computer from Memotech of which the MTX is a cut-down version. It has a real keyboard housed in a slim and solid black anodised aluminium cabinet. This is longer - 1'7" - than virtually any other home micro-computer since it also houses a 12-key numeric keypad and eight separate function keys to the right of the main keyboard.
The quality of the keys lives up to the general appearance. They have a professional and solid feel and a touch typist would feel at home with them. Word-processing would be a joy. They are far better than the soggy feel of the Commodore 64's keys. However, one slight niggle - the Return key, used almost more than any other key when programming, is little larger than the standard keys.
There are well recessed sockets at the rear of the MTX for all the usual connections: power, TV and cassette - mic and ear. In addition, all the hardware and sockets are provided to connect a monitor, Centronics-type parallel printer and two joysticks. Any Atari-type joystick is compatible and operates by emulating the cursor keys. This means that there are no expensive extra add-ons to buy in order to play games. Positions for two RS-232 sockets are also provided at the rear, and on the left side there is a cartridge port.
Memotech has stayed on familiar ground with the central processing unit. This is a Z-80A - running at 4MHz - as used by Sinclair in its ZX computers. Perhaps more importantly, it allows CP/M compatibility. This is the disc-filing system used on the vast majority of microcomputers in business. Since a program written on one CP/M machine can be transferred and run on almost any other, this opens up the possibility of the vast range of business programs.
This is an avenue Memotech wishes to explore to the full. This month should see the launch of its colour CP/M floppy disc system and 80 column card.
A communications board is an expansion that will be neceisary to run the CP/M disc system. This fits inside the original casing beneath the numeric keypad and will provide two completely independent RS-232 interfaces - running at up to 19,200 baud - with full handshaking and Modem communication lines, as well as the disc drive bus. This will allow RS-232 serial printers to be connected and Memotech has a networking system planned which will use it - the MTX Ring system.
Any ordinary cassette recorder can be connected to the MTX and the normal Save, Load and Verify allow the Saving to tape of various parts of memory. The default speed of the interface is 2400 baud, making it one of the fastest available. If necessary this can be reduced to make it more reliable by altering two of the system variables, but in practice the interface proved extremely tolerant. All programs Saved loaded without fault at 2400 baud from a cheap cassette recorder when the output volume was set at anything between 1 and 9.
Living up to its name, Memotech, memory is not something one is likely to be short of The MTX-500 comes with 32K of RAM memory - the MTX-5l2 has 64K RAM - available for programs. An additional 16K RAM is dedicated to the video processor and thus the 32K RAM is nearly all available to the user even in high resolution, unlike the BBC computer. Further, if this quantity of memory should ever prove too restrictive it can be expanded internally up to a massive 512K. Up to two memory expansion boards which provide 32K, 64K, 128K or 256K can be added. The projected price of the 128K board is around £140 inclusive of VAT.
Unlike Sinclair, Memotech has opted to go for a standard VDP chip to drive the video display, the Texas Instruments TI-9929. This has four display modes: text - 40 characters by 24 lines; multicolour - unrestricted 64 by 48 colour dot display, and Graphics I and II - 256 by 192 pixels: The latter allows increased colour information in each eight by eight graphics character pattern. Two unique colours may be specified for each byte of the eight making up the eight by eight pattern.
This effectively means that each horizontal line of pixels across the screen - of the 192 - may be a different colour of the 16 available - all 16 may be displayed at once - but the colour resolution in the other direction is not as high.
The colours available are: white, grey, black, light green, medium green, dark green, light yellow, dark yellow, light red, medium red, dark red, magenta, cyan, light blue, dark blue, and transparent. The latter is useful since it allows bleedthrough of the background colour.
Perhaps the most powerful feature of the graphics chip is that it allows up to 32 independently controllable sprite planes, plus pattern plane and backdrop plane, as well as the more usual user-definable characters.
Looking inside the MTX reveals that there are three 8K ROM chips providing a total 24K of ROM. This is larger than in any other common home micro with the exception of the BBC computer and its offspring, the Electron. Like these it incorporates an assembler, which will please Z-80 machine code programmers. It also contains a disassembler, a new language, Noddy, and an advanced Basic that includes some Logo-type commands. In addition, the ROM may be expanded to 72K via user-transparent paging through the cartridge port and a Pascal ROM - written by Hisoft - will be available.
Advertisements for the MTX computer depict a sports car in the background and MTX Basic lives up to this "high speed" image. The results of the standard Benchmark speed tests are given in table 1. Memotech tells me that its MTX will run a Z-80B CPU with few modifications and the company may offer this as an addition - a Z-80B is similar to a Z-80A but it can run at higher speed, 6 MHz. This would increase its speed.
When the MTX-500 is first switched on text is displayed in white on a blue background. This was rock-steady on the colour television I tested it with - a Sharp - there was no colour "dot-crawl" with any colour combination. However, it was displaced by about one character too far to the left, making if very difficult to read the line numbers of a program. This could be corrected by adjusting the horizontal hold of the television1 but then this had to be readjusted to allow the watching of television programs. Memotech is aware of the problem and is working on a solution.
All Basic commands can be shortened to the first few significant letters followed by a full stop. As they are typed in they are printed in the bottom part of the screen and when Return is pressed their syntax is checked. At this point either an error message is printed with the cursor being positioned next the the incorrect entry, or the line is printed in a tidied-up form with command words being printed out in full.
This entry system works well in practise and the syntax checking on entry would be helpful to beginners. However, I did find it difficult to get used to the fact that in general spaces must be inserted between command words so that they are recognised as such. An unusual feature is the inclusion of an auto-entry facility which would be useful and timesaving when typing in long Basic programs. This automatically places a new line number for the next line. For example,
would start at line number 100 and then increment in units of 10.
Editing is via a straightforward and efficient line editing system. One simply enters
or B. followed by the desired line number. The cursor keys then allow movement to any part of the line and characters can be altered and deleted. An insert key - toggle on-off - allows the insertion of extra material and another key - EOL - deletes to the end of the line. When all corrections have been made one simply presses Return and the line is stored in its new form. If an error is found when a Basic program is running the appropriate line is automatically brought down into the editor and the cursor is positioned accordingly. This speeds debugging - a nice feature.
MTX Basic contains all the usual commands - see table 2 - and has no serious restrictions. It also has the addition of many powerful non-standard graphics commands. These are outlined in table 3. One unusual feature is the Virtual Screen facility. This enables one to define sections of the screen - text or graphics - to work independantly as if they were the whole screen. One can create up to eight of these Virtual Screens with the CRVS command and switch between them with VS. Another command, DST allows one to roam about freely within screen setting up a page of text using full-screen editing facilities. There are commands within this to change the Ink and Paper colours, switch the cursor on and off etc.
The sprites are supported by a number of special graphic commands which is in contrast to the Commodore 64 where you have to buy Simons Basic to get any. These sprite commands are powerful but fairly potential. For example, a sprite is created with the command SPRITE which has no less than seven arguments. Genpat - generate pattern - is then used several times to define its shape, and Ctlspr is used to define the speed, moving distance size, total sprite numbers etc.
Some very good games are undoubtedly possible on the MTX and it is well suited to small business applications but Memotech has also incorporated several features to make it more attractive to the education market. The language Logo has recently recieved a fair amount of attention due to its Turtle Graphics which are claimed to be particularly suitable for teaching. Commands equivalant to some of these have been included in MTX Basic. Thus
draws a line of length x from the current plot position in direction angle which is similar to the Logo Forward. Rangle - relative angle - changes the angle by theta radians and is similar to Left and Right.
These commands do not replace, but are an addition to, the more usual Plot, Line and Circle. However, it should be made clear that the MTX does not have a true implementation of the Logo language and I cannot help thinking that the command words chosen will be less readily understood by small children than the Logo Turtle commands.
Noddy is a new language that Memotech has designed to enable someone with very little programming knowledge to write their own interactive programs. There are only eight simple commands that need be mastered - table 4 - before some quite complex question and answer type program can be written. It is constructed in pages that incorporate text to be printed to the screen.
If a particular page is called the appropriate text is displayed and the computer then simply pauses or awaits a response from the user depending on the commands. Perhaps its most useful feature is its ability to automatically handle all text formatting. This is done using full-screen editing. One positions text on the screen using the cursor keys etc. in the exact way one wants it displayed when the program is Run. To call and use Noddy from within a Basic porogram one uses the Plod command.
Considerable thought and an appreciation of the problems of learning to program has gone into the design of Noddy.
The MTX also caters well for advanced programmers. Machine code is stored in special Code lines of Basic. To enter these one calls the built-in assembler with the command
where n is the line number where the machine code is required. Z-80 assembly language can then be entered directly and edited. Labels are supported and a listing can be directed to a printer. On completion one returns to Basic and the machine code is automatically linked for the area of memory it occupies.
Listing the Basic will show a Code line has been produced and the MTX will automatically disassemble the machine code in it. Whenever a Code line is encountered by the Basic interpreter it will automatically run the machine code contained within it. This makes it extremely easy to add machine-code routines to Basic programs.
To help debug machine code a Panel facility is provided. This shows the current value of the Z-80 registers and the contents of any area of memory. Memory can he stepped through, changed and its ASCII form examined. Breakpoints can be set and machine-code routines tested.
Sound is of great importance for use in games but on many microcomputers it is inadequate. Not so with the MTX, which uses a Texas sound chip having three independently programmable tone channels plus one noise channel. This is output through the television loudspeaker via the modulator and so can be as loud as you require. In addition a socket on the back is provided to enable connection to a hi-fi amplifier.
Sound is the main Basic sound command. It has a simplified form of three arguments that will allow the production of simple tones at various volume levels until they are switched off. Far more powerful is the full Sound command which has seven arguments. With this, frequency and/or volume - can be increased or decreased with time enabling the formation of note envelopes.
Table 1. Benchmark speed tests - time in seconds.
Table 2. MTX standard Bask commands.
ABS ASC ATN AUTO CHR$ CLEAR CLS CONT COS DATA DIM EDIT EXP
FOR GOSUB GOTO IF/THEN/ELSE INKEY$ INPUT INT LEFT$ LEN LET LIST LLIST
LOAD LOG MIDS NEW NEXT ON/GOSUB ON/GOTO OUT PAUSE PEEK POKE PRINT
RANDOMIZE READ REM RESTORE RETURN RIGHT$ RND RUN SAVE SON SIN SOR STOP
STR$ TAB TAN USR VAL VERIFY
Table 3. MTX Basic graphic commands.
|CSR x,y||Position cursor.|
|CRVS n,t,x,y,w,h,s||Creates a virtual screen.|
|VS n||Calls a virtual screen.|
|PAPER n||Changes paper colour.|
|INK n||Changes ink colour.|
|COLOUR p,n||Set colour.|
|ATTR p,state||Switches attribute on or off.|
|PLOT x,y||Plots pixel.|
|LINE x.y,x',y'||Draws a line from x,y to x',y'|
|CIRCLE x,y,r||Draws circle with centre x,y and radius r.|
|AANGLE (x)||Sets absolute angle to x radians.|
|RANGLE (x)||Adds an angle of x radians to the current angle.|
|DRAW x||Draws a line of length x from the current plot position along a previously defined angle.|
|ARC x,theta||Draws an arc of length x turning through an angle theta.|
|CTLSPR p,x||Controls sprite parameters.|
|SPRITE n,pat,xp,vp,xs,ys,col||Creates sprite.|
|MVSPR p,n,d||Moves a sprite.|
|ADJSPR p,n,v||Alters pre~viously defined sprite.|
|WINDOW dir,dist||Controls the position of the screen over the larger display matrix.|
|GENPAT p,n,8 bytes||Generates pixel character pattern.|
|SPK||Peeks the character at the current cursor position.|
|GREAD$ x,y,b||Reads bits directly off the screen.|
|DSI||Direct screen input. Allows the user to roam about freely within the screen ending when Return is pressed.|
Table 4 Noddy commands.
|I||INPUT||Wait for input from user.|
|o||DISPLAY||Display specified page on the screen.|
|A||RETURN||Go back to calling page.|
|E||EXIT||Return to Basic.|
|G||GOTO||Go to a specified page.|
|C||COMPARE||Compare user input with a particular key letter and if pressed then jump to a label.|
|P||PAUSE||Wait for a second.|