A) The CPU tries to fetch whatever is at address $8000 and happily executes whatever it finds.
B) The GameBoy has some form of protection that sets the PC at this stage back to $0000.
C) The protection sets it back to $0100 to fetch and execute the JP instruction for the main entry point of the user program.
D) The system locks up (or worse gets damaged) because it is not allowed to fetch instructions from address $8000 or beyond.
E) There is a non-maskable interrupt that indicates a fetch/jump from/to an illegal address. This one is probably less likely since the GameBoy seems to only have maskable interrupts.
The Nintendo GameBoy Programming Manual has no real information on this. Even worse, the examples for the CALL and JP instructions in that manual show a jump to address $8000, which based on the memory layout should be a no no.
Has anyone here ever tried those scenarios on real hardware and knows what would happen? I only have emulators at hand at the moment and I don't really care what these would do. I would like to know how the real hardware would behave in this scenario and thought I'd ask before I have to buy a GameBoy and somehow try this for myself
