diff --git a/src/dos/dos_memory.cpp b/src/dos/dos_memory.cpp index 23eccf76..723fd049 100644 --- a/src/dos/dos_memory.cpp +++ b/src/dos/dos_memory.cpp @@ -415,18 +415,16 @@ void DOS_SetupMemory(void) { /* Let dos claim a few bios interrupts. Makes DOSBox more compatible with * buggy games, which compare against the interrupt table. (probably a * broken linked list implementation) */ - // BioMenace (segment of int2<0x8000) callbackhandler.Allocate(&DOS_default_handler,"DOS default int"); - //Shadow president wants int 4 to point to this. - real_writeb(0x70,0,(Bit8u)0xFE); //GRP 4 - real_writeb(0x70,1,(Bit8u)0x38); //Extra Callback instruction - real_writew(0x70,2,callbackhandler.Get_callback()); //The immediate word - real_writeb(0x70,4,(Bit8u)0xCF); //An IRET Instruction - real_writed(0,0x01*4,0x700000); - real_writed(0,0x02*4,0x700000); //BioMenace - real_writed(0,0x03*4,0x700000); - real_writed(0,0x04*4,0x700000); //Shadow President -// real_writed(0,0x0f*4,0x700000); //Always a tricky one (soundblaster irq) + real_writeb(0x70,4,(Bit8u)0xFE); //GRP 4 + real_writeb(0x70,5,(Bit8u)0x38); //Extra Callback instruction + real_writew(0x70,6,callbackhandler.Get_callback()); //The immediate word + real_writeb(0x70,8,(Bit8u)0xCF); //An IRET Instruction + real_writed(0,0x01*4,0x700004); + real_writed(0,0x02*4,0x700004); //BioMenace (segment<0x8000) + real_writed(0,0x03*4,0x700004); //Alien Incident (offset!=0) + real_writed(0,0x04*4,0x700004); //Shadow President (lower byte of segment!=0) +// real_writed(0,0x0f*4,0x700004); //Always a tricky one (soundblaster irq) // Create a dummy device MCB with PSPSeg=0x0008 DOS_MCB mcb_devicedummy((Bit16u)DOS_MEM_START);