Hi again Tony,
Thanks for getting back to me. To answer your questions:
I guess it’s possible that the CONFIG register is programmed incorrectly on the bad processors. Unfortunately, this is an old product and we don’t have a development system anymore so I can’t easily read the contents of this register.
The vectors for the COP, clock monitor, interrupts, timers, overflow etc are all initialised & correct and none point to $E000.
The jump to $E000 occurs immediately after the reset vector to $FECD is received (see attached plot).
We’ve tried a faulty processor in two different products and it doesn’t work in either of those. This is not completely conclusive as the original product and these other two share similar hardware and software designs. I’m trying to locate an official Motorola/Freescale evaluation board to try the processor in there, but this may take a while.
I’ve manually edited the hex file to add an extended-mode JMP $FFFE instruction to location $E000 and the processor doesn't seem to respond to it at all – see attached scope shot. It shows (from left to right)…
- Reset rising after power-up (yellow trace)
- The processor puts out the reset vector of $FFFE, PROM responds with $FE
- The processor puts out the reset vector of $FFFF, PROM responds with $CD
- The processor jumps to $E000 where it finds the JMP $FFFE instruction ($7E, $FF, $FE)
- The processor continues to addresses $E003 and $E004, completely ignoring the JMP.
- The program counter then inexplicably goes to $FFFF!
BUS1 consists of the upper half of the address bus in the high-order byte and multiplexed address & data bus in the lower byte.
