It doesn't look like it's possible to stop the break vector from being cleared on the master. The nearest thing to a solution I could think of was taking advantage of the fact that sideways ROMs are notified of a break. It might be possible to write a small service ROM (loaded into one of the master's SRAM banks) that catches the event and either makes the key definiton or re-sets the break vector. This does seem to be getting overly complicated though and, because of the requirement for an SRAM bank, still wouldn't work on a 64K B+.
Approaching it from the other angle, that is stopping Chuckie Egg from clearing the memory on reset, presents its own problem. The memory at &d00 is left full of junk which affects the way sideways ROMs are handled on break (Ctrl-Break works fine because that will reset the ROM table). I tried a few different ideas including trying to force Ctrl-Break behaviour on a normal break. This kind of worked, but on the master it always cleared out the break vector again.
So the question is, can the master be reset in such a way as to re-load the CMOS settings, re-build the ROM table in &d00 but not clear the vectors. And can it be done in a way that's compatible with all the other beeb models? I'm guessing not, but there's no harm in asking.
To be honest, Sam I think it would be better to just use the break key definition for the editor and leave the game as it is. That way, pressing Break simply quits out of the game, or pressing Shift-Break re-loads the menu, and it works on all machines. The simplest solution is often the best
