[int13/bios] Несколько вопросов про Flash drive и другое.

Тема в разделе "WASM.BEGINNERS", создана пользователем Tronix, 13 сен 2010.

  1. Tronix

    Tronix Member

    Публикаций:
    0
    Регистрация:
    10 сен 2010
    Сообщения:
    122
    Привет,

    Несколько вопросов, если позволите:
    1) Допустим загружаемся с дискеты/хдд. Загружаемся в свою "мега-супер" ось (не дос и не винда). В usb торчит воткнутая flash. Возможно к ней получить доступ с помощью стандартного int 13h (чтение/запись секторов) ? Или зависит от настроек биоса?

    Дальше по бут-сектору WinXP:
    2) Что есть за хрень AH=41h, BX=55AAh и Int 13h ? Вроде какая-то проверка судя по дальнейшим действиям но не очень понятно чего.

    3) Аналогично, но с AX=0BB00h и Int 1ah ?
    3) Не пойму, куда стандартный бут-сектор Win XP после прочтения лоадера прыгает. На 0000:lol: 26A чтоле? Куда управление дальше передавать?

    UPD: Куда на жесткий диск можно записаться 8-10 секторов? В начало, сразу за бут сектором? В самый конец? Ну положим проверить - если нули или FF можно писать. А если нет?

    Спасибо
     
  2. Treant

    Treant Member

    Публикаций:
    0
    Регистрация:
    24 май 2009
    Сообщения:
    261
    1)можно
    2)проверка наличия расширенных функций биоса в частности LBA чтения/записи
    3)там что то с TPM
    3)http://mirror.href.com/thestarman/asm/mbr/NTFSBR.htm
    UPD: Первые 8 кб вроде
    На форуме полно тем об этом.
     
  3. KIV

    KIV Member

    Публикаций:
    0
    Регистрация:
    16 июл 2009
    Сообщения:
    231
    1) Если BIOS поддерживает флешки, то флешка с точки зрения int 0x13 будет обычным жёстким диском.
    2) Это расширенный дисковый сервис BIOS. Позволяет использовать LBA вместо CHS и адресовать намного больше секторов, чем обычный сервис. Правда, к сожалению, не работает для дискет.

    Всё зависит от ФС. Если её нет, то пишите куда хотите, иначе надо заполнить структуру ФС так, чтобы она считала ваши сектора занятыми, а лучше зарезервированными. В FAT есть поле, которое позволяет считать зарезервированными секторами N секторов от начала диска. По умолчанию там 1 - загрузочный сектор, но можно написать и больше. Правда придёться переформатировать диск, чтобы правильно заполнились прочие структуры FAT (если заголовок FAT, корректен, то он не затирается при форматировании, а из него берёться некоторая служебная информация). Ну а лучше сразу работать с ФС. Вполне реально написать загрузчик, который догрузит своё продолжение из файла в корне, а потом сделает ещё много всего полезного. Ну а если постараться, то можно даже написать загрузчик, который будет весить 512 байт, но при этом уметь загрузить список файлов, загрузить эти файлы в память, с поддержкой каталогов и не чувствительности к регистру, с выводом информационных сообщений. Правда я подобный загрузчик писал не для FAT.
     
  4. Tronix

    Tronix Member

    Публикаций:
    0
    Регистрация:
    10 сен 2010
    Сообщения:
    122
    Treant, спасибо, принято.

    KIV, Это все понятно, я имел ввиду обычную систему с WinXP и NTFS. С Фатом тоже все понятно более чем и даже реализовано. А вот с NTFS очень не хочется связываться.
    В любом случае если даже и связываться, то в 512 (а реально много меньше, из-за блока инфа о разделе) никак мне не уложится. Поэтому в любом случае нужно основной загрузчик куда-то писать на диск...