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

User Tag List

Страница 1 из 40 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 396

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

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

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

    Вообще конечно, жизнь странная штука, я немного понимаю как физически работает УКНЦ, но понятия не имею, как из режима отладки например записать в порт 177130, а мне надо.. Очень!
    Последний раз редактировалось Arseny; 29.07.2020 в 18:19. Причина: тема разбита

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

    hobot (29.03.2020)

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

  4. #2
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    370
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZPilot Посмотреть сообщение
    177130
    Цитата Сообщение от ZPilot Посмотреть сообщение
    а мне надо.. Очень!
    из отладки ПП получиться,
    идём так > клавиша УСТ в меню установок жмём УПР+@ , затем 177130 и клавишу "стрелка вправо", там должно быть что-то, но если не
    открывается ячейка тогда беда !!!! Пишем значение и вверх или вниз или "ввод" запишет его туда, в случае стрелок перещаемся по чётным ячейкам вверх вниз
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

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

    ZPilot (30.03.2020)

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

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    из отладки ПП получиться,
    У меня вывелось 177130/000000 Но при попытке записать, например, 1 просто перешло по адресу: 000001/000207.
    Разобрался, Enter не работает, только вверх или вниз.
    Спасибо!
    Последний раз редактировалось ZPilot; 30.03.2020 в 20:31.

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

    По умолчанию

    Уважаемые коллеги, друзья. Хочу опять попросить у вас помощи.
    Получилось мне сделать вот такое: https://ibb.co/4K7sjWK
    Но дальше полный ступор, вижу, что при выборе дисковода УКНЦ отправляет в порт 177130 команду 2023, те включить мотор и выбор накопителя, почему-то отправляет ее 2 раза и обращается к 177132.
    я на команду отвечаю первым словом с 0 сектора 0x4E4E, а статус ставлю о140201. Все это крутится по кругу (нулевой сектор) до бесконечности, не перемещая головки или не выбирая сторону.

  8. #5
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,999
    Спасибо Благодарностей отдано 
    1,065
    Спасибо Благодарностей получено 
    1,236
    Поблагодарили
    479 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZPilot Посмотреть сообщение
    Уважаемые коллеги, друзья. Хочу опять попросить у вас помощи.
    Получилось мне сделать вот такое: https://ibb.co/4K7sjWK
    Но дальше полный ступор, вижу, что при выборе дисковода УКНЦ отправляет в порт 177130 команду 2023, те включить мотор и выбор накопителя, почему-то отправляет ее 2 раза и обращается к 177132.
    я на команду отвечаю первым словом с 0 сектора 0x4E4E, а статус ставлю о140201. Все это крутится по кругу (нулевой сектор) до бесконечности, не перемещая головки или не выбирая сторону.
    Если я правильно понял, то вы вручную (на микроконтроллере) эмулируете дисковод? Но тогда нужно эмулировать и структуру дорожки, и маркеры.
    https://github.com/nzeemin/ukncbtl/b...ase/Floppy.cpp -- см. тут EncodeTrackData().

    http://www.emuverse.ru/wiki/%D0%A3%D...4_%D0%A3%D0%9A
    https://github.com/nzeemin/ukncbtl-doc/wiki/Floppy-ru
    Последний раз редактировалось nzeemin; 05.04.2020 в 14:41.

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Если я правильно понял, то вы вручную (на микроконтроллере) эмулируете дисковод? Но тогда нужно эмулировать и структуру дорожки, и маркеры.
    Да, вы правы, я взял за основу код для формирования полного трека из Вашего эмулятора.
    Честно говоря, я вообще по началу переделал ваш эмулятор флопа на СИ и попытался использовать его, но эмулятор и реальная железка все-таки разные вещи. Например, CFCGetData() вызывается в момент обращения УКНЦ к порту, но у меня есть только флаги, что УКНЦ забрал или положил в ячейку: статус/команду, данные. Если попытаться использовать в прерывании даже CFCGetData, то не попадешь в тайминги.
    nzeemin, если не трудно, подскажите суть обмена УКНЦ с контроллером: Например, УКНЦ дает команду, читает статус, читает/пишет данные.. или команда, статус, данные, статус, данны и тд
    А еще, первые шаги, что должен писать и что должен получить в ответ. Я понимаю, что в статусе 6 бит, но что-то не пойму цепочку.. вдруг я что-то упускаю или пропускаю.
    Спасибо!
    Да и еще один момент, я пишу данные сразу как только сброшен бит TR или надо выжидать время характерное для реального дисковода?
    И еще один.. маркеры.. поиск маркера это перейти на 0xA1A1A1?
    Последний раз редактировалось ZPilot; 05.04.2020 в 15:19.

  10. #7
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,999
    Спасибо Благодарностей отдано 
    1,065
    Спасибо Благодарностей получено 
    1,236
    Поблагодарили
    479 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ZPilot, по сигналам я не подскажу, спросите @Alex_K - он мне всё очень подробно объяснял про дисковод когда я делал реализацию записи на диск в эмуляторе.
    Маркер это не про поиск нужных байт. Это про поиск "неправильного" перехода в кодировании MFM. То есть в самом кодировании сигнала "зашиваются" метки.
    Посмотрите вот тут: https://en.wikipedia.org/wiki/Modifi...ncy_modulation - см. термин Sync Mark.

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Это про поиск "неправильного" перехода в кодировании MFM
    Этот переход мне весь мозг сделал когда я писал свой эмулятор флопа, я все ни как не мог понять, как это так, ведь сдвоенного нулевого интервала в MFM кодировании не бывает, оказывается бывает!
    Но я имел в виду немного другое, технически, для УКНЦ это что? Подал команду на поиск и получил в РД 0xA1A1?
    У меня еще один вопрос, бит 14 статуса (CRC) выставляется когда? после того как считан заголовок трека/данных или сразу же, а снимается только тогда когда обнаружена ошибка CRC?
    Мне кажется, что он снят от начала трека до момента когда контроллер считает CRC с диска, и только тогда устанавливает 14 бит. Снимает его еще раз при нахождении 0xA1A1 перед блоком данных и ставит опять, после того, как считал данные и сам CRC с диска. Так?

    Меня смущает вот это место: Если за это время регистр не был прочитан, то контроллер сравнивает рассчитанную при чтении CRC прочитанных данных со значением непрочитанного слова. При совпадении устанавливается бит CRC в РС 177130.
    Последний раз редактировалось ZPilot; 05.04.2020 в 16:58.

  12. #9
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,999
    Спасибо Благодарностей отдано 
    1,065
    Спасибо Благодарностей получено 
    1,236
    Поблагодарили
    479 сообщений
    Mentioned
    15 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.

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

    По умолчанию

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

Страница 1 из 40 12345 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 689
    Последнее: 06.02.2024, 10:16
  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

Ваши права

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