Debugger interface was extended a lot. Long time has been spent on improving reset behaviour.
New debugger commands:
- AF, BC, DE, HL, PC, SP, IX, IY for faster register acces (without REG command)
- ADL, MADL, EXX commands to change these CPU's settings
- RST (renamed from RESET)
- STEP can be also executed just by pressing Enter
- MAP to print current memory mapping
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:
- disassembler prints instruction pointed to by PC register
- after instruction is executed, changed registers are printed
Here is an example of single-stepping:
000000: DI 000001: RSMIX 000003: JP.LIL $028C HL =B7E3AD IX =B7FF4A 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),ATo finish debugger, breakpoint support has to be added.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.