* 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
//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
}\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
// //\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
\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
||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
}\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
\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
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
// 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
}\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