#### 2.1.2.8 Input-output operators ¶

As explained in previous sections (see MIX architecture), the MIX computer can interact with a series of block devices. To that end, you have at your disposal the following instructions:

`IN` ¶

  Transfer a block of words from the specified unit to memory, starting at address M. OPCODE = 36, MOD = I/O unit.

`OUT` ¶

  Transfer a block of words from memory (starting at address M) to the specified unit. OPCODE = 37, MOD = I/O unit.

`IOC` ¶

  Perform a control operation (given by M) on the specified unit. OPCODE = 35, MOD = I/O unit.

`JRED` ¶

  Jump to M if the specified unit is ready. OPCODE = 38, MOD = I/O unit.

`JBUS` ¶

  Jump to M if the specified unit is busy. OPCODE = 34, MOD = I/O unit.

In all the above instructions, the ‘`MOD`’ subfile must be in the range 0-20, since it denotes the operation’s target device. The ‘`IOC`’ instruction makes sense for magnetic tape devices (‘`MOD`’ = 0-7): it shifts the read/write pointer by the number of blocks given by ‘`M`’ (if it equals zero, the tape is rewound), paper tape devices (‘`MOD`’ = 20): ‘`M`’ should be 0, the tape is rewound, and disk/drum devices (‘`MOD`’ = 8-15): it moves the read/write pointer to the block specified in rX and ‘`M`’ should be 05.