Bare Metal Raspberry Pi BASIC
In this technical retrospective (2014), @_acme shares practical architectural lessons learned from running, scaling, or migrating production software under lean constraints.
Core Principles for Independent Builders:
Defaulting to simpler architectures (such as monolithic frameworks, SQLite, or managed VPS) prevents early engineering bankruptcy.
Evaluating true compute and egress costs reveals that high cloud bills can often be slashed by 80%+ through judicious re-platforming.
Code you write at 2 AM as a solo engineer must be easy to debug six months later without complex microservice dependencies.
Community Debate Themes:
HN engineers debated the tradeoffs between cloud convenience and raw server economics, database indexing strategies, and resisting premature architectural complexity.
CATEGORY Frugal Engineering →
HISTORICAL ERA Cloud & Mobile Era (2014–2019)
COMMUNITY SCORE 69 points
TOTAL DISCUSSIONS 12 comments
This sort of already exists in the form of RISC OS Pico: https://www.riscosopen.org/content/sales/risc-os-pico ↗
(You don't have to buy it, just download the zip.)
A bare-bones version of RISC OS with the GUI desktop stripped out, leaving only the command line ("supervisor") prompt, and ARM BASIC V, which is arguably still the most featureful version of BASIC: https://en.wikipedia.org/wiki/BBC_BASIC#Acorn_Archimedes_.28RISC_OS.29 ↗
A unique feature of ARM BASIC is the presence of an inline assembler allowing users to write ARM assembly language programs. The assembler is fully integrated into the BASIC interpreter and shares variables with it, which can be included between the [ and ] characters, saved via ★SAVE and ★LOAD, and called via the CALL or USR commands. This allows developers to write not just assembly language code, but also BASIC code to emit assembly language, making it possible to use code-generation techniques and even write simple compilers in BASIC.
Fantastic! I've been meaning to do this myself, but glad to see that it exists.
I believe that this kind of single-purpose OS can be even easily created using an unikernel such as mirage, but that removes part of the fun of course.
Oh man, this reminds me of my Mattel Aquarius days! Numbering every line, leaving gaps in between line numbers incase I wanted to add something in between. So much work. Now I just need a terrible rubber keyboard and I'll be set!
Too bad the SoC in the RPi is far more undocumented than the C64, and even experimentation is unlikely to yield much. PEEK/POKE were probably the most fun commands for doing interesting things from BASIC.
Awesome! How do you boot up the processor, do you still have to use the GPU firmware blob to get the processor to do anything?
edit: Looking at the source, yeah you have to use Broadcom's firmware.