Update: We advise you to read our following day's report about HPCALENDAR and the CALENDAR intrinsic, for a complete view of the future viability of MPE. Also, the first entry in this series, including advice on what to expect from a 3000 running during 2028.
At the risk of beating a dead horse, we will return to the 3000's roadblock in 2028 one last time. We can wrap up our CALENDAR intrinsic discussion with an explanation of the reason for its hold on the 3000's far future. But it might be useful to consider that 2028 is not so far away that engineers aren't already conceiving its technology. When you merge VW and 2028, you can get an image like the one above.
Before the future, though, there's always history. When MPE was created in 1970, it started as a project called Omega. The miracle of this engineering was its use of 32-bit computing, still a novelty at the time. But when HP canceled Omega in favor of a 16-bit 3000 -- a management choice that prompted black armbands among HP staff -- it sealed the server into a 57-year period of service.
That's because, we were reminded by MPEX co-creator Vladimir Volokh, 16-bit 3000s left only enough intrinsic room for 127 years of accurate dates. The intrinsic CALENDAR, written for the eldest MPE Segmented Library (SL), uses only 7 bits to describe which year is in effect. That delivers a maximum number of 127 years which you can express, and MPE was built with 1900 as its base for dates.
date 16-bit unsigned integer (assigned functional return) Returns the calendar date in the following format:
7:9 Day of year
0:7 Year since 1900
HP only allotted 7 bits to describe the year for MPE. Who'd expect that the OS would have a lifespan of more than 50 years? Someone who figured newer and better tools would take over by then. It's commonplace to believe in the equivalent of flying cars -- Volkswagen's 2028 model concepts (shown above) are online in the company's German video and Flash site. Maybe cars will fly in some places, maybe not in others. Oh, for one extra bit. But HP ordered 16 extra, just too late to influence the heart of MPE.
Working in the realm of the original 16-bit MPE intrinsics, "You cannot make less than 9 bits for the date of the year," Vladimir said. "That would be less than 365 days. So that leaves us 7 bits to express the year."
The vintage-'90s HPCALENDAR, reaching into the new elbow room of 32 bits, can use as many as 23 bits for the year. That intrinsic will cover 8 million years, even more. HPCALENDAR is available in Native Mode MPE, and it remains the best choice for any new work done on a 3000's applications.
But MPE's existing intrinsics provide the barrier here: the oldest are in Segmented Library (SL) -- and the newer HPCALENDAR is in Native Library (NL). And the only companies with any chance of adjusting the 3000's dates into 2028 and beyond are those which have insight into MPE/iX source. Then there's knowing what to do with it. They must get into the MPE source and recompile it to use HPCALENDAR.
For complete reference, here's the manual page for HPCALENDAR:
NM callable only. This intrinsic returns the date in the supported date type code 4 listed in the table, “Supported Date Formats.”
Syntax I32 date := HPCALENDAR; Operation Notes Where date is the 32-bit unsigned integer (assigned functional return). This returns the calendar date in the following format: Bits Value/Meaning 23:9 Day of year 0:23 Year since 1900
Dates don't vex MPEX, Vladimir reminded us. It can do operations with DATE. "If you have MPEX, and who doesn’t," he says, "DATETOCALENDAR is a function in MPEX."
Vladimir also talks, on his return from consulting trips to 3000 sites, about the level of 3000 knowledge he sees in even long-time users. Management relies on the HP guys to tell them what’s up, and the HP guys don’t know.
"There are all kinds of excuses not to know what you’re doing," he says. He tells of his philosophy about learning. You draw a circle to represent what you know. "Inside the circle is what you know, outside is what you don’t know. You go along the circumference. Only by going along there can you see what you don’t know. So you learn, and you draw a bigger circle, a bigger circumference. The more you know, the more you know what you don’t know."
In converse, consider the smallest circle of knowledge, just a point. Vladimir adds, "When you know nothing, you think you know everything."
No one knows who will be working in the years near 2028 on HP 3000s. But in an era where Amiga computer games can be played on iPhones -- and companies now earn money for such a creation -- it's easy to say we don't know who will break this 2028 barrier. And they might be driving a car called a Volkswagen, and using a computer called the 3000, and neither will resemble what we know today, more than 15 years away.