BIOS EXTENDED

5/21/2004

Extended BIOS. The term may be used for almost any BIOS enhancement/modification, but in the MSDOS/Windows world, it generally applies to IBM's PS/2 BIOS and specifically to the Extended BIOS Data Area (EBDA) which is located in the last 1K of conventional (below 640K) memory. The EBDA apparently was to be filled out in future releases that never were made. It is empty except for a few bytes containing information about pointing devices. The EBDA was not implemented by most other BIOS vendors and is not present in most modern PCs.

The EBDA introduces some complication for operating systems. Windows 3 and 9 both implement an Extended BIOS driver EBIOS.VXD that handles addressing of the Extended BIOS area. EBIOS will fail initialization if no Extended BIOS is present -- which it generally is not.

If an Extended BIOS is present, EMM386 will try to allocate the EBDA to Upper Memory. A (very) few old programs assume that the top of conventional RAM is indeed conventional RAM. There is a flag NOMOVEXBDA in the EMM386 parameters that can prevent the UMB mapping if necessary.

Utillities that report memory size include the EBDA in total memory but not in available memory. This is surely correct, but since the EBDA is not explicitly called out by most software, it can sometimes result in what appears to be a 1K difference in memory sizes reported by different utilities.

Since EBIOS.VXD is initialized as part of the Windows VMM32.VXD subsystem and almost all PCs will run fine without any EBIOS function, it has been suggested that replacing EBIOS.VXD with a virus should get the virus run on every boot. Apparently it does and the capability has been exploited by at least one virus.

http://members.tripod.com/~oldboard/assembly/ebda.html http://web.archive.org/web/20050107151339/http://www.kryslix.com/nsfaq/Q.6.html

Return To Index Copyright 1994-2002 by Donald Kenney.