LBA48

Тема в разделе "WASM.OS.DEVEL", создана пользователем AntiB, 20 май 2007.

  1. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Доброе время суток, у меня небольшой вопрос: как использовать LBA48? Зарание благодарен
     
  2. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    Также как 32, только используются версии функции с потфиксом _EX. Подробности - спецификация ATA/ATAPI 6
     
  3. Exception13

    Exception13 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    66
    Адрес:
    Владимир
    Эт где вы 32 битную адресацию откопали ?
    Всегда вроде 28 бит было.
    А как врубается 48 бит адресация надо смотреть стандарт ATA/ATAPI, перед глазами сейчас нет, но в общих чертах, что помню:
    формат передаваемого устройству пакета остался тем же самым с небольшой лишь разницей: загрузка регистров адресов сектора теперь производится в два этапа: сначала младшая часть первые 28 бит, потом старшая, ну а потом комманда на выполнение.
     
  4. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    Ну в смысле да :)

    Наоборот, сначала старшая, затем младшая. С регистром SectorCount то же самое.
     
  5. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Кажеться разобрался с LBA48 спасибо: Pavia, gilg, Exception13, но зато у меня появился другой вопрос =).
    Я считал MBR своево ХДД(подключен через SATA на 160ГБ), у меня два диски, и посмотрел таблицу розделов, она у меня такая:
    07 - ето типа основной раздел
    05 - ето розшыренной раздел, поетому решыл считать ево BR, но когда считал чтото по адресу: 0445C7EEh и мне выдало всё 00 - почему?

    ищо какето страные значения стоят около таблицы разделов:
    что ето за значения?
    Может ктото поможет? Зарание спасибо.
     
  6. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    0445C7EEh - это номер сектора в формате CHS. Его надо сконвертить в LBA48, а потом читать (ну или юзать 13-е прерывание). Как получить адрес в LBA написано здесь: http://akina.hop.ru/mbr.php3. В LBA48 не знаю.
     
  7. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    gilg
    0445C7EEh - ето номер сектора в формате LBA, а в формате CHS - ето ранше идет. Я также брал и считывал MBR и также смотрел, но у другого ХДД (IDE 40 ГБ), так вот - там я считал BR розшыренного раздела и всё - гуд, а вот в ХДД что подключен через SATА - чтото не хочет читать или я нетуда смотрю, я вот спрашываю может в LBA48 есть какоето розшырения, поетому и спросил о странных числах перед таблицей разделов
     
  8. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Доброй ночи кодеры, я розобрался с проблемой, по тестированию оказываеться что у меня неверно работает LBA48. Может ктото дать Список - что в какой порт посылать - на данный момент у меня так:
    Где здесь ошыбка? и есть она вобще. Зарание благодарен!
     
  9. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    AntiB
    Все верно