Terminology As shown in the block diagram to the right, a 64000 system consisted of a number of components whose names had specific definitions: •
Mainframe is the physical workstation or card cage holding the option cards. •
Host is the processor that operates the mainframe. In the 64100A and 64110A the Host Bus is the workstation processor's address, data, input/output and control buses, which also connect to the cards in the card cage. •
User system is the microprocessor system being developed. The terms user processor and user memory describe those components in the system being developed. •
Emulation or
Emulator refers to optional cards and other hardware that are connected to the mainframe via the plug-in cards and can replace the processor and/or memory in the user system. Emulation and analysis cards are interconnected with an
Emulation Bus that is completely separated from the Host Bus.
Software Development The 64000 provided a file system and text editor for writing software. There was a generic
assembler /
linker (manual Bitsavers),
Pascal compiler (manual Bitsavers), and
C compiler (manual Bitsavers), which were supplemented with add-on
cross-assemblers and
cross-compilers for each particular microprocessor. A list of these by product number is: • HPCM is the Hewlett Packard Computer Museum In addition, there was a Pascal "Host Compiler", product number 64817A manual at Bitsavers, disk image at HPCM, 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. 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: 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 (manual at Bitsavers), each of the CPU specific preprocessor interfaces was a circuit board that fit within the 64650A General Purpose Preprocessor module (manual at Bitsavers). That, in turn, connected to the logic analyzer card cables.
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 (manual at Bitsavers), 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 ==