Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

6502 interrupt should delay 1 opcode when interrupt occurs on last cycle of opcode #724

Closed
tomcw opened this issue Nov 15, 2019 · 2 comments
Closed
Labels
bug
Milestone

Comments

@tomcw
Copy link
Contributor

@tomcw tomcw commented Nov 15, 2019

Spun off from #718.

Due to 6502 pipelining, on the last cycle of any opcode (other than completing the opcode), additionally either:

  • the next opcode will be decoded (having already been pre-fetched), or
  • if IRQ is previously asserted then the interrupt will be taken

So if IRQ is asserted on the last cycle, then the next opcode decode is is already happening, so the interrupt will be taken after the next opcode completes.

@tomcw tomcw added the bug label Nov 15, 2019
@Archange427

This comment has been minimized.

Copy link

@Archange427 Archange427 commented Nov 16, 2019

Issues #699 and #711 are probably related to this one (at least partially).

tomcw added a commit that referenced this issue Nov 16, 2019
. 6502 interrupt delays 1 opcode when interrupt occurs on last cycle of opcode (#724).
. Only 1-cycle delay for VF_TEXT & VF_MIXED mode changes (#656).
NB. Mad Effect 1 still has a bit of flicker on Space Invader (left edge)
@tomcw tomcw added this to the 1.29.6 milestone Nov 18, 2019
@tomcw

This comment has been minimized.

Copy link
Contributor Author

@tomcw tomcw commented Nov 18, 2019

Closing as fixed in AppleWin 1.29.6.0 here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.