Art without engineering is dreaming;
Engineering without art is calculating.

Steven K. Roberts, N4RVE

Lament for the Semi-Sentient – InfoWorld

This little humorous bit of geek philosophizing fell out of my hours of staring at the front panel of my homebrew 8008 system – a central fixture in my life from 1974 onward, evolving, of course, as ever more robust machinery became available. I first published it in the April-June 1978 issue of the delightful General Bull News Sheet, which billed itself as “a quarterly compendium of computer satire, irrelevant nonsense, and outright lies.” Later, it ran in the June 1979 issue of Mensa Bulletin, and then here in InfoWorld.

The artwork above was custom-drawn for the story by my old friend David Caudill in Louisville, circa 1977.

InfoWorld Nov 10, 1980 cover

Lament for the Semi-Sentient

By Steven K. Roberts
InfoWorld – November 10, 1980

Poor BEHEMOTH. (Badly Engineered Heap of Electrical, Mechanical, Optical, and Thermal Hardware.)

Lament for the Semi-Sentient, page 1

BEHEMOTH is a homemade patchwork computer monopolizing the basement of my three-bedroom ranch in suburbia. It’s composed of an assortment of CPUs, off-the-wall mutual bus structures, and some shared peripherals. It has grown over the years into one of those architectural monstrosities analogous to the home of a rich eccentric: a British Colonial sitting room with vaulted ceiling, serving as the entrance foyer to a French provincial visitors’ wing hung with San Francisco Art Nouveau, Cezanne, and Dali.

An 8085 arbitrates bus arguments between an ancient 8008, a random-logic hard disk controller, and a high-resolution graphics system. Hardware LIFO makes an eight-byte piece of the 8086’s memory look like a window into another dimension. An 8K chunk of Z-80 address space slides quietly through the LSI-ll’s address space, moving in gentle increments of IK, while a quarter-megabyte of surplus core supports LISP supervisor, which, in concert with revision 855.17 of the operating system, somehow keeps it all together. The software’s at home in the confusion: it evolved the same way.

It has become rather eerie in my basement. My relentless obsession with artificial intelligence and a latent “more is better” design philosophy have conspired to turn the system into a hierarchical multiprocessor—a very crude but somewhat passable imitation of the human brain.

Lament for the Semi-Sentient, page 2

BEHEMOTH is bored

He spends most of his time in a loop: “Did anyone hit a key yet? No? Well, then, did anyone hit a key yet? No? I see. Well, then, did anyone hit a key yet? No? Really? Well, then….”

How would you like to do that eighty-odd thousand times a second, for seeming eternity?

Can’t you almost see that handful of memory locations smoldering? Can’t you just imagine all those others lying there in atrophy? And can’t you almost hear the processors yawning?

I guess I need to do something about it.

After all, don’t we have a responsibility to these quasi-sentient chunks of hardware that seem slowly to be evolving from the “rich protein stew” of our collective technological consciousness?

While I sit here editing and drinking a beer, keeping one processor busy .003% of the time, BEHEMOTH is over there frantically questioning the status bits, trying with unflagging urgency to determine the condition of the peripherals that can mean only one thing: action!

It makes me feel kind of guilty. Even when I’m asleep, he’s still at it! I lie awake at night sometimes and wince at the hell he’s going through.

When he was young, and but a single wire-wrapped 8008, I used to give him random numbers to do at night. It was a machine language simulation of a 31-bit shift register with the exclusive-OR feedback of bits 28 and 31. Eight iterations and presto! Another random byte. To make it look better, I put it into FAST STEP.

Can’t do that anymore. Oh yes, I could do the random numbers all right, but FAST STEP is a thing of the past. Some of the CPUs would not understand a processor slaved in the WAIT state by a free-running 555 timer. I see you caught the confusion of motives: it’s no fun unless the lights are blinking. Yes—I’m a front panel freak. Guilty as charged.

But you see my dilemma? What can I give BEHEMOTH to do that is challenging and interesting? What is the software equivalent of therapeutic knitting?

A friend suggested meditation. I can see it now! I’m trying to solve one of those boring analog circuit design problems:

+> RUN FILTER-DESIGN
The Answer lies not in calculation!
+>DIR
All files have been merged into Truth.
+> REBOOT
I am absolute. I am not bound by an operating system.

Lament for the Semi-Sentient, page 3

The prospect makes me shudder—I need BEHEMOTH in my work. One of us has got to stay straight.

I know what you’re thinking: “Why don’t you just HALT the system and be done with it?”

C’mon now. HALT? It’s unethical! Besides, the “logical inertia” of all that processing horsepower speeding through the dimension of time is not to be idly tinkered with. A guy could get hurt like that.

No, I’ve got to come up with something reasonable for BEHEMOTH to do while waiting for the interrupt to arrive. How about n-dimensional GO?

Anybody wanna write the program? Now we get to the real crux of the problem! Anything that would challenge the computer is too hard to write. Anything that would challenge the computer…do you smell an impasse?

See, BEHEMOTH is not challenged by a trivial problem, but on that scale, a non-trivial problem is beyond human programming ability. If he can be taught to develop his own challenges, then I’m off the hook—but he is not intelligent enough to do that until he has already done it. I have to provide the spark!

That’s a tall order. Then how about this:

Somebody once said, “The computer is incredibly fast, accurate, and stupid. The human brain is incredibly slow, inaccurate, and brilliant. The marriage of the two is a power beyond calculation.”

Yeah, maybe that’s it. “Say, doctor, I’d like this DB-25S connector installed in my occiput, with these here platinum wires arrayed across my cortex….”

Then:

+> HEY, HOW ABOUT RUNNING THAT ACTIVE FILTER DESIGN PROGRAM, OK?
Who was that lady you added to memory last night?
+ > IT’S NONE OF YOUR BUSINESS, MACHINE! DO I HAVE TO CONCEAL ALL MY GOOD EXPERIENCES?
It’s up to you man. Why do you want to design a filter?

Maybe that’s not it. I’m not sure I want BEHEMOTH sniffing around in my head. He has a quick mind for apparent inconsistencies: he wouldn’t understand human awareness.

Oh well, I guess I’ll just make the interrupt-wait loop continuously relocatable and let it wander around in memory as it executes. It’s no less boring, but at least it will keep the hardware exercised.

But maybe if I hang another processor on there somewhere….