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-2011 by Donald Kenney.