A publishing company that purchased a CDC 160-A described it as "a single user machine with no batch processing capability. Programmers and/or users would go to the computer room, sit at the console, load the paper tape bootstrap and start up a program." Memory on the 160 was 4096 12-bit words. The CPU had a 12-bit
ones' complement accumulator but no multiply or divide hardware. There was a full complement of instructions and several addressing modes. Indirect addressing was almost as good as index registers. The instruction set supported both relative (to the current P register) and absolute addressing. The original instruction set did not have a subroutine call instruction and could only address one bank of memory. Low-level I/O allowed control of devices, interfacing for determining device status, and for reading and writing data as either single bytes, or as blocks. I/O could be completed to a register, or to memory, or via a
direct memory access (DMA) channel. The distinction between these I/O types was that regular I/O would 'hang' the CPU until the I/O operation completed, but DMA I/O allowed the CPU to proceed with instruction execution concurrently with the data transfer. The interrupt system was purely based on I/O, meaning that all interrupts were generated externally. Interrupts were introduced to neophytes as being the alert mechanism by which a program could be informed that a previously initiated DMA I/O operation was completed. ==Application areas==