OSDev

для всех
Текущее время: 09 май 2024, 15:46

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 129 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 13  След.
Автор Сообщение
 Заголовок сообщения: Re: Загрузка с флешки
СообщениеДобавлено: 24 ноя 2011, 09:26 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Станислав писал(а):
в сатавском диске их небыло, а в аташном помоему есть
Матчасть учить надо. Многие пользователи это знают, а ты типа на звание сис. программиста претендуешь. Дело не в ATA, SATA или USB, а в разметке диска. Есть разметка с разделами и MBR (практически все жесткие диски, подавляющее большинство флешек), а также есть разметка без разделов (флоппики, некоторые флешки).

Цитата:
Сейчас думаю перейти в длинный реальный режим и скопировать пару сотен секторов в верхнюю память
Из реального режима этого не сделать ни как?
Многократно переключаешься в PM и обратно. Не так давно на wasm'е эта тема всплывала.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка с флешки
СообщениеДобавлено: 24 ноя 2011, 12:53 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
естественно дело как оказалось в разметке диска, не важно юсб ата сата. Функция 42 требует добавления скрытых секторов к первому, но почему ни где не написано об этом, и как оказалось этого ни кто не знает или упорно умалчивает.

переключением из реального в зашишеный читать диск в верхнюю память тоже вариант.
Допустим у меня есть буфер в первом мегабайте 07E00-9FFFF=623103байт
я могу скопировать туда любые сектора с флешки потом перевестись в зашишеный режим и скопировать свою информацию в верхнюю память.
Алгоритм у меня правильный?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка с флешки
СообщениеДобавлено: 24 ноя 2011, 13:44 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Станислав писал(а):
естественно дело как оказалось в разметке диска, не важно юсб ата сата. Функция 42 требует добавления скрытых секторов к первому, но почему ни где не написано об этом, и как оказалось этого ни кто не знает или упорно умалчивает.
Прибавлять нужно, если твои данные находятся в разделе, но ты можешь разместить свой код в MBR и использовать под свои нужды сектор с 1 по 62 (при линейной нумерации), т.е. 31 кб. В Win7 при разметке вообще целый метр (1 мегабайт) перед первым разделом остается. Более того, ты можешь уменьшить размер раздела(ов) диска, высвободив под свои нужды участок(ки) требуемого размера.

Цитата:
Алгоритм у меня правильный?
Да, только в базовой памяти под границей 640 кб находится область EBDA - ее лучше не разрушать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка с флешки
СообщениеДобавлено: 24 ноя 2011, 14:23 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Я говорю про первый сектор который видит биус и считает его загрузочным.
В програме dmde-free-2.2.2-win32-gui сектора тоже начинаются с этого сектора, скрытые он ни как не показывает, хотя говорит о них, но доступа не дает к ним или я не все функции посмотрел, может быть там можно открыть их тогда отсчет пойдет от первого, надо посмотреть. А функция 42 видимо более продвинутая. Т.е. биус тоже прибавляет скрытые.

Если вы вкурсе подскажите при переходе в зашишеный режим адрес на буфер 0:07E00 останится тотже.
Можно будет объявить источник например esi 07E00, а приёмник adi например 1E8480=2000000байт
и копировать какой лучше командой?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка с флешки
СообщениеДобавлено: 24 ноя 2011, 16:50 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Станислав писал(а):
Я говорю про первый сектор который видит биус и считает его загрузочным.
В програме dmde-free-2.2.2-win32-gui сектора тоже начинаются с этого сектора, скрытые он ни как не показывает, хотя говорит о них, но доступа не дает к ним или я не все функции посмотрел, может быть там можно открыть их тогда отсчет пойдет от первого, надо посмотреть. А функция 42 видимо более продвинутая. Т.е. биус тоже прибавляет скрытые.
Ты физический диск открывай, а не логический том, тогда собственно и получится нумерация секторов, какая она есть на самом деле. BIOS'ы и их настройки конечно разные бывают, но из того, что ты сказал ранее, можно сделать вывод, что в данном случае BIOS дает доступ ко всему физическому диску, а вот пишешь ты на диск, используя доступ через логический том.

Цитата:
Если вы вкурсе подскажите при переходе в зашишеный режим адрес на буфер 0:07E00 останится тотже.
Можно будет объявить источник например esi 07E00, а приёмник adi например 1E8480=2000000байт
и копировать какой лучше командой?
Все вопросы, которые ты здесь поднимаешь, многократно освещены, в том числе и на страницах данного форума (плюс вики). Настоящий системщик так не делает: "будем надеяться, что память по адресу 0x1E8480 есть и доступна". Он делает так: "нужно получить список доступных участков дополнительной памяти, после чего выбрать подходящий по размеру участок" или, что еще лучше, "даже если дополнительная память фрагментирована, включить пэйджинг и с использованием дополнительной памяти собрать непрерывный участок виртуальной памяти нужного размера, если памяти в принципе достаточно". Я к примеру до упора заполняю базовую память, потом переключаюсь в защищенный режим, включаю пейджинг и выполняю копирование, больше не возвращаясь в реальный режим. Мне достаточно кода размером порядка 600 кб (на самом деле сейчас значительно меньше), чтобы выполнять дальнейшую "раскрутку" исключительно в защищенном режиме. Команда rep movsd.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка с флешки
СообщениеДобавлено: 24 ноя 2011, 18:26 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Да логический том открывает первые 63 сектора, но если изменим первый сектор, то биус не будет воспринимать флешку вообше как диск, мы испортим разметку. Получается, что первый загрузочный сектор идет на физическом диске, и когда копируем на физический диск 2 и 3 то функция 42 воспринимает их на логическом как 64 и 65, или какое там зависит от смешения


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка с флешки
СообщениеДобавлено: 24 ноя 2011, 18:56 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Цитата:
но если изменим первый сектор, то биус не будет воспринимать флешку вообше как диск,

Это все сказки малограмотных людей. Если ты изменишь первый сектор, то с флэшкой ничего не случится. Именно его и стоило менять.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка с флешки
СообщениеДобавлено: 24 ноя 2011, 20:48 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Зря ты это сказал. Ща он таблицу разделов затрет. Станислав, см. начало темы, где я про MBR-загрузчик говорил. Нет, конечно можно и затереть, только зачем? У меня почти все флешки и диски или по особому разбиты, или содержат специфические загрузчики, или и то, и другое вместе, однако мне это не мешает использовать их по прямому назначению. Кроме использования для хранения твоего кода/данных областей, не относящихся к разделам, могу предложить сделать раздел какого-нибудь "левого" типа и использовать его всецело для собственных нужд. Тогда ты сможешь экспериментировать и на уровне MBR-загрузчика, и инициировать процесс загрузки с твоего раздела при помощи стандартного MBR-загрузчика, причем не нужно будет париться по поводу формата этого раздела - разместил загрузочную сигнатуру в конце первого сектора раздела и радуйся. Выложи следующие сведения: дамп первого физического сектора твоей флешки, физический размер флешки в секторах.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка с флешки
СообщениеДобавлено: 25 ноя 2011, 05:08 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
МБР для меня ничего не говорит к сожелению.
А по поводу создания двух физических дисков, один видимый, а другой, не видимый можно заполнить самой осью т.е. картинки, шрифты библиотеки драйвера хранить там даже без файловой системы, просто одним потоком который будет грузиться в оперативку посекторно один за другим.
Среди 63 первых секторов должны быть свободные, но точно не первый. Я его обнулил и вместо "Давайте отформатируем" увидел "Вставте диск". Но опять же видимый только виндой и загрузчиком. А у функция, 42 работает с лигическим диском, у нее есть только пораметр номер сектора, а на каком физическом диске он лежит ей ровно.

Что делает МБР загрузчик, кто его грузит, где он находится(логическом, физическом) я не знаю!!!
Асмом пользуюсь только месяц, я же говорил. Мне нужно только загрузиться в верхнюю память, посадить резидентов, которые обрабатывают клаву и мыш, и передают другим функциям, и графический интерфеёс хотябы 640*480*32 и все.
Пока просто гружусь и в зашишеном режиме работаю с видео памятью 640*480*32 на прямую, осталось подгрузить несколько мегабайтов в верхнюю память. Тогда уже займусь своим делом. Рисованием объектов, виджитов, кнопок, менюшек, мне это больше нравится, они у меня будут росписные;)))).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка с флешки
СообщениеДобавлено: 25 ноя 2011, 05:27 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Цитата:
Что делает МБР загрузчик, кто его грузит, где он находится(логическом, физическом) я не знаю!!!

Любишь кататься люби и саночки возить.

http://lmgtfy.com/?q=%D0%BF%D0%B8%D1%88%D0%B5%D0%BC+%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 129 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 13  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 85


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB