-
Notifications
You must be signed in to change notification settings - Fork 0
MIX notes
MIX appears to be a Little Endian 12-bit processor. It was designed before the notion of a "Byte" was standardized.
Definition. A binary MIX computer would have 6 bits per "MIX byte". (End of definition)
MIX doesn't use the 2's-complement approach which modern computers use. Instead, it keeps track of the "magnitude" of a number, and its "sign" (just as humans do).
Definition. A "MIX word" consists of 5 Mix bytes plus a sign. (End of definition)
Now, as alluded to, the MIX architecture is 12-bit. Why? Because 2 MIX bytes are used to track the memory "cells" (i.e., we index MIX words, and count using 2 MIX bytes). So it can access at most 2^12
MIX words (4096 MIX word, to be precise). But specifications limit the memory cells to 4000 MIX words. They are numbered from 0 to 3999.
A variety of input and output devices are also included:
- Tape units (devices 0...7).
- Disk or drum units (devices 8...15).
- Card reader (device 16).
- Card punch (device 17).
- Line printer (device 18).
- Typewriter terminal (device 19).
- Paper tape (device 20).
These are too exotic and antiquated for me to really comment in any detail. So I'll examine each one in some detail over time.
There are about half a dozen different "families" of instructions.
Loading operators: load memory contents into a register.
Storing operators: store subfield of register into memory.
Arithmetic operators: ADD
, SUB
, MUL
, DIV
.
Address transfer operators: use address as constant rather than reference in modifying registers.
Comparison operators: MIX has a CM
indicator (which has three values: EQUAL
, GREATER
or LESS
), and these operators compare two registers and sets the CM
indicator accordingly.
Jump operators: controls the flow of the program.
Input-output operators: interact with the block devices.
Conversion operators: convert characters to numbers, and vice-versa.
Shift operators: bitwise shift.
Miscellaneous operators: MOVE
, NOP
, HLT
.