2021-10-10 20:26:30 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <Bus.h>
|
|
|
|
#include <Ram.h>
|
|
|
|
#include <mos6502.h>
|
|
|
|
|
|
|
|
class TestRunner final : public EightBit::Bus {
|
|
|
|
private:
|
|
|
|
EightBit::Ram m_ram = 0x10000;
|
|
|
|
EightBit::MOS6502 m_cpu = { *this };
|
2021-10-11 10:41:50 +00:00
|
|
|
|
2021-10-10 20:26:30 +00:00
|
|
|
protected:
|
2021-12-08 19:54:53 +00:00
|
|
|
EightBit::MemoryMapping mapping(uint16_t address) noexcept final;
|
2021-10-10 20:26:30 +00:00
|
|
|
|
|
|
|
public:
|
2021-10-25 17:40:21 +00:00
|
|
|
TestRunner();
|
2021-10-10 20:26:30 +00:00
|
|
|
|
2022-01-17 19:10:15 +00:00
|
|
|
void raisePOWER() noexcept final;
|
|
|
|
void lowerPOWER() noexcept final;
|
2021-10-10 20:26:30 +00:00
|
|
|
|
2021-12-08 19:54:53 +00:00
|
|
|
void initialise() final;
|
2021-10-10 20:26:30 +00:00
|
|
|
|
2021-10-11 09:43:33 +00:00
|
|
|
[[nodiscard]] constexpr auto& RAM() noexcept { return m_ram; }
|
|
|
|
[[nodiscard]] constexpr auto& CPU() noexcept { return m_cpu; }
|
2021-10-10 20:26:30 +00:00
|
|
|
};
|