Earlier quoted context omitted.
Why? It's just a big switch/case over the instruction set by the looks of it. Those things can get pretty damn large if your are implementing anything close to a proper CPU. It's just very condensed, I imagine so he can change a bunch of values and re-test quickly.
It's not quite as bad as it would be in a program other than an emulator, granted, but I can't imagine that it's easy to notice a bug in a 200-character line of: int pos=(ram[PC++&0xffff]+X)&0xff; byte v=ram[(ram[pos]&0xff)| And so on. It just seems like some sort of code generation would be much easier.
Most likely when you have a bug in something like this it will be isolated to one specific instruction. So you can just zoom in on the bit you need.
If you followed the standard Java practice for this you would probably have an Instruction class that inherited from several base classes and that would make your project very large and difficult to navigate indeed.