]> 4ch.mooo.com Git - 16.git/blobdiff - 16/dos_gfx.cpp
modified: 16/DOS_GFX.EXE
[16.git] / 16 / dos_gfx.cpp
index e3ab1efa49dabdde8fb050b7b5d316eb80ef82b1..3853cd3d7cb5bb89427fb95ab64cbf0213be4988 100644 (file)
@@ -32,7 +32,7 @@
  * Thanks go out to various helpful netters who spotted the 0xE7 bug\r
  * in the set320x240x256() function!\r
  *\r
- * modified by sparky4 so it can be compiled in open watcom ^^\r
+ * Modified by sparky4 so it can be compiled in open watcom ^^\r
  */\r
 \r
 \r
@@ -57,6 +57,7 @@
 //code from old library!\r
 /*src\lib\*/\r
 #include "dos_gfx.h"\r
+#include "lib\x\modex.h"\r
 \r
 int old_mode;\r
 //color \82Ä\82·\82Æ\r
@@ -244,24 +245,48 @@ void set320x240x256_X(void)
                }\r
 \r
 \r
+/*-----------XXXX-------------*/\r
 /*tile*/\r
-void putColorBox_X(int x, int y, int w, int h, byte color) {
-       outp(0x3c4, 0x02);
-
-       int curx, cury;
-       unsigned drawptr;
-       for (curx=x; curx<(x+w); curx++) {
-               outp(0x3c5, 0x01 << (curx & 3));
-               drawptr = (unsigned)(widthBytes * y) + (curx / 4) + actStart;
-               for (cury=0; cury<h; cury++) {
-                       vga[drawptr] = color;
-                       drawptr += widthBytes;
-               }
-       }
-}
+void putColorBox_X(int x, int y, int w, int h, byte color) {\r
+       outp(0x3c4, 0x02);\r
+\r
+       int curx, cury;\r
+       unsigned drawptr;\r
+       for (curx=x; curx<(x+w); curx++) {\r
+               outp(0x3c5, 0x01 << (curx & 3));\r
+               drawptr = (unsigned)(widthBytes * y) + (curx / 4) + actStart;\r
+               for (cury=0; cury<h; cury++) {\r
+                       vga[drawptr] = color;\r
+                       drawptr += widthBytes;\r
+               }\r
+       }\r
+}\r
 \r
+void vScroll(int rows)\r
+{\r
+       // Scrolling = current start + (rows * bytes in a row)\r
+       setVisibleStart(visStart + (rows * width));\r
+}\r
 \r
-/*-----------XXXX-------------*/\r
+/*OFFSET = 0\r
+WHILE NOT FINISHED DO\r
+  OFFSET = OFFSET + 80\r
+  IF OFFSET >= (200 * 80) THEN OFFSET = 0\r
+  DRAW TO ROW 200\r
+  SET VGA OFFSET = OFFSET\r
+  DRAW TO ROW -1 (was row 0 before scroll)\r
+END WHILE*//*\r
+void scrolly(){\r
+       int OFFSET = 0\r
+       WHILE NOT FINISHED DO\r
+               OFFSET = OFFSET + 80\r
+               IF OFFSET >= (240 * 80) THEN OFFSET = 0\r
+               RAW TO ROW 240\r
+               SET VGA OFFSET = OFFSET\r
+               DRAW TO ROW -1 (was row 0 before scroll)\r
+       }\r
+}\r
+*/\r
 //---------------------------------------------------\r
 //\r
 // Use the bios to get the address of the 8x8 font\r
@@ -351,7 +376,7 @@ void setvideo(/*byte mode, */int vq){
 //                                                                                                                                              //\r
 /////////////////////////////////////////////////////////////////////////////\r
 void cls(byte color, byte *Where){\r
-               _fmemset(Where, color, width*(height*17));
+               _fmemset(Where, color, width*(height*17));\r
 }\r
 \r
 //color \82Ä\82·\82Æ\r
@@ -393,8 +418,19 @@ void ssd(int svq){
 \r
 /*-----------ding-------------*/\r
 int ding(int q){\r
+\r
+       if(yy<height){\r
                setActivePage(0);\r
                setVisiblePage(0);\r
+       }
+       if((height)<yy<(height*2)){\r
+               setActivePage(1);\r
+               setVisiblePage(1);\r
+       }
+       if((height*2)<yy<(height*3)){\r
+               setActivePage(2);\r
+               setVisiblePage(2);\r
+       }\r
                int d3y;\r
 \r
 //++++  if(q <= 4 && q!=2 && gq == BONK-1) coor = rand()%HGQ;\r
@@ -403,17 +439,17 @@ int ding(int q){
                ||q==16\r
                ) && gq == BONK-1){\r
                                                if(coor < HGQ && coor < LGQ) coor = LGQ;\r
-                                               if(coor < HGQ-1){\r
+                                               if(coor < HGQ){\r
                                                                coor++;\r
                                }else{ coor = LGQ;\r
                                                bakax = rand()%3; bakay = rand()%3;\r
                                }\r
                }\r
 \r
-               if(q == 5){ colortest(); return gq; }\r
-               if(q == 10){ colorz(); return gq; }\r
+               if(q == 8){ colorz(); return gq; }else\r
+               if(q == 10){ ssd(q); /*printf("%d\n", coor);*/ }else\r
+               if(q == 5){ colortest(); return gq; }else\r
                if(q == 11){ colorz(); delay(100); return gq; }\r
-               if(q == 8){ ssd(q); /*printf("%d\n", coor);*/ }\r
                if(q == 6){\r
                                coor = rand()%NUM_COLORS;\r
 //----           cls(coor, vaddr);\r
@@ -486,12 +522,13 @@ int ding(int q){
                                                }\r
                                }\r
                                // fixer\r
-                               if(q!=16){\r
+//                             if(q!=16){\r
+//if(q!=16)\r
                                                if(xx<0) xx=width;\r
-                                               if(yy<0) yy=height;\r
+                                               if(yy<0) yy=(height*3);\r
                                                if(xx>width) xx=0;\r
-                                               if(yy>height) yy=0;\r
-                               }\r
+                                               if(yy>(height*3)) yy=0;\r
+//                             }\r
 \r
 //interesting effects\r
                                if(q==16)\r
@@ -505,11 +542,14 @@ int ding(int q){
 \r
                                // plot the pixel\r
 //----           ppf(xx, yy, coor, vga);\r
-//++++0000                       putPixel_X(xx, yy, coor);\r
-                               }else putColorBox_X(xx, yy, TILEWH, TILEWH, coor);
-                               //drawrect(xx, yy, xx+TILEWH-1, yy+TILEWH-1, coor);\r
+                               }else /*if(xx>=0 && xx<width && yy>=0 && yy<(height*3))*/{\r
+                                       putColorBox_X(xx, yy, TILEWH, TILEWH, coor);\r
+//++++0000                                     putPixel_X(xx, yy, coor);\r
+                               } \r
+\r
 //----           if(q==2) ppf(rand()%, rand()%height, 0, vga);\r
-                               if(q==2||q==16) putPixel_X(rand()%width, rand()%height, 0);\r
+                               if(q==2) putColorBox_X(rand()%width, rand()%(height*3), TILEWH, TILEWH, 0);\r
+                               if(q==16) putPixel_X(rand()%width, rand()%(height*3), 0);\r
                                if(q==2||q==4||q==16){ bakax = rand()%3; bakay = rand()%3; }\r
                                gq++;\r
 //if(xx<0||xx>320||yy<0||yy>240)\r
@@ -568,7 +608,7 @@ void doTest(void)
                                                                                putPixel_X(x+(p+2)*16, y+(p+2)*16, x + y*16);\r
                                                //}\r
 \r
-                               drawText(0, 0, 15, p);\r
+//                             drawText(0, 0, 15, p);\r
 \r
                                }\r
 \r
@@ -605,7 +645,9 @@ int main(void)
 //       puts("Press a key when ready...");\r
 //       getch();\r
 \r
+//++++0000\r
                setvideo(1);\r
+//mxInit();\r
 // screen savers\r
 \r
 /*while(d!=0){ // on!\r
@@ -622,13 +664,20 @@ int main(void)
                                }\r
                }*/ // else off\r
                while(!kbhit()){ // conditions of screen saver\r
-                               ding(4);\r
+                       ding(4);\r
                }\r
                //end of screen savers\r
                doTest();\r
+\r
+               while(!kbhit()){ // conditions of screen saver\r
+                       vScroll(-1);\r
+               }\r
+//++++0000\r
                setvideo(0);\r
+//mxTerm();\r
+//mxGetVersion();\r
                puts("Where to next?  It's your move! wwww");\r
-               printf("bakapi ver. 1.04.09a\nis made by sparky4\81i\81\86\83Ö\81\85\81j feel free to use it ^^\nLicence: GPL v2\n");\r
+               printf("bakapi ver. 1.04.09.02\nis made by sparky4\81i\81\86\83Ö\81\85\81j feel free to use it ^^\nLicence: GPL v2\n");\r
                return 0;\r
                }\r
 \r