From a3680b0f9d20da862519dfd9c80dabe144b66042 Mon Sep 17 00:00:00 2001 From: jdg Date: Wed, 8 Sep 2021 20:55:57 +0200 Subject: [PATCH] First commit 09/03/1997 --- DEMO.CPP | 906 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ DEMO.EXE | Bin 0 -> 70431 bytes DEMO.FNT | Bin 0 -> 4096 bytes DEMO.H | 425 +++++++++++++++++++++++++ DEMO.PAL | Bin 0 -> 1558 bytes DEMO.PCX | Bin 0 -> 2104 bytes DEMO.PRJ | Bin 0 -> 5458 bytes DEMO1.PCX | Bin 0 -> 1659 bytes FOTO.CPP | 295 ++++++++++++++++++ FOTO.EXE | Bin 0 -> 57365 bytes FOTO1.TXT | 0 FOTO2.TXT | 0 FOTO3.TXT | 0 FOTO4.TXT | 0 MODEX.OBJ | Bin 0 -> 18607 bytes OUT.CPP | 335 ++++++++++++++++++++ PAT0.PCX | Bin 0 -> 6689 bytes PAT1.PCX | Bin 0 -> 6764 bytes PAT2.PCX | Bin 0 -> 6890 bytes PCX.CPP | 190 ++++++++++++ PCX.EXE | Bin 0 -> 38060 bytes README.md | 4 + 22 files changed, 2155 insertions(+) create mode 100644 DEMO.CPP create mode 100644 DEMO.EXE create mode 100644 DEMO.FNT create mode 100644 DEMO.H create mode 100644 DEMO.PAL create mode 100644 DEMO.PCX create mode 100644 DEMO.PRJ create mode 100644 DEMO1.PCX create mode 100644 FOTO.CPP create mode 100644 FOTO.EXE create mode 100644 FOTO1.TXT create mode 100644 FOTO2.TXT create mode 100644 FOTO3.TXT create mode 100644 FOTO4.TXT create mode 100644 MODEX.OBJ create mode 100644 OUT.CPP create mode 100644 PAT0.PCX create mode 100644 PAT1.PCX create mode 100644 PAT2.PCX create mode 100644 PCX.CPP create mode 100644 PCX.EXE create mode 100644 README.md diff --git a/DEMO.CPP b/DEMO.CPP new file mode 100644 index 0000000..6ff91d9 --- /dev/null +++ b/DEMO.CPP @@ -0,0 +1,906 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#include "demo.h" +#include "..\modex\modex.h" + +#define ERROR 1 +#define OK 0 + +char *Pato[3], *BufferV; +int LeePato( char *file, char *dir ); +void ReducePato( char *Dest, char *Org, char Magn ); + +void LeeFuentes(char *file); +void JugadorDyna( int x, int y, char mov ); +void BombaDyna( int x, int y, char mov ); +void MensajeIntermedio(char *buffer); +void FuenteAmplia( char *Frase, p_Ampliada far *FA ); +void FuenteAmplia2( char *Frase, p_Ampliada far *FA ); +void PatoSimpsons(void); + +char *ptr_char; + +int XSinMov[256], YSinMov[256]; +int TSin[360+90]; + + /**************************************************************************\ +|* *| +|* CargaPaleta *| +|* *| +|* Descripci¢n: *| +|* Carga la paleta con los colores por defecto *| +|* *| +|* *| +|* Entradas: achivo PCX de donde cargar la paleta *| +|* *| +|* Salidas: OK Todo ha ido bien *| +|* ERROR Algo va mal *| +|* *| + \**************************************************************************/ +int CargaPaleta(char *file ) +{ + int index; + FILE *fp; + + if ( (fp=fopen( file, "rb" ) ) == NULL ) + return ERROR; + + if ( fseek( fp, -768L, SEEK_END ) == 0 ) + { + for (index=0; index<256; index++) + { + // get the red component + // get the green component + // get the blue component + // set components + Palette256[index][0] = ( ( getc(fp) >> 2 ) )/* *63 )/255*/; + Palette256[index][1] = ( ( getc(fp) >> 2 ) )/* *63 )/255*/; + Palette256[index][2] = ( ( getc(fp) >> 2 ) )/* *63 )/255*/; + } // end for index + + } + setvgapalette256( &Palette256 ); + + + fclose( fp ); + return OK; +}; + + +void RellenaTablas(void) +{ + float angle; + + angle = 0; + while( angle < 256 ) + { + XSinMov[angle] = YSinMov[angle] = (int)( sin( (M_PI*angle*1.4)/180.0 ) * 180.0) / M_PI; + YSinMov[angle] = 0; + angle+=1; + }; + + angle = 0; + while( angle < (360+90) ) + { + TSin[angle] = (int)(sin( (M_PI*angle)/180.0 ) * 100 ); + angle+=1; + }; + +} + +void Put( int x, int y, char c) +{ + if ( x < 0 || x >= 320 ) return; + if ( y < 0 || y >= 200 ) return; + + // { Written by Matt Sottile } + asm mov ax,y + asm mov bx,ax + asm shl ax,8 + asm shl bx,6 + asm add bx,ax + asm add bx,x + asm mov ax,0xa000 + asm mov es,ax + asm mov al,c + asm mov es:[bx],al +}; + +//#define RADIO 255 +#define RADIO 255 +//#define SALTOS_PROFUNDOS 8 +#define SALTOS_PROFUNDOS 8 +//#define SALTOS_ANCHOS 7 +#define SALTOS_ANCHOS 7 +#define BLOQUEO_RADIO 1 + + +#define INCREMENTAL 1 + +#define PROFUNDIDAD_TUNEL 35 +//#define FACTOR_SERPIENTE 0.015F +#define FACTOR_SERPIENTE 0.008594366927F + +//#define TODO_BLANCO +//#define TODO_GRIS + +int PERFECCION_CIRCULO = 8; +// Circulo con impresi¢n de giro ( MEJORA POR JD ) +void Circulo( int x, int y, int radio, int giro, int Color ) +{ + int angle; + + for ( angle = 0; angle < 360; angle+=PERFECCION_CIRCULO ) + Put( x + (radio*FACTOR_SERPIENTE*TSin[ (giro + angle)%360 + 90 ]), y + (radio*FACTOR_SERPIENTE*TSin[ (giro+angle)%360 ]), angle >= 0 && angle <= 50 ? (Color-PROFUNDIDAD_TUNEL) : (Color) ); + +}; + +// Circulo con impresi¢n de giro ( MEJORA POR JD ) +void CirculoB( int x, int y, int radio, int giro ) +{ + int angle; + + for ( angle = 0; angle < 360; angle+=PERFECCION_CIRCULO ) + Put( x + (radio*FACTOR_SERPIENTE*TSin[ (giro + angle)%360 + 90 ]), y + (radio*FACTOR_SERPIENTE*TSin[ (giro+angle)%360 ]), 0 ); +}; + +void TunelEstrellas(void) +{ + int depth, Color; + static unsigned char ZMov = 0; + static int GiroAngular = 0; + unsigned char Movimiento = ZMov; + static Subidon = 255; + + static Velocidad = 0; + // Controles de giro por JD: + // SUAVE ZMov + // DURO Movimiento + int OGiroAngular = GiroAngular; + GiroAngular = ( GiroAngular++ ) % 360; + + + + ZMov ++; + Movimiento = ZMov; + Color = 255-PROFUNDIDAD_TUNEL; +// Color = 255; + Velocidad++; + if ( Velocidad == 5 ) + { + Velocidad = 0; + // Subidon --; if ( Subidon < 255-PROFUNDIDAD_TUNEL ) Subidon = 255; + Subidon = (Subidon++)%PROFUNDIDAD_TUNEL; + } + + for ( depth=0; depth=0; depth-=SALTOS_ANCHOS*INCREMENTAL, Movimiento+=SALTOS_PROFUNDOS, Color-- ) + { +/* +OGiroAngular = GiroAngular; +GiroAngular = ( GiroAngular++ ) % 360; +*/ + + // Borra el anterior + CirculoB( XSinMov[(unsigned char)(Movimiento-1)] + 160, YSinMov[(unsigned char)(Movimiento-1)] + 100, RADIO - depth*BLOQUEO_RADIO, OGiroAngular + 0*Movimiento ); + + Subidon = (Subidon++)%PROFUNDIDAD_TUNEL; + + // Dibuja el nuevo circulo +// Circulo( XSinMov[Movimiento] + 160, YSinMov[Movimiento] + 100, RADIO - depth*BLOQUEO_RADIO, GiroAngular + 0*Movimiento, (Subidon >= Color && Subidon <= Color + 2 ) ? 1: Color ); + Circulo( XSinMov[Movimiento] + 160, YSinMov[Movimiento] + 100, RADIO - depth*BLOQUEO_RADIO, GiroAngular + 0*Movimiento, Subidon%6 == 0 || Subidon%6 == 1 ? 1+Subidon : Color); + } + + delay(10); +} + +typedef struct +{ + unsigned char R, G, B; + +} ColorValue; + +typedef ColorValue VGAPaletteType[256]; + +void ReadPal( VGAPaletteType K ) +{ + struct REGPACK outR; + + outR.r_ax = 0x1017; + outR.r_bx = 0; + outR.r_cx = 256; + outR.r_es = FP_SEG(K); + outR.r_dx = FP_OFF(K); + while( ( inport(0x03DA) & 0x08 ) == 0x08 ); // {Wait for rescan} + intr( 0x10, &outR ); +}; + +void WritePal( VGAPaletteType K ) +{ + struct REGPACK outR; + + outR.r_ax = 0x1012; + outR.r_bx = 0; + outR.r_cx = 256; + outR.r_es = FP_SEG(K); + outR.r_dx = FP_OFF(K); +// while( ( inport(0x03DA) & 0x08 ) == 0x08 ); // {Wait for rescan} + sync_display(); + intr( 0x10, &outR ); +}; + + VGAPaletteType Pal; +void CreaPaleta(void) +{ + unsigned char I; + + memset( Pal, 0, sizeof(Pal) ); + + Pal[1].R = 255; + Pal[1].G = 255; + Pal[1].B = 255; + + Pal[255].R = 20; + Pal[255].G = 0; + Pal[255].B = 0; + for ( I=254/*MaxColor*/; I > 254-PROFUNDIDAD_TUNEL; I-- ) + { + Pal[I] = Pal[I+1]; + { + if ( Pal[I].R<63 ) Pal[I].R++; + if ( Pal[I].R<63 ) Pal[I].R++; + if ( (I % 2==0) && (Pal[I].G<53) ) Pal[I].G++; + if ( (I % 2==0) && (Pal[I].B<63) ) Pal[I].B++; + } + } + +#ifdef TODO_GRIS + Pal[5].R = 255; + Pal[5].G = 255; + Pal[5].B = 255; + for ( I=5; I < 255; I++ ) + { + Pal[I] = Pal[I-1]; + { + Pal[I].R--; + Pal[I].G--; + Pal[I].B--; + } + } +#endif + + Pal[255-PROFUNDIDAD_TUNEL+1].R = 0; + Pal[255-PROFUNDIDAD_TUNEL+1].G = 0; + Pal[255-PROFUNDIDAD_TUNEL+1].B = 20; + for ( I=/*MaxColor*/255-PROFUNDIDAD_TUNEL; I > 255-2*PROFUNDIDAD_TUNEL; I-- ) + { + Pal[I] = Pal[I+1]; + { + if ( Pal[I].B<63 ) Pal[I].B++; + if ( Pal[I].B<63 ) Pal[I].B++; + if ( (I % 2==0) && (Pal[I].G<53) ) Pal[I].G++; + if ( (I % 2==0) && (Pal[I].R<63) ) Pal[I].R++; + } + } + + +#ifdef TODO_BLANCO + memset( Pal, 255, sizeof(Pal) ); + Pal[0].R = 0; + Pal[0].G = 0; + Pal[0].B = 0; +#endif + + WritePal(Pal); +} + + +#define Longitud_Despedida (64+13)*8 +void DynaFin( char *buffer, char *buffer1 ) +{ + long i; char mov, acel; + int salida, index, x, y; + + p_Ampliada Despedida = { 0, 50, 40, 2, 2, 0, 255, 255 }; + + setvgapalette256( &PaletteDyn ); + + // Mostramos el mensaje de despedia. + + i = 0; + Despedida.AX = 2; + Despedida.AY = 2; + while ( i < Longitud_Despedida ) + { + i++; + FuenteAmplia( buffer, &Despedida ); + delay(3); + }; + + i = 0; +// Despedida.y += 30; + Despedida.AX = 1; + Despedida.AY = 1; + while ( i < (28+24)*8 ) + { + i++; + FuenteAmplia( buffer1, &Despedida ); + delay(3); + }; + + delay(2000); + + // Acercamiento del mu¤eco, colocaci¢n de la bomba, y alejamiento mu¤eco + mov = 1; acel = 0; + for ( x = 320; x > -30; x -=2 ) + { + acel = (acel++) % 2; + if ( acel == 1 ) + mov = (mov++) % 3; + if ( x < 160 ) + BombaDyna( 160, 150, mov-1 ); + JugadorDyna( x, 150, mov-1 ); + delay(50); + } + + + + + + // Explosion de la bomba + // Gradiente rapidisimo hasta el blanco + Palette256[64][0] = 32; + Palette256[64][1] = 32; + Palette256[64][2] = 32; + memset( MK_FP( 0xA000, 0 ), 64, 320*200 ); + + salida = 0; + for( ; salida == 0; ) + { + for (index=100; index>=0; index--) + { + // set components + if( Palette256[index][0]<63 ) Palette256[index][0] ++; + if( Palette256[index][1]<63 ) Palette256[index][1] ++; + if( Palette256[index][2]<63 ) Palette256[index][2] ++; + if( Palette256[index][0]==63 && Palette256[index][1]==63 && Palette256[index][2]==63 ) + salida = 1; + else + salida = 0; + } // end for index + setvgapalette256( &Palette256 ); + } + + delay(2000); + + // Gradiente algo mas lento hacia el negro + salida = 0; + for( ; salida == 0; ) + { + for (index=0; index<256; index++) + { + // set components + if( Palette256[index][0]>0 ) Palette256[index][0] --; + if( Palette256[index][1]>0 ) Palette256[index][1] --; + if( Palette256[index][2]>0 ) Palette256[index][2] --; + if( Palette256[index][0]==0 && Palette256[index][1]==0 && Palette256[index][2]==0 ) + salida = 1; + else + salida = 0; + } // end for index + setvgapalette256( &Palette256 ); + delay(50); + } + + +} + + +void JugadorDyna( int x, int y, char mov ) +{ + char x1, y1; + + if ( mov < 0 ) + { + // Borra el mu¤eco anterior + + } else { + // Pinta el nuevo mu¤eco + for ( x1=0; x1 < 23; x1++ ) + for ( y1=0; y1 < 23; y1++ ) + Put( x+x1, y+y1, DynaMovs[mov][y1][x1] ); + } + +} + +void BombaDyna( int x, int y, char mov ) +{ + char x1, y1; + + if ( mov < 0 ) + { + // Borra el mu¤eco anterior + + } else { + // Pinta el nuevo mu¤eco + for ( x1=0; x1 < 16; x1++ ) + for ( y1=0; y1 < 18; y1++ ) + Put( x+x1, y+y1, BombMovs[mov][y1][x1] ); + } + +} + + +void CirculoGradiente(void) +{ + int x, y; + float angle; int radio; + + VGAPaletteType K; + + ReadPal( K ); + K[x].R =0; + K[x].G =0; + K[x].B =0; + + // Intentemos mejorar la paleta + for ( x = 1; x <= 127; x++ ) + { + K[x].R = K[x-1].R+1; + K[x].G = K[x-1].G+1; + K[x].B = K[x-1].B+1; + } + for ( x = 127; x < 256; x++ ) + { + K[x].R = K[255-x].R; + K[x].G = 0*K[255-x].G; + K[x].B = 0*K[255-x].B; + } + + + // Calculamos los circulos + for ( radio = 1; radio < 320; radio++ ) + for ( angle = 0; angle < 360; angle+=0.1 ) + { + x = 160 + (radio*sin( angle * M_PI / 180.0 )); + y = 100 + ((radio/*+20*/)*cos( (angle-15) * M_PI / 180.0 )); + if ( x >= 0 && x < 320 && y >= 0 && y < 200 ) + Put( x, y, (radio%(255/*-32*/))/*+32*/ ); + } + + clock_t start, end; + start = clock(); + while( ( ( clock() - start) / CLK_TCK ) < 30 ) + { + for ( x = 0; x < 256; x++ ) + K[x]=K[ (x+1)%255+1 ]; + WritePal( K ); + } +}; + + /*************************************************************************\ +|* *| +|* El control es poder, y aqui esta el control de todo el demo... *| +|* *| +|* *| +|* *| +|* *| +|* *| +|* *| +|* *| +|* *| +|* *| +|* *| + \*************************************************************************/ +void main(void) +{ + int ok; + + if ( ( ptr_char = (char *)malloc( 4096*sizeof(char) ) ) == NULL ) + return; + LeeFuentes( "demo.fnt" ); + + RellenaTablas(); + + // Cambiamos a modo grafico + asm mov ax, 0x13 + asm int 0x10 + + + while( kbhit() ) getch(); + + //°±±²²²ÛÛÛþþ þ þ Tunel de Estrellas (JD) þ þ þþÛÛÛ²²²±±° + PatoSimpsons(); + + MensajeIntermedio( "Que tal un poco de plasma para tus ojos" ); + + CirculoGradiente(); + + + MensajeIntermedio( "Waooo, eso ha estado bien, pero esto estar  aun mejor" ); + + //°±±²²²ÛÛÛþþ þ þ Tunel de Estrellas (JD) þ þ þþÛÛÛ²²²±±° + CreaPaleta(); // ¨ Porque no mejoramos la paleta 16x2 ? + ReadPal(Pal); + + clock_t start, end; + start = clock(); + while( ( ( clock() - start) / CLK_TCK ) < 30 ) + TunelEstrellas(); + + MensajeIntermedio( "Y por si fuera poco, miraa esto:" ); + + + //°±±²²²ÛÛÛþþ þ þ Mensaje y dyna poniendo una bomba þ þ þþÛÛÛ²²²±±° + DynaFin( " Agradecimiento a todos los que han hecho posible este demo. ", " Jose David Guillen 1997 (c)" ); + + + + // Cambiamos a modo texto + asm mov ax, 3 + asm int 0x10 +/* + gotoxy(1,1); + cprintf( "C:\\>"); + sleep(30); + cprintf( "\n\r Que no me he quedao' colgao' tio... " ); + cprintf( "\n\r -- Hasta el proximo intro -- " ); + cprintf( "\n\r Jos‚ David Guill‚n 1997 (c) " ); + cprintf( "\n\r " ); +*/ + free ( ptr_char ); +} + +void MensajeIntermedio(char *buffer) +{ + char buffer1[500]; + long i, len; + p_Ampliada Despedida = { 0, 50, 40, 1, 1, 0, 200, 200 }; + + memset( MK_FP( 0xA000, 0 ), 0, 320*200 ); + while( kbhit() ) getch(); + i = 0; + sprintf( buffer1, " %s", buffer ); + len = (strlen( buffer1 ))*8; + while ( i < len ) + { + i++; + FuenteAmplia2( buffer1, &Despedida ); + delay(3); + }; + memset( MK_FP( 0xA000, 0 ), 0, 320*200 ); +} + + + +/////ÜÜ///////////////////////////////////////////////////////////////////////////// +////Û///////////////////////////////////////////////////////////////////////////////// +/////ßÜ/////Ü/////////////////////////////////////////////////////////////////////// +//////ß///Ü////ß/Ü////////////////////////////////////////////////////////////////// +///////ß/Ü///Ü////////////////////////////////////////////////////////////////////// +////////Ü//ß////ß/////////////////////////////////////////////////////////////////// +/////////ß////Ü///////////////////////////////////////////////////////////////////// +///////////ß//////////////////////////////////////////////////////////////////////// +#define TAMx 8 +#define TAMy 16 +void FuenteAmplia( char *Frase, p_Ampliada far *FA ) +{ + int i, j, k; // Variables de avance + int c_elec; // Color en el momento de imprimir + int PosX, PosY; // Posicion fisica final + char LCaract; // Caracter de linea a tratar + + if ( FA->Flen != _fstrlen( Frase ) ) // Reseteamos las variables de control interno + { + // Obtenemos la longitud de la frase. ( En d¡gitos ) + FA -> Flen = _fstrlen( Frase ); + // Contador de digito actual a cero + FA -> BitByte = 0; + // Posicion dentro de la frase + FA -> currByte = 0; + } + + // Avance horizontal de bit's ( avance de digitos ) + for ( i = 0; i < ( TAMx * (FA -> ndigitos) ); i++ ) + { + k = ( Frase[ ( (i+FA->BitByte)/TAMx + FA -> currByte ) % FA->Flen ] ) << 4; + LCaract = ( (char)0x01 << (7 - (i+FA->BitByte)%TAMx) ); + PosX = FA -> x + FA->AX * i; // Posicion f¡sica horizontal + // Avance vertical de bit's + for ( j = 0; j < TAMy; j ++ ) + { + PosY = FA -> y + FA->AY * j; // Posicion f¡sica vertical + + if ( ptr_char[ k + j ] & LCaract ) + c_elec = FA->C2; + else + c_elec = FA->C1; + + Put ( PosX, PosY, c_elec ); + } + } + // Tenemos en cuenta el avance dentro de la frase + if ( ( FA -> BitByte ++ ) >= 7 ) + { + FA -> BitByte = 0; FA -> currByte ++; + if ( FA -> currByte >= FA -> Flen ) + FA -> currByte = 0; + } + +} +#undef TAMy +#undef TAMx + + +#define TAMx 8 +#define TAMy 16 +void FuenteAmplia2( char *Frase, p_Ampliada far *FA ) +{ + int i, j, k; // Variables de avance + int c_elec; // Color en el momento de imprimir + int PosX, PosY; // Posicion fisica final + char LCaract; // Caracter de linea a tratar + + if ( FA->Flen != _fstrlen( Frase ) ) // Reseteamos las variables de control interno + { + // Obtenemos la longitud de la frase. ( En d¡gitos ) + FA -> Flen = _fstrlen( Frase ); + // Contador de digito actual a cero + FA -> BitByte = 0; + // Posicion dentro de la frase + FA -> currByte = 0; + } + + // Avance horizontal de bit's ( avance de digitos ) + for ( i = 0; i < ( TAMx * (FA -> ndigitos) ); i++ ) + { + k = ( Frase[ ( (i+FA->BitByte)/TAMx + FA -> currByte ) % FA->Flen ] ) << 4; + LCaract = ( (char)0x01 << (7 - (i+FA->BitByte)%TAMx) ); + PosX = FA -> x + FA->AX * i; // Posicion f¡sica horizontal + // Avance vertical de bit's + for ( j = 0; j < TAMy; j ++ ) + { + PosY = FA -> y + FA->AY * j; // Posicion f¡sica vertical + + if ( ptr_char[ k + j ] & LCaract ) + c_elec = /*FA->C2*/PosX; + else + c_elec = FA->C1; + + Put ( PosX, PosY, c_elec ); + } + } + // Tenemos en cuenta el avance dentro de la frase + if ( ( FA -> BitByte ++ ) >= 7 ) + { + FA -> BitByte = 0; FA -> currByte ++; + if ( FA -> currByte >= FA -> Flen ) + FA -> currByte = 0; + } + +} +#undef TAMy +#undef TAMx + +/* Setvgapalette256 sets the entire 256 color palette */ +/* PalBuf contains RGB values for all 256 colors */ +/* R,G,B values range from 0 to 63 */ +/* Usage: */ +/* DacPalette256 dac256; */ +/* */ +/* setvgapalette256(&dac256); */ +void setvgapalette256(DacPalette256 *PalBuf) +{ + struct REGPACK reg; + + reg.r_ax = 0x1012; + reg.r_bx = 0; + reg.r_cx = 256; + reg.r_es = FP_SEG(PalBuf); + reg.r_dx = FP_OFF(PalBuf); +// while( ( inport(0x03DA) & 0x08 ) == 0x08 ); // {Wait for rescan} + sync_display(); + intr(0x10,®); +} + + /*************************************************************************\ +|* *| +|* LeeFuentes *| +|* *| +|* Descripcion: *| +|* Lee el conjunto de fuentes del archivo especificado *| +|* *| +|* Entradas: puntero al nombre del archivo *| +|* *| +|* Salidas: (ninguna) *| +|* *| + \*************************************************************************/ +void LeeFuentes(char *file) +{ +FILE *fich; + /* Reservamos 4 Kb. para cargar la fuente en memoria */ + + /* Abrimos el fichero de la fuente */ + + if ((fich=fopen(file,"rb"))==NULL) { + printf("\a\nArchivo %s no encontrado.\n",file); + exit(1); + } + + fseek(fich, SEEK_SET, 0); /* Nos colocamos al principio del fichero */ + fread(ptr_char,1,4096,fich); /* Cargamos en memoria 4096 bytes del fichero */ + fclose(fich); /* Cerramos el fichero */ +} + +#define RESP_X 151 +#define RESP_Y 141 + + + +void PatoSimpsons(void) +{ + FILE *handle; + char *Buffer2; + int byteRot; + int x, y, mov, i, ok; + // Pido memoria para los tres patos 151x141 + if ( ( Pato[0] = (char *)malloc( sizeof(char)*155*145 ) ) == NULL || + ( Pato[1] = (char *)malloc( sizeof(char)*155*145 ) ) == NULL || + ( Pato[2] = (char *)malloc( sizeof(char)*155*145 ) ) == NULL || + ( Buffer2 = (char *)malloc( sizeof(char)*320*200 ) ) == NULL || + ( BufferV = (char *)malloc( sizeof(char)*320*200 ) ) == NULL + ) { + printf( "\a" ); + return; + } + +// Buffer2 = (char *)MK_FP( 0xA000, 0 ); + + // Inicializamos la paleta + CargaPaleta( "Pat0.pcx" ); + // Leemos los patos + LeePato( "Pat0.pcx", Pato[0] ); + // Muestra el primer pato mientras acabamos los c lculos + for ( x = 0; x < RESP_X; x ++ ) + for ( y = 0; y < RESP_Y; y ++ ) + Put( x+85, y+50, Pato[0][x + RESP_X*y] ); + LeePato( "Pat1.pcx", Pato[1] ); + LeePato( "Pat2.pcx", Pato[2] ); + + i = 0; + while ( i < 5*6 ) + { + i++; + mov = (mov++) % 6; + for ( x = 0; x < RESP_X; x ++ ) + for ( y = 0; y < RESP_Y; y ++ ) + Put( x+85, y+50, Pato[ mov > 3 ? (6 - mov) : (mov-1) ][x + RESP_X*y] ); + delay( 100 ); + } + + // Tatatam tam + sync_display(); memset( MK_FP( 0xA000, 0 ), 255, 320*200 ); delay( 50 ); sync_display(); memset( MK_FP( 0xA000, 0 ), 0, 320*200 ); delay( 50 ); + sync_display(); memset( MK_FP( 0xA000, 0 ), 255, 320*200 ); delay( 50 ); sync_display(); memset( MK_FP( 0xA000, 0 ), 0, 320*200 ); delay( 150 ); + sync_display(); memset( MK_FP( 0xA000, 0 ), 255, 320*200 ); delay( 50 ); sync_display(); memset( MK_FP( 0xA000, 0 ), 0, 320*200 ); + + // Patos reduciendoce: + i = 1; ok = 0; byteRot = 0; + int inc = 1, fVel = 0; +float CosAngle, SinAngle; +int xc, yc; + + clock_t start, end; + start = clock(); + while( ( ( clock() - start) / CLK_TCK ) < 30 ) + { + fVel = (fVel++)%3; + if ( fVel==1 ) + { + i += inc; if ( i > 6 ) inc = -1; else if ( i < 2 ) inc = 1; + } + ReducePato( BufferV, Pato[ mov > 3 ? (6 - mov) : (mov-1) ], i ); + mov = (mov++) % 6; + + /* + Que tal una peque¤a rotaci¢n: + */ + byteRot = (byteRot+=8) % 360; +CosAngle = TSin[ byteRot + 90 ] / 100.0; +SinAngle = TSin[ byteRot ] / 100.0; + + for ( x = 0; x < 320; x++ ) +// for ( y = 0; y < 200; y++ ) + for ( y = 0; y < 200; y++ ) + { + xc = x - 160; + yc = y - 100; + + yc = xc * SinAngle + yc * CosAngle + 100; + if ( yc >= 0 && yc < 200 ) + { + xc = xc * CosAngle - ( y - 100 ) * SinAngle + 160; + if ( xc >= 0 && xc < 320 ) + { + Buffer2[ x + 320*y ] = BufferV[ xc + 320 * yc ]; + } else Buffer2[ x + 320*y ] = 0; + } else Buffer2[ x + 320*y ] = 0; + } + sync_display(); memcpy( MK_FP( 0xA000, 0 ), Buffer2, 320*200 ); + delay( 100 ); + }; + + free( Pato[0] ); + free( Pato[1] ); + free( Pato[2] ); + free( BufferV ); +// free( Buffer2 ); +} + +void ReducePato( char *Dest, char *Org, char Magn ) +{ + int x, y; + int xR, yR; + + // Escalamos el primer pato y despues... + for ( x = 0, xR = 0; x < RESP_X; x +=Magn, xR++ ) + for ( y = 0, yR = 0; y < RESP_Y; y +=Magn, yR++ ) + Dest[xR + yR*320] = Org[x + y*RESP_X]; + + // Copiamos en el destino tantos patos reducidos como podamos + // como la ovejita Dolly, pero con patos: a clonar se ha dicho... + for ( x = 0; x < 320; x++ ) + for ( y = 0; y < 200; y++ ) +// for ( y = 0; y < 320; y++ ) + + Dest[x + y*320] = Dest[ (x%xR) + (y%yR)*320 ]; + + +} + + +int LeePato( char *file, char *dir ) +{ + int alto, ancho, contador; + unsigned char byte; + FILE *fp; + + if ( (fp = fopen( file,"rb")) != NULL ) + { + // Saltamos la cabecera + fseek( fp, 128, SEEK_SET ); + + for(alto=0; alto0; contador--) + { +// set_point (ancho, alto, byte); +// ProcesaPunto( ancho, alto, byte ); + dir[ancho + alto*RESP_X] = byte; + ancho++; + } + } + } + } + fclose(fp); + } else return ERROR; + + return OK; +} diff --git a/DEMO.EXE b/DEMO.EXE new file mode 100644 index 0000000000000000000000000000000000000000..1f8349f650184f7ba49c8730bac5b0b5933a1206 GIT binary patch literal 70431 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 literal 0 HcmV?d00001 diff --git a/DEMO.H b/DEMO.H new file mode 100644 index 0000000..37d9aeb --- /dev/null +++ b/DEMO.H @@ -0,0 +1,425 @@ +typedef struct + { + int x, y; // Coordenadas iniciales de muestreo + char ndigitos; // n£mero de digitos a mostrar + char AX, AY; // factor de espaciado + char C1, C2, C3; // colores de fondo, texto, borde + + // Datos privados y uso interno exclusivamente + unsigned int Flen; // longitud de la frase actual + char BitByte; // bit del byte por el que va en el recorrido + char currByte; // byte actual dentro de la frase + } p_Ampliada; + + +typedef unsigned char DacPalette256[256][3]; + +void setvgapalette256(DacPalette256 *PalBuf); + + +// Paleta para el Dyna ( apartir del 50 podemos tocar los gradientes ) +DacPalette256 Palette256; +DacPalette256 PaletteDyn = { + { 0, 00, 00 }, + { 32, 00, 00 }, + { 0, 32, 00 }, + { 32, 32, 00 }, + { 0, 00, 32 }, + { 32, 00, 32 }, + { 0, 32, 32 }, + { 48, 48, 48 }, + { 48, 55, 48 }, + { 41, 50, 60 }, + { 0, 00, 00 }, + { 42, 00, 00 }, + { 53, 00, 00 }, + { 0, 10, 00 }, + { 21, 10, 00 }, + { 32, 10, 00 }, + { 42, 10, 00 }, + { 53, 10, 00 }, + { 63, 10, 00 }, + { 0, 21, 00 }, + { 21, 21, 00 }, + { 32, 21, 00 }, + { 42, 21, 00 }, + { 53, 21, 00 }, + { 63, 21, 00 }, + { 21, 32, 00 }, + { 42, 32, 00 }, + { 53, 32, 00 }, + { 63, 32, 00 }, + { 0, 42, 00 }, + { 21, 42, 00 }, + { 32, 42, 00 }, + { 42, 42, 00 }, + { 53, 42, 00 }, + { 63, 42, 00 }, + { 0, 53, 00 }, + { 21, 53, 00 }, + { 32, 53, 00 }, + { 42, 53, 00 }, + { 53, 53, 00 }, + { 63, 53, 00 }, + { 21, 63, 00 }, + { 32, 63, 00 }, + { 42, 63, 00 }, + { 53, 63, 00 }, + { 21, 00, 21 }, + { 32, 00, 21 }, + { 42, 00, 21 }, + { 53, 00, 21 }, + { 63, 00, 21 }, + { 0, 10, 21 }, + { 21, 10, 21 }, + { 32, 10, 21 }, + { 42, 10, 21 }, + { 53, 10, 21 }, + { 63, 10, 21 }, + { 0, 21, 21 }, + { 21, 21, 21 }, + { 32, 21, 21 }, + { 42, 21, 21 }, + { 53, 21, 21 }, + { 63, 21, 21 }, + { 0, 32, 21 }, + { 21, 32, 21 }, + { 32, 32, 21 }, + { 42, 32, 21 }, + { 53, 32, 21 }, + { 63, 32, 21 }, + { 0, 42, 21 }, + { 21, 42, 21 }, + { 32, 42, 21 }, + { 42, 42, 21 }, + { 53, 42, 21 }, + { 63, 42, 21 }, + { 0, 53, 21 }, + { 21, 53, 21 }, + { 32, 53, 21 }, + { 42, 53, 21 }, + { 53, 53, 21 }, + { 63, 53, 21 }, + { 0, 63, 21 }, + { 21, 63, 21 }, + { 32, 63, 21 }, + { 42, 63, 21 }, + { 53, 63, 21 }, + { 63, 63, 21 }, + { 21, 00, 32 }, + { 42, 00, 32 }, + { 53, 00, 32 }, + { 63, 00, 32 }, + { 0, 10, 32 }, + { 21, 10, 32 }, + { 32, 10, 32 }, + { 42, 10, 32 }, + { 53, 10, 32 }, + { 63, 10, 32 }, + { 0, 21, 32 }, + { 21, 21, 32 }, + { 32, 21, 32 }, + { 42, 21, 32 }, + { 53, 21, 32 }, + { 63, 21, 32 }, + { 21, 32, 32 }, + { 42, 32, 32 }, + { 53, 32, 32 }, + { 63, 32, 32 }, + { 0, 42, 32 }, + { 21, 42, 32 }, + { 32, 42, 32 }, + { 42, 42, 32 }, + { 53, 42, 32 }, + { 63, 42, 32 }, + { 0, 53, 32 }, + { 21, 53, 32 }, + { 32, 53, 32 }, + { 42, 53, 32 }, + { 53, 53, 32 }, + { 63, 53, 32 }, + { 0, 63, 32 }, + { 21, 63, 32 }, + { 32, 63, 32 }, + { 42, 63, 32 }, + { 53, 63, 32 }, + { 63, 63, 32 }, + { 00, 00, 42 }, + { 21, 00, 42 }, + { 32, 00, 42 }, + { 42, 00, 42 }, + { 53, 00, 42 }, + { 63, 00, 42 }, + { 00, 10, 42 }, + { 21, 10, 42 }, + { 32, 10, 42 }, + { 42, 10, 42 }, + { 53, 10, 42 }, + { 63, 10, 42 }, + { 00, 21, 42 }, + { 21, 21, 42 }, + { 32, 21, 42 }, + { 42, 21, 42 }, + { 53, 21, 42 }, + { 63, 21, 42 }, + { 00, 32, 42 }, + { 21, 32, 42 }, + { 32, 32, 42 }, + { 42, 32, 42 }, + { 53, 32, 42 }, + { 63, 32, 42 }, + { 00, 42, 42 }, + { 21, 42, 42 }, + { 32, 42, 42 }, + { 42, 42, 42 }, + { 53, 42, 42 }, + { 63, 42, 42 }, + { 00, 53, 42 }, + { 21, 53, 42 }, + { 32, 53, 42 }, + { 42, 53, 42 }, + { 53, 53, 42 }, + { 63, 53, 42 }, + { 00, 63, 42 }, + { 21, 63, 42 }, + { 32, 63, 42 }, + { 42, 63, 42 }, + { 53, 63, 42 }, + { 63, 63, 42 }, + { 00, 00, 53 }, + { 21, 00, 53 }, + { 32, 00, 53 }, + { 42, 00, 53 }, + { 53, 00, 53 }, + { 63, 00, 53 }, + { 00, 10, 53 }, + { 21, 10, 53 }, + { 32, 10, 53 }, + { 42, 10, 53 }, + { 53, 10, 53 }, + { 63, 10, 53 }, + { 00, 21, 53 }, + { 21, 21, 53 }, + { 32, 21, 53 }, + { 42, 21, 53 }, + { 53, 21, 53 }, + { 63, 21, 53 }, + { 00, 32, 53 }, + { 21, 32, 53 }, + { 32, 32, 53 }, + { 42, 32, 53 }, + { 53, 32, 53 }, + { 63, 32, 53 }, + { 00, 42, 53 }, + { 21, 42, 53 }, + { 32, 42, 53 }, + { 42, 42, 53 }, + { 53, 42, 53 }, + { 63, 42, 53 }, + { 00, 53, 53 }, + { 21, 53, 53 }, + { 32, 53, 53 }, + { 42, 53, 53 }, + { 53, 53, 53 }, + { 63, 53, 53 }, + { 00, 63, 53 }, + { 21, 63, 53 }, + { 32, 63, 53 }, + { 42, 63, 53 }, + { 53, 63, 53 }, + { 63, 63, 53 }, + { 21, 00, 63 }, + { 32, 00, 63 }, + { 42, 00, 63 }, + { 53, 00, 63 }, + { 00, 10, 63 }, + { 21, 10, 63 }, + { 32, 10, 63 }, + { 42, 10, 63 }, + { 53, 10, 63 }, + { 63, 10, 63 }, + { 00, 21, 63 }, + { 21, 21, 63 }, + { 32, 21, 63 }, + { 42, 21, 63 }, + { 53, 21, 63 }, + { 63, 21, 63 }, + { 00, 32, 63 }, + { 21, 32, 63 }, + { 32, 32, 63 }, + { 42, 32, 63 }, + { 53, 32, 63 }, + { 63, 32, 63 }, + { 00, 42, 63 }, + { 21, 42, 63 }, + { 32, 42, 63 }, + { 42, 42, 63 }, + { 53, 42, 63 }, + { 63, 42, 63 }, + { 00, 53, 63 }, + { 21, 53, 63 }, + { 32, 53, 63 }, + { 42, 53, 63 }, + { 53, 53, 63 }, + { 63, 53, 63 }, + { 21, 63, 63 }, + { 32, 63, 63 }, + { 42, 63, 63 }, + { 53, 63, 63 }, + { 63, 62, 60 }, + { 40, 40, 41 }, + { 32, 32, 32 }, + { 63, 00, 00 }, + { 00, 63, 00 }, + { 63, 63, 00 }, + { 00, 00, 63 }, + { 63, 00, 63 }, + { 00, 63, 63 }, + { 63, 63, 63 } + }; + + + +//unsigned char BombMovs[16][18][3] = { + +// BLOQUE / FILA / COLUMNA +unsigned char BombMovs[3][18][16] = { + { + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 12, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 12, 10, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 0, 10, 255, 10, 0, 0 }, + { 0, 0, 0, 0, 10, 10, 51, 255, 51, 51, 10, 255, 33, 10, 0, 0 }, + { 0, 0, 0, 10, 51, 0, 51, 13, 51, 13, 10, 0, 10, 0, 0, 0 }, + { 0, 0, 10, 51, 255, 51, 13, 51, 51, 51, 51, 10, 10, 10, 0, 0 }, + { 0, 0, 10, 0, 255, 13, 51, 13, 51, 13, 51, 13, 51, 10, 0, 0 }, + { 0, 10, 51, 255, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 10, 0 }, + { 0, 10, 51, 0, 51, 13, 51, 13, 51, 13, 51, 13, 51, 13, 10, 0 }, + { 0, 10, 13, 51, 51, 51, 13, 51, 51, 51, 13, 51, 51, 51, 10, 0 }, + { 0, 10, 51, 13, 51, 13, 51, 13, 51, 13, 51, 13, 51, 13, 10, 0 }, + { 0, 0, 10, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 10, 0, 0 }, + { 0, 0, 10, 13, 51, 13, 51, 13, 51, 13, 51, 13, 51, 10, 0, 0 }, + { 0, 0, 0, 10, 51, 51, 13, 51, 51, 51, 51, 51, 10, 0, 0, 0 }, + { 0, 0, 0, 0, 10, 10, 51, 13, 51, 13, 10, 10, 0, 0, 0, 0 } + }, + { + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 33 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 33, 0, 12 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 12, 10 }, + { 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 0, 10, 10, 255, 10 }, + { 0, 0, 0, 0, 10, 10, 10, 51, 255, 51, 51, 10, 255, 255, 33, 10 }, + { 0, 0, 0, 10, 51, 51, 51, 51, 13, 51, 13, 10, 0, 0, 10, 0 }, + { 0, 0, 10, 51, 13, 51, 51, 13, 0, 51, 51, 51, 10, 10, 10, 10 }, + { 0, 0, 10, 51, 51, 51, 13, 255, 255, 51, 13, 51, 13, 13, 51, 10 }, + { 0, 10, 51, 51, 51, 51, 0, 255, 255, 51, 51, 51, 51, 51, 51, 51 }, + { 0, 10, 51, 13, 13, 51, 255, 51, 13, 51, 13, 51, 13, 13, 51, 13 }, + { 0, 10, 51, 51, 51, 51, 0, 51, 13, 51, 13, 51, 13, 13, 51, 13 }, + { 0, 10, 13, 51, 51, 51, 0, 13, 51, 51, 51, 13, 51, 51, 51, 51 }, + { 0, 10, 51, 13, 51, 51, 13, 51, 13, 51, 13, 51, 13, 13, 51, 13 }, + { 0, 0, 10, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 10 }, + { 0, 0, 10, 13, 51, 51, 13, 51, 13, 51, 13, 51, 13, 13, 51, 10 }, + { 0, 0, 0, 10, 51, 51, 51, 13, 51, 51, 51, 51, 51, 51, 10, 0 }, + { 0, 0, 0, 0, 10, 10, 10, 51, 13, 51, 13, 10, 10, 10, 0, 0 } + }, + { + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 0 }, + { 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12 }, + { 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 12, 10 }, + { 0, 10, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 0, 10, 255, 10 }, + { 0, 10, 0, 0, 0, 0, 10, 10, 51, 51, 51, 51, 10, 255, 33, 10 }, + { 0, 10, 0, 0, 0, 10, 51, 13, 51, 13, 255, 13, 10, 0, 10, 0 }, + { 0, 10, 0, 0, 10, 51, 13, 51, 13, 51, 51, 51, 51, 10, 10, 10 }, + { 0, 10, 0, 0, 10, 13, 13, 13, 51, 13, 51, 255, 255, 13, 51, 10 }, + { 0, 10, 0, 10, 51, 13, 51, 51, 51, 51, 51, 51, 51, 0, 51, 51 }, + { 0, 10, 0, 10, 51, 13, 51, 13, 51, 13, 51, 13, 51, 13, 255, 13 }, + { 0, 10, 0, 10, 13, 51, 51, 51, 13, 51, 51, 51, 51, 51, 0, 51 }, + { 0, 10, 0, 10, 51, 13, 51, 13, 51, 13, 51, 13, 51, 13, 0, 13 }, + { 0, 10, 0, 0, 10, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 10 }, + { 0, 10, 0, 0, 10, 13, 51, 13, 51, 13, 51, 13, 51, 13, 51, 10 }, + { 0, 10, 0, 0, 0, 10, 51, 51, 13, 51, 51, 51, 51, 51, 10, 0 }, + { 0, 10, 0, 0, 0, 0, 10, 10, 51, 13, 51, 13, 10, 10, 0, 0 }, + } + }; + +unsigned char DynaMovs[3][23][23] = { + { + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 10, 10, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 10, 1, 11, 12, 12, 11, 11, 10, 0, 0, 10, 29, 35, 10, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 11, 11, 12, 12, 12, 12, 12, 11, 11, 10, 10, 10, 35, 29, 10, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 11, 12, 12, 12, 12, 12, 12, 12, 11, 11, 10, 0, 10, 10, 0, 0, }, + { 0, 0, 0, 0, 0, 10, 23, 24, 23, 24, 23, 11, 12, 12, 12, 12, 11, 10, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 10, 24, 33, 10, 28, 28, 23, 11, 12, 12, 12, 12, 10, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 10, 23, 28, 10, 28, 33, 24, 11, 12, 12, 12, 11, 10, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 10, 24, 28, 10, 33, 28, 24, 11, 12, 12, 12, 11, 10, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 10, 23, 24, 23, 24, 23, 11, 12, 12, 12, 11, 10, 10, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 12, 12, 12, 10, 10, 10, 11, 11, 10, 10, 0, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 17, 28, 17, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 12, 18, 10, 28, 28, 28, 10, 11, 10, 0, 0, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 12, 17, 10, 33, 28, 23, 10, 1, 10, 0, 0, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 33, 28, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 12, 17, 10, 29, 35, 29, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 33, 28, 33, 28, 10, 0, 0, 0, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 10, 10, 10, 10, 35, 29, 35, 29, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, } + }, + { + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 10, 10, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 1, 11, 12, 12, 11, 11, 10, 0, 10, 35, 29, 10, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, 12, 12, 12, 12, 12, 12, 11, 10, 10, 29, 35, 10, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 11, 12, 12, 12, 12, 12, 12, 12, 12, 11, 10, 10, 10, 10, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 23, 24, 23, 11, 12, 12, 12, 12, 12, 12, 1, 10, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 24, 10, 28, 24, 11, 12, 12, 12, 12, 12, 11, 10, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 23, 10, 33, 24, 11, 12, 12, 12, 12, 12, 11, 10, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 24, 10, 28, 24, 11, 12, 12, 12, 12, 12, 11, 10, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 23, 24, 23, 11, 12, 12, 12, 12, 12, 11, 10, 10, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 10, 10, 10, 1, 11, 12, 12, 10, 10, 10, 11, 10, 10, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 10, 29, 35, 10, 10, 10, 10, 10, 28, 23, 18, 10, 10, 0, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 10, 35, 10, 10, 18, 24, 18, 10, 24, 28, 24, 18, 10, 10, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 10, 28, 10, 18, 23, 18, 17, 10, 23, 28, 10, 35, 10, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 10, 28, 10, 33, 28, 10, 10, 10, 10, 10, 35, 29, 10, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 10, 18, 17, 18, 17, 18, 12, 10, 10, 10, 0, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 10, 28, 33, 24, 12, 12, 12, 10, 35, 10, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 10, 10, 10, 28, 33, 24, 17, 10, 10, 10, 10, 35, 10, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 10, 35, 35, 10, 24, 18, 10, 10, 28, 28, 10, 29, 10, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 29, 35, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, } + }, + { + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 0, 0, 10, 10, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1, 11, 12, 12, 12, 11, 11, 10, 10, 35, 35, 10, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, 12, 12, 12, 12, 12, 12, 11, 10, 35, 29, 10, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 10, 10, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 23, 24, 23, 24, 23, 24, 23, 11, 12, 12, 11, 10, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 10, 33, 28, 10, 28, 33, 28, 24, 11, 12, 11, 10, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 10, 28, 33, 10, 33, 28, 33, 24, 11, 12, 12, 10, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 10, 28, 28, 10, 28, 28, 28, 24, 11, 12, 11, 10, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 23, 24, 23, 24, 23, 24, 23, 11, 12, 12, 1, 10, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 18, 10, 10, 10, 1, 11, 12, 1, 10, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 29, 35, 10, 10, 23, 18, 10, 10, 10, 10, 10, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 35, 10, 24, 33, 28, 24, 10, 24, 12, 10, 18, 10, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 10, 24, 33, 28, 23, 18, 10, 24, 12, 10, 17, 18, 10, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 28, 24, 18, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 18, 10, 10, 10, 18, 17, 18, 17, 10, 10, 35, 10, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 10, 18, 28, 18, 17, 18, 18, 12, 33, 24, 10, 10, 10, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 10, 29, 10, 33, 28, 23, 10, 10, 10, 23, 28, 33, 24, 10, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 10, 35, 35, 10, 23, 10, 10, 10, 10, 10, 24, 28, 10, 35, 10, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 35, 29, 10, 10, 10, 10, 10, 10, 10, 10, 10, 29, 10, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 29, 10, 10, 10, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, } + } + }; \ No newline at end of file diff --git a/DEMO.PAL b/DEMO.PAL new file mode 100644 index 0000000000000000000000000000000000000000..2ebe2427fec457338fe9a10d3b40fcfdbd655fa6 GIT binary patch literal 1558 zcmeH_{Zq>U0LGv1ce&MRS}UDmtwQA@WEQO`(P=q0;=Ws5dC84fMBZwN*hwodEv2C{ zqAO}m$!kNp(6w4Qb2!D7kviRlT&0=6gXgE`x984a->Sqrjd= zkeV_0ekjfvdNZ7Q(ES>LpO9rnRx7k0q+&q$A!8RhgiOM(*V};@Im~<%ISHj*8S`xM z{VVu}2y2P5I)wMO2$=BHbA14V8Ju=x-9mmZscMF{9VN|X5vw>Ch;JKL*;iT@^4^tS z&qGX)mIDOqyH3)}g6xQtns*{c9BjoC1(QMK972+hT_l@Eu(@ceL2~*jCdibt&GV+# ztYARWV2Wp=OasF+2#uFmLpg9Vl0Inr2Nrp>rQ2SLq9e9su@jBtR`IR(iBEy$g}5UL-gKMn z(mvnmFx9=$*@)lkaeaZ{m8t=LX~5y$wPK3i?wT`A?h z4erUB(=v_4B67}*8yy={#V!r|5fQO;k^I538QK1sw-*|!XDa)>_g=nn-{P}8-&>*+ zQCDWa|K^_9KWEm|=$B2IPtHjlLJdWs^P2{16H*HudFJ>KBVW*|onf(9{`3Ez|9_eP EKTS(ZKmY&$ literal 0 HcmV?d00001 diff --git a/DEMO.PCX b/DEMO.PCX new file mode 100644 index 0000000000000000000000000000000000000000..637c28d0c0381679be2a95cf648e27968f22105e GIT binary patch literal 2104 zcmbW1ziuQ&5XNf(pRC?Fq@92rp|N1uz|ytu86dpC(n&}y!3z-h65fCc(TNZVA)%84 zNBtD%nf)^cA)*!uDfvZbod}9w_s$rb%WmxTbXV8+)mLBj+8xb~h3APh^6C3uy?1l; z)9jbo+4;|(fA_(Q<@1joJiIx&ITATL|MJl;C(0u}AC}dNba()13F? zkx0sqw}9`T6(fA{B_s;~RPW+25aBy{Yzub^J)3t`Hz({)*8IH}yc*p4q_FG;5_=Lm*R2az#%~AL z&9_ARoR`5w=KG2)$a3{@pO3SE5kv|luSSI%Fhe!plnemZ89zznaM|!P-&AwAgW?dF z@2c6IZOQ1yj9i4QX63pz{2rQY5B*x{k+(Z;^&@xOEX?Cj8&QTA>OY;m{FF^nn+ zW!}A8w2R&iAj-tIu3gq$*<;zsx^v5Vdz;TNsv5;^J|Re`o7y#P11i&kT4QzFxTbP- zX<$@WEwE$hW(C?0u66aYUO4PskH{_qm#|fCQQuCSqN{fQA8OTZ^YzKaa!*tq?&ebF zWPNgIDc|{e!4Jmd7NNp|9O)=JU8&u`9h=xzO<#?I^0%aJ$*n7*x2^1v&a~Tt$u=|j z#b(506LXtAeXW{X<95UK)Bs=lzg^Zt7Ft`73x0 zcFOFBKMtMTzJGJHKQ*@*ejh3BzjKjE)&Jl5>`#PDpS*w9e?IwNn3j*0m$FlR$@ACC z%i+~*Hj5&O1TVphdWl|=7xN-PLJ$oSgQOtFRwb$=6@w~Dh@w$qloZ7ZOGu(gVv>}^ zk^~bqi6+T1nPvnjgoF4Hd{7^v56K7foaaYFh#{m9tkh<&8lr}z!HN`)HHH{NiouF9 zvNeU6LQ27kP{3*-T1XbG5TO)l$Pur>t9p%IlUMVIq9#RPg$7(M8C8?2VHvgAM2%5X zR4e_XhU1ttCADG);>eDs$<&HF*ajGT@BP(c~$040}0cJ|M!i;GKzf@^GI J<;9y7&%bl%0q6h# literal 0 HcmV?d00001 diff --git a/DEMO.PRJ b/DEMO.PRJ new file mode 100644 index 0000000000000000000000000000000000000000..6faa1192cb1eb3aea51f2f56355a41cf3b964c12 GIT binary patch literal 5458 zcmeI$du&rx90%~<>0>KwFkm7u5pS@R$41A7Y&;ZJ+HTbJwoO}L(E?#xnG?3o?uDY= zaK0OekC+(#67dC20pBKyi6Jra(x|||_^0s?Nfe)m!1eb%QzXl}ySf62vDrTR-E)8U zch1gzH{2Gli78Gc5Rcs%t!-5*8#Y9h0urOfO%VJiyOe^KPsl)m4zNTAWqe3_ShgII z@%uSg`+;#S>9Q4X@oIrSz!!h&~Yob4}-J5yLIgX6y!3DHwfCTr* z9}-4}Ou!7X(3Z_ivM_Zc7-b|wIUpB|0;3s`hiD8K3!dfP4BOG=b6^K}9=rfv1TTS? z!5**|ybj&~JHal-_zI#P@G5u>>;`Xvx4}4cnGddE#CUKmm>~M*a3a=C5}5A-gx7(| z$haO%VT?B*QW%;FZUj~^4cK^Nt#dj@g|f_g1BbUWVii~oYCtWh15vOJ)Pp-1Y6MLn zhPJy9wIFIk)Q+eF(MCjfgL}Xxa4$n!!F^avfKJc_HiP>?H$x8~dJsH>#fQNoSbPj5 z!4~j1cmg~Lo&u&Zj2UEsY+wPig^Oo!_#eCIBIm+LAn30OI@HKgf6(jjxttM?&*@$6 zau2_QAyg<%F$S+^=@7QgOv)TSJm;1Yl?XGH&f}V;9F)wNLo`=(W~PgOU*#q-g=P)9 z`8?f>GTn@F-HiFV84GkX7V2g!(#^P8H{%xFjK#VcOLQ|T_`t1;HpcADwHt{#qVYlZ z(dAj`xcY~uOIY~aDK9JM|Ip3x{E`KHCJ|L${h>MeEVerX0jiR>3QgnlnX>p^yRtK3 z8%akkl&A{214Gy~_3>!)5YmR6GP|izv8rx$MoH=XnTplt53O_r6f0kd)j(LWI(b12 zRn5TYN;#O>9&4ymX4z|%A@^`)5)W!35ta{fj+T~aW6g%tXF=EzQZqTIVzpW+zRjZ) z`xR@ZYiDwtdbJK|)Hj0(SG1-aq)^`*GAnKRNVK6vtfWeSgIBAAG_#Mtt*viY&ij4xTb0zs|)g4TX+TaW1-Q?hsKN7c4Rt4zSKx$@jD>bKU` zy+muQIgsU-tD2lw(6V?!;Yfl{?%D1VEZ_m=(|F#tSGr{ zld+6n@5l2fH7#bi)nGFi3}1`)#M7c#sG?Ae5a;PzDxzi7L;E?Wh%-$zj*f2sUePqB z>CA5Pl(W0dyf4U(IWp1;e(cPrib)41nx!UbmNZ*xk&cj#l;%itrK6;yY0JL#Q}gK9 zGpD&HRO`#v(DeWlFLw&J^H2X5{7BfNy6ww&`26X&>0hn#sQD*jpd$Pndr6IfGWb~2 z$xt2PWjZNqe3c&WrK26Fr%>4C@#_?F`hB`NT!*jFI)&EwmV3Q=IWBjl-aj7-2R**3 gzYASFPs?crS@`IgPBxmxhgLpWSsL(x8`sT00hpT(d;kCd literal 0 HcmV?d00001 diff --git a/DEMO1.PCX b/DEMO1.PCX new file mode 100644 index 0000000000000000000000000000000000000000..02d9bdec346c7d9dc81ee059a30db029f0f8f41d GIT binary patch literal 1659 zcmZ{jy>c8?5QTe$g{);aA|S<)sk#}%I}j3e6=Y83gg1Z=NJz+t<-k$Dggm=zc}i@N zbpiwqcmNeRBWS+9vupl}nbpkn-|5q*uU6;7L*e>Z-j@&G`TXqh<6-2Zg-1=gqUuI1OOuP*TppU6Sv!60w2$&;JmAg|BXPhY=R*5bJt zzB{|V7;LcXi;tdu_U#A54fk&kt}oumkMnw(S3k__?fi(3#hm1>-0R)Ex+^!o?V8V{ zZxZs$MZsZStyc@e(Nj@;+j(_6?+I;JQ!W{ccap_lZjyHMZZ%H19ar0YRC)i1PO=AJ ziBH5S;I|()&8`6@i+=4ed3xWvRYVv3e-|y`x5MRDk8_bmvp)Qx6|BZ z>zXmoqSoOg($Q1;yu~~v)e=sq)%?FXwLFqujc9JsM*=7$scmw8Fm_eb z56daC9JJfzME&)e~)q9U@PQ*90b7z}hKV-&bU4K6gJ8}Q(fP8}Yf}sZjFcP@T#1L?V6f9^%A4 +#include +#include + +#define OK 0 +#define ERROR 1 + +//#define RES_X 320 +//#define RES_Y 200 +#define RES_X 273+1 +#define RES_Y 411 + +typedef unsigned char DacPalette256[256][3]; +DacPalette256 Palette256; + +int CargaPaleta(char *file ); + +unsigned char Movs[73][71][3]; + +int MuestraImagen( char *file ); +void ProcesaPunto( int x, int y, char byte ); +void Mem2CPP(void); + FILE *out1,*out2,*out3,*out4; + +void main( int argc, char *argv[] ) +{ + int gd=DETECT, gm, errorcode; + int i, j, k; + +// initgraph( &gd, &gm, "c:\\program\\borlandc\\bgi" ); +errorcode = graphresult(); + +if (errorcode != grOk) /* an error occurred */ +{ + printf("Graphics error: %s\n", grapherrormsg(errorcode)); + printf("Press any key to halt:"); + getch(); + return; +} + if ( (out1=fopen("foto1.txt", "wt" ) ) != NULL ) + if ( (out2=fopen("foto2.txt", "wt" ) ) != NULL ) + if ( (out3=fopen("foto3.txt", "wt" ) ) != NULL ) + if ( (out4=fopen("foto4.txt", "wt" ) ) != NULL ) + { + + MuestraImagen( "D:\\JD2bin.pcx"/*argv[1]*/ ); +// CargaPaleta( argv[1] ); + fclose(out1); + fclose(out2); + fclose(out3); + fclose(out4); +// getch(); + } +// Mem2CPP(); + +// closegraph(); +} + +void Mem2CPP(void) +{ + FILE *out; + int i, j, k; + + if ( (out=fopen("foto.txt", "wt" ) ) != NULL ) + { + for ( i = 0; i < 411; i ++ ) + { + for ( j = 0; j < 273; j ++ ) + { + fprintf( out, "%d", (int)Movs[j][i][0] ); + } + fprintf( out, "\n" ); + } +/* + fprintf( out, "unsigned char Movs[23][23][3] = { \n"); + for ( k = 0; k < 3; k ++ ) + { + fprintf( out, " {\n"); + for ( i = 0; i < 22; i++ ) + { + fprintf( out, " { "); + for ( j = 0; j < 23; j++ ) + fprintf( out, "%03d, ", (int)Movs[j][i][k] ); + fprintf( out, " }, \n"); + } + i = 22; + fprintf( out, " { "); + for ( j = 0; j < 23; j++ ) + fprintf( out, "%03d, ", (int)Movs[j][i][k] ); + fprintf( out, " } \n"); + fprintf( out, " },\n"); + } + fprintf( out, " };"); + + fprintf( out, "\n\n\n"); + for ( i = 0; i < 256; i++ ) + fprintf ( out, "{ %03d, %03d, %03d }, \n", Palette256[i][0], Palette256[i][1], Palette256[i][2] ); +*/ + fclose(out); + } + + +} + + /**************************************************************************\ +|* *| +|* MuestraImagen *| +|* *| +|* Descripci¢n: *| +|* Descomprime y copia a la pagina indicada un PCX *| +|* *| +|* Entradas: nombre de la imagen *| +|* *| +|* *| +|* Salidas: OK Todo ha ido bien *| +|* ERROR Algo va mal *| +|* *| + \**************************************************************************/ +int MuestraImagen( char *file ) +{ + int alto, ancho, contador; + unsigned char byte; + FILE *fp; + + if ( (fp = fopen( file,"rb")) != NULL ) + { + // Saltamos la cabecera + fseek( fp, 128, SEEK_SET ); + + for(alto=0; alto0; contador--) + { +// set_point (ancho, alto, byte); +// ProcesaPunto( ancho, alto, byte ); +// fprintf( out, "%d", (int)byte ); +// fprintf( out, "%d", (int)byte == 0 ? 0: 1 ); + if ( alto <= RES_Y/2 ) + { + if ( ancho < RES_X/2 ) + { + gotoxy( 1,1 );cprintf( " " ); + + fprintf( out1, "%d", (int)byte == 0 ? 0: 1 ); + } else { + gotoxy( 1,1 );cprintf( "*" ); + + fprintf( out2, "%d", (int)byte == 0 ? 0: 1 ); + } + } else { + if ( ancho < RES_X/2 ) + { + gotoxy( 1,1 );cprintf( " " ); + + fprintf( out3, "%d", (int)byte == 0 ? 0: 1 ); + }else{ + gotoxy( 1,1 );cprintf( "*" ); + + fprintf( out4, "%d", (int)byte == 0 ? 0: 1 ); + } + } + + if ( alto <= RES_Y/2 ) + { + if ( ancho == RES_X/2 ) + fprintf( out1, "\n" ); + else if ( ancho == RES_X - 1 ) + fprintf( out2, "\n" ); + } else { + if ( ancho == RES_X/2 ) + fprintf( out3, "\n" ); + else if ( ancho == RES_X-1 ) + fprintf( out4, "\n" ); + } + ancho++; + } + } + + } + } + fclose(fp); + } else return ERROR; + + return OK; +} + + /**************************************************************************\ +|* *| +|* CargaPaleta *| +|* *| +|* Descripci¢n: *| +|* Carga la paleta con los colores por defecto *| +|* *| +|* *| +|* Entradas: achivo PCX de donde cargar la paleta *| +|* *| +|* Salidas: OK Todo ha ido bien *| +|* ERROR Algo va mal *| +|* *| + \**************************************************************************/ +int CargaPaleta(char *file ) +{ + int index; + FILE *fp; + + if ( (fp=fopen( file, "rb" ) ) == NULL ) + return ERROR; + + if ( fseek( fp, -768L, SEEK_END ) == 0 ) + { + for (index=0; index<256; index++) + { + // get the red component + // get the green component + // get the blue component + // set components + Palette256[index][0] = getc(fp) >> 2; + Palette256[index][1] = getc(fp) >> 2; + Palette256[index][2] = getc(fp) >> 2; + } // end for index + + } + + + fclose( fp ); + return OK; +} + +void ProcesaPunto( int x, int y, char byte ) +{ +/* + if ( x > 0 && x < 23 && y > 0 && y < 23 ) + Movs[x][y][0] = byte; + if ( x > 0 + 23 && x < 23 + 23 && y > 0 && y < 23 ) + Movs[x-23][y][1] = byte; + if ( x > 0 + 23*2 && x < 23 + 23*2 && y > 0 && y < 23 ) + Movs[x-23*2][y][2] = byte; +*/ + putpixel( x /*+ x*2*/, y /*+ y*2*/, byte ); +} diff --git a/FOTO.EXE b/FOTO.EXE new file mode 100644 index 0000000000000000000000000000000000000000..d49451f0d69c161a01a9c91cc1d291e431a94b07 GIT binary patch literal 57365 zcmeFadwdgB{x^PRCYhv3nx?mK5kk2|rCPPsssw8lO#!upTiSvaZy+cFrb(+Vw86MQ zGNp^Uj~CY6rPOu3FRtCS;C^dqu=Vm~rLal?R}oMr4!FoIg@(-YJ~K%vi2L2&>-Bq{ z-|vrBCv)c9&*yy3=XO5laK~)I+(T|B#e@)9{?O>hoBkEyVMwp*L67qJGd~RCEAcep zd4(n9MLfUO6JlnD>t1ALaar6fZW10ho<=+|Jb%^9;+nLxxLtUv`B~hn`dQqsQf6^4 z;MstOGtJ_T;CU`}7H2ch;%>s@!!tZ>7B?PGGoH`!I4!fdhwun^*5P>-&)@KTisuBL zi_&LtH{n~rBCo|o|q%bdlnMSKe07Ca?*JTwl^t9W+eNzFoE z@LY}Ob3B8yXK~lzc?3@{o}t!R+=F=D!gD#kEqFgVcoz3NJg>9Eb$`P18p1yV#)0So z2>gEpfz88pc|ohdHeb1Iq>#rF!FCyG*weI})bqa}L0b(8<~>EkX-s1cX=p2G6S{?- zO>$lA=vxOSPPAXA^_}!@^GA0F%|5b;B|8rU!j`~+BSG6^q<%;4_wNtaHFVmAqL))v z$b_xZzfV|u5MOU=cK)lx@vkZ_a)J@Q;`Rh>LA14oH2#9*b~m&&Pbu3ra_-LWPB-ij zzUys4C2dNvg0{Q{USQu}YuL1LO75qzW3L5@GE%atOZ-L43Fj%U(fNyNiOq9u3se3c zOSX;ljB9>Cuw|qml+!%vJ%&aNDsFm;OhO}*@nN7j38K-J2bpHFZD`QCf&|S0VrcW4 zT8c5|_m&cShmI*YthC))Ye4hj+e9v`!t)58C3qgj^AHh>8J8H6G99wadv$hsE~}Ha+T}95{wv%} z5>*URsxaBFdw}uq_Rs^2TERCzQ$eR%L0h=FSecjbCL7s&1IcT!39R_N+`+U#TlKaDuMqJ?gfyaKNaR&w zTksK{_lfw@7^DWRQ>QfDF~!*K<05MkY5z^c)oR*|DNWOm=Jl$DJ}2T5HKA-u(=3`W zM@`sAM7NqSXG&8AO}N>%;Cmwem7rO z(5khm%>?6T7`ZwwSI5L3QOZ!VLQZFveP&zmGD$@5p_MsT#DBvq+nk8Xq|MHy?Hbf} zHK>D^t2N@IYRf%A=Sc-rbGQe|`~`kcBDuOpu0AP_!|)BtY(y^R3gn2D+gf?jE~hQC z(zj4zwhJ{TyIf+z0u5;-Q=(Y!ShTp>+3T3vi1v2*m53!iO+lN) zwJ?bxC1E*?4(dVXK}Os^2vyh?=ol&QLirQWJ~S$s|Icdv6h{0y4JD-qf4;56+-&SC zTmA3bO3a?WFTb;|Egx-59o*HlL0^_K70Kb;fg*Zou#%FYrX)IEprqvYFO%rjke`-G zbU+@7+Dal%Ga+YhGZ}j$0mA%8)3FG%NT=iciBJIjm^A@t@f9;d7Xr45=u)1Nf3lh% zfPVDn@+ZbP75z0NCqgNk+Sk^EpDU|EA<@=9vz5M~Ez{5CPr&8?aNO|o6R{P^7oLdM zl#~li#M+;hNi6GJUjw*CW(NLN9M=@@*q2Z0XZYfiG}!A*cR%mr9k^J(n|!3vA`@qVa*E$8|YA1$LQ&?Qvb#0l}#W zuBx0O^N;Ha+LS!D=85@jAGkGOavpS1Zx5yc%o>+Ckxiy=WRNbD>S-1_2S~Idk+$F# zs`bW`KAU8g&5!HUHst3jr_h#(PZF={k*&*g;xj$s_?|#5Pkfokt(UE}I@#*iQ7SsR zr=s$%cAlWJf;JaMp%Gt}m6j=eLllkqHDVA<#E8F?!!$@!#mD5Z``M>|+2&=V2M%bT zihj#&c{X~0`@HfK+PyN{2i5%6T0^WWa_kS8A02yX#N5ieKGu^8^R$AGBr9HDUltao2Jqi79gH4}b|M4wbioek@Er3D|0zqAMd;qSZ|DA#yZu`%J0;`J zPy7+f(*VVnc!3*zdXYa%<-D+9ooxF0OW1}c}?|~2P{wJ?uZ_HDtfGNb(ZshK{`S| zY1r82JHDp$%jjgEYK=~l zPhVeY>U0`@HwD-$IC-N}@6*-qX?Zb4;sv)JG1Gz9pfCo}tOMzqPVv~*vOXml`x`rA z)n4A!ZlFC39Ac3joh)c8*x{PKwNhgb+$dvl18=D)KqDBPUC_D28ae1T1f6>88fP38 z(n4ZZ3>AXTcit|!w%B6JA_EkXx&N)_BEp)Y_RfdgrdE+6YqR=6_q=&Gy~ zimokM;*zp#%{MCJH+(?HKLP*%Mc8}huJ9%;ahNkws;(1ucOB?N8A60Do3lvtd!f5y z)k>Y5_|iV1bM+;Z2Uq=CcM~n=`EdP8-Sf1n3QQrt!v3UAKGQ;2SCoHJM_8{y$XG0T z6$G{xR3qLE_H0_ej+SdmmV3Uh-1BNVz^H$@XHo7FT8@%1Tk}l`@|U1(=@?0UPqX&otm2Dbqxn}HdKU6$r}GCwI-Q4H`1zg?X-e59Sv8r<)%J(26>R=ZC~&4KyxuOto9a{i)~UZ$ycM4fS#_%219{x6L5bi~04 zwVFaf8*pk^{~5L_!`Sv1k2Q<>g3g}5aFNBb|BS}B3sQ6ZgUCJfqw3?oXk_Qf$V~a^ z%dUJLg=&WUge?r42NB)JwKLA1NWN0`H>)6Vw|W24Kka11Dx(ccWS+dD zG)@@w^k0z*`CYwac-Mf(@=k=^)8RZpR=ax(cC2=vR(mN~-ZgYMPcw*BBVH&e30CtM zl!bV;g+ewyYc*?X-@|le7T=S!0}T5(iO94)RJf*gGnP!DeC@=E!AcFP&mmq*p)g4KwCco$GaJXhX4TCWe|d)1 zjV=+4pm$B_=G;@OK1GF&t~yreiZl{b*4J4IW2+9m%Rg8c)Pj>mww_H_8u6tT3OCSf zHl0zHjD=h2ho-*G*y+>Sbnm~CB0A4FN>5gELg~rKsn8~?a zwOr7Blzw@QA?FETb=Fk-YHgtQC;{bH8w{a`yzkrQLok?EBB>iB8qRjEwK0~yPPIM7cM=DjsP=F62CD=d^mQSV|U$2 zL=_XSapRTZoiXSEqB|zIkD{9w=YE{K2Rhh<%f0#uIbO|#T%XSVhInmk@@=a=KA=PX z%VPUaA()Z7+x|v!9dhD`*#0BNy|pRACuk!DSt57DFhM{i75c_L=u5f;>|0!9obwRp z{J|d7A`{R|S5ji{)DjXg$As!54Is|7v5jNJ&AoKx`=b8ZL$2kV*xaiN)P4`71Z$Nz z!TE#Ay-egQ^GD{aw11dyPMeyxChga0FQlC@x2LU7dnxUev{9B%Egs9$mduQ)%76bd zpD=@jtsiQDEyAst68+xQINUIsYX>Kr!nI>TSw|S|YS$zfj=OCAFyst6<2IpGb6_?& zG{mWxBU)t;woJmJJi_&y3Dm}+kRJPkj-<(PaoR;p{Ex=RlR@c-T$LB zqF= z9@0}ew8Pm;#Jkg!{)**kZ|ir8G#rb30p@6sod$bI2R*KtT&^QRcc7QA$y4ax%UR9l zjXJT2k*e2cV7LxveEA}|G%h`$d}8#{U9vMKm9M`DsUQS-fufNH;=MRzw;F&&AZu6@ z#aJ1!Vwd>)I0(WTXOAMRihqquwvam>s*W|Y?-Fqj3E7k~%_;8^tXJ_P0-a}lR-#pN zvcX1+fpNyxXDjis<-<1eE+o0uXX44ilWlNqgt6?ujZmY6j#5Rd87lW{=nH2vq+CjV6mJy-w;;| z8M@6fVJH@?eHDo}Gn;h$HcPp*cS5mm*E^QxjBOTwuf=;)OGbMB-ffl^lJQOseW``U z`OT{cgF*y_q+zH?tv16YJ}Mj9%F$ralVq@$-B>*0u5fdjxKwtDS)`&_52)WS`w!Nw zwhuC_#)MIX2{|P-47t}@Y= zu1^ZtaFLQ+?A2@>A{iB9r+xjCB;K}Rh?1c5=CqI_o4=P`(`_xI4K8s*9Jpf=Kcugu zD6?UhnimmdBjh;J(lo-*$q$FEX(QQ?Y1oiqz+%C5<>0+|^YD07JwvmzjQh!r;p2PZUtM}T5Jq2JZO>Yz>*~An96S=U z8}%fw=~=6dYEv7iRdJnF8l5MgU|uIO5Q5jU>g##>q8X;s%!L~0q2Y!-wg#Rhop=bW ztf)+BGtaIx=d(8wGKaS_uus-+;kGxlC*pPXpjl5O171{u6{itheVd&_wuWxCqf8h@ z)q3s1RC!P;R}?Ev&oXzp+(=|Ji+|zImH1`T71UzXt&lv z3ihJ4k7=3NN^{)J(l%PNu;)^0GX|irVSz@0Ai^F6%6pR?03-@_fY3@Q2&ptz_|W)q z0y^GGZ6*oqAfB6|?MGyvgQ^lc_Z#*rr~|m=Ab<(j;mr{CH0-$^ja3a3tUPh-^c@lH zvNS^cuedZ+td^y0^hdJP92ZB&1)E;!3I@;z=NWlI;fq!`et&0mi&Zj)0#S^e6CTmf z&f8`P7(#5y`x+udA+H?!16sVczOA^St-iasp}RnaH1Y9@Q^ZouZ6cPgujzls{y=rz zYD;~amRM*;`s$W;Dou)K&QM@c5av0sRJ^wcyn~u0gjplGa-%-J?0vnuoJBTwi9K*c57V9hHhCLM{AN1crc1~ z2+;0>E!qX|SV@d8Cd z&Z)_C^MTW8%hKw!SXb5h&9Y2|CAVP3-k3myQXVq6xZ?-aP?+q3*mK15+1bY9VB_L9 zM{3&9fPkR~ou`9tnDZ4|;C9e%?<)ed2k`uF?h5;hDj^6MI(WR+&o#hINp#yrf*HEi z6rK2m4Eu;d{0uLbIGC+~6@(HPHCd76QfX;er8OJof&nQk7~>XyI8<>LHDRe{32|X> zMe>^$=f~7AYyzQD-oHg=&6$uyG#YueQ-+{Gobq_Yct(ylXB%oR3gMH_FnBV?^I3)( zQ^+lcepJMf+mu0|5mW@5SFHw^PzLD>h7g0;!vgA*?_U9XL2hR;m4k-K)n;h0Wp1(M z1hrtq#b;T_K3)45r^)H4Hq=tlK#}BBx$LL4Zn#jbsBeK%AFZ6$TKsQnwSC~$H{TKh zdQuyVi5ehGifK_Jv`aiSMYs+pXGUSO+GgXnk1 zhl=D5+eyKWIniUG?q(9Q4mJE029{9Qxb3Sku?H~ORFGCy88zn$gQ(c%801ZTmo&3t z`APa2929RKkCGluyyMT1j$!p3L?t?% z@0NiV7~XkVjw8!`3Dms-Sz^+xK<#m;g&1Xw%EzZ&;$1R&q!&9*&=s<^lD7-j2An)g zHEi#2WQiy8T?5l$=nF{8$etoTcYIOj%%rwfiX~vVa#z3ux)Fx#-hzcrbLF__#R>Rvll2J9Z2b_BLW`|o- zdnA!##i8{i(P!*aT*)Zi#xAU#@z-h?L=9)+PE*`zh&%OhC-1K{^N186?4xtAK$w(Y zUisB4zlbkRB#1HC08Ow%-7O&#GNX zHmNi-39a>YCfS#z{rl3t^Jl~2yr1dIJMm;+)Xa&>Bag_TB4}6h%^-!L#fDI+DOAme z+hEFP3qojYXBOhlm`SPl%$6M+EK@cWwT{3cSlBfV9@X%)8fgx4cO9T6>!i*2_T-L(r|4w6 z-*-(5b92E*LKmvco9=316Ca>bkPK#5c!so)n~|2`aK}9y1DoO&*Se9ZM@$C~j`$Q5qcICEKnq((HoEF+L!Q<0!W=Jc zjZeFoaq3>*AjJE4 zHCJGNEby`BeLvI65oEwl#>b>s8cws(pkGRBoRBh>v>CSx?XMEQmka#8xRbBdbziM= zVmkidjY0=y943_~YgC?<cFhY(YL>yOn69b~$=x!S__uhXP)qI=fDCosQ4`lV zO)fF_+dj;qfTzpVWEZ9aW7BRDew5M_1lGM!(4N~ae5fu*0Hm1sCMqe^i>J&4At>mM zDTT*Msj$i^oxjoGW1Pa4$yoGkiRr!e0FZ$yXa;CU5a(2V zD!H!okVO+yODk0|LPLwFK&A!tv>+GxT_3IBB2N${D=f#|3dPlX=VC`PQ4t7nqN4Zq zD;1rFNJ%TA`kA*9im*CiXB&Km=A$`MX;VoJ?rH&Is2jp41#$vJx5Zz8i8S3Er!t%Z zwCm#lN^A(QvIA4lFF}^%qQE`@F{FBZJr8cx*D)MvU zJ6LZT&{&A6=MuR-`emd$xinKyXKbrYu?HStzrq5$lty9dd={nIx_D|1EC?m6lu8p6 zYEFq9rlU`4M?3J1z&vZfF;s4oq~4TPf0l%Q?NFspX{h*IU$V%?WR_(Q(Gge}-+lDW z5bqpX1k2k`z(2sC(v*hMp<;XgEHz4R(d6Wq-;YzIu(iA~1#}=em1B4e6BvEf*{DZ* zDsDj4kZLhfO0dfnU{NUd4L5R&>@Rv_N~%xEg%+?8^NdmeU|Rpilx6}1#PCv6S0r}q4^_-d4SQ6Z0X4v>;)SMpLjR5E>0h1Qv(Nn~cL%kKCR`Cf zG^qXusooInAZ1Fi}CG+oN!v0iq$D@z#zmDoPPLU-dIS9fgE=@=NS?$iC5m zqT&=5+y*`n;{GoqXGpZuPZT3L-HJzX$%G0t-W#ynP#{Q%5Q)AgsKKCP%LLJIO&) ze(%V!G67~4?0`gru9k^Ak6@l8I#8I(%f!QR>^5PNhASf*q;x5r=1fpTar#L*ukx}h zkbwi~Ar@+G5k6nBU+yt(pRSgsybxAuW;S@&S6v5!&t(BVecTmhgpCaRBBEQc@n+b_ zMz?5)kKIV1vTNQxGOAQ>*wTChRoI6DL{J*X$}OqHFI2`+6T~&}E-D*7_0N9f+SY>2 zdKC`JCdKl7iIvI2cMD8$24sCmN?Hmcb)`^C%3D*YJ_-Mby1E{sE1xn){S5IjwXSz*7Dz5?%JDBKhEjei|{U0 zx;8G^wGfHiD@UHhiia;Tuqcu0R*tfsoeEB=XzR%-Q)rDc@0=o?CL!Pc_W;7X9} z_o?iFW$hcTro2UoK(dYviA1kCQ3HfEE)tEee@k7+bY-eDrx6#z`k3%XQ_W0z7*XiT zSHSPRTpFp)Z{H>z=JOg_MqyL%b9;?Z)%@sD@O;{O{iuDMZ^2+?#OEdE>gueu*8#kj-G~j z{uNN0Ix8i>xPp!pgyQ_n#Xc>i6!!|Hak$3_apB7tykLfU^Pp90U)z678ovKu{0xe; zYn*4SARZdAkXAKEhduu@uQ_^stn{puqvVM0zNpPLjb<6L2U(OJt@sty9OvZrKG#Rs zs71^qR0G+mGDEdIpD`e_b^MCBTvx3qP~TvC&1)dOv=z0QXLUY(C+{^tt;h-#c@Ue5 z*e7&8zLWPLR+%5rg)G`hRe!^nXNadxBv1n@;~eeqp>I@;4kE=dRSi_l^U%#8O28O) zR_8*uyyeD|)iXQ!WxC93KxK_igKvaeyz1Ku)h$eMR=-W*&|uaYiHj7`4@?VO(@>qF zx}B}Ih7ZV$PfHm)e9sbW*IgE~fi(-e^4s9|bo4ELjZfZMt5?F&uG~}n2;Hh^v;+Kx zeQ7fFy#(iey1t!yUsA4JhOz~1RIStibqq13+*8r*ljbVPD-Jcl#R~Rl2M(yGeYFnZH7h-`;EomS z&D|c@ON@J$-3%4)w4Zp!D=F2nf*rX>;3Dd_f+Ign+lC3T!<(T9!5|&dR5Y23CMVMT z^@=(Zs69=voF13YtwQK9wpEXE!}R5WADNibSD6`=dEY@jTzhT@bq!G+8!4RoRv0Ei zb>16kYc57Cj4}zCDa~~j>9HLT{+s@}G6{6~7Mx7V%?@bXRU;@6fSb^?Rk``(531bk zq{*JIlX5dH+KS!O3ux$SxyApgs3@fZH@txlD5YSVqkrhLGV!fXXgc^OG^AAMe9r)( zCVI@@e&y;cp_2w73dz22RQ*_WF{N(48sOg>uZ?Q+ogSh3I8yalF=@jKIQBucVQVc9 zFP393hi;MW<8GCor^uLaIN4ea@(K;vYngD5CuPFpb=om=?W;9TDS|ADaz-&$@$kdh zt*Jt1ef!*`)>ejvV1kTV-)-#h>eL=gMRyXR5lZHyCQl`yW*n#*kti+L0-EL`2&l@c zK&qjIPzk9@+j2&ha+?Agp}XLtf*mkY!6KD98tVDz9aMd)gHLBGH9$%5o8@1}!c2^X z)(GPkt%w$}+Gqr1GTQKsRQ94GoJo8_?u3SWTm}W|gOcJct*6Vn)D%-(r4!2)+ih+e zJxJD#&67^}rom~k2d1Sj1JVzH-VC@B?jedR&3CLi=R>rJQG=tjkxvuB8@1qbYHX#p zzVb9Gxrm9porqd~HtKhYsCC-NGl}4P+Q{le@N=zHtJZQRS*nIX9*2ZSCdiDgfpV`IyH?xJoVz~Ww74D684xErq86hKR4M+!A zU#fUncc>1=fp62i@aERo;EB>+AXDs8cuCT?S(C&sg&41B_fsVb%03+<2kC32BHgaI zap^3*F4g4=jZYorIdTsEO&^HA)KX;*MAxGTEE zqrCtCtYoT$L8pyYBiCre8)TQz@!n7}Jt_&^@JL?E;irL90WNe%si1Jx+_I*Y6LOQC zQzwy5!65?{jj}SR9K7O2*KP2OJVx_GItdmgNXEvYAQ^Dbt#?A`rJdF@N~aA>H7o6; zQ9=o%iZZyz(w$~_?GnmNe*l}~740NPndo0UykpB8EZ~O%V zzI8(ufr%Ibl!rK=z{ZPvFe&fvFY~PlhahqH$H~8;|dOf<-y~&3L=l4LpL#smRv$ZcKS1pkd6{7 zb-!pD#Wm%iksFkvSoq146Zd1mYG_9(L|`9&5d_JiZqq~T5$`;eh@&{~7N0+bK?I6G zMwG4nd?hg{fx`M|5OdEh@W9yutVH*#Dg9E7xs+1aS}tPFuCqru5Wo9ChraDeEIk}} z##$1dYv7vx#0ITzvc~P+>`uNvFot3*k>3IpsqUoK*D@3fHUYfiu@Y0_{eEwa0xa82U-GBiQc%(;yf723_zv4 zY}JAaN}>CpI`;k?Zc{n|1>~`?Y%Oy*WWCB*QGuM1ENVuBl#Qr%Lq!Ll&k;nwo8`jq z+ANyo^(=rmqCo~v3VMy07qS$Ck6BDjsi>g+P+Om@M{>WNOEsiFeeQ2GN4 z4InDaS5%x`>6GIq2%Ey{)l=k+W(Eh|;q4??O-!IY2ekcrxc8__fG8xI8an4nx4}O~ zA-#0|L!5C{J?DiHHyJ1YJ_L4lnhLthh9kPk45_t8>sM+B!tE4}P^ali&X%cfZI6Sm z=9Xh$LRpR8rv6LS)?()9IJQ`@50PB2=@c!nWIJ_nSuBl3*1>FmjVWD|1?`xPPK!_1 z!CwNhakH)E5+<==#J`;I7a`Jnxe_U+Kp~*J3o6l;$9uCuyX8A^^1DNKr>X`Zl;BH# z0)wxh8(T*(7P-(2R7J&NcMJ@Nb_@I)vp!u#s#gzxa8L% zthn!45bCCXD8E0j^|pN=QD3rl&R>)Q;lX5U*~%)&l`0vM;ks1dQ6_OU=5d1cGLE{h zzKw3}rOIhC53y8K_>11gnIPl(x7lVw8Q!lUpQtp@z`f04PO37R#&C`AvkKuF#aS-i z$ZbgBkokJfEWQ(?!-F)VDA|fUL#?w(Vyu|BRvw?E&H;7#pz0Ut+gZu+;S^O28f4Ws zDiae6kAwS9P(S)OKPZyI`FoCGB9gJnsXl|y6Z~KGT=2IcPUz4Yh;+Zo;#&hn)tq6O zUgh*ssjab^Q>6&hm1s&hb~YBWMIzRBESdHE24vtb(zGe(jrN?uzHsdS!C)sJ!(idH zM8QOdrEvXKj0?VhF40H_s}(wmB?rdz3uf7_K+!LltiCag1q+64UKr$p!0=vLLg<+t zd@jfYSFK{G;DCfa_I;M;Q-a5OmpTf^aJ34zKPgN1HfC@}a6RwP#w_4V1_yEww7z-{ zCkz%^I5!Yto$*45^~5nCRwqx9Mn$0hC}S2wr$fpyUS`v&| z&4QNZ8x!5~4Q_lLYvWb6DGO^OqaVXoS$PuUlGUcD)k4|m;ITr?;wxBqbY%_$=lSY5 z7G9$j;~mU-$DU;%ol3k}#S@{s6D$wh8}cI|;-}F9nTm4-{$+3#yfm;3hhs*ove;T$ ztWOr}yal`aowq~sbcTS-a|LUC=wdE8~AV8@5z zXW%f+4ktYSAYwY4CXeCzYQr+^^|hwuNn!1}VBw8iu;?agHfWlNUsKbqlt?y}a3QA| zs7-}}GCFy0gWnj`mY>76)VbYKF|p-F&gR-=AnRVl$v?GgV3+EoG)@C{Or=^3#Co-w zJK2hg##^~u{wB`VI1%p~IfZ$lvByjhzi>d@K`dnNpPB&h zPop&bqZAd!t8P%IHYSh+DoOpG{<&-|KT=haGW3g5aaV_U@xP!y{+Oug0)yIRsHiA& zn?)n-asoxp%|-{;sf?|IlK7WVpnsHE+#Ww$R2^?(8Yk0fu`Fo5V%-0jZ+Y0C&Zy-g~>9w zfo29rH8?$$)#g^7pN@`sXYaq{8Y|Ft=mo0ICoh+ZsNgVsrP4aY7GjHPnx$; zcnNlk`(V>JihBWGqLom~8*{i9*8LLeXS!?Mdw3;JQL6)m4caYklU)hesPl!|-ULic z2|C$FuMKW-1G2U(VCb^y%e$gq-m~D#p#loTByR_5psF8ib(D*v+7#saBFJ6RR#IEmFpecYG)M6 z)VFj9y%5BKE=huvoH<_Um^XL*9E@O+qr)>YP^%});GV5t{p6h-OrdJ^iN*6Qt))Nd zS0@k(0~TlcIg3+mL0v9=(_Bfn=;#eVDyux9_`{Y7>6h~#;kL4&_M6)bllJeSOM(A-A-asR- zWg2hbCMjYZjwZhUOQ<2^`(j|u2|AAp*pR5v+vMuwV%Z_k4ty&%II8z|QqRE75-K~C zP^-K%M)b%v2OPVS6h-w}Xu|tZAer~phlx!EPjRbFHgV|~=!CUn~z)rZ87iMXi z#zDBdgp*Qfr;g#?4cxr|KMVkzlC8z~H8d^dz)TWrYf^&vCYERtyC}QqTR%SP&eO>+ zr8>&F0@z!WJPz0KGd}Sb)#zm3wf-Ut^9LW_!Pn>r4j*o_Y^c$xx1U+y9;MsxC~j6; zs?&PS^riFa#(ZkZ!TyorzXGq^*9L>x@I>Q@KdFRX+g4ZYF?ZsXWK_y4!Q z^}4f-_RA|?EQ3@}FjS>)SfY~)eR!&LW^s{RUcS{$v?(MyNk6t(k0UW z`VB>I7I&PP6Fq=!mE2N2vhBVp`n8rP9?j?-)M-fAetri#_{BP?_e*rpLLSj!=L%<+ zwHub|u)Af3XSX<)1P*J~FV;y{Y^{a&rWW(0J&B>qKv7c#G3ib5aT$CmLpBGLvX1!oz*jthlRSC!V5kQETa>NpR`@9te(e6qvghiED zQRipKZ)+W|G$CyH`K0jqNgJ6&srq)|r->|1^d-n1O)tJcX_YAAvV!x|LX~_zm55r0 zUU1+*OVGzYiuv=oaJNdO{%4Z0C?>WJ`?>lz6mTdSDmAP&dvy7STSxs|Mzt4PL4)lA zjs^%b&30~?CGaoy^s4XbKWo_0TQ;lpGNtgG^3x4Fg?+t08SH%hx%7@o;#YH_eLq9& z&RLXHTI*HZJg|=?e46{oqoVD zv$qx@lYcqGc@3eD^A8KV1?xDjb<71TRJ)PjS>RR|&IKr+-@i+g>Jk`p2X!h)vQix9 zG3(x&k<*&U@)KlC3_VY&A^%{g{d`!e88E)qD=*k-xW3barfxm9L*X>!_`8Q)^`m1K zeoyEAh*N91Fl^Vctylj{VO)el3&Zx(T6i`KJR=x}VL1(><#jUAXc_7(p`|D83H@Sl z*|hRim*5;r6YN7AgBvH7>ioU3cc{V*6fOX6Fm@z(Mv^-yGRp*=_bTywQUx()sg4ih zKz@}*e2|1iBLlYsCDst8X^hxJs-UVY)v;kQmw5KzLk0N)XJ740wXdjSufATbH$^F_4f{{Ao)rHn{zMh$Kcz=w%GD7* ztG`$0P4oBa;ojM6^q@UcjnZCzTX^$kE`RT#G5*lLO~jA)_^n=DJnZi^RB87gLAnxq z-4R2(^8+p2Oj_ZCc!WP^&I^5Q>qG+Ps=M^oqu-!PW~7 z@Q0NdI{TAD9v^b{>!%@`d4ya3btb7CktgRZC2MnX$Y;!4_K)O`gk#Li9OhLroq2?L zoS`xFzt`AJ?DuS2W+U@Q<`ZTdGo6`?vm&||e`==eSTzoc8PxK0& z-B0ePx0&OQ{!~_u_#_+_(>2lw>6ojNe-d$>{7U@dmW>1p1h(%P-S+69(R&}wYz+9I(cQ$!esBaBFZqj+!?B-)_f!=p2sNb77onhtZJb zaLFyMR=Sp(Q?BsIr6ls0ERH2&aYj{^Li&~x$S5gWZI9C9QK#g{Y+2-qI5MN^M3_Sd zIkX?9F~`}+jj|}oPp#S`enWr5;t^SVI=yOJn4U-&Di;!{mMo|6yrmF_SngLm;UWeZ zR71l>SXoTTh{WRlq8D(J1}~n;iu?;7OYo5C=m%EX43`Q^;W?s#~$eM9Dkrc5|w zVsS9Q(WeQdxn=aGg{8Q&!b3JJ!GU<})8jK}^CGI6@H4g+EhT|Y%f@xF*IFiVuh)P0 zdfwJTFOKH3SW&oFI`IXE0ZmgKX-onCy^gG$_OFA-cq5v4 z(>kK?_oXC^V7O^5Q8)-b0e@X5zm}LxG&Y>yCfFM34L6b&tb-#Pen(cDe@`P6K8FH{ zm>{y9zes>e7yh%5b$kZN)Z~yooSoc1cnsNADaSE0x%6cGh7yCN)Jp9XD-%8e9WYXL>pDF4TUO@hFz zn|PDZ``!UAr~~5&mS}=yd~m8hSY`-LH3jR;!4gZbE~AC`gC$wP5-X%#7#tOW7p;oz zj0e}({GM=Csp1(Ex$mU|TMFCB5Ah#0HVayxTB6|+g#cU&j; zsg#=gRqigV9ejSp?V<=&CN|4+DQ28MlnHtdyAevl_I*N+{D*Cte`;>h)@hyEe`y}l zp3t0vN8ei-rjvi0nko2q@ry4J^kBt7v zcdUF=8_215#8w+cT8Ke&u~S4V5S?+{e(f(>hXu$?5|_(i@p2-Si;x&9 zwieO4P(AANaFJak0KW6*B;^1@6t5wE+3!mQ1G9?5=l~8&seIWq@v}1+7(TyD(v>jq zh$i@HLij!6KVY;A+L98xFubH>au`SqYB>V8OrWRU#q`B`ErBA8+&8polO||;Pa_qE ztm}wan2M>T0tu$p!Ee&|MmUh@!@2i&ac(?cOoI;z9jGn|c^U8%iZF^I04b~MyRPrH z7QUn5;;-9-!(~j-sW51fN>5MAb9AS|)27oMG@F%666K)TqU@-NU8Hdx@uaNWmmm!S zGR?r2ocK))TY__3;y+{MxJI6vA^syahsJNC@ifLIu8ft>t}uS&y>YtGC7kZs&+Y2^ zzUzB`5ojeS>c`RDb4TN}m^c+4K4sjN+&wOFEv?MTHkmm~543NA&LI;HY7VV0EV8v?c zX9u5v^}p*+2t^Ac-pS&syGUy+iAAm%a^X7MQe1`=$#FdbSW=lAw`5G!V##dK;UpCW z5WDJQ@o(p~&P9I3;(kMGqb_LuEuP=wp*x>eJcIEJ<;3lbYX<23Y|wk5M+n2C_D8x% zIIJY$$eeOV)N7mJYMD(+qTj(6ZbrdLNBBkYA@W-Q+RT*Ck+!HY6-rEuB&exiMssGm z1x%Z?!odJw@($%b9^9vq>O4TjyrUO0?!acQ&x&1L2S1d9qduCbWU6opbCzTX;DfEg zJ=$4~=(`PlPw<4uwo_s|hn0yz`smR~k?ECk#g|U~lteY10$|1cr$Lb}=ZJ@I!lgBT z>Gc;iqGWmp->8$(iKgG`(1WJm>%w!zE}o8GOegYp>PH5LgMiU)`8#1dZWP#!bMZKQ z4|dZYJ@6E+I_|>S+_Zq9^ElnH8}36pgfOOdPq`!PVV(gWGV5Zk8cvA6nG0Fyb)g&Y zm3V*Hn#H}zg(9CK6Gk#x3 zSg1KI)Ww9UabXY&X;%Gx)h=O6?rCo->dbA={W1DOROYtemI%7B;ymqe9;q57J5NJq z$(|&1===(<jT`*>-w;?jsG)Z$ z0V5-Dy6Tf$U>XP<8V7#|(F6ZmGlW{jq^1|M@wrFQ^)+G&+u{5i*Fx^8(;$G`Y`UY) z40;k;c4kDK7Bz%(?iQgk!x64wvHbSEcRvvgz{yA#HXOeQy1zu4_#Go2#8ysE(0#g~ zje0^j4+VjW&MyR-ZUIh&J?Qxnq4Fr#mbsU69?Y!#R{eEU?q7z>dmPSv9!|u+|FH!5esDOy zU-mKepgQDmik>#{cSOubJZxFtc1c~`obyO#6@M>9X4=IKRILM{1n=!^%GDK?a?3ew*$*idK{|hw!PC z`5{a%v2^acl;+q!gyz_%)FI+ispI=FE@Bd@NF9*?^-yUcL-lmG>mpbv7B4! zE`uC}H&<=tYO};Cq;hUJy4P^<(KLhns5ZA-2#2*x2XWyrKJ~b2 zZ@VrRG3(RtYutOvYby9?)yKG<9RIKSI6}T-GeYmVn(Rl}b9;8qJ^i!}^Pj_oTj%wmqHC8gE@R_{E{042#-wMot>N zXzZGc-?+3h_p8f~UBTt2T|KyP*mc9k51L>uBE^Sp`p3k--ug_*gOexRroUrb=^B@F z`l%T&&$_Mb`|>AdXWseZT_fhMyF2yX$L{;*{nyW5^T6%}!yl}8sD9DA5AR-lY>DO( zlgC)ac>m?y>3g%fuBPNs{;|J3w%~EYFPeUlzpQ0h!SX*WH`gwz-BN3;yS*+@x3O+# z-J!bPI^v%dI7G10oSNB^Zms&!!RJ_jK$>5+Eyq#Vlhz!ngDzmAr-b$!nn|th@@7IK zZfkR5K)6b8oS7~lK|q3lgi~Qyi=o|r zC~T({k)H5-GtzAGHV_9YTh1XY zRj&;cO;<9_M5fg=(`tfoG}a^2OqywCx-@Mq2B4&-A{9qNV9h}E_+%zrNE%e5E>5&HkBj@b#pY{WD8F&1i=?e>*g<2K>t& z{&sz+J&azg;>*)%_uL50PR9ts6fn^|S9%oVV9+f@%tXX=M7R)v9HO5HMXL!Itj6)_ zvPnV_#@2}gfuGh*5Q;*?@fG5CExS@E0${#E{I0q&G`~<-PsEGJQ((zY(R@N-19=8o z)-z8-hkKd|@u-m#I>U~RTKGahSE?s9Sq@tRsWH(-i(01G2NOyFc)iLI`y&)K z*}+E+A2840SDW9+gkY?jBRUuegs=tqcrlekK0l-wtYNJB??W(rU7{uprW$l20sW$C zG|Xm^y-d*dQf3gQqj1yu%w)Kee1{tC{C;g#=+pee`7&;9RZJ{1 zaP52%Iu7)nO3Ib5*OjjYBxycLT3gh7dK4Vp_81cm0jl|j8)<)GGV|eNKDD@Uk()SW z_W^2dBOP30CgZh03eP0o?DZ&dklNtrH{;{F#7Vi`ec5~|{nDE(hO(QU$Zl-NZd#e$Sf4!_cYqZ)J(=COHW6H%EnO9~J%Q3IQTjf3$_(xljUN^?y9ut*EkZ{jry30G_&Z$sgl>S1@jx(r^1b|(5gUYXg@mn zmw`PW6uz9j$wJt%+WoluTobguk{w>ZE_)pRVm5Z= zqxL7VqlHgqH@%i!9<{GTcy)Hu8`)v7Qo;6?(o`5@-X=Fblijrs?jj!)y`0VU6zn)) zgZsn8ym9=q*?HsnXR@nI*e{E6N7$??Hr}y+zj*|dm}KQ|W#b<|=;Sw`kDdHW_@%{Y zDGw9QKiIWzD=HPf!atG6b=$ccxuWL)ix+_UTB&9&3`P|&rEK4a`eA#TJZRb=|DftY zPYi0@kd38~9Wp;n{9iMnJj~KIpMKOwUN9Ajc}CpK!15wKLz*@K$}eS0e-&{lDYfL8 zH)OA}zLYJ##7G4-;1zER^JUO%^oP;-7jj?Y|LfyHb9K_; z9fS4_lJK7lQxR1FzdlqB_kSANg@5QKvg43wOEwzat4gh0wELMp1#^)U`arZ0aTM%ngi63H!fN2l(GWaKOB*FG%BG`-Qm1m<@_eJ}Q zfDGQ52cS6rjx=q|#=-LvGEK2rh?8J@p)l3Mpt5qSX#T!pjt)}@Qe%Q~PP{vg?}_^l zm%BvUxj7F;e#QTegr|uo&w$dx1XdAld`m@EudeZpY~240b$%nN9!g*8@>GYdWq8>7 zaTzh!SH#Dm2+kKE`w;q4mT6yZWK@bo_cE}x(wf7r^-q&AOo%SRtv=%@TnKKCc1L$h zrt)W2eN02qz0o~M*mAHFb97tbQ1q-p^z8D!d5LGyJ&W(pnV6fKb9v6hB}*UkEPP;r zH|MJBufHlMnK*f|cTpa>WnuNg`{(7%^LUncQVloVyLgG`;d>V4EcGmTz;n;TIo^4m zhZios$GdRJ;#4R+|LNbxDd*%Y@!Yd?!NU8h)Mm!#jIDw%muFs8Rn9$&AIo`Y-eWo5 zB{>W3S>zp0<}dLsxhl{5sF&1um5+SogGLwhg|1dYw~W7Y$}Rc#E?k_q^u9-xyh`-g z`-$gXl0$IvY~QF^9JI0jOMjOB0Gc^{va4Uaw@;oqv)|{8n@VT&`z)C{b5g(0855^Z z?*BRYj{a56L~_5>+b2%Fqu=MPv!+k&_j&Ww+i&Uj`TwWjrTFI^>GOZAPj9nZ)$QeT zTA`Q|&WyXLB^3F!+YQzqRyeWDWX3nWu+ zN+MEUAerKtSdf41mH6rlBvbxxy&uJ&(pKq`oLebH`9Ik({#iWb@8)~%&$(mC{qz2( zw$LYq%8^TME}4934#=BIlNK-W<}6%X<-KRoqIvg|K2o*d9?$(X_ju;z(DeJ~dFS2d zMe;54su$ijFXw*G!s>aRocRkEsp<2V_&{ziA(IzZ-?M1p{mB25Y?qKyR5Wk#65j(0 zavq-d@Dh(g^%gBb_tomiRG&9z$^2yE!o@jN_uaFYHnQlaN%I#iS#rOc=3KJa`_r!c zd~5TOzptl#V0aiH%$dK$lT$Tskuug~ulgXOLa*<0@)c7P08NgXR;+g9EF_e;#lDB{ zo#*Lm)8$#X7>p%n^5TWwg@D)N^S}+%C`_aeFr}Tpec|GV0P$qyP6})HJWmx^QBJ8^ zVP9XAt^xj+l2ij`S4F<@N;LrEIb%#Uq#DMYo2{=JI@JsNI)w@KRn5z}n8qkoTzsio zI1f#byor-QhUFyIDS?=t{znM@rLlAVp1^*t0aw@c|9cj3EUw<_|Mwc=CbH*J#8$-J z%wngo-`@_z4gCG55Xd6T-7NmotY_E%4`qsFI**wwtI_g$y*?{jn`yRc(^=c4mt8{t zl$Ta}>7YU8{(otgjb<-P8;1;;7Y&1rIE@{2$+*mMi7cbd!!8*#dMx(&XM&OEjTtir zZCEZ@>|3~$dp96vdF>mn$IZKz&Xi$QO@9|bC z)Nhfp5`RYigPj|HKI`Mke}pyD2+Oljeu!n`NSZeAHvoYF2n;}A00ILL7=XY41O^~5 z0D%Dr3_xH20s{~jfWQC*1|Tp1fdL2%Kwtm@0}vR1zyJgWATR)d0SF90U;qLG5Ey{K z00aggFaUu82n;}A00ILL7=XY41O^~50D%Dr3_xH20s{~jfWQC*1|Tp1fdL2%Kwtm@ z0}vR1zyJgWATR)d0SF90U;qLG5Ey{K00jO$1bU}ixUIOeU?x*Q3}gm#4gM(_+}1(n z=oO3FBk}&D#MBsxV!O znNI`sLXQV%fL_b^HyXe{oJy+ycUk8GA60ed@&C+yjlAWd2~dfOh=9CN)Kn7kfMAjd zNnk;{-rh`Rl99>GaAz`vhoVxj)ot;?qp7-DrPhiTEw$KI>!VP%x}wXfWvgOasnFH> z)^1m-`}>`H?<8@<=YP-l{Li`P`9J5L(a-09=pKY#rEVe&hJ2ea1ir1d0!oI;RLP)qmK0D}$q1Pyn^0H@8+bcQ9SM1o056R424OU03G1P=hLwcVAgc(cL)H>X zAiT>}N&^@R;O)pVE`afX$Eab?dE={`5x@k%lhl+!o*|qWz*&HU)SL}@mO#H43eEw% zK+Pn`VZylqOa>%4BykV3Bo}ycfuR`7@ zTndp9u!IE&_i|<`AV&z5kY-NNLdf-mDva4rIak$?!JMlai1M&e3)oA|BFHw*-eSlO zLLKD0ge8!dIG>jVP!BlDiEV(KAT&Z2a$@N_td2mBWAiw}OCfnev*3O&LJOpXbKV-j zGQd1)mIv@pfEH?2Ky1QFNQQ7ZCVV~N3dnxK*C1nQJO2#H60U^w5^TtB!q*{-X;u!z zCbU6%Xz~eJhPA(&2u$m8qL#{$x(FklDZ_z=KOz%4@o z-vyKo1M~vQ3Eu;x3AY1Eh6C;Z%pu$f*hBbNz#+n2fCVD}cLNfH?*q0F?g4Bk+zZ%6 z*ag@}_yOQq!hL}E2|omkJ{533;1a@*00qJWfbE3cfFpzl0n_yu6p7{D(9 zvk8v_ItWhyJ|+ALFy=JClYkiEDZnnm(|}wF;2A(K;n#o%2>Su=5)J^2QowHjg9rx! zjf8&#tRwsu@G#+7zV@UYaHM(-~qya z0$w1z1bB<^GC&&-cm+^K_#L2%a0Cz|{1;#o;rD?12(JQ;6J7(H{uRLMfL6j$z&8kQ z03IUz0dR=$N5EeQe*)-d0NwtWG2mmuCjk1wlurTp zOk46d1XmFL2VfKa4u}!{7tlfY46urD63|8X2Vgbfb3ixY3&0uz&ONf0z~j?;0{xv` zO`r=-1$qFyG2t2}nShN13veBQ_qA;%oC3Ikz?&6rA`Av>B@6)!2?2%zMi7PpeiQ}_ z2RuX=0hpu#P6bRRj08+0i~>w2j0Vgki~-CdoCcUpI2|yDPy(1sC=g!2If!gN3nVMb`S+)S7mnl3jF1Qp^w5t7){ zL5l&Z@kJ;m6*Jdip!jE&hsJrZ1a5kj=CaTr4=xNDgPTy6_d_8h7lfX_b>7)yaW)?> z+rnki8$L_!4o{R_;d5kPc#=FFK3DdK&y$1UDe`7`s+Ms2Es|cXPWEf<@~YM;$F&}u_^*)Zy;ok*zb8lZJLIT-r+lv8EyIlO%XH&D zS!moZb;bh{HFk?*JSZ{aAxRp0WWDjQTy6YBHW_pa@Wq( z2yL*;&<-mSy2Bb2+GmXjJ#L*E`q&y7nieSur6Z-Gb&;{5jgj%8O_52VEs=9Wy^#xG z2mIR_J_bAHtl`KUenaW_$YDgwLz-ydwVEpnxRc@UZS5wl0&{PGKhQR7wZ6V!4Gk?q zep>bh%L*+4^KTO_@@oK}0^SlCqw3ij9)hiI5IFdkPuGvA3HE#@x9>vAk<~7$P?xG;fE0CgqaLAb}6U_aVX{#^->SxzzkxL z8fh|7Y)HaoE=xn>@iT~z7N)jB_Y}H}y0?b6g?EJyhTjaI43E*KYgsL)t<`SPwrjoG z6WXt|{n|^~%i62jaqVsG18tZ-MW3Nxs5j^<^|+qWUA;%&pl{Ug(eKwE)c5Ew>aXZW z^rQMQ{e=FuKFkKNiSd~+ z#w<0*n^Vmiv(BtHSDLozm>uSI=4SJo=1%hw^HK9L^MLuBdDuK+zGHr9>XvB@vC6DT z)_m(CtK6!w8m*<)6;{$pS!v6)3f2Z|ht+G{VePXXxAt4FStqQM*62uCWNxHBvLezR ziAU0rjgd`}Ess zu4-zUxVixD#(S<)*X4A?(-T*x*Ttlw3XO7_oD^E;Ynt3lES__ky3_g0#MQ|pa@kHk z-jif=+cP=4Bc7*^Unie;eGU57r}1<8K`aPu1+{kliiTzN72*fAc1u;XX=R1@L8Dz? zUAMeKkWYo)6WV2g+50{VkfnQ}_q6T0Xial-v>BbRj<)!i%was%LRBAaT+|w^1T9lRDi@D)ej6@ptZb+O zz~3oIPX@wX2x7NF;(-|M|L9V=9p}!94~Y;aNjI;!i~em z5{~Nu9N(uhFaan6M1zaEBHL{)+niGYOeEHcSfc_I7ld|WciK-Zg01`r`*xz3HNzV; z3Q$qJpkf{Hci)5FA`W{*+q2z1Br~x*7Rjo%PWG}39Vuo|?P#v4tgl+$iUQ#$zNV(J zE(%;;SzlLO*;=z=rKgY9W7S|5+R$HiWld+?jk7)v{E(v^>x5%yjCLxM<8t)Fcm@NX z@FR&tsyl}vPyvPu*`iG~jkQgHMK!Gq6Pav0jUbq_gl8#81cjm4Zob|>P;c3_o~dvbq1~awg|=?A99u)o!RR4Ov0WGdH<@Sug0Ls( zoZS<2&sKwtDWT(V<#4(y*WpL8OLeDEpuLER@LpY4bSRFxJCZqUX|Srcj->DE`%7Bo zlAG;Qg`qMf(=E5_z>viDoRF&=ezooKgoAo>Vi$c>6O}J>xUP1C%KE7W*2L0P zHL6rE=I^*zK3-hSvR^CrYu9sb?hR)$z9!2(nN2Mqf-caBFj}OtQst#9L&b_`=*D3q zc%erKh0zf-NJSM^OxeqR4%9gOnn_Hieg6xHHEH5>YAL zsSn7h6kbk0Ig9-*?!qpRkEzAD#Z^z|tdY!y@?<*M#nKAFHU z`|+IDS;S}~F)S6YNapQ~^P&)`@V>Fwb~3qqFyDb?72|H)H>{$j!(}CXvyR0=ML+AJ z=F1kQUdeSk7y#NiqE0Li2m8gST9uwP`XvsS7GF1@uhjJ$F5BtO!`A7=AFC8;0~V87 zKK(l}z|NUHFkfih)sEvCT9&@niV24X)xpy+T7|Ed_zB$0CVwsHF zjx~dx_ZbIPL|?==f#SB{ul%BAuwAeej#1x=ae4-fS$}JDJK6@ki<-Y2?{APS9$ES= zDs}$=yW|Zg5*hJL%eO!-WdBWNp`P9On*VQmYm)7Geo0YRKT~A4vdJE98L)Yup!2Pt zx%<|Fy{Ng#&J6q&bKDH z*V#N?qzW9^&bX6pbJT}-fG(e5CAft^_0=O9IF!}ZQ5)wwKiMM;QH|?XslDE=jW+rj zP-i}xfZ4J3e2eM`t=YFaWv~IaIk8{|Q}*vqw8|536#Z+7Iq52Ir}IzJF?BHGkw<-c z)!EoT4k-3N>G%}Koh~*e4MXBEFd=~jWG8$p#_bHtx||%(D>$16BL_t1GHz?8WjRuE z`BmO0eN8UrW|VpIf+Gw~dy*dlKVrvfQx0b?R^=TP{Q2hZ7HFGs?5ir|i}t{7wPxCb zc$2qL&z^UI*bSKiS`CYzrJl3ZbB=n>MM>Vz2^_SfHrg7Uj^8H=L{+3JMMpAjjFZ#R zF12;_HTXYLNkM_41|pG_wzc>u#BjNW(+-<)(y`8r;IgEQB-8Ej9{gw59;tR>{Th|P xwr%Hyy9I(&ynxk{K!0B*&BTYm=OfQmV5&}U@R1i@S6#{mQM&XiEI2Cyn zL1~Jj0u}^Oc`2a?D#ZraKmkjk`@5)7@A0(UYj+uSvk8CFJiapAzC;55r%XYd&`FcfPT zrjt>eI;b))w;;0{F-8Wck+Q3$(JOQopk#JtX=Qn3VOCa2X6Y&0nDlq-U=RDJZ9Emh zHUnOsm7AAWnU+_WJ|G?&c@bPZ;CvvivMf8bQoBb?BO`*=YD>xs(knA^ON#PR%S~oH z9l>gQ6?0KxZb9ig$oMdVIveE1rsrj*7Hi2R>BX6u1yhi5I6`p_P{idGre;9c(kqKI zvvW&IGmA^sT1JZqO#;xwD6dn~OLNOID~nRIGjnaDCPJXqC<{FEDzgd;N+0CL`Ur(q zQ=HjU%^Azs6QR)oDlIAoCn`%yi&MF=IfBzZMo?!Q@;l5ZPlH>OZQ3&%uJ z)Y-<~2!+mSsV+3v@=9UkM6lX0W%;1of{emJlWb#p1lOQFDrb*a#*d9DwDu^9S(fod zgdzsQ#!9nwOw-#q#+nGm4;b4+#4w{v1fk=hBdvV7P8vNTD4m2TS7vbI`Y5*wT zdemBvs6hfZ8!6wXz{oJ{{L1`XsCSlPdP8M%2}^;cL}Le+3iC$gdc5;(sce>;2f~AO^hlHz2a1srl#d(N~5h|JfMAPXE37$KNGkq zVv|!+mhX~r*9?QFD52nE3IyFSG=a90r$DehfM*(n*aLW`!=hnSGbK|Q!CME;0*l&f z86~Bu=>rm!EeV145&fV}y9?@+XVrFz$2ubr2do_!j5Q}$oOcI0{41xEURF|>UYJ){ z%zoEulQg7(xnm&v-GQeIS8!c(NO%moZqfWNeD9a%|{Ynxx$c3Ys^ zzlyhuiz;1FI$>(41+CD6Ix!e)J9Vl?1%^fo(g}y~C?gD(l@_*AXGe{d;O<^>)L2P| zvCd5x-;JlZsqygL_zA7Liy~;q%>993(W-Ujfofe4PDY-qI*WO>0Kn7j+5%%ww=NXs z;X${urCN;@z8n9K)}5>XT6esPUsYgGv~E2oK)1Gmm1Gpd7Bw)F=_-MugmJdoIGAgk ztpLTD8Lny7(jB@R2b-YFp{r)n`gFcp{ZIO`J$>GMbJSSt^Ja&w0HDvS4e1U&eT%fd z?wYAV-vxndqWxRcg_ zR@&3?=wLHfL2VJp`&XsBI7*4GE~y}3v8O~St`-UwRE(EI=>y`FlK8-R(MqB- z2WvrUk=~s7P|e%hQ2-qkrg+=_kGvTk?{%8D4`eW!_uN3rzv(sXl0n{#)AL6S^^DWy z0;|j**Qg|2iTxOiwM}{gmIhvr$aS)d(qX&HD9!QKM-5PiFj%+s%Ec80oDMQeVWrSn zZGaSd^#iM%o)S>cY8o1vLa$Y6ECtR3(GZwki3-A$TzAn>TaY_;eNY=uwZ^CCq!zQ& zIy(KeW!j6@Dzg5-a}8d=rrOvG1!&}j0yOp_0{K@j6ovKzY}Q_=&D*ot^+AnYo0SjM z8n10WqHRub6oIz6rLy@{;EssR5VJ;0pHt*5?`hnf5)nX_7hM}D+<@t|PYqq&I_4G( z^D+y#wzOIy)oGn4>k3F?FxGaoPi7Ajy|lsh=Ra9}~Hw+$;2U@nHSTgom;$$-p3UOE($8fN9CW`~ao z-ev>Ut*gKRlAO%k>>QBdmH_~~IiyS3hOrwjRmp}Ly5Ul%CfFy^Ds%JUWF*Jw+~jyh zr4MMY!c!LQQE3y8VBFLr05$T+C5iS(QT#6+0ZC(z0MN)I7)N^q!)T9S=z8>p_UK9m z0G%W4QAXgBNRFCTJxedD%*ZS$EpltEn!~uHaA0wIW)WYmh2<#{Ei6`rXHej^h%hI; z!EBvz1^~}&_tfR>H;_49xr#w)EBE$nBMcbq9Uu%P!Lvu_n!>moP8&MUYA_fEI>{OX zY&yjn0|T944rE~;QnU{RO04#wt@5EHaITTE@1Gvt)ie1+Q%=Mf<`$EfTTNzuY6|m9 z(`RloW6ka6S>{*f+2+^gIp#NJYjc;`&ivl&VD2`P%pc57<{mTI+;4U@515yj2hHB* z&t^aKkeOm0HZ#nlW{&xrIl%ngEHwWxOUz^DAoGNIwRzI4Fi)A+nWxPgOal!!O>~oq z(9NcWZZmCkyD89UQ=+k^AKhifpz&rbdem%&9y8BEPnq%PS+hBsW+tHL%(Kx9^BnZN z*#gZn+oHKwy=8Vp@0b^&rDkWe%RF2}%)hGd7gA&nos0F$nwMI9f zc4#O%58Z^4&Wjvp{%9;pLE}&cx*O%7d(f5W zUX+jSM}_DCRDvEvgV4ih2&zHXqDMgT3uqXciH4)uAaxE%oeR=lM0cQhs0zITlIEkk z&}+c`I;utsfMX#Fphc(-y@`ToF`A6tK~JEqXbSoiO+}xhXV4cQaT`e5j$T4L(97s+ zkn#<1e+!&D(Hm$NdJCNaE(0$`2rokfFGm!wL^fW77+#MYya93iF_L%_^5Lz>k3UB- z_)F9be}&@kw;h)3cU_%_@c-;UehDtta3i#y_RxHG;B zUxe?$-SEA*Cw>55g2&@a@q@TGehBx)592HFBOvurkT?OPO~kpl7U$zST!f#*SK+5{ z37&$>@Kih){|67j&*E$GG+c?F!$a}&csPCmkH9lQ`z+A>BEA#P11+!M`|*6x@G3}O z08$r%#6>uW-^3yO7D#*>KaH2-XYjiq?R}883Z$(DY4spw4W5fX#4qEG_znCKP=AaU z<4yP-ycwvs0QF~h1^yhUzW~Z@cmv)J6gz<8Tf7y2hd;%8@t1fX{s!;IyYK)P zNUkR}sBlF03 z@(M_JjZ~8bAVgCi$JbLynX8$O({s z2BahUUqb0h!ssf(X+81NH6(_vCvkKGNuV1^BK?T8pdXV~bQ5VqHW zxsZNAI?*pl7rKok(;cKc{fb;dzb3uuH>5B9j`XMBlQg=UWY9e%hwdd;(jQ44{fXq$ zgQST5Op57YQbv!Ga{4>Dn*Kqqr6$z88U*J^cITfNQ&twO6cvB($SRD zF;viT)JN~5e)<57r4P}wXbp|0kI?3H0!^R+dNvKxbLeBV1)WS=(kZkRol4u#X|z3^ zPS2w=Xb1WNJ)h2^Npvo~fWAmO(RuV@I-ho>uhDLF0qsE-(Vp~8dI^1-_M(gFrF1F1 zoW4u@)Awl#T}e~vYMM^h(G0qtX3`Bbi+)72=_Yz5-Awc7R+>*gr-gI}Euvr3V!D%- z&|S2Y?xq9j9$H5C(Q>+<4xtC=we)9t13f~A(qHM#^bhd%IK7qr1sn(bNwU`dG-k~>HOX*1KT{_Bo zkB+w9r&ZPmbey%E-eaw#_gbsy{ni>f-dal^vi8wOto`&+>t{OAI!q^7N9YsQFZ5~a zSNg2=8=YbOPM^0DtXbCC)@!9m8&-SkZL5Rzj&;7Z#7eT3 zSsktStqZLWtWMSntBbYDy2x5>6;L5^JMXYJFl2v^HCVtk0}#t?gEY^|f`K z^__LSwcEPE+G`E7_FFev2dv@NLF*>#kTt?OV%=>0YTaTTwMJRLS$9~+tkKq=))?!g zHN`q(J#8WTS&P`yEZd%LaeId4x1YC~*)y$pdzO`8&$iCC=UC_1bFFjj7p+$ID^_cJ zzSYKl&1!EiusYZatqbgrtWNgFR%d&Yb&S}MXdfJ~_z3tDfe)bnue|wviW`AX6 z+Fx5)_7N-B{>93({dT?`V;9)X>>@kPF0s$D2ieW-tL?MxN;}cM-af~^(QakmY`3*X z+U@My?DqEUc9MOk-O;YHFSN(mo$R~qF7`e4MfQDmvi*SF-5zgWVn1Z}vLCiDwI8uB zw}Np#3gzz6V^(?U20+IP2{v?e)OD!G6~M*q&y8Vn1hZ1_@j3nfB-QEc;7)w!Ph+ zYwxgMw7<4rvcCn1-`TI*--FcM_CkA){g(Zsz1aR4q#v=D*uUCK?cYGd@AmulANCge zPmpvHC{Ee?Y=fP&;jqXELyR)aY{r-a|2h1Z@ZZmRu^4tKJB#&Z39JuGWc^r6b~$Uq z`m=WI3f7*bvh!IQ>&P-#Czi=BVp;5Bmd(1e0jwv>1I~PQ87l;iBA~vCrL$tdma$wm z2rxqcat$kG*8-%1m9t8AHM<@@-2nYi_&?U>#^dsT_D0UmGVz;xg><)Gp z8_n)z~;1nNcoN}V&Ahj*bgA-NA?yw$QH9B>>YL#B>u+UW5+=1 zpKLih#s13-X9Y8z)r>f68Fkh{0zPEI*}(kHM=Z|S#F{&sS)#LrwRHYqZJcB5Jm)w| za{gi+os+DKbBbN;oMzpeGpxH~I+r-e>Fp4wk3*fy9m~1Gv7IzWI2n#~vK^n3>%=(u zPOMYtG;>OvIA@TP;FLROJJ&iboa>#I&M>EyGu&zI-0ZY*Zgtu@qn!56oz8jA7^j0X z)=6^ib}n%4bviotJ6)Xd&PC26&c)87PFH85)7`0adO44S_KhyP> z1uLF&Qk)r1s`CO^Guugb<~f@&1dA4dMQ=Gp&SK{(XQ@-{eBhKiE1iMP zDrc~>1}t3f3~@F(*EpNN(#=k#^Qm*4^Ep_&&AGw(2CUxY+~|A{R_}2}I(wbloc+%2 z&Ozr6=dd%{ISQ8l?u>JeJ9jxJo$1aQumtm24&}3<(C0dwzv%e*OHM4G=bXh~an9!R zofdq7(~2*2TJuFtJN|~#p1=g4O&OrXFQ_hb%*YIObB|q+5$NzMO z^1qy6{DgB8KjqxQPdm49gOB1SzmsD=niD>b+x%{rl=t%s_=CJ7ujZZj!@LWBlwZUH zJefbvyYeS^4?czW0_KT~;&!S+8jSaI{91&SxlE(#2opBm@jvT*W@?iE%~ijB4gz; z*-S2%adM?hkgMg{a-BR^u9q$4M%hYkl5OOtvaS3=wv#*LdGcG?LGF_0%O7Nt{84t2 z2V`gYi@aDKmtExv*-f67-Q^kCQzG9blKOf{=DSo1UvKI6T_$6FePlCVKN;`4TqgMX z%ND*XWGi2aZ0Adr=lRlPk}q9e=*yIyeOdA%U$(s1mm_=la%C^ym9md-fb8eXlUMli zWty*0X84L^w(lyL<13MQzEWA}8z_r?WwOjyE{FJr$ZLF+veI{*yuo+9ywP`qyu~+E z-sT%7@9+(mV|^p!J-(ae{k~gdweL3huy2%n)OWiK`0kK(zR_~BZ;X7>S0$hJjg|lL z-7Tm2#>*MLYWb4yA^D2$Vfni6QMu4JLB8pmC>Q$za*3}_zV8dl|N0)2t9*~kdS6Jc z^F1Ng`<|2^`u-z7@;xIr`JRW!)X)-B1-^GLj}5WS6UTIgmfbiF_dGEVBFalH`u*{q;QE~K_kBM23!l{y2iNt23$+y7S}+y;ZPYRueC9|0Ujl*t?_~j zS1*>}HC$z0;UJ~Iy)iEk4|ek~JSSIylME}62w;C+W>#rsdR}f(WqxYO0C<~X8gLUv zTU@MOUNpuL<8jYo&{7E(o(kMM7K)Dbw&dt>#@i;~=e?7U3u3y!#`J2y^fE4s!gTN274C23n zudai^0EKwQ7}Ep+`W0fnadkAJdxYbCcsI~Qhs*Ja(Ki~QbhyfQ8W%S~cvk&toU2|l z>}{5!uB)V_W+=0vdF|Orw_u=7%xH6-n@^3=4DJOQ#WvTx->s4; zq`I41mEd0sdGt7o->K8Lq^@eV^_&2Sa1z|ESX!kV^X z>Lp%rRc2}{BSY>0>0ZnmqvddjulWWfkmkXy|eKJgeBl4is+)}-bj zZolBxl5*O;TC9{#vMb$Lt^5sNUss4f?Xm_$_}05ZoU*S9>&$4dgs`!Vq1qCM-R=sB zzQeABm~61On5bt7STNM_QRO?A_46i{e#ii$!kDYr_COn`gytyst-qAfpT@#BIlFjFa4T+L+H{amSriPy_C^4!0DX)6fjWIRT)U7d9 z*Hif2f1mjZsn{Om!SKSZZXUxg8uX)&;`^B&3~w|ZDttQlgJ0AX<87{ni1nflm%OyN z;>`S1_%%VMo??mO3C|-Bt(Wr_;>HGX1<|Q!C%lC|1?Uw<({~m{UT^^#4(>ov>F!KX zzX(tc&fp!wiEirPLUE3#7oPRCv0(?7iNQ@Vo`dzGpSJ<3?*|6J!(~^!+-w2I)z>v5 zB?8yBekaVPaJ{kpEPibY@2P@*LhKHg?LP(3l23+9!bNK(Ob%}<>=Grcxm?%aMx(%< zBY$g<(-2sBg%?uL~Ia3mC|D*<-_voRbt8nf7Ro*cT49UtZ$aNo!F7qD>r=}s1 zDgM!JmFU#K?gKwuQps5+kI(!H!`%=ei~Fwm zj|p()w91%Z>@fYgxc!YVx z$ROKLFQZh`{Ai9acfvJ07ouo(;}oDtA>BcaOS2m;{_Qkd!i6pcQ8YJ!9HmQfxw>uw zIj$}RQ8WWvmkp{ph=K=$74bDE*qFhg(3aiF!6n0t+Hpp(z~BAn6{|4UkXnCRV-7NoB^kyXzw)-$PmCU41wXC*k7d-X zMtF1X*x!_8DCTfI=;^WI*|Z7^Sf; zi`DHs8T9*&E&GqYS{bHL#ssstGCWuzgBw>KKzQ3yWLEFOTYmud!@!pmFoE9E5?y-c z(sPe~5vki%{R3Y12|nEYhom}1O>{j34=VbTAZHOeq{3L?@4I@u6$;f>#68t{TY7DU zUrEBpgIV#Adk>ct`&4lA%AXMa3*_%deYcFIq0s)2(RoAgNX=ec)j1Sewgz(jh+!NG z9t)QF>#}4J?$0I#2tImc6%U2nPh$^d=cWe7#R5;wX@iY7z%wo z{Q|RoSgBb*9NGwIw?G>SZ4|USppAw$9$GcDhoOa_Jqc|JwAs++LVF3?+tA*DwiMc0 zXzQVEfVK_V4rpIP`w7}XXosMkgm${rTw_3M3GKh}CSJ2zb?a2OQFWVC_o?c(t8TyQ z4nwyVtIkp#SDjCF@v3X7x{Fnprn)TEU8TB#s=K$;TsupBcvW@pt4?WLdr);pp$2qJr9GMgKL$Ny6I5bn`(Z9PahC9eW9dORjNCao!5^A=Jwx# z5p}B%)n)OzZS!|uom=IELf}W;>Z9}P*1@0o2eQ>nA1C{+9gjnyshy8x=?U=V%EJh+ z)54C|ZGb5Q6UUo1Yutha9||Jg6pTHzzs6MLN*c_zg1Elh#=vZN3IgEGgOy+)KE9}# zntwa%hV!Djor{o~hkEwJ0%5RB29qJcpN@gG5brp)dxy&E6@L99NXS^!{`BO zk?g#xW`}X?m*COhw!z?EYEt0*+^S??IXVV>#-|E5ukSap=1b#{Ml}Bi#DS0Ye+Dbn z#4Z0UMT9~T8TeF`l*R~&(3)|vAhgGd9$(dE`RghqEOJo(@c*RJa&(kh%R#jT)m%T` z4=P+zSy#cEkdCZ$b*K&1>f4$aV_@T|Z5?N9*&Uo{8FS(dwT91%Gd6-FVUmj!NvtB7 zY#G?!(pa_wAMC)!o>1GNuWr}jMY3+sVHa3+LJNrX1aPh6YS@IctiD!TR5ukyGoj5_1GQe%AA@da z-PNiasyaO!sXmQS-FVeaP~Bsy3#smH)v2{_-3HZt4qa&GH`sjBRFRrQte^ zAtu3Xjosa?-2E})?y?nlQ4iRLSO>g$CuG?&W+fUMXSFakhS?xgRVOyOCmH5$UbA5J z*fyZH!Z___|(CuEhBFmD|ceN zt+v9d*@YL!Y~546CuR}pw6bo!yBnr0Vu36)se%N@S#|xgYR6eUR&@XB)75HajDa#bbN=SAhmUd)*1rSKg#Ck) z75E2Js33lK*ZT1ZNp+4AGybPl6SR!B64n2F2QWb#0bWTY+l6$F*fv zZ5e~|TZ)=_+tSIm$eMAjgJlUpU@Aa=tUOuOA{3fivld6U>iq;TWB2X06*PD3pQ3;% zv*s2S;Bgid%9UeRo!(dlhtSRI)YiG~5Uko|#5j}Hx@HtJYs#3R;>*MS{U1DNHhrp5 zk6@zLtHVpZUv=v6QlF!`Jk^a*-L0ydth%RE_pIt>sP20>E-`4mq1_FDHTS9R1=Y<_ z-7BhlU3Ev{z~ex>5ZY$|Si4hof2i&>bn6mTw^Vg2pqn>yH8O+Z{}kc3;YmQpI3pB# z4IO&2Y&1fRM!04j@v^aece6$^vUA5CR(bJ(?1G5oaDFC0ep>$z z`Pp9%6FfRWaJmX+`TJV1&!npdF{!tM-l0(6)m7cqqg?R6YJr8nOW-d&M$AeuCasvX z4G#TFnW3M-;MwNrTs=N>Sf}272&g$of(IvA3C77_MQbHBre-1pCcZB`B8?fZ_M4VH zvf|Fi#@IXIgsvYIJfXp?gw9zlQlOyKI#bqC9o~LIomT+_d4{;t0UrS&YFR!K-0oSL z73-a-vf}i54VlQTf>TbgqGio)Ty=LSG&WN|OYVXP9|cOTo2Z_F64l4{6T=5nSk4W2 zkV~qArwbGB$W`Hv494z*vnEUc%?hX3|Aja^>r4T1HB_I#Rb9R35zuu=Azb!g1&YXT zq6}QveG#Z@IATL!wm-IV()QrSqjPhrn!$PLSM|_zbgufFGj^YsjGB6)^AT%2GyPVh z-h^_l-=#XeSD%DWYl!O9_P$1_u8-=}Q^J~j)jh7dDXM!(b$a@I0~2f?H1%k(HWB7f zTlJw7K2)j?wa~pklN)fA$Ng6_JH~(;IRq|~m;ixaUG|^Z7S1SP{6GG^xDM#5{vRRk B7cBq) literal 0 HcmV?d00001 diff --git a/OUT.CPP b/OUT.CPP new file mode 100644 index 0000000..16dca97 --- /dev/null +++ b/OUT.CPP @@ -0,0 +1,335 @@ +unsigned char Movs[23][23][3] = { + { + { 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, }, + { 000, 200, 200, 200, 200, 200, 200, 200, 200, 010, 010, 010, 010, 010, 010, 200, 200, 200, 200, 010, 010, 200, 200, }, + { 000, 200, 200, 200, 200, 200, 200, 010, 010, 001, 011, 012, 012, 011, 011, 010, 200, 200, 010, 029, 035, 010, 200, }, + { 000, 200, 200, 200, 200, 200, 010, 011, 011, 012, 012, 012, 012, 012, 011, 011, 010, 010, 010, 035, 029, 010, 200, }, + { 000, 200, 200, 200, 200, 200, 010, 011, 012, 012, 012, 012, 012, 012, 012, 011, 011, 010, 200, 010, 010, 200, 200, }, + { 000, 200, 200, 200, 200, 010, 023, 024, 023, 024, 023, 011, 012, 012, 012, 012, 011, 010, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 010, 024, 033, 010, 028, 028, 023, 011, 012, 012, 012, 012, 010, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 010, 023, 028, 010, 028, 033, 024, 011, 012, 012, 012, 011, 010, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 010, 024, 028, 010, 033, 028, 024, 011, 012, 012, 012, 011, 010, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 010, 023, 024, 023, 024, 023, 011, 012, 012, 012, 011, 010, 010, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 200, 010, 012, 012, 012, 010, 010, 010, 011, 011, 010, 010, 200, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 200, 200, 010, 010, 010, 017, 028, 017, 010, 010, 010, 200, 200, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 200, 010, 012, 018, 010, 028, 028, 028, 010, 011, 010, 200, 200, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 200, 010, 012, 017, 010, 033, 028, 023, 010, 001, 010, 200, 200, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 200, 010, 033, 028, 010, 010, 010, 010, 010, 010, 010, 200, 200, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 200, 010, 012, 017, 010, 029, 035, 029, 010, 010, 010, 200, 200, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 200, 200, 010, 010, 010, 010, 010, 010, 010, 010, 200, 200, 200, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 200, 200, 200, 010, 028, 033, 028, 033, 028, 010, 200, 200, 200, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 200, 200, 010, 010, 010, 010, 010, 010, 010, 010, 010, 200, 200, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 010, 010, 010, 010, 035, 029, 035, 029, 010, 010, 010, 010, 010, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 200, 200, 200, 200, 200, }, + { 000, 200, 200, 200, 200, 200, 200, 010, 010, 010, 010, 010, 010, 010, 010, 010, 200, 200, 200, 200, 200, 200, 200, } + }, + { + { 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, }, + { 000, 249, 200, 200, 200, 200, 200, 200, 200, 200, 010, 010, 010, 010, 010, 010, 200, 200, 200, 010, 010, 200, 200, }, + { 000, 249, 200, 200, 200, 200, 200, 200, 010, 010, 001, 011, 012, 012, 011, 011, 010, 200, 010, 035, 029, 010, 200, }, + { 000, 249, 200, 200, 200, 200, 200, 010, 011, 012, 012, 012, 012, 012, 012, 012, 011, 010, 010, 029, 035, 010, 200, }, + { 000, 249, 200, 200, 200, 200, 010, 011, 012, 012, 012, 012, 012, 012, 012, 012, 011, 010, 010, 010, 010, 200, 200, }, + { 000, 249, 200, 200, 200, 200, 010, 023, 024, 023, 011, 012, 012, 012, 012, 012, 012, 001, 010, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 200, 200, 010, 024, 010, 028, 024, 011, 012, 012, 012, 012, 012, 011, 010, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 200, 200, 010, 023, 010, 033, 024, 011, 012, 012, 012, 012, 012, 011, 010, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 200, 200, 010, 024, 010, 028, 024, 011, 012, 012, 012, 012, 012, 011, 010, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 200, 200, 010, 023, 024, 023, 011, 012, 012, 012, 012, 012, 011, 010, 010, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 200, 010, 010, 010, 001, 011, 012, 012, 010, 010, 010, 011, 010, 010, 200, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 010, 029, 035, 010, 010, 010, 010, 010, 028, 023, 018, 010, 010, 200, 200, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 010, 035, 010, 010, 018, 024, 018, 010, 024, 028, 024, 018, 010, 010, 200, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 200, 010, 028, 010, 018, 023, 018, 017, 010, 023, 028, 010, 035, 010, 200, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 200, 010, 028, 010, 033, 028, 010, 010, 010, 010, 010, 035, 029, 010, 200, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 200, 200, 010, 010, 018, 017, 018, 017, 018, 012, 010, 010, 010, 200, 200, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 200, 200, 200, 010, 010, 028, 033, 024, 012, 012, 012, 010, 035, 010, 200, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 200, 010, 010, 010, 028, 033, 024, 017, 010, 010, 010, 010, 035, 010, 200, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 200, 010, 035, 035, 010, 024, 018, 010, 010, 028, 028, 010, 029, 010, 200, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 200, 200, 010, 029, 035, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 200, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 200, 200, 200, }, + { 000, 249, 200, 200, 200, 200, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 200, 200, 200, 200, }, + { 000, 249, 200, 200, 200, 200, 200, 200, 010, 010, 010, 010, 010, 010, 010, 010, 010, 200, 200, 200, 200, 200, 200, } + }, + { + { 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, }, + { 000, 200, 249, 200, 200, 200, 200, 200, 200, 200, 010, 010, 010, 010, 010, 010, 010, 200, 200, 010, 010, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 200, 200, 010, 001, 011, 012, 012, 012, 011, 011, 010, 010, 035, 035, 010, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 200, 010, 011, 012, 012, 012, 012, 012, 012, 012, 011, 010, 035, 029, 010, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 200, 010, 012, 012, 012, 012, 012, 012, 012, 012, 012, 011, 010, 010, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 010, 023, 024, 023, 024, 023, 024, 023, 011, 012, 012, 011, 010, 200, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 010, 010, 033, 028, 010, 028, 033, 028, 024, 011, 012, 011, 010, 200, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 010, 010, 028, 033, 010, 033, 028, 033, 024, 011, 012, 012, 010, 200, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 010, 010, 028, 028, 010, 028, 028, 028, 024, 011, 012, 011, 010, 200, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 010, 023, 024, 023, 024, 023, 024, 023, 011, 012, 012, 001, 010, 200, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 200, 010, 010, 018, 010, 010, 010, 001, 011, 012, 001, 010, 200, 200, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 010, 029, 035, 010, 010, 023, 018, 010, 010, 010, 010, 010, 200, 200, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 010, 035, 010, 024, 033, 028, 024, 010, 024, 012, 010, 018, 010, 200, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 010, 010, 024, 033, 028, 023, 018, 010, 024, 012, 010, 017, 018, 010, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 200, 010, 010, 028, 024, 018, 010, 010, 010, 010, 010, 010, 010, 010, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 200, 010, 018, 010, 010, 010, 018, 017, 018, 017, 010, 010, 035, 010, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 010, 010, 018, 028, 018, 017, 018, 018, 012, 033, 024, 010, 010, 010, 200, 200, 200, }, + { 000, 200, 249, 200, 200, 010, 029, 010, 033, 028, 023, 010, 010, 010, 023, 028, 033, 024, 010, 200, 200, 200, 200, }, + { 000, 200, 249, 200, 200, 010, 035, 035, 010, 023, 010, 010, 010, 010, 010, 024, 028, 010, 035, 010, 200, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 010, 035, 029, 010, 010, 010, 010, 010, 010, 010, 010, 010, 029, 010, 200, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 029, 010, 010, 010, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 010, 200, 200, 200, }, + { 000, 200, 249, 200, 200, 200, 200, 200, 200, 010, 010, 010, 010, 010, 010, 010, 010, 010, 200, 200, 200, 200, 200, } + }, + }; + + +{ 000, 000, 000 }, +{ 032, 000, 000 }, +{ 000, 032, 000 }, +{ 032, 032, 000 }, +{ 000, 000, 032 }, +{ 032, 000, 032 }, +{ 000, 032, 032 }, +{ 048, 048, 048 }, +{ 048, 055, 048 }, +{ 041, 050, 060 }, +{ 000, 000, 000 }, +{ 042, 000, 000 }, +{ 053, 000, 000 }, +{ 000, 010, 000 }, +{ 021, 010, 000 }, +{ 032, 010, 000 }, +{ 042, 010, 000 }, +{ 053, 010, 000 }, +{ 063, 010, 000 }, +{ 000, 021, 000 }, +{ 021, 021, 000 }, +{ 032, 021, 000 }, +{ 042, 021, 000 }, +{ 053, 021, 000 }, +{ 063, 021, 000 }, +{ 021, 032, 000 }, +{ 042, 032, 000 }, +{ 053, 032, 000 }, +{ 063, 032, 000 }, +{ 000, 042, 000 }, +{ 021, 042, 000 }, +{ 032, 042, 000 }, +{ 042, 042, 000 }, +{ 053, 042, 000 }, +{ 063, 042, 000 }, +{ 000, 053, 000 }, +{ 021, 053, 000 }, +{ 032, 053, 000 }, +{ 042, 053, 000 }, +{ 053, 053, 000 }, +{ 063, 053, 000 }, +{ 021, 063, 000 }, +{ 032, 063, 000 }, +{ 042, 063, 000 }, +{ 053, 063, 000 }, +{ 021, 000, 021 }, +{ 032, 000, 021 }, +{ 042, 000, 021 }, +{ 053, 000, 021 }, +{ 063, 000, 021 }, +{ 000, 010, 021 }, +{ 021, 010, 021 }, +{ 032, 010, 021 }, +{ 042, 010, 021 }, +{ 053, 010, 021 }, +{ 063, 010, 021 }, +{ 000, 021, 021 }, +{ 021, 021, 021 }, +{ 032, 021, 021 }, +{ 042, 021, 021 }, +{ 053, 021, 021 }, +{ 063, 021, 021 }, +{ 000, 032, 021 }, +{ 021, 032, 021 }, +{ 032, 032, 021 }, +{ 042, 032, 021 }, +{ 053, 032, 021 }, +{ 063, 032, 021 }, +{ 000, 042, 021 }, +{ 021, 042, 021 }, +{ 032, 042, 021 }, +{ 042, 042, 021 }, +{ 053, 042, 021 }, +{ 063, 042, 021 }, +{ 000, 053, 021 }, +{ 021, 053, 021 }, +{ 032, 053, 021 }, +{ 042, 053, 021 }, +{ 053, 053, 021 }, +{ 063, 053, 021 }, +{ 000, 063, 021 }, +{ 021, 063, 021 }, +{ 032, 063, 021 }, +{ 042, 063, 021 }, +{ 053, 063, 021 }, +{ 063, 063, 021 }, +{ 021, 000, 032 }, +{ 042, 000, 032 }, +{ 053, 000, 032 }, +{ 063, 000, 032 }, +{ 000, 010, 032 }, +{ 021, 010, 032 }, +{ 032, 010, 032 }, +{ 042, 010, 032 }, +{ 053, 010, 032 }, +{ 063, 010, 032 }, +{ 000, 021, 032 }, +{ 021, 021, 032 }, +{ 032, 021, 032 }, +{ 042, 021, 032 }, +{ 053, 021, 032 }, +{ 063, 021, 032 }, +{ 021, 032, 032 }, +{ 042, 032, 032 }, +{ 053, 032, 032 }, +{ 063, 032, 032 }, +{ 000, 042, 032 }, +{ 021, 042, 032 }, +{ 032, 042, 032 }, +{ 042, 042, 032 }, +{ 053, 042, 032 }, +{ 063, 042, 032 }, +{ 000, 053, 032 }, +{ 021, 053, 032 }, +{ 032, 053, 032 }, +{ 042, 053, 032 }, +{ 053, 053, 032 }, +{ 063, 053, 032 }, +{ 000, 063, 032 }, +{ 021, 063, 032 }, +{ 032, 063, 032 }, +{ 042, 063, 032 }, +{ 053, 063, 032 }, +{ 063, 063, 032 }, +{ 000, 000, 042 }, +{ 021, 000, 042 }, +{ 032, 000, 042 }, +{ 042, 000, 042 }, +{ 053, 000, 042 }, +{ 063, 000, 042 }, +{ 000, 010, 042 }, +{ 021, 010, 042 }, +{ 032, 010, 042 }, +{ 042, 010, 042 }, +{ 053, 010, 042 }, +{ 063, 010, 042 }, +{ 000, 021, 042 }, +{ 021, 021, 042 }, +{ 032, 021, 042 }, +{ 042, 021, 042 }, +{ 053, 021, 042 }, +{ 063, 021, 042 }, +{ 000, 032, 042 }, +{ 021, 032, 042 }, +{ 032, 032, 042 }, +{ 042, 032, 042 }, +{ 053, 032, 042 }, +{ 063, 032, 042 }, +{ 000, 042, 042 }, +{ 021, 042, 042 }, +{ 032, 042, 042 }, +{ 042, 042, 042 }, +{ 053, 042, 042 }, +{ 063, 042, 042 }, +{ 000, 053, 042 }, +{ 021, 053, 042 }, +{ 032, 053, 042 }, +{ 042, 053, 042 }, +{ 053, 053, 042 }, +{ 063, 053, 042 }, +{ 000, 063, 042 }, +{ 021, 063, 042 }, +{ 032, 063, 042 }, +{ 042, 063, 042 }, +{ 053, 063, 042 }, +{ 063, 063, 042 }, +{ 000, 000, 053 }, +{ 021, 000, 053 }, +{ 032, 000, 053 }, +{ 042, 000, 053 }, +{ 053, 000, 053 }, +{ 063, 000, 053 }, +{ 000, 010, 053 }, +{ 021, 010, 053 }, +{ 032, 010, 053 }, +{ 042, 010, 053 }, +{ 053, 010, 053 }, +{ 063, 010, 053 }, +{ 000, 021, 053 }, +{ 021, 021, 053 }, +{ 032, 021, 053 }, +{ 042, 021, 053 }, +{ 053, 021, 053 }, +{ 063, 021, 053 }, +{ 000, 032, 053 }, +{ 021, 032, 053 }, +{ 032, 032, 053 }, +{ 042, 032, 053 }, +{ 053, 032, 053 }, +{ 063, 032, 053 }, +{ 000, 042, 053 }, +{ 021, 042, 053 }, +{ 032, 042, 053 }, +{ 042, 042, 053 }, +{ 053, 042, 053 }, +{ 063, 042, 053 }, +{ 000, 053, 053 }, +{ 021, 053, 053 }, +{ 032, 053, 053 }, +{ 042, 053, 053 }, +{ 053, 053, 053 }, +{ 063, 053, 053 }, +{ 000, 063, 053 }, +{ 021, 063, 053 }, +{ 032, 063, 053 }, +{ 042, 063, 053 }, +{ 053, 063, 053 }, +{ 063, 063, 053 }, +{ 021, 000, 063 }, +{ 032, 000, 063 }, +{ 042, 000, 063 }, +{ 053, 000, 063 }, +{ 000, 010, 063 }, +{ 021, 010, 063 }, +{ 032, 010, 063 }, +{ 042, 010, 063 }, +{ 053, 010, 063 }, +{ 063, 010, 063 }, +{ 000, 021, 063 }, +{ 021, 021, 063 }, +{ 032, 021, 063 }, +{ 042, 021, 063 }, +{ 053, 021, 063 }, +{ 063, 021, 063 }, +{ 000, 032, 063 }, +{ 021, 032, 063 }, +{ 032, 032, 063 }, +{ 042, 032, 063 }, +{ 053, 032, 063 }, +{ 063, 032, 063 }, +{ 000, 042, 063 }, +{ 021, 042, 063 }, +{ 032, 042, 063 }, +{ 042, 042, 063 }, +{ 053, 042, 063 }, +{ 063, 042, 063 }, +{ 000, 053, 063 }, +{ 021, 053, 063 }, +{ 032, 053, 063 }, +{ 042, 053, 063 }, +{ 053, 053, 063 }, +{ 063, 053, 063 }, +{ 021, 063, 063 }, +{ 032, 063, 063 }, +{ 042, 063, 063 }, +{ 053, 063, 063 }, +{ 063, 062, 060 }, +{ 040, 040, 041 }, +{ 032, 032, 032 }, +{ 063, 000, 000 }, +{ 000, 063, 000 }, +{ 063, 063, 000 }, +{ 000, 000, 063 }, +{ 063, 000, 063 }, +{ 000, 063, 063 }, +{ 063, 063, 063 }, diff --git a/PAT0.PCX b/PAT0.PCX new file mode 100644 index 0000000000000000000000000000000000000000..58695b18df1c742a8872d53d88c290e6df5a03e1 GIT binary patch literal 6689 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 literal 0 HcmV?d00001 diff --git a/PAT2.PCX b/PAT2.PCX new file mode 100644 index 0000000000000000000000000000000000000000..36661fa0d8b2729c1cea758055617cbff10f850f GIT binary patch literal 6890 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 beeibwl65brqpz3FxR{Xfevkje#Kivrgxk<~ literal 0 HcmV?d00001 diff --git a/PCX.CPP b/PCX.CPP new file mode 100644 index 0000000..e46c0e9 --- /dev/null +++ b/PCX.CPP @@ -0,0 +1,190 @@ +#include +#include +#include + +#define OK 0 +#define ERROR 1 + +//#define RES_X 320 +//#define RES_Y 200 +#define RES_X 73+1 +#define RES_Y 25 + +typedef unsigned char DacPalette256[256][3]; +DacPalette256 Palette256; + +int CargaPaleta(char *file ); + +unsigned char Movs[273][411][1]; + +int MuestraImagen( char *file ); +void ProcesaPunto( int x, int y, char byte ); +void Mem2CPP(void); + +void main( int argc, char *argv[] ) +{ + int gd=DETECT, gm; + + initgraph( &gd, &gm, "c:\\program\\borlandc\\bgi" ); + + MuestraImagen( argv[1] ); + CargaPaleta( argv[1] ); + getch(); + Mem2CPP(); + + closegraph(); +} + +void Mem2CPP(void) +{ + FILE *out; + int i, j, k; + + if ( (out=fopen("foto.txt", "wb" ) ) != NULL ) + { + for ( i = 0; i < 411; i ++ ) + { + for ( j = 0; j < 273; j ++ ) + { + fprintf( out, "%d", (int)Movs[j][i][0] ); + } + fprintf( out, "\n" ); + } +/* + fprintf( out, "unsigned char Movs[23][23][3] = { \n"); + for ( k = 0; k < 3; k ++ ) + { + fprintf( out, " {\n"); + for ( i = 0; i < 22; i++ ) + { + fprintf( out, " { "); + for ( j = 0; j < 23; j++ ) + fprintf( out, "%03d, ", (int)Movs[j][i][k] ); + fprintf( out, " }, \n"); + } + i = 22; + fprintf( out, " { "); + for ( j = 0; j < 23; j++ ) + fprintf( out, "%03d, ", (int)Movs[j][i][k] ); + fprintf( out, " } \n"); + fprintf( out, " },\n"); + } + fprintf( out, " };"); + + fprintf( out, "\n\n\n"); + for ( i = 0; i < 256; i++ ) + fprintf ( out, "{ %03d, %03d, %03d }, \n", Palette256[i][0], Palette256[i][1], Palette256[i][2] ); +*/ + fclose(out); + } + + +} + + /**************************************************************************\ +|* *| +|* MuestraImagen *| +|* *| +|* Descripci¢n: *| +|* Descomprime y copia a la pagina indicada un PCX *| +|* *| +|* Entradas: nombre de la imagen *| +|* *| +|* *| +|* Salidas: OK Todo ha ido bien *| +|* ERROR Algo va mal *| +|* *| + \**************************************************************************/ +int MuestraImagen( char *file ) +{ + int alto, ancho, contador; + unsigned char byte; + FILE *fp; + + if ( (fp = fopen( file,"rb")) != NULL ) + { + // Saltamos la cabecera + fseek( fp, 128, SEEK_SET ); + + for(alto=0; alto0; contador--) + { +// set_point (ancho, alto, byte); + ProcesaPunto( ancho, alto, byte ); + ancho++; + } + } + } + } + fclose(fp); + } else return ERROR; + + return OK; +} + + /**************************************************************************\ +|* *| +|* CargaPaleta *| +|* *| +|* Descripci¢n: *| +|* Carga la paleta con los colores por defecto *| +|* *| +|* *| +|* Entradas: achivo PCX de donde cargar la paleta *| +|* *| +|* Salidas: OK Todo ha ido bien *| +|* ERROR Algo va mal *| +|* *| + \**************************************************************************/ +int CargaPaleta(char *file ) +{ + int index; + FILE *fp; + + if ( (fp=fopen( file, "rb" ) ) == NULL ) + return ERROR; + + if ( fseek( fp, -768L, SEEK_END ) == 0 ) + { + for (index=0; index<256; index++) + { + // get the red component + // get the green component + // get the blue component + // set components + Palette256[index][0] = getc(fp) >> 2; + Palette256[index][1] = getc(fp) >> 2; + Palette256[index][2] = getc(fp) >> 2; + } // end for index + + } + + + fclose( fp ); + return OK; +} + +void ProcesaPunto( int x, int y, char byte ) +{ + Movs[x][y][0]=byte; +/* + if ( x > 0 && x < 23 && y > 0 && y < 23 ) + Movs[x][y][0] = byte; + if ( x > 0 + 23 && x < 23 + 23 && y > 0 && y < 23 ) + Movs[x-23][y][1] = byte; + if ( x > 0 + 23*2 && x < 23 + 23*2 && y > 0 && y < 23 ) + Movs[x-23*2][y][2] = byte; +*/ + putpixel( x /*+ x*2*/, y /*+ y*2*/, byte ); +} diff --git a/PCX.EXE b/PCX.EXE new file mode 100644 index 0000000000000000000000000000000000000000..0017c15dda014090eb2cfc228c8b4d7a75c5182c GIT binary patch literal 38060 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