Microsoft KB Archive/58495

= MS-DOS System Date Cannot Have a Year Past 2099 =

Article ID: 58495

Article Last Modified on 5/10/2003

-

APPLIES TO


 * Microsoft MS-DOS 3.1
 * Microsoft MS-DOS 3.2 Standard Edition
 * Microsoft MS-DOS 3.21 Standard Edition
 * Microsoft MS-DOS 3.3 Standard Edition
 * Microsoft MS-DOS 3.3a
 * Microsoft MS-DOS 4.0 Standard Edition
 * Microsoft MS-DOS 4.01 Standard Edition
 * Microsoft MS-DOS 5.0 Standard Edition
 * Microsoft MS-DOS 5.0a
 * Microsoft MS-DOS 6.0 Standard Edition
 * Microsoft MS-DOS 6.2 Standard Edition
 * Microsoft MS-DOS 6.21 Standard Edition
 * Microsoft MS-DOS 6.22 Standard Edition

-



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.

Additional query words: 6.22 3.20 3.21 3.30 3.30a 4.00 4.01 5.00 5.00a 6.00 6.20

Keywords: KB58495

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.