• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 529
  • Last Modified:

Unable to control A20 line

I have tried to reinstall Win95 a couple of times.  I have FDISKed and FORMATTED the drive.  In the end, I cannot install 95 because I get this error.  How can I fix it?
1 Solution
jasmmoAuthor Commented:
Adjusted points to 200
Add the following line to the beginning of Config.sys:


Where X is a number from 1 to 17,each of which corresponds to a particular system brand.Type HELP HIMEM at a DOS prompt to get a list of these systems and thier associated numbers.If yours doesn't appear in the list,try all of them ('1' seems to work well for unlisted systems).
Could you post some info on the motherboard and cpu, you are using.

The A20 line error normally occurs with older machines.

The a20 option was in the old 8086 cpu's, thats all it had for addresses.Certain old programming techniques called A21 which acted as a type of loop back to A1.
When the new 286 machines came along a21 was valid ( it was actually a bug which became a standard)and caused problems with old coding. Some 486 bios's have an option to turn this off.

If however you have a new machine, this error can sometime be caused when you have some features in your advanced bios settings set for a to high value.

Try reseting to default of safe values.

[Webinar] Kill tickets & tabs using PowerShell

Are you tired of cycling through the same browser tabs everyday to close the same repetitive tickets? In this webinar JumpCloud will show how you can leverage RESTful APIs to build your own PowerShell modules to kill tickets & tabs using the PowerShell command Invoke-RestMethod.

A20 is an instruction of the CPU. that control the CTRL ALT DELETE. thats what it makes reboot a system. from a software. Go to BIOS and ENABLE A20. make sure to put it as FAST or FASTEST. do not put SLOW or DISABLE. this create problems.

here is something you would like to read about A20.

Since the 8088 only has 20 address lines, IBM decided to add extra hardware in the AT to ensure that it would emulate the
8088 memory wrap "feature." They did this by ANDING the CPU A20 with an output of the keyboard controller (KBC). Both
signals must be active before the real A20 is asserted on the bus. When the KBC was programmed appropriately, it's output is
always LOW. This inhibits the CPU A20 from ever being asserted on the address bus. This condition emulates the memory
wrap that the 8088 has. When the keyboard controller is programmed to allow CPU A20 on the address bus, all address lines
are presented without any other side effects. And when programmed to inhibit A20, nobody thought there would be any
adverse side effects -- but there are.

Since CPU A20 is the only address line gated, then any memory access to extended memory on odd megabyte boundaries is
inhibited (1M-2M, 3M-4M, etc.). Regardless of the state of the gate, the programmer always has access to every even
megabyte of memory (0M-1M, 2M-3M, etc.). A peculiar situation arises when CPU A20 is inhibited from the address bus,
and a RESET occurs. Since execution begins at the top of memory (and not F000:FFF0), when CPU A20 is gated off, the
system will crash. Why? Consider CPU A20. The top of memory is FFFFF0h on the '286 and FFFFFFF0 on the '386 and
later processors. If CPU A20 is gated off, then the RESET will cause execution to begin at EFFFF0 on the '286 and
FFEFFFF0 on the '386. Unless these addresses are mapped through hardware to appear at the top of memory, then the
computer will crash -- as it will try and execute whatever lies at these addresses (most likely a floating BUS).

The moral to the story? Don't ever RESET the CPU without enabling CPU A20 to the address BUS.

Please reject the Proposed answer if it does not work. I am not sure if it will work.
but it is better to have this question off or let somebody with a better comment which solve your problem to get the answer. as long as the one above do not solve it please reject it.
Well the proposed should work :). just was not sure.

The A20 line is the start of the first 64K of extended memory, known as the high memory area (HMA). The HIMEM.SYS device driver must control the A20 line to
     provide management of extended memory. The error message is reported by HIMEM.SYS if it incorrectly identifies the extended memory handling mechanism of the
     computer or if the handling method of the machine's BIOS is unknown.

     For more information concerning HIMEM.SYS, please refer to the Microsoft MS-DOS version 5.0 "User's Guide and Reference" and to the README.TXT file.

     If you are using MS-DOS 6.x, type "help himem.sys" at the MS-DOS command prompt, and then press ENTER.
There are two workarounds for this problem:

          Add the "/M:x" switch to the HIMEM.SYS line in the CONFIG.SYS file, where x is number from the valid range of 1-14 and 16, shut down and then restart
          your computer. For example:

                DEVICE=C:\DOS\HIMEM.SYS /M:1

          NOTE: In Windows 95/98, The Himem.sys file is located in the Windows folder, not the DOS folder.

          NOTE: An incorrect handler may lock or hang the system at boot up. You should have an MS-DOS version 5.0 bootable floppy disk available to boot from
          before you experiment with different machine switches.
          Upgrade your machine's BIOS or contact your machine vendor for assistance in modifying your CMOS settings. You may need to disable a FastGate (or similar)

Hey Istal, you deserve the points for the A20 info. I haven't encountered it in quite a while.

No I did not deserve the Points, Mattcei put it first. :). He deserves it. and well done.

Featured Post

2018 Annual Membership Survey

Here at Experts Exchange, we strive to give members the best experience. Help us improve the site by taking this survey today! (Bonus: Be entered to win a great tech prize for participating!)

Tackle projects and never again get stuck behind a technical roadblock.
Join Now