TIP: Click on subject to list as thread! ANSI
echo: 80xxx
to: SAM IZZO
from: JEFF BRIELMAIER
date: 1998-01-28 20:52:00
subject: Year2000 problem

SI>... However, while perusing the CMOS memory map that comes with Ralf
SI>Brown's interrupt listing, I noticed it said that the year in the CMOS
SI>is stored as a BCD ranging from 00 to 99.  Has this been fixed in more
SI>recent CMOSs, or are they all like this?
The year is stored in CMOS byte 09h and the Century is stored in CMOS byte
32h.
SI>I decided to write a test program which displayed the date/time
SI>according to the CMOS and the date/time according to the DOS
SI>interrupts, and set them to just before 1/1/2000 and let them both
SI>tick over.  Of course, the CMOS said 1/1/00, and the day of week was
SI>Monday, which is incorrect, as it should be a Saturday.  The Monday
SI>would've been correct if it was 1/1/1900 though.
This indicates that the Real Time Clock (RTC) chip in your computer is not
Year2000 compliant.  (not surprising)
SI>The DOS interrupts had the correct information, including the year.  I
SI>rebooted, ran the program again, and DOS still reported 2000.  How did
SI>DOS get the year as 2000 when in the CMOS it said 00?? Oh, and the
SI>CMOS setup said 2000.
This indicates that your computer's BIOS handles the Year2000 rollover 
problem.  In this case, when the BIOS's GetDate interrupt (1Ah/04h) is called 
the Century byte will be updated before the date information is returned to 
you.
 * KingQWK 1.05 # [PK] * A twisted mind?  No, just bent in several strategic 
places.
--- Maximus/2 3.01
 *** Darryl Gregorash wrote in a message to Scott McNay:
 DG>> mov ss:[sp], eax
 DG>> sub sp,4
 SM> Shouldn't that be the other way around?
DG> I don't think so; it mimics a PUSH.
Last I heard, SP pointed at the top of the stack, so that SS:[SP] would refer 
to the last item.  Meaning, to add another value to the stack, you must first 
decrement sp, then move the new value, as in:
  sub sp,4
  mov ss:[sp],eax
I tried a PUSH AX in DEBUG, and after the instruction completed, SS:[SP] 
contained the value of AX.
Besides, if it really were mov ss:[sp],eax / sub sp,4, I'd put cli/sti around 
the two instructions to keep the new value from being zapped.
 SM> (assuming, of course, that mov ax,ss:[sp] worked ;)
DG> Why wouldn't it?
Did you try it?  Microsoft's DEBUG says "error", and OpenDOS's DEBUG says 
"Incorrect name of index register".
--Scott.
--- timEd 1.01
---------------
* Origin: COMM Port OS/2 juge.com 204.89.247.1 (281) 980-9671 (1:106/2000)
* Origin: Wizard's PC Services, BBS=254-554-2146, Pager=903-3097 (1:395/11)

SOURCE: echomail via exec-pc

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.