Classic Computer Magazine Archive CREATIVE COMPUTING VOL. 9, NO. 3 / MARCH 1983 / PAGE 101

Epson HX-20 computer. (evaluation) David H. Ahl.

Epson HX-20 Computer

If you have picked up just about any computer magazine in the last six months you have probably seen the double page ad spread in which the Epson HX-20 is pictured full size. Indeed, the unit could almost have been pictured on a single page, since it measures just 8 1/2 X 11 3/8 . Its height is a diminutive 1 3/4 .

But that's mothing new, you say. The Sinclair ZX80 is about one half the size of the HX-20 and it has been out for several years. True, but at the risk of offending scores of loyal Sinclair owners, let me observe that the Epson has a great deal more capacity and capability built in. I was tempted to say that the HX-20 is a "real computer,' but that would have been a low blow, and incorrect too--the ZX80 and 81 are as real as any.

In addition to small size, the other main thing that sets the Epson apart from the field is built-in battery power for true portability.

While we cannot report definitively about reliability and support, we speculate that they are likely to be excellent, given the outstanding reputation of Epson in the printer market. For a "one of the pack' company three years ago to emerge as the dominant supplier of dot matrix printers worldwide indicates they are doing a lot of things right. Contributing to this success is undoubtedly some guidance from the Seiko parent company, but mainly an excellent management team in the U.S., Japan, and other countries.

A Compact Portable

As mentioned above, the HX-20 is about the size of a three-ring binder and, at 3 1/2 pounds, not much heavier. It fits easily into an attache case or slipcase. Unlike some portable videotape machines that require a battery which weighs nearly as much as the machine itself, the HX-20 rechargeable battery is built-in and included in the 3 1/2 pounds. The nickel-cadmium batteries can keep the HX-20 running for 50 hours, yet need only eight hours to recharge. This is very impressive since most ni-cad battery run time to charge time ratios are just the opposite.

Most calculators today, even the least expensive units, have an automatic shut off. For example, APF units shut off automatically if nothing has been pressed after seven minutes. The HX-20 lacks this feature which I found a bit surprising.

However, when the HX-20 is shut off, it continues to trickle a small amount of power through the all-CMOS memory, thus keeping intact all the contents in memory. As long as the unit is recharged from time to time, these programs and data will be stored indefinitely.

Full Stroke Keyboard

The keyboard of the HX-20 is in the standard QWERTY layout with a few extra keys on the right side. In particular, in addition to letters, numbers and the usual symbols, the HX-20 includes two kinds of brackets, four directional arrows, and five keys for providing instructions to the computer. These keys include home/clear, insert/delete, scroll up/down, number, and graph.

The number key is, in effect, a type of shift key which engages a numeric keypad using the keys, mJKLUIO,7,8, and 9. The graph key is also a type of shift key which produces block graphics and symbols from the keyboard.

Above the keyboard to the right are eight function keys. Three functions are built-in: pause, menu, and break. The five other function keys may be programmed by the user.

As its name implies, the pause key causes a running program to halt temporarily. Hitting any key causes it to resume.

The menu key brings up a menu on the screen. On the menu, Number 1 is always Monitor, 2 is Basic, and 3 through 7 are user-written programs. More about this later.

Break halts a running program and returns to Basic. The contents of memory are not altered upon pressing it.

The five programmable function keys come from the factory with certain functions preset:

Functions such as LIST and RUN execute the command when the key is pressed. Other commands such as LOAD and SAVE appear on the screen followed by a space and wait until the user fills in the rest of the command.

Recessed on the right side of the computer toward the rear is a reset switch. Pressing it interrupts the computer and calls up the initial menu. Also on the right side is an off/on rocker switch.

Other external controls include two for the printer, an off/on slide switch and a paper feed button. A rotary view angle control on the left side actually changes the angle of the LCD elements of the viewscreen slightly to suit your operating position. You simply turn the knob until maximum contrast is achieved.

An Open Window

The display is a 20-character by 4-line liquid crystal display (LCD) unit. It is unlike a calculator in which each number is formed from a combination of seven line segments; instead, the screen consists of 120 x 32 pixels or dots. Characters are formed within a 5 x 7 dot matrix. This means, of course, that lower case letters do not have real descenders as they do on full screen video displays.

The screen is actually a "window' onto a much larger virtual screen. The size of the virtual screen can be defined by the user to be between 20 and 255 characters wide and 4 to 255 lines high. This does not mean that you can define a screen measuring 255 x 255, because that would require far more memory than is available in the HX-20.

The window may be moved horizontally and vertically with the arrow keys or, within programs, by using four Basic language commands: width, scroll, locate and locates. The locate command moves the cursor anyplace on the screen and automatically displays that portion of the screen in the display window. Locates allows you to display any desired portion of the virtual screen in the LCD display window.

Although the text is formed of pixels, Epson has chosen to offer two independent display modes, text and dot-addressable graphics. On the HX-20 LCD display, these two display modes may be superimposed on each other; this is not possible on an external monitor or TV set.

As delivered, the HX-20 does not drive a monitor or TV set; an extra module, which was not available at the time of this evaluation, is necessary. The specifications I was given for the display dimensions on a monitor or TV set sound a bit strange--32 characters by 6 lines. The graphics display was quoted as 128 x 96 pixels in monochrome or 128 x 64 in four colors.

Our friends at Personal Computer World in England tell us that if you use color, a bizarre addressing mode, in which there are 64 physical pixels vertically but 96 addresses, prevails. Hence, either 0,0 or 0,1 will light the pixel at 0,0, but only 0,2 will light 0,2 and so on, alternately. That could lead to some "interesting' effects.

Dual Processors

The HX-20 represents a sharp departure from conventional microcomputer architecture. It uses two 6301 (huh?) microprocessors, designed and manufactured by Epson. They are supposedly compatible with the Motorola 6800. Other computers with multiple MPUs usually use one for processing and memory control and the other for I/O and display functions. In contrast, the MPUs in the HX-20 are in somewhat more of a master/slave relationship.

The master MPU does the processing and also controls the memory, keyboard, display, clock, and barcode reader using external ROM while the slave MPU controls the printer, cassette recorder, RS-232 and high-speed serial ports, and the trickle power function when the unit is turned off. For these functions, the slave uses 4K of ROM which is on the MPU itself. Also on each MPU are 128 bytes of RAM. The two MPUs communicate with each other by means of a 38,400 baud serial link rather than the parallel link that one might expect.

The HX-20 is delivered with 16K of RAM which is optionally expandable to 32K with an external module. We expected that a compact unit like the HX-20 might use 64K memory chips. It does not; the built-in 16K is in the form of eight 16K bit chips. However, the 32K of ROM which contains the monitor, Basic language, and the like is found on four 64K bit chips. There is also a spare socket for 8K of expansion ROM.

Built-in Printer

On the top left of the HX-20 a small adding machine type printer is found. It uses rolls of plain paper 2 1/4 wide. It appears that standard adding machine tape can be used in the printer. The ribbon cartridge looks like a nimiature version of the one in the MX-80 printer and is unexpectedly easy to replace.

UP to 24 characters can be printed on one line 1.85 in length. The characters appear smaller than those produced on other printers, but are equivalent to 9-point type (the same as the type in this article). In fact, the MX-80 also produces 9-point type. The difference is in horizontal spacing of characters; the MX-80 and other similar printers print 10 characters per inch while the HX-20 packs 13 characters per inch.

For printing of graphics, this closer spacing leads to a crisper image than that produced by many dot matrix printers. Built into the firmware is a simple routine to get a screen print. Also, as mentioned above, LLIST is function key 3.

Printing speed is roughly 17 characters per second or 42 lines per minute. The printer sounds like a swarm of angry hornets being driven from their nest. The MX-80 sounds like a church mouse by comparison.

The HX-20 can drive an external printer, however, at the time of this test we did not have an interface cable or the documentation to build one.

Beeps and Boops

Behind a 1/2 x 2 rectangle of holes under the LCD display is hidden a speaker. Well, not exactly. It is a piezo-electric device which can be programmed to beep and boop at different pitches and durations.

Within Basic is a command, SOUND pD. The parameter p corresponds to pitch (four-octave range); while the parameter d corresponds to duration in tenths of seconds.

External Devices

Two external devices have already been mentioned, a printer and a monitor or TV. To connect to these and other devices, the HX-20 has two DIN connectors on the back. An 8-pin socket is for RS-232C devices such as terminals, printers, modems, and even other computers. It communicates at speeds up to 4800 baud.

A second 5-pin DIN socket has a maximum transfer rate of 38,400 baud for communicating to disk drives or, with an adapter, to a monitor or TV set.

On the right side are four mini sockets, three of which hook up to an external cassette recorder. One socket is for input, one for output, and the third for motor control. The fourth mini socket is for a barcode reader.

On the left side is a flat connector normally covered by a piece of black plastic. This is a parallel connector for a 16K expansion RAM memory module.

An optional device which, if installed, occupies the top right of the case is a microcassette recorder. This same space can also be occupied by optional ROM software modules. The microcassette recorder is a digital unit, not audio, although it uses standard microcassettes. It reads and writes at a speedy 1300 baud and can store about 50K bytes of data or programs on a 30-minute cassette. This is equivalent to about 40 double-spaced typewritten pages. A nice feature is an accurate tape counter which allows fast winding to a program or area of data before loading. This is not a manual counter as found on other recorders, but is in software. Very neat!

The only other external device is a 6-volt power supply that plugs into the back of the HX-20. This is normally used for recharging and not for computer operation, although it can be if the batteries are low and you simply must use the unit.

Basic Language

Epson Basic, called EBasic appropriately enough, is similar to Microsoft Basic, but was written by Ski Soft, Inc. of Cambridge, MA.

To enter Basic, you simply select Option 2 from the menu. Almost like a mini-timesharing system, the HX-20 gives you a choice of five program areas. If you do nothing, you will automatically be in P1 (Program Area 1). To get into another area or program, you use the LOGIN command. If you want your program to be added to the menu list, you simply give it a TITLE and it will automatically become the next one on the list.

Once a program has a title and is on the menu list, it cannot be written over. Even giving the command NEW will not erase it. This is a very valuable protection device. Actually, it took me some time to find out how to get rid of a program; a null title seems to be the answer, i.e., TITLE"'.

Good editing functions such as automatic line numbering starting wherever you wish, line renumbering, delete, and non-destructive cursor movement are provided. Basic also provides a STAT command for getting the statistics on all the programs in the machine (title, size, available memory).

The pause has a second very useful function when writing programs. In particular, it can be pressed while a program is listing. Remember, you see only four or fewer lines on the display. By pressing a number after pause you automatically set a scroll speed from very slow (9) to very zippy (1).

To debug a running program, EBasic incorporates a trace mode. The command TRON turns on the trace mode. What this does is show on the display the line number of each new line as it is executed. Trace can be turned on and off from the keyboard or from statements embedded in the program.

Basic has the usual numeric and string variables. Variable names may be up to 16 characters long and must begin with a letter. Certain words that mean something in Basic are reserved and may not appear in a variable name. For example, NOTE is an illegal name because it begins with the reserved word NOT. There are 137 reserved words.

Commands may be issued in either upper or lower case; the HX-20 is case insensitive in this case (groan). Thus, although output statements (PRINT, LPRINT) will preserve upper and lower case, the Basic language itself doesn't care. To it, the variable names MAX, Max, and max are all the same.

Under the default conditions, the HX-20 allows for up to 200 characters in the string variable workspace. If this is not enough for a given program, the string space can be enlarged by the command CLEAR. For example CLEAR 1000 clears out an area which can store up to 1000 characters. However, a large string space does not mean that you can have one string that is 1000 characters long; the maximum length of one string variable is 255 characters.

EBasic has a rich library of 38 numeric and 13 string functions. The expected math and trig functions are present as well as many graphics and numeric conversion functions. The early copy of the manual with our HX-20 did not have all the functions fully defined or explained; some of them looked most unusual.

Three interesting functions are DAY, DATE$, and TIME$. Since low power is continuously applied to the memory of the HX-20, why not put in a piece of quartz and let the computer tell the day, date, and time (particularly if your parent company is Seiko)? That is what the designers did, hence, once entered, these values are available in programs.

As with the functions, the expected numeric operators are all present. Boolean operators are also available, including the seldom seen implication (IMP) and equivalence (EQV) in addition to the more common AND, OR, NOT, and XOR.

The HX-20 has no calculator mode built in, per se. However, Basic has an immediate mode so that entering a command such as PRINT 3.25/.005+2.4 will cause the calculations to be performed and the answer to be displayed. Furthermore PRINT can by typed as a question mark to minimize keystrokes.

The HX-20 can perform calculations in both single-and double-precision (16 digits) accuracy. Variables and data can be decimal, hex, and octal(!) integers.

All the usual, expected statements and commands are in EBasic along with a few notable additions. In particular, an INPUT$ statement is included; it reads a specific number of characters from the keyboard or a file and waits until they are all delivered before proceeding.

Again, the file handling statements are pretty much as one would expect, but with a few interesting additions. The function LOF returns the length of an open file in bytes. Each file is defined in the form "Device name: file name' with file name being optional. As on DEC's RSTS-11 (Resource Sharing, Time Sharing) system, a file can be easily directed to another device by simply changing the name. Recognized devices include the keyboard, display, internal and external cassette recorders, RS-232 ports, and internal printer. We are told that the ROM software packs will be recognized also.

Files may be saved in either ASCII or a compressed binary format. The files mentioned above (tape, printer, display, etc.) are all sequential files. However, files in the RAM memory are random access. In addition to allocating string space, the CLEAR command can be used to set aside protected file space. Once allocated, individual files can be defined in this cleared area using DEFFIL which defines record length and number of bytes from the beginning of the first record. All types of data may be mixed in a record.

It would seem that RAM memory files would be quite useful for storing tables of constants or conversion factors that must be frequently referenced or for storing data to be passed from one program to another. This sort of capability encourages structured programming since intermediate results are easily set aside for use in the next set of steps.

The graphics commands are adequate if not extensive. PSET lights up one pixel, PRESET turns it off, and LINE draws a line between two defined points. POINT is a cousin of PEEK in that it tells if a particular pixel is lit up.

In summary, EBasic is sophisticated and well suited to the capabilities of the HX-20. We expressed disappointment in the Basic implementation for the DEC Rainbow 100 in that it did not take full advantage of the hardware; this Basic is quite the opposite. As would be expected, the Basic tends to be oriented most strongly toward business, engineering, and educational applications. Graphics games enthusiasts should look elsewhere.

Monitor and Machine Language

When you switch on the HX-20, the screen always shows the menu, the first three lines of which are always the same, namely:

CTRL/@ Initialize



The first line essentially says that pressing the control and ampersand keys together will initialize the computer. This clears all memory contents and the system clock. It also sets default values for memory size, and file space, and reassigns the five function keys to the ten preset functions described above. Thus control/@ is a global and somewhat dangerous command.

According to the rather sparse documentation we had, more of which later, the monitor is interrelated with "assembly language' programming. Unfortunately the documentation provided no instructions whatsoever for writing machine or assembly language programs. The closest we came to doing anything in assembly language was to use the MEMSET command to allocate space for programs below the space for Basic programs.

If the processor is truly compatible with the 6800, then one could presumably use one of the many books on 6800 programming to write code for the HX-20. I am not sufficiently versed in 6800 programming, or any machine language programming for that matter, to experiment with this.

The monitor commands allow dumping and changing blocks of memory and saving binary files on tape. The monitor also gives you the ability to change the contents of the various processor registers and set breakpoints. One nifty command is K which allows you to set up a "boot' program which is automatically executed when the HX-20 is switched on. Hence, you could have the machine come up in Basic, a word processing program, or anything else you wanted.

With the standard 16K memory, the amount of memory normally allocated to Basic programs is 12,891 bytes; another 500 bytes are allocated to variable and string file space; the balance is used by the system. Adding the 16K expansion memory pack increases the available program space to 29,275 bytes.

Other Software Packages

At the time of our evaluation, none of the other software packages was available. But at a recent conference, the Epson people were showing a pre-release version of a word processing package called Correspondent and mailing list program, MList. Both are to be made available "soon' on ROM packs.

Other software packages in the works include a spreadsheet program, Epsoncalc; a database management package called Personal Office, and a sales order package which lets orders be recorded, issues receipts, and downloads order files to a host computer at the home office.

Also in the works is a program writer type of package, DIY, along the lines of The Last One which is said to allow users to write software in plain English. We are somewhat skeptical about these type of packages, but this one could turn out to be better.


At a recent conference, I held up the HX-20 in one hand and two fat three-ring binders of documentation in the other. I remarked that this is the first computer for which the documentation was larger and weighed more than the computer itself. Actually, that is not quite fair as the documentation I had was preliminary, double spaced and reproduced on only one side of the sheet. Presumably, when it is typeset and printed it will be considerably more compact.

I had only the documentation for the Basic language which, as mentioned earlier, was produced by Ski Soft. The manual was an excellent combination of tutorial and reference material. Epson has a well-deserved reputation for userfriendly documentation, and this was no exception. Unfortunately, the manual lacked an index, a curious omission.

Unfortunately, several letters and six phone calls to the Epson folks in California failed to elicit a copy of the technical manual. Dick Pountain at PCW wangled a copy from the British distributor and he reports that it, like the Basic manual, is quite goos.

Dick reports that "the technical manual is remarkably detailed, going through all the hardware down to the signal and timing level and ending with maintenance and repair instructions which are intended for the dealer and repair shop.'

In Summary

The HX-20 is a quantum leap forward in putting the power and capability of a full computer in a compact package. It is aimed squarely at business and educational users, both those willing to do their own programming as will as those seeking a turnkey machine. The planned software releases on ROM pack will enhance the usefulness of the machine substantially.

Personally, I believe the version that will have the widest acceptance is the one with the built-in microcassette recorder. Although using an external tape cassette recorder saves a few dollars on the purchase price, it reduces portability and does not permit the use of the excellent fast wind and seek capabilities. For many purposes, the built-in microcassette will obviate the need for a floppy disk drive (not expected out until well into 1983).

The quality of the full-stroke keyboard is excellent, although because it is actually part of a printed circuit board, there is noticeable "give' during fast typing.

Strengthening or supporting this board would be a welcome modification. Nevertheless, it is certainly suitable for light word processing and I look forward to the introduction of the ROM pack.

For working on a plane, train, or away from the office the HX-20 is unrivaled. How often I have dreamed of having a spreadsheet or word processing computer with me on cross country or transatlantic plane trips! It would seem that the HX-20 is the answer to these dreams.

The barcode reader is an interesting add-on that could open up a huge market for stock control and sales order applications.

Given the immense marketing clout of the Epson organization, I expect the HX-20 to occupy a significant place in the computer market before too long. This suggests that many third party vendors will rush in to produce software packages which should contribute to the desirability and acceptance of the computer.

Epson America, Inc., 3415 Kashiwa St., Torrance, CA 92505.


Table: Approximate Pricing

Photo: Figure 1. Top view of HX-20. The computer is about the size of a piece of paper.

Photo: Figure 2. Right side view of HX-20.

Photo: Figure 3. Rear of HX-20.

Photo: Figure 4. The preliminary documentation was nearly three times as big as the computer. The final typeset and printed documentation is more manageable.

Photo: Figure 5. Print sample from the HX-20 computer and MX-80 printer. Note the tighter 13 characters per inch spacing on the HX-20 print compared to the 10 cpi spacing of the MX-80.

Photo: Figure 6. Short HX-20 program to print a curve of a sine wave on the built-in printer.

Photo: Figure 7. Program to make the HX-20 into an expensive digital clock. the date and time are displayed in the center of the screen. The program "beeps' as each new second is displayed.

Photo: Figure 8. A simple game, "Hit or Miss,' is in the manual. In it you must fire a missile from the bottom of the screen to intersect a car at the top before it hits the running man.

Products: Epson HX-20 Computer(Computer) - Evaluation