HP-85

from Wikipedia, the free encyclopedia
A running HP-85 with a BASIC listing on the screen
HP-85B

The HP-85 was part of the Hewlett-Packard 80 series of small scientific desk computers introduced in 1980. The first model was the HP-85, which was aimed at engineers and was also used for plant control . The computer had the capabilities of the HP 9800 series desktop computer with a built-in monitor. With smaller dimensions, a thermal printer and a digital cassette drive were integrated, and that for half the price of the HP 9800 series.

properties

HP-86B with 9121 dual floppy disk drive

The first model in the 80 series was the HP-85, it was introduced in January 1980. The American byte magazine reported enthusiastically "We were impressed by the performance ... the graphics alone make it attractive, yet it is not expensive compared to other small systems on the market ... we assume that many personal computer Enthusiasts and hackers would like to have this machine ”. A personal computer was understood to mean something different then than it is today.

The HP-85, which cost around DM 4500, contained a CPU, a keyboard, a ROM-based operating system (like the 9800 series), 16 kB dynamic RAM , a 5-inch monochrome screen (16 lines with 32 characters each or 256 × 192 pixels ), a cassette drive for DC-100 cassettes (210 kB capacity, 650 B / s transfer) and a thermal printer. Both the screen and the printer were able to display text and graphics; the printer was able to make a copy of the screen. The case had space for four additional slots on the back. Such expansions were available in the form of memory modules, ROM expansions, interfaces such as RS-232 and GPIB . All components were designed by the Hewlett-Packard Personal Computer Division in Corvallis , including the processor and the basic chipsets.

Later models offered different variations such as different internal and external screens, built-in interfaces or rack cases (see table below for details).

CPU architecture

The machine was based on a proprietary HP CPU with the code name Capricorn (Steinbock), the clock frequency was 625 kHz (actually only 0.6 MHz) and had a BASIC interpreter in the ROM (32 kB). Programs could be stored on DC-100 cassettes or external floppy disks and tapes.

Despite the comparatively low clock frequency of the processor, the machine was very advanced compared to other computers of the time, especially with regard to software properties that are important for technical and scientific applications. The standard number format was a floating point format with a 12 digit mantissa and an exponent of ± 499. Due to the consistent support of up to 64-bit long BCD numbers (which are processed in one clock cycle), the floating point library achieved a high processing speed with high accuracy for those times. The Capricorn CPU contained a total of 64 8-bit registers. The first 32 registers were divided into 2-byte groups, the next 32 registers in 8-byte groups. All CPU instructions that addressed one of the registers worked from the specified register to the next 2-byte or 8-byte limit. Only one clock cycle was required for this, regardless of whether one or eight bytes were processed during this clock cycle.

Years of experience in the design of scientific pocket calculators flowed into the CPU design. The internal processing format of the BASIC interpreter was also heavily inspired by the HP pocket calculator architecture. All instructions entered were translated after pressing the return key and converted into a token form . The internal storage was done entirely in UPN format . This had the great advantage that no more tests had to take place while the programs were being processed. The BASIC interpreter was able to use the previously converted tokens directly as indices in jump tables. Since mathematical expressions were transformed into UPN in advance, priorities no longer had to be taken into account during processing.

Due to the 8-bit architecture, the processor could only address a total of 32 kB of RAM. For the HP-86/87 models, HP extended the operating system so that the memory addressing for BASIC programs was done indirectly via a 32-bit DMA pointer . This made it theoretically possible to upgrade these computers to over one MB of RAM. In fact, however, "only" a maximum of 640 kB could be built in, as the computer's power supply could no longer maintain the main memory. With a price of around DM 2,500 for a 128 kB module at the time, the upgrade was correspondingly expensive.

BASIC

The BASIC in the HP-80 series was primarily aimed at scientists and engineers, so the range of languages ​​was accordingly. Based on the technical orientation, the BASIC interpreter supported an extensive set of scientific functions ( trigonometric functions , logarithms , etc.) with the corresponding full accuracy. The language also supported two-dimensional fields and a ROM extension offered additional mathematical functions such as matrix multiplications, inversions and much more

The HP BASIC interpreter differed from other BASIC interpreters of its time in a few essential parts. Programs were not saved as text and processed during runtime, but instead saved and processed in a UPN byte sequence . The logic check of a program line only had to be carried out once (after pressing the Enter key for each line). In addition, the language scope could be expanded dynamically. By adding binary programs or plugging in ROMs, new commands were added to the BASIC vocabulary, which could be used in the same way as the instructions in the basic equipment. Extensions available later - such as B. the SYSEXT-ROM - also offered the possibility of dynamically determining which extensions a program actually needs and loading them accordingly during runtime.

The entire BASIC system was token-driven . In detail, the system processed an input line after pressing the return key as follows:

  • Search the keyword tables and compare the statements entered with the statements in the tables
  • If an instruction was found, the attributes of this instruction were evaluated. The attributes indicate what type of instruction it is and which parameters the instruction requires.
  • The parameters of an instruction were converted to UPN form and saved
  • An index number of the instruction (the token number) was saved
  • Complicated instructions or instructions with optional parameters were not parsed directly by the built-in interpreter , but were passed to special parser routines that the programmer had written for each such instruction
  • For variables or jump labels, in addition to the token numbers and variables, placeholders for later insertion of target addresses have been saved
  • Depending on whether a line number was at the beginning, the line was stored in the program memory or processed directly

A program or a line entry was processed by the system after the tokenization described above as follows:

  • Numbers and addresses were placed on the stack (which could be almost any size)
  • Instruction tokens were used as an index in jump tables. This enabled a BASIC statement to be jumped to directly for processing during runtime
  • Variable tokens were evaluated and the result was placed on the stack
  • Functions (arithmetic, logical, etc.) fetched the required values ​​from the stack, performed the calculation and put the result back on the stack
  • Statements (i.e. BASIC statements that do not return any result) fetched the required parameters from the stack and processed them
  • In the case of address and variable tokens, it was checked whether the additionally saved index value already exists. If this value was available, a jump was made to the memory location or the variable content was loaded directly from the memory location. If the index value was not available, the memory location or variable address was searched for and saved for further (next) use.

This overall structure resulted in a very compact and extremely fast processable byte code. The BASIC programs were actually P code . The interpreter no longer had to carry out any syntax or hierarchy checks during processing.

In addition to a large number of mathematical and other instructions, the BASIC also had a very extensive set of graphic instructions. With the built-in BASIC it was possible to address the screen in full graphics mode and to draw lines or other structures directly, as there were individual BASIC instructions for this (such as SCALE, MOVE, FRAME, DRAW, PLOT, LABEL and many more) .

The BASIC contained so-called hooks for all strategic input / output components. These were entry points where expansion ROMs (or binary programs) could attach their own routines . Existing BASIC instructions could thus be expanded to include additional functions. A good example of this was the plotter ROM. When this ROM was plugged in, the built-in BASIC instructions were internally and automatically extended to include HPGL support. In addition to the screen, a connected pen plotter could then be used as an output device without having to change the graphics instructions.

The assembler ROM made it possible to create your own language extensions in the form of ROMs or binary programs. The ROM offered its own assembler editor and an assembler compiler that translated the Capricorn assembler into machine language. The functionality of the assembler ROMs was integrated into the overall system in the same way as all other ROMs by simply expanding the BASIC language range to include appropriate assembler instructions.

Expansion options

For the larger HP-86 and HP-87 computers, HP also offered a CP / M plug-in card with an additional Zilog Z-80 processor.

From the mid-1980s, in particular, hard disks connected to the HPIB bus were increasingly used for program and data storage. Since the largest hard disk drives available at that time had 500 MB, it was theoretically possible to address 37.5 GB with an HP-86/87 (one internal HPIB bus, four HPIB plug-in cards, 15 hard disks per bus). At a unit price of 50,000 DM for a 500 MB drive from HP in 1986, such a capacity would have cost more than 3.7 million DM. The usual hard drive sizes at that time were 20 or a maximum of 80 MB, which were available for prices between 2,500 and 8,000 DM. Considering the very low memory requirements of the BASIC programs (programs were saved in token form and not in plain text), very large and very many programs could be saved. Also with the data to be saved different standards were applied than today. First and foremost, numbers (in the broadest sense) and less texts were stored. Since the series of measurements frequently processed in this way usually only contained hundreds or thousands (very rarely tens of thousands) of values, such hard disk capacities were considered to be almost inexhaustible.

A large number of peripheral devices could be addressed directly via the optional or permanently installed HPIB bus. Since the HPIB bus was a quasi-standard in the technical field in the 80s, there were countless measuring and control devices as well as printers and plotters from various manufacturers that could be connected directly to the computer . Even large systems such as B. Climate chambers were controlled by HP-86 systems via GPIB.

Historical context

In the late 1970s, comparatively inexpensive home computers such as the Apple II or the TRS-80 were developed. Steve Wozniak developed the Apple Computer with the idea of ​​a computer that provides a BASIC immediately after being switched on. He offered HP the rights to this concept, but was rejected. In an interview, he noted that shortly thereafter, the calculator division started an 8-bit computer project, code-named Capricorn . He was not allowed to work on this project. Shortly thereafter, the market for desktop computers based on the IBM PC architecture with a built-in floppy drive from which an operating system was loaded finally developed. An Intel 8088 processor was used on these computers . The fact that the IBM PC and compatible computers have prevailed is due to the open architecture pursued by IBM from the beginning, which led to numerous replicas.

Emulations

HP-86 emulation on a Planet Gemini PDA

The well-documented hardware and the available listings of the operating system, including extensive additional documentation, made it possible to create various emulations for the Series 80 computers. There are - for the most part free - emulations for Windows, Linux and Android. In particular, the easy-to-understand BASIC interpreter enables you to develop your own programs quickly on such an emulation and thus gain initial experience with computer programming without having to deal with large, large libraries.

hardware

Models

model year price Remarks
HP-85A 1980 $ 3250 16K RAM, 32K ROM; 5 "CRT, 32 × 16 Text or 256 × 192 Graphics; cassette drive, thermal printer
HP-83 1981 $ 2250 Like the HP-85, but without a printer and without a cassette drive
HP-86A 1982 $ 1795 independent external software monitor, no cassette drive, no printer;
two interfaces for 9130 floppy drives and a built-in Centronics printer connection , 64 K RAM
HP-87 1982 ? 9 "80 × 16 (256 × 128) monochrome screen, no printer, no cassette drive, built-in HPIB, 32 K RAM
HP-85B 1983 $ 2995 In contrast to the HP-85A full memory configuration with 64 K RAM (32 K program / variables, 32 K RAM disk );
I / O, EDISK, and Mass Storage ROM built in
HP-86B 1983 $ 1595 Unlike the HP-86A, built-in HPIB floppy disk connections and Centronics port, 128 K RAM, EDISK ROM built in
HP-87XM 1983 $ 2995 Unlike the HP-87, built-in HPIB, 128 K RAM
HP-9915A / B 1980 $ 1675 Industrial rack version of an HP-85A / B without screen and keyboard, I / O ROM and program development ROM built in

ROM extensions

82936A slot with three ROM modules

Note : The HP-86/87 series used different ROMs (labeled yellow) than the 85/83 models (labeled white).

83/85 86/87 function description ID
00085-15003 00087-15003 I / O Access to GPIB , serial and parallel (GPIO) interfaces 192
00085-15001 built-in Mass storage Access to HP-300-Amigo-compatible floppy drives via GPIB. Already available as standard in the 85B and all 86/87 models. 208
00085-15002 00087-15002 Printer / plotter Support of external printer / plotter (86/87 only need the ROM for plotter access) 240
00085-15005 00087-15005 Advanced programming Extended Rocky Mountain BASIC instructions 232.231
n / A 00087-15012 Electronic disk Used part of the memory for a RAM disk , already standard in the 85B, 86B. 209
00085-15004 00087-15004 matrix Mathematical matrix operations including inversion (solving linear systems of equations) 176
n / A 00087-15004 Matrix 2 Additional matrix functions 177
00085-15007 00087-15007 Assembler Editing and translating assembler sources for the Capricorn architecture 40
n / A 00087-15011 MIKSAM Indexed file record management (a special ROM on behalf of the customer) 14th
00085-15013 00087-15013 EMS Extended Mass Storage , access to SS-80 compatible mass storage 207
00085-60952 00087-60912 Service system Diagnostic routines for service and maintenance 224
? 00087-60913 Service - HPIB Diagnostic routines for service and maintenance 225
98151A n / A Program development Support of an HP-9915 front panel or to emulate it on an 83/85 8th
n / A AKSO-Sysext Sysext Extensions of BASIC to include structured programming, self-modifying code, low-level programming, manufacturer Andre Koppel Software 56

Hardware extensions

The rear of an HP-85B shows the four expansion ports
82936A ROM slot for up to six of the above ROMs (max. One per unit)
82903A 16 K memory module, only for HP-85A (max. One per computer)
82908A 64 K memory modules, for HP-85B or HP-86/87
82909A 128 K memory modules, for HP-85B or HP-86/87
82900A CP / M system (only for HP-86/87). Contains a Zilog Z80 microprocessor and 64 kilobytes of dedicated RAM.
82928A System monitor for hardware development. Sets breakpoints for debugging.
82929A Programmable ROM slot for standard EPROMs

Interfaces

82940A GPIO interface, cover removed

The series 80 interface modules were built around a proprietary bus interface chip that connected a standard Intel 8049 microcontroller to the main bus. Interface functions such as handshaking have been outsourced to the 8049 firmware .

82937A HP-IB Interface (GPIB, IEEE-488, IEC625)
82938A HP-IL interface
82939A RS-232 serial interface
82940A GPIO interface (general purpose 4 × 8- bit parallel)
82941A BCD interface (parallel, 11 binary coded decimal digits + sign)
82949A Printer Interface ( Centronics Parallel Interface )
82950A Modem (110/300 bit / s, Bell 103/113)
82966A Data Link Interface (for connection to HP1000 / 3000 hosts)
82967A Speech synthesis module, vocabulary with 1500 words of English words, a Texas Instruments TMS5220 synthesizer chip was used

Web links

Commons : HP series 80  - collection of pictures, videos and audio files

Individual evidence

  1. ^ Morgan, Christopher P: Hewlett-Packard's New Personal Computer . In: BYTE , March 1980, p. 60. Retrieved October 18, 2013. 
  2. ^ A New World of Personal / Professional Computation. In: Todd R. Lynch: Hewlett-Packard Journal. July 1980, Volume 31, No. 7, p. 3.
  3. eg Apple II (1977), Tandy TRS-80 (1977), CBM 2001 (1977), Zenith Z89 (1980).
  4. Assembler ROM manual .
  5. Byte Interview with Steve Wozniak
  6. equals USD 10,067 in 2020
  7. $ 2,250 in 1981 ≈ $ 5,900 in 2010 (ibid.)
  8. $ 1,795 in 1982 ≈ $ 4,700 in 2010 (ibid.)
  9. Series 80 Personal Computer Price List . July 1, 1983. Retrieved February 12, 2010.
  10. Series 80 Personal Computer Price List . July 1, 1983. Retrieved February 12, 2010.
  11. $ 2,995 in 1983 ≈ $ 7,900 in 2010 (ibid.)
  12. HP 9915A Pricing Information, December 1980 . Retrieved February 12, 2010.
  13. “ID” denotes the internal ROM identification, i. H. the base address, which must be unique within a system.
  14. SYSEXT ROM manual . Retrieved April 27, 2016.
  15. Adding I / O Capability to the HP-85. In: John H. Nairn, Tim I. Mikkelsen, David J. Sweetser: Hewlett-Packard Journal. July 1980, Volume 31, No. 7, p. 7.
  16. HP Computer Museum: 82967A . Retrieved February 12, 2010.