typedef struct { char red; char green; char blue; } RGB; void setcolor(int index, RGB *newdata) { outportb(0x3C8, index); outportb(0x3C9, newdata->red); outportb(0x3C9, newdata->green); outportb(0x3C9, newdata->blue); } void getcolor(int index, RGB *color) { outportb(0x3C7, index); color->red=inportb(0x3C9); color->green=inportb(0x3C9); color->blue=inportb(0x3C9); } void setpal(char *palette) { int c; outportb(0x3C8, 0); for(c=0; c<256*3; c++) outportb(0x3C9, palette[c]); } void getpal(char *palette) { int c; outportb(0x3C7, 0); for(c=0; c<256*3; c++) palette[c]=inportb(0x3C9); } void rotatepal(int startcolor, int endcolor, char *palette) { char r, g, b; int c; r=palette[startcolor*3+0]; /* tallennamme ensimm„iset v„rit ja siirr„mme */ g=palette[startcolor*3+1]; /* ne lopuksi loppuun. T„m„ paletti py”rii siten, */ b=palette[startcolor*3+2]; /* ett„ viimeinen v„ri kulkeutuu kohti alkua */ for(c=startcolor*3; cnewpalette[color]) temppal[color]--; else if(temppal[color]