Files
SecurityEmulator/src/Userspace.h

43 lines
679 B
C++

#pragma once
class Bus;
#include <cstdint>
#include <memory>
#include <atomic>
#include "CPU.h"
class Userspace {
public:
Userspace();
~Userspace() = default;
void Upload2Memory(uint8_t bytes[], size_t len);
uint8_t* RetrieveMemory();
void Run();
void Start();
void Stop();
void Step();
void Reset();
void Exit();
bool IsRunning();
CPUStatus GetCPUStatus();
private:
std::shared_ptr<RAM> m_RAM;
std::shared_ptr<Bus> m_Bus;
CPU m_CPU;
std::atomic<bool> m_Running = false;
std::atomic<bool> m_ApplicationRunning = false;
std::shared_ptr<RAM> m_ProgramMemory;
size_t m_ProgramMemoryLen;
private:
void EmulatorLoop();
};