HP 264x Terminals

HP 264x Terminals Series Playlist:

HP 264x Terminals

The HP 264x are one of the nicest (and most expensive) widescreen terminals from the 1970's. They were built around the first commercially successful Intel 8-bit processors, the Intel 8008 and 8080. The terminals are completely modular (you can add and remove cards at will) and can be configured a million ways with many options, so there are almost no two the same, even if they share the same model number. Therefore the first step in inspecting a 264x terminal is opening the clamshell up with a special tool that fits in a side slot, and taking inventory of what cards are installed in the machine.

The most common of the series is the HP 2645A, with the 2648A (Graphics) and 2647F (Graphics + Basic + Disk Drive) also fairly common, but the whole series is:

Below is a chart with the models and corresponding list pricing. The HP 264x terminals were high end, very expensive terminals.

   Model |  1980    1981    1982     1983  1984    1985  Notes

   ------|---------------------------------------------  --------------------

   2640B | $2600   $2600       x       x        x      x      x

   2640C | $4250   $4250       x       x        x      x      x  Cyrillic

   2641A | $4100   $4100       x       x        x      x      x  APL

   2642A |             -      ??   $6750        x      x      x

   2645A | $3500   $3500   $3500   $3995    $4550  $4600      x

   2645K | $4000   $4000       x       x        x      x      x  Katakana

   2645N | $3750   $3750       x       x        x      x      x  Danish/Norwegian

   2645R | $4350   $4350       x       x        x      x      x  Arabic

   2645S | $3750   $3750       x       x        x      x      x  Swedish/Finnish

   2647A | $8300   $8300       x       x        x      x      x  b&w graphics, BASIC

   2647F |             -   $8950   $9400    $9950  $9950      x  b&w graphics, BASIC

   2648A | $5500   $5500   $5950   $6530        x      x      x  b&w graphics

   2649A | $2150   $2150   $2150       x        x      x      x

   2649I |             -   $7750       x        x      x      x  2649A - graphics

  13290B | $6950   $6950   $6950       x        x      x      x  2648A + more

Main Documentation

This is the user manual for the HP 2645:

The following document is an essential guide on the installation and configuration options of the 2645 terminals. In particular, it shows all the available card arrangements, the strapping configurations of the keyboard and communication cards, and the wiring diagrams for the interconnect cables: 

This service document is a compendium of all the cards, options and strappings and some installation and service procedures. At 565 pages, it is both daunting and terse if you do not know the subject matter already, but there is a lot of condensed info and it covers all versions:

Fun with HP 264x Fonts

The HP 264x uses a clever scheme of resolution doubling using a half-shift of the scan lines. This results in a much finer character display than most terminals of the time. The HP 264x also came with several character sets, in the form of optional character ROMs. See my video explaining this, and how we burned an 8-bit Math character ROM and added the new font to the terminal:

Part 1: Intro to the 2645A and Character Set Upgrade

In Part 2 we added one of the 9-bits vector character sets, and hacked a way to do it with a regular 8-bit ROM:

Part 2: 9-Bit Character Set Upgrade and Terminal Demo

For "May the 4th", I went a step further and created a brand new Star Wars Aurebesh character set. See further below about the font editor I created to make it.

HP 2645 Character ROMs

Each character cell is 9x15 pixels. However interstitial pixels can be accessed using a half-pixel shift trick, increasing the apparent horizontal resolution. I wrote a Windows app that allows to view and edit character ROM sets

Character set design and character ROM generation are described in this document:

2640 Series Character Generation,pdf

There are three different kinds of character ROMs:

The character set ROMs plug in either in the default Display board (base set) or on the optional DISP ENH board (alternate sets). There are jumpers to configure in order to tell the board which type of ROMs (Alphanum, Microvector) and set size (single ROM 64 characters or double ROM 128 characters) is plugged in each position. If you were to replace the base set, the terminal powers up with a different character set by default. This is what I did in the Star Wars font video. 

After you install the additional font ROMs in a DISP ENH board, you are not quite done. It takes a convoluted escape and control sequence to use the new fonts on-screen:

In order to see which characters are installed on a given terminal and in which position, press the Terminal Test key. The screen fills up with all the characters sets installed, starting with character set C at the top, then B, then A, then base character, like so:

In the above test screen example, the large character set is on the top as C, the line set below as B, the math set as A and the regular roman character set is the base set.

Character ROM sets

ROM dumps and character maps of all the character ROMs I could lay my hands on are provided below. If any of you has one of the other rarer sets (Katakana, Arabic, Cyrillic, Finnish...), please contact me. I'd love to have the opportunity to archive their contents.

Roman Character Set

Roman Uppercase, ROM 1816-0612

Roman Lowercase, ROM 1816-0613

The Roman uppercase was the default set in the original HP 2640A. The lowercase was an extra cost add-on option in the original 2640, but later was included in the standard HP 2645A. Most terminals are equipped with this set. It was distributed on two ROMs, 1816-0612 (uppercase) and 1816-0612 (lowercase):

1816-0612 ROM Roman Uppercase.bin

1816-0613 ROM Roman Lowercase.bin

This set is usually found plugged in the DSPLY CNTL board in the terminal.

Math Character Set

Math Character Set, ROM 1816-0642

The Math set allows displaying mathematical equations. It has an integral sign split in two characters. 

The 8-bit ROM number for the set is 1816-0642. We dumped the ROM here:

1816-0642 ROM Math Set.bin

This ROM should be plugged in the optional DISP ENH board

Keyboard mapping is shown below:

Line Microvector Set

Line Character Set, ROM 1816-0641

The Line Set is for drawing tables and forms. It is a micro-vector set and uses 9 bits. It was originally distributed in the 9-bit wide ROM 1816-0641:

1816-0641 ROM 9-bit Line Set (first 8 bits).bin

1816-0641 ROM 9-bit Line Set (9th bit).bin

1816-0641 ROM 9-bit Line Set (all bits combined).bin

The rev C of the DISP ENH board uses the more common 8-bit ROM format for the microvectors, by taking advantage that the two first bits are always the same in this character set. The 8-bit ROM version is 1816-1417:

1816-1417 ROM 8-bit Line Set.bin

Large Character Microvector Set 

Large Character Set, ROM 1816-0641

The Large Character Set is for drawing large titles. Each character is made of a 3x3 matrix of smaller character. It is a micro-vector set and uses 9 bits. It was originally distributed in the 9-bit wide ROM, which I do not have in any of my machines. It could be recreated from the 8-bit set below by doubling the first bit (i.e., the two first bits are the always the same in the 9-bit ROM versions).

The second revision of the Enhanced Display Board compressed it to the more common 8-bit ROM format, by taking advantage that the two first bits are always the same in this character set. The 8-bit ROM version is 1816-1425:

1816-1425 ROM 8-bit Large Char Set.bin

Single ROM Combined Character Set (HP 2647F, later HP 2645A) 

The HP 2647F and late HP 2645 models have an updated processor and display block that consists of only 2 cards. The display card has a single 8k ROM that contains 4 character sets one after the other (Roman Upper and Lower, Math, Line and Large Character sets).

APL Character Set (for HP 2641A) and modified firmware

The HP2641A APL character set consists of 3 alphanumerical ROMs added in on an added DISP ENH board in the terminal.

1816-0984 APL1.bin

1816-0985 APL2.bin

1816-0986 APL3.bin

The third ROM contains the infamous overstrike characters that are unique to APL. They occur quite naturally for the paper Teletypes APL was developed for, but are very unnatural on a "glass terminal". It required a modification to the firmware of the HP 2641 to simulate the overstrike character by picking them from the 3rd ROM. The modified 641 firmware ROMs (and that of  the 2642 and 2649) are available on bitsavers.org and reproduced below (instructions of which ROMs goes where in the .txt file)

APL1 (1816-0984)

APL2 (1816-0985)

APL3 (1816-0986)

Location of APL ROMs on the DISP ENH card

My Star Wars Aurebesh Font

Aurebesh Font, CuriousMarc custom ROM

Here is the binary file for the Aurebesh font I created for the video


The font was burned on a 82S181 compatible bipolar 8k-bit PROM, like the original Signetics 82S181, the Harris 7618 or the AMD AM27S181. I put in place of the main uppercase character ROM on the main DISP CNTL board.

HP Font Editor Program

I created the Windows program below to work with HP 264X character ROM binary files, display them, edit them and create new character sets. 

HP 264x Font Editor.exe

It can be used to view and edit any of the 3 types of character ROMs. See the screen shot below.

CuriousMarc's HP 264x Font Editor

Games on the HP 2645

Using a mostly undocumented binary loader (it's only documented on the HP 2649 programming overview, but it happens to be present in all HP 264x terminals), one can run binary programs on the 264x terminals, provided they have enough memory. This video explains how:

Part 4: Playing 8-bit Graphics Games with an Intel 8080 Processor

Here are the 6 games for the HP 2645 I demonstrate in the video

The files can be loaded directly from tape or uploaded through the serial interface from a computer. To play them on the HP 2648, you have to slightly modify the first few characters of the code, since entering the binary loader is slightly different on this machine.

HP 264x Internal Firmware

The 264x terminals are based on Intel 8008 and 8080, and run a large amount of code contained in the many ROMs on one or several CNTL cards. The documentation for the HP 2645 code, including the source listing, was made available with the introduction of the HP 2649A to permit the development of custom programs. The HP 2649 documentation below is a great description of the internal workings of the HP264x terminal. This code is further documented in the Technical Information Package (TIP) 13255-90003. This information could be used to develop further games, and drivers for new IO cards.

Later on, the HP 2648 and HP 2647 source code documentation were also made available for developers customizing the HP 2649G and F respectively, but I have not been able to find the corresponding HP2649G and TIP documentation. If anyone has it please let me know. However, the ROMs from most HP 264x models have been dumped (I believe by Al Kossow), and binaries are available on Al's bitsavers.org site. They are reproduced below for convenience. I also obtained files of the source code, but I am not sure if they are original and proven to compile or if they are just raw OCR from the listings. In the latter case they might contain transcription errors. 

HP 2649 Conversion

The HP 2649 is a special version of the HP 2645, which was meant for running custom firmware developed by the customer. It only differs from the HP 2645 by one ROM chip, plus the ROMs that the customer adds. It's a pretty cool Intel 8080 development system if you ask me. All the base ROM calls from the HP 2645 are documented, so you have access to the keyboard, the screen, the comms cards, anything. The documentation is above.

However,  the HP 2649 is most often encountered as a former HP 3000 console. It runs special software that communicates with the OS via HPIB (it has an HPIB card inside) and displays some custom menus in addition of being a console terminal. This was of no use to me, so I converted it back to a regular HP 2645. For that, I only had to change ROM 1810-0501 to the regular ROM 1818-0287 found in a normal HP 2645.

If you want to burn your own ROM, you'll have to use a 2716 (16k ROM arranged in 2k x8) PROM. In addition, you might have to monkey with the select logic, as the regular 2716 ROM use AND logic for the CS1 and CS2 chip selects, whereas the HP mask ROMs use OR logic for these two chip selects. I have not investigated that for these ROMs, but I sure had to do that conversion for the character ROMs, as explained in this episode https://youtu.be/QikO0WOAGWI .

Below are my raw lab notes about the minutiae of the conversion.