I don't think I'd place that kind of faith in the LLM summary without
having a good read first.
I don't see the second and third points in there at all. There's a
tokenizer and a command loop, but the only uses of ">" and "<"
that leap
out to me are (I think) decoding arithmetic opcodes into user output,
presumably for something like disassembly. If redirection using those
characters, to-and-from files, is in there, I'm not seeing it. If I'm
wrong about the redirection, someone please point me to which piece it is
that's doing it.
As far as I can tell, the code itself offers no hint of "shell scripting"
although one could imagine a tutorial that showed you how to use
whatever-it-is that this is interpreting. That's not this, though.
At least the summarizing LLM didn't read all the instances of `jmp goon`
and, having been trained on the modern Internet, draw the obvious
conclusion. (Pretty sure that's "go on" rather than, you know...)
It's clearly some kind of interpreter loop. From all the octal conversion
and numeric comparison handling (e.g. bottom of p.163, top of p. 164) my
guess would be something more like DDT: interactive debugger/memory
examiner/disassembler kinda thing. There's also a lot of concern about
recognizing what stack frame context you're in, implying the probability of
nested function calls of some kind.
Maybe this is what "the shell" looked like before Bourne shell came along.
I guess if you consider DDT "the shell" for an ITS system--which is a fair
characterization--then this could easily be "the shell" for a very early
Unix.
Adam
On Sun, May 25, 2025 at 12:06 AM Henry Bent <henry.r.bent(a)gmail.com> wrote:
That took me about 30 seconds with Google. Are we
doing your homework for
you?