Atomis Development Blog

A blog about coding, development, and everything in between.

Latest Posts

The Fruit Jam Video

Four Fruit Jam screens: the maze one-liner, pinball, the network clock and STELLAR DRIFT

jdBasic on an Adafruit Fruit Jam, on video: the editor with the Commodore maze one-liner, a network clock with the weather, pinball, Control C, a shooter on a USB pad and a BBS browser, all from the RP2350B over DVI.

Watch it →

jdBasic Has No Ecosystem

A revenue chart drawn by the jdBasic SVG module from a data frame

45 modules written in jdBasic: data frames, charts, web apps, PDF and Excel, exact money, IBAN checks, QR GiroCodes, curve fitting. 32,000 lines, 5357 assertions, green interpreted and compiled, checked against the Python packages they stand in for.

See the modules →

jdBasic on the Fruit Jam

The jdBasic pinball table on the Fruit Jam's DVI output

The jdBasic interpreter on an Adafruit Fruit Jam: a monitor on the DVI socket, a USB keyboard, an editor, a flash store, a network clock, pinball, a shooter and a BBS browser, all on the RP2350B. The same port runs on a PicoCalc and an ESP32-S3.

See the board →

jdBasic Boots on Bare Metal

A paddle game running on jdBasic OS with score and lives in the top row

An operating system written in jdBasic, running with nothing underneath it. Screen driver, keyboard, a full-screen editor, a RAM disk, and a JIT that emits x86-64 into memory and calls it. Then a game you load off the disk, compile to 3006 bytes and play.

See it boot →

I Rewrite the Game While It Is Still Running

Claude Code on the left, the running jdBasic shooter on the right, with a diff on draw_shield_bar

A minute of live-coding a game that never stops running. F6 parks the jdBasic VM mid-frame, Claude reaches into it over MCP, writes 100 into a global and swaps a function body in from disk. Score, wave and every enemy on screen stay exactly where they were.

Watch the VM survive →

Black Forest Games: Scoring a Garden Championship in BASIC

The Black Forest Games dashboard with the live standings table

The points sheet in the garden gets wet every summer, so this year it is 651 lines of jdBasic instead. Live standings straight out of one SQL query, points configurable per game so the finale can still turn everything around, and a certificate PDF written byte by byte without a PDF library.

Record a result →

jdVOID Part II: The Card Factory

The jdVOID card designer with a ship figure on the 40 unit grid

Five days after jdVOID shipped it did not get more content, it got tools. A card designer in the browser, a bench where two cards duel under the real rules, a sweep of one card against all the others, and replays that measure a balance change against matches that were actually played.

Build a card →

jdVOID: A Weekend Arena Duel, Written in BASIC

jdVOID key art: orbital stations trading fire across a galactic arena

My son and I wanted a game to play against each other, so we built one in a weekend. jdVOID is a two-player arena duel written entirely in jdBasic: one rules module shared by server and client, the client running as WebAssembly in a phone browser, and every sprite drawn by array math at startup.

Drop a ship →

A Complete SaaS in 19 Megabytes of RAM

jdeRG is live: a German e-invoicing SaaS (XRechnung/ZUGFeRD viewer, validator and creator with Stripe billing) written entirely in jdBasic. The whole production process runs in about 19 MB of RAM, less than an empty Express hello world.

Read the numbers →

My First Blog Post

The test jdBasic file. Click the title to read more...