Mercurial > repos > blastem
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 } |