May 07, 2015
Whether the End of 2027 is MPE's End, Too
We've just reported on a company that's a member of the S&P 500 and is using HP 3000s. It also plans to keep one of them running up to 2023, only about four years away from the CALENDAR reset which the operating system will do at the end of 2027. But will that be the end of MPE's lifespan?
The CALENDAR intrinsic that may block HP 3000 use in 2028 has been described as a bug. On the first day of that year, dates will not be represented accurately. Some in your community consider that year's New Year's Day, less than 13 years from now, as the 3000's final barrier. But it depends on how you look at it -- as a veteran, or a voyager.
A voyager might see CALENDAR as a deadline for departure. This is one part of MPE that was designed in the 1970s, a period when HP had just scrapped a 32-bit release of the 3000's first OS. And just like the Y2K date design, HP engineers never figured their server's OS had any shot of working by the 21st Century -- let alone 2027. But VEsoft's Vladimir Volokh says, "It's difficult to predict anything, especially the future." An IT pro who's planning to depart the 3000 believes CALENDAR is a bug, but that's not how Vladimir sees it.
"This is not a bug, really," he said. "It's a limitation. The end of 2027 date was as far away as infinity when MPE was created." This is a man who defines the term veteran, the kind of professionals who had to work inside 4K memory spaces to build 3000 programs. Limited and expensive resources like memory and disc were supposed to be extended with newer computers. "Every analyst told us a computer would live five years, at most," Vladimir said.
But as a veteran, you've now come to see the day when MPE's lifespan is reaching eight times that prediction. The veteran who chooses to see CALENDAR as a limitation can refer to HP's own lab response. Engineers during the '90s built HPCALENDAR to start extending the 3000's date limits.The HP 3000's date intrinsics will outlast those in Unix, so long as a program uses HPCALENDAR. HP advised its 3000 customers in 2008 to begin using it on HP 3000s. HPCALENDAR harks back to version 5.5 of MPE/iX. Its power lies in the 3000 for use by programmers who want accurate dates beyond 2038 (the limit in Unix) for application files.
Lifting the limits in application date handling -- that's one level of engineering skill. Extending the operating system limits beyond the 16-bit CALENDAR is a task with a greater challenge. It doesn't mean that it cannot be done. What matters is how healthy the 3000's best experts will be in 10 years or so. Vladimir says he'll be younger than 90 by then. Almost everyone in today's community will be even younger. And isn't 70 the new 60? It will matter when the 3000 needs the last set of bits to move from 16 to 32.
There's a old joke about software shortcomings being called features, rather than a bugs. Veterans learn to call them limitations and look for ways to overcome these aging designs. Everything is aging, even something as omnipresent at Windows XP. It's a fact that XP is dying, and the 3000 is dying. Well yes, says Vladimir. He tells his hundreds of customers who he visits, "We are all dying. But slowly."
Looking at the CALENDAR intrinsic explains its hold on the 3000's far future. But consider that 2028 is not so far away that engineers aren't already conceiving technology for that year. Volkswagen has a concept video about a VW that runs in 2028.
Before that 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, as Vladimir reminded us, 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 completely by then. It's commonplace to believe in the equivalent of flying cars -- Volkswagen's 2028 model concepts are on the Web, and up in YouTube in a video. (Enjoy the Apple Watch-like commands at the 1:45 mark that show how to customize the VW Ego's exterior.)
Maybe cars will fly in some places, maybe not in others. Oh, but for that one extra bit. HP ordered 16 extra through HPCALENDAR in the 1990s, just too late to influence the heart of MPE.
While working in the realm of those 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 '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 maybe even using a computer called the 3000, and neither will resemble what we know today.
Use our search engine to find 20 years
of HP 3000 news and articles
The comments to this entry are closed.