OSDev

для всех
Текущее время: 28 мар 2024, 18:34

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: VESA VBE
СообщениеДобавлено: 30 сен 2015, 06:55 

Зарегистрирован: 09 янв 2015, 04:04
Сообщения: 35
Всем привет, знаю, тема изъезженная , но , перелопатив тонны форумов так и не нашел вопрос на свой ответ. Собственно , сабж : как включить lfb и изменить его базовый адрес в vesa?
Допустим я установил 105 режим веса (1024*768*8bit) ,а дальше?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VESA VBE
СообщениеДобавлено: 30 сен 2015, 09:07 

Зарегистрирован: 26 мар 2012, 17:32
Сообщения: 209
Сменить - никак (разве что через перепрограммирование видеокарточки, соотв. процедура зависит от производителя и модели), впрочем, не представляю зачем менять его физический адрес, если в итоге работать с виртуальными. Получить - через получение информации о режиме, INT 0x10, AX=0x4F01, CX=номер_режима. http://wiki.osdev.org/Getting_VBE_Mode_Info


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VESA VBE
СообщениеДобавлено: 30 сен 2015, 10:30 

Зарегистрирован: 09 янв 2015, 04:04
Сообщения: 35
Спасибо за информацию)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VESA VBE
СообщениеДобавлено: 03 окт 2015, 15:43 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Для включения 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 можно кратно их размерам.
И свободного места мало, так что двигать придётся все устройства.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VESA VBE
СообщениеДобавлено: 05 авг 2018, 03:51 

Зарегистрирован: 05 авг 2018, 03:23
Сообщения: 6
Код:
   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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB