MSX IS COMING
Part 2: Inside MSX
Tom R. Halfhill, Editor
Last month, Part 1 of this special two-part series reported how more than a dozen companies—primarily Japanese—are preparing to invade the U.S. market with low-priced home computers based on a new standard called MSX. Already established in Japan, and just getting underway in Europe, MSX is expected on U.S. shores in early 1985. This month, Part 2 takes you inside MSX and evaluates the performance of a typical MSX home computer.
If you've been involved in personal computing very long, chances are you've heard of the RS-232 serial standard, the Centronics parallel standard, the CP/M standard, the IBM PC standard, the MS-DOS standard, and a few other standards.
Now there's a new one: MSX. What—if anything—sets MSX apart from all the others?
Here's the quick answer: MSX is perhaps the most workable standard of them all because it's the only true standard.
That statement is not as bold as it sounds. It simply means that MSX was designed from the very beginning as a complete hardware/software standard to be licensed to any manufacturers who want to participate. That concept alone sets MSX apart from all the other so-called standards in personal computing. The others are really de facto standards-they were adopted over the past eight years by accident or by default.
Consider a few examples. Until recently, CP/M (Control Program for Microcomputers) was the dominant operating system on business and high-end personal computers. Thousands of programs have been written for CP/M. You can run it on dozens of different machines, from battery-powered lap portables to desktop computers with multiple floppy drives and hard disks. In 1984, Commodore even released a plug-in cartridge that lets you run CP/M on its popular Commodore 64 home computer.
It would seem that any computer which could run CP/M could also run CP/M programs, but it's not always that easy. For instance, a Commodore 64 with the CP/M cartridge can theoretically run any CP/M program—if you can load the program into the computer. Unfortunately, the Commodore disk format is not compatible with other CP/M disk formats. So you can't just stick a CP/M disk into a 1541 disk drive and load up a CP/M program, even though the program would probably run if you could. Instead, you have to wait for someone to make the program available on a Commodore disk.
Or consider the IBM Personal Computer standard. Since the IBM PC was introduced in 1981, it has emerged as the dominant machine for business computing. PC-compatible computers made by independent manufacturers abound. MS-DOS and PC-DOS—close relatives to each other—have dethroned CP/M as the ruling operating systems. More than a thousand programs have been written. But none of the so-called IBM-compatible computers are really 100 percent compatible, because IBM aggressively defends its copyrights and patents (as it has every right to do). When other manufacturers copy the IBM PC too closely, they can wind up in court. When they don't copy it closely enough, they can wind up out of business.
Even IBM's own computers within the PC line are not fully compatible. Some PC programs just don't run on the PCjr—including IBM Disk BASIC. The Portable PC has encountered a few difficulties too.
Likewise, just because a printer or some other peripheral has a Centronics-standard parallel port or an RS-232-standard serial port doesn't mean it will match perfectly with the parallel or serial port on your computer.
Quite often there are interfacing problems with connectors and so forth.
The basic problem with all the de facto standards is that, because they were developed more or less haphazardly and were not thoroughly and rigidly defined (or adhered to), they aren't true standards. And that's exactly what MSX aims to change. The main question is: How well will it succeed?
Although MSX is primarily backed by Japanese consumer electronics and computer companies, it was invented by an American company—Microsoft, Inc. (See Part 1 in last month's COMPUTE!.) MSX stands for Microsoft Extended. As the name implies, MSX is an extension of current technology rather than an entirely new technology.
Whenever someone sets out to design a new standard, the first decision they face is whether to make it compatible with existing technology, to discard old restrictions to take full advantage of new technology, or to strike some sort of balance. The MSX designers struck a balance.
Trying to create a standard for home computers, not for expensive business or high-end personal computers, the MSX designers chose technology which is relatively simple, proven, and cheap. It's sufficient to get the job done, but technological overkill it's not. Still, because the technology has been around so long (in computer industry terms), the MSX designers were able to squeeze out every drop of potential performance.
The MSX standard is based on the following components and specifications:
- Zilog Z80A Central Processing Unit (CPU)—an eight-bit microprocessor chip clocked at four megahertz.
- 32K of Read Only Memory (ROM), containing MSX BASIC and the Basic Input/Output System (BIOS).
- 8K minimum Random Access Memory (RAM), with 64K recommended for the U.S. and European markets.
- 16K of video RAM (screen memory). This is in addition to user RAM.
- Texas Instruments TMS9918A video chip, which provides several text modes ranging from 29 columns X 24 rows to 40 columns X 24 rows; 256 redefinable characters (6 X 8 pixels), including alphanumeric, European, and graphic characters; several graphics modes, with a maximum resolution of 256 X 192 pixels; 16 colors; and 32 sprites (maximum four per horizontal line). This is the same video chip found in the TI-99/4A computer and the Coleco Adam.
- General Instruments AY-3-8910 programmable sound chip, providing three sound channels covering eight octaves with 12-bit frequency resolution. This is the same sound chip found in the TI-99/4A, Coleco Adam, and IBM PCjr. The chip also controls input/output via the joystick controller port (at least one Atari-type port required).
- At least one physical expansion slot for system expansion and cartridge software. The slot contains address lines for four logical slots, each addressing 64K, so memory space is expandable to 256K. In addition, each logical slot can be split into four more physical slots, yielding a system total of 16 expansion slots with total memory space of one megabyte (1000K).
- Keyboard with at least 70 keys, including separate cursor-control keys, screen editing keys, five special function keys which can be shifted to provide ten functions, and keys to shift the keyboard into graphic and special character sets. (But no numeric keypad.)
- MSX-DOS floppy disk drive interface. Although the hardware interface is not necessarily standardized, the disk format is: MS-DOS. That means an MSX drive can read disks formatted on an IBM PC or PC-compatible. Formats are standardized for 8-inch, 5 1/4-inch, 3 1/2-inch, and 3-inch disks. MSX-DOS requires a system with at least 64K RAM.
- Cassette interface using frequency shift keying format, selectable 1200/2400 baud.
- Standardized cartridge slot sizes, expansion addressing schemes, pin assignments on all interfaces, signal levels on all pins, memory maps, operating system entry points, RAM vectors, etc.
The above specifications are the minimum MSX requirements. Beyond them, MSX defines "standardized optional extensions" and also leaves manufacturers free to add enhancements of their own—as long as they don't interfere with the standards. The standardized extensions include an 80-column text mode, RS-232 serial port, parallel printer port, and a battery backed-up CMOS clock. Enhancements seen to date range from videodisc-mixing interfaces to instrument-quality music synthesizers—features that are either unavailable or much more expensive on American personal computers which claim to be more advanced technologically than MSX.
The enhancements are significant from a marketing as well as a technological standpoint. Since all MSX computers are basically the same, any extras added by each manufacturer serve to differentiate their models in the marketplace. Usually these extras reflect the manufacturer's expertise in other areas of consumer electronics. For example, JVC's MSX computer has a videodisc interface which can mix video and computer graphics on the screen simultaneously. The result is videogames and interactive educational programs with stunning realism.
A Yamaha MSX machine—the CX5M Music Computer—has a built-in synthesizer that puts even the Commodore 64 SID chip to shame. With its MIDI (Musical Instrument Digital Interface) jack and two optional music keyboards, the CX5M may find as many buyers among musicians as among computer hobbyists.
Another important MSX feature is the software compatibility of MSX-DOS. You might think that because MSX-DOS uses the same disk format as MS-DOS, it should run MS-DOS software. But it doesn't—remember, MS-DOS is an operating system for 16-bit computers. Instead, MSX-DOS is designed to run software written for the most popular eight-bit operating system: CP/M-80 2.2. This opens up a huge library of existing programs, including business and professional programs such as Multiplan. This partially answers the frequent criticism that most MSX software is game-oriented. However, exactly how much CP/M software is compatible with MSX-DOS remains to be seen.
In theory, then, MSX seems like an organized, carefully constructed standard. But the real world is messy. How workable is MSX in practice? After all, inventing a standard is the relatively easy part; the strict compliance that's necessary to keep it viable is much harder.
In Japan, where MSX made its debut in late 1983, it seems to be working well. Hundreds of thousands of machines have been sold, capturing a significant share of the home market, even though Japanese MSX computers are rarely equipped with disk drives or more than 16K RAM. Hundreds of cartridge programs have been released—mostly games—and all the cartridges are fully compatible with all the MSX machines (more than a dozen different brands). Japanese computer magazines publish programs in MSX BASIC and machine language that run on every MSX computer without modification.
Two enforcers guard the software and hardware gates of the MSX standard. First, marketing pressure: No software publisher wants to narrow its potential market by writing a program which is compatible with some MSX computers, but not others. Second, legal pressure: MSX licensees must comply with Microsoft's minimum MSX specifications to use the MSX label on their computers. So adherence to the standard seems virtually guaranteed.
Although the MSX hardware seems unlikely to win any awards for advanced technology, the designers have extracted maximum performance with some impressive system software. In fact, MSX BASIC may well be the most powerful BASIC interpreter built into any personal computer at any price.
MSX BASIC is an extension of Microsoft BASIC 4.5 and is patterned after GW-BASIC, a common BASIC on 16-bit computers. It is a close relative to both TRS-80 Color Computer Extended BASIC and IBM PCjr Cartridge BASIC. Unlike the BASICs built into, say, the Atari and Commodore 64—computers with powerful sound and graphics capabilities—MSX BASIC has nearly all the commands you need to access its sound and graphics features without PEEKs, POKEs, or machine language. And that includes the sprites.
This article can't cover every command, statement, and function in MSX BASIC, but here are some highlights:
Besides the usual decimal numbers, constants can be expressed in hexadecimal, octal, or binary with the prefixes &H, &O, and &B. Variables can be any length, two characters significant, and either integer, single-precision, or double-precision. Arithmetic is performed with double-precision accuracy to 14 digits in Binary Coded Decimal (BCD), so the rounding errors common on other home computers are much rarer on MSX machines. There's a full set of relational operators (=, <, >, <>, < =, > = ) and bitwise operators (NOT, AND, OR, XOR, EQV, IMP). Line numbers can range from 0 to 65529.
MSX BASIC has full-screen editing similar to Commodore, Atari, and IBM computers. The ten special function keys are preprogrammed with BASIC commands and can be redefined by the user. Auto line numbering and renumbering are built-in. TRON/TROFF commands let programmers trace a program as it executes, and ERROR lets them trap bugs from within programs. MSX BASIC supports DEF FN (defined functions); DEFUSR (jumps to machine language routines); array ERASE; variable CLEAR; LINE INPUT; PRINT USING and LPRINT USING; RESTORE to a line number; RESUME after error; SWAP variable values; conversions between decimal, hex, octal, and binary constants; VARPTR (variable address pointer); numerous string manipulators; KEY, KEY LIST, KEY ON/OFF, and ON KEY GOSUB (for the function keys); STOP ON/OFF/STOP and ON STOP GOSUB (for trapping the STOP key); and INTERVAL ON/OFF/STOP (interrupts from BASIC).
For graphics and sound, MSX BASIC supports SCREEN (for setting the graphics mode and other options), LOCATE (to specify a character position for PRINT), POINT (to determine the color of a specified pixel), COLOR (for setting screen colors), CIRCLE, DRAW, LINE, PAINT (a fill command), SPRITES (to define a sprite), SPRITE ON/OFF/STOP, PUT SPRITE, VPEEK and VPOKE (PEEK and POKE video RAM), BEEP, PLAY, and SOUND. Other interesting functions are STICK (read the joystick), STRIG (read the joystick button), PDL (for paddle controllers), and PAD (to interpret input from a touch tablet).
There are many more features, but from this overview it's clear that MSX BASIC is not only more powerful than the BASICs built into other home computers, it's also as powerful as most extended BASICs available at extra cost. There's even a CALL statement which lets manufacturers add their own commands for special features, such as CALL TALK for a voice synthesizer. There's nothing basic about MSX BASIC.
Despite its eight-bit leash, MSX BASIC contains another pleasant surprise: It's lightning fast.
To measure just how fast, COMPUTE! Assistant Editor Philip Nelson ran a series of benchmark tests using a simple bubble sort program. The program was written in plain-vanilla BASIC so it would run unmodified on a variety of popular computers. It creates a numeric array of 150 elements which are then sorted. Although this certainly isn't the most thorough benchmark test that could be devised, it is revealing. Several typical operations are involved, including array dimensioning, looping, and relational comparisons. Here's a listing of the test program:
100 PRINT "CREATING ARRAY" 110 DIM A(150) 120 FOR J = l to 150 130 A(J) = 151–J 140 NEXT J 150 PRINT "SORTING" 160 EX = 0 170 FOR K = 0 TO 149 180 IF A(K) > A(K + 1) THEN T = A(K) : A(K) = A(K + 1) : A(K + 1) = T : EX = 1 190 NEXT K 200 IF EX < > 0 THEN GOTO 160
The only changes made to this program were double colons in line 180 as required for the TI-99/4A. Following are the test results expressed in minutes:seconds.
|Apple II Plus
|TRS-80 Color Computer
The specific results of this test aren't as important as the general conclusion. Although an MSX-based computer (and virtually any machine designed earlier than about two years ago) could be termed technologically ancient, the streamlined performance of the MSX is nothing to sneeze at.
Nevertheless, it remains difficult to predict whether or not MSX will succeed in America. Will consumers in 1985 be impressed with its affordable features, or bored by its technology? Both Commodore and Atari are expected to introduce new 16-bit or even 32-bit home computers at the same Winter Consumer Electronics Show where MSX will probably debut in January. Will these machines make MSX look even more tired in comparison? As long as a home computer has sufficient software and power to get the job done, does it matter to the average user if it contains an 8-bit or a 32-bit CPU?
Will MSX succeed because of the compatibility solution it offers? Are consumers tired of new computers that won't run anybody else's software? Or will they prefer the latest hot-technology machines, even if it means waiting for software?
If MSX does prevail, how will competitors react? Will they resist the standard or join it?
After IBM's recent tribulations with the PCjr, and the brick walls that TI, Atari, Mattel, and Coleco ran into in the fast lane, nothing is certain anymore in the home computer market.