Проблемы с установкой видеорежима

  • Автор темы MMMasha
  • Дата начала
M

MMMasha

Гость
#1
Помогите мне пожалуйста. Есть такая проблема, на субноутбуке с разрешением 1024х600 не получается выставить видеорежим 800х600 (103h по стандарту VESA).
Работаю в среде Турбо Си версии 2.01. Попытка выставить режим осуществлялась следующим кодом:

#include<stdio.h>
#include<dos.h>

unsigned char far * Mem_SVGA = (unsigned char far *) 0xA0000000;

int main(){
union REGS in_r, out_r;
in_r.x.ax=0x4F02;
in_r.a.bx=0x103h;
int86(0x10, &in_r, &out_r);

/* ставим пиксель (100,100) */
*(Mem_SVGA+800*100+100)=1;
getch();
}

Дело в том, что код рабочий и режим выставляет, пиксель на экране ставит. но! Если я в момент выполнения прграммы переключаюсь на другое окно винды (Alt+Tab) появляется чёрный экран и всё виснет..... далее синий экран смерти и перезагрузка. Такой же эффект после завершения программы и выход в среду турбо Си - если я из турбо си пробую выйти после работы проги или переключить окно...
Уж не знаю что и делать!!! Ведь в выходных регистрах AH = 0 и AL = 4F то есть это признак того что данный режим 103h поддерживается. Причём этот код прекрасно работает на обычных ноутбуках с разрешением 1024 на 768 а на субноутбуках никак (тестировалось на ASUS EEE и LENOVO s10)... Вот. какие у кого мысли?
 
M

MMMasha

Гость
#2
НУ ПОМОГИТЕ МНЕ ГОСПОДА!!! ПОЖАЛУЙСТА! ПРОСТО НЕ К КОМУ УЖЕ ОБРАТИТЬСЯ(