for(; y < py+p->height; y++) {\r
//for(px=0; px < p->width; px++) {\r
//printf("%02X ", (int) p->plane[plane][i++]);\r
-// _fmemcpy(buff, &(p->plane[plane][i+=p->pwidth]), p->pwidth);\r
-// printf("buff %u==%s\n", y, *buff);\r
-// _fmemcpy(page->data + (((page->width/4) * (y+page->dy)) + ((x+page->dx) / 4)), buff, p->pwidth);\r
+// _fmemcpy(buff, &(p->plane[plane][i+=p->pwidth]), p->pwidth);\r
+// printf("buff %u==%s\n", y, *buff);\r
+// _fmemcpy(page->data + (((page->width/4) * (y+page->dy)) + ((x+page->dx) / 4)), buff, p->pwidth);\r
_fmemcpy(page->data + (((page->width/4) * y) + (x / 4)), &(p->plane[plane][i+=p->pwidth]), p->pwidth);\r
//}\r
}\r
+//getch();\r
x=px;\r
y=py;\r
}\r
modexDrawBmpPBufRegion(page_t *page, int x, int y,\r
int rx, int ry, int rw, int rh, planar_buf_t *bmp) {\r
word poffset = (word) page->data + y*(page->width/4) + x/4;\r
- byte *data = *bmp->plane;//+bmp->offset;\r
+ byte *data = bmp->plane[0];\r
word bmpOffset = (word) data + ry * bmp->width + rx;\r
- word width = rw/4;\r
- word height = rh/4;\r
+ word width = rw;\r
+ word height = rh;\r
byte plane = 1 << ((byte) x & 0x03);\r
word scanCount = width/4 + (width%4 ? 1 :0);\r
word nextPageRow = page->width/4 - scanCount;\r
ROW_LOOP:\r
MOV CX, width ; count the columns\r
SCAN_LOOP:\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
MOVSB ; copy the pixel\r
+\r
SUB CX, 3 ; we skip the next 3\r
ADD SI, 3 ; skip the bmp pixels\r
LOOP SCAN_LOOP ; finish the scan\r
DEC rowCounter\r
JNZ ROW_LOOP ; do all the rows\r
;-- end plane painting\r
+\r
MOV AL, plane ; advance to the next plane\r
SHL AL, 1 ;\r
AND AL, 0x0f ; mask the plane properly\r
modexDrawSpritePBufRegion(page_t *page, int x, int y,\r
int rx, int ry, int rw, int rh, planar_buf_t *bmp) {\r
word poffset = (word)page->data + y*(page->width/4) + x/4;\r
- byte *data = *bmp->plane;//+bmp->offset;\r
+ byte *data = bmp->plane[0];\r
word bmpOffset = (word) data + ry * bmp->width + rx;\r
- word width = rw/4;\r
- word height = rh/4;\r
+ word width = rw;\r
+ word height = rh;\r
byte plane = 1 << ((byte) x & 0x03);\r
word scanCount = width/4 + (width%4 ? 1 :0);\r
word nextPageRow = page->width/4 - scanCount;\r