I got the program stepping through one instruction at a time so I could probe all my lines. First thing I found out is that my bytes are swapped coming out of my ROM. I didn't realize that the instruction was the lower byte and the data was the upper byte. Of course it's obvious in the schematic, but I didn't put that together with the software. I reprogrammed by flash ROM pretty quickly, but it still didn't run as expected. For some reason after reprogramming, the ROM started to refuse to put out anything. I put it back into my Arduino programmer, and it could read the values, so I'm not sure what changed. I ran out of time, so that all for today. I'll need to put more time into it. But at least I'm knocking out problems one by one.