Проблема:
Я следовал учебному пособию на https://wiki.osdev.org/Drawing_In_Protected_Mode и столкнулся с проблемой рисования пикселя с использованием данной функции.
Что я сделал:
1. Изменен режим видео с использованием BIOS прерывания в загрузчике на 113h (VBE) с http://www.columbia.edu/~em36/wpdos/videomodes.txt стол;
2. Доступ к видеопамяти с использованием заданной функции
/* only valid for 800x600x32bpp */
static void putpixel(unsigned char* screen, int x,int y, int color) {
unsigned where = x*4 + y*3200;
screen[where] = color & 255; // BLUE
screen[where + 1] = (color >> 8) & 255; // GREEN
screen[where + 2] = (color >> 16) & 255; // RED
}
, взятой из статьи, с видеопамятью в макросе
#define VGA 0xA0000
И попытался назвать его следующим образом
putpixel(VGA, 10, 10, 3);
Убедитесь, что это не из-за крошечного пикселя, используя цикл, чтобы попытаться отобразить больше из них
Результаты:
Ожидаемый: пиксель наэкран в QEMU
Актуально: Ничего