2018-10-06 23:52:39 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <Ram.h>
|
|
|
|
#include <Bus.h>
|
|
|
|
#include <mc6809.h>
|
2018-11-10 20:29:27 +00:00
|
|
|
#include <Disassembly.h>
|
2018-10-06 23:52:39 +01:00
|
|
|
|
2021-04-07 21:36:09 +01:00
|
|
|
class Board final : public EightBit::Bus {
|
2018-10-06 23:52:39 +01:00
|
|
|
public:
|
|
|
|
Board();
|
|
|
|
|
2021-12-08 19:50:45 +00:00
|
|
|
constexpr EightBit::mc6809& CPU() noexcept { return m_cpu; }
|
2018-10-06 23:52:39 +01:00
|
|
|
|
2022-01-17 19:10:15 +00:00
|
|
|
void raisePOWER() noexcept final;
|
|
|
|
void lowerPOWER() noexcept final;
|
2018-10-06 23:52:39 +01:00
|
|
|
|
|
|
|
protected:
|
2021-04-07 21:36:09 +01:00
|
|
|
void initialise() final;
|
2019-01-14 02:10:17 +00:00
|
|
|
|
2021-07-18 14:28:40 +01:00
|
|
|
EightBit::MemoryMapping mapping(uint16_t address) noexcept final;
|
2018-10-06 23:52:39 +01:00
|
|
|
|
|
|
|
private:
|
|
|
|
EightBit::Ram m_ram = 0x10000; // 0000 - FFFF, 64K RAM
|
2021-12-08 19:50:45 +00:00
|
|
|
EightBit::mc6809 m_cpu = { *this };
|
|
|
|
EightBit::Disassembly m_disassembler = { *this, m_cpu };
|
2018-11-10 20:29:27 +00:00
|
|
|
|
|
|
|
// The m_disassembleAt and m_ignoreDisassembly are used to skip pin events
|
|
|
|
EightBit::register16_t m_disassembleAt = 0x0000;
|
|
|
|
bool m_ignoreDisassembly = false;
|
2018-10-06 23:52:39 +01:00
|
|
|
};
|