This page describes the instructions which implement the Input/Output capabilities of the Nova. Other pages describe:
  As mentioned quickly in the introduction page, the I/O architecture of the Nova is based around a model of 64 possible I/O devices (determined by the six address lines) each of which may contain up to three discrete registers which may be read from, or written to, by the CPU. In addition to these registers, each device must maintain single-bit status registers for "Busy" and "Done".
  Devices capable of interrupting the CPU have interrupt mask registers and interrupt latches. Devices which make use of the Nova's Data Channel facility are required to have memory address registers as well.
  Control over Nova I/O devices is excersized using the registers and three control lines, "Start", "Clear", and "Pulse" which are activated by bits set in the I/O instruction class.
  The I/O instructions all share a common format:
0 1 1 Transfer /----- Device Code --------\ / \ / \ / \ +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+ \ / \ / AC Control
  The OPcode of each instruction is specified by its function and is defined by the ``Transfer'' field above. Instructions will be shown by their OPcode. The ``Control'' field specifies which control lines will be used when the instruction executes. The ``AC'' field states which, if any, AC will participate in a transfer.
  The I/O system operates in three modes. It is possible to perform a data transfer either to or from a device, perform no I/O but invoke commands, or to skip the following instruction based on the device's status bits. It is possible to invoke commands at the same time as a transfer is taking place.
  I/O device commands are appended to the base OPcode like the options on the ALC instructions. The ``control'' field is encoded thusly:
  The "S" command "starts" an idle device by setting the "Busy" flag and clearing the "Done" flag. This action signals whatever peripheral is attached to it that something needs to be done (e.g. type out a character). When the device finishes, it clears the "Busy" flag and sets the "Done" flag and, if enabled, interrupts the CPU.
  The "C", or Clear, command performs the opposite. It is used to forcibly idle an active device by clearing both the "Busy" and "Done" bits.
  The "P", for Pulse is a third line whose use is defined by the device's interface designer. Typically it is only used in very complex devices (e.g. disks) and can be used to initiate a seek or force a recalibration and read in a bootstrap.
  The ``Control'' field also governs the operation of the machine when it is sensing status from the addressed device. This will be discussed below.
Start: Device 25 Register A=172000, AC1=0, PC=50, Device active Function: DIAC 1, 25 Finish: Device 25 Register A=172000, AC1=172000, PC=51, Device idle
Start: Device 10 Register A=72, AC1=7, PC=315, Device idle Function: DOAS 1, 10 Finish: Device 10 Register A=7, AC1=7, PC=316, Device active
Start: Device 25 Register B=172000, AC1=0, PC=50 Function: DIB 1, 25 Finish: Device 25 Register B=172000, AC1=172000, PC=51
Start: Device 10 Register B=72, AC1=7, PC=315, Device idle Function: DOBP 1, 10 Finish: Device 10 Register B=7, AC1=7, PC=316, Device pulsed
Start: Device 25 Register A=172000, AC1=0, PC=50, Device done Function: DICS 1, 25 Finish: Device 25 Register A=172000, AC1=172000, PC=51, Device active
Start: Device 10 Register A=72, AC1=7, PC=315 Function: DOC 1, 10 Finish: Device 10 Register A=7, AC1=7, PC=316
Start: Device 27 idle Function: NIOS 27 Finish: Device 27 started
Start: Device 10 busy, PC=104 Function: SKPBN 10 Finish: Device 10 busy, PC=106
Start: Device 15 busy, PC=210 Function: SKPBZ 15 Finish: Device 15 busy, PC=211
Start: Device 33 done, PC=520 Function: SKPDN 33 Finish: Device 33 done, PC=522
Start: Device 10 busy, PC=310 Function: SKPBZ 10 Finish: Device 10 busy, PC=311
  This page described the Input/Output instructions of the Data General Nova minicomputer. Other pages describe: