2131 lines
79 KiB
C++
2131 lines
79 KiB
C++
#include <graphics.h>
|
||
#include <string.h>
|
||
#include <ctype.h>
|
||
#include <graphics.h>
|
||
///////////////////////////////////
|
||
#include <math.h>
|
||
///////////////////////////////////
|
||
#include <conio.h>
|
||
|
||
// #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<Flen1; j++ )
|
||
{
|
||
for ( j1=0; j1<8; j1++ )
|
||
FraseBit[j][j1] = FraseBit[j][j1] << 1;
|
||
for ( j1=0; j1<8; j1++ )
|
||
FraseBit[j][j1] = ( FraseBit[j][j1] & 0xFE ) | (0x01 & (FraseBit[j+1][j1] >> 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<Flen1; j++ )
|
||
{
|
||
for ( j1=0; j1<8; j1++ )
|
||
FraseBit[j][j1] = FraseBit[j][j1] << 1;
|
||
for ( j1=0; j1<8; j1++ )
|
||
FraseBit[j][j1] = ( FraseBit[j][j1] & 0xFE ) | (0x01 & (FraseBit[j+1][j1] >> 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<Flen1; j++ )
|
||
{
|
||
for ( j1=0; j1<8; j1++ )
|
||
FraseBit[j][j1] = FraseBit[j][j1] << 1;
|
||
for ( j1=0; j1<8; j1++ )
|
||
FraseBit[j][j1] = ( FraseBit[j][j1] & 0xFE ) | (0x01 & (FraseBit[j+1][j1] >> 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 );
|
||
}
|
||
}
|
||
}
|
||
}
|