IBM cassette tape


On the original IBM Personal Computer, and the IBM PCjr, an interface was provided to allow the use of a compact cassette tape recorder to load and save data and programs. In fact until the PC was discontinued in 1987, there was a Model 104 offered that was a 5150 from IBM without a floppy disk drive.
It was common for users of home computers of the time, such as the Apple II, Commodore 64 and BBC Micro, to use cassette tapes for storage if they could not afford a floppy disk drive, and in many cases there was a wide range of commercial software available on tape. This, however, was not the case with the IBM PC – 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 software sold on tape. 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.
The IBM PCjr was also seldom sold without a floppy disk drive, but it also had two ROM cartridge slots on the front of the unit – a much more convenient and reliable option for loading software.
No market developed for commercial product distribution on cassette tape and the cassette interface was dropped on the subsequent IBM XT.

Using from software

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.

Data format

The data transfer speed was from 1000 to 2000 bits per second, compared to the disk drive's 250 kilobits per second. The technical reference for the specifies that the WRITE-BLOCK routine turns on the cassette drive motor and transforms each byte into bits. A bit corresponds to a timer period, 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 for the cassette port:
Pinout:
Motor control: 8255A port 0x61, bit 3: 0 = on, 1 = off.