protected override void Update(GameTime gameTime) { keyboardState = Keyboard.GetState(); mouseState = Mouse.GetState(); if (keyboardState.IsKeyDown(Keys.Escape)) { Exit(); } if (mouseState.X < positionOneCycleButton.X + positionOneCycleButton.Width && mouseState.X > positionOneCycleButton.X && mouseState.Y < positionOneCycleButton.Y + positionOneCycleButton.Height && mouseState.Y > positionOneCycleButton.Y) { oneCycleHover = true; } else { oneCycleHover = false; } if (mouseState.LeftButton == ButtonState.Pressed) { leftButtonPressed++; } else { leftButtonPressed = 0; } clickOneCycle = (oneCycleHover && mouseState.LeftButton == ButtonState.Released && oldMouseState.LeftButton == ButtonState.Pressed); if (true || clickOneCycle || leftButtonPressed > 20 || keyboardState.IsKeyDown(Keys.P)) { if (CPU.cyclesCounter % 100 == 0) { DisplayBuffer.GenerateRAMDisplay(); } CPU.Cycle(); CPU.cyclesCounter++; CPU.cyclesPerSecond++; if (CPU.cyclesCounter == 49000) { this.TargetElapsedTime = new TimeSpan(4000); } } //Debug.WriteLine("Ticks:" + ticks + " Pc: " + CPU.programCounter); //Read a instruction //Execute instruction //string instruction = CPU.instructionFecther.FetchNextInstruction().Item1; // TODO: Add your update logic here oldMouseState = mouseState; base.Update(gameTime); }