Retro New? OS/Languages?

For the most-part this esteemed forum talks about real computing systems with many histories, cast studies and so on, but has occasionally mentioned new system designed based on (or even using) retro ideas and parts.

some years ago (2018 if you want to know) I started on my own retro-new systems - thinking about a fantasy parallel universe where I wondered what I could do with old systems with todays knowledge - I chose the 6502 because that was the first CPU I ever programmed assembly language on… I came to the conclusion that it would be really hard to improve on what we had. It started looking like an Apple II because that was the first 6502 system I used, then it looked like a BBC Micro because it had a nice OS and Basic then … Well it just sort of plodded on when I had time, migrating to a 65c816 SBC system with a serial port where my aim was for a stand alone development system with a high level language - I chose rightly or wrongly a very retro programming language; BCPL. And so it went on.
In recent years I ported it all to an ARM platform (Piv1) but that wasn’t part of my own fantasy universe, so always had in-mind RISC-V (as Berkley RISC was a thing in the early 80s) so RISC-V it was. (And is today).

There is a lot more to it than that, but that’s the jist of my thoughts.
Very recently I have been experimenting with a hand-held device - the PicoCalc and tasked myself with actually using it for a couple of days to write code on and run it. Best way to iron out bugs and find the irritations and so on.
Anyway, here is a little demo - a sort of ā€œlive codingā€ session.

or if you fancy a ā€œshortā€, then I adapted that program to run interactively:

BCPL was in-use in the early 80s on the BBC Micro and the early Amiga OS was written in it too. (c1985) so it fits in my (current) fantasy universe idea… Who knows where or what next.

Cheers,

-G

8 Likes

That looks like good fun, and for me it’s suitably retro. I’m rather tempted to get the same kit as you have there.

2 Likes

Here in Canada, BCPL was not a option until the internet arrived, then I could buy the book.
In that time frame (80’s), tiny C was my only option for a OS/language.
For programing you had ( on punched cards ) IBM1130 assembler
and Fortran IV and FOCAL on a PDP8 in the early 80’s.
Back then software and hardware was less bloated, so a single programmer could understand
the programs and operating systems. After that you needed teams of programmers to develop
anything, and that may have limited programing just to C and UNIX or window type operating systems.
.

1 Like

One thing about ordering from ClockworkPi: they are notorious for having zero communication after you order. Your hardware could arrive in a couple of weeks, or it could arrive in three months (or more).

I ordered a PicoCalc on April 27, and who knows where it is.

4 Likes

Well, that’s interesting - thanks for the heads up. I probably won’t let that put me off - I’ll treat it like a kickstarter or a mystery Christmas present, and be happily surprised if and when it turns up.

I’m all up for a natively-running compiler, and BCPL seems to me like a good fit and with a nice long history.

In passing, and to answer Gordon’s question but with a bit of a diversion from his own project, I see there’s very recently been a new release of BBC Basic for the pico and the picocalc:

New versions published here. All supported hardware configurations, not just PicoCalc.
…
You could also select your preferred video mode in the above initial autoboot file.

For battery, backlight and PSRAM support see the star commands and PicoCalc library.

1 Like

By coincidence, ClockworkPi confirmed shipping of my PicoCalc order this morning.

I too would like to try Gordon’s BCPL. I had Arnor’s BCPL ROM for the Amstrad CPC, and I kept myself amused with it for quite a while.

3 Likes

Indeed - an I think I had a lucky break. They appear to batch manufacture them, so a bit like the old days of the early 80s (Sinclair?) Wait for enough orders to come in to pay for a batch, get them made and ship them out…

Is there an alternative right now though?

Depends on what you’re after. My aim was for a nice RISC-V system at the core and a serial port. I was after 512KB (or more) SRAM and some flash (one MB would be luxury - the 16MB on the Pico2 I’m using is fantastic). PSRAM also a bonus… Keyboard and display? WooHoo!

And I think that right now the PicoCalc is the only thing that fits the bill.

There are some ESP32-c3/c6 and P4 systems that are half way there - RISC-V, serial, some have a display, none have a keyboard.

The Adafruit Fruit Jam is almost there too - no keyboard but it has DVI/HDMI output and USB ports but the issue for me (call me an idiot if you like) is that I really don’t want to use the Pi SDK so while getting HDMI output isn’t that hard, writing USB is. PicoCalc has a handy on-board USB/TTL serial interface, so plug it in and a serial port arrives and so-far I’ve avoided the SDK by writing all the bring-up code in asm with a blob or 2 of C for things like the FAT32 driver with the actual OS, interactive utilities, etc. being in BCPL.

So, for me, it’s the right device for now. In a few months time? Who knows.

-Gordon

1 Like

I’ll put together a ā€œreleaseā€ such as I can. It works on the existing SD card - it’ll just be a matter of un-taring a file to the top level where it will create a /BCPL/… hierarchy. There will also be a .uf2 file to flash the NVM.

Optional may be my ā€œrubyTermā€ program which will need compiling to run under the Linux of your choice. It incorporates an ā€œFTPā€ program to let you get stuff on/off the device without removing the SD card.

It will need a Pico2 with on-board PSRAM. I’m using the Pimoroni Pico2 plus 2W although I’ve no immediate plans to use the WiFi device on it for now. You also need 2 x 18650 cells.

(I can make it work on a Pico2 without PSRAM but it’s unlikely the compiler will run then).

You’ll also need 2 USB cables - USB-C at the PicoCalc end and whatever at your desktop/laptop end.

Oh course then I’ll need to write documentation. Hmph!

Do be careful with assembly - I’ve read of a few issues with the display which appears to be somewhat fragile.

-Gordon

2 Likes

Unlike Sinclair, though, you couldn’t just go the right pub in Dundee near the Timex factory, hand over five quid and get a PicoCalc ā€œoff the back of a lorryā€, as it were.

Alternatives? There’s the Cardputer Zero from M5Stack, but it’s ARM and Linux. The original Cardputer can take a whole bunch of different ESP32 modules, some RISC-V, but its screen is tiny.

It’s a shame about the PSRAM requirement. Pimoroni kit is expensive outside the UK, and I don’t think they still have the Pimoroni North America store via Amazon.

The original Cardputer can’t take a RISC-V module. I asked them explicitly - after I’d already bought a couple of the M5 ESP32-C3 modules… The ESP32-C3 has different pinout to the S3 they are using, sadly.

As for the others - well any old Linux system is any old Linux system and not what I was personally after for this fantasy/parallel universe project. That’s far too easy… (Which is why my ARM32/Piv1 version is also ā€˜bare metal’.

And on screen size - yes. Now in my early 60s with reading glasses that’s sadly something the young zoomers ignore these days along with low contrast web sites… The PicoCalc is 320x320 pixels and I started with an Acorn-like 8x8 font for 40 columns of 40 lines, but quickly changed to an 8x10 pixel font. I don’t miss the lack of those few lines but it does make it easier to read.

The on-board 520KB RAM is very usable, but 200KB is taken up by the screen - I maintain a software copy of the screen and ā€œblitā€ it to the physical display via SPI when needed. The system has some 240KB free there though and is very usable as it is, but the compiler is a bit greedy and wants about 300KB of workspace. What if I recycled screen memory as workspace… Stranger things have happened in the past on some of those old 8-bit systems…

-Gordon

1 Like

I like the look of the Waveshare RP2350-PiZero but don’t have the time to spare doing anything with one right now. I would also prefer to buy from an importer, like The Pi Hut.

If you start looking into implementing USB device support without the SDK, I may be able to provide some hints.

1 Like

I’ve seen that board and I did look at it - Issues from my point of view: HDMI (DVI) Video and USB. Both positive and negatives…

However my initial forays into the RP2350 system was on the Adafruit Fruit Jam board - which is more or less the same and I got my OS running on it but via a serial interface - tackling the video & usb were ā€œto doā€. (There is also an Olimx board too). Waveshare trumps all on cost though!

There are now several libraries to do the HDMI output - biggest issue appears to be the balance of screen RAM to image size - even a modest 320x240 display needs 76KB of RAM but really I’d be after 80 columns so 640x480 for 307KB (if you can wrangle it to 8bpp). Still workable.

Maybe just too many options!

Although one option is to open the whole thing up and see if others are genuinely interested. A down side to that is that the last time I went there it all went horribly wrong for me, personally, and I ended up walking away from that project.

-Gordon

1 Like

Another alternative (kind of) to the picocalc: There’s the Palm Pico design - more a design, or series of designs, than a product you can buy - from Peter Mather, one of the MMBasic people.

1 Like