Как посылать SCASI/ATAPI команды CD/DVD приводу из DOS?

Тема в разделе "WASM.WIN32", создана пользователем xerius2, 8 авг 2006.

  1. xerius2

    xerius2 New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2006
    Сообщения:
    12
    Как посылать SCASI/ATAPI команды CD/DVD приводу из DOS?
    Для WinXP есть софтина и не одна (напр. DvdInfoPro), а для MS-DOS не могу найти. Перерыл весь инет... Подскажите... Очень надо...
     
  2. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    сначала научись работать с обычным ATA-винтом ч/з порты в ДОС, затем прочитай доку по ATAPI (напр. SFF-8020i) и придет озарение. Посылка команд через ATAPI подразумевает некоторое знакомство с ATA.
     
  3. xerius2

    xerius2 New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2006
    Сообщения:
    12
    Я понимаю, что сие осуществить не просто. Поэтому и спрашиваю. Может уже есть готовая софтина, чтобы не изобретать велосипед заново...
     
  4. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    исходников навалом в инете на эту тему. Вот один пример работы с ATAPI из под ДОС:
     
  5. xerius2

    xerius2 New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2006
    Сообщения:
    12
    Спасибо за ответ. Хочу немного конкретизировать проблему. Проблема вот в чем. Есть САТА привод от консоли XBOX360. БИОС мамки его видит, а Винни нет. Требуется перевести его в ModeB. Есть такой диск Slax LiveCD (LINUX) с подправленным кодом для перевода этого привода в режим Б, но он не на всех южниках работает. Я глянул на то как он переводит привод в этот режим и как мне показалось там идет просто посылка нескольких команд приводу. Вот я и ищу альтернативу под ДОС.
    Вот как Slax детектит привод и какие команды посылает
    http://xerius2.nm.ru/SLAX_SCREEN.jpg
     
  6. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    Похоже что он на этих южниках не может опознать IDE/SATA-контроллер, который до кучи еще и в native-mode. Возможно, в legacy (compatibility) mode он заработает и на неопознанном IDE-контроллере, поэтому попробуй отключить в setup'e BIOS'a native mode (если он включен конечно).
    А м.б. он сразу отбой дает, если контроллер неизвестный, надо проверить. Судя по скриншоту, там именно идентификация IDE/SATA-контроллера и работа через native mode.
     
  7. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    немного ознакомился с проблемой -- там просто посылается определенная последовательность байт через send packet (A0h) для перевода привода в ModeB. Если тебе надо заставить этот драйв работать под виндой, то надо перевести SATA-контроллер в legacy mode (она же "Standard IDE") в БИОСе и не допустить переключения его в native виндою/драйверами.
    В legacy mode этот xbox'овый драйв можно будет достать ч/з обычные 1Fxh/17xh порты, без разницы какой SATA-контроллер.
    Волшебную последовательность надо посылать до загрузки винды, иначе надо перезагружаться/делать поиск устройств.
    Есть еще некий аппаратный способ с замыканием проводов, который также переводит драйв в ModeB.
     
  8. xerius2

    xerius2 New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2006
    Сообщения:
    12
    Т.е. ты имеешь ввиду, что нужно в биос перевести DVD в Enchanced режим (у меня это кажется так называется) и запустить modeb.c? А чем и как его компелировать? Ведь исходник кажется под Линукс? Извиняюсь за ламерство. В этих делах я новичок...
     
  9. xerius2

    xerius2 New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2006
    Сообщения:
    12
    У меня в настройках БИОСа есть два параметра:
    1 Enchansed (Все устройства как IDE)
    2 Compatible (Можно выбрать Prim.PATA-Sec.SATA или наоборот)
    О Native/Legacy ничего не сказано. Думаю что это одно и тоже, но по другому названо...

    P.S. Об аппаратном способе я знаю (Crossed Wires), но меня здорово напугали известия о кончинах некоторых приводов при этом способе.
     
  10. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    Если у тебя ami bios, то там справа д.б. хелп, в котором написано, что Compatible -- это Legacy, а Enhanced -- Native. SATA-контроллер должен быть выставлен как Standard IDE (если еще есть что-нть типа RAID) еще. Enhanced mode примечателен тем, что с ним не грузится win 9x с родными драйверами диска -- они ессно умеют работать только в legacy режиме.
    Всё это надо для того, чтобы ты перед загрузкой винды смог добраться до своего привода через "классические" IDE порты. В native mode тебе это будет немного сложнее сделать. ;)
    В исходнике modeb.c (что под линукс) можно увидеть, что надо посылать в пакете. В chkcdvd.с есть все процедуры необходмые.
     
  11. xerius2

    xerius2 New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2006
    Сообщения:
    12
    To _BC_
    Спасибо большое, что уделил мне время. Только я боюсь что зря :-( Я в программировании полный дуб... Надо было еще 15 лет назад как я только начал заниматься компами (эх Спектрум...) надо было учить программирование... Теперь уже наверное поздно :-( Весь смысл твоих слов я вроде понял, но что конкретно взять из modeb.c и куда в chkcdvd.с вставить не знаю... Вот ДУБ...А потом ведь еще и откомпилировать надо... Ткни носом где описано для начинающих как и чем компилировать под ДОС. Плиз.
     
  12. xerius2

    xerius2 New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2006
    Сообщения:
    12
    Как стало известно. Куча народа с этими консолями парятся с проблемой перевода привода в режим Б. Иначе Винда не видит. Кто тож додумался перешивать привод под Виндой... Вот изврат. Вот бы сделал ктонить прошивку под ДОС. Народ бы памятник поставил. Или както подправить mtkflash чтоб он Хитачи на XBOX360 шил также как Samsung под ДОС. Вот бы круто было... Ну это мысли на будущее. Сейчас бы эту проблему решить...
     
  13. xerius2

    xerius2 New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2006
    Сообщения:
    12
    Ну где же вы ВОЙНЫ ДЗЕНА? Иль мечи затупились? Иль блеск доспехов потускнел? Иль дух воинский остыл? Помогите кто чем может... Аль бросите бедного странника на произвол судьбе? Да прибудет с вами БУДДА!!! :)

    Пробовал компилировать chkcdvd.с ничего в нем не изменяя, так как я не знаю где чего править :-( Я раздобыл только Borland C++ 3.1 для ДОС, но вылезло 8 ошибок... Блин я даже не отредактированный исходник не могу откомпилировать :-( Может другим компилятором надо? Слышал, что Microsoft Visual C++ v1.5 еще под ДОС компилирует, но я его нигде не найду... Чего уж говорить об вытаскивании кода из modeb.c :-(
    Все... Пошел мылить веревку...
     
  14. xerius2

    xerius2 New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2006
    Сообщения:
    12
    Кстати. В исходнике chkcdvd.с была ошибка. Мне подсказали как исправить и он нормально откомпилировался в Borland C++ v3.1
    http://xerius2.nm.ru/CHKCDDVD.C
    Теперь бы правильно команды из modeb.c вставить... Народ. Ну подскажите как правильно их вставить. Неужели впадлу помочь? Или тут спецов нет? Одни юзеры, как я?
     
  15. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    тут либо ты сам разберешься, либо целиком кто-то другой сделает -- а большинству лениво делать что-то, что им самим даже и не пригодится, т.к. мало у кого есть этот ХВОХ'овый привод...
    По существу вопроса -- если на базе chkcddvd делать, то ту последовательность (как ее называют, HIT-команду) надо влепить вместо команды Inquiry. Еще надо добавить поиск ATAPI-устройств на IDE, хотя прокатит и посылка всем по очереди. ;)
    М.б. на выходных сделаю, если совсем у тебя туго с этим. :dntknw:
     
  16. xerius2

    xerius2 New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2006
    Сообщения:
    12
    Ой. Спасибо огромное _BC_ Я уже совсем отчаялся... У меня действительно с этим туго... Если все заработает, вот иностранцы офигеют... Назовем прогу твоим именем и высечем его на мраморе :) Да что там мрамор... ПАМЯТНИК ПРИ ЖИЗНИ!!! Не меньше...
     
  17. xerius2

    xerius2 New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2006
    Сообщения:
    12
  18. xerius2

    xerius2 New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2006
    Сообщения:
    12
    Спасибо _BC_ Проблема снята. Сделал все другим способом. Еще раз спасибо. Сейчас мало кто готов просто так помогать. Жаль...