First commit 25/09/1997
This commit is contained in:
		
							
								
								
									
										1360
									
								
								ALUMMM.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1360
									
								
								ALUMMM.CPP
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										465
									
								
								ALUMNUM.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										465
									
								
								ALUMNUM.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,465 @@
 | 
			
		||||
#include <dos.h>
 | 
			
		||||
#include <math.h>
 | 
			
		||||
#include <conio.h>
 | 
			
		||||
#include <ctype.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <graphics.h>
 | 
			
		||||
 | 
			
		||||
//#include "alum_def.h"
 | 
			
		||||
extern void Error( int code, char *MensajeError );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
char *ptr_char;
 | 
			
		||||
 | 
			
		||||
char far *VidRam = (char far *)MK_FP( 0xA000, 0);
 | 
			
		||||
void far PutPixel(unsigned int x, unsigned int y, int c_elec );
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
 {
 | 
			
		||||
  int x, y;
 | 
			
		||||
  char ndigitos;
 | 
			
		||||
  char AX, AY;
 | 
			
		||||
  char C1, C2, C3;
 | 
			
		||||
 } p_graphics;
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
 {
 | 
			
		||||
  int x, y;             // Coordenadas iniciales de muestreo
 | 
			
		||||
  char ndigitos;        // n<>mero de digitos a mostrar
 | 
			
		||||
  char AX, AY;          // factor de espaciado
 | 
			
		||||
  char C1, C2, C3;      // colores de fondo, texto, borde
 | 
			
		||||
 | 
			
		||||
  // Datos privados y uso interno exclusivamente
 | 
			
		||||
  unsigned int  Flen;   // longitud de la frase actual
 | 
			
		||||
  char BitByte;         // bit del byte por el que va en el recorrido
 | 
			
		||||
  char currByte;        // byte actual dentro de la frase
 | 
			
		||||
 | 
			
		||||
 } p_Ampliada;
 | 
			
		||||
 | 
			
		||||
int Numero_Digital( long numero,  p_graphics *ND );
 | 
			
		||||
void Fuente_Amplia( char *Frase, p_graphics *FA );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 /**************************************************************************\
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|* Numero_Digital                                                           *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|* Descripcion:                                                             *|
 | 
			
		||||
|*             Muestra un numero, con forma digital en pantalla,            *|
 | 
			
		||||
|*             escalandolo seg<65>n los factores indicados en p_graphics       *|
 | 
			
		||||
|*             ( 9 digitos como m<>ximo )                                    *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|* Entradas:                                                                *|
 | 
			
		||||
|*             N<>mero y estructura de muestreo                              *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|* Salidas:    (ninguna)                                                    *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
 \**************************************************************************/
 | 
			
		||||
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 char vez = 0;
 | 
			
		||||
 static p_graphics ND1;
 | 
			
		||||
 | 
			
		||||
 char dnum=0, i, j, digital;
 | 
			
		||||
 int punto[10];
 | 
			
		||||
 int CONST = 0;
 | 
			
		||||
 char DnTmp[2];
 | 
			
		||||
 char signo = 0;
 | 
			
		||||
 static old_signo = 0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 // Si ha cambiado la posicion, el n<> de digitos, o el factor de escala
 | 
			
		||||
 // habr<62> que recalcularlo todo.
 | 
			
		||||
 if (
 | 
			
		||||
      ND1.x        != ND -> x          ||    ND1.y != ND -> y   ||
 | 
			
		||||
      ND1.ndigitos != ND -> ndigitos   ||
 | 
			
		||||
      ND1.AX       != ND -> AX         ||    ND1.AY != ND -> AY
 | 
			
		||||
    )
 | 
			
		||||
 {
 | 
			
		||||
   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;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 // Miramos el signo del n<>mero
 | 
			
		||||
 if ( numero < 0 )
 | 
			
		||||
 {
 | 
			
		||||
  numero *= -1;
 | 
			
		||||
  signo = 1;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 if ( signo != old_signo ) vez = 0;
 | 
			
		||||
 | 
			
		||||
 setcolor(ND -> C3);
 | 
			
		||||
 | 
			
		||||
 // Miro todas las cifras que componen el n<>mero
 | 
			
		||||
 for( i=0; i < ND -> ndigitos; i++ )
 | 
			
		||||
  {
 | 
			
		||||
   dnum = numero % 10;
 | 
			
		||||
   digital = numero;
 | 
			
		||||
   numero /= 10;
 | 
			
		||||
 | 
			
		||||
   // Si el n<>mero pintado con anterioridad es distinto al actual, lo dibujamos
 | 
			
		||||
   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];
 | 
			
		||||
 | 
			
		||||
     //  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 far PutPixel(unsigned int x, unsigned int y, int c_elec )
 | 
			
		||||
{
 | 
			
		||||
  if ( x < 320 && y < 200 )
 | 
			
		||||
             *(VidRam + (x + y*320) ) = c_elec;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void LeeFuentes(char *file)
 | 
			
		||||
{
 | 
			
		||||
FILE *fich;
 | 
			
		||||
	/* Reservamos 4 Kb. para cargar la fuente en memoria */
 | 
			
		||||
 | 
			
		||||
	/* Abrimos el fichero de la fuente */
 | 
			
		||||
 | 
			
		||||
        if ((fich=fopen(file,"rb"))==NULL) {
 | 
			
		||||
                printf("\a\nArchivo %s no encontrado.\n",file);
 | 
			
		||||
		Error(0, "No se encuentra el archivo de fuentes");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	fseek(fich, SEEK_SET, 0);	/* Nos colocamos al principio del fichero     */
 | 
			
		||||
        fread(ptr_char,1,4096,fich);      /* Cargamos en memoria 4096 bytes del fichero */
 | 
			
		||||
	fclose(fich);					/* Cerramos el fichero 								 */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define TAMx 8
 | 
			
		||||
#define TAMy 8
 | 
			
		||||
void Fuente_Amplia( char *Frase, p_Ampliada far *FA )
 | 
			
		||||
{
 | 
			
		||||
 int  i, j, k;           // Variables de avance
 | 
			
		||||
 int  c_elec;            // Color en el momento de imprimir
 | 
			
		||||
 int  PosX, PosY;        // Posicion fisica final
 | 
			
		||||
 char LCaract;           // Caracter de linea a tratar
 | 
			
		||||
 | 
			
		||||
 if ( FA->Flen != _fstrlen( Frase ) ) // Reseteamos las variables de control interno
 | 
			
		||||
 {
 | 
			
		||||
  // Obtenemos la longitud de la frase. ( En d<>gitos )
 | 
			
		||||
  FA -> Flen = _fstrlen( Frase );
 | 
			
		||||
  // Contador de digito actual a cero
 | 
			
		||||
  FA -> BitByte  = 0;
 | 
			
		||||
  // Posicion dentro de la frase
 | 
			
		||||
  FA -> currByte = 0;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 // Avance horizontal de bit's ( avance de digitos )
 | 
			
		||||
 for ( i = 0; i < ( TAMx * (FA -> ndigitos) ); i++ )
 | 
			
		||||
 {
 | 
			
		||||
  k = ( (unsigned char)Frase[ ( (i+FA->BitByte)/TAMx + FA -> currByte ) % FA->Flen ] ) << 4;
 | 
			
		||||
  LCaract = ( (char)0x01 << (7 - (i+FA->BitByte)%TAMx) );
 | 
			
		||||
  PosX = FA -> x + FA->AX   * i;         // Posicion f<>sica horizontal
 | 
			
		||||
  // Avance vertical de bit's
 | 
			
		||||
  for ( j = 0; j < TAMy; j ++ )
 | 
			
		||||
  {
 | 
			
		||||
    PosY = FA -> y + FA->AY * j;         // Posicion f<>sica vertical
 | 
			
		||||
 | 
			
		||||
    if ( ptr_char[ k + j ] & LCaract )
 | 
			
		||||
      c_elec = FA->C2;
 | 
			
		||||
    else
 | 
			
		||||
      c_elec = FA->C1;
 | 
			
		||||
 | 
			
		||||
    putpixel ( PosX, PosY, c_elec );
 | 
			
		||||
  }
 | 
			
		||||
 }
 | 
			
		||||
 // Tenemos en cuenta el avance dentro de la frase
 | 
			
		||||
 if ( ( FA -> BitByte ++ ) >= 7 )
 | 
			
		||||
 {
 | 
			
		||||
  FA -> BitByte = 0; FA -> currByte ++;
 | 
			
		||||
  if ( FA -> currByte >= FA -> Flen )
 | 
			
		||||
     FA -> currByte = 0;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#undef TAMy
 | 
			
		||||
#undef TAMx
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define TAMx  8
 | 
			
		||||
#define TAMy 16
 | 
			
		||||
void Fuente_Amplia3( char *Frase, p_Ampliada far *FA )
 | 
			
		||||
{
 | 
			
		||||
 int  i, j, k;           // Variables de avance
 | 
			
		||||
 int  c_elec;            // Color en el momento de imprimir
 | 
			
		||||
 int  PosX, PosY;        // Posicion fisica final
 | 
			
		||||
 char LCaract;           // Caracter de linea a tratar
 | 
			
		||||
 | 
			
		||||
 if ( FA->Flen != _fstrlen( Frase ) ) // Reseteamos las variables de control interno
 | 
			
		||||
 {
 | 
			
		||||
  // Obtenemos la longitud de la frase. ( En d<>gitos )
 | 
			
		||||
  FA -> Flen = _fstrlen( Frase );
 | 
			
		||||
  // Contador de digito actual a cero
 | 
			
		||||
  FA -> BitByte  = 0;
 | 
			
		||||
  // Posicion dentro de la frase
 | 
			
		||||
  FA -> currByte = 0;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 // Avance horizontal de bit's ( avance de digitos )
 | 
			
		||||
 for ( i = 0; i < ( TAMx * (FA -> ndigitos) ); i++ )
 | 
			
		||||
 {
 | 
			
		||||
  k = ( (unsigned char)Frase[ ( (i+FA->BitByte)/TAMx + FA -> currByte ) % FA->Flen ] ) << 4;
 | 
			
		||||
  LCaract = ( (char)0x01 << (7 - (i+FA->BitByte)%TAMx) );
 | 
			
		||||
  PosX = FA -> x + FA->AX   * i;         // Posicion f<>sica horizontal
 | 
			
		||||
  // Avance vertical de bit's
 | 
			
		||||
  for ( j = 0; j < TAMy; j ++ )
 | 
			
		||||
  {
 | 
			
		||||
    PosY = FA -> y + FA->AY * j;         // Posicion f<>sica vertical
 | 
			
		||||
 | 
			
		||||
    if ( ptr_char[ k + j ] & LCaract )
 | 
			
		||||
      c_elec = FA->C2;
 | 
			
		||||
    else
 | 
			
		||||
      c_elec = FA->C1;
 | 
			
		||||
 | 
			
		||||
    putpixel ( PosX, PosY, c_elec );
 | 
			
		||||
  }
 | 
			
		||||
 }
 | 
			
		||||
 // Tenemos en cuenta el avance dentro de la frase
 | 
			
		||||
 if ( ( FA -> BitByte ++ ) >= 7 )
 | 
			
		||||
 {
 | 
			
		||||
  FA -> BitByte = 0; FA -> currByte ++;
 | 
			
		||||
  if ( FA -> currByte >= FA -> Flen )
 | 
			
		||||
     FA -> currByte = 0;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#undef TAMy
 | 
			
		||||
#undef TAMx
 | 
			
		||||
 | 
			
		||||
/////<2F><>/////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
////<2F>/////////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
/////<2F><>/////<2F>///////////////////////////////////////////////////////////////////////
 | 
			
		||||
//////<2F>///<2F>////<2F>/<2F>//////////////////////////////////////////////////////////////////
 | 
			
		||||
///////<2F>/<2F>///<2F>//////////////////////////////////////////////////////////////////////
 | 
			
		||||
////////<2F>//<2F>////<2F>///////////////////////////////////////////////////////////////////
 | 
			
		||||
/////////<2F>////<2F>/////////////////////////////////////////////////////////////////////
 | 
			
		||||
///////////<2F>////////////////////////////////////////////////////////////////////////
 | 
			
		||||
#define TAMx  8
 | 
			
		||||
#define TAMy 16
 | 
			
		||||
void FuenteAmplia( char *Frase, p_Ampliada far *FA )
 | 
			
		||||
{
 | 
			
		||||
 int  i, j, k;           // Variables de avance
 | 
			
		||||
 int  c_elec;            // Color en el momento de imprimir
 | 
			
		||||
 int  PosX, PosY;        // Posicion fisica final
 | 
			
		||||
 int  LCaract;           // Caracter de linea a tratar
 | 
			
		||||
 | 
			
		||||
 if ( FA->C3 == -1 || FA->Flen != _fstrlen( Frase ) )              // Reseteamos las variables de control interno
 | 
			
		||||
 {
 | 
			
		||||
  // Obtenemos la longitud de la frase. ( En d<>gitos )
 | 
			
		||||
  FA -> Flen = _fstrlen( Frase );
 | 
			
		||||
  // Contador de digito actual a cero
 | 
			
		||||
  FA -> BitByte  = 0;
 | 
			
		||||
  // Posicion dentro de la frase
 | 
			
		||||
  FA -> currByte = 0;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 // Avance horizontal de bit's ( avance de digitos )
 | 
			
		||||
 for ( i = 0; i < ( TAMx * (FA -> ndigitos) ); i++ )
 | 
			
		||||
 {
 | 
			
		||||
  k = ( (unsigned char)Frase[ ( (i+FA->BitByte)/TAMx + FA -> currByte ) % FA->Flen ] ) << 4;
 | 
			
		||||
  LCaract = ( (char)0x01 << (7 - (i+FA->BitByte)%TAMx) );
 | 
			
		||||
  PosX = FA -> x + FA->AX   * i;         // Posicion f<>sica horizontal
 | 
			
		||||
  // Avance vertical de bit's
 | 
			
		||||
  for ( j = 0; j < TAMy; j ++ )
 | 
			
		||||
  {
 | 
			
		||||
    PosY = FA -> y + FA->AY * j;         // Posicion f<>sica vertical
 | 
			
		||||
 | 
			
		||||
    if ( ptr_char[ k + j ] & LCaract )
 | 
			
		||||
      c_elec = FA->C2;
 | 
			
		||||
    else
 | 
			
		||||
      c_elec = FA->C1;
 | 
			
		||||
 | 
			
		||||
    PutPixel ( PosX, PosY, c_elec );
 | 
			
		||||
  }
 | 
			
		||||
 }
 | 
			
		||||
 // Tenemos en cuenta el avance dentro de la frase
 | 
			
		||||
 if ( ( FA -> BitByte ++ ) >= 7 )
 | 
			
		||||
 {
 | 
			
		||||
  FA -> BitByte = 0; FA -> currByte ++;
 | 
			
		||||
  if ( FA -> currByte >= FA -> Flen )
 | 
			
		||||
     FA -> currByte = 0;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
#undef TAMy
 | 
			
		||||
#undef TAMx
 | 
			
		||||
							
								
								
									
										957
									
								
								ALUM_CFG.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										957
									
								
								ALUM_CFG.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,957 @@
 | 
			
		||||
#include <dos.h>
 | 
			
		||||
#include <math.h>
 | 
			
		||||
#include <time.h>
 | 
			
		||||
#include <alloc.h>
 | 
			
		||||
#include <conio.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <graphics.h>
 | 
			
		||||
 | 
			
		||||
#include "c:\program\src_dos\libs\make_bot\make_bot.h"
 | 
			
		||||
#include "c:\program\src_dos\libs\bdatos\bdatos.hh"
 | 
			
		||||
#include "alum_def.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
CONFIG Config = {
 | 
			
		||||
                  LTBKSLASH_FILL, EGA_BLUE, EGA_BLACK,
 | 
			
		||||
                  EGA_RED, EGA_BLACK, EGA_DARKGRAY,
 | 
			
		||||
                  EGA_LIGHTRED, EGA_DARKGRAY,
 | 
			
		||||
                  EGA_WHITE, EGA_RED, EGA_BLACK, EGA_WHITE,
 | 
			
		||||
                  { 0, { "PrnFile.out" }, 66, "", "", { "\0", "\0", "\0", "\0" },
 | 
			
		||||
                                                      { "\0", "\0", "\0", "\0" } },
 | 
			
		||||
 | 
			
		||||
                  // Horas inicio, y fin
 | 
			
		||||
                  {
 | 
			
		||||
                   { {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 } },
 | 
			
		||||
                   { {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 }, {  0,  0 } },
 | 
			
		||||
                   5, // 5 de la ma<6D>ana ( cambio horario )
 | 
			
		||||
                   0,
 | 
			
		||||
                   0
 | 
			
		||||
                  },
 | 
			
		||||
                  // Impr. Ticket / Cobro Completo / InicioCaja
 | 
			
		||||
                  { 0, 0, 6, 0 },
 | 
			
		||||
                  0,
 | 
			
		||||
                  // Tiempo para lanzar el protector de pantalla (en sg.)
 | 
			
		||||
                  120,
 | 
			
		||||
 | 
			
		||||
                  "fonts\\prot_ptl.fnt",
 | 
			
		||||
                  "fonts\\vent_msg.fnt",
 | 
			
		||||
 | 
			
		||||
                  { 8, 12, 16, 20, 24, 4 },
 | 
			
		||||
 | 
			
		||||
                  1, 2
 | 
			
		||||
 | 
			
		||||
                };
 | 
			
		||||
 | 
			
		||||
BDatos BConfig;
 | 
			
		||||
BDatos BThemes;
 | 
			
		||||
 | 
			
		||||
void PreviewEntorno( void );
 | 
			
		||||
void NoStandard( int BPush );
 | 
			
		||||
void MuestraCFG( int Campo, int Item, char como );
 | 
			
		||||
 | 
			
		||||
//  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
// <20>                     Parte principal del m<>dulo                       <20>
 | 
			
		||||
//  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
#define CFG_BASE   120
 | 
			
		||||
#define CFG_BASEd    3
 | 
			
		||||
 | 
			
		||||
#define FUENTES   0x00
 | 
			
		||||
 | 
			
		||||
#define COLOR     0x01
 | 
			
		||||
#define FONDO     0x02
 | 
			
		||||
#define TAMANO    0x04
 | 
			
		||||
#define FUENTE    0x08
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
 char Elementos[40];
 | 
			
		||||
 char Propiedades;
 | 
			
		||||
 | 
			
		||||
 char Color, Fondo;
 | 
			
		||||
 char Tamano, Fuente[40];
 | 
			
		||||
 | 
			
		||||
} ELEMENTOS;
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
 char Tema[40];
 | 
			
		||||
 ELEMENTOS Elementos[7];
 | 
			
		||||
} THEMES;
 | 
			
		||||
 | 
			
		||||
 // Cada elemento tiene unas propiedades, de las cuales depende el poder usar
 | 
			
		||||
 // los distintos pulsadores o no.
 | 
			
		||||
 THEMES  Tema = {
 | 
			
		||||
                  "Combinaci<EFBFBD>n standard",
 | 
			
		||||
                         {
 | 
			
		||||
                          { "Fondo de pantalla",         COLOR | FONDO | FUENTE },
 | 
			
		||||
                          { "Texto normal",              COLOR | FONDO          },
 | 
			
		||||
                          { "Texto se<73>alado",            COLOR | FONDO          },
 | 
			
		||||
                          { "Digitos (numeros grandes)", COLOR | FONDO          },
 | 
			
		||||
                          { "Digitos (borde del n<>mero)",COLOR                  },
 | 
			
		||||
                          { "Fuente del Protector",                      FUENTE },
 | 
			
		||||
                          { "Letrero digital",           COLOR | FONDO | FUENTE }
 | 
			
		||||
                          // A<>ADIR NUEVOS ELEMENTOS ( RESPETANDO NO SOLAPAR LAS <20>^
 | 
			
		||||
                         }
 | 
			
		||||
                };
 | 
			
		||||
char Elementos[][40] = {
 | 
			
		||||
                          { "Fondo de pantalla"          },
 | 
			
		||||
                          { "Texto normal"               },
 | 
			
		||||
                          { "Texto se<73>alado"             },
 | 
			
		||||
                          { "Digitos (numeros grandes)"  },
 | 
			
		||||
                          { "Digitos (borde del n<>mero)" },
 | 
			
		||||
                          { "Fuente del Protector"       },
 | 
			
		||||
                          { "Letrero digital"            }
 | 
			
		||||
                          // A<>ADIR NUEVOS ELEMENTOS ( RESPETANDO NO SOLAPAR LAS <20>^
 | 
			
		||||
 | 
			
		||||
                       };
 | 
			
		||||
 | 
			
		||||
int NumElementos = 7, NumFuentes, NumCombinaciones;
 | 
			
		||||
 | 
			
		||||
int  ListaDesplegable( char Texto[][40], int NumEtos, int DesX, int DesY, char POS );
 | 
			
		||||
void CargaFuentesElemento( int NumElemento );
 | 
			
		||||
void MuestraElemento( int CurrElemento );
 | 
			
		||||
int  ObtenTamano( int TOld );
 | 
			
		||||
int  ObtenColor( void );
 | 
			
		||||
 | 
			
		||||
void EditCFG( int Campo, int Item, char como );
 | 
			
		||||
 | 
			
		||||
 /**************************************************************************\
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  ConfigurarEntorno                                                       *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Descripci<63>n:                                                            *|
 | 
			
		||||
|*              Permite cambiar las opciones de configuraci<63>n...            *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Entradas: (ninguna)                                                     *|
 | 
			
		||||
|*  Salidas:  (ninguna)                                                     *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
 \**************************************************************************/
 | 
			
		||||
char Combinaciones[50][40], Fuentes[50][40];
 | 
			
		||||
 | 
			
		||||
void ConfigurarEntorno( void )
 | 
			
		||||
{
 | 
			
		||||
 int CurrCombinacion, CurrElemento, CurrFuente, i, BPush, ok, oldTmp;
 | 
			
		||||
 int CurrRow, key;
 | 
			
		||||
 char buffer[80];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
char NumItems[] = { 7, 2 };
 | 
			
		||||
char ItemActual =     0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 CurrCombinacion = 0;
 | 
			
		||||
 CurrElemento    = 0;
 | 
			
		||||
 CurrFuente      = 0;
 | 
			
		||||
 | 
			
		||||
 // Rellenamos la pantalla con un fondo atractivo...
 | 
			
		||||
 setfillstyle( Config.FillBgS, Config.FillBgC );
 | 
			
		||||
 bar( 0, 0, 640, 480 );
 | 
			
		||||
 | 
			
		||||
 Imprime_Estaticos( CFG_BASE+0, "systm\\alum.img");     // Imprime botones estaticos 'Seccion 1'
 | 
			
		||||
 // Flecha hacia abajo
 | 
			
		||||
 ponicono( 184, 276, flecha, 2 );
 | 
			
		||||
 ponicono( 184, 331, flecha, 2 );
 | 
			
		||||
 ponicono( 184, 386, flecha, 2 );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 if ( BThemes.AbrirReg( "datos\\themes.cfg", sizeof( THEMES ) ) == ERROR )
 | 
			
		||||
                                                             Error( 1, BThemes.cError);
 | 
			
		||||
 | 
			
		||||
 // Inicializamos el tema por defecto
 | 
			
		||||
 if ( BThemes.Registros() == 0 )
 | 
			
		||||
 {
 | 
			
		||||
  Tema.Elementos[0].Fondo  = Config.FillBgF;
 | 
			
		||||
  Tema.Elementos[0].Color  = Config.FillBgC;  Tema.Elementos[0].Tamano = Config.FillBgS;
 | 
			
		||||
  Tema.Elementos[1].Color  = Config.TxtFgN ;  Tema.Elementos[1].Fondo  = Config.TxtBgN ;
 | 
			
		||||
  Tema.Elementos[2].Color  = Config.TxtFgI ;  Tema.Elementos[2].Fondo  = Config.TxtBgI ;
 | 
			
		||||
  Tema.Elementos[3].Color  = Config.NumFg  ;  Tema.Elementos[3].Fondo  = Config.NumBg  ;
 | 
			
		||||
  Tema.Elementos[4].Color  = Config.NumLn  ;
 | 
			
		||||
  strcpy( Tema.Elementos[5].Fuente, Config.Prot_fnt );
 | 
			
		||||
 | 
			
		||||
  Tema.Elementos[6].Color  = Config.DigFg  ;  Tema.Elementos[6].Fondo  = Config.DigBg  ;
 | 
			
		||||
  strcpy( Tema.Elementos[6].Fuente, Config.Vent_msg );
 | 
			
		||||
  if ( BThemes.InsReg( (void *)&Tema, 0, ARRIBA ) == ERROR )
 | 
			
		||||
                                              Error( 1, BThemes.cError);
 | 
			
		||||
 } else
 | 
			
		||||
  if ( BThemes.LeeReg( (void *)&Tema, CurrCombinacion ) == ERROR )
 | 
			
		||||
                                              Error( 1, BThemes.cError);
 | 
			
		||||
 | 
			
		||||
 CargaFuentesElemento( CurrElemento );
 | 
			
		||||
 MuestraElemento( CurrElemento );
 | 
			
		||||
 PreviewEntorno();
 | 
			
		||||
 | 
			
		||||
 Imprime_Estaticos( ItemActual+125, "systm\\alum.img");     // Imprime botones estaticos 'Seccion 1'
 | 
			
		||||
 for ( CurrRow = 0; CurrRow < NumItems[ ItemActual ]; CurrRow ++ )
 | 
			
		||||
       MuestraCFG( CurrRow, ItemActual, NORMAL );
 | 
			
		||||
 CurrRow = 0;
 | 
			
		||||
 | 
			
		||||
 ok = 0;
 | 
			
		||||
 do {
 | 
			
		||||
 | 
			
		||||
      MuestraCFG( CurrRow, ItemActual, INTENSO );
 | 
			
		||||
      BPush = Comprueba_Secuencia( CFG_BASEd, NULL );
 | 
			
		||||
      MuestraCFG( CurrRow, ItemActual, NORMAL );
 | 
			
		||||
 | 
			
		||||
      switch ( BPush )
 | 
			
		||||
      {
 | 
			
		||||
       case  0:				  // No se pulso ningun BOTON
 | 
			
		||||
	       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
			
		||||
	       break;
 | 
			
		||||
       case -2:				  // Hay una tecla normal en BUFFER
 | 
			
		||||
               if ( (key=getch()) != 27 && key != 13 )
 | 
			
		||||
                                  ungetch( key );
 | 
			
		||||
               EditCFG( CurrRow, ItemActual, NORMAL );
 | 
			
		||||
	       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
			
		||||
	       break;
 | 
			
		||||
       case -1:				  // Hay una tecla especial en BUFFER
 | 
			
		||||
               switch( getch() )
 | 
			
		||||
               {
 | 
			
		||||
                 // Flecha Izquierda
 | 
			
		||||
                 case  75:
 | 
			
		||||
                 case  15:
 | 
			
		||||
                 // Flecha Arriba
 | 
			
		||||
                 case  72:
 | 
			
		||||
                       CurrRow--; if ( CurrRow < 0 ) CurrRow = NumItems[ItemActual] - 1;
 | 
			
		||||
                       break;
 | 
			
		||||
                 // Flecha Derecha
 | 
			
		||||
                 case  77:
 | 
			
		||||
                 case   9:
 | 
			
		||||
                // Flecha Abajo
 | 
			
		||||
                case  80:
 | 
			
		||||
                       CurrRow++; if ( CurrRow >= NumItems[ItemActual] ) CurrRow = 0;
 | 
			
		||||
                       break;
 | 
			
		||||
                // Inicio
 | 
			
		||||
                case  71:
 | 
			
		||||
                       CurrRow = 0;
 | 
			
		||||
                       break;
 | 
			
		||||
                // Fin
 | 
			
		||||
                case  79:
 | 
			
		||||
                       CurrRow = NumItems[ItemActual];
 | 
			
		||||
                       break;
 | 
			
		||||
               }
 | 
			
		||||
	       break;
 | 
			
		||||
       // Men<65> Principal
 | 
			
		||||
       case  1:
 | 
			
		||||
               ok = 1;
 | 
			
		||||
	       break;
 | 
			
		||||
       // Combinaciones
 | 
			
		||||
       case  2:
 | 
			
		||||
	       break;
 | 
			
		||||
       // Guardar combinaci<63>n
 | 
			
		||||
       case  3:
 | 
			
		||||
//               GuardaCombinacion();
 | 
			
		||||
	       break;
 | 
			
		||||
       // Eliminar combinaci<63>n
 | 
			
		||||
       case  4:
 | 
			
		||||
/*
 | 
			
		||||
               if ( CurrCombinacion != 0 && Optar( 1, "Eliminar combinaci<63>n", "Confirme la eliminaci<63>n", "de la combinaci<63>n actual.", NULL ) )
 | 
			
		||||
               {
 | 
			
		||||
                if ( BThemes.DelReg( CurrCombinacion ) == ERROR )
 | 
			
		||||
                                                              Error( 1, BThemes.cError);
 | 
			
		||||
                CurrCombinacion --;
 | 
			
		||||
                if ( BThemes.LeeReg( (void *)&Config, CurrCombinacion ) == ERROR )
 | 
			
		||||
                                                             Error( 1, BThemes.cError);
 | 
			
		||||
                PreviewEntorno();
 | 
			
		||||
               }
 | 
			
		||||
*/
 | 
			
		||||
	       break;
 | 
			
		||||
       // Elementos
 | 
			
		||||
       case  5:
 | 
			
		||||
               oldTmp = CurrElemento;
 | 
			
		||||
               CurrElemento = ListaDesplegable( Elementos, NumElementos, 5, 330, ARRIBA );
 | 
			
		||||
               if ( oldTmp != CurrElemento )
 | 
			
		||||
               {
 | 
			
		||||
                     CargaFuentesElemento( CurrElemento );
 | 
			
		||||
                     MuestraElemento( CurrElemento );
 | 
			
		||||
                     PreviewEntorno();
 | 
			
		||||
               }
 | 
			
		||||
	       break;
 | 
			
		||||
       // Fuentes
 | 
			
		||||
       case  6:
 | 
			
		||||
               if ( Tema.Elementos[CurrElemento].Propiedades & FUENTE )
 | 
			
		||||
               {
 | 
			
		||||
                oldTmp = CurrFuente;
 | 
			
		||||
                CurrFuente = ListaDesplegable( Fuentes, NumFuentes, 5, 385, ARRIBA );
 | 
			
		||||
                if ( oldTmp != CurrFuente )
 | 
			
		||||
                {
 | 
			
		||||
                  if ( CurrElemento == 0 )
 | 
			
		||||
                     Tema.Elementos[CurrElemento].Tamano =  CurrFuente;
 | 
			
		||||
 | 
			
		||||
                  strcpy( Tema.Elementos[CurrElemento].Fuente, Fuentes[CurrFuente] );
 | 
			
		||||
 | 
			
		||||
                  PreviewEntorno();
 | 
			
		||||
                }
 | 
			
		||||
               }
 | 
			
		||||
	       break;
 | 
			
		||||
       // Color
 | 
			
		||||
       case  7:
 | 
			
		||||
               if ( Tema.Elementos[CurrElemento].Propiedades & COLOR )
 | 
			
		||||
               {
 | 
			
		||||
                Tema.Elementos[CurrElemento].Color = ObtenColor();
 | 
			
		||||
                PreviewEntorno();
 | 
			
		||||
                setfillstyle( SOLID_FILL, Tema.Elementos[CurrElemento].Color );
 | 
			
		||||
                bar( 292, 332, 308,  348 );
 | 
			
		||||
               }
 | 
			
		||||
	       break;
 | 
			
		||||
       // Fondo
 | 
			
		||||
       case  8:
 | 
			
		||||
               if ( Tema.Elementos[CurrElemento].Propiedades & FONDO )
 | 
			
		||||
               {
 | 
			
		||||
                Tema.Elementos[CurrElemento].Fondo = ObtenColor();
 | 
			
		||||
                PreviewEntorno();
 | 
			
		||||
                setfillstyle( SOLID_FILL, Tema.Elementos[CurrElemento].Fondo );
 | 
			
		||||
                bar( 292, 360, 308,  376 );
 | 
			
		||||
               }
 | 
			
		||||
	       break;
 | 
			
		||||
       // Tama<6D>o
 | 
			
		||||
       case  9:
 | 
			
		||||
               if ( Tema.Elementos[CurrElemento].Propiedades & TAMANO )
 | 
			
		||||
               {
 | 
			
		||||
                Tema.Elementos[CurrElemento].Tamano = ObtenTamano( Tema.Elementos[CurrElemento].Tamano );
 | 
			
		||||
                PreviewEntorno();
 | 
			
		||||
                setfillstyle( SOLID_FILL, EGA_LIGHTGRAY );
 | 
			
		||||
                bar( 264, 387, 308, 403 );
 | 
			
		||||
                sprintf( buffer, "%3d", Tema.Elementos[CurrElemento].Tamano );
 | 
			
		||||
                outtextxy( 264, 387, buffer );
 | 
			
		||||
               }
 | 
			
		||||
      	       break;
 | 
			
		||||
       // Impresora
 | 
			
		||||
       // Ventas
 | 
			
		||||
       // Varios...
 | 
			
		||||
       case 10:
 | 
			
		||||
       case 11:
 | 
			
		||||
       case 12:
 | 
			
		||||
               ItemActual  = BPush - 10;
 | 
			
		||||
               Imprime_Estaticos( ItemActual+125, "systm\\alum.img");     // Imprime botones estaticos 'Seccion 1'
 | 
			
		||||
               for ( CurrRow = 0; CurrRow < NumItems[ ItemActual ]; CurrRow ++ )
 | 
			
		||||
                MuestraCFG( CurrRow, ItemActual, NORMAL );
 | 
			
		||||
               CurrRow = 0;
 | 
			
		||||
               break;
 | 
			
		||||
       default:
 | 
			
		||||
               NoStandard( BPush );
 | 
			
		||||
	       break;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
 } while( !ok );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 // Copiamos el Tema actual a las opciones de configuracion
 | 
			
		||||
                                           Config.FillBgF= Tema.Elementos[0].Fondo;
 | 
			
		||||
 Config.FillBgC= Tema.Elementos[0].Color;  Config.FillBgS= Tema.Elementos[0].Tamano;
 | 
			
		||||
 Config.TxtFgN = Tema.Elementos[1].Color;  Config.TxtBgN = Tema.Elementos[1].Fondo;
 | 
			
		||||
 Config.TxtFgI = Tema.Elementos[2].Color;  Config.TxtBgI = Tema.Elementos[2].Fondo;
 | 
			
		||||
 Config.NumFg  = Tema.Elementos[3].Color;  Config.NumBg  = Tema.Elementos[3].Fondo;
 | 
			
		||||
 Config.NumLn  = Tema.Elementos[4].Color;
 | 
			
		||||
 | 
			
		||||
 strcpy( Config.Prot_fnt, Tema.Elementos[5].Fuente );
 | 
			
		||||
 | 
			
		||||
 Config.DigFg = Tema.Elementos[6].Color  ;  Config.DigBg = Tema.Elementos[6].Fondo  ;
 | 
			
		||||
 strcpy( Config.Vent_msg, Tema.Elementos[6].Fuente );
 | 
			
		||||
 | 
			
		||||
 // Salvamos la configuraci<63>n
 | 
			
		||||
 if ( BConfig.EscribeReg( (void *)&Config, 0 ) == ERROR )
 | 
			
		||||
                                             Error( 1, BConfig.cError);
 | 
			
		||||
 | 
			
		||||
 // Salvamos la configuraci<63>n
 | 
			
		||||
 if ( BThemes.EscribeReg( (void *)&Tema, CurrCombinacion ) == ERROR )
 | 
			
		||||
                                              Error( 1, BThemes.cError);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 BThemes.CerrarReg();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 /**************************************************************************\
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  PreviewPantalla                                                         *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Descripci<63>n:                                                            *|
 | 
			
		||||
|*              Realiza el preview de la mini-pantalla                      *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Entradas: (ninguna)                                                     *|
 | 
			
		||||
|*  Salidas:  (ninguna)                                                     *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
 \**************************************************************************/
 | 
			
		||||
void PreviewEntorno( void )
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// setbkcolor( Tema.Elementos[0].Fondo );
 | 
			
		||||
 setfillstyle( Tema.Elementos[0].Tamano, Tema.Elementos[0].Color );
 | 
			
		||||
 bar( 6, 36, 309, 239 );
 | 
			
		||||
 | 
			
		||||
 Imprime_Estaticos( CFG_BASE+1, "systm\\alum.img" );
 | 
			
		||||
 settextstyle( SMALL_FONT, HORIZ_DIR, 4 );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 // Campos
 | 
			
		||||
 setfillstyle( SOLID_FILL, Tema.Elementos[1].Fondo );
 | 
			
		||||
 bar(  51, 55, 179, 63 );
 | 
			
		||||
 bar(  41, 67,  84, 75 ); bar( 121, 67, 179, 75 );
 | 
			
		||||
 bar(  51, 79,  99, 87 ); bar( 141, 79, 179, 87 );
 | 
			
		||||
 | 
			
		||||
 // Visualizaci<63>n R<>pida
 | 
			
		||||
 bar(  12, 119,  68, 221 );
 | 
			
		||||
 bar(  74, 119, 214, 221 );
 | 
			
		||||
 bar( 220, 119, 243, 221 );
 | 
			
		||||
 bar( 249, 119, 303, 221 );
 | 
			
		||||
 | 
			
		||||
 // Texto Iluminado
 | 
			
		||||
 setfillstyle( SOLID_FILL, Tema.Elementos[2].Fondo );
 | 
			
		||||
 setcolor( Tema.Elementos[2].Color );
 | 
			
		||||
 | 
			
		||||
 bar( 15, 122, 67, 129 );
 | 
			
		||||
 outtextxy( 11, 120, "  000124 " );
 | 
			
		||||
 | 
			
		||||
 setcolor( Tema.Elementos[1].Color );
 | 
			
		||||
 outtextxy( 11, 120, "            Albaranes de compra " );
 | 
			
		||||
 outtextxy( 11, 130, "  000136    Aliados en el juego " );
 | 
			
		||||
 outtextxy( 11, 140, "  000250    Baticoco de mono    " );
 | 
			
		||||
 outtextxy( 11, 150, "  000045    Garganta profunda   " );
 | 
			
		||||
  outtextxy(  8, 120, "                                    003     1.500 " );
 | 
			
		||||
  outtextxy(  8, 130, "                                    045     9.999 " );
 | 
			
		||||
  outtextxy(  8, 140, "                                    009       415 " );
 | 
			
		||||
  outtextxy(  8, 150, "                                    010     2.250 " );
 | 
			
		||||
 | 
			
		||||
 setcolor( EGA_WHITE );
 | 
			
		||||
 outtextxy( 10, 224, " C<>digo de la descripci<63>n." );
 | 
			
		||||
 | 
			
		||||
 Imprime_Estaticos( CFG_BASE+2, "systm\\alum.img" );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void MuestraElemento( int CurrElemento )
 | 
			
		||||
{
 | 
			
		||||
 char buffer[80];
 | 
			
		||||
 settextstyle( SMALL_FONT, HORIZ_DIR, 5 );
 | 
			
		||||
 | 
			
		||||
 setfillstyle( SOLID_FILL, Config.TxtBgN );
 | 
			
		||||
 setcolor( Config.TxtFgN );
 | 
			
		||||
 | 
			
		||||
 // Nombre del elemento
 | 
			
		||||
 bar( 7, 332, 178, 348 );
 | 
			
		||||
 outtextxy( 10, 332, Tema.Elementos[CurrElemento].Elementos );
 | 
			
		||||
 | 
			
		||||
 // Fuente
 | 
			
		||||
 bar( 7, 387, 178, 403 );
 | 
			
		||||
 if ( Tema.Elementos[CurrElemento].Propiedades & FUENTE )
 | 
			
		||||
     outtextxy( 10, 387, Tema.Elementos[CurrElemento].Fuente );
 | 
			
		||||
 | 
			
		||||
 // Color
 | 
			
		||||
 if ( Tema.Elementos[CurrElemento].Propiedades & COLOR )
 | 
			
		||||
    setfillstyle( SOLID_FILL, Tema.Elementos[CurrElemento].Color );
 | 
			
		||||
 else
 | 
			
		||||
    setfillstyle( SOLID_FILL, EGA_LIGHTGRAY );
 | 
			
		||||
 bar( 292, 332, 308,  348 );
 | 
			
		||||
 | 
			
		||||
 // Fondo
 | 
			
		||||
 if ( Tema.Elementos[CurrElemento].Propiedades & FONDO )
 | 
			
		||||
    setfillstyle( SOLID_FILL, Tema.Elementos[CurrElemento].Fondo );
 | 
			
		||||
 else
 | 
			
		||||
    setfillstyle( SOLID_FILL, EGA_LIGHTGRAY );
 | 
			
		||||
 bar( 292, 360, 308,  376 );
 | 
			
		||||
 | 
			
		||||
 // Tamano
 | 
			
		||||
 setfillstyle( SOLID_FILL, EGA_LIGHTGRAY );
 | 
			
		||||
 bar( 264, 387, 308, 403 );
 | 
			
		||||
 sprintf( buffer, "%3d", Tema.Elementos[CurrElemento].Tamano );
 | 
			
		||||
 if ( Tema.Elementos[CurrElemento].Propiedades & TAMANO )
 | 
			
		||||
                                          outtextxy( 264, 387, buffer );
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int ObtenTamano( int TOld )
 | 
			
		||||
{
 | 
			
		||||
 char buffer[80];
 | 
			
		||||
 | 
			
		||||
 sprintf ( buffer, "%d", TOld );
 | 
			
		||||
 if (  ( InputCadenaG( buffer, 1, 4, Config.TxtBgN, Config.TxtFgN, 264, 387, 308,  403 ) >> 8 ) )
 | 
			
		||||
    itoa( TOld, buffer, 10 );
 | 
			
		||||
 | 
			
		||||
 return atoi(buffer);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void CargaFuentesElemento( int NumElemento )
 | 
			
		||||
{
 | 
			
		||||
       // Cargamos el tipo de fuente necesario
 | 
			
		||||
       switch( NumElemento )
 | 
			
		||||
       {
 | 
			
		||||
        // Fondo de pantalla
 | 
			
		||||
        case 0:
 | 
			
		||||
             strcpy( Fuentes[ 0], "Sin Fondo" );
 | 
			
		||||
             strcpy( Fuentes[ 1], "Fondo Solido" );
 | 
			
		||||
             strcpy( Fuentes[ 2], "Lineas Horizontales" );
 | 
			
		||||
             strcpy( Fuentes[ 3], "Lineas Inclinadas ////" );
 | 
			
		||||
             strcpy( Fuentes[ 4], "Lineas Inclinadas2 ////" );
 | 
			
		||||
             strcpy( Fuentes[ 5], "Lineas Inclinadas3 \\\\\\\\" );
 | 
			
		||||
             strcpy( Fuentes[ 6], "Lineas Inclinadas4 \\\\\\\\" );
 | 
			
		||||
             strcpy( Fuentes[ 7], "Crusado suave" );
 | 
			
		||||
             strcpy( Fuentes[ 8], "Crusado Grueso" );
 | 
			
		||||
             strcpy( Fuentes[ 9], "Lineas intercaladas" );
 | 
			
		||||
             strcpy( Fuentes[10], "Punteado" );
 | 
			
		||||
             strcpy( Fuentes[11], "Lineas semi-juntas" );
 | 
			
		||||
             NumFuentes = 12;
 | 
			
		||||
             break;
 | 
			
		||||
        // Fuente del Protector
 | 
			
		||||
        // Letrero digital
 | 
			
		||||
        case 5:
 | 
			
		||||
        case 6:
 | 
			
		||||
             // Realizamos una recopilaci<63>n de fuentes .FNT
 | 
			
		||||
//             NumFuentes = AdquirirArchivos( Fuentes, "FONTS\*.FNT" );
 | 
			
		||||
                NumFuentes = 0;
 | 
			
		||||
             break;
 | 
			
		||||
        default:
 | 
			
		||||
                NumFuentes = 0;
 | 
			
		||||
       }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
////////////////////////////////////////////////////////////////////////
 | 
			
		||||
//////////////////////C O N F I G U R A C I O N/////////////////////////
 | 
			
		||||
////////////////////////////////////////////////////////////////////////
 | 
			
		||||
char ColorR[18*18+10], ColorG[18*18+10], ColorB[18*18+10];
 | 
			
		||||
void RecuadraRGB( int Color );
 | 
			
		||||
 | 
			
		||||
int ObtenColor( void )
 | 
			
		||||
{
 | 
			
		||||
 char BPush, ok, Reg;
 | 
			
		||||
 int CurrCol, R, G, B;
 | 
			
		||||
 | 
			
		||||
 Optar( ENCUADRE, "Elija Color, o definal<61>:", NULL );
 | 
			
		||||
 Imprime_Estaticos( CFG_BASE+3, "systm\\alum.img" );
 | 
			
		||||
 | 
			
		||||
 CurrCol = 1;
 | 
			
		||||
 RecuadraRGB( CurrCol );
 | 
			
		||||
 ok = 0;
 | 
			
		||||
 do {
 | 
			
		||||
 | 
			
		||||
    Imprime_Bordes( CFG_BASEd + 1, ( CurrCol + 2 ),  11 );
 | 
			
		||||
    BPush = Comprueba_Secuencia( CFG_BASEd + 1, /*RatonParaColor*/NULL );
 | 
			
		||||
    Imprime_Bordes( CFG_BASEd + 1, ( CurrCol + 2 ),  -1 );
 | 
			
		||||
 | 
			
		||||
    switch ( BPush )
 | 
			
		||||
    {
 | 
			
		||||
       case  0:				  // No se pulso ningun BOTON
 | 
			
		||||
	       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
			
		||||
	       break;
 | 
			
		||||
       case -2:				  // Hay una tecla normal en BUFFER
 | 
			
		||||
	       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
			
		||||
	       break;
 | 
			
		||||
       case -1:				  // Hay una tecla especial en BUFFER
 | 
			
		||||
	       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
			
		||||
	       break;
 | 
			
		||||
       // Aceptar
 | 
			
		||||
       case  1:
 | 
			
		||||
               Reg = 0;
 | 
			
		||||
               ok = 1;
 | 
			
		||||
	       break;
 | 
			
		||||
       // Cancelar
 | 
			
		||||
       case  2:
 | 
			
		||||
               Reg = 1;
 | 
			
		||||
               ok = 1;
 | 
			
		||||
               break;
 | 
			
		||||
       default:
 | 
			
		||||
               if ( BPush >=2 && BPush <= 18 )
 | 
			
		||||
               {
 | 
			
		||||
                                CurrCol = BPush - 2;
 | 
			
		||||
                                putimage( 413, 295 - R - 18,  ColorR, COPY_PUT );
 | 
			
		||||
                                putimage( 428, 295 - G - 18,  ColorG, COPY_PUT );
 | 
			
		||||
                                putimage( 443, 295 - B - 18,  ColorB, COPY_PUT );
 | 
			
		||||
                                RecuadraRGB( CurrCol );
 | 
			
		||||
               }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 } while( !ok );
 | 
			
		||||
 | 
			
		||||
 if ( Reg == 1 )
 | 
			
		||||
 {
 | 
			
		||||
  // Restauro los registros anteriores
 | 
			
		||||
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 Optar( ENCUADRE, "Elija Color, o definal<61>:", NULL );
 | 
			
		||||
 | 
			
		||||
 return (CurrCol - 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void RecuadraRGB( int Color )
 | 
			
		||||
{
 | 
			
		||||
 char R, G, B;
 | 
			
		||||
 | 
			
		||||
 R = G = B = 0;
 | 
			
		||||
 | 
			
		||||
 getimage( 413, 295 - R - 18, 413 + 18, 295 - R, ColorR );
 | 
			
		||||
 getimage( 428, 295 - G - 18, 428 + 18, 295 - G, ColorG );
 | 
			
		||||
 getimage( 443, 295 - B - 18, 443 + 18, 295 - B, ColorB );
 | 
			
		||||
 | 
			
		||||
 ponicono( 413, 295 - R - 18, led_off, 1);
 | 
			
		||||
 ponicono( 428, 295 - G - 18, led_off, 1);
 | 
			
		||||
 ponicono( 443, 295 - B - 18, led_off, 1);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int ListaDesplegable( char Texto[][40], int NumEtos, int DesX, int DesY, char POS )
 | 
			
		||||
{
 | 
			
		||||
 static int PorDonde, NumEl = -1;
 | 
			
		||||
 | 
			
		||||
 if ( NumEl != NumEtos )
 | 
			
		||||
 {
 | 
			
		||||
    NumEl = NumEtos;    PorDonde = 0;
 | 
			
		||||
 }
 | 
			
		||||
 PorDonde ++; if ( PorDonde >= NumEtos ) PorDonde = 0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 // Fuente
 | 
			
		||||
 setfillstyle( SOLID_FILL, Config.TxtBgN );
 | 
			
		||||
 setcolor( Config.TxtFgN );
 | 
			
		||||
 bar( DesX+2, DesY+2, DesX + 175, DesY + 18 );
 | 
			
		||||
 outtextxy( DesX + 5, DesY + 2, Texto[PorDonde] );
 | 
			
		||||
 | 
			
		||||
 return PorDonde;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A partir de aqui, ya no es standard...<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
void MuestraCFG( int Campo, int Item, char como )
 | 
			
		||||
{
 | 
			
		||||
 int X0, Y0, X1, Y1;
 | 
			
		||||
 char buffer[80], draw;
 | 
			
		||||
 int i;
 | 
			
		||||
 | 
			
		||||
  draw = 1;
 | 
			
		||||
  switch( Item )
 | 
			
		||||
  {
 | 
			
		||||
   case 0:
 | 
			
		||||
        switch ( Campo )
 | 
			
		||||
        {
 | 
			
		||||
         // Imprimir en un archivo ( SI/NO )
 | 
			
		||||
         case 0:
 | 
			
		||||
              draw = 0;
 | 
			
		||||
              X0 = 350; Y0 = 95; X1 = 370; Y1 = 115;
 | 
			
		||||
              setfillstyle( SOLID_FILL, ( como == NORMAL ) ? EGA_LIGHTGRAY : EGA_RED );
 | 
			
		||||
              bar( X0, Y0, X1, Y1 );
 | 
			
		||||
 | 
			
		||||
              if ( !Config.Impresora.Printer )
 | 
			
		||||
                       ponicono( X0+5, Y0+5, led_on, 1 );
 | 
			
		||||
              else
 | 
			
		||||
                       ponicono( X0+5, Y0+5, led_off, 1 );
 | 
			
		||||
              break;
 | 
			
		||||
         // Archivo donde imprimir
 | 
			
		||||
         case 1:
 | 
			
		||||
              X0 = 541; Y0 = 99; X1 = 629; Y1 = 116;
 | 
			
		||||
              sprintf( buffer, "%s", Config.Impresora.PrintTo );
 | 
			
		||||
              break;
 | 
			
		||||
         // Numero de lineas
 | 
			
		||||
         case 2:
 | 
			
		||||
              X0 = 541; Y0 = 124; X1 = 629; Y1 = 141;
 | 
			
		||||
              sprintf( buffer, "%d", Config.Impresora.Lineas );
 | 
			
		||||
              break;
 | 
			
		||||
 | 
			
		||||
         // Imprimir normal
 | 
			
		||||
         case 3:
 | 
			
		||||
              X0 = 466; Y0 = 176; X1 = 629; Y1 = 193;
 | 
			
		||||
              sprintf( buffer, "%s", Config.Impresora.Normal );
 | 
			
		||||
              break;
 | 
			
		||||
         // Imprimir Condensado
 | 
			
		||||
         case 4:
 | 
			
		||||
              X0 = 466; Y0 = 201; X1 = 631; Y1 = 218;
 | 
			
		||||
              sprintf( buffer, "%s", Config.Impresora.Condensado );
 | 
			
		||||
              break;
 | 
			
		||||
         // Comentario inicial ( Tickets ventas )
 | 
			
		||||
         case 5:
 | 
			
		||||
              draw = 0;
 | 
			
		||||
              X0 = 421; Y0 = 250; X1 = 629; Y1 = 310;
 | 
			
		||||
              setfillstyle( SOLID_FILL, ( como == NORMAL ) ? Config.TxtBgN : Config.TxtBgI );
 | 
			
		||||
              bar( X0, Y0, X1, Y1 );
 | 
			
		||||
              setcolor ( ( como == NORMAL ) ? Config.TxtFgN : Config.TxtFgI );
 | 
			
		||||
              for ( i=0; i<4; i++)
 | 
			
		||||
               outtextxy( X0+3, Y0 + i*15, &Config.Impresora.PrincipioTickets[i][0] );
 | 
			
		||||
              break;
 | 
			
		||||
         // Comentario inicial ( Tickets ventas )
 | 
			
		||||
         case 6:
 | 
			
		||||
              draw = 0;
 | 
			
		||||
              X0 = 421; Y0 = 321; X1 = 629; Y1 = 381;
 | 
			
		||||
              setfillstyle( SOLID_FILL, ( como == NORMAL ) ? Config.TxtBgN : Config.TxtBgI );
 | 
			
		||||
              bar( X0, Y0, X1, Y1 );
 | 
			
		||||
              setcolor ( ( como == NORMAL ) ? Config.TxtFgN : Config.TxtFgI );
 | 
			
		||||
              for ( i=0; i<4; i++)
 | 
			
		||||
               outtextxy( X0+3, Y0 + i*15, &Config.Impresora.FinTickets[i][0] );
 | 
			
		||||
              break;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
   case 1:
 | 
			
		||||
        switch( Campo )
 | 
			
		||||
        {
 | 
			
		||||
         case 0:
 | 
			
		||||
            X0 = 541; Y0 = 39; X1 = 629; Y1 = 56;
 | 
			
		||||
           {
 | 
			
		||||
            auto char TipoProtector[3][10+1] = { "FUTURA", "AMPLIACION", "F.A." };
 | 
			
		||||
            sprintf( buffer, "%s", TipoProtector[Config.TProtector] );
 | 
			
		||||
           }
 | 
			
		||||
           break;
 | 
			
		||||
        case 1:
 | 
			
		||||
            X0 = 541; Y0 = 64; X1 = 629; Y1 = 81;
 | 
			
		||||
            sprintf( buffer, "       %04d", (int)Config.Protector );
 | 
			
		||||
           break;
 | 
			
		||||
        case 2:
 | 
			
		||||
            X0 = 541; Y0 = 120; X1 = 629; Y1 = 134;
 | 
			
		||||
            sprintf( buffer, "        %02d", (int)Config.VProductos.CambioHorario );
 | 
			
		||||
           break;
 | 
			
		||||
        case 3:
 | 
			
		||||
        case 4:
 | 
			
		||||
        case 5:
 | 
			
		||||
        case 6:
 | 
			
		||||
        case 7:
 | 
			
		||||
        case 8:
 | 
			
		||||
            X0 = 352; Y0 = 181 + 20*(Campo-3); X1 = 379; Y1 = Y0 + 16;
 | 
			
		||||
            setfillstyle( SOLID_FILL, EGA_LIGHTGRAY );
 | 
			
		||||
            bar( /*X0+*/381, Y0, /*X1+*/500, Y1 );
 | 
			
		||||
            sprintf( buffer, "    :00  >-> %02d:00", (int)Config.HorasMedicion[ ( Campo - 3 + 1 ) % 6 ] );
 | 
			
		||||
            TextoDoble( X0, Y0, buffer );
 | 
			
		||||
            sprintf( buffer, " %02d", (int)Config.HorasMedicion[Campo-3] );
 | 
			
		||||
           break;
 | 
			
		||||
        case  9:
 | 
			
		||||
        case 10:
 | 
			
		||||
        case 11:
 | 
			
		||||
        case 12:
 | 
			
		||||
            X0 = 352; Y0 = 331 + 20*(Campo-9); X1 = 379; Y1 = Y0 + 16;
 | 
			
		||||
            setfillstyle( SOLID_FILL, EGA_LIGHTGRAY );
 | 
			
		||||
            bar( /*X0+*/381, Y0, /*X1+*/500, Y1 );
 | 
			
		||||
            sprintf( buffer, "    :00  >-> %02d:00", (int)Config.VProductos.HoraIni[ ( Campo - 9 + 1 ) % 4 ].hora );
 | 
			
		||||
            TextoDoble( X0, Y0, buffer );
 | 
			
		||||
            sprintf( buffer, " %02d", (int)Config.VProductos.HoraIni[ ( Campo - 9 ) % 4 ].hora );
 | 
			
		||||
           break;
 | 
			
		||||
        // Permitir modificar P.C en compras ?
 | 
			
		||||
        case 13:
 | 
			
		||||
            X0 = 581; Y0 = 424; X1 = 629; Y1 = 441;
 | 
			
		||||
            sprintf( buffer, "%s", Config.VProductos.CambioPC == 1 ? "SI" : "NO" );
 | 
			
		||||
           break;
 | 
			
		||||
        // Reloj
 | 
			
		||||
        case 14:
 | 
			
		||||
           break;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 if ( draw )
 | 
			
		||||
 {
 | 
			
		||||
  setfillstyle( SOLID_FILL, ( como == NORMAL ) ? Config.TxtBgN : Config.TxtBgI );
 | 
			
		||||
  bar( X0, Y0, X1, Y1 );
 | 
			
		||||
  setcolor ( ( como == NORMAL ) ? Config.TxtFgN : Config.TxtFgI );
 | 
			
		||||
  outtextxy( X0+2, Y0, buffer );
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void EditCFG( int Campo, int Item, char como )
 | 
			
		||||
{
 | 
			
		||||
 int X0, Y0, X1, Y1;
 | 
			
		||||
 char buffer[80], draw;
 | 
			
		||||
 | 
			
		||||
  draw = 1;
 | 
			
		||||
  switch( Item )
 | 
			
		||||
  {
 | 
			
		||||
   case 0:
 | 
			
		||||
        switch ( Campo )
 | 
			
		||||
        {
 | 
			
		||||
         // Imprimir en un archivo ( SI/NO )
 | 
			
		||||
         case 0:
 | 
			
		||||
              draw = 0;
 | 
			
		||||
              X0 = 350; Y0 = 95; X1 = 370; Y1 = 115;
 | 
			
		||||
 | 
			
		||||
              Config.Impresora.Printer = !Config.Impresora.Printer;
 | 
			
		||||
 | 
			
		||||
              while( kbhit() ) getch();
 | 
			
		||||
              break;
 | 
			
		||||
         // Archivo donde imprimir
 | 
			
		||||
         case 1:
 | 
			
		||||
              X0 = 541; Y0 = 99; X1 = 629; Y1 = 116;
 | 
			
		||||
              strcpy( buffer, Config.Impresora.PrintTo );
 | 
			
		||||
              if ( !( InputCadenaG( buffer, 0,  20, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) )
 | 
			
		||||
                 strcpy( Config.Impresora.PrintTo, buffer );
 | 
			
		||||
              break;
 | 
			
		||||
         // Numero de lineas
 | 
			
		||||
         case 2:
 | 
			
		||||
              X0 = 541; Y0 = 124; X1 = 629; Y1 = 141;
 | 
			
		||||
              sprintf( buffer, "%d", Config.Impresora.Lineas );
 | 
			
		||||
              if ( !( InputCadenaG( buffer, 1,  3, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) )
 | 
			
		||||
                Config.Impresora.Lineas = atoi( buffer );
 | 
			
		||||
 | 
			
		||||
              Config.Impresora.Lineas = Config.Impresora.Lineas < 30 ? 30 : Config.Impresora.Lineas;
 | 
			
		||||
              break;
 | 
			
		||||
 | 
			
		||||
         // Imprimir normal
 | 
			
		||||
         case 3:
 | 
			
		||||
              X0 = 466; Y0 = 176; X1 = 629; Y1 = 193;
 | 
			
		||||
              strcpy( buffer, Config.Impresora.Normal );
 | 
			
		||||
              if ( !( InputCadenaG( buffer, 0,  20, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) )
 | 
			
		||||
                 strcpy( Config.Impresora.Normal, buffer );
 | 
			
		||||
              break;
 | 
			
		||||
         // Imprimir Condensado
 | 
			
		||||
         case 4:
 | 
			
		||||
              X0 = 466; Y0 = 201; X1 = 631; Y1 = 218;
 | 
			
		||||
              strcpy( buffer, Config.Impresora.Condensado );
 | 
			
		||||
              if ( !( InputCadenaG( buffer, 0,  20, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) )
 | 
			
		||||
                 strcpy( Config.Impresora.Condensado, buffer );
 | 
			
		||||
              break;
 | 
			
		||||
         // Comentario inicial ( Tickets ventas )
 | 
			
		||||
         case 5:
 | 
			
		||||
              X0 = 424; Y0 = 250; X1 = 629; Y1 = 310;
 | 
			
		||||
              EditComentario( (char *)(&Config.Impresora.PrincipioTickets[0][0]), 3, 25, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1, 15 );
 | 
			
		||||
              break;
 | 
			
		||||
         // Comentario inicial ( Tickets ventas )
 | 
			
		||||
         case 6:
 | 
			
		||||
              X0 = 424; Y0 = 321; X1 = 629; Y1 = 381;
 | 
			
		||||
              EditComentario( (char *)(&Config.Impresora.FinTickets[0][0]), 3, 25, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1, 15 );
 | 
			
		||||
              break;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
   case 1:
 | 
			
		||||
        switch( Campo )
 | 
			
		||||
        {
 | 
			
		||||
         case 0:
 | 
			
		||||
            Config.TProtector = (++Config.TProtector)%3;
 | 
			
		||||
           break;
 | 
			
		||||
        case 1:
 | 
			
		||||
            X0 = 541; Y0 = 64; X1 = 629; Y1 = 81;
 | 
			
		||||
            sprintf( buffer, "%d", (int)Config.Protector );
 | 
			
		||||
            if ( !( InputCadenaG( buffer, 1,  4, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) )
 | 
			
		||||
                 Config.Protector = atof( buffer );
 | 
			
		||||
           break;
 | 
			
		||||
        case 2:
 | 
			
		||||
            X0 = 541; Y0 = 120; X1 = 629; Y1 = 134;
 | 
			
		||||
            sprintf( buffer, "%d", (int)Config.VProductos.CambioHorario );
 | 
			
		||||
            if ( !( InputCadenaG( buffer, 1,  2, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) )
 | 
			
		||||
                Config.VProductos.CambioHorario = atoi( buffer ) % 25;
 | 
			
		||||
           break;
 | 
			
		||||
        case 3:
 | 
			
		||||
        case 4:
 | 
			
		||||
        case 5:
 | 
			
		||||
        case 6:
 | 
			
		||||
        case 7:
 | 
			
		||||
        case 8:
 | 
			
		||||
            X0 = 352; Y0 = 181 + 20*(Campo-3); X1 = 379; Y1 = Y0 + 16;
 | 
			
		||||
            sprintf( buffer, "%d", (int)Config.HorasMedicion[Campo-3] );
 | 
			
		||||
            if ( !( InputCadenaG( buffer, 1,  2, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) )
 | 
			
		||||
            {
 | 
			
		||||
                Config.HorasMedicion[Campo-3] = atoi( buffer ) % 25;
 | 
			
		||||
                MuestraCFG( ( ( Campo - 1) < 3 ) ? 8 : ( Campo - 1), Item, NORMAL );
 | 
			
		||||
            }
 | 
			
		||||
           break;
 | 
			
		||||
        case  9:
 | 
			
		||||
        case 10:
 | 
			
		||||
        case 11:
 | 
			
		||||
        case 12:
 | 
			
		||||
            X0 = 352; Y0 = 331 + 20*(Campo-9); X1 = 379; Y1 = Y0 + 16;
 | 
			
		||||
            sprintf( buffer, "%d", (int)Config.VProductos.HoraIni[Campo-9].hora );
 | 
			
		||||
            if ( !( InputCadenaG( buffer, 1,  2, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) )
 | 
			
		||||
            {
 | 
			
		||||
                Config.VProductos.HoraIni[Campo-9].hora = atoi( buffer ) % 25;
 | 
			
		||||
                MuestraCFG( ( (Campo - 1) < 0 ) ? 12 : ( Campo - 1), Item, NORMAL );
 | 
			
		||||
            }
 | 
			
		||||
           break;
 | 
			
		||||
        // Permitir modificar P.C en compras ?
 | 
			
		||||
        case 13:
 | 
			
		||||
            X0 = 581; Y0 = 424; X1 = 629; Y1 = 441;
 | 
			
		||||
            Config.VProductos.CambioPC = !Config.VProductos.CambioPC;
 | 
			
		||||
           break;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 while( kbhit() ) getch();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
/*
 | 
			
		||||
void MuestraCFG( int Campo, int Item, char como )
 | 
			
		||||
{
 | 
			
		||||
 int X0, Y0, X1, Y1;
 | 
			
		||||
 char buffer[80], draw;
 | 
			
		||||
 | 
			
		||||
  draw = 1;
 | 
			
		||||
  switch( Item )
 | 
			
		||||
  {
 | 
			
		||||
   case 0:
 | 
			
		||||
        switch ( Campo )
 | 
			
		||||
        {
 | 
			
		||||
         // Imprimir en un archivo ( SI/NO )
 | 
			
		||||
         case 0:
 | 
			
		||||
              draw = 0;
 | 
			
		||||
              X0 = 350; Y0 = 95; X1 = 370; Y1 = 115;
 | 
			
		||||
              setfillstyle( SOLID_FILL, ( como == NORMAL ) ? EGA_LIGHTGRAY : EGA_RED );
 | 
			
		||||
              bar( X0, Y0, X1, Y1 );
 | 
			
		||||
 | 
			
		||||
              if ( !Config.Impresora.Printer )
 | 
			
		||||
                       ponicono( X0+5, Y0+5, led_on, 1 );
 | 
			
		||||
              else
 | 
			
		||||
                       ponicono( X0+5, Y0+5, led_off, 1 );
 | 
			
		||||
              break;
 | 
			
		||||
         // Archivo donde imprimir
 | 
			
		||||
         case 1:
 | 
			
		||||
              X0 = 541; Y0 = 99; X1 = 629; Y1 = 116;
 | 
			
		||||
              sprintf( buffer, "%s", Config.Impresora.PrintTo );
 | 
			
		||||
              break;
 | 
			
		||||
         // Numero de lineas
 | 
			
		||||
         case 2:
 | 
			
		||||
              X0 = 541; Y0 = 124; X1 = 629; Y1 = 141;
 | 
			
		||||
              sprintf( buffer, "%d", Config.Impresora.Lineas );
 | 
			
		||||
              break;
 | 
			
		||||
 | 
			
		||||
         // Imprimir normal
 | 
			
		||||
         case 3:
 | 
			
		||||
              X0 = 466; Y0 = 324; X1 = 629; Y1 = 341;
 | 
			
		||||
              sprintf( buffer, "%s", Config.Impresora.Normal );
 | 
			
		||||
              break;
 | 
			
		||||
         // Imprimir Condensado
 | 
			
		||||
         case 4:
 | 
			
		||||
              X0 = 466; Y0 = 349; X1 = 631; Y1 = 366;
 | 
			
		||||
              sprintf( buffer, "%s", Config.Impresora.Condensado );
 | 
			
		||||
              break;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 if ( draw )
 | 
			
		||||
 {
 | 
			
		||||
  setfillstyle( SOLID_FILL, ( como == NORMAL ) ? Config.TxtBgN : Config.TxtBgI );
 | 
			
		||||
  bar( X0, Y0, X1, Y1 );
 | 
			
		||||
  setcolor ( ( como == NORMAL ) ? Config.TxtFgN : Config.TxtFgI );
 | 
			
		||||
  outtextxy( X0+2, Y0, buffer );
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 /**************************************************************************\
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  NoStandard                                                              *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Descripci<63>n:                                                            *|
 | 
			
		||||
|*              Opciones no standard de esta configuraci<63>n...               *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Entradas: N<> de opci<63>n seleccionada                                     *|
 | 
			
		||||
|*  Salidas:  (ninguna)                                                     *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
 \**************************************************************************/
 | 
			
		||||
void NoStandard( int BPush )
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										209
									
								
								ALUM_DEF.H
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										209
									
								
								ALUM_DEF.H
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,209 @@
 | 
			
		||||
#include <dos.h>                // Estructuras varias
 | 
			
		||||
 | 
			
		||||
// Para generar una demostraci<63>n: activar la macro generadora.
 | 
			
		||||
//   la demostraci<63>n excluir<69> suficiente c<>digo como para no
 | 
			
		||||
//     poder generar el programa completo a travez de ASM.
 | 
			
		||||
//#define DEMOSTRACION
 | 
			
		||||
 | 
			
		||||
#define NORMAL         0
 | 
			
		||||
#define INTENSO        1
 | 
			
		||||
 | 
			
		||||
#define ELIMINAR      -1
 | 
			
		||||
#define INSERTAR       1
 | 
			
		||||
 | 
			
		||||
#define ATRAS         -1
 | 
			
		||||
#define NUEVA_BUSQUEDA 0
 | 
			
		||||
#define ADELANTE       1
 | 
			
		||||
 | 
			
		||||
#define SEC_OPTAR      2
 | 
			
		||||
#define ENCUADRE       3
 | 
			
		||||
 | 
			
		||||
// Niveles de acceso al programa
 | 
			
		||||
#define TOTAL          0
 | 
			
		||||
#define USUARIO        1
 | 
			
		||||
#define NINGUNO        2
 | 
			
		||||
 | 
			
		||||
 /**************************************************************************\
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|* Estructura para el informe de datos varios...                            *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
 \**************************************************************************/
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
    // Empresas
 | 
			
		||||
    int  NumAlum;        // N<>mero de antiguos alumnos
 | 
			
		||||
 | 
			
		||||
    // Datos de interes vario
 | 
			
		||||
    long EspacioCon;     // Espacio consumido por el progr.
 | 
			
		||||
    long EspacioLib;     // Espacio libre en disco.
 | 
			
		||||
} DatosInformativos;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct hora
 | 
			
		||||
{
 | 
			
		||||
 char min;                      // Minutos y hora
 | 
			
		||||
 char hora;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct VentaProductos
 | 
			
		||||
{
 | 
			
		||||
 struct hora HoraIni[5];
 | 
			
		||||
 struct hora HoraFin[5];
 | 
			
		||||
 | 
			
		||||
 char CambioHorario;
 | 
			
		||||
 char CambioPC;
 | 
			
		||||
 | 
			
		||||
 char ProcentajeMesa;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
 char Printer;
 | 
			
		||||
 char PrintTo[80];
 | 
			
		||||
 | 
			
		||||
 char Lineas;
 | 
			
		||||
 char Normal[80], Condensado[80];
 | 
			
		||||
 | 
			
		||||
 char PrincipioTickets[4][25+1];
 | 
			
		||||
 char FinTickets[4][25+1];
 | 
			
		||||
} IMPRESORA;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct CajaDia
 | 
			
		||||
{
 | 
			
		||||
  char ImprimirTickets;
 | 
			
		||||
  char CobroCompleto;
 | 
			
		||||
 | 
			
		||||
  char PorcentajeMesa;
 | 
			
		||||
 | 
			
		||||
  char SaltarInicio;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
 char FillBgS, FillBgC, FillBgF;
 | 
			
		||||
 char NumFg, NumBg, NumLn;
 | 
			
		||||
 char DigFg, DigBg;
 | 
			
		||||
 char TxtBgN, TxtBgI, TxtFgN, TxtFgI;
 | 
			
		||||
 | 
			
		||||
 IMPRESORA Impresora;
 | 
			
		||||
 | 
			
		||||
 struct VentaProductos VProductos;
 | 
			
		||||
 | 
			
		||||
 struct CajaDia OpcionesCaja;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 char   TProtector;
 | 
			
		||||
 double Protector;
 | 
			
		||||
 | 
			
		||||
 char Prot_fnt[80];
 | 
			
		||||
 char Vent_msg[80];
 | 
			
		||||
 | 
			
		||||
 char HorasMedicion[6];
 | 
			
		||||
 | 
			
		||||
 long UltimaEmpresa;
 | 
			
		||||
 char Intentos;
 | 
			
		||||
 | 
			
		||||
} CONFIG;
 | 
			
		||||
 | 
			
		||||
struct CuentaBancaria
 | 
			
		||||
{
 | 
			
		||||
 int    Oficina;                //  4 dig.
 | 
			
		||||
 int    Sucursal;               //  4 dig.
 | 
			
		||||
 char   DigControl;             //  2 dig.
 | 
			
		||||
 double NumCuenta;              // 10 dig.
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
 long CodigoR;
 | 
			
		||||
 | 
			
		||||
 char Nombre[15+1];
 | 
			
		||||
 char Apellidos[30+1];
 | 
			
		||||
// char Apellido2[15+1];
 | 
			
		||||
 | 
			
		||||
 char Direccion[28+1];
 | 
			
		||||
 char Localidad[15+1];
 | 
			
		||||
 char Provincia[15+1];
 | 
			
		||||
 unsigned long CodPostal;
 | 
			
		||||
 | 
			
		||||
 char Telefono1[15+1];
 | 
			
		||||
 char Fax[15+1];
 | 
			
		||||
 | 
			
		||||
 struct CuentaBancaria CC;
 | 
			
		||||
 | 
			
		||||
 char Notas[4][37+1];
 | 
			
		||||
 | 
			
		||||
 char FuturaAmpliacion[1024];
 | 
			
		||||
} AntiguosAlumnos;
 | 
			
		||||
 | 
			
		||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
 | 
			
		||||
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 LeeFuentes(char *file);
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
 {
 | 
			
		||||
  int x, y;             // Coordenadas iniciales de muestreo
 | 
			
		||||
  char ndigitos;        // n<>mero de digitos a mostrar
 | 
			
		||||
  char AX, AY;          // factor de espaciado
 | 
			
		||||
  char C1, C2, C3;      // colores de fondo, texto, borde
 | 
			
		||||
 | 
			
		||||
  // Datos privados y uso interno exclusivamente
 | 
			
		||||
  unsigned int  Flen;   // longitud de la frase actual
 | 
			
		||||
  char BitByte;         // bit del byte por el que va en el recorrido
 | 
			
		||||
  char currByte;        // byte actual dentro de la frase
 | 
			
		||||
 } p_Ampliada;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Fuente_Amplia( char *Frase, p_Ampliada far *FA );
 | 
			
		||||
void FuenteAmplia( char *Frase, p_Ampliada far *FA );
 | 
			
		||||
void Fuente_Amplia3( char *Frase, p_Ampliada *FA );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
extern struct date FechaGestionActual;
 | 
			
		||||
 | 
			
		||||
extern CONFIG Config;
 | 
			
		||||
 | 
			
		||||
extern char led_on [18] [18];
 | 
			
		||||
extern char led_off [18] [18];
 | 
			
		||||
extern char flecha  [18] [18];
 | 
			
		||||
 | 
			
		||||
int  Optar( int optar, ... );
 | 
			
		||||
void ponicono(int x,int y,char matriz[18][18], char pos);
 | 
			
		||||
void formatea_u_long( unsigned long Numero, char *Inter_Chg);
 | 
			
		||||
void formatea_long( long Numero, char *Inter_Chg);
 | 
			
		||||
int  InputCadenaG(char *s, int numalp, int lmax, int cc, int cf, int X0, int Y0, int X1, int Y1);
 | 
			
		||||
int  EditComentario( char *Comentario, int Lineas, int Columnas, int cc, int cf, int X0, int Y0, int X1, int Y1, int Inc );
 | 
			
		||||
 | 
			
		||||
void TextoDoble( int x, int y, char *texto );
 | 
			
		||||
void AnulaInterrupcion(void);
 | 
			
		||||
 | 
			
		||||
extern char IntVect;
 | 
			
		||||
extern char VisualMode;
 | 
			
		||||
 | 
			
		||||
void Error( int code, char *MensajeError );
 | 
			
		||||
 | 
			
		||||
extern int far RatonVentas(void);
 | 
			
		||||
 | 
			
		||||
// Cambia las opciones de configuraci<63>n.
 | 
			
		||||
void ConfigurarEntorno( void );
 | 
			
		||||
 | 
			
		||||
// Gestion de Alumnos
 | 
			
		||||
void GstAlumnos(void);
 | 
			
		||||
 | 
			
		||||
int Comprueba_Impresora(void);
 | 
			
		||||
							
								
								
									
										1557
									
								
								ALUM_GST.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1557
									
								
								ALUM_GST.CPP
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										792
									
								
								ALUM_UTL.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										792
									
								
								ALUM_UTL.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,792 @@
 | 
			
		||||
#include <dos.h>
 | 
			
		||||
#include <conio.h>
 | 
			
		||||
#include <ctype.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <alloc.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <stdarg.h>
 | 
			
		||||
#include <graphics.h>
 | 
			
		||||
 | 
			
		||||
#include "c:\program\src_dos\libs\make_bot\make_bot.h"
 | 
			
		||||
#include "c:\program\src_dos\libs\bdatos\bdatos.hh"
 | 
			
		||||
#include "alum_def.h"
 | 
			
		||||
 | 
			
		||||
#define BLANCO EGA_WHITE
 | 
			
		||||
#define ENCUADRE       3
 | 
			
		||||
#define SEC_OPTAR      2
 | 
			
		||||
 | 
			
		||||
void BEEP(void);
 | 
			
		||||
 | 
			
		||||
 /**************************************************************************\
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  InputCadenaG                                                            *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Descripci<63>n:                                                            *|
 | 
			
		||||
|*              Edita una cadena en formato gr<67>fico                         *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Entradas:                                                               *|
 | 
			
		||||
|*            Puntero a los datos editados                                  *|
 | 
			
		||||
|*            0 alfanumerico   1 numerico                                   *|
 | 
			
		||||
|*            longitud de la cadena (TEXTO/NUMERO)                          *|
 | 
			
		||||
|*            color del texto                                               *|
 | 
			
		||||
|*            color de fondo                                                *|
 | 
			
		||||
|*            Limites de acotacion                                          *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Salidas:  (ninguna)                                                     *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
 \**************************************************************************/
 | 
			
		||||
int InputCadenaG(char *s, int numalp, int lmax, int cc, int cf, int X0, int Y0, int X1, int Y1)
 | 
			
		||||
{
 | 
			
		||||
  // A todas las y les sumaba antes +RoW*12 parametro que indica la linea
 | 
			
		||||
 | 
			
		||||
  int  ls;                                      // longitud cadena
 | 
			
		||||
  char Status = 0;
 | 
			
		||||
  char *s1;                                     // puntero a cadena inicial
 | 
			
		||||
  int c, ok;
 | 
			
		||||
 | 
			
		||||
  s1 = s;                                       // inicio cadena
 | 
			
		||||
 | 
			
		||||
                setfillstyle(SOLID_FILL, cf);
 | 
			
		||||
                bar(X0, Y0, X1, Y1);
 | 
			
		||||
                setcolor(cc);		outtextxy( X0, Y0, s1 );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  ls = strlen ( s );                            // Longitud de actual
 | 
			
		||||
 | 
			
		||||
  if ( ls < lmax ) {
 | 
			
		||||
		setcolor(BLANCO);
 | 
			
		||||
		outtextxy( X0+textwidth( s1 ), Y0, "<EFBFBD>");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  s += ls;                                      // se coloca en el final
 | 
			
		||||
 | 
			
		||||
  do{
 | 
			
		||||
	c = getch();                            // obtiene tecla
 | 
			
		||||
 | 
			
		||||
        if ( c == 27 ) Status = 1;
 | 
			
		||||
 | 
			
		||||
	ok = ( c == 27 || c == 13 || c == 0);              // 13 = INTRO || Especiales
 | 
			
		||||
 | 
			
		||||
	if ( c == 8  && ls > 0 && !ok ) {       //  8 = Back Space
 | 
			
		||||
		ls--;
 | 
			
		||||
		s--;
 | 
			
		||||
 | 
			
		||||
		*s = '\0';
 | 
			
		||||
 | 
			
		||||
		setfillstyle(SOLID_FILL, cf);
 | 
			
		||||
                bar(X0, Y0, X1, Y1);
 | 
			
		||||
                setcolor(cc);		outtextxy( X0, Y0, s1 );
 | 
			
		||||
		setcolor(BLANCO);
 | 
			
		||||
 | 
			
		||||
		outtextxy( X0+textwidth( s1 ), Y0, "<EFBFBD>");
 | 
			
		||||
		setcolor(cc);
 | 
			
		||||
 | 
			
		||||
	} else {
 | 
			
		||||
		if ( !numalp && c >= 32 && c <= 254  && ls < lmax) {
 | 
			
		||||
 | 
			
		||||
			*s++ = c;
 | 
			
		||||
			ls++;
 | 
			
		||||
 | 
			
		||||
			*s = '\0';
 | 
			
		||||
                        setfillstyle(SOLID_FILL, cf);
 | 
			
		||||
                        bar(X0, Y0, X1, Y1);
 | 
			
		||||
                        setcolor(cc);		outtextxy( X0, Y0, s1 );
 | 
			
		||||
 | 
			
		||||
			if ( ls < lmax ) {
 | 
			
		||||
				setcolor(BLANCO);
 | 
			
		||||
				outtextxy( X0+textwidth( s1 ), Y0, "<EFBFBD>");
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		} else {
 | 
			
		||||
			if ( numalp && isdigit(c)  && ls < lmax) {
 | 
			
		||||
				*s++ = c;
 | 
			
		||||
				ls++;
 | 
			
		||||
 | 
			
		||||
				*s = '\0';                              // Cero final
 | 
			
		||||
                                setfillstyle(SOLID_FILL, cf);
 | 
			
		||||
                                bar(X0, Y0, X1, Y1);
 | 
			
		||||
                                setcolor(cc);		outtextxy( X0, Y0, s1 );
 | 
			
		||||
 | 
			
		||||
				if ( ls < lmax ) {
 | 
			
		||||
					setcolor(BLANCO);
 | 
			
		||||
					outtextxy( X0+textwidth( s1 ), Y0, "<EFBFBD>");
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
		/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
 | 
			
		||||
		else if( c == 27 ) {*s='\0'; ok = 1; }
 | 
			
		||||
		/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
 | 
			
		||||
		else BEEP();
 | 
			
		||||
	}
 | 
			
		||||
     }
 | 
			
		||||
 | 
			
		||||
  }while(!ok);
 | 
			
		||||
 | 
			
		||||
  ok = 1;
 | 
			
		||||
  *s = ' ';
 | 
			
		||||
  while( ok && ls >= 0 ) {
 | 
			
		||||
		if(*s==' ') { *s = '\0'; s--; ls--;
 | 
			
		||||
		} else { s++; ok = 0; }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  *s = '\0';
 | 
			
		||||
 | 
			
		||||
  while(kbhit()) getch();              // Vacia Buffer impidiendo falsas
 | 
			
		||||
					//  pulsaciones...
 | 
			
		||||
 | 
			
		||||
  return ( (Status<<8) + (ls&0x00FF) );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void BEEP(void)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
	sound(440);
 | 
			
		||||
	delay(50);
 | 
			
		||||
	nosound();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void formatea_long( long Numero, char *Inter_Chg)
 | 
			
		||||
{
 | 
			
		||||
 char Buffer1[80];
 | 
			
		||||
 | 
			
		||||
 int c;
 | 
			
		||||
 char Nmc = 0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 if ( Numero < 0 ) { Numero *= -1; Nmc = 1; }
 | 
			
		||||
 | 
			
		||||
 sprintf(Buffer1, "%lu", Numero );
 | 
			
		||||
 | 
			
		||||
 Inter_Chg[0]='\0';
 | 
			
		||||
 | 
			
		||||
 strrev(Buffer1);
 | 
			
		||||
 | 
			
		||||
 c = strlen( Buffer1 );
 | 
			
		||||
 | 
			
		||||
 while( c >= 3 )
 | 
			
		||||
 {
 | 
			
		||||
    c -= 3;
 | 
			
		||||
    strncat( Inter_Chg, Buffer1, 3);
 | 
			
		||||
 | 
			
		||||
    strrev(Buffer1);
 | 
			
		||||
 | 
			
		||||
    Buffer1[c] = '\0';
 | 
			
		||||
 | 
			
		||||
    strrev(Buffer1);
 | 
			
		||||
 | 
			
		||||
    if(strlen(Buffer1)!=0)
 | 
			
		||||
			strcat( Inter_Chg, "." );
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 strcat( Inter_Chg, Buffer1);
 | 
			
		||||
 if ( Nmc == 1 )
 | 
			
		||||
     strcat( Inter_Chg, "-" );
 | 
			
		||||
 | 
			
		||||
 strrev(Inter_Chg);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*// return Buffer2;*/
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void formatea_u_long( unsigned long Numero, char *Inter_Chg)
 | 
			
		||||
{
 | 
			
		||||
 char Buffer1[80];
 | 
			
		||||
 | 
			
		||||
 int c;
 | 
			
		||||
 | 
			
		||||
 sprintf(Buffer1, "%lu", Numero);
 | 
			
		||||
 | 
			
		||||
 Inter_Chg[0]='\0';
 | 
			
		||||
 | 
			
		||||
 strrev(Buffer1);
 | 
			
		||||
 | 
			
		||||
 c = strlen( Buffer1 );
 | 
			
		||||
 | 
			
		||||
 while( c >= 3 )
 | 
			
		||||
 {
 | 
			
		||||
 | 
			
		||||
    c -= 3;
 | 
			
		||||
    strncat( Inter_Chg, Buffer1, 3);
 | 
			
		||||
 | 
			
		||||
    strrev(Buffer1);
 | 
			
		||||
 | 
			
		||||
    Buffer1[c] = '\0';
 | 
			
		||||
 | 
			
		||||
    strrev(Buffer1);
 | 
			
		||||
 | 
			
		||||
    if(strlen(Buffer1)!=0)
 | 
			
		||||
			strcat( Inter_Chg, "." );
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 strcat( Inter_Chg, Buffer1);
 | 
			
		||||
 strrev(Inter_Chg);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*// return Buffer2;*/
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int Optar( int optar, ... )
 | 
			
		||||
{
 | 
			
		||||
 static void far *fondo, far *fd_aceptar, far *fd_cancelar;
 | 
			
		||||
 static char Memoria = 0;
 | 
			
		||||
 | 
			
		||||
 int DEV = 0, ok = 0, linea = 0;
 | 
			
		||||
 int Center; char *buff;
 | 
			
		||||
 struct textsettingstype texttypeinfo;
 | 
			
		||||
 | 
			
		||||
 va_list ap;
 | 
			
		||||
 va_start( ap, &optar );
 | 
			
		||||
 | 
			
		||||
 if ( Memoria == 1 )
 | 
			
		||||
 {
 | 
			
		||||
  putimage( 170, 165, fondo      , COPY_PUT );
 | 
			
		||||
  putimage( 170, 320, fd_aceptar , COPY_PUT );
 | 
			
		||||
  putimage( 370, 320, fd_cancelar, COPY_PUT );
 | 
			
		||||
 | 
			
		||||
  farfree( fondo       );
 | 
			
		||||
  farfree( fd_aceptar  );
 | 
			
		||||
  farfree( fd_cancelar );
 | 
			
		||||
 | 
			
		||||
  Memoria = 0;
 | 
			
		||||
 | 
			
		||||
  if ( optar == ENCUADRE ) return DEV;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 if ( ( fondo       = farmalloc( JD_imagesize( 170, 165, 470, 315 ) ) ) != NULL &&
 | 
			
		||||
      ( fd_aceptar  = farmalloc( JD_imagesize( 170, 320, 270, 350 ) ) ) != NULL &&
 | 
			
		||||
      ( fd_cancelar = farmalloc( JD_imagesize( 370, 320, 470, 350 ) ) ) != NULL   )
 | 
			
		||||
 {
 | 
			
		||||
   Memoria = 1;
 | 
			
		||||
 | 
			
		||||
   getimage( 170, 165, 470, 315, fondo      );
 | 
			
		||||
   getimage( 170, 320, 270, 350, fd_aceptar );
 | 
			
		||||
   getimage( 370, 320, 470, 350, fd_cancelar);
 | 
			
		||||
 | 
			
		||||
   gettextsettings( &texttypeinfo );
 | 
			
		||||
 | 
			
		||||
   Imprime_Estaticos( 100, "systm\\alum.img" );
 | 
			
		||||
 | 
			
		||||
   settextstyle( SMALL_FONT, HORIZ_DIR, 6 );
 | 
			
		||||
 | 
			
		||||
   setcolor( 63 );
 | 
			
		||||
 | 
			
		||||
   while ( (buff = va_arg(ap, char *)) != NULL )
 | 
			
		||||
   {
 | 
			
		||||
     Center = (296 - textwidth( buff ) ) / 2;
 | 
			
		||||
     outtextxy( 172+Center, ( (linea == 0 ) ? 167 : 200 + 20*linea ), buff );
 | 
			
		||||
     linea++;
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   va_end(ap);
 | 
			
		||||
 | 
			
		||||
   settextstyle( texttypeinfo.font, texttypeinfo.direction, texttypeinfo.charsize );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   if ( optar != ENCUADRE )
 | 
			
		||||
   {
 | 
			
		||||
    ok = 0;   	       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
			
		||||
    do {
 | 
			
		||||
      switch( Comprueba_Secuencia( SEC_OPTAR, NULL ) )
 | 
			
		||||
      {
 | 
			
		||||
        case  0:				  // No se pulso ningun BOTON
 | 
			
		||||
        case -2:
 | 
			
		||||
        case -1:
 | 
			
		||||
	       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
			
		||||
               if ( optar == 0 ) ok = 1;
 | 
			
		||||
	       break;
 | 
			
		||||
        case  1:
 | 
			
		||||
                DEV = 1; ok = 1;
 | 
			
		||||
                break;
 | 
			
		||||
        case  2:
 | 
			
		||||
                DEV = 0; ok = 1;
 | 
			
		||||
                break;
 | 
			
		||||
      }
 | 
			
		||||
    }while( !ok );
 | 
			
		||||
 | 
			
		||||
    putimage( 170, 165, fondo      , COPY_PUT );
 | 
			
		||||
    putimage( 170, 320, fd_aceptar , COPY_PUT );
 | 
			
		||||
    putimage( 370, 320, fd_cancelar, COPY_PUT );
 | 
			
		||||
 | 
			
		||||
   farfree( fondo       );
 | 
			
		||||
   farfree( fd_aceptar  );
 | 
			
		||||
   farfree( fd_cancelar );
 | 
			
		||||
 | 
			
		||||
   Memoria = 0;
 | 
			
		||||
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 } else {
 | 
			
		||||
     farfree( fondo       );
 | 
			
		||||
     farfree( fd_aceptar  );
 | 
			
		||||
     farfree( fd_cancelar );
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 return DEV;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 char led_off [18] [18] =
 | 
			
		||||
 {
 | 
			
		||||
  { 3,3,3,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,0,7,7,7,7,0,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,0,7,4,12,12,4,7,0,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 0,7,4,12,4,4,4,4,8,0,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 0,7,4,4,4,4,4,4,8,0,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 0,7,4,4,4,4,4,12,8,0,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 0,7,4,4,4,4,12,12,8,0,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,0,8,4,12,12,12,8,0,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,0,8,8,8,8,0,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 }
 | 
			
		||||
 };
 | 
			
		||||
 | 
			
		||||
 char led_on [18] [18] =
 | 
			
		||||
 {
 | 
			
		||||
  { 3,3,3,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,0,7,7,7,7,0,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,0,7,11,13,13,11,7,0,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 0,7,11,13,11,11,11,11,8,0,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 0,7,11,11,11,11,11,11,8,0,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 0,7,11,11,11,11,11,13,8,0,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 0,7,11,11,11,11,13,13,8,0,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,0,8,11,13,13,13,8,0,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,0,8,8,8,8,0,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 },
 | 
			
		||||
  { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 }
 | 
			
		||||
 };
 | 
			
		||||
 | 
			
		||||
 char flecha [18] [18] =
 | 
			
		||||
 {
 | 
			
		||||
  3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,
 | 
			
		||||
  3,3,3,3,3,3,3,3,0,4,0,3,3,3,3,3,3,3,
 | 
			
		||||
  3,3,3,3,3,3,3,0,4,4,4,0,3,3,3,3,3,3,
 | 
			
		||||
  3,3,3,3,3,3,0,4,4,4,4,4,0,3,3,3,3,3,
 | 
			
		||||
  3,3,3,3,3,0,4,4,4,4,4,4,4,0,3,3,3,3,
 | 
			
		||||
  3,3,3,3,0,4,4,4,4,4,4,4,4,4,0,3,3,3,
 | 
			
		||||
  3,3,3,0,4,4,4,4,4,4,4,4,4,4,4,0,3,3,
 | 
			
		||||
  3,3,0,0,0,0,0,4,4,4,4,4,0,0,0,0,0,3,
 | 
			
		||||
  3,3,3,3,3,3,0,4,4,4,4,4,0,3,3,3,3,3,
 | 
			
		||||
  3,3,3,3,3,3,0,4,4,4,4,4,0,3,3,3,3,3,
 | 
			
		||||
  3,3,3,3,3,3,0,4,4,4,4,4,0,3,3,3,3,3,
 | 
			
		||||
  3,3,3,3,3,3,0,4,4,4,4,4,0,3,3,3,3,3,
 | 
			
		||||
  3,3,3,3,3,3,0,4,4,4,4,4,0,3,3,3,3,3,
 | 
			
		||||
  3,3,3,3,3,3,0,4,4,4,4,4,0,3,3,3,3,3,
 | 
			
		||||
  3,3,3,3,3,3,0,4,4,4,4,4,0,3,3,3,3,3,
 | 
			
		||||
  3,3,3,3,3,3,0,4,4,4,4,4,0,3,3,3,3,3,
 | 
			
		||||
  3,3,3,3,3,3,0,4,4,4,4,4,0,3,3,3,3,3,
 | 
			
		||||
  3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3
 | 
			
		||||
 };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 /**************************************************************************\
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  poicono                                                                 *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Descripci<63>n:                                                            *|
 | 
			
		||||
|*              Dibuja el bitmap que se encuentra en matriz, en <20>a pos x,y  *|
 | 
			
		||||
|*              y segun un angulo de rotacion definido en pos.              *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Entradas: Coordenadas x, y                                              *|
 | 
			
		||||
|*            Matriz del bitmap y ( 0: Normal 1: 90<39> ...                    *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Salidas:  (ninguna)                                                     *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
 \**************************************************************************/
 | 
			
		||||
void ponicono(int x,int y,char matriz[18][18], char pos)
 | 
			
		||||
{
 | 
			
		||||
 int veces1,veces2;
 | 
			
		||||
 | 
			
		||||
 for (veces1=0;veces1<=17;veces1++)
 | 
			
		||||
     {
 | 
			
		||||
     for (veces2=0;veces2<=17;veces2++)
 | 
			
		||||
	 {
 | 
			
		||||
 | 
			
		||||
          switch( pos )
 | 
			
		||||
          {
 | 
			
		||||
           case 1:
 | 
			
		||||
                   if ( matriz[veces1][veces2] != 3 )
 | 
			
		||||
           	    putpixel(x+veces1,y+veces2,matriz[veces1][veces2]);
 | 
			
		||||
                   break;
 | 
			
		||||
           case 2:
 | 
			
		||||
                   if ( matriz[17-veces2][veces1] != 3 )
 | 
			
		||||
           	    putpixel(x+veces1,y+veces2,matriz[17-veces2][veces1]);
 | 
			
		||||
                   break;
 | 
			
		||||
           case 3:
 | 
			
		||||
                   if ( matriz[17-veces1][veces2] != 3 )
 | 
			
		||||
           	    putpixel(x+veces1,y+veces2,matriz[17-veces1][veces2]);
 | 
			
		||||
                   break;
 | 
			
		||||
           case 4:
 | 
			
		||||
                   if ( matriz[veces2][veces1] != 3 )
 | 
			
		||||
           	    putpixel(x+veces1,y+veces2,matriz[veces2][veces1]);
 | 
			
		||||
                   break;
 | 
			
		||||
          }
 | 
			
		||||
	 }
 | 
			
		||||
     }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 /**************************************************************************\
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  CalculaAjusteDia                                                        *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Descripci<63>n:                                                            *|
 | 
			
		||||
|*              Calcula el ajuste necesario para el comienzo de los dias    *|
 | 
			
		||||
|*              y el n<>mero de dias que tiene el mes en curso.              *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Entradas: Retorno del Ajuste, y Dias del Mes                            *|
 | 
			
		||||
|*            Mes para iniciar c<>lculos                                     *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Salidas:  OK      Todo ha ido bien                                      *|
 | 
			
		||||
|*            ERROR                                                         *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
 \**************************************************************************/
 | 
			
		||||
int CalculaAjusteDias( char *Ajuste, char *DiasMes, char Mes, int Anyo )
 | 
			
		||||
{
 | 
			
		||||
 int dev, n, b, dsem, dia;
 | 
			
		||||
 | 
			
		||||
 // Dias de los meses, si el a<>o no es bisiesto
 | 
			
		||||
 char DiasMeses[12] = { 31, 00, 31, 30, 31, 30,
 | 
			
		||||
                        31, 31, 30, 31, 30, 31 };
 | 
			
		||||
 | 
			
		||||
 // Ajusta febrero si es bisiesto el a<>o
 | 
			
		||||
 DiasMeses[1] = (Anyo%4 == 0) ? 29 : 28;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 dev = ERROR;
 | 
			
		||||
 // Solo si la entrada es correcta
 | 
			
		||||
 if ( Mes >= 1 && Mes <=12 )
 | 
			
		||||
 {
 | 
			
		||||
   dev = OK;
 | 
			
		||||
   // Obtenemos que dia, ( 0 - 365 ), es el 1<> del mes
 | 
			
		||||
   dia = 0;
 | 
			
		||||
   for ( n = 0; n < 12 && n < (Mes-1); n++ )
 | 
			
		||||
                            dia += DiasMeses[n];
 | 
			
		||||
 | 
			
		||||
   n     = Anyo-1988;                          // a<>os para bisiesto
 | 
			
		||||
   b     = (n+3)/4;                            // a<>os bisies. pasados
 | 
			
		||||
   dsem  = 4;                                  // 1o. Ene 1988: Viernes
 | 
			
		||||
   dsem += (n*365+b);                          // 1o. Ene actual
 | 
			
		||||
   dsem  = (dsem+dia)%7;                       // d<>a seleccionado
 | 
			
		||||
 | 
			
		||||
   *Ajuste  = dsem;
 | 
			
		||||
   *DiasMes = DiasMeses[ Mes - 1 ];
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 return dev;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 /**************************************************************************\
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  TextoDoble                                                              *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Descripci<63>n:                                                            *|
 | 
			
		||||
|*              Muestra el texto, con doble letra, en las coordenadas dadas *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Entradas: X, Y, texto                                                   *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Salidas: (ninguna)                                                      *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
 \**************************************************************************/
 | 
			
		||||
void TextoDoble( int x, int y, char *texto )
 | 
			
		||||
{
 | 
			
		||||
  setcolor( EGA_BLACK );
 | 
			
		||||
  outtextxy( x, y, texto );
 | 
			
		||||
 | 
			
		||||
  setcolor( EGA_WHITE );
 | 
			
		||||
  outtextxy( x+1, y+1, texto );
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/////// EDITAR COMENTARIO....
 | 
			
		||||
int EditComentario( char *Comentario, int Lineas, int Columnas, int cc, int cf, int X0, int Y0, int X1, int Y1, int Inc )
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
  int  ls;                                       // longitud cadena
 | 
			
		||||
  char *s1, *s, *s_tmp, *s_tmp1;                 // puntero a cadena inicial
 | 
			
		||||
  int key, ok, Linea = 0, Columna = 0, lmax;
 | 
			
		||||
  char Buffer[80];
 | 
			
		||||
 | 
			
		||||
  lmax = Columnas;
 | 
			
		||||
 | 
			
		||||
  setfillstyle(SOLID_FILL, cf);                 // selecciona los atributos de
 | 
			
		||||
  setcolor(cc);                                 // devuelve el color a su estado
 | 
			
		||||
 | 
			
		||||
  for ( ok = 0; ok < Lineas; ok ++ )
 | 
			
		||||
  {
 | 
			
		||||
    bar( X0, Y0+Linea*Inc, X1, Y0+Linea*Inc + Inc); // relleno, y Borra el campo
 | 
			
		||||
    outtextxy( X0, Y0+ok*Inc, &Comentario[ (lmax+1)*Linea ] );		 // e imprime la cadena.
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ok = 0;
 | 
			
		||||
 | 
			
		||||
  s_tmp1 = s_tmp = s = s1 = &Comentario[0 + (lmax+1)*Linea ];                        // inicio cadena
 | 
			
		||||
 | 
			
		||||
  s += lmax ; *s = '\0';
 | 
			
		||||
  s = s_tmp;
 | 
			
		||||
 | 
			
		||||
do {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  setfillstyle(SOLID_FILL, cf);                 // selecciona los atributos de
 | 
			
		||||
  bar( X0, Y0+Linea*Inc, X1, Y0+Linea*Inc + Inc); // relleno, y Borra el campo
 | 
			
		||||
  setcolor(cc);                                 // devuelve el color a su estado
 | 
			
		||||
 | 
			
		||||
  outtextxy( X0, Y0+Linea*Inc, s1 );		 // e imprime la cadena.
 | 
			
		||||
//  ls = strlen ( s );                           // Longitud de la cadena actual
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if ( Columna < lmax ) {			 // Muestra cursor si es posible
 | 
			
		||||
	strncpy( Buffer, s1, Columna );
 | 
			
		||||
	Buffer[Columna] = '\0';
 | 
			
		||||
	setcolor(BLANCO);
 | 
			
		||||
	outtextxy( X0 + textwidth( Buffer ), Y0+Linea*Inc+2, "<EFBFBD>");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  switch ( ( key = getch() ) ) {                 // obtiene tecla
 | 
			
		||||
      // Intro o Return
 | 
			
		||||
      case 13:
 | 
			
		||||
		 if( Linea < Lineas  ) {
 | 
			
		||||
		  setfillstyle(SOLID_FILL, cf);               // selecciona los atributos de
 | 
			
		||||
		  bar( X0, Y0+Linea*Inc, X1, Y0+Linea*Inc + Inc); // relleno, y Borra el campo
 | 
			
		||||
		  setcolor(cc);                                // devuelve el color a su estado
 | 
			
		||||
		  outtextxy( X0, Y0+Linea*Inc, s1 );		 // e imprime la cadena.
 | 
			
		||||
 | 
			
		||||
		  Linea++;
 | 
			
		||||
		  s_tmp1 = s_tmp = s = s1 = &Comentario[/*Linea + */(lmax+1)*Linea ];            // inicio cadena
 | 
			
		||||
		  s += lmax; *s = '\0';
 | 
			
		||||
		  Columna = 0;
 | 
			
		||||
		  s = s_tmp1 =  s_tmp = s1;
 | 
			
		||||
		 }
 | 
			
		||||
	  break;
 | 
			
		||||
 | 
			
		||||
    case  0:
 | 
			
		||||
 | 
			
		||||
	  switch ( key = getch() ) {
 | 
			
		||||
 | 
			
		||||
	   // F. Arriba
 | 
			
		||||
	   case  72:
 | 
			
		||||
		 if( Linea >  0 ) {
 | 
			
		||||
		  setfillstyle(SOLID_FILL, cf);               // selecciona los atributos de
 | 
			
		||||
		  bar( X0, Y0+Linea*Inc, X1, Y0+Linea*Inc + Inc); // relleno, y Borra el campo
 | 
			
		||||
		  setcolor(cc);                                // devuelve el color a su estado
 | 
			
		||||
		  outtextxy( X0, Y0+Linea*Inc, s1 );		 // e imprime la cadena.
 | 
			
		||||
 | 
			
		||||
		  Linea--;
 | 
			
		||||
		  s_tmp1 = s_tmp = s = s1 = &Comentario[/*Linea + */(lmax+1)*Linea ];            // inicio cadena
 | 
			
		||||
		  s += lmax; *s = '\0';
 | 
			
		||||
		  if ( Columna < strlen( s1 ) )  s_tmp += Columna; else { Columna = 0;
 | 
			
		||||
		   s_tmp = s1; }
 | 
			
		||||
		  s = s_tmp1 = s_tmp;
 | 
			
		||||
 | 
			
		||||
		 }
 | 
			
		||||
 | 
			
		||||
		  break;
 | 
			
		||||
	   // F. Abajo
 | 
			
		||||
	   case  80:
 | 
			
		||||
 | 
			
		||||
		 if( Linea < Lineas  ) {
 | 
			
		||||
		  setfillstyle(SOLID_FILL, cf);                 // selecciona los atributos de
 | 
			
		||||
		  bar( X0, Y0+Linea*Inc, X1, Y0+Linea*Inc + Inc); // relleno, y Borra el campo
 | 
			
		||||
		  setcolor(cc);                                 // devuelve el color a su estado
 | 
			
		||||
		  outtextxy( X0, Y0+Linea*Inc, s1 );		 // e imprime la cadena.
 | 
			
		||||
 | 
			
		||||
		  Linea++;
 | 
			
		||||
		  s_tmp1 = s_tmp = s = s1 = &Comentario[/*Linea + */(lmax+1)*Linea ];            // inicio cadena
 | 
			
		||||
		  s += lmax; *s = '\0';
 | 
			
		||||
		  if ( Columna < strlen( s1 ) )  s_tmp += Columna; else { Columna = 0;
 | 
			
		||||
                   s_tmp = s1; }
 | 
			
		||||
		  s = s_tmp1 =  s_tmp;
 | 
			
		||||
		 }
 | 
			
		||||
		  break;
 | 
			
		||||
	   // F. Derecha
 | 
			
		||||
	   case  77:
 | 
			
		||||
	   case   9:
 | 
			
		||||
		  if ( Columna < strlen(s1) ) { Columna++; s++; }
 | 
			
		||||
		  break;
 | 
			
		||||
	   // F. Izquierda
 | 
			
		||||
	   case  75:
 | 
			
		||||
	   case  11:
 | 
			
		||||
		  if ( Columna > 0) { Columna--; s--; }
 | 
			
		||||
		 break;
 | 
			
		||||
	   default:
 | 
			
		||||
		 break;
 | 
			
		||||
	  }
 | 
			
		||||
 | 
			
		||||
	  break;
 | 
			
		||||
    // Back Space
 | 
			
		||||
    case  8:
 | 
			
		||||
	    if ( Columna > 0 ) {
 | 
			
		||||
			       Columna--;
 | 
			
		||||
			       s--;
 | 
			
		||||
			       s_tmp1 = s_tmp = s;
 | 
			
		||||
			       while ( *s_tmp1 != NULL ) {
 | 
			
		||||
						       s_tmp1++;
 | 
			
		||||
						       *s_tmp = *s_tmp1;
 | 
			
		||||
						       s_tmp++;
 | 
			
		||||
			       }
 | 
			
		||||
	    }
 | 
			
		||||
	    break;
 | 
			
		||||
    case 27:
 | 
			
		||||
	    ok = 1;
 | 
			
		||||
	    break;
 | 
			
		||||
    default:
 | 
			
		||||
		if ( key >= 32 && key <= 254 && Columna < lmax) {
 | 
			
		||||
								*s++ = key;
 | 
			
		||||
								Columna++;
 | 
			
		||||
		}
 | 
			
		||||
	    break;
 | 
			
		||||
  }
 | 
			
		||||
}while(!ok);
 | 
			
		||||
 | 
			
		||||
while(kbhit()) getch();              // Vacia Buffer impidiendo falsas
 | 
			
		||||
				     //  pulsaciones...
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  setfillstyle(SOLID_FILL, cf);                 // selecciona los atributos de
 | 
			
		||||
  bar( X0, Y0+Linea*Inc, X1, Y0+Linea*Inc + Inc); // relleno, y Borra el campo
 | 
			
		||||
  setcolor(cc);                                 // devuelve el color a su estado
 | 
			
		||||
 | 
			
		||||
  outtextxy( X0, Y0+Linea*Inc, s1 );		 // e imprime la cadena.
 | 
			
		||||
 | 
			
		||||
return /* de momento nada */ 0;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
char *PideClave( char *LineaVentana, char *Comprobante )
 | 
			
		||||
{
 | 
			
		||||
  static char Clave[15+1];
 | 
			
		||||
 | 
			
		||||
  Clave[0] = '\0';
 | 
			
		||||
  Optar( ENCUADRE, LineaVentana, "Introduzca clave para:", Comprobante, NULL );
 | 
			
		||||
 | 
			
		||||
  InputCadenaG( Clave, 0, 15, EGA_WHITE, EGA_WHITE, 190, 280, 450, 305 );
 | 
			
		||||
 | 
			
		||||
  Optar( ENCUADRE, LineaVentana, "Introduzca clave para:", Comprobante, NULL );
 | 
			
		||||
 | 
			
		||||
  return Clave;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void MuestraGraficas( int PosX, int PosY, int xWidth, int yWidth, int NDatos, long *Datos, char Mensajes[][12] )
 | 
			
		||||
{
 | 
			
		||||
 long DMaximo;
 | 
			
		||||
 int i, AnchoBarra;
 | 
			
		||||
 | 
			
		||||
  // Limpiamos la zona de visualizaci<63>n
 | 
			
		||||
  setfillstyle( SOLID_FILL, EGA_WHITE );
 | 
			
		||||
  bar( PosX, PosY, PosX + xWidth, PosY + yWidth );
 | 
			
		||||
 | 
			
		||||
  // Calculamos el maximo valor a mostrar
 | 
			
		||||
  DMaximo = 0;
 | 
			
		||||
  for ( i = 0; i < NDatos; i++ )
 | 
			
		||||
          if ( Datos[i] > DMaximo )
 | 
			
		||||
                   DMaximo = Datos[i];
 | 
			
		||||
 | 
			
		||||
  // Ahora calculamos el ancho de cada barra de porcentaje
 | 
			
		||||
  AnchoBarra = xWidth / NDatos;
 | 
			
		||||
 | 
			
		||||
  // Empiezo a dibujar las barras
 | 
			
		||||
  PosY += yWidth - 1;
 | 
			
		||||
  yWidth -= (AnchoBarra / 4);
 | 
			
		||||
  setfillstyle( SLASH_FILL, EGA_BLUE );
 | 
			
		||||
  setcolor( EGA_BLACK );
 | 
			
		||||
  for ( i = 0; i < NDatos; i++ )
 | 
			
		||||
  {
 | 
			
		||||
   if ( DMaximo != 0 )
 | 
			
		||||
     bar3d( PosX + AnchoBarra*i, PosY - ( ( Datos[i] * yWidth ) / DMaximo), PosX + AnchoBarra*(i+1), PosY,
 | 
			
		||||
          AnchoBarra / 4, 1 );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 /**************************************************************************\
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  PideClaveUsuario                                                        *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Descripci<63>n:                                                            *|
 | 
			
		||||
|*              Pide la clave de usuario y comprueba si es correcta.        *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Entradas: (ninguna)                                                     *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*  Salidas:  OK -clave correcta- ERROR -clave incorrecta-                  *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
|*                                                                          *|
 | 
			
		||||
 \**************************************************************************/
 | 
			
		||||
char PideClaveUsuario( void )
 | 
			
		||||
{
 | 
			
		||||
return OK;
 | 
			
		||||
/*
 | 
			
		||||
  char buffer[80], Clave[80];
 | 
			
		||||
  int CodEmpl, dev;
 | 
			
		||||
 | 
			
		||||
  BDatos BEmpl_p;           // Base de datos de Empleados
 | 
			
		||||
  INFO_EMPLEADOS SEmpl_p;   // Estructura de Empleados
 | 
			
		||||
 | 
			
		||||
  dev = ERROR;
 | 
			
		||||
 | 
			
		||||
  sprintf( buffer, "datos\\%s\\info_emp.dbf", NEmpresa );
 | 
			
		||||
  if ( BEmpl_p.AbrirReg( buffer, sizeof( INFO_EMPLEADOS ) ) == ERROR )
 | 
			
		||||
  {
 | 
			
		||||
   Optar( 0, "<22> ALERTA !", "No existen empleados", "c<>digos de acceso anulados", "PERMISOS ABIERTOS", NULL );
 | 
			
		||||
   return OK;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  Clave[0] = '\0';
 | 
			
		||||
  Optar( ENCUADRE, "<22> Identifiquese !", "", "Login:                   ", "Password:                ", NULL );
 | 
			
		||||
 | 
			
		||||
  // Obtenemos el c<>digo de usuario:
 | 
			
		||||
  do {
 | 
			
		||||
      if ( InputCadenaG( buffer, 1, 5, EGA_WHITE, EGA_WHITE, 190, 280, 450, 305 ) >> 8 )
 | 
			
		||||
                                                                                 return ERROR;
 | 
			
		||||
  } while ( !MatchEmpleado( atoi(buffer) ) );
 | 
			
		||||
 | 
			
		||||
//  InputCadenaG( Clave, 0, 15, EGA_WHITE, EGA_WHITE, 190, 280, 450, 305 );
 | 
			
		||||
 | 
			
		||||
  if ( ! ( InputCadenaG( buffer, 1, 5, EGA_WHITE, EGA_WHITE, 190, 280, 450, 305 ) >> 8 ) )
 | 
			
		||||
  {
 | 
			
		||||
    if ( SEmpl_p.Password[0] != '\0' && strcmpi( buffer, SEmpl_p.Password ) == 0 )
 | 
			
		||||
                                  dev = OK;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Optar( ENCUADRE, "<22> Identifiquese !", "", "Login:                   ", "Password:                ", NULL );
 | 
			
		||||
 | 
			
		||||
  return dev;
 | 
			
		||||
*/
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								DATOS/ALUM.DBF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/ALUM.DBF
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/CONFIG.CFG
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/CONFIG.CFG
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DATOS/THEMES.CFG
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DATOS/THEMES.CFG
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								FONTS/PROT_PTL.FNT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								FONTS/PROT_PTL.FNT
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								FONTS/VENT_MSG.FNT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								FONTS/VENT_MSG.FNT
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										55
									
								
								PRNFILE.OUT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								PRNFILE.OUT
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,55 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
N<EFBFBD> Alumno:     0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Alejandro 1                        
 | 
			
		||||
 | 
			
		||||
1                                  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
1 (1)                              
 | 
			
		||||
 | 
			
		||||
C.P.     1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
N<EFBFBD> Alumno:     0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Antonio                            
 | 
			
		||||
 | 
			
		||||
                                   
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 ()                                
 | 
			
		||||
 | 
			
		||||
C.P.     0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
N<EFBFBD> Alumno:     0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Pepito Grillo                      
 | 
			
		||||
 | 
			
		||||
                                   
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 ()                                
 | 
			
		||||
 | 
			
		||||
C.P.     0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										9
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
			
		||||
#ALUM 
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
*25/09/1997* 
 | 
			
		||||
 
 | 
			
		||||
ToDo: wwtcf? 
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								SYSTM/ALDISK.BMP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								SYSTM/ALDISK.BMP
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 47 KiB  | 
							
								
								
									
										517
									
								
								SYSTM/ALUM.IMG
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										517
									
								
								SYSTM/ALUM.IMG
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,517 @@
 | 
			
		||||
**
 | 
			
		||||
** Codigo fuente para MAKE_BOTON
 | 
			
		||||
**
 | 
			
		||||
**
 | 
			
		||||
** Dise<73>ado integramente, por Jose-David.Guillen@cs.us.es
 | 
			
		||||
**                            http://www.arrakis.es/~infomundo/JD
 | 
			
		||||
**
 | 
			
		||||
*****************************************************************************
 | 
			
		||||
*
 | 
			
		||||
*  ATENCION !!!
 | 
			
		||||
*               ALTERAR ESTE FICHERO, CAUSARA EL MALFUNCIONAMIENTO DEL
 | 
			
		||||
*               PROGRAMA DE APOYO... ( ERRORES NO DOCUMENTADOS )
 | 
			
		||||
*
 | 
			
		||||
*****************************************************************************
 | 
			
		||||
 | 
			
		||||
#4
 | 
			
		||||
 | 
			
		||||
************************************************  Botones D:   2
 | 
			
		||||
****                                        ****  Botones S:  20
 | 
			
		||||
**          M<>dulo de Botones: Gst. AAlum     **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
!1, 11
 | 
			
		||||
 | 
			
		||||
$ 400,  40, 515,  65,       7, 63, 56, 2, 2, 000,  23
 | 
			
		||||
$ 520,  40, 635,  65,       7, 63, 56, 2, 2, 000,  50
 | 
			
		||||
$ 400,  70, 515,  95,       7, 63, 56, 2, 2, 000,  83
 | 
			
		||||
$ 520,  70, 635,  95,       7, 63, 56, 2, 2, 000,  82
 | 
			
		||||
$ 400, 100, 440, 125,       7, 63, 56, 2, 2, 000,  73
 | 
			
		||||
$ 445, 100, 475, 125,       7, 63, 56, 2, 2, 000,  71
 | 
			
		||||
$ 480, 100, 555, 125,       7, 63, 56, 2, 2, 000,  48
 | 
			
		||||
$ 560, 100, 590, 125,       7, 63, 56, 2, 2, 000,  79
 | 
			
		||||
$ 595, 100, 635, 125,       7, 63, 56, 2, 2, 000,  81
 | 
			
		||||
$ 400,   5, 635,  30,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
$ 505, 455, 635,  475,        63,  0,  0, 0, 000, 000
 | 
			
		||||
 | 
			
		||||
************************************************  Botones D:   2
 | 
			
		||||
****                                        ****  Botones S:  30
 | 
			
		||||
**  M<>dulo para la Gestion de los Ant.Alumnos **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
<EFBFBD>30
 | 
			
		||||
 | 
			
		||||
& 400,   5, 635,  30,       7, 63, 56, 2, 2
 | 
			
		||||
|  400,  7,                 2,  5,  0,  0,  Gestion de Antiguos Alumnos,
 | 
			
		||||
|  401,  8,                 2,  5,  0, 63,  Gestion de Antiguos Alumnos,
 | 
			
		||||
 | 
			
		||||
& 400,  40, 515,  65,       7, 63, 56, 2, 2
 | 
			
		||||
|  400, 42,                 2,  5,  0,  0,  Imprimir Fich.,
 | 
			
		||||
|  401, 43,                 2,  5,  0, 63,  Imprimir Fich.,
 | 
			
		||||
 |  400, 43,                 2,  5,  0,  0,  _,
 | 
			
		||||
 |  401, 44,                 2,  5,  0, 63,  _,
 | 
			
		||||
 | 
			
		||||
& 520,  40, 635,  65,       7, 63, 56, 2, 2
 | 
			
		||||
|  518, 42,                 2,  5,  0,  0,  Men<65> Principal,
 | 
			
		||||
|  519, 43,                 2,  5,  0, 63,  Men<65> Principal,
 | 
			
		||||
 |  518, 43,                 2,  5,  0,  0,  _,
 | 
			
		||||
 |  519, 44,                 2,  5,  0, 63,  _,
 | 
			
		||||
 | 
			
		||||
& 400,  70, 515,  95,       7, 63, 56, 2, 2
 | 
			
		||||
|  400, 72,                 2,  5,  0,  0,  Eliminar Alum.,
 | 
			
		||||
|  401, 73,                 2,  5,  0, 63,  Eliminar Alum.,
 | 
			
		||||
& 520,  70, 635,  95,       7, 63, 56, 2, 2
 | 
			
		||||
|  518, 72,                 2,  5,  0,  0,  Insertar Alum.,
 | 
			
		||||
|  519, 73,                 2,  5,  0, 63,  Insertar Alum.,
 | 
			
		||||
 | 
			
		||||
& 400, 100, 440, 125,       7, 63, 56, 2, 2
 | 
			
		||||
|  400, 102,                 2,  5,  0,  0,  <<,
 | 
			
		||||
|  401, 103,                 2,  5,  0, 63,  <<,
 | 
			
		||||
& 445, 100, 475, 125,       7, 63, 56, 2, 2
 | 
			
		||||
|  445, 102,                 2,  5,  0,  0,  <-,
 | 
			
		||||
|  446, 103,                 2,  5,  0, 63,  <-,
 | 
			
		||||
 | 
			
		||||
& 480, 100, 555, 125,       7, 63, 56, 2, 2
 | 
			
		||||
|  480, 102,                 2,  5,  0,  0,   Buscar,
 | 
			
		||||
|  481, 103,                 2,  5,  0, 63,   Buscar,
 | 
			
		||||
 | 
			
		||||
& 560, 100, 590, 125,       7, 63, 56, 2, 2
 | 
			
		||||
|  560, 102,                 2,  5,  0,  0,  ->,
 | 
			
		||||
|  561, 103,                 2,  5,  0, 63,  ->,
 | 
			
		||||
& 595, 100, 635, 125,       7, 63, 56, 2, 2
 | 
			
		||||
|  595, 102,                 2,  5,  0,  0,   >>,
 | 
			
		||||
|  596, 103,                 2,  5,  0, 63,   >>,
 | 
			
		||||
 | 
			
		||||
|   5,  10,                 2,  5,  0,  0,  C<>digo:,
 | 
			
		||||
|   6,  11,                 2,  5,  0, 63,  C<>digo:,
 | 
			
		||||
&  65,   6, 150,  29,      63,  7, 56, 0, 2
 | 
			
		||||
 | 
			
		||||
|   5,  45,                 2,  5,  0,  0,  Nombre:,
 | 
			
		||||
|   6,  46,                 2,  5,  0, 63,  Nombre:,
 | 
			
		||||
& 150,  41, 390,  64,      63,  7, 56, 0, 2
 | 
			
		||||
 | 
			
		||||
|   5,  70,                 2,  5,  0,  0,  Apellidos:,
 | 
			
		||||
|   6,  71,                 2,  5,  0, 63,  Apellidos:,
 | 
			
		||||
& 150,  66, 390,  89,      63,  7, 56, 0, 2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
|   5, 115,                 2,  5,  0,  0,  Direccion:,
 | 
			
		||||
|   6, 116,                 2,  5,  0, 63,  Direccion:,
 | 
			
		||||
&  90, 111, 390, 134,      63,  7, 56, 0, 2
 | 
			
		||||
 | 
			
		||||
|   5, 140,                 2,  5,  0,  0,  Localidad:                  Provincia:,
 | 
			
		||||
|   6, 141,                 2,  5,  0, 63,  Localidad:                  Provincia:,
 | 
			
		||||
&  90, 136, 225, 159,      63,  7, 56, 0, 2
 | 
			
		||||
& 310, 136, 440, 159,      63,  7, 56, 0, 2
 | 
			
		||||
 | 
			
		||||
|  450, 140,                 2,  5,  0,  0, C.Postal:,
 | 
			
		||||
|  451, 141,                 2,  5,  0, 63, C.Postal:,
 | 
			
		||||
& 520, 136, 600, 159,      63,  7, 56, 0, 2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
|   5, 165,                 2,  5,  0,  0,  Tel<65>fono:,
 | 
			
		||||
|   6, 166,                 2,  5,  0, 63,  Tel<65>fono:,
 | 
			
		||||
&  90, 161, 247, 184,      63,  7, 56, 0, 2
 | 
			
		||||
& 253, 161, 390, 184,      63,  7, 56, 0, 2
 | 
			
		||||
 | 
			
		||||
&   5, 188, 255, 225,       7, 63, 56, 2, 2
 | 
			
		||||
|   5, 188,                 2,  5,  0,  0,  Oficin. Sucur. D.C. Num.Cuenta,
 | 
			
		||||
|   6, 189,                 2,  5,  0, 63,  Oficin. Sucur. D.C. Num.Cuenta,
 | 
			
		||||
 | 
			
		||||
* Ancho de la linea: 23
 | 
			
		||||
&  10, 208,  60, 221,      63,  7, 56, 1, 1
 | 
			
		||||
&  65, 208, 115, 221,      63,  7, 56, 1, 1
 | 
			
		||||
& 120, 208, 145, 221,      63,  7, 56, 1, 1
 | 
			
		||||
& 150, 208, 250, 221,      63,  7, 56, 1, 1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
|   5, 190,                 2,  5,  0,  0,                                            Notas:,
 | 
			
		||||
|   6, 191,                 2,  5,  0, 63,                                            Notas:,
 | 
			
		||||
& 400, 161, 635, 225,      63,  7, 56, 2, 2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
|   6, 236,                 2,  4,  0, 63,  123456789-123456789-123456789-123456789-  123456789-123456789-123456789-  123456789-12345,
 | 
			
		||||
 | 
			
		||||
&   5, 230, 635, 255,       7, 63, 56, 2, 2
 | 
			
		||||
|   5, 235,                 2,  5,  0,  0,  Nombre y Apellidos                       Direcci<63>n               Tel<65>fono,
 | 
			
		||||
|   6, 236,                 2,  5,  0, 63,  Nombre y Apellidos                       Direcci<63>n               Tel<65>fono,
 | 
			
		||||
 | 
			
		||||
&   5, 260, 300,  450,          63,  7, 56, 2, 2
 | 
			
		||||
& 305, 260, 497,  450,          63,  7, 56, 2, 2
 | 
			
		||||
& 503, 260, 635,  450,          63,  7, 56, 2, 2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* Linea de fondo para ayudas
 | 
			
		||||
& 5, 455, 500,  475,           0, 63, 56, 0, 2
 | 
			
		||||
& 505, 455, 635,  475,        63,  0,  0, 0, 2
 | 
			
		||||
 | 
			
		||||
************************************************  Botones D:
 | 
			
		||||
****                                        ****  Botones S:  31
 | 
			
		||||
**    M<>dulo buscar asociado a Proveedores    **
 | 
			
		||||
*                                              *
 | 
			
		||||
**     Muestreo del patr<74>n para busquedas     **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
 | 
			
		||||
<EFBFBD>31
 | 
			
		||||
&  265, 200, 365, 220,      63,  0, 56, 0, 2
 | 
			
		||||
&  265, 225, 465, 245,      63,  0, 56, 0, 2
 | 
			
		||||
&  265, 250, 465, 275,      63,  0, 56, 0, 2
 | 
			
		||||
&  265, 280, 465, 305,      63,  0, 56, 0, 2
 | 
			
		||||
 | 
			
		||||
|  175, 200,                 2,  6,  0,  0, Nombre:  ,
 | 
			
		||||
 |  176, 201,                 2,  6,  0, 63, Nombre:  ,
 | 
			
		||||
|  175, 225,                 2,  6,  0,  0, Apellidos: ,
 | 
			
		||||
 |  176, 226,                 2,  6,  0, 63, Apellidos: ,
 | 
			
		||||
|  175, 250,                 2,  6,  0,  0, Direccion,
 | 
			
		||||
 |  176, 251,                 2,  6,  0, 63, Direccion,
 | 
			
		||||
|  175, 275,                 2,  6,  0,  0, Tel<65>fono:,
 | 
			
		||||
 |  176, 276,                 2,  6,  0, 63, Tel<65>fono:,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
************************************************  Botones D:   6
 | 
			
		||||
****                                        ****  Botones S:    
 | 
			
		||||
**          Parte Utilizada por Optar         **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
!2, 2
 | 
			
		||||
 | 
			
		||||
$  170, 320, 270, 350,       7, 63, 56, 2, 2, 000,  30
 | 
			
		||||
$  370, 320, 470, 350,       7, 63, 56, 2, 2, 000,  46
 | 
			
		||||
 | 
			
		||||
<EFBFBD>100
 | 
			
		||||
&  170, 165, 470, 315,       7, 63, 56, 0, 2
 | 
			
		||||
&  172, 167, 468, 190,       1, 56, 63, 0, 2
 | 
			
		||||
 | 
			
		||||
&  170, 320, 270, 350,       7, 63, 56, 2, 2
 | 
			
		||||
|  175, 325,                 2,  6,  0, 63,  Aceptar,
 | 
			
		||||
|  176, 326,                 2,  6,  0,  0,  Aceptar,
 | 
			
		||||
|  175, 327,                 2,  6,  0, 63,  _,
 | 
			
		||||
|  176, 328,                 2,  6,  0,  0,  _,
 | 
			
		||||
 | 
			
		||||
&  370, 320, 470, 350,       7, 63, 56, 2, 2
 | 
			
		||||
|  373, 325,                 2,  6,  0, 63,  Cancelar,
 | 
			
		||||
|  374, 326,                 2,  6,  0,  0,  Cancelar,
 | 
			
		||||
|  373, 327,                 2,  6,  0, 63,  _,
 | 
			
		||||
|  374, 328,                 2,  6,  0,  0,  _,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
************************************************  Botones D:
 | 
			
		||||
****                                        ****  Botones S: 120
 | 
			
		||||
**     M<>dulo para configurar el entorno      **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
*!3, 12
 | 
			
		||||
!3, 11
 | 
			
		||||
 | 
			
		||||
$  195, 430, 310,  450,           7, 63, 56, 0, 2, 000, 050  * Men<65> Principal
 | 
			
		||||
$  181, 275, 205,  295,           7, 63, 56, 2, 2, 000, 000  * Combinaciones
 | 
			
		||||
$  213, 275, 261,  295,           7, 63, 56, 2, 2, 000, 000  * Guardar
 | 
			
		||||
$  262, 275, 310,  295,           7, 63, 56, 2, 2, 000, 000  * Eliminar
 | 
			
		||||
$  181, 330, 205,  350,           7, 63, 56, 2, 2, 000, 000  * Elementos
 | 
			
		||||
$  181, 385, 205,  405,           7, 63, 56, 2, 2, 000, 000  * Fuentes
 | 
			
		||||
 | 
			
		||||
$  290, 330, 310,  350,           7, 63, 56, 2, 2, 000, 000  * Color
 | 
			
		||||
$  290, 358, 310,  378,           7, 63, 56, 2, 2, 000, 000  * Fondo
 | 
			
		||||
$  262, 385, 310,  405,          63,  7, 56, 2, 2, 000, 000  * Tama<6D>o
 | 
			
		||||
 | 
			
		||||
$  325, 370, 345,  450,           7, 56, 63, 0, 2, 000, 000  * Impresora
 | 
			
		||||
$  325, 285, 345,  365,           7, 56, 63, 0, 2, 000, 000  * Ventas
 | 
			
		||||
*$  325, 200, 345,  280,           7, 56, 63, 0, 2, 000, 000  * Varios...
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<EFBFBD>120
 | 
			
		||||
 | 
			
		||||
& 400,   5, 635,  30,       7, 63, 56, 2, 2
 | 
			
		||||
|  400,  7,                 2,  5,  0,  0,  Cambiar la configuraci<63>n,
 | 
			
		||||
|  401,  8,                 2,  5,  0, 63,  Cambiar la configuraci<63>n,
 | 
			
		||||
 | 
			
		||||
* Linea de separaci<63>n
 | 
			
		||||
& 319,   5, 321,  450,           0, 63, 63, 0, 2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
&   5,  35, 310,  240,           0, 63, 56, 0, 2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
|    5, 250,                 2,  5,  0,  0,  Combinaciones:,
 | 
			
		||||
|    5, 250,                 2,  5,  0, 63,  Combinaciones:,
 | 
			
		||||
&   5, 275, 180,  295,          63,  7, 56, 2, 2
 | 
			
		||||
& 181, 275, 205,  295,           7, 63, 56, 2, 2
 | 
			
		||||
 | 
			
		||||
& 213, 275, 261,  295,           7, 63, 56, 2, 2
 | 
			
		||||
& 262, 275, 310,  295,           7, 63, 56, 2, 2
 | 
			
		||||
| 217, 277,                 2,  4,  0,  0, Guardar Eliminar,
 | 
			
		||||
| 218, 278,                 2,  4,  0, 63, Guardar Eliminar,
 | 
			
		||||
 | 
			
		||||
|    5, 305,                 2,  5,  0,  0,  Elementos:,
 | 
			
		||||
|    5, 305,                 2,  5,  0, 63,  Elementos:,
 | 
			
		||||
&   5, 330, 180,  350,          63,  7, 56, 2, 2
 | 
			
		||||
& 181, 330, 205,  350,           7, 63, 56, 2, 2
 | 
			
		||||
 | 
			
		||||
|    5, 360,                 2,  5,  0,  0,  Fuentes:,
 | 
			
		||||
|    5, 360,                 2,  5,  0, 63,  Fuentes:,
 | 
			
		||||
&   5, 385, 180,  405,          63,  7, 56, 2, 2
 | 
			
		||||
& 181, 385, 205,  405,           7, 63, 56, 2, 2
 | 
			
		||||
 | 
			
		||||
|  210, 332,                 2,  4,  0,  0,  Color:,
 | 
			
		||||
|  211, 333,                 2,  4,  0, 63,  Color:,
 | 
			
		||||
& 290, 330, 310,  350,           7, 63, 56, 2, 2
 | 
			
		||||
|  210, 360,                 2,  4,  0,  0,  Fondo:,
 | 
			
		||||
|  211, 361,                 2,  4,  0, 63,  Fondo:,
 | 
			
		||||
& 290, 358, 310,  378,           7, 63, 56, 2, 2
 | 
			
		||||
|  210, 387,                 2,  4,  0,  0,  Tama<6D>o:,
 | 
			
		||||
|  211, 388,                 2,  4,  0, 63,  Tama<6D>o:,
 | 
			
		||||
& 262, 385, 310,  405,          63,  7, 56, 2, 2
 | 
			
		||||
 | 
			
		||||
&  195, 430, 310,  450,           7, 63, 56, 0, 2
 | 
			
		||||
|  200, 430,                 2,  5,  0,  0, Men<65> Principal,
 | 
			
		||||
|  201, 431,                 2,  5,  0, 63, Men<65> Principal,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* Linea de fondo para ayudas
 | 
			
		||||
& 5, 455, 500,  475,           0, 63, 56, 0, 2
 | 
			
		||||
& 505, 455, 635,  475,        63,  0,  0, 0, 2
 | 
			
		||||
 | 
			
		||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
***** Configurar Impresora
 | 
			
		||||
& 325, 370, 345,  450,           7, 56, 63, 0, 2
 | 
			
		||||
|  327, 370,                 2,  4,  1,  0,  Impresora ,
 | 
			
		||||
|  328, 371,                 2,  4,  1, 63,  Impresora ,
 | 
			
		||||
 | 
			
		||||
& 325, 285, 345,  365,           7, 56, 63, 0, 2
 | 
			
		||||
|  327, 285,                 2,  4,  1,  0,  Opciones  ,
 | 
			
		||||
|  328, 286,                 2,  4,  1, 63,  Opciones  ,
 | 
			
		||||
 | 
			
		||||
& 325, 200, 345,  280,           7, 56, 63, 0, 2
 | 
			
		||||
|  327, 200,                 2,  4,  1,  0,  Varios... ,
 | 
			
		||||
|  328, 201,                 2,  4,  1, 63,  Varios... ,
 | 
			
		||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
<EFBFBD>121
 | 
			
		||||
 | 
			
		||||
&  200,  40, 305,   60,           7, 63, 56, 2, 2
 | 
			
		||||
|  200,  41,                 2,  4,  0,  0,  Mensaje de Linea,
 | 
			
		||||
|  201,  42,                 2,  4,  0, 63,  Mensaje de Linea,
 | 
			
		||||
&  200,  62, 252,   82,           7, 63, 56, 2, 2
 | 
			
		||||
&  253,  62, 305,   82,           7, 63, 56, 2, 2
 | 
			
		||||
|  198,  63,                 2,  4,  0,  0,  Imprimir  Menu Pr,
 | 
			
		||||
|  199,  64,                 2,  4,  0, 63,  Imprimir  Menu Pr,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
|   10,  51,                 2,  4,  0,  0,  Campo:,
 | 
			
		||||
|   11,  52,                 2,  4,  0, 63,  Campo:,
 | 
			
		||||
&   50,  54, 180,   64,          63,  7, 56, 0, 2
 | 
			
		||||
|   10,  63,                 2,  4,  0,  0,  Cmo:         Tlg:,
 | 
			
		||||
|   11,  64,                 2,  4,  0, 63,  Cmo:         Tlg:,
 | 
			
		||||
&   40,  66,  85,   76,          63,  7, 56, 0, 2
 | 
			
		||||
&  120,  66, 180,   76,          63,  7, 56, 0, 2
 | 
			
		||||
|   10,  75,                 2,  4,  0,  0,  Dircc:          nn:,
 | 
			
		||||
|   11,  76,                 2,  4,  0, 63,  Dircc:          nn:,
 | 
			
		||||
&   50,  78, 100,   88,          63,  7, 56, 0, 2
 | 
			
		||||
&  140,  78, 180,   88,          63,  7, 56, 0, 2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
&   10, 100, 305,  115,           7, 63, 56, 0, 2
 | 
			
		||||
|   10, 102,                 2,  4,  0,  0,  C<>digo    Descripci<63>n              Unds.  P.V.P,
 | 
			
		||||
|   11, 103,                 2,  4,  0, 63,  C<>digo    Descripci<63>n              Unds.  P.V.P,
 | 
			
		||||
 | 
			
		||||
&   10, 117,  70,  223,          63,  7, 56, 2, 2
 | 
			
		||||
&   72, 117, 216,  223,          63,  7, 56, 2, 2
 | 
			
		||||
&  218, 117, 245,  223,          63,  7, 56, 2, 2
 | 
			
		||||
&  247, 117, 305,  223,          63,  7, 56, 2, 2
 | 
			
		||||
 | 
			
		||||
* Texto se<73>alado
 | 
			
		||||
&   14, 121,  68,  130,           3,  3,  3, 0, 2
 | 
			
		||||
|   11, 120,                 2,  4,  0,  0,   000124    Albaranes de compra     ,
 | 
			
		||||
|   11, 130,                 2,  4,  0,  0,   000136    Aliados en el juego     ,
 | 
			
		||||
|   11, 140,                 2,  4,  0,  0,   000250    Baticoco de mono        ,
 | 
			
		||||
|   11, 150,                 2,  4,  0,  0,   000045    Garganta profunda       ,
 | 
			
		||||
|    8, 120,                 2,  4,  0,  0,                                     003     1.500,
 | 
			
		||||
|    8, 130,                 2,  4,  0,  0,                                     045     9.999,
 | 
			
		||||
|    8, 140,                 2,  4,  0,  0,                                     009       415,
 | 
			
		||||
|    8, 150,                 2,  4,  0,  0,                                     010     2.250,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* Linea de fondo para ayudas
 | 
			
		||||
&   10, 225, 259,  235,           0, 63, 56, 0, 2
 | 
			
		||||
&  261, 225, 305,  235,          63,  7, 56, 0, 2
 | 
			
		||||
|   10, 224,                 2,  4,  0, 63,  C<>digo de la descripci<63>n.,
 | 
			
		||||
 | 
			
		||||
<EFBFBD>122
 | 
			
		||||
* Cuadro de di<64>logo
 | 
			
		||||
*&   5,  35, 310,  240,           0, 63, 56, 0, 2
 | 
			
		||||
&   60, 145, 240,  230,           7, 63, 56, 0, 2
 | 
			
		||||
&   63, 148, 237,  165,           1, 56, 63, 0, 2
 | 
			
		||||
|   62, 148,                 2,  4,  0,  0,       Cuadro de Dialogo,
 | 
			
		||||
|   63, 149,                 2,  4,  0, 63,       Cuadro de Dialogo,
 | 
			
		||||
 | 
			
		||||
&   63, 215, 113,  227,           7, 63, 56, 0, 2
 | 
			
		||||
&  187, 215, 237,  227,           7, 63, 56, 0, 2
 | 
			
		||||
|   62, 214,                 2,  4,  0,  0,  Aceptar,
 | 
			
		||||
|   63, 215,                 2,  4,  0, 63,  Aceptar,
 | 
			
		||||
|   64, 214,                 2,  4,  0,  0,                      Cancelar,
 | 
			
		||||
|   65, 215,                 2,  4,  0, 63,                      Cancelar,
 | 
			
		||||
 | 
			
		||||
*****        *****
 | 
			
		||||
***    Color   ***
 | 
			
		||||
*****        *****
 | 
			
		||||
************************************************  Botones D:  11
 | 
			
		||||
****                                        ****  Botones S: 123
 | 
			
		||||
**     M<>dulo para configurar el entorno      **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
!4, 18
 | 
			
		||||
$  170, 320, 270, 350,       7, 63, 56, 2, 2, 000,  30  * ACEPTAR
 | 
			
		||||
$  370, 320, 470, 350,       7, 63, 56, 2, 2, 000,  46  * CANCELAR
 | 
			
		||||
 | 
			
		||||
$  180, 205, 200, 225,       0, 56, 63, 2, 2, 000, 000
 | 
			
		||||
$  205, 205, 225, 225,       1, 56, 63, 2, 2, 000, 000
 | 
			
		||||
$  230, 205, 250, 225,       2, 56, 63, 2, 2, 000, 000
 | 
			
		||||
$  255, 205, 275, 225,       3, 56, 63, 2, 2, 000, 000
 | 
			
		||||
 | 
			
		||||
$  180, 230, 200, 250,       4, 56, 63, 2, 2, 000, 000
 | 
			
		||||
$  205, 230, 225, 250,       5, 56, 63, 2, 2, 000, 000
 | 
			
		||||
$  230, 230, 250, 250,       6, 56, 63, 2, 2, 000, 000
 | 
			
		||||
$  255, 230, 275, 250,       7, 56, 63, 2, 2, 000, 000
 | 
			
		||||
 | 
			
		||||
$  180, 255, 200, 275,       8, 56, 63, 2, 2, 000, 000
 | 
			
		||||
$  205, 255, 225, 275,       9, 56, 63, 2, 2, 000, 000
 | 
			
		||||
$  230, 255, 250, 275,      10, 56, 63, 2, 2, 000, 000
 | 
			
		||||
$  255, 255, 275, 275,      11, 56, 63, 2, 2, 000, 000
 | 
			
		||||
 | 
			
		||||
$  180, 280, 200, 300,      12, 56, 63, 2, 2, 000, 000
 | 
			
		||||
$  205, 280, 225, 300,      13, 56, 63, 2, 2, 000, 000
 | 
			
		||||
$  230, 280, 250, 300,      14, 56, 63, 2, 2, 000, 000
 | 
			
		||||
$  255, 280, 275, 300,      15, 56, 63, 2, 2, 000, 000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<EFBFBD>123
 | 
			
		||||
 | 
			
		||||
&  180, 205, 200, 225,       0, 56, 63, 2, 2
 | 
			
		||||
&  205, 205, 225, 225,       1, 56, 63, 2, 2
 | 
			
		||||
&  230, 205, 250, 225,       2, 56, 63, 2, 2
 | 
			
		||||
&  255, 205, 275, 225,       3, 56, 63, 2, 2
 | 
			
		||||
 | 
			
		||||
&  180, 230, 200, 250,       4, 56, 63, 2, 2
 | 
			
		||||
&  205, 230, 225, 250,       5, 56, 63, 2, 2
 | 
			
		||||
&  230, 230, 250, 250,       6, 56, 63, 2, 2
 | 
			
		||||
&  255, 230, 275, 250,       7, 56, 63, 2, 2
 | 
			
		||||
 | 
			
		||||
&  180, 255, 200, 275,       8, 56, 63, 2, 2
 | 
			
		||||
&  205, 255, 225, 275,       9, 56, 63, 2, 2
 | 
			
		||||
&  230, 255, 250, 275,      10, 56, 63, 2, 2
 | 
			
		||||
&  255, 255, 275, 275,      11, 56, 63, 2, 2
 | 
			
		||||
 | 
			
		||||
&  180, 280, 200, 300,      12, 56, 63, 2, 2
 | 
			
		||||
&  205, 280, 225, 300,      13, 56, 63, 2, 2
 | 
			
		||||
&  230, 280, 250, 300,      14, 56, 63, 2, 2
 | 
			
		||||
&  255, 280, 275, 300,      15, 56, 63, 2, 2
 | 
			
		||||
 | 
			
		||||
&  415, 200, 420, 305,       0, 56, 63, 2, 2
 | 
			
		||||
&  430, 200, 435, 305,       0, 56, 63, 2, 2
 | 
			
		||||
&  445, 200, 450, 305,       0, 56, 63, 2, 2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
<EFBFBD>125
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
***** Configurar Impresora
 | 
			
		||||
& 345,  35, 635,  450,           7, 56, 63, 0, 2
 | 
			
		||||
& 343, 372, 347,  449,           7,  7,  7, 0, 2
 | 
			
		||||
 | 
			
		||||
|  370, 100,                 2,  5,  0,  0,  Imprimir en Archivo:,
 | 
			
		||||
|  371, 101,                 2,  5,  0, 63,  Imprimir en Archivo:,
 | 
			
		||||
& 540,  98, 630,  117,          63,  7, 56, 0, 0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
|  350, 125,                 2,  5,  0,  0,  Longitud de la p<>gina:,
 | 
			
		||||
|  351, 126,                 2,  5,  0, 63,  Longitud de la p<>gina:,
 | 
			
		||||
& 540, 123, 630,  142,          63,  7, 56, 0, 0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
|  350, 150,                 2,  5,  0,  0,       C<>digos de Impresi<73>n,
 | 
			
		||||
|  351, 151,                 2,  5,  0, 63,       C<>digos de Impresi<73>n,
 | 
			
		||||
 | 
			
		||||
|  350, 175,                 2,  5,  0,  0,  Texto Normal:,
 | 
			
		||||
|  351, 176,                 2,  5,  0, 63,  Texto Normal:,
 | 
			
		||||
& 465, 175, 630,  194,          63,  7, 56, 0, 0
 | 
			
		||||
 | 
			
		||||
|  350, 200,                 2,  5,  0,  0,  T. Condensado:,
 | 
			
		||||
|  351, 201,                 2,  5,  0, 63,  T. Condensado:,
 | 
			
		||||
& 465, 200, 630,  219,          63,  7, 56, 0, 0
 | 
			
		||||
 | 
			
		||||
|  350, 230,                 2,  5,  0,  0,  (Cod. Control) INICIO / FIN,
 | 
			
		||||
|  351, 231,                 2,  5,  0, 63,  (Cod. Control) INICIO / FIN,
 | 
			
		||||
 | 
			
		||||
& 420, 249, 630,  311,          63,  7, 56, 0, 0
 | 
			
		||||
& 420, 320, 630,  382,          63,  7, 56, 0, 0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<EFBFBD>126
 | 
			
		||||
 | 
			
		||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
***** Configurar Ventas
 | 
			
		||||
& 345,  35, 635,  450,           7, 56, 63, 0, 2
 | 
			
		||||
& 343, 287, 347,  363,           7,  7,  7, 0, 2
 | 
			
		||||
*& 343, 202, 347,  268,           7,  7,  7, 0, 2
 | 
			
		||||
 | 
			
		||||
|  350,  40,                 2,  5,  0,  0,  ---:,
 | 
			
		||||
|  351,  41,                 2,  5,  0, 63,  ---:,
 | 
			
		||||
& 540,  38, 630,   57,          63,  7, 56, 0, 0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
|  350,  65,                 2,  5,  0,  0,  Cuota de ant. alumno:,
 | 
			
		||||
|  351,  66,                 2,  5,  0, 63,  Cuota de ant. alumno:,
 | 
			
		||||
& 540,  63, 630,   82,          63,  7, 56, 0, 0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
*|  350, 120,                 2,  5,  0,  0,  Hora cambio del dia:,
 | 
			
		||||
*|  351, 121,                 2,  5,  0, 63,  Hora cambio del dia:,
 | 
			
		||||
*& 540, 119, 630,  135,          63,  7, 56, 0, 0
 | 
			
		||||
 | 
			
		||||
*|  350, 160,                 2,  5,  0,  0,  Franjas horarias a discriminar:,
 | 
			
		||||
*|  351, 161,                 2,  5,  0, 63,  Franjas horarias a discriminar:,
 | 
			
		||||
*& 351, 180, 380,  197,          63,  7, 56, 0, 0
 | 
			
		||||
*& 351, 200, 380,  217,          63,  7, 56, 0, 0
 | 
			
		||||
*& 351, 220, 380,  237,          63,  7, 56, 0, 0
 | 
			
		||||
*& 351, 240, 380,  257,          63,  7, 56, 0, 0
 | 
			
		||||
*& 351, 260, 380,  277,          63,  7, 56, 0, 0
 | 
			
		||||
*& 351, 280, 380,  297,          63,  7, 56, 0, 0
 | 
			
		||||
**|  351, 181,                 2,  5,  0, 63,     :00  >-> 00:00,
 | 
			
		||||
**|  351, 201,                 2,  5,  0, 63,     :00  >-> 00:00,
 | 
			
		||||
**|  351, 221,                 2,  5,  0, 63,     :00  >-> 00:00,
 | 
			
		||||
**|  351, 241,                 2,  5,  0, 63,     :00  >-> 00:00,
 | 
			
		||||
**|  351, 261,                 2,  5,  0, 63,     :00  >-> 00:00,
 | 
			
		||||
**|  351, 281,                 2,  5,  0, 63,     :00  >-> 00:00,
 | 
			
		||||
 | 
			
		||||
*|  350, 305,                 2,  5,  0,  0,  Franjas horarias de ventas:,
 | 
			
		||||
*|  351, 306,                 2,  5,  0, 63,  Franjas horarias de ventas:,
 | 
			
		||||
*& 351, 330, 380,  347,          63,  7, 56, 0, 0
 | 
			
		||||
*& 351, 350, 380,  367,          63,  7, 56, 0, 0
 | 
			
		||||
*& 351, 370, 380,  387,          63,  7, 56, 0, 0
 | 
			
		||||
*& 351, 390, 380,  407,          63,  7, 56, 0, 0
 | 
			
		||||
*|  351, 331,                 2,  5,  0, 63,                    [ Hora 2 ],
 | 
			
		||||
*|  351, 351,                 2,  5,  0, 63,                    [ Hora 3 ],
 | 
			
		||||
*|  351, 371,                 2,  5,  0, 63,                    [ Hora 4 ],
 | 
			
		||||
*|  351, 391,                 2,  5,  0, 63,                    [ Hora 5 ],
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
*|  350, 425,                 2,  4,  0,  0,  <20> Permitir modificar P.C en compras ?:,
 | 
			
		||||
*|  351, 426,                 2,  4,  0, 63,  <20> Permitir modificar P.C en compras ?:,
 | 
			
		||||
*& 580, 423, 630,  442,          63,  7, 56, 0, 0
 | 
			
		||||
*|  351, 331,                 2,  5,  0,  0, .,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								SYSTM/ALUM.PCX
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								SYSTM/ALUM.PCX
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								SYSTM/ALUMBAK.PCX
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								SYSTM/ALUMBAK.PCX
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								SYSTM/ALUMC.PCX
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								SYSTM/ALUMC.PCX
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										323
									
								
								SYSTM/ALUMMP.IMG
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										323
									
								
								SYSTM/ALUMMP.IMG
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,323 @@
 | 
			
		||||
#9
 | 
			
		||||
 | 
			
		||||
************************************************  Botones D:    1
 | 
			
		||||
****                                        ****  Botones S:   90
 | 
			
		||||
**              Men<65> Principal                **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
!1, 11
 | 
			
		||||
 | 
			
		||||
$  420, 160, 620, 190,       7, 63, 56, 2, 2, 000,  30
 | 
			
		||||
$  420, 200, 620, 230,       7, 63, 56, 2, 2, 000,  25
 | 
			
		||||
$  420, 240, 620, 270,       7, 63, 56, 2, 2, 000,  18
 | 
			
		||||
$  420, 280, 620, 310,       7, 63, 56, 2, 2, 000,  46
 | 
			
		||||
$  420, 320, 620, 350,       7, 63, 56, 2, 2, 000,  34
 | 
			
		||||
$  420, 360, 620, 390,       7, 63, 56, 2, 2, 000,  19
 | 
			
		||||
$  420, 400, 620, 430,       7, 63, 56, 2, 2, 000,  50
 | 
			
		||||
$  420, 440, 620, 470,       7, 63, 56, 2, 2, 000,  31
 | 
			
		||||
 | 
			
		||||
$  110, 283, 297, 312,       0, 56, 63, 2, 2, 000, 000
 | 
			
		||||
$   20, 280, 300, 315,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 | 
			
		||||
$   25, 325, 295, 465,       0, 56, 63, 2, 2, 000, 000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<EFBFBD>90
 | 
			
		||||
|  420, 100,                10,  1,  0, 56, Men<65> Principal,
 | 
			
		||||
|  421, 101,                10,  1,  0, 56, Men<65> Principal,
 | 
			
		||||
|  422, 102,                10,  1,  0, 63, Men<65> Principal,
 | 
			
		||||
*|  420, 100,                 2,  8,  0, 56, Men<65> Principal,
 | 
			
		||||
*|  421, 101,                 2,  8,  0, 56, Men<65> Principal,
 | 
			
		||||
*|  422, 102,                 2,  8,  0, 63, Men<65> Principal,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
&  420, 160, 620, 190,       7, 63, 56, 2, 2
 | 
			
		||||
&  420, 200, 620, 230,       7, 63, 56, 2, 2
 | 
			
		||||
&  420, 240, 620, 270,       7, 63, 56, 2, 2
 | 
			
		||||
&  420, 280, 620, 310,       7, 63, 56, 2, 2
 | 
			
		||||
&  420, 320, 620, 350,       7, 63, 56, 2, 2
 | 
			
		||||
&  420, 360, 620, 390,       7, 63, 56, 2, 2
 | 
			
		||||
&  420, 400, 620, 430,       7, 63, 56, 2, 2
 | 
			
		||||
&  420, 440, 620, 470,       7, 63, 56, 2, 2
 | 
			
		||||
 | 
			
		||||
&   20, 280, 300, 315,       7, 63, 56, 2, 2
 | 
			
		||||
&  110, 283, 297, 312,       0, 56, 63, 2, 2
 | 
			
		||||
|   20, 285,                 2,  6,  0, 63,  Creditos:,
 | 
			
		||||
|   21, 286,                 2,  6,  0,  0,  Creditos:,
 | 
			
		||||
 | 
			
		||||
&   20, 320, 300, 470,       7, 63, 56, 2, 2
 | 
			
		||||
&   25, 325, 295, 465,       0, 56, 63, 2, 2
 | 
			
		||||
 | 
			
		||||
*|   40, 340,                 2,  6,  0, 63,  Todas las opciones,
 | 
			
		||||
*|   40, 360,                 2,  6,  0, 63, han sido desactivadas,
 | 
			
		||||
 | 
			
		||||
*|   40, 390,                 2,  6,  0, 63, C<>digo de acceso RECHAZADO,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* SubMenu Dedicado a Articulo
 | 
			
		||||
 *  Ref. Articulos
 | 
			
		||||
 *  Stock Actual
 | 
			
		||||
 *  Graficas Ventas
 | 
			
		||||
 | 
			
		||||
************************************************  Botones D:   (ninguno) 2-R
 | 
			
		||||
****                                        ****  Botones S:   91
 | 
			
		||||
**         Gestion Antiguos Alumnos           **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
!2, 3
 | 
			
		||||
 $  220,  85, 410, 115,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 $  220, 120, 410, 150,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 $  220, 155, 410, 185,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 | 
			
		||||
<EFBFBD>91
 | 
			
		||||
&  215,  80, 415, 190,       7, 56, 63, -2, 2
 | 
			
		||||
 &  220,  85, 410, 115,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220,  88,                 2,  6,  0,  0,  Ref. Articulos,
 | 
			
		||||
 |  221,  89,                 2,  6,  0, 63,  Ref. Articulos,
 | 
			
		||||
 &  220, 120, 410, 150,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 123,                 2,  6,  0,  0,  Stock Actual,
 | 
			
		||||
 |  221, 124,                 2,  6,  0, 63,  Stock Actual,
 | 
			
		||||
 &  220, 155, 410, 185,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 158,                 2,  6,  0,  0,  Graficas Ventas,
 | 
			
		||||
 |  221, 159,                 2,  6,  0, 63,  Graficas Ventas,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
************************************************  Botones D:    3
 | 
			
		||||
****                                        ****  Botones S:   92
 | 
			
		||||
**              Ordenaciones                  **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
!3, 5
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 $  220,  55, 410,  85,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 $  220,  90, 410, 120,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 $  220, 125, 410, 155,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 $  220, 160, 410, 190,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 $  220, 195, 410, 225,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 | 
			
		||||
<EFBFBD>92
 | 
			
		||||
&  215,  50, 415, 230,       7, 56, 63, -2, 2
 | 
			
		||||
 &  220,  55, 410,  85,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220,  58,                 2,  6,  0,  0,  Nombre/Apellidos,
 | 
			
		||||
 |  221,  59,                 2,  6,  0, 63,  Nombre/Apellidos,
 | 
			
		||||
 &  220,  90, 410, 120,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220,  93,                 2,  6,  0,  0,  Apellidos/Nombre,
 | 
			
		||||
 |  221,  94,                 2,  6,  0, 63,  Apellidos/Nombre,
 | 
			
		||||
 &  220, 125, 410, 155,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 128,                 2,  6,  0,  0,  Direcci<63>n,
 | 
			
		||||
 |  221, 129,                 2,  6,  0, 63,  Direcci<63>n,
 | 
			
		||||
 &  220, 160, 410, 190,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 163,                 2,  6,  0,  0,  --,
 | 
			
		||||
 |  221, 164,                 2,  6,  0, 63,  --,
 | 
			
		||||
 &  220, 195, 410, 225,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 198,                 2,  6,  0,  0,  Cuenta Bancaria,
 | 
			
		||||
 |  221, 199,                 2,  6,  0, 63,  Cuenta Bancaria,
 | 
			
		||||
 | 
			
		||||
************************************************  Botones D:    4
 | 
			
		||||
****                                        ****  Botones S:   93
 | 
			
		||||
**                 Listados                   **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
!4, 3
 | 
			
		||||
 $  220, 205, 410, 235,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 $  220, 240, 410, 270,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 $  220, 275, 410, 305,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<EFBFBD>93
 | 
			
		||||
&  215, 200, 415, 310,       7, 56, 63, -2, 2
 | 
			
		||||
 &  220, 205, 410, 235,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 208,                 2,  6,  0,  0,  Listado General,
 | 
			
		||||
 |  221, 209,                 2,  6,  0, 63,  Listado General,
 | 
			
		||||
 &  220, 240, 410, 270,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 243,                 2,  6,  0,  0,  Pegatinas Direc.,
 | 
			
		||||
 |  221, 244,                 2,  6,  0, 63,  Pegatinas Direc.,
 | 
			
		||||
 &  220, 275, 410, 305,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 278,                 2,  6,  0,  0,  Factura Bancaria,
 | 
			
		||||
 |  221, 279,                 2,  6,  0, 63,  Factura Bancaria,
 | 
			
		||||
 | 
			
		||||
************************************************  Botones D:    5
 | 
			
		||||
****                                        ****  Botones S:   94
 | 
			
		||||
**                Ventas                      **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
!5, 4
 | 
			
		||||
 $  220, 210, 410, 240,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 $  220, 245, 410, 275,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 $  220, 280, 410, 310,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 $  220, 315, 410, 345,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<EFBFBD>94
 | 
			
		||||
&  215, 205, 415, 350,       7, 56, 63, -2, 2
 | 
			
		||||
 &  220, 210, 410, 240,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 213,                 2,  6,  0,  0,  --,
 | 
			
		||||
 |  221, 214,                 2,  6,  0, 63,  --,
 | 
			
		||||
 &  220, 245, 410, 275,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 248,                 2,  6,  0,  0,  --,
 | 
			
		||||
 |  221, 249,                 2,  6,  0, 63,  --,
 | 
			
		||||
 &  220, 280, 410, 310,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 283,                 2,  6,  0,  0,  --,
 | 
			
		||||
 |  221, 284,                 2,  6,  0, 63,  --,
 | 
			
		||||
 &  220, 315, 410, 345,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 318,                 2,  6,  0,  0, --,
 | 
			
		||||
 |  221, 319,                 2,  6,  0, 63, --,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
************************************************  Botones D:    6
 | 
			
		||||
****                                        ****  Botones S:   95
 | 
			
		||||
**                Empleados                   **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
!6, 3
 | 
			
		||||
 $  220, 165, 410, 195,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 $  220, 200, 410, 230,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 $  220, 235, 410, 265,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<EFBFBD>95
 | 
			
		||||
&  215, 160, 415, 270,       7, 56, 63, -2, 2
 | 
			
		||||
 &  220, 165, 410, 195,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 168,                 2,  6,  0,  0,  Info Empleados,
 | 
			
		||||
 |  221, 169,                 2,  6,  0, 63,  Info Empleados,
 | 
			
		||||
 &  220, 200, 410, 230,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 203,                 2,  6,  0,  0,  Permisos Acceso,
 | 
			
		||||
 |  221, 204,                 2,  6,  0, 63,  Permisos Acceso,
 | 
			
		||||
 &  220, 235, 410, 265,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 238,                 2,  6,  0,  0,  Graficas Ventas,
 | 
			
		||||
 |  221, 239,                 2,  6,  0, 63,  Graficas Ventas,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
************************************************  Botones D:    7
 | 
			
		||||
****                                        ****  Botones S:   96
 | 
			
		||||
**                Miscelanea                  **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
!7, 6
 | 
			
		||||
 | 
			
		||||
$  220, 220, 410, 250,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
$  220, 255, 410, 285,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
$  220, 290, 410, 320,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
$  220, 325, 410, 355,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
$  220, 360, 410, 390,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
$  220, 395, 410, 425,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<EFBFBD>96
 | 
			
		||||
 | 
			
		||||
&  215, 215, 415, 430,       7, 56, 63, -2, 2
 | 
			
		||||
 &  220, 220, 410, 250,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 223,                 2,  6,  0,  0,  FA,
 | 
			
		||||
 |  221, 224,                 2,  6,  0, 63,  FA,
 | 
			
		||||
 &  220, 255, 410, 285,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 258,                 2,  6,  0,  0,  FA,
 | 
			
		||||
 |  221, 259,                 2,  6,  0, 63,  FA,
 | 
			
		||||
 &  220, 290, 410, 320,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 293,                 2,  6,  0,  0,  FA,
 | 
			
		||||
 |  221, 294,                 2,  6,  0, 63,  FA,
 | 
			
		||||
 &  220, 325, 410, 355,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 328,                 2,  6,  0,  0,  FA,
 | 
			
		||||
 |  221, 329,                 2,  6,  0, 63,  FA,
 | 
			
		||||
 &  220, 360, 410, 390,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 363,                 2,  6,  0,  0,  FA,
 | 
			
		||||
 |  221, 364,                 2,  6,  0, 63,  FA,
 | 
			
		||||
 &  220, 395, 410, 425,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 398,                 2,  6,  0,  0,  Configurar Entorno,
 | 
			
		||||
 |  221, 399,                 2,  6,  0, 63,  Configurar Entorno,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
************************************************  Botones D:    8
 | 
			
		||||
****                                        ****  Botones S:   97
 | 
			
		||||
**        Escoger empresa activa              **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
!8, 10
 | 
			
		||||
 | 
			
		||||
$  110,  75, 297,  95,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
$  110,  95, 297, 115,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
$  110, 115, 297, 135,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
$  110, 135, 297, 155,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
$  110, 155, 297, 175,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
$  110, 175, 297, 195,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
$  110, 195, 297, 215,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
$  110, 215, 297, 235,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
$  110, 235, 297, 255,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
$  110, 255, 297, 275,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<EFBFBD>97
 | 
			
		||||
 | 
			
		||||
*$   20, 280, 300, 315,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
&  105, 70, 302, 280,       7, 56, 63, -2, 2
 | 
			
		||||
 | 
			
		||||
 &  110, 255, 297, 275,       7, 63, 56, 2, 2
 | 
			
		||||
 &  110, 235, 297, 255,       7, 63, 56, 2, 2
 | 
			
		||||
 &  110, 215, 297, 235,       7, 63, 56, 2, 2
 | 
			
		||||
 &  110, 195, 297, 215,       7, 63, 56, 2, 2
 | 
			
		||||
 &  110, 175, 297, 195,       7, 63, 56, 2, 2
 | 
			
		||||
 &  110, 155, 297, 175,       7, 63, 56, 2, 2
 | 
			
		||||
 &  110, 135, 297, 155,       7, 63, 56, 2, 2
 | 
			
		||||
 &  110, 115, 297, 135,       7, 63, 56, 2, 2
 | 
			
		||||
 &  110,  95, 297, 115,       7, 63, 56, 2, 2
 | 
			
		||||
 &  110,  75, 297,  95,       7, 63, 56, 2, 2
 | 
			
		||||
 | 
			
		||||
 |  110, 255,                 2,  4,  0,  0,  123456789-123456789-123456789-,
 | 
			
		||||
 |  111, 256,                 2,  4,  0, 63,  123456789-123456789-123456789-,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
************************************************  Botones D:    9
 | 
			
		||||
****                                        ****  Botones S:   98
 | 
			
		||||
**    Ventas -> Empleados                     **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
!9, 3
 | 
			
		||||
 $  220, 245, 410, 275,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 $  220, 280, 410, 310,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 $  220, 315, 410, 345,       7, 63, 56, 2, 2, 000, 000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<EFBFBD>98
 | 
			
		||||
&  215, 240, 415, 350,       7, 56, 63, -2, 2
 | 
			
		||||
 &  220, 245, 410, 275,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 248,                 2,  6,  0,  0,  Datos Clientes,
 | 
			
		||||
 |  221, 249,                 2,  6,  0, 63,  Datos Clientes,
 | 
			
		||||
 &  220, 280, 410, 310,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 283,                 2,  6,  0,  0,  Venta a Clientes,
 | 
			
		||||
 |  221, 284,                 2,  6,  0, 63,  Venta a Clientes,
 | 
			
		||||
 &  220, 315, 410, 345,       7, 63, 56, 2, 2
 | 
			
		||||
 |  220, 318,                 2,  6,  0,  0,  Datos de interes,
 | 
			
		||||
 |  221, 319,                 2,  6,  0, 63,  Datos de interes,
 | 
			
		||||
 | 
			
		||||
************************************************  Botones D:    8 <-|
 | 
			
		||||
****                                        ****  Botones S:   99 <-|
 | 
			
		||||
**            Programas externos              **
 | 
			
		||||
****                                        ****
 | 
			
		||||
************************************************
 | 
			
		||||
<EFBFBD>99
 | 
			
		||||
 | 
			
		||||
&  223, 185, 420, 395,       7, 56, 63, -2, 2
 | 
			
		||||
 | 
			
		||||
 &  228, 370, 415, 390,       7, 63, 56, 2, 2
 | 
			
		||||
 &  228, 350, 415, 370,       7, 63, 56, 2, 2
 | 
			
		||||
 &  228, 330, 415, 350,       7, 63, 56, 2, 2
 | 
			
		||||
 &  228, 310, 415, 330,       7, 63, 56, 2, 2
 | 
			
		||||
 &  228, 290, 415, 310,       7, 63, 56, 2, 2
 | 
			
		||||
 &  228, 270, 415, 290,       7, 63, 56, 2, 2
 | 
			
		||||
 &  228, 250, 415, 270,       7, 63, 56, 2, 2
 | 
			
		||||
 &  228, 230, 415, 250,       7, 63, 56, 2, 2
 | 
			
		||||
 &  228, 210, 415, 230,       7, 63, 56, 2, 2
 | 
			
		||||
 &  228, 190, 415, 210,       7, 63, 56, 2, 2
 | 
			
		||||
 | 
			
		||||
 &  190, 185, 220, 288,       7, 63, 56, 2, 2
 | 
			
		||||
 &  190, 292, 220, 395,       7, 63, 56, 2, 2
 | 
			
		||||
 |  192, 185,                 2,  6,  1,  0,  Eliminar   Insertar ,
 | 
			
		||||
 |  193, 186,                 2,  6,  1, 63,  Eliminar   Insertar ,
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								SYSTM/BOLD.CHR
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								SYSTM/BOLD.CHR
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								SYSTM/EGAVGA.BGI
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								SYSTM/EGAVGA.BGI
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								SYSTM/LITT.CHR
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								SYSTM/LITT.CHR
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user