#pragma once #include #include #include #include #include #include "ProfileLineEventArgs.h" namespace EightBit { class Disassembly; class mc6809; class Profiler { public: std::array instructionCounts; std::array addressProfiles; std::array addressCounts; mc6809& processor; Disassembly& disassembler; Profiler(mc6809& processor, Disassembly& disassembler); Signal StartingOutput; Signal FinishedOutput; Signal EmitLine; void addInstruction(uint8_t instruction); void addAddress(uint16_t address, int cycles); void Generate(); private: void EmitProfileInformation(); }; }