EightBitNet/EightBit/ClockedChip.cs
Adrian Conlon 0e8a530573 More analysis suggested tidy ups.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-02-06 23:41:56 +00:00

38 lines
791 B
C#

// <copyright file="ClockedChip.cs" company="Adrian Conlon">
// Copyright (c) Adrian Conlon. All rights reserved.
// </copyright>
namespace EightBit
{
using System;
public class ClockedChip : Chip
{
protected ClockedChip()
{
}
public event EventHandler<EventArgs> Ticked;
public int Cycles { get; protected set; }
public void Tick(int extra)
{
for (int i = 0; i < extra; ++i)
{
this.Tick();
}
}
public void Tick()
{
++this.Cycles;
this.OnTicked();
}
protected virtual void OnTicked() => this.Ticked?.Invoke(this, EventArgs.Empty);
protected void ResetCycles() => this.Cycles = 0;
}
}