El dom, 31-05-2009 a las 20:05 +0200, Vladimir 'phcoder' Serbinenko escribió: > > The only semi-rational action we can take is to reverse the mapping > > _only_ if %dl still contains the mapped data we passed into the int13 > > handler, but that leaves the question - how do we know that some 0x81 is > > actually the 0x81 we put there in substitution of the 0x80 the payload > > called with, and not the true result of the call? > > > Or we can maintain a list of interrupts under which we restore %dx. It > would contain only well documented BIOS interrupts and not TSR ones. > This approach will work with normal interrupts and has high chance of > working with TSR. But I don't think TSR compatibility is important. > > I have yet to find a bootsector that uses such information. > AFAIR CHS FAT32 FreeDOS sector does No, it doesn't: check it out. It overwrites es and di quite soon indeed: real_start: cld cli sub ax, ax mov ds, ax mov bp, 0x7c00 mov ax, 0x1FE0 mov es, ax mov si, bp mov di, bp Same applies to the other two FreeDOS bootsectors.
> > Regarding that "biosdrive", it would add more > > complexity to what already is a non-simple system. I'd say that either > > this mapping gets done automagically > biosdrive is necessary only when authomatic routines fail (no or wrong result) The point is writing the automatic routine you described so that biosdrive is not required. -- -- Lazy, Oblivious, Recurrent Disaster -- Habbit
signature.asc
Description: Esto es una parte de mensaje firmado digitalmente
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel