New debugger features for ZEsarUX-4.1
Hi
I haved added new breakpoint conditions on ZEsarUX, the following 8 allow to put a breakpoint when accessing memory or i/o ports:
MRV: value returned on read memory operation
MWV: value written on write memory operation
MRA: address used on read memory operation
MWA: address used on write memory operation
PRV: value returned on read port operation
PWV: value written on write port operation
PRA: address used on read port operation
PWA: address used on write port operation
So, a condition like
MWA=32768
Will stop execution when we make a poke to address 32768
Another one:
MWA=32768 and MWV=100
Will stop execution when making a: POKE 32768,100
Another one:
MWA<16384
Will stop execution when trying to write on ROM addresses
I have added two more pseudo variables:
TSTATES: t-states total in a frame
TSTATESL: t-states in a scanline
And there's much more, you can add "watches", I mean, variables and registers that are shown on the display on real time, even with menu closed. The name "watches" comes from Turbo Pascal/Turbo C that used the same name for this feature, if I remember well.
So we can set a watch like:
A ROM BC
And it will show on screen the value of A register, the mapped ROM number and the BC register
I have uploaded a video showing all this:

Remember these changes are made on the last source code, that you could test it when I make the next beta version or if you want to try to compile the last snapshot source.
Other feature requests from you will be welcomed ;)
Cheers
Cesar
I haved added new breakpoint conditions on ZEsarUX, the following 8 allow to put a breakpoint when accessing memory or i/o ports:
MRV: value returned on read memory operation
MWV: value written on write memory operation
MRA: address used on read memory operation
MWA: address used on write memory operation
PRV: value returned on read port operation
PWV: value written on write port operation
PRA: address used on read port operation
PWA: address used on write port operation
So, a condition like
MWA=32768
Will stop execution when we make a poke to address 32768
Another one:
MWA=32768 and MWV=100
Will stop execution when making a: POKE 32768,100
Another one:
MWA<16384
Will stop execution when trying to write on ROM addresses
I have added two more pseudo variables:
TSTATES: t-states total in a frame
TSTATESL: t-states in a scanline
And there's much more, you can add "watches", I mean, variables and registers that are shown on the display on real time, even with menu closed. The name "watches" comes from Turbo Pascal/Turbo C that used the same name for this feature, if I remember well.
So we can set a watch like:
A ROM BC
And it will show on screen the value of A register, the mapped ROM number and the BC register
I have uploaded a video showing all this:

Remember these changes are made on the last source code, that you could test it when I make the next beta version or if you want to try to compile the last snapshot source.
Other feature requests from you will be welcomed ;)
Cheers
Cesar

Comments
I have just uploaded new beta versions Win/Mac with the last changes:
https://sourceforge.net/projects/zesarux/files/Beta_and_Snapshot_versions/
Although I notice you have removed Cmd-Q keyboard shortcut for Quit from the file menu which breaks Apple UI guidelines.
https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/OSXHIGuidelines/Keyboard.html
Regards,
Derek.
Yes I removed some of the cmd shortcuts I had. I did this because Chloe keyboard uses cmd key to simulate symbol shift, so I needed that key.
Cheers
Cesar