[quote name='bmf' date='Jun 5 2007, 11:39' post='258133']
1
...
int far *ptr=(int far *) (((unsigned long)VALSEG<<16) | (unsigned)(off));
*ptr++=value1;
*ptr++=value2;
...
value3=*ptr;
2
static void _ideReadWord(unsigned far *adr)
{
unsigned i;
for(i=0;i<256;i++) {
*adr++ =io_space_read(IDE_DATAREG);
}
}
3
inline void SetEntryVal(bool bFat32,unsigned far *buf,unsigned thisoff,unsigned long *pval)
{
if(!bFat32) {
*((WORD *)(buf+thisoff))=*((WORD *)pval+1);
} else {
unsigned far *ptr=buf+thisoff*2;
*ptr++=*(((WORD *)pval+1));
*ptr= (*ptr & 0xF000) | (*(((WORD *)pval)) & 0x0FFF);
}
}
Вцелом понятно, но к сожалению не всё...
Можно коментарий...?
Зарание СПАСИБО и СОРРИ