extending debugger functions

A project log for eZ80 open-source programmer

AVR-based interface to access eZ80 CPU through ZDI signals - usable as programmer/debugger

hynekhynek 02/20/2016 at 12:300 Comments

Debugger interface was extended a lot. Long time has been spent on improving reset behaviour.

New debugger commands:

Reset which results in halted CPU is quite difficult to do. It seems, that there is only short time when ZDI_BRK_CTL can be written in time enough to stop CPU with PC=0x000000. Earlier write leads to CPU completely frozen, later stops CPU at non-zero address. "Frozen" CPU means, that it doesn't do anything, is completely stopped - probably in initialization phase - and nothing else then hardware reset helps.

RST command can accept single byte parameter used to time this delay. It is possible that with another AVR compiler, this delay should be adjusted again.

Debugger interface was improved:

Here is an example of single-stepping:

000000:	DI
000001:	RSMIX
000003:	JP.LIL	$028C
00028C:	LD	A,$FF
AF =0000FF
00028E:	OUT0	($9B),A
000291:	OUT0	($9F),A
000294:	OUT0	($A3),A
000297:	LD	A,$00
AF =000000
000299:	OUT0	($9C),A
To finish debugger, breakpoint support has to be added.