Список форматов хранения данных на кассетах
Многие ранние микрокомпьютеры и домашние компьютерные системы использовали кассеты в качестве недорогой системы хранения данных на магнитной ленте . В этой статье перечислены некоторые исторически известные форматы.
Поскольку взаимодействие между платформами было затруднено, использование стандартизированных форматов не имело особой цели или усилий. Главным исключением из этого правила был стандарт Канзас-Сити , который поддерживался большинством компьютеров на базе шины S-100 и позже был принят некоторыми другими поставщиками, такими как BBC Computer и MSX . Его также использовали в качестве средства обмена в некоторых журналах и даже транслировали по радио в Европе.
РКА КОСМАК
[ редактировать ]Одна из первых попыток разработать микрокомпьютер для домашнего использования была предпринята в начале 1970-х годов в RCA и привела к созданию процессора COSMAC . В рамках этого процесса был разработан кассетный интерфейс. При этом использовалась система частотной манипуляции (FSK), в которой двоичные нули («пробел») представлялись одним циклом сигнала частотой 2 кГц, а единицы («метка») - циклом 0,8 кГц. Байты записывались с одним битом метки, восемью битами данных и последним битом нечетной четности . Файлы имели префикс с четырьмя секундами пробелов для обеспечения восстановления тактовой частоты , а затем все данные записывались в один поток. не было поддержки чтения и записи данных В базовой операционной системе ; пользователям приходилось вводить собственную программу-загрузчик Для этого , хотя была предоставлена шестнадцатеричная примерная версия кода, которая довольно мала. [ 1 ]
ХИТЫ
[ редактировать ]Система обмена лентами для любителей (HITS) была представлена Джерри Огдином в статье в сентябре 1975 года в журнале Popular Electronics . В отличие от почти всех других систем того времени, HITS не использовал FSK в качестве механизма хранения; вместо этого использовалась широтно-импульсная модуляция или ШИМ. Можно использовать любую подходящую несущую частоту , рекомендуется использовать частоту 2000 Гц. Далее в статье отмечается, что основная концепция хорошо работает на любой частоте и что система способна записывать данные со скоростью около 1/4 несущей . Это означает, что несущая 10 кГц обеспечивает скорость около 2500 бит/с. [ 2 ]
Нули записывались как короткие импульсы, а единицы — длинные, при этом общее время передачи битов составляло номинальные 2,5 миллисекунды при использовании на частоте 2 кГц. Длительность импульсов измерялась путем записи времени между переходом из выключенного состояния во включенное, когда несущая включалась, и переходом из включенного в выключенное состояние, когда она снова падала. Это сравнивалось со временем между включением-выключением и следующим включением, обозначающим начало следующего бита. Если часть импульса включения была короче периода выключения, это был 0; если часть включения была длиннее, чем часть выключения, это было 1. Это означало, что каждый бит в записи был самосинхронным, что позволяло ему легко выдерживать растяжение ленты и другие проблемы, которые меняли частоту или скорость воспроизведения. [ 2 ]
программы ассемблерного кода для чтения и записи на машинах Intel 8080 . Были предоставлены [ 2 ]
Канзас-Сити Стандарт
[ редактировать ]
Стандарт Канзас-Сити (KCS) был одним из немногих форматов кассет, которые были стандартизированы в той или иной степени. Он был создан группой производителей автобусов S-100 на встрече, организованной журналом Byte Magazine в ноябре 1975 года в Канзас-Сити . [ 3 ]
KCS представляла собой простую систему FSK, которая записывала нули как четыре цикла тона частотой 1200 Гц, а единицы — как восемь циклов частоты 2400 Гц. Это обеспечивает общую скорость передачи данных 300 Гц. Данные записывались в восьмибитных байтах, начиная с младшего бита, бит четности при необходимости к семибитным данным добавлялся . В начале был добавлен один пробел, а в конце — один знак, выполняющий роль стартового и стопового битов. Байты записывались индивидуально, при этом тон возвращался к частоте меток между символами. Если записывались более короткие данные, например, шестибитные коды ASCII , все неиспользуемые биты заполнялись меткой в конце, чтобы заполнить восемь битов. Данные были записаны с использованием слегка модифицированной версии манчестерской кодировки . [ 3 ]
Никакой формат файла не был указан, кроме добавления пятисекундных отметок в начале файла, а также не было предоставлено никакого примера кода. Это должны будут предоставить производители сменных карт. [ 3 ]
Варианты ККС
[ редактировать ]
CUTS была более быстрой версией системы KCS, разработанной Processor Technology . Он использовал один цикл по 1200 Гц для паузы и два цикла по 2400 Гц для метки. В результате эффективная скорость передачи данных составила 1200 бит/с, что в четыре раза больше, чем у версии KCS. Плата CUTS S-100 может поддерживать CUTS или KCS для чтения и записи, а также может поддерживать две кассетные деки на одной плате. [ 4 ] Компания Acorn Computers Ltd реализовала как оригинальный KCS со скоростью 300 бод, так и вариацию CUTS со скоростью 1200 бод в своих BBC Micro и Acorn Electron . [ 5 ] [ а ]
MSX сделал еще один шаг к скорости 2400 бит/с, перейдя на более высокие частоты, используя один цикл 2400 Гц для паузы и два цикла 4800 Гц для метки. [ 6 ] Кроме того, MSX определил блочный формат файлов, хотя он менялся несколько раз. Блоки могли содержать от 0 до 255 байтов данных с информацией заголовка и однобайтовой контрольной суммой, которая позже менялась на 16-битную циклическую избыточную сумму (CRC). [ 7 ]
Другие форматы
[ редактировать ]После внедрения CUTS Боб Марш обратился к Бобу Джонсу, издателю журнала Interface Age , с предложением включить гибких дисков в журнал записи в качестве механизма распространения. Их первая попытка не увенчалась успехом, и они перешли к другим проектам. Затем эту концепцию подхватили Дэниел Мейер и Гэри Кей из Southwest Technical Products (SWTPC), которые организовали для Роберта Уитервика программу-интерпретатор 4K BASIC для Motorola 6800 в формате KCS. Потребовалось несколько попыток, прежде чем они придумали работоспособный процесс производства дисков. В майском выпуске журнала Interface Age за 1977 год содержится первое « Floppy ROM », 33-дюймовый дискету. Запись со скоростью 1 ⁄ об /мин, содержащая около шести минут стандартного звука Канзас-Сити. [ 8 ] Было роздано еще несколько таких дисков.
Вариант CUTS со скоростью 1200 бод также использовался в качестве основы для системы BASICODE , которая транслировала программы BASIC по коммерческому радио . [ 9 ] В этом случае к файлу добавлялись пятисекундные верхний и нижний колонтитулы сигнала частотой 2400 Гц, а программа отправлялась в виде одной длинной серии байтов ASCII . Байты отправлялись с одним стартовым битом метки, восемью битами данных, содержащими семибитный код ASCII со старшим битом, установленным в 1, и стоповым битом с одной меткой. Пользователи записывали программы на пленку, используя свое стереооборудование, а затем читали ленты на своих существующих компьютерных деках. [ 10 ]
Яблоко
[ редактировать ]
Apple I представила кассетную систему на основе карт расширения, аналогичную KCS, записывающую один цикл с частотой 2000 Гц для паузы и один цикл с частотой 1000 Гц для метки. В результате средняя скорость составила около 1500 бит/с. Соответствующий драйвер устройства в PROM предлагал интерактивный режим, который позволял пользователям записывать ячейки памяти на ленту. Например, набрав E000.EFFFR
будет читать (R в конце) данные с ленты в ячейки памяти от $E000 до $EFFF (4 КБ данных). При записи в заголовок добавлялись 10 секунд сигнала метки, прежде чем началась запись запрошенных данных. [ 11 ]
Apple II перенесла кассетный интерфейс на материнскую плату и внесла несколько изменений в формат. Сигналы метки и пробела остались такими же, как и в исходной версии, но заголовок теперь составлял десять секунд с частотой 770 Гц, за которым следовал новый «синхронный тон» из одного полупериода 2500 Гц и одного полупериода 2000 Гц. Данные, следующие за заголовком, были перекодированы, как и раньше, но к ним также добавлялась 8-битная контрольная сумма . Applesoft BASIC сохранял пользовательские программы в виде двух «записей», первая из которых состояла из сигнала заголовка, за которым следовали длина программы и контрольная сумма, а вторая — из сигнала заголовка, данных программы и контрольной суммы. [ 12 ]
ТИ-99/4
[ редактировать ]
Формат TI-99/4 управлялся внутренними контактами ввода-вывода, переключаемыми со скоростью, необходимой для создания правильных тонов на кассете. Это было достигнуто с помощью микросхемы поддержки TMS9901, которая предлагала различные делители тактовой частоты. Для операций с кассетой делитель тактовой частоты был установлен на 17, а на вход чипа подавались основные тактовые частоты системы 3 МГц, деленные на 64. Таким образом, выходной сигнал TMS9901 составлял 17 / (3 МГц / 64) = 363,6 микросекунды, или 2750. Гц. Чтобы записать единицу на ленту, сигнал переключался при каждом выходе такта, тогда как ноль пропускал один цикл. В результате метка представляла собой два цикла по 1379 Гц, а пробелы — один цикл по 690 Гц. В результате скорость передачи данных составила около 700 бит/с. [ 13 ]
Система также включала простой формат файла, состоящий из 768-байтового вступления, за которым следовал заголовок с количеством блоков в файле. Данные были закодированы в блоках; они начинались с 8-байтового начального пробела и одной метки, затем 64 байта данных и, наконец, 1-байтовой контрольной суммы, общая длина которых составляла 73 байта. Каждый блок повторялся дважды в качестве системы исправления ошибок, тем самым вдвое уменьшая эффективную скорость передачи данных. [ 13 ]
Вводная часть в начале файла воспроизводила устойчивый тон, который использовался для измерения фактической скорости передачи данных на ленте, которая могла меняться из-за растяжения ленты или различий между машинами. Во время чтения система устанавливает таймер ввода на максимальное значение $3FFF, а затем читает один байт. Когда байт был завершен, таймер был проверен, чтобы узнать, сколько циклов прошло. Например, это может быть 16 или 18. Это значение затем было помещено в таймер часов. Если во время чтения сигнал не менялся в течение тактового цикла, это был 0; если бы это было так, то это было бы пространство. [ 13 ]
Коммодор
[ редактировать ]
Формат ленты Commodore, представленный на Commodore PET , использует комбинацию методологий FSK и PWM. Биты кодировались в течение фиксированного периода времени, аналогично ШИМ, но поскольку оборудование ввода-вывода на большинстве моделей Commodore реагировало только на задний фронт цикла, они не были способны к истинному декодированию ШИМ. Вместо этого фиксированный период времени содержал два полных цикла разной длины для имитации импульса ШИМ и периода «выключения». Нули кодировались «коротким» циклом. [ б ] за которым следовал «средний» цикл, в то время как одни были закодированы как средний цикл, а затем как короткий цикл. Сигналы отправлялись непосредственно с выходного контакта в виде прямоугольной волны, которая «закруглялась» носителем записи. Третий «длинный» цикл использовался для специальных тонов: длинный-средний отмечал начало каждого байта, длинный-короткий отмечал конец данных. [ 14 ] [ 15 ]
Основное использование системы было с Commodore BASIC , который записывал заголовок, содержащий серию байтов, используемых системой для отслеживания скорости ленты, за которой следовали имя файла, размер и другие данные. Затем заголовок был повторен, чтобы справиться с повреждением данных. Данные программы следовали как один длинный поток байтов и сами записывались второй раз по той же причине. [ 14 ]
Можно было обойти процедуры формата ленты Commodore и получить прямой доступ к оборудованию ввода-вывода, что позволило широко разработать «турбо»-загрузчики для компьютеров Commodore. [ 14 ]
8-битные компьютеры Atari
[ редактировать ]
В 8-битных компьютерах Atari используется система, основанная на консультациях с инженерами звукозаписи, и одним из наиболее очевидных результатов было использование двух частот, которые не были гармониками друг друга. Единицы представлены частотой 5327 Гц, а нули — 3995 Гц, переключение происходит с частотой 600 Гц. [ 16 ]
Операционная система определяет пакетно-ориентированный формат файла со 128 байтами полезной нагрузки, двумя байтами заголовка, управляющим байтом и последующей контрольной суммой, в результате чего общая длина пакета составляет 132 байта. Два байта заголовка представляют собой шестнадцатеричный символ 55, двоичный код 01010101 01010101, которые используются схемой для восстановления тактового сигнала . Управляющий байт имеет три значения: $FC — пакет полной длины, $FA — короткий пакет, длина которого сохраняется до контрольной суммы, и, наконец, $FE — маркер конца файла (EOF). Короткие пакеты и EOF по-прежнему содержат полную полезную нагрузку размером 128 байт; они просто игнорируют неиспользованные части. [ 16 ]
Пакеты разделяются короткими периодами чистой частоты 5327 Гц, тональным сигналом записи перед записью и интервалом после записи, которые в сумме образуют «межзаписной промежуток» или IRG. При открытии для записи драйвер может быть установлен в один из двух режимов: с короткими или длинными IRG. Для двоичных форматов, где данные копируются непосредственно в память или из нее без интерпретации, используется короткий IRG, около 0,25 секунды. Для других целей, например, программы на языке программирования BASIC в текстовом формате, которую необходимо преобразовать построчно во внутренний двоичный формат, используется обычный IRG, 3 секунды. Это время было выбрано для того, чтобы кассетная дека могла полностью остановиться и перезапуститься перед достижением следующего пакета, что давало системе любое количество времени, необходимое для обработки пакета. [ 16 ]
Хотя существует стандартный формат пакета, не существует определенного формата файла, используемого системой в целом. Ближе всего это заголовок в загрузочных кассетах, который содержит всего 6 байт данных и лишен имени файла или другой идентифицирующей информации. Загрузочный пакет содержит количество записей (до 255) во втором байте, младшие и старшие байты адреса для загрузки, а также младший и старший адреса места, к которому нужно перейти после завершения загрузки. [ 16 ]
В дополнение к стандартному формату пакетов драйвер дает пользователю прямой контроль над двигателями стримера, а также чтение и запись тонов. Это используется с аудиокассетами для управления воспроизведением. Типичный сценарий включает аудиозапись на «левой» дорожке и короткие всплески частотой 5327 Гц в ключевых местах звука. Затем программа запускает ленточный привод, в результате чего звук проходит через динамик телевизора, ожидая появления 1 на порте ввода-вывода. Когда это видно, программа останавливает ленту и ждет какого-либо действия пользователя, прежде чем запустить ее снова. [ 16 ]
Примечания
[ редактировать ]Ссылки
[ редактировать ]- ^ Руководство по эксплуатации RCA COSMAC VIP (PDF) . РКА. 1987. стр. 30–32.
- ^ Перейти обратно: а б с Огдин, Джерри (сентябрь 1975 г.). «Система сменных лент для любителей» (PDF) . Популярная электроника . стр. 57–61.
- ^ Перейти обратно: а б с Пешке, Манфред; Пешке, Вирджиния (февраль 1976 г.). «Симпозиум BYTE по стандартам аудиокассет» . Байт . стр. 72, 73.
- ^ Инструкции по сборке и испытаниям CUTS (PDF) .
- ^ Р.Т. Рассел, Департамент инженерного проектирования BBC (1981). Микрокомпьютерная система BBC. ЧАСТЬ II — ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ (Отчет). Британская радиовещательная корпорация.
- ^ «4, ПЗУ BIOS». Красная книга MSX . Кума Компьютеры. 1985. ISBN 0-7457-0178-7 .
- ^ «Кассетный формат Acorn» . 8-битная компьютерная вики Acorn .
- ^ Джонс, Роберт С. (май 1977 г.). «Эксперимент с дискетой» . Возраст интерфейса . Том. 2, нет. 6. Макфетерс, Вулф и Джонс. стр. 28, 83.
- ^ «История БАЗИКОДА» . СОВОК .
- ^ Беншоп, Леннарт. «БАЗИКОД» .
- ^ Кассетный интерфейс Apple-1 (PDF) . Яблоко. 1976.
- ^ Гейлор, Уинстон (1983). Описание схемы Apple II . Говард и Сэмс.
- ^ Перейти обратно: а б с Нуспикель, Тьерри (3 апреля 1999 г.). «Интерфейс кассеты» .
- ^ Перейти обратно: а б с Экстранд, Крис. «Формат ленты» . Сохранение SID . Архивировано из оригинала 18 февраля 2016 года.
- ^ Де Секелер, Гарри (февраль 1985 г.). «Как работает TurboTape» . Вычислите! . п. 112.
- ^ Перейти обратно: а б с д и Кроуфорд, Крис (1982). Де Ре Атари . Атари.
Дальнейшее чтение
[ редактировать ]- Кассеттернет - эпизод Radiolab Mixtape о трансляции программ по радио