Xref: utzoo comp.sys.ibm.pc.programmer:333 comp.sys.ibm.pc:46119 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!zaphod.mps.ohio-state.edu!usc!apple!vsi1!octopus!stever From: stever@Octopus.COM (Steve Resnick ) Newsgroups: comp.sys.ibm.pc.programmer,comp.sys.ibm.pc Subject: Re: Caches and Extended Memory Message-ID: <1990Mar9.223329.9818@Octopus.COM> Date: 9 Mar 90 22:33:29 GMT References: <9003091838.AA21834@decwrl.dec.com> Reply-To: stever@octopus.UUCP (Steve Resnick ) Organization: Octopus Enterprises, Cupertino CA Lines: 21 In article <9003091838.AA21834@decwrl.dec.com> stoppani@slough.enet.dec.com (Pete Stoppani) writes: >My understanding is that memory above 1Meg (except for the first >64k above 1Meg) is accessible only when a 268/386/486 is in protected mode. >How does a hard disk cache driver use extended memory on a system running >MS-DOS? Does it switch to protected mode? Do the machines run in >protected mode all the time? Neither seems right...What am I missing? To use extended memory beyond FFFF:FFFF you MUST place the machine in protected mode. I am unsure of the technique used, but it goes something like this. You set a flag/IO port/register (dunno which) which flags the BIOS that you've switched into protected mode intentionally. Load a dummy LDT, IDT and GDT do your memory work, then write to a IO port which resets the CPU. This is the only way out of protected mode on a 286 is to force the CPU to do a reset. The flag that you left when you entered protected mode tells the BIOS during POST that it was all a bad dream and the machine is not to be rebooted. It's sort of kludgy but it works. I believe this is how int 15 func 87H (move extended memory block) and the VDISK driver works... Hope this helps... Steve >