I recently added a PiTubeDirect co-processor to my Model B, I've been working on another project using the co-processor, and while playing with the different processors I keep forgetting which core is which (not difficult with 16 to choose from), so I wrote a little menu to allow me to change between them. I thought other people might find it useful, and the best bit about it is it runs entirely on the host so it can be run from any core that allows the execution of Star commands including DOS, CPM and Panos (and presumable Flex but I haven't been able to test that yet). I put it on an SSD image so on MMFS you can do:
Or you can Shift-Break boot the disk image, on ADFS if you put the file in $.Library you can call *CPMENU from anywhere, and since it runs on the host it has normal access to the BBC's memory and IO. There seems to be an issue, it's supposed to reset the machine once you select a core, but it's buggy and doesn't always work, you get a blank screen with a flashing cursor, but pressing Ctrl-Break (or just break) will switch you into the new processor core.
This is what the menu looks like:
The processor cores are in order, however I deliberately put Disable at the end so you can simply press UP once and RETURN to disable the processor.
At the moment the menu is very hardcoded, I created the layout using tt-edit
, which is copied directly into screen memory, the control codes for the backgrounds are hardcoded into the image, like this:
I just replace the space to the left of the G symbol with CHR$(157) to turn the highlight on.
Here's the first release, if anyone can help with the reboot issue I'm calling
on the host, but it only seems to work with no co-processor active.
*Updated 16/06/2020 - New version with working reset.
Hopefully some more of you will find this useful.