# Prof Knuth's MIX computer - Card Reader and illegal characters

I'm reading through Knuth's "The Art of Computer Programming" volume 1 (3rd edition), with the goal of understanding the complete workings of his hypothetical MIX computer in order to implement MIX in software. Needless to say this is a long term project! (I'm not in college or anything, just an amateur CS enthusiast doing this for fun, I have no Professors to ask!)

In Section 1.3.1 (onwards) of "The Art of Computer Programming" Prof Knuth describes in detail his MIX computer and its IO devices such as Tape, Drum and Card Readers. The main Text does not describe the "bootstrapping" process for this machine, but Exercice 26 does.

There is one particularly onerous limitation of the Card Reader described in Exercise 26 -- that is certain characters are not allowed to be written to or read from Cards.

To me this is an important point because if this "illegal characters" limitation does apply to the MIX proper, then I cannot see any easy way to write a MIX program by hand without constantly stumbling over illegal characters. The CMPx operators are explicitly forbidden by Ex 26 for instance.

If I was to attempt to implement MIX myself in software I would find it very convenient to ignore this "illegal characters" limit and just indiscriminately accept all characters without error. Although in my mind this gives me some doubt as to whether my implementation would be "compliant" with Prof Knuth's MIX spec. Accepting "illegal" characters would also make creating a MIXAL assembler a lot easier.

Questions:

1. Am I to understand that concepts discussed in the Exercises are not formally part of the MIX specification?

2. It seems arbitrary to add such a tricky obstacle, is this rather severe limitation only supposed to be true within the scope of Exercise 26 or should it be understood that it applies to the formal specification of the MIX computer throughout the entire TAOCP book set?

• Note that Knuth intends to replace MIX with MMIX (as he does in Vol 4A) and has written books about it; in fact someone else has already done the work of rewriting all the MIX programs in Vols 1-3 in MMIX. There are also MMIX implementations available. At this point MIX is a dead end, except for curiosity about 1960s machine language style. – ShreevatsaR Dec 3 '19 at 22:29

For example, the MIX character set of $$56$$ characters supports only upper case text, but also includes three Greek characters ($$\Delta$$, $$\Sigma$$, $$\Pi$$) and an arbitrary selection of punctuation characters (no '%', '?', '!' or '^'; '/' but no '\').