Building FPGABee Version 2

Part 12 - PCU Firmware Working

This article continues on from Part 11 - PCU Supporting Hardware.

Today I finished writing enough of the PCU firmware that it now supports disk switching.

Floppy Disk Switching

On pressing F12, the PCU menu appears like this:

DSC_0096.jpg

Here you can see directory listing of HDPREMD1.DS40:

DSC_0097.jpg

Back in the PCU menu, I can choose a different disk image:

DSC_0098.jpg

and here's a directory listing of the new disk: (CP/M requires pressing Ctrl+C to read the new disk info)

DSC_0100.jpg

It works! I still need to do some clean up and write the changed disk information back to the SD card so that the selected disk will survive a reset, but it's basically there.

And speaking of reset...

Reset Menu Item

I've also implemented the ability for the PCU to invoke a reset. To do so, the PCU code writes any value to port 0xFF, upon which FPGABee's hardware asserts the Z80 and 6545's reset line for about 8 clock cycles (using a simple shift register).

The nice thing about this is that you can now perform a reset while holding other keyboard keys. Previously this wasn't possible since a PS2 keyboard it sends events as keys are pressed and released. If you press a key before turning on the machine there's no key press event and the PS2 to Microbee keyboard decoder can't report the key pressed.

Since the soft reset doesn't reset the PS2 logic, or the Microbee keyswitch decoding logic a reset with boot key held is now possible. eg: to get into the Monitor, you can bring up the PCU menu, move to the reset command, hold 'M' and press enter.

Building FPGABee Version 2 continues with Part 13 - Better Aspect Ratio.