Exemple #1
0
 public override void ClockCPU()
 {
     if ((timerreg & 2) != 0)            // && timervalue > 0)
     {
         if (timervalue != 0)
         {
             timervalue--;
         }
         if (timervalue == 0)
         {
             /*
              * if ((timerreg & 1) != 0)
              * {
              *      timervalue = timerlatch;
              *      //timervalue = 0xFFFF;
              * }
              * else
              * {
              *      timerreg &= unchecked((byte)~2);
              *      timervalue = 0;
              *      timerlatch = 0;
              * }
              */
             timervalue = timerlatch;
             timerirq   = true;
         }
     }
     audio.Clock();
 }
Exemple #2
0
 public override void ClockCPU()
 {
     if ((timerreg & 2) != 0 && diskenable)
     {
         if (timervalue != 0)
         {
             timervalue--;
         }
         if (timervalue == 0)
         {
             timervalue = timerlatch;
             timerirq   = true;
             if ((timerreg & 1) == 0)
             {
                 timerreg -= 2;
             }
         }
     }
     audio.Clock();
 }
Exemple #3
0
 public override void ClockCPU()
 {
     if ((timerreg & 2) != 0 && timervalue > 0)
     {
         timervalue--;
         if (timervalue == 0)
         {
             if ((timerreg & 1) != 0)
             {
                 timervalue = timerlatch;
             }
             else
             {
                 timerreg  &= unchecked ((byte)~2);
                 timervalue = 0;
                 timerlatch = 0;
             }
             timerirq = true;
         }
     }
     audio.Clock();
 }
Exemple #4
0
        public override void ClockCPU()
        {
            if ((timerreg & 2) != 0 && diskenable)
            {
                if (timervalue != 0)
                {
                    timervalue--;
                }
                else
                {
                    timervalue = timerlatch;
                    //timerirq = true;
                    if ((timerreg & 1) == 0)
                    {
                        timerreg -= 2;
                    }

                    if (!timer_irq_active)
                    {
                        timer_irq_active = true;
                        timerirq_cd      = 3;
                    }
                }
            }

            if (timerirq_cd > 0)
            {
                timerirq_cd--;
            }

            if ((timerirq_cd == 0) && (timer_irq_active))
            {
                timerirq = true;
            }

            audio.Clock();
        }