Boot from ROM

A project log for The PCW Project

Doing things with an Amstrad PCW

James Ots 10/21/2017 at 11:511 Comment

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:


BigEd wrote 10/22/2017 at 18:15 point

A useful step forwards - watching with interest!

  Are you sure? yes | no