What Are Your Favorite Enhancements?

Compiled by the Robelle Staff

Here are some all-time favorite improvements to HP 3000 Software:


We all agreed that disc caching for the original MPE was a fabulous enhancement. It not only boosted the performance of the existing HP 3000s dramatically, but the timing was perfect. It was released just in time to save the bacon of a lot of HP sites while they were waiting for the new RISC processors to be released.


Stan Sieler of Allegro suggests Intrinsic Level Recovery, which brought IMAGE to a new level of reliability.

But Neil Armstrong of Robelle suggests Third-Party Indexing (TPI), a standard interface to Omnidex and Superdex -- it meant that you could support both, through a single API, which would stay stable through multiple versions.

Bob Green of Robelle remembers most strongly the addition of Transaction Logging to IMAGE. Probably because, in the days before IMAGE logging, Bob wrote his first piece of system software that became a product: an add-on transaction logging system for IMAGE!


Neil loved the permanent Redo stack, which allows you to instantly access those long compile and link commands from yesterday's history!

Stan's favorite was the original QZMODIFY (which he wrote), probably followed by LSORT to sort lines.

François Desrochers' favorite Qedit improvement was Visual mode, which allows you to use the terminal cursor keys to edit a page of text, then press Enter to update it to your file.

Bob Green says that the enhancement that generated the most positive feedback from users was when he dropped the need to put a colon (:) in front of MPE commands inside Qedit. A simple change, but it struck a nerve.

The feature that Bob appreciated the most was the ability to compile, prep and run programs without leaving Qedit - all without having to do a slow Text and Keep. On overloaded HP 3000s, that was a lifesaver for programmers.


Neil votes for the REDEFINES clause, which allows you to define the same storage area in main memory for different data items whose lengths are not described as variable in an OCCURS clause. You ccan then have multiple types of data stored in the same physical space, with the data varying by record.

     01 PARTS-TABLE.
         02 PART OCCURS 35 TIMES.
            03 NAME              PIC X(10).
            03 QUANTITY          PIC 9(04).
            03 UNIT-PRICE        PIC 9(06).
            03 LOCALE            PIC X(10).
               04 BUILDING-NO    PIC X(03).
               04 FLOOR-NO       PIC X(02).
               04 SECTION-NO     PIC X(02).
               04 BIN-NO         PIC X(03).


Neil says Variable Substitution was relatively easy to do but made a lot of people happy on MPE (and HP-UX). It gave access to MPE variables directly in Suprtool commands, without having to echo to a file and then execute the file.

François really appreciated the Dup command in Suprtool, which finally gave you an easy way to find (or ignore) duplicate records.

And Neil notes that the Dup Keys xxx option made tasks so much easier for many users. It determines the level at which Suprtool compares sort keys. This option controls which duplicate records are included in (or excluded from) the output file.

In the following example we sort by agent and by bill-date (in descending order), but only check for duplicates at the agent level. This means that the user could control which records get kept and which are thrown away.

>in somefile
>sort agents                        {sort by agents}
>sort bill-date,desc                  {sort by date}
>duplicate none keys 1  {only check to sort break 1}
>output agents                         

Previous to this enhancement this would have taken two steps:

>in somefile
>sort agents
>sort bill-date,desc
>out agentwk,temp
>in agentwk
>sort agents
>duplicate none keys
>output agents

SPL (System Programming Language)

SPL was the language used to code MPE - a variant of ALGOL and a big innovation when most system code was still written in Assembler. Bob's favorite improvement was the move/scan with length returned as an expression. Stan added this feature when he worked at HP. It allowed you to easily save the length after a scan without resorting to machine-dependent "Top of Stack" coding. For example,

    keywordlen := scan bufpointer until delimiters

Neil liked $include files, which were supported in SPL and FORTRAN if you also had Qedit on the system, through a devious compiler interface.


The first time anyone saw MASTCAP to change master dataset capacities, they were usually entranced.

Later Adager added DETPACK to physically repack detail records for faster retrieval, along any of the search paths. This was a very clever idea.


You are trying to install a software update, but you cannot purge the existing program file because someone is running it. MPEX added a great Listf option to solve this problem:

%listf @,access 

This tells you which user is accessing a file, group or even any files in an account; nothing can be easier.


When WRQ came out with their terminal emulator for the IBM PC, it was great not to have a terminal and a PC on your desk. But then they added the feature to map display enhancements such as Inverse Half-bright into colors - that was amazing. Finally, a use for the Blinking enhancement - make the field turquoise!

Miscellaneous Improvements

The Robelle staff votes for web downloads of our software as the best improvement at Robelle (no more tapes).

Stan likes the Type Ahead Engine from Telamon, which was a hardware box that allowed you to keep typing after you hit Return. Very important in the old days when system response was not always instantaneous and MPE did not come with type ahead capability!

Worst Enhancements of All Time, To ANY Software

Not all enhancements are remembered fondly.

Stan's candidate for worst enhancement to MPE is the loader patch that prohibited ring level 0 code from being loaded (somewhere around MPE/iX 2.0?).

François remembers HP Word as the worst improvement to MPE in his career.

Bob really, really dislikes the "improvement" to Windows Media Player where the title/menu bar is hidden until you move your cursor toward the top of the screen. Reason: you are always killing the wrong programs on your desktop.

99% of Windows programs have a title bar across the top, with a menu bar below (File, Edit, View, etc.). But the Windows Media Player title bar and menu bar are hidden until you need them.

But, if the Media Player is not the active window, the menu bar never appears regardless of where you move your cursor, even if the Media Player is the top window on your desktop. So you see the Media Player on top of your desktop, you want to terminate it, you go up to the right hand corner of the screen and click the X icon. But Media Player is still there - you must have missed the X. You click again, and again. About then you realize that you just terminated your spreadsheet, your email and a web page that you had intended to bookmark