Path: utzoo!bnr-vpa!bnr-fos!bmers58!schow From: schow@bmers58.UUCP (Stanley Chow) Newsgroups: comp.sys.ibm.pc Subject: Re: 640KB + 3072KB = 4 MB? Message-ID: <240@bmers58.UUCP> Date: 18 Sep 89 16:46:22 GMT References: <8909170749.AA26779@euler.Berkeley.EDU> Reply-To: schow%BNR.CA.bitnet@relay.cs.net (Stanley Chow) Organization: Bell-Northern Research, Ottawa, Canada Lines: 55 Summary: Followup-To: Keywords: In article <8909170749.AA26779@euler.Berkeley.EDU>, ndeng@EULER.BERKELEY.EDU (Nan Deng) writes: > Recently I have seen a number of 386 motherboards all using PHEONIX BIOS. > (MICRONICS, GENE, etc.) All boards have 4MB memory chips installed. All > boards reported 640KB of base memory and 3072KB extended memory when boot up. > > My question is: where is the additional 384KB? > The standard PC memory map has this 384KB reserved for BIOS ROM, I/O card ROM/RAM, etc. What happens to it is complicated and depends on the chip set, BIOS. I have AMI BIOS with the NEAT chip set so that is what I will talk about. The Chips & Technology NEAT chip set acts as a traffic cop for memory references to that address range. It can map the references to the mother board DRAM, mother board ROM, expansion I/O bus, etc. All this is under program control (by writing to registers on the chips). The intention is that on boot up, all references are to ROM, then BIOS copies itself to DRAM, BIOS will then tell NEAT to map BIOS references to DRAM. Simalar thing for EGA ROM. (This is known at ROM shadowing). Note that Video RAM must be left alone and not mapped out, otherwise the program will run real fast, but nothing will show on the screen! The NEAT chip set can map individual 16K blocks as well as write-protect each block. AMI BIOS (at least mine) chooses to map the lower 640K to motherboard DRAM, and the upper 384K is mapped to a combination of: - Protected DRAM, for BIOS ROM shadowing or Video ROM shadowing - I/O bus for Video RAM or other cards Unfortunately, all the unused address range is protected. This means eventhough the DRAM is sitting on the motherboard, no program will find it. There is nothing to stop me from writing a program to fiddle the registers so that NEAT will map the unused address range back to unprotected DRAM. But looking at the address map, there is not that much that can be recovered: 64K BIOS ROM Shadowing 32K Video ROM Shadowing (remember 16K block size) 64K EMS page frame 128K Video RAM (at least I think it is 128K) -------- 288K used. So the most that can be recovered is around 96K. (Hmm, I remember the days when 48K was the maximum for an Apple II). -- Stanley Chow BitNet: schow@BNR.CA BNR UUCP: ..!psuvax1!BNR.CA.bitnet!schow (613) 763-2831 ..!utgpu!bnr-vpa!bnr-fos!schow%bmers58 Me? Represent other people? Don't make them laugh so hard.