В Радио86-РК блоки синхронизируются вообще по 2-м принятым байтам.
Вид для печати
В Радио86-РК блоки синхронизируются вообще по 2-м принятым байтам.
Тема имеет продолжение в http://zx.pk.ru/showthread.php?t=720
Оказывается отказоустойчивые решения все же были!
на самом деле должен был начинаться с синхросигнала.
Обычно синхросигнал орагнизуется следующим образом (на кассете):
- Идёт длинная еденичка
- Идёт длинный нолик
- Опять длинная еденица
- Опять длинный ноль
Т.о. образуется чёткая синхросмесь.
Обычно сигнал мерялся с трёх-пяти точках (в SOS это было именно три точки), чтобы увериться в неошибочном чтении. По синхросигналу достаточно просто организовать такую загрузку, чтобы данные однозначно не были потеряны. Паузы при этом рассчитываются так, чтобы замеры текущих состояний приходились приблизительно в центре записанных состояний (еденички или нуля). Это даст некоторый запас прочности при использовании съехавших магнитофонах (с ускоренным или замедленным движением). Если каждый блок оснащать синхросигналами, то это даст колоссальный запас прочности.
Т.о. вот я что я могу сказать - кто бы не разрабатывал процедуру загрузки с ленты - лабасы были те программисты :D
Что-то я есть не понимать. Синхронизация идет ведь по фронтам, а не по уровням, так? Как мы можем делать замеры? Мы же при чтении засекаем время от фронта до фронта, и не важно от 1 к 0 или наоборот. В этом и есть смысл кодирования с самосинхронизацией. И на самом деле это не замеры, а ожидания фронтов. На ленте же нет 0 и 1, там только импульсы (кстати экспоненциальные). И записываются они туда в моменты смена тока в головке, при переходе от 0 к 1 и наоборот. Вот.
Не обязательно по фронтам, можно и по уровням, кстати по фронту весьма можно ошибиться, а вот по уровню вероятность ошибки ниже...Цитата:
Сообщение от Paul_ls
Синхронизация должна идти по последнему фронту синхросигнала...
Что касается Спектрума в плане работы с кассетой, там была автосинхронизация ПО ФРОНТАМ, а не по уровню. Лет 15 назад я даже знал, как назывался алгоритм. И не такой уж плохой он был: по сравнению с ZX80 и ZX81 кассеты читались НА ПОРЯДОК надёжнее (правда, ром от 80/81 я не смотрел - там и железо могло быть кривее). Даже мои извращения с загрузчиками (модификации ромовского лоадера ради анимации, счёткиков загрузки и т.п.) не мешали программам нормально грузиться, правда, сложности могли возникнуть на левоватых клонах типа "Ленинграда".