Posted: Wed Sep 21, 2011 9:39 pm
We may need to recap what we saw. We've got better simulation tabulation output these days.
Here's a taken branch being interrupted during T2 (the following instruction is fetched and executed):
By comparison, if the branch had been a push, which is also a 3-cycle instruction and would also be in T2 at the same time, the following instruction would have been usurped by the interrupt:
Again, as HiassofT says, if the taken branch crosses a page boundary then the interrupt is taken sooner - we see D1x1 respond during T0, just as it does for a push or a jump:
No conclusions or explanation from me today though.
Cheers
Ed
Here's a taken branch being interrupted during T2 (the following instruction is fetched and executed):
Code: Select all
cycle ab db rw Fetch pc Execute State nmi D1x1
0 2303 38 1 SEC 2303 BRK T1 1 1
0 2303 38 1 SEC 2303 BRK T1 1 1
1 2304 b0 1 2304 SEC T0+T2 1 1
1 2304 b0 1 2304 SEC T0+T2 1 1
2 2304 b0 1 BCS 2304 SEC T1 1 1
2 2304 b0 1 BCS 2304 SEC T1 1 1
3 2305 fe 1 2305 BCS T2 1 1
3 2305 fe 1 2305 BCS T2 0 1
4 2306 a9 1 2306 BCS T3 0 1
4 2306 a9 1 2306 BCS T3 0 1
5 2304 b0 1 BCS 2304 BCS 0 1
5 2304 b0 1 BCS 2304 BCS 0 1
6 2305 fe 1 2305 BCS T2 0 1
6 2305 fe 1 2305 BCS T2 0 0
7 2306 a9 1 2306 BCS T3 0 0
7 2306 a9 1 2306 BCS T3 0 0
8 2304 b0 1 BCS 2304 BCS 0 0
8 2304 b0 1 BCS 2304 BCS 0 0
9 2304 b0 1 2304 BRK T2 0 0
9 2304 b0 1 2304 BRK T2 0 0
10 01fd b0 0 2304 BRK T3 0 0
10 01fd 23 0 2304 BRK T3 0 0
Code: Select all
cycle ab db rw Fetch pc Execute State nmi D1x1
0 2303 38 1 SEC 2303 BRK T1 1 1
0 2303 38 1 SEC 2303 BRK T1 1 1
1 2304 48 1 2304 SEC T0+T2 1 1
1 2304 48 1 2304 SEC T0+T2 1 1
2 2304 48 1 PHA 2304 SEC T1 1 1
2 2304 48 1 PHA 2304 SEC T1 1 1
3 2305 48 1 2305 PHA T2 1 1
3 2305 48 1 2305 PHA T2 0 1
4 01fd 48 0 2305 PHA T0 0 1
4 01fd aa 0 2305 PHA T0 0 0
5 2305 48 1 PHA 2305 PHA T1 0 0
5 2305 48 1 PHA 2305 PHA T1 0 0
6 2305 48 1 2305 BRK T2 0 0
6 2305 48 1 2305 BRK T2 0 0
7 01fc 48 0 2305 BRK T3 0 0
7 01fc 23 0 2305 BRK T3 0 0
Code: Select all
cycle ab db rw Fetch pc Execute State nmi D1x1
0 23fe 38 1 SEC 23fe BRK T1 1 1
0 23fe 38 1 SEC 23fe BRK T1 1 1
1 23ff b0 1 23ff SEC T0+T2 1 1
1 23ff b0 1 23ff SEC T0+T2 1 1
2 23ff b0 1 BCS 23ff SEC T1 1 1
2 23ff b0 1 BCS 23ff SEC T1 1 1
3 2400 fe 1 2400 BCS T2 1 1
3 2400 fe 1 2400 BCS T2 0 1
4 2401 a9 1 2401 BCS T3 0 1
4 2401 a9 1 2401 BCS T3 0 1
5 24ff 00 1 24ff BCS T0 0 1
5 24ff 00 1 24ff BCS T0 0 0
6 23ff b0 1 BCS 23ff BCS T1 0 0
6 23ff b0 1 BCS 23ff BCS T1 0 0
7 23ff b0 1 23ff BRK T2 0 0
7 23ff b0 1 23ff BRK T2 0 0
8 01fd b0 0 23ff BRK T3 0 0
8 01fd 23 0 23ff BRK T3 0 0
Cheers
Ed
