First commit 02/07/1999
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								AUTODOS.DSK
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								AUTODOS.DSK
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										99
									
								
								B-T.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								B-T.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,99 @@
 | 
			
		||||
#include <dos.h>
 | 
			
		||||
 | 
			
		||||
#define DIBUJA       1
 | 
			
		||||
#define DEPRIME      2
 | 
			
		||||
#define Dibuja_Todos 3
 | 
			
		||||
#define COMPRUEBA    4
 | 
			
		||||
#define STD_BY       5
 | 
			
		||||
 | 
			
		||||
#define NORMAL           0
 | 
			
		||||
#define INTENSO          1
 | 
			
		||||
 | 
			
		||||
#define ATRAS           -1
 | 
			
		||||
#define NUEVA_BUSQUEDA   0
 | 
			
		||||
#define ADELANTE         1
 | 
			
		||||
 | 
			
		||||
#define SEC_OPTAR        5
 | 
			
		||||
#define ENCUADRE         3
 | 
			
		||||
 | 
			
		||||
// Niveles de acceso al programa
 | 
			
		||||
#define TOTAL     0
 | 
			
		||||
#define USUARIO   1
 | 
			
		||||
#define NINGUNO   2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
 char FillBgS, FillBgC;
 | 
			
		||||
 char NumFg, NumBg, NumLn;
 | 
			
		||||
 char TxtBgN, TxtBgI, TxtFgN, TxtFgI;
 | 
			
		||||
 char Printer, PrintTo[80];
 | 
			
		||||
} CONFIG;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
 long Codigo;
 | 
			
		||||
 char NIF[10+1];
 | 
			
		||||
 char Nombre[45+1];
 | 
			
		||||
 | 
			
		||||
 char Direccion[40+1];
 | 
			
		||||
 char Num[4+1];
 | 
			
		||||
 char Piso[4+1];
 | 
			
		||||
 | 
			
		||||
 char Localidad[25+1];
 | 
			
		||||
 char Provincia[15+1];
 | 
			
		||||
 | 
			
		||||
 long CodPostal;
 | 
			
		||||
 | 
			
		||||
 char Cod1;
 | 
			
		||||
 char Cod2;
 | 
			
		||||
 char Cod3;
 | 
			
		||||
} MAILINGS;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
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);
 | 
			
		||||
int  InputCadenaG(char *s, int numalp, int lmax, int cc, int cf, int X0, int Y0, int X1, int Y1);
 | 
			
		||||
void Error( int code );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// M<>dulo de referencias
 | 
			
		||||
void InfoProductos(void);
 | 
			
		||||
 | 
			
		||||
// M<>dulo de Compras
 | 
			
		||||
void ComprasDiarias( int NivelAcceso );
 | 
			
		||||
 | 
			
		||||
// Informacion de los proveedores
 | 
			
		||||
void InfoProveedores(void);
 | 
			
		||||
 | 
			
		||||
//<2F><>
 | 
			
		||||
void espera_soltar(void);
 | 
			
		||||
void espera_pulsar(void);
 | 
			
		||||
void activa_raton(void);
 | 
			
		||||
void desactiva_raton(void);
 | 
			
		||||
void inicializa_raton_texto(void);
 | 
			
		||||
struct Boton_Texto{
 | 
			
		||||
  char x; char y;
 | 
			
		||||
  char Texto[80];
 | 
			
		||||
 | 
			
		||||
  int ID_T1;
 | 
			
		||||
  int ID_T2;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int Funcion_Botones(int Funcion, int nBotones, struct Boton_Texto *Boton_Texto);
 | 
			
		||||
 | 
			
		||||
extern int   boton_izq, boton_der;
 | 
			
		||||
extern int x_raton, y_raton, RATON;
 | 
			
		||||
 | 
			
		||||
//<2F><>
 | 
			
		||||
 | 
			
		||||
extern int AnoActual;
 | 
			
		||||
							
								
								
									
										525
									
								
								B-Tmain.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										525
									
								
								B-Tmain.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,525 @@
 | 
			
		||||
#include <io.h>
 | 
			
		||||
#include <dos.h>
 | 
			
		||||
#include <conio.h>
 | 
			
		||||
#include<bios.h>
 | 
			
		||||
#include<time.h>
 | 
			
		||||
#include<dos.h>
 | 
			
		||||
#include<stdlib.h>
 | 
			
		||||
#include<conio.h>
 | 
			
		||||
#include<string.h>
 | 
			
		||||
#include<ctype.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include "B-T.h"
 | 
			
		||||
 | 
			
		||||
#define OFF     0
 | 
			
		||||
#define ON      1
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
    #define __CPPARGS ...
 | 
			
		||||
#else
 | 
			
		||||
    #define __CPPARGS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
char far *MemTexto = (char far *)0xB8000000;
 | 
			
		||||
char ROWselect = 6, notENABLED;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int  MenuPrincipal(void);
 | 
			
		||||
void Installer(void);
 | 
			
		||||
 | 
			
		||||
int   boton_izq; int   boton_der;
 | 
			
		||||
int x_raton, y_raton, RATON = 1;
 | 
			
		||||
 | 
			
		||||
int Execute( char *program )
 | 
			
		||||
{
 | 
			
		||||
            if ( access( program, 0 ) != 0 )
 | 
			
		||||
            {
 | 
			
		||||
             Optar( 1, "ATENCION", "No se encontr<74> el programa requerido", "asegurese que esta en la ruta:", program,  NULL );
 | 
			
		||||
            } else {
 | 
			
		||||
             system( program );
 | 
			
		||||
             MenuPrincipal();
 | 
			
		||||
            }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int main(void)
 | 
			
		||||
{
 | 
			
		||||
 inicializa_raton_texto();
 | 
			
		||||
 if( RATON ) desactiva_raton();
 | 
			
		||||
 | 
			
		||||
 MenuPrincipal();
 | 
			
		||||
// sleep( 5 );
 | 
			
		||||
 | 
			
		||||
 Installer();
 | 
			
		||||
 | 
			
		||||
 textcolor( WHITE );
 | 
			
		||||
 textbackground( BLACK );
 | 
			
		||||
 clrscr();
 | 
			
		||||
 cprintf( "\nSol Negro (c) | 1999" );
 | 
			
		||||
 cprintf( "\n" );
 | 
			
		||||
 | 
			
		||||
 _setcursortype(_NORMALCURSOR);
 | 
			
		||||
 | 
			
		||||
return 0;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void SN(void)
 | 
			
		||||
{
 | 
			
		||||
 static int columna = 15, inc = 1, cont;
 | 
			
		||||
 static clock_t start=clock();
 | 
			
		||||
 int i, j;
 | 
			
		||||
 | 
			
		||||
 //  fila -^   ^--- columna
 | 
			
		||||
 if ( notENABLED ) return;
 | 
			
		||||
 | 
			
		||||
 MemTexto[ ROWselect*80*2 + 60*2 +1 ] = 0x0E;
 | 
			
		||||
 MemTexto[ ROWselect*80*2 + 61*2 +1 ] = 0x0E;
 | 
			
		||||
 MemTexto[ ROWselect*80*2 + 62*2 +1 ] = 0x0E;
 | 
			
		||||
 MemTexto[ ROWselect*80*2 + 63*2 +1 ] = 0x0E;
 | 
			
		||||
 if ( ( cont >= 0 && cont < 17 ) || cont >= 68 )
 | 
			
		||||
 {
 | 
			
		||||
   MemTexto[ ROWselect*80*2 + 60*2 ] = '<';
 | 
			
		||||
   MemTexto[ ROWselect*80*2 + 61*2 ] = '-';
 | 
			
		||||
   MemTexto[ ROWselect*80*2 + 62*2 ] = '-';
 | 
			
		||||
   MemTexto[ ROWselect*80*2 + 63*2 ] = '<EFBFBD>';
 | 
			
		||||
 } else
 | 
			
		||||
 if ( ( cont < 35 ) || cont >= 52 )
 | 
			
		||||
 {
 | 
			
		||||
   MemTexto[ ROWselect*80*2 + 60*2 ] = ' ';
 | 
			
		||||
   MemTexto[ ROWselect*80*2 + 61*2 ] = '<';
 | 
			
		||||
   MemTexto[ ROWselect*80*2 + 62*2 ] = '-';
 | 
			
		||||
   MemTexto[ ROWselect*80*2 + 63*2 ] = '<EFBFBD>';
 | 
			
		||||
 } else {
 | 
			
		||||
   MemTexto[ ROWselect*80*2 + 60*2 ] = ' ';
 | 
			
		||||
   MemTexto[ ROWselect*80*2 + 61*2 ] = ' ';
 | 
			
		||||
   MemTexto[ ROWselect*80*2 + 62*2 ] = '<';
 | 
			
		||||
   MemTexto[ ROWselect*80*2 + 63*2 ] = '<EFBFBD>';
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 if ( ( clock() - start ) > .05 )
 | 
			
		||||
      start = clock();
 | 
			
		||||
 else
 | 
			
		||||
      return;
 | 
			
		||||
 cont++;
 | 
			
		||||
 cont = (cont++)%70;
 | 
			
		||||
 columna+= inc; if ( columna == 59 ) inc = -1;
 | 
			
		||||
                if ( columna == 15 ) inc = +1;
 | 
			
		||||
 | 
			
		||||
 // GRADIENTE SN
 | 
			
		||||
 for ( i=1; i < 4; i++ )
 | 
			
		||||
 {
 | 
			
		||||
   MemTexto[ i*80*2 + columna    *2 + 1] = ( inc==1 ? 0x00 : 0x0F );
 | 
			
		||||
   MemTexto[ i*80*2 + (columna+1)*2 + 1] = ( inc==1 ? 0x08 : 0x07 );
 | 
			
		||||
   MemTexto[ i*80*2 + (columna+2)*2 + 1] = ( inc==1 ? 0x08 : 0x07 );
 | 
			
		||||
   MemTexto[ i*80*2 + (columna+3)*2 + 1] = ( inc==1 ? 0x07 : 0x07 );
 | 
			
		||||
   MemTexto[ i*80*2 + (columna+4)*2 + 1] = ( inc==1 ? 0x07 : 0x08 );
 | 
			
		||||
   MemTexto[ i*80*2 + (columna+5)*2 + 1] = ( inc==1 ? 0x07 : 0x08 );
 | 
			
		||||
   MemTexto[ i*80*2 + (columna+6)*2 + 1] = ( inc==1 ? 0x0F : 0x00 );
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 // GRADIENTE (SOL)
 | 
			
		||||
 j = (columna-15)/3;
 | 
			
		||||
 for ( i=0; i < 18; i++ ) // Filas
 | 
			
		||||
   // Columnas
 | 
			
		||||
  {
 | 
			
		||||
   MemTexto[ i*80*2 +  j   *2 + 1] = ( inc==1 ? 0x00 : 0x0F );
 | 
			
		||||
   MemTexto[ i*80*2 + (j+1)*2 + 1] = ( inc==1 ? 0x08 : 0x07 );
 | 
			
		||||
   MemTexto[ i*80*2 + (j+2)*2 + 1] = ( inc==1 ? 0x08 : 0x07 );
 | 
			
		||||
   MemTexto[ i*80*2 + (j+3)*2 + 1] = ( inc==1 ? 0x07 : 0x07 );
 | 
			
		||||
   MemTexto[ i*80*2 + (j+4)*2 + 1] = ( inc==1 ? 0x07 : 0x08 );
 | 
			
		||||
   MemTexto[ i*80*2 + (j+5)*2 + 1] = ( inc==1 ? 0x07 : 0x08 );
 | 
			
		||||
   MemTexto[ i*80*2 + (j+6)*2 + 1] = ( inc==1 ? 0x0F : 0x00 );
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int MenuPrincipal(void)
 | 
			
		||||
{
 | 
			
		||||
  _setcursortype(_NOCURSOR);
 | 
			
		||||
  textcolor( DARKGRAY );
 | 
			
		||||
  textbackground( BLACK );
 | 
			
		||||
  clrscr();
 | 
			
		||||
 | 
			
		||||
    cprintf("|  _                               \n\r");
 | 
			
		||||
    cprintf(" /  /                  <20><>  <20>  <20>     <20>  <20>  <20>  <20><><EFBFBD> <20><>   <20>\n\r");
 | 
			
		||||
    cprintf(" <20><><EFBFBD> /   _/           <20><>  <20> <20> <20>     <20><><EFBFBD><EFBFBD> <20><> <20> <20>  <20><><EFBFBD> <20> <20>\n\r");
 | 
			
		||||
    cprintf(" <20><><EFBFBD><EFBFBD>  _/             <20><><EFBFBD> <20><><EFBFBD> <20><>    <20> <20><> <20><> <20><><EFBFBD><EFBFBD> <20> <20> <20><><EFBFBD>\n\r");
 | 
			
		||||
    cprintf(" <20><><EFBFBD><EFBFBD><EFBFBD>      /                      \n\r");
 | 
			
		||||
    cprintf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>  __/                       \n\r");
 | 
			
		||||
    cprintf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>                           \n\r");
 | 
			
		||||
    cprintf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ----__-                   \n\r");
 | 
			
		||||
    cprintf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>                           \n\r");
 | 
			
		||||
    cprintf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> __--_                     \n\r");
 | 
			
		||||
    cprintf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>       \\                    \n\r");
 | 
			
		||||
    cprintf(" <20><><EFBFBD><EFBFBD><EFBFBD>  \\_                         \n\r");
 | 
			
		||||
    cprintf(" <20><><EFBFBD><EFBFBD>     \\_                       \n\r");
 | 
			
		||||
    cprintf(" <20><><EFBFBD>  \\_                           \n\r");
 | 
			
		||||
    cprintf(" <20><> \\   \\_                         \n\r");
 | 
			
		||||
    cprintf(" |  \\                              \n\r");
 | 
			
		||||
    cprintf(" |  |     \\                        \n\r");
 | 
			
		||||
    cprintf(" |                                 \n\r");
 | 
			
		||||
 | 
			
		||||
  textcolor( RED );
 | 
			
		||||
  cprintf("                                                                               \n\r");
 | 
			
		||||
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int Funcion_Botones(int Funcion, int nBotones, struct Boton_Texto *Boton_Texto)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
 char i;
 | 
			
		||||
 int DEVOLVER = -1;
 | 
			
		||||
 int longitud, key, key2;
 | 
			
		||||
 | 
			
		||||
 switch( Funcion ) {
 | 
			
		||||
  case DIBUJA:
 | 
			
		||||
		 highvideo();
 | 
			
		||||
		 textcolor(BLACK);
 | 
			
		||||
		 textbackground(11);
 | 
			
		||||
		 gotoxy(Boton_Texto[nBotones].x, Boton_Texto[nBotones].y);
 | 
			
		||||
	      DEVOLVER = 0;
 | 
			
		||||
	      longitud = strlen( Boton_Texto[nBotones].Texto );
 | 
			
		||||
	      while( DEVOLVER <= longitud  ) {
 | 
			
		||||
	       if( Boton_Texto[nBotones].Texto[DEVOLVER] == '&' ) {
 | 
			
		||||
		DEVOLVER ++;
 | 
			
		||||
	      textcolor(RED);
 | 
			
		||||
		cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]);
 | 
			
		||||
	      textcolor(BLACK);
 | 
			
		||||
	       } else cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]);
 | 
			
		||||
	       DEVOLVER ++;
 | 
			
		||||
	      }
 | 
			
		||||
 | 
			
		||||
 //		      cprintf("%s", Texto);
 | 
			
		||||
 | 
			
		||||
	      textbackground(7);   			  // <20>SALIR<49><52>
 | 
			
		||||
				cprintf("<EFBFBD>");		  //  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
	      gotoxy(Boton_Texto[nBotones].x+1, Boton_Texto[nBotones].y+1);
 | 
			
		||||
	      for(i = 0; i < longitud; i ++ )             // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
				cprintf("<EFBFBD>");             //  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
	      break;
 | 
			
		||||
  case DEPRIME:
 | 
			
		||||
		 highvideo();
 | 
			
		||||
		 textcolor(BLACK);
 | 
			
		||||
		 textbackground(11);
 | 
			
		||||
	      gotoxy(Boton_Texto[nBotones].x, Boton_Texto[nBotones].y);
 | 
			
		||||
	      DEVOLVER = 0;
 | 
			
		||||
	      longitud = strlen( Boton_Texto[nBotones].Texto );
 | 
			
		||||
              ////////////////
 | 
			
		||||
	      textbackground(BLACK);
 | 
			
		||||
	      while( DEVOLVER <= (longitud+1)  ) {
 | 
			
		||||
	       if( Boton_Texto[nBotones].Texto[DEVOLVER] == '&' ) {
 | 
			
		||||
		DEVOLVER ++;
 | 
			
		||||
	       }
 | 
			
		||||
	       cprintf(" ");
 | 
			
		||||
	       DEVOLVER ++;
 | 
			
		||||
	      }
 | 
			
		||||
	      textbackground(11);
 | 
			
		||||
	      gotoxy(Boton_Texto[nBotones].x+1, Boton_Texto[nBotones].y+1);
 | 
			
		||||
	      DEVOLVER = 0;
 | 
			
		||||
	      while( DEVOLVER <= longitud  ) {
 | 
			
		||||
 | 
			
		||||
	       if( Boton_Texto[nBotones].Texto[DEVOLVER] == '&' ) {
 | 
			
		||||
		DEVOLVER ++;
 | 
			
		||||
	      textcolor(RED);
 | 
			
		||||
		cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]);
 | 
			
		||||
	      textcolor(BLACK);
 | 
			
		||||
	       } else cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]);
 | 
			
		||||
	       DEVOLVER ++;
 | 
			
		||||
	      }
 | 
			
		||||
//	      cprintf("%s", Texto);                       //
 | 
			
		||||
							  //  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
	      break;
 | 
			
		||||
  case Dibuja_Todos:
 | 
			
		||||
	      for( i=0; i < nBotones; i++)
 | 
			
		||||
		Funcion_Botones( DIBUJA, i, Boton_Texto);
 | 
			
		||||
	      break;
 | 
			
		||||
  case COMPRUEBA:
 | 
			
		||||
	      if( bioskey(1)!=0 ) {
 | 
			
		||||
		      key = toupper( getch() ); DEVOLVER = -2;
 | 
			
		||||
                      if ( key == 0 ) { key2 = toupper( getch() ); DEVOLVER = -1; }
 | 
			
		||||
		      for( i=0; i < nBotones && DEVOLVER <= -1; i++){
 | 
			
		||||
			if( key == Boton_Texto[i].ID_T1 ) {
 | 
			
		||||
			     if( key == 0 ) {
 | 
			
		||||
			       if( key2 == Boton_Texto[i].ID_T2 ){
 | 
			
		||||
								 DEVOLVER = (i + 1);
 | 
			
		||||
								 Funcion_Botones( DEPRIME, (DEVOLVER-1), Boton_Texto);
 | 
			
		||||
								 delay(150);
 | 
			
		||||
								 //sleep(1);
 | 
			
		||||
								 Funcion_Botones( DIBUJA, (DEVOLVER-1), Boton_Texto);
 | 
			
		||||
			       }
 | 
			
		||||
			     } else
 | 
			
		||||
					{ DEVOLVER =  (i + 1);
 | 
			
		||||
					 Funcion_Botones( DEPRIME, (DEVOLVER-1), Boton_Texto);
 | 
			
		||||
					 delay(150);
 | 
			
		||||
					 //sleep(1);
 | 
			
		||||
					 Funcion_Botones( DIBUJA, (DEVOLVER-1), Boton_Texto);
 | 
			
		||||
					}
 | 
			
		||||
			}
 | 
			
		||||
		      }
 | 
			
		||||
 | 
			
		||||
		      if( DEVOLVER == -2 )
 | 
			
		||||
					{ ungetch(key); }
 | 
			
		||||
 | 
			
		||||
		      if( DEVOLVER == -1 )
 | 
			
		||||
					{ ungetch(key2); }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	      } else if( RATON ) {
 | 
			
		||||
                DEVOLVER = 0;
 | 
			
		||||
		      for( i=0; i < nBotones && DEVOLVER == 0; i++) {
 | 
			
		||||
			longitud = strlen( Boton_Texto[i].Texto );
 | 
			
		||||
			if ( (x_raton+1) >= Boton_Texto[i].x && (x_raton+1) <= ( Boton_Texto[i].x + longitud -1) &&
 | 
			
		||||
			     y_raton == (Boton_Texto[i].y-1) ) { DEVOLVER = (i + 1);
 | 
			
		||||
							     Funcion_Botones( DEPRIME, (DEVOLVER-1), Boton_Texto);
 | 
			
		||||
							     if( RATON ) activa_raton();
 | 
			
		||||
							     espera_soltar();
 | 
			
		||||
							     if( RATON ) desactiva_raton();
 | 
			
		||||
//			     				     delay(150);
 | 
			
		||||
							     Funcion_Botones( DIBUJA, (DEVOLVER-1), Boton_Texto);
 | 
			
		||||
			}
 | 
			
		||||
		      }
 | 
			
		||||
	      }
 | 
			
		||||
	      break;
 | 
			
		||||
  case STD_BY:
 | 
			
		||||
	      Funcion_Botones(Dibuja_Todos, nBotones, Boton_Texto);
 | 
			
		||||
	      do{
 | 
			
		||||
		if( RATON ) activa_raton();
 | 
			
		||||
		if( RATON ) espera_pulsar(); else while( bioskey(1)==0 );
 | 
			
		||||
		if( RATON ) desactiva_raton();
 | 
			
		||||
		DEVOLVER = Funcion_Botones(COMPRUEBA, nBotones, Boton_Texto);
 | 
			
		||||
	      }while(DEVOLVER==0 && bioskey(1)==0 );
 | 
			
		||||
 | 
			
		||||
 }
 | 
			
		||||
 return DEVOLVER;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void inicializa_raton_texto(void)
 | 
			
		||||
{
 | 
			
		||||
	union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
	ent.x.ax =   0;
 | 
			
		||||
        int86(0x33, &ent, &sal);          /* averigua si hay rat<61>n conectado */
 | 
			
		||||
 | 
			
		||||
	if(sal.x.ax==0) { RATON = 0; return; }
 | 
			
		||||
 | 
			
		||||
        ent.x.ax =  15;
 | 
			
		||||
	ent.x.cx =   8;
 | 
			
		||||
	ent.x.dx =  16;
 | 
			
		||||
        int86(0x33, &ent, &sal);               /* fija la raz<61>n mickey/pixel */
 | 
			
		||||
 | 
			
		||||
	ent.x.ax =   7;
 | 
			
		||||
        ent.x.cx =   0;
 | 
			
		||||
        ent.x.dx = 639;
 | 
			
		||||
        int86(0x33, &ent, &sal);  /* fija la posici<63>n m<>x. y m<>n. horizontal */
 | 
			
		||||
 | 
			
		||||
        ent.x.ax =   8;
 | 
			
		||||
	ent.x.cx =   0;
 | 
			
		||||
	ent.x.dx = 199;
 | 
			
		||||
	int86(0x33, &ent, &sal);    /* fija la posici<63>n m<>x. y m<>n. vertical */
 | 
			
		||||
 | 
			
		||||
	ent.x.ax =   4;
 | 
			
		||||
	ent.x.cx = 320;
 | 
			
		||||
	ent.x.dx = 100;
 | 
			
		||||
	int86(0x33, &ent, &sal);               /* fija la posici<63>n del rat<61>n */
 | 
			
		||||
 | 
			
		||||
	ent.x.ax =   1;
 | 
			
		||||
	int86(0x33, &ent, &sal);             /* muestra el puntero del rat<61>n */
 | 
			
		||||
}
 | 
			
		||||
void activa_raton(void)
 | 
			
		||||
{
 | 
			
		||||
	union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
	ent.x.ax = 1;
 | 
			
		||||
	int86(0x33, &ent, &sal);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void desactiva_raton(void)
 | 
			
		||||
{
 | 
			
		||||
        union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
	ent.x.ax = 2;
 | 
			
		||||
	int86(0x33, &ent, &sal);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void espera_pulsar(void)
 | 
			
		||||
{
 | 
			
		||||
	union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
	do{
 | 
			
		||||
	  if(bioskey(1)!=0) break;
 | 
			
		||||
	  ent.x.ax = 3;
 | 
			
		||||
	  int86(0x33, &ent, &sal);       /* lee posici<63>n y estados del bot<6F>n */
 | 
			
		||||
 | 
			
		||||
          SN();
 | 
			
		||||
	}while((sal.x.bx & 3)==0);
 | 
			
		||||
	boton_izq=sal.x.bx & 1;
 | 
			
		||||
	boton_der=(sal.x.bx >> 1) & 1;
 | 
			
		||||
	x_raton= (sal.x.cx >> 1) / 4; // / 8
 | 
			
		||||
	y_raton= (sal.x.dx)/8; //  /8
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void espera_soltar(void)
 | 
			
		||||
{
 | 
			
		||||
	union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
	do{
 | 
			
		||||
	  ent.x.ax = 3;
 | 
			
		||||
	  int86(0x33, &ent, &sal);       /* lee posici<63>n y estados del bot<6F>n */
 | 
			
		||||
	}while((sal.x.bx & 3)!=0);
 | 
			
		||||
	boton_izq=sal.x.bx & 1;
 | 
			
		||||
	boton_der=(sal.x.bx >> 1) & 1;
 | 
			
		||||
	x_raton=sal.x.cx >> 1;
 | 
			
		||||
	y_raton=sal.x.dx;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
void Installer(void)
 | 
			
		||||
{
 | 
			
		||||
  struct Boton_Texto BT[6];
 | 
			
		||||
/*
 | 
			
		||||
23456789-123456789-123456789-
 | 
			
		||||
                          {    Preparar DISCO DURO   }
 | 
			
		||||
 | 
			
		||||
                          { VOLCAR WINDOWS 98 CD->HD }
 | 
			
		||||
                          { VOLCAR WINDOWS 95 CD->HD }
 | 
			
		||||
 | 
			
		||||
                          { VOLCAR UTILIDADES CD->HD }
 | 
			
		||||
                          {     TESTEO DEL EQUIPO    }
 | 
			
		||||
 | 
			
		||||
                          {         SALIR            }
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
  BT[0].x = 26; BT[0].y = 20; strcpy( BT[0].Texto, "           &SALIR           "); BT[0].ID_T1 =  83; BT[0].ID_T2 = 0;
 | 
			
		||||
 | 
			
		||||
  BT[1].x = 26; BT[1].y = 7; strcpy( BT[1].Texto,  "    &Preparar DISCO DURO    "); BT[1].ID_T1 =  80; BT[1].ID_T2 = 0;
 | 
			
		||||
 | 
			
		||||
  BT[2].x = 26; BT[2].y =10; strcpy( BT[2].Texto,  "     &TESTEO DEL EQUIPO     "); BT[2].ID_T1 = 84; BT[2].ID_T2 = 0;
 | 
			
		||||
  BT[3].x = 26; BT[3].y =12; strcpy( BT[3].Texto,  " VOLCAR &UTILIDADES  CD->HD "); BT[3].ID_T1 = 85; BT[3].ID_T2 = 0;
 | 
			
		||||
 | 
			
		||||
  BT[4].x = 26; BT[4].y =15; strcpy( BT[4].Texto,  " VOLCAR &WINDOWS 98  CD->HD "); BT[4].ID_T1 = 87; BT[4].ID_T2 = 0;
 | 
			
		||||
  BT[5].x = 26; BT[5].y =17; strcpy( BT[5].Texto,  " VOLCAR WINDOWS 9&5  CD->HD "); BT[5].ID_T1 = 53; BT[5].ID_T2 = 0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   char ok = 0;
 | 
			
		||||
    int BPush, key;
 | 
			
		||||
    char nBT = 2;
 | 
			
		||||
    char reentrada = 0;
 | 
			
		||||
 | 
			
		||||
       _setcursortype( _NOCURSOR );
 | 
			
		||||
//        DibujaPantallaArticulos();
 | 
			
		||||
    do {
 | 
			
		||||
        notENABLED = OFF;
 | 
			
		||||
        if ( reentrada == 0 )
 | 
			
		||||
                BPush = Funcion_Botones(STD_BY, 6, BT);
 | 
			
		||||
        else
 | 
			
		||||
            reentrada = 0;
 | 
			
		||||
        notENABLED = ON;
 | 
			
		||||
        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() ) != 13 && key != 27 )
 | 
			
		||||
                ungetch( key );
 | 
			
		||||
*/
 | 
			
		||||
            if ( ( key = getch() ) == 13 )
 | 
			
		||||
            {
 | 
			
		||||
             reentrada = 1; BPush = nBT;
 | 
			
		||||
            }
 | 
			
		||||
            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:
 | 
			
		||||
                    break;
 | 
			
		||||
              // Flecha Derecha
 | 
			
		||||
              case  77:
 | 
			
		||||
              case   9:
 | 
			
		||||
                     break;
 | 
			
		||||
              // Flecha Arriba
 | 
			
		||||
              case  72:
 | 
			
		||||
MemTexto[ ROWselect*80*2 + 60*2 ] = ' ';
 | 
			
		||||
MemTexto[ ROWselect*80*2 + 61*2 ] = ' ';
 | 
			
		||||
MemTexto[ ROWselect*80*2 + 62*2 ] = ' ';
 | 
			
		||||
MemTexto[ ROWselect*80*2 + 63*2 ] = ' ';
 | 
			
		||||
 | 
			
		||||
                     nBT--; if ( nBT == 0 ) nBT = 6;
 | 
			
		||||
                     switch(nBT)
 | 
			
		||||
                     {
 | 
			
		||||
                      case 1: ROWselect = 19; break;
 | 
			
		||||
                      case 2: ROWselect =  6; break;
 | 
			
		||||
                      case 3: ROWselect =  9; break;
 | 
			
		||||
                      case 4: ROWselect = 11; break;
 | 
			
		||||
                      case 5: ROWselect = 14; break;
 | 
			
		||||
                      case 6: ROWselect = 16; break;
 | 
			
		||||
                     }
 | 
			
		||||
                     break;
 | 
			
		||||
              // Flecha Abajo
 | 
			
		||||
              case  80:
 | 
			
		||||
MemTexto[ ROWselect*80*2 + 60*2 ] = ' ';
 | 
			
		||||
MemTexto[ ROWselect*80*2 + 61*2 ] = ' ';
 | 
			
		||||
MemTexto[ ROWselect*80*2 + 62*2 ] = ' ';
 | 
			
		||||
MemTexto[ ROWselect*80*2 + 63*2 ] = ' ';
 | 
			
		||||
 | 
			
		||||
                     nBT++; if ( nBT == 7 ) nBT = 1;
 | 
			
		||||
                     switch(nBT)
 | 
			
		||||
                     {
 | 
			
		||||
                      case 1: ROWselect = 19; break;
 | 
			
		||||
                      case 2: ROWselect =  6; break;
 | 
			
		||||
                      case 3: ROWselect =  9; break;
 | 
			
		||||
                      case 4: ROWselect = 11; break;
 | 
			
		||||
                      case 5: ROWselect = 14; break;
 | 
			
		||||
                      case 6: ROWselect = 16; break;
 | 
			
		||||
                     }
 | 
			
		||||
                     break;
 | 
			
		||||
              // Inicio
 | 
			
		||||
              case  71:
 | 
			
		||||
                     break;
 | 
			
		||||
              // Fin
 | 
			
		||||
              case  79:
 | 
			
		||||
                     break;
 | 
			
		||||
            }
 | 
			
		||||
            while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
			
		||||
            break;
 | 
			
		||||
          case 1:
 | 
			
		||||
            ok = 1;
 | 
			
		||||
            break;
 | 
			
		||||
         // Preparar DISCO DURO
 | 
			
		||||
          case 2:
 | 
			
		||||
             Execute( "UT_systm\\PMAGIC\\PQMAGIC.EXE" );
 | 
			
		||||
            break;
 | 
			
		||||
         // Volcar W98 -> HD
 | 
			
		||||
         case 5:
 | 
			
		||||
            Execute( "UT_systm\\C98.BAT" );
 | 
			
		||||
            break;
 | 
			
		||||
         // Volcar W95 -> HD
 | 
			
		||||
         case 6:
 | 
			
		||||
            Execute( "UT_systm\\C95.BAT" );
 | 
			
		||||
            break;
 | 
			
		||||
         // Volcar UTILIDADES -> HD
 | 
			
		||||
         case 4:
 | 
			
		||||
            Execute( "UT_systm\\CUT.BAT" );
 | 
			
		||||
            break;
 | 
			
		||||
         // TESTEO
 | 
			
		||||
         case 3:
 | 
			
		||||
            Execute( "UT_systm\\TESTdos\\Test.exe" );
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    } while(!ok);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										278
									
								
								B-UT.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										278
									
								
								B-UT.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,278 @@
 | 
			
		||||
#include <dos.h>
 | 
			
		||||
#include <conio.h>
 | 
			
		||||
#include <ctype.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <alloc.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <stdarg.h>
 | 
			
		||||
 | 
			
		||||
#define BLANCO EGA_WHITE
 | 
			
		||||
#define ENCUADRE       3
 | 
			
		||||
#define SEC_OPTAR      5
 | 
			
		||||
 | 
			
		||||
#include "B-T.h"
 | 
			
		||||
 | 
			
		||||
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, i;
 | 
			
		||||
 | 
			
		||||
  s1 = s;                                       // inicio cadena
 | 
			
		||||
 | 
			
		||||
                textbackground( cf );
 | 
			
		||||
 | 
			
		||||
                gotoxy( X0, Y0 );
 | 
			
		||||
                for ( i = 0; i < X1; i++ )
 | 
			
		||||
                                        putch( 32 );
 | 
			
		||||
                textcolor( cc );
 | 
			
		||||
                gotoxy( X0, Y0 );
 | 
			
		||||
                cprintf( "%s", s1 );
 | 
			
		||||
 | 
			
		||||
  _setcursortype( _SOLIDCURSOR );
 | 
			
		||||
 | 
			
		||||
  ls = strlen ( s );                            // Longitud de actual
 | 
			
		||||
 | 
			
		||||
  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';
 | 
			
		||||
 | 
			
		||||
                gotoxy( X0, Y0 );
 | 
			
		||||
                for ( i = 0; i < X1; i++ )
 | 
			
		||||
                                         putch( 32 );
 | 
			
		||||
                textcolor( cc );
 | 
			
		||||
                gotoxy( X0, Y0 );
 | 
			
		||||
                cprintf( "%s", s1 );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	} else {
 | 
			
		||||
		if ( !numalp && c >= 32 && c <= 254  && ls < lmax) {
 | 
			
		||||
 | 
			
		||||
			*s++ = c;
 | 
			
		||||
			ls++;
 | 
			
		||||
 | 
			
		||||
			*s = '\0';
 | 
			
		||||
 | 
			
		||||
                gotoxy( X0, Y0 );
 | 
			
		||||
                for ( i = 0; i < X1; i++ )
 | 
			
		||||
                                         putch( 32 );
 | 
			
		||||
                textcolor( cc );
 | 
			
		||||
                gotoxy( X0, Y0 );
 | 
			
		||||
                cprintf( "%s", s1 );
 | 
			
		||||
 | 
			
		||||
		} else {
 | 
			
		||||
			if ( numalp && isdigit(c)  && ls < lmax) {
 | 
			
		||||
				*s++ = c;
 | 
			
		||||
				ls++;
 | 
			
		||||
 | 
			
		||||
				*s = '\0';                              // Cero final
 | 
			
		||||
 | 
			
		||||
                gotoxy( X0, Y0 );
 | 
			
		||||
                for ( i = 0; i < X1; i++ )
 | 
			
		||||
                                         putch( 32 );
 | 
			
		||||
                textcolor( cc );
 | 
			
		||||
                gotoxy( X0, Y0 );
 | 
			
		||||
                cprintf( "%s", s1 );
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
		/*<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);
 | 
			
		||||
 | 
			
		||||
  _setcursortype( _NOCURSOR );
 | 
			
		||||
 | 
			
		||||
  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_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, ... )
 | 
			
		||||
{
 | 
			
		||||
struct Boton_Texto BT[6];
 | 
			
		||||
int devolver = 0;
 | 
			
		||||
 | 
			
		||||
BT[0].x = 22; BT[0].y = 15; strcpy( BT[0].Texto, " acep&Tar "); BT[0].ID_T1 = 84; BT[0].ID_T2 = 20;
 | 
			
		||||
BT[1].x = 51; BT[1].y = 15; strcpy( BT[1].Texto, " &Cancelar"); BT[1].ID_T1 = 67; BT[1].ID_T2 = 46;
 | 
			
		||||
 | 
			
		||||
 static char fondo[4096];
 | 
			
		||||
 static char Memoria = 0;
 | 
			
		||||
 | 
			
		||||
 int DEV = 0, ok = 0, linea = 0;
 | 
			
		||||
 int Center; char *buff;
 | 
			
		||||
 | 
			
		||||
 va_list ap;
 | 
			
		||||
 va_start( ap, &optar );
 | 
			
		||||
 | 
			
		||||
 if ( Memoria == 1 )
 | 
			
		||||
 {
 | 
			
		||||
  puttext(  21,  5, 63, 17, (void *)fondo );  Memoria = 0;
 | 
			
		||||
  if ( optar == ENCUADRE ) return DEV;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 Memoria = 1;
 | 
			
		||||
 | 
			
		||||
 gettext( 21,  5,  63, 17, (void *)fondo      );
 | 
			
		||||
 | 
			
		||||
textbackground( BLACK );
 | 
			
		||||
textcolor( CYAN );
 | 
			
		||||
gotoxy( 21,  5 );    cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ");
 | 
			
		||||
gotoxy( 21,  6 );    cprintf("<EFBFBD>                                         <20>");
 | 
			
		||||
gotoxy( 21,  7 );    cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ");
 | 
			
		||||
gotoxy( 21,  8 );    cprintf("<EFBFBD>                                         <20>");
 | 
			
		||||
gotoxy( 21,  9 );    cprintf("<EFBFBD>                                         <20>");
 | 
			
		||||
gotoxy( 21, 10 );    cprintf("<EFBFBD>                                         <20>");
 | 
			
		||||
gotoxy( 21, 11 );    cprintf("<EFBFBD>                                         <20>");
 | 
			
		||||
gotoxy( 21, 12 );    cprintf("<EFBFBD>                                         <20>");
 | 
			
		||||
gotoxy( 21, 13 );    cprintf("<EFBFBD>                                         <20>");
 | 
			
		||||
gotoxy( 21, 14 );    cprintf("<EFBFBD>                                         <20>");
 | 
			
		||||
gotoxy( 21, 15 );    cprintf("<EFBFBD>                                         <20>");
 | 
			
		||||
gotoxy( 21, 16 );    cprintf("<EFBFBD>                                         <20>");
 | 
			
		||||
gotoxy( 21, 17 );    cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   textcolor( RED );
 | 
			
		||||
   linea = 0;
 | 
			
		||||
   while ( (buff = va_arg(ap, char *)) != NULL )
 | 
			
		||||
   {
 | 
			
		||||
     Center = (42 - strlen( buff ) ) / 2;
 | 
			
		||||
     gotoxy( 21+Center+1, ( (linea == 0 ) ? 6 : 8 + linea ) );
 | 
			
		||||
     cprintf( "%s", buff );
 | 
			
		||||
     linea++;
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   va_end(ap);
 | 
			
		||||
 | 
			
		||||
   if ( optar != ENCUADRE )
 | 
			
		||||
   {
 | 
			
		||||
    ok = 0;   	       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
			
		||||
    if ( optar == 1 )
 | 
			
		||||
    do {
 | 
			
		||||
      switch( Funcion_Botones(STD_BY, 2, BT) )
 | 
			
		||||
      {
 | 
			
		||||
        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 );
 | 
			
		||||
    else { espera_pulsar(); espera_soltar(); }
 | 
			
		||||
 | 
			
		||||
   puttext(  21,  5, 63, 17, (void *)fondo );
 | 
			
		||||
 | 
			
		||||
   Memoria = 0;
 | 
			
		||||
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
 return DEV;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								autodos.prj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								autodos.prj
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user