experimental LFN support for redirected drives
Hello.
Quoted 1 line · Bart Oldeman
I put a patch up
Hmm, just wondering, what are those DPMI
changes are intended for?
According to DPMI specs:
---
However, there are three real mode software
interrupts that a DPMI host will always reflect to a protected mode handler, if one is installed:
Int 1CH - ROM BIOS timer tick interrupt Int 23H - DOS Ctrl+C interrupt
Int 24H - DOS critical error interrupt
---
Why are you adding a 0x21 here? Isnt it a direct violation of a specs?
Another hunk to dpmi.c also looks very hackish. What was the idea?
Quoted 2 lines · Stas Sergeev
Hmm, just wondering, what are those DPMI changes are intended for?
the reason for
if (config.lfn && (LWORD(eax) & 0xff00) == 0x7100 &&
(REG(cs) == ((us *) 0)[(0x21 << 1) + 1]) &&
(REG(eip) == ((us *) 0)[0x21 << 1])) {
REG(cs) = BIOSSEG;
REG(eip) = INT_OFF(0x21);
}is a problem with this piece of code:
if (_LWORD(eax)==0x0300) {
if (_LO(bx)==0x21)
D_printf("DPMI: int 0x21 fn %04x\n",LWORD(eax));
REG(cs) = ((us *) 0)[(_LO(bx) << 1) + 1];
REG(eip) = ((us *) 0)[_LO(bx) << 1];
} else {INT 21 now just executes the DOS int21 and never reaches the DOSEMU revectored int21 code. I don't know if it's safe to transfer to f000:_BL*0x10 for every interrupt. Maybe you do?
Quoted 6 lines
According to DPMI specs:
---
However, there are three real mode software interrupts that a DPMI host will always reflect to a protected mode handler, if one is installed:
Quoted 7 lines
Int 1CH - ROM BIOS timer tick interrupt Int 23H - DOS Ctrl+C interrupt
Int 24H - DOS critical error interrupt
---Why are you adding a
0x21here? Isnt it a direct violation of a specs?
that was a wrong try which I forgot to remove.
Bart