MPE/iX Release 7.5 Patch Revision 2028

MPE/iX CALENDAR intrinsic date boundary explained, and the Beechglen patches that extend the operating system to 12/31/2037.

Technical overview

Many MPE/iX operating system procedures and intrinsic functions rely on the CALENDAR intrinsic and the internal binary format of the CALENDAR date argument return. CALENDAR returns a 16 bit value, allowing 9 bits for day of year and 7 bits for the year. The base year is presumed to be 1900, limiting the maximum year to 2027 since the largest number represented by 7 bits is 127. Several MPE/iX intrinsics — including FMTCALENDAR, HPFMTCALENDAR, ALMANAC and DATELINE — extract the CALENDAR returned value and format the year based on 1900.
CALENDAR INTRINSIC

CALENDAR

NM and CM callable.

Returns the calendar date, including the day of the year and the year since 1900.

Bits Value/Meaning
7:9 Day of year
0:7 Year since 1900

9 bits: 111111111 = 511  (enough for 366 days in a year)

7 bits: 1111111   = 127  (allows for year 1900 + 127 = 2027)

Solution

Patches developed by Beechglen address this issue by altering the base year to 2028 for CALENDAR year return values below 10. This effectively extends the CALENDAR range to 12/31/2037. Beyond 1/13/2038 would require more extensive patching, as internal hardware and software time is kept as the number of seconds since 00:00:00 1/1/1970.

Note: the ‘Year >2027 Patches’ have been developed as enhancements under the Beechglen Development Inc. MPE/iX source code agreement with Hewlett-Packard. As provided in that agreement, these patches can be supplied as enhancements to MPE/iX systems covered under a Beechglen support or services agreement.

Application considerations

Each system applying these patches should be evaluated for customer and third-party code that calls the CALENDAR intrinsic directly. For example, MANMAN calls CALENDAR to calculate an internal date; that instance was easily patched and integrated into the application. In other applications the object and source code that calls CALENDAR needs simple modifications. Native Mode programs (NMPRG) can be examined for NM CALENDAR calls using the LINKEDIT LISTPROG command, and Compatibility Mode programs using the LISTPROG utility.

A patched MPE system in operation

SYSTEM START

ISL> start norecovery

DATE (M/D/Y)? 12/13/2028

TIME (H:M:S)? 13:37

Year > 2027 Patches Copyright

Beechglen Development Inc. 2017

All Rights Reserved

WED, DEC 13, 2028, 1:37:00 PM (y/n)? y

SETCLOCK / SHOWCLOCK

:setclock date=12/31/2037;time=23:30;now

:showclock

SYSTEM TIME: THU, DEC 31, 2037, 11:30:12 PM

CURRENT TIME CORRECTION: 0 SECONDS

TIME ZONE: 5 HOURS 0 MINUTES WESTERN HEMISPHERE

STORE WITH DATE SELECTION CRITERIA

:store p@;std;show=dates;date<=12/31/2032

>> TURBO-STORE/RESTORE  VERSION  C.75.00  B5152AA  <<

(C) 1986 HEWLETT-PACKARD CO.

Year 2028+ Enhancements (c) 2017-2025 Beechglen Development, Inc.

Third-party software certified on patched MPE systems

VENDOR
APPLICATION, UTILITY OR PACKAGE
Adager
Adager
Robelle
QEDIT, SUPRTOOL
Hillary Software
byREQUEST, Sheetmate
COGNOS
PowerHouse QUIZ, QTP, QUICK (not vendor certified; versions 7 and 8 internally tested by Beechglen)
DISC
Omnidex (not vendor certified; version 3 internally tested by Beechglen)

Let's talk about 2028 calendar patches.

Tell us what you run and what concerns you. We will tell you plainly what we would look at first, and whether we are the right people to help.