В моем посте #52 в ветке про Alter раскрывается суть этого хака. А вообще можешь сам понять его суть проанализировав MBR-загрузчики от M$, применявшиеся до выпуска Windows Vista/Seven.
я видел-они как номер диска пишут его. но опять это для экономии одной переменной(места). последний для 7 уже сожраняет именно dl для этих целей
ты сам как бит проверяешь или чисто на значение 80h? ты встречал другие значения? и про то что ты игнорируешь несколько активных и грузишь первый. я с этим согласен. но если сотрут твой alter то будет ошибка PT. хотя я тоже за наличие нескольких активных разделов. зато бут менеджер будет знать какие из них грузятся)
Формально признаком активного раздела я считаю установленный старший бит, а не значение 80h, поэтому и назвал диапазон недопустимых значений 1-7Fh.
надеюсь ты сам его в качестве номера диска не используешь) а сам 80 пишешь? я просто собрался писать анализатор чтоб выявить mbr это или нет. и если брать во внимание не только 0 и 80h. а еще и 81h-0ffh то совпадений с кодам получается очень много( вот и интересуюсь сами то встречали значения отличные от 80h??
или как я уже писал, забить и пусть пользователь сам выбирает в биос тип флешки(hdd или fdd). и использовать тупо номер диска для определения? -но это не справедливо по отношению к чайникам, которые не знают даже про существование чего-то(биоса) кроме windows)
Не только Alter игнорирует присутствие нескольких активных разделов (это сделано целенаправленно, а не ради упрощения). Тот же MBR-загрузчик от Windows Vista/Seven вроде бы тоже так делает.
это для того чтоб влез код TCG которого раньше не было. заты были проверки на наличие только одного раздела. и полный проход pt для проверки значения только 80 и 0. хотя проверка PT эта не забота mbr. но проверить не мешало бы)
если глянуть здесь http://mirror.href.com/thestarman/asm/mbr/W7MBR.htm то видно что у них нет свободного места. по этому и опущена половина проверок. у них и chs не то что не преобразовывается из lba. оно даже не проверяется на лимит)
Я с мобильника не успеваю отвечать на вопросы ))) Я использую DL. Про слишком много различных свободных значений согласен. Возможно, есть смысл помимо нуля оставить лишь несколько валидных значений 80h+. А что их встречать, когда я сам могу прописать другое значение и это будет работать.
Ну для начала, попробуйте создать активный раздел на втором винте, например с помощью FDISK от WIN98, а потом озаботитесь изучением истории. В частности выясните, в каком году был придуман этот флаг, и в каком году появилась возможность загрузки с винта кроме стоящего первым мастером. И когда появилась возможность мапить произвольный винт на нулевое (0x80) устройство. Вы исходите из неверных предпосылок, вызванных не достаточным владением сути вопроса. Как "Так"? Я видел несколько способов. А откуда появилось магическое число в 430 байт? По моим расчетам 437 байт свободно. Еще три байта если плюнуть на никогда не используемый стандарт, и 6 если на windows NT. 437+3+4+2+16*4+2.... И вот я смотрю на MBR от ХРюши, там почти 60 байт свободно....
да и с 80 они не сравнивают. а зачем тогда проверять на 1-7fh, достаточно просто проверить на 80(на знак). 1-7fh-не активный 80-ffh-активный. получается справедлива ошибка и для второго. у меня есть даже вывод об отсутствии активного раздела) да и раньше они при ошибке чтения повторяли еще 4 раза. а щас места не хватило) я похож на зациклившегося, но это факт. это видно сразу как глянешь на размер. ведь в старых mbr были две проверки с 0 и 80 отдельно. а все остальное считали ошибочным(стандартный mbr dos).
Не факт, что это сделано из-за нехватки места. Там по размеру много чего можно соптимизировать. Раньше они и DL не использовали, а теперь используют. Короче все списали у меня )))
нельзя во всем роняться на тех кто сам не скем не считается. откуда тогда недопустимые значения 1-7fh. почему не просто проверка на наличие бита 80. все что с ним(80-ff)-активный без(0-7f)-не активный. если вы бит проверяете зачем вы и такой гигант делают на 1-7f. да для экономии и только. иначе тогда вообще ошибки нет только активный и не активный.
- надо чтоб знать структуру флешки. я могу ее определить как fdd(через биос) а отформатирована она в hdd. я уже писал если флеха а fat то я проанализирую bpb и все пойму. но может быть и другая ФС-например ext2.там вообще в BR пусто или все что угодно и нет bpb. -работае потому что сам писал. и знаешь баг mbr. а другие утилиты пишет 80