MS-DOS System Date Cannot Have a Year Past 2099 (58495)



The information in this article applies to:

  • Microsoft MS-DOS operating system 3.1
  • Microsoft MS-DOS operating system 3.2
  • Microsoft MS-DOS operating system 3.21
  • Microsoft MS-DOS operating system 3.3
  • Microsoft MS-DOS operating system 3.3a
  • Microsoft MS-DOS operating system 4.0
  • Microsoft MS-DOS operating system 4.01
  • Microsoft MS-DOS operating system 5.0
  • Microsoft MS-DOS operating system 5.0a
  • Microsoft MS-DOS operating system 6.0
  • Microsoft MS-DOS operating system 6.2
  • Microsoft MS-DOS operating system 6.21
  • Microsoft MS-DOS operating system 6.22

This article was previously published under Q58495

SUMMARY

The year portion of the system date has 7 bits for storage (0-127). MS-DOS offsets the year from 1980; therefore, the maximum value for the year should be 2107. However, due to a ROM BIOS limitation, 2099 is the maximum value. The description for interrupt 1AH details the implementation causing the limitation.

MORE INFORMATION

The ROM-BIOS interrupt 1AH deals with BCD (binary coded decimal) numbers. Each decimal place is represented by 4 bits. The century is returned in CH (either 19 or 20). CL contains the year. Each byte can have a value ranging from 0 to 9. The numbers returned are absolute values, not offsets from 1980. Thus, the maximum value for the (decade) year is 99. With the century returning 19 or 20, the maximum year (century-year) is 2099.

Modification Type:MajorLast Reviewed:5/10/2003
Keywords:KB58495