I can now boot my PCW from ROM, instead of using a disk. Unfortunately, it doesn't boot into CP/M or LocoScript — it just boots into my test programme which turns the screen and buzzer on and wait for you to press space bar, after which it inverts the screen and turns the buzzer off. Not at all useful, but an easy programme to write to prove it's really booting from my ROM.
How does it do it?
When the PCW is switched on, first it loads a small programme from the ROM in the printer controller into RAM. Once this is done, it sends 0 to port F8, which tells the PCW to stop reading from the printer ROM, and to use normal memory.
My CPLD watches for this command, and when it is seen it goes into its own special boot mode, where the first page of ROM is in all banks, and execution then continues at address 0002. At this point my code sets up the banks of memory it really wants and then writes to port B0 to turn ROM override mode off.
You can also disable ROM override mode by setting one of the CPLD pins high, so it's still possible to boot the computer normally.
And here's a short and very boring video of my PCW booting from the ROM: