C64Lib.Core.MOS6502_1541.CountVIATimers C# (CSharp) Method

CountVIATimers() public method

public CountVIATimers ( int cycles ) : void
cycles int
return void
        public void CountVIATimers(int cycles)
        {
            UInt32 tmp;

            via1_t1c = (UInt16)(tmp = (UInt32)(via1_t1c - cycles));
            if (tmp > 0xffff)
            {
                if ((via1_acr & 0x40) != 0)	// Reload from latch in free-run mode
                    via1_t1c = via1_t1l;
                via1_ifr |= 0x40;
            }

            if ((via1_acr & 0x20) == 0)
            {
                // Only count in one-shot mode
                via1_t2c = (UInt16)(tmp = (UInt32)(via1_t2c - cycles));
                if (tmp > 0xffff)
                    via1_ifr |= 0x20;
            }

            via2_t1c = (UInt16)(tmp = (UInt32)(via2_t1c - cycles));
            if (tmp > 0xffff)
            {
                if ((via2_acr & 0x40) != 0)	// Reload from latch in free-run mode
                    via2_t1c = via2_t1l;
                via2_ifr |= 0x40;
                if ((via2_ier & 0x40) != 0)
                    TriggerJobIRQ();
            }

            if ((via2_acr & 0x20) == 0)
            {	// Only count in one-shot mode
                via2_t2c = (UInt16)(tmp = (UInt32)(via2_t2c - cycles));
                if (tmp > 0xffff)
                    via2_ifr |= 0x20;
            }
        }