OSDev
http://osdev.ru/

VESA VBE
http://osdev.ru/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/