OSDev http://osdev.su/ |
|
VESA VBE http://osdev.su/viewtopic.php?f=6&t=1116 |
Страница 1 из 1 |
Автор: | kailot2 [ 30 сен 2015, 06:55 ] |
Заголовок сообщения: | VESA VBE |
Всем привет, знаю, тема изъезженная , но , перелопатив тонны форумов так и не нашел вопрос на свой ответ. Собственно , сабж : как включить lfb и изменить его базовый адрес в vesa? Допустим я установил 105 режим веса (1024*768*8bit) ,а дальше? |
Автор: | Nable [ 30 сен 2015, 09:07 ] |
Заголовок сообщения: | Re: VESA VBE |
Сменить - никак (разве что через перепрограммирование видеокарточки, соотв. процедура зависит от производителя и модели), впрочем, не представляю зачем менять его физический адрес, если в итоге работать с виртуальными. Получить - через получение информации о режиме, INT 0x10, AX=0x4F01, CX=номер_режима. http://wiki.osdev.org/Getting_VBE_Mode_Info |
Автор: | kailot2 [ 30 сен 2015, 10:30 ] |
Заголовок сообщения: | Re: VESA VBE |
Спасибо за информацию) |
Автор: | pavia [ 03 окт 2015, 15:43 ] |
Заголовок сообщения: | Re: VESA VBE |
Для включения LFB надо сделать следующее. Проверить поддерживает ваша видео карта LFB VBE 3.0 Func_4f01h. А затем при выборе режима присвоить единицу 14 биту (считая от 0). VBE 3.0 Func_4f02h Если не путаю, то LFB появился в VBE 2.0 Поддержку LFB надо проверять для каждого режима. А по поводу изменения адреса не понятно зачем это нужно? 1) При помощи виртуальной памяти можно отобразить буфер куда надо. Код: for i:=0 to (LFBSize+PageSize-1) div PageSize -1 do begin PageMap(TAddrVirtual(NewAddr+i*PageSize),TAddrPhisical(LFB+i*PageSize),PageFlags); end; PageMap - не привожу так как там много строк кода. 2) Можно изменять размеры фрейма и его положения относительно LFB. Это позволит создать тройной буфер. И прочие спец эффекты. Func_4F07h. Пара примеров: http://www.codenet.ru/progr/video/vesa12ex.php Вот первоисточник: там 3 страницы. http://www.osp.ru/pcworld/1998/08/159480/ 3) Цитата: (разве что через перепрограммирование видеокарточки, соотв. процедура зависит от производителя и модели) Не совсем так. Есть такая вещь как PCI MMIO и PCI RAM. Так что подвинуть не сложно. Но таки да есть специфика от железа. Перемещать можно в приделах PCI hole, а вот что-бы подвигать PCI hole надо делать под каждую материнку. Во вторых двигать PCI MMIO и PCI RAM можно кратно их размерам. И свободного места мало, так что двигать придётся все устройства. |
Автор: | mrlolthe1st [ 05 авг 2018, 03:51 ] |
Заголовок сообщения: | Re: VESA VBE |
Код: mov ax,0x3000
mov es,ax mov [es:0x0000],byte 1 mov di,0x0000 mov cx,0x118 mov ax,0x4F01 int 0x10;Get VESA Mode Info, to ES:DI Табличка, по смещению 12h(0x3000:0x12) лежит 4х байтный указатель на LFB mov ax,0x4F02 mov bx,0x4118;врубаем 118 режим int 10h |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |