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: | Major | Last Reviewed: | 5/10/2003 |
---|
Keywords: | KB58495 |
---|
|