leegong wrote:I downloaded Emulator v1.81 to test delay interrupt with following steps:
2:Modify @0x1fe58e to skip infinite loop for 4006 matching
But the code still goes on @0x409E6 infinite loop,not task0x100106. The delay interrupt implemented in this version doesn't seem to work, is there anything wrong with my test steps?
A few misc comments :
1) Seeing your capture, I advise you to switch to small buttons: Tools > Options > "User interface" tab > Uncheck "Use large buttons" > OK.
2) There is a way built in the Emulator to skip the 4006 infinite loop: Start the code, then go to Trace > Component 4006 window (or "4006" button), you should see all the traces of code polling the 0x40060010 address. Just press the "Store 0x1000 at 0x40060010" button at the bottom two times
(the code loops first waiting for the "component" to be ready, then writes data to it, then loops a second time waiting for the component's "ACK", before going on) :
3) I don't see the problem with 0x100106. It gets called as expected (at least in 1.82).
Please watch the screencast below which demonstrates all points : small buttons, use of 4006 window, and hitting the breakpoint at 0x100106. Also notice the disassembly which now shows the syscall names next to INT40 :http://screencast.com/t/kiastLoG8