Re: mmu for 65c02

From: Jim Brain (brain_at_jbrain.com)
Date: 2005-04-22 05:09:30

Gábor Lénárt wrote:

>
>It can be solved anyway. In case of fault, a FlipFlop (FF for short) should
>be set. Any further memory operation (either read/write) should be ignore
>by the MMU if that FF is set! In this way, we isolates CPU from the memory
>after a fault, to be sure that it will not corrupt a bogus memory locaton.
>The only task left is to clear that FF after the opcode when the NMI taken,
>as fault handler.
>  
>
It gets worse.  The opcode in question could have updated an internal 
register:

$67ff and #$10

67ff (and) gets pulled.

$6800 is page fault, so force 0.  Uh oh, as now .A is corrupt, and there 
is no way to reset it.

The only real way to do this is not allow such things to occur.  Scan 
incoming code at page boundaries to insert BRK opcodes to handle such 
issues before you step into them.  Or, ensure code that runs in your 
system does not create such issues.

Jim


-- 
Jim Brain, Brain Innovations
brain@jbrain.com                                http://www.jbrain.com
Dabbling in WWW, Embedded Systems, Old CBM computers, and Good Times!


       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail pre-2.1.8.