From 11c259b8eefaa17c296f661da98d042162e5c57d Mon Sep 17 00:00:00 2001
From: sparky4 <sparky4@cock.li>
Date: Thu, 18 Jun 2015 21:03:56 -0500
Subject: [PATCH] disabled drawing of rows and colums in the scroll functions
 with a page.id 	modified:   src/lib/modex16.c 	modified:  
 src/lib/modex16.h 	modified:   src/scroll.c

---
 src/lib/modex16.c | 113 ++++++++++++++++++++++++----------------------
 src/lib/modex16.h |   1 +
 src/scroll.c      |   4 ++
 3 files changed, 63 insertions(+), 55 deletions(-)

diff --git a/src/lib/modex16.c b/src/lib/modex16.c
index ba09a834..2988f27d 100644
--- a/src/lib/modex16.c
+++ b/src/lib/modex16.c
@@ -9,9 +9,9 @@
 
 byte far* VGA=(byte far*) 0xA0000000; 	/* this points to video memory. */
 /*word text_mask[16] = {
-	0x0002, 0x0102, 0x0202, 0x0302,
-	0x0402, 0x0502, 0x0602, 0x0702,
-	0x0802, 0x0902, 0x0A02, 0x0B02,
+	0x0002, 0x0102, 0x0202, 0x0302,
+	0x0402, 0x0502, 0x0602, 0x0702,
+	0x0802, 0x0902, 0x0A02, 0x0B02,
 	0x0C02, 0x0D02, 0x0E02, 0x0F02
 };*/
 
@@ -97,6 +97,7 @@ modexDefaultPage() {
     page.dy = 0;
     page.width = SCREEN_WIDTH;
     page.height = SCREEN_HEIGHT;
+	page.id = 0;
 
     return page;
 }
@@ -113,6 +114,7 @@ modexNextPage(page_t *p) {
     result.dy = 0;
     result.width = p->width;
     result.height = p->height;
+	result.id = p->id+1;
 
     return result;
 }
@@ -128,6 +130,7 @@ modexNextPage0(page_t *p, word x, word y)
 	result.dy = 0;
 	result.width = x;
 	result.height = y;
+	result.id = p->id+1;
 
     return result;
 }
@@ -236,25 +239,25 @@ modexClearRegion(page_t *page, int x, int y, int w, int h, byte  color) {
 }
 
 
-void
+void
 oldDrawBmp(byte far* page, int x, int y, bitmap_t *bmp, byte sprite)
-{
-	byte plane;
-	word px, py;
-	word offset;
-
-	/* TODO Make this fast.  It's SLOOOOOOW */
-	for(plane=0; plane < 4; plane++) {
-		modexSelectPlane(PLANE(plane+x));
-		for(px = plane; px < bmp->width; px+=4) {
-			offset=px;
-			for(py=0; py<bmp->height; py++) {
-			if(!sprite || bmp->data[offset])
-				page[PAGE_OFFSET(x+px, y+py)] = bmp->data[offset];
-			offset+=bmp->width;
-			}
-		}
-	}
+{
+	byte plane;
+	word px, py;
+	word offset;
+
+	/* TODO Make this fast.  It's SLOOOOOOW */
+	for(plane=0; plane < 4; plane++) {
+		modexSelectPlane(PLANE(plane+x));
+		for(px = plane; px < bmp->width; px+=4) {
+			offset=px;
+			for(py=0; py<bmp->height; py++) {
+			if(!sprite || bmp->data[offset])
+				page[PAGE_OFFSET(x+px, y+py)] = bmp->data[offset];
+			offset+=bmp->width;
+			}
+		}
+	}
 }
 
 
@@ -935,51 +938,51 @@ modexWaitBorder() {
     }
 }
 
-/*****************************************************************************
-find 8x8 font in VGA BIOS ROM
-*****************************************************************************/
-byte far *bios_8x8_font(void)
-{
+/*****************************************************************************
+find 8x8 font in VGA BIOS ROM
+*****************************************************************************/
+byte far *bios_8x8_font(void)
+{
 	byte far *font;
 	regs_t regs;
-
-/* use BIOS INT 10h AX=1130h to find font #3 (8x8) in ROM */
-	memset(&regs, 0, sizeof(regs)); /* for Watcom C */
-	regs.w.ax = 0x1130;
-	regs.w.bx = 0x0300;
-	intr(0x10, &regs);
-	font = (byte far *)MK_FP(regs.w.es, regs.w.bp);
-	return font;
-}
-
-/*****************************************************************************
-*****************************************************************************/
-void bputs(page_t *pee, int x, int y, const byte far *s)
+
+/* use BIOS INT 10h AX=1130h to find font #3 (8x8) in ROM */
+	memset(&regs, 0, sizeof(regs)); /* for Watcom C */
+	regs.w.ax = 0x1130;
+	regs.w.bx = 0x0300;
+	intr(0x10, &regs);
+	font = (byte far *)MK_FP(regs.w.es, regs.w.bp);
+	return font;
+}
+
+/*****************************************************************************
+*****************************************************************************/
+void bputs(page_t *pee, int x, int y, const byte far *s)
 {
-	//int i, skip;
+	//int i, skip;
 	byte far *font;
 	byte far *font_pntr;
 	//byte c, temp;
-
+
 	font = bios_8x8_font();
 	//skip = 2 - ((pee->width/4) << 3);
-	//printf("font=%Fp\n", font);
-	for(; *s != '\0'; s++)
-	{
+	//printf("font=%Fp\n", font);
+	for(; *s != '\0'; s++)
+	{
 		//src.raster = font + 8 * (*s);
 		//BLOODY!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!111111111111!!!11!!11!111!11!!1111!!111!11!!1!!!11!11!!1!!111!11!!
 //		(*(bmp->data)) = (*(font + 8 * (*s)));
 		font_pntr = font + 8 * (*s);
 //		font_pntr = font + (c << 3);
-//		i=8;
-//		while (i--) {
-//			temp = *font_pntr++;
-//			outpw(SC_INDEX, text_mask[temp & 0x0F]);
-			//*vga_ptr++ = color;
-
-//			outpw(SC_INDEX, text_mask[temp >> 4]);
-			//*vga_ptr-- = color;
-			//vga_ptr += widthBytes;
+//		i=8;
+//		while (i--) {
+//			temp = *font_pntr++;
+//			outpw(SC_INDEX, text_mask[temp & 0x0F]);
+			//*vga_ptr++ = color;
+
+//			outpw(SC_INDEX, text_mask[temp >> 4]);
+			//*vga_ptr-- = color;
+			//vga_ptr += widthBytes;
 //		}
 
 		//printf("fontoffset=%Fp\n", font + 8 * (*s));
@@ -994,7 +997,7 @@ void bputs(page_t *pee, int x, int y, const byte far *s)
 		//draw text?!?! wwww
 
 		modexClearRegion(pee, x, y, 8, 8, 4);
-//		x += 8;
+//		x += 8;
 	}
-//	printf("\n");
+//	printf("\n");
 }
diff --git a/src/lib/modex16.h b/src/lib/modex16.h
index bc23ee3e..7df4e9b0 100644
--- a/src/lib/modex16.h
+++ b/src/lib/modex16.h
@@ -16,6 +16,7 @@
 #define SELECT_ALL_PLANES() outpw(0x03c4, 0xff02)
 
 typedef struct {
+	word id;	/* the Identification number of the page~ For layering~ */
     byte far* data;	/* the data for the page */
     word dx;		/* col we are viewing on the virtual screen */
     word dy;		/* row we are viewing on the virtual screen */
diff --git a/src/scroll.c b/src/scroll.c
index 2164ca4c..29d7037d 100644
--- a/src/scroll.c
+++ b/src/scroll.c
@@ -719,6 +719,7 @@ mapScrollRight(map_view_t *mv, byte offset) {
 
 	/* draw the next column */
 	x= SCREEN_WIDTH + mv->map->tiles->tileWidth;
+		if(mv->page->id==0)
 		mapDrawCol(mv, mv->tx + 20 , mv->ty-1, x);
 	}
 }
@@ -741,6 +742,7 @@ mapScrollLeft(map_view_t *mv, byte offset) {
 	mv->page->dx = mv->map->tiles->tileWidth;
 	//}
 	/* draw the next column */
+		if(mv->page->id==0)
 		mapDrawCol(mv, mv->tx-1, mv->ty-1, 0);
 	}
 }
@@ -764,6 +766,7 @@ mapScrollUp(map_view_t *mv, byte offset) {
 
 	/* draw the next row */
 	y= 0;
+		if(mv->page->id==0)
 		mapDrawRow(mv, mv->tx-1 , mv->ty-1, y);
 	}
 }
@@ -787,6 +790,7 @@ mapScrollDown(map_view_t *mv, byte offset) {
 
 	/* draw the next row */
 	y= SCREEN_HEIGHT + mv->map->tiles->tileHeight;
+		if(mv->page->id==0)
 		mapDrawRow(mv, mv->tx-1 , mv->ty+15, y);
 	}
 
-- 
2.39.5