Re: i386/loader compiled with NOFORTH

From: Terry Lambert <tlambert2_at_mindspring.com>
Date: Sat, 26 Apr 2003 15:35:18 -0700
Andy Farkas wrote:
> On Sat, 26 Apr 2003, Ruslan Ermilov wrote:
> > On Fri, Apr 25, 2003 at 02:46:26PM -0700, Terry Lambert wrote:
> > > You are limited to what you can access in real mode, without
> > > Gate A20 (16M, at which point the address space wraps).
> >
> > Shhh, don't tell this anyone!  ;-)
> >
> > A20 (21th address line) allows one to access up to ffff:ffff
> > byte, that is (1M + 64K - 16) bytes of memory.

Depends on the segmentation model.  You can go up to 16M of
memory, if you are willing to do the EMM386 "trick" and bank
select into a window.  I rather doubt anyone wants to do the
program overlays necessary to use it usefully these days.  8-).

> Actually, you can access the entire 4GB of memory in "unreal" mode.
> 
> <http://x86.ddj.com/ddj/aug98/aug98.htm>

This isn't incredibly useful in this case, unless you add a
fourth level of loader code.  I'd find it really hard to
believe that anyone would want to do this.  And you're still
stuck with the increased memory requirement.  Also, you have
to use the SMM, or the CPU vendor equivalent, in order to
save and reload the hidden registers.  For a long time, all
the different processors had different ways of dumping and
restoring these registers.  I would hate to have to write
portable loader code (in assembly, no less!) that was capable
of dealing with all the different CPU's, including, say, the
Cyrix or IBM "Blue Lightning" derived cores.  8-(.

I think it'd be a lot easier to rewrite the "unbzip2" code to
take up less work space, or use its target memory as its work
area, instead, etc..  It'd be even easier to move another 60K
of loadable drivers onto a seperate floppy, and go back to
using gzip, instead.

-- Terry
Received on Sat Apr 26 2003 - 13:36:41 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:05 UTC