Messages in this thread |  | | | From | "Camiel Vanderhoeven" <> | | Subject | RE: DOS2linux | | Date | Mon, 27 Aug 2001 19:39:23 -0400 |
| |
Bart Vandewoesteyne wrote: > That is also what I think, but the problem is that I don't know at > which offset to look for that data... > If you look at the code: > > static int getslotinfo( void ) > { > static char buff[320], *s=&buff[0]; int valid; > > inregs.h.ah=0xd8; inregs.h.al=0x1; inregs.h.cl=DiSC_Id.slot>>12; > inregs.h.ch=0; > sregs.ds=FP_SEG(s); inregs.x.si=FP_OFF(s); > int86x(0x15, &inregs, &outregs, &sregs); > valid=outregs.h.ah; > if(!valid) { DiSC_Id.it=buff[itconf]; DiSC_Id.dma=buff[dmachd]; } > return(valid); > } > > Would it help if i told you that itconf and dmachd are defined as (see > http://mc303.ulyssis.org/heim/downloads/DISCINC.H ) > > #define itconf 0xb2 > #define dmachd 0xc0 > > So if my EISA board is at 0x1000, i should be able to read these > values from 0x1000+0xb2 and 0x1000+0xc0 ??? And if 'yes', any idea > about how to read them? (byte, word, long...? My guess would be as a > byte, but I'm not sure...)
Looking at the above piece of sourcecode, I would say your guess is correct. "buff" is declared as an array of chars (bytes), so I would try to read a byte at 0x10b2 and at 0x10c0. Just try it out & see what you get back...
Camiel. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |