The Complete Machine Code Tutor
Knighted Computers
707 Highland Avenue
Fulton, NY 12069
T/S 2068; $18.50
Upon opening the black case containing the two cassettes, I recalled a painting that decorates Walker Hall at M.I.T. The painting depicts the Serpent tempting Adam and Eve with the fruit of the Tree of Knowledge. It’s Latin inscription says, “you shall be even as the gods, knowing good and evil.”
This “apple” from Knighted Computers tempts with insights into and an understanding of the language of machine code programmers, who, as we all know, speak directly to the great god, Z80. In this brief article, I’ll tell you first how MCT operates and then how well it performs its intended purpose.
MCT teaches the “instructions” used to communicate with the Z80 microprocessor in the same way a BASIC tutorial teaches the “commands” used in that language. Three techniques are used. The actions performed by the instructions are explained in text. Examples of the instructions in use are shown by means of a “simulator”. The student is allowed to practice using instructions by modifying the examples.
The simulator is loaded first. Experienced pupils can begin practicing using instructions already learned. Alternately one of the sets of lessons can be loaded into the simulator. The lessons are divided into four groups:
01-09 Introduction to Registers and
Memory; Loading, Comparing,
Incrementing, Decrementing
10-17 Decision Making: Jumps, Calls,
and Stack Operations; Binary,
Decimal, and Hexadecimal
Notation
18-25 Bit Manipulations: Shifting
and Rotating; Flags: Sign
and Parity
26-35 Specialized Registers: Index
and Alternates; Input/Output
and Block Instructions;
Interrupts
In each set you advance through a menu/ list by pressing the SPACE bar. The ENTER key choses a “lesson” on a particular instruction or a corresponding “example” demonstrating the use of that particular instruction. During the lesson or example, a BREAK will return you to the menu/list.
The demonstrations run by means of the simulator. A single keystroke by the user runs the demonstration or moves it ahead one step. With each step the current status of every register, memory location, and flag is shown. The user is challenged to understand and eventually learn to predict what will happen.

Once the lesson is sufficiently understood in concept and in practice, you may elect to “edit” the demonstration routine. A user friendly editor makes it easy to experiment by altering either the numerical values used or the instructions themselves.
Internal error messages alert you to invalid instructions or operations which would overwrite the MCT program itself. The user is reminded if a RETurn is not included at the end of the routine. In short the user’s routine is not allowed to crash. If the instructions are valid, then they are “assembled”.
The assembled instructions can then be run by the simulator one step at a time just as the demonstrations are. This provides the pupil with immediate feedback on how well the concept taught has been understood or mastered.
One of the safe areas with which the user is allowed to experiment is the screen display. The demonstrations often change the attributes of screen locations, so a color display is very helpful, although not essential.
The same 42 character per line “microprint” used in the Masterfile database program is employed throughout MCT. This allows one-third more text to be displayed on each screen line than the 32 character mode can provide. Despite the smaller letters, the text is clear and easy to read.
The tutorials on the various Z80 instructions make more sense the more times you are exposed to them. They also do a better job of explaining machine code programming than any other book or magazine article I’ve read. The reason for this is the “explain-predict-control” format of each lesson.
After a cursory look at all 35 lessons, I am still not a machine code programmer. Although I’m not ready to write a whole program in Z80 mnemonics, I was actually able to produce my own short routines to manipulate screen attributes and to move blocks of text around at machine code speed.
The MCT is not the ultimate machine code programming tocl, nor is it intended to be. A serious student will eventually have to acquire a good machine code assembler to translate newly learned instructions into the 1’s and 0’s understood by the computer.
I seriously doubt that anyone has developed an assembler as user friendly (uncrashable) as MCT. An explorer in this new realm will, however, be able to practice routines with the MCT simulator before entering them into a working assembler. Don’t expect miracles with The Complete Machine Code Tutor. But a better set of training wheels probably cannot be obtained.