From b6ae52df7ac4981ff31af7077f1f6cbd8114cf54 Mon Sep 17 00:00:00 2001 From: Peter Veenstra Date: Wed, 10 Mar 2004 13:53:40 +0000 Subject: [PATCH] Changed priority tables a bit to reflect a real machine better(hopefully). Second part of patch 897288 by Srecko Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1711 --- src/hardware/pic.cpp | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/hardware/pic.cpp b/src/hardware/pic.cpp index 3cdd7380..43895d2c 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.18 2004-02-08 13:04:34 harekiet Exp $ */ +/* $Id: pic.cpp,v 1.19 2004-03-10 13:53:40 qbix79 Exp $ */ #include @@ -74,7 +74,7 @@ static void write_command(Bit32u port,Bit8u val) { Bitu irq_base=port==0x20 ? 0 : 8; Bitu i; Bit16u IRQ_priority_table[16] = - { 0,1,8,9,10,11,12,13,14,15,2,3,4,5,6,7 }; + { 0,1,2,9,10,11,12,13,14,15,3,4,5,6,7,8 }; switch (val) { case 0x0A: /* select read interrupt request register */ pic->request_issr=false; @@ -240,22 +240,21 @@ void PIC_runIRQs(void) { if (!GETFLAG(IF)) return; if (!PIC_IRQCheck) return; Bit16u IRQ_priority_lookup[17] = - { 0,1,10,11,12,13,14,15,2,3,4,5,6,7,8,9,16 }; + { 0,1,2,11,12,13,14,15,3,4,5,6,7,8,9,10,16 }; Bit16u activeIRQ = PIC_IRQActive; if (activeIRQ==PIC_NOIRQ) activeIRQ = 16; for (i=0;i<=15;i++) { - if (IRQ_priority_lookup[i]