User Tag List

Показано с 1 по 10 из 399

Тема: Контроллер псевдо КМД+дисковод для УКНЦ (на SD карте)

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,142
    Спасибо Благодарностей получено 
    1,473
    Поблагодарили
    525 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZPilot Посмотреть сообщение
    Но я имел в виду немного другое, технически, для УКНЦ это что? Подал команду на поиск и получил в РД 0xA1A1?
    Вот код из обработчика канала 2 УКНЦ -- http://www.emuverse.ru/wiki/%D0%A3%D...6_ROM_disasm_4
    Код:
            MOV     #177130,R4      ; R4 = адрес РСУ накопителя
    ...
    132740$:SOB     R1,132730$
            BIS     #400,R3         ; Установить в УС бит поиска заголовка
            MOV     R3,@R4          ; Начать поиск
            BIC     #400,R3         ; Сбросить в УС бит поиска заголовка
            MOV     #226,R0         ; Время ожидания поиска
            MOV     R3,@R4
    132762$:TSTB    @R4             ; Маркер заголовка обнаружен ?
            BMI     133034$         ; Да
            SOB     R0,132762$
            BR      132630$         ; Заголовок сектора необнаружен
    ...
    133034$:TST     @R5             ; Сбросить готовность контроллера дисковода
    133036$:TSTB    @R4             ; Следующее слово прочитано ?
            BPL     133036$         ; Нет
            CMP     #120776,@R5     ; Это адресный маркер заголовка сектора?
            BEQ     133212$         ; Да
    То есть получается что после того как словили маркер ожидаем что следующее прочитанное слово это 0xA1FE из заголовка сектора.
    Если заголовок сектора уже прочитали то логично ожидать сразу после маркера слово 0xA1FB как признак начала данных.
    Код:
            CALL    134132$         ; Поиск пропуска синхроимпульсов
            BEQ     133476$         ; Не найдено
    133370$:TSTB    @R4             ; Очередное слово сформировано ?
            BPL     133370$         ; Нет
            CMP     #120773,@R5     ; Это маркер данных ?
    - - - Updated - - -

    Цитата Сообщение от ZPilot Посмотреть сообщение
    У меня еще один вопрос, бит 14 статуса (CRC) выставляется когда? после того как считан заголовок трека/данных или сразу же, а снимается только тогда когда обнаружена ошибка CRC?
    Мне кажется, что он снят от начала трека до момента когда контроллер считает CRC с диска, и только тогда устанавливает 14 бит. Снимает его еще раз при нахождении 0xA1A1 перед блоком данных и ставит опять, после того, как считал данные и сам CRC с диска. Так?
    По моему коду так: флаг CHECKSUMOK сбрасывается при чтении по команде поиска маркера, при записи по команде записи маркера.
    Устанавливается при чтении после чтения и сравнения с контрольной CRC, при записи после записи CRC.

    - - - Updated - - -

    ZPilot, кстати, микросхема 1801ВП1-128 полностью отреверсена, по идее, все нюансы работы там - https://github.com/1801BM1/k1801/tree/master/128
    Последний раз редактировалось nzeemin; 05.04.2020 в 17:32.

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

  3. #2

    Регистрация
    10.04.2019
    Адрес
    г. Фокино, Брянская обл.
    Сообщений
    401
    Спасибо Благодарностей отдано 
    52
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    65 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    после того как словили маркер ожидаем что следующее прочитанное слово это 0xA1FE
    Вся проблема в том, окажется ли маркер 0xA1A1 в регистре данных, как вообще УКНЦ понимает, что маркер пойман, тут: TSTB @R4? Тогда, что будет лежать в R4?

  4. #3

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,142
    Спасибо Благодарностей получено 
    1,473
    Поблагодарили
    525 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZPilot Посмотреть сообщение
    Вся проблема в том, окажется ли маркер 0xA1A1 в регистре данных, как вообще УКНЦ понимает, что маркер пойман, тут: TSTB @R4? Тогда, что будет лежать в R4?
    Как я понимаю - драйвер выставляет дисководу команду "ищем маркер" (выставив бит 8 в 177130 -- SEARCHSYNC), дальше драйвер периодически смотрит 177130 бит 7 (MOREDATA) - если он выставлен то маркер найден, драйвер переходит к чтению слов.

    - - - Updated - - -

    Цитата Сообщение от ZPilot Посмотреть сообщение
    А еще, первые шаги, что должен писать и что должен получить в ответ. Я понимаю, что в статусе 6 бит, но что-то не пойму цепочку.. вдруг я что-то упускаю или пропускаю.
    Судя по дизасму ПЗУ, первые шаги это:
    1. Включить мотор и подождать пока дискета раскрутится
    2. Цикл - пока мы не на нулевой дорожке - команда ШАГ с ожиданием.
    3. Чтение сектора

    Этот пользователь поблагодарил nzeemin за это полезное сообщение:

    ZPilot(05.04.2020)

  5. #4

    Регистрация
    10.04.2019
    Адрес
    г. Фокино, Брянская обл.
    Сообщений
    401
    Спасибо Благодарностей отдано 
    52
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    65 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    2. Цикл - пока мы не на нулевой дорожке - команда ШАГ с ожиданием.
    Хорошая идея проверить, все ли у меня в порядке с получением/ответом.. а то кроме о2023 и о2423 я других команд не видел.

    Цитата Сообщение от nzeemin Посмотреть сообщение
    драйвер переходит к чтению слов
    с 0xA1A1 или с 0xA1FE?

  6. #5

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,142
    Спасибо Благодарностей получено 
    1,473
    Поблагодарили
    525 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZPilot Посмотреть сообщение
    с 0xA1A1 или с 0xA1FE?
    ZPilot, тут мои знания заканчиваются, к сожалению.
    Теоретически, можно ещё раскомментировать трейсинг в коде эмулятора и получить трассу обращения к регистрам и что оттуда приходит - я так делал когда отлаживал работу с диском.

  7. #6

    Регистрация
    10.04.2019
    Адрес
    г. Фокино, Брянская обл.
    Сообщений
    401
    Спасибо Благодарностей отдано 
    52
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    65 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Теоретически, можно ещё раскомментировать трейсинг в коде эмулятора и получить трассу обращения к регистрам и что оттуда приходит - я так делал когда отлаживал работу с диском.
    Спасибо огромное, помощь просто неоценимая. Хотя сейчас у меня постоянно меняются 2 команды о2023 и о2423. Почему УКНЦ постоянно включает поиск метки и что с этим делать - я не знаю, перепробовал уже все варианты. Может я просто не успеваю ответить вовремя.. может отвечаю не так как надо.. не знаю..

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

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

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

Похожие темы

  1. Ответов: 713
    Последнее: 13.05.2025, 11:42
  2. Ответов: 327
    Последнее: 03.12.2019, 22:49
  3. Куплю КМД для УКНЦ
    от Feral в разделе Барахолка (архив)
    Ответов: 32
    Последнее: 07.06.2012, 13:31
  4. Продам МС5310 блок дисководов к УКНЦ+КМД УКНЦ
    от Mad Killer/PG в разделе Барахолка (архив)
    Ответов: 7
    Последнее: 19.03.2012, 11:27
  5. Контроллер КМД-УКНЦ, АУКЦИОН
    от tntpro в разделе Барахолка (архив)
    Ответов: 9
    Последнее: 23.06.2011, 16:32

Ваши права

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