Показать сообщение отдельно
Старый 19.09.2007, 10:36   #3
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/101
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Решение нашёл....

Цитата:
Сообщение от ADL Посмотреть сообщение
Решение нашёл, но это то, что получилось у меня, а как делать правильно никто не говорит. Проблема была в том, что при чтении блока, начиная с нулевого адреса я не видел содержимого BOOT сектора, который по идее начинается с нулевого адреса. Установив фильтр на первый символ в BOOTе, я увидел его начало, но адрес, с которого он начинается оставался для меня загадкой. В WINHEX я обратил внимание на такое понятие как скрытые секторы. Умножил количество этих скрытых секторов на количество байт в секторе и полученное смещение подставил в CMD18. В результате я попал точно на начало BOOT сектора. Получается, что в CMD18 передаётся не физический, а логический адрес. Количество скрытых секторов у различных карт разное. Главное, что их количество может быть высчитано из параметров, имеющихся в BOOTе. Таким образом можно получить логическое смещение адреса, которое всегда нужно будет добавлять к задаваемому адресу. Может быть так и задумано, но как то получается немного коряво.

P.S Хотелось бы узнать, как это делается правильно.
Почитайте это сначала. Вообще на электорниксе много инфы на эту тему.
DL36 вне форума   Ответить с цитированием