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

User Tag List

Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 23 из 23

Тема: RealCommander2.6FR, Скорпион2013 и зависания

  1. #21
    Activist
    Регистрация
    03.01.2009
    Адрес
    Санкт-Петербург
    Сообщений
    425
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Gutten Посмотреть сообщение
    Кстати, с HDD_0.1 и винтом программа по выходу в "HDD плагин" показывает на экране какой-то мусор, включая атрибутный.
    У себя такого не наблюдал за всю историю использования этого плагина.

    ---------- Post added at 19:46 ---------- Previous post was at 19:15 ----------

    Цитата Сообщение от Дмитрий Посмотреть сообщение
    Ты делись наблюдениями, одна голова хорошо, а форум - лучше! Глядишь совместными усилиями и разрешим проблемку-то.
    Ну ок.
    Сейчас есть две проблемы. Первая - заключается в том, что после дизассемблирования плагина с помощью ZX TURBO DISASSEMBLER 1.1 и последующего обратного процесса в ALASM размер кода плагина уменьшается на 4 байта. Непонятно, что и где при этом теряется.
    Вторая - трудность отладки по живому, т.к. на реале теневой монитор сразу закрывает порты DOS, а эмулятора с прямым доступом к портам HDD (т.е. работающего с реальным устройством, а не с его образом в виде файла) я пока не встречал.

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

    Вот фрагмент плагина, на котором происходит зависание (*):

    ;К этому моменту порты дос уже открыты
    ld de,#0000; номер цилиндра
    ld hl,#0002; номер головки/сектора
    call LC94D; позиционирование (см. ниже**)

    ld a,#41; Количество секторов
    ld b,#fa; Регистр счётчика секторов
    out (c),a; Записали
    ld a,#20; Команда чтения
    call LC943; Передача команды (см. ниже***)
    call LC935; Ожидание завершения выполнения команды (лишний вызов)
    ld b,#fb; Регистр номера сектора
    LC9FE push bc
    in (d),c
    push de
    ld b,#ff; Регистр состояния
    LCA04 in a,(c)
    * bit 3,a; Проверка флага DRQ (запрос данных)
    jr z,LCA04; Тут образовался бесконечный цикл
    ld a,#20
    ld hl,#f000
    call LC889
    call LC935
    pop de
    pop bc
    in a,(c)
    sub d
    jr nc,LC9FE
    .......


    **
    LC94D ld b,#fe; Регистр накопителя и головки
    ld a,#a0; Неиспользуемые разряды
    xor h; Номер головки (наверно лучше or h?)
    out (c),a
    dec b; Регистр цилиндра (старшая часть)
    out (c),d; Номер цилиндра
    dec b; Регистр цилиндра (младшая часть)
    out (c),e; Номер цилиндра
    dec b; Регистр номера сектора
    out (c),l; Номер сектора
    ret

    ***
    LC943 ld b,#ff; Регистр команды
    out (c),a
    call LC935; Ожидаем завершения выполнения команды
    jp LC93D

    LC93D in b,#ff; Регистр состояния
    in a,(c)
    rrca; Флаг ERR
    ret

    LC935 ld b,#ff; Регистр состояния
    LC937 in a,(c)
    rlca; Флаг BSY
    ret nc
    jr LC937; Ждём завершения выполнения команды

    ---------- Post added at 19:51 ---------- Previous post was at 19:46 ----------

    Цитата Сообщение от Blade Посмотреть сообщение
    Не так же. Драйвер Jason.blk для исдос не работает с CF. Там правда сам драйвер не по стандарту работает.
    Такого драйвера не встречал. Сам много лет пользуюсь драйвером IDESMUC.BLK от Валерия Кожевникова (тот же Jason). До него использовал поставочный ZHDD4.BLK.
    Да, с CF картами IDESMUC подглючивает. Причём пришлось подбирать карту памяти такую, чтобы и нормально размечалась теневым монитором и работала в iS-DOS. Другие карты либо вообще не размечались даже в теневом мониторе, либо напрочь завешивали драйвер в iS-DOS.
    Похоже есть какие-то особенности в их работе.

    Однако моим тестом никаких особенностей не выявилось. Правда проверял в режиме LBA...

    ---------- Post added at 20:36 ---------- Previous post was at 19:51 ----------

    Исходники IDESMUC.BLK есть в наличии. Знать бы какой стандарт предпочитают CF карты - можно бы было ковырнуть драйвер.
    Последний раз редактировалось AmoNik; 02.06.2015 в 16:51.

  2. #22
    Activist
    Регистрация
    03.01.2009
    Адрес
    Санкт-Петербург
    Сообщений
    425
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    CF тестил такой программой.
    В режиме LBA читает влёт и не виснет. Классика.
    Вложения Вложения

  3. #23
    Master
    Регистрация
    27.03.2005
    Адрес
    CПб
    Сообщений
    711
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AmoNik Посмотреть сообщение
    Знать бы какой стандарт предпочитают CF карты - можно бы было ковырнуть драйвер.
    В старых ATA стандартах было написано, что после окончания операций чтения/записи в регистрах сектора/дорожки/головы содержится номер последнего сектора, с которого производилось чтение/запись. В современном стандарте состояние этих регистров после успешного окончания операции не определено. Та CF карта, которую я смотрел, выдавала те же значения, что и перед началом чтения.

Страница 3 из 3 ПерваяПервая 123

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

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

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

Ваши права

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