#pragma once #include namespace z80 { #define Z80_OPTION_STOP_ON_INVALID 0 #define Z80_OPTION_BREAK_ON_INTERRUPT 1 #define Z80_OPTION_BREAK_ON_RET 2 #define Z80_NUM_OPTIONS 3 void reset(); void setClock(uint32_t freq); uint32_t getClock(); //void reset(uint8_t* mem); void connect_port(uint16_t num, uint16_t mask, 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 setMemTag(const uint16_t addr, const uint8_t value); void clearMemTag(); uint8_t getMemTouched(const uint16_t addr); void clearMemTouched(); void fixMemTouched(); */ const bool getOption(const int option); void setOption(const int option, const bool value); void toggleOption(const int option); void resetStackedCalls(); }