CPP Colines Vretrace demo
CPP
Download (.zip)
#include <conio.h> #include <string.h>
struct RGB { char r,g,b; }__rgb;
char far *fntptr;
void initmode() { asm{ mov ax,0x13 int 0x10 } }
void pixel(int x,int y,char c) { if(x < 0 || y < 0 || x > 319 || y > 200) return; asm{ push es mov ax,0xa000 mov es,ax mov ax,y mov bx,320 mul bx add ax,x mov di,ax mov al,c stosb pop es } }
void closemode() { asm{ mov ax,0x03 int 0x10 } }
void loadpal(void far *pal) { asm { push es mov ax,0x1012 mov bx,0 mov cx,256 les dx,pal int 0x10 pop es } }
void getfntptr() { asm{ push es xor ax,ax mov es,ax mov si,0x43*4 mov ax,es:[si] mov word ptr [fntptr],ax mov ax,es:[si+2] mov word ptr [fntptr+2],ax pop es } }
void drawletter(int x,int y,char color,char c) { char h,l,j,i;
if(x+8 < 0 || x-8 > 320) return; for(i=0;i<8;i++) { h = *(fntptr+c*8+i); for(j=0;j<8;j++) { l = y+i; asm{ mov al,h shl al,1 mov h,al jnc l } l = 210+((x+j)*4)/32; l:; pixel(x+j,y+i,l); } } }
struct RGB pal[256],p; int i; int x,y,len,col; char *str=" CoLines Intro by Dasaev Corp. *|* E-Mail : Root@Tmg.Dp.Ua *|* Programs of Dasaev Corp : DAC & DAP - freeware cracker and trainer, and some others programs ... ";
main() { initmode(); getfntptr(); for(i=0;i<200;i++) { pal[i].r = 0; pal[i].g = 0; pal[i].b = 0; } for(i=200;i<256;i++) { pal[i].r = i-200+3; pal[i].g = i-200+3; pal[i].b = i-200+3; } for(i=1;i<20;i++) { pal[i].r = i*2+10; pal[39-i].r = i*2+10; } for(i=1;i<20;i++) { pal[i+70].g = i*2+10; pal[39-i+70].g = i*2+10; } for(i=1;i<20;i++) { pal[i+140].b = i*2+10; pal[39-i+140].b = i*2+10; } loadpal((void *)&pal);
for(i=0;i<200;i++) { asm{ push es mov ax,0xa000 mov es,ax mov ax,i mov bx,320 mul bx mov di,ax mov ax,i cld mov cx,320 rep stosb pop es } } x = 0; len = strlen(str); while(!kbhit()) { loadpal((void *)&pal); p = pal[1]; for(i=1;i<200;i++) pal[i] = pal[i+1]; pal[199] = p; for(i=0;*(str+i) != 0;i++) { y = 320-x+(i << 3); drawletter(y,170,col,*(str+i)); } x++; if(x > (len+2)*9+320) x = 0; } while(kbhit()) getch(); closemode(); }
|