Point DOS redirected interrupts at a plain IRET as in real DOS. Prevents erroneous detection of an active debugger, which for example fixes sound in Microleague Football 2.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4046
This commit is contained in:
parent
42a0b61a65
commit
451d07d8da
1 changed files with 2 additions and 5 deletions
|
@ -400,15 +400,12 @@ void DOS_SetupMemory(void) {
|
|||
callbackhandler.Allocate(&DOS_default_handler,"DOS default int");
|
||||
Bit16u ihseg = 0x70;
|
||||
Bit16u ihofs = 0x08;
|
||||
real_writeb(ihseg,ihofs+0x00,(Bit8u)0xFE); //GRP 4
|
||||
real_writeb(ihseg,ihofs+0x01,(Bit8u)0x38); //Extra Callback instruction
|
||||
real_writew(ihseg,ihofs+0x02,callbackhandler.Get_callback()); //The immediate word
|
||||
real_writeb(ihseg,ihofs+0x04,(Bit8u)0xCF); //An IRET Instruction
|
||||
real_writeb(ihseg,ihofs,(Bit8u)0xCF); //An IRET Instruction
|
||||
RealSetVec(0x01,RealMake(ihseg,ihofs)); //BioMenace (offset!=4)
|
||||
RealSetVec(0x02,RealMake(ihseg,ihofs)); //BioMenace (segment<0x8000)
|
||||
RealSetVec(0x03,RealMake(ihseg,ihofs)); //Alien Incident (offset!=0)
|
||||
RealSetVec(0x04,RealMake(ihseg,ihofs)); //Shadow President (lower byte of segment!=0)
|
||||
// RealSetVec(0x0f,RealMake(ihseg,ihofs)); //Always a tricky one (soundblaster irq)
|
||||
RealSetVec(0x0f,RealMake(ihseg,ihofs)); //Always a tricky one (soundblaster irq)
|
||||
|
||||
// Create a dummy device MCB with PSPSeg=0x0008
|
||||
DOS_MCB mcb_devicedummy((Bit16u)DOS_MEM_START);
|
||||
|
|
Loading…
Add table
Reference in a new issue