comparison debug.c @ 1920:7b41cb36e7df

Use proper memory map in Z80 debugger for memory printing
author Michael Pavone <pavone@retrodev.com>
date Sat, 11 Apr 2020 13:36:38 -0700
parents d6d4c006a7b3
children 5d028088e320
comparison
equal deleted inserted replaced
1919:e29ff59192ce 1920:7b41cb36e7df
346 } 346 }
347 break; 347 break;
348 case '0': 348 case '0':
349 if (param[1] == 'x') { 349 if (param[1] == 'x') {
350 uint16_t p_addr = strtol(param+2, NULL, 16); 350 uint16_t p_addr = strtol(param+2, NULL, 16);
351 if (p_addr < 0x4000) { 351 value = read_byte(p_addr, (void **)context->mem_pointers, &context->options->gen, context);
352 value = system->zram[p_addr & 0x1FFF];
353 } else if(p_addr >= 0x8000) {
354 uint32_t v_addr = system->z80_bank_reg << 15;
355 v_addr += p_addr & 0x7FFF;
356 if (v_addr < 0x400000) {
357 value = system->cart[v_addr/2];
358 } else if(v_addr > 0xE00000) {
359 value = system->work_ram[(v_addr & 0xFFFF)/2];
360 }
361 if (v_addr & 1) {
362 value &= 0xFF;
363 } else {
364 value >>= 8;
365 }
366 }
367 } 352 }
368 break; 353 break;
369 } 354 }
370 printf(format, param, value); 355 printf(format, param, value);
371 } 356 }