Jane Bird tackles a heavyweight British newcomer to the 16-bit market
The M-Four is built by British micro manufacturer LSI, based in Woking, Surrey. The company intends it primarily as a single user system for business applications such as word-processing, stock control and accountancy. Other possibilities include instrumentation control. It is the centrepiece of a new family of machines anticipated by LSI.
In the beginning was the M-One, a single user business computer that ran only proprietary software. Then came the M-Two, a multi-user system, but also restricted to LSI’s own software. Those two systems sacrifice the advantages of supporting a standard operating system such as CP/M with the abundance of associated software in favour of higher performance from proprietary software. LSI claims that the standard operating system for networks, MP/M, in particular, is less efficient for multi-users in a business environment than the company’s own operating system.
With the 8-bit Z80- based M-Three LSI moved into general purpose desk-top machines. The M-Three was launched two and a half years ago and has sold nearly 3000 units to date. Its successor, the M-Four, which offers both an 8-bit Z80B processor (twice as fast as the Z80) and a 16-bit Intel 8088 which controls the Z80B, was first exhibited last September. Production got underway in January. About 50 had been sold at time of going to press.
The M-Four supports two standard operating systems, CP/M86/80 from Digital Research and MS-DOS from Microsoft. In addition it supports the not truly compatible 8-bit CP/ M which actually runs on the 16-bit processor. The total system thus supports an enormous range of standard software.
According to LSI, this machine is only the first in a whole family of machines anticipated by the company. Rather than continually upgrade the M-Four the company expects to launch other machines in the range. Even so LSI may introduce an 8Mhz version in the future. (The 8088 functions at the standard 5MHz in the M-Four – the same speed as in the IBM Personal Computer and the Sirius.) Throughout, the priority with the M-Four is to keep price down as it is intended to be a single user system. For this reason, LSI has no plans to switch from the 8088 to the higher performing but much more expensive 8086. The latter, it thinks, is only really necessary for multi-user systems or number crunching applications. Intel’s iapx 80186 will be used as the basis for a different machine in the family.
The Z80B is under the control of the 8088 in the M-Four. The system has 128 Kbytes RAM with parity as standard and an option of 256 Kbytes RAM. There is also a real-time clock and calendar with battery back-up.
During the second half of this year we can expect to see other members of the family beginning to appear, with networking a major component of the new developments. Networks may include other processing units as well as M-Fours. In addition to MS-DOS and CP/M-86/80. LSI is currently implementing its M-Two multi-user software ELSIE on the M-Four. It is also implementing MP/M, against its better judgement, because of market demands.
Perhaps I should explain the disturbing pattern of events that led up to the moment of bench testing the M-Four. It must have been way back last September that PCW first expressed interest in looking at the machine and there followed a fiasco of being sent two (or was it three?) M-Fours one after another, none of which worked. By the time we got a machine that lit up when you switched it on we had already lined up a whole lot of other micros to look at first and that is why you won’t be reading this until March at the earliest (When will manufacturers learn not to launch machines before they’re working?) The machine I tested was a pre-production model which may excuse some of the defects. Once I did start to put the poor thing through its paces, I found that the keyboard had several duff keys – but more of that later.
The M-Four comes in two parts – the main unit houses two disk drives, a 24 x 80 screen and the processors; the keyboard is separate and plugs in at the front of the main unit.
The main unit is housed in mushroom-coloured polyurethane. But the final keyboard I received clashed horribly, being ivory pale. Apparently the production machines now come in a two-tone breed of the mushroom colour. The unit weighs a ton! Well actually it weighs 35kg (77 lbs) including keyboard. It is also massive, being 642mm wide and sporting a keyboard to match.
The disks are arranged vertically on the right-hand side of the main unit with the left-hand drive housing the system disk. I tested an M-Four 250/4 series machine which gives a maximum formatted capacity of 2.4Mbytes on its two 8in floppy drives. Other models offer 5.25in drives at the lower end or a 10Mbyte Winchester at the upper end.
The screen is to the left with the qwerty keyset directly in front of it In the centre of the main unit is the on/off switch and below that a badge bearing a billowing Union Jack to remind you where your heart was in buying the LSI machine.
Beside the connector for the keyboard, at the bottom left hand side of the main unit is a dial for controlling the contrast on the screen – but you can’t control brightness. LSI dictates that the brightness has been ‘pre-set during manufacture for optimum operating conditions’. In fact, I found that brightness and contrast are satisfactory though the screen does have a sheen across it that tends to cause reflection. A gauze cover might alleviate this.
At the back are the interface plugs for connecting peripheral devices. My system had two standard RS232 serial ports with 25-way D-type connectors. It also had a parallel printer port with a 36-way Delta socket. The latter gives connection to any Centronics compatible parallel printer. Also available is an RS422 asynchronous/synchronous interface which you need for networking.
Rear view of the M-Four
Removing the lid of the main unit to examine the innards of the machine was quite a challenge. The machine is sealed and solid as though it were expecting an armed raid, which is almost what you need to get in. Eventually I located some allen keys of the right dimensions and was able to remove the top which turned out to be excessively thick and strong. Should you so wish, you could easily stand on it, which is a resilience quite unnecessary in a part of the machine that serves basically to keep the dust out of the components.
Inside, confirming all my suspicions, there is lots of empty space. It’s almost as if LSI had built a big machine to give the purchaser the impression of buying lots of electronic goodies. Still, I suppose this make room for enhancement should LSI dream up some plans. The main processor board sits inside the bottom left of the machine. On it are clearly visible the 16 64k RAM chips in the 128kbytes version with space for another 16 in the 256kbyte model (The Z80 can be programmed to use any block of 64k RAM within the main memory). You can also see the 8088, and the Z80B is located next to the PROMs in the middle of the board.
It is good news for fast servicing that the processor and memory are all mounted on the one board – allowing the whole lot to be swapped in and out at once. All the main processor and memory chips are socketed rather than soldered and could be yanked out with a screwdriver. This also facilitates maintenance by allowing you to switch chips in and out. The inside is a bit of a rats’ nest on wiring but is not as bad as some I’ve seen. There was no obvious patching of last minute bugs and the overall effect is very clean. The power supply is also mounted on its own board but the strength and solidity of the thing is reminiscent more of a Victorian viaduct than a modem microcomputer!
Once you have switched on, the screen asks for a system disk to be inserted. This goes in the left-hand drive: take care if you have to open the drive first by pressing the illuminated door button – the door springs back violently.
Inserting the disks is another clumsy task with this machine which has drive doors so hard to close that you have to concentrate real force into the fingertips and slam the doors across as if ramming home a winning goal. Once you’ve done this there emanates a pandemonium of clicking, clunking and thumping with deep echoes giving the impression of lofty caverns inside the machine. Each disk access is accompanied by a resounding clunk. It is bad that the drives keep the disks constantly spinning even when not in use since this tends to wear them out inside their jackets. It also promotes wear to the bearings of the drive – and drive B will keep spinning unused for a whole session if you don’t need it. Other manufacturers provide auto cut-out after a few minutes if you don’t access the disk.
Disk formats are unusually flexible on the M-Four – undoubtedly one of its finer points. Immediately after loading the system disk the screen presents details of available disk formats. The review machine restricted itself to double sided and double density for the left hand drive, but in addition to that could also handle double sided single density, single sided double density and single sided single density disks on the right hand drive. You specify which one you want by the prefix B:, C:, or D: respectively before the file name when accessing. The M-Four also reads IBM 3740 disk formats.
The maximum number of files allowed on a double sided 8 in disk for the M-Four is 256.
It was not very auspicious when the manual gave the incorrect information on how to switch on the system. ‘Depress the “power-on” switch so that it lights up’, it said. Unfortunately my machine switched on by means of a key and didn’t have a light. When you switch on, the machine emits a high-pitched bleep just to let you know it’s alive. The cooling fan also whirs into action and the M-Four starts off in the tradition it intends to follow as a rather noisy machine that likes to assert its presence.
The M-Four has a magnificent 109 keys on its 642mm wide keyboard
The keyboard has been carefully designed to be just as wide as the machine – a magnificent 642mm. This makes it almost totally impractical to rest the keyboard on your lap, although being an armchair programmer I persistently tried to do so.
A thick unwieldy piece of cable attaches the keyboard to the main unit. There is space underneath the keyboard to push in the spare cable but the whole arrangement is a bit primitive. It would be better with a flexible, coiled telephone-style cable to connect the two.
I also found that, although the keyboard is attached to the main processor by over 600mms of cable, it is rather heavy and so long that if you try to use the qwerty part of the keyboard in a central part of your lap the whole thing cascades to the floor on your right!
The keys are grouped in three banks across the front, with a row of function keys across the back. The left-hand bank is the standard qwerty keyboard, just to the right is the numeric pad and then further right again is a bank of function keys, a HOME key, and four cursor arrows. The arrows are much too far away and it is impossible to move the cursor about the screen without watching where you put your fingers on the keyboard. There are 24 function keys across the back of the keyboard which can be programmed to perform different functions in the SHIFT and normal positions. There are seven more to the right and one at the foot of the qwerty cluster, giving a total of 32 programmable function keys that can either be programmed by the user or by LSI as in the case of Wordstar. There are also 32 control codes which are addressed by using the CTRL key in conjunction with the alphabetic keys or @, [, /, ], ^, and . The control codes can be assigned to functions as dictated by the resident software. ‘ESCape’ generates the same control code as ‘[’ but provides two keys for the same function – one either side of the keyboard – which can save time in use.
There is a caps lock as well as a shift lock. The caps key allows you to type everything in upper case but the top row of the qwerty cluster still generates numbers. It puts on line most of the keys you need to write a program (although unfortunately not brackets, inverted commas or $).
The main keybank includes both DELete and BACKSPACE keys. The DELete rubs out text immediately preceding the cursor, and the BACKSPACE simply moves the cursor backwards without affecting the text it traverses. According to the manual in some software the DELete key causes the same character to appear on the screen again, but either way it will be considered by the system to have been erased. Then there is a LINE FEED which corresponds to CTRL J and therefore gives quick access to the HELP menu when using Wordstar. BREAK is a special function key on the main section which generates code outside the ASCII range.
The numeric pad to the right generates the same ASCII codes as the qwerty cluster but is separated off for fast data entry.
The first keyboard I had included a raised pip on the central key of the numeric keypad for touch-key entry but the new keyboard seemed to have reneged on this useful idea and all numerics were smoothly indistinguishable to the touch. Confusion is certainly caused by the apostrophe key being indistinguishable from the comma key – both have the punctuation symbol marked in the lower part of the key and I kept forgetting which was which. In all the M-Four has a magnificent 109 keys!
If keys are held down for more than 0.5 seconds they repeat. The repeat key is said to operate about three times per second.
I mentioned earlier that the keyboard on the final machine turned out to be defective. This took some time to sink in. Incredulous at the apparent defect in the nth machine, I paused before pressing the offending keys 20 times without result. Then I took a deep breath, walked twice round the room, approached the machine gently and gave a perfect short sharp jab. This produced a character – or rather several characters all the same.
It took LSI a little over 24 hours to deliver a new keyboard. Unfortunately this one had a defective shift lock which caused problems when using the Wordstar function key set – I kept accidentally saving the exiting Wordstar when I only wanted to save and resume, or deleting the character at the cursor when I wanted to delete the one to the left.
The manual contains a partial guide to CP/M-86/80 which is the standard operating system for the M-Four. CP/M-86/80 maps out RAM into three areas: the main system management program modules, the system data, and the user programs and data(TPA). Within the first of these three areas are three main program modules, the console command processor (CCP) the basic disk operating system (BDOS) and the basic input/output system (BIOS). The CCP recognises the commands input by the user and initiates the appropriate program from within BDOS. BDOS calls BIOS if access to external data is required.
Programs from disk have to be loaded into RAM before they can be run. If they are to be run by the 16-bit processor then the space available to them in TPA is the total memory size (128 or 256kbytes) minus the space occupied by the operating system – about 30kbytes, depending on the release. If they are to be run by the 8-bit processor then they get 63kbytes because the operating system resides outside the Z80 address space. The remaining 1k is taken up by the bare minimum of CP/M needed to accept the user program.
The M-Four also supports MS-DOS, which bears a remarkable resemblance to IBM Personal Computer DOS. This is hardly surprising since Microsoft wrote the IBM operating system! M-Four users will be able to benefit from the vast amount of software that will be, and indeed already has been, written for the IBM PC.
The M-Four allows you to run 16-bit and 8-bit software without changing disks. Program files are identified by the file extensions .CMD for CP/M 86 and .COM for CP/M 80. In fact, CP/M 80 programs are run in 16-bit mode under an 8-bit like environment. There isn’t an 8-bit operating system sitting at the top of the 64k associated with the Z80B processor. It gets translated into CP/M 86 sitting alongside the 64k on the Z80B.
LSI claims that its method of CP/M emulation is more efficient than other manufacturers’ because it leaves 62.5kbytes of TPA in the Z80B’s RAM as opposed to about 52kbytes of TPA left on a typical 8-bit machine. The Z80B also improves functionality over other machines because it operates at 5MHz as opposed to 4MHz for the Z80A and 2.5MHz for the Z80. The larger amount of TPA allows programs with large databases to do large disc access. The spare memory can be used to hold the actual matrix, in SuperCalc for example.
Although LSI gives you interpreted Microsoft Basic for both CP/M-86/80 and for MS-DOS, the 8-bit Z80 compiled Basic is much faster than the MS-DOS Basic. This is because, to provide Basic on the 16-bit processor, Microsoft simply did a semiautomatic translation giving very poor 8086 code. The same thing has happened with Wordstar and LSI reckons that Wordstar on the 8-bit processor is 1.6 times as fast as the 16-bit version. However, I had a more recent version of Microsoft Basic on the MS-DOS disk LSI sent than on the CP/M disk – 5.21 as opposed to 4.51. This created an anomalous situation. All the Benchmarks ran under MS-DOS at the same speed or slower than they did under CP/M-86/80. All, that is, except for Benchmark 8 which took 50.8 seconds under CP/M and only 29.2 under MS-DOS. A Basic compiler is also supplied under MS-DOS.
The screen is software-controlled on the M-Four so you can build display functions such as absolute cursor positioning and partial line erasure into your applications programs. The facility is intended to be used if you are designing a system to be used by operators working directly from the screens. When you write your application program you can include an ESCape H, for example, to move the cursor to the Home position in the top left hand corner and present your user with a completely screen. Other ESCape screen functions include ESC E to erase the screen, ESC J to erase the screen from the current cursor position to the end, and ESC A, B, C, D to move the cursor non-destructively up, down, right and left respectively.
The manual mentioned two other ESCape functions. There is the cursor address (ESC Y) and the graphics mode (ESC F). The cursor address supposedly allows you to move to a position using x, y co-ordinates. Graphics mode provides 32 graphics symbols using lower case alphabetics and six punctuation keys. Regrettably the manual refers the user to two appendices for further explanation of these facilities, but the appendices are not there – even in the final version of the manual!
You can store two different fonts in RAM at the same time – they take up 2k each – and these live in a file with the extension .FNT, and are loaded into RAM using the LOADFONT utility. You can then switch from one font to another in an application program by means of ESCape p. This displays all subsequent characters using the second 2k of font RAM, until it is switched off again by ESCape q. Under normal conditions the second 2k of font RAM contains the reverse video ASCII set so you could use ESCp and ESCq to toggle in and out of reverse video, giving clarity to applications on screen.
There are three different aspects of the M-Four that the user can change: key programming, the character set displayed on the screen and system parameters. The last of these covers areas such as serial ports, logical/physical device assignment, cursor characteristics (flashing or steady, blocked or underlined) and the way the screen behaves in certain conditions like wrap-around at the end of a line.
The information relating to these aspects is stored in the following three different file types: .KEY, .FNT and .PRM.
On your system disk you get three utility programs for generating and editing these files. The programs are KEYGEN, FONTGEN and PARMGEN. These are interactive programs with a series of friendly and explanatory menus detailing how to use the utility. They are useful for generating the files the first time and also for going back to edit them later.
The first time you switch the system on it goes into AUTOEXEC. SUB as defined by LSI. But you can also create this file and edit it yourself.
LSI told me that the keyboard is delivered with a set of plastic overlays for the programmable function keys. The only overlay I had was for Wordstar and my main criticism of it is that it doesn’t specify which set of functions are executed by holding down the SHIFT key in conjunction with the function key, and which functions are executed by holding down the function key alone. Of course, I eventually learnt that SHIFT was for the bottom set of functions and that if you didn’t use it you’d get the top set executed instead. But all this took considerable time, trial and error and caused much annoyance. Also I kept forgetting every time I came back to the machine after a few days’ break. LSI also intends to provide an overlay for the spreadsheet package SuperCalc and for its own Modular Accounting Package (Map). You can get hold of blank overlays for your own special function programming.
The set of functions you have programmed into the keys are stored in a special file identified on the directory by the file extension .KEY. You can have as many of these files as you like and you load whichever one you want into the system by typing its name from CP/M. There are 511 codes available to the function keys and although they do not have to be shared equally, a complex sequence for one key will deprive the remainder.
KEYGEN is very friendly and leads you through a set of options. ‘T’ allows you to set an ERASE key other than BACK SPACE to help in a programmed key code sequence. ‘R’ is to call up a key function table which has already been created under KEYGEN. ‘I’ provides information on how to use KEYGEN and ‘F’ goes directly into key function programming mode. However, I found the utility much less friendly when it came to saving and exiting my KEYGEN file. When you have finished with the file you are given a two-option menu: ‘A’ to give the file a name and save it, or ‘E’ to abandon. Naturally you press ‘A’. But the menu comes straight back and if you genuinely don’t want to abandon the file you press ‘A’ again and go on looping the loop, conspicuously failing to get back into CP/M. Eventually I realised that after pressing ‘A’ to save, ‘E’ changed its meaning and became E to Exit to CP/M not E to abandon. So that needs tidying up.
KEYGEN is well laid out and at the top of the screen it displays a pictorial representation of the programmable keys with a pointer indicating which key you are currently programming and whether it is the SHIFT function (upwards arrow) or the normal function (downwards arrow).
A KEYGEN file is loaded into memory simply by typing LOADKEY followed by a space and then the filename.
The PARMGEN utility is for setting up the system’s parameters such as baud rate, word length or cursor characteristics. Again it is organised in a friendly series of options. ‘A’ is for cursor personality, ‘B’ is for the serial port, ‘C’ is for logical/physical input/output device assignment; ‘D’ is to change drive B to single/double sided, and ‘X’ is to overwrite existing parameters.
Logically enough, a file that has been created under PARMGEN is loaded into memory with the system command LOADPARM followed by the filename.
Devising the font is the third aspect of the system that the user can manipulate, and it is the most fun, if not the most vital. FONTGEN allows you to create all your own characters for the entire ASCII key set. In the top left it provides a visual representation of each location available in the file. On the right is a diagram of the character cell and you switch bits in it on or off using an ‘X’ or a ‘.’. At the bottom left hand side of the screen is information giving you the location of the current character you are working on in both decimal and hex. I designed a hieroglyphic style font which was wonderfully spidery and spikey. It would have been a good font to use while writing a ghost story – I’m sure Mervyn Peake would have approved. Sadly, you would of course need a more than ordinary printer to actually produce the characters on a printed page. But you could wake up sleepy users by fixing it so that important messages suddenly appear on the screen in scrawly handwriting style! I also designed a graphics font but there was a problem remembering the ASCII locations of the graphics.
My only complaint about the FONTGEN utility relates to the display it provides of the existing character’s font that you wish to edit (or blank set of locations waiting for characters in an empty file) eight pixels across and 13 down. If you think 13 is a strange number, it should be made clear that LSI wanted to have 14 with the extra line giving space for clarity between characters. However, the extra electronics involved in providing this would have added unacceptably to the cost of the system. The annoying thing here is that moving the cursor around the display of the font file has to be done using CTRL E, X, S, and D for up, down, left and right respectively.
I did hit another problem due to my own stupidity. I accidentally loaded an empty font file so that there was nothing on the screen. I could find no way out of this other than to switch the machine off and start again. I wonder what happens if you accidentally load an empty font file into your submit autoexec program! Which reminds me, one oddity of the M-Four is that it has no reset button!
Files created with FONTGEN are loaded with the LOADFONT command. This command has several options. As mentioned you can have two fonts loaded at the same time, with Font 1 occupying the first 2kbytes and Font 2 occupying the second 2kbytes. By default, two fonts are loaded. But if you follow the LOADFONT command with /1 this loads Font 1 only, and /2 loads only Font 2. You can also use ‘U’ to underline the loaded font and ‘R’ to reverse the loaded font. You can compound these specifiers to create /1 R for example which loads in Font 1 in reverse video.
The other utilities on the system disk were FORMAT, HELP, TIME, PIP, RDCPM and STAT. These are all menu driven and easy to use. HELP can be used for virtually anything on the system, but LSI seems to have lost interest halfway through the explanations. They go into things in some detail and at the end ask you if you want to see examples. I dutifully asked to see examples every time – but I never found any and always ended up back at the first HELP menu or back to CP/M.
As an example of the clear and unpompous way that HELP is written, look at the explanation of STAT. First you get a long paragraph describing the purpose of the STAT utility: ‘To supply information about the disk drives, files and peripheral devices attached to the computer. STAT also changes attributes of files and devices…’ and it goes on to explain the command line parameters. Then you are told that STAT gives you the free space ‘in kbytes (1024 bytes or 1k) for all online disks since CP/M was loaded’. It describes using STAT to set drives to Read/Write or Read Only, and how STAT VAL shows the possible external devices that can be assigned to your computer.
The manual also describes the utility DISCOPY but I did not find this on any of my system disks.
PIP is a standard CP/M utility to copy, combine and transfer files between peripherals. RDCPM allows you to read CP/M files from MS-DOS.
TIME refers to the real time clock system which tells you the date and time whenever you switch the system on. One pleasing feature about it is that you input the initial date and time in digits it is printed on the screen at the beginning of a session with the day of the week printed in English. Unfortunately my clock had a few problems. On one occasion it told me, on booting the system, that it was 02.59.04 on Monday July 15th 2058!!! LSI assures me that the fault has been patched and now functions properly on production machines.
LSI regards the dual processor as the big selling point of this system and although a similar facility is available on the Digital Equipment Rainbow LSI claims to be in the lead with a machine that is up and running and in the marketplace. Also the Rainbow only uses a 4MHz Z80A. LSI says the M-Four is definitely faster than the Rainbow when running in 8-bit mode and the M-Four is also cheaper for the 128k version (The Rainbow starts at a 64k version, which LSI thinks ridiculous for a 16-bit processor.) LSI also claims the M-Four is cheaper than IBM.
I did find my patience somewhat stretched with the reliability of the machine although the fact that I was testing a preproduction model probably gave me an unfair impression of the system before final bugs had been disguised.
Aesthetically, I thought it an ugly machine which takes up far too much space – especially since the M-Four is being marketed as a single user tool and therefore ought to sit easily on a desk top. It needs a table all of its own about 130cms wide to accommodate the main unit, keyboard and a small printer. It is also very deep, 683mm counting the main unit and keyboard together. The unwieldly bulk of the keyboard and the long stretches involved amount to a significant handicap.
Undoubtedly the major advantage of the M-Four is the amount of standard software it will support Most people should be able to find a package to do more or less what they want under CP/M-86/80 or MS-DOS. It is also useful to be able to use a variety of different density disks in the same drive. On price it matches up respectably against the competition.
These prices apply to the LSI M-Four with 8088 and Z80B dual processors, 128k RAM, real time clock, Centronics printer interface, two RS232 interface ports, screen, keyboard two disk drives and CP/M-86/80.
- Model 150/4 (5!4in double sided drives, two 400k byte disks – £2390
- Model 250/4 (8 in double sided drives with two 1.2Mbyte disks) – £3475
- Model 650/4 (10Mbyte Winchester formatted capacity, 8 in double sided with 2Mbytes) – £4875
- Model 160/4 (5.25in quadruple density double sided disks, not yet in production) – no price available.
- Model 652/4 (21Mbyte Winchester disk, 8in double sided disk) – no price available.
- Extra 128kbytes RAM, one RS232 interface, one RS422 interface – £500
MS-DOS – £500
- CPU: 5MHz Z80B, 5MHz 8088
- RAM: 128k expandable to 256k
- ROM: 4k bootstrap loader
- I/O Ports: Centronics parallel printer ports; 2 x RS232 and 20mA Current loop async ports; General purpose interface bus – optional; RS422 serial port – optional.
- Disks:25in 8in
- O/S: CP/M-86/80, MS-DOS
- Languages: Wide range available under CP/M and MS-DOS
|All timings in seconds. For an explanation and listing of the Benchmark programs, see PCW November 1982.|
First published in Personal Computer World magazine, April 1983