Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > NMI delay
2024-02-13 22:34
JackAsser

Registered: Jun 2002
Posts: 2038
NMI delay

How much is an NMI delayed if triggered during IRQ-setup?
 
... 45 posts hidden. Click here to view all posts....
 
2024-02-14 05:50
Martin Piper

Registered: Nov 2007
Posts: 739
To really get an answer to this the PLA ROM needs to be understood.

http://www.visual6502.org/JSSim/expert.html
https://www.pagetable.com/?p=410
https://www.pagetable.com/?p=39
"At the end of each instruction, the PLA causes the T bitfield to reset, so that the next instruction starts with T1=1 again."
"All interrupt and NMI requests are always delayed until the current instruction is finished, i.e. until T gets reset."
2024-02-14 09:33
JackAsser

Registered: Jun 2002
Posts: 2038
Quote: To really get an answer to this the PLA ROM needs to be understood.

http://www.visual6502.org/JSSim/expert.html
https://www.pagetable.com/?p=410
https://www.pagetable.com/?p=39
"At the end of each instruction, the PLA causes the T bitfield to reset, so that the next instruction starts with T1=1 again."
"All interrupt and NMI requests are always delayed until the current instruction is finished, i.e. until T gets reset."


Given that and given that an IRQ really is a BRK-instruction under the hood we can assume the delay can be up to 7 cycles then?
2024-02-14 13:56
chatGPZ

Registered: Dec 2001
Posts: 11523
If only it was that simple :o)

It might be a good idea to simulate and iterate too all possible timings (ie trigger the nmi in every possible half cycle of that "BRK") and then see what happens. If i understood the wiki correctly, there are still special cases to consider.
2024-02-14 14:09
JackAsser

Registered: Jun 2002
Posts: 2038
Quote: If only it was that simple :o)

It might be a good idea to simulate and iterate too all possible timings (ie trigger the nmi in every possible half cycle of that "BRK") and then see what happens. If i understood the wiki correctly, there are still special cases to consider.


Yeah, someday. For now I simply made sure that my IRQs never collides with the NMIs. :)
2024-02-14 14:18
chatGPZ

Registered: Dec 2001
Posts: 11523
BAH! DO IT! :D
2024-02-14 17:01
Martin Piper

Registered: Nov 2007
Posts: 739
Quote: Yeah, someday. For now I simply made sure that my IRQs never collides with the NMIs. :)

There's no real problem as both will trigger eventually.
2024-02-14 17:10
chatGPZ

Registered: Dec 2001
Posts: 11523
The problem is having predictable timing in all cases. Of course they trigger (except when they don't - see the wiki pages).
2024-02-14 17:20
JackAsser

Registered: Jun 2002
Posts: 2038
Quote: The problem is having predictable timing in all cases. Of course they trigger (except when they don't - see the wiki pages).

Exactly. My NMIs must NOT be delayed or this card house will fall completly and ungraceful.
2024-02-14 17:28
Fungus

Registered: Sep 2002
Posts: 751
Quote: The problem is having predictable timing in all cases. Of course they trigger (except when they don't - see the wiki pages).

Yes this is what I was looking at too, to see in which instances the IRQ is "eaten". I need to do some simulations there too and see if this behavior can be documented so we know exactly when and how this can occur.

I was already aware of BRK can eat an IRQ and vice versa, but if NMI is also a BRK instruction then the same thing could happen. It's just a matter of under what circumstances...
2024-02-14 17:34
chatGPZ

Registered: Dec 2001
Posts: 11523
Yes. Those wiki pages are very confusing for that matter, because they also consider cases that can never happen - in a C64 anyway.
Previous - 1 | 2 | 3 | 4 | 5 | 6 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
megasoftargentina
metalux
Twilight/Excess/Arcade
SLC
CA$H/TRiAD
Barfly/Extend
REBEL 1/HF
Guests online: 292
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Codeboys & Endians  (9.7)
4 Mojo  (9.6)
5 Coma Light 13  (9.6)
6 Edge of Disgrace  (9.6)
7 Signal Carnival  (9.6)
8 Wonderland XIV  (9.5)
9 Uncensored  (9.5)
10 Comaland 100%  (9.5)
Top onefile Demos
1 Nine  (9.7)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.5)
6 Scan and Spin  (9.5)
7 Onscreen 5k  (9.5)
8 Grey  (9.5)
9 Dawnfall V1.1  (9.5)
10 Rainbow Connection  (9.5)
Top Groups
1 Artline Designs  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Performers  (9.3)
5 Censor Design  (9.3)
Top Diskmag Editors
1 Magic  (10)
2 Jazzcat  (9.5)
3 hedning  (9.2)
4 Elwix  (9.1)
5 Peter  (9.0)

Home - Disclaimer
Copyright © No Name 2001-2025
Page generated in: 0.053 sec.