Thread overview
Problem with union REG Registers to fit a memory pointer in ES:BX
Jun 01, 2006
Nils Koehler
Jun 01, 2006
tjulian
Jun 01, 2006
Nils Koehler
June 01, 2006
Hello

I tryed to google information about Union Reg structure members i found
informations but not detailed enough to get rid of my problem.
For a BIOS call with DOS Extenter 32 Bit i need to fit a memory pointer into
Registers ES:BX.

Below is my code to fit the registers it will compile but not work. I am not shure that the e.ebx is the right way to match ES:BX

int ReadID(int id_pointer)
{
        myregs.x.ax=0xEA01;                                   // Bios call
int 15 Get BIOS ID
        myregs.x.dx=0x4648;                                    // Constatnt
Value
        myregs.h.cl=2;                                               //
Board Number

        myregs.e.ebx=id_pointer;                               // ***
Problem Line  ***


        int86(JIDAINT,&myregs,&myregs);

return(0);
}


Could anyone help?


Kind Regards

Nils Köhler



-- 
-----------------------------------------------
Nils Köhler
IBT Interfaces
Im Taubhaus 19
63322 Rödermark
Germany

Tel:  +49-6074-6964-160
Fax: +49-6074-6964-161


June 01, 2006
Nils Koehler wrote:

> 
>         myregs.e.ebx=id_pointer;                               // ***
> Problem Line  ***
> 
> 
>         int86(JIDAINT,&myregs,&myregs);
> 

Function _int86x will let you specify segment registers.

--
TimJ
June 01, 2006
Hi Tim,

Thank you for the good hint.
I have googled _int86x. And i think
this should work.

Nils


"tjulian" <tjulian@removethis.oldi.com> schrieb im Newsbeitrag news:e5mjia$98u$1@digitaldaemon.com...
> Nils Koehler wrote:
>
> >
> >         myregs.e.ebx=id_pointer;                               // ***
> > Problem Line  ***
> >
> >
> >         int86(JIDAINT,&myregs,&myregs);
> >
>
> Function _int86x will let you specify segment registers.
>
> --
> TimJ