]> 4ch.mooo.com Git - 16.git/blobdiff - 16/16/TEST.C
more cleanings!!
[16.git] / 16 / 16 / TEST.C
diff --git a/16/16/TEST.C b/16/16/TEST.C
new file mode 100755 (executable)
index 0000000..86cbf42
--- /dev/null
@@ -0,0 +1,334 @@
+#include "lib\modex16.h"\r
+#include <stdio.h>
+
+#include <stdlib.h>\r
+//#include <iostream.h>
+\r
+word far* clock= (word far*) 0x046C; /* 18.2hz clock */\r
+
+//color てすと\r
+short gq = LGQ;
+
+page_t page, page2;
+
+//てすと\r
+short bakax = 0, bakay = 0;\r
+sword xx = 0, yy = 0, sx = 0, sy = 0;\r
+byte coor;\r
+
+//byte *vga = (byte *) MK_FP(0xA000, 0);
+\r
+/*\r
+ * Comment out the following #define if you don't want the testing main()\r
+ * to be included.\r
+ */\r
+//#define TILE
+
+\r
+/*void pdump(){\r
+       int mult=(QUADWH)/2;\r
+       int palq=(mult)*16;\r
+       int palcol=0;\r
+       for(int paly=0; paly<palq; paly+=mult){\r
+               for(int palx=0; palx<palq; palx+=mult){\r
+                               //mxFillBox((SCREEN_WIDTH-palq)+palx+32, paly+32, TILEWH, TILEWH, palcol, OP_SET);
+                               modexClearRegion(page_t *page, (SCREEN_WIDTH-palq)+palx+32, paly+32, TILEWH, TILEWH, palcol);\r
+                       palcol++;\r
+               }\r
+       }\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//                                                                                                                                              //\r
+// cls() - This clears the screen to the specified color, on the VGA or on //\r
+//              the Virtual screen.                                                                                     //\r
+//                                                                                                                                              //\r
+/////////////////////////////////////////////////////////////////////////////\r
+void cls(byte color, byte *Where){\r
+               _fmemset(Where, color, VW*(VH*2));\r
+}\r
+\r
+//color てすと\r
+short colortest(){\r
+               if(gq < NUM_COLORS){\r
+                               cls(gq, vga);\r
+                               gq++;\r
+               }else gq = 0;\r
+               return gq;\r
+}\r
+\r
+//color てすと\r
+short colorz(){\r
+               if(gq <= HGQ){\r
+//----           cls(gq, vaddr);\r
+                               cls(gq, vga);\r
+                               gq++;\r
+               }else gq = LGQ;\r
+               return gq;\r
+}\r
+\r
+//slow spectrum down\r
+void ssd(short svq){\r
+               if(sy < SCREEN_HEIGHT+1){\r
+                               if(sx < SCREEN_WIDTH+1){\r
+                                               //plotpixel(xx, yy, coor, vga);\r
+                                               //ppf(sx, sy, coor, vga);\r
+                                               //mxPutPixel(sx, sy, coor);
+                                               modexClearRegion(page_t *page, sx, sy, 1, 1, coor);
+                                               //printf("%d %d %d %d¥n", sx, sy, svq, coor);\r
+                                               sx++;\r
+                               }else sx = 0;\r
+                               if(sx == SCREEN_WIDTH){\r
+                                               sy++;\r
+                                               if(svq == 7) coor++;\r
+                                               if(sy == SCREEN_HEIGHT && svq == 8) coor = rand()%NUM_COLORS;\r
+                               }\r
+               }else sy = 0;\r
+}*/\r
+\r
+/*-----------ding-------------*/\r
+short ding(int q){\r
+
+               page=modexDefaultPage();\r
+               page2 = modexNextPage(&page);\r
+               page.width += 32;\r
+               page.height += 32;
+               short d3y;\r
+\r
+//++++  if(q <= 4 && q!=2 && gq == BONK-1) coor = rand()%HGQ;\r
+               if((q == 2\r
+               ||q==4\r
+               ||q==16\r
+               ) && gq == BONK){\r
+                                               if(coor < HGQ && coor < LGQ) coor = LGQ;\r
+                                               if(coor < HGQ){\r
+                                                               coor++;\r
+                               }else{ coor = LGQ;\r
+                                               bakax = rand()%3; bakay = rand()%3;\r
+                               }\r
+               }\r
+\r
+//             if(q==8){ colorz(); return gq; /*mxOutText(SCREEN_WIDTH/2, SCREEN_HEIGHT/2, "bakapi");*/ }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==6){\r
+                               coor = rand()%NUM_COLORS;\r
+                               cls(coor, vga);\r
+                               //updatevbuff();\r
+               }\r
+\r
+               /f(q==7||q==9){\r
+                               if(gq <= HGQ){\r
+                                               if(q == 7) ssd(q);\r
+                                               if(q == 9){ ssd(q); coor++; }\r
+                                               gq++;\r
+                               }else gq = LGQ;\r
+               }*/\r
+               if((q<5 && gq<BONK) || (q==16 && gq<BONK)){ // the number variable make the colors more noticable\r
+                               if(q==1){\r
+                                               if(xx==VW){bakax=0;}\r
+                                               if(xx==0){bakax=1;}\r
+                                               if(yy==VH){bakay=0;}\r
+                                               if(yy==0){bakay=1;}\r
+                               }else if(q==3){\r
+                                               if(xx!=VW||yy!=VH){\r
+                                                               if(xx==0){bakax=1;bakay=-1;d3y=1;}\r
+                                                               if(yy==0){bakax=1;bakay=0;d3y=1;}\r
+                                                               if(xx==VW){bakax=-1;bakay=-1;d3y=1;}\r
+                                                               if(yy==VH){bakax=1;bakay=0;d3y=1;}\r
+                                               }else if(xx==VW&&yy==VH) xx=yy=0;\r
+                               }\r
+                               if(q==3){\r
+                                               if(d3y){\r
+                                                               if(bakay<0){\r
+                                                                               yy--;\r
+                                                                               d3y--;\r
+                                                               }else\r
+                                                               if(bakay>0){\r
+                                                                               yy++;\r
+                                                                               d3y--;\r
+                                                               }\r
+                                               }\r
+                                               if(bakax<0){\r
+                                                               xx--;\r
+                                               }else\r
+                                               if(bakax>0){\r
+                                                               xx++;\r
+                                               }\r
+                               }else{\r
+                                               if(q==16)\r
+                                               {\r
+                                                               if(!bakax){\r
+                                                                       xx--;\r
+                                                               }else if(bakax>0){\r
+                                                                       xx++;\r
+                                                               }\r
+                                                               if(!bakay){\r
+                                                                       yy--;\r
+                                                               }else if(bakay>0){\r
+                                                                       yy++;\r
+                                                               }\r
+                                               }else{\r
+                                                               if(!bakax){\r
+                                                                       #ifdef TILE\r
+                                                                       xx-=TILEWH;\r
+                                                                       #else\r
+                                                                       xx--;\r
+                                                                       #endif\r
+                                                               }else if(bakax>1){\r
+                                                                       #ifdef TILE\r
+                                                                       xx+=TILEWH;\r
+                                                                       #else\r
+                                                                       xx++;\r
+                                                                       #endif\r
+                                                               }\r
+                                                               if(!bakay){\r
+                                                                       #ifdef TILE\r
+                                                                       yy-=TILEWH;\r
+                                                                       #else\r
+                                                                       yy--;\r
+                                                                       #endif\r
+                                                               }else if(bakay>1){\r
+                                                                       #ifdef TILE\r
+                                                                       yy+=TILEWH;\r
+                                                                       #else\r
+                                                                       yy++;\r
+                                                                       #endif\r
+                                                               }\r
+                                               }\r
+                               }\r
+                               // fixer\r
+                               if(q!=16){\r
+                                       #ifdef TILE\r
+                                               if(xx<0) xx=(VW-TILEWH);\r
+                                               if(yy<0) yy=(VH-TILEWH);\r
+                                               if(xx>(VW-TILEWH)) xx=0;\r
+                                               if(yy>(VH-TILEWH)/*+(TILEWH*BUFFMX)*/) yy=0;\r
+                                       #else\r
+                                               if(xx<0) xx=VW;\r
+                                               if(yy<0) yy=VH;\r
+                                               if(xx>VW) xx=0;\r
+                                               if(yy>VH) yy=0;\r
+                                       #endif\r
+                               }\r
+\r
+//interesting effects\r
+                               if(q==16)\r
+                               {\r
+                               short tx=0,ty=0;\r
+                               tx+=xx+16;\r
+                               ty+=yy+16;\r
+                               //mxPutPixel(tx, ty, coor);
+                               modexClearRegion(page_t *page, tx, ty, 1, 1, coor);
+                               //printf("%d %d %d %d %d %d¥n", xx, yy, tx, ty, TILEWH);\r
+\r
+                               // plot the pixel\r
+                               }else{\r
+                                       #ifdef TILE\r
+                                       //mxFillBox(xx, yy, TILEWH, TILEWH, coor, OP_SET);
+                                       modexClearRegion(page_t *page, xx, yy, TILEWH, TILEWH, coor);\r
+                                       #else\r
+                                       //mxPutPixel(xx, yy, coor);
+                                       modexClearRegion(page_t *page, xx, yy, 1, 1, coor);\r
+                                       #endif\r
+                               } \r
+\r
+                               if(q==2)\r
+                               #ifdef TILE\r
+                                       //mxFillBox((rand()*TILEWH)%VW, (rand()*TILEWH)%(VH), TILEWH, TILEWH, 0, OP_SET);
+                                       modexClearRegion(page_t *page, (rand()*TILEWH)%VW, (rand()*TILEWH)%(VH), TILEWH, TILEWH, 0);\r
+                               #else\r
+                                       //mxPutPixel(rand()%VW, rand()%(VH), 0);
+                                       modexClearRegion(page_t *page, rand()%VW, rand()%(VH), 1, 1, 0);\r
+                               #endif\r
+                               if(q==16) //mxPutPixel(rand()%VW, rand()%(VH), 0);
+                                       modexClearRegion(page_t *page, rand()%VW, rand()%(VH), 1, 1, 0);\r
+                               if(q==2||q==4||q==16){ bakax = rand()%3; bakay = rand()%3; }  //random 3 switch\r
+                               gq++;\r
+//if(xx<0||xx>320||yy<0||yy>(SCREEN_HEIGHT*3))\r
+//       printf("%d %d %d %d %d¥n", xx, yy, coor, bakax, bakay);\r
+               }else gq = LGQ;\r
+               return gq;\r
+}\r
+\r
+void main() {\r
+    int i, j;\r
+    bitmap_t bmp;\r
+    word start, end;
+       //page_t page, page2;\r
+    float elapsed;\r
+    byte *pal, *pal2=NULL;\r
+\r
+       /* load pcx file */\r
+       bmp = modexLoadPcx("ed.pcx");\r
+\r
+    /* load our palette */\r
+    modexLoadPalFile("gfx.pal", &pal2);\r
+\r
+    /* save the palette */\r
+    pal  = modexNewPal();\r
+    modexPalSave(pal);\r
+    modexFadeOff(1, pal);\r
+    modexPalBlack();\r
+\r
+    setvideo(1);\r
+    modexPalBlack();\r
+\r
+    /* set up the page, but with 16 pixels on all borders in offscreen mem */\r
+    page=modexDefaultPage();\r
+    page2 = modexNextPage(&page);\r
+    page.width += 32;\r
+    page.height += 32;\r
+\r
+\r
+    /* fill the page with one color, but with a black border */\r
+    modexShowPage(&page2);\r
+    modexClearRegion(&page, 16, 16, SCREEN_WIDTH, SCREEN_HEIGHT, 128);\r
+    modexClearRegion(&page, 32, 32, SCREEN_WIDTH-32, SCREEN_HEIGHT-32, 42);\r
+    modexClearRegion(&page, 48, 48, SCREEN_WIDTH-64, SCREEN_HEIGHT-64, 128);\r
+    modexShowPage(&page);\r
+\r
+    modexDrawSprite(&page, 20, 20, &bmp);\r
+    //modexDrawBmp(&page, xb, yb, &bmp);\r
+\r
+    /* fade in */\r
+    modexFadeOn(1, pal2);\r
+\r
+\r
+    start = *clock;\r
+    //for(i=0; i<5; i++) {\r
+    while (!kbhit()){  /* Wait for a keystroke                         */\r
+       /* go right */\r
+       for(j=0; j<32; j++) {\r
+           page.dx++;\r
+           modexShowPage(&page);\r
+       }\r
+       /* go left */\r
+       for(j=0; j<32; j++) {\r
+           page.dx--;\r
+           modexShowPage(&page);\r
+       }\r
+       /* go up */\r
+       for(j=0; j<32; j++) {\r
+           page.dy++;\r
+           modexShowPage(&page);\r
+       }\r
+\r
+       /* go down */\r
+       for(j=0; j<32; j++) {\r
+           page.dy--;\r
+           modexShowPage(&page);\r
+       }\r
+    }\r
+\r
+    (void) getch();   /* Clear the keyboard buffer                    */\r
+    end = *clock;\r
+\r
+    /* fade back to text mode */\r
+    modexFadeOff(1, pal2);\r
+    modexPalBlack();\r
+    setvideo(0);\r
+    modexPalBlack();\r
+    modexFadeOn(1, pal);\r
+}\r