What runs today
d/BASIC is in alpha. This page is the honesty ledger: every row names a receipt, and rows move only when a receipt moves. Last re-measured 2026-09-03.
Measured in this browser
| Receipt |
Value |
How it was taken |
| Classic listings that compile unmodified |
88 / 96 |
every listing in /listings/ compiled by the shipped dbasic_compiler.wasm |
| Classic listings that need no keyboard at all |
4 |
three that halt, plus Poetry, which never terminates by design |
| Classic listings that run to completion with no input |
3 |
Bunny, Calendar, 3-D Plot |
| Classic listings that are interactive |
84 |
they park on INPUT and continue when you answer in the console; the Classic Listings page says which play to their natural end with the conformance suite's reviewed answer scripts |
| Classic listings refused by name |
8 |
each with line and rule id on the Classic Listings page |
| Semantic Intent routes mapped by the browser runtime |
121 |
the shared runner's manifest, checked against the module on every load |
| Source libraries baked into the browser compiler |
5 |
dworks.widgets, dworks.data, dworks.drag, dworks.interchange, gx |
| Instructions per bounded slice |
5,000 |
SLICE_INSTRUCTIONS in the shared wasm runner; the worker yields between slices so a program cannot freeze the page |
Built, with receipts
| Piece |
State |
| Front end: QuickBASIC lexer and grammar, lowering, diagnostics with rule ids |
built; 89 of 96 corpus listings compile |
| Optimizer: constant interning, batched float trees, whole-array instructions, exact library binding |
built |
.dbc container with append-only version rows and a version-movement gate |
built; spec 0.2, container vocabulary 1.10 |
Host runtime (dos-dbc-runtime) and the dbasic CLI: build, run, exec, trace |
built on macOS |
A second, independent floor runtime (dos-dbc-mos) whose traces are byte-compared with the host's on every build |
built on the host: 219 of 224 committed cases byte-identical, zero divergences (the other five stop at a declared slice bound, an input boundary, or an unbound import); compiles for the mos-atari8-dos target, but the image does not fit a 6502 address space (see below) |
| Executing conformance suite: 129 named cases plus the 96 listings, every case run to a terminal outcome and counted |
built; no "compile" verdicts, no skip class |
Browser playground: real compiler and runtime in WebAssembly, interactive console INPUT, WebGL2 320×192 surface, keyboard and pointer, widgets, the GX game-model library, DATA, pasteboard and drag |
built; this site |
Record 1.1 (TYPE) |
admitted on both runtimes |
Object 1.3 (CLASS) |
developer preview; production admission open |
MATH family (SQR, RND, LOG, EXP, trig, ^, DOUBLE) |
built on the host lowering; RND is Microsoft's own sequence |
Designed, not yet on silicon
| Piece |
Honest state |
| The 6502 runtime on a real Atari, C64 or Apple II |
specified; the floor interpreter is built and its 6502 image is measured and refused by size, 183,662 bytes of code against a 65,008-byte address space, and classic SINGLE arithmetic has no float pack on the floor yet. The next rung is a hand-written 6502 interpreter with the cartridge as math coprocessor. Nothing has run on a 6502 |
| The cartridge as math and graphics coprocessor |
ruled; unbuilt |
d/OS product integration: catalog, dock launch, .dpk packages, SHA-256 verified launch |
designed and specified; not a shipping route yet |
Console INPUT on the 6502 floor runtime |
the host and browser runtimes park on a question and resume; the floor runtime still answers only from a script |
| FILE in the browser |
the eight FILE rows are registered and mapped by the runner; this playground mounts no file provider, so they refuse by name |
| Networking, audio and named-media Intents |
described in the guide; not in the current registry |
| Windows and Linux |
macOS is the only host build measured so far; Windows and Linux builds and native window kits are next |
General identifier crunching (FORI as FOR I) |
never: an authored name is one token. The number-keyword join (1TO3) is admitted; it is what let Super Star Trek run unchanged |
| Packaged developer kit download |
not published; the playground is the official way to use d/BASIC today |
How to read a refusal
A refusal is not a crash. It names the class, the rule, and the line, and it is the same vocabulary at compile time, at load, and at run time. When a listing on this site stops, the reason is on the page. When a capability above is missing, the program is told so by name. That is the rule the whole project is built on: publish what runs.