#pragma once #include namespace z80 { #define MEMTAG_NONE 0 #define MEMTAG_INST 1 #define MEMTAG_CODE 2 #define MEMTAG_DATA 3 #define Z80_OPTION_STOP_ON_INVALID 0 #define Z80_NUM_OPTIONS 1 void reset(uint8_t* mem); void connect_port(int num, int (*in_ptr)(int), void (*out_ptr)(int,int)); void interrupt(); uint32_t step(); uint8_t *getMem(); uint8_t *getRegs(); uint16_t getAF(const bool alt=false); uint16_t getBC(const bool alt=false); uint16_t getDE(const bool alt=false); uint16_t getHL(const bool alt=false); uint16_t getIX(); uint16_t getIY(); uint16_t getSP(); uint16_t getPC(); uint8_t getI(); uint8_t getR(); void setPC(const uint16_t addr); uint8_t getMemTag(const uint16_t addr); void clearMemTag(); uint8_t getMemTouched(const uint16_t addr); void clearMemTouched(); const bool getOption(const int option); void setOption(const int option, const bool value); void toggleOption(const int option); }