• Please review our updated Terms and Rules here

A20 issues with my 386

boggit

Experienced Member
Joined
Jan 4, 2024
Messages
180
Yesterday, I set up my new 386 system using [this motherboard].
  • I have 8 mb RAM (two 4 mb SIMM cards).
  • I am using a 128 mb compact flash card for hard drive, installing PC DOS 7.01 (aka PC DOS 2000) to use for operating system.
  • I ran into my first problem almost right away. On startup, HIMEM.SYS reports an error:
Unable to control A20 line! XMS Driver not available.
  • Adding "/machine:1" to the DEVICE=HIMEM.SYS line in config.sys gave me (approximately, since I'm using a Swedish version of PC DOS):
Installed A20 handler number 1,3.
64kb in the high memory area available.
  • However, when loading DOS=HIGH, the operating system still reports HMA as not available (loading DOS in the lower memory area). CheckIt Pro also still reports A20 as being off.
  • Adding different machine types yields the same results (all the way up to 16), except for a few of them resulting in DOS hanging on boot-up.

This is what my CMOS Setup looks like:
IBIyjD2.jpg


PM4ge2s.jpg


This is what the SIMM cards look like:

4mH9cW6.jpg


What should I do?
 
I will make two small suggestions. First, post a copy of the AUTOEXEC.BAT and CONFIG.SYS just to confirm nothing else is trying to grab the HMA. Second, I noticed that the memory test over 1MB and the parity check were off. Maybe try a run with both on and make sure the memory works. Much easier to solve a software problem when there is no hardware problem.

Check if the 8042 keyboard controller has any damage including the traces around it. There isn't much else that impacts the A20 line.
 
I will make two small suggestions. First, post a copy of the AUTOEXEC.BAT and CONFIG.SYS just to confirm nothing else is trying to grab the HMA.
I can do that, but I've ran with bare bones autoexec.bat and config.sys just to eliminate that possibility, with the same issues regarding A20. I am currently installing FreeDOS on the computer, to see if that makes any differences, but as soon as that is one, I'll check the files.

Second, I noticed that the memory test over 1MB and the parity check were off. Maybe try a run with both on and make sure the memory works.
I've ran it with memory test over 1MB turned on, but not with party on. I'll try that as well.

Check if the 8042 keyboard controller has any damage including the traces around it. There isn't much else that impacts the A20 line.
I'll check that as well. [Here] is a decent picture of the motherboard, if it is high resolution enough to tell?
 
I don't see any corrosion or obvious damage scraping off a trace. I guess that rules out all the easy causes. I hope somebody provides an idea because what comes to mind is both very unlikely and a lot of work to test.
 
I don't see any corrosion or obvious damage scraping off a trace. I guess that rules out all the easy causes.
I switched the seats of the SIMM modules, thinking they might be in the wrong bank, but that proved to be false (loud beeps indicating that their new home wasn't suitable).

Also, as indicated by MindWalker in [another thread], [this] seems to be a better bet for correct motherboard ID.

I removed the cap from JP6 (enabling memory parity check) and turned on parity check and full memory check in CMOS, but nothing turned up funny in the boot-up.

what comes to mind is both very unlikely and a lot of work to test.
Let's hear it!
 
Buggy BIOS. Buggy keyboard controller. The problem is I have no good way of proving either is bad and just replacing components that rarely fail is a recipe for wasting money.
I see. Which IC on the motherboard is the keyboard controller?

EDIT: Ah, the one between the IC with the white-yellowish AMI sticker and the ISA ports?

I do have a keyboard controller chip on my faulty 286 board. I could swap the 386 one for that?

0Qujlgi.jpg
 
Last edited:
The keyboard controller is the chip next to the BIOS marked Mega-KB. The chip on the other side of the BIOS (HM6818P) is the real time clock.

This thread https://www.vogons.org/viewtopic.php?t=51727 is about the only evidence that shows where the A20 gate might be that I could quickly locate. That is a problem dealing with a less common IC. In lieu of a better idea, follow the trace from that pin and see if it all is intact.
 
The keyboard controller is the chip next to the BIOS marked Mega-KB. The chip on the other side of the BIOS (HM6818P) is the real time clock.

This thread https://www.vogons.org/viewtopic.php?t=51727 is about the only evidence that shows where the A20 gate might be that I could quickly locate. That is a problem dealing with a less common IC. In lieu of a better idea, follow the trace from that pin and see if it all is intact.
Ok, so no point in trying the 286 keyboard controller displayed in the image above?
 
I can't find a datasheet for the DAC-PCKB42 so I have no idea if it has the same pinout as the one already in there. There were only a few KBC designs so replacement is possible. I just have no idea if that replacement would result in a usable keyboard or result in a fire. I don't even know if the current KBC is bad. I would prefer to wait for more information and try the KBC swap as a last resort.
 
I can't find a datasheet for the DAC-PCKB42 so I have no idea if it has the same pinout as the one already in there. There were only a few KBC designs so replacement is possible. I just have no idea if that replacement would result in a usable keyboard or result in a fire. I don't even know if the current KBC is bad. I would prefer to wait for more information and try the KBC swap as a last resort.
Fair enough! Thank you!
 
  • ..., installing PC DOS 7.01 (aka PC DOS 2000) to use for operating system.
  • I ran into my first problem almost right away. On startup, HIMEM.SYS reports an error:
I would highly recommend trying with MS-DOS 6.x first before messing with any ICs and assuming some hardware error. IBM's version of HIMEM.SYS may simply not like that mainboard. Or it may require /machine and "1" is simply not the correct one.

I do have a keyboard controller chip on my faulty 286 board. I could swap the 386 one for that?
On a 286, the keyboard controller did switch the A20 gate. On a 386, the CPU switches the A20 gate. So even if there *would* be a hardware fault, that's not going to work.
 
I would highly recommend trying with MS-DOS 6.x first before messing with any ICs and assuming some hardware error. IBM's version of HIMEM.SYS may simply not like that mainboard.
I got the same type of A20 error with FreeDOS, for what it is worth.

Or it may require /machine and "1" is simply not the correct one.
I tried all variants between machine:1 and machine:16. Several of them reported A20 handler working, but no other software (HIMEM, Emm386, CheckitPro SysInfo etc) reported controlled A20 gate.

On a 286, the keyboard controller did switch the A20 gate. On a 386, the CPU switches the A20 gate. So even if there *would* be a hardware fault, that's not going to work.
Ah, good call! Did not know that.
 
I got the same type of A20 error with FreeDOS, for what it is worth.
FreeDOS is not MS-DOS. MS-DOS is what was made for all those clone systems and that's what you should try to make sure it's not related to the OS.

Also, are you absolutely sure it's the mainboard from that link?
 
FreeDOS is not MS-DOS. MS-DOS is what was made for all those clone systems and that's what you should try to make sure it's not related to the OS.

Also, are you absolutely sure it's the mainboard from that link?

Noted!

And no, I am not absolutely sure.
 
From what I am reading, that did not happen until the 486.

Because the subject of A20 gating has come up before, and will come up again later, I have started an 'A20 gating' web page at [here].
Interesting!

I will try to look up the specific A20 stipulations for the chipset in question.

What I am starting to think is that perhaps someone who had this board before replaced a failty bios IC, but the replacement was of an older version of AMI BIOS that lacks options for regulating A20 in CMOS?
 
I found [this] article through googling, written by someone also using an AM386SX processor, who also experienced the same A20 error. This seems to strengthen the case for faulty RAM being the villain of this drama.
 
I would highly recommend trying with MS-DOS 6.x first before messing with any ICs and assuming some hardware error. IBM's version of HIMEM.SYS may simply not like that mainboard.
MS-DOS 6.22 reports the exact same A20 error.

EDIT: Running HIMEM.SYS /M:1 in CONFIG.SYS sort of works at first, and then reports the following (translated from Swedish):
ERROR: HIMEM.SYS has detected unreliable XMS memory at adress 00100000h.
The driver for XMS was not installed.
 
Last edited:
UPDATE: Okay, this is quite a head-scratcher. I switched out the two 4MB SIMM cards, replacing them with two 1MB SIMMs from my 286 mobo.

Same A20 error as before and - here is the kicker - with /M:1, DOS reports the same unreliability error on the exact same address (00100000h).

EDIT: Could this issue be PSU related? I am using an IBM XT power supply to feed the motherboard. The pinout for the P8+P9 connectors are identical, except for the fact that while the XT P8 connector has a KEY pin after the POWER GOOD one, an AT P8 provides +5v on the corresponding pin. As all +5v pins are connected together on the motherboard (if I have understood things correctly), this just means that an AT PSU provides extra current to +5 voltage.

As the 386 motherboard, small as it is and with much fewer discrete components than, for example, the 5160 motherboard (and since I lack power-hungry peripherals like MFM hard drives, et cetera), I thought that this should work fine, but perhaps this is what creates the A20 issue?
 
Last edited:
Back
Top