IBM cassette tape
The original IBM Personal Computer and IBM PCjr included support for storing data and programs on compact cassette tape. 

It was common for home computers of the time, such as the Apple II, Commodore 64 and BBC Micro, to use cassette tapes for storage due to the lower cost of hardware and media compared to floppy disks. A wide range of commercial home computer software was available on tape throughout the 80s.

The IBM PC cassette format did not experience the same popularity however, since very few were shipped without at least one floppy disk drive, and apart from one diagnostic tape available from IBM, there seems never to have been any software sold on tape, and the interface was not included on the followup PC XT. Despite this lack of popularity, up until the original PC's discontinuation in 1987, IBM continued to offer a Model 104 which shipped without a floppy disk drive.

The IBM PCjr was also seldom sold without a floppy disk drive, but it also had two ROM cartridge slots for loading commercial software, which offered better convenience and reliability.

Use
An IBM PC with just an external cassette recorder for storage could only use the built-in ROM BASIC as its operating system, which supported cassette operations. IBM PC DOS had no support for cassette tape, though software could have been written by the user to provide support.

BIOS interrupt call 15h routines were documented in the technical reference manual that would turn the cassette motor on and off, and read or write data. Data was written with a lead-in section, and formatted in 256-byte blocks with a 2-byte CRC. Programmers could also operate the cassette relay by writing to its I/O address. The cassette, disk, and advanced versions of IBM BASIC included statements for cassette operations, but these features only worked if the machine had a cassette port.

The data transfer speed was from 1-2 kilobits per second, compared to the disk drive's 250 kilobits per second.

Data format
The technical reference for the  specifies that the WRITE-BLOCK routine turns on the cassette drive motor and transforms each byte into bits.  A (1) bit corresponds to a  timer period, (0) bit corresponds to , which results in a recording speed of .

First  of "11111111" is written.  One synchronization bit "0".  A synchronization byte of 0x16. 256-byte blocks of data and a 2-byte CRC is written until all data is transferred.

Connector pinout
The IBM PC used a female 5-pin DIN connector (the same as the keyboard connector) for the cassette port:

Pinout: 
 Pin 1: MOTOR CONTROL COMMON
 Pin 2: GND
 Pin 3: MOTOR CONTROL (6 V/1 A) RELAY
 Pin 4: DATA-IN (500 nA with 13 V at 1000-2000 Baud)
 Pin 5: DATA-OUT (250 µA jumperable either at 0.68 V ("AUX") or 75 mV ("MIC"))

Motor control: 8255A port , bit 3: 0 = on, 1 = off.

See also
 IBM Cassette BASIC
 Commodore Datasette
 Kansas City standard
 Tarbell Cassette Interface

References

Home computer peripherals
IBM storage devices
Tape-based computer storage