Для входа в графический режим требуется полкило 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 0 guests