- byte *p = bmp->palette;\r
- word w=0;\r
- word q=0;\r
- word qq=0;\r
- static word a[PAL_SIZE]; //palette array of change values!\r
- word z=0, aq=0, aa=0, pp=0;\r
-\r
- modexWaitBorder();\r
- if((*i)==0)\r
- {\r
- memset(a, -1, sizeof(a));\r
- outp(PAL_WRITE_REG, 0); /* start at the beginning of palette */\r
- }\r
- else if(qp==0)\r
- {\r
- q=(*i);\r
- }\r
- else\r
- {\r
- q=(*i);\r
- qq=(*i)/3;\r
-// printf("q: %02d\n", (q));\r
-// printf("qq: %02d\n", (qq));\r
- //printf(" (*i)-q=%02d\n", (*i)-q);\r
- outp(PAL_WRITE_REG, qq); /* start at the beginning of palette */\r
- }\r
- if((*i)<PAL_SIZE/2 && w==0)\r
- {\r
- for(; (*i)<PAL_SIZE/2; (*i)++)\r
- {\r
- //if(i%3==0 && (p[i+5]==p[i+4] && p[i+4]==p[i+3] && p[i+3]==p[i+2] && p[i+2]==p[i+1] && p[i+1]==p[i] && p[i+5]==p[i]))\r
-//____ if((qp>0)&&((*i)-q)%3==0 && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5])) outp(PAL_DATA_REG, p[(*i)-q]); else\r
- if(((((*i)-q)%3==0)) && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5]))\r
- {\r
- w++;\r
- break;\r
- }\r
- else if(qp>0 && (*i)>=(qp) && (*i)<((qp)+3))\r
- {\r
- //printf("qp=%d\n", qp);\r
- //printf(" (*i)=%d a[%d]=%d\n", (*i), qp, a[qp]);\r
- printf(" %d's color=%d\n", (*i), (a[qp])-(bmp->offset*3)+qp);\r
- //outp(PAL_DATA_REG, p[((a[qp])-(bmp->offset*3)+qp)]);// fix this shit!\r
- if((*i)+1==(qp)+3){ w++; /*(*i)++;*/ break; }\r
- }\r
- else\r
- {\r
- if(bmp->offset==0 && (*i)<3 && q==0) outp(PAL_DATA_REG, 0);\r
- else\r
- if(qp==0) outp(PAL_DATA_REG, p[(*i)-q]);\r
- else{ //outp(PAL_DATA_REG, p[((*i)-(bmp->offset*3)+qp)]);\r
- printf("p[]=%d qp=%d p[]-qp=%d\n", ((*i)-(bmp->offset*3)), qp, ((*i)-(bmp->offset*3))+qp); }\r
- }\r
- }\r
- //if(qp>0) printf("qp=%d\n", qp);\r
- //if(qp>0) printf(" (*i)=%d\n", (*i)/3);\r
- }\r
- modexWaitBorder(); /* waits one retrace -- less flicker */\r
- if((*i)>=PAL_SIZE/2 && w==0)\r
- {\r
- for(; (*i)<PAL_SIZE; (*i)++)\r
- {\r
-//____ if((qp>0)&&((*i)-q)%3==0 && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5])) outp(PAL_DATA_REG, p[(*i)-q]); else\r
- if(((((*i)-q)%3==0)) && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5]))\r
- {\r
- w++;\r
- break;\r
- }\r
- else if(qp>0 && (*i)>=(qp) && (*i)<((qp)+3))\r
- {\r
- //printf("qp=%d\n", qp);\r
- //printf(" (*i)=%d a[%d]=%d\n", (*i), qp, a[qp]);\r
- printf(" %d's color=%d\n", (*i), (a[qp]-(bmp->offset*3)+qp));\r
- //outp(PAL_DATA_REG, p[((a[qp])-(bmp->offset*3)+qp)]);// fix this shit!\r
- if((*i)+1==(qp)+3){ w++; /*(*i)++;*/ break; }\r
- }\r
- else\r
- {\r
- if(qp==0) outp(PAL_DATA_REG, p[(*i)-q]);\r
- else{ //outp(PAL_DATA_REG, p[((*i)-(bmp->offset*3)+qp)]);\r
- printf("p[]=%d qp=%d p[]-qp=%d\n", ((*i)-(bmp->offset*3)), qp, ((*i)-(bmp->offset*3))+qp); }\r
- }\r
- }\r
- //printf(" (*i)=%d\n", (*i)/3);\r
- }\r
+ byte *p = bmp->palette;\r
+ word w=0;\r
+ word q=0;\r
+ word qq=0;\r
+ static word a[PAL_SIZE]; //palette array of change values!\r
+ word z=0, aq=0, aa=0, pp=0;\r
+\r
+ modexWaitBorder();\r
+ if((*i)==0)\r
+ {\r
+ memset(a, -1, sizeof(a));\r
+ outp(PAL_WRITE_REG, 0); /* start at the beginning of palette */\r
+ }\r
+ else if(qp==0)\r
+ {\r
+ q=(*i);\r
+ }\r
+ else\r
+ {\r
+ q=(*i);\r
+ qq=(*i)/3;\r
+// printf("q: %02d\n", (q));\r
+// printf("qq: %02d\n", (qq));\r
+ //printf(" (*i)-q=%02d\n", (*i)-q);\r
+ outp(PAL_WRITE_REG, qq); /* start at the beginning of palette */\r
+ }\r
+ if((*i)<PAL_SIZE/2 && w==0)\r
+ {\r
+ for(; (*i)<PAL_SIZE/2; (*i)++)\r
+ {\r
+ //if(i%3==0 && (p[i+5]==p[i+4] && p[i+4]==p[i+3] && p[i+3]==p[i+2] && p[i+2]==p[i+1] && p[i+1]==p[i] && p[i+5]==p[i]))\r
+//____ if((qp>0)&&((*i)-q)%3==0 && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5])) outp(PAL_DATA_REG, p[(*i)-q]); else\r
+ if(((((*i)-q)%3==0)) && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5]))\r
+ {\r
+ w++;\r
+ break;\r
+ }\r
+ else if(qp>0 && (*i)>=(qp) && (*i)<((qp)+3))\r
+ {\r
+ //printf("qp=%d\n", qp);\r
+ //printf(" (*i)=%d a[%d]=%d\n", (*i), qp, a[qp]);\r
+ printf(" %d's color=%d\n", (*i), (a[qp])-(bmp->offset*3)+qp);\r
+ //outp(PAL_DATA_REG, p[((a[qp])-(bmp->offset*3)+qp)]);// fix this shit!\r
+ if((*i)+1==(qp)+3){ w++; /*(*i)++;*/ break; }\r
+ }\r
+ else\r
+ {\r
+ if(bmp->offset==0 && (*i)<3 && q==0) outp(PAL_DATA_REG, 0);\r
+ else\r
+ if(qp==0) outp(PAL_DATA_REG, p[(*i)-q]);\r
+ else{ //outp(PAL_DATA_REG, p[((*i)-(bmp->offset*3)+qp)]);\r
+ printf("p[]=%d qp=%d p[]-qp=%d\n", ((*i)-(bmp->offset*3)), qp, ((*i)-(bmp->offset*3))+qp); }\r
+ }\r
+ }\r
+ //if(qp>0) printf("qp=%d\n", qp);\r
+ //if(qp>0) printf(" (*i)=%d\n", (*i)/3);\r
+ }\r
+ modexWaitBorder(); /* waits one retrace -- less flicker */\r
+ if((*i)>=PAL_SIZE/2 && w==0)\r
+ {\r
+ for(; (*i)<PAL_SIZE; (*i)++)\r
+ {\r
+//____ if((qp>0)&&((*i)-q)%3==0 && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5])) outp(PAL_DATA_REG, p[(*i)-q]); else\r
+ if(((((*i)-q)%3==0)) && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5]))\r
+ {\r
+ w++;\r
+ break;\r
+ }\r
+ else if(qp>0 && (*i)>=(qp) && (*i)<((qp)+3))\r
+ {\r
+ //printf("qp=%d\n", qp);\r
+ //printf(" (*i)=%d a[%d]=%d\n", (*i), qp, a[qp]);\r
+ printf(" %d's color=%d\n", (*i), (a[qp]-(bmp->offset*3)+qp));\r
+ //outp(PAL_DATA_REG, p[((a[qp])-(bmp->offset*3)+qp)]);// fix this shit!\r
+ if((*i)+1==(qp)+3){ w++; /*(*i)++;*/ break; }\r
+ }\r
+ else\r
+ {\r
+ if(qp==0) outp(PAL_DATA_REG, p[(*i)-q]);\r
+ else{ //outp(PAL_DATA_REG, p[((*i)-(bmp->offset*3)+qp)]);\r
+ printf("p[]=%d qp=%d p[]-qp=%d\n", ((*i)-(bmp->offset*3)), qp, ((*i)-(bmp->offset*3))+qp); }\r
+ }\r
+ }\r
+ //printf(" (*i)=%d\n", (*i)/3);\r
+ }\r