The improved I/O controller includes a data processing element for executing a sequence of stored program instructions to control the transfer of data between respective ones of a plurality of I/O devices and the host computer. The controller further includes a memory element for storing the program instructions and parameter tables associated with the transfer of data. A first sequence of stored program instructions defines a first communications protocol and a second sequence of stored program instructions defines a second communications protocol. A first control table is associated with a first I/O device, for relating the first device to the first program instructions and a second control table is associated with a second I/O device, for relating the second I/O device to the second program instructions. The first table is invoked when first data is to be transferred between the first I/O device and a host computer, to call a first program instructions to impose the first communications protocol to govern the transfer of the first data. The second table is invoked when second data is to be transferred between a second, diverse I/O device and the host computer, to call the second program instructions to impose the second communications protocol to govern the transfer of the second data. In this manner, a plurality of communications protocols which are mutually incompatible, can be concurrently executed for communication between a host computer and a plurality of diverse I/O devices.