example.com/path/to/article
000 points · username · 0 hours ago
example.com156 points · 44 comments · 2 months ago · Gorsefound
Then I wondered: why should it need an operating system?
So I made it boot directly on x64 machines using UEFI.
The UEFI version uses the Graphics Output Protocol for its framebuffer and gets its keyboard input directly from the firmware. There is no Windows or Linux underneath it. The machine boots into BASIC.
It supports the usual BASIC machinery plus graphics primitives, 32-bit colour, floating point, file operations and other features I've been adding as I encounter programs that need them. There is now also a Windows version, which makes it considerably easier to try.
One of my goals is compatibility with the style and behaviour of old Microsoft BASICs rather than creating a modern language that merely happens to use BASIC syntax.
I'm currently porting my text adventure Pixel Prose to Thoreau BASIC. That's becoming a much better test suite than artificial tests because every missing feature or subtly wrong behaviour eventually gets exposed by an actual program.
The project is deliberately small. The UEFI version greets you with:
"I make myself rich by making my wants few." — Henry David Thoreau
followed, somewhat ironically on a modern PC, by something like:
27,340,685,312 bytes free
I'd be interested in hearing from people who wrote BASIC in the 80s/90s, interpreter/compiler people, and anyone sufficiently strange to still find a Ready prompt inviting.
JoeAltmaier
glimshe
One thing you could use for more test cases is the book 101 BASIC Computers Games by David Ahl. Games always encouraged people to use computers and that's as classic as it gets!
roryirvine
I learned to program on 8 bit micros, and created a rough boot-to-BASIC experiment ~15 years ago following the JeOS pattern. So this project sounds really exciting, but I'd be more interested if I weren't restricted to being a passive end user.
dlcarrier
Considering how much it supports, if it could chainload a full operating system, it would make a great replacement for GRUB or rEFIt.
jonjacky
Can you assume that pretty much any computer these days provides UEFI firmware that supports ThoreauBASIC, or might some computers provide only a cut-down UEFI that doesn't provide all the functions you need?
Is there some way to investigate the UEFI implementation on any computer? Can you get to the UEFI shell on any computer somehow or is the UEFI shell a separate application you have to download from somewhere and install?
I realize these questions are getting far afield from what you wanted to tell us about, but UEFI is still kind of a mystery despite being installed almost everywhere -- it's hard to find explanations about it.
polaris64
Rygian
I was 8 or 9 years old when the ZX Spectrum +2 arrived home.
I'm seriously considering installing this on an old laptop and giving it to my son when he's 8 years old, together with a hard-copy of a BASIC reference and a few simple programs and games to type in.
Getting a FAT32 filesystem on day 1 is already a huge jump from my childhood experience (loading from tape).
trashb
ale42
jonjacky
I am investigating whether it would be feasible to do something similar for Python.
sras-me
But it is not bare metal yet and it is not BASIC.
saidnooneever
looks like a lot of fun to explore and learn from thank you
scotty79
dragonfax
[deleted]
timonoko
BASIC requires more support than you'd expect. Here's an interpreter, with a similarly long list of features it has to support:
https://www.moondew.com/basic/index.htm