Link to home
Start Free TrialLog in
Avatar of pthurman
pthurman

asked on

Error: unable to control A20 line- XMS driver not installed.

Get this error all of a sudden on boot-up. Can't aviod it even with boot disks.
Himem.sys is there.
Changed memory, hdd, and pulled all other components.
Tried multiple bios settings.
What is this please?
ASKER CERTIFIED SOLUTION
Avatar of Apparatus
Apparatus

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of johnsavior
johnsavior

Hi pthurman,

Generally HIMEM.SYS is on directory  C:\WINDOWS\, so add this line on CONFIG.SYS file :

device=c:\windows\himem.sys /m:1

Good luck.
The message, "unable to control A20 line- XMS driver not installed." is due to an incompatibility or misreading of your BIOS and HIMEM.SYS.

HIMEM.SYS must take control of the A20 line to provide management of extended memory. In your case, the A20 line is not recognised for some reason.

There are many possible fixes so if one suggestion doesn't work, try another.

The fix?
* DEVICE=C:\WINDOWS\HIMEM.SYS /M:1 (what johnsavior already wrote!)

OR

DEVICE=C:\WINDOWS\HIMEM.SYS /testmem:off /M:1 /cpuclock:on.

Even add the an additional switch "/V" for verbose.  This will provide additional information about the problem.

NOTE: "M:1" means the Machine type.  This number can be from 1-17 and instructs HIMEM on how to control the A20 handler for XMS memory.  You may have to experiment with numbers 1-17.

Finally, another option instructs HIMEM not to control the A20 line.  This is used when some other device has already taken control of A20.
"/A20CONTROL:OFF" - default is ON

* Add the following line to your autoexec.bat :
"SET DOS16M=2"

* Have you recently installed Norton Utilities or Norton AntiVirus?
If so, see: http://service1.symantec.com/SUPPORT/nsw.nsf/docid/1998091615025007

* Look at your computer BIOS settings (which one are you using?) for an option to disable the A20 line?  MAny BIOS' do not provide access to this option any longer.

That is just about it.

Good luck!
For the sake of reference, here are some more HIMEM.SYS options.

/A20CONTROL:ON|OFF: The default is ON, Use this switch (set to OFF) only if some other device has already taken control of the A20 line and you need to disable HIMEM's attempts to do so. The way that you know that you need to use this modifier is that when HIMEM tries to load, you get an error message saying that the A20 line is already enabled. This setting is rarely used.

/CPUCLOCK:ON|OFF: The default is OFF, You should use this modifier (set to
 OFF) only if the computer is slower with HIMEM loaded than it is without it loaded. On some systems, HIMEM affects the clock speed, but this situation is rare. (This clock is not the one that keeps the time of day!) This setting is also rarely used.

/EISA: This switch does not have a default, which means that if you don't add EISA to the HIMEM statement, there is no memory effect or lack of effect relating to it. This switch is used only on EISA bus machines that have 16MB of RAM or greater. Most computers do not have an EISA bus. If you have one, you probably know that you do,  because everything costs more if it is for an EISA and parts for it usually have to be ordered. Computers that are PCI, VESA Local BUS (VLB), MCA, or ISA are not EISA. This modifier is another one that is rarely used.

/HMAMIN=x: The default value for x is 0, and valid numbers to use in place of the x are 0 through 63. If you have the statement DOS=HIGH in CONFIG.SYS, then this modifier is useless for you. You won't usually find this one around either.

/INT15=xxxx: The default value for x is 0, and valid numbers to use in place of the x are 64 through 65535. You use this switch to reserve a specific amount of extended memory for old programs that use DOS Interrupt 15h for extended memory instead of using XMS. You won't use this one; don't try to understand it.

/NUMHANDLES=x: The default value for x is 32, and valid numbers to use in place of the x are 1 through 128. The default works fine in almost all cases, and this switch is typically used only in response to an error message from an application about not having enough XMS handles. Each reserved handle uses 6 bytes of memory, so some memory management guru may have added /NUMHANDLES=1 to save 186 bytes of memory. Saving that amount of memory is probably not worth the errors that you will encounter, so if that is the case, remove the modifier or increase it to 32.

/MACHINE:xxxx: This modifier is used for certain hardware that HIMEM needs  to change the way it loads. You know that you need this modifier if you get the following error message from HIMEM as it tries to load: WARNING! UNABLE TO CONTROL A20 LINE. Usually, you can call a hardware supplier to get the correct setting.

/SHADOWRAM:ON|OFF: Informs HIMEM whether to disable shadow RAM. The  default is on.

/VERBOSE:ON|OFF: The default is OFF,   slows down the boot process a bit. Displays memory status information
Avatar of pthurman

ASKER

Comment accepted as answer
Claered cmos, with battery.
Error gone.
Still says a20 fast gate enabled... can't disable in setup, so still may need other suggestions if it happens again.
Thanks all.
Pat
I had the same problem, and whether you believe it or not, the cause was the mouse. Yes, you have heard it correctly - the PS2 mouse buggered everything up. When replacing the mouse, the problem disappeared. Even though I have never encountered this before, and probably never will, I am sure that someone else will sometimes get the same problem again, and maybe then this note will come in handy...!

- FolkLore