public int ProcessCPUCycle() { int ticks = CPU.Process(); SID.Process(ticks); CIA1.Process(ticks); CIA2.Process(ticks); Datasette.Process(ticks); /* * // process floppy * Floppy.Process(ticks); * * // build signals on IEC-Bus * IEC.Process(this); */ // CIA2.SetFlagPIN(...) // // inter-chip-handlings // // datasette -> CPU CIA1.SetFlagPIN(Datasette.Get_D4_READ()); // check for IRQ's bool IRQ_CIA = CIA1.HasIRQ(); bool IRQ_VIC = VIC.HasIRQ(); CPU.IRQ = IRQ_CIA || IRQ_VIC; // check for NMI's CPU.SetNMI(CIA2.HasIRQ()); return(ticks); }