All members of the project team are proud of our achievements, a few of which are:
New standards in
software interfaces
All IMAGE/3000 intrinsics are callable from SPL, standard FORTRAN and standard COBOL. This was achieved by:
-
not using typed procedures
-
not using option variable
-
not using value parameters (using word-reference parameters only)
In contrast, less than 15 of the 119 MPE intrinsics have these characteristics and about 8 of those (such as DEBUG) owe this to the fact that they are parameterless.
All IMAGE/3000 intrinsics have extremely similar parameter sequences making them easier to learn and remember and less bug-prone.
All major IMAGE intrinsics perform extensive parameter consistency checking and provide ten words of information describing the result of the call. Supplementary intrinsics may be used to transform this information into human-readable form.
Contrast this with the MPE intrinsics, some of which don't even set the condition code and all of which return little, if any, information to the caller.
The principal IMAGE/3000 intrinsics all have a mode parameter which provide an open-endedness to the IMAGE sub-system. Subsequent enhancements are readily added by simply adding another valid mode value. This also made it possible to retain backward compatibility. With few exceptions, any program which ran on IMAGE/3000 in 1974 can run on IMAGE/3000 today.
New standards in data
structures and data
structure handling
IMAGE/3000 data structures (memory resident, disc resident and tape resident) include identifying information which is used by IMAGE for fault detection and is (or can be) used by other systems (such as OPT/3000) and users to assist them in their use of the HP300.
For instance, the first 6 characters of IMAGE extra data segments are of the form "IMAGEX" where X = 1, 2, 3 or 4 as determined by the type of segment. IMAGE uses these to ensure that it is dealing with the correct extra data segment. They also come in handy in identifying IMAGE data segments in any memory dump. DBUNLOAD, although developed in 1972 and 1973, has pr oven to be one of the two most reliable tape handling routines provided by the HP3000. It generates labeled tapes, handles multiple reels with the ability to restart at the beginning of a reel and provides end-of-dataset progress reports. DBUNLOAD also verifies all write recoveries.
DBLOAD, the other most reliable tape handling program, verifies all reported tape read recoveries. It also performs tape record sequence checking and extensive repositioning efforts in the face of sequencing or reading errors as well as progress reporting on a dataset-by-dataset basis.
One of the better
HP/3000 manuals
Although far from perfect, the IMAGE/3000 manual had examples (which actually work) in COBOL, FORTRAN, and SPL.
The manual description of each IMAGE intrinsic includes a description of each exceptional (or error) condition.
Contrast this, for example, with the descriptions of the file management intrinsics where the user is referred to FCHECK and/or the Appendix for a table of error codes which are supposed to help you determine the error. The two tables don't coincide and, even more important, the user is left to guess which error codes might result from a particular intrinsic call, and the circumstances which might cause them.