Помогите мне пожалуйста. Есть такая проблема, на субноутбуке с разрешением 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)... Вот. какие у кого мысли?