[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 65816 abort line on the AppleIIgs



On 31 Oct 2002, Michael J. Mahon wrote:
|>I've heard conflicting information about just what happens when the
|>Abort pin is pulled low.  Is it true that it wipes out the instruction
|>currently being executed?  Someone told me that it tries to 'resume'
|>the instruction when you finally RTI and get out of the Abort handler.
|>Obviously a ROR <memory address> instruction, if interrupted in the
|>middle of the rotation, is going to result in something odd after
|>the processor resumes from the Abort.
|
|The intent is that it cancels the effect of the in-process instruction,
|and it should work if asserted during the first memory-access
|cycle of an instruction.

Can you be more explicit?  If ror <address> involves a read of a
specified memory address, and then rotate some internal register
+carry, before write-back, are you suggesting that it makes no
difference how far into the execution we go, if the abort occurs
prior to the write-back, the whole instruction is executed over
again, after we get back from the Abort handler?

|This is consistent with it's intended use for a virtual memory
|implementation,

I was just thinking it would be more useful for implementing
a copy-protecting mechanism to be used in conjunction with
copy-protected software.

|where it would be used to interrupt & cancel the current instruction
|if it referred to un-mapped memory--a page fault.
|
|After the page has been made present by an interrupt service
|routine,

Sure, the Abort handler itself would have to save stuff to disk,
bring something else in from disk, and then restore registers
and RTI.

|the program would be resumed at the aborted instruction
|so that it could re-execute to completion.

Hmmmmmmm....  Okay.