MEMOTECH MTX500 complete review from Computer Input a New Zealand magazine, in November 1984
It contains some interesting material about the built-in software (i.e. the NODDY language and MTX Basic)

The Memotech MTX series is one of the newest arrivals on the home computer market. The two models available are the MTX500 with 32K user RAM, our review model, and it's bigger brother the MTX 512 with 64K RAM. Manufactured by a British firm which up till now has concenrated on producing high quality add-ons for the Sinclair ZX81, the new computer is set to compete very strongly for it's place on the computer market.

The MTX has been aimed at the home computer market but it also offers a tremendous amount of potential as an educational unit. Using communications software, a ring of up to 255 MTX computers can be connected, through which all manner of programs, mail and data can be accessed by all members of the ring. This allows, in say a classroom situation, for an instructor to teach one concept to all students at the same time, with all the students having the same access the concept.

The Memotech MTX series has been styled to be sleek but sturdy. The outer case is constructed of extruded anodised aluminium in a matt black finish, and makes this computer a pleasurable contrast to the usual plastic casings found in most similarly priced computers today, ($995 for MTX500). The slight increase in weight gives the unit a sturdier feel and stops it moving around on the table as programs are entered or games are played.

WHAT YOU GET
Unpacking the Memotech MTX 500 from its packing produced the computer unit, a power supply unit with leads, an RF lead (which was a bit short only 1.5m long), cassette recorder leads, the Owners Manual and surprisingly five good cassette games. For some reason the computer demonstration cassette is only included with the MTX 512, (but MTX500 owners need not dispair, as we did borrow the tape and it was not overly inspiring). The games supplied are "Toado", a frogge-type game; "Kilopede", eliminating a segmented centipede type creasture; "Star Command", eliminating alien spacecraft and asteroids on a 3-D screen; "Draughts" and "Reversi", a bit like the board game Othello. All the games can be played using joystick or keyboard control, and sometimes both together.

Extend ports on the MTX500 include two standard 9-pin joystick ports, cassette port (variable rate but defaults to 2400 baud), parallel printer port (compatible with Centronics-type printers), a ROM cartridge port and an uncommitted RS-232C parallel port. Separate outputs are also offered for monitor and TV (the RF modulator is internal). For sound, if a TV is used, the sound is routed through RF to the television speaker or alternatively hi-fi sound is pumped through the RCA phono plug.

Upon power-up of the system, with it connected to a standard TV, the first thing we noticed was that the first letter of the display was off the left-hand edge of the screen. This problem can be fixed using horizontal hold (available on older televisions and monitors). In addition Memotech have tried to help with the problem by writing most of their software with a space at the beginning of each line so that listings can be read.

As mentioned the MTX500 comes complete with on-board 32K RAM (expandable to 512K). This 32K is the amount of RAM accessible by the user. An additional 16K Video RAM is dedicated solely to handling the screen memory. Also featured is a 24K ROM (expandable to 72K) which contains MTX Basic incorporating most Basic commands as well as sophisticated graphics and window commands; MTX NODDY, a simplistic language used mainly for interactive screen manipulation and FRONT PANEL DISPLAY, an interactive program which allows manipulation of the contents of memory and Z80 registers. This language also features the Z80 Assembler / Disassembler.

As you may have just guessed, the MTX series uses the tried and true Zilog Z80 microprocessor. Whilst the choice of this micro processor may appear to date the MTX series, the Z80 has the advantage of a respectable past and also the fact that this chip is CP/M compatible. Indeed, the CP/M language was developed around the Zilog series. For this case, the Z80 operates at 4MHz.

KEYBOARD
The keyboard for the MTX500 contains all the standard characteristics one would expect plus a few additions. The keyboard has a total of 79 keys, which have been divided into three distinct areas: a standard QWERTY typewriter combining editing keys, and a separate keypad providing 8 keys which can be programmed to fulfil 16 user defined functions.

As with any keyboard layout, the old saying applies "You cannot please all the people all of the time....." and for the MTX layout we found two features annoying. Firstly the RETURN key is only a little longer than the other keys which causes annoying errors when trying to program, and secondly the position of the system RESET. There are two unmarked keys positioned either side of the spacebar, pressing these keys at the same time produces a system reset. In our opinion, this configuration is inviting trouble for those of us who rest our hands at the base of the keyboard whilst programming - a much too simple way of wasting hours of work - we prefer the more usual recessed back panel reset button.

Apart from these small annoyances we found the overall keyboard layout excellent. The keys are all full travel have the auto-repeat facility, and have a nice feel. Small details in design have not been ignored either, like slighly recessing the "F" and "J" keys for easy fingertip location and homing, ask any multifingered typist the significance of these keys.

The numeric keypad, which includes keystroke editing features, contains a PAGE key for scrolling, an EOL key, erasing from cursor to end of line, the four cursor control keys, a HOME key, an INS key insert character, and CLS clear screen.

EDITING FEATURES
The MTX 500 features on-screen editing features allowing programs to be edited as they are entered. The bottom five lines of the 24 line text screen is allocated to a so-called "Edit screen". Only within the confines of this window can any program editing be made. At the conclusion of each program line when the RET key is pressed the syntax of the line is checked, if there is any error the line is not accepted until it has been corrected. The editing keys described in the previous section are used for correcting any errors. Associated with each syntax error is a so called "error message" which appears on the very last line of the text screen. Unfortunately these error messages are far from explicit, not shedding much light on a programmers dilema.

All commands can be entered in an abbreviated form, eg 'P' for 'PRINT' and these will appear in full in the program listing. Another point worth mentioning is the fussiness of the MTX Basic for spaces - spaces must be put inbetween words - with practice one gets used to what is required.

Sadly, however, the one major drawback of the editing system is the omission of a renumbering command. This command is invaluable as a programming aid but is only offered for the system through a floppy disk software package.

SOUND
The MTX has three independant sound channels and one noise for percussion and sound effects. Sound is produced using the SOUND command in one of two forms. In the direct mode, a single note is played until stopped, and in continuous mode, sequences of notes can be played by loading them into a sound buffer.

GRAPHICS
The graphics capabilities in terms of sprites for the MTX would have to be considered outstanding. A sprite is a programmable object made up of pixels (dots on screen) that can be made in just about any shape and be moved as a whole object around the screen. Sprites can move independently of a program until new commands are issued. The MTX offers a massive 32 individually controllable user definable sprites, RAM for these is allocated within the 16K Video RAM. Also offered in conjunction with the 32 independent sprites are backdrop and pattern planes.

If you have used sprites before you will know they must often be tediously controlled using POKE commands, but not so on the MTX. A specialised group of commands are provided within the MTX Basic software module to handle the sprite generation and movement.

The MTX also has a unique and powerful windowing feature. Eight user definable "virtual screens" can be easily created and controlled through specialised MTX Basic commands.

The graphics resolution is 256 x 192 pixels in 16 colours, whilst the text resolution is standard 40 x 24 characters. There is also an option to increase the text resolution but this is only available with the addition of an MTX Series Disk Based System (more on these later).

SOFTWARE
A unique feature of the MTX is that all three software packages provided with the system are interactive with one another.

The MTX Basic is very similar to Microsoft Basic but with additional specialised graphics commands. As mentioned earlier the MTX Basic is fussy about spaces and it also insists upon the use of the "LET" statement when assigning variables, which make the language a bit cumbersome at first.

NODDY on the other hand is extremely simple. It features only eleven commands (headed by the mnemonic BIG EARS PLOD). NODDY requires no line numbering and it features branch and display facilities. The NODDY language was designed to simplify text handling and this is achieved very well. The simplicity of NODDY is achieved by creating pages of text which are treated as a single entity, called by a page name. NODDY pages can be called by Basic programs, and upon exit from NODDY to Basic all NODDY screens and programs are left intact.

As we briefly mentioned the MTX has a built in Z80 assembler/disassembler. Like NODDY the assembly language module can be used interactively with MTX Basic. As a result, machine code programs can be included with a Basic program and assembled as the program is run. For the MTX both the source (original assembly language) and object files (machine code) occupy the same space in memory. That is, after assembly the object code is left assembled and ready to run in the same position as the source code. This system is a great advantage in terms of storage space but there is one drawback if any lines previous to the machine code block are edited, the position of the machine code within memory may change and thus addresses within the machine code will be invalid. To remedy this the source file must be re-entered and re-assembled.

The FRONT PANEL DISPLAY is an interactive program which allows manipulation of the contents of memory and Z80 regiters. When the program is activited it displays, using three virtual screens, the full register contents simultaneously along with a 256-byte block of memory in hex format and a completely disassembled portion that hex code with associated mnemonics.

Machine and assembly programs can also be single-stepped - a real advantage for debugging these programs.

MANUALS
The Memotech MTX 500 comes with one manual, it covers the fields of Basic Tutor, References, and Operator's Manual. We found the sections on Basic Command structure, NODDY, graphics and sound, functional but not inspiring. In some areas we thought more and better examples of coding could have been used. The manual also shows how to interface Z80 assembly language to the MTX Basic. The manual does not cover how to program in assembly as a list of Z80 assembly commands is not even included. One section the manual omits altogether is a good index, this makes specific areas a little difficult to find.

EXPANDABILITY
In designing the Memotech MTX series the importance of the ability to expand a system have not been ignored. RAM has been made optionally expandable to 512K in increments of 32, 64, 128, or 256K blocks. ROM expansions can be added internally or through the ROM cartridge port to a maximum of 72K. Currently available ROM expansions are MTX PASCAL, NODE SYSTEM Software (for ring) and MTX NewWord Business, Educational and Games Software. Both of these expansions to the system can be added internally, a third expansion the Communications Board can also be added internally at the exclusion of one of the others. This board carries two completely independant RS-232C interfaces plus a 60-way Disk Drive Bus, which supports up to four 5 1/4 and/or 8 inch floppy disks. With the addition of this board, the user also gains instant access to Memotech Silicon Disks and Hard Disks. These last two are for users who require very fast data access.

A total of four different disk configurations are offered as "off-the-shelf" packages: single 5 1/4 inch floppy, twin 5 1/4 inch floppies, single 5 1/4 inch floppy plus 256k Silicon Disk, single 5 1/4 Hard Disk plus Single Mbyte Teac 5 1/4 inch floppy. With each configuration an impressive amount of software is provided.

As for any expansion option, cost is an important factor and the MTX is no exception. With the FOX twin unit disk and Silicon disk retailing at $5750, prospective users may think twice about expanding to this very high level. More acceptable expansion levels are the MTX Pascal and the Communications board at $350 each.

Also available is the Memotech DMX80 Printer at $1295. It prints at a speed of 80 characters per second and has fully programmable hi-res graphics capabilities.

SUMMARY
The Memotech MTX 500 through it's design will appeal to wide variety of potential users. It features the very simple language of NODDY for beginners to get started on, and the built in capability for assembly language programming for experienced programmers who need a challenge to get their "teeth into" so to speak.

The MTX offers a range of tried and true software because of its CP/M compatibility with the added advantage of full colour graphics. Including an assembler / disassembler and the Front Panel Program in the basic unit makes this computer unique in its price range ($995). Combine these advantages with its exceptional graphics handling capabilities and its potential for expansion, and we are assured the Memotech MTX series will find its place on the computer market.

TECHNICAL SPECIFICATION
Hardware
Chassis: Two front-hinged black anodised brushed aluminium extrusions are separated at the rear by a black plastic moulding.
Keyboard: A 1mm mild steel sheet is bolted to the upper chassis and supports 79 keys which are interconnected by an independent p.c.b. The keys are arranged as: Standard U.K. QWERTY layout with 57 professional typewriter keys, standard pitch and spacing. Foreign language keyboards are available. Twelve dual function keys are arranged as a separate numeric keypad. Eight function keys (16 with shift). Two unmarked reset keys. Auto repeat is standard on the alpha-numeric keys.

- CPU Board: Zilog Z80A CPU operating at 4MHz.
- 24K of ROM which contains: MTX BASIC - incorporating sophisticated GRAPHICS and WINDOW COMMANDS. MTX NODDY - interactive screen manipulation routines. FRONT PANEL DISPLAY - incorporating Z80 Assembler/Disassembler plus Z80 Register, Memory and Program display and manipulation routines.
- VIDEO DISPLAY PROCESSOR - with 16K dedicated RAM.
- USER-RAM - 32K on the MTX500 and 64K on the MTX512.
- VIDEO BOARD - for television and sound signal encoding. Real Time Clock.
- CHARACTER SETS - Numeric, upper case, lower case, user-definable characters and 32 user-definable sprites. Resident international character sets and appropriate keyboard layouts for UK, USA, France, Germany, Spain and Sweden. Character sets for Denmark and Italy are also available.

Expansions
Up to two expansion boards may be added internally. These may be Memory (RAM) Boards ROM boards or the Communications Board.
- MEMORY BOARDS
RAM may be increased by the addition of boards which provide 32K, 64K, 128K or 256K of memory, up to a maximum of 512K.
- COMMUNICATIONS BOARD
Available as an internal expansion, this board carries two completely independent RS232 interfaces (running at up to 19 200 baud) with full handshaking and modem communication lines, and also the disc drive bus.
- NODE/RING SYSTEM - Communications software and interfacing enabling construction of MTX Ring Systems containing up to 255 MTX computers.

Input/Output
Provided as standard:
- Cassette Port (variable rate, default 2 400 baud)
- Uncommitted parallel input/output port
- Two joystick ports with industry standard pin-outs
- Four channel sound under software control
- Hi-Fi output
- Monitor output - composite video
- Z80 Bus expansion port
- Parallel printer port (compatible with Centronics-type printers)
Available as an expansion:
- Communications board with two RS232 interfaces and disc drive bus

ROM Expansions
MTX PASCAL NODE SYSTEM software MTX NewWord Business, Education and Games software.

Display
Colour TV and/or Video Monitor
40 column x 24 line display as standard, with optional Colour 80 column board. (FDX or HDX disc system required)

Display Facilities
FULL SCREEN HANDLING
EIGHT USER DEFINABLE WINDOWS
Text: 40 x 24 characters. Text with graphics: 32 x 24 text with 256 x 192 pixels in 16 colours.

Graphics Facilities
Up to 32 independently controllable user definable sprites, plus pattern plane and backdrop plane. High level sprite-orientated graphics commands.

Suitable Printers
Centronics-type parallel printers
RS232 serial printers (with Communications Board)

Power Supply Unit
Input:220/240 VAC 50/60 Hz. or 110/115 VAC 50/60 Hz.
Output: 22.5 VAC, 1A tapped at 18V and 9V.
The PSU is double insulated and has a side mounted rocker switch which is internally illuminated.

Software
MTX BASIC
The BASIC resident in ROM contains the standard commands offered by most microcomputers, and in addition is extended with a number of reserved words designed to: a) allow easy manipulation of the display, b) enable a highly structured form of programming, and c) enable assembly language programs to be run from within BASIC programs.

MTX Graphics Commands
Sophisticated graphics manipulation commands are incorporated. These commands do not replace, but are in addition to the normal graphics commands offered by BASIC.

MTX NODDY
NODDY provides a method of programming to display information or ask questions and then move on to another display, depending on the previous response. Complete screens may be named and constructed and later called from within BASIC programs.

Assembler/Disassembler
An assembler/disassembler is included to enable fast and efficient development of machine code programs. Machine code may be included within a BASIC program and is assembled as the program is run.

Front Panel Display
The Front Panel Display is an interactive program which displays and allows manipulation of the contents of the computer's memory and registers. Allows simple and effective machine code debugging.

Command Words
MTX BASIC
BAUD ELSE LIST MVSPR CLOCK STEP LOAD SPRITE INK CSR PRINT CTLSPR PAPER DIM OUT NODE
EDIT GOSUB POKE GENPAT GOTO LLIST READ PHI IF NEW SOUND VIEW LET ON PLOT RESTORE
LPRINT PANEL TO ROM NEXT RETURN REM EDITOR NODDY SAVE CLS DSI PLOD DRAW ASSEM ANGLE PAUSE THEN AUTO SNDBUF RAND CONT VS ARC RUN CLEAR CRVS LINE STOP DATA ATTR VERIFY FOR COLOUR CIRCLE INPUT ADJSPR

MTX Functions
AND ASC PI SQR ABS RND OR USR EXP NOT ATN LEN SGN COS LN MOD TAN INT SIN VAL PEEK 1NP

MTX Strings
CHR$ RIGHTS TIME$ LEFTS INKEYS GR$ MID$ STR$ SPK$

Front Panel Display Commands
B followed by Y (i.e. BASIC, then Y/N) returns user to BASIC
C clears the List screen
D displays memory contents in hexadecimal
G (go) runs a block of code defined by the user
I cycles the display between ASCII characters or code
L lists memory contents from a given hex address
L. lists memory contents from Program Counter address
M moves a block of memory to a given address
R alters contents of a given Register
S single steps through code from Program Counter address
T as above but treats Calls as one instruction
X displays alternate Register set

MTX Assembler Commands
E (line number) allows you to edit the line number entered
L (line number) lists from the line number entered
T moves to top of code
T <return> followed by L lists from top of code
P prints to printer
B returns to BASIC and assembles the code

Thanks to Murray Moffatt from New Zealand.