So I’ve more or less tidied up my little OS on the PicoCalc. This (the OS, etc.) has been a personal project for me for some years now - a sort of “what if” in a retro parallel/fantasy universe. I started on the 6502, migrated to the 65c816, then to RISC-V via my own emulator (on the '816 system), then a detour via ARM32 and now back to RISC-V.
I’ve always though I’d like something standalone - keyboard, display, storage and while the PicoCalc is not perfect it’s good enough for now. The main thing I don’t have going right now is sound and secondary is Wi-Fi (I’m using a Pico2 plus W from Pimoroni). I’m ignoring the on-board PicoCalc PSRAM and using the PSRAM on the Pico2. I’m almost tempted to remove the PSRAM chip from the main board and re-use the GPIO pin for and LED for the SD card access indicator… Not today though.
The OS is a fairly traditional thing a bit more advanced than CP/M but not as clever as Unix. The systems programming language is BCPL - and it as important (for me!) to be able to compile directly on the device - and as I achieved that on the 6502 and 65816 systems then it was not going to be an issue here. It supports multi-tasking, but that’s not implemented yet on the RISC-V version. I have a plan to take it multi-cpu too which shouldn’t be that hard.
I’ve spent a little bit of time working round some of the features of the PicoCalc - 40 column screen and the weird and wonderful “southbridge” interface. (e.g. the I²C does work at 400Khz, but crashes randomly and the I²C transactions are not what I expected them to be, however it’s all working and I think I’m glad my PicoCalc shipped with the latest software in the STM MCU, although I’ve no idea how to tell)
Now my task to myself is to actually use it directly for a day or 2 and see what works and what doesn’t and what more I need to tweak.
If anyone is interested then follow this thread and let me know. It’s a single .uf2 file and it would be a .tgz file to be unpacked on the SD card (Normal FAT32) It needs a Pico2 (ie. RISC-V) to run and it ought to run without PSRAM but I don’t think there is enough RAM to run the compiler from the internal RAM. The compiler itself is only 48KB, but it’s become a little “greedy” over the years in the RAM it needs for workspace…
Another demo here:
Cheers,
-Gordon