Epson HX-20
Encyclopedia
The Epson HX-20 is generally regarded as the first laptop
computer
, announced in November 1981, although first sold widely in 1983. Hailed by BusinessWeek magazine as the "fourth revolution in personal computing", it is generally considered both the first notebook and handheld computer.
, rechargeable nickel-cadmium batteries, a built-in 120 × 32-pixel LCD
(smaller than that on many mobile phone
s today) which allowed 4 lines of 20 characters, a calculator
-size dot-matrix printer, the EPSON BASIC
programming language, two CPUs at which is essentially a souped up Motorola 6801
, RAM
expandable to , two RS-232 ports at a maximum of for the first 8-pin DIN intended for modem or serial printer with the second port capable of using a 5-pin DIN connector which was mainly for use with external floppy drive and video display an early concept of docking station, a acoustic coupler
was available, built-in microcassette
drive, barcode reader connector. Uses a proprietary operating system
, which consists of the EPSON BASIC interpreter
and a system monitor
program, and weighs approximately . Known colours of the machine are silver and cream, while some prototypes were dark grey. The HX-20 was supplied with a grey or brown carry case. An external acoustic coupler
, the CX-20, was available for the HX-20, as was an external floppy disk drive, the TF-20, and an external speech synthesis Augmentative Communication Device (ACD), ‘RealVoice’. Another extension was the serially connected character video. It used a special protocol, EPSP, which was also used by the external floppy disk drive.
The battery life of the HX-20 was approximately running BASIC and less using the microcassette, printer or RS-232. The data integrety could be preserved in the range. The power supply was rated for . Operating and charging it would tolerate . Data integrety could be preserved at . Stored it would tolerate .
The later, more popular TRS-80 Model 100 line
, designed by Kyocera
, owed much to the design of the HX-20.
each responsible for 40x16 pixels of the LCD. The uPD7227 uses a serial protocol and has two memory banks for switching between rows 0-7 and 8-15. It features multiple modes, including "Write", "Read", "AND", "OR" and "Character". The "character" mode draws characters from a built-in character map.
Each bank is 40 bytes with bit 6 of the address determining the bank and even though the address can be up to 127, nothing will happen when trying to access data outside the banks. If the pointer action in a command is set to decrement and the pointer is at 0, the pointer will wrap to 127.
In the case of a trap, "Trap!" will be displayed in the Monitor and the user can use it for debugging.
When entering Monitor it shows a prompt on the first line, "Trap!" on the second line (if entered via a trap) and the CPU registers
on the third and fourth lines as they were right before the Monitor was entered. These registers are A (Accumulator
A), B (Accumulator B), X (Index Register), C (Condition Code Register), S (Stack Pointer) and P (Program Counter
).
Monitor can be used for reading and writing memory, modifying CPU registers, running code at specific addresses in memory, saving/loading memory to/from a plugin option, etc. This is very useful for debugging programs written in machine code
in difference to programs written in the EPSON BASIC programming language.
There's an "expansion unit" which contains sockets for extra RAM and ROMs which can be mapped to various areas in the address space using a DIP switch
, even replacing the BASIC interpreter ROMs. Some software distributed as ROMs were designed to be used in the expansion unit.
ROM #0 and #1 are known as the I/O ROMs, handling system reset and providing functions for using the LCD, keyboard, clock, printer, speaker, serial communication, etc. The I/O ROMs are equivalent to the BIOS in modern PCs.
ROM #0 also contains the interrupt vector table at FFF0-FFFF. FFFE-FFFF determines what the program counter should be set to on power up or reset. In the standard set of ROMs for the HX-20, this value is E000, the start of ROM #0.
ROM #2 and #3 contains the BASIC interpreter. If the BASIC ROMs are removed from the motherboard, the BASIC option in the main menu will disappear, leaving only MONITOR. This is because ROM #3 contains a program header which is detected by the menu routines. This works the same for all user-created programs, except the program type is different.
rechargeable battery pack. The battery pack is easily replaced by a NiMH (or equivalent) battery pack. Changing the battery pack is not generally considered to reduce the collectible value of the computer, as doing so does not damage any internals.
An easy fix for replacement batteries is to use four AA cells in a holder secured on the inside. The leads can be easily soldered on to the connector from an original battery. It can also work with a lantern battery
on alligator clips.
Laptop
A laptop, also called a notebook, is a personal computer for mobile use. A laptop integrates most of the typical components of a desktop computer, including a display, a keyboard, a pointing device and speakers into a single unit...
computer
Computer
A computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem...
, announced in November 1981, although first sold widely in 1983. Hailed by BusinessWeek magazine as the "fourth revolution in personal computing", it is generally considered both the first notebook and handheld computer.
Features
With about the footprint of an A4 size page, the Epson HX-20 features a full-transit keyboardComputer keyboard
In computing, a keyboard is a typewriter-style keyboard, which uses an arrangement of buttons or keys, to act as mechanical levers or electronic switches...
, rechargeable nickel-cadmium batteries, a built-in 120 × 32-pixel LCD
Liquid crystal display
A liquid crystal display is a flat panel display, electronic visual display, or video display that uses the light modulating properties of liquid crystals . LCs do not emit light directly....
(smaller than that on many mobile phone
Mobile phone
A mobile phone is a device which can make and receive telephone calls over a radio link whilst moving around a wide geographic area. It does so by connecting to a cellular network provided by a mobile network operator...
s today) which allowed 4 lines of 20 characters, a calculator
Calculator
An electronic calculator is a small, portable, usually inexpensive electronic device used to perform the basic operations of arithmetic. Modern calculators are more portable than most computers, though most PDAs are comparable in size to handheld calculators.The first solid-state electronic...
-size dot-matrix printer, the EPSON BASIC
BASIC
BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code....
programming language, two CPUs at which is essentially a souped up Motorola 6801
Motorola 6800
The 6800 was an 8-bit microprocessor designed and first manufactured by Motorola in 1974. The MC6800 microprocessor was part of the M6800 Microcomputer System that also included serial and parallel interface ICs, RAM, ROM and other support chips...
, RAM
Random-access memory
Random access memory is a form of computer data storage. Today, it takes the form of integrated circuits that allow stored data to be accessed in any order with a worst case performance of constant time. Strictly speaking, modern types of DRAM are therefore not random access, as data is read in...
expandable to , two RS-232 ports at a maximum of for the first 8-pin DIN intended for modem or serial printer with the second port capable of using a 5-pin DIN connector which was mainly for use with external floppy drive and video display an early concept of docking station, a acoustic coupler
Acoustic coupler
In telecommunications, the term acoustic coupler has the following meanings:# An interface device for coupling electrical signals by acoustical means—usually into and out of a telephone instrument....
was available, built-in microcassette
Microcassette
A Microcassette is an audio storage medium introduced by Olympus in 1969. It uses the same width of magnetic tape as the Compact Cassette but in a much smaller container. By using thinner tape and half or a quarter the tape speed, microcassettes can offer comparable recording time to the compact...
drive, barcode reader connector. Uses a proprietary operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
, which consists of the EPSON BASIC interpreter
Interpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...
and a system monitor
System monitor
A system monitor is a hardware- or software- based system used to monitor resources and performance in a computer system.Software monitors occur more commonly, sometimes as a part of a widget engine. These monitoring systems are often used to keep track of system resources, such as CPU usage and...
program, and weighs approximately . Known colours of the machine are silver and cream, while some prototypes were dark grey. The HX-20 was supplied with a grey or brown carry case. An external acoustic coupler
Acoustic coupler
In telecommunications, the term acoustic coupler has the following meanings:# An interface device for coupling electrical signals by acoustical means—usually into and out of a telephone instrument....
, the CX-20, was available for the HX-20, as was an external floppy disk drive, the TF-20, and an external speech synthesis Augmentative Communication Device (ACD), ‘RealVoice’. Another extension was the serially connected character video. It used a special protocol, EPSP, which was also used by the external floppy disk drive.
The battery life of the HX-20 was approximately running BASIC and less using the microcassette, printer or RS-232. The data integrety could be preserved in the range. The power supply was rated for . Operating and charging it would tolerate . Data integrety could be preserved at . Stored it would tolerate .
The later, more popular TRS-80 Model 100 line
TRS-80 Model 100 line
The TRS-80 Model 100 was an early portable computer introduced in 1983. It was one of the first notebook-style computers, featuring a keyboard and liquid crystal display, battery powered, in a package roughly the size and shape of notepad or large book....
, designed by Kyocera
Kyocera
is a multinational manufacturer based in Kyoto, Japan. It was founded as in 1959 by Kazuo Inamori and renamed in 1982. The company has diversified its founding technology in ceramic materials through internal development as well as strategic mergers and acquisitions...
, owed much to the design of the HX-20.
LCD
The LCD is 120x32 pixels and is controlled by six uPD7227 LCD controller ICsIntegrated circuit
An integrated circuit or monolithic integrated circuit is an electronic circuit manufactured by the patterned diffusion of trace elements into the surface of a thin substrate of semiconductor material...
each responsible for 40x16 pixels of the LCD. The uPD7227 uses a serial protocol and has two memory banks for switching between rows 0-7 and 8-15. It features multiple modes, including "Write", "Read", "AND", "OR" and "Character". The "character" mode draws characters from a built-in character map.
Each bank is 40 bytes with bit 6 of the address determining the bank and even though the address can be up to 127, nothing will happen when trying to access data outside the banks. If the pointer action in a command is set to decrement and the pointer is at 0, the pointer will wrap to 127.
Monitor
The Monitor program can be accessed via the main menu on startup by pressing 1, by typing the command "MON" in BASIC or by causing a trap, ie. writing/reading to/from protected addresses or executing an illegal instruction.In the case of a trap, "Trap!" will be displayed in the Monitor and the user can use it for debugging.
When entering Monitor it shows a prompt on the first line, "Trap!" on the second line (if entered via a trap) and the CPU registers
Processor register
In computer architecture, a processor register is a small amount of storage available as part of a CPU or other digital processor. Such registers are addressed by mechanisms other than main memory and can be accessed more quickly...
on the third and fourth lines as they were right before the Monitor was entered. These registers are A (Accumulator
Accumulator (computing)
In a computer's central processing unit , an accumulator is a register in which intermediate arithmetic and logic results are stored. Without a register like an accumulator, it would be necessary to write the result of each calculation to main memory, perhaps only to be read right back again for...
A), B (Accumulator B), X (Index Register), C (Condition Code Register), S (Stack Pointer) and P (Program Counter
Program counter
The program counter , commonly called the instruction pointer in Intel x86 microprocessors, and sometimes called the instruction address register, or just part of the instruction sequencer in some computers, is a processor register that indicates where the computer is in its instruction sequence...
).
Monitor can be used for reading and writing memory, modifying CPU registers, running code at specific addresses in memory, saving/loading memory to/from a plugin option, etc. This is very useful for debugging programs written in machine code
Machine code
Machine code or machine language is a system of impartible instructions executed directly by a computer's central processing unit. Each instruction performs a very specific task, typically either an operation on a unit of data Machine code or machine language is a system of impartible instructions...
in difference to programs written in the EPSON BASIC programming language.
Commands
Command | Syntax | Description |
---|---|---|
S (Set) | S |
Writes the 8-bit value "new" (in hex) to 16-bit address |
D (Dump) | D |
Dumps the values from addresses |
G (Go) | G |
Sets the programme counter to the 16-bit address |
X (Examine) | X | Allows the user to display and change the contents of each register. The RETURN key applies the changed value (if any) and jumps between registers. Typing a non-hexadecimal character exits this command. |
R (Read) | R |
Transfer data from an external storage to memory. |
W (Write) | W |
Transfer data from memory specified by the "A (Address)" command to an external storage. See "R (Read)" for more information. ROM cartridge is not supported by this command. |
V (Verify) | V |
Verifies data transferred to an external storage against the memory specified by the "A (Address)" command. See "R (Read)" for more information. ROM cartridge is not supported by this command. |
A (Address) | A | Specify an address range for commands R, W and V. The user will be prompted with T (Top address), L (Last address), O (Offset value) and E (Entrypoint). Offset and entrypoint values are only used by the "W (Write)" and "V (Verify)" commands. |
K (Key set) | K |
Enter a sequence of keys to be pressed automatically on power up (and reset). Press CTRL+@ to stop. A maximum of 18 characters can be entered and function keys counts as two characters. |
B (Back) | B | Return to the procedure from which Monitor was called. |
Expansion port
The expansion port allows hardware to connect directly to the master processor's memory bus, exposing the 16-bit address bus, 8-bit data bus and control signals. An external device can add ROMs, RAM or MMIO-devices to the master CPU's address space. The address range 0x4000-0x5FFF exists solely for this purpose but almost any address can be used.There's an "expansion unit" which contains sockets for extra RAM and ROMs which can be mapped to various areas in the address space using a DIP switch
DIP switch
DIP switches are manual electric switches that are packaged in a group in a standard dual in-line package...
, even replacing the BASIC interpreter ROMs. Some software distributed as ROMs were designed to be used in the expansion unit.
Pin | Name | Direction | Description | Pin | Name | Direction | Description |
---|---|---|---|---|---|---|---|
1 | Vb | - | +5V | 21 | ADDR6 | OUT | Address line 6 |
2 | NMI# | - | Unused | 22 | ADDR7 | OUT | Address line 7 |
3 | +5V | - | Logic voltage | 23 | ADDR8 | OUT | Address line 8 |
4 | +5V | - | Logic voltage | 24 | ADDR9 | OUT | Address line 9 |
5 | DATA7 | IN/OUT | Data line 7 | 25 | ADDR10 | OUT | Address line 10 |
6 | DATA6 | IN/OUT | Data line 6 | 26 | ADDR11 | OUT | Address line 11 |
7 | DATA5 | IN/OUT | Data line 5 | 27 | ADDR12 | OUT | Address line 12 |
8 | DATA4 | IN/OUT | Data line 4 | 28 | ADDR13 | OUT | Address line 13 |
9 | DATA3 | IN/OUT | Data line 3 | 29 | ADDR14 | OUT | Address line 14 |
10 | DATA2 | IN/OUT | Data line 2 | 30 | ADDR15 | OUT | Address line 15 |
11 | DATA1 | IN/OUT | Data line 1 | 31 | R | OUT | Reset |
12 | DATA0 | IN/OUT | Data line 0 | 32 | R/W | OUT | Read (low)/Write (high) |
13 | IOCS# | OUT | I/O chip select | 33 | R (RAM)# | OUT | RAM reset |
14 | Vc | - | RAM backup voltage (+3V) | 34 | E | OUT | ENABLE signal |
15 | ADDR0 | OUT | Address line 0 | 35 | ROM E | IN | ROM enable |
16 | ADDR1 | OUT | Address line 1 | 36 | INTEX# | IN | External interrupt signal |
17 | ADDR2 | OUT | Address line 2 | 37 | GND | - | Signal ground |
18 | ADDR3 | OUT | Address line 3 | 38 | GND | - | Signal ground |
19 | ADDR4 | OUT | Address line 4 | 39 | CG | - | Chassis ground |
20 | ADDR5 | OUT | Address line 5 | 40 | CG | - | Chassis ground |
Memory map
Start | End | Description |
---|---|---|
0000 | 001F | Internal registers |
0020 | 003F | I/O select |
0040 | 007F | RTC registers + RAM |
0080 | 3FFF | RAM |
4000 | 5FFF | Used by expansion unit |
6000 | 7FFF | ROM #4 (Option ROM) |
8000 | 9FFF | ROM #3 |
A000 | BFFF | ROM #2 |
C000 | DFFF | ROM #1 |
E000 | FFFF | ROM #0 |
ROM #0 and #1 are known as the I/O ROMs, handling system reset and providing functions for using the LCD, keyboard, clock, printer, speaker, serial communication, etc. The I/O ROMs are equivalent to the BIOS in modern PCs.
ROM #0 also contains the interrupt vector table at FFF0-FFFF. FFFE-FFFF determines what the program counter should be set to on power up or reset. In the standard set of ROMs for the HX-20, this value is E000, the start of ROM #0.
ROM #2 and #3 contains the BASIC interpreter. If the BASIC ROMs are removed from the motherboard, the BASIC option in the main menu will disappear, leaving only MONITOR. This is because ROM #3 contains a program header which is detected by the menu routines. This works the same for all user-created programs, except the program type is different.
Similar Epson models
- HC-80 (Japanese version of the PX-8Epson PX-8 GenevaThe Epson PX-8 aka Geneva was a small laptop computer made by the Epson Corporation in the mid-1980s.It had a Z-80 compatible microprocessor, and ran a customized version of the CP/M-80 operating system as well as various applications from a pair of ROM cartridge slots...
) - HC-88 (Japanese version of the PX-8Epson PX-8 GenevaThe Epson PX-8 aka Geneva was a small laptop computer made by the Epson Corporation in the mid-1980s.It had a Z-80 compatible microprocessor, and ran a customized version of the CP/M-80 operating system as well as various applications from a pair of ROM cartridge slots...
) - HX-40 (American version of the PX-4Epson PX-4The Epson PX-4 is a portable CP/M based computer introduced in 1985. The screen was 40×8 characters physical, but 80×25 or 40×50 virtual, making it almost compatible with the Epson PX-8 Geneva...
) - HX-45 (American version of the PX-4)
- KX-1
- PX-16 (IBM PC compatible portable, cartridges compatible with PX-4Epson PX-4The Epson PX-4 is a portable CP/M based computer introduced in 1985. The screen was 40×8 characters physical, but 80×25 or 40×50 virtual, making it almost compatible with the Epson PX-8 Geneva...
) - PX-4 (successor of the HX-20, with larger screen and CP/M compatible like the PX-8Epson PX-8 GenevaThe Epson PX-8 aka Geneva was a small laptop computer made by the Epson Corporation in the mid-1980s.It had a Z-80 compatible microprocessor, and ran a customized version of the CP/M-80 operating system as well as various applications from a pair of ROM cartridge slots...
) - PX-8 (Geneva)Epson PX-8 GenevaThe Epson PX-8 aka Geneva was a small laptop computer made by the Epson Corporation in the mid-1980s.It had a Z-80 compatible microprocessor, and ran a customized version of the CP/M-80 operating system as well as various applications from a pair of ROM cartridge slots...
- QX-10 (CP/M desktop), QX-16 (like the QX-10 but with MS-DOS compatibility)
- EHT-30, EHT-40
Problems
A common complaint found in most HX-20 computers today is the failure of the internal Ni-CdNickel-cadmium battery
The nickel–cadmium battery ' is a type of rechargeable battery using nickel oxide hydroxide and metallic cadmium as electrodes....
rechargeable battery pack. The battery pack is easily replaced by a NiMH (or equivalent) battery pack. Changing the battery pack is not generally considered to reduce the collectible value of the computer, as doing so does not damage any internals.
An easy fix for replacement batteries is to use four AA cells in a holder secured on the inside. The leads can be easily soldered on to the connector from an original battery. It can also work with a lantern battery
Lantern battery
A lantern battery is a rectangular, alkaline or zinc-carbon primary battery used primarily in flashlights or lanterns. Lantern batteries are physically larger and consequently offer higher capacity than the more common torch batteries...
on alligator clips.