First rule of manuals: put the most important things first, not last. The Tektronix 4050 was an amazingly powerful graphical computer+terminal in the days when computer graphics were a couple of squares on a TV screen.

Here’s a list of things that Tektronix thought was more important than demonstrating their amazing graphics: converting a sentence to pig-latin, converting a number to roman numerals, three pages of math describing how to tell if a matrix is “ill-conditioned” or not, and how to merge multiple programs into one.

Want to see the cool graphics they made? read on! but just like the original manual, you have to first read a bunch of other stuff, first!

There are three main “lines” of BASIC from the 1970’s and 1980’s with strikingly different approaches to what they add to BASIC. Many people are familiar with the home computer BASIC like the Sinclair ZX80 (my own first computer), Ataris and more. There are “mainframe” computers for serious purposes. And there’s a third line: companies that make computer terminals that are also programmable.

Link to the manual on Bitsavers:

I’ve just been transcribing programs from the Tektronix 4050. Here are the funny things about it.

Firstly, the manual is just chock full of programs. Some companies are happy with the most minimal sample without even any output (I often ignore these when I’m transcribing!). But Tektronix — wow! I’ve now got programs in BC BASIC for quadratic equations, conversions, invested value of a dollar, cryptography programs for letter-frequency analysis, pig latin (!) and more.

Secondly, Tektronix BASIC has some pretty nifty features (and some horrifying ones). A nifty feature is the MIN operator: 100 A = X1 MIN X2 MIN Y1 MIN Y2 will set A to the minimum value of any of X1, X2, Y1 and Y2. Luckily I had already upgraded the BC BASIC Math.Min function to take any number of parameters, and the line could be translated to LET A = Math.Min (X1, X2, Y1, Y2).

A horrifying feature is the “not really a function” nature of some of the string “functions”. In these, what looks like an assignment statement (page 5-11) 120 Z$=REP(A$, 4, 0) is actually more. Let’s say that A$=”DEF” — what is the final value of Z$? Answer: unclear, because REP starts by looking the the left side of the assignment, and using that as the starting value! So if Z$ starts as “ABCghi”, the REP will take the Z$ and replace the string starting at index #4, the “g” character. But only zero values are replaced; the A$ is just kind of shoehorned in, and the final result is ABCDEFghi.

The Tektronix BASIC, like other technical BASICs, has a bunch of Matrix operations (which I didn’t duplicate in BC BASIC).

And lastly, and weirdly, the Tektronix 4050 was a super-advanced graphical system. But none of the programs even hint at the graphical power until section 8, on page 259 of 339 in my PDF file. Here’s the awesome graphics reveal:

“Underwhelming” is the word of the day.

Finally, on page 313 there’s a nifty graphic:

The very next page is the reference section; they made a single “neat” graphic, and called it a day.