Помогите неофиту Вопрос одын: Можно ли работать с VESA ТОЛЬКО через порты БЕЗ прерываний VBE? Если можно, то ткните носом в мануал какой-нибудь (честно искал - ничего не нашел) Вопрос два (теоретический): В VESA 2.0 есть такая цацка - можно получить точки входа для функций рабочих в PM. Так вот у кого какие мнения, что будет если их попытаться повызывать из 64 Long Mode (не Compatibility). Помогите, люди добрые.
VBE разрабатывался как интерфейс для совершенно несовместимых (в смысле, не обязательно VGA) видеокарт SVGA, поэтому нет стандартизированных портов для таких карт. Можно попытаться поискать исходники драйверов для осей типа Linux, или дизассемблить дрова Винды, но второй вариант достаточно трудоёмок: обычно такие драйверы содержат десятки файлов. Насчёт 64 Long Mode - сомневаюсь, что что-то хорошее выйдет, этот режим я не особо знаю, но по-моему, там некоторые опкоды имеют совершенно другое значение. Но можно просто попытаться - никто ведь не запрещал
Эээх, досадно Ибо в режим совместимости тоже не очень то хочется спускаться для вызова прерываний VBE. P.S. А ведь как-то этот VBE работает с целой стопкой разного железа... Достать бы исходники с комментариями
Люди добрые, ткните нуба носом в какой-нибудь ДОКУМЕНТИРОВАННЫЙ исходник драйвера для GeForce по PCI-E. Интим не предлагать
Pyromaniac Каждая видео карта снобжается своим биусом. Вот в нем и зашит код для VBE, таким образом у каждой видео карты он свой. Разумеется ни о каких портах и речи быть не может, как уже написал 10110111. Стандар был призван обобщить различные реализации SVGA. Не уверен насчет Long Mode, но помойму работать не будет. Насчет исходник драйверов http://cvsweb.xfree86.org/cvsweb/xc/programs/Xserver/hw/xfree86
Pavia Спасибо огромное за ссылку! Да, с портами я и вправду загнул. _SaNitAr Эээ... Да у меня самого таких книг навалом - только толку-то? Я и без этих книг могу SVGA через DPMI или RM прогать. По крайней мере не видел ни одной книги где с SVGA работали иначе. У меня специфика - чистый Long Mode без ничего. А для чего все это надо? А для зарядки мозгов ну и "джой" вообще. Вот ты, например, зачем на асме прогаешь? Только не надо про быстродействие и размер бинарников - это не так уж и важно. Главное - состояние души (дзен там..., "...я знаю кун-фу..." и пр. 2All BTW что скажете об этом? Просто интересно ваше мнение Код (Text): #define VBE_DISPI_IOPORT_INDEX 0x01CE #define VBE_DISPI_IOPORT_DATA 0x01CF #define VBE_DISPI_INDEX_ID 0x0 #define VBE_DISPI_INDEX_XRES 0x1 #define VBE_DISPI_INDEX_YRES 0x2 #define VBE_DISPI_INDEX_BPP 0x3 #define VBE_DISPI_INDEX_ENABLE 0x4 #define VBE_DISPI_INDEX_BANK 0x5 #define VBE_DISPI_INDEX_VIRT_WIDTH 0x6 #define VBE_DISPI_INDEX_VIRT_HEIGHT 0x7 #define VBE_DISPI_INDEX_X_OFFSET 0x8 #define VBE_DISPI_INDEX_Y_OFFSET 0x9 #define VBE_DISPI_DISABLED 0x00 #define VBE_DISPI_ENABLED 0x01 #define VBE_DISPI_GETCAPS 0x02 #define VBE_DISPI_8BIT_DAC 0x20 #define VBE_DISPI_LFB_ENABLED 0x40 #define VBE_DISPI_NOCLEARMEM 0x80 void vbe_write(USHORT index, USHORT value) { WRITE_PORT_USHORT(VBE_DISPI_IOPORT_INDEX, index); WRITE_PORT_USHORT(VBE_DISPI_IOPORT_DATA, value); } void vbe_set(USHORT xres, USHORT yres, USHORT bpp) { vbe_write(VBE_DISPI_INDEX_ENABLE, VBE_DISPI_DISABLED); vbe_write(VBE_DISPI_INDEX_XRES, xres); vbe_write(VBE_DISPI_INDEX_YRES, yres); vbe_write(VBE_DISPI_INDEX_BPP, bpp); vbe_write(VBE_DISPI_INDEX_ENABLE, VBE_DISPI_ENABLED | VBE_DISPI_LFB_ENABLED); }
Pyromaniac me\чешет репу..." да дзен есть" http://www.google.ru/search?hl=ru&q=open+source+driver+svga+video+windows+xp&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr= такой замечательный проект опен соурс