- [FIX] Al fer break on interrupt de vegades se passava de instruccions

- [NEW] el analitzador pot mostrar les instruccions repetides des de l'ultim estat
- [NEW] gestió de opcodes usats
This commit is contained in:
2024-12-12 22:44:44 +01:00
parent c70c3652bf
commit 8c197d5519
6 changed files with 136 additions and 4 deletions

View File

@@ -17,12 +17,16 @@ namespace z80analyze
{
if (e->type == SDL_MOUSEBUTTONUP)
{
z80::clearMemTouched();
if (e->button.button == 1)
z80::clearMemTouched();
else
z80::fixMemTouched();
refresh();
}
if (e->type == SDL_MOUSEMOTION)
{
refreshTitle();
refresh();
}
return true;
}
@@ -31,6 +35,7 @@ namespace z80analyze
{
if (!win)
{
SDL_ShowCursor(SDL_DISABLE);
win = SDL_CreateWindow("Z80 Analyzer", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 512, 512, SDL_WINDOW_SHOWN);
ren = SDL_CreateRenderer(win, -1, 0);
tex = SDL_CreateTexture(ren, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, 256, 256);
@@ -60,9 +65,22 @@ namespace z80analyze
for (int i=0; i<65536; ++i)
{
uint8_t tag = z80::getMemTouched(i);
pixels[i] = tag==MEMTAG_NONE ? 0x808080 : tag==MEMTAG_DATA ? 0x0000FF : 0x00FF00;
pixels[i] = tag==MEMTAG_NONE ? 0x808080 : tag==MEMTAG_DATA ? 0x0000FF : tag==MEMTAG_REPEAT ? 0xFF0000 : 0x00FF00;
}
pixels[z80::getPC()] = 0xFF0000;
pixels[z80::getPC()] = 0xFFFFFF;
int mx, my;
SDL_GetMouseState(&mx, &my);
mx/=2; my/=2;
pixels[(mx-2)+(my)*256] = 0x000000;
pixels[(mx-1)+(my)*256] = 0x000000;
pixels[(mx+1)+(my)*256] = 0x000000;
pixels[(mx+2)+(my)*256] = 0x000000;
pixels[(mx)+(my-1)*256] = 0x000000;
pixels[(mx)+(my-2)*256] = 0x000000;
pixels[(mx)+(my+1)*256] = 0x000000;
pixels[(mx)+(my+2)*256] = 0x000000;
SDL_UnlockTexture(tex);
SDL_RenderCopy(ren, tex, NULL, NULL);
SDL_RenderPresent(ren);