mirror of https://github.com/bochs-emu/Bochs
- fixed lockup during mouse movements during win98 install. (patch from Wilfried Weissmann in sf forum)
This commit is contained in:
parent
7cae4b94c4
commit
1a454f196e
|
@ -1,5 +1,5 @@
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
// $Id: pic.cc,v 1.27 2002-04-20 16:21:51 instinc Exp $
|
// $Id: pic.cc,v 1.28 2002-08-06 14:11:03 cbothamy Exp $
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Copyright (C) 2002 MandrakeSoft S.A.
|
// Copyright (C) 2002 MandrakeSoft S.A.
|
||||||
|
@ -722,15 +722,15 @@ bx_pic_c::service_master_pic(void)
|
||||||
/* for special mode, since we're looking at all IRQ's, skip if
|
/* for special mode, since we're looking at all IRQ's, skip if
|
||||||
* current IRQ is already in-service
|
* current IRQ is already in-service
|
||||||
*/
|
*/
|
||||||
if ( BX_PIC_THIS s.master_pic.special_mask && ((BX_PIC_THIS s.master_pic.isr >> irq) & 0x01) )
|
if ( ! (BX_PIC_THIS s.master_pic.special_mask && ((BX_PIC_THIS s.master_pic.isr >> irq) & 0x01)) ) {
|
||||||
continue;
|
if (unmasked_requests & (1 << irq)) {
|
||||||
if (unmasked_requests & (1 << irq)) {
|
BX_DEBUG(("signalling IRQ(%u)", (unsigned) irq));
|
||||||
BX_DEBUG(("signalling IRQ(%u)", (unsigned) irq));
|
BX_PIC_THIS s.master_pic.INT = 1;
|
||||||
BX_PIC_THIS s.master_pic.INT = 1;
|
BX_SET_INTR(1);
|
||||||
BX_SET_INTR(1);
|
BX_PIC_THIS s.master_pic.irq = irq;
|
||||||
BX_PIC_THIS s.master_pic.irq = irq;
|
return;
|
||||||
return;
|
} /* if (unmasked_requests & ... */
|
||||||
} /* if (unmasked_requests & ... */
|
}
|
||||||
|
|
||||||
irq ++;
|
irq ++;
|
||||||
if(irq > 7)
|
if(irq > 7)
|
||||||
|
@ -786,16 +786,16 @@ bx_pic_c::service_slave_pic(void)
|
||||||
/* for special mode, since we're looking at all IRQ's, skip if
|
/* for special mode, since we're looking at all IRQ's, skip if
|
||||||
* current IRQ is already in-service
|
* current IRQ is already in-service
|
||||||
*/
|
*/
|
||||||
if ( BX_PIC_THIS s.slave_pic.special_mask && ((BX_PIC_THIS s.slave_pic.isr >> irq) & 0x01) )
|
if ( ! (BX_PIC_THIS s.slave_pic.special_mask && ((BX_PIC_THIS s.slave_pic.isr >> irq) & 0x01)) ) {
|
||||||
continue;
|
if (unmasked_requests & (1 << irq)) {
|
||||||
if (unmasked_requests & (1 << irq)) {
|
BX_DEBUG(("slave: signalling IRQ(%u)", (unsigned) 8 + irq));
|
||||||
BX_DEBUG(("slave: signalling IRQ(%u)", (unsigned) 8 + irq));
|
|
||||||
|
|
||||||
BX_PIC_THIS s.slave_pic.INT = 1;
|
BX_PIC_THIS s.slave_pic.INT = 1;
|
||||||
BX_PIC_THIS s.slave_pic.irq = irq;
|
BX_PIC_THIS s.slave_pic.irq = irq;
|
||||||
raise_irq(2); /* request IRQ 2 on master pic */
|
raise_irq(2); /* request IRQ 2 on master pic */
|
||||||
return;
|
return;
|
||||||
} /* if (unmasked_requests & ... */
|
} /* if (unmasked_requests & ... */
|
||||||
|
}
|
||||||
|
|
||||||
irq ++;
|
irq ++;
|
||||||
if(irq > 7)
|
if(irq > 7)
|
||||||
|
|
Loading…
Reference in New Issue