rich@coyote.trw.com (Rich Messenger) (04/27/91)
I recently bought a generic clone 386SX with 4MB RAM. When I tried to install HIMEM.SYS, I get the diagostic WARNING: Can't disable A20, but then HIMEM goes ahead and says the High Memory Area is available. My (sketchy) understanding of A20 is that this addressing line must be enabled to access extended memory or the HMA. However, you are supposed to *disable* A20 when you are not accessing extended memory or the HMA because some program rely on the behavior when A20 is disabled, which causes memory accesses above 1MB to wrap to zero. The upshot, then, of being unable to disable A20 is that any program which relies on this wrapping behavior will trash memory in the HMA. I thought I would submit several questions to the wisdom of the net: 1) What evil brain-damaged part of my clone is likely responsible for the inability to disable A20? I ran a clean boot with nothing but HIMEM, so I'm sure it isn't software. My best guess is that it is the BIOS or some chip on the mother board. Or could it be some plug in board of mine? 2) If the answer to (1) is the BIOS, is there anyone else out there who has my problem, or even better a solution to my problem? On boot, I get the message: 386SX-BIOS (C) American Megatrends Inc NEATSX V1.1 05-31-90 Does anyone know a technical support address or number for AMI? 3) Is my analysis of the pitfalls of the non-disabling A20 correct? If not, what's a good pointer to a book which discusses these issues. I browsed through a computer book store today for an hour without any success in finding a reference to A20. 4) It seems to me that HIMEM should disable the HMA if the A20 line cannot be disabled, so that if there is a program which relies on memory access wrapping, it will at least not trash another program's data in the HMA. Is disabling the HMA the safe thing to do? How can I do that? -- _ __ ' ) ) / ... Rich Messenger /--' o _. /_ rich@wilbur.coyote.trw.com / \_(_(__/ /_ {uunet,cit-vax,trwrb}!wiley!rich