HP BASIC
Hewlett-Packard's business dialect of BASIC for the HP 250 and HP 260 small-business computers, where the language doubled as the operating system and came with an IMAGE database built into it.
Created by Hewlett-Packard (Fort Collins Division)
HP BASIC, as used here, is the dialect of BASIC that Hewlett-Packard built for its HP 250 small-business computer, introduced in 1978, and carried forward on the HP 260. HP’s own literature calls it “HP 250 BASIC” and describes it as having “the standard features of HP Business BASIC.” On these machines BASIC was not one application among many: the HP 250 was what its designers called “a BASIC-language machine,” with system commands and BASIC statements parsed and executed at the same level. Database access, screen forms, report writing and multi-user support were all added to the language as extra statements rather than offered as separate tools.
The result was an unusually complete business programming environment for an entry-level machine. Clerical staff could run it with almost no training, and small software houses could build complete applications on it. That code base proved durable enough that a dedicated migration product, Eloquence, was created to keep it running after the hardware was gone.
A Note on the Name
“HP BASIC” is ambiguous. Hewlett-Packard produced several unrelated BASIC dialects, and the name has been used for at least these:
| Dialect | Platform | Primary use |
|---|---|---|
| HP Time-Shared BASIC | HP 2000 systems (HP 2100-series minicomputers) | Timesharing, education |
| HP 9835/9845 BASIC, later “Rocky Mountain BASIC” | Desktop computers, HP 9000 workstations | Engineering, instrument control (see HTBasic) |
| BASIC for the HP Series 80 | HP-85 and related desktops | Personal technical computing |
| HP 250/260 BASIC (HP Business BASIC) | HP 250 and HP 260 business computers | Commercial data processing |
| HP Business BASIC/XL | HP 3000 under MPE XL | Commercial data processing |
This page covers the business line: the HP 250/260 dialect and the HP Business BASIC family it belongs to. The engineering dialect has its own lineage, now mostly covered on the HTBasic page.
History and Origins
From desktop workstation to business computer
The HP 250 was designed by HP’s Fort Collins Division in Colorado, the group behind HP’s desktop computers. Its hardware borrowed heavily from that work. The April 1979 Hewlett-Packard Journal describes the HP 250’s 16-bit NMOS processor as a hybrid chip set “also used in other HP products, such as the desktop System 45” (the HP 9845), and Marxmeier Software’s history calls the HP 250 “technically a descendant of the HP 9845 workstation.”
The language came with the hardware. Dennis L. Peery’s 1979 article says that HP 250 BASIC’s core features had “already been discussed in these pages in the article on the HP System 45 (April 1978)”: multi-character variable names and line labels, multidimensional arrays, independent subprograms, multi-line functions and PRINT USING formatted output. The HP 250 then added the features a business computer needed. Peery credits Jeff Lindberg, Pat Ryan and Tim Eckerman for the language system, Don Stavely and Art Boyne for FORMS, and Al Kandell for REPORT WRITER.
Launch
The HP Computer Museum dates the HP 250 (product number 45251A) to 1978, at an introductory price of $24,500, and it appears in HP’s 1979 catalog. Marxmeier Software’s history of the platform says it was “released” in 1979. The two dates probably describe the announcement and the first deliveries. The master list for this encyclopedia gives 1979, but the evidence points to an introduction in 1978.
HP aimed the machine at first-time computer users: small companies and departments of larger ones, typically buying through a software house or an OEM. The original HP 250 was built into an L-shaped desk, with a typewriter-style keyboard and a CRT that tilted and slid along the work surface. The base system had 32 KB of user memory (expandable to 64 KB) and up to three 8-inch flexible disc drives of 1.2 MB each. Hard discs, a 180-character-per-second printer and additional terminals were options.
The 250 and 260 years
Responsibility for the HP 250 moved to HP’s General Systems Division, the HP 3000 group, in April 1979. In mid-1981 cheaper “pedestal” models replaced the desk design, and the original desk configuration was obsoleted in August 1982. The HP Computer Museum reports that more than 7,000 HP 250 systems had shipped by early 1984. According to the museum, a 1981 Datapro survey of minicomputer users gave the HP 250 a perfect 4.0 rating for mainframe reliability.
In 1985 the HP 260, from HP’s Böblingen operation in Germany, replaced the HP 250 and remained software-compatible with it. The HP 250 itself was obsoleted on January 1, 1986. Marxmeier’s history says the last HP 260 system was discontinued in 1989, and that a planned follow-up product was cancelled once Eloquence offered a practical way to run HP 260 software on HP 9000 Unix systems.
Design Philosophy
The 1979 Journal articles return again and again to the user who is not a programmer. The HP 250’s industrial designer wrote that its operator was “likely to be a clerical person, not a computer professional,” and the language was shaped to match.
- The language is the system. There was no separate command shell. Commands such as
LIST,RUN,CATALOGandTRACElived alongside ordinary statements, and most statements could be typed directly at the keyboard as well as stored in a program. - Turn-key operation. An auto-start feature, set up with the
CONFIGutility, could run a chosen command, usuallyRUNon an application program, as soon as power-up finished. “All the user must do to bring up the system and start the applications package is turn the key on the HP 250.” - Extend the language, not the toolbox. Database access, screen forms, report generation and sorting were delivered as optional modules called DROMs (discrete relocating option modules). Each one added new BASIC statements. They were loaded at power-up according to the system configuration.
- Protect the developer’s work. Programs could be saved as RUN-ONLY, which meant they could not be listed, modified, copied or purged without a special utility. Software houses could distribute applications without exposing their source code.
Key Features
Interpreter with a pre-digested internal form
HP 250 programs were interpreted, but not in the usual way. Peery explains that rather than keeping the program as text and re-parsing it on every execution, the system stored each line as pointers to execution routines, to a symbol table and to scratchpad locations. A program could still be listed essentially as typed, but it ran without re-checking operator precedence or variable names each time. Peery says this reduced execution time “drastically”; the article gives no benchmark figures.
Readable names and labels
Variable names, line labels and subprogram names could be up to fifteen characters: a capital letter followed by up to 14 lowercase letters, digits or underscores. Line numbers ran from 1 to 9999. A line could be addressed by its number or its label, so GOTO Edit_stockroom was legal and idiomatic.
Soft keys and ON KEY
The HP 250 had eight unlabeled “soft keys” under the screen and eight more user-definable keys on the keyboard, giving 24 definitions with shift. ON KEY could both label a soft key on screen and attach a branch to it, so a program could lead an operator through a series of menus. This example is from the 1979 Journal article:
| |
The same keys could also act as typing aids, replaying up to 160 stored keystrokes, including action keys such as ENTER and EXECUTE.
IMAGE/250: a database in the language
IMAGE/250 brought a version of HP’s IMAGE/3000 network database to the small machine as a set of BASIC statements and utility programs: DBPUT, DBUPDATE, DBGET and the rest. Records travelled through a single string “buffer” holding the raw record bytes. Unpacking that buffer with ordinary string functions was tedious, so HP added an IN DATA SET statement that bound record fields directly to program variables. This example is from Michael V. Hetrick’s 1979 article:
| |
After line 1010 runs, Name$, Number and Salary already contain the fields of the 500th PAYROLL record. Hetrick describes IMAGE/250 as “not strictly a subset” of IMAGE/3000: some specifications were reduced, and security worked at the data-set level rather than the item level. A QUERY/250 inquiry facility with seventeen commands gave users ad hoc access to the database.
FORMS/250 and REPORT WRITER/250
FORMS/250 let programmers draw a data-entry screen with the CFORM utility and drive it from BASIC. Apart from a few new keywords to activate and deactivate a form, it used the standard INPUT, ENTER and DISP statements:
| |
A companion MFORM utility let non-programmers change a form’s cosmetics without being able to break the programs that used it.
REPORT WRITER/250 grew out of HP’s estimate that “well over half the application programs” on a business computer would produce some kind of report. It added BREAK WHEN and TRIGGER BREAK for control breaks, hierarchical subtotal levels, automatic line and page counting, and printer-independent output.
Business-friendly I/O and debugging
Further features were built for an office setting:
PRINTER IS,SYSTEM PRINTER ISandPRINT ALL ISsent program output, system output and a full screen log to separate devices or files, giving an audit trail.TRACEoutput and single-stepping, using the HALT/STEP key, went to the “system printer,” so debugging did not disturb a form on screen or a report being printed.- After an error, a suspended program could be edited and resumed at the failing line.
- Video highlighting (inverse, half-bright, blinking, underline) and alternate character sets, including a European set, could be embedded directly in string literals.
Numeric types
The language supported integer, short-precision and real-precision numbers. Real values were stored in eight bytes: two bytes of sign and exponent and six bytes of binary-coded decimal digits. Decimal storage like this avoids the binary rounding surprises that cause trouble in currency arithmetic.
Evolution
The HP 250 BASIC pocket guide (first edition November 1981, second edition January 1983) shows the full set of option modules by then. Alongside IMAGE/250, FORMS/250, REPORT WRITER/250 and QUERY/250, it documents SORT/250 and TIO/250 (both already described in 1979) and modules not mentioned in the 1979 articles, including TASK/250, TIMER/250 and GPL/250. HP also sold an HP 250/HP 3000 link for transferring files and starting HP 3000 jobs. Memory grew well beyond the original 64 KB, with HP Computer Museum records listing 256 KB and 512 KB memory boards for the HP 250 in 1981 and 1982.
The HP 260 of 1985 kept the same language and remained software-compatible. On the HP 3000, HP offered its own HP Business BASIC products: an MPE V version referred to as BASIC/V, and HP Business BASIC/XL for the 900 Series under MPE XL, whose reference manual’s first edition is dated October 1989. Business BASIC/XL has a compiler as well as an interpreter. One recollection from a former HP 3000 developer describes the HP 3000 Business BASIC as intended both as a migration path for HP 250/260 applications and as a standard BASIC across HP platforms. That intent is plausible but is not confirmed here by HP documentation.
The most direct descendant is Eloquence. Work on it started in 1987 to move HP 250/260 applications to HP-UX. Marxmeier says it “worked exceptionally well and allowed porting of existing applications in a matter of hours.” HP marketed it as HP Eloquence, and effective November 20, 2002, HP transferred product responsibility to Marxmeier Software AG. Marxmeier continues to develop it; release B.08.40 shipped in November 2024.
Current Relevance
The HP 250 and HP 260 are long out of production, and no emulator or container image runs their BASIC today. The language lives on in two ways:
- Through Eloquence. Business applications that began on the HP 250 can still run under Eloquence, which Marxmeier maintains and which still documents an HP 260-to-Eloquence migration path.
- Among collectors. The HP Computer Museum documents working HP 250 and HP 260 systems in some detail, including the special terminal ROMs the HP 250 needs to boot and the WS/260 PC software that emulates the required HP 2622D console. Scanned HP 250 manuals are preserved on Bitsavers.
Why It Matters
HP BASIC on the HP 250 shows a small business computer built around one language that includes the database, the screen forms and the report generator. HP put a version of IMAGE, the database from its HP 3000 minicomputers, into BASIC statements on a machine that a clerk could start by turning a key.
It is also a case study in how long business code outlives its hardware. The HP 250 sold in the thousands, but the applications written for it were valuable enough that HP and Marxmeier built and maintained a compatibility environment for them for decades after the last HP 260 was discontinued.
Timeline
Notable Uses & Legacy
HP order and materials management packages
HP's own launch application software for the HP 250 covered order management and material control for companies with roughly $1 million to $20 million in annual sales. It was built to be tailored through parameters at installation time rather than by custom programming.
Value-added reseller vertical solutions
According to Marxmeier Software's history of the platform, value-added resellers quickly adopted the HP 250's HP Business BASIC and IMAGE environment to build vertical-market business applications. The system sold modestly in the US and was much more popular in Europe.
HP-supplied system utilities
HP wrote much of the HP 250's own tooling in BASIC: disc initialization (INIT), duplication (DUPL), system configuration (CONFIG) and the CFORM/MFORM forms designers were supplied as protected RUN-ONLY BASIC utilities, some of which also included binary programs.
Migration to Eloquence
Applications written for the HP 250 and HP 260 were carried onto HP-UX, and later Linux and Windows, through Eloquence, which was designed to be almost completely backward-compatible with the original language and database.