Date: Sun, 9 Nov 1997 09:27:50 -0500 (EST) From: Chuck Robey <chuckr@glue.umd.edu> To: Terry Lambert <tlambert@primenet.com> Cc: Tony Overfield <tony@dell.com>, mike@smith.net.au, hackers@FreeBSD.ORG Subject: Re: >64MB Message-ID: <Pine.BSF.3.96.971109092617.26719B-100000@localhost> In-Reply-To: <199711090753.AAA17086@usr06.primenet.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 9 Nov 1997, Terry Lambert wrote: > > I can't tell, but I think you're talking about one of these: > > > > 1. ... switching to protected mode, setting larger segment limits > > and then switching back to real mode. > > > > It's very unlikely that you have anything in your config.sys > > that uses this trick. There's no benefit to using it, and > > there are serious compatibility problems with it. > > > > 2. ... the real mode trick of using FFFF:xxxx addressing. > > > > This lets you address up to 64K-16 bytes of memory above 1M in > > real mode. Protected mode is not needed to enable or use this > > trick. It is completely inadequate for loading a kernel. In > > DOS, this is called the HMA "high memory area". It is used > > when use have DOS=HIGH in your config.sys, as one example. > > > > 3. Something else. > > If so, please state it more clearly. > > 3. Something else. > > A) Switch to protected mode. > B) Set up a TSS and call gate. > C) Set up a memory map for real mode, excluding the last 64k in > the 640k->1M window. For it, you leave it unmapped. > D) Set up a data area below the 64k that the code stores what area > of high memory you want to access. > E) "Return" to real mode by calling through the gate. > F) When you need to access a 64k chunk abouve 1M, set which one you > want in the data area, and then access it as if it were in the > 64k region. > G) Take the fault in protected mode. Examine the data region. Map Terry, I don't think that will happen this way. Are you sure you didn't mean VM86 mode, not real mode? The exception won't move you to protected mode automatically (except in VM86 mode). > the desired region in the Real mode last 64k. Return. > > This is not quite trivial, but it's not quite impossible, either. Many > memory managers (even DOS ones) do it every day. > > There are several other you can do using suspend/resume instructions and > similar tricks (documented in the Van Gilluwe book -- I assume that's > what you were referring to in #1? > > > Terry Lambert > terry@lambert.org > --- > Any opinions in this posting are my own and not those of my present > or previous employers. > > ----------------------------+----------------------------------------------- Chuck Robey | Interests include any kind of voice or data chuckr@glue.umd.edu | communications topic, C programming, and Unix. 213 Lakeside Drive Apt T-1 | Greenbelt, MD 20770 | I run Journey2 and picnic, both FreeBSD (301) 220-2114 | version 3.0 current -- and great FUN! ----------------------------+-----------------------------------------------
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.971109092617.26719B-100000>