Emulation RAAM
                  The ICE-Cube
    contains a powerful address monitor. The entire 512kb address space 
                  (covering multiple banks) is covered by the
    monitor. Execution can stop on an access to an address that should not occur during
    execution of the program. 
                  The user can create any
    number of address ranges with a 16-byte resolution. Each range can be programmed to
    breakpoint on execution in the range, a memory read in the range, a memory write in the
    range, or any combination of these three accesses. Areas may be left to allow any or all
    of these accesses to occur.
    To catch unwanted
    writes, this small 16-byte resolution allows monitoring read-only or limited-access data
    structures in RAM. During debugging, the user can monitor the program area in ROM or in
    emulation RAM for address writes to catch the nearly impossible-to-find writes to ROM that
    normally go unnoticed because ROM can't be altered.
    Write-protecting
    emulation RAM simulates a ROM environment. Not doing so causes the program code to change,
    likely crashing the program at some point after the write happens. Finally, the user can
    create large ranges of no-execute areas over variables and unused address space to
    instantly catch program crashes and bad transfers through a pointer.