Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » прочитать свой биос в досе |
<<Назад Вперед>> | Страницы: 1 2 3 4 | Печать |
BreakPoint |
Сообщение отправлено: 3 февраля 2018 0:34 Сообщение отредактировано: 3 февраля 2018 0:35
Теоретически да, но он же в ROMе находится, т.е. перезаписать себя он не может. Такое возможно когда он отображается на основную память, но тогда обычный и отображенный биосы будут отличатся. И зачем оно надо? Может при копировании в основную память не весь код копируется. |
Сейчас на форуме |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
Появится i8088, надеюсь расскажет. |
alecv
Advanced Member
Откуда: Санкт-Петербург Всего сообщений: 5545 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 окт. 2004 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 3 февраля 2018 2:08 Сообщение отредактировано: 3 февраля 2018 2:09
BreakPoint написал: Достаточно, например, махнуть местами D0 и D1 ПЗУ и результаты при чтении "из памяти" будут совершенно отличаться от чтения 'программатором'. Причем для клонировани устройства нужен именно образ считаный "программатором". Я до сих пор не могу понять, почему чтение биоса из памяти компа иногда дает другой результат чем "прошивалка". Или вопрос не об этом ? |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 3 февраля 2018 8:56 Сообщение отредактировано: 3 февраля 2018 8:59
Rio444 написал: Если не рассматривать более современные системы, с упакованным BIOS (тут понятно, Мне кажется биос может сам менять свой код. что чтение памяти не одно и то же, что чтение BIOS, кстати к таким BIOS относится win-AMI для 486, 64KB размером), то: 1.При использовании shadow/cache для Fsegment BIOS уже может копироваться не весь/копироваться с изменениями/меняться в процессе работы (обычно отличия в нескольких байтах). Неплохая аналогия - BIOS-ы PCI cards, которые всегда исполняются из памяти, а не из ROM. Не всегда этот shadow/cache для Fsegment можно отключить по факту. 2. Универсальную програму для чтения BIOS можно попробовать создать, имея документацию на конкретный чипсет (или привязываясь к движку BIOS - если разобраться, что именно меняется при shadow). В более современных системах (Pentium1 +) за отображение ПЗУ BIOS (в частности) на адресное пространство отвечают регистры PAM. 3. alecv написал: Это тоже, но в данном случае рассматривается именно искажение образа ПЗУ, читаемое процессором Достаточно, например, махнуть местами D0 и D1 ПЗУ и результаты при чтении "из памяти" будут совершенно отличаться от чтения 'программатором'. Причем для клонировани устройства нужен именно образ считаный "программатором". из адресного пространства. |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
i8088 написал: Чуть-чуть вчера почитал на эту тему. 1.При использовании shadow/cache для Fsegment BIOS уже может копироваться невесь/копироваться с изменениями/меняться в процессе работы (обычно отличия внескольких байтах). Неплохая аналогия - BIOS-ы PCI cards, которые всегда исполняютсяиз памяти, а не из ROM. Не всегда этот shadow/cache для Fsegment можно отключитьпо факту. Изначально, при загрузке, управление передаётся BIOS в ROM. Но дальше BIOS может делать всё, что хочет. Например, загрузиться вовсе не в диапазон F0000-FFFFF (где он должен быть), а в любой другой. Память пока что девственно чистая. Затем загрузить уже в RAM по адресам F0000-FFFFF любой нужный код. Установить для этой области памяти "Shadow", т.е. обращение будет не в ROM, а в RAM по данным адресам. И включить для этой области памяти режим "только чтение". Ни одна программа ничего не заподозрит, а содержаться по этим адресам будет уже не ROM. Как Вы правильно заметили, делается это всё средствами чипсета. И на разных чипсетах по-разному. Книжка была относительно современная (2007 год). Совсем древние системы там не рассматривались. Поэтому точно не знаю, что там на 386-х и 486-х. |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
i8088 написал: Вот это вряд ли. Иначе была бы невозможна прошивка на программаторе. Такое было только на некоторых старых видеокартах. 3. alecv написал:Это тоже, но в данном случае рассматривается именно искажение образа ПЗУ, читаемое процессоромиз адресного пространства. Достаточно, например, махнуть местами D0 и D1 ПЗУ и результаты при чтении "из памяти" будут совершенно отличаться от чтения 'программатором'. Причем для клонировани устройства нужен именно образ считаный "программатором".Или вопрос не об этом ? |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 3 февраля 2018 15:19 Сообщение отредактировано: 3 февраля 2018 15:21
Rio444 написал: На XT все прозрачно - BIOS исполняется из ROM, из Fseg. На XT DMA обычно не работае по Книжка была относительно современная (2007 год). Совсем древние системы там не рассматривались. адресамв Fseg, но это уже другая тема, поднималась на форуме. На 286-386 то же, но уже на некоторых 286 появился shadow, DMA в Fseg работает. На 486 по разному, на поздних встречается уже вполне современный упакованный Award (SiS 496/497) Rio444 написал: У Award копируется original.tmp в Eseg и Fseg. Примечательно, что original.tmp содержит и Затем загрузить уже в RAM по адресам F0000-FFFFF любой нужный код. почти копию boot-block без декомпрессора. Есть идея, что для облегчения отладки 128KB Award BIOS можно использовать (в некоторых случаях) распакованный original.tmp, просто записанный в ПЗУ. Работать это может, если в упакованных компонентах нет критичных исполняемых модулей (как правило, ранние BIOS 4.5). Никак не соберусь проверить. Rio444 написал: На 286 плате TD60C переставлены линии адреса, с линиями данных нормально Вот это вряд ли. Иначе была бы невозможна прошивка на программаторе. Такое было только на некоторых старых видеокартах. |
IdeaFix |
NEW! Сообщение отправлено: 3 февраля 2018 22:43
La Forge написал: И не только за это... +1 в общем. За одно только это i8088 нужно в рейтинг +несколько пунктов сразу! |
Сейчас на форуме |
Rio444
Гость
Откуда: Ростов-на-Дону Всего сообщений: 8632 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 сен. 2014 |
i8088 подскажите, пожалуйста, что делает Ваша программа bios64.exe? Она просто сохраняет содержимое ячеек F0000-FFFFF в файл, или проделывает ещё какие-то манипуляции? |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 4 февраля 2018 12:23 Сообщение отредактировано: 4 февраля 2018 12:24
Да, просто сохраняет Fsegment (стандартные функции C используют промежуточный буфер, из-за этого нормально работает и на XT без дополнительного создания буфера, тк у большинства XT не работает DMA в Fseg). Делать чипсетозависимые вещи из-за отсутствия документации на старые чипсеты затруднительно. Исходник прилагаю Прикрепленный файл (bios64.c, 0 байт, скачан: 23 раза) |
<<Назад Вперед>> | Страницы: 1 2 3 4 | Печать |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » прочитать свой биос в досе |
0 посетителей просмотрели эту тему за последние 15 минут |
В том числе: 0 гостей, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |