Path: utzoo!yunexus!torsqnt!dptcdc!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ukma!husc6!cfa!ward From: ward@cfa.harvard.EDU (Steve Ward) Newsgroups: comp.sys.ibm.pc Subject: Re: Problem of breaking DOS 640K RAM limit? Summary: 640K limit and MSDOS Message-ID: <1429@cfa.cfa.harvard.EDU> Date: 8 Mar 89 18:40:50 GMT Article-I.D.: cfa.1429 References: <74032HJW2@PSUVM> <15373@cup.portal.com> <1345@ccncsu.ColoState.EDU> Organization: Harvard-Smithsonian Lines: 48 MSDOS does NOT impose the 640K limit commonly encountered on IBM and clone PC's. The MSDOS upper memory limit is affected by three things: 1. BIOS 2. MEMORY HARDWARE 3. BIOS EXTENSION ROM's (usually on plug-in I/O cards) First, the BIOS sizes memory and stores this information. All the PC/XT BIOS's I have seen are hard-coded to stop testing at 640K. In order to utilize memory that may exist beyond 640K the BIOS will have to be modified to test/size the extra memory. MSDOS makes a BIOS call (BIOS int, can't remember the int vector number) to obtain the contiguous memory size, so MSDOS is not hard-wired for any limitation at least up to 1MB. MSDOS may even accept a memory size beyond 1MB but I have not bothered to look into this because my hardware won't allow it. On the PC/XT (8088/8086) there is a 1MB memory address space. However, BIOS extension ROM's/EPROM's are commonly found starting at address C0000h and above. This means if you can modify your BIOS to size or report more memory, you could at least go up to 768K bytes of memory before running into the BIOS extension ROM's. If you could relocate your BIOS extension ROM's (or didn't have any, though that is unlikely) then you might make even more room. Of course, there are plug-in memory boards that would allow you install more memory contiguous with the motherboard 640K, so at least it is possible to add the memory. The second item, memory hardware, is usually only a severe limitation for cases where the motherboard has limited PC I/O bus slots and adding a memory card is not possible. Item three was just explained. So, if you can modify your BIOS you can add at least 128K (must be contiguous with the 640K on the motherboard) and bring your memory up to 768K. If you can relocate BIOS extension ROM's above C0000h then you can free up even more memory. Some I/O boards allow selecting alternate address locations for their ROM's so this is a possibility. A careful check of memory space use by all your I/O boards should be made to make sure that any memory you install will not clash in the memory address space. I believe there are a few PC bus memory boards on the market which are half-size and allow adding up to 384K of memory. Such a board could possibly be used to add memory above, but contiguous with the 640K. Now all you to do is disassemble your BIOS chip and modify it! Steve W. ward@cfa.harvard.edu