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

interrupts appear to be edge-triggered instead of level-triggered #54

Open
BGPierce opened this issue Dec 1, 2020 · 2 comments
Open

Comments

@BGPierce
Copy link
Contributor

BGPierce commented Dec 1, 2020

(from old issues page)
jaggies commented on Mar 2, 2019
While going back and forth between real hardware, I found VCC is tolerant of not clearing FIRQ/IRQ/NMI sources (e.g. forgetting to read GIME register 0xff93 to clear the interrupt). I had to break out the oscilloscope to figure out what was going on. :) Applications that are written correctly don't have a problem, of course, but it makes cross-developing code more challenging since code that works fine on the emulator locks up the real hardware.

@BGPierce
Copy link
Contributor Author

BGPierce commented Dec 1, 2020

BGPierce commented on Dec 11, 2019
Sorry for the long wait, but it's been a tough time around here.
I understand what you are saying, but I'm not sure of the actions that should happen.
Explain as best you can what happens in VCC and a real Coco when the interrupts are not cleared.
I'm not a tech or engineer, so the simpler the explanation the better :-)

@ejaquay
Copy link
Contributor

ejaquay commented Dec 15, 2020

Vcc is single threaded which means all peripheral activity is synchronized. This means the emulated cpu is halted until peripheral activity completes. Fix would be to run each peripheral in a separate thread which is a complex change that could break things. Might be worth trying someday.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants