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^^