Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch.embedded > #18720

Re: x86 real mode

From David Brown <david.brown@hesbynett.no>
Newsgroups comp.arch.embedded
Subject Re: x86 real mode
Date 2014-10-17 16:52 +0200
Organization A noiseless patient Spider
Message-ID <m1rafb$c7t$1@dont-email.me> (permalink)
References <m1r8pj$che$1@speranza.aioe.org>

Show all headers | View raw


On 17/10/14 16:23, Don Y wrote:
> Hi,
> 
> What are the most conservative, *practical* expectations I can
> make living in x86 real mode:  TEXT of 64K and DATA of (disjoint)
> 64K?  BSS in it's own segment?  Or, shared with DATA?

It should, I think be possible to have DS, CS and SS each pointing to a
different 64 KB segment.  But .bss and .data would both be part of the
data segment.  Access to other segments (including pointers to stack
data, if SS is not the same as DS) is via "far pointers".

> 
> And, how seemlessly will the compiler let me *implicitly* move
> those segments around as well as between them?  (e.g., practical
> limitations on code/data sizes).  "PC" handled 640K so should
> I expect that to be the size of my playground?
> 

I believe in real mode you can get 1 MB of address space total.  I am
not sure if things like video cards get mapped into that space at all,
or are only accessible with I/O instructions.

> [Presumably, any "object" is constrained to fit within a single
> segment]

It doesn't have to be - but it is going to be a little complex to access
objects that span 64K segments.

> 
> I imagine this will all be accomplished in the linkage editor
> (not visible to the source code).
> 
> [What a screwed up architecture!]
> 

Yes, x86 was screwed up the day it arrived on the market.

But the real question, which you knew someone was bound to ask, is /why/
are you using real mode on the x86?  The chips boot in real mode, but
you would normally jump to protected mode after a few instructions to
set it up (unless you really are using an 8086 processor).

I believe I read somewhere that in modern x86 chips, the cache can be
configured to work as ram (basically, you have a write-back cache but
disable writing back to external memory), so that if you are working
with x86 code this small, you don't need any external memory.

You might find more useful information on the www.coreboot.org or
www.freedos.org websites.


Back to comp.arch.embedded | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

x86 real mode Don Y <this@is.not.me.com> - 2014-10-17 07:23 -0700
  Re: x86 real mode Arlet Ottens <usenet+5@c-scape.nl> - 2014-10-17 16:31 +0200
    Re: x86 real mode Don Y <this@is.not.me.com> - 2014-10-17 07:45 -0700
      Re: x86 real mode Arlet Ottens <usenet+5@c-scape.nl> - 2014-10-17 16:53 +0200
        Re: x86 real mode Don Y <this@is.not.me.com> - 2014-10-17 08:28 -0700
          Re: x86 real mode Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2014-10-17 18:35 +0300
          Re: x86 real mode Arlet Ottens <usenet+5@c-scape.nl> - 2014-10-17 17:36 +0200
            Re: x86 real mode Don Y <this@is.not.me.com> - 2014-10-17 13:54 -0700
              Re: x86 real mode Grant Edwards <invalid@invalid.invalid> - 2014-10-17 21:02 +0000
                Re: x86 real mode Don Y <this@is.not.me.com> - 2014-10-17 14:54 -0700
              Re: x86 real mode upsidedown@downunder.com - 2014-10-18 10:09 +0300
          Re: x86 real mode Grant Edwards <invalid@invalid.invalid> - 2014-10-17 16:11 +0000
      Re: x86 real mode Stefan Reuther <stefan.news@arcor.de> - 2014-10-17 18:37 +0200
      Re: x86 real mode Les Cargill <lcargill99@comcast.com> - 2014-10-17 12:58 -0500
  Re: x86 real mode David Brown <david.brown@hesbynett.no> - 2014-10-17 16:52 +0200
    Re: x86 real mode glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-10-17 16:45 +0000
  Re: x86 real mode Robert Wessel <robertwessel2@yahoo.com> - 2014-10-17 10:03 -0500
  Re: x86 real mode Grant Edwards <invalid@invalid.invalid> - 2014-10-17 16:07 +0000
  Re: x86 real mode upsidedown@downunder.com - 2014-10-17 19:57 +0300
  Re: x86 real mode Les Cargill <lcargill99@comcast.com> - 2014-10-17 12:57 -0500
  Re: x86 real mode Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2014-10-17 21:18 +0300
    Re: x86 real mode glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-10-17 21:48 +0000
      Re: x86 real mode Don Y <this@is.not.me.com> - 2014-10-17 15:06 -0700
        Re: x86 real mode glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-10-17 22:25 +0000
          Re: x86 real mode Don Y <this@is.not.me.com> - 2014-10-17 15:39 -0700
            Re: x86 real mode George Neuner <gneuner2@comcast.net> - 2014-10-17 22:47 -0400
              Re: x86 real mode Don Y <this@is.not.me.com> - 2014-10-17 21:10 -0700
                Re: x86 real mode upsidedown@downunder.com - 2014-10-18 11:32 +0300
            Re: x86 real mode upsidedown@downunder.com - 2014-10-18 11:10 +0300
              Re: x86 real mode Don Y <this@is.not.me.com> - 2014-10-18 08:20 -0700
                Re: x86 real mode upsidedown@downunder.com - 2014-10-18 20:34 +0300
                Re: x86 real mode Don Y <this@is.not.me.com> - 2014-10-18 12:53 -0700
          Re: x86 real mode upsidedown@downunder.com - 2014-10-18 10:30 +0300
          Re: x86 real mode David Brown <david.brown@hesbynett.no> - 2014-10-18 20:22 +0200
      Re: x86 real mode upsidedown@downunder.com - 2014-10-18 10:22 +0300
        Re: x86 real mode glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-10-18 09:06 +0000
          Re: x86 real mode Robert Wessel <robertwessel2@yahoo.com> - 2014-10-18 08:43 -0500
          Re: x86 real mode Gerd Brix <gbrix@gmx.eu> - 2014-10-18 16:39 +0200
          Re: x86 real mode Don Y <this@is.not.me.com> - 2014-10-18 17:52 -0700
            Re: x86 real mode George Neuner <gneuner2@comcast.net> - 2014-10-20 01:35 -0400
              Re: x86 real mode upsidedown@downunder.com - 2014-10-20 10:14 +0300
                Re: x86 real mode George Neuner <gneuner2@comcast.net> - 2014-10-20 14:12 -0400
              Re: x86 real mode Don Y <this@is.not.me.com> - 2014-10-20 08:15 -0700
    Re: x86 real mode Les Cargill <lcargill99@comcast.com> - 2014-10-17 18:39 -0500
      Re: x86 real mode Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2014-10-18 10:46 +0300
  Re: x86 real mode George Neuner <gneuner2@comcast.net> - 2014-10-17 15:29 -0400
    Re: x86 real mode Don Y <this@is.not.me.com> - 2014-10-17 14:32 -0700
      Re: x86 real mode Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2014-10-18 00:09 +0200
        Re: x86 real mode glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-10-17 22:31 +0000
          Re: x86 real mode upsidedown@downunder.com - 2014-10-18 12:04 +0300
            Re: x86 real mode glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-10-18 23:22 +0000
            Re: x86 real mode Don Y <this@is.not.me.com> - 2014-10-18 20:59 -0700
      Re: x86 real mode upsidedown@downunder.com - 2014-10-18 11:53 +0300
        Re: x86 real mode Don Y <this@is.not.me.com> - 2014-10-18 09:34 -0700
    Re: x86 real mode glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-10-17 22:00 +0000
      Re: x86 real mode Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2014-10-18 00:26 +0200
        Re: x86 real mode glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-10-17 22:36 +0000
      Re: x86 real mode George Neuner <gneuner2@comcast.net> - 2014-10-17 21:45 -0400
        Re: x86 real mode glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-10-18 03:26 +0000
          Re: x86 real mode Robert Wessel <robertwessel2@yahoo.com> - 2014-10-17 23:26 -0500
            Re: x86 real mode glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-10-18 05:42 +0000
          Re: x86 real mode Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2014-10-18 10:53 +0300
            Re: x86 real mode glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-10-18 09:12 +0000
        Re: x86 real mode Robert Wessel <robertwessel2@yahoo.com> - 2014-10-17 22:40 -0500
      Re: x86 real mode George Neuner <gneuner2@comcast.net> - 2014-10-17 22:07 -0400

csiph-web