}\r
break;\r
}\r
- gv->video.page[0].tilesw = gv->video.page[0].sw/TILEWH;\r
- gv->video.page[0].tilesh = gv->video.page[0].sh/TILEWH;\r
+\r
+// gv->video.page[0].tw = gv->video.page[0].sw/TILEWH;\r
+// gv->video.page[0].th = gv->video.page[0].sh/TILEWH;\r
+\r
//TODO MAKE FLEXIBLE~\r
- gv->video.page[0].tilemidposscreenx = gv->video.page[0].tilesw;\r
- gv->video.page[0].tilemidposscreeny = (gv->video.page[0].tilesh/2)+1;\r
+// gv->video.page[0].tilemidposscreenx = gv->video.page[0].tilesw;\r
+// gv->video.page[0].tilemidposscreeny = (gv->video.page[0].tilesh/2)+1;\r
+ gv->video.num_of_pages=0;\r
}\r
\r
void\r
page.dy = 0;\r
page.sw = p->sw;\r
page.sh = p->sh;\r
- page.width = p->sw;\r
- page.height = p->sh;\r
+ page.width = p->sw+TILEWHD;\r
+ page.height = p->sh+TILEWHD;\r
page.tw = page.sw/TILEWH;\r
page.th = page.sh/TILEWH;\r
+ page.tilesw=page.width/TILEWH;\r
+ page.tilesh=page.height/TILEWH;\r
page.tilemidposscreenx = page.tw/2;\r
page.tilemidposscreeny = (page.th/2)+1;\r
- page.tilesw=p->tilesw;\r
- page.tilesh=p->tilesh;\r
- page.pagesize = page.width*page.height;\r
+ page.pagesize = (sdiword)page.width*page.height;\r
page.id = 0;\r
\r
return page;\r
modexNextPage(page_t *p) {\r
page_t result;\r
\r
- result.data = p->data + (p->width/4)*p->height;\r
+ result.data = p->data + (byte)(p->width/4)*p->height;\r
result.dx = 0;\r
result.dy = 0;\r
result.width = p->width;\r
result.height = p->height;\r
- result.tw = p->width/TILEWH;\r
- result.th = p->height/TILEWH;\r
+ result.tw = p->tw;\r
+ result.th = p->th;\r
+ result.tilesw = p->tilesw;\r
+ result.tilesh = p->tilesh;\r
result.id = p->id+1;\r
result.pagesize = p->pagesize;\r
\r
{\r
page_t result;\r
\r
- result.data = p->data + (p->width/4)*p->height; /* compute the offset */\r
+ result.data = p->data + (byte)(p->width/4)*p->height; /* compute the offset */\r
result.dx = 0;\r
result.dy = 0;\r
result.width = x;\r
result.height = y;\r
- result.tw = p->width/TILEWH;\r
- result.th = p->height/TILEWH;\r
+ result.tw = result.sw/TILEWH;\r
+ result.th = result.sh/TILEWH;\r
+ result.tilesw=result.width/TILEWH;\r
+ result.tilesh=result.height/TILEWH;\r
result.id = p->id+1;\r
- result.pagesize = result.width*result.height;\r
+ result.pagesize = (sdiword)result.width*result.height;\r
\r
return result;\r
}\r
void modexCalcVmemRemain(video_t *video)\r
{\r
byte i;\r
- video->vmem_remain=262144;\r
- for(i=0; i<=video->num_of_pages; i++)\r
+ //printf("\n\n 1st vmem_remain=%ld\n", video->vmem_remain);\r
+ for(i=0; i<=video->num_of_pages-1; i++)\r
{\r
video->vmem_remain-=video->page[i].pagesize;\r
+ //printf(" [%u], video->page[i].pagesize=%ld\n", i, video->page[i].pagesize);\r
+ //printf(" [%u], vmem_remain=%ld\n", i, video->vmem_remain);\r
}\r
}\r
\r
void modexHiganbanaPageSetup(video_t *video)\r
{\r
+ video->vmem_remain=262144L;\r
(video->page[0]) = modexDefaultPage(&(video->page[0])); video->num_of_pages++;\r
- video->page[0].width += (TILEWH*2); video->page[0].height += (TILEWH*2);\r
+ //video->page[0].width += (TILEWHD); video->page[0].height += (TILEWHD);\r
(video->page[1]) = modexNextPage(&(video->page[0])); video->num_of_pages++;\r
- (video->page[2]) = modexNextPage(&(video->page[1])); video->num_of_pages++;\r
- //(352*176)+1024 is the remaining amount of memory left wwww\r
+ (video->page[2]) = modexNextPageFlexibleSize(&(video->page[1]), video->page[0].width, video->page[0].sh-40); video->num_of_pages++;\r
+ (video->page[3]) = modexNextPageFlexibleSize(&(video->page[2]), TILEWH, TILEWH); video->num_of_pages++;\r
modexCalcVmemRemain(video);\r
-// (video->page[3]) = modexNextPageFlexibleSize(&(video->page[2]), video->page[0].sw, 92); video->num_of_pages++;\r
-// modexCalcVmemRemain(video);\r
- //gvar.video.page[2] = modexNextPage0(mv2.page, 320, 192); //(352*176)+1024 is the remaining amount of memory left wwww\r
+ video->p=0;\r
}\r
+\r
void\r
modexShowPage(page_t *page) {\r
word high_address;\r
{\r
word doffset = (word)dest->data + dy*(dest->width/4) + dx/4;\r
word soffset = (word)src->data + sy*(src->width/4) + sx/4;\r
- word scans = width/4;\r
+ word scans = vga_state.vga_stride;\r
word nextSrcRow = src->width/4 - scans - 1;\r
word nextDestRow = dest->width/4 - scans - 1;\r
byte lclip[] = {0x0f, 0x0e, 0x0c, 0x08}; /* clips for rectangles not on 4s */\r