- fixed lockup during mouse movements during win98 install. (patch from Wilfried Weissmann in sf forum)

This commit is contained in:
Christophe Bothamy 2002-08-06 14:11:03 +00:00
parent 7cae4b94c4
commit 1a454f196e
1 changed files with 19 additions and 19 deletions

View File

@ -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)