I started writing Thoreau BASIC because I wanted a small, old-fashioned BASIC interpreter: line numbers, immediate mode, simple graphics, strings, arrays, the sort of environment where the computer starts with a "Ready" prompt and you can immediately make it do something.
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.
glimshe 2 hours ago [-]
This is a great project. How do you handle saving/loading data? You mentioned file operations but you need some sort of file system - perhaps FAT32 - to support that. I'd need that to consider using it on UEFI.
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!
dlcarrier 3 hours ago [-]
I learned to program on the Commodore 64 and in QBASIC in th 90's. I'll give it a try.
Considering how much it supports, if it could chainload a full operating system, it would make a great replacement for GRUB or rEFIt.
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
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.
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!
Considering how much it supports, if it could chainload a full operating system, it would make a great replacement for GRUB or rEFIt.