Unveiling the EndBOX – A microcomputer prototype for EndBASIC

32 jmmv 24 6/11/2025, 11:49:42 PM endbasic.dev ↗

Comments (24)

abraxas · 1d ago
Is it similar to the Maximite series of hardware and their Basic clones? I think a fast Basic on its dedicated hardware is quite a phenomenal way to teach kids and novices programming. I wish one of these setups would penetrate into the school systems and become a standard teaching platform in a way that the BBC Micro turned out in the UK.
jmmv · 1d ago
Huh, I didn't know about Maximite, and reading their intro to the Colour Maximite 2 at https://geoffg.net/maximite.html... well, I feel like I read their minds years later and I'm trying to recreate the same thing.

One difference I can sense is in the interpreter. In the case of the EndBOX, I'm creating a computer to run EndBASIC on, but EndBASIC has already existed for 5 years and is multiplatform: you can write a program and have it run in your browser via WASM, in the desktop version of the interpreter, or now in this new small form factor format. In the case of Micromite, it sounds like MMBasic is specifically designed for this machine.

Which brings me to something I have been thinking about recently: I think BASIC is the least interesting aspect to the EndBOX and the thing that might hurt the concept the most (because BASIC is old, limited, legacy, who cares about it, blah blah blah). I'm starting to think that the more interesting parts of this project are what I have built to take a Rust app that uses some APIs to talk to a "generic graphical console" or to "the hardware", and have that exact same app run on the web, on the desktop, and now natively on a small computer. And for the later case, I think the pipeline I developed to take the app and generate a full SD card disk image with a trivial command to run it in a standalone manner is interesting too. Stay tuned for a follow up blog post as I elaborate on these ideas...

abraxas · 14h ago
One difference that may be very important to a lot of people is that unfortunately the MMBasic is not open source. Is yours closed or open source?
jmmv · 13h ago
EndBASIC (the desktop version) is open source and I plan to keep it that way. I wouldn't want you to be "locked out" of any code you write in EndBASIC.

However, I'm not planning on open-sourcing what goes into packaging it for the EndBOX (the bindings for NetBSD and the release building scripts) because that's very specific to this project and I see no benefit in publishing them.

lproven · 11h ago
> Is it similar to the Maximite series of hardware and their Basic clones?

The Maximite series had cousins, but it also evolved into the Picomite:

https://geoffg.net/picomite.html

Some of the cousins:

The BASIC*Engine:

https://basicengine.org/esp8266.html

As discussed here:

https://news.ycombinator.com/item?id=17674944

Followed later by the BASIC Engine Next Gen:

https://basicengine.org/nextgen.html

And more recently BASIC Engine RX:

https://basicengine.org/#_what_is_the_basic_engine_rx

Unrelated...

The Agon Light:

https://www.thebyteattic.com/p/agon.html

(Which I just noticed quotes me! :-) )

And Agon Light 2:

https://www.olimex.com/Products/Retro-Computers/AgonLight2/o...

And its 6502 equivalent, the Neo6502:

https://www.olimex.com/Products/Retro-Computers/Neo6502/open...

DrNosferatu · 6h ago
Also PicoMite as a simpler alternative, in this space, for the Raspberry Pico:

https://geoffg.net/picomite.html

zokier · 12h ago
> Remember when turning a computer on meant instantly jumping into code?

In this context the 10ish second boot time seen in the video is unfortunate. I guess lot of that can be blamed on RPi, although I suppose netbsd might not be super optimized for boot times either.

Admittedly this is just a pet peeve of mine. And 10s is not the worst boot time out there.

Mr_Minderbinder · 8m ago
> And 10s is not the worst boot time out there.

A Librebooted ThinkPad takes 10-15 seconds to reach a login prompt which I think is perfectly satisfactory considering that prior computers with roughly equivalent computing power (say a Cray machine) would have taken considerably longer to get fully up and running from deadstart. Think of all the tape drives, the cooling system, the frontend mini etc. that would have to spin-up, start up or initialise.

Therefore statements like “Remember when turning a computer on meant instantly jumping into code?” are confusing since I would guess that the vast majority of computer systems throughout history did not satisfy this requirement.

jmmv · 6h ago
There are a few factors to the slow boot:

* The SD card I'm using in there is not the fastest. Easy fix.

* The kernel has some annoying pauses, particularly in WiFi initialization, that add a couple of seconds of delay. To fix this, I wanted to do driver loading via modules once the shell is already up and running, but unfortunately NetBSD hasn't modularized those drivers yet and it didn't seem trivial to do. Should be possible though.

* The rc startup framework is sluggish. I've been pondering a rewrite in native code to avoid huge shell scripts and to allow for parallel execution of early boot services, and that should help -- but it isn't done. (Ideally I'd just replace init with my own thingy.)

* The file system is not read only, so there is an initial fsck that adds a bit of a delay. I want to get to a point where it _is_ read only, which would eliminate this pause.

All in all, agree that 10 seconds is very far from "instant boot", but there is a lot of room for improvement.

nopakos · 17h ago
Nice! Everything, the colors, the font, the Ready prompt remind me of the Amstrad CPC I grew up with!
elpocko · 17h ago
That's because it looks exactly like the CPC. Just a happy accident.
jmmv · 16h ago
There is no accident here.
elpocko · 10h ago
Obviously. It was meant to be tongue-in-cheek. ;)
dshacker · 22h ago
How did you program the WIFI driver? How do you even start creating a WIFI driver from BASIC? (Is it in basic?)
jmmv · 16h ago
It’s all NetBSD underneath. The WiFi was only difficult because of missing DTBs for the Pi Zero 2.

There is a config file that you can edit within BASIC to set the WiFi up though.

_sbrk · 20h ago
_sbrk · 20h ago
Far simpler, cheaper, and closer to the "understandable by one mind" machine. Add Bywater BASIC, if desired.
90s_dev · 22h ago
Cool. But why not a GUI dev environment like pick 9?
joshu · 21h ago
what is pick 9?

PS what happened to your project? i liked where you were going with it.

90s_dev · 12h ago
I meant pico 8 and was on my phone which autocorrected wrong twice.

Re PS: nobody really knew what was interesting or useful about it, and by the end of that day, neither did I, and my dream was lost, and I still can't find it.

joshu · 1h ago
i thought it was interesting. sometimes you have a part of an idea and you don't know where you really wanted to go until you started.

fwiw i think a lot about older computers being much more simplistic and easier to understand than modern machines (you could understand how an apple ii worked, end to end, but a modern PC?) and wonder how to bring that into the modern era...

90s_dev · 15h ago
I mean Poco 8
lproven · 12h ago
I don't think you do.

I guess you mean Pico-8.

https://www.lexaloffle.com/pico-8.php

90s_dev · 12h ago
See my other reply to him.