December 22, 2012

zxsp 0.8.0.pre10: Debugger

Let's the year's end rallye start...
(phht, i had to look up 'rallye'...)

The last weeks i was working on the debugger, especially on break points, and some cosmetic&nice stuff.

So what's new?

In Hex and Disass Memory Inspector:
  • Highlight opcode addressed by register
  • Indicate breakpoints
  • Set & clear Breakpoints
  • Edit memory

Editing in the Hex Memory Inspector

Color codes in the Hex Memory Inspector

The toolbar in the hex inspector now has a button group "Edit", "R", "W" + "X".

If you push down "Edit" you can directly edit the displayed hex data. Any editing is instantaneous. Note, that key input now goes to the edit field and no longer to the running machine. Currently it is not visually shown that the hex field has focus. That's on the ToDo list. Also you cannot yet edit in the Ascii field.

If you push down "R", "W" and/or "X" you are in breakpoint editor mode. Where ever you click you set or clear a breakpoint for Read, Write or Execute. Breakpoints are indicated with colored hex characters:
  • Blue = read
  • Green = Write
  • Red = Execute
  • and any combination, e.g. Yellow = Green+Red = Write+Execute.
If a register points to a certain memory address, the background of the bytes is colored:
  • red (pink) = PC
  • green = SP
  • cyan = HL
  • yellow = other registers
If you hover the mouse over the byte the register is displayed in the tooltip.

Editing in the Disass Inspector

PC highlight and the Edit mode popup in Disass View
The toolbar in the disass view now contains a popup menu for selecting edit mode or breakpoint mode. It has the same functionality as the button group in the hex view. I'm not sure which method is better. 
As in the hex view registers and breakpoints are indicated with colors. As you can see im the screenshot the colors are shown in the hex code column, except for the PC which is shown in the full row. 
If you have selected "Edit" you can edit memory in the hex code column. Again there is not yet a visual indicator that this view has keyboard focus. Also, while you can click on the disassembled opcode to toggle breakpoints you cannot yet edit the opcodes. This will come next.

Other Changes

The Disass inspector now tries to lock on actual opcode boundaries. But this can only be done 95% because this is unavoidably ambiguous.

Qt Version

As you may know Qt 5.0.0 was release yesterday. I have already tried to compile zxsp with Qt 5.0.0. Most code compiled with no problems, but i'm currently stuck because i probably ran into a bug in Qt 5.0.0: OpenGL drawing cannot be set to single buffer mode, but that's what i use in zxsp. Switching to double buffered mode is not trivial in this special case. I hope this is fixed quickly and the next version is compiled against Qt 5.0.0. We'll see.

Happy Christmas to all and a peaceful start into the new year!

    ... Kio !

St. Johann, Erlangen 2012-12-08

p.s: as written, we had a fire in our building and one apartment was completely destroyed.
If you start at the burnt-out flat and go 3 flats right and 6 floors up you may note the small black spot at my window, which is the "little-bat". :-)

No comments:

Post a Comment