카세트 테이프 데이터 저장소 형식 목록
List of cassette tape data storage formats많은 초기 마이크로컴퓨터 및 가정용 컴퓨터 시스템은 저렴한 자기 테이프 데이터 저장 시스템으로 카세트 테이프를 사용했습니다.이 문서에서는 역사적으로 주목할 만한 포맷을 몇 가지 나열합니다.
플랫폼 간의 상호 운용성이 어려웠기 때문에 표준화된 형식을 사용하는 데 필요한 목적이나 노력이 거의 없었습니다.이 규칙의 주요 예외는 캔자스시티 표준으로, 대부분의 S-100 버스 기반 컴퓨터에서 지원되었고, 후에 BBC 컴퓨터나 MSX와 같은 몇몇 다른 벤더들에 의해 채택되었습니다. 또한 일부 잡지에서 교환 매체로 사용되었고 심지어 유럽에서는 라디오를 통해서도 방송되었습니다.
RCA COSMAC
가정용 마이크로컴퓨터를 개발하기 위한 가장 초기의 노력 중 하나는 1970년대 초 RCA에서 이루어졌고 COSMAC 프로세서 설계를 이끌어냈습니다.이 과정의 일환으로 카세트 인터페이스가 개발되었습니다.이 방법에서는 2kHz 신호의 한 사이클로 표시되는 이진수 0("공간")과 0.8kHz의 사이클로 표시되는 1("마크")이 포함된 주파수 편이 키잉(FSK) 시스템을 사용했습니다.바이트는 단일 마크 비트, 8 데이터 비트 및 마지막 홀수 패리티 비트로 작성되었습니다.파일에는 클럭 리커버리를 제공하기 위해 4초의 공간 신호가 부가되어 모든 데이터가 단일 스트림에 기록되었습니다.기본 운영 체제에서는 데이터 읽기 및 쓰기가 지원되지 않았습니다. 코드 16진수 버전이 제공되고 매우 [1]작음에도 불구하고 사용자는 로더 프로그램을 입력해야 했습니다.
히트
HITS(Hobbyist Interchange Tape System)는 Jerry Ogdin에 의해 1975년 9월 Popular Electronics 잡지의 기사에서 소개되었습니다.당시의 거의 모든 시스템과 달리 HITS는 스토리지 메커니즘에 FSK를 사용하지 않았습니다. 대신 펄스 폭 변조(PWM)를 사용했습니다.모든 적절한 반송파 주파수를 사용할 수 있으며, 2000Hz가 권장됩니다.이 기사는 기본 개념은 어떤 주파수에서도 잘 작동하며 시스템은 약 10분의 1의 속도로 데이터를 기록할 수 있다는 점에 주목하고 있습니다.캐리어의 1/4즉, 10kHz 반송파는 약 2,500bps의 [2]속도를 허용합니다.
0은 짧은 펄스와 긴 펄스로 기록되었으며, 2kHz에서 사용할 경우 전체 비트 시간은 공칭 2.5밀리초입니다.펄스 길이는 캐리어가 켜졌을 때의 오프 투 온 전환과 다시 떨어졌을 때의 온 투 오프 전환 사이의 시간을 기록함으로써 측정되었습니다.이것은 온/오프와 다음 오프/온 사이의 시간(다음 비트의 시작을 나타내는 시간)과 비교되었습니다.펄스의 on 부분이 off 기간보다 짧으면 0, on 부분이 off보다 길면 1입니다.즉, 녹음의 모든 비트가 셀프 타임으로 되어 있기 때문에, 테이프 스트레칭이나 주파수나 재생 [2]속도를 변경하는 그 외의 문제로부터 간단하게 살아남을 수 있었습니다.
인텔(R) 8080 머신에서의 읽기/쓰기용 어셈블러 코드 프로그램이 [2]제공되고 있습니다.
캔자스시티 스탠다드
KCS(Kansas City Standard)는 어느 정도 표준화된 몇 안 되는 카세트 형식 중 하나였습니다.1975년 11월 캔자스시티에서 [3]Byte Magazine이 주최한 회의에서 S-100 버스 제조업체 그룹에 의해 만들어졌다.
KCS는 1200Hz 톤의 4사이클로서 0을 기록하고 2400Hz의 8사이클로서 1을 기록하는 단순한 FSK 시스템이었다.그러면 전체 데이터 속도가 300Hz가 됩니다.데이터는 최하위 비트인 8비트 바이트로 기록되었으며 필요에 따라 패리티 비트가 7비트 데이터에 추가되었습니다.시작 및 중지 비트로 기능하기 위해 전면에 단일 공백이 추가되고 끝에 단일 마크가 추가되었습니다.바이트는 개별적으로 쓰여져 톤이 문자 사이의 마크 빈도로 되돌아갑니다.예를 들어 6비트 ASCII 코드와 같이 짧은 데이터를 쓰는 경우 사용되지 않는 모든 비트는 마지막에 마크로 채워져 8비트를 채웁니다.데이터는 약간 수정된 버전의 맨체스터 [3]인코딩을 사용하여 작성되었습니다.
파일의 선두에 5초의 마크를 추가하는 것 이외에는 파일 형식이 지정되어 있지 않습니다.또, 샘플 코드도 제공되지 않았습니다.이것은,[3] 플러그 인 카드의 벤더에 의해서 제공됩니다.
KCS의 변종

CUTS는 프로세서 테크놀로지에 의해 개발된 KSC 시스템의 고속 버전입니다.공간에는 1200Hz의 단일 사이클을, 마크에는 2400Hz의 두 사이클을 사용했습니다.이로써 유효 데이터 레이트는 KCS 버전의 4배인 1200bps가 되었습니다.CUTS S-100 보드는 읽기 및 쓰기를 위한 CUTS 또는 KCS 중 하나를 지원할 수 있으며 단일 [4]보드에서 2개의 테이프 덱을 지원할 수 있습니다.Acorn Computers Ltd는 BBC Micro와 Acorn [5][a]Electron에 원래의 300 baud KCS와 1200 baud CUTS를 모두 구현했습니다.
MSX는 공간을 위해 단일 2400Hz 사이클을 사용하고 마크를 [6]위해 4800Hz의 두 사이클을 사용하여 더 높은 주파수로 이동함으로써 이를 2400bps로 한 단계 더 나아갔습니다.또한 MSX는 여러 번 변경되었지만 블록 기반 파일 형식을 정의했습니다.블록에는 헤더 정보와 1바이트 체크섬을 포함한 0 ~255바이트의 데이터가 포함될 수 있으며, 나중에 16비트 Cyclic Redundancy Check([7]CRC; 순회용장검사)로 변경됩니다.
다른 형식
Bob Marsh는 CHITS를 도입한 후 Interface Age 매거진의 발행인인 Bob Jones에게 Flexi 디스크 레코딩을 배포 메커니즘으로 매거진에 바인딩할 가능성에 대해 문의했습니다.그들의 첫 번째 시도는 효과가 없었고 그들은 다른 프로젝트로 넘어갔다.이 컨셉은 Robert Uiterwyk가 Motorola 6800용 4K BASIC 인터프리터 프로그램을 KCS 형식으로 제공하도록 주선한 Souththtechnical Products(SWTPC)의 Daniel Meyer와 Gary Kay에 의해 채택되었습니다.그들이 디스크를 만드는 실행 가능한 과정을 생각해내기 위해서는 몇 번의 시도가 필요했다.1977년 5월호 인터페이스 에이지에는 캔자스시티의 표준 오디오를 [8]약 6분 수록한 331⁄3 RPM 레코드인 최초의 「플로피 ROM」이 수록되어 있습니다.이러한 디스크 몇 개가 추가로 배포되었습니다.
1200-baud CUTS 변동은 상업용 무선으로 [9]BASIC 프로그램을 방송하는 BASICODE 시스템의 기초로서도 사용되었습니다.이 경우 2400Hz 신호의 5초 헤더 및 바닥글이 파일에 추가되어 프로그램은 ASCII 바이트의 단일 긴 시리즈로 전송됩니다.바이트는 단일 마크 시작 비트, 최상위 비트가 1로 설정된 7비트 ASCII 코드를 포함하는 8비트의 데이터 및 단일 마크 중지 비트와 함께 전송되었습니다.사용자들은 스테레오 장비를 사용하여 프로그램을 테이프에 녹화한 다음 기존의 컴퓨터 [10]갑판에서 테이프를 읽습니다.
사과

애플I는 KCS와 유사한 확장카드 방식의 카세트 시스템을 도입해 공간당 2000Hz, 마크당 1000Hz의 단일 사이클을 기록했다.그 결과 평균 속도는 약 1500bps였습니다.PROM의 관련 장치 드라이버는 사용자가 테이프에 메모리의 위치를 쓸 수 있는 인터랙티브 모드를 제공했습니다.예를 들어, 타이핑E000.EFFFR
테이프에서 (끝의 R) 데이터를 E000~$EFFF(4kB의 데이터)의 메모리 위치로 읽습니다.쓰기를 시작할 때, 요청된 데이터 [11]쓰기를 시작하기 전에 10초의 마크 신호를 헤더로 추가했습니다.
Apple II는 카세트 인터페이스를 메인보드로 옮기고 포맷을 몇 가지 변경했습니다.마크 신호와 스페이스 신호는 원래 버전과 동일하지만 헤더는 770Hz로 10초 후에 2500Hz의 하프 사이클과 2000Hz의 하프 사이클의 새로운 "동기 톤"이 추가되었습니다.헤더에 이은 데이터는 이전과 같이 재코딩되었지만 8비트 체크섬도 추가되었습니다.Applesoft BASIC은 사용자 프로그램을 두 개의 "레코드"로 저장했는데, 첫 번째는 프로그램 길이와 체크섬이 이어지는 헤더 신호로 구성되고 두 번째는 헤더 신호, 프로그램 데이터 [12]및 체크섬이 포함된 것입니다.
TI-99
TI-99/4의 형식은 카세트에서 적절한 톤을 생성하는 데 필요한 속도로 전환되는 내부 I/O 핀에 의해 구동되었습니다.이는 다양한 클럭 디바이다를 제공하는 TMS9901 지원 칩에 의해 실현되었습니다.카세트 작동의 경우 클럭 디바이다는 17로 설정되었으며 칩에 대한 입력은 시스템의 메인 3MHz 클럭을 64로 나눈 것입니다.따라서 TMS9901의 출력은 17 / (3MHz/64) = 363.6마이크로초 또는 2750Hz였습니다.1을 테이프에 쓰기 위해 신호는 모든 클럭 출력에 따라 전환되지만 0은 1사이클 건너뜁니다.그 결과 1개의 마크는 1379Hz의 두 사이클인 반면 공간은 690Hz의 단일 사이클이었습니다.그 결과 데이터 전송률은 약 700bps였습니다.[13]
또한 시스템에는 768바이트의 리드인과 파일 내의 블록 수가 포함된 헤더로 구성된 단순한 파일 형식이 포함되어 있습니다.데이터는 블록으로 인코딩되었습니다.이것들은 8바이트의 공백 리드인 및 단일 마크에서 시작하여 64바이트의 데이터, 마지막으로 1바이트의 체크섬으로 총 길이가 73바이트가 됩니다.오류 정정 시스템으로 각 블록을 2회 반복하여 유효 데이터 [13]전송률을 절반으로 줄였습니다.
파일 시작 부분의 리드인에서는 테이프의 실제 데이터 레이트를 측정하기 위해 사용되는 안정된 톤이 생성되었습니다.테이프 스트레치 또는 머신 간의 차이로 인해 데이터 레이트가 변경될 수 있습니다.읽기 중에 시스템은 입력 타이머를 최대값인 $3FFF로 설정한 다음 1바이트를 읽습니다.바이트가 완료되면 타이머를 검사하여 통과한 사이클 수를 확인합니다.예를 들어 16이나 18일 수 있습니다.이 값은 클럭타이머에 입력되었습니다판독 중에 클럭 사이클 중에 신호가 사이클링되지 않으면 0이고, 사이클링되면 [13]공백입니다.
코모도레
코모도어 PET에 도입된 코모도어 테이프 형식은 다양한 PWM을 사용했습니다.0은 2840Hz의 "짧은" 펄스에 이어 1953Hz의 "중간" 펄스에 의해 인코딩된 반면, 1은 중간 펄스에 이어 짧은 펄스로 인코딩되었습니다.신호는 출력 핀에서 사각파로 직접 전송되어 기록 매체에 의해 "반올림"되었습니다.세 번째 펄스인 1488Hz "long"이 특수 톤에 사용되었습니다. 즉, long-medium은 데이터의 시작을 나타내고 long-short는 [14][15]끝을 나타냅니다.
정의된 단일 파일 형식이 없었고 모든 프로그램이 고유한 녹화 형식을 사용할 수 있었습니다.시스템의 주요 용도는 Commodore BASIC으로, 시스템이 신호 속도를 추적하는 방법으로 사용되는 일련의 바이트를 포함하는 헤더를 기록한 후 파일 이름, 크기 및 기타 데이터를 기록했습니다.그런 다음 데이터 손상을 처리하는 방법으로 헤더를 반복했습니다.프로그램 데이터는 단일 긴 바이트 스트림으로 이어지며, 같은 이유로 두 번째로 작성되었습니다.이것은 시스템 전체의 표준이 아니었습니다.다른 프로그램에서는 데이터를 임의의 [14]형식으로 자유롭게 쓸 수 있었습니다.
1985년, TurboTape로 알려진 완전히 새로운 형식이 Dataset에서 작동되었습니다.원래의 HITS와 동일한 PWM 메커니즘을 사용하여 스루풋을 약 2800bps로 개선하여 원래의 [16]포맷보다 대폭 향상되었습니다.이러한 속도를 얻기 위해 시스템은 원래 코드의 오류 수정 시스템을 삭제하고 기본 체크섬만 사용하여 [15]오류를 확인했습니다.
아타리 8비트
Atari 8비트 패밀리는 레코딩 엔지니어와의 협의에 기초한 시스템을 사용했으며, 가장 분명한 결과 중 하나는 서로 조화를 이루지 못한 두 개의 주파수를 사용하는 것입니다.1은 5327Hz,[17] 0은 3995Hz로 나타나 600Hz에서 전환됩니다.
운영체제에서는 128바이트의 페이로드와 2개의 헤더바이트, 1개의 제어바이트 및 다음 체크섬을 포함하는 패킷 지향 파일 형식을 정의하여 패킷의 총 길이는 132바이트가 되었습니다.2개의 헤더 바이트는 문자 55의 16진수, 바이너리 010101 010101 이며, 이 두 바이트는 회로에 의해 클럭 회복에 사용되었습니다.컨트롤 바이트에는 $FC는 풀렝스 패킷, $FA는 체크섬 전에 저장된 길이의 짧은 패킷, 마지막으로 $FE는 파일 종료(EOF) 마커라는 세 가지 값이 있습니다.쇼트 패킷과 EOF에는 128바이트의 페이로드가 포함되어 있었습니다.사용하지 않는 [17]부분은 무시했을 뿐입니다.
패킷은 순수 5327Hz의 짧은 시간, 사전 레코드의 쓰기 톤 및 사후 레코드의 갭으로 분리되었으며, 이 갭이 합산되어 "기록 간 간격" 또는 IRG가 되었습니다.쓰기를 위해 열었을 때 드라이버를 짧은 IRG 또는 긴 IRG를 사용하여 두 가지 모드 중 하나로 설정할 수 있습니다.해석 없이 데이터를 메모리에서 직접 복사하거나 메모리에서 복사하는 바이너리 형식의 경우 약 0.25초의 짧은 IRG가 사용되었습니다.한 줄씩 내부 바이너리 형식으로 변환해야 하는 텍스트 형식의 BASIC 프로그래밍 언어 프로그램과 같은 다른 용도에는 일반 IRG가 3초 동안 사용되었습니다.이 시간은 카세트 덱이 완전히 정지하고 다음 패킷에 도달하기 전에 재시작할 수 있도록 하기 위해 선택되었으며, 시스템은 [17]패킷을 처리하는 데 필요한 모든 시간을 허용합니다.
표준 패킷 포맷은 있었지만 시스템 전체에서 사용되는 정의된 파일 포맷은 없었습니다.가장 가까운 것은 부팅 가능한 카세트에 사용된 헤더로, 6바이트의 데이터만 들어 있고 파일 이름이나 기타 식별 정보가 없었습니다.부트 패킷에는 두 번째 바이트의 레코드 수(최대 255), 로드하는 주소의 로우 바이트와 하이 바이트, 로드가 [17]완료되면 점프하는 로케이션의 로우 주소와 하이 주소가 포함되어 있습니다.
표준 패킷 형식과 더불어 드라이버는 테이프 드라이브 모터에 대한 직접 제어와 톤 읽기 및 쓰기를 사용자에게 제공했습니다.이것은 재생을 제어하기 위해 오디오 테이프와 함께 사용되었습니다.일반적인 시나리오에서는 "왼쪽" 트랙에서 오디오 녹음이 이루어지고 오디오 내의 주요 위치에서 5327Hz의 짧은 버스트가 발생합니다.그 후, 테이프 모터가 기동해, 오디오가 텔레비전 스피커를 개입시켜 라우팅 되어 I/O 포토에 1이 표시될 때까지 기다립니다.이 화면이 표시되면, 프로그램은 테이프를 정지해, 유저의 조작을 기다리고 나서,[17] 다시 기동합니다.
메모들
- ^ BBC 하드웨어 정의에서는 300 baud 속도를 CUTS 모드라고 잘못 부르고 있습니다.
레퍼런스
- ^ RCA COSMAC VIP Instruction Manual (PDF). RCA. 1987. pp. 30–32.
- ^ a b c Ogdin, Jerry (September 1975). "Hobbyist Interchange Tape System" (PDF). Popular Electronics. pp. 57–61.
- ^ a b c Peschke, Manfred; Peschke, Virginia (February 1976). "BYTE's Audio Cassette Standards Symposium". Byte. pp. 72, 73.
- ^ CUTS Assembly and Test Instructions (PDF).
- ^ R. T. Russell, BBC Engineering Designs Department (1981). The BBC Microcomputer System. PART II — HARDWARE SPECIFICATION (Report). The British Broadcasting Corporation.
- ^ "4, ROM BIOS". The MSX Red Book. Kuma Computers. 1985. ISBN 0-7457-0178-7.
- ^ "Acorn cassette format". 8-bit Acorn Computer Wiki.
- ^ Jones, Robert S. (May 1977). "The Floppy ROM Experiment". Interface Age. Vol. 2, no. 6. McPheters, Wolfe & Jones. pp. 28, 83.
- ^ "History of BASICODE". SCOOP.
- ^ Benschop, Lennart. "BASICODE".
- ^ Apple-1 Cassette Interface (PDF). Apple. 1976.
- ^ Gaylor, Winston (1983). Apple II Circuit Description. Howard and Sams.
- ^ a b c Nouspikel, Thierry (3 April 1999). "Cassette tape interface".
- ^ a b Ekstrand, Cris. "Tape Format". SID Preservation. Archived from the original on 18 February 2016.
- ^ a b De Ceukelaire, Harrie (February 1985). "How TurboTape Works". Compute!. p. 112.
- ^ De Ceukelaire, Harrie (January 1985). "TurboTape: High-Speed Tape Utility for Commodore 64 and VIC-20". Compute!. p. 124.
- ^ a b c d e Crawford, Chris (1982). De Re Atari. Atari.
추가 정보
- Cassetternet – 라디오 방송 프로그램에서 Radiolab Mixtape 에피소드