I suspect that the check should actually be made for
the day field of
the date word being zero as being invalid... the year can be 00, the
month can be, too, but the day field should always be non-zero for
a valid date. (though I've always had a problem with why the months
field was 0-11 instead of 1-12 when the day field was 1-31).
You might want to check your manuals again, Megan - for the past two
decades that I've been doing RT-11 programming, the month field in the
date word *does* run 1-12, not 0-11. (Actually, 0-11 would make
more sense since you're almost always using it as an index into a
table of month names...)
And, of course, the CSI command lines generally expect RAD50 constants for
months, not numbers, so you can generally type
037266 instead of JAN
023112 instead of FEB
050572 instead of MAR
004322 instead of APR
050601 instead of MAY
040726 instead of JUN
040724 instead of JUL
004617 instead of AUG
073630 instead of SEP
057114 instead of OCT
054756 instead of NOV
014713 instead of DEC
Note that octal 004322 = decimal 2258. So some fixes are going
to happen in the future with date parsing if one wants to be sure not
to confuse 'APR' with the year '2258' :-).
There are some other funny things with year parsing in CSI command lines
that have been around since the mid 70's. In particular, most of the
RT-11 utilities used to (that is, prior to 5.7) take as legal years
59 through 63 decimal. Convert these to octal, and you see they
are represented as 73 through 77. This way, if you forgot the decimal
point on a CSI command line in specifying a year in the range 73-77,
the utility "fixed it up" for you with the "do what I mean" operator
:-).
It's a cute trick, but it doesn't work from 1980 through 1999 because
8 and 9 aren't legal octal digits... and it wasn't reimplemented for
4 digit years in the range of 2000-2007.
--
Tim Shoppa Email: shoppa(a)trailing-edge.com
Trailing Edge Technology WWW:
http://www.trailing-edge.com/
7328 Bradley Blvd Voice: 301-767-5917
Bethesda, MD, USA 20817 Fax: 301-767-5927