LDOS and LS‑DOS: 2012 and Beyond

written by Matthew Reed

Nothing makes an operating system feel more antiquated than having an expiration date. For TRS‑80 users, that expiration date is just around the corner. Model 4 LS‑DOS and Model I and III LDOS will stop accepting the date in 2012 and the only solution is to disable the system date or lie about the year.

I happen to believe that LDOS and LS‑DOS still have life left in them, so I have developed a set of patches to extend date handling to 2079. The result is a 100 year dating window, beginning January 1, 1980 and ending December 31, 2079.

The patches are free and there are six patches in the set:

  • A patch to SYS3/SYS to use the new dating scheme when writing to the directory.
  • A patch to SYS0/SYS to make the date startup prompt accept dates up to 2079. Two digit years are recognized as 1980 to 1999 for values of 80 to 99 and 2000 to 2079 for values of 00 to 79. Also, the day of week calculation is fixed for years past 2040.
  • A similar patch to SYS7/SYS to address the same issues, only for the DATE command.
  • A patch to SYS6/SYS to let the DIR command display dates past 2011 and filter dates past 2011.
  • A patch to BACKUP/CMD to let BACKUP filter dates past 2011.
  • A patch to SYS7/SYS to let PURGE filter dates past 2011.

Date filtering is a rarely used feature, but these patches update it to work for new dates. For example:

DIR :0 (DATE="03/01/84-08/08/92")

will display all files on drive 0 dated between March 1, 1984 and August 8, 1992.

After the patch, this command:

DIR :0 (DATE="02/10/93-12/31/45")

will display all files dated between February 10, 1993 and December 31, 2045.

These patches take up no additional code space, but optimize the existing code to allow adding the extra features. This was the most difficult part of the project, because the code was already very tightly written and compact.

Next post in this series: Technical information.

Categories: General

Leave a Comment

All comments are moderated. The name and email fields are required, but your email address will not be published.

Thank you for commenting!