#include #include #include #include /////////////////////////////////// #include /////////////////////////////////// #include // #define 0± e // #define ÿ 0 // ^ Caracter 255 int TabS[255]; typedef struct { int x, y; char ndigitos; char AX, AY; char C1, C2, C3; } p_graphics; int Numero_Digital( long numero, p_graphics *ND ); void Fuente_Amplia( char *Frase, p_graphics *FA ); void Fuente_Amplia2( char *Frase, p_graphics *FA ); int Numero_Digital( long numero, p_graphics *ND ) { // Son 9 digitos VARIABLES // 0 // _________ _________ _________ _________ _________ _________ _________ // |\______ /| |\______ /| |\______ /| |\______ /| |\______ /| |\______ /| |\______ /| // | | | | | | | | | | | | | | | | | | | | | | | | | | | | //3 | | 1 | | 5 | | | | | | | | | | | | | | | | | | | | | | | | // | /-----\ | | /-----\ | | /-----\ | | /-----\ | | /-----\ | | /-----\ | | /-----\ | // | \-----/ | | \-----/ | | \-----/ | | \-----/ | | \-----/ | | \-----/ | | \-----/ | //4 | | | | 6 | | | | | | | | | | | | | | | | | | | | | | | | // | |_____| | | |_____| | | |_____| | | |_____| | | |_____| | | |_____| | | |_____| | // |/_______\| |/_______\| |/_______\| |/_______\| |/_______\| |/_______\| |/_______\| // 2 static char dnumero[9] = { -1, -1, -1, -1, -1, -1, -1, -1, -1 }; static char Dn[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; static ndigitos1 = -1; static char vez = 0; static p_graphics ND1; if ( ND1.x != ND -> x || ND1.y != ND -> y || ND1.ndigitos != ND -> ndigitos || ND1.AX != ND -> AX || ND1.AY != ND -> AY /*ndigitos1 != ndigitos*/ ) { dnumero[0] = -1; dnumero[1] = -1; dnumero[2] = -1; dnumero[3] = -1; dnumero[4] = -1; dnumero[5] = -1; dnumero[6] = -1; dnumero[7] = -1; dnumero[8] = -1; Dn[0] = 0; Dn[1] = 0; Dn[2] = 0; Dn[3] = 0; Dn[4] = 0; Dn[5] = 0; Dn[6] = 0; Dn[7] = 0; Dn[8] = 0; //ndigitos1 = ndigitos; ND1 = *ND; vez = 0; } // { 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F }; char dnum=0, i, j, digital; int punto[10]; int CONST = 0; char DnTmp[2]; char signo = 0; static old_signo = 0; // ndigitos - 1 // if ( numero > 999999 || numero < -99999 ) return -1; // 1000000 if ( numero < 0 ) { numero *= -1; signo = 1; } if ( signo != old_signo ) vez = 0; setcolor(ND -> C3); // char old_dnum; for( i=0; i < ND -> ndigitos; i++ ) { // old_dnum = dnum; dnum = numero % 10; digital = numero; numero /= 10; if ( dnumero[ ND -> ndigitos - 1 - i] != dnum || digital == 0 || vez == 0 ) { // digital = dnumero[5 - i]; dnumero[ND -> ndigitos - 1 - i] = dnum; //////// Esta parte del c¢digo imprime el digito en pantalla CONST = 12*ND -> AX*(ND -> ndigitos - 1 - i); DnTmp[1] = Dn[ND -> ndigitos - 1 -i]; // if ( i == 5 && signo == 1 ) Dn[5-i] = 2; else // Antes de nada, eliminamos los cero a la izquierda if ( digital == 0 && i != 0 ) { Dn[ND -> ndigitos - 1 -i] = 0; dnumero[ND -> ndigitos - 1 - i] = -1; } else switch( dnum ) { case 0: Dn[ND -> ndigitos - 1 -i] = 0x7D; // 0111 1101 break; case 1: Dn[ND -> ndigitos - 1 -i] = 0x60; // 0110 0000 break; case 2: Dn[ND -> ndigitos - 1 -i] = 0x37; // 0011 0111 break; case 3: Dn[ND -> ndigitos - 1 -i] = 0x67; // 0110 0111 break; case 4: Dn[ND -> ndigitos - 1 -i] = 0x6A; // 0110 1010 break; case 5: Dn[ND -> ndigitos - 1 -i] = 0x4F; // 0100 1111 break; case 6: Dn[ND -> ndigitos - 1 -i] = 0x5F; // 0101 1111 break; case 7: Dn[ND -> ndigitos - 1 -i] = 0x61; // 0110 0001 break; case 8: Dn[ND -> ndigitos - 1 -i] = 0x7F; // 0111 1111 break; case 9: Dn[ND -> ndigitos - 1 -i] = 0x6F; // 0110 1111 break; } DnTmp[0] = Dn[ND -> ndigitos - 1 -i]; for( j=0; j<7; j++ ) { if ( DnTmp[1]%2 != DnTmp[0]%2 || vez == 0 ) { if ( DnTmp[0]%2 ) setfillstyle(SOLID_FILL, ND -> C1); else setfillstyle(SOLID_FILL, ND -> C2); switch( j ) { case 0: punto[0] = 0*ND -> AX + CONST + ND -> x; punto[1] = 0*ND -> AY + ND -> y; punto[2] = 10*ND -> AX + CONST + ND -> x; punto[3] = 0*ND -> AY + ND -> y; punto[4] = 8*ND -> AX + CONST + ND -> x; punto[5] = 2*ND -> AY + ND -> y; punto[6] = 2*ND -> AX + CONST + ND -> x; punto[7] = 2*ND -> AY + ND -> y; punto[8] = 0*ND -> AX + CONST + ND -> x; punto[9] = 0*ND -> AY + ND -> y; fillpoly( 5, punto ); break; case 3: punto[0] = 0*ND -> AX + CONST + ND -> x; punto[1] = 0*ND -> AY + ND -> y; punto[2] = 2*ND -> AX + CONST + ND -> x; punto[3] = 2*ND -> AY + ND -> y; punto[4] = 2*ND -> AX + CONST + ND -> x; punto[5] = 9*ND -> AY + ND -> y; punto[6] = 1*ND -> AX + CONST + ND -> x; punto[7] = 10*ND -> AY + ND -> y; punto[8] = 0*ND -> AX + CONST + ND -> x; punto[9] = 9*ND -> AY + ND -> y; fillpoly( 5, punto ); break; case 5: punto[0] = 10*ND -> AX + CONST + ND -> x; punto[1] = 0*ND -> AY + ND -> y; punto[2] = 10*ND -> AX + CONST + ND -> x; punto[3] = 9*ND -> AY + ND -> y; punto[4] = 9*ND -> AX + CONST + ND -> x; punto[5] = 10*ND -> AY + ND -> y; punto[6] = 8*ND -> AX + CONST + ND -> x; punto[7] = 9*ND -> AY + ND -> y; punto[8] = 8*ND -> AX + CONST + ND -> x; punto[9] = 2*ND -> AY + ND -> y; fillpoly( 5, punto ); break; case 1: int punto1[12]; punto1[0] = 1*ND -> AX + CONST + ND -> x; punto1[1] = 10*ND -> AY + ND -> y; punto1[2] = 2*ND -> AX + CONST + ND -> x; punto1[3] = 9*ND -> AY + ND -> y; punto1[4] = 8*ND -> AX + CONST + ND -> x; punto1[5] = 9*ND -> AY + ND -> y; punto1[6] = 9*ND -> AX + CONST + ND -> x; punto1[7] = 10*ND -> AY + ND -> y; punto1[8] = 8*ND -> AX + CONST + ND -> x; punto1[9] = 11*ND -> AY + ND -> y; punto1[10] = 2*ND -> AX + CONST + ND -> x; punto1[11] = 11*ND -> AY +ND -> y; fillpoly( 6, punto1 ); break; case 4: punto[0] = 1*ND -> AX + CONST + ND -> x; punto[1] = 10*ND -> AY + ND -> y; punto[2] = 2*ND -> AX + CONST + ND -> x; punto[3] = 11*ND -> AY + ND -> y; punto[4] = 2*ND -> AX + CONST + ND -> x; punto[5] = 18*ND -> AY + ND -> y; punto[6] = 0*ND -> AX + CONST + ND -> x; punto[7] = 20*ND -> AY + ND -> y; punto[8] = 0*ND -> AX + CONST + ND -> x; punto[9] = 11*ND -> AY + ND -> y; fillpoly( 5, punto ); break; case 6: punto[0] = 9*ND -> AX + CONST + ND -> x; punto[1] = 10*ND -> AY + ND -> y; punto[2] = 10*ND -> AX + CONST + ND -> x; punto[3] = 11*ND -> AY + ND -> y; punto[4] = 10*ND -> AX + CONST + ND -> x; punto[5] = 20*ND -> AY + ND -> y; punto[6] = 8*ND -> AX + CONST + ND -> x; punto[7] = 18*ND -> AY + ND -> y; punto[8] = 8*ND -> AX + CONST + ND -> x; punto[9] = 11*ND -> AY + ND -> y; fillpoly( 5, punto ); break; case 2: punto[0] = 2*ND -> AX + CONST + ND -> x; punto[1] = 18*ND -> AY + ND -> y; punto[2] = 8*ND -> AX + CONST + ND -> x; punto[3] = 18*ND -> AY + ND -> y; punto[4] = 10*ND -> AX + CONST + ND -> x; punto[5] = 20*ND -> AY + ND -> y; punto[6] = 0*ND -> AX + CONST + ND -> x; punto[7] = 20*ND -> AY + ND -> y; punto[8] = 2*ND -> AX + CONST + ND -> x; punto[9] = 18*ND -> AY + ND -> y; fillpoly( 5, punto ); break; default: break; } } DnTmp[0] /= 2; DnTmp[1] /= 2; } } } if ( signo != old_signo ) { if ( (old_signo = signo) == 1 ) { setfillstyle(SOLID_FILL, ND -> C1); int punto1[12]; punto1[0] = 1*ND -> AX + ND -> x; punto1[1] = 10*ND -> AY + ND -> y; punto1[2] = 2*ND -> AX + ND -> x; punto1[3] = 9*ND -> AY + ND -> y; punto1[4] = 8*ND -> AX + ND -> x; punto1[5] = 9*ND -> AY + ND -> y; punto1[6] = 9*ND -> AX + ND -> x; punto1[7] = 10*ND -> AY + ND -> y; punto1[8] = 8*ND -> AX + ND -> x; punto1[9] = 11*ND -> AY + ND -> y; punto1[10] = 2*ND -> AX + ND -> x; punto1[11] = 11*ND -> AY +ND -> y; fillpoly( 6, punto1 ); } } vez = 1; return 0; } void Fuente_Amplia( char *Frase, p_graphics *FA ) { // C A R T E L D I G I T A L //*// ( 27 ) - 2 ===> 25 [ Fuente de 8x8 ] //* ^___ El tama¤o ha sido reoptimizado para que sea variable seg£n las //* necesidades de cada programador. ( cuando AX = AY = 1 --> T^ ) //* ........ . . . o . . . . o o o o o o . . //* ........ . . o . o . . . . o . . . . o . //* ........ . o . . . o . . . o . . . . o . //* ........ o . . . . . o . . o o o o o . . //* ........ o o o o o o o . . o . . . . o . //* ........ o . . . . . o . . o . . . . o . //* ........ o . . . . . o . . o . . . o . . //* ........ o . . . . . o . o o o o o . . . //* int i; char j, j1; static char FraseBit[110][8]; static char Frase1[100]; static unsigned int loop; static unsigned int Flen; char c_elec; char bit_s; char *Frase_seg; static char Flen1; Frase_seg = Frase1; if ( strcmp( Frase1, Frase ) != 0 ) { strncpy( Frase1, Frase, 99 ); Frase1[99] = '\0'; j = i = strlen( Frase ); Flen = i * 8; char cont = 0; if ( i < FA -> ndigitos ) i += FA -> ndigitos - i; else i += 5; Flen1 = i; // Almacenamos en la Frase a Bit's la FRASE A BIT'S while( cont <= i ) { // Descomponemos cada caracter en un patron de BIT's if ( (cont - j) > 0 ) { FraseBit[cont][0] = 0x00; FraseBit[cont][1] = 0x00; FraseBit[cont][2] = 0x00; FraseBit[cont][3] = 0x00; FraseBit[cont][4] = 0x00; FraseBit[cont][5] = 0x00; FraseBit[cont][6] = 0x00; FraseBit[cont][7] = 0x00; } else switch( *Frase_seg ) { case 'A': case 'a': FraseBit[cont][0] = 0x10; // 0001 0000; FraseBit[cont][1] = 0x38; // 0011 1000; FraseBit[cont][2] = 0x6C; // 0110 1100; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xFE; // 1111 1110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case 'B': case 'b': FraseBit[cont][0] = 0xFC; // 1111 1100; FraseBit[cont][1] = 0x66; // 0110 0110; FraseBit[cont][2] = 0x6C; // 0110 1100; FraseBit[cont][3] = 0x78; // 0111 1000; FraseBit[cont][4] = 0x6C; // 0110 1100; FraseBit[cont][5] = 0x66; // 0110 0110; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0xFC; // 1111 1100; break; case 'C': case 'c': FraseBit[cont][0] = 0x78; // 0111 1000; FraseBit[cont][1] = 0xCC; // 1100 1100; FraseBit[cont][2] = 0xC0; // 1100 0000; FraseBit[cont][3] = 0xC0; // 1100 0000; FraseBit[cont][4] = 0xC0; // 1100 0000; FraseBit[cont][5] = 0xC0; // 1100 0000; FraseBit[cont][6] = 0xCC; // 1100 1100; FraseBit[cont][7] = 0x78; // 0111 1000; break; case 'D': case 'd': FraseBit[cont][0] = 0xF8; // 1111 1000; FraseBit[cont][1] = 0x6C; // 0110 1100; FraseBit[cont][2] = 0x66; // 0110 0110; FraseBit[cont][3] = 0x66; // 0110 0110; FraseBit[cont][4] = 0x66; // 0110 0110; FraseBit[cont][5] = 0x66; // 0110 0110; FraseBit[cont][6] = 0x6C; // 0110 1100; FraseBit[cont][7] = 0xF8; // 1111 1000; break; case 'E': case 'e': FraseBit[cont][0] = 0xFE; // 1111 1110; FraseBit[cont][1] = 0x66; // 0110 0110; FraseBit[cont][2] = 0x62; // 0110 0010; FraseBit[cont][3] = 0x68; // 0110 1000; FraseBit[cont][4] = 0x78; // 0111 1000; FraseBit[cont][5] = 0x68; // 0110 1010; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0xFE; // 1111 1110; break; case 'F': case 'f': FraseBit[cont][0] = 0xFE; // 1111 1110; FraseBit[cont][1] = 0x66; // 0110 0110; FraseBit[cont][2] = 0x62; // 0110 0010; FraseBit[cont][3] = 0x68; // 0110 1000; FraseBit[cont][4] = 0x78; // 0111 1000; FraseBit[cont][5] = 0x68; // 0110 1000; FraseBit[cont][6] = 0x60; // 0110 0000; FraseBit[cont][7] = 0xF0; // 1111 0000; break; case 'G': case 'g': FraseBit[cont][0] = 0x7C; // 0111 1100; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC2; // 1100 0010; FraseBit[cont][3] = 0xC0; // 1100 0000; FraseBit[cont][4] = 0xDE; // 1101 1110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0x3A; // 0011 1010; break; case 'H': case 'h': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xFE; // 1111 1110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case 'I': case 'i': FraseBit[cont][0] = 0x7E; // 0111 1110; FraseBit[cont][1] = 0x18; // 0001 1000; FraseBit[cont][2] = 0x18; // 0001 1000; FraseBit[cont][3] = 0x18; // 0001 1000; FraseBit[cont][4] = 0x18; // 0001 1000; FraseBit[cont][5] = 0x18; // 0001 1000; FraseBit[cont][6] = 0x18; // 0001 1000; FraseBit[cont][7] = 0x7E; // 0111 1110; break; case 'J': case 'j': FraseBit[cont][0] = 0x1E; // 0001 1110; FraseBit[cont][1] = 0x0C; // 0000 1100; FraseBit[cont][2] = 0x0C; // 0000 1100; FraseBit[cont][3] = 0x0C; // 0000 1100; FraseBit[cont][4] = 0x0C; // 0000 1100; FraseBit[cont][5] = 0xCC; // 1100 1100; FraseBit[cont][6] = 0xCC; // 1100 1100; FraseBit[cont][7] = 0x78; // 0111 1000; break; case 'K': case 'k': FraseBit[cont][0] = 0xE6; // 1110 0110; FraseBit[cont][1] = 0x66; // 0110 0110; FraseBit[cont][2] = 0x6C; // 0110 1100; FraseBit[cont][3] = 0x78; // 0111 1000; FraseBit[cont][4] = 0x6C; // 0110 1100; FraseBit[cont][5] = 0x66; // 0110 0110; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0xE6; // 1110 0110; break; case 'L': case 'l': FraseBit[cont][0] = 0xF0; // 1111 0000; FraseBit[cont][1] = 0x60; // 0110 0000; FraseBit[cont][2] = 0x60; // 0110 0000; FraseBit[cont][3] = 0x60; // 0110 0000; FraseBit[cont][4] = 0x60; // 0110 0000; FraseBit[cont][5] = 0x62; // 0110 0010; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0xFE; // 1111 1110; break; case 'M': case 'm': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xEE; // 1110 1110; FraseBit[cont][2] = 0xD6; // 1101 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case 'N': case 'n': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xE6; // 1110 0110; FraseBit[cont][2] = 0xF6; // 1111 0110; FraseBit[cont][3] = 0xDE; // 1101 1110; FraseBit[cont][4] = 0xCE; // 1100 1110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case '¥': case '¤': FraseBit[cont][0] = 0x64; // 0110 0100; FraseBit[cont][1] = 0x98; // 1001 1000; FraseBit[cont][2] = 0x00; // 0000 0000; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xF6; // 1111 0110; FraseBit[cont][5] = 0xDE; // 1101 1110; FraseBit[cont][6] = 0xCE; // 1100 1110; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case 'O': case 'o': FraseBit[cont][0] = 0x38; // 0011 1000; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x38; // 0011 1000; break; case 'P': case 'p': FraseBit[cont][0] = 0xFC; // 1111 1100; FraseBit[cont][1] = 0x62; // 0110 0010; FraseBit[cont][2] = 0x62; // 0110 0010; FraseBit[cont][3] = 0x7C; // 0111 1100; FraseBit[cont][4] = 0x60; // 0110 0000; FraseBit[cont][5] = 0x60; // 0110 0000; FraseBit[cont][6] = 0x60; // 0110 0000; FraseBit[cont][7] = 0xF0; // 1111 0000; break; case 'Q': case 'q': FraseBit[cont][0] = 0x00; // 0011 1000; FraseBit[cont][1] = 0x00; // 1100 0110; FraseBit[cont][2] = 0x00; // 1100 0110; FraseBit[cont][3] = 0x00; // 1100 0110; FraseBit[cont][4] = 0x00; // 1101 0110; FraseBit[cont][5] = 0x00; // 1101 1110; FraseBit[cont][6] = 0x00; // 0111 1100; FraseBit[cont][7] = 0x00; FraseBit[cont][0] = 0x38; // 0011 1000; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xCE; // 1100 1110; FraseBit[cont][6] = 0x38; // 0011 1000; FraseBit[cont][7] = 0x0E; // 0000 1110; break; case 'R': case 'r': FraseBit[cont][0] = 0xFC; // 1111 1100; FraseBit[cont][1] = 0x62; // 0110 0010; FraseBit[cont][2] = 0x62; // 0110 0010; FraseBit[cont][3] = 0x7C; // 0111 1100; FraseBit[cont][4] = 0x6E; // 0110 1110; FraseBit[cont][5] = 0x66; // 0110 0110; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0xE6; // 1110 0110; break; case 'S': case 's': FraseBit[cont][0] = 0x7C; // 0111 1100; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0x60; // 0110 0000; FraseBit[cont][3] = 0x18; // 0001 1000; FraseBit[cont][4] = 0x0C; // 0000 1100; FraseBit[cont][5] = 0x06; // 0000 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case 'T': case 't': FraseBit[cont][0] = 0xFC; // 1111 1100; FraseBit[cont][1] = 0xB4; // 1011 0100; FraseBit[cont][2] = 0x30; // 0011 0000; FraseBit[cont][3] = 0x30; // 0011 0000; FraseBit[cont][4] = 0x30; // 0011 0000; FraseBit[cont][5] = 0x30; // 0011 0000; FraseBit[cont][6] = 0x30; // 0011 0000; FraseBit[cont][7] = 0x78; // 0111 1000; break; case 'U': case 'u': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case 'V': case 'v': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0x6C; // 0110 1100; FraseBit[cont][6] = 0x38; // 0011 1000; FraseBit[cont][7] = 0x10; // 0001 0000; break; case 'W': case 'w': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xD6; // 1101 0110; FraseBit[cont][5] = 0xD6; // 1101 0110; FraseBit[cont][6] = 0x7C; // 0111 1100; FraseBit[cont][7] = 0x28; // 0010 1000; break; case 'X': case 'x': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0x44; // 0100 0100; FraseBit[cont][2] = 0x6C; // 0110 1100; FraseBit[cont][3] = 0x38; // 0011 1000; FraseBit[cont][4] = 0x38; // 0011 1000; FraseBit[cont][5] = 0x6C; // 0110 1100; FraseBit[cont][6] = 0x44; // 0100 0100; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case 'Y': case 'y': FraseBit[cont][0] = 0xCC; // 1100 1100; FraseBit[cont][1] = 0xCC; // 1100 1100; FraseBit[cont][2] = 0xCC; // 1100 1100; FraseBit[cont][3] = 0x78; // 0111 1000; FraseBit[cont][4] = 0x30; // 0011 0000; FraseBit[cont][5] = 0x30; // 0011 0000; FraseBit[cont][6] = 0x30; // 0011 0000; FraseBit[cont][7] = 0x78; // 0111 1000; break; case 'Z': case 'z': FraseBit[cont][0] = 0xFE; // 1111 1110; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0x8C; // 1000 1100; FraseBit[cont][3] = 0x18; // 0001 1000; FraseBit[cont][4] = 0x30; // 0011 0000; FraseBit[cont][5] = 0x62; // 0110 0010; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0xFE; // 1111 1110; break; case '0': FraseBit[cont][0] = 0x38; // 0011 1000; FraseBit[cont][1] = 0xCE; // 1100 1110; FraseBit[cont][2] = 0xCE; // 1100 1110; FraseBit[cont][3] = 0xD6; // 1101 0110; FraseBit[cont][4] = 0xD6; // 1101 0110; FraseBit[cont][5] = 0xE6; // 1110 0110; FraseBit[cont][6] = 0xE6; // 1110 0110; FraseBit[cont][7] = 0x38; // 0011 1000; break; case '1': FraseBit[cont][0] = 0x0C; // 0000 1100; FraseBit[cont][1] = 0x1C; // 0001 1100; FraseBit[cont][2] = 0x3C; // 0011 1100; FraseBit[cont][3] = 0x0C; // 0000 1100; FraseBit[cont][4] = 0x0C; // 0000 1100; FraseBit[cont][5] = 0x0C; // 0000 1100; FraseBit[cont][6] = 0x0C; // 0000 1100; FraseBit[cont][7] = 0x1E; // 0001 1110; break; case '2': FraseBit[cont][0] = 0x78; // 0111 1000; FraseBit[cont][1] = 0xCC; // 1100 1100; FraseBit[cont][2] = 0x06; // 0000 0110; FraseBit[cont][3] = 0x0C; // 0000 1100; FraseBit[cont][4] = 0x18; // 0001 1000; FraseBit[cont][5] = 0x30; // 0011 0000; FraseBit[cont][6] = 0x60; // 0110 0000; FraseBit[cont][7] = 0x7E; // 0111 1110; break; case '3': FraseBit[cont][0] = 0x78; // 0111 1000; FraseBit[cont][1] = 0xCC; // 1100 1100; FraseBit[cont][2] = 0x06; // 0000 0110; FraseBit[cont][3] = 0x0C; // 0000 1100; FraseBit[cont][4] = 0x18; // 0001 1000; FraseBit[cont][5] = 0x0C; // 0000 1100; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case '4': FraseBit[cont][0] = 0x0C; // 0000 1100; FraseBit[cont][1] = 0x1C; // 0001 1100; FraseBit[cont][2] = 0x2C; // 0010 1100; FraseBit[cont][3] = 0x4C; // 0100 1100; FraseBit[cont][4] = 0xFE; // 1111 1110; FraseBit[cont][5] = 0x0C; // 0000 1100; FraseBit[cont][6] = 0x0C; // 0000 1100; FraseBit[cont][7] = 0x1E; // 0001 1110; break; case '5': FraseBit[cont][0] = 0xFE; // 1111 1110; FraseBit[cont][1] = 0xC0; // 1100 0000; FraseBit[cont][2] = 0xC0; // 1100 0000; FraseBit[cont][3] = 0xF8; // 1111 1000; FraseBit[cont][4] = 0x0C; // 0000 1100; FraseBit[cont][5] = 0x06; // 0000 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case '6': FraseBit[cont][0] = 0x3E; // 0011 1110; FraseBit[cont][1] = 0x60; // 0110 0000; FraseBit[cont][2] = 0xC0; // 1100 0000; FraseBit[cont][3] = 0xFC; // 1111 1100; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case '8': FraseBit[cont][0] = 0x7C; // 0111 1100; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0x7C; // 0111 1100; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case '9': FraseBit[cont][0] = 0x7C; // 0111 1100; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0x7E; // 0111 1110; FraseBit[cont][4] = 0x06; // 0000 0110; FraseBit[cont][5] = 0x06; // 0000 0110; FraseBit[cont][6] = 0x0C; // 0000 1100; FraseBit[cont][7] = 0x78; // 0111 1000; break; case '*': FraseBit[cont][0] = 0x00; // 0000 0000; FraseBit[cont][1] = 0x18; // 0001 1000; FraseBit[cont][2] = 0x5A; // 0101 1010; FraseBit[cont][3] = 0x3C; // 0011 1100; FraseBit[cont][4] = 0x7E; // 0111 1110; FraseBit[cont][5] = 0x3C; // 0011 1100; FraseBit[cont][6] = 0x5A; // 0101 1010; FraseBit[cont][7] = 0x18; // 0001 1000; break; case '-': FraseBit[cont][0] = 0x00; // 0000 0000; FraseBit[cont][1] = 0x00; // 0000 0000; FraseBit[cont][2] = 0x00; // 0000 0000; FraseBit[cont][3] = 0xFE; // 1111 1110; FraseBit[cont][4] = 0xFE; // 1111 1110; FraseBit[cont][5] = 0x00; // 0000 0000; FraseBit[cont][6] = 0x00; // 0000 0000; FraseBit[cont][7] = 0x00; // 0000 0000; break; case '_': FraseBit[cont][0] = 0x00; // 0000 0000; FraseBit[cont][1] = 0x00; // 0000 0000; FraseBit[cont][2] = 0x00; // 0000 0000; FraseBit[cont][3] = 0x00; // 0000 0000; FraseBit[cont][4] = 0x00; // 0000 0000; FraseBit[cont][5] = 0x00; // 0000 0000; FraseBit[cont][6] = 0xFE; // 1111 1110; FraseBit[cont][7] = 0xFE; // 1111 1110; break; case '+': FraseBit[cont][0] = 0x00; // 0000 0000; FraseBit[cont][1] = 0x18; // 0001 1000; FraseBit[cont][2] = 0x18; // 0001 1000; FraseBit[cont][3] = 0xFE; // 1111 1110; FraseBit[cont][4] = 0xFE; // 1111 1110; FraseBit[cont][5] = 0x18; // 0001 1000; FraseBit[cont][6] = 0x18; // 0001 1000; FraseBit[cont][7] = 0x00; // 0000 0000; break; case '<': case '(': FraseBit[cont][0] = 0x18; // 0001 1000; FraseBit[cont][1] = 0x30; // 0011 0000; FraseBit[cont][2] = 0x60; // 0110 0000; FraseBit[cont][3] = 0xC0; // 1100 0000; FraseBit[cont][4] = 0xC0; // 1100 0000; FraseBit[cont][5] = 0x60; // 0110 0000; FraseBit[cont][6] = 0x30; // 0011 0000; FraseBit[cont][7] = 0x18; // 0001 1000; break; case '>': case ')': FraseBit[cont][0] = 0x18; // 0001 1000; FraseBit[cont][1] = 0x0C; // 0000 1100; FraseBit[cont][2] = 0x06; // 0000 0110; FraseBit[cont][3] = 0x03; // 0000 0011; FraseBit[cont][4] = 0x03; // 0000 0011; FraseBit[cont][5] = 0x06; // 0000 0110; FraseBit[cont][6] = 0x0C; // 0000 1100; FraseBit[cont][7] = 0x18; // 0001 1000; break; case ':': case ';': FraseBit[cont][0] = 0x00; // 0000 0000; FraseBit[cont][1] = 0x30; // 0011 0000; FraseBit[cont][2] = 0x30; // 0011 0000; FraseBit[cont][3] = 0x00; // 0000 0000; FraseBit[cont][4] = 0x00; // 0000 0000; FraseBit[cont][5] = 0x30; // 0011 0000; FraseBit[cont][6] = 0x30; // 0011 0000; FraseBit[cont][7] = 0x00; // 0000 0000; break; case '\'': FraseBit[cont][0] = 0x0C; // 0000 1100; FraseBit[cont][1] = 0x0C; // 0000 1100; FraseBit[cont][2] = 0x0C; // 0000 1100; FraseBit[cont][3] = 0x10; // 0001 1000; FraseBit[cont][4] = 0x00; // 0000 0000; FraseBit[cont][5] = 0x00; // 0000 0000; FraseBit[cont][6] = 0x00; // 0000 0000; FraseBit[cont][7] = 0x00; // 0000 0000; break; case '\\': FraseBit[cont][0] = 0xD0; // 1100 0000; FraseBit[cont][1] = 0x60; // 0110 0000; FraseBit[cont][2] = 0x30; // 0011 0000; FraseBit[cont][3] = 0x18; // 0001 1000; FraseBit[cont][4] = 0x0D; // 0000 1100; FraseBit[cont][5] = 0x06; // 0000 0110; FraseBit[cont][6] = 0x03; // 0000 0011; FraseBit[cont][7] = 0x00; // 0000 0000; break; case '/': FraseBit[cont][0] = 0x03; // 0000 0011; FraseBit[cont][1] = 0x06; // 0000 0110; FraseBit[cont][2] = 0x0D; // 0000 1100; FraseBit[cont][3] = 0x18; // 0001 1000; FraseBit[cont][4] = 0x30; // 0011 0000; FraseBit[cont][5] = 0x60; // 0110 0000; FraseBit[cont][6] = 0xD0; // 1100 0000; FraseBit[cont][7] = 0x00; // 0000 0000; break; case '|': FraseBit[cont][0] = 0x18; // 0001 1000; FraseBit[cont][1] = 0x18; // 0001 1000; FraseBit[cont][2] = 0x18; // 0001 1000; FraseBit[cont][3] = 0x18; // 0001 1000; FraseBit[cont][4] = 0x18; // 0001 1000; FraseBit[cont][5] = 0x18; // 0001 1000; FraseBit[cont][6] = 0x18; // 0001 1000; FraseBit[cont][7] = 0x00; // 0000 0000; break; default: FraseBit[cont][0] = 0x00; FraseBit[cont][1] = 0x00; FraseBit[cont][2] = 0x00; FraseBit[cont][3] = 0x00; FraseBit[cont][4] = 0x00; FraseBit[cont][5] = 0x00; FraseBit[cont][6] = 0x00; FraseBit[cont][7] = 0x00; break; } cont++; Frase_seg++; } } else { // Rotamos la frase char FrBit_tmp[8]; // Almacenamos el 1er bit que vamos a perder... for ( j1=0; j1<8; j1++ ) FrBit_tmp[j1] = 0x01 & ( FraseBit[0][j1] >> 7 ); for ( j=0; j> 7 ) ); } for ( j1=0; j1<8; j1++ ) FraseBit[Flen1-1][j1] = ( FraseBit[Flen1-1][j1] & 0xFE ) | FrBit_tmp[j1]; } // ndigitos --> m x. = 40 for ( i=0; i < FA->ndigitos; i ++ ) { for ( j=0, j1=0; j1<8; j+=2*FA->AX, j1++ ) { // Analizamos el patron de BIT's y lo imprimimos // FraseBit[cont][0] // ^ ^----- N£mero de byte del digito ( 8x8 ) // |_________ N£mero de digito alfa-numerico for ( bit_s = 0; bit_s < 8; bit_s++ ) { if ( FraseBit[i][bit_s] & ( (char)0x01 << (7-j1) ) ) c_elec = FA->C2; else c_elec = FA->C1; putpixel ( FA->x + j + i*8*2*FA->AX, FA->y + 2*bit_s*FA->AY, c_elec ); } } } } //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// void Fuente_Amplia2( char *Frase, p_graphics *FA ) { // C A R T E L D I G I T A L //*// ( 27 ) - 2 ===> 25 [ Fuente de 8x8 ] //* ^___ El tama¤o ha sido reoptimizado para que sea variable seg£n las //* necesidades de cada programador. ( cuando AX = AY = 1 --> T^ ) //* ........ . . . o . . . . o o o o o o . . //* ........ . . o . o . . . . o . . . . o . //* ........ . o . . . o . . . o . . . . o . //* ........ o . . . . . o . . o o o o o . . //* ........ o o o o o o o . . o . . . . o . //* ........ o . . . . . o . . o . . . . o . //* ........ o . . . . . o . . o . . . o . . //* ........ o . . . . . o . o o o o o . . . //* int i; char j, j1; static char FraseBit[110][8]; static char Frase1[100]; static unsigned int loop; static unsigned int Flen; char c_elec; char bit_s; char *Frase_seg; static char Flen1; Frase_seg = Frase1; if ( strcmp( Frase1, Frase ) != 0 ) { strncpy( Frase1, Frase, 99 ); Frase1[99] = '\0'; j = i = strlen( Frase ); Flen = i * 8; char cont = 0; if ( i < FA -> ndigitos ) i += FA -> ndigitos - i; else i += 5; Flen1 = i; // Almacenamos en la Frase a Bit's la FRASE A BIT'S while( cont <= i ) { // Descomponemos cada caracter en un patron de BIT's if ( (cont - j) > 0 ) { FraseBit[cont][0] = 0x00; FraseBit[cont][1] = 0x00; FraseBit[cont][2] = 0x00; FraseBit[cont][3] = 0x00; FraseBit[cont][4] = 0x00; FraseBit[cont][5] = 0x00; FraseBit[cont][6] = 0x00; FraseBit[cont][7] = 0x00; } else switch( *Frase_seg ) { case 'A': case 'a': FraseBit[cont][0] = 0x10; // 0001 0000; FraseBit[cont][1] = 0x38; // 0011 1000; FraseBit[cont][2] = 0x6C; // 0110 1100; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xFE; // 1111 1110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case 'B': case 'b': FraseBit[cont][0] = 0xFC; // 1111 1100; FraseBit[cont][1] = 0x66; // 0110 0110; FraseBit[cont][2] = 0x6C; // 0110 1100; FraseBit[cont][3] = 0x78; // 0111 1000; FraseBit[cont][4] = 0x6C; // 0110 1100; FraseBit[cont][5] = 0x66; // 0110 0110; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0xFC; // 1111 1100; break; case 'C': case 'c': FraseBit[cont][0] = 0x78; // 0111 1000; FraseBit[cont][1] = 0xCC; // 1100 1100; FraseBit[cont][2] = 0xC0; // 1100 0000; FraseBit[cont][3] = 0xC0; // 1100 0000; FraseBit[cont][4] = 0xC0; // 1100 0000; FraseBit[cont][5] = 0xC0; // 1100 0000; FraseBit[cont][6] = 0xCC; // 1100 1100; FraseBit[cont][7] = 0x78; // 0111 1000; break; case 'D': case 'd': FraseBit[cont][0] = 0xF8; // 1111 1000; FraseBit[cont][1] = 0x6C; // 0110 1100; FraseBit[cont][2] = 0x66; // 0110 0110; FraseBit[cont][3] = 0x66; // 0110 0110; FraseBit[cont][4] = 0x66; // 0110 0110; FraseBit[cont][5] = 0x66; // 0110 0110; FraseBit[cont][6] = 0x6C; // 0110 1100; FraseBit[cont][7] = 0xF8; // 1111 1000; break; case 'E': case 'e': FraseBit[cont][0] = 0xFE; // 1111 1110; FraseBit[cont][1] = 0x66; // 0110 0110; FraseBit[cont][2] = 0x62; // 0110 0010; FraseBit[cont][3] = 0x68; // 0110 1000; FraseBit[cont][4] = 0x78; // 0111 1000; FraseBit[cont][5] = 0x68; // 0110 1010; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0xFE; // 1111 1110; break; case 'F': case 'f': FraseBit[cont][0] = 0xFE; // 1111 1110; FraseBit[cont][1] = 0x66; // 0110 0110; FraseBit[cont][2] = 0x62; // 0110 0010; FraseBit[cont][3] = 0x68; // 0110 1000; FraseBit[cont][4] = 0x78; // 0111 1000; FraseBit[cont][5] = 0x68; // 0110 1000; FraseBit[cont][6] = 0x60; // 0110 0000; FraseBit[cont][7] = 0xF0; // 1111 0000; break; case 'G': case 'g': FraseBit[cont][0] = 0x7C; // 0111 1100; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC2; // 1100 0010; FraseBit[cont][3] = 0xC0; // 1100 0000; FraseBit[cont][4] = 0xDE; // 1101 1110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0x3A; // 0011 1010; break; case 'H': case 'h': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xFE; // 1111 1110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case 'I': case 'i': FraseBit[cont][0] = 0x7E; // 0111 1110; FraseBit[cont][1] = 0x18; // 0001 1000; FraseBit[cont][2] = 0x18; // 0001 1000; FraseBit[cont][3] = 0x18; // 0001 1000; FraseBit[cont][4] = 0x18; // 0001 1000; FraseBit[cont][5] = 0x18; // 0001 1000; FraseBit[cont][6] = 0x18; // 0001 1000; FraseBit[cont][7] = 0x7E; // 0111 1110; break; case 'J': case 'j': FraseBit[cont][0] = 0x1E; // 0001 1110; FraseBit[cont][1] = 0x0C; // 0000 1100; FraseBit[cont][2] = 0x0C; // 0000 1100; FraseBit[cont][3] = 0x0C; // 0000 1100; FraseBit[cont][4] = 0x0C; // 0000 1100; FraseBit[cont][5] = 0xCC; // 1100 1100; FraseBit[cont][6] = 0xCC; // 1100 1100; FraseBit[cont][7] = 0x78; // 0111 1000; break; case 'K': case 'k': FraseBit[cont][0] = 0xE6; // 1110 0110; FraseBit[cont][1] = 0x66; // 0110 0110; FraseBit[cont][2] = 0x6C; // 0110 1100; FraseBit[cont][3] = 0x78; // 0111 1000; FraseBit[cont][4] = 0x6C; // 0110 1100; FraseBit[cont][5] = 0x66; // 0110 0110; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0xE6; // 1110 0110; break; case 'L': case 'l': FraseBit[cont][0] = 0xF0; // 1111 0000; FraseBit[cont][1] = 0x60; // 0110 0000; FraseBit[cont][2] = 0x60; // 0110 0000; FraseBit[cont][3] = 0x60; // 0110 0000; FraseBit[cont][4] = 0x60; // 0110 0000; FraseBit[cont][5] = 0x62; // 0110 0010; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0xFE; // 1111 1110; break; case 'M': case 'm': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xEE; // 1110 1110; FraseBit[cont][2] = 0xD6; // 1101 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case 'N': case 'n': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xE6; // 1110 0110; FraseBit[cont][2] = 0xF6; // 1111 0110; FraseBit[cont][3] = 0xDE; // 1101 1110; FraseBit[cont][4] = 0xCE; // 1100 1110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case '¥': case '¤': FraseBit[cont][0] = 0x64; // 0110 0100; FraseBit[cont][1] = 0x98; // 1001 1000; FraseBit[cont][2] = 0x00; // 0000 0000; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xF6; // 1111 0110; FraseBit[cont][5] = 0xDE; // 1101 1110; FraseBit[cont][6] = 0xCE; // 1100 1110; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case 'O': case 'o': FraseBit[cont][0] = 0x38; // 0011 1000; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x38; // 0011 1000; break; case 'P': case 'p': FraseBit[cont][0] = 0xFC; // 1111 1100; FraseBit[cont][1] = 0x62; // 0110 0010; FraseBit[cont][2] = 0x62; // 0110 0010; FraseBit[cont][3] = 0x7C; // 0111 1100; FraseBit[cont][4] = 0x60; // 0110 0000; FraseBit[cont][5] = 0x60; // 0110 0000; FraseBit[cont][6] = 0x60; // 0110 0000; FraseBit[cont][7] = 0xF0; // 1111 0000; break; case 'Q': case 'q': FraseBit[cont][0] = 0x00; // 0011 1000; FraseBit[cont][1] = 0x00; // 1100 0110; FraseBit[cont][2] = 0x00; // 1100 0110; FraseBit[cont][3] = 0x00; // 1100 0110; FraseBit[cont][4] = 0x00; // 1101 0110; FraseBit[cont][5] = 0x00; // 1101 1110; FraseBit[cont][6] = 0x00; // 0111 1100; FraseBit[cont][7] = 0x00; FraseBit[cont][0] = 0x38; // 0011 1000; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xCE; // 1100 1110; FraseBit[cont][6] = 0x38; // 0011 1000; FraseBit[cont][7] = 0x0E; // 0000 1110; break; case 'R': case 'r': FraseBit[cont][0] = 0xFC; // 1111 1100; FraseBit[cont][1] = 0x62; // 0110 0010; FraseBit[cont][2] = 0x62; // 0110 0010; FraseBit[cont][3] = 0x7C; // 0111 1100; FraseBit[cont][4] = 0x6E; // 0110 1110; FraseBit[cont][5] = 0x66; // 0110 0110; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0xE6; // 1110 0110; break; case 'S': case 's': FraseBit[cont][0] = 0x7C; // 0111 1100; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0x60; // 0110 0000; FraseBit[cont][3] = 0x18; // 0001 1000; FraseBit[cont][4] = 0x0C; // 0000 1100; FraseBit[cont][5] = 0x06; // 0000 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case 'T': case 't': FraseBit[cont][0] = 0xFC; // 1111 1100; FraseBit[cont][1] = 0xB4; // 1011 0100; FraseBit[cont][2] = 0x30; // 0011 0000; FraseBit[cont][3] = 0x30; // 0011 0000; FraseBit[cont][4] = 0x30; // 0011 0000; FraseBit[cont][5] = 0x30; // 0011 0000; FraseBit[cont][6] = 0x30; // 0011 0000; FraseBit[cont][7] = 0x78; // 0111 1000; break; case 'U': case 'u': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case 'V': case 'v': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0x6C; // 0110 1100; FraseBit[cont][6] = 0x38; // 0011 1000; FraseBit[cont][7] = 0x10; // 0001 0000; break; case 'W': case 'w': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xD6; // 1101 0110; FraseBit[cont][5] = 0xD6; // 1101 0110; FraseBit[cont][6] = 0x7C; // 0111 1100; FraseBit[cont][7] = 0x28; // 0010 1000; break; case 'X': case 'x': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0x44; // 0100 0100; FraseBit[cont][2] = 0x6C; // 0110 1100; FraseBit[cont][3] = 0x38; // 0011 1000; FraseBit[cont][4] = 0x38; // 0011 1000; FraseBit[cont][5] = 0x6C; // 0110 1100; FraseBit[cont][6] = 0x44; // 0100 0100; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case 'Y': case 'y': FraseBit[cont][0] = 0xCC; // 1100 1100; FraseBit[cont][1] = 0xCC; // 1100 1100; FraseBit[cont][2] = 0xCC; // 1100 1100; FraseBit[cont][3] = 0x78; // 0111 1000; FraseBit[cont][4] = 0x30; // 0011 0000; FraseBit[cont][5] = 0x30; // 0011 0000; FraseBit[cont][6] = 0x30; // 0011 0000; FraseBit[cont][7] = 0x78; // 0111 1000; break; case 'Z': case 'z': FraseBit[cont][0] = 0xFE; // 1111 1110; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0x8C; // 1000 1100; FraseBit[cont][3] = 0x18; // 0001 1000; FraseBit[cont][4] = 0x30; // 0011 0000; FraseBit[cont][5] = 0x62; // 0110 0010; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0xFE; // 1111 1110; break; case '0': FraseBit[cont][0] = 0x38; // 0011 1000; FraseBit[cont][1] = 0xCE; // 1100 1110; FraseBit[cont][2] = 0xCE; // 1100 1110; FraseBit[cont][3] = 0xD6; // 1101 0110; FraseBit[cont][4] = 0xD6; // 1101 0110; FraseBit[cont][5] = 0xE6; // 1110 0110; FraseBit[cont][6] = 0xE6; // 1110 0110; FraseBit[cont][7] = 0x38; // 0011 1000; break; case '1': FraseBit[cont][0] = 0x0C; // 0000 1100; FraseBit[cont][1] = 0x1C; // 0001 1100; FraseBit[cont][2] = 0x3C; // 0011 1100; FraseBit[cont][3] = 0x0C; // 0000 1100; FraseBit[cont][4] = 0x0C; // 0000 1100; FraseBit[cont][5] = 0x0C; // 0000 1100; FraseBit[cont][6] = 0x0C; // 0000 1100; FraseBit[cont][7] = 0x1E; // 0001 1110; break; case '2': FraseBit[cont][0] = 0x78; // 0111 1000; FraseBit[cont][1] = 0xCC; // 1100 1100; FraseBit[cont][2] = 0x06; // 0000 0110; FraseBit[cont][3] = 0x0C; // 0000 1100; FraseBit[cont][4] = 0x18; // 0001 1000; FraseBit[cont][5] = 0x30; // 0011 0000; FraseBit[cont][6] = 0x60; // 0110 0000; FraseBit[cont][7] = 0x7E; // 0111 1110; break; case '3': FraseBit[cont][0] = 0x78; // 0111 1000; FraseBit[cont][1] = 0xCC; // 1100 1100; FraseBit[cont][2] = 0x06; // 0000 0110; FraseBit[cont][3] = 0x0C; // 0000 1100; FraseBit[cont][4] = 0x18; // 0001 1000; FraseBit[cont][5] = 0x0C; // 0000 1100; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case '4': FraseBit[cont][0] = 0x0C; // 0000 1100; FraseBit[cont][1] = 0x1C; // 0001 1100; FraseBit[cont][2] = 0x2C; // 0010 1100; FraseBit[cont][3] = 0x4C; // 0100 1100; FraseBit[cont][4] = 0xFE; // 1111 1110; FraseBit[cont][5] = 0x0C; // 0000 1100; FraseBit[cont][6] = 0x0C; // 0000 1100; FraseBit[cont][7] = 0x1E; // 0001 1110; break; case '5': FraseBit[cont][0] = 0xFE; // 1111 1110; FraseBit[cont][1] = 0xC0; // 1100 0000; FraseBit[cont][2] = 0xC0; // 1100 0000; FraseBit[cont][3] = 0xF8; // 1111 1000; FraseBit[cont][4] = 0x0C; // 0000 1100; FraseBit[cont][5] = 0x06; // 0000 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case '6': FraseBit[cont][0] = 0x3E; // 0011 1110; FraseBit[cont][1] = 0x60; // 0110 0000; FraseBit[cont][2] = 0xC0; // 1100 0000; FraseBit[cont][3] = 0xFC; // 1111 1100; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case '8': FraseBit[cont][0] = 0x7C; // 0111 1100; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0x7C; // 0111 1100; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case '9': FraseBit[cont][0] = 0x7C; // 0111 1100; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0x7E; // 0111 1110; FraseBit[cont][4] = 0x06; // 0000 0110; FraseBit[cont][5] = 0x06; // 0000 0110; FraseBit[cont][6] = 0x0C; // 0000 1100; FraseBit[cont][7] = 0x78; // 0111 1000; break; case '*': FraseBit[cont][0] = 0x00; // 0000 0000; FraseBit[cont][1] = 0x18; // 0001 1000; FraseBit[cont][2] = 0x5A; // 0101 1010; FraseBit[cont][3] = 0x3C; // 0011 1100; FraseBit[cont][4] = 0x7E; // 0111 1110; FraseBit[cont][5] = 0x3C; // 0011 1100; FraseBit[cont][6] = 0x5A; // 0101 1010; FraseBit[cont][7] = 0x18; // 0001 1000; break; case '-': FraseBit[cont][0] = 0x00; // 0000 0000; FraseBit[cont][1] = 0x00; // 0000 0000; FraseBit[cont][2] = 0x00; // 0000 0000; FraseBit[cont][3] = 0xFE; // 1111 1110; FraseBit[cont][4] = 0xFE; // 1111 1110; FraseBit[cont][5] = 0x00; // 0000 0000; FraseBit[cont][6] = 0x00; // 0000 0000; FraseBit[cont][7] = 0x00; // 0000 0000; break; case '_': FraseBit[cont][0] = 0x00; // 0000 0000; FraseBit[cont][1] = 0x00; // 0000 0000; FraseBit[cont][2] = 0x00; // 0000 0000; FraseBit[cont][3] = 0x00; // 0000 0000; FraseBit[cont][4] = 0x00; // 0000 0000; FraseBit[cont][5] = 0x00; // 0000 0000; FraseBit[cont][6] = 0xFE; // 1111 1110; FraseBit[cont][7] = 0xFE; // 1111 1110; break; case '+': FraseBit[cont][0] = 0x00; // 0000 0000; FraseBit[cont][1] = 0x18; // 0001 1000; FraseBit[cont][2] = 0x18; // 0001 1000; FraseBit[cont][3] = 0xFE; // 1111 1110; FraseBit[cont][4] = 0xFE; // 1111 1110; FraseBit[cont][5] = 0x18; // 0001 1000; FraseBit[cont][6] = 0x18; // 0001 1000; FraseBit[cont][7] = 0x00; // 0000 0000; break; case '<': case '(': FraseBit[cont][0] = 0x18; // 0001 1000; FraseBit[cont][1] = 0x30; // 0011 0000; FraseBit[cont][2] = 0x60; // 0110 0000; FraseBit[cont][3] = 0xC0; // 1100 0000; FraseBit[cont][4] = 0xC0; // 1100 0000; FraseBit[cont][5] = 0x60; // 0110 0000; FraseBit[cont][6] = 0x30; // 0011 0000; FraseBit[cont][7] = 0x18; // 0001 1000; break; case '>': case ')': FraseBit[cont][0] = 0x18; // 0001 1000; FraseBit[cont][1] = 0x0C; // 0000 1100; FraseBit[cont][2] = 0x06; // 0000 0110; FraseBit[cont][3] = 0x03; // 0000 0011; FraseBit[cont][4] = 0x03; // 0000 0011; FraseBit[cont][5] = 0x06; // 0000 0110; FraseBit[cont][6] = 0x0C; // 0000 1100; FraseBit[cont][7] = 0x18; // 0001 1000; break; case ':': case ';': FraseBit[cont][0] = 0x00; // 0000 0000; FraseBit[cont][1] = 0x30; // 0011 0000; FraseBit[cont][2] = 0x30; // 0011 0000; FraseBit[cont][3] = 0x00; // 0000 0000; FraseBit[cont][4] = 0x00; // 0000 0000; FraseBit[cont][5] = 0x30; // 0011 0000; FraseBit[cont][6] = 0x30; // 0011 0000; FraseBit[cont][7] = 0x00; // 0000 0000; break; case '\'': FraseBit[cont][0] = 0x0C; // 0000 1100; FraseBit[cont][1] = 0x0C; // 0000 1100; FraseBit[cont][2] = 0x0C; // 0000 1100; FraseBit[cont][3] = 0x10; // 0001 1000; FraseBit[cont][4] = 0x00; // 0000 0000; FraseBit[cont][5] = 0x00; // 0000 0000; FraseBit[cont][6] = 0x00; // 0000 0000; FraseBit[cont][7] = 0x00; // 0000 0000; break; default: FraseBit[cont][0] = 0x00; FraseBit[cont][1] = 0x00; FraseBit[cont][2] = 0x00; FraseBit[cont][3] = 0x00; FraseBit[cont][4] = 0x00; FraseBit[cont][5] = 0x00; FraseBit[cont][6] = 0x00; FraseBit[cont][7] = 0x00; break; } cont++; Frase_seg++; } } else { // Rotamos la frase char FrBit_tmp[8]; // Almacenamos el 1er bit que vamos a perder... for ( j1=0; j1<8; j1++ ) FrBit_tmp[j1] = 0x01 & ( FraseBit[0][j1] >> 7 ); for ( j=0; j> 7 ) ); } for ( j1=0; j1<8; j1++ ) FraseBit[Flen1-1][j1] = ( FraseBit[Flen1-1][j1] & 0xFE ) | FrBit_tmp[j1]; } // . . . . . . // .ï ï. .ï ï. .ï ï. // . . . . . // __________.________________________.______________________.______________ // . . . . . . // . . . . . . // ' .. ' ' .. ' ' .. ' // // . . // . ï ï . // . . // ____________________._____________________.______________________________ // . . ` ï // . . ` ï // . . ` ï // . . . ` ï // ` . . ï // ndigitos --> m x. = 40 //float i1; int i1; for ( i=0, i1=2; i < FA->ndigitos; i ++ ) { for ( j=0, j1=0; j1<8; j+=2*FA->AX, j1++ ) { // Analizamos el patron de BIT's y lo imprimimos // FraseBit[cont][0] // ^ ^----- N£mero de byte del digito ( 8x8 ) // |_________ N£mero de digito alfa-numerico for ( bit_s = 0; bit_s < 8; bit_s++, i1++/*+=.02*/ ) { if ( FraseBit[i][bit_s] & ( (char)0x01 << (7-j1) ) ) c_elec = FA->C2; else c_elec = FA->C1; //putpixel ( FA->x + j + bit_s*2 + i*8*2*FA->AX, FA->y + sin( i1 )*20 + 2*bit_s*FA->AY, c_elec ); putpixel ( FA->x + j - bit_s*2+(TabS[ (i+bit_s+j/*bit_s*/) % 255 ]-90) + i*8*2*FA->AX, FA->y - 100 +/* sin( i1 )*20*/TabS[i1 % 255] + 2*bit_s*FA->AY, c_elec ); } //y--> TabS[(i+j+bit_s) MOD FLen1] //x--> } } } //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// void Fuente_Amplia3( char *Frase, p_graphics *FA ) { int i; char j, j1; static char FraseBit[110][8]; static char Frase1[100]; static unsigned int loop; static unsigned int Flen; char c_elec; char bit_s; char *Frase_seg; static char Flen1; Frase_seg = Frase1; if ( strcmp( Frase1, Frase ) != 0 ) { strncpy( Frase1, Frase, 99 ); Frase1[99] = '\0'; j = i = strlen( Frase ); Flen = i * 8; char cont = 0; if ( i < FA -> ndigitos ) i += FA -> ndigitos - i; else i += 5; Flen1 = i; // Almacenamos en la Frase a Bit's la FRASE A BIT'S while( cont <= i ) { // Descomponemos cada caracter en un patron de BIT's if ( (cont - j) > 0 ) { FraseBit[cont][0] = 0x00; FraseBit[cont][1] = 0x00; FraseBit[cont][2] = 0x00; FraseBit[cont][3] = 0x00; FraseBit[cont][4] = 0x00; FraseBit[cont][5] = 0x00; FraseBit[cont][6] = 0x00; FraseBit[cont][7] = 0x00; } else switch( *Frase_seg ) { case 'A': case 'a': FraseBit[cont][0] = 0x10; // 0001 0000; FraseBit[cont][1] = 0x38; // 0011 1000; FraseBit[cont][2] = 0x6C; // 0110 1100; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xFE; // 1111 1110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case 'B': case 'b': FraseBit[cont][0] = 0xFC; // 1111 1100; FraseBit[cont][1] = 0x66; // 0110 0110; FraseBit[cont][2] = 0x6C; // 0110 1100; FraseBit[cont][3] = 0x78; // 0111 1000; FraseBit[cont][4] = 0x6C; // 0110 1100; FraseBit[cont][5] = 0x66; // 0110 0110; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0xFC; // 1111 1100; break; case 'C': case 'c': FraseBit[cont][0] = 0x78; // 0111 1000; FraseBit[cont][1] = 0xCC; // 1100 1100; FraseBit[cont][2] = 0xC0; // 1100 0000; FraseBit[cont][3] = 0xC0; // 1100 0000; FraseBit[cont][4] = 0xC0; // 1100 0000; FraseBit[cont][5] = 0xC0; // 1100 0000; FraseBit[cont][6] = 0xCC; // 1100 1100; FraseBit[cont][7] = 0x78; // 0111 1000; break; case 'D': case 'd': FraseBit[cont][0] = 0xF8; // 1111 1000; FraseBit[cont][1] = 0x6C; // 0110 1100; FraseBit[cont][2] = 0x66; // 0110 0110; FraseBit[cont][3] = 0x66; // 0110 0110; FraseBit[cont][4] = 0x66; // 0110 0110; FraseBit[cont][5] = 0x66; // 0110 0110; FraseBit[cont][6] = 0x6C; // 0110 1100; FraseBit[cont][7] = 0xF8; // 1111 1000; break; case 'E': case 'e': FraseBit[cont][0] = 0xFE; // 1111 1110; FraseBit[cont][1] = 0x66; // 0110 0110; FraseBit[cont][2] = 0x62; // 0110 0010; FraseBit[cont][3] = 0x68; // 0110 1000; FraseBit[cont][4] = 0x78; // 0111 1000; FraseBit[cont][5] = 0x68; // 0110 1010; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0xFE; // 1111 1110; break; case 'F': case 'f': FraseBit[cont][0] = 0xFE; // 1111 1110; FraseBit[cont][1] = 0x66; // 0110 0110; FraseBit[cont][2] = 0x62; // 0110 0010; FraseBit[cont][3] = 0x68; // 0110 1000; FraseBit[cont][4] = 0x78; // 0111 1000; FraseBit[cont][5] = 0x68; // 0110 1000; FraseBit[cont][6] = 0x60; // 0110 0000; FraseBit[cont][7] = 0xF0; // 1111 0000; break; case 'G': case 'g': FraseBit[cont][0] = 0x7C; // 0111 1100; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC2; // 1100 0010; FraseBit[cont][3] = 0xC0; // 1100 0000; FraseBit[cont][4] = 0xDE; // 1101 1110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0x3A; // 0011 1010; break; case 'H': case 'h': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xFE; // 1111 1110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case 'I': case 'i': FraseBit[cont][0] = 0x7E; // 0111 1110; FraseBit[cont][1] = 0x18; // 0001 1000; FraseBit[cont][2] = 0x18; // 0001 1000; FraseBit[cont][3] = 0x18; // 0001 1000; FraseBit[cont][4] = 0x18; // 0001 1000; FraseBit[cont][5] = 0x18; // 0001 1000; FraseBit[cont][6] = 0x18; // 0001 1000; FraseBit[cont][7] = 0x7E; // 0111 1110; break; case 'J': case 'j': FraseBit[cont][0] = 0x1E; // 0001 1110; FraseBit[cont][1] = 0x0C; // 0000 1100; FraseBit[cont][2] = 0x0C; // 0000 1100; FraseBit[cont][3] = 0x0C; // 0000 1100; FraseBit[cont][4] = 0x0C; // 0000 1100; FraseBit[cont][5] = 0xCC; // 1100 1100; FraseBit[cont][6] = 0xCC; // 1100 1100; FraseBit[cont][7] = 0x78; // 0111 1000; break; case 'K': case 'k': FraseBit[cont][0] = 0xE6; // 1110 0110; FraseBit[cont][1] = 0x66; // 0110 0110; FraseBit[cont][2] = 0x6C; // 0110 1100; FraseBit[cont][3] = 0x78; // 0111 1000; FraseBit[cont][4] = 0x6C; // 0110 1100; FraseBit[cont][5] = 0x66; // 0110 0110; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0xE6; // 1110 0110; break; case 'L': case 'l': FraseBit[cont][0] = 0xF0; // 1111 0000; FraseBit[cont][1] = 0x60; // 0110 0000; FraseBit[cont][2] = 0x60; // 0110 0000; FraseBit[cont][3] = 0x60; // 0110 0000; FraseBit[cont][4] = 0x60; // 0110 0000; FraseBit[cont][5] = 0x62; // 0110 0010; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0xFE; // 1111 1110; break; case 'M': case 'm': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xEE; // 1110 1110; FraseBit[cont][2] = 0xD6; // 1101 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case 'N': case 'n': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xE6; // 1110 0110; FraseBit[cont][2] = 0xF6; // 1111 0110; FraseBit[cont][3] = 0xDE; // 1101 1110; FraseBit[cont][4] = 0xCE; // 1100 1110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case '¥': case '¤': FraseBit[cont][0] = 0x64; // 0110 0100; FraseBit[cont][1] = 0x98; // 1001 1000; FraseBit[cont][2] = 0x00; // 0000 0000; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xF6; // 1111 0110; FraseBit[cont][5] = 0xDE; // 1101 1110; FraseBit[cont][6] = 0xCE; // 1100 1110; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case 'O': case 'o': FraseBit[cont][0] = 0x38; // 0011 1000; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x38; // 0011 1000; break; case 'P': case 'p': FraseBit[cont][0] = 0xFC; // 1111 1100; FraseBit[cont][1] = 0x62; // 0110 0010; FraseBit[cont][2] = 0x62; // 0110 0010; FraseBit[cont][3] = 0x7C; // 0111 1100; FraseBit[cont][4] = 0x60; // 0110 0000; FraseBit[cont][5] = 0x60; // 0110 0000; FraseBit[cont][6] = 0x60; // 0110 0000; FraseBit[cont][7] = 0xF0; // 1111 0000; break; case 'Q': case 'q': FraseBit[cont][0] = 0x00; // 0011 1000; FraseBit[cont][1] = 0x00; // 1100 0110; FraseBit[cont][2] = 0x00; // 1100 0110; FraseBit[cont][3] = 0x00; // 1100 0110; FraseBit[cont][4] = 0x00; // 1101 0110; FraseBit[cont][5] = 0x00; // 1101 1110; FraseBit[cont][6] = 0x00; // 0111 1100; FraseBit[cont][7] = 0x00; FraseBit[cont][0] = 0x38; // 0011 1000; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xCE; // 1100 1110; FraseBit[cont][6] = 0x38; // 0011 1000; FraseBit[cont][7] = 0x0E; // 0000 1110; break; case 'R': case 'r': FraseBit[cont][0] = 0xFC; // 1111 1100; FraseBit[cont][1] = 0x62; // 0110 0010; FraseBit[cont][2] = 0x62; // 0110 0010; FraseBit[cont][3] = 0x7C; // 0111 1100; FraseBit[cont][4] = 0x6E; // 0110 1110; FraseBit[cont][5] = 0x66; // 0110 0110; FraseBit[cont][6] = 0x66; // 0110 0110; FraseBit[cont][7] = 0xE6; // 1110 0110; break; case 'S': case 's': FraseBit[cont][0] = 0x7C; // 0111 1100; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0x60; // 0110 0000; FraseBit[cont][3] = 0x18; // 0001 1000; FraseBit[cont][4] = 0x0C; // 0000 1100; FraseBit[cont][5] = 0x06; // 0000 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case 'T': case 't': FraseBit[cont][0] = 0xFC; // 1111 1100; FraseBit[cont][1] = 0xB4; // 1011 0100; FraseBit[cont][2] = 0x30; // 0011 0000; FraseBit[cont][3] = 0x30; // 0011 0000; FraseBit[cont][4] = 0x30; // 0011 0000; FraseBit[cont][5] = 0x30; // 0011 0000; FraseBit[cont][6] = 0x30; // 0011 0000; FraseBit[cont][7] = 0x78; // 0111 1000; break; case 'U': case 'u': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case 'V': case 'v': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0x6C; // 0110 1100; FraseBit[cont][6] = 0x38; // 0011 1000; FraseBit[cont][7] = 0x10; // 0001 0000; break; case 'W': case 'w': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0xC6; // 1100 0110; FraseBit[cont][4] = 0xD6; // 1101 0110; FraseBit[cont][5] = 0xD6; // 1101 0110; FraseBit[cont][6] = 0x7C; // 0111 1100; FraseBit[cont][7] = 0x28; // 0010 1000; break; case 'X': case 'x': FraseBit[cont][0] = 0xC6; // 1100 0110; FraseBit[cont][1] = 0x44; // 0100 0100; FraseBit[cont][2] = 0x6C; // 0110 1100; FraseBit[cont][3] = 0x38; // 0011 1000; FraseBit[cont][4] = 0x38; // 0011 1000; FraseBit[cont][5] = 0x6C; // 0110 1100; FraseBit[cont][6] = 0x44; // 0100 0100; FraseBit[cont][7] = 0xC6; // 1100 0110; break; case 'Y': case 'y': FraseBit[cont][0] = 0xCC; // 1100 1100; FraseBit[cont][1] = 0xCC; // 1100 1100; FraseBit[cont][2] = 0xCC; // 1100 1100; FraseBit[cont][3] = 0x78; // 0111 1000; FraseBit[cont][4] = 0x30; // 0011 0000; FraseBit[cont][5] = 0x30; // 0011 0000; FraseBit[cont][6] = 0x30; // 0011 0000; FraseBit[cont][7] = 0x78; // 0111 1000; break; case 'Z': case 'z': FraseBit[cont][0] = 0xFE; // 1111 1110; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0x8C; // 1000 1100; FraseBit[cont][3] = 0x18; // 0001 1000; FraseBit[cont][4] = 0x30; // 0011 0000; FraseBit[cont][5] = 0x62; // 0110 0010; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0xFE; // 1111 1110; break; case '0': FraseBit[cont][0] = 0x38; // 0011 1000; FraseBit[cont][1] = 0xCE; // 1100 1110; FraseBit[cont][2] = 0xCE; // 1100 1110; FraseBit[cont][3] = 0xD6; // 1101 0110; FraseBit[cont][4] = 0xD6; // 1101 0110; FraseBit[cont][5] = 0xE6; // 1110 0110; FraseBit[cont][6] = 0xE6; // 1110 0110; FraseBit[cont][7] = 0x38; // 0011 1000; break; case '1': FraseBit[cont][0] = 0x0C; // 0000 1100; FraseBit[cont][1] = 0x1C; // 0001 1100; FraseBit[cont][2] = 0x3C; // 0011 1100; FraseBit[cont][3] = 0x0C; // 0000 1100; FraseBit[cont][4] = 0x0C; // 0000 1100; FraseBit[cont][5] = 0x0C; // 0000 1100; FraseBit[cont][6] = 0x0C; // 0000 1100; FraseBit[cont][7] = 0x1E; // 0001 1110; break; case '2': FraseBit[cont][0] = 0x78; // 0111 1000; FraseBit[cont][1] = 0xCC; // 1100 1100; FraseBit[cont][2] = 0x06; // 0000 0110; FraseBit[cont][3] = 0x0C; // 0000 1100; FraseBit[cont][4] = 0x18; // 0001 1000; FraseBit[cont][5] = 0x30; // 0011 0000; FraseBit[cont][6] = 0x60; // 0110 0000; FraseBit[cont][7] = 0x7E; // 0111 1110; break; case '3': FraseBit[cont][0] = 0x78; // 0111 1000; FraseBit[cont][1] = 0xCC; // 1100 1100; FraseBit[cont][2] = 0x06; // 0000 0110; FraseBit[cont][3] = 0x0C; // 0000 1100; FraseBit[cont][4] = 0x18; // 0001 1000; FraseBit[cont][5] = 0x0C; // 0000 1100; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case '4': FraseBit[cont][0] = 0x0C; // 0000 1100; FraseBit[cont][1] = 0x1C; // 0001 1100; FraseBit[cont][2] = 0x2C; // 0010 1100; FraseBit[cont][3] = 0x4C; // 0100 1100; FraseBit[cont][4] = 0xFE; // 1111 1110; FraseBit[cont][5] = 0x0C; // 0000 1100; FraseBit[cont][6] = 0x0C; // 0000 1100; FraseBit[cont][7] = 0x1E; // 0001 1110; break; case '5': FraseBit[cont][0] = 0xFE; // 1111 1110; FraseBit[cont][1] = 0xC0; // 1100 0000; FraseBit[cont][2] = 0xC0; // 1100 0000; FraseBit[cont][3] = 0xF8; // 1111 1000; FraseBit[cont][4] = 0x0C; // 0000 1100; FraseBit[cont][5] = 0x06; // 0000 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case '6': FraseBit[cont][0] = 0x3E; // 0011 1110; FraseBit[cont][1] = 0x60; // 0110 0000; FraseBit[cont][2] = 0xC0; // 1100 0000; FraseBit[cont][3] = 0xFC; // 1111 1100; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case '8': FraseBit[cont][0] = 0x7C; // 0111 1100; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0x7C; // 0111 1100; FraseBit[cont][4] = 0xC6; // 1100 0110; FraseBit[cont][5] = 0xC6; // 1100 0110; FraseBit[cont][6] = 0xC6; // 1100 0110; FraseBit[cont][7] = 0x7C; // 0111 1100; break; case '9': FraseBit[cont][0] = 0x7C; // 0111 1100; FraseBit[cont][1] = 0xC6; // 1100 0110; FraseBit[cont][2] = 0xC6; // 1100 0110; FraseBit[cont][3] = 0x7E; // 0111 1110; FraseBit[cont][4] = 0x06; // 0000 0110; FraseBit[cont][5] = 0x06; // 0000 0110; FraseBit[cont][6] = 0x0C; // 0000 1100; FraseBit[cont][7] = 0x78; // 0111 1000; break; case '*': FraseBit[cont][0] = 0x00; // 0000 0000; FraseBit[cont][1] = 0x18; // 0001 1000; FraseBit[cont][2] = 0x5A; // 0101 1010; FraseBit[cont][3] = 0x3C; // 0011 1100; FraseBit[cont][4] = 0x7E; // 0111 1110; FraseBit[cont][5] = 0x3C; // 0011 1100; FraseBit[cont][6] = 0x5A; // 0101 1010; FraseBit[cont][7] = 0x18; // 0001 1000; break; case '-': FraseBit[cont][0] = 0x00; // 0000 0000; FraseBit[cont][1] = 0x00; // 0000 0000; FraseBit[cont][2] = 0x00; // 0000 0000; FraseBit[cont][3] = 0xFE; // 1111 1110; FraseBit[cont][4] = 0xFE; // 1111 1110; FraseBit[cont][5] = 0x00; // 0000 0000; FraseBit[cont][6] = 0x00; // 0000 0000; FraseBit[cont][7] = 0x00; // 0000 0000; break; case '_': FraseBit[cont][0] = 0x00; // 0000 0000; FraseBit[cont][1] = 0x00; // 0000 0000; FraseBit[cont][2] = 0x00; // 0000 0000; FraseBit[cont][3] = 0x00; // 0000 0000; FraseBit[cont][4] = 0x00; // 0000 0000; FraseBit[cont][5] = 0x00; // 0000 0000; FraseBit[cont][6] = 0xFE; // 1111 1110; FraseBit[cont][7] = 0xFE; // 1111 1110; break; case '+': FraseBit[cont][0] = 0x00; // 0000 0000; FraseBit[cont][1] = 0x18; // 0001 1000; FraseBit[cont][2] = 0x18; // 0001 1000; FraseBit[cont][3] = 0xFE; // 1111 1110; FraseBit[cont][4] = 0xFE; // 1111 1110; FraseBit[cont][5] = 0x18; // 0001 1000; FraseBit[cont][6] = 0x18; // 0001 1000; FraseBit[cont][7] = 0x00; // 0000 0000; break; case '<': case '(': FraseBit[cont][0] = 0x18; // 0001 1000; FraseBit[cont][1] = 0x30; // 0011 0000; FraseBit[cont][2] = 0x60; // 0110 0000; FraseBit[cont][3] = 0xC0; // 1100 0000; FraseBit[cont][4] = 0xC0; // 1100 0000; FraseBit[cont][5] = 0x60; // 0110 0000; FraseBit[cont][6] = 0x30; // 0011 0000; FraseBit[cont][7] = 0x18; // 0001 1000; break; case '>': case ')': FraseBit[cont][0] = 0x18; // 0001 1000; FraseBit[cont][1] = 0x0C; // 0000 1100; FraseBit[cont][2] = 0x06; // 0000 0110; FraseBit[cont][3] = 0x03; // 0000 0011; FraseBit[cont][4] = 0x03; // 0000 0011; FraseBit[cont][5] = 0x06; // 0000 0110; FraseBit[cont][6] = 0x0C; // 0000 1100; FraseBit[cont][7] = 0x18; // 0001 1000; break; case ':': case ';': FraseBit[cont][0] = 0x00; // 0000 0000; FraseBit[cont][1] = 0x30; // 0011 0000; FraseBit[cont][2] = 0x30; // 0011 0000; FraseBit[cont][3] = 0x00; // 0000 0000; FraseBit[cont][4] = 0x00; // 0000 0000; FraseBit[cont][5] = 0x30; // 0011 0000; FraseBit[cont][6] = 0x30; // 0011 0000; FraseBit[cont][7] = 0x00; // 0000 0000; break; case '\'': FraseBit[cont][0] = 0x0C; // 0000 1100; FraseBit[cont][1] = 0x0C; // 0000 1100; FraseBit[cont][2] = 0x0C; // 0000 1100; FraseBit[cont][3] = 0x10; // 0001 1000; FraseBit[cont][4] = 0x00; // 0000 0000; FraseBit[cont][5] = 0x00; // 0000 0000; FraseBit[cont][6] = 0x00; // 0000 0000; FraseBit[cont][7] = 0x00; // 0000 0000; break; default: FraseBit[cont][0] = 0x00; FraseBit[cont][1] = 0x00; FraseBit[cont][2] = 0x00; FraseBit[cont][3] = 0x00; FraseBit[cont][4] = 0x00; FraseBit[cont][5] = 0x00; FraseBit[cont][6] = 0x00; FraseBit[cont][7] = 0x00; break; } cont++; Frase_seg++; } } else { // Rotamos la frase char FrBit_tmp[8]; // Almacenamos el 1er bit que vamos a perder... for ( j1=0; j1<8; j1++ ) FrBit_tmp[j1] = 0x01 & ( FraseBit[0][j1] >> 7 ); for ( j=0; j> 7 ) ); } for ( j1=0; j1<8; j1++ ) FraseBit[Flen1-1][j1] = ( FraseBit[Flen1-1][j1] & 0xFE ) | FrBit_tmp[j1]; } // . . . . . . // .ï ï. .ï ï. .ï ï. // . . . . . // __________.________________________.______________________.______________ // . . . . . . // . . . . . . // ' .. ' ' .. ' ' .. ' // // . . // . ï ï . // . . // ____________________._____________________.______________________________ // . . ` ï // . . ` ï // . . ` ï // . . . ` ï // ` . . ï // ndigitos --> m x. = 40 float i1; for ( i=0, i1=3; i < FA->ndigitos; i ++ ) { for ( j=0, j1=0; j1<8; j+=2*FA->AX, j1++ ) { // Analizamos el patron de BIT's y lo imprimimos // FraseBit[cont][0] // ^ ^----- N£mero de byte del digito ( 8x8 ) // |_________ N£mero de digito alfa-numerico for ( bit_s = 0; bit_s < 8; bit_s++, i1+=.003 ) { if ( FraseBit[i][bit_s] & ( (char)0x01 << (7-j1) ) ) c_elec = FA->C2; else c_elec = FA->C1; putpixel ( FA->x + j + bit_s*2+ i*8*2*FA->AX, FA->y + sin( i1 )*70 + 2*bit_s*FA->AY, c_elec ); } } } }