.th TU16 VI 4/21/86
.sh NAME
TU16 - kernel interface to DEC TU16 magnetic tape system
.sh DESCRIPTION
The TU16 device is the KSOS interface to the magnetic tape system
produced by DEC.  There can be up to eight drives per controller supported.
The KSOS device driver supports only one controller per system.
.s3 
The TU16 magnetic tape system is a MASSBUS-oriented controller.  Tapes are 
written and read using the standard 9-track coding convention. Both
1600 bpi and 800 bpi recording densities are supported.
Variable sized records can be read or written; however, the minimum size for a
data transfer is 12 bytes and the maximum size is 8191 bytes.
.s3
The TU16 devices are identified to the kernel by their SEIDs.
The first two components of an TU16 SEID are always the same:
the name space field is 'device_nsp' and the unique id 0 field
is 11.
The unique id 1 field corresponds to the drive unit number.
Thus, if there were two TU16-type tape drives on a system, they would have SEIDs
(device_nsp, char(11), 0) and (device_nsp, char(11), 1).
.s3
There are eight basic functions of the KSOS TU16 device driver.
They are implemented with the following system calls:
K_open, K_read_block, K_write_block, K_device_function and K_close.
.s3
.lp 23 18
K_open	Before any data may be pass between a TU16 and a user process,
that process must open the device using the K_open kernel call.
Opening a TU16 device is a higher level function of the kernel I/O
system and has no effect on the device itself or the device driver.
.s3
.lp 23 18
K_read_block	The K_read_block kernel call is used to read characters
from a TU16 device.
.s3
.lp 23 18
K_write_block	The K_write block kernel call is used to write characters
to a TU16 device.
.s3
.lp 23 18
K_device_function	The TU16 supports the following functions: READ,
WRITE, WRITEMARK, REWIND, UNLOAD and SETDENSITY.
.lp 23 18
K_close	Closing a TU16 device is a higher level function of the kernel I/O
system and has no effect on the device itself or the device driver.
.i0
.sh "SEE ALSO"
K_device_function(II),
K_read_block(II),
K_write_block(II),
K_open,
K_close,
ioFunction(IIa),
ioStatus(IIa)
