wie meinst du das: "Adress- und Datenregister gleichzeitig mit einem outw zu setzen"?
wenn es mit:
void int32_clear_screen_0x12(char farbe)
{
char Plane0, Plane1, Plane2, Plane3;
if((farbe & 0x1) == 0x1){Plane0 = 0xFF;}
else{Plane0 = 0x00;}
if((farbe & 0x2) == 0x2){Plane1 = 0xFF;}
else{Plane1 = 0x00;}
if((farbe & 0x4) == 0x4){Plane2 = 0xFF;}
else{Plane2 = 0x00;}
if((farbe & 0x8) == 0x8){Plane3 = 0xFF;}
else{Plane3 = 0x00;}
outportw(0x3CE,0x0005);//setup plane masking
outportw(0x3c4,0x0102);//plane 0
k_memset((char*) 0xA0000,Plane0,38400);
outportw(0x3c4,0x0202);//plane 1
k_memset((char*) 0xA0000,Plane1,38400);
outportw(0x3c4,0x0402);//plane 2
k_memset((char*) 0xA0000,Plane2,38400);
outportw(0x3c4,0x0802);//plane 3
k_memset((char*) 0xA0000,Plane3,38400);
outportw(0x3c4,0x0F02);//restore normal plane mask
}
geht, sollte es ja auch mit einem byte gehen^^