TL;DR
A programmer has built a BASIC interpreter that can boot natively on UEFI systems. This development allows running classic BASIC programs directly on modern hardware, bridging old and new computing environments. The project is shared on Show HN and is still in early stages.
A developer has introduced Thoreau BASIC, a BASIC interpreter that can boot directly on UEFI-based systems. This project aims to recreate a classic programming environment on modern hardware, making it possible to run old-school BASIC programs without relying on emulators or legacy OSes. The developer shared the project on Show HN, highlighting its potential for enthusiasts and developers interested in low-level programming and vintage computing.
The project involves a custom-built BASIC interpreter that is capable of initializing during the UEFI boot process. Unlike traditional interpreters that run within an operating system, this implementation is designed to load directly from the UEFI firmware, bypassing the need for an OS. The developer, who has not disclosed their full identity, states that the goal was to create a minimal, self-contained environment reminiscent of early personal computers, with features like line numbers, immediate mode, simple graphics, strings, and arrays. The implementation is still in early development, but the core functionality has been demonstrated on several UEFI-compatible machines, including modern desktops and laptops.The project’s code and documentation are publicly available, and the developer encourages others to experiment with booting BASIC directly on their hardware. The approach involves a custom UEFI application that loads the interpreter into memory during startup, then hands control over to the BASIC environment. This method differs from traditional emulation or virtualization, offering a more authentic experience of running BASIC natively on contemporary hardware.
Potential Impact on Vintage Computing and Education
This development matters because it bridges the gap between retro programming environments and modern hardware, enabling enthusiasts to run and experiment with classic BASIC programs without legacy systems. It offers a new way for educators and hobbyists to explore early computing concepts directly on current machines, fostering a deeper understanding of low-level system programming. Additionally, it demonstrates the feasibility of running high-level languages directly from firmware, which could inspire further projects in embedded systems and custom firmware development.
As an affiliate, we earn on qualifying purchases.
Background of UEFI Booting and Vintage Programming Languages
UEFI (Unified Extensible Firmware Interface) has become the standard firmware interface for modern PCs, replacing the traditional BIOS. UEFI provides a flexible environment for booting operating systems and executing applications before the OS loads. Historically, BASIC was a popular programming language in the 1980s, often used in early personal computers like the Commodore 64 and IBM PC. Running BASIC natively on modern hardware has been challenging due to the lack of compatible firmware or hardware support, often requiring emulators or virtual machines.
The developer’s project aims to bring back the simplicity and immediacy of early BASIC environments, but directly on contemporary systems via UEFI. This approach is relatively novel, as most low-level bootloaders or firmware-based programs are written in assembly or C, not high-level languages like BASIC. The effort builds on recent interest in custom firmware and lightweight operating environments, combining nostalgia with modern system programming techniques.
“My goal was to create a simple, self-contained BASIC interpreter that can load directly during UEFI startup, giving users a vintage programming environment on modern hardware.”
— Developer
As an affiliate, we earn on qualifying purchases.
Technical Challenges and Compatibility Concerns
It is not yet clear how broadly compatible the interpreter will be across different hardware configurations, especially with newer or less common UEFI implementations. The developer has tested on several systems but has not disclosed extensive compatibility details. Additionally, performance and stability in more demanding scenarios remain untested, and some features like graphics and input handling are still in development. The security implications of booting custom code at firmware level are also not fully addressed, raising questions about potential risks.
As an affiliate, we earn on qualifying purchases.
Upcoming Development Milestones and Community Involvement
The developer plans to refine the interpreter’s stability, expand hardware compatibility, and add features such as improved graphics and input support. They also intend to create detailed documentation and encourage community contributions to extend the project’s capabilities. Future updates may include porting additional vintage languages or tools, making this a versatile platform for retro computing enthusiasts. The project is open-source, and interested users are invited to test, provide feedback, and contribute to ongoing development.
As an affiliate, we earn on qualifying purchases.
Key Questions
Can I run my existing BASIC programs on this interpreter?
Yes, the interpreter aims to support BASIC programs with line numbers, strings, arrays, and simple graphics, but compatibility with all vintage programs is still being tested. Some programs may require minor adjustments.
Is this safe to run on my machine?
The project is in early development, and running custom UEFI applications always carries some risk. Users should ensure they trust the source and understand that it may not be as stable or secure as commercial firmware.
Will this work on all UEFI systems?
Compatibility has been demonstrated on several modern systems, but full support across all hardware configurations is not yet confirmed. The developer is actively working to improve hardware support.
How can I contribute or learn more about this project?
The code and documentation are publicly available, and interested users can participate by testing, providing feedback, or contributing code via the project repository linked in the original post.
Source: hn