Am Mittwoch, 5. Oktober 2022, 18:41:15 CEST schrieb smf: > NMI is edge triggered, IRQ is level triggered. > > If IRQ stays low then it will fire again when you RTI out of the > interrupt handler. > > NMI has no mask, so it only fires when it transitions from high to low & > there is nothing to stop another NMI from being triggered while the > handler is still running. > > In fact it might be why it's looking for the keyboard scan, if the > computer is scanning the keyboard then you know that the NMI handler has > finished. What strikes me as odd is that they have ALSO the common register bit to "disarm" the NMI logic. The implementation now only uses that one - and it works, the register write ACKs the freeze. One thing i can imagine is that they somehow had bad problems with contact bounce on that cheap push button - so this cable gives them a cheap way to wait ~15ms before re-enabling the button to prevent it from firing again right after the NMI was re-enabled. BTW, thanks to Raj, i could also implement partner 64 emulation. Purely based on guesswork this time, so the implementation does probably not exactly show how the cartridge works :) But the software runs. Also this one does NOT have that cable, which makes me wonder which cartridge was released first. Another interesting point is how the software looks very similar - but the code is totally different - The C64 one uses a lot of subroutine calls using BRK+databytes, the C128 one instead uses a JSR+databytes mechanism. Both do not look like handwritten assembler to me, especially the C128 one has subroutines in it hat imply some sort of stack based high level thing. -- http://hitmen.eu http://ar.pokefinder.org http://vice-emu.sourceforge.net http://magicdisk.untergrund.net why should the assembler know how memory looks like ? I dont get it <Oswald/Resource>Received on 2022-10-05 19:05:30
Archive generated by hypermail 2.3.0.