First commit 25/09/1997

This commit is contained in:
José David Guillén 2021-09-12 20:15:34 +02:00
commit 22e131ce79
25 changed files with 6244 additions and 0 deletions

BIN
ALUM.DSK Normal file

Binary file not shown.

BIN
ALUM.EXE Normal file

Binary file not shown.

BIN
ALUM.PRJ Normal file

Binary file not shown.

1360
ALUMMM.CPP Normal file

File diff suppressed because it is too large Load Diff

465
ALUMNUM.CPP Normal file
View 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£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  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
/////ÜÜ/////////////////////////////////////////////////////////////////////////////
////Û/////////////////////////////////////////////////////////////////////////////////
/////ßÜ/////Ü///////////////////////////////////////////////////////////////////////
//////ß///Ü////ß/Ü//////////////////////////////////////////////////////////////////
///////ß/Ü///Ü//////////////////////////////////////////////////////////////////////
////////Ü//ß////ß///////////////////////////////////////////////////////////////////
/////////ß////Ü/////////////////////////////////////////////////////////////////////
///////////ß////////////////////////////////////////////////////////////////////////
#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
View 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¤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 );
// ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
// Û Parte principal del m¢dulo Û
// ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
#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¢n standard",
{
{ "Fondo de pantalla", COLOR | FONDO | FUENTE },
{ "Texto normal", COLOR | FONDO },
{ "Texto se¤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 Ä^
}
};
char Elementos[][40] = {
{ "Fondo de pantalla" },
{ "Texto normal" },
{ "Texto se¤alado" },
{ "Digitos (numeros grandes)" },
{ "Digitos (borde del n£mero)" },
{ "Fuente del Protector" },
{ "Letrero digital" }
// A¥ADIR NUEVOS ELEMENTOS ( RESPETANDO NO SOLAPAR LAS Ä^
};
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¢n: *|
|* Permite cambiar las opciones de configuraci¢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£ Principal
case 1:
ok = 1;
break;
// Combinaciones
case 2:
break;
// Guardar combinaci¢n
case 3:
// GuardaCombinacion();
break;
// Eliminar combinaci¢n
case 4:
/*
if ( CurrCombinacion != 0 && Optar( 1, "Eliminar combinaci¢n", "Confirme la eliminaci¢n", "de la combinaci¢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¤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¢n
if ( BConfig.EscribeReg( (void *)&Config, 0 ) == ERROR )
Error( 1, BConfig.cError);
// Salvamos la configuraci¢n
if ( BThemes.EscribeReg( (void *)&Tema, CurrCombinacion ) == ERROR )
Error( 1, BThemes.cError);
BThemes.CerrarReg();
}
/**************************************************************************\
|* *|
|* PreviewPantalla *|
|* *|
|* Descripci¢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¢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¢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¢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¢:", 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¢:", 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;
}
//ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
//ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
//ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛA partir de aqui, ya no es standard...ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
//ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
//ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
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¢n: *|
|* Opciones no standard de esta configuraci¢n... *|
|* *|
|* Entradas: N§ de opci¢n seleccionada *|
|* Salidas: (ninguna) *|
|* *|
\**************************************************************************/
void NoStandard( int BPush )
{
}

209
ALUM_DEF.H Normal file
View File

@ -0,0 +1,209 @@
#include <dos.h> // Estructuras varias
// Para generar una demostraci¢n: activar la macro generadora.
// la demostraci¢n excluir  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;
//ÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜß
//ÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜß
//ÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜß
//ÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜß
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¢n.
void ConfigurarEntorno( void );
// Gestion de Alumnos
void GstAlumnos(void);
int Comprueba_Impresora(void);

1557
ALUM_GST.CPP Normal file

File diff suppressed because it is too large Load Diff

792
ALUM_UTL.CPP Normal file
View 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¢n: *|
|* Edita una cadena en formato gr 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, "þ");
}
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, "þ");
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, "þ");
}
} 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, "þ");
}
}
/*ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ*/
else if( c == 27 ) {*s='\0'; ok = 1; }
/*ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ*/
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¢n: *|
|* Dibuja el bitmap que se encuentra en matriz, en ¤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§ ... *|
|* *|
|* 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¢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¢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, "Ü");
}
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¢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¢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, "­ ALERTA !", "No existen empleados", "c¢digos de acceso anulados", "PERMISOS ABIERTOS", NULL );
return OK;
}
Clave[0] = '\0';
Optar( ENCUADRE, "­ 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, "­ Identifiquese !", "", "Login: ", "Password: ", NULL );
return dev;
*/
}

BIN
DATOS/ALUM.DBF Normal file

Binary file not shown.

BIN
DATOS/CONFIG.CFG Normal file

Binary file not shown.

BIN
DATOS/THEMES.CFG Normal file

Binary file not shown.

BIN
FONTS/PROT_PTL.FNT Normal file

Binary file not shown.

BIN
FONTS/VENT_MSG.FNT Normal file

Binary file not shown.

55
PRNFILE.OUT Normal file
View File

@ -0,0 +1,55 @@
N§ Alumno: 0
Alejandro 1
1
1 (1)
C.P. 1
N§ Alumno: 0
Antonio
()
C.P. 0
N§ Alumno: 0
Pepito Grillo
()
C.P. 0
N§ Alumno: 0
Estemas
()
C.P. 0
N§ Alumno: 0
Jos David Eqwe
Qwe
Qwe (Qwe)
C.P. 0
N§ Alumno: 0
Nueva persona
()
C.P. 0

9
README.md Normal file
View File

@ -0,0 +1,9 @@
#ALUM
*25/09/1997*
ToDo: wwtcf?
![screenshot](/ALUM.png "Screenshot")

BIN
SYSTM/ALDISK.BMP Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

517
SYSTM/ALUM.IMG Normal file
View File

@ -0,0 +1,517 @@
**
** Codigo fuente para MAKE_BOTON
**
**
** Dise¤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 **
**** ****
************************************************
­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£ Principal,
| 519, 43, 2, 5, 0, 63, Men£ 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, Telfono:,
| 6, 166, 2, 5, 0, 63, Telfono:,
& 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¢n Telfono,
| 6, 236, 2, 5, 0, 63, Nombre y Apellidos Direcci¢n Telfono,
& 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¢n para busquedas **
**** ****
************************************************
­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, Telfono:,
| 176, 276, 2, 6, 0, 63, Telfono:,
************************************************ 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
­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£ 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¤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...
­120
& 400, 5, 635, 30, 7, 63, 56, 2, 2
| 400, 7, 2, 5, 0, 0, Cambiar la configuraci¢n,
| 401, 8, 2, 5, 0, 63, Cambiar la configuraci¢n,
* Linea de separaci¢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¤o:,
| 211, 388, 2, 4, 0, 63, Tama¤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£ Principal,
| 201, 431, 2, 5, 0, 63, Men£ Principal,
* Linea de fondo para ayudas
& 5, 455, 500, 475, 0, 63, 56, 0, 2
& 505, 455, 635, 475, 63, 0, 0, 0, 2
*ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
*ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
***** 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... ,
*ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
*ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
­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¢n Unds. P.V.P,
| 11, 103, 2, 4, 0, 63, C¢digo Descripci¢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¤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¢n.,
­122
* Cuadro de di 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
­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
*ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
*ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
*ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
*ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
­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¢n,
| 351, 151, 2, 5, 0, 63, C¢digos de Impresi¢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
­126
*ÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜßÜß
***** 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, ¨ Permitir modificar P.C en compras ?:,
*| 351, 426, 2, 4, 0, 63, ¨ Permitir modificar P.C en compras ?:,
*& 580, 423, 630, 442, 63, 7, 56, 0, 0
*| 351, 331, 2, 5, 0, 0, .,
*ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

BIN
SYSTM/ALUM.PCX Normal file

Binary file not shown.

BIN
SYSTM/ALUMBAK.PCX Normal file

Binary file not shown.

BIN
SYSTM/ALUMC.PCX Normal file

Binary file not shown.

323
SYSTM/ALUMMP.IMG Normal file
View File

@ -0,0 +1,323 @@
#9
************************************************ Botones D: 1
**** **** Botones S: 90
** Men£ 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
­90
| 420, 100, 10, 1, 0, 56, Men£ Principal,
| 421, 101, 10, 1, 0, 56, Men£ Principal,
| 422, 102, 10, 1, 0, 63, Men£ Principal,
*| 420, 100, 2, 8, 0, 56, Men£ Principal,
*| 421, 101, 2, 8, 0, 56, Men£ Principal,
*| 422, 102, 2, 8, 0, 63, Men£ 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
­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
­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¢n,
| 221, 129, 2, 6, 0, 63, Direcci¢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
­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
­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
­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
­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
­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
­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 **
**** ****
************************************************
­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

Binary file not shown.

BIN
SYSTM/EGAVGA.BGI Normal file

Binary file not shown.

BIN
SYSTM/LITT.CHR Normal file

Binary file not shown.