You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
564 B
32 lines
564 B
4 years ago
|
/* PlipCpu.h
|
||
|
*
|
||
|
* Defines a CPU implementation.
|
||
|
*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include <string>
|
||
|
|
||
|
#include "../Memory/PlipMemoryMap.h"
|
||
|
|
||
|
namespace Plip::Cpu {
|
||
|
class PlipCpu {
|
||
|
public:
|
||
|
[[nodiscard]] long GetCycleTime() const;
|
||
|
[[nodiscard]] long GetHz(long hz) const;
|
||
|
void SetHz(long hz);
|
||
|
|
||
|
virtual void Cycle() = 0;
|
||
|
virtual void Reset(uint32_t pc) = 0;
|
||
|
|
||
|
protected:
|
||
|
PlipCpu(long hz, PlipMemoryMap* memoryMap);
|
||
|
|
||
|
long m_hz {};
|
||
|
Plip::PlipMemoryMap *m_memory;
|
||
|
|
||
|
private:
|
||
|
long m_cycle {};
|
||
|
};
|
||
|
}
|