diff --git a/z80.cpp b/z80.cpp index 0a7170a..6034bb1 100644 --- a/z80.cpp +++ b/z80.cpp @@ -190,10 +190,11 @@ namespace z80 { t+=1; reading_m1 = true; - /*if (rPC==0x056c) { - zx_tape::rewind(); - zx_tape::play(); - }*/ + if (rPC==0x056A) { + z80debug::stop(); + //zx_tape::rewind(); + //zx_tape::play(); + } return READ_MEM_8(); } diff --git a/z80debug.cpp b/z80debug.cpp index 1ff1f89..4b0b419 100644 --- a/z80debug.cpp +++ b/z80debug.cpp @@ -104,6 +104,7 @@ namespace z80debug if ((e->window.event==SDL_WINDOWEVENT_SHOWN) || (e->window.event==SDL_WINDOWEVENT_EXPOSED)) { int w; int h; SDL_GetWindowSize(win, &w, &h); + w/=2; h/=2; midx = (w/CHR_W) - 25; win_h = (h/CHR_H); mem_y = win_h - mem_h - con_h; @@ -332,8 +333,9 @@ namespace z80debug void show() { if (!win) { - win = SDL_CreateWindow("Z80 Debugger", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 98*CHR_W, 44*CHR_H, SDL_WINDOW_RESIZABLE); + win = SDL_CreateWindow("Z80 Debugger", 10, 50, 98*CHR_W*2, 44*CHR_H*2, SDL_WINDOW_SHOWN); ren = SDL_CreateRenderer(win, -1, 0); + SDL_RenderSetLogicalSize(ren, 98*CHR_W, 44*CHR_H); ui::window::registerWindow(SDL_GetWindowID(win), eventHandler); tex = ui::createtexture(ren); } @@ -382,7 +384,7 @@ namespace z80debug void cont() { zxscreen::setTitle(""); is_debugging = is_paused = false; - //hide(); + hide(); refresh(); zxscreen::focus(); speaker::enable(); diff --git a/zx_screen.cpp b/zx_screen.cpp index c524345..7f23c8d 100644 --- a/zx_screen.cpp +++ b/zx_screen.cpp @@ -26,7 +26,7 @@ namespace zxscreen uint32_t t_states_per_scanline = 224; uint32_t vsync_lines = 16; - uint8_t zoom = 1; + uint8_t zoom = 2; bool fullscreen = false; bool full_refresh = true; int fullscreen_scale = 1; @@ -113,6 +113,11 @@ namespace zxscreen bool eventHandler(SDL_Event *e) { if (e->type==SDL_WINDOWEVENT) { + //int x, y; + //SDL_GetWindowPosition(win, &x, &y); + //char tmp[256]; + //sprintf(tmp, " %ix%i", x, y); + //setTitle(tmp); if (e->window.event==SDL_WINDOWEVENT_CLOSE) { return false; } else if ((e->window.event==SDL_WINDOWEVENT_SHOWN) || (e->window.event==SDL_WINDOWEVENT_EXPOSED)) { @@ -163,7 +168,7 @@ namespace zxscreen if (win) SDL_DestroyWindow(win); const int z = fullscreen ? 1 : zoom; - win = SDL_CreateWindow("ZX Spectrum Screen", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 352*z, 296*z, fullscreen?SDL_WINDOW_FULLSCREEN_DESKTOP:SDL_WINDOW_SHOWN); + win = SDL_CreateWindow("ZX Spectrum Screen", 1216, 565, 352*z, 296*z, fullscreen?SDL_WINDOW_FULLSCREEN_DESKTOP:SDL_WINDOW_ALLOW_HIGHDPI); ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED); tex = SDL_CreateTexture(ren, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, 352, 296); uitex = ui::createtexture(ren); diff --git a/zx_tape.cpp b/zx_tape.cpp index 6b4e8ae..3d09197 100644 --- a/zx_tape.cpp +++ b/zx_tape.cpp @@ -202,7 +202,7 @@ namespace zx_tape pulse_pos -= PULSE_LEN_SYNC3; pulse_level = 0; current_section = PULSE_WAIT; - printf("going to pulse_wait..%i.\n", current_block); + printf("going to pulse_wait..%i (%i).\n", current_block, blocks[current_block].length); } }