Heathkit H-19 Emulator

Written by Les Bird in 2010

The Heathkit H-19 Emulator is a program that emulates the functionality of the H-19 terminal. The H-19 was developed by the Heathkit company in the late 70's and early 80's and was one of their most successful computer add-on devices. The H-19 terminal is based on the Z80 processor and a custom code ROM, keyboard ROM and font chip. The terminal supports the full ASCII character set with 33 additional graphic characters and direct cursor addressing. It supports ANSI and Heath ESC sequences and can be configured for either using SW402 switch 5.

My emulator uses Z80 emulation to execute the exact ROM that was in the terminal. By doing this, all of the special modes that the H-19 supported, such as ANSI and Heath ESC sequences, are also supported in my emulator. It also uses the H-19 font ROM for the character set and graphics. The output is rendered to an XNA surface using sprites. The H-19 also had a keyboard ROM for decoding the keyboard encoder and converting the data to the appropriate ASCII symbol, however, my emulator does not use the keyboard ROM but instead intercepts the keyboard keystrokes and manually converts that information to what the H-19 code ROM expects.

Function Key Mapping

The PC function keys are mapped to the H-19 function keys as follows:

F1 through F5 are the same as the H-19.
F6 is mapped to the ERASE key on the H-19.
F7 is mapped to the BLUE function key on the H-19.
F8 is mapped to the RED function key on the H-19.
F9 is mapped to the GREY function key on the H-19.
F10 is mapped to the RESET button on the H-19.

All ROMs are included as part of the download package so there's no need to track them down. In the future I hope to add more ROMs to the package such as the Super-19 ROM by ATG Systems. These ROM upgrades from 3rd party vendors added new functionality to the terminal such as, for example, a realtime clock.

The basic process for using this emulator is as follows:

1. Connect your PC to a vintage computer's terminal port using a COM port on your PC and a serial cable.
2. Flip the SW401 and SW402 switches for the settings you prefer (see table below).
3. Select the baud rate you want to use for communicating with your vintage computer.
4. Click the CONNECT button to go live.

The installer will automatically download any prerequisites such as .NET 3.5 and XNA if they are not already on your system.

The emulator has been tested on PCs running Windows XP and Windows 7.

The H-19 Emulator Control Panel

The H-19 Control Panel is used to configure the settings of the emulator, just as with the real H-19 terminal. The switches on the control panel are exactly matched to the switches on the H-19 terminal logic board.

H-19 Emulator Control Panel

The switch settings are used as follows:

0 Baud rate selection (see table below)
1 Baud rate selection (see table below)
2 Baud rate selection (see table below)
3 Baud rate selection (see table below)
4 Parity enable
5 Odd/Even Parity (On = even parity)
6 Normal/Stick Parity (On = stick parity)
7 Half/Full duplex (On = Full duplex)

Baud Rate Table
0 1 2 3
N/A 0 0 0 0
110 1 0 0 0
150 0 1 0 0
300 1 1 0 0
600 0 0 1 0
1200 1 0 1 0
1800 0 1 1 0
2000 1 1 1 0
2400 0 0 0 1
3600 1 0 0 1
4800 0 1 0 1
7200 1 1 0 1
9600 0 0 1 1
19200 1 0 1 1

0 Underscore/Block cursor (On = block)
1 Key click disable
2 Wrap at end of line
3 Auto LF on CR
4 Auto CR on LF
5 ANSI mode
6 Keypad shifted mode
7 50/60hz (On = 50hz)

In most cases, the default settings for the switches are acceptable. Some switch settings have no effect in the emulator, such as 50/60hz for example.

When the settings are set, click on the CONNECT button to go live and connect to your computer. This will open a link on the selected COM port at whatever baud rate you choose. If the OFFLINE checkbox is checked, no data will be read or written from the COM port and all keys are echoed locally. Once you click CONNECT a new window will open up which is the output from the H-19 emulator. Any data over the COM port or echoed locally (if offline) will appear in this window.

H-19 Emulator Output Screen 

H-19 Screen Color

Click on the COLOR button to change the output color of the H-19 screen. The original H-19 shipped with 3 different screen colors: Green, Amber and White. By clicking on the COLOR button a picker window pops up and allows you to pick from a variety of colors for rendering the output window

H-19 Color Button

The button will change colors based on the selection you choose from the picker.

H-19 Screen Color Picker

The OFFLINE Checkbox

H-19 Emulator Offline Checkbox

By clicking the OFFLINE checkbox you put the emulator in local mode. All keys typed will be echoed to the screen and not sent over the COM port. All data received from a connected computer will be ignored.

The Log and Debug Windows

H-19 Emulator Log Window

Checking the LOG checkbox will turn on memory read/write logging and port I/O logging. This information is used to see what ports and memory addresses are being accessed by the code ROM. Logging data will slow down the operation of the emulator considerably so it is recommended that you leave the checkbox un-checked. The DEBUG button will open up a new window that will contain the Z80 disassembly of the H-19 terminal ROM. From this window you can STEP through the code one instruction at a time or set breakpoints.

In most cases the Log and Debug sections can be ignored.

This sums up the basic operation of the H-19 Emulator.

February 25, 2010


Real Time Web Analytics