News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - assassin

Pages: [1]
Per the documentation, it's safe for a Block Move instruction (MVN or MVP) to be interrupted, provided the relevant registers (A, X, and Y) are restored before the RTI.  This leads me to two questions:

1) What if the interrupt routine itself performs another block move?  Is there anything in the "internal state" of a block move that can be overwritten?  For instance, I read in one forum that while the Destination Bank is kept in the Data Bank register, the Source Bank has its own internal, temporary variable.  Will an intervening MVP/MVN with a different source bank clobber this?  Or does each iteration of the byte copy restore this bank to what it should be?

2) More generally, does a routine that potentially interrupts a MVN/MVP need to preserve the Data Bank register alongside X, Y, and A, or is the destination bank reestablished with each iteration of the byte copy?


Pages: [1]