Welcome to decuser's blog
Topics on this blog include computing, retro-computing, operating systems, math, and whatever other technical subjects I happen to be exploring that I find interesting enough to take and share notes about.
Posts
-
nezha aiki programming-languages interpreters language-design blockly wails
Nezha: Aiki's Smaller, Tougher Sibling.
Nezha: smaller, tougher, and less patient with baggage.
Nezha is Aiki's smaller, tougher sibling. The name comes from the youthful warrior of Chinese mythology: formidable despite his size, independent-minded, and not especially interested in accepting the way things have always been done.
Aiki gave Nezha its starting point. Nezha is an effort to pare the language down and tackle a harder question: can the essential acts of program evaluation be described by a small, finite declarative vocabulary, rather than buried inside a handwritten evaluator?
-
git pascal lazarus freepascal fuse software-tools
Git Time Machine: Browsing a Repository Through Time.
Git Time Machine: a filesystem with a past.
I have been working on a tool called Git Time Machine (GTM). The idea is simple: instead of thinking of a Git repository as a sequence of commits, treat it as a filesystem that can be visited at different points in time.
Pick a repository, a branch, and a moment. GTM finds the corresponding historical snapshot. From there you can browse files, inspect their histories, compare versions, and extract an older file without disturbing your working tree.
-
unix v6 research-unix basic pdp-11 opensimh votrax
V6 Speaks! in OpenSIMH: Reconstructing the Votrax Speech Synthesizer Endpoint.
Research UNIX V6 speaks again.
After getting the old VT01 graphics path working under OpenSIMH, I went back to another piece of Bell Labs hardware support still present in the sources: the Votrax speech interface.
The path now works end to end:
Research UNIX V6
speak- historical pronunciation rules
/dev/vs- original V6 Votrax driver behavior
- reconstructed Votrax/SC-01A synthesis
- modern audio output
The UNIX side remains historical:
speakemits its native Votrax byte stream, including the original phoneme numbering and inflection bits, while the simulator handles the hardware realization.This is what speaks:
echo 'all your base are belong to us. Research Unix V6 is speaking aloud in 2026' | /bin/speakListen:
Code, historical sources, reconstruction notes, and tested procedures:
https://github.com/decuser/v6vtvs
It is gloriously mechanical, a little difficult to understand, and very recognizably Votrax.
post added 2026-09-16 14:51:00 -0500
-
unix v6 research-unix basic pdp-11 opensimh vt01
V6 BASIC with Graphics! in OpenSIMH: Reconstructing the VT01 Display Path
Today's post is a dive into getting this:

to work on a basic v6 instance running bas, the v6 version of BASIC:

Background
Lately, my interests have revolved around language design. I wrote Aiki, pulled its heart out into Nezha, and in the process realized that I needed a deeper understanding of compilers and compiler design, and of how they came to be.
That led me to ALGOL 60 and the early compilers—or translators, as they were often called. I dug out my copies of the three Dragon Books and settled on the Green one for a deep dive into early techniques. In the process of reading and thinking about language translation, I realized that I should have a language in mind to compile.
Aiki has its appeal, but it is not a good first target. Nezha is small and constrained enough, but no, I thought, I want something more conventional. K&R C? Perhaps. V6 assembly? That has its appeal, that's for sure. I heart V6.
So I logged in to see what other candidates it might offer up and found SNOBOL, and then
bas—V6 BASIC.But BASIC, really? Surely this was just a sad little implementation of BASIC for V6 that didn't even do graphics.
I pulled up the source with little hope, and then saw: wait a minute. It does do graphics?
Nothing in V6 does graphics.
But there it was.
The V6 BASIC source contains
draw,erase, anddisplay, and writes its graphics output to/dev/vt0. The corresponding kernel driver is still present in/usr/sys/dmr/vt.cand identifies itself as:VT01 driver via DR11C to 11/20At that point the compiler investigation became a hardware reconstruction problem.
-
aiki programming-languages systems
Aiki Alpha 3 Released
Aiki Alpha 3 is out.
Tagged
v0.4.0-alpha-36and available from the GitHub release.Alpha 1 made the language real. Alpha 2 made the architecture explicit. Alpha 3 makes the implementation substantially more exact, efficient, constrained, and observable without enlarging the core language.
-
aiki programming-languages systems
Aiki Alpha 2 Released
Aiki Alpha 2 is out.
Tagged
v0.4.0-alpha-35and available from the GitHub release.Alpha 1 made the language real. Alpha 2 made the architecture explicit.
-
aiki programming-languages ai self-hosting
Aiki: Alpha Milestone 26 Update
I have been busy with Aiki lately, and the last couple of days have been especially active. I return to my day job next week. I am a Computer Information Systems professor at Tarleton State University. So, I have been using the remaining summer window to close several related pieces of work.
The current state is tagged
v0.4.0-alpha-26. I do not plan to create a GitHub Release for every such point.mastermoves as development continues; tags mark states worth stopping on.The first public alpha already included most of the language proper: exact rational arithmetic, left-to-right evaluation, first-class functions, recursion and iteration, pipelines, shaped data, modules, recoverable errors, isolated concurrency, graphics, a standard library, semantic profiling, executable documentation, behavioral golds, grammar coverage, and a substantial invariant framework. Most of the work since then has not enlarged that surface very much. It has made the relationships underneath it considerably stricter.
-
aiki programming-languages ai education
Aiki: First Public Alpha
I've put the first public alpha of Aiki on GitHub.
Aiki is a small experimental programming language I've been working on for the past several months. I describe it as both a programming language and a learning field: an environment designed to make computational relationships visible enough to inspect, experiment with, and reason about.
The current release is
v0.4.0-alpha. It includes the interpreter, standard library, documentation, examples, tests, validation machinery, and the project's engineering record. Intel/amd64 release archives are available for Linux, Windows, and macOS. -
unix unix-v6 lions pdp-11 opensimh
Lions Laboratory: A Sixth Edition UNIX Laboratory for OpenSIMH
As a follow-up to my note on setting up a Sixth Edition UNIX laboratory in OpenSIMH, I have now put the complete laboratory repository on GitHub:
The repository contains the V6 distribution materials, OpenSIMH configurations, PDP-11/40 and peripheral documentation, known-good system checkpoints, and the working notes I have accumulated while reading Lions and experimenting with the system.
-
unix research-unix v6 dec
Getting DOS-11 V004A Running on a PDP-11/40
Getting DOS-11 V004A Running on a PDP-11/40
I did not set out to install DOS-11.
I have been working with Sixth Edition UNIX on a simulated PDP-11/40, partly to understand the system itself and partly to get closer to the environment described by Lions. That inevitably led downward. Reading the V6 source means reading PDP-11 assembly, and reading PDP-11 assembly means spending some time with the tools and conventions that existed around the machine before and alongside UNIX.
That led me to PAL-11R, DEC's relocatable assembler for the PDP-11, and from there to DOS-11.