Page 1 of 1

Гудбай, VESA !

Posted: Fri Jan 11, 2013 8:16 pm
by art_zh
Для входа в графический режим требуется полкило 16-битного кода (boot/bootvesa.inc).

Этот код намертво привязан к сервису VESA VBE, и по большому счету делает только 3 полезных действия:
- определяет список доступных видеорежимов;
- включает нужный режим;
- узнает физический адрес фреймбуфера.

Первый пункт уже неактуален: ЭЛТ-мониторы остались в далёком прошлом, а на LCD-системах только один видеорежим, и каждый его у себя знает.

В #3163 выкинул VESу нафиг.

Код полегчал почти на килобайт, причем размер 16-битного кода в Колибри.А - всего 619 байт.

: Что какбы само по себе наводит на мысль об односекторном загрузчике...

Re: Гудбай, VESA !

Posted: Sat Jan 12, 2013 6:38 am
by Стас
Тоже так считаю. Молодец.
http://asmcode.ru/viewtopic.php?f=15&t=43

Re: Гудбай, VESA !

Posted: Wed Jan 16, 2013 7:08 pm
by Artyom
art_zh. Вопрос, а где можно документацию найти на AtomBIOS int 0x10 (работа с видеокартой и список видеорежимов)?

Re: Гудбай, VESA !

Posted: Wed Jan 16, 2013 9:31 pm
by art_zh
пока что только здесь:
http://wwwd.amd.com/amd/devsite.nsf/hom ... ment&login
:(

Не понимаю почему 16-битная спецификация 2002-го года до сих пор лежит под NDA.
Ничего там экстраординарного нет, гораздо больше инфы можно найти в уже открытых доках
http://developer.amd.com/resources/docu ... /#open_gpu

Re: Гудбай, VESA !

Posted: Thu Jan 17, 2013 3:15 am
by art_zh
#3176
Размер 16-битного кода - 257 байт.

а слабо прыгнуть в х32 прямо из бутсектора ?..

Re: Гудбай, VESA !

Posted: Thu Jan 17, 2013 5:34 am
by Стас
Перевод в 32 битный режим дополнительных процессоров, да и загрузочного, должен быть в коде, адрес начала которого должен быть кратен 12 битам, т.е. в начале страницы. Межпроцессорное прерывание, которое запускает процессоры, стартует их на начале любой страницы. Я уже рассказывал как это делается.

Re: Гудбай, VESA !

Posted: Thu Jan 17, 2013 10:59 am
by art_zh
Стас wrote:Перевод в 32 битный режим дополнительных процессоров, да и загрузочного, должен быть в коде, адрес начала которого должен быть кратен 12 битам, т.е. в начале страницы. Межпроцессорное прерывание, которое запускает процессоры, стартует их на начале любой страницы. Я уже рассказывал как это делается.
и таки-что Вы себе из этого дедуктируете?

что загрузчик 32-битного ядра нельзя уместить в одном секторе?

или что размер 16-битного кода не может быть меньше 4096 байт??

:lol: ... а мужики-то и не знали...

Re: Гудбай, VESA !

Posted: Thu Jan 17, 2013 12:16 pm
by Стас
Код по ссылке ужасен, смог вытерпеть только первые строчки, не советую его показывать!

Re: Гудбай, VESA !

Posted: Thu Jan 17, 2013 2:55 pm
by Kopa
Стас wrote:Код по ссылке ужасен, смог вытерпеть только первые строчки, не советую его показывать!
Если можно то напишите чем ужасен приведёный ассемблерный код для "стороннего" наблюдателя за развитием данного проекта.
Мне самому не безралично использование ассемблера и был опыт асм программирования и кроме того есть некоторые свои соображения по асм тематике,
которые, впрочем, озвучивать наверное не так принципиально в силу некоторых сопутствующих "религиозных" пристрастий.

Re: Гудбай, VESA !

Posted: Thu Jan 17, 2013 4:08 pm
by art_zh
стас
и тем не менее этот код уже 10 лет как грузит 32-битное ядро и прыгает в него без всяких прерываний.

а как насчет ответиков на вопросики?

Re: Гудбай, VESA !

Posted: Thu Jan 17, 2013 8:04 pm
by Artyom
art_zh wrote:пока что только здесь:
http://wwwd.amd.com/amd/devsite.nsf/hom ... ment&login
:(

Не понимаю почему 16-битная спецификация 2002-го года до сих пор лежит под NDA.
Ничего там экстраординарного нет, гораздо больше инфы можно найти в уже открытых доках
http://developer.amd.com/resources/docu ... /#open_gpu
А, можешь своей документацией поделиться? Интересует только взаимодействие с BIOS.
art_zh wrote:
Стас wrote:Перевод в 32 битный режим дополнительных процессоров, да и загрузочного, должен быть в коде, адрес начала которого должен быть кратен 12 битам, т.е. в начале страницы. Межпроцессорное прерывание, которое запускает процессоры, стартует их на начале любой страницы. Я уже рассказывал как это делается.
и таки-что Вы себе из этого дедуктируете?

что загрузчик 32-битного ядра нельзя уместить в одном секторе?

или что размер 16-битного кода не может быть меньше 4096 байт??

:lol: ... а мужики-то и не знали...
Сложно реализовать в 420-байтном пространстве FAT32 BOOTSECT'ора, да и смысл в этом отсутствует, хотя примеров много :)

Re: Гудбай, VESA !

Posted: Thu Jan 17, 2013 9:06 pm
by art_zh
А, можешь своей документацией поделиться? Интересует только взаимодействие с BIOS.
Извини, не могу.
Не потому что боюсь слететь с NDA, а просто потому что когда его подписывал - обещал ни с кем не делиться.

Но еще раз: в АтомБиосе вообще ничего такого экстраординарного нет, гораздо надежнее и удобнее выбирать нужный графический режим уже в 32-битном пространстве, используя для этого давно открытые инструменты.

ATIKMS же вполне себе опенсорс, надо только выдернуть из мегабайта плюсов сотню-другу байт полезного кода.
Сложно реализовать в 420-байтном пространстве FAT32 BOOTSECT'ора, да и смысл в этом отсутствует, хотя примеров много :)
Смысл в этом есть.
А примеров (HelloWorld - не в счет) очень немного.