On 25 Aug 2001, at 23:31, Eric & Sheryl Fuller wrote:
> I have a seven year old 486DX2-66 with 40MB RAM that will not boot
> even with boot disks. When I turn it on, it performs the memory
> test to 40MB then starts over several times, then the Windows98
> screen comes up and disappears, the system beeps once. It goes
> back to DOS and gives me the following messages:
>
> Error: Unable to control A20 line!
> XMS Driver not installed.
>
> Warning: the high memory area (HMA) is not available. Additional low memory (below 640K) will be used instead.
> HIMEM.SYS is missing.
> Make sure that the file is in your Windows directory.
>
>
> Then the system goes to the C prompt but by then my keyboard has
> stopped working, so I cannot type anything.
>
> When I put in the boot disk, the A drive lights up for a few
> seconds, but there is no sound (it is not reading the disk)
>
> I have searched for all information related to this, and tried
> pressing F8 and pressing F5, and I have tried reseating the
> memory, all to no avail. Is it time to give up???
>
> Thanks so much,
> Sheryl
(A little bit of history: The original 8086 CPU had 20 address
connector lines, numbered A0 through A19, allowing it to directly
address 2^20 = 1MB of memory addresses. [The 8088 used in the
original PC multiplexed at least the data lines and *I think* also
the address lines -- that's a wrinkle we can ignore.
The 80286, used in the AT, increased the number of address lines to
24, and the 80386 to 32.
The segmented addressing used in real mode (and, on the 386 and up,
in V86 mode) can actually generate some addresses that are 21 bits
wide, and extend almost 64K above the 1MB point.
On the 8086 and 8088, the carry from the most significant bit had
nowhere to go, and such addresses "wrapped around" to 0 like an
odometer. On the 80286 and up, it was possible for this 21st bit to
be sent to the new "A20" line, and used to address an additional 64KB
of real-modem memory, the HMA ("high memory area"). The risk was
that some software already released might be relying on the old "wrap
around" behaviour.
The solution was to hook the A20 line into an "AND" gate with
another signal, normally off; software that new about the HMA could
turn this other signal on to enable access to that region.
Now the tricky part was to find some signal that could be
controlled by programs, was already available (cheap!), and wasn't
already being used. A suitable candidate was found on the 8048
keyboard controller chip, and this has become a standard feature of
PC systems.
So, what's happening is that Win98, as it boots, is trying to turn
that signal on and off, to confirm that it can use that to get to the
HMA. Testing is indicating that this is *not* providing HMA access.
> Then the system goes to the C prompt but by then my keyboard has
> stopped working, so I cannot type anything.
Instead of providing access to the HMA, attempting to manipulate
this signal has instead locked up the keyboard processor, or
suppressed the interrupts that keypresses are supposed to generate.
This would seem to suggest two basic possibilities:
1. The Win98 boot code is corrupted, and a reinstall *may* fix it.
2. They keyboard controller chip may be damaged; these used to be a
separate standard part, but these days are usually merged into the
motherboard chipset. A DX2-66 might go either way; it could be a
fairly simple replacement operation, or it may be time for a new
motherboard. (Which probably means new CPU, RAM and video; the hard
drive and case may be about all you can really salvage.)
David Gillett
PCBUILD maintains hundreds of useful files for download
visit our download web page at:
http://freepctech.com/downloads.shtml
|