Getting the BIOS date from a PC

With the year 2000 looming many of us need a way to find out the BIOS versions of our PCs so we can check their Y2K readiness. It isn't always easy to catch these numbers on startup, and its a process that can be even harder to walk users through.

Fortunately the BIOS date is stored in memory starting at F000h:FFF5h just waiting for us to find it. Below I've included several methods that one might use, plus a little explanation of what we're getting. Once you know the date your BIOS was made you should be able to reference that date against tables from your BIOS vendor showing versions and their Y2K readiness.

The easiest way to view memory at this location is using the DEBUG utility. If you enter the command d f000:fff0 debug will dump the next 16 bytes of memory, including the 8 bytes containing the date field we're looking for. If you want to be precise you could enter d f000:fff5 l 8 to see the specific 8 bytes we're looking for. When your done quit will end your debug session.

C:\>debug
-d f000:fff0
F000:FFF0  EA 5B E0 00 F0 30 31 2F-30 34 2F 39 36 00 FC 0A   .[...01/04/96...
-d f000:fff5 l 8
F000:FFF0                 30 31 2F-30 34 2F 39 36                 01/04/96
-quit
C:\>

Note that when we print out the whole 16 bytes at f000:fff0 we get junk before and after the BIOS date. The first 5 bytes are a jump instruction to the POST routine, and the last 3 could be used to determine the PC BIOS type (AT or XT.)

We can also whip up a little code to find our BIOS date, the following C code should do it, and should compile under your favorite compiler, or you can use this executable: biosdate
ZIP: 5,509 bytes - Created with PKZIP 2.04g
EXE: 8,771 bytes - Created with Borland Turbo C++ 3.0

#include <dos.h>
#include <stdio.h>

int main()
 {
  int foo, i;

  printf("\n");
  for(i=0;i<8;i++)
   {
    foo = peekb(0xf000, 0xFFF5+i);
    printf("%c", foo);
   }
  printf("\n");

  return 0;
 }

I found the address locations referenced here in an incredibly useful book called PC Intern - System Programming by Michael Tischer (ISBN 155755-304-1)

Legal Mumbo-Jumbo:
Feel free to download, use, distribute, and modify code found on this page to suit your needs. I provide no support for any of this though, so your on your own. This software has been tested, but I am not responsible for anything that occurs to your computer. Use at your own risk, yada, yada, yada.

Last Updated 10/23/1998 - anthony - ant@anderbergfamily.net