CALENDAR
NM and CM callable.
Returns the calendar date, including the day of the year and the year since 1900.
9 bits: 111111111 = 511 (enough for 366 days in a year)
7 bits: 1111111 = 127 (allows for year 1900 + 127 = 2027)
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.
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.
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 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 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.