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

User Tag List

Страница 2 из 24 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 231

Тема: Эмуляция 1801ВП1-128 в ПЛИС

  1. #11
    Master Аватар для Woland
    Регистрация
    26.10.2011
    Адрес
    Москва
    Сообщений
    554
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    15 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    А как определить, что прочитан маркер?
    Никак не определять. Когда маркер обнаруживается, начинается чтение тех данных, что идут следом, а по мере их чтения устанавливается бит готовности.
    Вообще, значение маркера можно прочитать в регистра 177132, чтобы программа могла определить, какой именно из маркеров у нас тут появился (в программе WORK монитора это используется); но специальных битов в регистре состояния под это дело нет, только готовность.

    С точки зрения содержимого - адресный маркер ничем не отличается от данных, а пропуск синхроимпульса используется внутри контроллера автоматически и никак не отражается регистре состояния.

    Маркеры там идут дуплетами, сначала обязательный A1A1 с двумя пропущенными синхроимпульсами, затем A1FB, A1FE, A1F8, ... c одним пропуском синхроимпульса, которые уже маркируют тип сектора.

    Цитата Сообщение от Patron Посмотреть сообщение
    можно заключить, что в сдвиговый регистр переписывается сначала старший байт, а потом младший - это ошибка описания ?
    Это все относительно сдвигового регистра, туда загружаются байты наоборот.

    Конкретно в нашей эмуляции в схеме сдвиговый регистр сделан не так, как (вроде бы) он должен быть в ВП1-128. Он у нас 16-разрядный и из регистра данных все слова перегружаются сразу. В оригинале для целей экономии пересылка делается (вроде бы) по байту. На логику работы это никак не влияет.
    Последний раз редактировалось Woland; 29.11.2012 в 20:26.

  2. #12
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Woland Посмотреть сообщение
    Когда маркер обнаруживается, начинается чтение тех данных, что идут следом
    Т.е. если дорожка заполнена данными без маркеров - прочитать не удастся ни одного слова.. Это так?

    Цитата Сообщение от Woland Посмотреть сообщение
    Маркеры там идут дуплетами, сначала обязательный A1A1 с двумя пропущенными синхроимпульсами, затем A1FB, A1FE, A1F8, ... c одним пропуском синхроимпульса, которые уже маркируют тип сектора.
    А как при записи выбирается тип маркера - один там синхроимпульс пропустить или два ?

  3. #13
    Master Аватар для Woland
    Регистрация
    26.10.2011
    Адрес
    Москва
    Сообщений
    554
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    15 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если маркеров нет, дорожка не прочитается.
    Тип маркера выбирается засылкой нужного значения в регистр данных при записи, перед этим выставляется бит "запись маркера",
    синхроимпульс пропускается в байтах A1,
    после того, как оба маркера записаны, бит "запись маркера" сбрасывается и далее на дорожку пишутся обычные данные.

  4. #14
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Woland Посмотреть сообщение
    Если маркеров нет, дорожка не прочитается.
    Т.е. читаются только слова между маркером и контрольной суммой, включая маркер и исключая контрольную сумму ?
    Последний раз редактировалось Patron; 29.11.2012 в 22:23.

  5. #15
    Master Аватар для Woland
    Регистрация
    26.10.2011
    Адрес
    Москва
    Сообщений
    554
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    15 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если нет маркера, то и начала чтения нет. Системе надо знать, где заканчиваются синхронизирующие импульсы и начинаются собственно данные, адресные маркеры служат именно для этого.

  6. #16
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Woland Посмотреть сообщение
    Если нет маркера, то и начала чтения нет.
    А когда маркер есть и чтение началось - то оно будет продолжаться до каких пор ?

    И первым будет прочитано какое слово - слово с маркером ?

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

  8. #17
    Master Аватар для Woland
    Регистрация
    26.10.2011
    Адрес
    Москва
    Сообщений
    554
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    15 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Первым будет прочитано слово с маркером A1A1. Продолжаться чтение будет бесконечно, пока программе не надоест.

  9. #18
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Woland Посмотреть сообщение
    Первым будет прочитано слово с маркером A1A1. Продолжаться чтение будет бесконечно, пока программе не надоест.
    Не встретив A1A1, но встретив другой маркер ( например, A1FB ) - чтение начнётся ?

    А как ведёт себя бесконечное чтение, выходя из зоны синхронизации, например - после царапины. Если прочитано несколько бит младшего байта, потом сбой синхронизации - и опять идут биты? Как возможно дальнейшее чтение, если непонятно на какие позиции ставить получаемые биты ?

    ...

    Что если на форматированный диск возможна только синхронная запись.. И именно поэтому сигнал готовности записи не устанавливается до достижения синхронизации. Ведь, когда импульсы RDATA приходят синхронно с работой сдвигового регистра - пропадание любого их количества не приводит к настоящему сбою синхронизации. Даже если из-за продольной царапины выпадает несколько секторов подряд - синхронизация не теряется и первый же удачно прочитанный (или записанный) бит точно занимает своё место.

    Похоже, что даже если чистую дорожку прописать разметкой только на один сектор - любые последующие записи на такую дорожку будут идти синфазно с уже имеющимся форматом.
    Последний раз редактировалось Patron; 02.12.2012 в 01:01.

  10. #19
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Исходник ПЗУ SMK64_v2.05

    В приложении - исходник ПЗУ SMK64_v2.05 пригодный для редактирования в Windows и компиляции в эмуляторе ДВК.

    После команд
    Код:
    MAC/LIST:SMK64 SMK64
    LINK SMK64
    создаётся файл листинга SMK64.LST и образ памяти SMK64.SAV, в котором коды ПЗУ занимают адреса 160000..167777.

    ...
    Вложения Вложения
    Последний раз редактировалось Patron; 02.12.2012 в 01:01.

  11. #20
    Master Аватар для Woland
    Регистрация
    26.10.2011
    Адрес
    Москва
    Сообщений
    554
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    15 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Похоже в КР1801ВП1-128 есть еще одна недокументированная "особенность", которая выводит программные циклы из ожидания готовности. Там есть пара-тройка мест в мониторе БК, которые могут быть потенциально ловушками неприятностей на диске, скажем, ожидание адресного маркера. ПЛИС-эмулятор ВП1-128 сейчас виснет на таких местах в случае сбоев чтения.

    Если предполагать, как ведет себя оригинальная ВП1-128 в такой ситуации, то может она выдает готовность просто скажем когда новый индекс пришел, а контрольная сумма потом разумеется не совпадает. В общем случае, если сумма не совпала, программа должна пойти на новый заход, пока не исчерпается какое-то число попыток. Также, может быть у ВП1-128 более слабая логика определения адресного маркера для экономии элементов микросхемы. В ПЛИС сейчас сделано определение очень жестко, как нарушение синхронизации плюс значение слова A1A1, это удобно для отладки, но может быть избыточно на практике. Есть варианты определения - просто по нарушению синхропотока, либо сравнению только одного байта с A1.

Страница 2 из 24 ПерваяПервая 123456 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. ЮТ-88: Реализация на ПЛИС (DE1)
    от Santechnik в разделе ЮТ-88
    Ответов: 61
    Последнее: 13.05.2022, 08:22
  2. Вопрос по ПЛИС
    от Zloy в разделе Несортированное железо
    Ответов: 23
    Последнее: 17.10.2015, 17:12
  3. Аксель на ПЛИС
    от iceoflame в разделе Amiga
    Ответов: 163
    Последнее: 25.03.2012, 14:51
  4. Список версий 1801ВП1 и 1801РЕ2
    от CodeMaster в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 28.02.2012, 22:39
  5. 1801вп1-128
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 0
    Последнее: 29.05.2010, 11:24

Ваши права

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