ROM Version

Print the systems' ROM BIOS version, date, and machine ID


The ROM BIOS release date is located at address: F000:FFF5h-F000:FFFCh (8 bytes)
The ROM BIOS model ID is located at address: F000:FFFEh (1 byte)

As far as I know, after the 286 this area was no longer used for the ROM BIOS version.
For instance. I own a Gateway 2000 machine with an AMI BIOS from America Megatrends Inc. My BIOS version is located at memory location 0F000:0C80h:
    BIOS VERSION 1.00.07.DQ0T

See a section in Undocumented DOS programming for an updated way of getting the BIOS version.


main() {
	unsigned int  mID, i;
	static unsigned char far *Rptr = (unsigned char far *)0xF000FFF5;
	static unsigned char far *IDptr = (unsigned char far *)0xF000FFFE;

	printf("\nRelease date:  ");
	for (i = 0; i < 8; i++)
	  printf("%c", *Rptr++);

	mID = (int) *IDptr;
	if (mID < 0xF8)
	  printf("\nNot an IBM compatible");

	printf("\nModel: (0x%X) - ",mID);
	switch (mID - 0xF7) {
	  case (1): printf("PS/2 Model 80");
	    break;
	  case (2): printf("PC convertible");
	    break;
	  case (3): printf("PS/2 Model 25 or 30");
	    break;
	  case (4): printf("PC/XT");
	    break;
	  case (5): printf("80-286 (PC/AT, PS/2 Model 50 or 60)");
	    break;
	  case (6): printf("PCjr");
	    break;
	  case (7): printf("PC/XT");
	    break;
	  case (8): printf("PC (IBM compatible)");
	    break;
	}
	exit(mID);   /* send model id to DOS's ERRORLEVEL */
}


All rights reserved
Legal Notice
Copyright © 1984-2008 Forever Young Software
Return to My Home Page