| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > Как открыть лоток CD-ROM через INT 2f ? |
| Автор: Spirtoza 5.10.2002, 08:07 |
| Как открыть лоток CD-ROM через INT 2f? |
| Автор: Chingachguk 6.10.2002, 06:42 |
| Попробуй посмотреть interrupt list Ральфа Брауна. Если не найдешь, пиши - я сам могу посмотреть ;) |
| Автор: Spirtoza 8.10.2002, 01:53 | ||
Спасибо, я уже нашел API mscdex и все получилось. И я пришел к выводу, что такие вещи лучше делать непосредственно через порты. Но вот какой возник вопрос: как послать ATAPI пакет в порт? С жесткими дисками все и так ясно - там пишется байт. А с CD как же? Только не отсылайте меня к докам, лучше приведите конкретный пример типа: mov dx,170 mov al,a0 out dx,al [ ... ] чтобы лоток открывался. Комментировать необязательно. Буду очень признателен за ответ. |
| Автор: Chingachguk 8.10.2002, 03:17 |
| Смотри, ситуация такая: ни я, ни ты не знаем, какие команды подавать в порт. Более того, ты гораздо лучше разобрался, нашел апи и т.д. С другой стороны, мы знаем, что если вызвать ту апи, то где-то в недрах ДОС? WIN? - не важно, выполниться ПРАВИЛЬНЫЙ КОД. И надо его найти. Как бы я поступил ? Трассировать тучи команд (даже в досе их дофига) - не катит. Нет, это тоже способ. Но я бы поставил бряк в СофтАйсе на доступ к порту и запустил бы эту апи: bpio 170(десятичный, надо в хексе) ; Этот порт ? И отладчик бы всплыл там, где произойдет обращение к этим портам. Более того, можно поставить несколько бряков на порты 170...170+ Так я определял, кто и где лезет в порты из драйверов win, обращается ли винда к cmos и т.п. Если хочешь, могу посмотреть твои порты, только апи мне скажи ;) |
| Автор: Spirtoza 9.10.2002, 08:52 |
| Я только начинаю осваивать ASM и многих приемов не знаю. В частности, про ваш метод я услышал впервые... Но ведь это то что мне нужно!!! Это ж клево, перехватывать обращение к портам! Про СофтАйс я тоже ничего не знал, но как я понял, это крайне полезный инструмент... Мне еще много раз придется столкнуться с подобными задачами, и я научусь им пользоваться. Но... где его взять? Не могли ли вы прислать его на мыло [email protected] ? Буду очень благодарен! 170h - это командный порт secondary-IDE контроллера. Порты 171h-177h - порты обмена. В порт пишется ATA команда, взятая из спецификации ATA (www.t13.org). Например прога mov dx,170h mov al, e2h out dx,al останавливает шпиндель харда :-) Код A0h как раз включает режим ATAPI - подготовка к приему пакета. Другие порты не используются. А вот как сформировать этот самый пакет? У меня ничего не получается... (с хардами работает, а с сидюками - нет) - значит я что-то делаю не так. Есть прога управления CD-ROM без драйверов, с исходником, написаная на СИ, но в ней ничего не понятно. Дизассемблирование еще больше запутывает... Есть описание API с использованием INT2f - могу прислать :-) И еще много документации, если, что надо - подарю Спасибо за помощь! |
| Автор: Chingachguk 9.10.2002, 20:37 |
| Значит, так. > Где скачать СофтАйс ? Зайди на wasm.ru, посмотри раздел "Инструменты". Лично я работаю под 98-ой, и к ней есть нормальная версия. Под NT,Xp... я слышал, версии что-то не могут и что-то нужно доустанавливать. Есть также версия фюр дос, Но вот поддерживает ли она аппаратные точки останова (те бряки по доступу к портам) - я не знаю. В принципе, ты их сам можешь сделать - для этого нужно работать с регистрами DRx (386+) - и это совсем просто. > Где получить инфу по обучению ? Там же. Вроде бы есть уже статьи по изучению айса для начинающих. Плюс в этом форуме я уже с кем-то на эту тему говорил. Можно взять почти любую статью по исследованию защит программ - в них есть примеры работы с ним. > Работа с дос-задачами. Под виндами айс прекрасно видит код дос-задач, позволяет все то же самое, показывает символьные имена int'ов типа int 21h ... Короче, пробуй ;))) Твою апи, если сам к тому времени не разберешься, я, возможно, гляну на выходных. Достаточно поставить бряк на те порты и, к примеру, в любом виндовом прогрывателе выполнить команду "открыть лоток". |
| Автор: wawan 2.6.2008, 23:39 |
| Spirtoza, у тебя чтонибудь получилось с работой с CD-rom через порты ? я пытаюсь тоже прочитать диск посекторно, но чтото не выходит у меня каменный цветок пока... поделись плз исходничком на любом языке |
| Автор: MAKCim 3.6.2008, 08:57 |
| жесть |
| Автор: W4FhLF 3.6.2008, 09:30 |
| 6 лет... кажется, это рекорд |