One reason I got the PicoCalc was as a platform to play with my own little retro/“alternative universe” operating system and part of what I wanted to do was get it going, if possible, on the RISC-V cores, a lot of assembler and and without using the SDK (I know, potentially foolish, but that’s me)
I’d already ported it to the Adafruit Fruit Jam board with the RP2350 (and the RISC-V cores) but not yet enabled graphics there, so the actual OS part via a UART was relatively easy although some shenanigans ensued getting the SD card going (Now going great with a 25Mhz clock) the next task was the display and that again caused a few issues (and I’m sure there is some misleading information out there too) - but I’m there now… and it was an easy task to plumb in my tried and tested 2D graphics library…
Display updates seem quite speedy clocking at 75Mhz but I’m not yet using DMA - that’s the next step. Also fiddling with fonts. I have a 6 pixel wide font (so 5 pixels plus space would give a 53 column display) but I’m not sure how it’ll look.
However, much fun is to be had and the keyboard and I²C is next…
The bring-up and device interface (e.g. uart, SPI, I²C) is all RISC-V plus my own floating point code and some of the display writing code. There are a few things currently in C such as the FAT32 driver. My OS, utilities, etc. are written in something completely different; BCPL.
My aim is for a standalone device that I can use to edit text/code, etc. and compile and run programs directly on.
I did a big project on BBC Micros in the early 80s while at uni. Beebs, Econet, CNC Machine tools - Flexible Manufacturing, etc. etc. etc…
My project now is a sort of parallel universe/fantasy thing, sort of “what if”, so I started a retro 6502 system, made it mostly Beeb compatible, then had the idea that if I could use a 16-bit BCPL on an 8-bit CPU in the early 80s, then I can implement a 32-bit BCPL on a 16-bit CPU today… So got it all going on the 65816 - the somewhat “iffy” 16-bit 6502 then took it from there. I wanted a nice RISC CPU that wasn’t ARM, so settled on RISC-V and a few iterations later I’m on the PicoCalc.
BCPL isn’t to everyone’s liking - actually I suspect other than the language creator I’m the only one in the world actively doing anything with it but this is my fun/hobby world - and who knows I might even release it all if there’s any real interest.
Today - it all works, but via the uart - I can do text/graphics, etc. to my “smart” terminal running on my Linux desktop, but this week I now have the display working - need to settle on a font - probably stick with the Beebs 8x8 one to start with, but I have a nice 6x7 pixel font based on the old Apple II one to give a 53x45 character display which I think will be as usable. We’ll see.
Then the keyboard and it’ll be there - edit, compile run right from the system.
I completely grok what you are saying. There is not much interest in my Logo interpreter but I am using the PicoCalc for me to have fun.
I am thinking of doing what you are but using Microware’s OS-9 as the inspiration which I grew up using.
I created the PicoCalc Text Starter. Perhaps there is something there for inspiration or to get you going until you build your own stack? I have two fonts there based on the VT-100 8x10 (40x32) and 5x10 (64x32). In Pico-Logo, I have a 8x10 font stolen from the Atari 8-bits.
You’re both really great. I’ve just had a read of the BBC Micro article on Wikipedia, as I’d never heard of the device before - or at least I can’t remember it. Next, I’m going to watch the film ‘Micro Men’. It’s great to see so many interesting people coming together here on the forum.
Your code has helped give me inspiration. I’ll feed back my own thing when I’m ready - in particular making the SPI transfer to the display work with DMA. I’ve not even tackled the sound system yet.
Slow but steady progress though.
The key thing here is that under everything lies a bytecode VM. This is the thing that is supposed to make it easy to port - and I have now to 3 different platforms (65816, ARM32 and now RISC-V. However RISC-V has many variants, so some will be trickier than others depending on the extensions present. The Hazard3 in the RP2350 is a good compromise - ESP32-P4 is better as it has hardware FP, but I’ll consider that a luxury, while the ESP32-C3/C6 don’t have some of the nice bit or address manipulation extensions. It’s all a compromise.
I do remember Logo from “back then” - the tried (with varying degrees of success) to get it into schools where I lived but the one thing I took from it was turtle graphics - which my system supports…
You have a very cool project! The PicoCalc is perfect for this. Some here overclock, some put full linux-capable hardware in it, but for a fan of the Pico 2 with a keyboard/display attached it is perfect as it is, in my mind. I have a FruitJam, but the portability on the PicoCalc wins.
Unfortunately, no one looks past turtle graphics with Logo, and as you have said many systems implement turtle graphics without Logo. Logo is in fact very much like Lisp, and is as powerful, but with a simplified syntax.
I’ll do a longer write-up on my project at some point (probably on my own blog site, but I’ll link to it here) It’s been on-going since 2018 - which was 40 years after I first started on the 6502, hence it’s name; Ruby (in various guises). It started on the 6502, moved to he 16-bit thing the 65C816, then the 32-bit world was calling… But I actually used the 6502 system to help with the 65C816 system and then that to help with the 32-bit systems. Much as it could have happened in a parallel/fantasy universe back in the early 80s…
I have been after a self-contained unit for some time - contemplated building my own, but lacking a 3D printer it’s been tricky unless I go proper old school with woodwork.
And for personal reasons I wanted to avoid ARM (Specifically Raspberry Pi anything) for some time and while I did get my project running on my own bare-metal Piv1 hardware with The Pi LCD display it wasn’t quite what I was after, and I still had that unhappy relationship with all things Pi…
And then there are dozens of system that use the Piv0, etc. but then they’re just another Linux inna box system, so relatively boring from my point of view. (Cardputer/M5 I’m looking at you here!)
However the RP2350 came about after I’d started down the RISC-V route so after an initial port to my own RISC-V emulator (written in BPCL of-course!) I did a quick port to an ESP32-C3 system and then to the Adafruit board (serial uart only - usb and video have evaded me so-far) and now to the PicoCalc - which will give me what I’m after - hand-held, keyboard & screen and so on.
I did actually spend some time re-visiting Logo last night too. Had a look at the “reference” UCB implementation, wondering how hard it might be to re-target it to my system or even re-write it in BCPL as it’s seems to be fairly standard C. I’m not really a compiler writer though, but I’d like to see other languages, but sadly the rod I made for my own backbone was BCPL and the bytecode VM it compiles to.
I did this many years back though - after I’d initially looked at Logo:
not done too much work on the PicoCalc for a day or so, but have the screen going now. Might stick to my 8x8 font for now (so 40 columns) as my tired old eyes do need my reading glasses to see it…
Bubble Universe … At the ‘fantastic’ speed of um. 2 seconds per frame. Still, that is 2 sine and 2 cosine calculations per pixel and there are 200*200= 40,000 pixels per frame, so 160,000 trig operations… so not bad for (my own) software floating point on the RISC-V…
I thought Scotland, but I’m curious. I lived in Lancaster for a couple of years, and strangely I have bumped into three Glaswegians this year, are you the fourth?
Not from Glasgow. What’s now called the Central Belt then Edinburgh for school and uni. then after a lot of travelling (work, etc.) down to my ancestral homelands in the Scottish Borders.