HP 64000


The HP 64000 Logic Development System, introduced 17 September 1979, is a tool for developing hardware and software for products based on commercial microprocessors from a variety of manufacturers. The systems assisted software development with assemblers and compilers for Pascal and C, provided hardware for in-circuit emulation of processors and memory, had debugging tools including logic analysis hardware, and a programmable read-only memory chip programmer. A wide variety of optional cards and software were available tailored to particular microprocessors. When introduced the HP 64000 had two distinguishing characteristics. First, unlike most microprocessor development systems of the day, such as the Intel Intellec and Motorola EXORciser, it was not dedicated to a particular manufacturer's microprocessors, and second, it was designed such that up to six workstations would be connected via the HP-IB instrumentation bus to a common hard drive and printer to form a tightly integrated network.

Models

Terminology

As shown in the block diagram to the right, a 64000 system consisted of a number of components whose names had specific definitions:
The 64000 provided a file system and text editor for writing software. There was a generic assembler / linker, Pascal compiler, and C compiler, which were supplemented with add-on cross-assemblers and cross-compilers for each particular microprocessor. A list of these by product number is:
MicroprocessorAssembler Product #Assembler ManualPascal Compiler Product #Pascal Compiler ManualC Compiler Product #C Compiler Manual
Motorola 6800/1/2/3/864841A64811A64821A
Motorola 680964844A64813A 64822A
Motorola 68000/08/1064845A 64815A 64819A
Intel 804864846A nonenone
Intel 805164855A nonenone
Intel 8080/808564840A64810A64826A
Intel 8086/87/88/186/18864853A 64814A 64818A
Zilog Z8064842A 64823A 64824A
Zilog Z864850Anonenone
Zilog Z800064854Anonenone
RCA 180264848Anonenone
MOS Technology 6501/650564843Anonenone
Texas Instruments TMS990064847Anonenone
Texas Instruments TMS32064858Anonenone
Fairchild F864849Anonenone
MIL-STD-1750A64857Anonenone

* HPCM is the Hewlett Packard Computer Museum
In addition, there was a Pascal "Host Compiler", product number 64817A , disk image at , which could be used to write programs to execute on the workstation host processor.

In-Circuit Emulation

The 64000 system, through the use of optional cards and software, could perform in-circuit emulation of a variety of microprocessors and their memory. A complete emulation system typically consisted of:
The photo at right shows a 64100A workstation emulating the processor of a user system via an emulator pod. The photo also shows a data acquisition pod for an "external" logic analyzer card in the 64100A that was measuring additional digital signals in the user system.
MicroprocessorEmulator Controller Card Product #ManualEmulation Pod Product #ManualEmulation Software Product #Manual
Motorola 680064211A64212A64210A
Motorola 6801/680364256A64255A64256A
Motorola 6802/680864211A64213A64210A
Motorola 680564191A64192A/64193A64192A
Motorola 680964214A64215A/64216A64215A
Motorola 68000/6800864243A/64244A64243A/64244A64243A
Motorola 6801064271A64249A64249A
Intel 804864261A64262A64262A
Intel 805164263A64264A64264A
Intel 808064201A64202A64202A
Intel 808564201A64203A64203A
Intel 808664271A64222A64222A
Intel 808864271A64226A64226A
Intel 8018664223A64224A64224A
Intel 8018864223A64225A64225A
Zilog Z8064251A64252A64252A
Zilog Z8001/800264271A64232A/64233A64232A/64233A

* HPCM is the Hewlett Packard Computer Museum
Emulator control boards connected to both the host bus and the emulation bus. They acted to pass control signals and data between the host and emulated systems. Depending on the model, the control board might also contain hardware to flag illegal opcodes or memory accesses or to act as an internal logic analyzer.
Memory Emulation allows RAM and/or ROM in the user system to be replaced by memory in the 64000 system. Two emulation memory controller boards were offered:
Memory maps for the user system could be specified in terms of RAM, ROM and protected memory. Attempted writes to ROM or accessing of protected memory was detected by the memory controller and could trigger actions such as program breakpoints.
Memory cards of various capacities of static RAM were offered. The 64152B, 53B and 54B cards provided 32KB, 16KB and 8KB, respectively, and the 64161A, 62A and 63A cards provided 128KB, 64KB and 32KB, respectively. They could each be configured for 8-bit or 16-bit data buses. Memory cards were connected together and to the memory controller through an emulation memory bus. Accesses to emulation memory by either the host or user systems was through the controller card.
Once the emulated processor and memory took the place of the processor and memory in the user system, the designer could write and compile program code, load it into emulation memory and start the user system, running the program in the emulated processor.

Analysis

A 64000 system could act as a logic analyzer to measure digital signals within the user system. Two types of logic analysis cards were offered, "internal" analyzers which measured signals directly off the emulation bus within the mainframe, and "external" analyzers which used separate probes to physically connect to elements of the user system. Similar to the processor and memory emulation products, analysis functions were often divided into controller cards and data acquisition cards. Some of the emulation processor controller cards offered internal analysis functions without separate hardware.
Logic analysis hardware was also divided into state analyzers and timing analyzers. The former measured signals in synchronization with a system clock and could, for example, record the states of the address, data and control buses in the user system at each CPU cycle. This data was normally presented as a trace, showing the value on each bus for each CPU cycle. For many microprocessors, an "inverse assembler" was available that would convert values measured on the data bus to Opcodes for the user processor.
The second form of logic analysis was timing analysis. A timing, or asynchronous logic, analyzer measured digital signals at specified time intervals, not necessarily synchronized to the user system clock. Such analysis could be used to find glitches or verify digital signals had proper timings.
In addition to these logic analyzer functions, "software analysis" options were available. These tools acted as what are now commonly called debuggers and profilers.
A list of analysis products is:
Product NumberDescriptionManual
64300AInternal Logic Analyzer
64302AInternal Wide Logic Analyzer
64310ASoftware Performance Analyzer
64331A68000 High Level Software Analyzer
64601ATiming/Hardware Analyzer Controller
64602A8 Channel Timing Acquisition
64604A8 Channel Timing Probe
64621AState/Software Analyzer Controller
64622A40 Channel State Acquisition
64623A20 Channel State Acquisition
64635A20 Channel State Data Probe
64636A8 Channel State Clock Probe

Similar to the way the emulation hardware used "pods" with interface hardware tailored to each microprocessor, the analysis hardware used preprocessors to act as an interface to the microprocessor. Aside from the 64304A Emulation Bus Preprocessor, each of the CPU specific preprocessor interfaces was a circuit board that fit within the 64650A General Purpose Preprocessor module. That, in turn, connected to the logic analyzer card cables.
Product NumberDescription
64304AEmulation Bus Preprocessor
64653A8086/8088 Preprocessor Interface
64655A8085 Preprocessor Interface
64657A80286 Preprocessor Interface
64658A80186/80188 Preprocessor Interface
64670A68000 Preprocessor Interface
64671A6809 Preprocessor Interface
64672A6800/6802 Preprocessor Interface
64673A68008 Preprocessor Interface
64674A68000/68010 Preprocessor Interface
64680AZ8001 Preprocessor Interface
64681AZ8002 Preprocessor Interface
64683AZ80 Preprocessor Interface
64690ANSC800 Preprocessor Interface

PROM Programmer

The 64100A has a space to the right of the keyboard that can accept a PROM programmer module. A common PROM programmer control card, the 64500A, was installed in the card cage. At least 11 programmer modules, numbered from 64502A to 64520A were available for a variety of PROM and programmable microcontroller chips from different manufacturers.

MAME Emulator

An emulation of the 64100A workstation is part of the MAME system, under Manufacturer HP and titled "HP 64000". The emulator is open source and the source code .