page_title: Atari SIO
section_title: Cassette use
hierarchical_section_title: Atari SIO / Description / Cassette use
caption_attribution_description: English: An Atari 1010 tape drive, as used on the Atari XL series of 8-bit computers.
context_page_description: The Serial Input/Output system, universally known as SIO, was a proprietary peripheral bus and related software protocol stacks used on the Atari 8-bit family to provide most input/output duties for those computers. Unlike most I/O systems of the era, such as RS-232, SIO included a lightweight protocol that allowed multiple devices to be attached to a single daisy-chained port that supported dozens of devices. It also supported plug-and-play operations. SIO's designer, Joe Decuir, credits his work on the system as the basis of USB.
  SIO was developed in order to allow expansion without using internal card slots as in the Apple II, due to problems with the FCC over radio interference. This required it to be fairly flexible in terms of device support. Devices that used the SIO interface included printers, floppy disk drives, cassette decks, modems and expansion boxes. Some devices had ROM based drivers that were copied to the host computer when booted allowing new devices to be supported without native support built into the computer itself.
context_section_description: Design of what became the SIO had started as a system for interfacing to cassette recorders using the sound hardware to generate the appropriate tones. This capability was retained in the production versions, allowing the Atari 410 and its successors to be relatively simple devices.
  When set to operate the cassette, the outputs from channel 1 and 2 of the POKEY were sent to the DATAOUT rather than the clock pins. The two channels were set to produce tones that were safe to record on the tape, 3995 Hz for a zero was in POKEY channel 2 and 5326 Hz for a one was in channel 1. In this mode, when the POKEY read bits from the SERIN, any 1's resulted in channel 1 playing into the data pin, and 0's played channel 2. In this fashion, a byte of data was converted into tones on the tape. Reading, however, used a different system, as there was no A-to-D converter in the computer. Instead, the cassette decks included two narrow-band filters tuned to the two frequencies. During a read, the output of one or the other of these filters would be asserted as the bits were read off the tape. These were sent as digital data back to the host computer.
  Because the tape was subject to stretching and other mechanical problems that could speed or slow transport across the heads, the system used asynchronous reads and writes. Data was written in blocks of 132 bytes per record, with the first two bytes being the bit pattern "01010101 01010101". An inter-record gap between the blocks with no tones allowed the operating system to know when a new record was starting by looking for the leading zero. It then rapidly read the port and timed the transitions of the timing bits from 0 to 1 and back to determine the precise data rate. The next byte was a control byte specifying if this was a normal record of 128 data bytes, a short block, or an end-of-file. Up to 128 bytes of data followed, itself followed by a checksum byte, including everything before the checksum.
  The operation was further controlled by the MOTOR pin in the SIO port, dedicated to this purpose. When this pin was low, the motor in the deck was turned off. This allowed the user to press play or play and record without the tape beginning to move. When the appropriate command was entered on the computer, MOTOR would be asserted and the cassette would begin to turn.
  Another dedicated pin was the AUDIOIN, which was connected directly to the sound output circuits between the POKEY's D-to-A converters and the final output so that any signal on the pin mixed with the sound from the POKEY (if any) and was then sent to the television speaker. This was connected to the left sound channel in the cassette, while the right channel was connected to the data pins. This allowed users to record normal sounds on the left channel and then have them play through the television. This was often combined with direct motor control to produce interactive language learning tapes and similar programs. Some software companies would record sounds or music on this channel to make the loading process more enjoyable.
caption: The original 410 was replaced by the much smaller 1010 during the XL era.
exif: {"Image Make": "PENTAX", "Image Model": "PENTAX K-7", "Image Orientation": "Horizontal (normal)", "Image XResolution": "240", "Image YResolution": "240", "Image ResolutionUnit": "Pixels/Inch", "Image Software": "Adobe Photoshop CS3 Macintosh", "Image DateTime": "2010:07:05 19:16:37", "Image Artist": "Adam.Jenkins", "Image ExifOffset": "232", "Thumbnail Compression": "JPEG (old-style)", "Thumbnail XResolution": "72", "Thumbnail YResolution": "72", "Thumbnail ResolutionUnit": "Pixels/Inch", "Thumbnail JPEGInterchangeFormat": "734", "Thumbnail JPEGInterchangeFormatLength": "3410", "EXIF ExposureTime": "3/5", "EXIF FNumber": "14", "EXIF ExposureProgram": "Aperture Priority", "EXIF ISOSpeedRatings": "100", "EXIF ExifVersion": "0221", "EXIF DateTimeOriginal": "2010:07:03 15:40:16", "EXIF DateTimeDigitized": "2010:07:03 15:40:16", "EXIF ShutterSpeedValue": "368483/500000", "EXIF ApertureValue": "761471/100000", "EXIF ExposureBiasValue": "0", "EXIF MeteringMode": "CenterWeightedAverage", "EXIF Flash": "Flash did not fire, compulsory flash mode", "EXIF FocalLength": "45", "EXIF ColorSpace": "Uncalibrated", "EXIF ExifImageWidth": "2500", "EXIF ExifImageLength": "2500", "EXIF SensingMethod": "One-chip color area", "EXIF CustomRendered": "Normal", "EXIF ExposureMode": "Auto Exposure", "EXIF WhiteBalance": "Auto", "EXIF FocalLengthIn35mmFilm": "67", "EXIF SceneCaptureType": "Standard", "EXIF Contrast": "Normal", "EXIF Saturation": "Normal", "EXIF Sharpness": "Soft", "EXIF SubjectDistanceRange": "2"}