mirror of
https://github.com/emu-russia/pureikyubu.git
synced 2025-04-02 10:42:15 -04:00
37 lines
1 KiB
C++
37 lines
1 KiB
C++
#pragma once
|
|
|
|
#include <map>
|
|
|
|
// symbolic entry
|
|
struct SYM
|
|
{
|
|
uint32_t eaddr; // effective address
|
|
char* savedName; // symbolic description
|
|
void (*routine)(); // associated high-level call
|
|
};
|
|
|
|
// all important variables are here
|
|
struct SYMControl
|
|
{
|
|
std::map<uint32_t, SYM*> symmap;
|
|
};
|
|
|
|
extern SYMControl sym;
|
|
|
|
// API for emulator
|
|
void SYMAddNew(uint32_t addr, const char *name);
|
|
void SYMSetHighlevel(const char *symName, void (*routine)());
|
|
uint32_t SYMAddress(const char *symName);
|
|
char* SYMName(uint32_t symAddr);
|
|
char* SYMGetNearestName(uint32_t address, size_t& offset);
|
|
void SYMKill();
|
|
void SYMList(const char *str="*");
|
|
|
|
// advanced stuff (dont use it, if you dont know how)
|
|
void SYMSetWorkspace(SYMControl *useIt);
|
|
void SYMCompareWorkspaces (
|
|
SYMControl *source,
|
|
SYMControl *dest,
|
|
// callback is called when symbol in source wasnt found in dest
|
|
void (*DiffCallback)(uint32_t ea, char * name)
|
|
);
|