Важная информация

User Tag List

Страница 5 из 17 ПерваяПервая 123456789 ... ПоследняяПоследняя
Показано с 41 по 50 из 163

Тема: Чтение дисков без АГАТа

  1. #41
    Guru
    Регистрация
    15.09.2009
    Адрес
    SPb
    Сообщений
    7,163
    Спасибо Благодарностей отдано 
    230
    Спасибо Благодарностей получено 
    263
    Поблагодарили
    191 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GARNIZON Посмотреть сообщение
    Так если нет времени - зачем мы тогда здесь собрались?
    Хороший и своевременный вопрос.
    У меня вот один из ответов такой "для того чтобы поспорить есть ли польза от ФАПЧ при чтении дисков". Хотя, насколько я себе представляю этот вопрос уже давно решен гораздо более светлыми умами, чем наши.
    Последний раз редактировалось dk_spb; 31.08.2016 в 08:41.

  2. #42
    Master
    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    778
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    62
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Про пресловутый "desync A1" - http://vak.ru/doku.php/proj/megadrive/mfm?do=export_raw.
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  3. #43
    Member
    Регистрация
    28.08.2016
    Адрес
    г. Москва
    Сообщений
    49
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Леонид, я согласен, что написаное мной не верно с точки зрения документации и возможно неграмотно технически.
    Но разбираясь с форматом 840кб я рассматривал контроллер и сам Агат как черный ящик, на вход которого нужно подать определенный битовый поток. Который будет воспринят как дискета.
    На самом деле конечно используется последовательность A4 FF разделенная 2 мкс интервалом нулевого уровня. Но для меня это выглядело как 12 FF. Минус один бит с начала, плюс один в конце первого байта, т.к. 2 мкс пауза декодировалась у меня в дополнительный 0.
    Для целей эмуляции использование последовательности 12FF даже удобнее т.к. не требуется вставлять эту паузу между битами в функции стриминга битового потока.
    P.S. Статью исправлю. Добавлю картинку с логического анализатора с десинк последовательностью.
    Спасибо за конструктивную критику.

  4. #44
    Master
    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    778
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    62
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Дык, я сам учусь. Пока что очень много нестыковок в понимании вопроса:
    1. Импульсы с привода идут в инверсной логике (нам важен передний фронт, он же отрицательный фронт, он же переход с единицы на ноль, он же изменение напряжения с 5В до 0В, а вот длительность активного состояния [логический ноль] импульса может варьироваться, зависит от начинки дисковода и номинала подтягивающего резистора перед триггером Шмитта в контроллере) с одинарным, полуторным, и двойным периодом. С одинарным периодом кодируются последовательные одинаковые биты данных (...111... или ...000...), причем определить до самосинхронизации, что это, единицы или нули, то есть фронт поймали в середине единицы или в начале нуля - невозможно. Еще раз обращаю внимание, что я говорю о битах данных. С полуторным периодом кодируется изменение битов данных (...100... или ...001...), здесь тоже нельзя определить, что именно пришло. А вот с двойным периодом кодируется единственная возможная комбинация данных (...101...), вот здесь у нас и происходит самосинхронизация. И далее мы уже можем определять, где приходит следующий фронт, в середине или в начале битового интервала. Но с какого из битов в любой восьмерке последовательных бит начинается байт???
    2. Последний бит от 0xA4 (младший, равный нулю) после предпоследнего (тоже равного нулю), затем пауза в полинтервала 2 мкс, затем первый бит от 0xFF (старший, равный единице) будут закодированы с двойным периодом, что декодируется как ...101... Как мы определим синхросбой???
    3. По ссылке выше, применительно к ВГ93/i8272:
    Код:
    При записи маркеров байты C2 и A1 кодируются специальным образом, с нарушением обычных правил MFM:
    ^                  ^      C      ^      2          ^      A      ^      1          ^
    ^ Биты             | _1 _1 _0 _0 | _0 _0 _1 _0     | _1 _0 _1 _0 | _0 _0 _0 _1     |
    ^ MFM с нарушением | 01 01 00 10 | 10 **00** 01 00 | 01 00 01 00 | 10 **00** 10 01 |
    Биты b3..b1=001 от маркера 0xC2 закодируются с периодом в два с половиной! Невалидная кодировка, как реагировать?
    Биты b3..b1=000 от маркера 0xA1 закодируются с двойным периодом, и декодируются как 101! Как фиксировать синхросбой???
    Последний раз редактировалось LeoN65816; 09.09.2016 в 18:55.
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  5. #45
    Member
    Регистрация
    28.08.2016
    Адрес
    г. Москва
    Сообщений
    49
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Описываю, то что я вижу: импульсы логической единицы (0В) имеют длину примерно 1 мкс, длительность логического нуля (5В) различна (от 3 до 7 мкс в среднем).
    Когда я проигрываю закодированный в MFM образ диска на вход контроллера, каждый 1 бит я выдаю как: "0В, пауза 1 мкс, 5В, пауза 1 мкс". Каждый 0 как: "пауза 2 мкс". Биты естественно передаются в обратном порядке от старшего к младшему.
    Соответственно, А4 FF выглядит в закодированном виде как: 01000100100100100101010101010101, при использовании в качестве синхропоследовательности в агат эти байты передаются как 0100010010010010, пауза 2 мкс,0101010101010101 или 010001001001001000101010101010101.


    Таким образом, если использовать в эмуляторе дисковода в качестве desync, последовательность "10001001001001000101010101010101" которую я назвал 12FF, то не нужно дополнительно вставлять между определенными байтами паузу, а можно просто передать битовый поток по алгоритму описанному выше.

  6. #46
    Master
    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    778
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    62
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Фуф, еле осилил вот это, тоже есть интересное.
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  7. #46
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #47
    Veteran Аватар для Wierzbowsky
    Регистрация
    08.07.2015
    Адрес
    г. Бохум, Германия
    Сообщений
    1,747
    Спасибо Благодарностей отдано 
    170
    Спасибо Благодарностей получено 
    610
    Поблагодарили
    304 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ночку провёл с Орлом и в итоге появился прототип реплики линка номер два для 840кб контроллера дисковода.



    Плату планируется вставлять в параллельный порт лэптопа, ставить в слот контроллер и писать образы дисков на 3.5 дюймовый дисковод. Буду заказывать 5 платок, если кому-то интересно - отпишитесь. Тогда можем заказ увеличить.

  9. #48
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    Но с какого из битов в любой восьмерке последовательных бит начинается байт???
    Биты данных чередуются с синхробитами. Синхробиты должны быть всегда. Отсутствие синхробита и есть синхросбой.
    После обнаружения синхросбоя байт начинает читаться заново, при этом сначала идёт поиск еденичного бита. Синхросбой обычно делается не на последнем бите, данные маркера должны быть таковы, чтобы после синхросбоя гарантированно произшёл ещё один синхросбой на последнем бите, при чём в нужном месте, т.е. чтобы не было смещения, когда вместо битов данных читаются синхробиты.
    Последний раз редактировалось b2m; 29.09.2016 в 10:56.

  10. #49
    Guru
    Регистрация
    15.09.2009
    Адрес
    SPb
    Сообщений
    7,163
    Спасибо Благодарностей отдано 
    230
    Спасибо Благодарностей получено 
    263
    Поблагодарили
    191 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    (неинтересная практическая часть поскипана).
    Последний раз редактировалось dk_spb; 04.10.2016 в 16:19.

  11. #50
    Guru
    Регистрация
    15.09.2009
    Адрес
    SPb
    Сообщений
    7,163
    Спасибо Благодарностей отдано 
    230
    Спасибо Благодарностей получено 
    263
    Поблагодарили
    191 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Мда, как я погляжу, описание практической реализации железки для чтения любых FM/MFM дисков вызвало большой интерес и бурные обсуждения.
    Ладно, разговоры о теории тоже важны.

Страница 5 из 17 ПерваяПервая 123456789 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Дисковод для Агата
    от dimich в разделе Агат
    Ответов: 9
    Последнее: 12.09.2021, 23:02
  2. Провод из БП Агата
    от Wierzbowsky в разделе Агат
    Ответов: 15
    Последнее: 21.01.2017, 11:47
  3. Ответов: 34
    Последнее: 06.12.2012, 18:04
  4. Чтение дисков TR-DOS под XP
    от Zloy в разделе Софт
    Ответов: 47
    Последнее: 19.09.2008, 09:06
  5. Чтение дисков с iS-DOS
    от IDma в разделе Утилиты
    Ответов: 11
    Последнее: 12.02.2006, 08:04

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •