static mem_put_func debugmem_func_wput;
static mem_put_func debugmem_func_bput;
static xlate_func debugmem_func_xlate;
-static bool debugmem_initialized;
+bool debugmem_initialized;
static bool debug_waiting;
static uaecptr debug_task;
static uae_u8 *exec_thistask;
{
if (!len)
return 0;
- if (!ctx) {
+ if (!ctx && real_address_allowed()) {
addrbank *bank_data = &get_mem_bank (dataptr);
if (!bank_data || !bank_data->check (dataptr, len))
return 0;
{
if (!len)
return 0;
- if (!ctx) {
+ if (!ctx && real_address_allowed()) {
addrbank *bank_data = &get_mem_bank (dataptr);
if (!bank_data || !bank_data->check (dataptr, len))
return 0;
# endif
#endif
+bool real_address_allowed(void);
+
STATIC_INLINE uae_u8 *get_real_address (uaecptr addr)
{
return get_mem_bank (addr).xlateaddr(addr);
}
#endif
+extern bool debugmem_initialized;
+
+bool real_address_allowed(void)
+{
+ return debugmem_initialized == false;
+}
+
int addr_valid (const TCHAR *txt, uaecptr addr, uae_u32 len)
{
addrbank *ab = &get_mem_bank(addr);
cnt -= max;
}
} else {
- if (valid_address(addr, cnt)) {
+ if (real_address_allowed() && valid_address(addr, cnt)) {
memcpy(get_real_address(addr), haddr, cnt);
} else {
for (int i = 0; i < cnt; i++) {
cnt -= max;
}
} else {
- if (valid_address(addr, cnt)) {
+ if (real_address_allowed() && valid_address(addr, cnt)) {
memcpy(haddr, get_real_address(addr), cnt);
} else {
for (int i = 0; i < cnt; i++) {