From 89c34dd4164db8f905ee75b18f87cfe2bb9388c9 Mon Sep 17 00:00:00 2001 From: jdg <jd@infdj.com> Date: Fri, 3 Sep 2021 17:40:35 +0200 Subject: [PATCH] First commit 02/07/1999 --- AUTODOS.DSK | Bin 0 -> 8302 bytes B-T.h | 99 ++++++++++ B-Tmain.cpp | 525 ++++++++++++++++++++++++++++++++++++++++++++++++++++ B-UT.cpp | 278 ++++++++++++++++++++++++++++ M.BAT | 1 + autodos.prj | Bin 0 -> 5642 bytes sn.exe | Bin 0 -> 47830 bytes 7 files changed, 903 insertions(+) create mode 100644 AUTODOS.DSK create mode 100644 B-T.h create mode 100644 B-Tmain.cpp create mode 100644 B-UT.cpp create mode 100644 M.BAT create mode 100644 autodos.prj create mode 100644 sn.exe diff --git a/AUTODOS.DSK b/AUTODOS.DSK new file mode 100644 index 0000000000000000000000000000000000000000..d8853bdf1e39f0f4c0ef503f25a8937e6e35ef93 GIT binary patch literal 8302 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 literal 0 HcmV?d00001 diff --git a/B-T.h b/B-T.h new file mode 100644 index 0000000..1201ce7 --- /dev/null +++ b/B-T.h @@ -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); + +//�� +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; + +//�� + +extern int AnoActual; diff --git a/B-Tmain.cpp b/B-Tmain.cpp new file mode 100644 index 0000000..d012631 --- /dev/null +++ b/B-Tmain.cpp @@ -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� 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 ] = '�'; + } 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 ] = '�'; + } 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 ] = '�'; + } + + 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(" / / �� � � � � � ��� �� �\n\r"); + cprintf(" ��� / _/ �� � � � ���� �� � � ��� � �\n\r"); + cprintf(" ���� _/ ��� ��� �� � �� �� ���� � � ���\n\r"); + cprintf(" ����� / \n\r"); + cprintf(" ������ __/ \n\r"); + cprintf(" ������� \n\r"); + cprintf(" ������� ----__- \n\r"); + cprintf(" ������� \n\r"); + cprintf(" ������� __--_ \n\r"); + cprintf(" ������ \\ \n\r"); + cprintf(" ����� \\_ \n\r"); + cprintf(" ���� \\_ \n\r"); + cprintf(" ��� \\_ \n\r"); + cprintf(" �� \\ \\_ \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); // �SALIR�� + cprintf("�"); // ������� + gotoxy(Boton_Texto[nBotones].x+1, Boton_Texto[nBotones].y+1); + for(i = 0; i < longitud; i ++ ) // �������� + cprintf("�"); // ������� + 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); // + // ������� + 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�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�n mickey/pixel */ + + ent.x.ax = 7; + ent.x.cx = 0; + ent.x.dx = 639; + int86(0x33, &ent, &sal); /* fija la posici�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�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�n del rat�n */ + + ent.x.ax = 1; + int86(0x33, &ent, &sal); /* muestra el puntero del rat�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�n y estados del bot�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�n y estados del bot�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); +} + + diff --git a/B-UT.cpp b/B-UT.cpp new file mode 100644 index 0000000..b38a04d --- /dev/null +++ b/B-UT.cpp @@ -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�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, 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 ); + + } + /*������������������������������������*/ + else if( c == 27 ) {*s='\0'; ok = 1; } + /*������������������������������������*/ + 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("�����������������������������������������Ŀ"); +gotoxy( 21, 6 ); cprintf("� �"); +gotoxy( 21, 7 ); cprintf("�����������������������������������������Ĵ"); +gotoxy( 21, 8 ); cprintf("� �"); +gotoxy( 21, 9 ); cprintf("� �"); +gotoxy( 21, 10 ); cprintf("� �"); +gotoxy( 21, 11 ); cprintf("� �"); +gotoxy( 21, 12 ); cprintf("� �"); +gotoxy( 21, 13 ); cprintf("� �"); +gotoxy( 21, 14 ); cprintf("� �"); +gotoxy( 21, 15 ); cprintf("� �"); +gotoxy( 21, 16 ); cprintf("� �"); +gotoxy( 21, 17 ); cprintf("�������������������������������������������"); + + + + 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; +} + + + diff --git a/M.BAT b/M.BAT new file mode 100644 index 0000000..3de38e8 --- /dev/null +++ b/M.BAT @@ -0,0 +1 @@ +autodos \ No newline at end of file diff --git a/autodos.prj b/autodos.prj new file mode 100644 index 0000000000000000000000000000000000000000..d00f1da5a4efe2bafa60be760e86477a6ee5c96e GIT binary patch literal 5642 zcmeI0X-r&I6vxkf?87!d%T|TgGGa@^z|gW37Z_#+m}Iuh46)j&SYV1+VCVqF6;P`+ zZgKgliTl2^wwjn|P5fYDTWaG%7r*&Izq)VLj^}^J5>hg}p-kJv_#XV`ym$Ziob%4R z_ig_1a8F3JsGe}>mSFFg+CDHCR7*)@=NAe7Nvk7o`lqCjphHZe!_qz?IV1NRmG%dj zX#G&~pyWqPL7&UkFC@QYCebXjm5$3jCnQfYDd`kQKX4!V5%>xCnIV3G^(!S4O%wfw zjo*PkfIrbo-J8r*zLy?mGkN!M;DpTMB+OH6>gj7{GMz@h1G$X9*i!z+<{2OYkl={C zkVs-sGLQnKGL$q%Njjr1gQ4melnG=3*+33M<igSedB8IqO?eg}p97u;UI1PMUIJbQ zUIF$3`+#?V{lKfhYmB7VVZ8yo3A_co4ZI7y2jnAU0kDE0Rsw}Uk%-o?7;Pm2^)7|E z3b+i4%YiaRQaLP@L2G~tzyMqURC4FY)Rk<lmu_|_Y;IwQt-y^y56}zr0YP9p&=1_q zpdnxw2w~q&SfjAUVeNu70qa&+w*j{UcK~-X=uzM<Y)%4Gz%+0-a1U@VgLcEZ54azj zdw>V9`5^ER@Cfi2@Hp@U@Fb9|XQTkBKpKz^R0}ItaQTZ-Op~QK;PJXUyk=*h&FyuV zT~<rL?y@+#thVI`h{Hooj2s;Hwm5nxMpDbeb3+}GNu*F+J^QR<!&F;Kv_VWICdB!B z*(l1WYSHfXnu-QZMWd#oNmH>&Q_-xcxJpxTwWi`4O~tjEiWW^pD-T>63r_^cCW2x7 zFM5tHOr!bI4^OK|=eg6^(8xz<W4p<;iDwc~`=w9K!n4?D@p!01-YOyyp3juZ_gd4Q z?<#flRXR;}cx|3IPECI}I1+~}Zb|j<dez{xIoF!%n%1cXm)m!p*`pfxLhSVTRfB~$ zoW72=$gYl!b-O|XeQK4lSB*Qu#StEkh)KVEkTZ{t28VhEW6uJ=+2>4TQZ>%aYRwIH zwZ^R)674&Yd20DO5}{}XC#}Jr@&5kU6{N8~EoVz>H`q4YTxRFRxz8^xwI!)%=1Ryf z6WjScBKD<tY=jj{a=y6uzf!`Z5#gN-j)um=y+PFy8XAdRMXzP?k}S2=kZ6ZXO&~$~ z&-hws9~udT$5h8aPk38+VB2sE*LJ5Tp^vwQL_3U;_l4elEP{LV|I4x}u#pO>rYc(( zU8`!&TG_gKvhv$!seJr-Ur%(9U&?d%UA(Q@?=;(8@=?ia>9)Fk0dtq%jo<lAac7lH zS(M2iT!_+X=S|;Kwx<#u<9J0Jy{)>-F9SIPz6G)VZHhY(3w4yiQTQOHXIivY6Dzi~ z6gO{`$~@B<)4qc9SsSQ4X%)xj(K@$0MNf;5#kWGo-=2z<3Z+9CR4PO#zt<m7W|h;* z4)L&Pq9*R8rxL2=2hd__Ejd(NBv~lAQgVf4fn>I1zGR-HUNToQhd$ZgxjGVopZR*k z$dZ+hdW^=1`i=I?l>MVoqkeVsyk{)%zECd@+-MB&-?^U+0)D&GX6%fXCx*o5xAGNG zL)2z>`!pnW_gTUGkt!<^JF?l^fnF$E43XL4a9cDqd<fC#7~*roI)YQexoC8@_^<cK z8ZDB9&+oOnv@-2>bvYbb!Q8HBri%pQ$*$q0+tqG&Xyx2(wY9@hBN-^?oGDU9<)qST OT0<37#%)+|z5fU5c_YjK literal 0 HcmV?d00001 diff --git a/sn.exe b/sn.exe new file mode 100644 index 0000000000000000000000000000000000000000..56009b4b532132b3139c2741c1c14e735c1a9e3b GIT binary patch literal 47830 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 Q3Y2@?Zj{ws?GM8EFKL(`IRF3v literal 0 HcmV?d00001