ITS year 2028 problem

38 views
Skip to first unread message

Lars Brinkhoff

unread,
Jun 23, 2026, 1:20:37 AM (13 days ago) Jun 23
to PiDP-10
Hello,

ITS keeps track of the time in a 36-bit word.  The lower 18 bits are the number of half seconds in the day.  The upper 18 bits are split between 2 unused bits, 7 for the current year, 4 for the month (1-12), and 5 for the day in the month (1-31).  The 7-bit year field allows for keeping two decimal digits, and was interpreted as the year modulo 100.  The system would normally use two digits for input and output.

With the year 2000 rolling around, this was no longer tenable.  Applications started to display strange things.  The year was displayed as three digits, or 19xxx, or the upper digit no longer a number due to adding more than 9 to the base ASCII code for 0.

It was decided to reinterpret the 7-bit year field as year minus 1900, and to display and input the year as the full four digits.  This has been working fine, but it will not serve us for much longer.  The maximum 7-bit number is 127, and 1900+127 is 2027.  So after next year, ITS will again no longer keep accurate time.

The obvious thing is to grab the two unused bits to extend the year field to nine bits.  I have started doing this conversion.  However, there are dozens of places to update, and hence a lot of testing needed.  I suggest if you want to get your hands dirty, it would be an interesting exercise to pick one of the changed programs, rebuild it, and check that the date input and/or output still works.  And if you're feeling wild and crazy, PDSET the date to something past 2028 and check again.

My changes are currently on a branch and can be seen here:
Reply all
Reply to author
Forward
0 new messages