It is currently Wed Oct 18, 2017 6:14 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 3 posts ] 
Author Message
PostPosted: Wed Jun 29, 2016 3:13 am 
Offline
User avatar

Joined: Sun Jun 05, 2016 1:41 pm
Posts: 74
My IRQ counter code for MMC3 seems to be working well. For instance, the screen splits nicely in Super Mario 3 to allow for the game stats HUD at the bottom to be rendered independently of the scrolling level. I have not encountered any issues per se (I've yet to test MMC3 extensively on this), but I do have a question concerning the phrase "acknowledge any pending interrupts" as in the case of the IRQ disable register in MMC3

Code:
IRQ disable ($E000-$FFFE, even)
7  bit  0
---- ----
xxxx xxxx
Writing any value to this register will disable MMC3 interrupts AND acknowledge any pending interrupts.


What does "acknowledge any pending interrupts" really mean? Should the MMC3 signal the CPU to do the interrupt at this point?

Thanks

_________________
Tile IDE and tile engine for XNA: http://tide.codeplex.com/
Fancy Fish Mod - Minecraft Mod: http://fancyfishmod.weebly.com/


Top
 Profile  
 
PostPosted: Wed Jun 29, 2016 3:15 am 
Offline
User avatar

Joined: Fri Nov 19, 2004 7:35 pm
Posts: 3943
Acknowledge means that it TURNS OFF the IRQ pin. Otherwise it would keep triggering interrupts over and over again.

_________________
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!


Top
 Profile  
 
PostPosted: Wed Jun 29, 2016 4:43 am 
Offline
User avatar

Joined: Sun Sep 19, 2004 10:59 pm
Posts: 1389
Dwedit wrote:
Acknowledge means that it TURNS OFF the IRQ pin. Otherwise it would keep triggering interrupts over and over again.

To clarify, the IRQ signal is level-sensitive (compared to NMI, which is edge-triggered) - once the timer expires, the IRQ signal is activated, and the CPU will jump to the IRQ handler at every possible opportunity (i.e. whenever the "I" flag is clear). To prevent the CPU from getting stuck in a loop rerunning the IRQ handler over and over, it needs to tell the hardware that generated the interrupt that it's done handling it and that it can deactivate the signal, and for the MMC3 this involves writing any value to $E000.

_________________
Quietust, QMT Productions
P.S. If you don't get this note, let me know and I'll write you another.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group