From e1df80f704f7616c9e9f324eccd6888878228acf Mon Sep 17 00:00:00 2001 From: Peter Veenstra Date: Tue, 29 Mar 2005 07:05:44 +0000 Subject: [PATCH] recheck irqs when special mode changes. Makes more sense, might fix something. Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@2168 --- src/hardware/pic.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/hardware/pic.cpp b/src/hardware/pic.cpp index 725b0b5e..4b252f37 100644 --- a/src/hardware/pic.cpp +++ b/src/hardware/pic.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: pic.cpp,v 1.29 2005-03-25 11:54:52 qbix79 Exp $ */ +/* $Id: pic.cpp,v 1.30 2005-03-29 07:05:44 qbix79 Exp $ */ #include @@ -97,6 +97,10 @@ static void write_command(Bitu port,Bitu val,Bitu iolen) { if(pic[0].special || pics[1].special) PIC_Special_Mode = true; else PIC_Special_Mode = false; + if (PIC_IRQCheck) { //Recheck irqs + CPU_CycleLeft += CPU_Cycles; + CPU_Cycles = 0; + } LOG(LOG_PIC,LOG_NORMAL)("port %X : special mask %s",port,(pic->special)?"ON":"OFF"); } } else { // OCW2 issued