Есть немного примеров работы, но почему то компиляторы ругаются на регистр gs. Работал кто то с таким режимом и регистром?
Я работал, компилировал и тасмом, и фасмом - все работает и без проблем компилится. Покажи исходник, чтобы понять, почему не компилится у тебя. (Предполагаю, что не разрешены инструкции директивой типа .386)
Вообще я писал в TC++ через asm{}, он наверное не понимает 386-е и выше. А возможно ли вообще работать линейно с видеопамятью под виндой? И что для этого требуется?
Сам я не пробовал, но по-моему через DirectDraw можно(для WinApp). А для DOSApp, мона попробовать через DPMI+VBE
Сам пробовал, работает великолепно(Одним из методов интерфейса поверхности - получить ее линейный адресс, но неуверен что она применима ко всем типам поверхностей, а не только к primery). Кстати, что самое забавно - работа GDI-шных функции происходит быстрее если их вызывать из под DDraw.
А есть у кого то какие то примеры, исходники и т.д? Нужно всего лишь вертикальную линию вывести на экран, через BIOSные прерывания не фига под виндой не работает
Tohey Через DOS\BIOS под win линейная видеопамять и не будет работать (когда-то давно тоже в это упёрся ) Переходи на DirectDraw
В крайнем случае можно нелинейно - через A000h сегмент и окна видеопамяти - такое в винде работает. Простите, а об какой винде идет речь. У меня в ХР VESA-совместимые режимы вообще не устанавливаются.
О ней и речь. До Win9х включительно можно работать с VESA как в режиме линейной адресации (DPMI), так и с помощью банков. Win2k и выше - линейная адресация не работает т.к. убрали функцию DPMI для отображения физ. адреса на виртуальный. Но режим с использованием банков работает.