+++ /dev/null
-#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