HPlogo Communicator 3000 MPE/iX Release 6.0 (Platform Software Release C.60.00): HP 3000 MPE/iX Computer Systems > Chapter 9 Year 2000 Enhancements

Year 2000 Enhancements for MPE/iX

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Index

by M Gopalakrishnan
Commercial System Division

Overview

This version of MPE/iX provides enhancements to the operating system for the year 2000 and beyond. The enhancements include the enhancements to the operating system commands, utilities, VPLUS and databases. This article explains the enhancements.

Background

The year 2000 issues stem from the ability to handle correctly the year 2000 and beyond. This is particularly an issue for systems and applications that are using a two-digit year to express dates. There are a few commands, utilities, and databases in MPE/iX which were designed to handle two-digit years and these had to be enhanced to support year 2000 and beyond.

The year 2000 is a leap year, and this also had to be addressed. The MPE/iX operating system uses the Gregorian calendar and its definition of leap year: any year that is exactly divisible by 400, or that is exactly divisible by 4 and not exactly divisible by 100.

Two-Digit Years Interpretation

One of the ways for handling two-digit year input is to interpret the years in the method called fixed window method. In this method, the two-digit years map as follows:

  • 00 .. 49 maps to 2000 .. 2049

  • 50 .. 99 maps to 1950 .. 1999

For example, both of the following STREAM commands will schedule the JOBFILE as January 21, 2001:

:STREAM JOBFILE;DATE=01/21/2001
:STREAM JOBFILE;DATE=01/21/01

Intrinsics

The CALENDAR intrinsic and CALENDAR date representation format are widely used in MPE/iX. There are many other intrinsics that accept or return dates in calendar format. The following discussion clarifies the interpretation of calendar format year value.

CALENDAR Intrinsic

The CALENDAR intrinsic returns the CALENDAR date, including the day of year and the year of century. The existing CALENDAR intrinsic documentation refers to the year as "year of century." This should be interpreted as "year since 1900."

The new definition of the CALENDAR intrinsic is as follows:

Syntax

U16
date:=CALENDAR;

where date is a 16-bit unsigned integer (assigned functional return).

This returns the CALENDAR date in the following format:

Table 9-1 CALENDAR Date Formats

Bits

Value/Meaning

7:9

day of year

0:7

year since 1900

 

Description

For the year 2000, the CALENDAR intrinsic will return the year as 100, for 2001 as 101, and so on. With this current interpretation, CALENDAR format can handle years through 2027.

All intrinsics accepting or returning dates in CALENDAR format will behave the same way as the CALENDAR intrinsic.

NOTE: If your application uses the CALENDAR intrinsic or CALENDAR format, it may be required to verify the source for conformance to the above interpretation.

HPFOPEN/FOPEN Intrinsic

HPFOPEN item 31 (labeled tape expiration parameter) and FOPEN (formmsg label tape parameter) will accept both two- and four-digit years as the labeled tape expiration date. This is the same as the FILE command expiration date parameter. For an interpretation of two-digit years, refer to the section, "Two-Digit Years Interpretation," in this article.

New Date Intrinsics

This version of MPE/iX has new intrinsics added to manipulate dates in various formats. For more information, refer to the article, "New Date Intrinsics for MPE/iX," in this Communicator.

Commands

The following commands are enhanced to support both two- and four-digit years. For an interpretation of two-digit years, refer to the section, "Two-Digit Years Interpretation." New syntax for the commands with parameters accepting years follows:

  • STREAM command

    :STREAM jobname;DATE=datespec

    where datespec is the date for streaming the job in the format mm/dd/[yy]yy. If omitted, the current date is used.

  • FILE Command

    :FILE  [;LABEL=[ [volid][,[IBM][,[expdate][,seq] ] ] ] ]
    [ [ [ [ANS] ] ] ]

    where expdate is the expiration date in the format mm/dd/[yy]yy.

  • SETCLOCK command

    :SETCLOCK ;DATE=datespec

    where datespec is the local date in the form mm/dd/[yy]yy.

  • LISTSPF/SPOOLF command

    :LISTSPF/SPOOLF ;SELEQ=[DATE=mm/dd/[yy]yy]
  • STORE Command

    :STORE       [{;DATE<=accdate}]
    [{;DATE>=moddate}]

    where accdate and moddate are the accessed and modified dates in the form mm/dd/[yy]yy.

CI Variables

The available HPYEAR variable is corrected to return the last two digits of the current system year, and a new CI variable is added to have the four-digit current system year.

Existing variable:

Title not available (CI Variables )

HPYEAR

is a global variable used by the CI that shows the last two digits of the current year; the initial value is the year at logon. Type= R I

For example, HPYEAR will have 0 for year 2000 and 5 for year 2005.

New four-digit year variable:

Title not available (CI Variables )

HPYYYY

is a global variable used by the CI that shows the current year; the initial value is the year at logon. Type= R I

For example, for year 2000, HPYYYY will have 2000.

HPSPLITYEAR

is a global variable used by the CI that shows the current century split year; the initial value is 50. Type=W I

This variable is used in the new date intrinsics to manipulate dates in various formats.

Utilities

CLKUTIL and START utilities/commands available in ISL (Initial System Loader) are enhanced to accept dates both in two- and four-digit years.

Feedback to webmaster