User Tag List

Страница 32 из 40 ПерваяПервая ... 282930313233343536 ... ПоследняяПоследняя
Показано с 311 по 320 из 399

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

  1. #311

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    И связано это с остановкой мотора. В первом блоке текста много пустых строк, выводится всё медленно, соответственно мотор успевает остановится. При остановке мотора в 0-й и 1-й биты регистра 0177130 пишутся нули, что при установленном 10-м бите соответствует выбору третьего привода. Ну а потом, когда мотор запускается, соответственно читает не с MZ1, а с MZ3.
    Хмм... Таки я не понял, это особенность контроллера и на живой УКНЦ так же, или это всё же я навалял при написании эмулятора?

  2. #312

    Регистрация
    09.01.2006
    Адрес
    Bryansk
    Сообщений
    1,339
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    140
    Поблагодарили
    107 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Да, забавно. Глюк есть. Такой глюк почему-то возникает, если идёт чтение по одному сектору.
    Вот! Я же говорил - нужна тестовая программа которая читает диск по всякому.

    Цитата Сообщение от Alex_K Посмотреть сообщение
    И связано это с остановкой мотора. В первом блоке текста много пустых строк, выводится всё медленно, соответственно мотор успевает остановится. При остановке мотора в 0-й и 1-й биты регистра 0177130 пишутся нули, что при установленном 10-м бите соответствует выбору третьего привода. Ну а потом, когда мотор запускается, соответственно читает не с MZ1, а с MZ3.
    Наверное, мало у кого на УКНЦ висело по 4 дисковода. Ставить дисковод просто MZ3 (и поймать данный глюк) особого смысла не имело.
    УКНЦ, ДВК-3, Ленинград-1 (48 кб)

  3. #313

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Хмм... Таки я не понял, это особенность контроллера и на живой УКНЦ так же, или это всё же я навалял при написании эмулятора?
    Вероятно ошибка в эмуляторе. Подпрограмма остановки мотора по адресу 1344454 очищает все биты выбора, потому реально не будет выбран ни один дисковод, что на реальной машине приведет к ошибке чтения. Видно где-то в эмуляторе не особо следится за выбором устройства, установкой бита вращения мотора, потому и такой глюк. Кстати, если контроллер перешел в режим чтения, то при остановке мотора он будет формировать нулевые данные, ну и CRC естественно не сойдётся.

    - - - Добавлено - - -

    Цитата Сообщение от Arseny Посмотреть сообщение
    Вот! Я же говорил - нужна тестовая программа которая читает диск по всякому.
    Тестовая программа ничего не показала бы. Я уже описал данный глюк связанный с остановкой мотора. При тестах его скорее всего и не воспроизвели бы.
    А данный глюк возникает и на реальной машине с контроллером псевдоКМД?
    Цитата Сообщение от Arseny Посмотреть сообщение
    Наверное, мало у кого на УКНЦ висело по 4 дисковода. Ставить дисковод просто MZ3 (и поймать данный глюк) особого смысла не имело.
    Да, такой надобности не было. Но у кого есть четыре дисковода, то почему бы не попробовать. Придется конечно на дисководах резать дорожки и паять перемычки. Но я уверен, что данного глюка на реальной машине вы не получите.

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

    nzeemin(06.08.2020)

  4. #314

    Регистрация
    09.01.2006
    Адрес
    Bryansk
    Сообщений
    1,339
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    140
    Поблагодарили
    107 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Тестовая программа ничего не показала бы. Я уже описал данный глюк связанный с остановкой мотора. При тестах его скорее всего и не воспроизвели бы.
    А данный глюк возникает и на реальной машине с контроллером псевдоКМД?
    Ну да. Раз в КВЭ доступно 4 "дисковода" - 4 образа и прицепили. Чтобы перегружаться, для проверки, с разных дисков не дергая контроллер - выбора дисков пока нет.
    УКНЦ, ДВК-3, Ленинград-1 (48 кб)

  5. #315

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    При остановке мотора в 0-й и 1-й биты регистра 0177130 пишутся нули, что при установленном 10-м бите соответствует выбору третьего привода. Ну а потом, когда мотор запускается, соответственно читает не с MZ1, а с MZ3.
    Цитата Сообщение от Alex_K Посмотреть сообщение
    Вероятно ошибка в эмуляторе. Подпрограмма остановки мотора по адресу 1344454 очищает все биты выбора, потому реально не будет выбран ни один дисковод, что на реальной машине приведет к ошибке чтения. Видно где-то в эмуляторе не особо следится за выбором устройства, установкой бита вращения мотора, потому и такой глюк. Кстати, если контроллер перешел в режим чтения, то при остановке мотора он будет формировать нулевые данные, ну и CRC естественно не сойдётся.
    Алекс, не могли бы вы тут описать по-подробнее. Дело вот в чем, когда я еще только начинал разрабатывать контроллер КВЭ, я отлавливал команды которые УКНЦ отправляет в порт 177130, при выборе дисковода MZ0: УКНЦ отправляет о2023, те выстален 0,1,4 и 10 бит, 4-й нас пока не интересует. По тому, что вы описали, получается, что выбран MZ3: тк 10 бит в 1, но это не так. Согласен, инверсия бит (хотя у меня уже с инверсией, ВА87). Я сейчас сделал выбор привода согласно вашего описания, и какие бы я не выбирал приводы, привод всегда выбирался MZ3:. Вот у меня и возник вопрос, может бит 10 отвечает не за 3 привод, а за то, что не выбран ни один? Где-то.. мне попадалась такая информация, но я перерыл все, что у меня есть по контроллеру, не не нашел

    - - - Добавлено - - -

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Таки я не понял, это особенность контроллера и на живой УКНЦ так же, или это всё же я навалял при написании эмулятора?
    На моем живом УКНЦ и контроллере КВЭ все точно так же, как и на вашем эмуляторе, те при выводе multic.doc глюк.

    - - - Добавлено - - -

    Я поправил глюк с multic.doc, похоже, что логика там такая:
    бит 10 - если = 0, то не выбран ни один накопитель.
    бит 0,1 после инверсии выбор накопителей 0-3

    - - - Добавлено - - -

    Иногда игрушки от ИТО вываливаются вот с такой ошибкой (номер ошибки не меняется):


    - - - Добавлено - - -

    Я тут разобрался почему у меня раньше на multic.doc зависала УКНЦ, не потому что RPLY висел в низу, ни по какой другой причине связанной с зависанием сигнальных линий. Я просто не знал, что когда мотор выключен, то бит готовности контроллер должен все равно выставить. Да, данные = 0, но 7 бит в статусном регистре должен быть 1.

  6. #316

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

    По умолчанию

    Эта фраза поставила в ступор:

    Код:
            BIT     #2000,23204     ; Двигатель накопителя еще работает ?
            BNE     131620$         ; Да
            BIS     #20,23204       ; Установить бит запуска мотора в УС
            MOV     23216,23224     ; (23224) = время разгона двигателя
    Так что-же показывает этот 10 бит?
    Код:
    131652$:BIC     #3,23204
            BISB    135406$(R1),23204; Установить биты номера устройства в УС
            BIS     #2000,23204     ; Установить бит выбора накопителя
            MOV     23204,@#177130  ; Запуск мотора
            CALL    134356$         ; Восстановить РОН
    Опять бит 10 и тут он "бит выбора накопителя"
    Последний раз редактировалось ZPilot; 06.08.2020 в 19:47.

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

  8. #317

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZPilot Посмотреть сообщение
    Алекс, не могли бы вы тут описать по-подробнее. Дело вот в чем, когда я еще только начинал разрабатывать контроллер КВЭ, я отлавливал команды которые УКНЦ отправляет в порт 177130, при выборе дисковода MZ0: УКНЦ отправляет о2023, те выстален 0,1,4 и 10 бит, 4-й нас пока не интересует. По тому, что вы описали, получается, что выбран MZ3: тк 10 бит в 1, но это не так. Согласен, инверсия бит (хотя у меня уже с инверсией, ВА87). Я сейчас сделал выбор привода согласно вашего описания, и какие бы я не выбирал приводы, привод всегда выбирался MZ3:. Вот у меня и возник вопрос, может бит 10 отвечает не за 3 привод, а за то, что не выбран ни один? Где-то.. мне попадалась такая информация, но я перерыл все, что у меня есть по контроллеру, не не нашел
    Цитата Сообщение от ZPilot Посмотреть сообщение
    Я поправил глюк с multic.doc, похоже, что логика там такая:
    бит 10 - если = 0, то не выбран ни один накопитель.
    бит 0,1 после инверсии выбор накопителей 0-3
    У меня в документации про контроллер УКНЦ всё описано. Там есть глава, которая так и называется "Контроллер дисковода УКНЦ". Оттуда:

    Для выбора устройства надо обязательно установить разряд REZ, а с помощью разрядов DS0 и DS1 осуществляется выбор номера устройства. При сброшенном разряде REZ ни одно устройство не выбрано, значение разрядов DS0 и DS1 в этом случае не играет роли.

    REZ DS1 DS0 Выбранный накопитель
    1 1 1 Выбран накопитель 0
    1 1 0 Выбран накопитель 1
    1 0 1 Выбран накопитель 2
    1 0 0 Выбран накопитель 3
    0 - - Не выбран ни один накопитель

    Соответственно REZ - это 10-й бит, а DS1 и DS0 - первый и нулевой биты.

    - - - Добавлено - - -

    Цитата Сообщение от ZPilot Посмотреть сообщение
    Эта фраза поставила в ступор:

    Код:
            BIT     #2000,23204     ; Двигатель накопителя еще работает ?
            BNE     131620$         ; Да
            BIS     #20,23204       ; Установить бит запуска мотора в УС
            MOV     23216,23224     ; (23224) = время разгона двигателя
    Так что-же показывает этот 10 бит?
    Код:
    131652$:BIC     #3,23204
            BISB    135406$(R1),23204; Установить биты номера устройства в УС
            BIS     #2000,23204     ; Установить бит выбора накопителя
            MOV     23204,@#177130  ; Запуск мотора
            CALL    134356$         ; Восстановить РОН
    Опять бит 10 и тут он "бит выбора накопителя"
    В этом же труде есть описание драйвера дисковода в системном ПЗУ, с подробными объяснениями. Также оттуда:

    "Первым делом надо определить - вращается еще мотор или нет? Делается это анализом бита выбора накопителей REZ в копии РС. В данном случае анализируется именно бит выбора накопителей, а не включения мотора, т.к. раз был выбран накопитель, то и мотор должен еще вращаться. Если мотор еще вращается, то делается переход на метку 131620, а иначе в копии РС устанавливается бит включения мотора, в ячейку 23224 копируется время разгона двигателя и осуществляется переход на метку 131652."

    "Как в случае запуска мотора, так и загрузки головки, в копии РС устанавливаются биты номера накопителя и бит выбора REZ. Затем копию РС записывается в РС контроллера по адресу 177130. При этом запускается мотор и осуществляется выбор накопителя. После этого восстанавливаются РОН и происходит возврат из подпрограммы прерывания."

    Эти 2 пользователя(ей) поблагодарили Alex_K за это полезное сообщение:

    nzeemin(06.08.2020), ZPilot(06.08.2020)

  9. #318

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

    По умолчанию

    У меня есть ваш файл по КГМД, но там этот момент почти не описан, ну или я этого не нашел/не понял я по этому и попросил помощи. В любом случае, спасибо. Вы подтвердили мои мысли.
    Есть еще момент мне не понятный, все-таки как отвечает контроллер когда выключен мотор и когда не выбран ни один диск. Что с регистром статуса?

  10. #319

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZPilot Посмотреть сообщение
    Есть еще момент мне не понятный, все-таки как отвечает контроллер когда выключен мотор и когда не выбран ни один диск. Что с регистром статуса?
    Я много раз говорил, что контроллер надо отделить от накопителей. Ведь контроллер не знает, подсоединены они или нет. Т.е. существуют объекты - контроллер и до 4-х накопителей. Сам контроллер может находится в режиме чтения или записи. В режиме чтения контроллер находится после включения питания, сброса по шине МПИ сигналом INIT, после чтения регистра 0177132. В режиме записи он находится после записи в регистр 0177132.
    Сам режим чтения подразделяется на два подрежима - поиск маркера и формирование данных (собственно чтение). В режиме поиска маркера контроллер находится после включения питания, сброса по шине МПИ сигналом INIT, после установки бита GOR (бит 8) в регистре 0177130. В режим формирования данных контроллер переходит после успешного нахождения маркера. При формировании данных контроллер аккуратно формирует данные каждые 64 мкс, в соответствии с информацией, поступающей на вход DI. Если информация перестаёт поступать (выключили мотор, выбрали отсутствующий привод, не выбрали привода), то формируются нулевые данные.

    Потому ответ: если контроллер остался в режиме формирования данных, то будут поступать нулевые данные, т.е. каждые 64 мкс в регистре 0177132 будет оказываться ноль, ну и соответственно устанавливаться бит готовности в регистре 0177130. А вот если контроллер остался в режиме поиска маркера, то тут он его уже не найдёт. Соответственно бит готовности уже никогда не установится, а в регистре 0177132 останется последнее прочитанное значение.

    Эти 2 пользователя(ей) поблагодарили Alex_K за это полезное сообщение:

    nzeemin(07.08.2020), ZPilot(06.08.2020)

  11. #320

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

    По умолчанию

    Спасибо, теперь вроде все расставилось по своим местам.

Страница 32 из 40 ПерваяПервая ... 282930313233343536 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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