vt01
-
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.