]> www.vanbest.org Git - sasc-ng.git/commitdiff
nagra: fix timer irq
authorleslie <unknown>
Thu, 12 Jun 2008 22:52:59 +0000 (06:52 +0800)
committerleslie <unknown>
Thu, 12 Jun 2008 22:52:59 +0000 (06:52 +0800)
systems/nagra/nagra2-0101.c
systems/nagra/nagra2.h

index 6b3ed46e2ef3181f196a384c824a3e3d3046b350..bffd3be4adcddbecd6952f9d2a779180df731ea1 100644 (file)
@@ -849,14 +849,15 @@ void cN2Prov0101::TimerHandler(unsigned int num)
 {
   if(hwMapper) {
     int mask=hwMapper->AddCycles(num);
-    for(int t=1; mask; mask>>=1,t++) {
-      DisableTimers(11);
-      if(t==2) {
-        PRINTF(L_SYS_EMU,"Timer interrupt %u @ %04x",t,GetPc());
-        RaiseException(9);
-        if(Interruptible()) throw(t);
+    for(int t=0; mask; mask>>=1,t++)
+      if(mask&1) {
+        DisableTimers(11);
+        if(t==2) {
+          PRINTF(L_SYS_EMU,"Timer interrupt %u @ %04x",t,GetPc());
+          RaiseException(9);
+          if(Interruptible()) throw(t);
+          }
         }
-      }
     }
 }
 
index 2762355946630a456505a6bbaee4fdf246d05bf4..e846cbe3a7c38f5f21fbdf4cb772e99b9eb23c43 100644 (file)
@@ -188,7 +188,7 @@ public:
 
 #define MAX_TIMERS 3
 #define TIMER_NUM(x) (((x)>>2)&3) // timer order doesn't match HW order
-#define HW_NUM(x)    ((x+2)%3)
+#define HW_NUM(x)    ((x+1)%3)
 
 class cMapMemHW : public cMapMem {
 private: