An IBM PC with just an external cassette recorder for storage can only use the built-in ROM BASIC as its operating system, which supports cassette operations. IBM PC DOS has no native support for cassette tapes, though software can be written to provide support.
BIOS interrupt call 15h routines are documented in the technical reference manual that turns the cassette motor on and off, and read or write data. Data is written with a lead-in section, and formatted in 256-byte blocks with a 2-byte CRC.6 Programmers can also operate the cassette relay by writing to its I/O address. The cassette, disk, advanced, and cartridge versions of IBM BASIC includes statements for cassette operations, but these features only work if the machine had a cassette port.
The data transfer speed is from 1-2 kilobits per second, compared to the disk drive's 250 kilobits per second.7
In 2020, the cassette interfaces of the IBM PC and PCjr were utilized to boot FreeDOS off a custom vinyl disc.89
The technical reference for the IBM PC 5150 specifies that the WRITE-BLOCK routine turns on the cassette drive motor and transforms each byte into bits. A (1) bit corresponds to a 1.0 ms timer period, (0) bit corresponds to 0.5 ms, which results in a recording speed of 1000 - 2000 bit/s.
First 256 bytes 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.10
The IBM PC uses a female 5-pin DIN connector (the same as the keyboard connector) for the cassette port:
Pinout:11
Motor control: 8255A port 0x61, bit 3: 0 = on, 1 = off.
Williams, Gregg (January 1982). "A Closer Look at the IBM Personal Computer". BYTE. p. 36. Retrieved 2013-10-19. https://archive.org/stream/byte-magazine-1982-01/1982_01_BYTE_07-01_The_IBM_Personal_Computer#page/n37/mode/2up ↩
Libes, Sol (October 1982). "Bytelines". BYTE. p. 455-458. Retrieved 2024-12-30. https://archive.org/details/byte-magazine-1982-10/page/n452/mode/1up?view=theater ↩
"IBM PC Diagnostics 1.02 (Cassette)". WinWorld. https://winworldpc.com/product/ibm-pc-diagnostics/102-cassette ↩
Norton, Peter (1985). The Peter Norton Programmer's Guide to the IBM PC. Microsoft Corporation. ISBN 0-91484546-2. I have never encountered a PC program on tape for sale. In fact, about the only use of the cassette port that I am aware of is the homespun and jerry-rigged use of this port as a poor-man's serial port. 0-91484546-2 ↩
"Nerdly Pleasures: Tape Cassette Storage with the IBM PC and PCJR". 2014-04-20. http://nerdlypleasures.blogspot.com/2014/04/tape-cassettes-storage-with-ibm-pc-and.html ↩
"IBM PC and PCjr Cassette Waveforms". 091207 http://www.brutman.com/Cassette_Waveforms/Cassette_Waveforms.html ↩
Bogin, Jozef (2022-02-06) [2020-11-19]. "Booting from a vinyl record". Bogin, Jr. Archived from the original on 2023-08-06. Retrieved 2023-08-06. http://boginjr.com/it/sw/dev/vinyl-boot/ ↩
Bogin, Jozef (2022-02-06). "IBM 4860 PCjr". Bogin, Jr. Archived from the original on 2023-06-03. Retrieved 2023-08-06. http://boginjr.com/electronics/old/ibm4860/ ↩
IBM (1983). IBM PC Technical Reference Handbook. Comment: Also includes a complete listing of the ROM BIOS source code and schematics of the original IBM PC. ↩