Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

CD ROM через порты

1.2K
09 декабря 2007 года
piroman17
175 / / 20.07.2006
И опять я со своими тупыми вопросами :D .
Для работы с HDD я использовал проты 1F0-1F7, 170-177, все было хорошо пока не встал вопрос о работе с CD ROM. Через эти порты даже не определяются параметры cd-rom (функция 0EC) - просто возвращает ошибку (ABRT - аварийное прекращение выполнения команды).
Может с сидюком как то по особому надо работать? Подскажите пожалуйста!

P.S. Может подскажете какую нибудь литературу на эту тему?
1.6K
09 декабря 2007 года
Vov4ick
476 / / 01.02.2007
http://t13.org/ Там искать документацию по ATAPI.
Кое-что на русском есть здесь http://www.bookcase.ru/p1/0197.html
551
10 декабря 2007 года
Pavia
357 / / 22.04.2004
Для оптических дисков используют команду IDENTIFY PACKET DEVICE=0A1h
И работа с ними осуществляется иначе чем с HDD.
Можно почитать у Кулакова, у него неплохо работа с дисками описанна.
1.2K
11 декабря 2007 года
piroman17
175 / / 20.07.2006
Спасибо, с идентификацией разобрался.
А вот выдвинуть лоток не могу почему то... Может перед началом работы с cd rom нужно какую-то инициализацию сделать?
1.2K
11 декабря 2007 года
piroman17
175 / / 20.07.2006
С лотком почти разобрался, но он гад не выдвигается :mad:. Описываю последовательность своих действий.
  1. Вызываю команду ATAPI с номером 0 (иначе пишет что произведена смена носителя)
  2. вызываю команду 1b, подфункцию 2. Более подробно:

  3. 3.1) выбираю устройство master/slave
    3.2) посылаю AT команду A0. (начало передачи ATAPI команды)
    3.3) жду готовности устройства
    3.4) отправляю ATAPI пакет 16 байт (именно 16, а не 12 как на старых сидюках)
    3.5) ждём пока не сброситься флаг bsy
    3.6) проверяем флаг - нужно ли передвавть данные: младшие 2 бита в порту 172h = 01
    3.7) если там 00 - передаём данные в сидюк (в данном случае не надо)
    3.8) если там 2 - принимаем данные из сиюдка (в данном случае тоже не нужно)
    3.9) всё

Вроде все понятно кроме пункта 3.6: что это за состояние такое "01"? Почему не выдвигается лоток?

Народ! Может есть у кого ASM'овский исходник процедуры посылания команды в ATAPI CD ROM?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог