That mean that Dos-8D will never work if someone replace the 6502 with a CMOS version, clever!iss wrote:In my opinion Oricutron should behave as the real Oric. Dos-8D and some other nice software are using illegal instructions and all works perfectly in current version of Oricutron.
Else, maybe the best will be to have run-time option which enables/disables switch to debug mode on illegal instruction.
I like adding 6502, 65c02 and 65816 to emulation - actually I need it right now ...
The Apple II users learn that the hard way when Apple switched (and some user too) from the NMOS 6502 to the CMOS 65C02 version.
Using undocumented things, how appealing they are, has never been a good idea as they can broke at anytime (and it happen on the 6502 a certains number of time, even in the NMOS version)
I understand what you mean by emulating the quirks should be done, but not as the expense of using the emulator as a debug tool.
Executing "non existant" opcode should generate a warning or jump to debug, if the emulator is configured for that, there is on simple reason for that, detect when the emulated system start to run random code (like jumping somewhere it shouldn't, or like what happened to Chema, being shifted by one or two bytes, a trap on the unknown opcode would have saved Chema a lot of time. Of course the two mention bugs are not necessarily catch by such a feature, because sometimes, you could be unlucky enough to jump somewhere where only valid opcode are present, and it would be un-detected, but at least the debugger must have an option to "enter debug when non official opcode are to be executed"
On other CPU trying to execute a non existing Opcode would trigger a specific interrupt, this mechanism does not exist on the 6502 of course, but it's also a debug feature (Look at the Illegal Instruction trap from the 68000)
Chema: who knows, maybe one day a real new Oric with a 65C816 may appear???....