Чтение CD в PM

Тема в разделе "WASM.OS.DEVEL", создана пользователем Celestia, 22 дек 2010.

  1. Celestia

    Celestia New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    8
    Здравствуйте, друзья!
    Подскажите пожалуйста, как читать CD (ISO9660, IDE CDROM) диски в защищённом режиме?

    Спасибо :)
     
  2. baldr

    baldr New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2010
    Сообщения:
    327
    Celestia,

    Так же, как и во всех остальных.

    1. Прочитать спецификацию ISO 9960:1988 (или ECMA-119, если деньги дóроги). Понять её.
    2. Прочитать спецификацию ATA-4 (можно и повыше версией, хотя толку не так и много). Понять её.
    3. Присовокупить к вышепрочитанному SFF-8070i (отчасти можно заменить SCSI Primary Commands - 2 и SCSI Block Commands). <Припев>.
    3½. Для защищённого режима: соорудить нормальное окружение (PIO, DMA — по вкусу). Для этого прочитать мануалы по процессору и мостам. <Припев>.
    4. ??? (подразумевается безумный секс с ловлей свежевыращенных блох). Припев меняется на "работай, сволочь!".
    5. PROFIT!!! :derisive:
     
  3. G_A_R_M_R

    G_A_R_M_R New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2010
    Сообщения:
    6
    Привет..... эээ... у мя тоже вопрос..... как получить вендор IDE контролера с помощью io портов?
    mov dx, 1f0h (кажись именно сдесь он находиться... да и пробовал dl куда заноситься номер устройства)
    in al, dx (вывод из порта в al)
    и врезультате вместо 8086h как в мануале к io контролера интеловского выдаёт FFFFh.....
    И смещение(offset) для работы с устройством ведь дается относительно порта?
     
  4. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Почитай как с PCI через I/O порты работать.
    Там вообще-то как минимум адрес устройства (BUS:lol: evice:Function) передавать надо.
     
  5. G_A_R_M_R

    G_A_R_M_R New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2010
    Сообщения:
    6
    Можешь подкинуть пример?
    как должно выглядить обращение.....

    тоесть чтоб обратиться к CDrom'y надо обратиться к PCI -> IDE -> cdrom? правильно понимаю?
     
  6. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    VendorID IDE контроллера находится в конфигурационном пространстве PCI, оттуда и читать надо.
    Чтобы обратиться к CD-ROMу надо из конфигурационного пространства PCI считать базовый адрес I/O портов и потом в соответствии со спецификацией ATA/ATAPI через эти порты работать с устройством.
     
  7. G_A_R_M_R

    G_A_R_M_R New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2010
    Сообщения:
    6
    Спасибо.... сейчас будем разбираться ))