Для входа в графический режим требуется полкило 16-битного кода (boot/bootvesa.inc).
Этот код намертво привязан к сервису VESA VBE, и по большому счету делает только 3 полезных действия:
- определяет список доступных видеорежимов;
- включает нужный режим;
- узнает физический адрес фреймбуфера.
Первый пункт уже неактуален: ЭЛТ-мониторы остались в далёком прошлом, а на LCD-системах только один видеорежим, и каждый его у себя знает.
В #3163 выкинул VESу нафиг.
Код полегчал почти на килобайт, причем размер 16-битного кода в Колибри.А - всего 619 байт.
: Что какбы само по себе наводит на мысль об односекторном загрузчике...
Гудбай, VESA !
Тоже так считаю. Молодец.
http://asmcode.ru/viewtopic.php?f=15&t=43
http://asmcode.ru/viewtopic.php?f=15&t=43
art_zh. Вопрос, а где можно документацию найти на AtomBIOS int 0x10 (работа с видеокартой и список видеорежимов)?
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
пока что только здесь:
http://wwwd.amd.com/amd/devsite.nsf/hom ... ment&login

Не понимаю почему 16-битная спецификация 2002-го года до сих пор лежит под NDA.
Ничего там экстраординарного нет, гораздо больше инфы можно найти в уже открытых доках
http://developer.amd.com/resources/docu ... /#open_gpu
http://wwwd.amd.com/amd/devsite.nsf/hom ... ment&login
Не понимаю почему 16-битная спецификация 2002-го года до сих пор лежит под NDA.
Ничего там экстраординарного нет, гораздо больше инфы можно найти в уже открытых доках
http://developer.amd.com/resources/docu ... /#open_gpu
#3176
Размер 16-битного кода - 257 байт.
а слабо прыгнуть в х32 прямо из бутсектора ?..
Размер 16-битного кода - 257 байт.
а слабо прыгнуть в х32 прямо из бутсектора ?..
Перевод в 32 битный режим дополнительных процессоров, да и загрузочного, должен быть в коде, адрес начала которого должен быть кратен 12 битам, т.е. в начале страницы. Межпроцессорное прерывание, которое запускает процессоры, стартует их на начале любой страницы. Я уже рассказывал как это делается.
и таки-что Вы себе из этого дедуктируете?Стас wrote:Перевод в 32 битный режим дополнительных процессоров, да и загрузочного, должен быть в коде, адрес начала которого должен быть кратен 12 битам, т.е. в начале страницы. Межпроцессорное прерывание, которое запускает процессоры, стартует их на начале любой страницы. Я уже рассказывал как это делается.
что загрузчик 32-битного ядра нельзя уместить в одном секторе?
или что размер 16-битного кода не может быть меньше 4096 байт??
Код по ссылке ужасен, смог вытерпеть только первые строчки, не советую его показывать!
Если можно то напишите чем ужасен приведёный ассемблерный код для "стороннего" наблюдателя за развитием данного проекта.Стас wrote:Код по ссылке ужасен, смог вытерпеть только первые строчки, не советую его показывать!
Мне самому не безралично использование ассемблера и был опыт асм программирования и кроме того есть некоторые свои соображения по асм тематике,
которые, впрочем, озвучивать наверное не так принципиально в силу некоторых сопутствующих "религиозных" пристрастий.
стас
и тем не менее этот код уже 10 лет как грузит 32-битное ядро и прыгает в него без всяких прерываний.
а как насчет ответиков на вопросики?
и тем не менее этот код уже 10 лет как грузит 32-битное ядро и прыгает в него без всяких прерываний.
а как насчет ответиков на вопросики?
А, можешь своей документацией поделиться? Интересует только взаимодействие с BIOS.art_zh wrote:пока что только здесь:
http://wwwd.amd.com/amd/devsite.nsf/hom ... ment&login
Не понимаю почему 16-битная спецификация 2002-го года до сих пор лежит под NDA.
Ничего там экстраординарного нет, гораздо больше инфы можно найти в уже открытых доках
http://developer.amd.com/resources/docu ... /#open_gpu
Сложно реализовать в 420-байтном пространстве FAT32 BOOTSECT'ора, да и смысл в этом отсутствует, хотя примеров многоart_zh wrote:и таки-что Вы себе из этого дедуктируете?Стас wrote:Перевод в 32 битный режим дополнительных процессоров, да и загрузочного, должен быть в коде, адрес начала которого должен быть кратен 12 битам, т.е. в начале страницы. Межпроцессорное прерывание, которое запускает процессоры, стартует их на начале любой страницы. Я уже рассказывал как это делается.
что загрузчик 32-битного ядра нельзя уместить в одном секторе?
или что размер 16-битного кода не может быть меньше 4096 байт??
... а мужики-то и не знали...
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
Извини, не могу.А, можешь своей документацией поделиться? Интересует только взаимодействие с BIOS.
Не потому что боюсь слететь с NDA, а просто потому что когда его подписывал - обещал ни с кем не делиться.
Но еще раз: в АтомБиосе вообще ничего такого экстраординарного нет, гораздо надежнее и удобнее выбирать нужный графический режим уже в 32-битном пространстве, используя для этого давно открытые инструменты.
ATIKMS же вполне себе опенсорс, надо только выдернуть из мегабайта плюсов сотню-другу байт полезного кода.
Смысл в этом есть.Сложно реализовать в 420-байтном пространстве FAT32 BOOTSECT'ора, да и смысл в этом отсутствует, хотя примеров много
А примеров (HelloWorld - не в счет) очень немного.
Who is online
Users browsing this forum: No registered users and 4 guests