The following review appeared in the May 1978 issue of Personal Computer World. I believe this was transcribed by Hans Pufal back in 2002. I don't have the original article or the images that accompanied it.
Mike Dennis
About the beginning of 1977, various advertisements appeared under the Sintel banner for the RML 380Z microprocessor systems. In fact, it was not until August 1977 that the first prototype machines went out and December 1977 that the first production models were despatched. The prices ranged from about £400 to £1400 depending on facilities and memory size and it was the grand-daddy of the range with 32K of RAM that I was given to review.
Originally I was to have it for only a week but I must have smiled nicely for Research Machines (RML) were quite happy for me to have it for a much longer period. In fact, I wholeheartedly endorse the editor's comments about the interest and assistance offered by this firm. Such attributes are all too often non-existent in larger organisations.
Surprisingly, the 380Z is much lighter than its size suggests. It weighs only about 25lbs. in a cabinet the size of a small suitcase. No wonder, really, as when you open up the case all that you see are two PCB's, a power supply and a lot of air! (See photograph 1).
The 380Z was designed to be modular in construction, which is good. What this means is that fault finding is greatly assisted and spare boards or power supplies can be swiftly changed and thus reduce your downtime. What I didn't like was the use of Lucar connectors on some wires which were far too thin to carry the relatively heavy weight of the connectors. There are many other more suitable connectors on the market and so to use this particular type is sloppy. The general standard of construction inside was, I felt, more adequate than elegant. For instance, odd pieces of perspex sheet were stuck together in layers and then stuck to the inside of some of the panels presumably to stop them from rattling. The actual fixing flanges in the internal panels distort permanently with use as the screws are tightened up. You can see this in the photograph. Generally, in the professional equipment one doesn't normally find this. Surprising, too, was the lack of Serial Number or other means of individual identification.
The power supply has been mounted well out of the way to give plenty of room in the case. More space has apparently been saved in this area by using a transformer designed by RML. All mains connectors were suitably protected against 'fairy fingers'. The mains input itself is via the detachable new IEC connector and comes ready to go with a mains lead of decent length and 13A plug. I must take RML to task, though, for not fitting a fuse of lower rating in the plug. I would have thought that one at 3A was more than ample and not 13A! (Dear reader, are all your plugs correctly and, therefore, safely fused?)
Another grey mark is the lack of protection for the two PCBs. They rest on the bottom of the case directly and although they are free to slide up and down, they are still vulnerable to shock or impact through the bottom panel. Perhaps if RML agree they could fix some form of foam plastic to the bottom of the case to rest the boards on? The PCBs themselves are beautiful - there is no other word for it. Of German manufacture, they are double sided and have about 1400 plated through holes each. The pair that I had were slightly spoilt by solder splashes which can cause intermittent faults. RML say that they hadn't been cleaned properly and certainly other boards that I saw were much better. In any case, I am really nit-picking as since the boards are mounted vertically then any solder splashes that fall off shouldn't have any catastrophic effect.
The physical size of the boards is 10" x 5½" and that's the nearest that RML get to the S100 bus - the same width! Provision has also been made for mounting a shorter six inch board. I think their bus technique particularly cost effective. They make use of connectors similar in style to Scotchflex but made by ITT Cannon. Essentially, they consist of a male (female?) half mounted onto the PCB and the other half crimped onto a fiat ribbon cable. Extension leads with any number of plugs/sockets can be made up in order to connect up the various busses to any extra boards. Mind you, as the CPU board can accomodate up to 32K it would be some time, probably, before you needed any extra boards for memory! It was a pity that no indexing was provided as in theory it is possible to insert the plugs either way round. In practice, the physical layout and wiring prevents you from doing this. You can do it, though, with the dc supplies which is potentially disastrous. You could end up with a very expensive mistake on your hands. Take note!
Connections to the outside world are by a seven pin DIN socket and two sockets for a visual display. RML supply one DIN lead and one co-ax lead for connecting up. Provision has already been made both in the wiring, hardware and software to couple up two cassette machines via a suitable splitting box to the DIN socket (see later). I was not supplied with any of this but have seen a working system. Clearly, an indication that RML are continuing to expand the system, which is to their credit.
Although both sockets for the VDU were Belling Lee type co-ax, only one socket is fed by the UHF modulator. In practice, there was sufficient stray oscillation coming from the second socket to provide another UHF signal for a second TV. However, under these conditions it is possible that some TV's could interact between themselves to produce inferior pictures. RML never intended it to be operated in this way but nevertheless you could get a small bonus.
I tried feeding the UHF signal into a colour set and had great difficulty in tuning in the signal. Now most, if not all, colour sets have an AFC circuit which you disable when you tune in a station. When a similar technique was tried with the 380Z, as soon as the AFC was enabled again, it pulled the set off tune and so produced a bad picture. But if the AFC was permanently disabled by going inside the set, the problem then ceased as one would expect. On investigating further, the modulator was giving out a signal of about 10mV! More than enough to swamp any normal AFC circuit and so cause the de-tuning that I had experienced. The simple cure is either to use an aerial attenuator (available from any good TV dealer) or use a black and white set. However, this high signal level is rather naughty as the frequency of the modulator was about 592MHz or Channel 36 and so outside the broadcast band. There are other users around this frequency and so at signal levels of this amplitude it is conceivable that interference could be caused by the 380Z to any authorised users of this band.
The second socket is for a line-fed monitor and as such should have been fitted with the proper socket for the job i.e. a BNC (readily available from RadioSpares). Belling Lee co-ax sockets are definitely not professional for this type of work and in any case necessitate a convertor lead for use with any monitor. Murphy's Law applies when looking for this lead. Again, the video output level is a non-standard one of 0.15V pk-pk of syncs and 0.4V pk-pk of video. (If your system measures differently then this is due to production tolerances). I measured these when the signal was terminated (as it should be) in 75Ω. Leaving the signal unterminated increased the amplitude but made the characters look a bit ragged, which was expected. The definition in the monitor was, of course, much better than that obtained from the UHF feed. This is generally the case and I wish that better modulators were readily available.
Talking of volts brings us conveniently to a brief look at the actual hardware used, as I expect that some of you may be particularly interested in this aspect. As can be seen from the photographs 2 and 3, there are remarkably few ICs for so versatile a machine. There are approximately 45 ICs per board together with their respective sockets. I could write an entire article on the various and neat design aspects of the 380Z but suffice to mention just a few points.
16k x 1 350ns dynamic RAMs were provided. They are NEC/Nippon devices and similar to the Mostek 4116 etc. As such, 4k x 1 dynamics are a direct replacement fit and provision has been made for this.
Thick film resistors have been used where any pull-up and pull-down resistors are required.
An 8MHz crystal is used for the system clock and divided down to provide a 4MHz clock of equal mark-space ratio.
One Wait state is put in all Memory Request (MREQ) cycles at the factory. Should you wish to run at a slower rate then the user can re-arrange onboard wire links to insert a Wait state in each M1 cycle.
Much use has been made of LSI devices such as the 74LS393 (two 7493's in one package). There is a liberal sprinkling of 74LS157, 158, 241, 244 and 374's. The majority of these are comparatively new devices to the TTL family and many have been designed with the microprocessor in mind. If you are at all interested in designing your own system then I can only urge you to buy an up-to-date TTL Data Book from one of the distributors. They make fascinating bed-time reading!
Liberal decoupling means good noise performance. RML have spread tantalum capacitors and 0.1µF's around like confetti and the result has been very little noise on any of the dc lines. Most commendable. Even the 3A regulator which is situated away from the CPU board by a very long wire seemed perfectly able to cope. In fact the 380Z only uses about 1¼ of the available 3Amps which again allows ample expansion.
The COS (Cassette Operating System) lives in two 2708 ROMs and there is space for an optional ROM be it user programmed or as, in my case, supplied by RML (more anon).
I spied a couple of other ROMs on both boards. On the CPU board were both a 74S287 (256 x 4 bits) and a 74S288 (32 x 8 bit) ROM. The 287 is used to decode which block of RAM is being addressed and there are four versions available depending on what type of memory you have (eg. 2 x 16K, 2 x 4K etc.). Should you win the pools or strike lucky at the finance meeting and wish to install more RAM, then all you do is swap the 287 and plug in another RAM. Slight alterations to one pin have to be made depending on whether you are using 4K or 16K RAM's and these are done on wire-wrap connections. Should you have 8K of RAM and wish to update to a 16K version then rather than supply a separate board as originally advertised, RML will buy back your 8K of RAM and sell you a 16K block. Any extra cost doing it this way will be absorbed by them.
One output of this ROM connects up to the 'S288 as an enabling signal and indicates that the lower 8K bytes of memory are being addressed ie up to 1FFF. This and address lines A9-A12 inclusive are then sufficient to decode the three ROM positions, the ROM data buffer, VDU memory select signal and 'I/O' port select signal. This latter when NANDed with A2-A8 inc. provides a low when locations 0FFC-0FFF are being addressed. However, I/O is really a misnomer as the IORQ signal from the CPU is never used as these particular I/O ports are memory mapped. 0FFC is either the keyboard in the read mode or Port 0 in the write mode. The pattern of bits written into this port control various functions in the monitor. 0FFD is a counter used for the software single step and reset. 0FFE is Port 1 and dedicated to the cassette/program storage facility etc. and other misc. functions. 0FFF is a user port and has even been provided with a buffered octal latch.
So with only two ICs, RML have decoded all of this whilst still maintaining a high degree of flexibility. A really good example, I think, of what a fresh approach can do in a situation like this. That really sums up the CPU board.
The VDU board contains both VDU and enough interface for two cassette recorders. Again, ingenious use had been made of two ROMs ('S287s again). These, in conjunction with their respective line and field counters, provide all the sync and blanking waveforms, reset signals etc. required by the VDU together with all the addresses required by the display RAMs and character ROM. This is the first time I have seen such a clever design. The sync width is a little non-standard (4µs as opposed to 4.7µs) but in practice this should make very little difference.
Any calls to output an alphanumeric character to the screen occurs in Field Blanking. In order to use graphics in an interactive mode a faster rate is required. One sub-routine in COS uses line blanking (24µs) to output one character per line. Now, 24µs is not long, even with a 4MHz clock so if you wait for line blanking to arrive before beginning your o/p routine then you soon run out of time. However, since this output routine consists of a known length of machine cycles and hence time, you can anticipate the lineblanking signal and use a pulse of earlier timing. Because RML have done their sync generation the way they have, the line blanking ROM quite conveniently has just such a waveform with the right timing!
One design point that I personally dislike is the software conversion of capital O to _. This is necessary because the Texas 262 character generator used doesn't discriminate between capital O and zero. I personally prefer O and o. [I’d need to see the original article to correct this—PFW]
Note from the photograph (2) the conspicuous lack of any UARTs (a UART is a large 40 pin ic that can convert 8 bit parallel data into serial data and vice versa). This is because about 256 bytes of COS has been used to record and replay a cassette tape to CUTS standard. At 2708 prices this costs very approximately £2.50 whereas two UARTs could cost together about £10 - clearly a good example of an economical software/hardware tradeoff. However, this is only the half of it as with the option ROM supplied there is a fast cassette option of 1200 Baud. Bear in mind that their cassette file handling is also very sophisticated.
To record a programme on tape you either type D for Dump or SAVE depending on whether you are in the COS system or have BASIC loaded in. Either prompts you with a request for a file or programme name. In COS, this can be up to six letters long; in Basic, ten. The system then prompts you with a request for the first and last address of the data or programme and also the start address. The programme is then parcelled up into either 128 or 255 (yes, 255 as in order to save bytes in the monitor, RML use the zero count for end of data block) byte blocks. Each block has the programme name attached to it.
To load a programme from cassette, select your recording speed (300 or 1200) if necessary, enter the program name and then replay the cassette. The COS system reads in all the data blocks and echoes the name at the beginning of each block on to the VDU screen. When the name coming off the tape matches the programme selected by you, the monitor loads the programme at the correct address. Since each block is named, either you or the 380Z can search through an entire tape for a specific programme. All that you need to do after entering the programme name is to fastwind through the tape, periodically stopping and replaying a short section of tape to see in which programme you are in. Likewise, by using cassette recorders (such as the Hitachi loaned by RML) with a remote pause means that the 380Z can load a block of data into its Assembler (ready soon!), then pause the cassette while it digests the data. Of course, this latter facility is only provided by their Cassette File Handling Programme which is supplied free with the more expensive versions. This programme can also be used, so RML say, for loading tapes recorded to other standards such as the INTEL format. An interesting side effect of the basic COS system is that programmes recorded in this fashion have a certain (I admit, not fantastically great) security against easy pirating.
I used the cassette system quite extensively and, at first, had one or two failures. This prompted a visit from RML with various spare bits but we were unable either to reproduce the fault or to explain why they had occurred in the first place. Certainly, some failures can be put down to my lack of familiarity with the cassette machine. This is one of the few cassette machines that has both volume and tone controls on the output. Most cassette machines have neither but, in this case, it was necessary to adjust them correctly. One annoying feature of this cassette player was that connecting the DIN lead mutes the internal speaker. Personally, I like to have the volume up a bit so that I can hear what's going on and so if this too is your preference then this is not the cassette player for you.
A more annoying feature was the automatic return after the sixth letter in the name when loading in COS. If you make a typing mistake in the sixth letter, then you have to either Reset the 380Z or ignore the mistake, replay some tape and then hit Control C. (This is because you cannot return to COS if the tape isn't running. This is one drawback of using a software cassette interface in this way.) With either you have to go through the whole loading procedure again.
Mind you, hitting the Reset isn't as disastrous as it could have been had RML not had the forethought to do it carefully and keep the refresh going for the dynamic RAMs during reset! However, you've got to remember to reset your fast tape option, if necessary, after reset, otherwise you'll enter your name, start the machine and then have to start all over again! This is because COS 'fails' to normal tape speed after a reset. A better way would be a 'fail' to 'fast mode in' as most programmes will be stored on tape in this way.
One nice feature of the COS loading is that should you get a read error then the machine won't abort completely, unlike some. You have the option of either aborting deliberately or of rewinding the cassette a bit, typing 'L' and the programme will be reloaded at the start of the next block, and hopefully go in OK the second time round. I noticed that you couldn't do this when Saving a Basic tape.
I tried playing back pre-recorded cassettes made on various cassette machines and had no compatibility problems. I measured the "dynamic range" over which the COS would load and save tapes satisfactorily and found the system was still coping at a level of 20dB below peak recording level. What this means is that you should have no need to worry unduly about what level to record at when saving programmes. Obviously, when using the high speed option, tolerances regarding drop-out etc. on the tape are that much tighter and RML quite sensibly recommend the use of high quality tapes.
One possible problem with some cassette machines is that the output is 180° out of phase with the input. RML have thought of this and provide a pre-recorded programme called "TSTCS" or Test Cassette. This enables a check to be made both for optimum replay level (assuming you have control) and for phase. This is all fairly well documented in the literature and any out of phase machines can easily be cured by using a 1:1 transformer suitably wired.
Any system, no matter how good the hardware, must stand by its firmware and software and it is here that the 380Z scores. In particular, the 'software front panel' is one of the clearest and most versatile that I have met (see photograph 4). Briefly, it displays in the upper unscrolled 20 lines of the screen, the contents of all the main registers, stack pointer and programme counter. Those registers that can be paired up are and the resultant 16 bit address thus derived is displayed alongside. The contents of the memory location thus addressed by each pair is also displayed together with the contents of several locations on either side, the actual location being pointed to by the arrows. Personally, I would have preferred the display of these locations to stand out from the rest of the display (bright-up?) as it was often difficult to remember where each one was. The contents of the registers and programme counter can be altered at will.
The data display, of course, will alter as these registers are changed and so the effect on the system of any changes can be instantly seen. The stack pointer cannot which could possibly prove annoying at a later date. Neither the I nor the R registers are shown. It is possible to switch to the 'other' registers. Another good point is the ability to single step through a programme. Pressing 'Z' causes an NMI into the single step routine. The programme counter, stack pointer and registers ail change before your very eyes and one can really appreciate the effects of the various instruction code, stack pointer manoeuvres etc. I can't recommend this feature strongly enough for anyone involved in teaching micro's. Go and see for yourself. A nice touch is the actual printing of the various flags when set e.g. Z and C if both the zero and carry flags are set.
All this display is contained in ten lines. The remaining ten lines are taken up by a separate memory pointer. The address of this can be entered by the user following an 'M' command. The pointer will alter and 32 bytes of data on either side of this new pointer wiIl be displayed. The pointer can also be incremented or decremented by either 1 or 8 bytes. Data can be written into memory directly and this is how a hex programme would be keyed in. The bottom four lines of the screen echo keystrokes and scroll.
Another nice feature is the 'Memory Shift' command. This works out the best way to move the memory blocks so as not to corrupt the data should you wish to move one block to an area that, in fact, overlaps part of the original block. Many other monitors eg. Zapple will corrupt the data under certain conditions.
One or two minor bugs were:
any non-hex character acts as a terminator and in one case caused the system to lock-up necessitating a 'Reset'. This means that the monitor is not very forgiving and that if you make a typing mistake, COS will not let you correct it! One man's meat ... though, as RML say that some people prefer a system this way because you don't have to always hit CR to terminate. You pays your money...
Confusion due to choice of keys for certain commands eg 'Z' in 'frontal panel' single steps (a Go type signal) but 'Control Z' in Basic halts the programme!
Good though the single step facility is, it would soon get pretty tedious stepping through a loop with a count of 255. RML have thought about this and included the provision for setting break points. What can happen is that the breakpoint is never reached. The keyboard is then locked out and so the only resort is 'RESET'. Unfortunately, as this wipes the registers, tracing the bug can prove difficult. What is needed is some form of "time-out" facility to return to the monitor. Not many monitors do this and unfortunately COS is no exception.
COS resides at 0000-07FF (see memory map). Beware, there be dragons, in the form of the restart vectors. RML have used these to great effect. Four are jump outs into RAM for user control. One is the normal reset to 0000, one is used for break points and another for simulating RELATIVE CALLS (see later). By far the most ingenious, however, is F7 which is a Trap Call and is a two byte instruction equivalent to a 'CALL'. The second byte following F7 contains the trap code of the desired target sub-routine. If all the commonly used sub-routines eg. Get keyboard character etc. are routed through as 'transfer vectors' using this Trap Call, then the number of bytes saved by not having to use a 3 byte Call every time will more than offset the bytes needed for the Trap Call routine. As Trap Call only uses a few vectors, you the user have well over a hundred left! Space does not allow me to do justice to, what to my mind, is one of the carefully thought out and refreshing (no pun) monitors that I have seen for a long time. Drawbacks? Well, often programmes are designed to run at this address so you'll have some relocating to do. The other drawback is slightly greater execution time.
The relative call simulation is used to great effect in the PIC or Position Independent Code. The Y index pointer is used in conjunction with this to enable any programme written with PIC to run elsewhere in the system. The range is limited to +/- 128 bytes but by writing in extension routines within this range it is possible to extend the range to anywhere. Many RML programmes are written in this way and when loaded are automatically loaded at the top end of the available RAM (stored as HIMEM in COS). HIMEM is then altered to its new lower value and if desired another programme could be loaded ad infinitum (well almost). Each programme then uses PIC to find out where it's been put!
Yet another facility is the Page mode should you wish to address >48K of memory. Of course, you'll need a Memory Extension Board plus more RAM/ROM but that's a small price to pay and of little consequence. The main point is that RML have provided for you.
One cannot end this exhaustive (and exhausting) review without mentioning their 8K Basic which is good, very good. There are many extra facilities, in particular the Line Editor, which one would normally find in Extended Basics of greater length. This Basic is also very fast - look at the Table in John Coll's article in Vol 1 No. 1 of PCW. It isn't the fastest but its times are still very respectable. How do they do it? Well, for a start all the Basic command words like 'Print', 'If' are encoded as each one is entered into a one byte code with bit 7 set. This means that you can save on memory space, and speeds up programme execution time as each programme is part compiled. They are continuing to refine their Basic and, in fact, are up to Basic which has graphics to:
1) Plot x,y,z where x = 0-79 else error y = 0-47 z = 0 = dot off 1 = dot on dim 2 = dot on bright 2) Graph 0 = Normal scroll 1 = Clear top 20 lines, scroll bottom 4. 2 = No clear, 4 line scroll.
Another facility is to execute 'Control S' before executing the programme or listing command as this stops the scroller. Each 'Control A' then scrolls one page and then stops the scroll and programme. 'Control Q' restores to normal operation. It is very easy in this mode to wonder why the programme has stopped (you've forgotten to press CTRL A) and so RML give you a clue by switching the cursor off. Personally, I think it would be better to blink it on and off. Another minor irritation is the carriage return automatically on character 40 and not 41 as one expects.
During a visit to RML, I was shown their new Assembler and Text Editor in a working system with twin cassette machine floppy disc and TTY. The software also caters for paper tape. Again space and time did not permit a thorough examination but it looks as if it is very powerful, very flexible and very good.
Obviously, many of my criticisms were purely personal and should be taken as such. Technically, the product was excellent (the boards really are a work of art!) and there were many innovative and ingenious design features. Much thought has gone into the design to make it as flexible and easy to interface to as possible. The styling is a bit functional and the general construction could be tidied up. The monitor ROM and software backup are excellent and continually being updated and improved. Existing customers can get either free or at cost the fast scroller, fast tape I/O, Intel loader and TTY routines from RML. I just have the slightest unease about the lack of consistency between some of the characters used for commands and terminators. There is a hint of illogicality about some of them - probably as a result of this 'fine-tuning' to the system. And don't forget, you don't need to take out a second mortgage. You can buy a 280Z version which consists of CPU board and VDU board fully built and tested (soak tested for two weeks as are all their machines) for £400. If I was on a tight budget, then this is the version that I would buy. Otherwise any businesses, firms, institutions, schools etc considering buying a good all-rounder could do a lot worse than take a long hard look at any of the RML versions. And don't forget, you aren't necessarily tied to buying any extra memory from Research Machines.
To conclude, a few quirks but in general an excellent machine. I was sorry to see it go.