MPE/iX Release 7.5 Patch Revision 2028

MPE/iX Year 2028 Overview

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. The CALENDAR intrinsic 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 different MPE/iX Intrinsic functions (such as but not limited to: FMTCALENDAR, HPFMTCALENDAR, ALMANAC, and DATELINE) extract the CALENDAR returned value and subsequently format the year based on 1900.

CALENDAR
NM and CM callable.
Returns the calendar date, including the day of the year and the year since 1900.
Syntax
 U16
 date:=CALENDAR;
Functional Return
date 16-bit unsigned integer (assigned functional return)
Returns the calendar date in the following format:
Bits Value/Meaning
7:9 Day of year
0:7 Year since 1900
Binary 9 bits: 111111111 = 511 Maximum value. Enough for up to 366 days in a year
Binary 7 bits: 1111111 = 127 Maximum value. 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 < 10. This effectively extends the CALENDAR range to 12/31/2037. Beyond 1/13/2038 would require more extensive patching as the internal hardware and software time is kept as the number of seconds since 00:00:00 1/1/1970. Communicator 3000 MPE/iX Release 7.5

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 this agreement, these patches can be provided as enhancements to MPE/iX systems covered under a support or services agreement from Beechglen Development Inc.

Application Considerations

Each system applying these patches should be evaluated for the customer and third-party code that calls the CALENDAR intrinsic directly. For example, MANMAN calls CALENDAR to calculate an internal date. This instance was easily patched and integrated into the MANMAN application. In other applications, the object and source code that calls CALENDAR will need simple modifications. Native Mode Programs (NMPRG) can be examined for NM CALENDAR CALLS using the LINKEDIT LISTPROG command. Compatibility Mode programs (PROG) can be examined using the LISTPROG utility. At the time of this publication, Beechglen is in the process of evaluating third-party applications on a case-by-case basis. Thus far, Adager has been certified to function normally to 12/31/2037.

Who Should Consider Applying 2028 Patches?

  • Anyone using future dates in applications – initially observed in 2018 with 10-year record windows. Examples include shop floor calendars and patient scheduling.
  • Anyone planning (or not planning but may find) their HP3000 system running beyond 12/31/2027; including virtualized instances of MPE/iX on different hardware.
  • Expiration dates for labeled tapes are kept in CALENDAR format and are already exhibiting problems for customers with 10-year retention dates on tapes.

Illustration of a Beechglen patched MPE System

System Start
ISL> start norecovery
MPE/iX launch facility
...
DATE (M/D/Y)? 12/13/2028
TIME (H:M:S)? 13:37
*******************************
Year > 2027 Patches Copyright
Beechglen Development Inc. 2017
All Rights Reserved
WWW.BEECHGLEN.COM
*******************************
WED, DEC 13, 2028, 1:37:00 PM (y/n)? y

SETCLOCK/SHOWCLOCK
:setclock date=12/31/2037;time=23:30;now
Year>2027 Patches Copyright
Beechglen Development Inc. 2017
All Rights Reserved www.Beechglen.com
:showclock
SYSTEM TIME: THU, DEC 31, 2037, 11:30:12 PM
CURRENT TIME CORRECTION: 0 SECONDS
TIME ZONE: 5 HOURS 0 MINUTES WESTERN HEMISPHERE

LISTF
:listf purgeme,3
FILE: PURGEME.Y2028.SYS             
FILE CODE : 0                   FOPTIONS: BINARY,FIXED,NOCCTL,STD
BLK FACTOR: 1                   CREATOR : **                   
REC SIZE: 256(BYTES)            LOCKWORD: **                   
BLK SIZE: 256(BYTES)            SECURITY--READ    : ANY        
EXT SIZE: 0(SECT)                         WRITE   : ANY        
NUM REC: 0                                APPEND  : ANY        
NUM SEC: 0                                LOCK    : ANY        
NUM EXT: 0                                EXECUTE : ANY        
MAX REC: 1023                           **SECURITY IS ON       
                                FLAGS   : NO ACCESSORS         
NUM LABELS: 0                   CREATED : WED, DEC 13, 2028,  1:53 PM
MAX LABELS: 0                   MODIFIED: WED, DEC 13, 2028,  1:53 PM
DISC DEV #: 2                   ACCESSED: WED, DEC 13, 2028,  1:53 PM
SEC OFFSET: 0                   LABEL ADDR: **                 
VOLCLASS  : MPEXL_SYSTEM_VOLUME_SET:DISC

STREAM AT/IN & SHOWJOB - scheduled jobs
:STREAM JOB1;IN=2
 #J4
:STREAM JOB2;DATE=12/18/28;AT=23:00
 #J5
:SHOWJOB
JOBNUM  STATE IPRI JIN  JLIST    INTRODUCED  JOB NAME
#S1     EXEC        20  20       WED  1:37P  MANAGER.SYS
#J3     EXEC        10S LP       WED  1:37P  JINETD,MANAGER.SYS
2 JOBS:
    0 INTRO
    0 WAIT; INCL 0 DEFERRED
    2 EXEC; INCL 1 SESSIONS
    0 SUSP
JOBFENCE= 0; JLIMIT= 60; SLIMIT= 60

CURRENT: 12/13/28 13:56

JOBNUM  STATE IPRI JIN  JLIST    SCHEDULED-INTRO   JOB NAME
#J4     SCHED    8  10S LP       12/15/28 13:56    JOB1,MANAGER.SYS
#J5     SCHED    8  10S LP       12/18/28 23:00    JOB2,MANAGER.SYS

COBOL programs run without recompiling or running with special XLs (NM and CM)

:showtime
SAT, JAN 27, 2035, 11:52 AM
:cdatenm
NM COBOL DATE FUNCTION TEST
ACCEPT DATE (YYMMDD) IS: 350127 
CURRENT-DATE: 01/27/35 
FUNCTION CURRENT-DATE: 2035012711522400-0500 
ACCEPT TIME IS: 11522400
TIME-OF-DAY: 115224

STORE and 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.

STORE  p@;*std;SHOW=DATES;DATE<=12/31/2032

SAT, JAN 27, 2035, 11:44 AM

FILENAME GROUP    ACCOUNT  VOLUME RESTRICTIONS            SECTORS CODE   MEDIA
CREATED   ACCESSED   MODIFIED
P3      .TEMP    .SYS      DISC                        :C   47104 STORE      1
7/ 2/2030  7/ 2/2030  7/ 2/2030
PD      .TEMP    .SYS      DISC                        :C     320            1
7/ 2/2030  7/ 2/2030  7/ 2/2030
PDCM    .TEMP    .SYS      DISC                        :C     320            1
7/ 2/2030  7/ 2/2030  7/ 2/2030
PURGEME .TEMP    .SYS      DISC                        :C       0            1
6/ 5/2032  7/ 2/2030  6/ 6/2032

FILES STORED :                                        4

TOTAL MEDIA WRITTEN :                                 1

Native Mode Spooler including SELEQ by date

 :listspf @;seleq=[date=09/22/2034];detail

SPOOLID    JOBNUM   FILEDES  PRI COPIES DEV      STATE  RSPFN OWNER
FORMID   JOBNAME      COPSRM SECTS    RECS   PAGES DATE     TIME

#O1972     S2       PRT        1      1 LP       READY        MANAGER.SYS
1 16       56        ~1 09/22/34 17:25

#O1973     S2       PRT        1      1 LP       READY        MANAGER.SYS
1 16       56        ~1 09/22/34 17:27


The following list of vendors certified on Beechglen patched MPE systems that their software is Y2028 compatible.

VendorApplication, Utility, or Package
AdagerAdager
RobelleQEDIT, SUPRTOOL
Hillary SoftwarebyREQUEST, Sheetmate

Contact Beechglen for more information to see if the MPE/iX Patch Revision 2028 is right for your company.
info@beechglen.com

Mission-Critical Support
Sys Admin
STaaS
Cloud Hosting Solutions
D/R Planning
Custom Programming/ Development