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


Groups > comp.os.msdos.programmer > #392

Re: How to call Int 15h, ax=e881h?

From "Rod Pemberton" <do_not_have@noavailemail.cmm>
Newsgroups alt.os.development, comp.os.msdos.programmer
Subject Re: How to call Int 15h, ax=e881h?
Date 2011-11-02 02:49 -0400
Organization Aioe.org NNTP Server
Message-ID <j8qp45$e1$1@speranza.aioe.org> (permalink)
References <j8n1ll$t95$1@speranza.aioe.org> <7a1ef205-0198-49f2-b7e7-c0d712ec7977@g7g2000vbv.googlegroups.com>

Cross-posted to 2 groups.

Show all headers | View raw


"James Harris" <james.harris.1@googlemail.com> wrote in message
news:7a1ef205-0198-49f2-b7e7-c0d712ec7977@g7g2000vbv.googlegroups.com...
> On Oct 31, 8:50 pm, "Rod Pemberton" <do_not_h...@noavailemail.cmm>
> wrote:
> > Does anyone here know how to correctly call Int 15h, ax=e881h?
>
> Great question, Rod.

Sigh ...

> Isn't e881 documented to provide exactly the same info as e801?

RBIL indicates it should.  I didn't recheck the Phoenix manuals.  The
returned values are small enough that e881h could just clears the upper 2
bytes of eax, ebx, ecx, edx, ...  (Could that be it?  Horrors!)

> Of course, in Protected mode int 0x15 is generally unrelated so seems
> wrong. Could the reference to an interrupt be the misleading part and
> the rest be correct?

Not to sound hostile or aggravated, but I don't know.  That's why I asked.
I don't frequently come across unknown programming situations.

If I get around to trying it from PM, I'll probably call the address the Int
15h 16-bit vector points too.  But, I'm concerned that in PM, it may still
be 16-bit code in the BIOS, not actually 32-bit.  I.e., am I jumping or
calling from 32-bit code to 32-bit code?  Or, am I jumping or calling from
32-bit to 16-bit code?  I suspect the BIOS supports both 16-bit RM and
16-bit PM, but not 32-bit protected mode even though it's supposedly 32-bit
...  Well, all I seem to be doing is confusing myself.  I may have to do a
dump of BIOS and disassemble that routine as someone suggested.

> I have a couple of Phoenix machines I could also test with in real
> mode if you want to post a code snippet.

Uh ...  I posted my entire memory test (BDA, CMOS, all BIOS calls, etc.)
at Ben's request in the Oct. 31st a.o.d. "e820 various machines" thread
which is right next to this thread ... (James are you reading this from
c.o.m.p.?)

The RM call to e881h is one test in it.  It's disabled.  Direct link:
http://groups.google.com/group/alt.os.development/msg/9d1a6ffab580693a

> > How does one call the BIOS while in 32-bit protected mode?
>
> > Neither manual tells the protected mode setup required to call e881. For
> > 32-bit, the manuals only describe how to call BIOS32 Service Directory.
>
> I think you've answered your own question.

The problem is that I've got no information on how to access Int 15h via
BIOS32, if that's possible ...

> For comparison, based on
> PCI System Architecture - 4th ed - the steps below should determine if
> there are any 32-bit protected mode BIOS functions available. Apart
> from the PCI bit at the end does this match the Service Directory
> finder you mention?
>
> [BIOS32 setup, snip]

It looks like it.

> I don't know what eax should be for Phoenix' e881 or the family it is
> part of. Apparently for the PCI BIOS eax should be set to "$PCI".

BIOS32 is another of those not well documented, or documented all over the
place things.  I posted what I know about it here, with mentions of the
specifications involved:
http://groups.google.com/group/alt.os.development/msg/7b42efc6d6197527

> Both e881 and e801 are very limited and to have no way to report
> holes in the address space. If they are all that's available what should
> we do? Is it too naive to assume that all PCs made back then had
> simple memory layouts with no holes and no devices in the memory
> space these would report?

Well, I posted a bunch of memory results in the "e820 various machines"
thread on a.o.d which include e820h results.  Maybe Ben will post some too.
I sure hope so.  I was surprised that e820h was supported on the old
machines.

> If you have a chance to go through real mode then e820 has to be the
> best option, and it's been around for a long time, falling back to
> e801 and ah=0x88 only in extremis.

From the memory results of 3 machines that I posted, it seems those are the
BIOS calls commonly supported, excluding CMOS and BDA values.  However,
that's a really small sample set.


Rod Pemberton

Back to comp.os.msdos.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

How to call Int 15h, ax=e881h? "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-10-31 16:50 -0400
  Re: How to call Int 15h, ax=e881h? Jim Leonard <mobygamer@gmail.com> - 2011-10-31 15:32 -0700
    Re: How to call Int 15h, ax=e881h? Rugxulo <rugxulo@gmail.com> - 2011-10-31 16:37 -0700
      Re: How to call Int 15h, ax=e881h? "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-11-01 05:10 -0400
  Re: How to call Int 15h, ax=e881h? Ross Ridge <rridge@csclub.uwaterloo.ca> - 2011-10-31 20:18 -0400
  Re: How to call Int 15h, ax=e881h? "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-11-01 05:09 -0400
    Re: How to call Int 15h, ax=e881h? Ross Ridge <rridge@csclub.uwaterloo.ca> - 2011-11-01 12:23 -0400
  Re: How to call Int 15h, ax=e881h? James Harris <james.harris.1@googlemail.com> - 2011-11-01 12:57 -0700
    Re: How to call Int 15h, ax=e881h? "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-11-02 02:49 -0400
      Re: How to call Int 15h, ax=e881h? Ross Ridge <rridge@csclub.uwaterloo.ca> - 2011-11-02 10:33 -0400
      Re: How to call Int 15h, ax=e881h? James Harris <james.harris.1@googlemail.com> - 2011-11-04 14:47 -0700
        Re: How to call Int 15h, ax=e881h? Ross Ridge <rridge@csclub.uwaterloo.ca> - 2011-11-04 17:59 -0400
          Re: How to call Int 15h, ax=e881h? James Harris <james.harris.1@googlemail.com> - 2011-11-04 15:09 -0700
          Re: How to call Int 15h, ax=e881h? "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-11-04 20:12 -0400
            Re: How to call Int 15h, ax=e881h? Ross Ridge <rridge@csclub.uwaterloo.ca> - 2011-11-04 23:27 -0400
              Re: How to call Int 15h, ax=e881h? "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-11-06 02:46 -0500
        Re: How to call Int 15h, ax=e881h? "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-11-04 21:04 -0400
          Re: How to call Int 15h, ax=e881h? "Marven Lee" <marven10@gmail.com> - 2011-11-05 01:12 +0000
            Re: How to call Int 15h, ax=e881h? Nomen Nescio <nobody@dizum.com> - 2011-11-05 19:04 +0100
    Re: How to call Int 15h, ax=e881h? James Harris <james.harris.1@googlemail.com> - 2011-11-04 14:58 -0700

csiph-web