commit e0a9c4f8c91c28ef3ae92252c439a7760040e98e Author: jdg Date: Fri Sep 3 17:50:32 2021 +0200 First commit 09/04/1995 diff --git a/640X400.ASM b/640X400.ASM new file mode 100644 index 0000000..5326af1 --- /dev/null +++ b/640X400.ASM @@ -0,0 +1,72 @@ + +_TEXT SEGMENT BYTE PUBLIC 'CODE' + + ASSUME CS:_TEXT + + PUBLIC _VUELCA_PANTALLA + + +_VUELCA_PANTALLA PROC NEAR + PUSH BP + MOV BP,SP + PUSH AX + PUSH BX + PUSH CX + PUSH DI + PUSH DS + PUSH DX + PUSH ES + PUSH SI + + LDS SI,[BP+4] + MOV AX,0A000h + MOV ES,AX + MOV DI,0 + + MOV AH,00010001b + MOV DX, 400 + CLD + +SIG_LINEA: MOV BX,4 + +SON_4_PLANOS: PUSH AX + PUSH DX + MOV DX,3C4H ;MASCARA DE PLANOS + MOV AL,2 + OUT DX,AX + POP DX + POP AX + + MOV CX,80 +LINEA: MOV AL,ES:[DI] + MOVSB + CMP SI,0 + JNZ MISMO_SEG + MOV BP,DS + ADD BP,1000h + MOV DS,BP +MISMO_SEG: LOOP LINEA + SUB DI,80 + ROL AH,1 + DEC BX + JNZ SON_4_PLANOS + ADD DI,80 + DEC DX + JNZ SIG_LINEA + + POP SI + POP ES + POP DX + POP DS + POP DI + POP CX + POP BX + POP AX + POP BP + RET +_VUELCA_PANTALLA ENDP + +_TEXT ENDS + + END + diff --git a/640X480.ASM b/640X480.ASM new file mode 100644 index 0000000..484c437 --- /dev/null +++ b/640X480.ASM @@ -0,0 +1,72 @@ + +_TEXT SEGMENT BYTE PUBLIC 'CODE' + + ASSUME CS:_TEXT + + PUBLIC _VUELCA_PANTALLA_B + + +_VUELCA_PANTALLA_B PROC NEAR + PUSH BP + MOV BP,SP + PUSH AX + PUSH BX + PUSH CX + PUSH DI + PUSH DS + PUSH DX + PUSH ES + PUSH SI + + LDS SI,[BP+4] + MOV AX,0A000h + MOV ES,AX + MOV DI,0 + + MOV AH,00010001b + MOV DX, 480 + CLD + +SIG_LINEA: MOV BX,4 + +SON_4_PLANOS: PUSH AX + PUSH DX + MOV DX,3C4H ;MASCARA DE PLANOS + MOV AL,2 + OUT DX,AX + POP DX + POP AX + + MOV CX,80 +LINEA: MOV AL,ES:[DI] + MOVSB + CMP SI,0 + JNZ MISMO_SEG + MOV BP,DS + ADD BP,1000h + MOV DS,BP +MISMO_SEG: LOOP LINEA + SUB DI,80 + ROL AH,1 + DEC BX + JNZ SON_4_PLANOS + ADD DI,80 + DEC DX + JNZ SIG_LINEA + + POP SI + POP ES + POP DX + POP DS + POP DI + POP CX + POP BX + POP AX + POP BP + RET +_VUELCA_PANTALLA_B ENDP + +_TEXT ENDS + + END + diff --git a/640X480.LIB b/640X480.LIB new file mode 100644 index 0000000..d496b64 Binary files /dev/null and b/640X480.LIB differ diff --git a/CD_CFG.CPP b/CD_CFG.CPP new file mode 100644 index 0000000..e4ff7ca --- /dev/null +++ b/CD_CFG.CPP @@ -0,0 +1,312 @@ +#include +#include +#include +#include // Para getch(); +#include // Para outtextxy(...); y cleardevice(...); +#include "..\libs\make_bot\make_bot.h" // Fuciones de MAKE_BOTON +#include "cd_icons.h" +#include "CD_SND.H" + +#define SIN_COMENTARIO 0 +#define CON_COMENTARIO 1 + +#define DOS 1 +#define WINDOWS 2 + +extern int /*far _cdecl*/ Fichero_cd_img(char Dinamicos_Estaticos); + +struct CFG_str { + char Nombre_del_Programa[70]; + char Comentario_Inicial[70]; + char VerHi, VerLow; + char Register; + + long Records; +}; + +struct CFG_str CD_cabecera1; + +typedef struct { + + unsigned int Exit_after_EXE : 1; + unsigned int With_Out_Sound : 1; + unsigned int Auto_Install : 1; + unsigned int Check_Free_Size : 1; + unsigned int Format_Always : 1; + unsigned int Without_Backgr : 1; + unsigned int Futura_Ampliac : 4; + +} Cd_CFG; + +Cd_CFG CD_CFG1; +FILE *CD_CFG; +int CFG; + +void Init_CFG(void); +void Abre_Ficha_CD_CFG(int R_W); +void Poner_a_cero_estructura_actual_CFG(void); + +#define SIN_COMENTARIO 0 +#define CON_COMENTARIO 1 +extern void Imprime_Lista(char Como); +extern void Sonido(char Sonido); + + + +void Init_CFG(void){ + int ok = 0; + int Salvar = 0; + + Abre_Ficha_CD_CFG(0); + +setfillstyle(SOLID_FILL, 240); +bar(395, 140, 625, 410); + +// Imprime_Estaticos( 4, "cd_out.img"); // Imprime botones estaticos 'Seccion 4' + Fichero_cd_img(4); +Imprime_Secuencia(2); // Imprime secuencia 1. +// Imprime_Estaticos( 5, "cd_out.img"); // Imprime textos estaticos 'Seccion 5' + Fichero_cd_img(5); + + if ( CD_CFG1 . Exit_after_EXE ) Imprime_Bordes(2, 4, 248); + if ( CD_CFG1 . With_Out_Sound ) Imprime_Bordes(2, 5, 248); + if ( CD_CFG1 . Auto_Install ) Imprime_Bordes(2, 6, 248); + if ( CD_CFG1 . Check_Free_Size ) Imprime_Bordes(2, 7, 248); + if ( CD_CFG1 . Format_Always ) Imprime_Bordes(2, 8, 248); + if ( CD_CFG1 . Without_Backgr ) Imprime_Bordes(2, 9, 248); + +while(!ok){ // Bucle infinito + + switch( Comprueba_Secuencia( 2 ) ) { // Iniciamos comprobacion de 2 sec + + case 0: // No se pulso ningun BOTON + // Pero el raton fue presionado en + // algun sitio... +// Sonido("CD_OUT01.WAV"); + Sonido( Mouse_Press ); + break; + case -2: // Hay una tecla normal en BUFFER + getch(); // La eliminamos +// Sonido("CD_OUT01.WAV"); + Sonido( Mouse_Press ); + break; + case -1: // Hay una tecla especial en BUFFER + getch(); // La eliminamos +// Sonido("CD_OUT01.WAV"); + Sonido( Mouse_Press ); + break; + // Boton Cancelar + case 1: +// Sonido("CD_OUT0F.WAV"); + Sonido( Cancel ); + Salvar = 0; + ok = 1; + break; + // Boton Salvar + case 2: +// Sonido("CD_OUT10.WAV"); + Sonido( Save_until_exit ); + Salvar = 1; + break; + // Boton Anterior + case 3: +// Sonido("CD_OUT0E.WAV"); + Sonido( Ok ); + ok = 1; + break; + // Boton Salir despues de ejecutar + case 4: + if ( CD_CFG1 . Exit_after_EXE ) { + Imprime_Bordes(2, 4, -1); + CD_CFG1 . Exit_after_EXE = 0; +// Sonido("CD_OUT0C.WAV"); + Sonido( No ); + } else { + CD_CFG1 . Exit_after_EXE = 1; + Imprime_Bordes(2, 4, 248); +// Sonido("CD_OUT0B.WAV"); + Sonido( Yes ); + } + break; + // Boton Desactivar sonidos + case 5: + if ( CD_CFG1 . With_Out_Sound ) { + Imprime_Bordes(2, 5, -1); + CD_CFG1 . With_Out_Sound = 0; +// Sonido("CD_OUT0C.WAV"); + Sonido( No ); + } else { + CD_CFG1 . With_Out_Sound = 1; + Imprime_Bordes(2, 5, 248); +// Sonido("CD_OUT0B.WAV"); + Sonido( Yes ); + } + break; + // Boton Auto_Instalacin + case 6: + if ( CD_CFG1 . Auto_Install ) { + Imprime_Bordes(2, 6, -1); + CD_CFG1 . Auto_Install = 0; +// Sonido("CD_OUT0C.WAV"); + Sonido( No ); + } else { + CD_CFG1 . Auto_Install = 1; + Imprime_Bordes(2, 6, 248); +// Sonido("CD_OUT0B.WAV"); + Sonido( Yes ); + } + break; + // Boton Comprobar espacio libre + case 7: + if ( CD_CFG1 . Check_Free_Size ) { + Imprime_Bordes(2, 7, -1); + CD_CFG1 . Check_Free_Size = 0; +// Sonido("CD_OUT0C.WAV"); + Sonido( No ); + } else { + CD_CFG1 . Check_Free_Size = 1; + Imprime_Bordes(2, 7, 248); +// Sonido("CD_OUT0B.WAV"); + Sonido( Yes ); + } + break; + // Boton Formatear en caso de unidades A: y B: + case 8: + if ( CD_CFG1 . Format_Always ) { + Imprime_Bordes(2, 8, -1); + CD_CFG1 . Format_Always = 0; +// Sonido("CD_OUT0C.WAV"); + Sonido( No ); + } else { + CD_CFG1 . Format_Always = 1; + Imprime_Bordes(2, 8, 248); +// Sonido("CD_OUT0B.WAV"); + Sonido( Yes ); + } + break; + // Boton sin dibujo de Fondo + case 9: + if ( CD_CFG1 . Without_Backgr ) { + Imprime_Bordes(2, 9, -1); + CD_CFG1 . Without_Backgr = 0; +// Sonido("CD_OUT0C.WAV"); + Sonido( No ); + } else { + CD_CFG1 . Without_Backgr = 1; + Imprime_Bordes(2, 9, 248); +// Sonido("CD_OUT0B.WAV"); + Sonido( Yes ); + } + break; + // Boton Imprime Lista Sin Comentarios + case 10: +// Sonido("CD_OUT0D.WAV"); + Sonido( Printing ); + Imprime_Lista(SIN_COMENTARIO); + break; +// // Boton Imprime Lista Con Comentarios +// case 10: +// Imprime_Lista(CON_COMENTARIOS); +// break; + default: + while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER +// Sonido("CD_OUT11.WAV"); + Sonido( Unknow_error ); + break; + } + +} + +setfillstyle(SOLID_FILL, 240); +bar(395, 140, 625, 410); + +if ( Salvar == 1 && CFG != 0 ) Abre_Ficha_CD_CFG(1); else Abre_Ficha_CD_CFG(0); + +return; +} + +// +// +// +// +// +// +// +// + +void Abre_Ficha_CD_CFG(int R_W){ + +char ArchivoDatos[]="C:\\CD_out.CFG"; +char Memoria; +CFG = 1; + +//// +// CD_in Apertura de Indice, y Datos, o creacin... // +//// + + int LSJ = sizeof(struct CFG_str); + int LSC = sizeof(Cd_CFG); + + if ( (CD_CFG = fopen( ArchivoDatos, "r+b"))==NULL) { + + FILE *fa; + + if ( (fa = fopen( ArchivoDatos, "wb" ) )!=NULL ) { + + Poner_a_cero_estructura_actual_CFG(); + CD_cabecera1.Records = 0; + rewind(fa); + + fwrite(&CD_cabecera1, LSJ, 1, fa); fseek(fa, (long)LSJ, SEEK_SET); + fwrite(&CD_CFG1, LSC, 1, fa); + + if (fclose(fa) == EOF ) CFG = 0; + } + + if ( (CD_CFG = fopen( ArchivoDatos, "r+b"))==NULL) CFG = 0; + } + + if ( CFG != 0 ) { + rewind(CD_CFG); + if ( fread(&CD_cabecera1, LSJ, 1, CD_CFG) != 1 ) CFG = 0; + } + +if( R_W == 0 ) { + if ( CFG != 0 ) { + fseek(CD_CFG, (long)LSJ, SEEK_SET); + if ( fread(&CD_CFG1, LSC, 1, CD_CFG) != 1 ) CFG = 0; + } +} else { + if ( CFG != 0 ) { + fseek(CD_CFG, (long)LSJ, SEEK_SET); + if ( fwrite(&CD_CFG1, LSC, 1, CD_CFG) != 1 ) CFG = 0; + } +} + + if (fclose(CD_CFG) == EOF ) CFG = 0; + +} + +void Poner_a_cero_estructura_actual_CFG(void){ + + char CR = 13, LF = 10, BEEP = 7, ANY = 26; + sprintf( CD_cabecera1.Nombre_del_Programa, "%c %c %c - CD_OUT - %c %c Fichero de Configuracin %c %c", CR, LF, BEEP, CR, LF, CR, LF ); + sprintf( CD_cabecera1.Comentario_Inicial, "Jos David Guilln %c %c %c %c", CR, LF, BEEP, ANY ); + CD_cabecera1.VerHi = 1; CD_cabecera1.VerLow = 0; + CD_cabecera1.Register = 1; + + CD_CFG1 . Exit_after_EXE = 1; + CD_CFG1 . With_Out_Sound = 0; + CD_CFG1 . Auto_Install = 1; + CD_CFG1 . Check_Free_Size = 1; + CD_CFG1 . Format_Always = 0; + CD_CFG1 . Without_Backgr = 0; + CD_CFG1 . Futura_Ampliac = 0; + +} + + + + + + diff --git a/CD_EDIT.CPP b/CD_EDIT.CPP new file mode 100644 index 0000000..1f23631 --- /dev/null +++ b/CD_EDIT.CPP @@ -0,0 +1,838 @@ +#include +#include +#include +#include +#include +#include // Para getch(); +#include // Para outtextxy(...); y cleardevice(...); +#include "..\libs\make_bot\make_bot.h" // Fuciones de MAKE_BOTON +#include "cd_icons.h" +#include "cd_file.h" +#include "..\libs\wavplav\wavplay.h" + +#include "CD_SND.H" + +#include "EMMC.h" + +extern int pagenum, /*nmero de pginas EMS*/ + handle, /*Handle para acceder a la memoria EMS*/ + i; /*contador de bucle*/ +extern WORD pageseg ; /*direccin de segmento del Page-Frame*/ +extern BYTE emmver; /*nmero de versin de la EMM*/ + +extern int /*far _cdecl*/ Fichero_cd_img(char Dinamicos_Estaticos); + +#define DOS 1 +#define WINDOWS 2 + +#define SIN_COMENTARIO 0 +#define CON_COMENTARIO 1 + +extern int file_exists(char *filename); +extern void Carga_PCX(char *Imagen); + +extern void Sonido(char Sonido); + +void Muestra_Comentario(int Ini); +int Abre_Ficha_CD_in(void); +void GetLineCD_in(void); +void Inicializa_Apertura(void); +void BEEP(void); +void Mueve_Abajo_CD_in(void); +void Mueve_Arriba_CD_in(void); +void PrintWholeScreenCD_in(void); +void textxy( int x, int y, char *P_Texto ); +void Borra_Campo_Visual(void); + +FILE *CD_in; +CD_FILE CD_in1, CD_in2; +struct Cabecera CD_cabecera; +int Comprueba_Impresora(void); + +extern int Muestra_Mensaje(int Mensaje, char *file); +void Imprime_Lista(char Como); + +extern char _XMS; +extern int CFG; + +extern void Init_CFG(void); +extern void Init_EXE(int CurrIcon); +extern void Init_Install(int CurrIcon); + +void Coloca_Iconos(int Start_Icon); +void Menu_de_Edicion(void); + + unsigned char Items_for = DOS; + unsigned char Item_select = 1; + unsigned int CurrTopLineCD_in = 1; unsigned char CurrRowCD_in = 1; + unsigned char CurrRowCD_in2 = 0; + char NEW_PUSH = 0; + char Fichero_Abierto; + + char SONIDO = 0; +void Menu_de_Edicion(void){ + int ok = 0; + char cont; + char Buffer[80]; + + int Curr_Item = 1; + + Imprime_Bordes(1, 1, 251); + settextstyle( SMALL_FONT, HORIZ_DIR, 4); + Inicializa_Apertura(); + +while(!ok){ // Bucle infinito + + switch( Comprueba_Secuencia( 1 ) ) { // Iniciamos comprobacion de iconos + + case 0: // No se pulso ningun BOTON + // Pero el raton fue presionado en + // algun sitio... +// Sonido("CD_OUT01.WAV"); + Sonido( Mouse_Press ); + break; + case -2: // Hay una tecla normal en BUFFER + getch(); // La eliminamos +// Sonido("CD_OUT02.WAV"); + Sonido( Key_Press ); + break; + case -1: // Hay una tecla especial en BUFFER + switch ( getch() ){ // La utilizamos +/* + // INICIO + case 71: + if ( Fichero_Abierto ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + CurrRowCD_in = 1; + CurrTopLineCD_in = 1; + PrintWholeScreenCD_in(); + GetLineCD_in(); + } + break; + // FIN + case 79: + if ( Fichero_Abierto ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + CurrRowCD_in = 1; + CurrTopLineCD_in = (CD_cabecera.Records + 1); + PrintWholeScreenCD_in(); + GetLineCD_in(); + } + break; +*/ + // RePg + case 71://73: + // CurrRow = 1; + if ( Fichero_Abierto ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + if( CurrTopLineCD_in + CurrRowCD_in > 10 ) { CurrTopLineCD_in -= 9; } else { CurrTopLineCD_in = 1; CurrRowCD_in = 1;} + if( CurrTopLineCD_in + CurrRowCD_in< 1 ) { CurrTopLineCD_in = 1; CurrRowCD_in = 1;} + PrintWholeScreenCD_in(); + GetLineCD_in(); + } + break; + // AvPg + case 79://81: + // CurrRow = 1; + if ( Fichero_Abierto ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + CurrTopLineCD_in += 11; + if ( (CurrTopLineCD_in +CurrRowCD_in-1) > CD_cabecera.Records) { CurrTopLineCD_in = CD_cabecera.Records; CurrRowCD_in = 1; } + if (CurrTopLineCD_in ==0) CurrTopLineCD_in = 1; + PrintWholeScreenCD_in(); + GetLineCD_in(); + } + break; + default: + break; + } + break; + // Boton DOS + case 1: +// Sonido("CD_OUT04.WAV"); + Sonido( Play_DOS ); + Imprime_Bordes(1, 2, -1); + Items_for = DOS; + Imprime_Bordes(1, 1, 251); + fclose(CD_in); + Inicializa_Apertura(); + break; + // Boton WINDOWS + case 2: +// Sonido("CD_OUT05.WAV"); + Sonido( Play_WINDOWS ); + Imprime_Bordes(1, 1, -1); + Items_for = WINDOWS; + Imprime_Bordes(1, 2, 251); + fclose(CD_in); + Muestra_Comentario(0); + Inicializa_Apertura(); + break; + // Boton 1 Icono + case 3: +// Sonido("CD_OUT06.WAV"); + Sonido( Select_Icono ); + if(Curr_Item==16){ +// Muestra_Creditos(); + if ( _XMS == 1) { + strcpy( Buffer, "cd_out.cr1" ); + if ( file_exists(Buffer) ) + { + SONIDO = 1; + Carga_PCX(Buffer); + SONIDO = 0; + } + } + +while( kbhit() ) getch(); + }else{ + Item_select = Curr_Item; + fclose(CD_in); + Inicializa_Apertura(); + } + break; + // Boton Flecha Derecha + case 4: +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + Curr_Item--; if( Curr_Item < 1 ) Curr_Item = 16; + Coloca_Iconos(Curr_Item); + break; + // Boton Flecha Izquierda + case 5: +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + Curr_Item++; if( Curr_Item > 16 ) Curr_Item = 1; + Coloca_Iconos(Curr_Item); + break; + // Botones de Letras... + case 6: + if ( Fichero_Abierto && ( CurrTopLineCD_in + 1 - 2 ) <= CD_cabecera.Records ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + CurrRowCD_in = 1; + GetLineCD_in(); + CD_in2 = CD_in1; + Muestra_Comentario(1); + } + break; + case 7: + if ( Fichero_Abierto && ( CurrTopLineCD_in + 2 - 2 ) <= CD_cabecera.Records ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + CurrRowCD_in = 2; + GetLineCD_in(); + CD_in2 = CD_in1; + Muestra_Comentario(1); + } + break; + case 8: + if ( Fichero_Abierto && ( CurrTopLineCD_in + 3 - 2 ) <= CD_cabecera.Records ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + CurrRowCD_in = 3; + GetLineCD_in(); + CD_in2 = CD_in1; + Muestra_Comentario(1); + } + break; + case 9: + if ( Fichero_Abierto && ( CurrTopLineCD_in + 4 - 2 ) <= CD_cabecera.Records ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + CurrRowCD_in = 4; + GetLineCD_in(); + CD_in2 = CD_in1; + Muestra_Comentario(1); + } + break; + case 10: + if ( Fichero_Abierto && ( CurrTopLineCD_in + 5 - 2 ) <= CD_cabecera.Records ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + CurrRowCD_in = 5; + GetLineCD_in(); + CD_in2 = CD_in1; + Muestra_Comentario(1); + } + break; + case 11: + if ( Fichero_Abierto && ( CurrTopLineCD_in + 6 - 2 ) <= CD_cabecera.Records ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + CurrRowCD_in = 6; + GetLineCD_in(); + CD_in2 = CD_in1; + Muestra_Comentario(1); + } + break; + case 12: + if ( Fichero_Abierto && ( CurrTopLineCD_in + 7 - 2 ) <= CD_cabecera.Records ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + CurrRowCD_in = 7; + GetLineCD_in(); + CD_in2 = CD_in1; + Muestra_Comentario(1); + } + break; + case 13: + if ( Fichero_Abierto && ( CurrTopLineCD_in + 8 - 2 ) <= CD_cabecera.Records ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + CurrRowCD_in = 8; + GetLineCD_in(); + CD_in2 = CD_in1; + Muestra_Comentario(1); + } + break; + case 14: + if ( Fichero_Abierto && ( CurrTopLineCD_in + 9 - 2 ) <= CD_cabecera.Records ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + CurrRowCD_in = 9; + GetLineCD_in(); + CD_in2 = CD_in1; + Muestra_Comentario(1); + } + break; + case 15: + if ( Fichero_Abierto && ( CurrTopLineCD_in + 10 - 2 ) <= CD_cabecera.Records ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + CurrRowCD_in =10; + GetLineCD_in(); + CD_in2 = CD_in1; + Muestra_Comentario(1); + } + break; + // Boton Instalar + case 16: + if ( CD_in1.Alt_Install.Usar_LHA==0 && NEW_PUSH ) { +// Sonido("CD_OUT07.WAV"); + Sonido( Install ); + DeInitSB(); + Init_Install(Curr_Item); + } + break; + // Boton Configurar + case 17: + if( CFG != 0 ) { +// Sonido("CD_OUT08.WAV"); + Sonido( Setup ); + Init_CFG(); + NEW_PUSH = 0; + } + break; + // Boton Ejecutar + case 18: + if ( Fichero_Abierto && CD_in1.Typo.Ejecutable == 1 && NEW_PUSH ) { +// Sonido("CD_OUT09.WAV"); + Sonido( Run ); + DeInitSB(); + Init_EXE(Curr_Item); + } + break; + // Boton Salir + case 19: + ok = 1; + break; + // Boton Mueve Arriba Programas + case 20: + if ( Fichero_Abierto ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + Mueve_Arriba_CD_in(); + } + break; + // Boton Mueve Abajo Programas + case 21: + if ( Fichero_Abierto ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + Mueve_Abajo_CD_in(); + } + break; + // Boton Mueve Arriba Comentario + case 22: + if ( NEW_PUSH && CurrRowCD_in2 > 0 ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + CurrRowCD_in2--; + Muestra_Comentario(2); + } + break; + // Boton Mueve Abajo Comentario + case 23: + if ( NEW_PUSH && CurrRowCD_in2 < /*10*/15 ) { +// Sonido("CD_OUT03.WAV"); + Sonido( Mouse_Key_Tick ); + CurrRowCD_in2++; + Muestra_Comentario(2); + } + break; + // Boton Ver Dibujo + case 24: + if ( NEW_PUSH && Fichero_Abierto && CD_in1.Typo.T_Dibujo == 1 && _XMS == 1) { +// Sonido("CD_OUT0A.WAV"); + Sonido( Show_Image ); + sprintf(Buffer, "imagenes\\%s.pcx", CD_in2.N_Img); + if ( file_exists(Buffer) ) + Carga_PCX(Buffer); + } + break; + default: + while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER +// Sonido("CD_OUT11.WAV"); + Sonido( Unknow_error ); + break; + } + +} + +fclose(CD_in); +return; + +} + + +// +// +// +// +// +// +// +// + +int Abre_Ficha_CD_in(void){ + +char ArchivoDatos[80]; +char Memoria; +void *Imagen; + +int cm; +cm = JD_imagesize(200, 212, 440, 267); +if ( (Imagen = malloc( cm /*imagesize(200, 212, 440, 267)*/ ) ) == NULL ) Memoria = 0; +else { + Memoria = 1; + getimage( 200, 212, 440, 267, Imagen ); +// Imprime_Estaticos( 113, "cd_out.img"); + Fichero_cd_img(113); +// Sonido("CD_OUT71.WAV"); + Sonido( Error_113 ); + settextstyle( SMALL_FONT, HORIZ_DIR, 4); +} + +if (Items_for == DOS) + sprintf(ArchivoDatos, "DATOS\\CD_D%02d.dat", Item_select ); +else + sprintf(ArchivoDatos, "DATOS\\CD_W%02d.dat", Item_select ); + +//// +// CD_in Apertura de Indice, y Datos, o creacin... // +//// + + int LSJ = sizeof(struct Cabecera); + int LSC = sizeof(CD_FILE); + + if ( (CD_in = fopen( ArchivoDatos, "r+b"))==NULL) { + Fichero_Abierto = 0; + Borra_Campo_Visual(); + NEW_PUSH = 0; + if( Memoria ) { +// Imprime_Estaticos( 108, "cd_out.img"); + Fichero_cd_img(108); +// Sonido("CD_OUT6C.WAV"); + Sonido( Error_108 ); + Espera_Tecla_o_Raton(); + Anclar_Raton(); + putimage( 200, 212, Imagen, COPY_PUT); + free(Imagen); + } + return -1; + } else Fichero_Abierto = 1; + + rewind(CD_in); + if ( fread(&CD_cabecera, LSJ, 1, CD_in) != 1 ) { + if ( Memoria ) free(Imagen); + restorecrtmode(); + printf("NO SE PUDO LEER EN EL FICHERO: INDICE"); + exit(1); + } + fseek(CD_in, (long)LSJ, SEEK_SET); + if ( fread(&CD_in1, LSC, 1, CD_in) != 1 ) { + if ( Memoria ) free(Imagen); + restorecrtmode(); + printf("NO SE PUDO LEER EN EL FICHERO: DATOS"); + exit(1); + } + + if( Memoria ) { + putimage( 200, 212, Imagen, COPY_PUT); + free(Imagen); + } + return 1; +} + + +// +// +// +// +// +// +// +// + + +void GetLineCD_in(void){ + + long LSJ = sizeof(struct Cabecera); + long LSC = sizeof(CD_FILE); + + long CurrRecord = CurrTopLineCD_in + CurrRowCD_in - 1; + +fseek(CD_in, (long)LSJ + ( LSC * CurrRecord ) - LSC, SEEK_SET); // Se coloca +fread(&CD_in1, LSC, 1, CD_in); // Y lee + +} + +void Inicializa_Apertura(void) { + + CurrTopLineCD_in = 1; + CurrRowCD_in = 1; +// CurrColCD_in = 1; + if ( Abre_Ficha_CD_in() != -1 ) { + PrintWholeScreenCD_in(); + GetLineCD_in(); + } else Muestra_Comentario(-1); +} + +void BEEP(void){ + + sound(440); + delay(50); + nosound(); + +} + +// +// +// +// +// +// +// +// + +void Mueve_Abajo_CD_in(void){ + + if ( (CurrTopLineCD_in /*+ CurrRowCD_in - 1*/) >= ( CD_cabecera.Records + 1)-8 ) BEEP(); + else { CurrTopLineCD_in++; + PrintWholeScreenCD_in(); + } + +} + +void Mueve_Arriba_CD_in(void){ + +// CurrRowCD_in = 1; + + if ( CurrTopLineCD_in <= 1) BEEP(); + else { + CurrTopLineCD_in--; + PrintWholeScreenCD_in(); + } + +} + +void PrintWholeScreenCD_in(void){ + +int tmp = CurrRowCD_in; + + setcolor(240); + setfillstyle(SOLID_FILL, 240); + + Borra_Campo_Visual(); + setusercharsize(7, 6, 1, 1); + + for(CurrRowCD_in = 1; CurrRowCD_in < (10+1); CurrRowCD_in++) + + if ( (CurrTopLineCD_in + CurrRowCD_in - 1) <= (CD_cabecera.Records + 1) ) { + GetLineCD_in(); + switch(CurrRowCD_in){ + case 1: + textxy( 15, 238, CD_in1.Nombre ); + break; + case 2: + textxy( 15, 261, CD_in1.Nombre ); + break; + case 3: + textxy( 15, 284, CD_in1.Nombre ); + break; + case 4: + textxy( 15, 307, CD_in1.Nombre ); + break; + case 5: + textxy( 15, 330, CD_in1.Nombre ); + break; + case 6: + textxy( 15, 353, CD_in1.Nombre ); + break; + case 7: + textxy( 15, 376, CD_in1.Nombre ); + break; + case 8: + textxy( 15, 399, CD_in1.Nombre ); + break; + case 9: + textxy( 15, 422, CD_in1.Nombre ); + break; + case 10: + textxy( 15, 445, CD_in1.Nombre ); + break; + } + } + +CurrRowCD_in = tmp; + +} + + +void textxy( int x, int y, char *P_Texto ) { + + setcolor(255); + outtextxy( x+1+2, y+1, P_Texto ); + setcolor(240); + outtextxy( x+2, y, P_Texto ); + +} + +void Muestra_Comentario(int Ini){ + + int Linea, inc; + char Buffer[80]; + +switch( Ini ) { + + // Borra la pantalla de comentario + case -1: + setfillstyle(SOLID_FILL, 240); + bar(396, 141, 624, 410); + break; + case 1: + CurrRowCD_in2 = 0; + NEW_PUSH = 1; + setfillstyle(SOLID_FILL, 240); +// bar(396, 141, 624, 161); + bar(396, 141, 624, 410); + + setfillstyle(9, 242); + bar(396, 141, 624, 161); + + setusercharsize(3, 2, 8, 5); + setcolor(250); + inc = textwidth(CD_in2.Nombre); + if ( inc<0 ) inc = 0; + else + inc = (228-inc)/2; + outtextxy( 398+inc, 142, CD_in2.Nombre ); + setcolor(255); + outtextxy( 397+inc, 141, CD_in2.Nombre ); + + settextstyle( SMALL_FONT, HORIZ_DIR, 4); + for(Linea=0; Linea<22/*32*/; Linea++ ) + outtextxy( 397, 165+Linea*11, CD_in2.Comentario[Linea] ); + + break; + case 2: + setfillstyle(SOLID_FILL, 240); +// bar(396, 162, 624, 410); + setcolor(255); + + settextstyle( SMALL_FONT, HORIZ_DIR, 4); + + if(CurrRowCD_in2<=10) { + for(Linea=0; Linea<22/*32*/; Linea++ ) { + bar( 396, 165+Linea*11, 624, 165+Linea*11 + 11); // relleno, y Borra el campo + outtextxy( 397, 165+Linea*11, CD_in2.Comentario[Linea+CurrRowCD_in2] ); + } + } else { + + for(Linea=0; Linea<22-(CurrRowCD_in2-10)/*32*/; Linea++ ) { + bar( 396, 165+Linea*11, 624, 165+Linea*11 + 11); // relleno, y Borra el campo + outtextxy( 397, 165+Linea*11, CD_in2.Comentario[Linea+10+(CurrRowCD_in2-10)] ); + } + + for(Linea=(22-(CurrRowCD_in2-10)); Linea< 22; Linea++ ) { + bar( 396, 165+Linea*11, 624, 165+Linea*11 + 11); // relleno, y Borra el campo + } + + setcolor(242); + sprintf( Buffer, "Informe:"); + if ( CurrRowCD_in2 == 12 ) + outtextxy( 397, 165+21*11, Buffer ); + if ( CurrRowCD_in2 == 13 ) + outtextxy( 397, 165+20*11, Buffer ); + if ( CurrRowCD_in2 == 14 ) + outtextxy( 397, 165+19*11, Buffer ); + if ( CurrRowCD_in2 == 15 ) + outtextxy( 397, 165+18*11, Buffer ); + + strcpy( Buffer, " \0" ); + if ( CD_in2.Alt_Install.Usar_LHA == 0) { + strcat( Buffer, "Instalable" ); + if ( CD_in2.Typo.Ejecutable == 1 || CD_in2.Typo.T_Dibujo == 1) + strcat( Buffer, ", " ); + } + + if ( CD_in2.Typo.Ejecutable == 1 ) { + strcat( Buffer, "Ejecutable" ); + if ( CD_in2.Typo.T_Dibujo == 1 ) + strcat( Buffer, ", " ); + } + if ( CD_in2.Typo.T_Dibujo == 1 ) strcat( Buffer, "Posee Dibujo" ); + if ( CD_in2.Typo.Ejecutable == 0 && CD_in1.Typo.T_Dibujo == 0 && CD_in2.Alt_Install.Usar_LHA == 1 ) + strcpy( Buffer, "Archivo no accesible por CD_OUT" ); + + if ( CurrRowCD_in2 == 14 ) + outtextxy( 397, 165+21*11, Buffer ); + if ( CurrRowCD_in2 == 15 ) + outtextxy( 397, 165+20*11, Buffer ); + + strcpy( Buffer, "\0" ); + + strrev( CD_in2.Dir_P ); + strncpy( Buffer, CD_in2.Dir_P, 34 ); + strrev( CD_in2.Dir_P ); + strrev( Buffer ); + if ( CurrRowCD_in2 == 15 ) + outtextxy( 397, 165+21*11, Buffer ); + + } + + break; + + default: + break; +} + + +} + +void Borra_Campo_Visual(void){ + + setfillstyle( SOLID_FILL, 253); + bar( 15+1, 237+1, 196-1, 253-1); + bar( 15+1, 260+1, 196-1, 276-1); + bar( 15+1, 283+1, 196-1, 299-1); + bar( 15+1, 306+1, 196-1, 322-1); + + bar( 15+1, 329+1, 196-1, 345-1); + bar( 15+1, 352+1, 196-1, 368-1); + bar( 15+1, 375+1, 196-1, 392-1); + bar( 15+1, 398+1, 196-1, 414-1); + + bar( 15+1, 421+1, 196-1, 437-1); + bar( 15+1, 444+1, 196-1, 460-1); + +} + + + + + + + +void Imprime_Lista(char Como){ + +int tmpRow = CurrRowCD_in; +int tmpTop = CurrTopLineCD_in; +void *Imagen; char Memoria = 0; + +if ( Comprueba_Impresora() == 0 ) { + Muestra_Mensaje(115, "CD_OUT.IMG"); + return; +} + + + + + if ( (Imagen = malloc( JD_imagesize(200, 212, 440, 267) ) ) != NULL ) { + getimage( 200, 212, 440, 267, Imagen ); +// Imprime_Estaticos( 116, "CD_OUT.IMG" ); + Fichero_cd_img(116); +// Sonido("CD_OUT74.WAV"); + Sonido( Error_116 ); + Memoria = 1; + } + + CurrTopLineCD_in = 1; + + fprintf( stdprn, "Ŀ\n\r"); + fprintf( stdprn, " JD & CD_OUT \n\r"); + fprintf( stdprn, "\n\r"); + fprintf( stdprn, "\n\r"); + + for(CurrTopLineCD_in = 1; CurrTopLineCD_in <= (CD_cabecera.Records + 1); CurrTopLineCD_in++) { + + GetLineCD_in(); + if ( Como == SIN_COMENTARIO ) { + + fprintf( stdprn, "%-26s ", CD_in1.Nombre); + if( (CurrTopLineCD_in + 1) <= (CD_cabecera.Records + 1) ) { + CurrTopLineCD_in++; + GetLineCD_in(); + fprintf( stdprn, "%-26s\n\r", CD_in1.Nombre); + } + + } + } + + fputc(12, stdprn); + +CurrRowCD_in = tmpRow; +CurrTopLineCD_in = tmpTop; + + if ( Memoria == 1 ) { + putimage( 200, 212, Imagen, COPY_PUT); + free(Imagen); + } + +} + + + +int Comprueba_Impresora(void){ + +// unsigned int tmp; + union REGS Impresora_in, Impresora_out; +/* + struct byte { + int a : 1; + int b : 1; + int c : 1; + int d : 1; + int e : 1; + int f : 1; + int g : 1; + int h : 1; + }; + union bits { + char ch; + struct byte bit; + } Imp_out; +*/ + Impresora_in.h.ah = 0x02; + Impresora_in.x.dx = 0x0; + + int86(0x17, &Impresora_in, &Impresora_out); + + return ( Impresora_out.h.ah ? 1 : 0 ); + +} diff --git a/CD_ERROR.H b/CD_ERROR.H new file mode 100644 index 0000000..f41313a --- /dev/null +++ b/CD_ERROR.H @@ -0,0 +1,14 @@ +#define SIN_CVN 100 +#define SIN_XMS 101 +#define E_ICONO 102 +#define E_PCX 103 +#define E_WAV 104 +#define E_EXE 105 +#define ERROR_ D 107 + +#define E_O 108 +#define E_W 109 +#define E_R 110 +#define E_C 111 + + diff --git a/CD_EXE.CPP b/CD_EXE.CPP new file mode 100644 index 0000000..0e30f11 --- /dev/null +++ b/CD_EXE.CPP @@ -0,0 +1,407 @@ +#include +#include +#include +#include +#include +#include +#include +#include // Para getch(); +#include // Para outtextxy(...); y cleardevice(...); +#include "..\libs\make_bot\make_bot.h" // Fuciones de MAKE_BOTON +#include "cd_icons.h" +#include "cd_error.h" +#include "cd_file.h" +#include "CD_SND.H" + extern int /*far _cdecl*/ Fichero_cd_img(char Dinamicos_Estaticos); + +#define DOS 1 +#define WINDOWS 2 + +extern void Sonido(char Sonido); +void Init_EXE(int CurrIcon); +char *current_directory(char *path); +extern void Inicializa_Dibujo(int L_Imagen, char *N_Imagen2); +extern void Inicializa_Iconos(void); +extern void Coloca_Iconos_Dos_Windows(void); +extern char far *Icono; // 18 +void InicializaSVGA(void); +extern char dac[256*3]; +extern "C" void APAGA_PANTALLA(char *); +extern "C" void ENCIENDE_PANTALLA(char *); + +extern void Inicializa_Apertura(void); +extern void Coloca_Iconos(int Start_Icon); + +typedef struct { + + unsigned int Exit_after_EXE : 1; + unsigned int With_Out_Sound : 1; + unsigned int Auto_Install : 1; + unsigned int Check_Free_Size : 1; + unsigned int Format_Always : 1; + unsigned int Without_Backgr : 1; + unsigned int Futura_Ampliac : 4; + +} Cd_CFG; + +extern Cd_CFG CD_CFG1; + +char Restaura_Pantalla_CFG(void); +char Salva_Pantalla_CFG(void); + +extern FILE *CD_in; +extern CD_FILE CD_in2; + +extern int file_exists(char *filename); +extern int Muestra_Mensaje(int Mensaje, char *file); + + +void Init_EXE(int CurrIcon){ + + int ok = 0, exe = 0; + char curdir[80]; + char Buffer[80]; + int ERROR_SALVA = 0; + + struct ffblk ffblk; + + +// Comprobamos que existe el fichero a ejecutar... + strcpy( Buffer, CD_in2.Dir_P ); + Buffer[0] = getdisk() + 'A'; + strcat( Buffer, "\\" ); + strcat( Buffer, CD_in2.N_Exe ); + strcat( Buffer, ".*" ); + if ( findfirst( Buffer, &ffblk,0) != 0 ) +/* if ( !file_exists(Buffer) )*/ { Muestra_Mensaje(114, "cd_out.img"); +// Sonido("CD_OUT72.WAV"); + Sonido( Error_114 ); + return; } + + + ERROR_SALVA = Salva_Pantalla_CFG(); +/* + void far *Mascara; + +if( (Mascara = farmalloc( imagesize(118, 160, 521, 335) ) ) == NULL) { + closegraph(); + cprintf("\n\rSALIENDO"); + cprintf("\n\rImposible encontrar %dKbytes en el Heap", ok); + exit(SIN_MEMORIA); +} + +getimage(118, 159, 521, 335, Mascara); +*/ + +// Imprime_Estaticos(10, "cd_out.img"); // Imprime botones estaticos 'Seccion 4' + Fichero_cd_img(10); +Imprime_Secuencia(3); // Imprime secuencia 1. +// Imprime_Estaticos(11, "cd_out.img"); // Imprime textos estaticos 'Seccion 5' + Fichero_cd_img(11); +while(!ok){ // Bucle infinito + + switch( Comprueba_Secuencia( 3 ) ) { // Iniciamos comprobacion de 2 sec + + case 0: // No se pulso ningun BOTON + // Pero el raton fue presionado en + // algun sitio... +// Sonido("CD_OUT01.WAV"); + Sonido( Mouse_Press ); + break; + case -2: // Hay una tecla normal en BUFFER + switch( getch() ) { // La utilizamos + // Intro ( ACEPTAR ) + case 13: +// Sonido("CD_OUT0E.WAV"); + Sonido( Ok ); + exe = 1; + ok = 1; + break; + // ESC ( CANCELAR ) + case 14: +// Sonido("CD_OUT0F.WAV"); + Sonido( Cancel ); + exe = 0; + ok = 1; + break; + default: +// Sonido("CD_OUT02.WAV"); + Sonido( Key_Press ); + break; + } + break; + case -1: // Hay una tecla especial en BUFFER + getch(); // La eliminamos + break; + // Boton Aceptar + case 1: + exe = 1; + ok = 1; + break; + // Boton Cancelar + case 2: + exe = 0; + ok = 1; + break; + default: + while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER + break; + } + +} + + +// if ( CD_CFG1.Exit_after_EXE == 0) + ERROR_SALVA = Restaura_Pantalla_CFG(); +/* +putimage(118, 160, Mascara, COPY_PUT); + +farfree(Mascara); +*/ +if ( exe == 1 ) { + /// Liberamos la memoria asignada para al DRIVER grfico... + current_directory(curdir); + APAGA_PANTALLA(dac); + closegraph(); + Libera_Memoria(); + /* + free(P_Raton1); + free(P_Raton2); + free(P_Raton3); + free(P_Raton4); + free(Pantalla); + */ + Libera_Raton_Animado(); + farfree(Icono); + fclose(CD_in); + closegraph(); + + + /* + + C O M I E N Z A L A E J E C U C I O N D E L P R O G R A M A + + */ + +// if ( system( getenv( "COMSPEC") ) != 0 ) { printf("\n\nImposible salir a MS-DOS\n\n"); sleep(5); } + + cprintf("Ŀ\n\r"); + cprintf(" JD & CD_OUT \n\r"); + cprintf("\n\r"); + cprintf("EJECUTANDO PROGRAMA: [%s]\n\r", Buffer); + + + strcpy( Buffer, CD_in2.Dir_P ); + Buffer[0] = getdisk() + 'A'; + chdir(Buffer); + + if ( spawnl(P_WAIT, CD_in2.N_Exe, NULL) == -1 ) { + printf("Imposible ejecutar %s, el archivo no esta disponible", Buffer); + getch(); + } else if ( CD_CFG1.Exit_after_EXE == 1 ) { + clrscr(); + cprintf("Ŀ\n\r"); + cprintf(" JD & CD_OUT \n\r"); + cprintf("\n\r"); + cprintf("No se regresera a CD_OUT a peticin del usuario...\n\r"); + exit(1); + } + clrscr(); + cprintf("Ŀ\n\r"); + cprintf(" JD & CD_OUT \n\r"); + cprintf("\n\r"); + cprintf("Regresando a CD_OUT...\n\r"); + + //// Recargamos el Programa... + chdir(curdir); // Refresamos a nuestro directorio + // de origen + InicializaSVGA(); // Reinicializamos la SVGA + APAGA_PANTALLA(dac); // Apagamos la Pantalla + Inicializa_Dibujo( (-1), "NADA"); // Inicializamos un nuevo dibujo + +// if( carga_botones("cd_out.img") // Recarga botones del fichero "CD_out.img" + if ( Fichero_cd_img(0) + + != OK ) { +// Imprime_Estaticos( 112, "cd_out.img"); + Fichero_cd_img(112); + Espera_Tecla_o_Raton(); + closegraph(); + cprintf("\n\rError en la CARGA DE BOTONES"); + exit(112); + } + + +// Imprime_Estaticos( 1, "cd_out.img"); // Imprime botones estaticos 'Seccion 1' + Fichero_cd_img(1); + Imprime_Secuencia(1); // Imprime secuencia 1. + +// Imprime_Estaticos( 2, "cd_out.img"); // Imprime botones estaticos 'Seccion 2' + // para los textos + Fichero_cd_img(2); + + Inicializa_Iconos(); + Coloca_Iconos_Dos_Windows(); + Coloca_Iconos(CurrIcon); + + ENCIENDE_PANTALLA(dac); +/* + if ( (Pantalla = malloc( JD_imagesize(0, 0, 21, 21) )) == NULL ) { + Imprime_Estaticos( SIN_CVN, "cd_out.img"); + Espera_Tecla_o_Raton(); + closegraph(); + cprintf("\n\rError en la asignacin de memoria para la mascara del raton"); + exit(2); + } +*/ + Imprime_Bordes(1, 1, 251); + settextstyle( SMALL_FONT, HORIZ_DIR, 4); + Inicializa_Apertura(); + PunteroRaton = 100; + inicializa_raton_grafico( 0, 0, 618, 460); + + True_Push = ON; // Activa el TRUE PUSH ( PRESION REAL ) + +} else + if ( ERROR_SALVA == 1 ){ + APAGA_PANTALLA(dac); + closegraph(); + Libera_Memoria(); + Libera_Raton_Animado(); + /* + free(P_Raton1); + free(P_Raton2); + free(P_Raton3); + free(P_Raton4); + free(Pantalla); + */ + farfree(Icono); + fclose(CD_in); + printf( "Ha ocurrido un ERROR en el fichero Temporal CD_OUT.TMP" ); + exit(2); + } + + + +} + + +char *current_directory(char *path) +{ + strcpy(path, "X:\\"); /* fill string with form of response: X:\ */ + path[0] = 'A' + getdisk(); /* replace X with current drive letter */ + getcurdir(0, path+3); /* fill rest of string with current directory */ + return(path); +} + +char Salva_Pantalla_CFG(void){ + + FILE *Salva; + + +// unsigned char Pixel_Line[405]; + int t; + void *Imagen; + + if ( (Salva = fopen( "C:\\CD_OUT.TMP", "wb" ) ) == NULL ) { + CD_CFG1.Exit_after_EXE = 1; + + return 1; + } + + + // 118, 160, 521, 335 + + // 118,160 320,160 521,160 + // * - * + // 118, 160, 320, 248 + // 320, 160, 521, 248 118,248 320,248 521,248 + // 118, 248, 320, 335 _ _ _ + // 118, 248, 320, 335 + // + // 118,335 320,335 521,335 + // * - * + rewind(Salva); + t = JD_imagesize(118, 160, 320, 248); + if ( (Imagen = malloc( t )) == NULL ) { closegraph(); printf("No hay suficiente espacion en el HEAP o C:\\\n"); } + getimage(118, 160, 320, 248, Imagen); + fwrite( Imagen, t, 1, Salva ); + fseek( Salva, t, SEEK_CUR); + t = JD_imagesize(320, 160, 521, 248); + if ( (Imagen = realloc( Imagen, t )) == NULL ) { closegraph(); printf("No hay suficiente espacion en el HEAP o C:\\\n"); } + getimage(320, 160, 521, 248, Imagen); + fwrite( Imagen, t, 1, Salva ); + fseek( Salva, t, SEEK_CUR); + t = JD_imagesize(118, 248, 320, 335); + if ( (Imagen = realloc( Imagen, t )) == NULL ) { closegraph(); printf("No hay suficiente espacion en el HEAP o C:\\\n"); } + getimage(118, 248, 320, 335, Imagen); + fwrite( Imagen, t, 1, Salva ); + fseek( Salva, t, SEEK_CUR); + t = JD_imagesize(320, 248, 521, 335); + if ( (Imagen = realloc( Imagen, t )) == NULL ) { closegraph(); printf("No hay suficiente espacion en el HEAP o C:\\\n"); } + getimage(320, 248, 521, 335, Imagen); + fwrite( Imagen, t, 1, Salva ); + + free(Imagen); + + if ( fclose(Salva) == EOF ) { + CD_CFG1.Exit_after_EXE = 1; + return 1; + } + + return 0; +} + +char Restaura_Pantalla_CFG(void){ + + FILE *Restaura; + int t; + void *Imagen; + + unsigned char Pixel_Line; + int x, y; + + if ( (Restaura = fopen( "C:\\CD_OUT.TMP", "rb" ) ) == NULL ) { + CD_CFG1.Exit_after_EXE = 1; + + return 1; + } + + rewind(Restaura); + t = JD_imagesize(118, 160, 320, 248); + if ( (Imagen = malloc( t )) == NULL ) { closegraph(); printf("No hay suficiente espacion en el HEAP o C:\\\n"); } + fread( Imagen, t, 1, Restaura ); + putimage(118, 160, Imagen, COPY_PUT); + fseek( Restaura, t, SEEK_CUR); + t = JD_imagesize(320, 160, 521, 248); + if ( (Imagen = realloc( Imagen, t )) == NULL ) { closegraph(); printf("No hay suficiente espacion en el HEAP o C:\\\n"); } + fread( Imagen, t, 1, Restaura ); + putimage(320, 160, Imagen, COPY_PUT); + fseek( Restaura, t, SEEK_CUR); + t = JD_imagesize(118, 248, 320, 335); + if ( (Imagen = realloc( Imagen, t )) == NULL ) { closegraph(); printf("No hay suficiente espacion en el HEAP o C:\\\n"); } + fread( Imagen, t, 1, Restaura ); + putimage(118, 248, Imagen, COPY_PUT); + fseek( Restaura, t, SEEK_CUR); + t = JD_imagesize(320, 248, 521, 335); + if ( (Imagen = realloc( Imagen, t )) == NULL ) { closegraph(); printf("No hay suficiente espacion en el HEAP o C:\\\n"); } + fread( Imagen, t, 1, Restaura ); + putimage(320, 248, Imagen, COPY_PUT); + + free(Imagen); + + if ( fclose(Restaura) == EOF ) { + CD_CFG1.Exit_after_EXE = 1; + return 1; + } + + if ( unlink("C:\\CD_OUT.TMP")!=0 ){ + CD_CFG1.Exit_after_EXE = 1; + return 1; + } + + return 0; + +} + + diff --git a/CD_FILE.CPP b/CD_FILE.CPP new file mode 100644 index 0000000..3779f3c --- /dev/null +++ b/CD_FILE.CPP @@ -0,0 +1,45 @@ + + struct byte { + int DOS_WINDOWS : 1; + int Tipo_de_Programa : 4; + int Dibujo : 1; + int Install : 1; + int Ejecutable : 1; + }; + + struct Install { + int Usar_VGA_COPY : 1; + int Usar_ARJ : 1; + int Usar_ZIP : 1; + int Usar_LHA : 1; + int Usar_XCopy : 1; + int Usar_Install_P : 1; + + int Manual_Automatico : 1; + }; + + +typedef struct { + + struct byte Typo; // 1 bit DOS o WINDOWS + // 4 bit Tipo de programa, ( Juegos, Dibujo, ... ) + // 1 bit ( Tiene Dibujo SI / NO ) + // 1 bit Instalable ( SI / NO ) + // 1 bit Ejecutable + + + char Nombre[26+1]; // Nombre del programa + char Comentario[44][35 + 1]; // Comentario + + char N_Img[8+1]; // Nombre de la imagen ( sin extensin ) + + char Dir_P[80+1]; + + // Instalacion alternativa... + struct Install Alt_Install; + + char N_Install[8+1]; + char N_Exe[8+1]; + + +} CD_FILE; \ No newline at end of file diff --git a/CD_FILE.H b/CD_FILE.H new file mode 100644 index 0000000..8b39f13 --- /dev/null +++ b/CD_FILE.H @@ -0,0 +1,60 @@ + + struct byte { + unsigned int T_Dibujo : 1; + unsigned int DOS_WINDOWS : 1; + unsigned int Install : 1; + unsigned int Ejecutable : 1; + unsigned int Tipo_de_Programa : 4; + }; + + struct Install { + unsigned int Usar_VGA_COPY : 1; + unsigned int Usar_ARJ : 1; + unsigned int Usar_ZIP : 1; + unsigned int Usar_LHA : 1; + unsigned int Usar_XCopy : 1; + unsigned int Usar_Install_P : 1; + + unsigned int Manual_Automatico : 1; + }; + + +typedef struct { + + struct byte Typo; // 1 bit DOS o WINDOWS + // 4 bit Tipo de programa, ( Juegos, Dibujo, ... ) + // 1 bit ( Tiene Dibujo SI / NO ) + // 1 bit Instalable ( SI / NO ) + // 1 bit Ejecutable + + + char Nombre[26+1]; // Nombre del programa + char Comentario[32][35 + 1]; // Comentario + + char N_Img[8+1]; // Nombre de la imagen ( sin extensin ) + + char Dir_P[50+1]; + + // Instalacion alternativa... + struct Install Alt_Install; + + char N_Install[8+1]; + char N_Exe[8+1]; + + +} CD_FILE; + +struct Cabecera { + char Nombre_del_Programa[70]; + char Comentario_Inicial[70]; +// const char R1 = 13, R2 =10; +// const char Comentario_Inicial[] = {"Jos David Guilln Dominguez"}; +// const char R3 = 13, R4 =10; +// const char R5 = 7, R6 =26; + + char VerHi, VerLow; + char Register; + + long Records; +}; + diff --git a/CD_GRAPH.CPP b/CD_GRAPH.CPP new file mode 100644 index 0000000..9aeddfa --- /dev/null +++ b/CD_GRAPH.CPP @@ -0,0 +1,14 @@ + +unsigned far JD_imagesize(int left, int top, int right, int bottom); + + +unsigned far JD_imagesize(int left, int top, int right, int bottom) { + + unsigned long X_width, Y_width; + + X_width= ( (left > right) ? (left - right + 1) : (right - left + 1) ); + Y_width= ( ( up > down) ? ( up - down + 1) : ( down - up + 1) ); + + return (X_width * Y_width + 4); + +}; \ No newline at end of file diff --git a/CD_GRAPH.H b/CD_GRAPH.H new file mode 100644 index 0000000..d8c5658 --- /dev/null +++ b/CD_GRAPH.H @@ -0,0 +1 @@ +unsigned far JD_imagesize(int left, int top, int right, int bottom); \ No newline at end of file diff --git a/CD_ICONS.CPP b/CD_ICONS.CPP new file mode 100644 index 0000000..6bacff6 --- /dev/null +++ b/CD_ICONS.CPP @@ -0,0 +1,428 @@ +///////////////////////////// FICHEROS A INCLUIR ///////////////////////////// +#include +#include +#include +#include +#include + +#include "cd_icons.h" +#include "cd_error.h" + +////////////////////////////////// VARIABLES ///////////////////////////////// +extern char raton; +extern char PunteroRaton; +extern char dac[256*3]; +unsigned char far *Icono; // 18 + +void Coloca_Iconos_Dos_Windows(void); +void Coloca_Iconos(int Start_Icon); +//////////////////////// DECLARACIONES DE FUNCIONES ////////////////////////// + +extern "C" void ENCIENDE_PANTALLA(char *); + +extern unsigned char *P_Raton1, *P_Raton2, *P_Raton3, *P_Raton4; + +///////////////////////////////// PROGRAMA /////////////////////////////////// +void Inicializa_Iconos(void) +{ + FILE *handle; + int ancho, alto; + int Posicion[18] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + + int esq_x1, esq_y1, esq_x2, esq_y2; + unsigned char byte, contador; + int n = (20*20); + int PR1, PR2, PR3, PR4; + PR1 = PR2 = PR3 = PR4 = -1; + + if( (Icono = (unsigned char far *)farcalloc( (39762), sizeof(unsigned char) ) ) == NULL ) + { + closegraph(); + printf("No se encontr memoria suficiente"); + exit(1); + } + + if((handle=fopen("CD_OUT2.IMG", "rb"))==NULL) + { + restorecrtmode(); + printf("No se encontr el archivo de iconos"); + exit(1); + } + + if(10!=getc(handle)) + { + restorecrtmode(); + printf("El archivo de iconos, esta daado"); + exit(1); + } + + getw(handle); getc(handle); + + esq_x1=getw(handle); esq_y1=getw(handle); + esq_x2=getw(handle); esq_y2=getw(handle); + + ancho=esq_x2-esq_x1+1; + alto =esq_y2-esq_y1+1; + + fseek(handle, 128, 0); + + for(alto=(esq_y2-esq_y1+1); alto>0; alto--) + { + for(ancho=(esq_x2-esq_x1+1); ancho>0; ) + { + byte=getc(handle); + if(byte<=0xC0) + { + if( ancho>=272 && ancho <=318 && alto >=152 && alto <= 198 ) { + Posicion[0] ++; + Icono[ Posicion[0] ] = byte; + } else + if( ancho>=224 && ancho <=270 && alto >=152 && alto <= 198 ) { + Posicion[1] ++; + Icono[ Posicion[1]+2209*1 ] = byte; + } else + if( ancho>=176 && ancho <=222 && alto >=152 && alto <= 198 ) { + Posicion[2] ++; + Icono[ Posicion[2]+2209*2 ] = byte; + } else + if( ancho>=128 && ancho <=174 && alto >=152 && alto <= 198 ) { + Posicion[3] ++; + Icono[ Posicion[3]+2209*3 ] = byte; + } else + if( ancho>=80 && ancho <=126 && alto >=152 && alto <= 198 ) { + Posicion[4] ++; + Icono[ Posicion[4]+2209*4 ] = byte; + } else + if( ancho>=32 && ancho <=78 && alto >=152 && alto <= 198 ) { + Posicion[5] ++; + Icono[ Posicion[5]+2209*5 ] = byte; + } else + +//////////////////////////////////////////////////////////////////////////////////// + + if( ancho>=272 && ancho <=318 && alto >=104 && alto <= 150 ) { + Posicion[6] ++; + Icono[ Posicion[6]+2209*6 ] = byte; + } else + if( ancho>=224 && ancho <=270 && alto >=104 && alto <= 150 ) { + Posicion[7] ++; + Icono[ Posicion[7]+2209*7 ] = byte; + } else + if( ancho>=176 && ancho <=222 && alto >=104 && alto <= 150 ) { + Posicion[8] ++; + Icono[ Posicion[8]+2209*8 ] = byte; + } else + if( ancho>=128 && ancho <=174 && alto >=104 && alto <= 150 ) { + Posicion[9] ++; + Icono[ Posicion[9]+2209*9 ] = byte; + } else + if( ancho>=80 && ancho <=126 && alto >=104 && alto <= 150 ) { + Posicion[10] ++; + Icono[ Posicion[10]+2209*10 ] = byte; + } else + if( ancho>=32 && ancho <=78 && alto >=104 && alto <= 150 ) { + Posicion[11] ++; + Icono[ Posicion[11]+2209*11] = byte; + } else + +//////////////////////////////////////////////////////////////////////////////////// + + if( ancho>=272 && ancho <=318 && alto >=56 && alto <= 102 ) { + Posicion[12] ++; + Icono[ Posicion[12]+2209*12 ] = byte; + } else + if( ancho>=224 && ancho <=270 && alto >=56 && alto <= 102 ) { + Posicion[13] ++; + Icono[ Posicion[13]+2209*13 ] = byte; + } else + if( ancho>=176 && ancho <=222 && alto >=56 && alto <= 102 ) { + Posicion[14] ++; + Icono[ Posicion[14]+2209*14 ] = byte; + } else + if( ancho>=128 && ancho <=174 && alto >=56 && alto <= 102 ) { + Posicion[15] ++; + Icono[ Posicion[15]+2209*15 ] = byte; + } else + if( ancho>=80 && ancho <=126 && alto >=56 && alto <= 102 ) { + Posicion[16] ++; + Icono[ Posicion[16]+2209*16 ] = byte; + } else + if( ancho>=32 && ancho <=78 && alto >=56 && alto <= 102 ) { + Posicion[17] ++; + Icono[ Posicion[17]+2209*17] = byte; + } else + +//////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////// +// +// +// +// +// +// +// +// +// +// + if( ancho>=/*272*/279 && ancho <=/*318*/316 && alto >= /*8*/11 && alto <= 29 ) { + // Flecha Izquierda +putpixel( 561 - 51 + (ancho - 279), 99 + 4 + (alto - 11), byte); + } else + if( ancho>=/*272*/276 && ancho <=/*318*/313 && alto >= /*32*/35 && alto <= 52 ) { + // Flecha Derecha +putpixel( 558 - 51 + (ancho-272), 126 - 52 + (alto-32), byte); + } else + if( ancho>=251 && ancho <=270 && alto >= 14 && alto <= 54 ) { + // Flecha Arriba +putpixel( 235 - 25 + (ancho-248), 420 + 2 + (alto-8), byte); +putpixel( 385 - 25 + (ancho-248), 360 + 3 + (alto-8), byte); + } else + if( ancho>=/*224*/227 && ancho <= 245 && alto >= /*8*/12 && alto <= /*54*/49 ) { + // Flecha Abajo +putpixel( 235 - 25 + (ancho-224), 470 - 100 + (alto-8), byte); +putpixel( 385 - 25 + 1 + (ancho-224), 415 -2- 100 + (alto-8), byte); + } else + if( ancho>=180 && ancho <= 199 && alto >= 12 && alto <= 31 ) { + // Punteros del Raton... + PR1++; + if ( raton!=0 && PunteroRaton == 100 ) + P_Raton1[/*(199-ancho) + 20*(31-alto)*/PR1] = byte; +// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); + } else + if( ancho>=201 && ancho <= 220 && alto >= 12 && alto <= 31 ) { + // Punteros del Raton... + PR2++; + if ( raton!=0 && PunteroRaton == 100 ) + P_Raton2[/*(220-ancho) + 20*(31-alto)*/PR2] = byte; +// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); + } else + if( ancho>=180 && ancho <= 199 && alto >= 33 && alto <= 52 ) { + // Punteros del Raton... + PR3++; + if ( raton!=0 && PunteroRaton == 100 ) + P_Raton3[/*(199-ancho) + 20*(52-alto)*/PR3] = byte; +// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); + } else + if( ancho>=201 && ancho <= 220 && alto >= 33 && alto <= 52 ) { + // Punteros del Raton... + PR4++; + if ( raton!=0 && PunteroRaton == 100 ) + P_Raton4[/*(220-ancho) + 20*(52-alto)*/PR4] = byte; +// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); + } + +///////////////// +// putpixel( (10+ancho), (10+alto), byte); +///////////////// + ancho--; + } + else + { + contador=byte&0x3F; byte=getc(handle); + for(; contador>0; contador--) + { + // *dir_vga++=byte; + if( ancho>=272 && ancho <=318 && alto >=152 && alto <= 198 ) { + Posicion[0] ++; + Icono[ Posicion[0] ] = byte; + } else + if( ancho>=224 && ancho <=270 && alto >=152 && alto <= 198 ) { + Posicion[1] ++; + Icono[ Posicion[1]+2209*1 ] = byte; + } else + if( ancho>=176 && ancho <=222 && alto >=152 && alto <= 198 ) { + Posicion[2] ++; + Icono[ Posicion[2]+2209*2 ] = byte; + } else + if( ancho>=128 && ancho <=174 && alto >=152 && alto <= 198 ) { + Posicion[3] ++; + Icono[ Posicion[3]+2209*3 ] = byte; + } else + if( ancho>=80 && ancho <=126 && alto >=152 && alto <= 198 ) { + Posicion[4] ++; + Icono[ Posicion[4]+2209*4 ] = byte; + } else + if( ancho>=32 && ancho <=78 && alto >=152 && alto <= 198 ) { + Posicion[5] ++; + Icono[ Posicion[5]+2209*5 ] = byte; + } else + + + +//////////////////////////////////////////////////////////////////////////////////// + if( ancho>=272 && ancho <=318 && alto >=104 && alto <= 150 ) { + Posicion[6] ++; + Icono[ Posicion[6]+2209*6 ] = byte; + } else + if( ancho>=224 && ancho <=270 && alto >=104 && alto <= 150 ) { + Posicion[7] ++; + Icono[ Posicion[7]+2209*7 ] = byte; + } else + if( ancho>=176 && ancho <=222 && alto >=104 && alto <= 150 ) { + Posicion[8] ++; + Icono[ Posicion[8]+2209*8 ] = byte; + } else + if( ancho>=128 && ancho <=174 && alto >=104 && alto <= 150 ) { + Posicion[9] ++; + Icono[ Posicion[9]+2209*9 ] = byte; + } else + if( ancho>=80 && ancho <=126 && alto >=104 && alto <= 150 ) { + Posicion[10] ++; + Icono[ Posicion[10]+2209*10 ] = byte; + } else + if( ancho>=32 && ancho <=78 && alto >=104 && alto <= 150 ) { + Posicion[11] ++; + Icono[ Posicion[11]+2209*11] = byte; + } else + +//////////////////////////////////////////////////////////////////////////////////// + if( ancho>=272 && ancho <=318 && alto >=56 && alto <= 102 ) { + Posicion[12] ++; + Icono[ Posicion[12]+2209*12 ] = byte; + } else + if( ancho>=224 && ancho <=270 && alto >=56 && alto <= 102 ) { + Posicion[13] ++; + Icono[ Posicion[13]+2209*13 ] = byte; + } else + if( ancho>=176 && ancho <=222 && alto >=56 && alto <= 102 ) { + Posicion[14] ++; + Icono[ Posicion[14]+2209*14 ] = byte; + } else + if( ancho>=128 && ancho <=174 && alto >=56 && alto <= 102 ) { + Posicion[15] ++; + Icono[ Posicion[15]+2209*15 ] = byte; + } else + if( ancho>=80 && ancho <=126 && alto >=56 && alto <= 102 ) { + Posicion[16] ++; + Icono[ Posicion[16]+2209*16 ] = byte; + } else + if( ancho>=32 && ancho <=78 && alto >=56 && alto <= 102 ) { + Posicion[17] ++; + Icono[ Posicion[17]+2209*17] = byte; + } else + +//////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////// +// +// +// +// +// +// +// +// +// + if( ancho>=/*272*/279 && ancho <=/*318*/316 && alto >= /*8*/11 && alto <= 29 ) { + // Flecha Izquierda +putpixel( 568 - 51 + (ancho - 279), 102 + 4 + (alto - 11), byte); + } else + if( ancho>=/*272*/276 && ancho <=/*318*/313 && alto >= /*32*/35 && alto <= 52 ) { + // Flecha Derecha +putpixel( 565 - 51 + (ancho - 276), 129 - 52 + (alto - 35), byte); + } else + if( ancho>=251 && ancho <=270 && alto >= 14 && alto <= 54 ) { + // Flecha Arriba +putpixel( 235 - 25 + (ancho-248), 420 + 2 + (alto-8), byte); +putpixel( 385 - 25 + (ancho-248), 360 + 3 + (alto-8), byte); + } else + if( ancho>=/*224*/227 && ancho <= 245 && alto >= /*8*/12 && alto <= /*54*/49 ) { + // Flecha Abajo +putpixel( 235 - 25 + 1 + (ancho-224), 470 - 100 + (alto-8), byte); +putpixel( 385 - 25 + 1 + (ancho-224), 415 -2 - 100 + (alto-8), byte); + } else +/* + if( ancho>=180 && ancho <= 220 && alto >= 12 && alto <= 52 ) { + // Punteros del Raton... +// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); + } +*/ + if( ancho>=180 && ancho <= 199 && alto >= 12 && alto <= 31 ) { + // Punteros del Raton... + PR1++; + if ( raton!=0 && PunteroRaton == 100 ) + P_Raton1[/*(199-ancho) + 20*(31-alto)*/PR1] = byte; +// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); + } else + if( ancho>=201 && ancho <= 220 && alto >= 12 && alto <= 31 ) { + // Punteros del Raton... + PR2++; + if ( raton!=0 && PunteroRaton == 100 ) + P_Raton2[/*(220-ancho) + 20*(31-alto)*/PR2] = byte; +// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); + } else + if( ancho>=180 && ancho <= 199 && alto >= 33 && alto <= 52 ) { + // Punteros del Raton... + PR3++; + if ( raton!=0 && PunteroRaton == 100 ) + P_Raton3[/*(199-ancho) + 20*(52-alto)*/PR3] = byte; +// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); + } else + if( ancho>=201 && ancho <= 220 && alto >= 33 && alto <= 52 ) { + // Punteros del Raton... + PR4++; + if ( raton!=0 && PunteroRaton == 100 ) + P_Raton4[/*(220-ancho) + 20*(52-alto)*/PR4] = byte; +// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); + } +//////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////// + +///////////////// +// putpixel( (10+ancho), (10+alto), byte); +///////////////// + ancho--; + } + } + } + } + getc(handle); + +// for(n=0; n<256*3; n++) dac[n]=getc(handle) >> 2; + for(n=0; n<256*3; n++) + if( n >= (256-16)*3 ) + dac[n]=getc(handle) >> 2; + else + getc(handle); + + fclose(handle); + +} + +void Coloca_Iconos_Dos_Windows(void){ + +int x, y, i; + +for( y = 0; y <= (46-1); y++ ) + for( x = 1; x <= 46; x++ ) { +// ****** 1 + putpixel( /*397*/512 + x, 12+y, Icono[ x + (47*y) + (2209*11) ] ); + + putpixel( 577 + x, 12+y, Icono[ x + (47*y) + (2209*17) ] ); +// C_Icon++; + } + +} + + +void Coloca_Iconos(int Start_Icon){ + +int x, y, i; +const char Icon_inx[] = { Juegos, Texto, Musica, Dibujo, Util, Base, Hoja, + Red, TC, Scanner, News, Zip, Peli, Varios, CD, Ayuda }; + +Start_Icon--; + +for( y = 0; y <= (46-1); y++ ) + for( x = 1; x <= 46; x++ ) { +// ****** 1 +// putpixel( 447 + x, 77+y, Icono[ x + (47*y) + (2209*Icon_inx[Start_Icon]) ] ); + +// putpixel( 512 + x, 77+y, Icono[ x + (47*y) + (2209*Icon_inx[Start_Icon+1]) ] ); + + putpixel( 577 + x, 77+y, Icono[ x + (47*y) + (2209*Icon_inx[Start_Icon/*+2*/]) ] ); + +// C_Icon++; + } + +} + diff --git a/CD_ICONS.H b/CD_ICONS.H new file mode 100644 index 0000000..0fdee06 --- /dev/null +++ b/CD_ICONS.H @@ -0,0 +1,16 @@ +#define Juegos 0 +#define Musica 1 +#define Texto 2 +#define Dibujo 3 +#define Varios 4 +#define Ayuda 5 +#define CD 6 +#define Scanner 7 +#define Util 8 +#define TC 9 +#define Red 10 +#define Base 12 +#define Hoja 13 +#define News 14 +#define Peli 15 +#define Zip 16 diff --git a/CD_IMG.CPP b/CD_IMG.CPP new file mode 100644 index 0000000..87214ad --- /dev/null +++ b/CD_IMG.CPP @@ -0,0 +1,479 @@ +/***************************************************************/ +/* */ +/* Conversin de fuentes de MAKE BOTON en ASCII a fuentes */ +/* para CPP, que pueden ser compilados junto al programa. */ +/* */ +/***************************************************************/ +/* */ +/* MAKE BOTON es un programa realizado por Jos David Guilln */ +/* MB a CPP es una utilidad complementaria a Make Boton por */ +/* Jos David Guilln... */ +/* */ +/***************************************************************/ +/* */ +/* GRACIAS POR UTILIZAR MI SOFTWARE... */ +/* */ +/* JOS DAVID GUILLN (c) 1995 */ +/* */ +/***************************************************************/ + + + +// Debe indicar el directorio exacto de la Cabecera de MAKE BOTON +#include "..\libs\make_bot\Make_bot.h" +#include +#include +#include +#include + + + +extern int vez, memoria_asignada, Secuencias, *n_Botones_Secuencia; +/*extern*/ struct Make_Boton { int Up, Left, Down, Right; + unsigned char Cdf, Cb1, Cb2; + unsigned char Ab, Pb; + unsigned char Isc, Sc; + }; + +extern struct Make_Boton far *Botones; +struct Make_Boton Bot_Static; + + + +extern void Libera_Memoria(void);extern void Imprime_Boton(int D_Bord, struct Make_Boton Bot_Imp); + + +// Esta funcin debe ser llamada para la inicializacion de los +// botones en lugar de CARGA_BOTONES(...). +// Para cargar los botones con parametro 0 y para imprimir +// imprimir los estaticos con parametro [ n de secuencia ] +int /*far _cdecl*/ Fichero_cd_img(char Dinamicos_Estaticos); + +int /*far _cdecl*/ Fichero_cd_img(char Dinamicos_Estaticos) { + +static char vez = 0; +long SiZe_BoToN = 0; + + switch(Dinamicos_Estaticos) { + + case 0: + if( vez == 0 ) { + vez = 1; + memoria_asignada = 0; + atexit( Libera_Memoria ); + } + if ( memoria_asignada == 1 ) { + free(n_Botones_Secuencia); + farfree(Botones); + memoria_asignada = 0; + } +/* + long SiZe_BoToN = sizeof( struct Make_Boton ); + + if ( (Botones = (struct Make_Boton far *)farmalloc( SiZe_BoToN )) == NULL) + return SIN_MEMORIA; + memoria_asignada = 1; + + Secuencias = 3; + if (( n_Botones_Secuencia = (int *) malloc( sizeof(int)*(Secuencias+1) ) ) == NULL) { + closegraph(); + printf("\nNo Hay suficiente Memoria, ni para un Boton\n\n"); + return SIN_MEMORIA; + } + n_Botones_Secuencia[1 - 1] = 24; + SiZe_BoToN += ( sizeof( struct Make_Boton ) * 24); + if ( (Botones = (struct Make_Boton far *)farrealloc(Botones, SiZe_BoToN )) == NULL) { + Secuencias = 1; + return SIN_MEMORIA; + } + memoria_asignada = 1; +*/ + Secuencias = 3; + if (( n_Botones_Secuencia = (int *) malloc( sizeof(int)*(Secuencias+1) ) ) == NULL) { + closegraph(); + printf("\nNo Hay suficiente Memoria, ni para un Boton\n\n"); + return SIN_MEMORIA; + } + n_Botones_Secuencia[0] = 24; + n_Botones_Secuencia[1] = 10; + n_Botones_Secuencia[2] = 2; + n_Botones_Secuencia[3] = 2; + + if ( (Botones = (struct Make_Boton far *)farmalloc( sizeof( struct Make_Boton ) * 40 )) == NULL) + return SIN_MEMORIA; + + Botones [0].Left = 508; Botones [0].Up = 8;Botones [0]. Right = 562;Botones [0]. Down = 62; + Botones [0]. Cdf = 253; Botones [0]. Cb1 = 255; Botones [0]. Cb2 = 254; Botones [0]. Ab = 3; Botones [0]. Pb = 1; Botones [0]. Isc = 0; Botones [0]. Sc = 32; + Botones [1].Left = 573; Botones [1].Up = 8;Botones [1]. Right = 627;Botones [1]. Down = 62; + Botones [1]. Cdf = 253; Botones [1]. Cb1 = 255; Botones [1]. Cb2 = 254; Botones [1]. Ab = 3; Botones [1]. Pb = 1; Botones [1]. Isc = 0; Botones [1]. Sc = 17; + Botones [2].Left = 573; Botones [2].Up = 73;Botones [2]. Right = 627;Botones [2]. Down = 127; + Botones [2]. Cdf = 253; Botones [2]. Cb1 = 255; Botones [2]. Cb2 = 254; Botones [2]. Ab = 3; Botones [2]. Pb = 1; Botones [2]. Isc = 0; Botones [2]. Sc = 120; + Botones [3].Left = 508; Botones [3].Up = 73;Botones [3]. Right = 562;Botones [3]. Down = 99; + Botones [3]. Cdf = 253; Botones [3]. Cb1 = 255; Botones [3]. Cb2 = 254; Botones [3]. Ab = 2; Botones [3]. Pb = 1; Botones [3]. Isc = 0; Botones [3]. Sc = 75; + Botones [4].Left = 508; Botones [4].Up = 103;Botones [4]. Right = 562;Botones [4]. Down = 127; + Botones [4]. Cdf = 253; Botones [4]. Cb1 = 255; Botones [4]. Cb2 = 254; Botones [4]. Ab = 2; Botones [4]. Pb = 1; Botones [4]. Isc = 0; Botones [4]. Sc = 77; + Botones [5].Left = 13; Botones [5].Up = 235;Botones [5]. Right = 198;Botones [5]. Down = 255; + Botones [5]. Cdf = 253; Botones [5]. Cb1 = 255; Botones [5]. Cb2 = 254; Botones [5]. Ab = 2; Botones [5]. Pb = 1; Botones [5]. Isc = 0; Botones [5]. Sc = 104; + Botones [6].Left = 13; Botones [6].Up = 258;Botones [6]. Right = 198;Botones [6]. Down = 278; + Botones [6]. Cdf = 253; Botones [6]. Cb1 = 255; Botones [6]. Cb2 = 254; Botones [6]. Ab = 2; Botones [6]. Pb = 1; Botones [6]. Isc = 0; Botones [6]. Sc = 105; + Botones [7].Left = 13; Botones [7].Up = 281;Botones [7]. Right = 198;Botones [7]. Down = 301; + Botones [7]. Cdf = 253; Botones [7]. Cb1 = 255; Botones [7]. Cb2 = 254; Botones [7]. Ab = 2; Botones [7]. Pb = 1; Botones [7]. Isc = 0; Botones [7]. Sc = 106; + Botones [8].Left = 13; Botones [8].Up = 304;Botones [8]. Right = 198;Botones [8]. Down = 324; + Botones [8]. Cdf = 253; Botones [8]. Cb1 = 255; Botones [8]. Cb2 = 254; Botones [8]. Ab = 2; Botones [8]. Pb = 1; Botones [8]. Isc = 0; Botones [8]. Sc = 107; + Botones [9].Left = 13; Botones [9].Up = 327;Botones [9]. Right = 198;Botones [9]. Down = 347; + Botones [9]. Cdf = 253; Botones [9]. Cb1 = 255; Botones [9]. Cb2 = 254; Botones [9]. Ab = 2; Botones [9]. Pb = 1; Botones [9]. Isc = 0; Botones [9]. Sc = 108; + Botones [10].Left = 13; Botones [10].Up = 350;Botones [10]. Right = 198;Botones [10]. Down = 370; + Botones [10]. Cdf = 253; Botones [10]. Cb1 = 255; Botones [10]. Cb2 = 254; Botones [10]. Ab = 2; Botones [10]. Pb = 1; Botones [10]. Isc = 0; Botones [10]. Sc = 109; + Botones [11].Left = 13; Botones [11].Up = 373;Botones [11]. Right = 198;Botones [11]. Down = 393; + Botones [11]. Cdf = 253; Botones [11]. Cb1 = 255; Botones [11]. Cb2 = 254; Botones [11]. Ab = 2; Botones [11]. Pb = 1; Botones [11]. Isc = 0; Botones [11]. Sc = 110; + Botones [12].Left = 13; Botones [12].Up = 396;Botones [12]. Right = 198;Botones [12]. Down = 416; + Botones [12]. Cdf = 253; Botones [12]. Cb1 = 255; Botones [12]. Cb2 = 254; Botones [12]. Ab = 2; Botones [12]. Pb = 1; Botones [12]. Isc = 0; Botones [12]. Sc = 111; + Botones [13].Left = 13; Botones [13].Up = 419;Botones [13]. Right = 198;Botones [13]. Down = 439; + Botones [13]. Cdf = 253; Botones [13]. Cb1 = 255; Botones [13]. Cb2 = 254; Botones [13]. Ab = 2; Botones [13]. Pb = 1; Botones [13]. Isc = 0; Botones [13]. Sc = 112; + Botones [14].Left = 13; Botones [14].Up = 442;Botones [14]. Right = 198;Botones [14]. Down = 462; + Botones [14]. Cdf = 253; Botones [14]. Cb1 = 255; Botones [14]. Cb2 = 254; Botones [14]. Ab = 2; Botones [14]. Pb = 1; Botones [14]. Isc = 0; Botones [14]. Sc = 113; + Botones [15].Left = 390; Botones [15].Up = 420;Botones [15]. Right = 505;Botones [15]. Down = 446; + Botones [15]. Cdf = 253; Botones [15]. Cb1 = 255; Botones [15]. Cb2 = 254; Botones [15]. Ab = 2; Botones [15]. Pb = 2; Botones [15]. Isc = 0; Botones [15]. Sc = 23; + Botones [16].Left = 510; Botones [16].Up = 420;Botones [16]. Right = 630;Botones [16]. Down = 446; + Botones [16]. Cdf = 253; Botones [16]. Cb1 = 255; Botones [16]. Cb2 = 254; Botones [16]. Ab = 2; Botones [16]. Pb = 2; Botones [16]. Isc = 0; Botones [16]. Sc = 46; + Botones [17].Left = 390; Botones [17].Up = 449;Botones [17]. Right = 505;Botones [17]. Down = 475; + Botones [17]. Cdf = 253; Botones [17]. Cb1 = 255; Botones [17]. Cb2 = 254; Botones [17]. Ab = 2; Botones [17]. Pb = 2; Botones [17]. Isc = 0; Botones [17]. Sc = 18; + Botones [18].Left = 510; Botones [18].Up = 449;Botones [18]. Right = 630;Botones [18]. Down = 475; + Botones [18]. Cdf = 253; Botones [18]. Cb1 = 255; Botones [18]. Cb2 = 254; Botones [18]. Ab = 2; Botones [18]. Pb = 2; Botones [18]. Isc = 0; Botones [18]. Sc = 31; + Botones [19].Left = 210; Botones [19].Up = 370;Botones [19]. Right = 235;Botones [19]. Down = 420; + Botones [19]. Cdf = 253; Botones [19]. Cb1 = 255; Botones [19]. Cb2 = 254; Botones [19]. Ab = 2; Botones [19]. Pb = 1; Botones [19]. Isc = 0; Botones [19]. Sc = 72; + Botones [20].Left = 210; Botones [20].Up = 425;Botones [20]. Right = 235;Botones [20]. Down = 470; + Botones [20]. Cdf = 253; Botones [20]. Cb1 = 255; Botones [20]. Cb2 = 254; Botones [20]. Ab = 2; Botones [20]. Pb = 1; Botones [20]. Isc = 0; Botones [20]. Sc = 80; + Botones [21].Left = 360; Botones [21].Up = 310;Botones [21]. Right = 385;Botones [21]. Down = 360; + Botones [21]. Cdf = 253; Botones [21]. Cb1 = 255; Botones [21]. Cb2 = 254; Botones [21]. Ab = 2; Botones [21]. Pb = 1; Botones [21]. Isc = 0; Botones [21]. Sc = 73; + Botones [22].Left = 360; Botones [22].Up = 365;Botones [22]. Right = 385;Botones [22]. Down = 415; + Botones [22]. Cdf = 253; Botones [22]. Cb1 = 255; Botones [22]. Cb2 = 254; Botones [22]. Ab = 2; Botones [22]. Pb = 1; Botones [22]. Isc = 0; Botones [22]. Sc = 81; + Botones [23].Left = 360; Botones [23].Up = 210;Botones [23]. Right = 385;Botones [23]. Down = 305; + Botones [23]. Cdf = 253; Botones [23]. Cb1 = 255; Botones [23]. Cb2 = 254; Botones [23]. Ab = 2; Botones [23]. Pb = 1; Botones [23]. Isc = 0; Botones [23]. Sc = 47; +/* + n_Botones_Secuencia[2 - 1] = 10; + SiZe_BoToN += ( sizeof( struct Make_Boton ) * 10); + if ( (Botones = (struct Make_Boton far *)farrealloc(Botones, SiZe_BoToN )) == NULL) { + Secuencias = 2; + return SIN_MEMORIA; + } + memoria_asignada = 1; +*/ + Botones [24].Left = 547; Botones [24].Up = 390;Botones [24]. Right = 623;Botones [24]. Down = 410; + Botones [24]. Cdf = 253; Botones [24]. Cb1 = 255; Botones [24]. Cb2 = 254; Botones [24]. Ab = 2; Botones [24]. Pb = 2; Botones [24]. Isc = 0; Botones [24]. Sc = 46; + Botones [25].Left = 471; Botones [25].Up = 390;Botones [25]. Right = 545;Botones [25]. Down = 410; + Botones [25]. Cdf = 253; Botones [25]. Cb1 = 255; Botones [25]. Cb2 = 254; Botones [25]. Ab = 2; Botones [25]. Pb = 2; Botones [25]. Isc = 0; Botones [25]. Sc = 31; + Botones [26].Left = 396; Botones [26].Up = 390;Botones [26]. Right = 469;Botones [26]. Down = 410; + Botones [26]. Cdf = 253; Botones [26]. Cb1 = 255; Botones [26]. Cb2 = 254; Botones [26]. Ab = 2; Botones [26]. Pb = 2; Botones [26]. Isc = 0; Botones [26]. Sc = 30; + Botones [27].Left = 396; Botones [27].Up = 149;Botones [27]. Right = 411;Botones [27]. Down = 165; + Botones [27]. Cdf = 253; Botones [27]. Cb1 = 255; Botones [27]. Cb2 = 254; Botones [27]. Ab = 1; Botones [27]. Pb = 2; Botones [27]. Isc = 0; Botones [27]. Sc = 32; + Botones [28].Left = 396; Botones [28].Up = 170;Botones [28]. Right = 411;Botones [28]. Down = 186; + Botones [28]. Cdf = 253; Botones [28]. Cb1 = 255; Botones [28]. Cb2 = 254; Botones [28]. Ab = 1; Botones [28]. Pb = 2; Botones [28]. Isc = 0; Botones [28]. Sc = 18; + Botones [29].Left = 396; Botones [29].Up = 191;Botones [29]. Right = 411;Botones [29]. Down = 207; + Botones [29]. Cdf = 253; Botones [29]. Cb1 = 255; Botones [29]. Cb2 = 254; Botones [29]. Ab = 1; Botones [29]. Pb = 2; Botones [29]. Isc = 0; Botones [29]. Sc = 23; + Botones [30].Left = 396; Botones [30].Up = 212;Botones [30]. Right = 411;Botones [30]. Down = 228; + Botones [30]. Cdf = 253; Botones [30]. Cb1 = 255; Botones [30]. Cb2 = 254; Botones [30]. Ab = 1; Botones [30]. Pb = 2; Botones [30]. Isc = 0; Botones [30]. Sc = 24; + Botones [31].Left = 396; Botones [31].Up = 233;Botones [31]. Right = 411;Botones [31]. Down = 249; + Botones [31]. Cdf = 253; Botones [31]. Cb1 = 255; Botones [31]. Cb2 = 254; Botones [31]. Ab = 1; Botones [31]. Pb = 2; Botones [31]. Isc = 0; Botones [31]. Sc = 33; + Botones [32].Left = 396; Botones [32].Up = 254;Botones [32]. Right = 411;Botones [32]. Down = 270; + Botones [32]. Cdf = 253; Botones [32]. Cb1 = 255; Botones [32]. Cb2 = 254; Botones [32]. Ab = 1; Botones [32]. Pb = 2; Botones [32]. Isc = 0; Botones [32]. Sc = 49; + Botones [33].Left = 396; Botones [33].Up = 275;Botones [33]. Right = 623;Botones [33]. Down = 310; + Botones [33]. Cdf = 253; Botones [33]. Cb1 = 255; Botones [33]. Cb2 = 254; Botones [33]. Ab = 3; Botones [33]. Pb = 2; Botones [33]. Isc = 0; Botones [33]. Sc = 50; +/* + n_Botones_Secuencia[3 - 1] = 2; + SiZe_BoToN += ( sizeof( struct Make_Boton ) * 2); + if ( (Botones = (struct Make_Boton far *)farrealloc(Botones, SiZe_BoToN )) == NULL) { + Secuencias = 3; + return SIN_MEMORIA; + } + memoria_asignada = 1; +*/ + Botones [34].Left = 123; Botones [34].Up = 165;Botones [34]. Right = 516;Botones [34]. Down = 185; + Botones [34]. Cdf = 240; Botones [34]. Cb1 = 255; Botones [34]. Cb2 = 254; Botones [34]. Ab = 2; Botones [34]. Pb = 1; Botones [34]. Isc = 0; Botones [34]. Sc = 18; + Botones [35].Left = 500; Botones [35].Up = 190;Botones [35]. Right = 516;Botones [35]. Down = 330; + Botones [35]. Cdf = 253; Botones [35]. Cb1 = 255; Botones [35]. Cb2 = 254; Botones [35]. Ab = 2; Botones [35]. Pb = 1; Botones [35]. Isc = 0; Botones [35]. Sc = 46; +/* + n_Botones_Secuencia[4 - 1] = 2; + SiZe_BoToN += ( sizeof( struct Make_Boton ) * 2); + if ( (Botones = (struct Make_Boton far *)farrealloc(Botones, SiZe_BoToN )) == NULL) { + Secuencias = 4; + return SIN_MEMORIA; + } + memoria_asignada = 1; +*/ + Botones [36].Left = 204; Botones [36].Up = 274;Botones [36]. Right = 276;Botones [36]. Down = 291; + Botones [36]. Cdf = 253; Botones [36]. Cb1 = 254; Botones [36]. Cb2 = 255; Botones [36]. Ab = 2; Botones [36]. Pb = 1; Botones [36]. Isc = 0; Botones [36]. Sc = 30; + Botones [37].Left = 364; Botones [37].Up = 274;Botones [37]. Right = 436;Botones [37]. Down = 291; + Botones [37]. Cdf = 253; Botones [37]. Cb1 = 254; Botones [37]. Cb2 = 255; Botones [37]. Ab = 2; Botones [37]. Pb = 1; Botones [37]. Isc = 0; Botones [37]. Sc = 46; + break; + case 1: + Bot_Static.Left = 6; Bot_Static.Up = 225; Bot_Static.Right = 205; Bot_Static.Down = 470; Bot_Static.Cdf = 0; Bot_Static.Cb1 = 56; Bot_Static.Cb2 = 63; Bot_Static.Ab = 1; Bot_Static.Pb = 2; + Imprime_Boton(0, Bot_Static); + Bot_Static.Left = 9; Bot_Static.Up = 228; Bot_Static.Right = 202; Bot_Static.Down = 467; Bot_Static.Cdf = 0; Bot_Static.Cb1 = 63; Bot_Static.Cb2 = 56; Bot_Static.Ab = 1; Bot_Static.Pb = 2; + Imprime_Boton(0, Bot_Static); + Bot_Static.Left = 390; Bot_Static.Up = 135; Bot_Static.Right = 630; Bot_Static.Down = 415; Bot_Static.Cdf = 0; Bot_Static.Cb1 = 56; Bot_Static.Cb2 = 63; Bot_Static.Ab = 1; Bot_Static.Pb = 2; + Imprime_Boton(0, Bot_Static); + Bot_Static.Left = 393; Bot_Static.Up = 138; Bot_Static.Right = 627; Bot_Static.Down = 412; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 63; Bot_Static.Cb2 = 56; Bot_Static.Ab = 1; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + break; + case 2: + settextstyle( 2, 0, 6); + setcolor(255); outtextxy( 390, 426, " _" ); + setcolor(0); outtextxy( 389, 425, " _" ); + setcolor(255); outtextxy( 391, 424, " Instalar" ); + setcolor(0); outtextxy( 390, 423, " Instalar" ); + setcolor(255); outtextxy( 516, 426, " _" ); + setcolor(0); outtextxy( 515, 425, " _" ); + setcolor(255); outtextxy( 516, 424, " Configurar" ); + setcolor(0); outtextxy( 515, 423, " Configurar" ); + setcolor(255); outtextxy( 391, 453, " _" ); + setcolor(0); outtextxy( 390, 452, " _" ); + setcolor(255); outtextxy( 391, 451, " Ejecutar" ); + setcolor(0); outtextxy( 390, 450, " Ejecutar" ); + setcolor(255); outtextxy( 511, 453, " _" ); + setcolor(0); outtextxy( 511, 452, " _" ); + setcolor(255); outtextxy( 511, 451, " Salir" ); + setcolor(0); outtextxy( 510, 450, " Salir" ); + settextstyle( 2, 1, 6); + setcolor(255); outtextxy( 364, 289, "_" ); + setcolor(0); outtextxy( 363, 288, "_" ); + settextstyle( 2, 1, 5); + setcolor(255); outtextxy( 364, 219, "Ver Imagen" ); + setcolor(0); outtextxy( 363, 218, "Ver Imagen" ); + break; + case 4: + settextstyle( 2, 0, 5); + setcolor(251); outtextxy( 413, 149, " _" ); + setcolor(254); outtextxy( 412, 148, " _" ); + setcolor(255); outtextxy( 414, 148, " Salir despues de EJECUTAR." ); + setcolor(254); outtextxy( 413, 147, " Salir despues de EJECUTAR." ); + setcolor(251); outtextxy( 413, 170, " _" ); + setcolor(254); outtextxy( 412, 169, " _" ); + setcolor(255); outtextxy( 414, 169, " Desactivar Sonidos." ); + setcolor(254); outtextxy( 413, 168, " Desactivar Sonidos." ); + setcolor(251); outtextxy( 413, 191, " _" ); + setcolor(254); outtextxy( 412, 190, " _" ); + setcolor(255); outtextxy( 414, 190, " Instalacion Automtica" ); + setcolor(254); outtextxy( 413, 189, " Instalacion Automtica" ); + setcolor(251); outtextxy( 413, 212, " _" ); + setcolor(254); outtextxy( 412, 211, " _" ); + setcolor(255); outtextxy( 414, 211, " Comprobar espacio libre" ); + setcolor(254); outtextxy( 413, 210, " Comprobar espacio libre" ); + setcolor(251); outtextxy( 413, 230, " _" ); + setcolor(254); outtextxy( 412, 229, " _" ); + setcolor(255); outtextxy( 414, 229, " Formatear al Instalar" ); + setcolor(254); outtextxy( 413, 228, " Formatear al Instalar" ); + settextstyle( 2, 0, 4); + setcolor(255); outtextxy( 414, 242, " ( solo en unidades A: y B: )" ); + setcolor(254); outtextxy( 413, 241, " ( solo en unidades A: y B: )" ); + settextstyle( 2, 0, 5); + setcolor(251); outtextxy( 413, 254, " _" ); + setcolor(254); outtextxy( 412, 253, " _" ); + setcolor(255); outtextxy( 414, 253, " Sin imagen de Fondo" ); + setcolor(254); outtextxy( 413, 252, " Sin imagen de Fondo" ); + break; + case 5: + settextstyle( 2, 0, 5); + setcolor(251); outtextxy( 547, 392, " _" ); + setcolor(0); outtextxy( 547, 391, " _" ); + setcolor(255); outtextxy( 547, 391, " Cancelar" ); + setcolor(0); outtextxy( 546, 390, " Cancelar" ); + setcolor(251); outtextxy( 471, 392, " _" ); + setcolor(0); outtextxy( 470, 391, " _" ); + setcolor(255); outtextxy( 471, 391, " Salvar" ); + setcolor(0); outtextxy( 470, 390, " Salvar" ); + setcolor(251); outtextxy( 396, 392, " _" ); + setcolor(0); outtextxy( 395, 391, " _" ); + setcolor(255); outtextxy( 396, 391, " Anterior" ); + setcolor(0); outtextxy( 395, 390, " Anterior" ); + setcolor(251); outtextxy( 394, 278, " _" ); + setcolor(0); outtextxy( 393, 277, " _" ); + setcolor(255); outtextxy( 396, 277, " Imprimir icono actual sin" ); + setcolor(0); outtextxy( 395, 276, " Imprimir icono actual sin" ); + setcolor(255); outtextxy( 396, 291, " incluir los comentarios." ); + setcolor(0); outtextxy( 395, 290, " incluir los comentarios." ); + break; + case 10: + Bot_Static.Left = 118; Bot_Static.Up = 160; Bot_Static.Right = 521; Bot_Static.Down = 335; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + break; + case 11: + setcolor(255); settextstyle( 2, 1, 4); outtextxy( 504, 190, " _ " ); + setcolor(240); outtextxy( 503, 191, " _ " ); + setcolor(255); outtextxy( 501, 190, "<- CANCELAR -> " ); + setcolor(240); outtextxy( 502, 191, "<- CANCELAR -> " ); + setcolor(252); settextstyle( 2, 0, 6); outtextxy( 123, 165, " Ejecutar desde el CDROM" ); + setcolor(240); settextstyle( 2, 0, 4); outtextxy( 123, 190, "NOTA IMPORTANTE:" ); + outtextxy( 123, 200, " Hay cuatro circunstancias por las que los programas incluidos" ); + outtextxy( 123, 210, " en este CDROM podran NO FUNCIONAR si se ejcutan directamente" ); + outtextxy( 123, 220, " usando la opcin EJECUTAR:" ); + setcolor(251); outtextxy( 121, 220, " EJECUTAR" ); + setcolor(240); outtextxy( 123, 230, " Programas con requerimientos de memoria superior al espacio" ); + outtextxy( 123, 240, " libre dejado por los drivers de acceso al CDROM." ); + outtextxy( 123, 250, " Programas que nesecitan escribir algn tipo de configuracin" ); + outtextxy( 123, 260, " u otros datos en el propio disco." ); + outtextxy( 123, 270, " Programas con animaciones o accesos muy rpidos a disco duro" ); + outtextxy( 123, 280, " Programas cuyos nombres incluyan carcteres no aceptados por" ); + outtextxy( 123, 290, " el estandar ISO." ); + outtextxy( 123, 300, " Si por cualquiera de las causas anteriores no funcionase el" ); + outtextxy( 123, 310, " programa elegido: recomendamos proceda a su INSTALACION a HD." ); + setcolor(251); outtextxy( 120, 310, " INSTALACION" ); + setcolor(240); outtextxy( 123, 320, " usando la opcin correspondiente." ); + break; + case 20: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, "Iniciar instalacin en:" ); + Bot_Static.Left = 210; Bot_Static.Up = 240; Bot_Static.Right = 430; Bot_Static.Down = 257; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 200; Bot_Static.Up = 270; Bot_Static.Right = 280; Bot_Static.Down = 295; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 360; Bot_Static.Up = 270; Bot_Static.Right = 440; Bot_Static.Down = 295; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + break; + case 21: + settextstyle( 2, 0, 5); + setcolor(255); + outtextxy( 200, 274, " Aceptar" ); + outtextxy( 340, 274, " Cancelar" ); + setcolor(240); + outtextxy( 341, 275, " Cancelar" ); + outtextxy( 201, 275, " Aceptar" ); + break; +/////////////////////////// Fundido de Case's +// case 100: +// case 101: +// case 102: +// case 103: +// case 104: +// case 105: +// case 106: +// case 107: + case 108: +// case 109: +// case 110: +// case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + + + setcolor(240); settextstyle( 2, 0, 5); + + switch(Dinamicos_Estaticos) { + +// case 100: +// outtextxy( 210, 222, " Error en asignacin" ); +// outtextxy( 210, 242, " de memoria CONVENCIONAL" ); +// break; + +// case 101: +// +// outtextxy( 210, 222, " Error en asignacin" ); +// outtextxy( 210, 242, " de memoria XMS" ); +// break; + +// case 102: +// +// outtextxy( 210, 222, " Error cargando ICONOS" ); +// outtextxy( 210, 242, " y punteros de RATON..." ); +// break; + +// case 103: +// +// outtextxy( 210, 222, " Error cargando PCX" ); +// outtextxy( 210, 242, " de Fondo." ); +// break; + +// case 104: +// +// outtextxy( 210, 222, " Error cargando ficheros" ); +// outtextxy( 210, 242, " de sonido WAV" ); +// break; + +// case 105: +// +// outtextxy( 210, 222, " Error intentando ejecutar" ); +// outtextxy( 210, 242, " el programa deseado..." ); +// break; + +// case 106: +// +// outtextxy( 210, 222, " Error intentando ejecutar" ); +// outtextxy( 210, 242, " el programa deseado..." ); +// break; + +// case 107: +// +// outtextxy( 210, 222, " ERROR D E TIPO" ); +// outtextxy( 210, 242, " D E S C O N O C I D O" ); +// break; + + case 108: + + outtextxy( 210, 222, " ERROR ABRIENDO" ); + outtextxy( 210, 242, " FICHERO" ); + break; + +// case 109: +// +// outtextxy( 210, 222, " ERROR de ESCRITURA" ); +// outtextxy( 210, 242, " DISCO PROTEGIDO." ); +// break; + +// case 110: +// +// outtextxy( 210, 222, " ERROR de LECTURA" ); +// outtextxy( 210, 242, " POSIBLE DAO FSICO" ); +// break; + +// case 111: +// +// outtextxy( 210, 222, " ERROR INTENTANDO" ); +// outtextxy( 210, 242, " CERRAR FICHERO" ); +// break; + + case 112: + + outtextxy( 210, 222, " ERROR INTENTANDO" ); + outtextxy( 210, 242, " CARGAR BOTONES" ); + break; + + case 113: + + outtextxy( 210, 222, " EL FICHERO O DIRECTORIO A" ); + outtextxy( 210, 242, "INSTALAR NO SE HA ENCONTRADO" ); + break; + + case 114: + + outtextxy( 210, 222, " EL FICHERO O DIRECTORIO A" ); + outtextxy( 210, 242, "EJECUTAR NO SE HA ENCONTRADO" ); + break; + + case 115: + + outtextxy( 210, 222, " LA IMPRESORA NO ESTA LISTA" ); + outtextxy( 210, 242, "< << OPERACION CANCELA >> >" ); + break; + + case 116: + + outtextxy( 210, 222, " IMPRIMIENDO..." ); + outtextxy( 210, 242, " -JD-" ); + break; + } + break; + default: + break; + } +return 1; +} diff --git a/CD_IN/CD_CFG.CPP b/CD_IN/CD_CFG.CPP new file mode 100644 index 0000000..05a8c12 --- /dev/null +++ b/CD_IN/CD_CFG.CPP @@ -0,0 +1,55 @@ +#include +#include +#include +#include // Para getch(); +#include // Para outtextxy(...); y cleardevice(...); +#include "..\..\..\jd_lib\make_bot.h" // Fuciones de MAKE_BOTON +#include "cd_icons.h" + +#define DOS 1 +#define WINDOWS 2 + + +void Init_CFG(void); + +void Init_CFG(void){ + int ok = 0; + +setfillstyle(SOLID_FILL, 240); +bar(395, 140, 625, 410); + +Imprime_Estaticos( 4, "cd_out.img"); // Imprime botones estaticos 'Seccion 4' +Imprime_Secuencia(2); // Imprime secuencia 1. +Imprime_Estaticos( 5, "cd_out.img"); // Imprime textos estaticos 'Seccion 5' + +while(!ok){ // Bucle infinito + + switch( Comprueba_Secuencia( 2 ) ) { // Iniciamos comprobacion de 2 sec + + case 0: // No se pulso ningun BOTON + // Pero el raton fue presionado en + // algun sitio... + break; + case -2: // Hay una tecla normal en BUFFER + getch(); // La eliminamos + break; + case -1: // Hay una tecla especial en BUFFER + getch(); // La eliminamos + break; + // Boton Cancelar + case 1: + ok = 1; + break; + default: + while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER + break; + } + +} + +setfillstyle(SOLID_FILL, 240); +bar(395, 140, 625, 410); + return; +} + + diff --git a/CD_IN/CD_D01.DAT b/CD_IN/CD_D01.DAT new file mode 100644 index 0000000..0349676 Binary files /dev/null and b/CD_IN/CD_D01.DAT differ diff --git a/CD_IN/CD_D02.DAT b/CD_IN/CD_D02.DAT new file mode 100644 index 0000000..009171d Binary files /dev/null and b/CD_IN/CD_D02.DAT differ diff --git a/CD_IN/CD_D03.DAT b/CD_IN/CD_D03.DAT new file mode 100644 index 0000000..1cf96a5 Binary files /dev/null and b/CD_IN/CD_D03.DAT differ diff --git a/CD_IN/CD_D04.DAT b/CD_IN/CD_D04.DAT new file mode 100644 index 0000000..380e18f Binary files /dev/null and b/CD_IN/CD_D04.DAT differ diff --git a/CD_IN/CD_D05.DAT b/CD_IN/CD_D05.DAT new file mode 100644 index 0000000..c1e7086 Binary files /dev/null and b/CD_IN/CD_D05.DAT differ diff --git a/CD_IN/CD_D06.DAT b/CD_IN/CD_D06.DAT new file mode 100644 index 0000000..0c01bb0 Binary files /dev/null and b/CD_IN/CD_D06.DAT differ diff --git a/CD_IN/CD_D07.DAT b/CD_IN/CD_D07.DAT new file mode 100644 index 0000000..5131462 Binary files /dev/null and b/CD_IN/CD_D07.DAT differ diff --git a/CD_IN/CD_D08.DAT b/CD_IN/CD_D08.DAT new file mode 100644 index 0000000..31006d1 Binary files /dev/null and b/CD_IN/CD_D08.DAT differ diff --git a/CD_IN/CD_D09.DAT b/CD_IN/CD_D09.DAT new file mode 100644 index 0000000..2f506e3 Binary files /dev/null and b/CD_IN/CD_D09.DAT differ diff --git a/CD_IN/CD_D10.DAT b/CD_IN/CD_D10.DAT new file mode 100644 index 0000000..447736d Binary files /dev/null and b/CD_IN/CD_D10.DAT differ diff --git a/CD_IN/CD_D11.DAT b/CD_IN/CD_D11.DAT new file mode 100644 index 0000000..35fba6d Binary files /dev/null and b/CD_IN/CD_D11.DAT differ diff --git a/CD_IN/CD_D12.DAT b/CD_IN/CD_D12.DAT new file mode 100644 index 0000000..c16c79c Binary files /dev/null and b/CD_IN/CD_D12.DAT differ diff --git a/CD_IN/CD_D13.DAT b/CD_IN/CD_D13.DAT new file mode 100644 index 0000000..dae0a8e Binary files /dev/null and b/CD_IN/CD_D13.DAT differ diff --git a/CD_IN/CD_D14.DAT b/CD_IN/CD_D14.DAT new file mode 100644 index 0000000..a60cd57 Binary files /dev/null and b/CD_IN/CD_D14.DAT differ diff --git a/CD_IN/CD_D15.DAT b/CD_IN/CD_D15.DAT new file mode 100644 index 0000000..59cc935 Binary files /dev/null and b/CD_IN/CD_D15.DAT differ diff --git a/CD_IN/CD_EDIT.CPP b/CD_IN/CD_EDIT.CPP new file mode 100644 index 0000000..66272af --- /dev/null +++ b/CD_IN/CD_EDIT.CPP @@ -0,0 +1,1176 @@ +extern int Fichero_cd_in2(char Dinamicos_Estaticos); + +#include +#include +#include +#include +#include +#include +#include // Para getch(); +#include // Para outtextxy(...); y cleardevice(...); +#include "d:\program\src_dos\libs\make_bot\make_bot.h" // Fuciones de MAKE_BOTON +#include "cd_icons.h" + +#include "..\cd_file.h" + +#define DOS 1 +#define WINDOWS 2 + +#define Letra_Boton setcolor(1); +#define Azul 1 +#define Texto_Normal setcolor(255); +#define Texto_Negrita setcolor(240); + +void BEEP(void); +int InputCadenaG_T4(char *s, int numalp, int lmax, int cc, int cf, int X0, int Y0/*, int X1, int Y1*/, int RoW); +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +/*****/ void Abre_Ficha_CD_in(void); /*****/ +/*****/ void Poner_a_cero_estructura_actual_CD_in(void); /*****/ +/*****/ void PutLineCD_in(void); /*****/ +/*****/ void GetLineCD_in(void); /*****/ +/*****/ void DeleteRecordCD_in(void); /*****/ +/*****/ void AddRecordCD_in(void); /*****/ +/*****/ void Mueve_Abajo_CD_in(void); /*****/ +/*****/ void Mueve_Arriba_CD_in(void); /*****/ +/*****/ void EditCursorCD_in(int ShowHide); /*****/ +/*****/ void PrintLineCD_in(void); /*****/ +/*****/ void PrintLineCD_in2(void); /*****/ +/*****/ void PrintWholeScreenCD_in(void); /*****/ +/*****/ void Edit_Item_CD_in(void); /*****/ +/*****/ void Borra_Campo_Visual(int Columna); /*****/ +/*****/ FILE *CD_in; /*****/ +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +CD_FILE CD_in1; +struct Cabecera CD_cabecera; + +void Muestra_Comentario(void); +int Editar_Comentario(void); +void Muestra_Informacion(void); +void Inicializa_Apertura(void); +void Coloca_Iconos(int Start_Icon); +void Menu_de_Edicion(void); + + int Items_for = DOS; + int Item_select = 1; + int CurrTopLineCD_in = 1; int CurrRowCD_in = 1; + int CurrColCD_in = 1; + +void Menu_de_Edicion(void){ + int ok = 0, key; + + int Curr_Item = 1; + + + Imprime_Bordes(1, 2, 251); + settextstyle( SMALL_FONT, HORIZ_DIR, 4); + + Inicializa_Apertura(); + Muestra_Informacion(); + Muestra_Comentario(); + +while(!ok){ // Bucle infinito + + switch( Comprueba_Secuencia( 1 ) ) { // Iniciamos comprobacion de iconos + + case 0: // No se pulso ningun BOTON + // Pero el raton fue presionado en + // algun sitio... + break; + case -2: // Hay una tecla normal en BUFFER + key = getch(); // La utilizamos + if( isprint(key) || isspace(key) ) { + if(key!=13) ungetch(key); + Edit_Item_CD_in(); + EditCursorCD_in(0); + } + break; + case -1: // Hay una tecla especial en BUFFER + EditCursorCD_in(1); + switch( (key=getch()) ){ // La utilizamos + // Flecha Arriba + case 72: + Mueve_Arriba_CD_in(); + Muestra_Informacion(); + Muestra_Comentario(); + break; + // Flecha Izquierda + case 75: + case 15: + CurrColCD_in--; if ( CurrColCD_in<1 ) CurrColCD_in=8; + break; + // Flecha Derecha + case 77: + case 9: + CurrColCD_in++; if ( CurrColCD_in>8 ) CurrColCD_in=1; + break; + // Flecha Abajo + case 80: + Mueve_Abajo_CD_in(); + Muestra_Informacion(); + Muestra_Comentario(); + break; + // INICIO + case 71: + CurrColCD_in = 1; + break; + // FIN + case 79: + CurrColCD_in = 8; + break; + // RePg + case 73: + // CurrRow = 1; + if( CurrTopLineCD_in + CurrRowCD_in > 28 ) { CurrTopLineCD_in -= 11; } else { CurrTopLineCD_in = 1; CurrRowCD_in = 1;} + if( CurrTopLineCD_in + CurrRowCD_in< 1 ) { CurrTopLineCD_in = 1; CurrRowCD_in = 1;} + PrintWholeScreenCD_in(); + GetLineCD_in(); + Muestra_Informacion(); + break; + // AvPg + case 81: + // CurrRow = 1; + CurrTopLineCD_in += 11; + if ( (CurrTopLineCD_in +CurrRowCD_in-1) > CD_cabecera.Records) { CurrTopLineCD_in = CD_cabecera.Records; CurrRowCD_in = 1; } + if (CurrTopLineCD_in ==0) CurrTopLineCD_in = 1; + PrintWholeScreenCD_in(); + GetLineCD_in(); + Muestra_Informacion(); + break; + default: + break; + } + EditCursorCD_in(0); + break; + // Boton Windows + case 1: + Imprime_Bordes(1, 2, -1); + Items_for = WINDOWS; + Imprime_Bordes(1, 1, 251); + fclose(CD_in); + Inicializa_Apertura(); + Muestra_Informacion(); + Muestra_Comentario(); + break; + // Boton Dos + case 2: + Imprime_Bordes(1, 1, -1); + Items_for = DOS; + Imprime_Bordes(1, 2, 251); + fclose(CD_in); + Inicializa_Apertura(); + Muestra_Informacion(); + Muestra_Comentario(); + break; + // Boton Retroceder Icono + case 3: + Curr_Item--; if ( Curr_Item<= 0 ) Curr_Item = 15; + Coloca_Iconos(Curr_Item); + break; + // Boton Avanzar Icono + case 4: + Curr_Item++; if ( Curr_Item>=15 ) Curr_Item = 1; + Coloca_Iconos(Curr_Item); + break; + // Boton Creditos + case 5: + break; + // Boton Salir + case 6: + ok = 1; + break; + // Boton Aadir + case 7: + AddRecordCD_in(); + Muestra_Informacion(); + Muestra_Comentario(); + break; + // Boton Borrar + case 8: + DeleteRecordCD_in(); + Muestra_Informacion(); + Muestra_Comentario(); + break; + // Boton Editar Comentario + case 9: + Editar_Comentario(); + break; + // Boton Confirmar Icono + case 10: + Item_select = Curr_Item; + fclose(CD_in); + Inicializa_Apertura(); + Muestra_Informacion(); + Muestra_Comentario(); + break; + default: + while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER + break; + } + +} + +fclose(CD_in); + return; +} + + +// +// +// +// +// +// +// +// + +void Abre_Ficha_CD_in(void){ + +char ArchivoDatos[]="JD_Soft.FV"; +char Memoria; +void *Imagen; + +int cm; +cm = JD_imagesize(200, 212, 440, 267); +if ( (Imagen = malloc( cm /*imagesize(200, 212, 440, 267)*/ ) ) == NULL ) Memoria = 0; +else { + Memoria = 1; + getimage( 200, 212, 440, 267, Imagen ); + Fichero_cd_in2(113); + + //Imprime_Estaticos( 113, "cd_in.img"); + settextstyle( SMALL_FONT, HORIZ_DIR, 4); +} + +if (Items_for == DOS) + sprintf(ArchivoDatos, "CD_D%02d.dat", Item_select ); +else + sprintf(ArchivoDatos, "CD_W%02d.dat", Item_select ); + +//// +// CD_in Apertura de Indice, y Datos, o creacin... // +//// + + int LSJ = sizeof(struct Cabecera); + int LSC = sizeof(CD_FILE); + + if ( (CD_in = fopen( ArchivoDatos, "r+b"))==NULL) { + + FILE *fa; + + if ( (fa = fopen( ArchivoDatos, "wb" ) )!=NULL ) { + + Poner_a_cero_estructura_actual_CD_in(); + CD_cabecera.Records = 0; + rewind(fa); + + fwrite(&CD_cabecera, LSJ, 1, fa); fseek(fa, (long)LSJ, SEEK_SET); + fwrite(&CD_in1, LSC, 1, fa); + + if (fclose(fa) == EOF ) exit(1); + } + + if ( (CD_in = fopen( ArchivoDatos, "r+b"))==NULL) { + if ( Memoria ) free(Imagen); + restorecrtmode(); + printf("NO SE PUDO ABRIR EL FICHERO INDICE EN LA 2 PASADA"); + exit(1); + } + } + + rewind(CD_in); + if ( fread(&CD_cabecera, LSJ, 1, CD_in) != 1 ) { + if ( Memoria ) free(Imagen); + restorecrtmode(); + printf("NO SE PUDO LEER EN EL FICHERO: INDICE"); + exit(1); + } + fseek(CD_in, (long)LSJ, SEEK_SET); + if ( fread(&CD_in1, LSC, 1, CD_in) != 1 ) { + if ( Memoria ) free(Imagen); + restorecrtmode(); + printf("NO SE PUDO LEER EN EL FICHERO: DATOS"); + exit(1); + } + + if( Memoria ) { + putimage( 200, 212, Imagen, COPY_PUT); + free(Imagen); + } + +} + +void Poner_a_cero_estructura_actual_CD_in(void){ + + char CR = 13, LF = 10, BEEP = 7, ANY = 26; + sprintf( CD_cabecera.Nombre_del_Programa, "%c %c %c - CD_OUT - %c %c", CR, LF, BEEP, CR, LF ); + sprintf( CD_cabecera.Comentario_Inicial, "Jos David Guilln %c %c %c %c", CR, LF, BEEP, ANY ); + CD_cabecera.VerHi = 1; CD_cabecera.VerLow = 0; + CD_cabecera.Register = 1; + + CD_in1.Typo.DOS_WINDOWS = ( Items_for == DOS ? 0 : 1); + CD_in1.Typo.Tipo_de_Programa = Item_select; + CD_in1.Typo.T_Dibujo = 0; + CD_in1.Typo.Install = 0; + CD_in1.Typo.Ejecutable = 0; + + strcpy( CD_in1.Nombre, "\0" ); + for(CR=0; CR<32; CR++) +// strcpy( CD_in1.Comentario[CR], " "); + strcpy( CD_in1.Comentario[CR], " "); + + strcpy( CD_in1.N_Img, "\0"); + strcpy( CD_in1.Dir_P, "\0"); + + CD_in1.Alt_Install.Usar_VGA_COPY = 0; + CD_in1.Alt_Install.Usar_ARJ = 0; + CD_in1.Alt_Install.Usar_ZIP = 0; + CD_in1.Alt_Install.Usar_LHA = 0; + CD_in1.Alt_Install.Usar_XCopy = 0; + CD_in1.Alt_Install.Usar_Install_P = 0; +// CD_in1.Alt_Install.Usar_NO_Install = 0; + + strcpy( CD_in1.N_Install, "\0"); + strcpy( CD_in1.N_Exe, "\0"); + +} + +// +// +// +// +// +// +// +// + + + + +void PutLineCD_in(void){ + + long LSJ = sizeof(struct Cabecera); + long LSC = sizeof(CD_FILE); + + long CurrRecord = CurrTopLineCD_in + CurrRowCD_in - 1; + +fseek(CD_in, (long)LSJ + ( LSC * CurrRecord ) - LSC, SEEK_SET); // Se coloca +fwrite(&CD_in1, LSC, 1, CD_in); // Y escribe + +} + +void GetLineCD_in(void){ + + long LSJ = sizeof(struct Cabecera); + long LSC = sizeof(CD_FILE); + + long CurrRecord = CurrTopLineCD_in + CurrRowCD_in - 1; + +fseek(CD_in, (long)LSJ + ( LSC * CurrRecord ) - LSC, SEEK_SET); // Se coloca +fread(&CD_in1, LSC, 1, CD_in); // Y lee + +} + +void DeleteRecordCD_in(void) { + + long CurrRecord; + long LSJ = sizeof(struct Cabecera); + long LSC = sizeof(CD_FILE); + +CurrRecord = CurrTopLineCD_in + CurrRowCD_in - 1; + + if ( (CD_cabecera.Records == 0) ) { BEEP(); + Poner_a_cero_estructura_actual_CD_in(); + fseek(CD_in, (long)LSJ + ( LSC * ( 0 ) ), SEEK_SET); + fwrite(&CD_in1, LSC, 1, CD_in); + PrintWholeScreenCD_in(); + GetLineCD_in(); + EditCursorCD_in(0); + + } else { + + CD_cabecera.Records -= 1; + + unsigned int p = CurrRecord - 1; + + while( p <= CD_cabecera.Records ) { + + fseek(CD_in, (long)(LSJ + ( LSC * ( p + 1 ) )), SEEK_SET); // Se coloca + fread(&CD_in1, LSC, 1, CD_in); // Y lee + + fseek(CD_in, (long)(LSJ + ( LSC * p )), SEEK_SET); // Se coloca + fwrite(&CD_in1, LSC, 1, CD_in); // Y escribe + + p++; + }; + + rewind(CD_in); + fwrite(&CD_cabecera, LSJ, 1, CD_in); // Acualiza n de registros + + if ((CurrRecord - 1) == CD_cabecera.Records + 1) CurrRowCD_in--; +/* */ +/* */ PrintWholeScreenCD_in(); +/* */ GetLineCD_in(); + EditCursorCD_in(0); + + PrintLineCD_in2(); + } +} + + + +void AddRecordCD_in(void){ + + long CurrRecord= CurrTopLineCD_in + CurrRowCD_in - 1; + + long LSJ = sizeof(struct Cabecera); + long LSC = sizeof(CD_FILE); + +if( CurrRecord < 100000 ) { + + long avance = CD_cabecera.Records; + + while( avance >= (CurrRecord-1) ) { + + fseek(CD_in, (long)LSJ + ( LSC * avance ), SEEK_SET); + fread(&CD_in1, LSC, 1, CD_in); + + fseek(CD_in, (long)LSJ + ( LSC * (avance + 1) ), SEEK_SET); + fwrite(&CD_in1, LSC, 1, CD_in); + + avance--; + }; + +// CD_in1_inx.Fin = CD_in1_inx.Fin + 1; + CD_cabecera.Records++; + + rewind(CD_in); + fwrite(&CD_cabecera, LSJ, 1, CD_in); // Acualiza n de registros + + Poner_a_cero_estructura_actual_CD_in(); + + fseek(CD_in, (long)LSJ + ( LSC * ( CurrTopLineCD_in + CurrRowCD_in - 1) ), SEEK_SET); + fwrite(&CD_in1, LSC, 1, CD_in); + + CurrRowCD_in++; + if (CurrRowCD_in>19) { CurrTopLineCD_in++; CurrRowCD_in--; } + PrintWholeScreenCD_in(); + GetLineCD_in(); + EditCursorCD_in(0); + PrintLineCD_in2(); + + } + +} + +// +// +// +// +// +// +// +// + +void Mueve_Abajo_CD_in(void){ + + int CurrRecord = CurrTopLineCD_in + CurrRowCD_in - 1; + + if (CurrRowCD_in == 19) { + if ( (CurrRecord - 1) >= CD_cabecera.Records) { BEEP(); EditCursorCD_in(0); } + else { CurrTopLineCD_in++; + PrintWholeScreenCD_in(); + GetLineCD_in(); + PrintLineCD_in2(); + } + } else { + if( (CurrRecord - 1) >= CD_cabecera.Records) { BEEP(); EditCursorCD_in(0); } + else { CurrRowCD_in++; + GetLineCD_in(); + PrintLineCD_in2(); + } + } + +} + +void Mueve_Arriba_CD_in(void){ + int CurrRecord = CurrTopLineCD_in + CurrRowCD_in - 1; + + if (CurrRowCD_in==1) { + if ((CurrRecord - 1) <= 0) { BEEP(); EditCursorCD_in(0); } + else { + CurrTopLineCD_in--; + PrintWholeScreenCD_in(); + GetLineCD_in(); + PrintLineCD_in2(); + } + + } else { + if( (CurrRecord - 1) <= 0) { BEEP(); // Do nothing, get over... + + } else { CurrRowCD_in--; + GetLineCD_in(); + PrintLineCD_in2(); + } + } + +} + +void EditCursorCD_in(int ShowHide) { + +char Buffer[80]; +int Ch; + + if (!ShowHide) { + setcolor(255); + setfillstyle(SOLID_FILL, 255); + Borra_Campo_Visual( CurrColCD_in ); + setcolor(240); + } else { + setcolor(240); + setfillstyle(SOLID_FILL, 240); + Borra_Campo_Visual( CurrColCD_in ); + Texto_Normal + } + + switch(CurrColCD_in){ + case 1: + // Nombre del Programa 26 d. + outtextxy( 8, 98 + (CurrRowCD_in-1) * 12, CD_in1.Nombre ); + break; + case 2: + // Nombre del Instalador + outtextxy( 175, 98 + (CurrRowCD_in-1) * 12, CD_in1.N_Install ); + break; + case 3: + // Nombre del Ejecutable + outtextxy( 233, 98 + (CurrRowCD_in-1) * 12, CD_in1.N_Exe); + break; + case 4: + // Es Instalable ? Cual es el Tipo ? + if ( CD_in1.Alt_Install.Usar_VGA_COPY ) strcpy( Buffer, "VCpy" ); else + if ( CD_in1.Alt_Install.Usar_ARJ ) strcpy( Buffer, "Arj" ); else + if ( CD_in1.Alt_Install.Usar_ZIP ) strcpy( Buffer, "Zip" ); else + if ( CD_in1.Alt_Install.Usar_XCopy ) strcpy( Buffer, "Xcpy" ); else + if ( CD_in1.Alt_Install.Usar_Install_P) strcpy( Buffer, "Inst" ); else + if ( CD_in1.Alt_Install.Usar_LHA ) strcpy( Buffer, "NO I" ); else + strcpy( Buffer, "NO I" ); + outtextxy( 291, 98 + (CurrRowCD_in-1) * 12, Buffer ); + break; + + case 5: + // Es ejecutable ? + strcpy( Buffer, (CD_in1.Typo.Ejecutable ? "SI" : "NO") ); + outtextxy( 321, 98 + (CurrRowCD_in-1) * 12, Buffer ); + break; + + case 6: + // Tiene Dibujo ? + strcpy( Buffer, (CD_in1.Typo.T_Dibujo ? "SI" : "NO") ); + outtextxy( 353, 98 + (CurrRowCD_in-1) * 12, Buffer ); + break; + case 7: + // Directorio + outtextxy( 123, 338, CD_in1.Dir_P ); + break; + case 8: + // Nombre Imagen + outtextxy( 123, 358, CD_in1.N_Img ); + break; + } + +} + + + +void PrintLineCD_in(void){ + + char Buffer[80]; + + setcolor(240); + setfillstyle(SOLID_FILL, 240); + Borra_Campo_Visual(-1); + + Texto_Normal + // Nombre del Programa 26 d. + outtextxy( 8, 98 + (CurrRowCD_in-1) * 12, CD_in1.Nombre ); + // Nombre del Instalador + outtextxy( 175, 98 + (CurrRowCD_in-1) * 12, CD_in1.N_Install ); + // Nombre del Ejecutable + outtextxy( 233, 98 + (CurrRowCD_in-1) * 12, CD_in1.N_Exe); + // Es Instalable ? Cual es el Tipo ? + if ( CD_in1.Alt_Install.Usar_VGA_COPY ) strcpy( Buffer, "VCpy" ); else + if ( CD_in1.Alt_Install.Usar_ARJ ) strcpy( Buffer, "Arj" ); else + if ( CD_in1.Alt_Install.Usar_ZIP ) strcpy( Buffer, "Zip" ); else + if ( CD_in1.Alt_Install.Usar_XCopy ) strcpy( Buffer, "Xcpy" ); else + if ( CD_in1.Alt_Install.Usar_Install_P) strcpy( Buffer, "Inst" ); else + if ( CD_in1.Alt_Install.Usar_LHA ) strcpy( Buffer, "NO I" ); else + strcpy( Buffer, "NO I" ); + outtextxy( 291, 98 + (CurrRowCD_in-1) * 12, Buffer ); + // Es ejecutable ? + strcpy( Buffer, (CD_in1.Typo.Ejecutable ? "SI" : "NO") ); + outtextxy( 321, 98 + (CurrRowCD_in-1) * 12, Buffer ); + // Tiene Dibujo ? + strcpy( Buffer, (CD_in1.Typo.T_Dibujo ? "SI" : "NO") ); + outtextxy( 353, 98 + (CurrRowCD_in-1) * 12, Buffer ); + // Directorio + outtextxy( 123, 338, CD_in1.Dir_P ); + // Nombre Imagen + outtextxy( 123, 358, CD_in1.N_Img ); + +} + + +void PrintLineCD_in2(void){ + + setcolor(240); + setfillstyle(SOLID_FILL, 240); + Borra_Campo_Visual(7); + Borra_Campo_Visual(8); + + Texto_Normal + // Directorio + outtextxy( 123, 338, CD_in1.Dir_P ); + // Nombre Imagen + outtextxy( 123, 358, CD_in1.N_Img ); + +} + +void PrintWholeScreenCD_in(void){ + +int tmp = CurrRowCD_in; + + setcolor(240); + setfillstyle(SOLID_FILL, 240); +Borra_Campo_Visual(-2); + + for(CurrRowCD_in = 1; CurrRowCD_in < (19+1); CurrRowCD_in++) + + if ( (CurrTopLineCD_in + CurrRowCD_in - 1) <= (CD_cabecera.Records + 1) ) { + GetLineCD_in(); + PrintLineCD_in(); + } + +PrintLineCD_in2(); +CurrRowCD_in = tmp; + +} + +void Edit_Item_CD_in(void){ + + char buffer[80]; + + switch(CurrColCD_in){ + case 1: + // Nombre del Programa 26 d. + // Puntero a cadena, T/N, Dtos, Color, Fondo, Up, Left, Right, Down, Linea + InputCadenaG_T4( CD_in1.Nombre, 0, 26, 255, 250, 8, 98/*, 175, 327*/, CurrRowCD_in-1); + break; + case 2: + // Nombre del Instalador + InputCadenaG_T4( CD_in1.N_Install, 0, 8, 255, 250, 175, 98/*, 227, 327*/, CurrRowCD_in-1); + break; + case 3: + // Nombre del Ejecutable + InputCadenaG_T4( CD_in1.N_Exe, 0, 8, 255, 250, 233, 98/*, 285, 327*/, CurrRowCD_in-1); + break; + case 4: + // Es Instalable ? Cual es el Tipo ? + if ( CD_in1.Alt_Install.Usar_VGA_COPY ) strcpy( buffer, "1" ); else + if ( CD_in1.Alt_Install.Usar_ARJ ) strcpy( buffer, "2" ); else + if ( CD_in1.Alt_Install.Usar_ZIP ) strcpy( buffer, "3" ); else + if ( CD_in1.Alt_Install.Usar_XCopy ) strcpy( buffer, "4" ); else + if ( CD_in1.Alt_Install.Usar_Install_P) strcpy( buffer, "5" ); else + if ( CD_in1.Alt_Install.Usar_LHA ) strcpy( buffer, "6" ); + + InputCadenaG_T4( buffer, 1, 1, 255, 250, 291, 98/*, 315, 327*/, CurrRowCD_in-1); + + CD_in1.Alt_Install.Usar_VGA_COPY = 0; + CD_in1.Alt_Install.Usar_ARJ = 0; + CD_in1.Alt_Install.Usar_ZIP = 0; + CD_in1.Alt_Install.Usar_XCopy = 0; + CD_in1.Alt_Install.Usar_Install_P = 0; + CD_in1.Alt_Install.Usar_LHA = 0; + + switch( atoi(buffer) ) { + + case 1: CD_in1.Alt_Install.Usar_VGA_COPY = 1; + break; + case 2: CD_in1.Alt_Install.Usar_ARJ = 1; + break; + case 3: CD_in1.Alt_Install.Usar_ZIP = 1; + break; + case 4: CD_in1.Alt_Install.Usar_XCopy = 1; + break; + case 5: CD_in1.Alt_Install.Usar_Install_P = 1; + break; + case 6: CD_in1.Alt_Install.Usar_LHA = 1; + break; + default: + break; + } + break; + case 5: + // Es ejecutable ? + strcpy( buffer, (CD_in1.Typo.Ejecutable ? "1" : "0") ); + InputCadenaG_T4( buffer, 1, 1, 255, 250, 321, 98/*, 347, 327*/, CurrRowCD_in-1); + CD_in1.Typo.Ejecutable = atoi(buffer); + break; + case 6: + // Tiene Dibujo ? + strcpy( buffer, (CD_in1.Typo.T_Dibujo ? "1" : "0") ); + InputCadenaG_T4( buffer, 1, 1, 255, 250, 353, 98/*, 377, 327*/, CurrRowCD_in-1); + CD_in1.Typo.T_Dibujo = atoi(buffer); + break; + case 7: + // Directorio + InputCadenaG_T4( CD_in1.Dir_P, 0, 40, 255, 250, 123, 338/*, 377, 352*/, 0); + break; + case 8: + // Nombre Imagen + InputCadenaG_T4( CD_in1.N_Img, 0, 8, 255, 250, 123, 358/*, 175, 372*/, 0); + break; + } + PutLineCD_in(); + GetLineCD_in(); + PrintLineCD_in(); + PrintLineCD_in2(); + +} + + + +void Borra_Campo_Visual(int Columna){ + + +switch( Columna ) { + case -2: + // ** Nombre + bar( 8, 98, 169, 327 ); + // ** Nombre Install + bar( 175, 98, 227, 327 ); + // ** Nombre Exe + bar( 233, 98, 285, 327 ); + // ** Instalable + bar( 291, 98, 315, 327 ); + // ** Ejecutable + bar( 321, 98, 347, 327 ); + // ** Imagen + bar( 353, 98, 377, 327 ); + // *** Directorio + bar( 123, 338, 377, 352 ); + // *** Nombre Imagen + bar( 123, 358, 175, 372 ); + // *** Directorio + bar( 123, 338, 377, 352 ); + // *** Nombre Imagen + bar( 123, 358, 175, 372 ); + break; + case -1: + // *** Los Borra -> TODOS + // C:\>del. + // Todos los archivos en el directorio + // seran eliminados. Si / No ? S + // C:\>_ + // ** Nombre + bar( 8, 98 + (CurrRowCD_in-1) * 12, 169, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + // ** Nombre Install + bar( 175, 98 + (CurrRowCD_in-1) * 12, 227, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + // ** Nombre Exe + bar( 233, 98 + (CurrRowCD_in-1) * 12, 285, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + // ** Instalable + bar( 291, 98 + (CurrRowCD_in-1) * 12, 315, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + // ** Ejecutable + bar( 321, 98 + (CurrRowCD_in-1) * 12, 347, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + // ** Imagen + bar( 353, 98 + (CurrRowCD_in-1) * 12, 377, 98 + ( CurrRowCD_in - 1 ) * 12 + 10 ); + // *** Directorio + bar( 123, 338, 377, 352 ); + // *** Nombre Imagen + bar( 123, 358, 175, 372 ); + break; + case 1: + // ** Nombre + bar( 8, 98 + (CurrRowCD_in-1) * 12, 169, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + break; + case 2: + // ** Nombre Install + bar( 175, 98 + (CurrRowCD_in-1) * 12, 227, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + break; + case 3: + // ** Nombre Exe + bar( 233, 98 + (CurrRowCD_in-1) * 12, 285, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + break; + case 4: + // ** Instalable + bar( 291, 98 + (CurrRowCD_in-1) * 12, 315, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + break; + case 5: + // ** Ejecutable + bar( 321, 98 + (CurrRowCD_in-1) * 12, 347, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + break; + case 6: + // ** Imagen + bar( 353, 98 + (CurrRowCD_in-1) * 12, 377, 98 + ( CurrRowCD_in - 1 ) * 12 + 10 ); + break; + case 7: + // *** Directorio + bar( 123, 338, 377, 352 ); + break; + case 8: + // *** Nombre Imagen + bar( 123, 358, 175, 372 ); + break; + default: + break; +} + +} + + +int InputCadenaG_T4(char *s, int numalp, int lmax, int cc, int cf, int X0, int Y0/*, int X1, int Y1*/, int RoW) +{ + + int ls; // longitud cadena + char *s1; // puntero a cadena inicial + int c, ok; + + s1 = s; // inicio cadena + + setcolor(cf); // pone color a 0 para borrar + setfillstyle(SOLID_FILL, cf); + Borra_Campo_Visual(CurrColCD_in); + setcolor(cc); // devuelve el color a su estado + + outtextxy( X0, Y0+RoW*12, s ); + + ls = strlen ( s ); // Longitud de actual + + if ( ls < lmax ) { + setcolor(250); + outtextxy( X0+textwidth( s1 ), Y0+RoW*12, ""); + } + + s += ls; // se coloca en el final + + do{ + c = getch(); // obtiene tecla + + ok = ( c == 13 || c == 0); // 13 = INTRO || Especiales + + if ( c == 8 && ls > 0 && !ok ) { // 8 = Back Space + ls--; + s--; + + *s = '\0'; + + setcolor(cf); + setfillstyle(SOLID_FILL, cf); + Borra_Campo_Visual(CurrColCD_in); +//bar(X0, Y0+RoW*12+/*2*/4, X1-2, Y0+4+RoW*12 + 10); + + setcolor(cc); + outtextxy( X0, Y0+RoW*12, s1 ); + setcolor(4); + outtextxy( X0+textwidth( s1 ), Y0+RoW*12, ""); + setcolor(cc); + + } else { + if ( !numalp && c >= 32 && c <= 254 /* isprint(c) */ && ls < lmax) { + + *s++ = c; + ls++; + + *s = '\0'; + setcolor(cf); + setfillstyle(SOLID_FILL, cf); + Borra_Campo_Visual(CurrColCD_in); +//bar(X0, Y0+RoW*12+/*2*/4, X1-2, Y0+4+RoW*12 + 10); + setcolor(cc); + outtextxy( X0, Y0+RoW*12, s1 ); + + if ( ls < lmax ) { + setcolor(4); + outtextxy( X0+textwidth( s1 ), Y0+RoW*12, ""); + setcolor(cc); + } + + + } else { + if ( numalp && isdigit(c) && ls < lmax) { + *s++ = c; + ls++; + + *s = '\0'; // Cero final + setcolor(cf); + setfillstyle(SOLID_FILL, cf); + Borra_Campo_Visual(CurrColCD_in); +//bar(X0, Y0+RoW*12+4, X1-2, Y0+4+RoW*12 + 10); + setcolor(cc); + + outtextxy( X0, Y0+RoW*12, s1 ); + + if ( ls < lmax ) { + setcolor(4); + outtextxy( X0+textwidth( s1 ), Y0+RoW*12, ""); + setcolor(cc); + } + + + } + /**/ + else if( c == 27 ) {*s='\0'; ok = 1; } + /**/ + else BEEP(); + } + } + + }while(!ok); + + ok = 1; + *s = ' '; + while( ok ) { + if(*s==' ') { *s = '\0'; s--; + } else { s++; ok = 0; } + } + + *s = '\0'; + + while(kbhit()) getch(); // Vacia Buffer impidiendo falsas + // pulsaciones... + + return ls; +} + +void BEEP(void){ + + sound(440); + delay(50); + nosound(); + +} + +void Inicializa_Apertura(void) { + + CurrTopLineCD_in = 1; + CurrRowCD_in = 1; + CurrColCD_in = 1; + Abre_Ficha_CD_in(); + PrintWholeScreenCD_in(); + GetLineCD_in(); + EditCursorCD_in(0); + +} + +void Muestra_Informacion(void){ + + char Buffer[80]; + + setcolor(240); + setfillstyle(SOLID_FILL, 240); + + bar( 13, 388, 182, 434 ); + + setcolor(255); + sprintf( Buffer, "Modulo:" ); + switch ( Item_select ) { + case 1: strcat( Buffer, " Juegos" ); break; + case 2: strcat( Buffer, " P.Texto" ); break; + case 3: strcat( Buffer, " Msica" ); break; + case 4: strcat( Buffer, " Dibujo" ); break; + case 5: strcat( Buffer, " Utild." ); break; + case 6: strcat( Buffer, " Base D" ); break; + case 7: strcat( Buffer, " Hoja C" ); break; + case 8: strcat( Buffer, " Red" ); break; + case 9: strcat( Buffer, " Lenguaj" ); break; + case 10:strcat( Buffer, " Scanner" ); break; + case 11:strcat( Buffer, " News" ); break; + case 12:strcat( Buffer, " Compr" ); break; + case 13:strcat( Buffer, " Videos" ); break; + case 14:strcat( Buffer, " Varios" ); break; + case 15:strcat( Buffer, " CD's" ); break; + default: strcat( Buffer, "ERROR" ); break; + } + + strcat( Buffer, ( (Items_for==DOS) ? ", DOS" : ", WINDOWS") ); + outtextxy( 15, 390, Buffer); + + sprintf( Buffer, "Linea %02d. Reg %d / %d", CurrRowCD_in, (CurrRowCD_in+CurrTopLineCD_in-1), (CD_cabecera.Records + 1) ); + outtextxy( 15, 400, Buffer); + + + +} + + + +/////// EDITAR COMENTARIO.... + +int Editar_Comentario(void) +{ + + int ls; // longitud cadena + char *s1, *s, *s_tmp, *s_tmp1; // puntero a cadena inicial + int key, ok, Linea = 0, Columna = 0, X, Y, lmax; + char Buffer[80]; + + X = 395; Y = 105; lmax = 35; + ok = 0; + + s_tmp1 = s_tmp = s = s1 = CD_in1.Comentario[0]; // inicio cadena + + s += lmax ; *s = '\0'; + s = s_tmp; + +do { + + setcolor(250); // pone color a 0 para borrar + setfillstyle(SOLID_FILL, 250); // selecciona los atributos de + bar( X, Y+Linea*11, X + 230, Y+Linea*11 + 11); // relleno, y Borra el campo + setcolor(255); // devuelve el color a su estado + + outtextxy( X, Y+Linea*11, s1 ); // e imprime la cadena. +// ls = strlen ( s ); // Longitud de la cadena actual + + + if ( Columna < lmax ) { // Muestra cursor si es posible + setcolor(251); + strncpy( Buffer, s1, Columna ); + Buffer[Columna] = '\0'; + outtextxy( X + textwidth( Buffer ), Y+Linea*11+2, ""); + } + + switch ( ( key = getch() ) ) { // obtiene tecla + // Intro o Return + case 13: + + if( Linea < 31 ) { + setcolor(240); // pone color a 0 para borrar + setfillstyle(SOLID_FILL, 240); // selecciona los atributos de + bar( X, Y+Linea*11, X + 230, Y+Linea*11 + 11); // relleno, y Borra el campo + setcolor(255); // devuelve el color a su estado + outtextxy( X, Y+Linea*11, s1 ); // e imprime la cadena. + + Linea++; + s_tmp1 = s_tmp = s = s1 = CD_in1.Comentario[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 ) { + setcolor(240); // pone color a 0 para borrar + setfillstyle(SOLID_FILL, 240); // selecciona los atributos de + bar( X, Y+Linea*11, X + 230, Y+Linea*11 + 11); // relleno, y Borra el campo + setcolor(255); // devuelve el color a su estado + outtextxy( X, Y+Linea*11, s1 ); // e imprime la cadena. + + Linea--; + s_tmp1 = s_tmp = s = s1 = CD_in1.Comentario[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 < 31 ) { + setcolor(240); // pone color a 0 para borrar + setfillstyle(SOLID_FILL, 240); // selecciona los atributos de + bar( X, Y+Linea*11, X + 230, Y+Linea*11 + 11); // relleno, y Borra el campo + setcolor(255); // devuelve el color a su estado + outtextxy( X, Y+Linea*11, s1 ); // e imprime la cadena. + + Linea++; + s_tmp1 = s_tmp = s = s1 = CD_in1.Comentario[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 15: + if ( Columna > 0) { Columna--; s--; } + break; + default: + BEEP(); + + } + + 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++; + } + else BEEP(); + break; + } +}while(!ok); + +while(kbhit()) getch(); // Vacia Buffer impidiendo falsas + // pulsaciones... + + setcolor(240); // pone color a 0 para borrar + setfillstyle(SOLID_FILL, 240); // selecciona los atributos de + bar( X, Y+Linea*11, X + 230, Y+Linea*11 + 11); // relleno, y Borra el campo + setcolor(255); // devuelve el color a su estado + + outtextxy( X, Y+Linea*11, s1 ); // e imprime la cadena. + PutLineCD_in(); + GetLineCD_in(); + + +return /* de momento nada */ 0; + +} + +void Muestra_Comentario(void){ + + int X, Y; + + X = 395; Y = 105; + + setcolor(240); // pone color a 0 para borrar + setfillstyle(SOLID_FILL, 240); // selecciona los atributos de + for(int Linea=0; Linea<32; Linea++ ){ + bar( X, Y+Linea*11, X + 230, Y+Linea*11 + 11); // relleno, y Borra el campo + setcolor(255); // devuelve el color a su estado + outtextxy( X, Y+Linea*11, CD_in1.Comentario[Linea] ); // e imprime la cadena. + } +} diff --git a/CD_IN/CD_ERROR.H b/CD_IN/CD_ERROR.H new file mode 100644 index 0000000..f41313a --- /dev/null +++ b/CD_IN/CD_ERROR.H @@ -0,0 +1,14 @@ +#define SIN_CVN 100 +#define SIN_XMS 101 +#define E_ICONO 102 +#define E_PCX 103 +#define E_WAV 104 +#define E_EXE 105 +#define ERROR_ D 107 + +#define E_O 108 +#define E_W 109 +#define E_R 110 +#define E_C 111 + + diff --git a/CD_IN/CD_EXE.CPP b/CD_IN/CD_EXE.CPP new file mode 100644 index 0000000..0724a20 --- /dev/null +++ b/CD_IN/CD_EXE.CPP @@ -0,0 +1,191 @@ +#include +#include +#include +#include +#include +#include +#include // Para getch(); +#include // Para outtextxy(...); y cleardevice(...); +#include "..\..\jd_lib\make_bot.h" // Fuciones de MAKE_BOTON +#include "cd_icons.h" +#include "cd_error.h" + +#define DOS 1 +#define WINDOWS 2 + + +void Init_EXE(int CurrIcon); +char *current_directory(char *path); +extern void Inicializa_Dibujo(void); +extern void Inicializa_Iconos(void); +extern void Coloca_Iconos_Dos_Windows(void); +extern char far *Icono; // 18 +extern unsigned char *P_Raton1, *P_Raton2, *P_Raton3, *P_Raton4; +extern void *Pantalla; +void InicializaSVGA(void); +extern char dac[256*3]; +extern "C" void APAGA_PANTALLA(char *); +extern "C" void ENCIENDE_PANTALLA(char *); + +extern void Menu_de_Edicion(void); +extern void Coloca_Iconos(int Start_Icon); + +void Init_EXE(int CurrIcon){ + + int ok = 0, exe = 0; + char curdir[80]; +/* + void far *Mascara; + +if( (Mascara = farmalloc(imagesize(118, 160, 521, 335) ) ) == NULL) { + closegraph(); + cprintf("\n\rSALIENDO"); + cprintf("\n\rImposible encontrar %dKbytes en el Heap", ok); + exit(SIN_MEMORIA); +} +getimage(118, 159, 521, 335, Mascara); +*/ +Imprime_Estaticos(10, "cd_out.img"); // Imprime botones estaticos 'Seccion 4' +Imprime_Secuencia(3); // Imprime secuencia 1. +Imprime_Estaticos(11, "cd_out.img"); // Imprime textos estaticos 'Seccion 5' + +while(!ok){ // Bucle infinito + + switch( Comprueba_Secuencia( 3 ) ) { // Iniciamos comprobacion de 2 sec + + case 0: // No se pulso ningun BOTON + // Pero el raton fue presionado en + // algun sitio... + break; + case -2: // Hay una tecla normal en BUFFER + switch( getch() ) { // La utilizamos + // Intro ( ACEPTAR ) + case 13: + exe = 1; + ok = 1; + break; + // ESC ( CANCELAR ) + case 14: + exe = 0; + ok = 1; + break; + default: + break; + } + break; + case -1: // Hay una tecla especial en BUFFER + getch(); // La eliminamos + break; + // Boton Aceptar + case 1: + exe = 1; + ok = 1; + break; + // Boton Cancelar + case 2: + exe = 0; + ok = 1; + break; + default: + while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER + break; + } + +} + +/* +putimage(118, 160, Mascara, COPY_PUT); + +farfree(Mascara); +*/ +if ( exe == 1 ) { + /// Liberamos la memoria asignada para al DRIVER grfico... + current_directory(curdir); + APAGA_PANTALLA(dac); + closegraph(); + Libera_Memoria(); + free(P_Raton1); + free(P_Raton2); + free(P_Raton3); + free(P_Raton4); + free(Pantalla); + farfree(Icono); + closegraph(); + + cprintf("Ŀ\n\r"); + cprintf(" JD & CD_OUT \n\r"); + cprintf("\n\r"); + cprintf("EJECUTANDO PROGRAMA: []\n\r"); + /* + + C O M I E N Z A L A E J E C U C I O N D E L P R O G R A M A + + */ + + if ( system( getenv( "COMSPEC") ) != 0 ) { printf("\n\nImposible salir a MS-DOS\n\n"); sleep(5); } + + clrscr(); + cprintf("Ŀ\n\r"); + cprintf(" JD & CD_OUT \n\r"); + cprintf("\n\r"); + cprintf("Regresando a CD_OUT...\n\r"); + + //// Recargamos el Programa... + chdir(curdir); // Refresamos a nuestro directorio + // de origen + InicializaSVGA(); // Reinicializamos la SVGA + APAGA_PANTALLA(dac); // Apagamos la Pantalla + Inicializa_Dibujo(); // Inicializamos un nuevo dibujo + + if( carga_botones("cd_out.img") // Recarga botones del fichero "CD_out.img" + != OK ) { + Imprime_Estaticos( 112, "cd_out.img"); + Espera_Tecla_o_Raton(); + closegraph(); + cprintf("\n\rError en la CARGA DE BOTONES"); + exit(112); + + /* + + SALE CON UN MENSAJE GRFICO + + */ + } + + + Imprime_Estaticos( 1, "cd_out.img"); // Imprime botones estaticos 'Seccion 1' + + Imprime_Secuencia(1); // Imprime secuencia 1. + + Imprime_Estaticos( 2, "cd_out.img"); // Imprime botones estaticos 'Seccion 2' + // para los textos + + Inicializa_Iconos(); + Coloca_Iconos_Dos_Windows(); + Coloca_Iconos(CurrIcon); + + ENCIENDE_PANTALLA(dac); + if ( (Pantalla = malloc( imagesize(0, 0, 20, 20) )) == NULL ) { + Imprime_Estaticos( SIN_CVN, "cd_out.img"); + Espera_Tecla_o_Raton(); + closegraph(); + cprintf("\n\rError en la asignacin de memoria para la mascara del raton"); + exit(2); + } + + inicializa_raton_grafico( 0, 0, 619, 460); + + True_Push = ON; // Activa el TRUE PUSH ( PRESION REAL ) +} + + +} + + +char *current_directory(char *path) +{ + strcpy(path, "X:\\"); /* fill string with form of response: X:\ */ + path[0] = 'A' + getdisk(); /* replace X with current drive letter */ + getcurdir(0, path+3); /* fill rest of string with current directory */ + return(path); +} diff --git a/CD_IN/CD_FILE.H b/CD_IN/CD_FILE.H new file mode 100644 index 0000000..efdea92 --- /dev/null +++ b/CD_IN/CD_FILE.H @@ -0,0 +1,61 @@ + + struct byte { + int T_Dibujo : 1; + int DOS_WINDOWS : 1; + int Install : 1; + int Ejecutable : 1; + int Tipo_de_Programa : 4; + }; + + struct Install { + int Usar_VGA_COPY : 1; + int Usar_ARJ : 1; + int Usar_ZIP : 1; + int Usar_LHA : 1; + int Usar_XCopy : 1; + int Usar_Install_P : 1; + + int Manual_Automatico : 1; + }; + + +typedef struct { + + struct byte Typo; // 1 bit DOS o WINDOWS + // 4 bit Tipo de programa, ( Juegos, Dibujo, ... ) + // 1 bit ( Tiene Dibujo SI / NO ) + // 1 bit Instalable ( SI / NO ) + // 1 bit Ejecutable + + + char Nombre[26+1]; // Nombre del programa + char Comentario[32][35 + 1]; // Comentario + + char N_Img[8+1]; // Nombre de la imagen ( sin extensin ) + + char Dir_P[50+1]; + + // Instalacion alternativa... + struct Install Alt_Install; + + char N_Install[8+1]; + char N_Exe[8+1]; + + +} CD_FILE; + +struct Cabecera { + char Nombre_del_Programa[70]; + char Comentario_Inicial[70]; +// const char R1 = 13, R2 =10; +// const char Comentario_Inicial[] = {"Jos David Guilln Dominguez"}; +// const char R3 = 13, R4 =10; +// const char R5 = 7, R6 =26; + + char VerHi, VerLow; + char Register; + + long Records; +}; + +struct Cabecera CD_cabecera; \ No newline at end of file diff --git a/CD_IN/CD_ICONS.CPP b/CD_IN/CD_ICONS.CPP new file mode 100644 index 0000000..78b5066 --- /dev/null +++ b/CD_IN/CD_ICONS.CPP @@ -0,0 +1,520 @@ +extern int Fichero_cd_in2(char Dinamicos_Estaticos); + +///////////////////////////// FICHEROS A INCLUIR ///////////////////////////// +#include +#include +#include +#include +#include // Para getch(); +#include // Para outtextxy(...); y cleardevice(...); + +#include "cd_icons.h" +// #include "List_col.h" +#include "cd_error.h" +#include "d:\program\src_dos\libs\make_bot\make_bot.h" // Fuciones de MAKE_BOTON +////////////////////////////////// VARIABLES ///////////////////////////////// +void Mete(FILE *P_R, int Color); + +FILE *handle; +char dac[256*3]; + +extern unsigned char *P_Raton1, *P_Raton2, *P_Raton3, *P_Raton4; + +unsigned char far *Icono; // 18 + +void Coloca_Iconos_Dos_Windows(void); +void Coloca_Iconos(int Start_Icon); +//////////////////////// DECLARACIONES DE FUNCIONES ////////////////////////// + +extern "C" void ENCIENDE_PANTALLA(char *); + +///////////////////////////////// PROGRAMA /////////////////////////////////// +void Inicializa_Iconos(void) +{ + int ancho; + int Posicion[18] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + int alto; + + int esq_x1, esq_y1, esq_x2, esq_y2; + unsigned char byte, contador; + int n = (20*20); + int PR1, PR2, PR3, PR4; + PR1 = PR2 = PR3 = PR4 = -1; + + if( (Icono = (unsigned char far *)farcalloc( /*(39762)*/40000L, sizeof(unsigned char) ) ) == NULL ){ + Fichero_cd_in2(SIN_CVN); + +// Imprime_Estaticos( SIN_CVN, "cd_in.img"); + Espera_Tecla_o_Raton(); + closegraph(); + printf("No se encontr memoria suficiente"); + exit(1); + } +/* +if( ((P_Raton1 = (unsigned char *)malloc( n ))==NULL) || + ((P_Raton2 = (unsigned char *)malloc( n ))==NULL) || + ((P_Raton3 = (unsigned char *)malloc( n ))==NULL) || + ((P_Raton4 = (unsigned char *)malloc( n ))==NULL) ) { + Imprime_Estaticos( SIN_CVN, "cd_in.img"); + Espera_Tecla_o_Raton(); + closegraph(); + cprintf("\n\rImposible encontrar memoria para el cursor del Raton"); + exit(2); + } +*/ +/// +/// +/* +FILE *P_R1, *P_R2, *P_R3, *P_R4; +int PR1_C=0, PR2_C=0, PR3_C=0, PR4_C=0; +P_R1 = fopen("P_Raton1.cpp", "w"); +P_R2 = fopen("P_Raton2.cpp", "w"); +P_R3 = fopen("P_Raton3.cpp", "w"); +P_R4 = fopen("P_Raton4.cpp", "w"); +*/ +/// +/// + if((handle=fopen("CD_in2.IMG", "rb"))==NULL) + { + Fichero_cd_in2(E_O); + +// Imprime_Estaticos( E_O, "cd_in.img"); + Espera_Tecla_o_Raton(); + restorecrtmode(); + printf("No se encontr el archivo de iconos"); + exit(1); + } + + if(10!=getc(handle)) + { + Fichero_cd_in2(E_PCX); + +// Imprime_Estaticos( E_PCX, "cd_in.img"); + Espera_Tecla_o_Raton(); + restorecrtmode(); + printf("El archivo de iconos, esta daado"); + exit(1); + } + + getw(handle); getc(handle); + + esq_x1=getw(handle); esq_y1=getw(handle); + esq_x2=getw(handle); esq_y2=getw(handle); + + ancho=esq_x2-esq_x1+1; + alto =esq_y2-esq_y1+1; + + fseek(handle, 128, 0); + + for(alto=(esq_y2-esq_y1+1); alto>0; alto--) + { + for(ancho=(esq_x2-esq_x1+1); ancho>0; ) + { + byte=getc(handle); + if(byte<=0xC0) + { + + if( ancho>=272 && ancho <=318 && alto >=152 && alto <= 198 ) { + Posicion[0] ++; + Icono[ Posicion[0] ] = byte; + } else + if( ancho>=224 && ancho <=270 && alto >=152 && alto <= 198 ) { + Posicion[1] ++; + Icono[ Posicion[1]+2209*1 ] = byte; + } else + if( ancho>=176 && ancho <=222 && alto >=152 && alto <= 198 ) { + Posicion[2] ++; + Icono[ Posicion[2]+2209*2 ] = byte; + } else + if( ancho>=128 && ancho <=174 && alto >=152 && alto <= 198 ) { + Posicion[3] ++; + Icono[ Posicion[3]+2209*3 ] = byte; + } else + if( ancho>=80 && ancho <=126 && alto >=152 && alto <= 198 ) { + Posicion[4] ++; + Icono[ Posicion[4]+2209*4 ] = byte; + } else + if( ancho>=32 && ancho <=78 && alto >=152 && alto <= 198 ) { + Posicion[5] ++; + Icono[ Posicion[5]+2209*5 ] = byte; + } else + +//////////////////////////////////////////////////////////////////////////////////// + + if( ancho>=272 && ancho <=318 && alto >=104 && alto <= 150 ) { + Posicion[6] ++; + Icono[ Posicion[6]+2209*6 ] = byte; + } else + if( ancho>=224 && ancho <=270 && alto >=104 && alto <= 150 ) { + Posicion[7] ++; + Icono[ Posicion[7]+2209*7 ] = byte; + } else + if( ancho>=176 && ancho <=222 && alto >=104 && alto <= 150 ) { + Posicion[8] ++; + Icono[ Posicion[8]+2209*8 ] = byte; + } else + if( ancho>=128 && ancho <=174 && alto >=104 && alto <= 150 ) { + Posicion[9] ++; + Icono[ Posicion[9]+2209*9 ] = byte; + } else + if( ancho>=80 && ancho <=126 && alto >=104 && alto <= 150 ) { + Posicion[10] ++; + Icono[ Posicion[10]+2209*10 ] = byte; + } else + if( ancho>=32 && ancho <=78 && alto >=104 && alto <= 150 ) { + Posicion[11] ++; + Icono[ Posicion[11]+2209*11] = byte; + } else + +//////////////////////////////////////////////////////////////////////////////////// + + if( ancho>=272 && ancho <=318 && alto >=56 && alto <= 102 ) { + Posicion[12] ++; + Icono[ Posicion[12]+2209*12 ] = byte; + } else + if( ancho>=224 && ancho <=270 && alto >=56 && alto <= 102 ) { + Posicion[13] ++; + Icono[ Posicion[13]+2209*13 ] = byte; + } else + if( ancho>=176 && ancho <=222 && alto >=56 && alto <= 102 ) { + Posicion[14] ++; + Icono[ Posicion[14]+2209*14 ] = byte; + } else + if( ancho>=128 && ancho <=174 && alto >=56 && alto <= 102 ) { + Posicion[15] ++; + Icono[ Posicion[15]+2209*15 ] = byte; + } else + if( ancho>=80 && ancho <=126 && alto >=56 && alto <= 102 ) { + Posicion[16] ++; + Icono[ Posicion[16]+2209*16 ] = byte; + } else + if( ancho>=32 && ancho <=78 && alto >=56 && alto <= 102 ) { + Posicion[17] ++; + Icono[ Posicion[17]+2209*17] = byte; + } else + +//////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////// + + if( ancho>=274/*279*/ && ancho <=/*318*/316 && alto >= /*8*/11 && alto <= 29 ) { + // Flecha Izquierda +// putpixel( 385 +43+ (279-ancho), 30 + 24 + (11-alto), byte); +putpixel( ancho + 120, alto + 24, byte ); + } else + if( ancho>=/*272*/276 && ancho <=318/*313*/ && alto >= /*32*/35 && alto <= 52 ) { + // Flecha Derecha +// putpixel( 385 +48+ (276-ancho), 57 + 26 + (35-alto), byte); +putpixel( ancho + 120, alto + 32, byte ); +} +//// } else +// if( ancho>=251 && ancho <=270 && alto >= 14 && alto <= 54 ) { +// // Flecha Arriba +// putpixel( 235 + (248-ancho), 420 + (8-alto), byte); +// putpixel( 385 + (248-ancho), 360 + (8-alto), byte); +// } else +// if( ancho>=/*224*/227 && ancho <= 245 && alto >= /*8*/12 && alto <= /*54*/49 ) { +// // Flecha Abajo +// putpixel( 235 - 1 + (224-ancho), 470 + (8-alto), byte); +// putpixel( 385 - 1 + (224-ancho), 415 -2 + (8-alto), byte); +// } else +/* + if( ancho>=180 && ancho <= 220 && alto >= 12 && alto <= 52 ) { + // Punteros del Raton... + putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); + } +*/ + if( ancho>=180 && ancho <= 199 && alto >= 12 && alto <= 31 ) { +//// // Punteros del Raton... + PR1++; + P_Raton1[/*(199-ancho) + 20*(31-alto)*/PR1] = byte; +////// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); +/////* +////Mete(P_R1, byte); +////PR1_C ++ ; if ( PR1_C == 6 ) { PR1_C=0; fprintf(P_R1, "\n"); } +////*/ + } else + if( ancho>=201 && ancho <= 220 && alto >= 12 && alto <= 31 ) { +//// // Punteros del Raton... + PR2++; + P_Raton2[/*(220-ancho) + 20*(31-alto)*/PR2] = byte; +///// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); +/////* +////Mete(P_R2, byte); +////PR2_C ++ ; if ( PR2_C == 11 ) { PR2_C=0; fprintf(P_R2, "\n"); } +////*/ + } else + if( ancho>=180 && ancho <= 199 && alto >= 33 && alto <= 52 ) { +//// // Punteros del Raton... + PR3++; + P_Raton3[/*(199-ancho) + 20*(52-alto)*/PR3] = byte; +////// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); +/////* +////Mete(P_R3, byte); +////PR3_C ++ ; if ( PR3_C == 6 ) { PR3_C=0; fprintf(P_R3, "\n"); } +////*/ + } else + if( ancho>=201 && ancho <= 220 && alto >= 33 && alto <= 52 ) { +//// // Punteros del Raton... + PR4++; + P_Raton4[/*(220-ancho) + 20*(52-alto)*/PR4] = byte; +////// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); +/////* +////Mete(P_R4, byte); +////PR4_C ++ ; if ( PR4_C == 6 ) { PR4_C=0; fprintf(P_R4, "\n"); } +////*/ + } + +//////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////// + + +///////////////// +// putpixel( (10+ancho), (10+alto), byte); +///////////////// + ancho--; + } + else + { + contador=byte&0x3F; byte=getc(handle); + for(; contador>0; contador--) + { + // *dir_vga++=byte; + if( ancho>=272 && ancho <=318 && alto >=152 && alto <= 198 ) { + Posicion[0] ++; + Icono[ Posicion[0] ] = byte; + } else + if( ancho>=224 && ancho <=270 && alto >=152 && alto <= 198 ) { + Posicion[1] ++; + Icono[ Posicion[1]+2209*1 ] = byte; + } else + if( ancho>=176 && ancho <=222 && alto >=152 && alto <= 198 ) { + Posicion[2] ++; + Icono[ Posicion[2]+2209*2 ] = byte; + } else + if( ancho>=128 && ancho <=174 && alto >=152 && alto <= 198 ) { + Posicion[3] ++; + Icono[ Posicion[3]+2209*3 ] = byte; + } else + if( ancho>=80 && ancho <=126 && alto >=152 && alto <= 198 ) { + Posicion[4] ++; + Icono[ Posicion[4]+2209*4 ] = byte; + } else + if( ancho>=32 && ancho <=78 && alto >=152 && alto <= 198 ) { + Posicion[5] ++; + Icono[ Posicion[5]+2209*5 ] = byte; + } else + + + +//////////////////////////////////////////////////////////////////////////////////// + if( ancho>=272 && ancho <=318 && alto >=104 && alto <= 150 ) { + Posicion[6] ++; + Icono[ Posicion[6]+2209*6 ] = byte; + } else + if( ancho>=224 && ancho <=270 && alto >=104 && alto <= 150 ) { + Posicion[7] ++; + Icono[ Posicion[7]+2209*7 ] = byte; + } else + if( ancho>=176 && ancho <=222 && alto >=104 && alto <= 150 ) { + Posicion[8] ++; + Icono[ Posicion[8]+2209*8 ] = byte; + } else + if( ancho>=128 && ancho <=174 && alto >=104 && alto <= 150 ) { + Posicion[9] ++; + Icono[ Posicion[9]+2209*9 ] = byte; + } else + if( ancho>=80 && ancho <=126 && alto >=104 && alto <= 150 ) { + Posicion[10] ++; + Icono[ Posicion[10]+2209*10 ] = byte; + } else + if( ancho>=32 && ancho <=78 && alto >=104 && alto <= 150 ) { + Posicion[11] ++; + Icono[ Posicion[11]+2209*11] = byte; + } else + +//////////////////////////////////////////////////////////////////////////////////// + if( ancho>=272 && ancho <=318 && alto >=56 && alto <= 102 ) { + Posicion[12] ++; + Icono[ Posicion[12]+2209*12 ] = byte; + } else + if( ancho>=224 && ancho <=270 && alto >=56 && alto <= 102 ) { + Posicion[13] ++; + Icono[ Posicion[13]+2209*13 ] = byte; + } else + if( ancho>=176 && ancho <=222 && alto >=56 && alto <= 102 ) { + Posicion[14] ++; + Icono[ Posicion[14]+2209*14 ] = byte; + } else + if( ancho>=128 && ancho <=174 && alto >=56 && alto <= 102 ) { + Posicion[15] ++; + Icono[ Posicion[15]+2209*15 ] = byte; + } else + if( ancho>=80 && ancho <=126 && alto >=56 && alto <= 102 ) { + Posicion[16] ++; + Icono[ Posicion[16]+2209*16 ] = byte; + } else + if( ancho>=32 && ancho <=78 && alto >=56 && alto <= 102 ) { + Posicion[17] ++; + Icono[ Posicion[17]+2209*17] = byte; + } else + +//////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////// + + if( ancho>=274/*279*/ && ancho <=/*318*/316 && alto >= /*8*/11 && alto <= 29 ) { + // Flecha Izquierda +// putpixel( 385 + 43 + (279-ancho), 30 + 24 + (11-alto), byte); +putpixel( ancho + 120, alto + 24, byte ); + } else + if( ancho>=/*272*/276 && ancho <=318/*313*/ && alto >= /*32*/35 && alto <= 52 ) { + // Flecha Derecha +// putpixel( 385 + 48 + (276-ancho), 57 + 26 + (35-alto), byte); +putpixel( ancho + 120, alto + 32, byte ); + } else +// if( ancho>=251 && ancho <=270 && alto >= 14 && alto <= 54 ) { +// // Flecha Arriba +// putpixel( 235 + (248-ancho), 420 + (8-alto), byte); +// putpixel( 385 + (248-ancho), 360 + (8-alto), byte); +// } else +// if( ancho>=/*224*/227 && ancho <= 245 && alto >= /*8*/12 && alto <= /*54*/49 ) { +// // Flecha Abajo +// putpixel( 235 - 1 + (224-ancho), 470 + (8-alto), byte); +// putpixel( 385 - 1 + (224-ancho), 415 -2 + (8-alto), byte); +// } else +/* + if( ancho>=180 && ancho <= 220 && alto >= 12 && alto <= 52 ) { + // Punteros del Raton... + putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); + } +*/ + if( ancho>=180 && ancho <= 199 && alto >= 12 && alto <= 31 ) { +//// // Punteros del Raton... + PR1++; + P_Raton1[/*(199-ancho) + 20*(31-alto)*/PR1] = byte; +////// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); +/////* +////Mete(P_R1, byte); +////PR1_C ++ ; if ( PR1_C == 6 ) { PR1_C=0; fprintf(P_R1, "\n"); } +////*/ + } else + if( ancho>=201 && ancho <= 220 && alto >= 12 && alto <= 31 ) { +//// // Punteros del Raton... + PR2++; + P_Raton2[/*(220-ancho) + 20*(31-alto)*/PR2] = byte; +////// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); +/////* +////Mete(P_R2, byte); +////PR2_C ++ ; if ( PR2_C == 6 ) { PR2_C=0; fprintf(P_R2, "\n"); } +////*/ + } else + if( ancho>=180 && ancho <= 199 && alto >= 33 && alto <= 52 ) { +//// // Punteros del Raton... + PR3++; + P_Raton3[/*(199-ancho) + 20*(52-alto)*/PR3] = byte; + ///// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); +/////* +////Mete(P_R3, byte); +////PR3_C ++ ; if ( PR3_C == 6 ) { PR3_C=0; fprintf(P_R3, "\n"); } +////*/ + } else + if( ancho>=201 && ancho <= 220 && alto >= 33 && alto <= 52 ) { +//// // Punteros del Raton... + PR4++; + P_Raton4[/*(220-ancho) + 20*(52-alto)*/PR4] = byte; +///// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); +/////* +////Mete(P_R4, byte); +////PR4_C ++ ; if ( PR4_C == 6 ) { PR4_C=0; fprintf(P_R4, "\n"); } +////*/ + } +//////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////// + +///////////////// +// putpixel( (10+ancho), (10+alto), byte); +///////////////// + ancho--; + } + } + } + } + getc(handle); + +// for(n=0; n<256*3; n++) dac[n]=getc(handle) >> 2; + for(n=0; n<256*3; n++) + if( n >= (256-16)*3 ) + dac[n]=getc(handle) >> 2; + else + getc(handle); + + fclose(handle); + +/* +fclose(P_R1); +fclose(P_R2); +fclose(P_R3); +fclose(P_R4); +*/ + +} + +void Coloca_Iconos_Dos_Windows(void){ + +int x, y, i; + +for( y = 0; y <= (46-1); y++ ) + for( x = 1; x <= 46; x++ ) { + putpixel( 523 + x, 37+y, Icono[ x + (47*y) + (2209*11) ] ); + + putpixel( 583 + x, 37+y, Icono[ x + (47*y) + (2209*17) ] ); + } + +} + + +void Coloca_Iconos(int Start_Icon){ + +int x, y, i; +char Icon_inx[] = { Juegos, Texto, Musica, Dibujo, Util, Base, Hoja, + Red, TC, Scanner, News, Zip, Peli, Varios, CD, Ayuda }; + +Start_Icon--; + +for( y = 0; y <= (46-1); y++ ) + for( x = 1; x <= 46; x++ ) { + + putpixel( 453 + x, 37+y, Icono[ x + (47*y) + (2209*Icon_inx[Start_Icon]) ] ); + + } + +} + +void Mete(FILE *P_R, int Color) { + + char Buffer[80]; + + switch( Color ) { + case 255: + sprintf( Buffer, "*P_Ratonx++ = BLANCO"); + break; + case 240: + sprintf( Buffer, "*P_Ratonx++ = NEGRO"); + break; + case 253: + sprintf( Buffer, "*P_Ratonx++ = GRIS_CLARO"); + break; + case 249: + sprintf( Buffer, "*P_Ratonx++ = UNKNOW"); + break; + case 250: + sprintf( Buffer, "*P_Ratonx++ = AZUL"); + break; + + default: + sprintf( Buffer, "*P_Ratonx++ = %d", Color); + } + + fprintf( P_R, "%-24s; ", Buffer ); + + +} \ No newline at end of file diff --git a/CD_IN/CD_ICONS.H b/CD_IN/CD_ICONS.H new file mode 100644 index 0000000..0fdee06 --- /dev/null +++ b/CD_IN/CD_ICONS.H @@ -0,0 +1,16 @@ +#define Juegos 0 +#define Musica 1 +#define Texto 2 +#define Dibujo 3 +#define Varios 4 +#define Ayuda 5 +#define CD 6 +#define Scanner 7 +#define Util 8 +#define TC 9 +#define Red 10 +#define Base 12 +#define Hoja 13 +#define News 14 +#define Peli 15 +#define Zip 16 diff --git a/CD_IN/CD_IN.EXE b/CD_IN/CD_IN.EXE new file mode 100644 index 0000000..32aed15 Binary files /dev/null and b/CD_IN/CD_IN.EXE differ diff --git a/CD_IN/CD_IN.IMG b/CD_IN/CD_IN.IMG new file mode 100644 index 0000000..930197c --- /dev/null +++ b/CD_IN/CD_IN.IMG @@ -0,0 +1,213 @@ +* BLANCO 255 +* Gris_C 253 +* Gris_F 254 +* NEGRO 240 +* Amarillo 251 +* Rosa 241 +* Rojo 242 +* Azul 250 +* UNKNOW 249 + +#1 + +***** Botones para elegir el tipo de ITEM a mirar... +!1, 10 +***** Botones para seleccionar DOS / WINDOWS +$ 575, 30, 635, 90, 253, 255, 254, 5, 1, 00, 17 +$ 515, 30, 575, 90, 253, 255, 254, 5, 1, 00, 32 + +**** Retroceder, Avanzar, en los anteriores iconos +$ 385, 30, 445, 58, 253, 255, 254, 3, 1, 00, 115 +$ 385, 62, 445, 90, 253, 255, 254, 3, 1, 00, 116 + +**** Creditos +$ 195, 447, 380, 475, 253, 255, 254, 3, 1, 00, 46 +**** Salir +$ 5, 447, 190, 475, 253, 255, 254, 3, 1, 00, 31 + +**** Aadir, Borrar, Editar Comentario +$ 5, 30, 125, 58, 253, 255, 254, 3, 1, 00, 30 +$ 130, 30, 250, 58, 253, 255, 254, 3, 1, 00, 48 +$ 255, 30, 380, 58, 253, 255, 254, 3, 1, 00, 18 + +**** Boton donde se muestran los iconos disponibles +$ 445, 30, 505, 90, 253, 255, 254, 5, 1, 00, 120 + + +1 +***** Pantalla inicial +& 1, 1, 639, 479, 253, 255, 254, 2, 2 +& 5, 5, 635, 25, 240, 254, 255, 2, 2 + +| 10, 7, 2, 5, 0, 255, Utilidad de introducin de datos para CD_OUT Jos David Guilln 1995 (c), +| 11, 8, 2, 5, 0, 251, Utilidad de introducin de datos para CD_OUT Jos David Guilln 1995 (c), + + +***** Cuadro para el comentario... +& 385, 95, 635, 475, 250, 255, 254, 2, 1 +& 390, 100, 630, 470, 240, 254, 255, 2, 1 + +2 + +| 5, 452, 2, 6, 0, 241, _, +| 6, 453, 2, 6, 0, 0, _, +| 5, 450, 2, 6, 0, 255, S A L I R, +| 6, 451, 2, 6, 0, 0, S A L I R, + +| 195, 452, 2, 6, 0, 241, _, +| 196, 453, 2, 6, 0, 240, _, +| 195, 450, 2, 6, 0, 255, C R E D I T O S, +| 196, 451, 2, 6, 0, 240, C R E D I T O S, + + +| 11, 35, 2, 6, 0, 241, _, +| 12, 36, 2, 6, 0, 0, _, +| 11, 33, 2, 6, 0, 255, A A D I R, +| 12, 34, 2, 6, 0, 0, A A D I R, + +| 136, 35, 2, 6, 0, 241, _, +| 137, 36, 2, 6, 0, 240, _, +| 136, 33, 2, 6, 0, 255, B O R R A R, +| 137, 34, 2, 6, 0, 240, B O R R A R, + +| 257, 39, 2, 4, 0, 241, _, +| 258, 40, 2, 4, 0, 240, _, +| 257, 38, 2, 4, 0, 255, Editar comentario, +| 258, 39, 2, 4, 0, 240, Editar comentario, + +***** Pantalla de Edicion +& 5, 62, 172, 90, 240, 255, 254, 2, 2 +& 172, 62, 230, 90, 240, 255, 254, 2, 2 +& 230, 62, 288, 90, 240, 255, 254, 2, 2 +& 288, 62, 318, 90, 240, 255, 254, 2, 2 +& 318, 62, 350, 90, 240, 255, 254, 2, 2 +& 350, 62, 380, 90, 240, 255, 254, 2, 2 + + + +| 11, 71, 2, 4, 0, 242, Nombre N_Install N_Exe Inst EXE Img, +| 10, 70, 2, 4, 0, 255, Nombre N_Install N_Exe Inst EXE Img, + +** Nombre +& 5, 95, 172, 330, 240, 255, 254, 2, 2 +** Nombre Install +& 172, 95, 230, 330, 240, 255, 254, 2, 2 +** Nombre Exe +& 230, 95, 288, 330, 240, 255, 254, 2, 2 +** Instalable +& 288, 95, 318, 330, 240, 255, 254, 2, 2 +** Ejecutable +& 318, 95, 350, 330, 240, 255, 254, 2, 2 +** Imagen +& 350, 95, 380, 330, 240, 255, 254, 2, 2 +*** +| 11, 335, 2, 5, 0, 255, Directorio, +| 12, 336, 2, 5, 0, 240, Directorio, +& 120, 335, 380, 355, 240, 255, 254, 2, 2 +| 11, 355, 2, 5, 0, 255, Nombre Imagen, +| 12, 356, 2, 5, 0, 240, Nombre Imagen, +& 120, 355, 178, 375, 240, 255, 254, 2, 2 + +**** Tipos de Instalacin +| 200, 390, 2, 4, 1, 255, Tipos de, +| 201, 391, 2, 4, 1, 240, Tipos de, + +| 210, 375, 2, 4, 1, 255, instalacin, +| 211, 376, 2, 4, 1, 240, instalacin, + +& 226, 360, 380, 442, 250, 255, 254, 2, 2 +& 231, 365, 375, 437, 240, 254, 255, 2, 2 +| 231, 370, 2, 4, 0, 255, 1 Imagen de VGA_COPY, +| 231, 380, 2, 4, 0, 255, 2 Descompresor ARJ, +| 231, 390, 2, 4, 0, 255, 3 Descompresor ZIP, +| 231, 400, 2, 4, 0, 255, 4 XCopy, +| 231, 410, 2, 4, 0, 255, 5 Programa propio, +| 231, 420, 2, 4, 0, 255, 6 No Instalable, + +**** Informacin adicional +& 5, 380, 190, 442, 250, 255, 254, 2, 2 +& 10, 385, 185, 437, 240, 254, 255, 2, 2 + + + +************************************************************************ +* * +* MENSAJES DE ERROR <------>---------<----------->--------<------>- * +* -------<-------->_------<-------->-->----------<--------->_----<- * +************************************************************************ +100 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error en asignacin, +| 210, 242, 2, 5, 0, 240, de memoria CONVENCIONAL, +101 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error en asignacin, +| 210, 222, 2, 5, 0, 240, de memoria XMS, +102 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error cargando ICONOS, +| 210, 222, 2, 5, 0, 240, y punteros de RATON..., +103 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error cargando PCX, +| 210, 222, 2, 5, 0, 240, de Fondo., +104 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error cargando ficheros, +| 210, 222, 2, 5, 0, 240, de sonido WAV, +105 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error intentando ejecutar, +| 210, 222, 2, 5, 0, 240, el programa deseado..., +106 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error intentando ejecutar, +| 210, 222, 2, 5, 0, 240, el programa deseado..., +107 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR D E TIPO, +| 210, 222, 2, 5, 0, 240, D E S C O N O C I D O, + +108 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR ABRIENDO, +| 210, 222, 2, 5, 0, 240, FICHERO, +109 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR de ESCRITURA, +| 210, 222, 2, 5, 0, 240, DISCO PROTEGIDO., +110 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR de LECTURA, +| 210, 222, 2, 5, 0, 240, POSIBLE DAO FSICO, +111 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR INTENTANDO, +| 210, 222, 2, 5, 0, 240, CERRAR FICHERO, +112 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR INTENTANDO, +| 210, 222, 2, 5, 0, 240, CARGAR BOTONES, +113 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Icono ha cambiado., +| 210, 222, 2, 5, 0, 240, Cargando nuevo archivo..., + + + + + diff --git a/CD_IN/CD_IN.PRJ b/CD_IN/CD_IN.PRJ new file mode 100644 index 0000000..9295ad4 Binary files /dev/null and b/CD_IN/CD_IN.PRJ differ diff --git a/CD_IN/CD_IN2.CPP b/CD_IN/CD_IN2.CPP new file mode 100644 index 0000000..455ed07 --- /dev/null +++ b/CD_IN/CD_IN2.CPP @@ -0,0 +1,305 @@ +/***************************************************************/ +/* */ +/* Conversin de fuentes de MAKE BOTON en ASCII a fuentes */ +/* para CPP, que pueden ser compilados junto al programa. */ +/* */ +/***************************************************************/ +/* */ +/* MAKE BOTON es un programa realizado por Jos David Guilln */ +/* MB a CPP es una utilidad complementaria a Make Boton por */ +/* Jos David Guilln... */ +/* */ +/***************************************************************/ +/* */ +/* GRACIAS POR UTILIZAR MI SOFTWARE... */ +/* */ +/* JOS DAVID GUILLN (c) 1995 */ +/* */ +/***************************************************************/ + + + +// Debe indicar el directorio exacto de la Cabecera de MAKE BOTON +#include "d:\program\src_dos\libs\make_bot\make_bot.h" // Fuciones de MAKE_BOTON +#include +#include +#include +#include + + + +extern int vez, memoria_asignada, Secuencias, *n_Botones_Secuencia; + struct Make_Boton { int Up, Left, Down, Right; unsigned char Cdf, Cb1, Cb2; unsigned char Ab, Pb; unsigned char Isc, Sc; }; +extern struct Make_Boton far *Botones; +struct Make_Boton Bot_Static; + + + +extern void Libera_Memoria(void);extern void Imprime_Boton(int D_Bord, struct Make_Boton Bot_Imp); + + +// Esta funcin debe ser llamada para la inicializacion de los +// botones en lugar de CARGA_BOTONES(...). +// Para cargar los botones con parametro 0 y para imprimir +// imprimir los estaticos con parametro [ n de secuencia ] +int Fichero_cd_in2(char Dinamicos_Estaticos); + +int Fichero_cd_in2(char Dinamicos_Estaticos) { + +static char vez = 0; + + switch(Dinamicos_Estaticos) { + + case 0: + if( vez == 0 ) { + vez = 1; + atexit( Libera_Memoria ); + } + if ( memoria_asignada == 1 ) { + free(n_Botones_Secuencia); + farfree(Botones); + memoria_asignada = 0; + } + int SiZe_BoToN = 0; + if ( (Botones = (struct Make_Boton far *)farcalloc(1, sizeof( struct Make_Boton ) )) == NULL) + return SIN_MEMORIA; + memoria_asignada = 1; + + Secuencias = 1; + if (( n_Botones_Secuencia = (int *) malloc( sizeof(int)*Secuencias ) ) == NULL) { + printf("\nNo Hay suficiente Memoria, ni para un Boton\n\n"); + return SIN_MEMORIA; + } + n_Botones_Secuencia[1 - 1] = 10; + SiZe_BoToN += ( sizeof( struct Make_Boton ) * 10); + if ( (Botones = (struct Make_Boton far *)farrealloc(Botones, SiZe_BoToN )) == NULL) { + Secuencias = 1; + return SIN_MEMORIA; + } + memoria_asignada = 1; + Botones [0].Left = 575; Botones [0].Up = 30;Botones [0]. Right = 635;Botones [0]. Down = 90; + Botones [0]. Cdf = 253; Botones [0]. Cb1 = 255; Botones [0]. Cb2 = 254; Botones [0]. Ab = 5; Botones [0]. Pb = 1; Botones [0]. Isc = 0; Botones [0]. Sc = 17; + Botones [1].Left = 515; Botones [1].Up = 30;Botones [1]. Right = 575;Botones [1]. Down = 90; + Botones [1]. Cdf = 253; Botones [1]. Cb1 = 255; Botones [1]. Cb2 = 254; Botones [1]. Ab = 5; Botones [1]. Pb = 1; Botones [1]. Isc = 0; Botones [1]. Sc = 32; + Botones [2].Left = 385; Botones [2].Up = 30;Botones [2]. Right = 445;Botones [2]. Down = 58; + Botones [2]. Cdf = 253; Botones [2]. Cb1 = 255; Botones [2]. Cb2 = 254; Botones [2]. Ab = 3; Botones [2]. Pb = 1; Botones [2]. Isc = 0; Botones [2]. Sc = 115; + Botones [3].Left = 385; Botones [3].Up = 62;Botones [3]. Right = 445;Botones [3]. Down = 90; + Botones [3]. Cdf = 253; Botones [3]. Cb1 = 255; Botones [3]. Cb2 = 254; Botones [3]. Ab = 3; Botones [3]. Pb = 1; Botones [3]. Isc = 0; Botones [3]. Sc = 116; + Botones [4].Left = 195; Botones [4].Up = 447;Botones [4]. Right = 380;Botones [4]. Down = 475; + Botones [4]. Cdf = 253; Botones [4]. Cb1 = 255; Botones [4]. Cb2 = 254; Botones [4]. Ab = 3; Botones [4]. Pb = 1; Botones [4]. Isc = 0; Botones [4]. Sc = 46; + Botones [5].Left = 5; Botones [5].Up = 447;Botones [5]. Right = 190;Botones [5]. Down = 475; + Botones [5]. Cdf = 253; Botones [5]. Cb1 = 255; Botones [5]. Cb2 = 254; Botones [5]. Ab = 3; Botones [5]. Pb = 1; Botones [5]. Isc = 0; Botones [5]. Sc = 31; + Botones [6].Left = 5; Botones [6].Up = 30;Botones [6]. Right = 125;Botones [6]. Down = 58; + Botones [6]. Cdf = 253; Botones [6]. Cb1 = 255; Botones [6]. Cb2 = 254; Botones [6]. Ab = 3; Botones [6]. Pb = 1; Botones [6]. Isc = 0; Botones [6]. Sc = 30; + Botones [7].Left = 130; Botones [7].Up = 30;Botones [7]. Right = 250;Botones [7]. Down = 58; + Botones [7]. Cdf = 253; Botones [7]. Cb1 = 255; Botones [7]. Cb2 = 254; Botones [7]. Ab = 3; Botones [7]. Pb = 1; Botones [7]. Isc = 0; Botones [7]. Sc = 48; + Botones [8].Left = 255; Botones [8].Up = 30;Botones [8]. Right = 380;Botones [8]. Down = 58; + Botones [8]. Cdf = 253; Botones [8]. Cb1 = 255; Botones [8]. Cb2 = 254; Botones [8]. Ab = 3; Botones [8]. Pb = 1; Botones [8]. Isc = 0; Botones [8]. Sc = 18; + Botones [9].Left = 445; Botones [9].Up = 30;Botones [9]. Right = 505;Botones [9]. Down = 90; + Botones [9]. Cdf = 253; Botones [9]. Cb1 = 255; Botones [9]. Cb2 = 254; Botones [9]. Ab = 5; Botones [9]. Pb = 1; Botones [9]. Isc = 0; Botones [9]. Sc = 120; + break; + case 1: + Bot_Static.Left = 1; Bot_Static.Up = 1; Bot_Static.Right = 639; Bot_Static.Down = 479; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 5; Bot_Static.Up = 5; Bot_Static.Right = 635; Bot_Static.Down = 25; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + setcolor(255); settextstyle( 2, 0, 5); outtextxy( 10, 7, " Utilidad de introducin de datos para CD_OUT Jos David Guilln 1995 (c)" ); + setcolor(251); settextstyle( 2, 0, 5); outtextxy( 11, 8, " Utilidad de introducin de datos para CD_OUT Jos David Guilln 1995 (c)" ); + Bot_Static.Left = 385; Bot_Static.Up = 95; Bot_Static.Right = 635; Bot_Static.Down = 475; Bot_Static.Cdf = 250; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 390; Bot_Static.Up = 100; Bot_Static.Right = 630; Bot_Static.Down = 470; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + break; + case 2: + setcolor(241); settextstyle( 2, 0, 6); outtextxy( 5, 452, " _" ); + setcolor(0); settextstyle( 2, 0, 6); outtextxy( 6, 453, " _" ); + setcolor(255); settextstyle( 2, 0, 6); outtextxy( 5, 450, " S A L I R" ); + setcolor(0); settextstyle( 2, 0, 6); outtextxy( 6, 451, " S A L I R" ); + setcolor(241); settextstyle( 2, 0, 6); outtextxy( 195, 452, " _" ); + setcolor(240); settextstyle( 2, 0, 6); outtextxy( 196, 453, " _" ); + setcolor(255); settextstyle( 2, 0, 6); outtextxy( 195, 450, " C R E D I T O S" ); + setcolor(240); settextstyle( 2, 0, 6); outtextxy( 196, 451, " C R E D I T O S" ); + setcolor(241); settextstyle( 2, 0, 6); outtextxy( 11, 35, "_" ); + setcolor(0); settextstyle( 2, 0, 6); outtextxy( 12, 36, "_" ); + setcolor(255); settextstyle( 2, 0, 6); outtextxy( 11, 33, "A A D I R" ); + setcolor(0); settextstyle( 2, 0, 6); outtextxy( 12, 34, "A A D I R" ); + setcolor(241); settextstyle( 2, 0, 6); outtextxy( 136, 35, "_" ); + setcolor(240); settextstyle( 2, 0, 6); outtextxy( 137, 36, "_" ); + setcolor(255); settextstyle( 2, 0, 6); outtextxy( 136, 33, "B O R R A R" ); + setcolor(240); settextstyle( 2, 0, 6); outtextxy( 137, 34, "B O R R A R" ); + setcolor(241); settextstyle( 2, 0, 4); outtextxy( 257, 39, " _" ); + setcolor(240); settextstyle( 2, 0, 4); outtextxy( 258, 40, " _" ); + setcolor(255); settextstyle( 2, 0, 4); outtextxy( 257, 38, " Editar comentario" ); + setcolor(240); settextstyle( 2, 0, 4); outtextxy( 258, 39, " Editar comentario" ); + Bot_Static.Left = 5; Bot_Static.Up = 62; Bot_Static.Right = 172; Bot_Static.Down = 90; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 172; Bot_Static.Up = 62; Bot_Static.Right = 230; Bot_Static.Down = 90; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 230; Bot_Static.Up = 62; Bot_Static.Right = 288; Bot_Static.Down = 90; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 288; Bot_Static.Up = 62; Bot_Static.Right = 318; Bot_Static.Down = 90; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 318; Bot_Static.Up = 62; Bot_Static.Right = 350; Bot_Static.Down = 90; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 350; Bot_Static.Up = 62; Bot_Static.Right = 380; Bot_Static.Down = 90; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + setcolor(242); settextstyle( 2, 0, 4); outtextxy( 11, 71, " Nombre N_Install N_Exe Inst EXE Img" ); + setcolor(255); settextstyle( 2, 0, 4); outtextxy( 10, 70, " Nombre N_Install N_Exe Inst EXE Img" ); + Bot_Static.Left = 5; Bot_Static.Up = 95; Bot_Static.Right = 172; Bot_Static.Down = 330; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 172; Bot_Static.Up = 95; Bot_Static.Right = 230; Bot_Static.Down = 330; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 230; Bot_Static.Up = 95; Bot_Static.Right = 288; Bot_Static.Down = 330; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 288; Bot_Static.Up = 95; Bot_Static.Right = 318; Bot_Static.Down = 330; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 318; Bot_Static.Up = 95; Bot_Static.Right = 350; Bot_Static.Down = 330; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 350; Bot_Static.Up = 95; Bot_Static.Right = 380; Bot_Static.Down = 330; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + setcolor(255); settextstyle( 2, 0, 5); outtextxy( 11, 335, "Directorio" ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 12, 336, "Directorio" ); + Bot_Static.Left = 120; Bot_Static.Up = 335; Bot_Static.Right = 380; Bot_Static.Down = 355; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + setcolor(255); settextstyle( 2, 0, 5); outtextxy( 11, 355, "Nombre Imagen" ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 12, 356, "Nombre Imagen" ); + Bot_Static.Left = 120; Bot_Static.Up = 355; Bot_Static.Right = 178; Bot_Static.Down = 375; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + setcolor(255); settextstyle( 2, 1, 4); outtextxy( 200, 390, "Tipos de" ); + setcolor(240); settextstyle( 2, 1, 4); outtextxy( 201, 391, "Tipos de" ); + setcolor(255); settextstyle( 2, 1, 4); outtextxy( 210, 375, "instalacin" ); + setcolor(240); settextstyle( 2, 1, 4); outtextxy( 211, 376, "instalacin" ); + Bot_Static.Left = 226; Bot_Static.Up = 360; Bot_Static.Right = 380; Bot_Static.Down = 442; Bot_Static.Cdf = 250; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 231; Bot_Static.Up = 365; Bot_Static.Right = 375; Bot_Static.Down = 437; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + setcolor(255); settextstyle( 2, 0, 4); outtextxy( 231, 370, " 1 Imagen de VGA_COPY" ); + setcolor(255); settextstyle( 2, 0, 4); outtextxy( 231, 380, " 2 Descompresor ARJ" ); + setcolor(255); settextstyle( 2, 0, 4); outtextxy( 231, 390, " 3 Descompresor ZIP" ); + setcolor(255); settextstyle( 2, 0, 4); outtextxy( 231, 400, " 4 XCopy" ); + setcolor(255); settextstyle( 2, 0, 4); outtextxy( 231, 410, " 5 Programa propio" ); + setcolor(255); settextstyle( 2, 0, 4); outtextxy( 231, 420, " 6 No Instalable" ); + Bot_Static.Left = 5; Bot_Static.Up = 380; Bot_Static.Right = 190; Bot_Static.Down = 442; Bot_Static.Cdf = 250; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 10; Bot_Static.Up = 385; Bot_Static.Right = 185; Bot_Static.Down = 437; Bot_Static.Cdf = 240; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 2; + Imprime_Boton(1, Bot_Static); + break; + case 100: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " Error en asignacin" ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 242, " de memoria CONVENCIONAL" ); + break; + case 101: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " Error en asignacin" ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " de memoria XMS" ); + break; + case 102: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " Error cargando ICONOS" ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " y punteros de RATON..." ); + break; + case 103: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " Error cargando PCX" ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " de Fondo." ); + break; + case 104: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " Error cargando ficheros" ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " de sonido WAV" ); + break; + case 105: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " Error intentando ejecutar" ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " el programa deseado..." ); + break; + case 106: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " Error intentando ejecutar" ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " el programa deseado..." ); + break; + case 107: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " ERROR D E TIPO" ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " D E S C O N O C I D O" ); + break; + case 108: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " ERROR ABRIENDO" ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " FICHERO" ); + break; + case 109: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " ERROR de ESCRITURA" ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " DISCO PROTEGIDO." ); + break; + case 110: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " ERROR de LECTURA" ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " POSIBLE DAO FSICO" ); + break; + case 111: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " ERROR INTENTANDO" ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " CERRAR FICHERO" ); + break; + case 112: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " ERROR INTENTANDO" ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " CARGAR BOTONES" ); + break; + case 113: + Bot_Static.Left = 200; Bot_Static.Up = 212; Bot_Static.Right = 440; Bot_Static.Down = 267; Bot_Static.Cdf = 251; Bot_Static.Cb1 = 255; Bot_Static.Cb2 = 254; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + Bot_Static.Left = 205; Bot_Static.Up = 217; Bot_Static.Right = 435; Bot_Static.Down = 262; Bot_Static.Cdf = 253; Bot_Static.Cb1 = 254; Bot_Static.Cb2 = 255; Bot_Static.Ab = 2; Bot_Static.Pb = 1; + Imprime_Boton(1, Bot_Static); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " Icono ha cambiado." ); + setcolor(240); settextstyle( 2, 0, 5); outtextxy( 210, 222, " Cargando nuevo archivo..." ); + break; + default: + break; + } + +return 1; + +} diff --git a/CD_IN/CD_IN2.IMG b/CD_IN/CD_IN2.IMG new file mode 100644 index 0000000..05c09e6 Binary files /dev/null and b/CD_IN/CD_IN2.IMG differ diff --git a/CD_IN/CD_PCX.CPP b/CD_IN/CD_PCX.CPP new file mode 100644 index 0000000..21f9b73 --- /dev/null +++ b/CD_IN/CD_PCX.CPP @@ -0,0 +1,128 @@ +///////////////////////////// FICHEROS A INCLUIR ///////////////////////////// +#include +#include +#include +#include +#include // Para getch(); +#include // Para outtextxy(...); y cleardevice(...); +#include "cd_error.h" +#include "..\..\jd_lib\make_bot.h" // Fuciones de MAKE_BOTON +////////////////////////////////// VARIABLES ///////////////////////////////// + +char far *dir_vga; +int ancho; +int alto; +char bits_pixel; +FILE *handle; + +char dibujo[15]; +char dac[256*3]; + +//////////////////////// DECLARACIONES DE FUNCIONES ////////////////////////// + +void dibujo_640_x_480_256_c(void); +void asigna_modo_video(char); + +extern "C" +{ + int SET_VESA(int); + void CHANGE_BANK(int); + void ENCIENDE_PANTALLA(char *); + void APAGA_PANTALLA(char *); +} + +///////////////////////////////// PROGRAMA /////////////////////////////////// +void Inicializa_Dibujo(void) +{ + int esq_x1, esq_y1, esq_x2, esq_y2; + char string[80] = "cd_out0"; + + randomize(); + + string[7] = (unsigned char)(random(7)+ '0'); + string[8] = '.'; + string[9] = 'P'; + string[10] = 'C'; + string[11] = 'X'; + string[12] = '\0'; + + + + if((handle=fopen(/*"CD_OUT1.IMG"*/string, "rb"))==NULL) + { + Imprime_Estaticos( E_O, "cd_out.img"); // Imprime botones estaticos 'Seccion 2' + Espera_Tecla_o_Raton(); + restorecrtmode(); + printf("No se encontr el archivo especificado"); + exit(1); + } + + if(10!=getc(handle)) + { + Imprime_Estaticos( E_PCX, "cd_out.img"); // Imprime botones estaticos 'Seccion 2' + Espera_Tecla_o_Raton(); + restorecrtmode(); + printf("El archivo especificado no es un fichero PCX"); + exit(1); + } + + getw(handle); bits_pixel=getc(handle); + + esq_x1=getw(handle); esq_y1=getw(handle); + esq_x2=getw(handle); esq_y2=getw(handle); + + ancho=esq_x2-esq_x1+1; + alto =esq_y2-esq_y1+1; + + if(ancho!=640 || alto!=480 || bits_pixel!=8) + { + Imprime_Estaticos( E_PCX, "cd_out.img"); // Imprime botones estaticos 'Seccion 2' + Espera_Tecla_o_Raton(); + restorecrtmode(); + printf("El fichero especificado no es un dibujo de 640 x 480 en 256 colores"); + exit(1); + } + +// APAGA_PANTALLA(dac); + dibujo_640_x_480_256_c(); +// ENCIENDE_PANTALLA(dac); + +} + +void dibujo_640_x_480_256_c(void) +{ + unsigned char byte, contador; + int bank, n; + + fseek(handle, 128, 0); + + bank=0; (long)dir_vga=0xA0000000L; + + for(alto=480; alto>0; alto--) + { + for(ancho=640; ancho>0; ) + { + byte=getc(handle); + if(byte<=0xC0) + { + *dir_vga++=byte; ancho--; + if((long)dir_vga==0xA0000000L) { bank++; CHANGE_BANK(bank); } + } + else + { + contador=byte&0x3F; byte=getc(handle); + for(; contador>0; contador--) + { + *dir_vga++=byte; ancho--; + if((long)dir_vga==0xA0000000L) { bank++; CHANGE_BANK(bank); } + } + } + } + } + getc(handle); + +// for(n=0; n<256*3; n++) dac[n]=getc(handle) >> 2; + for(n=0; n<(256-16)*3; n++) dac[n]=getc(handle) >> 2; + + fclose(handle); +} diff --git a/CD_IN/CD_RATON.CPP b/CD_IN/CD_RATON.CPP new file mode 100644 index 0000000..747b052 --- /dev/null +++ b/CD_IN/CD_RATON.CPP @@ -0,0 +1,215 @@ +/////////////////////////////////////////////////////////////////////////// +///// Nombre: Craton.cpp /// +///// Modulo: Perteneciente a JD_FONTS.CPP /// +//// Descripcin: Utilidades para el manejo del raton /// +//// /// +//// Autor: ( Ver Pc-Mania n 20 ) /// +//// Autor puntero del raton: Jos David Guilln Dominguez /// +//// Fecha: ( Desconocida ) /// +//// /// +//// Compilador Borland C++ 3.0 ( Creacin original en Turbo C 2.0 ) /// +/////////////////////////////////////////////////////////////////////////// + +#include +#include + +void desactiva_raton(void); +void activa_raton(void); +void inicializa_raton_grafico(int x1, int y1, int x2, int y2, int px, int py); +void Anclar_Raton(void); +int Espera_Tecla_o_Raton(void); + + +int raton=0; +int x_raton; +int y_raton; +int boton_izq; +int boton_der; +extern int PunteroRaton; +int dir_raton [32+32] = { + +// 0x3FFF, /* 1 1 1 1 1 1 1 1 1 1 1 1 1 1*/ +// 0x1FFF, /* 1 1 1 1 1 1 1 1 1 1 1 1 1*/ +// 0x0FFF, /* 1 1 1 1 1 1 1 1 1 1 1 1*/ +// 0x07FF, /* 1 1 1 1 1 1 1 1 1 1 1*/ +// 0x03FF, /* 1 1 1 1 1 1 1 1 1 1*/ +// 0x07FF, /* 1 1 1 1 1 1 1 1 1 1 1*/ +// 0xC3FF, /*1 1 1 1 1 1 1 1 1 1 1 1*/ + + 0x007F, /* 1 1 1 1 1 1 1*/ + 0x00FF, /* 1 1 1 1 1 1 1 1*/ + 0x01FF, /* 1 1 1 1 1 1 1 1 1*/ + 0x01FF, /* 1 1 1 1 1 1 1 1 1*/ + 0x00FF, /* 1 1 1 1 1 1 1 1*/ + 0x007F, /* 1 1 1 1 1 1 1*/ + 0x18FF, /* 1 1 1 1 1 1 1 1 1 1*/ + +// 0xFC7F, /*1 1 1 1 1 1 1 1 1 1 1 1 1*/ +// 0xF83F, /*1 1 1 1 1 1 1 1 1 1 1*/ +// 0xF01F, /*1 1 1 1 1 1 1 1 1*/ +// 0xE00F, /*1 1 1 1 1 1 1*/ +// 0xE00F, /*1 1 1 1 1 1 1*/ +// 0xF83F, /*1 1 1 1 1 1 1 1 1 1 1*/ +// 0xF83F, /*1 1 1 1 1 1 1 1 1 1 1*/ + + 0x800F, /*1 1 1 1 1*/ + 0x8083, /*1 1 1*/ + 0x8001, /*1 1*/ + 0xF810, /*1 1 1 1 1 1 1*/ + 0x8810, /*1 1 1 1*/ + 0x8811, /*1 1 1 1*/ + 0x8003, /*1 1 1*/ + 0x8007, /*1 1 1 1*/ + 0x800F, /*1 1 1 1 1*/ + +// 0x0000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x4000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x6000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x7000, /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x7800, /*0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x3000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x1800, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + + 0x0000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + 0x7E00, /*0 0 0 0 0 0 0 0 0 0*/ + 0x7C00, /*0 0 0 0 0 0 0 0 0 0 0*/ + 0x7C00, /*0 0 0 0 0 0 0 0 0 0 0*/ + 0x7E00, /*0 0 0 0 0 0 0 0 0 0*/ + 0x6700, /*0 0 0 0 0 0 0 0 0 0 0*/ + 0x0200, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + + +// 0x0100, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x0380, /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x07C0, /*0 0 0 0 0 0 0 0 0 0 0*/ +// 0x0FE0, /*0 0 0 0 0 0 0 0 0*/ +// 0x0380, /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x0380, /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x0000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + + 0x0000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + 0x3E70, /*0 0 0 0 0 0 0 0*/ + 0x0248, /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ + 0x0244, /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ + 0x0242, /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ + 0x2244, /*0 0 0 0 0 0 0 0 0 0 0 0*/ + 0x2248, /*0 0 0 0 0 0 0 0 0 0 0 0*/ + 0x3E70, /*0 0 0 0 0 0 0 0*/ + 0x0000 /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + }; + + +void inicializa_raton_grafico(int x1, int y1, int x2, int y2, int px, int py) +{ + struct SREGS seg; + union REGS ent, sal; + long dir; + + ent.x.ax = 0; + int86(0x33, &ent, &sal); /* averigua si hay ratn conectado */ + + raton = sal.x.ax; /* indica a la variable global el estado + del raton */ + + if(raton!=0) { + + + ent.x.ax = 15; + ent.x.cx = 5; + ent.x.dx = 11; + int86(0x33, &ent, &sal); /* fija la razn mickey/pixel */ + + ent.x.ax = 7; + ent.x.cx = x1; + ent.x.dx = x2; + int86(0x33, &ent, &sal); /* fija la posicin mx. y mn. horizontal */ + + ent.x.ax = 8; + ent.x.cx = y1; + ent.x.dx = y2; + int86(0x33, &ent, &sal); /* fija la posicin mx. y mn. vertical */ + + if(!PunteroRaton) { + dir = (long)dir_raton; + ent.x.ax = 9; + ent.x.bx = 0; + ent.x.cx = 0; + ent.x.dx = (int) dir; + seg.es = (int) (dir >> 16); + int86x(0x33, &ent, &sal, &seg); /* asigna un cursor diferente */ + } + + ent.x.ax = 4; + ent.x.cx = px; + x_raton=ent.x.cx >> 1; + ent.x.dx = py; + y_raton=ent.x.dx; + int86(0x33, &ent, &sal); /* fija la posicin del ratn */ + + ent.x.ax = 1; + int86(0x33, &ent, &sal); /* muestra el puntero del ratn */ + } +} + +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 Anclar_Raton(void){ + union REGS ent, sal; + do { + ent.x.ax = 3; + int86(0x33, &ent, &sal); + boton_izq = sal.x.bx & 1; + boton_der = (sal.x.bx >> 1) & 1; + } while(boton_izq==1 || boton_der==1); +} + +int Espera_Tecla_o_Raton(void){ + union REGS ent, sal; + + ent.x.ax = 3; + + do{ + int86(0x33, &ent, &sal); // lee posicin y estados del botn + boton_izq = sal.x.bx & 1; + boton_der = (sal.x.bx >> 1) & 1; + x_raton = sal.x.cx; + y_raton = sal.x.dx; + + }while( boton_izq == 0 && boton_der == 0 && kbhit()==0 ); + + + + ///////////////////////////////////////// + // RETURN Derecho Izquierdo // + // // + // 0 0 0 // + // 1 1 0 // + // 2 0 1 // + // 3 1 1 // + // // + ///////////////////////////////////////// + int Que; + + if ( boton_der==0 && boton_izq==0 ) Que = 0; + if ( boton_der==1 && boton_izq==0 ) Que = 1; + if ( boton_der==0 && boton_izq==1 ) Que = 2; + if ( boton_der==1 && boton_izq==1 ) Que = 3; + + return Que; +} diff --git a/CD_IN/CD_RATON.H b/CD_IN/CD_RATON.H new file mode 100644 index 0000000..ac19ee5 --- /dev/null +++ b/CD_IN/CD_RATON.H @@ -0,0 +1,8 @@ +extern void desactiva_raton(void); +extern void activa_raton(void); +extern void inicializa_raton_grafico(int x1, int y1, int x2, int y2, int px, int py); +extern void Anclar_Raton(void); +extern int Espera_Tecla_o_Raton(void); + + +extern int raton, x_raton, y_raton, boton_izq, boton_der, PunteroRaton; diff --git a/CD_IN/CD_STOCK.CPP b/CD_IN/CD_STOCK.CPP new file mode 100644 index 0000000..ba3c449 --- /dev/null +++ b/CD_IN/CD_STOCK.CPP @@ -0,0 +1,883 @@ +#define SV_REF_X + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include "c:\things\borlandc\jd_lib\jd_graph.h" +#include "sv_util.h" +#include "sv_graph.h" +#include "sv_ref_x.h" + + +#define Letra_Boton setcolor(1); +#define Azul 1 +#define Texto_Normal setcolor(63); +#define Texto_Negrita setcolor(0); + +extern int x_raton, y_raton, raton; +extern int boton_izq, boton_der; + +extern void desactiva_raton(void); +extern void activa_raton(void); +extern void Anclar_Raton(void); +extern void inicializa_raton_grafico(int x1, int y1, int x2, int y2, int px, int py); +extern int Espera_Tecla_o_Raton(void); +extern void BEEP(void); + +extern int InputCadenaG(char *s, int numalp, int lmax, int cc, int cf, struct boton Campo); +extern int InputCadenaG_l(char *s, int numalp, int lmax, int cc, int cf, struct boton Campo, int Row); +extern int InputCadenaG_T4(char *s, int numalp, int lmax, int cc, int cf, struct boton Campo, int RoW); + +void PutLineStock(void); +void GetLineStock(void); +void Menu_de_Stock(void); +void AddRecordStock(void); +void PrintLineStock(void); +void Edit_Item_Stock(void); +void Abre_Ficha_Stock(void); +void DeleteRecordStock(void); +void Mueve_Abajo_Stock(void); +void Mueve_Arriba_Stock(void); +void CompruebaLineasStock(void); +void PrintWholeScreenStock(void); +void EditCursorStock(int ShowHide); +void Imprimir_Stock(); +void Poner_a_cero_estructura_actual_Stock(void); +void Recalcula_Porcentaje(int Individual_Seleccionado); + +// void Llena_con_Stock_basicas(void); +extern void Coloca_Nombres_a_botones(void); + + + + + + +// extern int Confirma(char *f1, char *f2, char *f3); +extern int Comprueba_Impresora(void); + + + + + +struct Stock_inx { unsigned int Fin; }; + + +struct Stock_actual { int Ref; long Und_0; long Und_1; }; + +struct Stock_actual Stock1; +struct Stock_actual Stock1_Graficas[10]; +struct Stock_inx Stock1_inx; + +struct boton *PS;//[5] +extern struct boton Comunes[9]; + +FILE *Stock; // Fichero de Stock + + +int CurrRowStock1; +int CurrColStock1; +int CurrTopLineStock; + + + + + +void Menu_de_Stock(void) { + + int finished = 0, key, bpush; + CurrRowStock1 = 1; CurrColStock1 = 1; + + CurrTopLineStock = 1; + + inicializa_raton_grafico(0, 0, 624, 464, 320, 240); + if(raton!=0) desactiva_raton(); + + if( ( PS = (struct boton *) malloc( sizeof(struct boton)*5 ) ) == NULL ) + { + Confirma("Memoria insuficiente", "para crear tablas de", "posisin PS."); + return ; + } + + + cleardevice(); + Dibuja_Pantalla_Stock(PS); + Fuente(SMALL_FONT, 5); + setcolor(NEGRO); + Coloca_Nombres_a_botones(); + setcolor(GRIS_C); + outtextxy(Comunes[3].left, Comunes[3].up, " SWAP" ); + outtextxy(Comunes[3].left, Comunes[3].up+18, " F6 " ); + + + Fuente(SMALL_FONT, 4); + Abre_Ficha_Stock(); + Abre_Ficha_Referencias(); + Carga_Referencias(); + + PrintWholeScreenStock(); + GetLineStock(); + int oldCR1=0, oldCC1=0; + +do{ + +if(oldCR1!=CurrRowStock1 || oldCC1!=CurrColStock1 ) + EditCursorStock(0); + +oldCR1 = CurrRowStock1; oldCC1 = CurrColStock1; + + if(raton!=0) activa_raton(); + Espera_Tecla_o_Raton(); + if(raton!=0) desactiva_raton(); + + if(kbhit()){ + EditCursorStock(1); + key = getch(); + if( isprint(key) || isspace(key) ) { + EditCursorStock(0); + if(key!=13) ungetch(key); + Edit_Item_Stock(); + Recalcula_Porcentaje(1); + EditCursorStock(0); + } else if( key == 0 ) { + switch( (key=getch()) ){ + // Flecha Arriba + case 72: + Mueve_Arriba_Stock(); + Recalcula_Porcentaje(1); + break; + // Flecha Izquierda + case 75: + case 15: + CurrColStock1--; + if ( CurrColStock1<1 ) CurrColStock1=5; + break; + // Flecha Derecha + case 77: + case 9: + CurrColStock1++; + if ( CurrColStock1>5 ) CurrColStock1=1; + break; + // Flecha Abajo + case 80: + Mueve_Abajo_Stock(); + Recalcula_Porcentaje(1); + break; + // Buscar F2 + case 60: +// BuscarStock(); + break; + // Imprimir Stock F5 + case 63: + Imprimir_Stock(); + break; + + // F9 --> AADIR + case 67: +// if( Confirma("AADIR NUEVO STOCK", "INICIAL", "") ) +// if ( Pide_Codigo(SV_CFG.COD_Stock) ) +// AddRecordStock(); + break; + // F10 -> BORRAR + case 68: + if( Confirma("ELIMINAR TOTALMENTE", "STOCK ACTUAL", "") ) +// if ( Pide_Codigo(SV_CFG.COD_Stock) ) + DeleteRecordStock(); + Recalcula_Porcentaje(1); + break; + + // INICIO + case 71: + CurrColStock1 = 1; + break; + // FIN + case 79: + CurrColStock1 = 5; + break; + // RePg + case 73: + // CurrRow = 1; +// + if( CurrTopLineStock > /*28*/26 ) { CurrTopLineStock -= /*28*/26; } else { CurrTopLineStock = 1; } + if( CurrTopLineStock < 1 ) { CurrTopLineStock = 1; } + PrintWholeScreenStock(); + GetLineStock(); + EditCursorStock(0); + Recalcula_Porcentaje(1); + break; +// + // AvPg + case 81: + // CurrRow = 1; +// + CurrTopLineStock += /*28*/26; + if ( (CurrTopLineStock+CurrRowStock1) > Stock1_inx.Fin) { CurrTopLineStock = Stock1_inx.Fin; CurrRowStock1 = 1; } + if (CurrTopLineStock==0) CurrTopLineStock = 1; + PrintWholeScreenStock(); + GetLineStock(); + EditCursorStock(0); + Recalcula_Porcentaje(1); +// + break; + // Salir F1 + case 59: + finished = 1; + break; + default: + break; + } + EditCursorStock(0); + } + } else if(raton!=0 && ( boton_izq==1 || boton_der==1 ) ) + if( (bpush = CheckButon( 9, Comunes))>0 ) { + EditCursorStock(1); + switch(bpush){ + // Flecha Arriba + case 1: + Mueve_Arriba_Stock(); + Recalcula_Porcentaje(1); + break; + // Buscar + case 2: +// BuscarVend(); + break; + // Flecha Abajo + case 3: + Mueve_Abajo_Stock(); + Recalcula_Porcentaje(1); + break; + case 4: + break; + // Imprimir + case 5: + Imprimir_Stock(); + break; + // Aadir + case 6: +// if( Confirma("AADIR NUEVO STOCK", "INICIAL", "") ) +// if ( Pide_Codigo(SV_CFG.COD_Stock) ) +// AddRecordStock(); + break; + // Borrar + case 7: + if( Confirma("ELIMINAR TOTALMENTE", "STOCK ACTUAL", "") ) +// if ( Pide_Codigo(SV_CFG.COD_Stock) ) + DeleteRecordStock(); + Recalcula_Porcentaje(1); + break; + // Salir + case 9: + finished = 1; + break; + default: + break; + } + EditCursorStock(0); + } else CompruebaLineasStock(); + +}while(!finished); + +fclose(Stock); // Fichero Vendedores +fclose(Ref); // Fichero Vendedores +free(PS); // Libera la memoria + +if(Memory_ok==1) farfree(Addr); else free(Ref_inx_addr); + + + +} + +void Mueve_Abajo_Stock(void){ + + int CurrRecord = CurrTopLineStock + CurrRowStock1 - 1; + + if (CurrRowStock1==/*28*/40) { + if ( (CurrRecord - 1) >= Stock1_inx.Fin) { BEEP(); EditCursorStock(0); } + else { CurrTopLineStock++; + PrintWholeScreenStock(); + // + // + // + GetLineStock(); +// PrintLineStock(); + } + } else { + if( (CurrRecord - 1) >= Stock1_inx.Fin) { BEEP(); EditCursorStock(0); } + else { CurrRowStock1++; + GetLineStock(); +// PrintLineStock(); + } + } + +} + +void Mueve_Arriba_Stock(void){ + int CurrRecord = CurrTopLineStock + CurrRowStock1 - 1; + + if (CurrRowStock1==1) { + if ((CurrRecord - 1) <= 0) { BEEP(); EditCursorStock(0); } + else { + CurrTopLineStock--; + PrintWholeScreenStock(); + // + // + // + GetLineStock(); +// PrintLineStock(); + } + + } else { + if( (CurrRecord - 1) <= 0) BEEP(); + else { CurrRowStock1--; + + GetLineStock(); +// PrintLineStock(); + } + } + +} + +void EditCursorStock(int ShowHide) { + +char Buffer[80]; + + setcolor(GRIS_C); + setfillstyle(SOLID_FILL, GRIS_C); + bar(10, 455, 545, 473); + + + if (!ShowHide) { + setcolor(63); + setfillstyle(SOLID_FILL, 63); + bar((PS[CurrColStock1-1].left+2), PS[CurrColStock1-1].up+(CurrRowStock1-1)*/*15*/12+/*2*/4, PS[CurrColStock1-1].right-2, PS[CurrColStock1-1].up+/*3*/4+((CurrRowStock1)-1)*12+10); + setcolor(0); + } else { + setcolor(0); + setfillstyle(SOLID_FILL, 0); + bar((PS[CurrColStock1-1].left+2), PS[CurrColStock1-1].up+(CurrRowStock1-1)*/*15*/12+/*2*/4, PS[CurrColStock1-1].right-2, PS[CurrColStock1-1].up+/*3*/4+((CurrRowStock1)-1)*12+10); + Texto_Normal + } + + if(Ref_no_valid) setcolor(ROJO); + +// struct Stock_actual { int Ref; long Und_0; long Und_1; }; + + + switch(CurrColStock1){ +// LA REFERENCIA DEBE SER INDEDITABLE... + + case 1: //4 + sprintf(Buffer, "% 5d", Stock1.Ref ); + outtextxy( PS[0].left+2, (PS[0].up+3)+(CurrRowStock1-1)*12, Buffer ); + outtextxy( 15, 455, "Referencia de Producto. 4 digitos mximo."); + break; + case 2: + outtextxy( PS[1].left+2, (PS[1].up+3)+(CurrRowStock1-1)*12, Ref1.Concepto ); + outtextxy( 15, 455, "Concepto."); + break; + case 3: + sprintf(Buffer, " % 5d", Stock1.Und_1); // 4 + outtextxy( PS[2].left+2, (PS[2].up+3)+(CurrRowStock1-1)*12, Buffer); + outtextxy( 15, 455, "Unidades con Cod. 1"); + break; + case 4: + sprintf(Buffer, " % 5d", Stock1.Und_0); // 4 + outtextxy( PS[3].left+2, (PS[3].up+3)+(CurrRowStock1-1)*12, Buffer ); + outtextxy( 15, 455, "Unidades con Cod. 0"); + break; + case 5: + sprintf(Buffer, "% 10d", ( Stock1.Und_0 + Stock1.Und_1 ) ); // 4 + outtextxy( PS[4].left+2, (PS[4].up+3)+(CurrRowStock1-1)*12, Buffer ); + outtextxy( 15, 455, "Unidades TOTALES."); + break; + } + +} + + + +void PrintLineStock(void){ + + char Buffer[80]; + + setcolor(0); + setfillstyle(SOLID_FILL, 0); + bar((PS[0].left+2), PS[0].up+(CurrRowStock1-1)*12+/*2*/4, PS[0].right-2, PS[0].up+(CurrRowStock1-1)*12+10); + bar((PS[1].left+2), PS[1].up+(CurrRowStock1-1)*12+/*2*/4, PS[1].right-2, PS[1].up+(CurrRowStock1-1)*12+10); + bar((PS[2].left+2), PS[2].up+(CurrRowStock1-1)*12+/*2*/4, PS[2].right-2, PS[2].up+(CurrRowStock1-1)*12+10); + bar((PS[3].left+2), PS[3].up+(CurrRowStock1-1)*12+/*2*/4, PS[3].right-2, PS[3].up+(CurrRowStock1-1)*12+10); + bar((PS[4].left+2), PS[4].up+(CurrRowStock1-1)*12+/*2*/4, PS[4].right-2, PS[4].up+(CurrRowStock1-1)*12+10); + + Texto_Normal + + if(Ref_no_valid) setcolor(ROJO); + // + sprintf(Buffer, "% 5d", Stock1.Ref ); + outtextxy( PS[0].left+2, (PS[0].up+3)+(CurrRowStock1-1)*12, Buffer ); + outtextxy( PS[1].left+2, (PS[1].up+3)+(CurrRowStock1-1)*12, Ref1.Concepto ); + sprintf(Buffer, " % 5d", Stock1.Und_1); // 4 + outtextxy( PS[2].left+2, (PS[2].up+3)+(CurrRowStock1-1)*12, Buffer); + sprintf(Buffer, " % 5d", Stock1.Und_0); // 4 + outtextxy( PS[3].left+2, (PS[3].up+3)+(CurrRowStock1-1)*12, Buffer ); + sprintf(Buffer, "% 10d", ( Stock1.Und_0 + Stock1.Und_1 ) ); // 4 + outtextxy( PS[4].left+2, (PS[4].up+3)+(CurrRowStock1-1)*12, Buffer ); + +} + + +void PrintWholeScreenStock(void){ + +int tmp = CurrRowStock1; + +for(int i=0; i<5; i++) + ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, PS[i]); + + + for(CurrRowStock1 = 1; CurrRowStock1 < (/*28*/40+1); CurrRowStock1++) + + if ( (CurrTopLineStock + CurrRowStock1 - 1) <= (Stock1_inx.Fin + 1) ) { + GetLineStock(); + PrintLineStock(); + } + + + +CurrRowStock1 = tmp; + +} + +void Edit_Item_Stock(void){ + + char buffer[80]; + + switch (CurrColStock1) { + + case 1:/* + if( Stock1.Ref == -1 ) { + sprintf( buffer, "%d", Stock1.Ref); + InputCadenaG_T4( buffer, 1, 4, 63, 57, PS[0], CurrRowStock1-1); + Stock1.Ref = atoi(buffer); + PutLineStock(); + } + */ + while( kbhit() ) getch(); + break; + case 2: + while( kbhit() ) getch(); + break; + case 3: // int Old_Und_0 = Stock1.Und_0; + sprintf( buffer, "%d", Stock1.Und_1); + InputCadenaG_T4( buffer, 1, 4, 63, 57, PS[2], CurrRowStock1-1); + Stock1.Und_1 = atol(buffer); + PutLineStock(); + break; + case 4: // int Old_Und_1 = Stock1.Und_1; + sprintf( buffer, "%d", Stock1.Und_0); + InputCadenaG_T4( buffer, 1, 4, 63, 57, PS[3], CurrRowStock1-1); + Stock1.Und_0 = atol(buffer); + PutLineStock(); + break; + default: + return; + } + + PrintLineStock(); + +} + +void Abre_Ficha_Stock(void){ + +char ArchivoDatos[]="SV_Stock.DAT"; + +//// +// Stockrueba apertura correcta de Indice, y Datos y creacin... // +//// + + int LSJ = sizeof(struct JD); + int LSI = sizeof(struct Stock_inx); + int LSC = sizeof(struct Stock_actual); + + if ( (Stock = fopen( ArchivoDatos, "r+b"))==NULL) { + + FILE *fa; + + if ( (fa = fopen( ArchivoDatos, "wb" ) )!=NULL ) { + + Poner_a_cero_estructura_actual_Stock(); + Stock1_inx.Fin = 0; + rewind(fa); + + fwrite(&cabecera, LSJ, 1, fa); fseek(fa, (long)LSJ, SEEK_SET); + fwrite(&Stock1_inx, LSI, 1, fa); fseek(fa, (long)LSJ+LSI, SEEK_SET); + fwrite(&Stock1, LSC, 1, fa); + + if (fclose(fa) == EOF ) exit(1); + } + + if ( (Stock = fopen( ArchivoDatos, "r+b"))==NULL) { + restorecrtmode(); + printf("NO SE PUDO ABRIR EL FICHERO INDICE EN LA 2 PASADA"); + exit(1); + } + } + + fseek(Stock, (long)LSJ, SEEK_SET); + if ( fread(&Stock1_inx, LSI, 1, Stock) != 1 ) { + restorecrtmode(); + printf("NO SE PUDO LEER EN EL FICHERO: INDICE"); + exit(1); + } + fseek(Stock, (long)LSJ+LSI, SEEK_SET); + if ( fread(&Stock1, LSC, 1, Stock) != 1 ) { + restorecrtmode(); + printf("NO SE PUDO LEER EN EL FICHERO: DATOS"); + exit(1); + } + + +} + +void DeleteRecordStock(void) { + +unsigned int CurrRecord; + int LSJ = sizeof(struct JD); + int LSI = sizeof(struct Stock_inx); + int LSC = sizeof(struct Stock_actual); + +CurrRecord = CurrTopLineStock + CurrRowStock1 - 1; + + if ( (Stock1_inx.Fin == 0) ) { BEEP(); + + Poner_a_cero_estructura_actual_Stock(); + Stock1.Ref=-1; + fseek(Stock, (long)LSJ + LSI + ( LSC * ( 0 ) ), SEEK_SET); // Se coloca + fwrite(&Stock1, LSC, 1, Stock); // Y escribe +/* */ PrintWholeScreenStock(); +/* */ GetLineStock(); + EditCursorStock(0); + + + } else { + + Stock1_inx.Fin -= 1; + + unsigned int p = CurrRecord - 1; + + while( p <= Stock1_inx.Fin ) { + + fseek(Stock, (long)LSJ + LSI + ( LSC * ( p + 1 ) ), SEEK_SET); // Se coloca + fread(&Stock1, LSC, 1, Stock); // Y lee + + fseek(Stock, (long)LSJ + LSI + ( LSC * p ), SEEK_SET); // Se coloca + fwrite(&Stock1, LSC, 1, Stock); // Y escribe + + p++; + }; + + fseek(Stock, (long)LSJ, SEEK_SET); + fwrite(&Stock1_inx, LSI, 1, Stock); // Acualiza n de registros + +/* */ if ((CurrRecord - 1) == Stock1_inx.Fin + 1) CurrRowStock1--; +/* */ +/* */ PrintWholeScreenStock(); +/* */ GetLineStock(); + EditCursorStock(0); + +// PrintLineStock(); + } +} + + + +void AddRecordStock(void){ + +unsigned int CurrRecord= CurrTopLineStock + CurrRowStock1 - 1; + + int LSJ = sizeof(struct JD); + int LSI = sizeof(struct Stock_inx); + int LSC = sizeof(struct Stock_actual); + +if(CurrRecord < 10000 ) { + + long avance = Stock1_inx.Fin /*+ 1*/; + + while( avance >= (CurrRecord-1) ) { + + fseek(Stock, (long)LSJ + LSI + ( LSC * avance ), SEEK_SET); // Se coloca + fread(&Stock1, LSC, 1, Stock); // Y lee + + fseek(Stock, (long)LSJ + LSI + ( LSC * (avance + 1) ), SEEK_SET); // Se coloca + fwrite(&Stock1, LSC, 1, Stock); // Y escribe + + avance--; + }; + +// Stock1_inx.Fin = Stock1_inx.Fin + 1; + Stock1_inx.Fin++; + + fseek(Stock, (long)LSJ, SEEK_SET); + fwrite(&Stock1_inx, LSI, 1, Stock); // Acualiza n de registros + + Poner_a_cero_estructura_actual_Stock(); + Stock1.Ref=-1; + + fseek(Stock, (long)LSJ + LSI + ( LSC * ( CurrTopLineStock + CurrRowStock1 - 1) ), SEEK_SET); // Se coloca + fwrite(&Stock1, LSC, 1, Stock); // Y escribe + + CurrRowStock1++; + if (CurrRowStock1>/*28*/40) { CurrTopLineStock++; CurrRowStock1--; } + PrintWholeScreenStock(); + GetLineStock(); + EditCursorStock(0); +// PrintLineStock(); + + } + +} + + +void PutLineStock(void){ + + int LSJ = sizeof(struct JD); + int LSI = sizeof(struct Stock_inx); + int LSC = sizeof(struct Stock_actual); + + int CurrRecord = CurrTopLineStock + CurrRowStock1 - 1; + +fseek(Stock, (long)LSJ + LSI + ( LSC * CurrRecord ) - LSC, SEEK_SET); // Se coloca +fwrite(&Stock1, LSC, 1, Stock); // Y escribe + +} + +void GetLineStock(void){ + + int LSJ = sizeof(struct JD); + int LSI = sizeof(struct Stock_inx); + int LSC = sizeof(struct Stock_actual); + + int CurrRecord = CurrTopLineStock + CurrRowStock1 - 1; + +fseek(Stock, (long)LSJ + LSI + ( LSC * CurrRecord ) - LSC, SEEK_SET); // Se coloca +fread(&Stock1, LSC, 1, Stock); // Y lee + + BuscaReferencia(Stock1.Ref); + +} + + + + + +void Poner_a_cero_estructura_actual_Stock(void){ + + cabecera.esc = 27; strcpy(cabecera.color, "[31;40m"); + strcpy(cabecera.prog, "Jos David Guilln Dominguez"); + cabecera.nl = 13; cabecera.rt = 10; + strcpy(cabecera.autor, " 6 / Mayo / 1995 "); + cabecera.pt = 7; cabecera.ef = 26; + + Stock1.Ref=0; Stock1.Und_1=0; Stock1.Und_0=0; + +} + + +void Imprimir_Stock(void){ + +int LSJ = sizeof(struct JD); +int LSI = sizeof(struct Stock_inx); +int LSC = sizeof(struct Stock_actual); +int lprint = 3, Curr_Stock = 0; + +if ( Comprueba_Impresora() == 0 ) { +Confirma("Error Imprimiendo.", "Impresora Fuera de", "Servicio."); +return; +} + +fprintf( stdprn, "\n\r"); + + + fprintf( stdprn, " Ref Concepto Und.C.0 Und.C.1 TOTAL\n\r"); + fprintf( stdprn, "\n\r"); + + while( (Curr_Stock <= Stock1_inx.Fin) ){ + + fseek(Stock, (long)LSJ + LSI + ( LSC * Curr_Stock ), SEEK_SET); // Se coloca + fread(&Stock1, LSC, 1, Stock); // Y lee + BuscaReferencia(Stock1.Ref); + + fprintf( stdprn, "% 5d %-20s % 4ld % 4ld % 8ld \n\r", Stock1.Ref, Ref1.Concepto, Stock1.Und_0, Stock1.Und_1, ( Stock1.Und_0 + Stock1.Und_1 ) ); + + lprint++; + if (lprint==55) { lprint = 3; + fputc(12, stdprn); + fprintf( stdprn, " Ref Concepto Und.C.0 Und.C.1 TOTAL\n\r"); + fprintf( stdprn, "\n\r"); + } + Curr_Stock++; + } + fputc(12, stdprn); + GetLineStock(); + +} + + +void CompruebaLineasStock(void){ + // Check una pulsacion sobre un campo, y se situa, si es posible + int ok_p=0, inc=0, md=0; + int oldr, oldc; +// Anclar_Raton(); + + do{ + inc++; + if(x_raton >= (PS[(inc)-1].left+2) && x_raton <= (PS[inc-1].right-2) ) { ok_p=1; md = 1; + oldc=inc; } + if(inc==5) ok_p=1; + }while(!ok_p); + if(md==1){ + inc=0; ok_p=0; md = 0; + do{ + inc++; + if( (y_raton >= (PS[(oldc)-1].up+4+(inc-1)*15+2)) && (y_raton <= (PS[oldc-1].up+4+(inc-1)*15+16)) ) { ok_p=1; oldr=inc; md = 1;} + if(inc==26) ok_p=1; + }while(!ok_p); + } + int newc; + + switch(oldc){ + case 1: + case 2: newc = oldc; break; + case 4: + case 5: newc = (oldc - 1); break; + default: + break; + } + + + if( (md==1) && ((CurrColStock1!=newc) || (CurrRowStock1!=oldr)) ) + { + + if( (CurrTopLineStock + oldr - 2 )<= Stock1_inx.Fin ){ + EditCursorStock(1); + switch(oldc){ + case 1: + case 2: + CurrColStock1 = oldc; + CurrRowStock1 = oldr; + break; + case 4: + case 5: + CurrColStock1 = (oldc-1); + CurrRowStock1 = oldr; + break; + default: + EditCursorStock(0); + break; + } + GetLineStock(); + } + } + + } + + +void Actualizar_Stock(int Referencia, int Unidades, int Codigo){ + + int LSJ = sizeof(struct JD); + int LSI = sizeof(struct Stock_inx); + int LSC = sizeof(struct Stock_actual); + + int ok = 0; + int Curr_Stock = 0, Encuentro = 0; + + + while( (Curr_Stock <= Stock1_inx.Fin) && (ok == 0) ){ + + fseek(Stock, (long)LSJ + LSI + ( LSC * Curr_Stock ), SEEK_SET); // Se coloca + fread(&Stock1, LSC, 1, Stock); // Y lee + + if( Stock1.Ref == Referencia ) { + if(Codigo==1) Stock1.Und_1 += Unidades; + else Stock1.Und_0 += Unidades; + fseek(Stock, (long)LSJ + LSI + ( LSC * Curr_Stock ), SEEK_SET); // Se coloca + fwrite(&Stock1, LSC, 1, Stock); // Y escribe + ok = 1; + Encuentro = 1; + } + + Curr_Stock++; + } + + if (Encuentro==0) { + Stock1.Ref = Referencia; + if(Codigo==1) { Stock1.Und_1 = Unidades; Stock1.Und_0 = 0; } + else { Stock1.Und_0 = Unidades; Stock1.Und_1 = 0; } + + fseek(Stock, (long)LSJ + LSI + ( LSC * (Stock1_inx.Fin + 1) ), SEEK_SET); // Se coloca + fwrite(&Stock1, LSC, 1, Stock); // Y escribe + + Stock1_inx.Fin ++; + + fseek(Stock, (long)LSJ, SEEK_SET); + fwrite(&Stock1_inx, LSI, 1, Stock); // Acualiza n de registros + } + + +} + +void Recalcula_Porcentaje(int Individual_Seleccionado){ + + if( Individual_Seleccionado == 1 ) { + + long P_0, P_1; + struct boton Ptmp; + + Ptmp.up = 15; Ptmp.down = 213; + Ptmp.left = 349; Ptmp.right = 549; + ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, Ptmp); + +// Centro = (449, 114) radio = 80 +// si (Stock1.Und_0 + Stock1.Und_1) es 100 +// Stock1.Und_0 es PS + +// si 360 es 100 +// x es PS +if ( (abs(Stock1.Und_0)+abs(Stock1.Und_1) )!= 0 ) { + + P_0 = labs( ( 360 * ( (labs(Stock1.Und_0) * 100) / (labs(Stock1.Und_0)+labs(Stock1.Und_1)) ) ) / 100); + P_1 = labs( ( 360 * ( (labs(Stock1.Und_1) * 100) / (labs(Stock1.Und_0)+labs(Stock1.Und_1)) ) ) / 100); + // struct Stock_actual { int Ref; long Und_0; long Und_1; }; + if( Stock1.Und_1 < 0 ) + { P_0 += P_1; P_1 = 0; } + if( Stock1.Und_0 < 0 ) + { P_1 += P_0; P_0 = 0; } +if( P_1 != 0 ) { + setcolor(ROJO); + setfillstyle(9, ROJO); + pieslice(449, 114, 0, P_1, 80); +} +if( P_0 != 0 ) { + setcolor(AZUL); + setfillstyle(9, AZUL); + pieslice(449, 114, ( 360 - P_0 ), 360, 80); +} + +} + + + } else { + + // struct Stock_actual Stock1_Graficas[10]; + // bar3d + + + } + +} \ No newline at end of file diff --git a/CD_IN/CD_UTIL.CPP b/CD_IN/CD_UTIL.CPP new file mode 100644 index 0000000..2e7835e --- /dev/null +++ b/CD_IN/CD_UTIL.CPP @@ -0,0 +1,497 @@ +#include +#include +#include +#include +#include +// #include +#include +#include +#include +#include "sv_util.h" +#include "c:\things\borlandc\jd_lib\jd_graph.h" + + +#define Letra_Boton setcolor(1); +#define Azul 1 +#define Texto_Normal setcolor(63); +#define Texto_Negrita setcolor(0); + +extern int x_raton, y_raton, raton; +extern int boton_izq, boton_der; + +extern int InputCadenaG(char *s, int numalp, int lmax, int cc, int cf, struct boton Campo); +extern void desactiva_raton(void); +extern void activa_raton(void); +// extern void Anclar_Raton(void); +extern void inicializa_raton_grafico(int x1, int y1, int x2, int y2, int px, int py); +extern int Espera_Tecla_o_Raton(void); +extern void BEEP(void); +extern void textxy(int x, int y, char *text); + + +#define NEGRO 0 +#define AZUL 1 +#define ROJO 4 +#define VERDE 2 +#define BLANCO 63 +#define GRIS_O 56 +#define GRIS_C 7 +#define AMARILLO 62 + +extern void textxy(int x, int y, char *text); + +int Comprueba_Impresora(void); +int Confirma(char *T1, char *T2, char *T3); +int Desde_Hasta(int *Desde, int *Hasta); +int Pide_Fecha_Actual(void); +int file_exists(char *filename); + +int Confirma(char *T1, char *T2, char *T3){ + +void far *ptr; +unsigned size; +struct boton pregunta[2]; +int fins_print=0, key_print, bpush, ok = 0; +int TFuente; +struct textsettingstype textinfo; +gettextsettings(&textinfo); +TFuente = textinfo.charsize; + +size = imagesize(198, 138, 372, 257); + +/* get byte size of image */ +Fuente(SMALL_FONT, 5); + +if ( (ptr = farmalloc(size)) == NULL) { Fuente(SMALL_FONT, TFuente); return 0; } + +getimage(198, 138, 372, 257, ptr); + +pregunta[0].up = 140; pregunta[0].down = 255; +pregunta[0].left= 200; pregunta[0].right= 370; +ImprimeBoton (1, GRIS_C, GRIS_O, BLANCO, pregunta[0]); + +pregunta[0].up = 235; pregunta[0].down = 250; +pregunta[0].left= 210; pregunta[0].right= 270; +ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, pregunta[0]); + +pregunta[1].up = 235; pregunta[1].down = 250; +pregunta[1].left= 300; pregunta[1].right= 360; +ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, pregunta[1]); + +textxy(212, 237, " Si"); + textxy(212, 239, " _"); +textxy(302, 237, " No"); + textxy(302, 239, " _"); + +textxy(210+2, 150+2, T1); +textxy(210+2, 165+2, T2); +textxy(210+2, 180+2, T3); + + +// +do{ + + if(raton!=0) activa_raton(); + Espera_Tecla_o_Raton(); + if(raton!=0) desactiva_raton(); + + if(kbhit()){ + key_print = getch(); + switch( toupper(key_print) ){ + // S Si + case 83: + ok = 1; + fins_print = 1; + break; + // N No + case 78: + ok = 0; + fins_print = 1; + break; + default: + break; + } + } else + if(raton!=0 && boton_izq==1 || boton_der==1) { + if( (bpush = CheckButon( 2, pregunta))>0 ) { + + switch(bpush){ + case 1: + ok = 1; + fins_print = 1; + break; + case 2: + ok = 0; + fins_print = 1; + break; + default: + break; + } + } + } + +}while(!fins_print); + + + + +putimage(198, 138, ptr, COPY_PUT); +farfree(ptr); +Fuente(SMALL_FONT, TFuente); + +return ok; + +} + + + +int Pide_Fecha_Actual(void){ + + int Fecha; + +// void far *ptr; +// unsigned size; + char mes[][11] = { " Enero", "Febrero", " Marzo", + " Abril", " Mayo", " Junio", + " Julio", " Agosto", "Septiemb", + "Octubre", "Noviemb", "Diciemb" + }; + + struct boton pregunta[3]; + struct boton meses[12]; + + int key_print, bpush, ok = 0; + int TFuente; + + for( Fecha = 0; Fecha < 4; Fecha++ ){ + meses[2+3*Fecha].left = 405; meses[2+3*Fecha].right = 455; + meses[1+3*Fecha].left = 350; meses[1+3*Fecha].right = 400; + meses[0+3*Fecha].left = 295; meses[0+3*Fecha].right = 345; + } + + for( Fecha = 0; Fecha < 3; Fecha++ ) { + meses[Fecha].up = 80+140; meses[Fecha].down = 80+160; + meses[Fecha+3].up = 80+165; meses[Fecha+3].down = 80+185; + meses[Fecha+6].up = 80+190; meses[Fecha+6].down = 80+210; + meses[Fecha+9].up = 80+215; meses[Fecha+9].down = 80+235; + } + + + struct textsettingstype textinfo; + gettextsettings(&textinfo); + TFuente = textinfo.charsize; + struct date d; + getdate(&d); + Fecha = d.da_mon; + + /* get byte size of image */ +// size = imagesize(198, 138, 372, 257); + + + +// if ( (ptr = farmalloc(size)) == NULL) { +// Fuente(SMALL_FONT, TFuente); +// return Fecha; +// } + +// getimage(198, 138, 372, 257, ptr); + + +pregunta[0].up = /*140*/130; pregunta[0].down = /*255*/400; +pregunta[0].left= /*200*/150; pregunta[0].right= /*370*/465; +ImprimeBoton (1, GRIS_C, GRIS_O, BLANCO, pregunta[0]); + +pregunta[0].up = /*143*/135; pregunta[0].down = /*252*/395; +pregunta[0].left= /*203*/155; pregunta[0].right= /*367*/460; +ImprimeBoton (0, GRIS_C, BLANCO, GRIS_O, pregunta[0]); + + +pregunta[0].up = /*235*/370; pregunta[0].down = /*250*/390; +pregunta[0].left= /*210*/160; pregunta[0].right= /*270*/230; +ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, pregunta[0]); + +pregunta[1].up = /*235*/370; pregunta[1].down = /*250*/390; +pregunta[1].left= /*300*/385; pregunta[1].right= /*360*/455; +ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, pregunta[1]); + +pregunta[2].up = /*165*/175; pregunta[2].down = /*185*/195; +pregunta[2].left= 212; pregunta[2].right= /*232*/245; +ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, pregunta[2]); + +Fuente(SMALL_FONT, 4); +for( int i = 0; i < 12; i++ ) { + ImprimeBoton (1, GRIS_C, GRIS_O, BLANCO, meses[i]); + textxy(meses[i].left+4, meses[i].up+3, mes[i]); +} +ImprimeBoton (1, ROJO, GRIS_O, BLANCO, meses[Fecha-1]); +textxy(meses[Fecha-1].left+4, meses[Fecha-1].up+3, mes[Fecha-1]); + +Fuente(SMALL_FONT, 5); + +textxy(162, 372, " Aceptar"); + textxy(162, 373, " _"); +textxy(387, 372, " Cancelar"); + textxy(387, 373, " _"); + +textxy(160+2, 145+2, "Introduzca mes a gestionar:"); + +// textxy(210+2, 165+2, T2); +// textxy(210+2, 180+2, T3); +char buffer[80]; +int Mes=Fecha; + +sprintf( buffer, "% 2d", Fecha); +textxy(pregunta[2].left + 4, pregunta[2].up + 2, buffer); + +// +do{ + + if(raton!=0) activa_raton(); + Espera_Tecla_o_Raton(); + if(raton!=0) desactiva_raton(); + + if(kbhit()){ + key_print = getch(); + if( key_print == 13 ) {Fecha = Mes; ok = 1; } else + if( isdigit(key_print) ) { + // Edita el mes actual + sprintf( buffer, "%d", Fecha); + do{ + InputCadenaG( buffer, 1, 4, 63, 57, pregunta[2]); + Fecha = atoi(buffer); + }while(Fecha<1 || Fecha>12); + } else + if(key_print==0) + switch( getch() ){ + // Flecha Izquierda + case 75: + case 15: + ImprimeBoton (0, GRIS_C, GRIS_O, BLANCO, meses[Mes-1]); + Mes--; + if ( (Mes + 1)== 1 ) Mes = 3; else + if ( (Mes + 1)== 4 ) Mes = 6; else + if ( (Mes + 1)== 7 ) Mes = 9; else + if ( (Mes + 1)==10 ) Mes = 12; + ImprimeBoton (0, GRIS_C, AZUL, AZUL, meses[Mes-1]); + break; + // Flecha Derecha + case 77: + case 9: + ImprimeBoton (0, GRIS_C, GRIS_O, BLANCO, meses[Mes-1]); + Mes++; + if ( (Mes - 1)== 3 ) Mes = 1; else + if ( (Mes - 1)== 6 ) Mes = 4; else + if ( (Mes - 1)== 9 ) Mes = 7; else + if ( (Mes - 1)==12 ) Mes = 10; + ImprimeBoton (0, GRIS_C, AZUL, AZUL, meses[Mes-1]); + break; + // Flecha Abajo + case 80: + ImprimeBoton (0, GRIS_C, GRIS_O, BLANCO, meses[Mes-1]); + Mes += 3; if ( Mes > 12) Mes = Mes - 12; + ImprimeBoton (0, GRIS_C, AZUL, AZUL, meses[Mes-1]); + break; + // Flecha Arriba + case 72: + ImprimeBoton (0, GRIS_C, GRIS_O, BLANCO, meses[Mes-1]); + Mes -= 3; if ( Mes < 1) Mes = 12 + Mes; + ImprimeBoton (0, GRIS_C, AZUL, AZUL, meses[Mes-1]); + break; + } + else + switch( toupper(key_print) ){ + // A Aceptar + case 65: + ok = 1; + break; + // C Cancelar + case 67: + ok = 1; + Fecha = -1; + break; + default: + break; + } + } else + if(raton!=0 && boton_izq==1 || boton_der==1) { + if( (bpush = CheckButon( 2, pregunta))>0 ) { + + switch(bpush){ + case 1: + ok = 1; + break; + case 2: + ok = 1; + Fecha = -1; + break; + default: + break; + } + } + } + +}while(!ok); + + +// putimage(198, 138, ptr, COPY_PUT); +// farfree(ptr); + + +Fuente(SMALL_FONT, TFuente); + +return Fecha; + +} + + +int file_exists(char *filename) +{ + return (access(filename, 0) == 0); +} + + +int Comprueba_Impresora(void){ + + unsigned int tmp; + union REGS Impresora_in, Impresora_out; + struct byte { + int a : 1; + int b : 1; + int c : 1; + int d : 1; + int e : 1; + int f : 1; + int g : 1; + int h : 1; + }; + union bits { + char ch; + struct byte bit; + } Imp_out; + + Impresora_in.h.ah = 0x02; + Impresora_in.x.dx = 0x0; + + int86(0x17, &Impresora_in, &Impresora_out); + + return ( Impresora_out.h.ah ? 1 : 0 ); + +} + +int Desde_Hasta(int *Desde, int *Hasta){ + +int fins_print= 0, key_print, bpush; +char buffer[80], devuelve = 0; +void far *ptr; +unsigned size; +struct boton pregunta[4]; + +struct date Fecha; +getdate(&Fecha); + +*Desde = *Hasta = Fecha.da_day; + +size = imagesize(198, 138, 372, 257); + +/* get byte size of image */ + +if ( (ptr = farmalloc(size)) == NULL) return -1; + getimage(198, 138, 372, 257, ptr); + + pregunta[0].up = 140; pregunta[0].down = 255; + pregunta[0].left= 200; pregunta[0].right= 370; + ImprimeBoton (1, ROJO, GRIS_C, BLANCO, pregunta[0]); + pregunta[0].up = 150; pregunta[0].down = /*175*/165; + pregunta[0].left= /*210*/250; pregunta[0].right= 360; + ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, pregunta[0]); + pregunta[1].up = 185; pregunta[1].down = /*210*/200; + pregunta[1].left= /*210*/250; pregunta[1].right= 360; + ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, pregunta[1]); + pregunta[2].up = 220; pregunta[2].down = 245; + pregunta[2].left= 210; pregunta[2].right= 280; + ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, pregunta[2]); + pregunta[3].up = 220; pregunta[3].down = 245; + pregunta[3].left= 290; pregunta[3].right= 360; + ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, pregunta[3]); + + Fuente(SMALL_FONT, 4); + +Letra_Boton +outtextxy(pregunta[0].left+2 - 40, pregunta[0].up+2, "DESDE"); +outtextxy(pregunta[1].left+2 - 40, pregunta[1].up+2, "HASTA"); +outtextxy(pregunta[2].left+2, pregunta[2].up+2, "CANCELAR"); + outtextxy(pregunta[2].left+2, pregunta[2].up+4, "_"); +outtextxy(pregunta[3].left+2, pregunta[3].up+2, "ACEPTAR"); + outtextxy(pregunta[3].left+2, pregunta[3].up+4, "_"); + +// +do{ + + if(raton!=0) activa_raton(); + Espera_Tecla_o_Raton(); + if(raton!=0) desactiva_raton(); + + if(kbhit()){ + key_print = getch(); + if(key_print == 27 ) { fins_print = 1; devuelve = -1; } else + if(key_print == 'A' || key_print == 'a') { fins_print = 1; } else + if(key_print == 'C' || key_print == 'c') { fins_print = 1; devuelve = -1; } else + if( isprint(key_print) ) { + sprintf( buffer, "%d", *Desde); + do{ + InputCadenaG( buffer, 1, 2, 63, 57, pregunta[0]); + *Desde = atol(buffer); + }while(*Desde<1 || *Desde>12); + + sprintf( buffer, "%d", *Hasta); + do{ + InputCadenaG( buffer, 1, 2, 63, 57, pregunta[1]); + *Hasta = atol(buffer); + }while(*Hasta<1 || *Hasta>12); + } else + if( key_print == 0 ) { + switch( (key_print=getch()) ){ + // F1 Cancelar + case 59: + fins_print = 1; + devuelve = -1; + break; + // F3 Imprimir Ficha + default: + break; + } + } + } else + if(raton!=0 && boton_izq==1 || boton_der==1) { + if( (bpush = CheckButon( 3, pregunta))>0 ) { +/* + pregunta[0].up = 140; pregunta[0].down = 255; + pregunta[0].left= 200; pregunta[0].right= 370; + ImprimeBoton (1, GRIS_O, GRIS_C, BLANCO, pregunta[0]); +*/ + switch(bpush){ + // Cancelar + case 3: + fins_print=1; + devuelve = -1; + break; + case 4: + fins_print=1; + break; + } + } + } + + +}while(!fins_print); + +// + + + putimage(198, 138, ptr, COPY_PUT); + farfree(ptr); + + Fuente(SMALL_FONT, 5); + +return devuelve; +} diff --git a/CD_IN/CD_W01.DAT b/CD_IN/CD_W01.DAT new file mode 100644 index 0000000..b016ff8 Binary files /dev/null and b/CD_IN/CD_W01.DAT differ diff --git a/CD_IN/CD_W02.DAT b/CD_IN/CD_W02.DAT new file mode 100644 index 0000000..756cf7f Binary files /dev/null and b/CD_IN/CD_W02.DAT differ diff --git a/CD_IN/CD_W03.DAT b/CD_IN/CD_W03.DAT new file mode 100644 index 0000000..185035c Binary files /dev/null and b/CD_IN/CD_W03.DAT differ diff --git a/CD_IN/CD_W04.DAT b/CD_IN/CD_W04.DAT new file mode 100644 index 0000000..d206d67 Binary files /dev/null and b/CD_IN/CD_W04.DAT differ diff --git a/CD_IN/CD_W05.DAT b/CD_IN/CD_W05.DAT new file mode 100644 index 0000000..be77685 Binary files /dev/null and b/CD_IN/CD_W05.DAT differ diff --git a/CD_IN/CD_W06.DAT b/CD_IN/CD_W06.DAT new file mode 100644 index 0000000..a5940f9 Binary files /dev/null and b/CD_IN/CD_W06.DAT differ diff --git a/CD_IN/CD_W07.DAT b/CD_IN/CD_W07.DAT new file mode 100644 index 0000000..a3b211e Binary files /dev/null and b/CD_IN/CD_W07.DAT differ diff --git a/CD_IN/CD_W08.DAT b/CD_IN/CD_W08.DAT new file mode 100644 index 0000000..94e074e Binary files /dev/null and b/CD_IN/CD_W08.DAT differ diff --git a/CD_IN/CD_W09.DAT b/CD_IN/CD_W09.DAT new file mode 100644 index 0000000..7489804 Binary files /dev/null and b/CD_IN/CD_W09.DAT differ diff --git a/CD_IN/CD_W10.DAT b/CD_IN/CD_W10.DAT new file mode 100644 index 0000000..07ed898 Binary files /dev/null and b/CD_IN/CD_W10.DAT differ diff --git a/CD_IN/CD_W11.DAT b/CD_IN/CD_W11.DAT new file mode 100644 index 0000000..5a8e316 Binary files /dev/null and b/CD_IN/CD_W11.DAT differ diff --git a/CD_IN/CD_W12.DAT b/CD_IN/CD_W12.DAT new file mode 100644 index 0000000..870848e Binary files /dev/null and b/CD_IN/CD_W12.DAT differ diff --git a/CD_IN/CD_W13.DAT b/CD_IN/CD_W13.DAT new file mode 100644 index 0000000..0e58fb1 Binary files /dev/null and b/CD_IN/CD_W13.DAT differ diff --git a/CD_IN/CD_W14.DAT b/CD_IN/CD_W14.DAT new file mode 100644 index 0000000..5121569 Binary files /dev/null and b/CD_IN/CD_W14.DAT differ diff --git a/CD_IN/CD_W15.DAT b/CD_IN/CD_W15.DAT new file mode 100644 index 0000000..6140417 Binary files /dev/null and b/CD_IN/CD_W15.DAT differ diff --git a/CD_IN/LIST_COL.H b/CD_IN/LIST_COL.H new file mode 100644 index 0000000..44ca393 --- /dev/null +++ b/CD_IN/LIST_COL.H @@ -0,0 +1,5 @@ +// Aqui se debe poner cual sera el color negro, +// para la utilizacin por Make_Boton... + +#define NEGRO 240 + diff --git a/CD_IN/LITT.CHR b/CD_IN/LITT.CHR new file mode 100644 index 0000000..08c3067 Binary files /dev/null and b/CD_IN/LITT.CHR differ diff --git a/CD_IN/MAKE_BOT.OBJ b/CD_IN/MAKE_BOT.OBJ new file mode 100644 index 0000000..258dd43 Binary files /dev/null and b/CD_IN/MAKE_BOT.OBJ differ diff --git a/CD_IN/PRUEBA_B.CPP b/CD_IN/PRUEBA_B.CPP new file mode 100644 index 0000000..a782ea6 --- /dev/null +++ b/CD_IN/PRUEBA_B.CPP @@ -0,0 +1,161 @@ +///////////////////////////// FICHEROS A INCLUIR ///////////////////////////// +extern int Fichero_cd_in2(char Dinamicos_Estaticos); + +#include +#include +#include +#include +#include +#include // Para getch(); +#include // Para outtextxy(...); y cleardevice(...); + +#include "d:\program\src_dos\libs\make_bot\make_bot.h" // Fuciones de MAKE_BOTON +#include "cd_icons.h" +#include "cd_error.h" +// #include "cd_raton.h" + +extern int far _Cdecl Svga256_fdriver[]; +int huge DetectVGA256() +{ + return 2; +} + +extern void Inicializa_Dibujo(void); +extern void Inicializa_Iconos(void); +extern void Coloca_Iconos_Dos_Windows(void); +extern char far *Icono; // 18 +void InicializaSVGA(void); +extern char dac[256*3]; +extern "C" void APAGA_PANTALLA(char *); +extern "C" void ENCIENDE_PANTALLA(char *); + +extern void Menu_de_Edicion(void); +extern void Coloca_Iconos(int Start_Icon); + +// extern unsigned char *P_Raton1, *P_Raton2, *P_Raton3, *P_Raton4; +// void *Pantalla; + +int main(void/*int argc, char *argv[]*/){ + + +InicializaSVGA(); + +/**/ memset( dac, 0, 256*3 ); /**/ +unsigned Segt = FP_SEG(dac), Off = FP_OFF(dac); +/**/ asm mov ax, 0x1012 ; /**/ +/**/ asm mov bx, 0 ; /**/ +/**/ asm mov cx, 256 ; /**/ +/**/ asm mov es, Segt ; /**/ +/**/ asm mov dx, Off ; /**/ +/**/ asm int 0x10 ; /**/ + +if( //carga_botones("cd_in.img") // Carga botones del fichero "botones.p1" + Fichero_cd_in2(0) + != 1 ) { + Fichero_cd_in2(112); + +// Imprime_Estaticos( 112, "cd_in.img"); + Espera_Tecla_o_Raton(); + closegraph(); + cprintf("\n\rError en la CARGA DE BOTONES"); + exit(112); +} + + Fichero_cd_in2(1); +// Imprime_Estaticos( 1, "cd_in.img"); // Imprime botones estaticos 'Seccion 1' + + Imprime_Secuencia(1); // Imprime secuencia 1. + + Fichero_cd_in2(2); + +// Imprime_Estaticos( 2, "cd_in.img"); // Imprime botones estaticos 'Seccion 2' + // para los textos + +/**/ PunteroRaton = 100; /**/ +/**/ inicializa_raton_grafico( 0, 0, 618, 460); /**/ +/**/ if ( PunteroRaton != 100 ) { /**/ +/**/ closegraph(); /**/ +/**/ cprintf("Memoria_Insuficiente para el RATON\n\r");/**/ +/**/ exit(1); /**/ +/**/ } /**/ + + Inicializa_Iconos(); + Coloca_Iconos_Dos_Windows(); + Coloca_Iconos(1); + +ENCIENDE_PANTALLA(dac); + + +/* +if ( (Pantalla = malloc( JD_imagesize(0, 0, 21, 21) )) == NULL ) { + Imprime_Estaticos( SIN_CVN, "cd_in.img"); // Imprime botones estaticos 'Seccion 2' + Espera_Tecla_o_Raton(); + closegraph(); + cprintf("\n\rError en la asignacin de memoria para la mascara del raton"); + exit(2); +} +*/ + + + True_Push = ON; // Activa el TRUE PUSH ( PRESION REAL ) + + Menu_de_Edicion(); +/* + free(P_Raton1); + free(P_Raton2); + free(P_Raton3); + free(P_Raton4); +*/ + APAGA_PANTALLA(dac); + closegraph(); +/* + farfree(Icono); + free(Pantalla); +*/ + Libera_Raton_Animado(); + + cprintf("Gracias por utilizar mi Software\n\r"); + cprintf(" Jos David Guilln\n\r"); + cprintf("\n\r"); + + return 0; +} + + +void InicializaSVGA(void) { + + int Gd = DETECT, Gm; + int Drv, errorcode; + + installuserdriver("Svga256",DetectVGA256); +/* If driver is linked with file, remove comments */ + registerfarbgidriver(Svga256_fdriver); + + errorcode = registerfarbgifont(small_font_far); + +/* report any registration errors */ +if (errorcode < 0) +{ + printf("Graphics error: %s\n", grapherrormsg(errorcode)); + printf("Press any key to halt:"); + getch(); + exit(1); /* terminate with an error code */ +} + + + initgraph(&Gd,&Gm,""); + + /* read result of initialization */ + errorcode = graphresult(); + +if (errorcode != grOk) /* an error occurred */ +{ + printf("Graphics error: %s\n", grapherrormsg(errorcode)); + printf("Presione una tecla para finalizar:"); + getch(); + exit(1); /* return with error code */ +} + + + +} diff --git a/CD_IN/P_RATON1.CPP b/CD_IN/P_RATON1.CPP new file mode 100644 index 0000000..f67ebe8 --- /dev/null +++ b/CD_IN/P_RATON1.CPP @@ -0,0 +1,294 @@ +int Carga_Puntero_Animado(void) { + +int n = ( 20 * 20 ); + +if( ((P_Raton1 = (unsigned char *)malloc( n ))==NULL) || + ((P_Raton2 = (unsigned char *)malloc( n ))==NULL) || + ((P_Raton3 = (unsigned char *)malloc( n ))==NULL) || + ((P_Raton4 = (unsigned char *)malloc( n ))==NULL) ) { + return 1; + } + +*P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; +*P_Raton1++ = NEGRO ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; +*P_Raton1++ = BLANCO ; *P_Raton1++ = NEGRO ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; +*P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = NEGRO ; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; +*P_Raton1++ = BLANCO ; *P_Raton1++ = NEGRO ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; +*P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = NEGRO ; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = BLANCO ; *P_Raton1++ = NEGRO ; +*P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; +*P_Raton1++ = BLANCO ; *P_Raton1++ = NEGRO ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = BLANCO ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; +*P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = NEGRO ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = BLANCO ; *P_Raton1++ = NEGRO ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = BLANCO ; *P_Raton1++ = NEGRO ; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; +*P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; +*P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; +*P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = UNKNOW ; *P_Raton1++ = UNKNOW ; +*P_Raton1++ = UNKNOW ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; +*P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = UNKNOW ; +*P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; +*P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; +*P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; +*P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; +*P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = AZUL ; +*P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; +*P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; +*P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = UNKNOW ; *P_Raton1++ = AZUL ; +*P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = AZUL ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = UNKNOW ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = UNKNOW ; *P_Raton1++ = UNKNOW ; *P_Raton1++ = GRIS_CLARO; +*P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; *P_Raton1++ = GRIS_CLARO; + +*P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = NEGRO ; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; +*P_Raton2++ = NEGRO ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; +*P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = NEGRO ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; +*P_Raton2++ = NEGRO ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = BLANCO ; *P_Raton2++ = NEGRO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; +*P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = NEGRO ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = BLANCO ; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = BLANCO ; *P_Raton2++ = NEGRO ; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = BLANCO ; *P_Raton2++ = NEGRO ; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; +*P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; +*P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = AZUL ; +*P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; +*P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = UNKNOW ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = UNKNOW ; +*P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = AZUL ; +*P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; +*P_Raton2++ = UNKNOW ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = AZUL ; +*P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; +*P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; +*P_Raton2++ = UNKNOW ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; +*P_Raton2++ = UNKNOW ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = UNKNOW ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; +*P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = AZUL ; *P_Raton2++ = UNKNOW ; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = UNKNOW ; +*P_Raton2++ = UNKNOW ; *P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; +*P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = UNKNOW ; +*P_Raton2++ = UNKNOW ; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; *P_Raton2++ = GRIS_CLARO; + +*P_Raton3++ = BLANCO ; *P_Raton3++ = BLANCO ; *P_Raton3++ = BLANCO ; *P_Raton3++ = BLANCO ; *P_Raton3++ = NEGRO ; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = BLANCO ; *P_Raton3++ = BLANCO ; *P_Raton3++ = BLANCO ; *P_Raton3++ = NEGRO ; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = BLANCO ; *P_Raton3++ = BLANCO ; +*P_Raton3++ = BLANCO ; *P_Raton3++ = BLANCO ; *P_Raton3++ = NEGRO ; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = BLANCO ; *P_Raton3++ = NEGRO ; *P_Raton3++ = BLANCO ; *P_Raton3++ = BLANCO ; *P_Raton3++ = BLANCO ; *P_Raton3++ = NEGRO ; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = BLANCO ; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = BLANCO ; +*P_Raton3++ = BLANCO ; *P_Raton3++ = NEGRO ; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; +*P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = AZUL ; +*P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; +*P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; +*P_Raton3++ = UNKNOW ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; +*P_Raton3++ = UNKNOW ; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; +*P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = AZUL ; +*P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = AZUL ; +*P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; +*P_Raton3++ = UNKNOW ; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = AZUL ; +*P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = AZUL ; +*P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; +*P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; +*P_Raton3++ = UNKNOW ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; *P_Raton3++ = AZUL ; +*P_Raton3++ = UNKNOW ; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = UNKNOW ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = UNKNOW ; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; +*P_Raton3++ = UNKNOW ; *P_Raton3++ = UNKNOW ; *P_Raton3++ = GRIS_CLARO; *P_Raton3++ = GRIS_CLARO; + +*P_Raton4++ = BLANCO ; *P_Raton4++ = BLANCO ; *P_Raton4++ = BLANCO ; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = BLANCO ; *P_Raton4++ = BLANCO ; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = BLANCO ; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = BLANCO ; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = BLANCO ; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; +*P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; +*P_Raton4++ = UNKNOW ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; +*P_Raton4++ = UNKNOW ; *P_Raton4++ = AZUL ; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; +*P_Raton4++ = UNKNOW ; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; +*P_Raton4++ = UNKNOW ; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = UNKNOW ; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; +*P_Raton4++ = UNKNOW ; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; +*P_Raton4++ = AZUL ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; +*P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = AZUL ; *P_Raton4++ = AZUL ; +*P_Raton4++ = AZUL ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; *P_Raton4++ = GRIS_CLARO; +*P_Raton4++ = GRIS_CLARO; *P_Raton4++ = UNKNOW ; *P_Raton4++ = UNKNOW ; *P_Raton4++ = GRIS_CLARO; + +return 0; +} + +void Libera_Raton_Animado(void){ + + free(P_Raton1); + free(P_Raton2); + free(P_Raton3); + free(P_Raton4); + +} diff --git a/CD_IN/P_RATON2.CPP b/CD_IN/P_RATON2.CPP new file mode 100644 index 0000000..cb75ee6 --- /dev/null +++ b/CD_IN/P_RATON2.CPP @@ -0,0 +1,67 @@ +*P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = NEGRO ; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; +*P_Ratonx++ = NEGRO ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; +*P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = NEGRO ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; +*P_Ratonx++ = NEGRO ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = NEGRO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; +*P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = NEGRO ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = NEGRO ; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = NEGRO ; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = UNKNOW ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = UNKNOW ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; \ No newline at end of file diff --git a/CD_IN/P_RATON3.CPP b/CD_IN/P_RATON3.CPP new file mode 100644 index 0000000..5f88a28 --- /dev/null +++ b/CD_IN/P_RATON3.CPP @@ -0,0 +1,67 @@ +*P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = NEGRO ; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = NEGRO ; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; +*P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = NEGRO ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = BLANCO ; *P_Ratonx++ = NEGRO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = NEGRO ; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = BLANCO ; +*P_Ratonx++ = BLANCO ; *P_Ratonx++ = NEGRO ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; \ No newline at end of file diff --git a/CD_IN/P_RATON4.CPP b/CD_IN/P_RATON4.CPP new file mode 100644 index 0000000..70c3ee9 --- /dev/null +++ b/CD_IN/P_RATON4.CPP @@ -0,0 +1,67 @@ +*P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = BLANCO ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = BLANCO ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = AZUL ; *P_Ratonx++ = AZUL ; +*P_Ratonx++ = AZUL ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = GRIS_CLARO; +*P_Ratonx++ = GRIS_CLARO; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = UNKNOW ; *P_Ratonx++ = GRIS_CLARO; \ No newline at end of file diff --git a/CD_IN/R.BAT b/CD_IN/R.BAT new file mode 100644 index 0000000..8c4f7a0 --- /dev/null +++ b/CD_IN/R.BAT @@ -0,0 +1 @@ +edit cd_in.img diff --git a/CD_IN/SORT_CD.CPP b/CD_IN/SORT_CD.CPP new file mode 100644 index 0000000..f54f679 --- /dev/null +++ b/CD_IN/SORT_CD.CPP @@ -0,0 +1,1000 @@ +#include "..\cd_file.h" + +#define DOS 1 +#define WINDOWS 2 + + +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +/*****/ void Abre_Ficha_CD_in(void); /*****/ +/*****/ void GetLineCD_in(void); /*****/ +/*****/ FILE *CD_in; /*****/ +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +CD_FILE CD_in1; +struct Cabecera CD_cabecera; + + + int Items_for = DOS; + int Item_select = 1; + int CurrTopLineCD_in = 1; int CurrRowCD_in = 1; + int CurrColCD_in = 1; + +void main(int argc, char *argv[]){ + int ok = 0, key; + + int Curr_Item = 1; + + printf("\nJD Soft...\n"); + printf("\nAbriendo fichero de datos..."); + Inicializa_Apertura(argv[1]); + printf(" OK!\n"); + printf("Ordenando... "); + Sort(); + printf(" OK!\n"); + + + +} + +fclose(CD_in); + return; +} + + +// +// +// +// +// +// +// +// + +void Abre_Ficha_CD_in(void){ + +char ArchivoDatos[]="JD_Soft.FV"; +char Memoria; +void *Imagen; + +int cm; +cm = JD_imagesize(200, 212, 440, 267); +if ( (Imagen = malloc( cm /*imagesize(200, 212, 440, 267)*/ ) ) == NULL ) Memoria = 0; +else { + Memoria = 1; + getimage( 200, 212, 440, 267, Imagen ); + Imprime_Estaticos( 113, "cd_in.img"); + settextstyle( SMALL_FONT, HORIZ_DIR, 4); +} + +if (Items_for == DOS) + sprintf(ArchivoDatos, "CD_D%02d.dat", Item_select ); +else + sprintf(ArchivoDatos, "CD_W%02d.dat", Item_select ); + +//// +// CD_in Apertura de Indice, y Datos, o creacin... // +//// + + int LSJ = sizeof(struct Cabecera); + int LSC = sizeof(CD_FILE); + + if ( (CD_in = fopen( ArchivoDatos, "r+b"))==NULL) { + + FILE *fa; + + if ( (fa = fopen( ArchivoDatos, "wb" ) )!=NULL ) { + + Poner_a_cero_estructura_actual_CD_in(); + CD_cabecera.Records = 0; + rewind(fa); + + fwrite(&CD_cabecera, LSJ, 1, fa); fseek(fa, (long)LSJ, SEEK_SET); + fwrite(&CD_in1, LSC, 1, fa); + + if (fclose(fa) == EOF ) exit(1); + } + + if ( (CD_in = fopen( ArchivoDatos, "r+b"))==NULL) { + if ( Memoria ) free(Imagen); + restorecrtmode(); + printf("NO SE PUDO ABRIR EL FICHERO INDICE EN LA 2 PASADA"); + exit(1); + } + } + + rewind(CD_in); + if ( fread(&CD_cabecera, LSJ, 1, CD_in) != 1 ) { + if ( Memoria ) free(Imagen); + restorecrtmode(); + printf("NO SE PUDO LEER EN EL FICHERO: INDICE"); + exit(1); + } + fseek(CD_in, (long)LSJ, SEEK_SET); + if ( fread(&CD_in1, LSC, 1, CD_in) != 1 ) { + if ( Memoria ) free(Imagen); + restorecrtmode(); + printf("NO SE PUDO LEER EN EL FICHERO: DATOS"); + exit(1); + } + + if( Memoria ) { + putimage( 200, 212, Imagen, COPY_PUT); + free(Imagen); + } + +} + +void Poner_a_cero_estructura_actual_CD_in(void){ + + char CR = 13, LF = 10, BEEP = 7, ANY = 26; + sprintf( CD_cabecera.Nombre_del_Programa, "%c %c %c - CD_OUT - %c %c", CR, LF, BEEP, CR, LF ); + sprintf( CD_cabecera.Comentario_Inicial, "Jos David Guilln %c %c %c %c", CR, LF, BEEP, ANY ); + CD_cabecera.VerHi = 1; CD_cabecera.VerLow = 0; + CD_cabecera.Register = 1; + + CD_in1.Typo.DOS_WINDOWS = ( Items_for == DOS ? 0 : 1); + CD_in1.Typo.Tipo_de_Programa = Item_select; + CD_in1.Typo.T_Dibujo = 0; + CD_in1.Typo.Install = 0; + CD_in1.Typo.Ejecutable = 0; + + strcpy( CD_in1.Nombre, "\0" ); + for(CR=0; CR<32; CR++) +// strcpy( CD_in1.Comentario[CR], " "); + strcpy( CD_in1.Comentario[CR], " "); + + strcpy( CD_in1.N_Img, "\0"); + strcpy( CD_in1.Dir_P, "\0"); + + CD_in1.Alt_Install.Usar_VGA_COPY = 0; + CD_in1.Alt_Install.Usar_ARJ = 0; + CD_in1.Alt_Install.Usar_ZIP = 0; + CD_in1.Alt_Install.Usar_LHA = 0; + CD_in1.Alt_Install.Usar_XCopy = 0; + CD_in1.Alt_Install.Usar_Install_P = 0; +// CD_in1.Alt_Install.Usar_NO_Install = 0; + + strcpy( CD_in1.N_Install, "\0"); + strcpy( CD_in1.N_Exe, "\0"); + +} + +// +// +// +// +// +// +// +// + + + + +void PutLineCD_in(void){ + + int LSJ = sizeof(struct Cabecera); + int LSC = sizeof(CD_FILE); + + int CurrRecord = CurrTopLineCD_in + CurrRowCD_in - 1; + +fseek(CD_in, (long)LSJ + ( LSC * CurrRecord ) - LSC, SEEK_SET); // Se coloca +fwrite(&CD_in1, LSC, 1, CD_in); // Y escribe + +} + +void GetLineCD_in(void){ + + int LSJ = sizeof(struct Cabecera); + int LSC = sizeof(CD_FILE); + + int CurrRecord = CurrTopLineCD_in + CurrRowCD_in - 1; + +fseek(CD_in, (long)LSJ + ( LSC * CurrRecord ) - LSC, SEEK_SET); // Se coloca +fread(&CD_in1, LSC, 1, CD_in); // Y lee + +} + +void DeleteRecordCD_in(void) { + + long CurrRecord; + int LSJ = sizeof(struct Cabecera); + int LSC = sizeof(CD_FILE); + +CurrRecord = CurrTopLineCD_in + CurrRowCD_in - 1; + + if ( (CD_cabecera.Records == 0) ) { BEEP(); + Poner_a_cero_estructura_actual_CD_in(); + fseek(CD_in, (long)LSJ + ( LSC * ( 0 ) ), SEEK_SET); + fwrite(&CD_in1, LSC, 1, CD_in); + PrintWholeScreenCD_in(); + GetLineCD_in(); + EditCursorCD_in(0); + + } else { + + CD_cabecera.Records -= 1; + + unsigned int p = CurrRecord - 1; + + while( p <= CD_cabecera.Records ) { + + fseek(CD_in, (long)LSJ + ( LSC * ( p + 1 ) ), SEEK_SET); // Se coloca + fread(&CD_in1, LSC, 1, CD_in); // Y lee + + fseek(CD_in, (long)LSJ + ( LSC * p ), SEEK_SET); // Se coloca + fwrite(&CD_in1, LSC, 1, CD_in); // Y escribe + + p++; + }; + + rewind(CD_in); + fwrite(&CD_cabecera, LSJ, 1, CD_in); // Acualiza n de registros + + if ((CurrRecord - 1) == CD_cabecera.Records + 1) CurrRowCD_in--; +/* */ +/* */ PrintWholeScreenCD_in(); +/* */ GetLineCD_in(); + EditCursorCD_in(0); + + PrintLineCD_in2(); + } +} + + + +void AddRecordCD_in(void){ + + long CurrRecord= CurrTopLineCD_in + CurrRowCD_in - 1; + + int LSJ = sizeof(struct Cabecera); + int LSC = sizeof(CD_FILE); + +if( CurrRecord < 100000 ) { + + long avance = CD_cabecera.Records; + + while( avance >= (CurrRecord-1) ) { + + fseek(CD_in, (long)LSJ + ( LSC * avance ), SEEK_SET); + fread(&CD_in1, LSC, 1, CD_in); + + fseek(CD_in, (long)LSJ + ( LSC * (avance + 1) ), SEEK_SET); + fwrite(&CD_in1, LSC, 1, CD_in); + + avance--; + }; + +// CD_in1_inx.Fin = CD_in1_inx.Fin + 1; + CD_cabecera.Records++; + + rewind(CD_in); + fwrite(&CD_cabecera, LSJ, 1, CD_in); // Acualiza n de registros + + Poner_a_cero_estructura_actual_CD_in(); + + fseek(CD_in, (long)LSJ + ( LSC * ( CurrTopLineCD_in + CurrRowCD_in - 1) ), SEEK_SET); + fwrite(&CD_in1, LSC, 1, CD_in); + + CurrRowCD_in++; + if (CurrRowCD_in>19) { CurrTopLineCD_in++; CurrRowCD_in--; } + PrintWholeScreenCD_in(); + GetLineCD_in(); + EditCursorCD_in(0); + PrintLineCD_in2(); + + } + +} + +// +// +// +// +// +// +// +// + +void Mueve_Abajo_CD_in(void){ + + int CurrRecord = CurrTopLineCD_in + CurrRowCD_in - 1; + + if (CurrRowCD_in == 19) { + if ( (CurrRecord - 1) >= CD_cabecera.Records) { BEEP(); EditCursorCD_in(0); } + else { CurrTopLineCD_in++; + PrintWholeScreenCD_in(); + GetLineCD_in(); + PrintLineCD_in2(); + } + } else { + if( (CurrRecord - 1) >= CD_cabecera.Records) { BEEP(); EditCursorCD_in(0); } + else { CurrRowCD_in++; + GetLineCD_in(); + PrintLineCD_in2(); + } + } + +} + +void Mueve_Arriba_CD_in(void){ + int CurrRecord = CurrTopLineCD_in + CurrRowCD_in - 1; + + if (CurrRowCD_in==1) { + if ((CurrRecord - 1) <= 0) { BEEP(); EditCursorCD_in(0); } + else { + CurrTopLineCD_in--; + PrintWholeScreenCD_in(); + GetLineCD_in(); + PrintLineCD_in2(); + } + + } else { + if( (CurrRecord - 1) <= 0) { BEEP(); // Do nothing, get over... + + } else { CurrRowCD_in--; + GetLineCD_in(); + PrintLineCD_in2(); + } + } + +} + +void EditCursorCD_in(int ShowHide) { + +char Buffer[80]; +int Ch; + + if (!ShowHide) { + setcolor(255); + setfillstyle(SOLID_FILL, 255); + Borra_Campo_Visual( CurrColCD_in ); + setcolor(240); + } else { + setcolor(240); + setfillstyle(SOLID_FILL, 240); + Borra_Campo_Visual( CurrColCD_in ); + Texto_Normal + } + + switch(CurrColCD_in){ + case 1: + // Nombre del Programa 26 d. + outtextxy( 8, 98 + (CurrRowCD_in-1) * 12, CD_in1.Nombre ); + break; + case 2: + // Nombre del Instalador + outtextxy( 175, 98 + (CurrRowCD_in-1) * 12, CD_in1.N_Install ); + break; + case 3: + // Nombre del Ejecutable + outtextxy( 233, 98 + (CurrRowCD_in-1) * 12, CD_in1.N_Exe); + break; + case 4: + // Es Instalable ? Cual es el Tipo ? + if ( CD_in1.Alt_Install.Usar_VGA_COPY ) strcpy( Buffer, "VCpy" ); else + if ( CD_in1.Alt_Install.Usar_ARJ ) strcpy( Buffer, "Arj" ); else + if ( CD_in1.Alt_Install.Usar_ZIP ) strcpy( Buffer, "Zip" ); else + if ( CD_in1.Alt_Install.Usar_XCopy ) strcpy( Buffer, "Xcpy" ); else + if ( CD_in1.Alt_Install.Usar_Install_P) strcpy( Buffer, "Inst" ); else + if ( CD_in1.Alt_Install.Usar_LHA ) strcpy( Buffer, "NO I" ); else + strcpy( Buffer, "NO I" ); + outtextxy( 291, 98 + (CurrRowCD_in-1) * 12, Buffer ); + break; + + case 5: + // Es ejecutable ? + strcpy( Buffer, (CD_in1.Typo.Ejecutable ? "SI" : "NO") ); + outtextxy( 321, 98 + (CurrRowCD_in-1) * 12, Buffer ); + break; + + case 6: + // Tiene Dibujo ? + strcpy( Buffer, (CD_in1.Typo.T_Dibujo ? "SI" : "NO") ); + outtextxy( 353, 98 + (CurrRowCD_in-1) * 12, Buffer ); + break; + case 7: + // Directorio + outtextxy( 123, 338, CD_in1.Dir_P ); + break; + case 8: + // Nombre Imagen + outtextxy( 123, 358, CD_in1.N_Img ); + break; + } + +} + + + +void PrintLineCD_in(void){ + + char Buffer[80]; + + setcolor(240); + setfillstyle(SOLID_FILL, 240); + Borra_Campo_Visual(-1); + + Texto_Normal + // Nombre del Programa 26 d. + outtextxy( 8, 98 + (CurrRowCD_in-1) * 12, CD_in1.Nombre ); + // Nombre del Instalador + outtextxy( 175, 98 + (CurrRowCD_in-1) * 12, CD_in1.N_Install ); + // Nombre del Ejecutable + outtextxy( 233, 98 + (CurrRowCD_in-1) * 12, CD_in1.N_Exe); + // Es Instalable ? Cual es el Tipo ? + if ( CD_in1.Alt_Install.Usar_VGA_COPY ) strcpy( Buffer, "VCpy" ); else + if ( CD_in1.Alt_Install.Usar_ARJ ) strcpy( Buffer, "Arj" ); else + if ( CD_in1.Alt_Install.Usar_ZIP ) strcpy( Buffer, "Zip" ); else + if ( CD_in1.Alt_Install.Usar_XCopy ) strcpy( Buffer, "Xcpy" ); else + if ( CD_in1.Alt_Install.Usar_Install_P) strcpy( Buffer, "Inst" ); else + if ( CD_in1.Alt_Install.Usar_LHA ) strcpy( Buffer, "NO I" ); else + strcpy( Buffer, "NO I" ); + outtextxy( 291, 98 + (CurrRowCD_in-1) * 12, Buffer ); + // Es ejecutable ? + strcpy( Buffer, (CD_in1.Typo.Ejecutable ? "SI" : "NO") ); + outtextxy( 321, 98 + (CurrRowCD_in-1) * 12, Buffer ); + // Tiene Dibujo ? + strcpy( Buffer, (CD_in1.Typo.T_Dibujo ? "SI" : "NO") ); + outtextxy( 353, 98 + (CurrRowCD_in-1) * 12, Buffer ); + // Directorio + outtextxy( 123, 338, CD_in1.Dir_P ); + // Nombre Imagen + outtextxy( 123, 358, CD_in1.N_Img ); + +} + + +void PrintLineCD_in2(void){ + + setcolor(240); + setfillstyle(SOLID_FILL, 240); + Borra_Campo_Visual(7); + Borra_Campo_Visual(8); + + Texto_Normal + // Directorio + outtextxy( 123, 338, CD_in1.Dir_P ); + // Nombre Imagen + outtextxy( 123, 358, CD_in1.N_Img ); + +} + +void PrintWholeScreenCD_in(void){ + +int tmp = CurrRowCD_in; + + setcolor(240); + setfillstyle(SOLID_FILL, 240); +Borra_Campo_Visual(-2); + + for(CurrRowCD_in = 1; CurrRowCD_in < (19+1); CurrRowCD_in++) + + if ( (CurrTopLineCD_in + CurrRowCD_in - 1) <= (CD_cabecera.Records + 1) ) { + GetLineCD_in(); + PrintLineCD_in(); + } + +PrintLineCD_in2(); +CurrRowCD_in = tmp; + +} + +void Edit_Item_CD_in(void){ + + char buffer[80]; + + switch(CurrColCD_in){ + case 1: + // Nombre del Programa 26 d. + // Puntero a cadena, T/N, Dtos, Color, Fondo, Up, Left, Right, Down, Linea + InputCadenaG_T4( CD_in1.Nombre, 0, 26, 255, 250, 8, 98/*, 175, 327*/, CurrRowCD_in-1); + break; + case 2: + // Nombre del Instalador + InputCadenaG_T4( CD_in1.N_Install, 0, 8, 255, 250, 175, 98/*, 227, 327*/, CurrRowCD_in-1); + break; + case 3: + // Nombre del Ejecutable + InputCadenaG_T4( CD_in1.N_Exe, 0, 8, 255, 250, 233, 98/*, 285, 327*/, CurrRowCD_in-1); + break; + case 4: + // Es Instalable ? Cual es el Tipo ? + if ( CD_in1.Alt_Install.Usar_VGA_COPY ) strcpy( buffer, "1" ); else + if ( CD_in1.Alt_Install.Usar_ARJ ) strcpy( buffer, "2" ); else + if ( CD_in1.Alt_Install.Usar_ZIP ) strcpy( buffer, "3" ); else + if ( CD_in1.Alt_Install.Usar_XCopy ) strcpy( buffer, "4" ); else + if ( CD_in1.Alt_Install.Usar_Install_P) strcpy( buffer, "5" ); else + if ( CD_in1.Alt_Install.Usar_LHA ) strcpy( buffer, "6" ); + + InputCadenaG_T4( buffer, 1, 1, 255, 250, 291, 98/*, 315, 327*/, CurrRowCD_in-1); + + CD_in1.Alt_Install.Usar_VGA_COPY = 0; + CD_in1.Alt_Install.Usar_ARJ = 0; + CD_in1.Alt_Install.Usar_ZIP = 0; + CD_in1.Alt_Install.Usar_XCopy = 0; + CD_in1.Alt_Install.Usar_Install_P = 0; + CD_in1.Alt_Install.Usar_LHA = 0; + + switch( atoi(buffer) ) { + + case 1: CD_in1.Alt_Install.Usar_VGA_COPY = 1; + break; + case 2: CD_in1.Alt_Install.Usar_ARJ = 1; + break; + case 3: CD_in1.Alt_Install.Usar_ZIP = 1; + break; + case 4: CD_in1.Alt_Install.Usar_XCopy = 1; + break; + case 5: CD_in1.Alt_Install.Usar_Install_P = 1; + break; + case 6: CD_in1.Alt_Install.Usar_LHA = 1; + break; + default: + break; + } + break; + case 5: + // Es ejecutable ? + strcpy( buffer, (CD_in1.Typo.Ejecutable ? "1" : "0") ); + InputCadenaG_T4( buffer, 1, 1, 255, 250, 321, 98/*, 347, 327*/, CurrRowCD_in-1); + CD_in1.Typo.Ejecutable = atoi(buffer); + break; + case 6: + // Tiene Dibujo ? + strcpy( buffer, (CD_in1.Typo.T_Dibujo ? "1" : "0") ); + InputCadenaG_T4( buffer, 1, 1, 255, 250, 353, 98/*, 377, 327*/, CurrRowCD_in-1); + CD_in1.Typo.T_Dibujo = atoi(buffer); + break; + case 7: + // Directorio + InputCadenaG_T4( CD_in1.Dir_P, 0, 40, 255, 250, 123, 338/*, 377, 352*/, 0); + break; + case 8: + // Nombre Imagen + InputCadenaG_T4( CD_in1.N_Img, 0, 8, 255, 250, 123, 358/*, 175, 372*/, 0); + break; + } + PutLineCD_in(); + GetLineCD_in(); + PrintLineCD_in(); + PrintLineCD_in2(); + +} + + + +void Borra_Campo_Visual(int Columna){ + + +switch( Columna ) { + case -2: + // ** Nombre + bar( 8, 98, 169, 327 ); + // ** Nombre Install + bar( 175, 98, 227, 327 ); + // ** Nombre Exe + bar( 233, 98, 285, 327 ); + // ** Instalable + bar( 291, 98, 315, 327 ); + // ** Ejecutable + bar( 321, 98, 347, 327 ); + // ** Imagen + bar( 353, 98, 377, 327 ); + // *** Directorio + bar( 123, 338, 377, 352 ); + // *** Nombre Imagen + bar( 123, 358, 175, 372 ); + // *** Directorio + bar( 123, 338, 377, 352 ); + // *** Nombre Imagen + bar( 123, 358, 175, 372 ); + break; + case -1: + // *** Los Borra -> TODOS + // C:\>del. + // Todos los archivos en el directorio + // seran eliminados. Si / No ? S + // C:\>_ + // ** Nombre + bar( 8, 98 + (CurrRowCD_in-1) * 12, 169, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + // ** Nombre Install + bar( 175, 98 + (CurrRowCD_in-1) * 12, 227, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + // ** Nombre Exe + bar( 233, 98 + (CurrRowCD_in-1) * 12, 285, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + // ** Instalable + bar( 291, 98 + (CurrRowCD_in-1) * 12, 315, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + // ** Ejecutable + bar( 321, 98 + (CurrRowCD_in-1) * 12, 347, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + // ** Imagen + bar( 353, 98 + (CurrRowCD_in-1) * 12, 377, 98 + ( CurrRowCD_in - 1 ) * 12 + 10 ); + // *** Directorio + bar( 123, 338, 377, 352 ); + // *** Nombre Imagen + bar( 123, 358, 175, 372 ); + break; + case 1: + // ** Nombre + bar( 8, 98 + (CurrRowCD_in-1) * 12, 169, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + break; + case 2: + // ** Nombre Install + bar( 175, 98 + (CurrRowCD_in-1) * 12, 227, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + break; + case 3: + // ** Nombre Exe + bar( 233, 98 + (CurrRowCD_in-1) * 12, 285, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + break; + case 4: + // ** Instalable + bar( 291, 98 + (CurrRowCD_in-1) * 12, 315, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + break; + case 5: + // ** Ejecutable + bar( 321, 98 + (CurrRowCD_in-1) * 12, 347, 98 + ( CurrRowCD_in - 1 ) * 12 + 10); + break; + case 6: + // ** Imagen + bar( 353, 98 + (CurrRowCD_in-1) * 12, 377, 98 + ( CurrRowCD_in - 1 ) * 12 + 10 ); + break; + case 7: + // *** Directorio + bar( 123, 338, 377, 352 ); + break; + case 8: + // *** Nombre Imagen + bar( 123, 358, 175, 372 ); + break; + default: + break; +} + +} + + +int InputCadenaG_T4(char *s, int numalp, int lmax, int cc, int cf, int X0, int Y0/*, int X1, int Y1*/, int RoW) +{ + + int ls; // longitud cadena + char *s1; // puntero a cadena inicial + int c, ok; + + s1 = s; // inicio cadena + + setcolor(cf); // pone color a 0 para borrar + setfillstyle(SOLID_FILL, cf); + Borra_Campo_Visual(CurrColCD_in); + setcolor(cc); // devuelve el color a su estado + + outtextxy( X0, Y0+RoW*12, s ); + + ls = strlen ( s ); // Longitud de actual + + if ( ls < lmax ) { + setcolor(250); + outtextxy( X0+textwidth( s1 ), Y0+RoW*12, ""); + } + + s += ls; // se coloca en el final + + do{ + c = getch(); // obtiene tecla + + ok = ( c == 13 || c == 0); // 13 = INTRO || Especiales + + if ( c == 8 && ls > 0 && !ok ) { // 8 = Back Space + ls--; + s--; + + *s = '\0'; + + setcolor(cf); + setfillstyle(SOLID_FILL, cf); + Borra_Campo_Visual(CurrColCD_in); +//bar(X0, Y0+RoW*12+/*2*/4, X1-2, Y0+4+RoW*12 + 10); + + setcolor(cc); + outtextxy( X0, Y0+RoW*12, s1 ); + setcolor(4); + outtextxy( X0+textwidth( s1 ), Y0+RoW*12, ""); + setcolor(cc); + + } else { + if ( !numalp && c >= 32 && c <= 254 /* isprint(c) */ && ls < lmax) { + + *s++ = c; + ls++; + + *s = '\0'; + setcolor(cf); + setfillstyle(SOLID_FILL, cf); + Borra_Campo_Visual(CurrColCD_in); +//bar(X0, Y0+RoW*12+/*2*/4, X1-2, Y0+4+RoW*12 + 10); + setcolor(cc); + outtextxy( X0, Y0+RoW*12, s1 ); + + if ( ls < lmax ) { + setcolor(4); + outtextxy( X0+textwidth( s1 ), Y0+RoW*12, ""); + setcolor(cc); + } + + + } else { + if ( numalp && isdigit(c) && ls < lmax) { + *s++ = c; + ls++; + + *s = '\0'; // Cero final + setcolor(cf); + setfillstyle(SOLID_FILL, cf); + Borra_Campo_Visual(CurrColCD_in); +//bar(X0, Y0+RoW*12+4, X1-2, Y0+4+RoW*12 + 10); + setcolor(cc); + + outtextxy( X0, Y0+RoW*12, s1 ); + + if ( ls < lmax ) { + setcolor(4); + outtextxy( X0+textwidth( s1 ), Y0+RoW*12, ""); + setcolor(cc); + } + + + } + /**/ + else if( c == 27 ) {*s='\0'; ok = 1; } + /**/ + else BEEP(); + } + } + + }while(!ok); + + ok = 1; + *s = ' '; + while( ok ) { + if(*s==' ') { *s = '\0'; s--; + } else { s++; ok = 0; } + } + + *s = '\0'; + + while(kbhit()) getch(); // Vacia Buffer impidiendo falsas + // pulsaciones... + + return ls; +} + +void BEEP(void){ + + sound(440); + delay(50); + nosound(); + +} + +void Inicializa_Apertura(void) { + + CurrTopLineCD_in = 1; + CurrRowCD_in = 1; + CurrColCD_in = 1; + Abre_Ficha_CD_in(); + PrintWholeScreenCD_in(); + GetLineCD_in(); + EditCursorCD_in(0); + +} + +void Muestra_Informacion(void){ + + char Buffer[80]; + + setcolor(240); + setfillstyle(SOLID_FILL, 240); + + bar( 13, 388, 182, 434 ); + + setcolor(255); + sprintf( Buffer, "Modulo:" ); + switch ( Item_select ) { + case 1: strcat( Buffer, " Juegos" ); break; + case 2: strcat( Buffer, " P.Texto" ); break; + case 3: strcat( Buffer, " Msica" ); break; + case 4: strcat( Buffer, " Dibujo" ); break; + case 5: strcat( Buffer, " Utild." ); break; + case 6: strcat( Buffer, " Base D" ); break; + case 7: strcat( Buffer, " Hoja C" ); break; + case 8: strcat( Buffer, " Red" ); break; + case 9: strcat( Buffer, " Lenguaj" ); break; + case 10:strcat( Buffer, " Scanner" ); break; + case 11:strcat( Buffer, " News" ); break; + case 12:strcat( Buffer, " Compr" ); break; + case 13:strcat( Buffer, " Videos" ); break; + case 14:strcat( Buffer, " Varios" ); break; + case 15:strcat( Buffer, " CD's" ); break; + default: strcat( Buffer, "ERROR" ); break; + } + + strcat( Buffer, ( (Items_for==DOS) ? ", DOS" : ", WINDOWS") ); + outtextxy( 15, 390, Buffer); + + sprintf( Buffer, "Linea %02d. Reg %d / %d", CurrRowCD_in, (CurrRowCD_in+CurrTopLineCD_in-1), (CD_cabecera.Records + 1) ); + outtextxy( 15, 400, Buffer); + + + +} + + + +/////// EDITAR COMENTARIO.... + +int Editar_Comentario(void) +{ + + int ls; // longitud cadena + char *s1, *s, *s_tmp, *s_tmp1; // puntero a cadena inicial + int key, ok, Linea = 0, Columna = 0, X, Y, lmax; + char Buffer[80]; + + X = 395; Y = 105; lmax = 35; + ok = 0; + + s_tmp1 = s_tmp = s = s1 = CD_in1.Comentario[0]; // inicio cadena + + s += lmax ; *s = '\0'; + s = s_tmp; + +do { + + setcolor(250); // pone color a 0 para borrar + setfillstyle(SOLID_FILL, 250); // selecciona los atributos de + bar( X, Y+Linea*11, X + 230, Y+Linea*11 + 11); // relleno, y Borra el campo + setcolor(255); // devuelve el color a su estado + + outtextxy( X, Y+Linea*11, s1 ); // e imprime la cadena. +// ls = strlen ( s ); // Longitud de la cadena actual + + + if ( Columna < lmax ) { // Muestra cursor si es posible + setcolor(251); + strncpy( Buffer, s1, Columna ); + Buffer[Columna] = '\0'; + outtextxy( X + textwidth( Buffer ), Y+Linea*11+2, ""); + } + + switch ( ( key = getch() ) ) { // obtiene tecla + // Intro o Return + case 13: + + if( Linea < 31 ) { + setcolor(240); // pone color a 0 para borrar + setfillstyle(SOLID_FILL, 240); // selecciona los atributos de + bar( X, Y+Linea*11, X + 230, Y+Linea*11 + 11); // relleno, y Borra el campo + setcolor(255); // devuelve el color a su estado + outtextxy( X, Y+Linea*11, s1 ); // e imprime la cadena. + + Linea++; + s_tmp1 = s_tmp = s = s1 = CD_in1.Comentario[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 ) { + setcolor(240); // pone color a 0 para borrar + setfillstyle(SOLID_FILL, 240); // selecciona los atributos de + bar( X, Y+Linea*11, X + 230, Y+Linea*11 + 11); // relleno, y Borra el campo + setcolor(255); // devuelve el color a su estado + outtextxy( X, Y+Linea*11, s1 ); // e imprime la cadena. + + Linea--; + s_tmp1 = s_tmp = s = s1 = CD_in1.Comentario[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 < 31 ) { + setcolor(240); // pone color a 0 para borrar + setfillstyle(SOLID_FILL, 240); // selecciona los atributos de + bar( X, Y+Linea*11, X + 230, Y+Linea*11 + 11); // relleno, y Borra el campo + setcolor(255); // devuelve el color a su estado + outtextxy( X, Y+Linea*11, s1 ); // e imprime la cadena. + + Linea++; + s_tmp1 = s_tmp = s = s1 = CD_in1.Comentario[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 15: + if ( Columna > 0) { Columna--; s--; } + break; + default: + BEEP(); + + } + + 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++; + } + else BEEP(); + break; + } +}while(!ok); + +while(kbhit()) getch(); // Vacia Buffer impidiendo falsas + // pulsaciones... + + setcolor(240); // pone color a 0 para borrar + setfillstyle(SOLID_FILL, 240); // selecciona los atributos de + bar( X, Y+Linea*11, X + 230, Y+Linea*11 + 11); // relleno, y Borra el campo + setcolor(255); // devuelve el color a su estado + + outtextxy( X, Y+Linea*11, s1 ); // e imprime la cadena. + PutLineCD_in(); + GetLineCD_in(); + + +return /* de momento nada */ 0; + +} + +void Muestra_Comentario(void){ + + int X, Y; + + X = 395; Y = 105; + + setcolor(240); // pone color a 0 para borrar + setfillstyle(SOLID_FILL, 240); // selecciona los atributos de + for(int Linea=0; Linea<32; Linea++ ){ + bar( X, Y+Linea*11, X + 230, Y+Linea*11 + 11); // relleno, y Borra el campo + setcolor(255); // devuelve el color a su estado + outtextxy( X, Y+Linea*11, CD_in1.Comentario[Linea] ); // e imprime la cadena. + } +} \ No newline at end of file diff --git a/CD_IN/SUPERVGA.OBJ b/CD_IN/SUPERVGA.OBJ new file mode 100644 index 0000000..629a04c Binary files /dev/null and b/CD_IN/SUPERVGA.OBJ differ diff --git a/CD_INST.CPP b/CD_INST.CPP new file mode 100644 index 0000000..1706317 --- /dev/null +++ b/CD_INST.CPP @@ -0,0 +1,559 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "..\libs\make_bot\make_bot.h" +//#include "cd_icons.h" +#include "cd_error.h" +#include "cd_file.h" +#include "CD_SND.H" + +extern int /*far _cdecl*/ Fichero_cd_img(char Dinamicos_Estaticos); + +#define DOS 1 +#define WINDOWS 2 + + +int make_dir(char *Target); + +extern void Sonido(char Sonido); +extern void BEEP(void); +void Init_Install(int CurrIcon); +extern char *current_directory(char *path); +extern void Inicializa_Dibujo(int L_Imagen, char *N_Imagen2); +extern void Inicializa_Iconos(void); +extern void Coloca_Iconos_Dos_Windows(void); +extern char far *Icono; // 18 +// extern unsigned char *P_Raton1, *P_Raton2, *P_Raton3, *P_Raton4; +// extern void *Pantalla; +extern void InicializaSVGA(void); +extern char dac[256*3]; +extern "C" void APAGA_PANTALLA(char *); +extern "C" void ENCIENDE_PANTALLA(char *); + +extern void Inicializa_Apertura(void); +// extern void Menu_de_Edicion(void); +extern void Coloca_Iconos(int Start_Icon); + +int file_exists(char *filename); +int Muestra_Mensaje(int Mensaje, char *file); + +typedef struct { + + unsigned int Exit_after_EXE : 1; + unsigned int With_Out_Sound : 1; + unsigned int Auto_Install : 1; + unsigned int Check_Free_Size : 1; + unsigned int Format_Always : 1; + unsigned int Without_Backgr : 1; + unsigned int Futura_Ampliac : 4; + +} Cd_CFG; + +extern Cd_CFG CD_CFG1; + +extern FILE *CD_in; +extern CD_FILE CD_in2; + +int InputCadenaG_T4(char *s, int numalp, int lmax, int cc, int cf, int X0, int Y0, int X1, int Y1, int RoW); + +void Init_Install(int CurrIcon){ + + int ok = 0, inst = 0, key; + char curdir[80], *Ptr, Origen[80]; + char Buffer[200], D_Target[80]; + D_Target[0] = '\0'; +// ERROR_SALVA = 0; + + void *C_Texto, *C_Aceptar, *C_Cancelar; + + /// Comprobamos que estamos preparados para proceder con + /// la instalacin pertinente... + strcpy( Buffer, CD_in2.Dir_P ); // Existe el directorio + Buffer[0] = getdisk() + 'A'; // origen... + if ( !file_exists(Buffer) ) { Muestra_Mensaje(113, "cd_out.img"); +// Sonido("CD_OUT71.WAV"); + Sonido( Error_113 ); + return; } + + +C_Texto = malloc( JD_imagesize(200, 212, 440, 267) ); +C_Aceptar = malloc( JD_imagesize(200, 270, 280, 295) ); +C_Cancelar = malloc( JD_imagesize(360, 270, 440, 295) ); + + +if( C_Texto == NULL || C_Aceptar == NULL || C_Cancelar == NULL) { + closegraph(); + cprintf("\n\rSALIENDO"); + cprintf("\n\rImposible encontrar %ldKbytes en el Heap", + ( JD_imagesize(118, 160, 521, 335) + + JD_imagesize(118, 160, 521, 335) + + JD_imagesize(118, 160, 521, 335) + ) + ); + exit(SIN_MEMORIA); +} + +getimage(200, 212, 440, 267, C_Texto); +getimage(200, 270, 280, 295, C_Aceptar); +getimage(360, 270, 440, 295, C_Cancelar); + + +// Imprime_Estaticos(20, "cd_out.img"); // Imprime botones estaticos 'Seccion 20' + Fichero_cd_img(20); +Imprime_Secuencia(4); // Imprime secuencia 4. +// Imprime_Estaticos(21, "cd_out.img"); // Imprime textos estaticos 'Seccion 5' + Fichero_cd_img(21); + +settextstyle( SMALL_FONT, HORIZ_DIR, 4); +if ( CD_in2.Alt_Install.Usar_Install_P == 1 ) { + setcolor(241); + outtextxy(215, 243, " - USAR INSTALADOR PROPIO -"); +} + +while(!ok){ // Bucle infinito + + switch( Comprueba_Secuencia( 4 ) ) { // Iniciamos comprobacion de 2 sec + + case 0: // No se pulso ningun BOTON + // Pero el raton fue presionado en + // algun sitio... +// Sonido("CD_OUT02.WAV"); + Sonido( Key_Press ); + break; + case -2: // Hay una tecla normal en BUFFER + switch( key = getch() ) { // La utilizamos + // Intro ( ACEPTAR ) +// case 13: +// exe = 1; +// ok = 1; +// break; + // ESC ( CANCELAR ) + case 14: +// Sonido("CD_OUT0F.WAV"); + Sonido( Cancel ); + inst = 0; + ok = 1; + break; + default: + if( ( isprint(key) || isspace(key) ) && CD_in2.Alt_Install.Usar_Install_P == 0 ) { + if(key!=13) ungetch(key); + if ( CD_in2.Alt_Install.Usar_VGA_COPY==0 ) + InputCadenaG_T4(D_Target, 0, 35, 241, 240, 215, 243, 427, 254, 0); + else + InputCadenaG_T4(D_Target, 0, 1, 241, 240, 215, 243, 427, 254, 0); + } + break; + } + break; + case -1: // Hay una tecla especial en BUFFER + getch(); // La eliminamos + break; + // Boton Aceptar + case 1: +// Sonido("CD_OUT0E.WAV"); + Sonido( Ok ); + inst = 1; + ok = 1; + break; + // Boton Cancelar + case 2: +// Sonido("CD_OUT0F.WAV"); + Sonido( Cancel ); + inst = 0; + ok = 1; + break; + default: +// Sonido("CD_OUT01.WAV"); + Sonido( Mouse_Press ); + while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER + break; + } + +} + +putimage(200, 212, C_Texto, COPY_PUT); +putimage(200, 270, C_Aceptar, COPY_PUT); +putimage(360, 270, C_Cancelar, COPY_PUT); + +if ( CD_in2.Alt_Install.Usar_Install_P == 0 && !file_exists(D_Target) ) + if ( make_dir(D_Target)!= 1 ) return; + + + +if ( inst == 1 ) { + + /// Liberamos la memoria asignada para al DRIVER grfico... + current_directory(curdir); + APAGA_PANTALLA(dac); + closegraph(); + Libera_Memoria(); +// Libera_Raton_Animado(); + /* + free(P_Raton1); + free(P_Raton2); + free(P_Raton3); + free(P_Raton4); + free(Pantalla); + */ + farfree(Icono); + fclose(CD_in); + + /* + + C O M I E N Z A L A I N S T A L A C I O N D E L P R O G R A M A + + */ + + cprintf("Ŀ\n\r"); + cprintf(" JD & CD_OUT \n\r"); + cprintf("\n\r"); + cprintf("INSTALANDO PROGRAMA: [%s]\n\r", CD_in2.Nombre); + + strcpy( Buffer, CD_in2.Dir_P ); // Existe el directorio + Buffer[0] = getdisk() + 'A'; // origen... + chdir(Buffer); // Refresamos a nuestro directorio + strcpy( Origen, Buffer ); + strcat( Origen, "\\*.*"); + + if ( CD_in2.Alt_Install.Usar_XCopy == 1 ) { + + if ( ( Ptr = searchpath("xcopy.exe") ) != NULL ) { + strcpy( Buffer, Ptr ); + } else { + strcpy( Buffer, "E:\\cd_out\\compress\\xcopy " ); + Buffer[0] = getdisk() + 'A'; // origen... + } + strcat(D_Target, "\\*.*" ); + if ( spawnl(P_WAIT, Buffer, "VOID", Origen, D_Target, "/s", "/e", "/y", NULL) == -1 ) { + printf("Imposible instalar %s, XCOPY no acepta parametrizaje", Buffer); + getch(); + } + } else + if ( CD_in2.Alt_Install.Usar_Install_P == 1 ) { + strcpy( Origen, Buffer ); + strcat( Origen, "\\"); + strcat( Origen, CD_in2.N_Install); + if ( spawnl(P_WAIT, /*CD_in2.N_Install*/Origen, NULL) == -1 ) { + printf("Imposible ejecutar %s, el archivo no esta disponible", Buffer); + getch(); + } + } else + if ( CD_in2.Alt_Install.Usar_ARJ == 1 ) { + strcpy( Origen, Buffer ); + strcat( Origen, "\\*.arj"); + + if ( ( Ptr = searchpath("ARJ.EXE") ) != NULL ) { + strcpy( Buffer, Ptr ); + } else { + strcpy( Buffer, "E:\\cd_out\\compress\\ARJ" ); + Buffer[0] = getdisk() + 'A'; // origen... + } + + if ( spawnl(P_WAIT, Buffer, "VOID", "x", "-va", /*"*.arj"*/Origen, D_Target, NULL) == -1 ) { + printf("Imposible instalar %s, ARJ no ejecutable.", CD_in2.Nombre); + getch(); + } + } else + if ( CD_in2.Alt_Install.Usar_ZIP == 1 ) { + strcpy( Origen, Buffer ); + strcat( Origen, "\\*.zip"); + + if ( ( Ptr = searchpath("PKUNZIP.EXE") ) != NULL ) { + strcpy( Buffer, Ptr ); + } else { + strcpy( Buffer, "E:\\cd_out\\compress\\PKUNZIP" ); + Buffer[0] = getdisk() + 'A'; // origen... + } + + if ( spawnl(P_WAIT, Buffer, "VOID", "-$", "-d", /*"*.zip"*/Origen, D_Target, NULL) == -1 ) { + printf("Imposible instalar %s, ZIP no ejecutable.", CD_in2.Nombre); + getch(); + } + } + + +// unsigned int Usar_VGA_COPY : 1; + + + + clrscr(); + cprintf("Ŀ\n\r"); + cprintf(" JD & CD_OUT \n\r"); + cprintf("\n\r"); + cprintf("Regresando a CD_OUT...\n\r"); + + //// Recargamos el Programa... + chdir(curdir); // Refresamos a nuestro directorio + // de origen + InicializaSVGA(); // Reinicializamos la SVGA + APAGA_PANTALLA(dac); // Apagamos la Pantalla + Inicializa_Dibujo( (-1), "NADA"); // Inicializamos un nuevo dibujo + +// if( carga_botones("cd_out.img") // Recarga botones del fichero "CD_out.img" + if ( Fichero_cd_img(0) + + != OK ) { +// Imprime_Estaticos( 112, "cd_out.img"); + Fichero_cd_img(112); + Espera_Tecla_o_Raton(); + closegraph(); + cprintf("\n\rError en la CARGA DE BOTONES"); + exit(112); + } + + +// Imprime_Estaticos( 1, "cd_out.img"); // Imprime botones estaticos 'Seccion 1' + Fichero_cd_img(1); + Imprime_Secuencia(1); // Imprime secuencia 1. + +// Imprime_Estaticos( 2, "cd_out.img"); // Imprime botones estaticos 'Seccion 2' + // para los textos + Fichero_cd_img(2); +/**/ PunteroRaton = 100; /**/ +/**/ inicializa_raton_grafico( 0, 0, 618, 460); /**/ +/**/ if ( PunteroRaton != 100 ) { /**/ +/**/ closegraph(); /**/ +/**/ cprintf("Memoria_Insuficiente para el RATON\n\r");/**/ +/**/ exit(1); /**/ +/**/ } /**/ + + Inicializa_Iconos(); + Coloca_Iconos_Dos_Windows(); + Coloca_Iconos(CurrIcon); + + ENCIENDE_PANTALLA(dac); + /* + if ( (Pantalla = malloc( JD_imagesize(0, 0, 21, 21) )) == NULL ) { + Imprime_Estaticos( SIN_CVN, "cd_out.img"); + Espera_Tecla_o_Raton(); + closegraph(); + cprintf("\n\rError en la asignacin de memoria para la mascara del raton"); + exit(2); + } + */ + Imprime_Bordes(1, 1, 251); + settextstyle( SMALL_FONT, HORIZ_DIR, 4); + Inicializa_Apertura(); + + True_Push = ON; // Activa el TRUE PUSH ( PRESION REAL ) + + } + + + +} + + + +int InputCadenaG_T4(char *s, int numalp, int lmax, int cc, int cf, int X0, int Y0, int X1, int Y1, int RoW) +{ + + int ls; // longitud cadena + char *s1; // puntero a cadena inicial + int c, ok; + + s1 = s; // inicio cadena + + setcolor(cf); // pone color a 0 para borrar + setfillstyle(SOLID_FILL, cf); + bar( X0, Y0, X1, Y1 ); + setcolor(cc); // devuelve el color a su estado + + outtextxy( X0, Y0+RoW*12, s ); + + ls = strlen ( s ); // Longitud de actual + + if ( ls < lmax ) { + setcolor(250); + outtextxy( X0+textwidth( s1 ), Y0+RoW*12, ""); + } + + s += ls; // se coloca en el final + + do{ + c = getch(); // obtiene tecla + + ok = ( c == 13 || c == 0); // 13 = INTRO || Especiales + + if ( c == 8 && ls > 0 && !ok ) { // 8 = Back Space + ls--; + s--; + + *s = '\0'; + + setcolor(cf); + setfillstyle(SOLID_FILL, cf); + bar( X0, Y0, X1, Y1 ); + + setcolor(cc); + outtextxy( X0, Y0+RoW*12, s1 ); + setcolor(4); + outtextxy( X0+textwidth( s1 ), Y0+RoW*12, ""); + setcolor(cc); + + } else { + if ( !numalp && c >= 32 && c <= 254 && ls < lmax) { + + *s++ = c; + ls++; + + *s = '\0'; + setcolor(cf); + setfillstyle(SOLID_FILL, cf); + bar( X0, Y0, X1, Y1 ); + + setcolor(cc); + outtextxy( X0, Y0+RoW*12, s1 ); + + if ( ls < lmax ) { + setcolor(4); + outtextxy( X0+textwidth( s1 ), Y0+RoW*12, ""); + setcolor(cc); + } + + + } else { + if ( numalp && isdigit(c) && ls < lmax) { + *s++ = c; + ls++; + + *s = '\0'; // Cero final + setcolor(cf); + setfillstyle(SOLID_FILL, cf); + bar( X0, Y0, X1, Y1 ); + + setcolor(cc); + + outtextxy( X0, Y0+RoW*12, s1 ); + + if ( ls < lmax ) { + setcolor(4); + outtextxy( X0+textwidth( s1 ), Y0+RoW*12, ""); + setcolor(cc); + } + + + } +// + else if( c == 27 ) {*s='\0'; ok = 1; } +// + else BEEP(); + } + } + + }while(!ok); + + ok = 1; + *s = ' '; + while( ok ) { + if(*s==' ') { *s = '\0'; s--; + } else { s++; ok = 0; } + } + + *s = '\0'; + + while(kbhit()) getch(); // Vacia Buffer impidiendo falsas + // pulsaciones... + + setcolor(cf); + setfillstyle(SOLID_FILL, cf); + bar( X0, Y0, X1, Y1 ); + + setcolor(cc); + outtextxy( X0, Y0+RoW*12, s1 ); + + return ls; +} + +int file_exists(char *filename) +{ + return (access(filename, 0) == 0); +} + + + + + +int Muestra_Mensaje(int Mensaje, char *file) { + void *Imagen; + + + if ( (Imagen = malloc( JD_imagesize(200, 212, 440, 267) ) ) == NULL ) { + Espera_Tecla_o_Raton(); + Anclar_Raton(); + return -1; + } else { + getimage( 200, 212, 440, 267, Imagen ); +// Imprime_Estaticos( Mensaje, file); + Fichero_cd_img(Mensaje); + Espera_Tecla_o_Raton(); + Anclar_Raton(); + putimage( 200, 212, Imagen, COPY_PUT); + free(Imagen); + return 1; + } +} + + +int make_dir(char *Target){ + + char CurrDriver, Buffer[80], Crear_Dir[14], ok = 0, Contador=0, Sub_Cnt; + CurrDriver = getdisk(); // Obtenemos el directorio origen + + + strcpy( Buffer, Target ); // Realizamos una copia del Destino + strupr( Buffer ); // Lo transformamos a mayusculas + if ( Buffer[strlen(Buffer)] == '\\' ) // Si acaba en '\' ERROR + return 0; + + // para que al restarle 65 = 'A' + setdisk( ( Buffer[0] - 'A' ) ); // nos de el nmero lgico de unidad +if ( getdisk() != ( Buffer[0] - 'A' )) + return 0; // Si no podemos cambiar. Return 0; + +if ( chdir("\\") ) // Nos vamos al raz + return 0; // Si no podemos, ERROR !!! + + + Contador = 3; +do { + +Sub_Cnt = 0; +while( Buffer[Contador] != '\\' && Buffer[Contador] != '\0' ) { + Crear_Dir[Sub_Cnt] = Buffer[Contador]; + Contador++; + Sub_Cnt ++; +} +// Sub_Cnt++; + Contador++; + if ( Buffer[Contador-1] == NULL ) ok = 1; + Crear_Dir[Sub_Cnt] = '\0'; + + if ( !file_exists(Crear_Dir) ) { + if ( mkdir( Crear_Dir ) != 0 ) ok = 2; else + chdir( Crear_Dir ); + } else + chdir( Crear_Dir ); + +}while(!ok); + +if ( ok == 2 ) return 0; + +if ( chdir("\\") ) return 0; + + setdisk(CurrDriver); +if ( getdisk() != CurrDriver) // Volvemos hasta nuestra unidad + return 0; + + + return 1; +} diff --git a/CD_OUT.CPP b/CD_OUT.CPP new file mode 100644 index 0000000..9411e59 --- /dev/null +++ b/CD_OUT.CPP @@ -0,0 +1,412 @@ +///////////////////////////// FICHEROS A INCLUIR ///////////////////////////// +#include +#include +#include +#include +#include +#include +#include + +#include "CD_SND.H" + +//extern unsigned _stklen = 16000U; + +#include "XmsSupp.h" + +#include "cd_icons.h" +#include "cd_error.h" +#include "c:\program\src_dos\libs\make_bot\make_bot.h" +#include "c:\program\src_dos\libs\wavplav\wavplay.h" + + extern int /*far _cdecl*/ Fichero_cd_img(char Dinamicos_Estaticos); + +extern int far _Cdecl Svga256_fdriver[]; + +int huge DetectVGA256(){ return 2; } + +int Load_Snd(void); + +extern void Menu_de_Edicion(void); +extern void Inicializa_Iconos(void); +extern Abre_Ficha_CD_CFG(int R_W); +extern void Coloca_Iconos(int Start_Icon); +extern void Coloca_Iconos_Dos_Windows(void); +extern void Inicializa_Dibujo(int L_Imagen, char *N_Imagen2); + +extern char far *Icono; + +void InicializaSVGA(void); +extern char dac[256*3]; +extern "C" void APAGA_PANTALLA(char *); +extern "C" void ENCIENDE_PANTALLA(char *); +extern char far *dir_vga; +extern "C" void CHANGE_BANK(int); + +char _XMS = 1; + + +// int Raton_o_Tecla(void); +void Sonido( char Sonido ); + +typedef struct { + + unsigned int Exit_after_EXE : 1; + unsigned int With_Out_Sound : 1; + unsigned int Auto_Install : 1; + unsigned int Check_Free_Size : 1; + unsigned int Format_Always : 1; + unsigned int Without_Backgr : 1; + unsigned int Futura_Ampliac : 4; + +} Cd_CFG; + +extern Cd_CFG CD_CFG1; +char _VerImagen = 1; + +XmsSupp Xms_Image_Bank1, + Xms_Image_Bank2, + Xms_Image_Bank3, + Xms_Image_Bank4, + Xms_Image_Bank5; + +typedef struct + { + char Nombre_del_Programa[70]; + char Comentario_Inicial[70]; + + char VerHi, VerLow; + char Register; + + long Records; +} CABECERA; + +typedef struct + { + char Wave_Name[13]; // Nombre del Wave + char ID_code; // Codigo ID_ del Wave + unsigned long Pos; // Posicin de comienzo dentro del archivo destino + unsigned long Len; // Longitud + } CD_SND; + + CD_SND CD_Snd[19]; + +int main(int argc, char *argv[]){ + + +// /**/ if( Fichero_cd_img(0) /**/ +// /**/ == SIN_MEMORIA ) { // "botones.p1" /**/ +// /**/ closegraph(); /**/ +// /**/ cprintf("\n\rError en la CARGA DE BOTONES"); /**/ +// /**/ exit(112); /**/ +// /**/ } /**/ +// despliega_datos(); +// getch(); +// return 21; + +int L_Imagen = -1; +char *N_Imagen2; + +// +// Carga de los argumentos +//// +/**/ /**/ +/**/ for(int i=1; i<=argc; i++) /**/ +/**/ { /**/ +/**/ if( strcmp( argv[i], "-0") == 0 ) L_Imagen=0; else /**/ +/**/ if( strcmp( argv[i], "-1") == 0 ) L_Imagen=1; else /**/ +/**/ if( strcmp( argv[i], "-2") == 0 ) L_Imagen=2; else /**/ +/**/ if( strcmp( argv[i], "-3") == 0 ) L_Imagen=3; else /**/ +/**/ if( strcmp( argv[i], "-4") == 0 ) L_Imagen=4; else /**/ +/**/ if( strcmp( argv[i], "-5") == 0 ) L_Imagen=5; else /**/ +/**/ if( strcmp( argv[i], "-6") == 0 ) L_Imagen=6; else /**/ +/**/ if( strcmp( argv[i], "-7") == 0 ) L_Imagen=7; else /**/ +/**/ if( strcmp( argv[i], "-8") == 0 ) L_Imagen=8; else /**/ +/**/ if( strcmp( argv[i], "-9") == 0 ) L_Imagen=9; else /**/ +/**/ if( strncmpi( argv[i], "-N:", 3) == 0 ) { L_Imagen=-2; /**/ +/**/ N_Imagen2 = argv[i]; /**/ +/**/ N_Imagen2 += 3; /**/ +/**/ } else /**/ +/**/ if( strcmp( argv[i], "-NO_XMS") == 0 ) _VerImagen = 0; /**/ +/**/ if( strcmp( argv[i], "-NO_SND") == 0 ) CD_CFG1.With_Out_Sound=1;/**/ +/**/ } /**/ +/**/ /**/ +//// + +// +// Carga la Configuracin +//// +/**/ /**/ +/**/ clrscr(); /**/ +/**/ cprintf("JD & CD_OUT\r\n\r\n"); /**/ +/**/ cprintf("Cargando fichero de Configuracin. "); /**/ +/**/ Abre_Ficha_CD_CFG(0); /**/ +/**/ cprintf(" --> Ok!\n\r"); /**/ +/**/ /**/ +//// + +// +// Inicializacin Sonidos +//// +/**/ if ( !CD_CFG1.With_Out_Sound ) /**/ +/**/ { /**/ +/**/cprintf("Inicializando sonidos. "); /**/ +/**/ switch ( InitSB() ) { /**/ +/**/ case 0: /**/ +/**/ cprintf(" --> Speaker Ok!\n\r"); /**/ +/**/ break; /**/ +/**/ case 1: /**/ +/**/ cprintf(" --> Sound Blaster Ok!\n\r"); /**/ +/**/ break; /**/ +/**/ case 2: /**/ +/**/ cprintf(" --> Dac Casero Ok!\n\r"); /**/ +/**/ break; /**/ +/**/ } /**/ +/**/ } else cprintf(" --> Sin Sonidos Ok!\n\r"); /**/ +/**/ /**/ +/**/cprintf("Cargando estructura de sonidos. "); /**/ +/**/if( !Load_Snd() ) /**/ +/**/{ /**/ +/**/ CD_CFG1.With_Out_Sound = 0; /**/ +/**/ cprintf(" --> ERROR EN LA CARGA DE SONIDOS!\n\r"); /**/ +/**/} else { /**/ +/**/ cprintf(" --> Ok!\n\r"); /**/ +/**/} /**/ +/**/ /**/ +/**/ /**/ +/**/ /**/ +//// + +// +// Inicializacin de la XMS +//// +/**/ /**/ +/**/ cprintf("Inicializando XMS... \n\r"); /**/ +/**/ /**/ +/**/ // Errores en Inicializacion XMS. /**/ +/**/ /**/ +/**/ Xms_Image_Bank1.lError=0; /**/ +/**/ Xms_Image_Bank2.lError=0; /**/ +/**/ Xms_Image_Bank3.lError=0; /**/ +/**/ Xms_Image_Bank4.lError=0; /**/ +/**/ Xms_Image_Bank5.lError=0; /**/ +/**/ /**/ +/**/ InitXms(&Xms_Image_Bank1); /**/ +/**/ InitXms(&Xms_Image_Bank2); /**/ +/**/ InitXms(&Xms_Image_Bank3); /**/ +/**/ InitXms(&Xms_Image_Bank4); /**/ +/**/ InitXms(&Xms_Image_Bank5); /**/ +/**/ /**/ +/**/ GetInfo(&Xms_Image_Bank1); // Informe de estado. /**/ +/**/ if(Xms_Image_Bank1.lError || Xms_Image_Bank2.lError || /**/ +/**/ Xms_Image_Bank3.lError || Xms_Image_Bank4.lError || /**/ +/**/ Xms_Image_Bank5.lError )/**/ +/**/ /**/ +/**/ { /**/ +/**/ printf("Bank1 %s\n",Xms_Image_Bank1.cError); /**/ +/**/ printf("Bank2 %s\n",Xms_Image_Bank2.cError); /**/ +/**/ printf("Bank3 %s\n",Xms_Image_Bank3.cError); /**/ +/**/ printf("Bank4 %s\n",Xms_Image_Bank4.cError); /**/ +/**/ printf("Bank5 %s\n",Xms_Image_Bank5.cError); /**/ +/**/ _XMS = 0; /**/ +/**/ } /**/ +/**/ // Reservamos 64K * 5 bancos. Si hay Error lo Visualizamos. /**/ +/**/ AllocXms( 64, &Xms_Image_Bank1); /**/ +/**/ AllocXms( 64, &Xms_Image_Bank2); /**/ +/**/ AllocXms( 64, &Xms_Image_Bank3); /**/ +/**/ AllocXms( 64, &Xms_Image_Bank4); /**/ +/**/ AllocXms( 64, &Xms_Image_Bank5); /**/ +/**/ if(Xms_Image_Bank1.lError || Xms_Image_Bank2.lError || /**/ +/**/ Xms_Image_Bank3.lError || Xms_Image_Bank4.lError || /**/ +/**/ Xms_Image_Bank5.lError )/**/ +/**/ /**/ +/**/ { /**/ +/**/ printf("Bank1 %s\n",Xms_Image_Bank1.cError); /**/ +/**/ printf("Bank2 %s\n",Xms_Image_Bank2.cError); /**/ +/**/ printf("Bank3 %s\n",Xms_Image_Bank3.cError); /**/ +/**/ printf("Bank4 %s\n",Xms_Image_Bank4.cError); /**/ +/**/ printf("Bank5 %s\n",Xms_Image_Bank5.cError); /**/ +/**/ _XMS = 0; /**/ +/**/ /**/ +/**/ } /**/ +//// + +// +// Inicializacin Pantalla +//// +/**/ /**/ +/**/ InicializaSVGA(); /**/ +///**/ APAGA_PANTALLA(dac); /**/ +/**/ memset( dac, 0, 256*3 ); /**/ +unsigned Segt = FP_SEG(dac), Off = FP_OFF(dac); +/**/ asm mov ax, 0x1012 ; /**/ +/**/ asm mov bx, 0 ; /**/ +/**/ asm mov cx, 256 ; /**/ +/**/ asm mov es, Segt ; /**/ +/**/ asm mov dx, Off ; /**/ +/**/ asm int 0x10 ; /**/ +/**/ /**/ +/**/ if( CD_CFG1.Without_Backgr != 1 ) /**/ +/**/ Inicializa_Dibujo( L_Imagen, N_Imagen2 ); /**/ +/**/ /**/ +/**///if( carga_botones("cd_out.img") // Carga botones del fichero/**/ +/**/ if( Fichero_cd_img(0) /**/ +/**/ != 1 ) { // "botones.p1" /**/ +/**/ closegraph(); /**/ +/**/ cprintf("\n\rError en la CARGA DE BOTONES"); /**/ +/**/ exit(112); /**/ +/**/ } /**/ +/**/ /**/ +/**///Imprime_Estaticos( 1, "cd_out.img"); // Imprime botones estaticos/**/ +/**/ Fichero_cd_img(1); /**/ +/**/ // 'Seccion 1' /**/ +/**/ Imprime_Secuencia(1); // Imprime secuencia 1. /**/ +/**/ /**/ +/**///Imprime_Estaticos( 2, "cd_out.img"); // Imprime botones estaticos/**/ +/**/ Fichero_cd_img(2); /**/ +/**/ // 'Seccion 2' para los textos*/ +/**/ PunteroRaton = 100; /**/ +/**/ inicializa_raton_grafico( 0, 0, 618, 460); /**/ +/**/ if ( PunteroRaton != 100 ) { /**/ +/**/ closegraph(); /**/ +/**/ cprintf("Memoria_Insuficiente para el RATON\n\r");/**/ +/**/ exit(1); /**/ +/**/ } /**/ +/**/ /**/ +/**/ Inicializa_Iconos(); /**/ +/**/ Coloca_Iconos_Dos_Windows(); /**/ +/**/ Coloca_Iconos(1); /**/ +/**/ /**/ +/**/ ENCIENDE_PANTALLA(dac); /**/ +/**/ /**/ +/**/ True_Push = ON; // Activa el TRUE PUSH ( PRESION REAL )/**/ +/**/ /**/ +//// + + +// Sonido("CD_OUT00.WAV"); + Sonido( Start_Program ); + + Menu_de_Edicion(); + +// +// Liberacion miscelanea +//߱// +/**/ Libera_Raton_Animado(); /**/ +/**/ /**/ +/**/ APAGA_PANTALLA(dac); /**/ +/**/ closegraph(); /**/ +/**/ farfree(Icono); /**/ +/**/ /**/ +/**/// Sonido("CD_OUTFF.WAV"); /**/ +/**/ Sonido( End_Program ); /**/ +/**/ DeInitSB(); /**/ +//ܱ// +// +// Liberacion de la XMS +//߱// +/**/ // Liberamos XMS si hay ERROR lo Visualizamos. /**/ +/**/ FreeXms(&Xms_Image_Bank1); /**/ +/**/ FreeXms(&Xms_Image_Bank2); /**/ +/**/ FreeXms(&Xms_Image_Bank3); /**/ +/**/ FreeXms(&Xms_Image_Bank4); /**/ +/**/ FreeXms(&Xms_Image_Bank5); /**/ +/**/ if(Xms_Image_Bank1.lError || Xms_Image_Bank2.lError || + Xms_Image_Bank3.lError || Xms_Image_Bank4.lError || + Xms_Image_Bank5.lError )/**/ +/**/ /**/ +/**/ { /**/ +/**/ printf("Bank1 %s\n",Xms_Image_Bank1.cError); /**/ +/**/ printf("Bank2 %s\n",Xms_Image_Bank2.cError); /**/ +/**/ printf("Bank3 %s\n",Xms_Image_Bank3.cError); /**/ +/**/ printf("Bank4 %s\n",Xms_Image_Bank4.cError); /**/ +/**/ printf("Bank5 %s\n",Xms_Image_Bank5.cError); /**/ +/**/ _XMS = 0; /**/ +/**/ } /**/ +/**/ /**/ +//ܱ// + + cprintf("Programa registrado a: [ SEGUEL ], n reg. 034-002\n\r"); + cprintf("\n\r"); + cprintf("Gracias por utilizar mi Software\n\r"); + cprintf(" Jos David Guilln\n\r"); + cprintf(" (versin gratuita en: http:\\\\www.arrakis.es\\~infomundo\\JD\n\r"); + cprintf("\n\r"); + cprintf(" El autor de este programa no se hace responsable de la utilizacin\n\r"); + cprintf(" del mismo, para la catalogacin de CD's con contenido pirata. !!!\n\r"); + cprintf("\n\r"); + + return 0; +} + + +void InicializaSVGA(void) { + + int Gd = DETECT, Gm; + int Drv, errorcode; + + installuserdriver("Svga256",DetectVGA256); +/* If driver is linked with file, remove comments */ + registerfarbgidriver(Svga256_fdriver); + + errorcode = registerfarbgifont(small_font_far); + +/* report any registration errors */ +if (errorcode < 0) +{ + printf("Graphics error: %s\n", grapherrormsg(errorcode)); + printf("Press any key to halt:"); + getch(); + exit(1); /* terminate with an error code */ +} + + + initgraph(&Gd,&Gm,""); + + /* read result of initialization */ + errorcode = graphresult(); + +if (errorcode != grOk) /* an error occurred */ +{ + printf("Graphics error: %s\n", grapherrormsg(errorcode)); + printf("Presione una tecla para finalizar:"); + getch(); + exit(1); /* return with error code */ +} + + + +} + + +void Sonido(char Sonido){ + + +if ( !CD_CFG1.With_Out_Sound && Sonido != -1 && Sonido < 19 ) +{ + while( kbhit() ) getch(); + + if ( PlayWav((char far *)"CD_OUT.SND", CD_Snd[Sonido].Pos, CD_Snd[Sonido].Len ) == -1 ) + PlayLongWav((char far *)"CD_OUT.SND", CD_Snd[Sonido].Pos, CD_Snd[Sonido].Len ); + + while( kbhit() ) getch(); +} +} + + +int Load_Snd(void) +{ + CABECERA Cabecera; + FILE *DESTINO; + + if ( ( DESTINO = fopen( "CD_OUT.SND", "rb") ) == NULL ) + { + return 0; + } + + fread( &Cabecera, sizeof( Cabecera ), 1, DESTINO ); + + fread( CD_Snd, sizeof( CD_SND ), 19, DESTINO ); + + fclose(DESTINO); + return 1; +} diff --git a/CD_OUT.DSK b/CD_OUT.DSK new file mode 100644 index 0000000..b0e6925 Binary files /dev/null and b/CD_OUT.DSK differ diff --git a/CD_OUT.IMG b/CD_OUT.IMG new file mode 100644 index 0000000..548deda --- /dev/null +++ b/CD_OUT.IMG @@ -0,0 +1,375 @@ +#3 + +***** Botones para elegir el tipo de ITEM a mirar... + +!1, 24 +***** Botones para seleccionar DOS / WINDOWS +$ 508, 8, 562, 62, 253, 255, 254, 3, 1, 00, 32 +$ 573, 8, 627, 62, 253, 255, 254, 3, 1, 00, 17 + +**** Boton donde se muestran los iconos disponibles +$ 573, 73, 627, 127, 253, 255, 254, 3, 1, 00, 120 + +**** Retroceder, Avanzar, en los anteriores iconos +$ 508, 73, 562, 99, 253, 255, 254, 2, 1, 00, 75 +$ 508, 103, 562, 127, 253, 255, 254, 2, 1, 00, 77 + + +***** Cuadro para la visualizacin de programas... +1 +* LEFT UP RIGHT DOWN +& 6, 225, 205, 470, 0, 56, 63, -1, 2 +& 9, 228, 202, 467, 0, 63, 56, -1, 2 + +***** Casillas individuales +**** Retrocedo Izq. 4 1 +$ 13, 235, 198, 255, 253, 255, 254, 2, 1, 00, 104 +$ 13, 258, 198, 278, 253, 255, 254, 2, 1, 00, 105 +$ 13, 281, 198, 301, 253, 255, 254, 2, 1, 00, 106 +$ 13, 304, 198, 324, 253, 255, 254, 2, 1, 00, 107 +$ 13, 327, 198, 347, 253, 255, 254, 2, 1, 00, 108 +$ 13, 350, 198, 370, 253, 255, 254, 2, 1, 00, 109 +$ 13, 373, 198, 393, 253, 255, 254, 2, 1, 00, 110 +$ 13, 396, 198, 416, 253, 255, 254, 2, 1, 00, 111 +$ 13, 419, 198, 439, 253, 255, 254, 2, 1, 00, 112 +$ 13, 442, 198, 462, 253, 255, 254, 2, 1, 00, 113 + + + +* BLANCO 255 +* Gris_C 253 +* Gris_F 254 +* NEGRO 240 + + +1 +***** Cuadro para el comentario... +& 390, 135, 630, 415, 0, 56, 63, -1, 2 +& 393, 138, 627, 412, 240, 63, 56, 1, 2 + +$ 390, 420, 505, 446, 253, 255, 254, 2, 2, 00, 23 +$ 510, 420, 630, 446, 253, 255, 254, 2, 2, 00, 46 + +$ 390, 449, 505, 475, 253, 255, 254, 2, 2, 00, 18 +$ 510, 449, 630, 475, 253, 255, 254, 2, 2, 00, 31 + + +************** BOTONES UP / DOWN -> Para programas +$ 210, 370, 235, 420, 253, 255, 254, 2, 1, 00, 72 +$ 210, 425, 235, 470, 253, 255, 254, 2, 1, 00, 80 + +************** BOTONES UP / DOWN -> Para comentario +$ 360, 310, 385, 360, 253, 255, 254, 2, 1, 00, 73 +$ 360, 365, 385, 415, 253, 255, 254, 2, 1, 00, 81 + + +$ 360, 210, 385, 305, 253, 255, 254, 2, 1, 00, 47 + +2 +| 390, 426, 2, 6, 0, 255, _, +| 389, 425, 2, 6, 0, 0, _, +| 391, 424, 2, 6, 0, 255, Instalar, +| 390, 423, 2, 6, 0, 0, Instalar, + +| 516, 426, 2, 6, 0, 255, _, +| 515, 425, 2, 6, 0, 0, _, +| 516, 424, 2, 6, 0, 255, Configurar, +| 515, 423, 2, 6, 0, 0, Configurar, + +| 391, 453, 2, 6, 0, 255, _, +| 390, 452, 2, 6, 0, 0, _, +| 391, 451, 2, 6, 0, 255, Ejecutar, +| 390, 450, 2, 6, 0, 0, Ejecutar, + +| 511, 453, 2, 6, 0, 255, _, +| 511, 452, 2, 6, 0, 0, _, +| 511, 451, 2, 6, 0, 255, Salir, +| 510, 450, 2, 6, 0, 0, Salir, + +| 364, 289, 2, 6, 1, 255, _, +| 363, 288, 2, 6, 1, 0, _, +| 364, 219, 2, 5, 1, 255, Ver Imagen, +| 363, 218, 2, 5, 1, 0, Ver Imagen, + +* Estaticos 4 + +***************************************************************************** +* * +* Botones Para el Men de Configuracin. * +* * +***************************************************************************** +4 +| 413, 149, 2, 5, 0, 251, _, +| 412, 148, 2, 5, 0, 254, _, +| 414, 148, 2, 5, 0, 255, Salir despues de EJECUTAR., +| 413, 147, 2, 5, 0, 254, Salir despues de EJECUTAR., + +| 413, 170, 2, 5, 0, 251, _, +| 412, 169, 2, 5, 0, 254, _, +| 414, 169, 2, 5, 0, 255, Desactivar Sonidos., +| 413, 168, 2, 5, 0, 254, Desactivar Sonidos., + +| 413, 191, 2, 5, 0, 251, _, +| 412, 190, 2, 5, 0, 254, _, +| 414, 190, 2, 5, 0, 255, Instalacion Automtica, +| 413, 189, 2, 5, 0, 254, Instalacion Automtica, + +| 413, 212, 2, 5, 0, 251, _, +| 412, 211, 2, 5, 0, 254, _, +| 414, 211, 2, 5, 0, 255, Comprobar espacio libre, +| 413, 210, 2, 5, 0, 254, Comprobar espacio libre, + +| 413, 230, 2, 5, 0, 251, _, +| 412, 229, 2, 5, 0, 254, _, +| 414, 229, 2, 5, 0, 255, Formatear al Instalar, +| 413, 228, 2, 5, 0, 254, Formatear al Instalar, + +| 414, 242, 2, 4, 0, 255, ( solo en unidades A: y B: ), +| 413, 241, 2, 4, 0, 254, ( solo en unidades A: y B: ), + +| 413, 254, 2, 5, 0, 251, _, +| 412, 253, 2, 5, 0, 254, _, +| 414, 253, 2, 5, 0, 255, Sin imagen de Fondo, +| 413, 252, 2, 5, 0, 254, Sin imagen de Fondo, + +5 +* Textos +| 547, 392, 2, 5, 0, 251, _, +| 547, 391, 2, 5, 0, 0, _, +| 547, 391, 2, 5, 0, 255, Cancelar, +| 546, 390, 2, 5, 0, 0, Cancelar, + +| 471, 392, 2, 5, 0, 251, _, +| 470, 391, 2, 5, 0, 0, _, +| 471, 391, 2, 5, 0, 255, Salvar, +| 470, 390, 2, 5, 0, 0, Salvar, + +| 396, 392, 2, 5, 0, 251, _, +| 395, 391, 2, 5, 0, 0, _, +| 396, 391, 2, 5, 0, 255, Anterior, +| 395, 390, 2, 5, 0, 0, Anterior, + + +| 394, 278, 2, 5, 0, 251, _, +| 393, 277, 2, 5, 0, 0, _, +| 396, 277, 2, 5, 0, 255, Imprimir icono actual sin, +| 395, 276, 2, 5, 0, 0, Imprimir icono actual sin, + +| 396, 291, 2, 5, 0, 255, incluir los comentarios., +| 395, 290, 2, 5, 0, 0, incluir los comentarios., + +*| 394, 315, 2, 5, 0, 251, _, +*| 393, 314, 2, 5, 0, 0, _, +*| 396, 314, 2, 5, 0, 255, Imprimir icono actual con, +*| 395, 313, 2, 5, 0, 0, Imprimir icono actual con, + +*| 396, 328, 2, 5, 0, 255, los comentarios y atributos., +*| 395, 327, 2, 5, 0, 0, los comentarios y atributos., + + +* 2 Secuencia de Dinamicos +!2, 10 +* B. Cancelar +$ 547, 390, 623, 410, 253, 255, 254, 2, 2, 00, 46 +* B. Salvar +$ 471, 390, 545, 410, 253, 255, 254, 2, 2, 00, 31 +* B. Retroceder +$ 396, 390, 469, 410, 253, 255, 254, 2, 2, 00, 30 + + +***** Check 1 -- Salir Despues de Ejecutar +$ 396, 149, 411, 165, 253, 255, 254, 1, 2, 00, 32 + +***** Check 2 -- Desactivar Sonidos +$ 396, 170, 411, 186, 253, 255, 254, 1, 2, 00, 18 + +**** Check 3 -- Auto-Install +$ 396, 191, 411, 207, 253, 255, 254, 1, 2, 00, 23 + +***** Check 4 -- Comprobar espacio disponible... +$ 396, 212, 411, 228, 253, 255, 254, 1, 2, 00, 24 + +***** Check 5 -- Format Siempre ( solo A: y B: ) +$ 396, 233, 411, 249, 253, 255, 254, 1, 2, 00, 33 + +***** Check 6 -- Sin imagen de fondo +$ 396, 254, 411, 270, 253, 255, 254, 1, 2, 00, 49 + +***** Imprimir item actual sin comentario [ MIRAR LETRA ] +$ 396, 275, 623, 310, 253, 255, 254, 3, 2, 00, 50 +***** Imprimir item actual con comentario [ MIRAR LETRA ] +*$ 396, 312, 623, 346, 253, 255, 254, 3, 2, 00, 46 +*& 396, 348, 623, 385, 253, 255, 254, 3, 2, 00, 46 + +***************************************************************************** +* * +* Botones Para el Men de Ejecutar. * +* * +***************************************************************************** + + +10 +& 118, 160, 521, 335, 253, 255, 254, 2, 2 + +!3,2 +$ 123, 165, 516, 185, 240, 255, 254, 2, 1, 00, 18 +$ 500, 190, 516, 330, 253, 255, 254, 2, 1, 00, 46 + +11 + +| 504, 190, 2, 4, 1, 255, _ , +| 503, 191, 2, 4, 1, 240, _ , +| 501, 190, 2, 4, 1, 255, <- CANCELAR -> , +| 502, 191, 2, 4, 1, 240, <- CANCELAR -> , + + +| 123, 165, 2, 6, 0, 252, Ejecutar desde el CDROM, + +| 123, 190, 2, 4, 0, 240, NOTA IMPORTANTE:, + +| 123, 200, 2, 4, 0, 240, Hay cuatro circunstancias por las que los programas incluidos, +| 123, 210, 2, 4, 0, 240, en este CDROM podran NO FUNCIONAR si se ejcutan directamente, +| 123, 220, 2, 4, 0, 240, usando la opcin EJECUTAR:, +| 121, 220, 2, 4, 0, 251, EJECUTAR, +| 123, 230, 2, 4, 0, 240, Programas con requerimientos de memoria superior al espacio, +| 123, 240, 2, 4, 0, 240, libre dejado por los drivers de acceso al CDROM., +| 123, 250, 2, 4, 0, 240, Programas que nesecitan escribir algn tipo de configuracin, +| 123, 260, 2, 4, 0, 240, u otros datos en el propio disco., +| 123, 270, 2, 4, 0, 240, Programas con animaciones o accesos muy rpidos a disco duro, +| 123, 280, 2, 4, 0, 240, Programas cuyos nombres incluyan carcteres no aceptados por, +| 123, 290, 2, 4, 0, 240, el estandar ISO., +| 123, 300, 2, 4, 0, 240, Si por cualquiera de las causas anteriores no funcionase el, +| 123, 310, 2, 4, 0, 240, programa elegido: recomendamos proceda a su INSTALACION a HD., +| 120, 310, 2, 4, 0, 251, INSTALACION, +| 123, 320, 2, 4, 0, 240, usando la opcin correspondiente., + + +************************************************************************ +* * +* Pantalla para la instalacin y elegir el tipo de instalacin... * +************************************************************************ +20 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Iniciar instalacin en:, +& 210, 240, 430, 257, 240, 255, 254, 2, 1 +** 35 digitos... +*| 210, 245, 2, 4, 0, 241, 123456789-123456789-123456789-123456789-, +*| 210, 243, 2, 4, 0, 241, MMMMMMMMM-MMMMMMMMM-MMMMMMMMM-MMMMM, + +* Boton Aceptar +& 200, 270, 280, 295, 251, 255, 254, 2, 1 +* Boton Cancelar +& 360, 270, 440, 295, 251, 255, 254, 2, 1 + +21 +| 200, 274, 2, 5, 0, 255, Aceptar, +| 201, 275, 2, 5, 0, 240, Aceptar, + + +| 340, 274, 2, 5, 0, 255, Cancelar, +| 341, 275, 2, 5, 0, 240, Cancelar, + + +!4,2 +* Boton Aceptar +$ 204, 274, 276, 291, 253, 254, 255, 2, 1, 00, 30 +* Boton Cancelar +$ 364, 274, 436, 291, 253, 254, 255, 2, 1, 00, 46 + +************************************************************************ +* * +* MENSAJES DE ERROR <------>---------<----------->--------<------>- * +* -------<-------->_------<-------->-->----------<--------->_----<- * +* 5"$%!"$%" %"$ &/(I/)(=P)^PO__:;JLKO) (/)%&/($&/($&()(/=)&( * +************************************************************************ +100 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error en asignacin, +| 210, 242, 2, 5, 0, 240, de memoria CONVENCIONAL, +101 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error en asignacin, +| 210, 242, 2, 5, 0, 240, de memoria XMS, +102 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error cargando ICONOS, +| 210, 242, 2, 5, 0, 240, y punteros de RATON..., +103 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error cargando PCX, +| 210, 242, 2, 5, 0, 240, de Fondo., +104 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error cargando ficheros, +| 210, 242, 2, 5, 0, 240, de sonido WAV, +105 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error intentando ejecutar, +| 210, 242, 2, 5, 0, 240, el programa deseado..., +106 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error intentando ejecutar, +| 210, 242, 2, 5, 0, 240, el programa deseado..., +107 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR D E TIPO, +| 210, 242, 2, 5, 0, 240, D E S C O N O C I D O, + +108 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR ABRIENDO, +| 210, 242, 2, 5, 0, 240, FICHERO, +109 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR de ESCRITURA, +| 210, 242, 2, 5, 0, 240, DISCO PROTEGIDO., +110 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR de LECTURA, +| 210, 242, 2, 5, 0, 240, POSIBLE DAO FSICO, +111 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR INTENTANDO, +| 210, 242, 2, 5, 0, 240, CERRAR FICHERO, +112 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR INTENTANDO, +| 210, 242, 2, 5, 0, 240, CARGAR BOTONES, +113 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, EL FICHERO O DIRECTORIO A, +| 210, 242, 2, 5, 0, 240, INSTALAR NO SE HA ENCONTRADO, +114 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, EL FICHERO O DIRECTORIO A, +| 210, 242, 2, 5, 0, 240, EJECUTAR NO SE HA ENCONTRADO, +115 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, LA IMPRESORA NO ESTA LISTA, +| 210, 242, 2, 5, 0, 240, < << OPERACION CANCELA >> >, +116 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, IMPRIMIENDO..., +| 210, 242, 2, 5, 0, 240, -JD-, + + + + diff --git a/CD_OUT.JD b/CD_OUT.JD new file mode 100644 index 0000000..548deda --- /dev/null +++ b/CD_OUT.JD @@ -0,0 +1,375 @@ +#3 + +***** Botones para elegir el tipo de ITEM a mirar... + +!1, 24 +***** Botones para seleccionar DOS / WINDOWS +$ 508, 8, 562, 62, 253, 255, 254, 3, 1, 00, 32 +$ 573, 8, 627, 62, 253, 255, 254, 3, 1, 00, 17 + +**** Boton donde se muestran los iconos disponibles +$ 573, 73, 627, 127, 253, 255, 254, 3, 1, 00, 120 + +**** Retroceder, Avanzar, en los anteriores iconos +$ 508, 73, 562, 99, 253, 255, 254, 2, 1, 00, 75 +$ 508, 103, 562, 127, 253, 255, 254, 2, 1, 00, 77 + + +***** Cuadro para la visualizacin de programas... +1 +* LEFT UP RIGHT DOWN +& 6, 225, 205, 470, 0, 56, 63, -1, 2 +& 9, 228, 202, 467, 0, 63, 56, -1, 2 + +***** Casillas individuales +**** Retrocedo Izq. 4 1 +$ 13, 235, 198, 255, 253, 255, 254, 2, 1, 00, 104 +$ 13, 258, 198, 278, 253, 255, 254, 2, 1, 00, 105 +$ 13, 281, 198, 301, 253, 255, 254, 2, 1, 00, 106 +$ 13, 304, 198, 324, 253, 255, 254, 2, 1, 00, 107 +$ 13, 327, 198, 347, 253, 255, 254, 2, 1, 00, 108 +$ 13, 350, 198, 370, 253, 255, 254, 2, 1, 00, 109 +$ 13, 373, 198, 393, 253, 255, 254, 2, 1, 00, 110 +$ 13, 396, 198, 416, 253, 255, 254, 2, 1, 00, 111 +$ 13, 419, 198, 439, 253, 255, 254, 2, 1, 00, 112 +$ 13, 442, 198, 462, 253, 255, 254, 2, 1, 00, 113 + + + +* BLANCO 255 +* Gris_C 253 +* Gris_F 254 +* NEGRO 240 + + +1 +***** Cuadro para el comentario... +& 390, 135, 630, 415, 0, 56, 63, -1, 2 +& 393, 138, 627, 412, 240, 63, 56, 1, 2 + +$ 390, 420, 505, 446, 253, 255, 254, 2, 2, 00, 23 +$ 510, 420, 630, 446, 253, 255, 254, 2, 2, 00, 46 + +$ 390, 449, 505, 475, 253, 255, 254, 2, 2, 00, 18 +$ 510, 449, 630, 475, 253, 255, 254, 2, 2, 00, 31 + + +************** BOTONES UP / DOWN -> Para programas +$ 210, 370, 235, 420, 253, 255, 254, 2, 1, 00, 72 +$ 210, 425, 235, 470, 253, 255, 254, 2, 1, 00, 80 + +************** BOTONES UP / DOWN -> Para comentario +$ 360, 310, 385, 360, 253, 255, 254, 2, 1, 00, 73 +$ 360, 365, 385, 415, 253, 255, 254, 2, 1, 00, 81 + + +$ 360, 210, 385, 305, 253, 255, 254, 2, 1, 00, 47 + +2 +| 390, 426, 2, 6, 0, 255, _, +| 389, 425, 2, 6, 0, 0, _, +| 391, 424, 2, 6, 0, 255, Instalar, +| 390, 423, 2, 6, 0, 0, Instalar, + +| 516, 426, 2, 6, 0, 255, _, +| 515, 425, 2, 6, 0, 0, _, +| 516, 424, 2, 6, 0, 255, Configurar, +| 515, 423, 2, 6, 0, 0, Configurar, + +| 391, 453, 2, 6, 0, 255, _, +| 390, 452, 2, 6, 0, 0, _, +| 391, 451, 2, 6, 0, 255, Ejecutar, +| 390, 450, 2, 6, 0, 0, Ejecutar, + +| 511, 453, 2, 6, 0, 255, _, +| 511, 452, 2, 6, 0, 0, _, +| 511, 451, 2, 6, 0, 255, Salir, +| 510, 450, 2, 6, 0, 0, Salir, + +| 364, 289, 2, 6, 1, 255, _, +| 363, 288, 2, 6, 1, 0, _, +| 364, 219, 2, 5, 1, 255, Ver Imagen, +| 363, 218, 2, 5, 1, 0, Ver Imagen, + +* Estaticos 4 + +***************************************************************************** +* * +* Botones Para el Men de Configuracin. * +* * +***************************************************************************** +4 +| 413, 149, 2, 5, 0, 251, _, +| 412, 148, 2, 5, 0, 254, _, +| 414, 148, 2, 5, 0, 255, Salir despues de EJECUTAR., +| 413, 147, 2, 5, 0, 254, Salir despues de EJECUTAR., + +| 413, 170, 2, 5, 0, 251, _, +| 412, 169, 2, 5, 0, 254, _, +| 414, 169, 2, 5, 0, 255, Desactivar Sonidos., +| 413, 168, 2, 5, 0, 254, Desactivar Sonidos., + +| 413, 191, 2, 5, 0, 251, _, +| 412, 190, 2, 5, 0, 254, _, +| 414, 190, 2, 5, 0, 255, Instalacion Automtica, +| 413, 189, 2, 5, 0, 254, Instalacion Automtica, + +| 413, 212, 2, 5, 0, 251, _, +| 412, 211, 2, 5, 0, 254, _, +| 414, 211, 2, 5, 0, 255, Comprobar espacio libre, +| 413, 210, 2, 5, 0, 254, Comprobar espacio libre, + +| 413, 230, 2, 5, 0, 251, _, +| 412, 229, 2, 5, 0, 254, _, +| 414, 229, 2, 5, 0, 255, Formatear al Instalar, +| 413, 228, 2, 5, 0, 254, Formatear al Instalar, + +| 414, 242, 2, 4, 0, 255, ( solo en unidades A: y B: ), +| 413, 241, 2, 4, 0, 254, ( solo en unidades A: y B: ), + +| 413, 254, 2, 5, 0, 251, _, +| 412, 253, 2, 5, 0, 254, _, +| 414, 253, 2, 5, 0, 255, Sin imagen de Fondo, +| 413, 252, 2, 5, 0, 254, Sin imagen de Fondo, + +5 +* Textos +| 547, 392, 2, 5, 0, 251, _, +| 547, 391, 2, 5, 0, 0, _, +| 547, 391, 2, 5, 0, 255, Cancelar, +| 546, 390, 2, 5, 0, 0, Cancelar, + +| 471, 392, 2, 5, 0, 251, _, +| 470, 391, 2, 5, 0, 0, _, +| 471, 391, 2, 5, 0, 255, Salvar, +| 470, 390, 2, 5, 0, 0, Salvar, + +| 396, 392, 2, 5, 0, 251, _, +| 395, 391, 2, 5, 0, 0, _, +| 396, 391, 2, 5, 0, 255, Anterior, +| 395, 390, 2, 5, 0, 0, Anterior, + + +| 394, 278, 2, 5, 0, 251, _, +| 393, 277, 2, 5, 0, 0, _, +| 396, 277, 2, 5, 0, 255, Imprimir icono actual sin, +| 395, 276, 2, 5, 0, 0, Imprimir icono actual sin, + +| 396, 291, 2, 5, 0, 255, incluir los comentarios., +| 395, 290, 2, 5, 0, 0, incluir los comentarios., + +*| 394, 315, 2, 5, 0, 251, _, +*| 393, 314, 2, 5, 0, 0, _, +*| 396, 314, 2, 5, 0, 255, Imprimir icono actual con, +*| 395, 313, 2, 5, 0, 0, Imprimir icono actual con, + +*| 396, 328, 2, 5, 0, 255, los comentarios y atributos., +*| 395, 327, 2, 5, 0, 0, los comentarios y atributos., + + +* 2 Secuencia de Dinamicos +!2, 10 +* B. Cancelar +$ 547, 390, 623, 410, 253, 255, 254, 2, 2, 00, 46 +* B. Salvar +$ 471, 390, 545, 410, 253, 255, 254, 2, 2, 00, 31 +* B. Retroceder +$ 396, 390, 469, 410, 253, 255, 254, 2, 2, 00, 30 + + +***** Check 1 -- Salir Despues de Ejecutar +$ 396, 149, 411, 165, 253, 255, 254, 1, 2, 00, 32 + +***** Check 2 -- Desactivar Sonidos +$ 396, 170, 411, 186, 253, 255, 254, 1, 2, 00, 18 + +**** Check 3 -- Auto-Install +$ 396, 191, 411, 207, 253, 255, 254, 1, 2, 00, 23 + +***** Check 4 -- Comprobar espacio disponible... +$ 396, 212, 411, 228, 253, 255, 254, 1, 2, 00, 24 + +***** Check 5 -- Format Siempre ( solo A: y B: ) +$ 396, 233, 411, 249, 253, 255, 254, 1, 2, 00, 33 + +***** Check 6 -- Sin imagen de fondo +$ 396, 254, 411, 270, 253, 255, 254, 1, 2, 00, 49 + +***** Imprimir item actual sin comentario [ MIRAR LETRA ] +$ 396, 275, 623, 310, 253, 255, 254, 3, 2, 00, 50 +***** Imprimir item actual con comentario [ MIRAR LETRA ] +*$ 396, 312, 623, 346, 253, 255, 254, 3, 2, 00, 46 +*& 396, 348, 623, 385, 253, 255, 254, 3, 2, 00, 46 + +***************************************************************************** +* * +* Botones Para el Men de Ejecutar. * +* * +***************************************************************************** + + +10 +& 118, 160, 521, 335, 253, 255, 254, 2, 2 + +!3,2 +$ 123, 165, 516, 185, 240, 255, 254, 2, 1, 00, 18 +$ 500, 190, 516, 330, 253, 255, 254, 2, 1, 00, 46 + +11 + +| 504, 190, 2, 4, 1, 255, _ , +| 503, 191, 2, 4, 1, 240, _ , +| 501, 190, 2, 4, 1, 255, <- CANCELAR -> , +| 502, 191, 2, 4, 1, 240, <- CANCELAR -> , + + +| 123, 165, 2, 6, 0, 252, Ejecutar desde el CDROM, + +| 123, 190, 2, 4, 0, 240, NOTA IMPORTANTE:, + +| 123, 200, 2, 4, 0, 240, Hay cuatro circunstancias por las que los programas incluidos, +| 123, 210, 2, 4, 0, 240, en este CDROM podran NO FUNCIONAR si se ejcutan directamente, +| 123, 220, 2, 4, 0, 240, usando la opcin EJECUTAR:, +| 121, 220, 2, 4, 0, 251, EJECUTAR, +| 123, 230, 2, 4, 0, 240, Programas con requerimientos de memoria superior al espacio, +| 123, 240, 2, 4, 0, 240, libre dejado por los drivers de acceso al CDROM., +| 123, 250, 2, 4, 0, 240, Programas que nesecitan escribir algn tipo de configuracin, +| 123, 260, 2, 4, 0, 240, u otros datos en el propio disco., +| 123, 270, 2, 4, 0, 240, Programas con animaciones o accesos muy rpidos a disco duro, +| 123, 280, 2, 4, 0, 240, Programas cuyos nombres incluyan carcteres no aceptados por, +| 123, 290, 2, 4, 0, 240, el estandar ISO., +| 123, 300, 2, 4, 0, 240, Si por cualquiera de las causas anteriores no funcionase el, +| 123, 310, 2, 4, 0, 240, programa elegido: recomendamos proceda a su INSTALACION a HD., +| 120, 310, 2, 4, 0, 251, INSTALACION, +| 123, 320, 2, 4, 0, 240, usando la opcin correspondiente., + + +************************************************************************ +* * +* Pantalla para la instalacin y elegir el tipo de instalacin... * +************************************************************************ +20 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Iniciar instalacin en:, +& 210, 240, 430, 257, 240, 255, 254, 2, 1 +** 35 digitos... +*| 210, 245, 2, 4, 0, 241, 123456789-123456789-123456789-123456789-, +*| 210, 243, 2, 4, 0, 241, MMMMMMMMM-MMMMMMMMM-MMMMMMMMM-MMMMM, + +* Boton Aceptar +& 200, 270, 280, 295, 251, 255, 254, 2, 1 +* Boton Cancelar +& 360, 270, 440, 295, 251, 255, 254, 2, 1 + +21 +| 200, 274, 2, 5, 0, 255, Aceptar, +| 201, 275, 2, 5, 0, 240, Aceptar, + + +| 340, 274, 2, 5, 0, 255, Cancelar, +| 341, 275, 2, 5, 0, 240, Cancelar, + + +!4,2 +* Boton Aceptar +$ 204, 274, 276, 291, 253, 254, 255, 2, 1, 00, 30 +* Boton Cancelar +$ 364, 274, 436, 291, 253, 254, 255, 2, 1, 00, 46 + +************************************************************************ +* * +* MENSAJES DE ERROR <------>---------<----------->--------<------>- * +* -------<-------->_------<-------->-->----------<--------->_----<- * +* 5"$%!"$%" %"$ &/(I/)(=P)^PO__:;JLKO) (/)%&/($&/($&()(/=)&( * +************************************************************************ +100 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error en asignacin, +| 210, 242, 2, 5, 0, 240, de memoria CONVENCIONAL, +101 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error en asignacin, +| 210, 242, 2, 5, 0, 240, de memoria XMS, +102 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error cargando ICONOS, +| 210, 242, 2, 5, 0, 240, y punteros de RATON..., +103 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error cargando PCX, +| 210, 242, 2, 5, 0, 240, de Fondo., +104 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error cargando ficheros, +| 210, 242, 2, 5, 0, 240, de sonido WAV, +105 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error intentando ejecutar, +| 210, 242, 2, 5, 0, 240, el programa deseado..., +106 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, Error intentando ejecutar, +| 210, 242, 2, 5, 0, 240, el programa deseado..., +107 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR D E TIPO, +| 210, 242, 2, 5, 0, 240, D E S C O N O C I D O, + +108 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR ABRIENDO, +| 210, 242, 2, 5, 0, 240, FICHERO, +109 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR de ESCRITURA, +| 210, 242, 2, 5, 0, 240, DISCO PROTEGIDO., +110 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR de LECTURA, +| 210, 242, 2, 5, 0, 240, POSIBLE DAO FSICO, +111 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR INTENTANDO, +| 210, 242, 2, 5, 0, 240, CERRAR FICHERO, +112 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, ERROR INTENTANDO, +| 210, 242, 2, 5, 0, 240, CARGAR BOTONES, +113 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, EL FICHERO O DIRECTORIO A, +| 210, 242, 2, 5, 0, 240, INSTALAR NO SE HA ENCONTRADO, +114 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, EL FICHERO O DIRECTORIO A, +| 210, 242, 2, 5, 0, 240, EJECUTAR NO SE HA ENCONTRADO, +115 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, LA IMPRESORA NO ESTA LISTA, +| 210, 242, 2, 5, 0, 240, < << OPERACION CANCELA >> >, +116 +& 200, 212, 440, 267, 251, 255, 254, 2, 1 +& 205, 217, 435, 262, 253, 254, 255, 2, 1 +| 210, 222, 2, 5, 0, 240, IMPRIMIENDO..., +| 210, 242, 2, 5, 0, 240, -JD-, + + + + diff --git a/CD_OUT.PRJ b/CD_OUT.PRJ new file mode 100644 index 0000000..ac9e18c Binary files /dev/null and b/CD_OUT.PRJ differ diff --git a/CD_OUT2.IMG b/CD_OUT2.IMG new file mode 100644 index 0000000..05c09e6 Binary files /dev/null and b/CD_OUT2.IMG differ diff --git a/CD_PCX.CPP b/CD_PCX.CPP new file mode 100644 index 0000000..e8df0c3 --- /dev/null +++ b/CD_PCX.CPP @@ -0,0 +1,151 @@ +///////////////////////////// FICHEROS A INCLUIR ///////////////////////////// +//#include +//#include +#include +#include +#include +//#include // Para getch(); +#include // Para outtextxy(...); y cleardevice(...); +#include "cd_error.h" +// #include "..\..\jd_lib\f_lib\make_bot.h" // Fuciones de MAKE_BOTON +////////////////////////////////// VARIABLES ///////////////////////////////// + +char far *dir_vga; +int ancho; +int alto; +char bits_pixel; + +char dac[256*3]; +extern char newdac[256*3]; + +//////////////////////// DECLARACIONES DE FUNCIONES ////////////////////////// + +void dibujo_640_x_480_256_c(FILE *handle); +void asigna_modo_video(char); + +extern "C" +{ + int SET_VESA(int); + void CHANGE_BANK(int); + void ENCIENDE_PANTALLA(char *); + void APAGA_PANTALLA(char *); +} + +///////////////////////////////// PROGRAMA /////////////////////////////////// + +void Inicializa_Dibujo(int L_Imagen, char *N_Imagen2) +{ + FILE *handle; + + int esq_x1, esq_y1, esq_x2, esq_y2; + char string[80] = "cd_out0"; + + randomize(); + + if(L_Imagen==-1){ + string[7] = (unsigned char)(random(9)+ '0'); + string[8] = '.'; + string[9] = 'P'; + string[10] = 'C'; + string[11] = 'X'; + string[12] = '\0'; + + } + else if(L_Imagen==-2) strcpy( string, N_Imagen2 ); + else + { + string[7] = (unsigned char)(L_Imagen + '0'); + string[8] = '.'; + string[9] = 'P'; + string[10] = 'C'; + string[11] = 'X'; + string[12] = '\0'; + } + + + if((handle=fopen(/*"CD_OUT1.IMG"*/string, "rb"))==NULL) + { +/* + Imprime_Estaticos( E_O, "cd_out.img"); // Imprime botones estaticos 'Seccion 2' + Espera_Tecla_o_Raton(); +*/ + restorecrtmode(); + printf("No se encontr el archivo especificado: Imagen Background"); + exit(1); + } + + if(10!=getc(handle)) + { +/* + Imprime_Estaticos( E_PCX, "cd_out.img"); // Imprime botones estaticos 'Seccion 2' + Espera_Tecla_o_Raton(); +*/ + restorecrtmode(); + printf("El archivo especificado no es un fichero PCX"); + exit(1); + } + + getw(handle); bits_pixel=getc(handle); + + esq_x1=getw(handle); esq_y1=getw(handle); + esq_x2=getw(handle); esq_y2=getw(handle); + + ancho=esq_x2-esq_x1+1; + alto =esq_y2-esq_y1+1; + + if(ancho!=640 || alto!=480 || bits_pixel!=8) + { +/* + Imprime_Estaticos( E_PCX, "cd_out.img"); // Imprime botones estaticos 'Seccion 2' + Espera_Tecla_o_Raton(); +*/ + restorecrtmode(); + printf("El fichero especificado no es un dibujo de 640 x 480 en 256 colores"); + exit(1); + } + +// APAGA_PANTALLA(dac); + dibujo_640_x_480_256_c(handle); +// ENCIENDE_PANTALLA(dac); + +} + +void dibujo_640_x_480_256_c(FILE *handle) +{ + unsigned char byte, contador; + int bank, n; + + fseek(handle, 128, 0); + + bank=0; (long)dir_vga=0xA0000000L; + CHANGE_BANK(bank); + + for(alto=480; alto>0; alto--) + { + for(ancho=640; ancho>0; ) + { + byte=getc(handle); + if(byte<=0xC0) + { + *dir_vga++=byte; ancho--; + if((long)dir_vga==0xA0000000L) { bank++; CHANGE_BANK(bank); } + } + else + { + contador=byte&0x3F; byte=getc(handle); + for(; contador>0; contador--) + { + *dir_vga++=byte; ancho--; + if((long)dir_vga==0xA0000000L) { bank++; CHANGE_BANK(bank); } + } + } + } + } + getc(handle); + +// for(n=0; n<256*3; n++) dac[n]=getc(handle) >> 2; + for(n=0; n<(256-16)*3; n++) dac[n]=getc(handle) >> 2; + for(n=(256-16)*3; n<(256*3); n++) newdac[n]=getc(handle) >> 2; + + fclose(handle); +} diff --git a/CD_RATON.CPP b/CD_RATON.CPP new file mode 100644 index 0000000..747b052 --- /dev/null +++ b/CD_RATON.CPP @@ -0,0 +1,215 @@ +/////////////////////////////////////////////////////////////////////////// +///// Nombre: Craton.cpp /// +///// Modulo: Perteneciente a JD_FONTS.CPP /// +//// Descripcin: Utilidades para el manejo del raton /// +//// /// +//// Autor: ( Ver Pc-Mania n 20 ) /// +//// Autor puntero del raton: Jos David Guilln Dominguez /// +//// Fecha: ( Desconocida ) /// +//// /// +//// Compilador Borland C++ 3.0 ( Creacin original en Turbo C 2.0 ) /// +/////////////////////////////////////////////////////////////////////////// + +#include +#include + +void desactiva_raton(void); +void activa_raton(void); +void inicializa_raton_grafico(int x1, int y1, int x2, int y2, int px, int py); +void Anclar_Raton(void); +int Espera_Tecla_o_Raton(void); + + +int raton=0; +int x_raton; +int y_raton; +int boton_izq; +int boton_der; +extern int PunteroRaton; +int dir_raton [32+32] = { + +// 0x3FFF, /* 1 1 1 1 1 1 1 1 1 1 1 1 1 1*/ +// 0x1FFF, /* 1 1 1 1 1 1 1 1 1 1 1 1 1*/ +// 0x0FFF, /* 1 1 1 1 1 1 1 1 1 1 1 1*/ +// 0x07FF, /* 1 1 1 1 1 1 1 1 1 1 1*/ +// 0x03FF, /* 1 1 1 1 1 1 1 1 1 1*/ +// 0x07FF, /* 1 1 1 1 1 1 1 1 1 1 1*/ +// 0xC3FF, /*1 1 1 1 1 1 1 1 1 1 1 1*/ + + 0x007F, /* 1 1 1 1 1 1 1*/ + 0x00FF, /* 1 1 1 1 1 1 1 1*/ + 0x01FF, /* 1 1 1 1 1 1 1 1 1*/ + 0x01FF, /* 1 1 1 1 1 1 1 1 1*/ + 0x00FF, /* 1 1 1 1 1 1 1 1*/ + 0x007F, /* 1 1 1 1 1 1 1*/ + 0x18FF, /* 1 1 1 1 1 1 1 1 1 1*/ + +// 0xFC7F, /*1 1 1 1 1 1 1 1 1 1 1 1 1*/ +// 0xF83F, /*1 1 1 1 1 1 1 1 1 1 1*/ +// 0xF01F, /*1 1 1 1 1 1 1 1 1*/ +// 0xE00F, /*1 1 1 1 1 1 1*/ +// 0xE00F, /*1 1 1 1 1 1 1*/ +// 0xF83F, /*1 1 1 1 1 1 1 1 1 1 1*/ +// 0xF83F, /*1 1 1 1 1 1 1 1 1 1 1*/ + + 0x800F, /*1 1 1 1 1*/ + 0x8083, /*1 1 1*/ + 0x8001, /*1 1*/ + 0xF810, /*1 1 1 1 1 1 1*/ + 0x8810, /*1 1 1 1*/ + 0x8811, /*1 1 1 1*/ + 0x8003, /*1 1 1*/ + 0x8007, /*1 1 1 1*/ + 0x800F, /*1 1 1 1 1*/ + +// 0x0000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x4000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x6000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x7000, /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x7800, /*0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x3000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x1800, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + + 0x0000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + 0x7E00, /*0 0 0 0 0 0 0 0 0 0*/ + 0x7C00, /*0 0 0 0 0 0 0 0 0 0 0*/ + 0x7C00, /*0 0 0 0 0 0 0 0 0 0 0*/ + 0x7E00, /*0 0 0 0 0 0 0 0 0 0*/ + 0x6700, /*0 0 0 0 0 0 0 0 0 0 0*/ + 0x0200, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + + +// 0x0100, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x0380, /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x07C0, /*0 0 0 0 0 0 0 0 0 0 0*/ +// 0x0FE0, /*0 0 0 0 0 0 0 0 0*/ +// 0x0380, /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x0380, /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ +// 0x0000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + + 0x0000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + 0x3E70, /*0 0 0 0 0 0 0 0*/ + 0x0248, /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ + 0x0244, /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ + 0x0242, /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ + 0x2244, /*0 0 0 0 0 0 0 0 0 0 0 0*/ + 0x2248, /*0 0 0 0 0 0 0 0 0 0 0 0*/ + 0x3E70, /*0 0 0 0 0 0 0 0*/ + 0x0000 /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + }; + + +void inicializa_raton_grafico(int x1, int y1, int x2, int y2, int px, int py) +{ + struct SREGS seg; + union REGS ent, sal; + long dir; + + ent.x.ax = 0; + int86(0x33, &ent, &sal); /* averigua si hay ratn conectado */ + + raton = sal.x.ax; /* indica a la variable global el estado + del raton */ + + if(raton!=0) { + + + ent.x.ax = 15; + ent.x.cx = 5; + ent.x.dx = 11; + int86(0x33, &ent, &sal); /* fija la razn mickey/pixel */ + + ent.x.ax = 7; + ent.x.cx = x1; + ent.x.dx = x2; + int86(0x33, &ent, &sal); /* fija la posicin mx. y mn. horizontal */ + + ent.x.ax = 8; + ent.x.cx = y1; + ent.x.dx = y2; + int86(0x33, &ent, &sal); /* fija la posicin mx. y mn. vertical */ + + if(!PunteroRaton) { + dir = (long)dir_raton; + ent.x.ax = 9; + ent.x.bx = 0; + ent.x.cx = 0; + ent.x.dx = (int) dir; + seg.es = (int) (dir >> 16); + int86x(0x33, &ent, &sal, &seg); /* asigna un cursor diferente */ + } + + ent.x.ax = 4; + ent.x.cx = px; + x_raton=ent.x.cx >> 1; + ent.x.dx = py; + y_raton=ent.x.dx; + int86(0x33, &ent, &sal); /* fija la posicin del ratn */ + + ent.x.ax = 1; + int86(0x33, &ent, &sal); /* muestra el puntero del ratn */ + } +} + +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 Anclar_Raton(void){ + union REGS ent, sal; + do { + ent.x.ax = 3; + int86(0x33, &ent, &sal); + boton_izq = sal.x.bx & 1; + boton_der = (sal.x.bx >> 1) & 1; + } while(boton_izq==1 || boton_der==1); +} + +int Espera_Tecla_o_Raton(void){ + union REGS ent, sal; + + ent.x.ax = 3; + + do{ + int86(0x33, &ent, &sal); // lee posicin y estados del botn + boton_izq = sal.x.bx & 1; + boton_der = (sal.x.bx >> 1) & 1; + x_raton = sal.x.cx; + y_raton = sal.x.dx; + + }while( boton_izq == 0 && boton_der == 0 && kbhit()==0 ); + + + + ///////////////////////////////////////// + // RETURN Derecho Izquierdo // + // // + // 0 0 0 // + // 1 1 0 // + // 2 0 1 // + // 3 1 1 // + // // + ///////////////////////////////////////// + int Que; + + if ( boton_der==0 && boton_izq==0 ) Que = 0; + if ( boton_der==1 && boton_izq==0 ) Que = 1; + if ( boton_der==0 && boton_izq==1 ) Que = 2; + if ( boton_der==1 && boton_izq==1 ) Que = 3; + + return Que; +} diff --git a/CD_RATON.H b/CD_RATON.H new file mode 100644 index 0000000..ac19ee5 --- /dev/null +++ b/CD_RATON.H @@ -0,0 +1,8 @@ +extern void desactiva_raton(void); +extern void activa_raton(void); +extern void inicializa_raton_grafico(int x1, int y1, int x2, int y2, int px, int py); +extern void Anclar_Raton(void); +extern int Espera_Tecla_o_Raton(void); + + +extern int raton, x_raton, y_raton, boton_izq, boton_der, PunteroRaton; diff --git a/CD_SND.H b/CD_SND.H new file mode 100644 index 0000000..0848538 --- /dev/null +++ b/CD_SND.H @@ -0,0 +1,27 @@ +// CD_OUTxx . WAV +// ID_Code xx + +#define Start_Program 0 // 0 00 Inicio del Programa +#define Mouse_Press 1 // 1 01 Raton pulsado en algun sitio +#define Key_Press 2 // 2 02 Tecla pulsada para nada +#define Mouse_Key_Tick 3 // 3 03 Tick Generico +#define Play_DOS 4 // 4 04 Boton DOS +#define Play_WINDOWS 5 // 5 05 Boton Windows +#define Select_Icono 6 // 6 06 Select Icono +#define Install 7 // 7 07 Instalar +#define Setup 8 // 8 08 Configurar +#define Run 9 // 9 09 Ejecutar +#define Show_Image 10 // 10 0A Ver Dibujo +#define Yes 11 // 11 0B Si +#define No 12 // 12 0C No +#define Printing 13 // 13 0D Imprimiendo +#define Ok 14 // 14 0E Aceptar +#define Cancel 15 // 15 0F Cancelar +#define Save_until_exit 16 // 16 10 Salvar al Salir +#define Unknow_error 17 // 17 11 ERROR DESCONOCIDO +#define End_Program 18 // 18 FF Fin del Programa + +#define Error_108 -1 // 19 ver 108 de Make_Boton (Error Abriendo Fichero) +#define Error_113 -1 // 20 ver 113 de Make_Boton (No fichero a instalarar) +#define Error_114 -1 // 21 ver 114 de Make_Boton (Ejecutar imposible) +#define Error_116 -1 // 22 ver 116 de Make_Boton (Imprimiendo) diff --git a/CD_SND/CD_SND.CPP b/CD_SND/CD_SND.CPP new file mode 100644 index 0000000..9b963de --- /dev/null +++ b/CD_SND/CD_SND.CPP @@ -0,0 +1,328 @@ +///////////////////////////////////////////////////////////////////////////// +// +// CD_SND +// +// Utilidad para CD_Out +// +// Se encarga de reunir todos los Waves en un solo archivo para que +// CD_Out pueda utilizarlos. +// +// Parametros de entrada: +// +// CD_SND [Command] [Output File] [ ID_Code ] +// +// -u:NAME.EXT Uncompress Wave with name: NAME.EXT +// -ua Uncompress ALL WAVES +// +// -c:NAME.EXT Compress Wave with name: NAME.EXT ( Name will be a name valid +// for CD_Out: +// CD_OUTXX.WAV ) +// -ca Compress ALL WAVES +// -e:NAME.EXT Extract Wave File with NAME.EXT +// +// Si el fichero no es reconocido por CD_Out necesitara un ID_Code +// distinto para su utilizacin ( en un futuro ), para futuras vesiones +// de CD_Out +///////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include + +#define Extraer_Uno 1 +#define Extraer_Todos 2 +#define Insertar_Uno 3 +#define Insertar_Todos 4 +#define Borra_Uno 5 + +long Longitud( const char *File ); +void Procesa( int Accion, const char *Fich_Origen, char *Fich_Destino ); +void Ayuda(void) ; +void Indica_progreso(int RESET); + + +typedef struct + { + char Nombre_del_Programa[70]; + char Comentario_Inicial[70]; + + char VerHi, VerLow; + char Register; + + long Records; +} CABECERA; + +typedef struct + { + char Wave_Name[13]; // Nombre del Wave + char ID_code; // Codigo ID_ del Wave + unsigned long Pos; // Posicin de comienzo dentro del archivo destino + unsigned long Len; // Longitud + } CD_SND; + + + + long la; + char *Fich_Origen; + char *Fich_Destino; + char Accion = 0; + char ID_Code = -1; + + const char File[][13] = { + "CD_OUT00.WAV", + "CD_OUT01.WAV", + "CD_OUT02.WAV", + "CD_OUT03.WAV", + "CD_OUT04.WAV", + "CD_OUT05.WAV", + "CD_OUT06.WAV", + "CD_OUT07.WAV", + "CD_OUT08.WAV", + "CD_OUT09.WAV", + "CD_OUT0A.WAV", + "CD_OUT0B.WAV", + "CD_OUT0C.WAV", + "CD_OUT0D.WAV", + "CD_OUT0E.WAV", + "CD_OUT0F.WAV", + "CD_OUT10.WAV", + "CD_OUT11.WAV", + "CD_OUTFF.WAV" + }; + + +void main( int argc, char *argv[] ) +{ + int i; + clrscr(); + gotoxy(1,1); textcolor(WHITE); textbackground(BLUE); + cprintf("Copyright (c) J.D. System 1995. Jos David Guilln Dominguez... CD_Snd v1.0"); + + // Analizamos parametros + if ( argc != 3 ) + { + textbackground(BLACK); + gotoxy(1,3); + cprintf("Sintaxis: CD_Snd [Comando] [Archivo_Destino] [ID_Code] "); + Ayuda(); + return; + } else { + + gotoxy(1,2); + cprintf(" Procesando Argumentos "); + Indica_progreso(1); + la = argc; + + if ( !strncmpi(argv[1], "-U:", 3) ) + { + Fich_Origen = argv[1]; + Fich_Origen += 3; + Accion = Extraer_Uno; + Indica_progreso(0); + } else + if ( !strcmpi(argv[1], "-UA") ) + { + Accion = Extraer_Todos; + Indica_progreso(0); + } else + if ( !strncmpi(argv[1], "-C:", 3) ) + { + Fich_Origen = argv[1]; + Fich_Origen += 3; + Accion = Insertar_Uno; + Indica_progreso(0); + } else + if ( !strcmpi(argv[1], "-CA") ) + { + Accion = Insertar_Todos; + Indica_progreso(0); + } else + if ( !strncmpi(argv[1], "-E:", 3) ) + { + Fich_Origen = argv[1]; + Fich_Origen += 3; + Accion = Borra_Uno; + Indica_progreso(0); + } else Ayuda(); + + Fich_Destino = argv[2]; + Indica_progreso(0); + + ID_Code = atoi( argv[3] ); + Indica_progreso(0); + } + + Procesa( Accion, File[i], Fich_Destino ); +/* + swicth ( Accion ) + { + case Insertar_Todos: + case Extraer_Todos: + for ( i=0; i< 19; i++ ) + { + ID_Code = i; + Procesa( Accion, &File[i], Fich_Destino ); + } + break; + default: + Procesa( Accion, Fich_Origen, Fich_Destino ); + break; + } +*/ +} + + +void Indica_progreso(int RESET){ + + static int posx=31; // Posicin de giro // + static int giro=0; // Carater para rotar // + static long contador = 0; + + if ( RESET ) { contador = 0; gotoxy(1,2); cprintf(" 0%"); return; } + contador++; + gotoxy(1,2); cprintf("%3d%%", ( (contador*100)/la ) ); + gotoxy(posx-1,2); posx++; + switch(giro){ + case 0: cprintf(" /"); break; + case 1: cprintf(" "); break; + case 2: cprintf(" \\"); break; + case 3: cprintf(" "); break; + } + if(posx==79) posx=30; + giro++; if(giro==4) giro=0; + +} + + +/*CD_OUTxx . WAV + + 00 Inicio del Programa + FF Fin del Programa + 01 Raton pulsado en algun sitio + 02 Tecla pulsada para nada + 03 Tick Generico + 04 Boton DOS + 05 Boton Windows + 06 Select Icono + 07 Instalar + 08 Configurar + 09 Ejecutar + 0A Ver Dibujo + + 0B Si + 0C No + 0D Imprimiendo + 0E Aceptar + 0F Cancelar + 10 Salvar al Salir + + 11 ERROR DESCONOCIDO + +*/ + +void Ayuda(void) +{ + gotoxy(1,5); + cprintf("[Comando]\r\n"); + cprintf(" * -u: Nombre.EXT Saca una copia del fichero compactado\r\n"); + cprintf(" * -ua Saca una copia de todos los ficheros\r\n") ; + cprintf(" * -c: Nombre.EXT Introduce el Archivo Nombre.Ext en Destino\r\n"); + cprintf(" -ca Introduce todos los Archivos en Destino\r\n") ; + cprintf(" * -e: Nombre.EXT Borra el Archivo Nombre.Ext de Destino\r\n\r\n"); + cprintf(" * Comandos desctivados el la versin SHAREWARE\r\n\r\n") ; + + +} + + +void Procesa( int Accion, const char *Fich_Origen, char *Fich_Destino ) + { + FILE *ORIGEN; + FILE *DESTINO; + CABECERA Cabecera; + CD_SND CD_Snd[19]; + long Pos; int i; + + /* + if ( ( ORIGEN = fopen( Fich_Origen, "rb") ) == NULL ) + { + cprintf("\r\nERROR ABRIENDO ORIGEN: %s\r\n", Fich_Origen); + exit(1); + } + */ + if ( ( DESTINO = fopen( Fich_Destino, "wb") ) == NULL ) + { + cprintf("\r\nERROR ABRIENDO DESTINO: %s\r\n", Fich_Destino); + exit(1); + } + + sprintf( Cabecera.Nombre_del_Programa, "CD_Snd\nCompactador de Ficheros para CD_Out\n" ); + sprintf( Cabecera.Comentario_Inicial, "\n\nCD_Out es un programa de Jos David\nCD_Snd idem%d%d", 7, 26); + Cabecera.VerHi = 1; + Cabecera.VerLow = 0; + Cabecera.Register = 0; + Cabecera.Records =19; + + + fwrite( &Cabecera, sizeof( Cabecera ), 1, DESTINO ); + Pos = sizeof( Cabecera ) + sizeof( CD_SND) * 19; + Indica_progreso(1); la = 19; + + gotoxy(1,2); + cprintf(" Creando Esturcturas "); + + for ( i=0; i< 19; i++ ) + { + strcpy(CD_Snd[i].Wave_Name, File[i]); // Nombre del Wave + CD_Snd[i].ID_code = i; // Codigo ID_ del Wave + CD_Snd[i].Len = Longitud(File[i]); + CD_Snd[i].Pos = Pos; + Pos += CD_Snd[i].Len; + Indica_progreso(0); + } + + fwrite( CD_Snd, sizeof( CD_SND ), 19, DESTINO ); + + for ( i=0; i< 19; i++ ) + { +// gotoxy(1,4); +// cprintf(" Pulse una Tecla para siguiente Archivo -- Version SHAREWARE -- "); +// getch(); +// gotoxy(1,4); +// cprintf(" "); + + gotoxy(1,2); + cprintf(" Uniendo %13s ", File[i]); + Indica_progreso(1); la = CD_Snd[i].Len; + gotoxy(1,3); + cprintf(" Longitud a procesar %ld ", CD_Snd[i].Len); + + if ( ( ORIGEN = fopen( File[i], "rb") ) != NULL ) + { + Pos = CD_Snd[i].Len; + + while ( Pos > 0 ) { fputc(fgetc(ORIGEN), DESTINO); Indica_progreso(0); Pos--; } + + fclose(ORIGEN); + } + } + + fclose(DESTINO); + + } + + long Longitud(const char *File ) + { + FILE *file; + long devolver; + + if ( (file = fopen( File, "rb")) == NULL ) + { + return 0; + } + devolver = filelength(fileno(file)); + fclose(file); + return devolver; + } \ No newline at end of file diff --git a/CD_SND/CD_SND.EXE b/CD_SND/CD_SND.EXE new file mode 100644 index 0000000..01b360d Binary files /dev/null and b/CD_SND/CD_SND.EXE differ diff --git a/CD_SND/CD_TEST.CPP b/CD_SND/CD_TEST.CPP new file mode 100644 index 0000000..86807d2 --- /dev/null +++ b/CD_SND/CD_TEST.CPP @@ -0,0 +1,82 @@ +#include +#include +#include "..\CD_SND.H" +#include "c:\things\borlandc\jd_lib\wav_lib\wavplay.h" + + +int Load_Snd(void); +void Sonido( char Sonido ); + +typedef struct + { + char Nombre_del_Programa[70]; + char Comentario_Inicial[70]; + + char VerHi, VerLow; + char Register; + + long Records; +} CABECERA; + +typedef struct + { + char Wave_Name[13]; // Nombre del Wave + char ID_code; // Codigo ID_ del Wave + unsigned long Pos; // Posicin de comienzo dentro del archivo destino + unsigned long Len; // Longitud + } CD_SND; + + CD_SND CD_Snd[19]; + + + +int Load_Snd(void) +{ + CABECERA Cabecera; + FILE *DESTINO; + + if ( ( DESTINO = fopen( "CD_OUT.SND", "rb") ) == NULL ) + { + return 0; + } + + fread( &Cabecera, sizeof( Cabecera ), 1, DESTINO ); + + fread( CD_Snd, sizeof( CD_SND ), 19, DESTINO ); + + fclose(DESTINO); + return 1; +} + +void main(void) +{ +/**/cprintf("Inicializando sonidos. "); /**/ +/**/ switch ( InitSB() ) { /**/ +/**/ case 0: /**/ +/**/ cprintf(" --> Speaker Ok!\n\r"); /**/ +/**/ break; /**/ +/**/ case 1: /**/ +/**/ cprintf(" --> Sound Blaster Ok!\n\r"); /**/ +/**/ break; /**/ +/**/ case 2: /**/ +/**/ cprintf(" --> Dac Casero Ok!\n\r"); /**/ +/**/ break; /**/ +/**/ } /**/ + + Load_Snd(); + + cprintf("\n\rFichero Posicin Longitud ID_Code\n\r"); + for( int Sonido=0; Sonido < 19; Sonido++ ) + { + while( kbhit() ) getch(); + + cprintf("%s %8ld %8ld %d\n\r", CD_Snd[Sonido].Wave_Name, CD_Snd[Sonido].Pos, + CD_Snd[Sonido].Len, (int)CD_Snd[Sonido].ID_code); + + if ( PlayWav((char far *)"CD_OUT.SND", CD_Snd[Sonido].Pos, CD_Snd[Sonido].Len ) == -1 ) + PlayLongWav((char far *)"CD_OUT.SND", CD_Snd[Sonido].Pos, CD_Snd[Sonido].Len ); + + while( kbhit() ) getch(); + } +} + diff --git a/CD_SND/CD_TEST.EXE b/CD_SND/CD_TEST.EXE new file mode 100644 index 0000000..e3751ba Binary files /dev/null and b/CD_SND/CD_TEST.EXE differ diff --git a/CD_SND/CD_TEST.PRJ b/CD_SND/CD_TEST.PRJ new file mode 100644 index 0000000..d745800 Binary files /dev/null and b/CD_SND/CD_TEST.PRJ differ diff --git a/CD_SND/WAV/CD_OUT00.WAV b/CD_SND/WAV/CD_OUT00.WAV new file mode 100644 index 0000000..57db00c Binary files /dev/null and b/CD_SND/WAV/CD_OUT00.WAV differ diff --git a/CD_SND/WAV/CD_OUT01.WAV b/CD_SND/WAV/CD_OUT01.WAV new file mode 100644 index 0000000..4616f9e Binary files /dev/null and b/CD_SND/WAV/CD_OUT01.WAV differ diff --git a/CD_SND/WAV/CD_OUT02.WAV b/CD_SND/WAV/CD_OUT02.WAV new file mode 100644 index 0000000..da05fdc Binary files /dev/null and b/CD_SND/WAV/CD_OUT02.WAV differ diff --git a/CD_SND/WAV/CD_OUT03.WAV b/CD_SND/WAV/CD_OUT03.WAV new file mode 100644 index 0000000..0e35b0f Binary files /dev/null and b/CD_SND/WAV/CD_OUT03.WAV differ diff --git a/CD_SND/WAV/CD_OUT04.WAV b/CD_SND/WAV/CD_OUT04.WAV new file mode 100644 index 0000000..134a73d Binary files /dev/null and b/CD_SND/WAV/CD_OUT04.WAV differ diff --git a/CD_SND/WAV/CD_OUT07.WAV b/CD_SND/WAV/CD_OUT07.WAV new file mode 100644 index 0000000..32a24e3 Binary files /dev/null and b/CD_SND/WAV/CD_OUT07.WAV differ diff --git a/CD_SND/WAV/CD_OUT08.WAV b/CD_SND/WAV/CD_OUT08.WAV new file mode 100644 index 0000000..f6c3d2e Binary files /dev/null and b/CD_SND/WAV/CD_OUT08.WAV differ diff --git a/CD_SND/WAV/CD_OUT09.WAV b/CD_SND/WAV/CD_OUT09.WAV new file mode 100644 index 0000000..9fef363 Binary files /dev/null and b/CD_SND/WAV/CD_OUT09.WAV differ diff --git a/CD_SND/WAV/CD_OUT0A.WAV b/CD_SND/WAV/CD_OUT0A.WAV new file mode 100644 index 0000000..9fef363 Binary files /dev/null and b/CD_SND/WAV/CD_OUT0A.WAV differ diff --git a/CD_SND/WAV/CD_OUT0B.WAV b/CD_SND/WAV/CD_OUT0B.WAV new file mode 100644 index 0000000..5d6ab51 Binary files /dev/null and b/CD_SND/WAV/CD_OUT0B.WAV differ diff --git a/CD_SND/WAV/CD_OUT0C.WAV b/CD_SND/WAV/CD_OUT0C.WAV new file mode 100644 index 0000000..f18144f Binary files /dev/null and b/CD_SND/WAV/CD_OUT0C.WAV differ diff --git a/CD_SND/WAV/CD_OUT0D.WAV b/CD_SND/WAV/CD_OUT0D.WAV new file mode 100644 index 0000000..1969f2a Binary files /dev/null and b/CD_SND/WAV/CD_OUT0D.WAV differ diff --git a/CD_SND/WAV/CD_OUT0E.WAV b/CD_SND/WAV/CD_OUT0E.WAV new file mode 100644 index 0000000..0e23916 Binary files /dev/null and b/CD_SND/WAV/CD_OUT0E.WAV differ diff --git a/CD_SND/WAV/CD_OUT0F.WAV b/CD_SND/WAV/CD_OUT0F.WAV new file mode 100644 index 0000000..def863c Binary files /dev/null and b/CD_SND/WAV/CD_OUT0F.WAV differ diff --git a/CD_SND/WAV/CD_OUT10.WAV b/CD_SND/WAV/CD_OUT10.WAV new file mode 100644 index 0000000..d01ff1f Binary files /dev/null and b/CD_SND/WAV/CD_OUT10.WAV differ diff --git a/CD_SND/WAV/CD_OUT11.WAV b/CD_SND/WAV/CD_OUT11.WAV new file mode 100644 index 0000000..7ac88a7 Binary files /dev/null and b/CD_SND/WAV/CD_OUT11.WAV differ diff --git a/CD_SND/WAV/CD_OUTFF.WAV b/CD_SND/WAV/CD_OUTFF.WAV new file mode 100644 index 0000000..0dd2fb6 Binary files /dev/null and b/CD_SND/WAV/CD_OUTFF.WAV differ diff --git a/EMMC.CPP b/EMMC.CPP new file mode 100644 index 0000000..fc0fca7 --- /dev/null +++ b/EMMC.CPP @@ -0,0 +1,402 @@ +/**********************************************************************/ +/* E M M C */ +/*--------------------------------------------------------------------*/ +/* Tarea : contiene algunas funciones para acceder a la */ +/* memoria EMS (Expanded Memory) */ +/*--------------------------------------------------------------------*/ +/* Autor : MICHAEL TISCHER */ +/* desarrollado el: 30.08.1988 */ +/* ltimo update : 29.01.1995 */ +/*--------------------------------------------------------------------*/ +/* modelo de memoria: alguno con puntero FAR a los datos, es */ +/* decir Compact, Large o Huge */ +/**********************************************************************/ + +/*== enlazar archivos Include =======================================*/ + +#include +#include +#include +#include +#include +#include "EMMC.h" + +/*== Typedefs ========================================================*/ + +typedef unsigned char BYTE; /*nos construimos un byte*/ +typedef unsigned int WORD; +typedef BYTE BOOL; /*como BOOLEAN en Pascal*/ + +/*== Macros ==========================================================*/ + +/*-- MK_FP crea de una direccin de segmento y Offset un -------------*/ +/*-- puntero FAR a un objeto -------*/ + +#ifdef MK_FP /*ya se defini MK_FP?*/ + #undef MK_FP +#endif +#define MK_FP(seg, ofs) ((void far *) ((unsigned long) (seg)<<16|(ofs))) + +/*-- PAGE_ADR devuelve un puntero a la pgina fsica X dentro del ----*/ +/*-- Page-Frame de la memoria EMS ----*/ + +#define PAGE_ADR(x) ((void *) MK_FP(ems_frame_seg() + ((x) << 10), 0)) + +/*== Constantes ======================================================*/ + +#define TRUE 1 /*Constantes para el trabajo con BOOL*/ +#define FALSE 0 + +#define EMS_INT 0x67 /*nmero de interrupcin para acceder a la EMM*/ +#define EMS_ERR -1 /*se devuelve en caso de error*/ + +/*== variables globales===============================================*/ + +BYTE emm_ec; /*aqu se guardan los cdigos de error EMM*/ + +/***********************************************************************/ +/* Funcin : E M S _ I N S T */ +/**--------------------------------------------------------------------**/ +/* Tarea : Determina si hay instalada memoria EMS, y un */ +/* driver EMS (EMM) asociado. */ +/* Parmetro entrada: ninguno */ +/* Valor de retorno : TRUE, si hay memoria EMS instalada, sino */ +/* FALSE. */ +/************************************************************************/ + +BOOL ems_inst() + { + static char emm_name[] = { 'E', 'M', 'M', 'X', 'X', 'X', 'X', '0' }; + union REGS regs; /*reg. de proc. para la llamada de interr.*/ + struct SREGS sregs; /*reg. de segm. para la llamada de interr.*/ + + /*-- Construir puntero a nombre en cabecera de un contr. de disp. --*/ + + regs.x.ax = 0x3567; /*n de func.: obtener vector int. 0x67*/ + intdosx(®s, ®s, &sregs); /*llamar la interr. del DOS 0x21*/ + return !memcmp( MK_FP(sregs.es, 10), emm_name, sizeof emm_name ); + } + +/************************************************************************/ +/* Funcin : E M S _ N U M _ P A G E */ +/**--------------------------------------------------------------------**/ +/* Tarea : Obtiene el n total de pginas EMS. */ +/* Parmetro entrada: ninguno */ +/* Valor de retorno : EMS_ERR en caso de error, sino el nmero de */ +/* pginas EMS. */ +/************************************************************************/ +int ems_num_page() + { + union REGS regs; /*reg. de proc. para la llamada de interr.*/ + + regs.h.ah = 0x42; /*nmero de funcin: obtener nmero de pginas*/ + int86(EMS_INT, ®s, ®s); /*llamar EMM*/ + if ((int) (emm_ec = regs.h.ah)) /*ha aparecido un error?*/ + return(EMS_ERR); /*S, mostrar error*/ + else /*no hay error*/ + return( regs.x.dx ); /*devolver nmero total de pginas*/ + } + +/**********************************************************************/ +/* Funcin : E M S _ F R E E _ P A G E */ +/**--------------------------------------------------------------------**/ +/* Tarea : Obtiene la cantidad de pginas EMS libres. */ +/* Parmetro entrada: ninguno */ +/* Valor de retorno : EMS_ERR en caso de error, sino el nmero de */ +/* pginas EMS libres. */ +/***********************************************************************/ + +int ems_free_page() + { + union REGS regs; /*reg. de proc. para la llamada de interr.*/ + + regs.h.ah = 0x42; /*nmero de funcin: obtener nmero de pginas*/ + int86(EMS_INT, ®s, ®s); /*llamar EMM*/ + if ((int) (emm_ec = regs.h.ah)) /*ha aparecido un error?*/ + return(EMS_ERR); /*S, mostrar error*/ + else /*no hay error*/ + return( regs.x.bx ); /*devolver nmero de pginas libres*/ + } + +/**********************************************************************/ +/* Funcin : E M S _ F R A M E _ S E G */ +/**--------------------------------------------------------------------**/ +/* Tarea : Obtiene la dir. de segmento del EMS-Page-Frame */ +/* Parmetro entrada: ninguno */ +/* Valor de retorno : EMS_ERR en caso de error, sino la direccin de */ +/* segmento del Page-Frame. */ +/***********************************************************************/ + +WORD ems_frame_seg() + { + union REGS regs; /*reg. de proc. para la llamada de interr.*/ + + regs.h.ah = 0x41; /*n de funcin: obt.dir.segm. Page-Frame*/ + int86(EMS_INT, ®s, ®s); /*llamar EMM*/ + if ((int) (emm_ec = regs.h.ah)) /*ha aparecido un error?*/ + return(EMS_ERR); /*S, mostrar error*/ + else /*no hay error*/ + return( regs.x.bx ); /*devolver direccin de segmento*/ + } + +/**********************************************************************/ +/* Funcin : E M S _ A L L O C */ +/**--------------------------------------------------------------------**/ +/* Tarea : Aloja el nmero de pginas indicado y devuelve */ +/* un Handle para acceder a estas pginas. */ +/* */ +/* Parmetro entrada: PAGES : el nmero de pginas a alojar */ +/* (de 16 KBytes cada uno) */ +/* Valor de retorno : EMS_ERR en caso de error, sino el Handle EMS. */ +/***********************************************************************/ + +int ems_alloc(int pages) + { + union REGS regs; /*reg. de proc. para la llamada de interr.*/ + + regs.h.ah = 0x43; /*nmero de funcin: aljar pginas*/ + regs.x.bx = pages; /*fijar nmero de pginas a alojar*/ + int86(EMS_INT, ®s, ®s); /*llamar EMM*/ + if ((int) (emm_ec = regs.h.ah)) /*ha aparecido un error?*/ + return(EMS_ERR); /*S, mostrar error*/ + else /*no hay error*/ + return( regs.x.dx ); /*devolver Handle-EMS*/ + } + +/**********************************************************************/ +/* Funcin : E M S _ M A P */ +/**--------------------------------------------------------------------**/ +/* Tarea : Proyecta una de las pginas alojadas bajo */ +/* el Handle indicado, a un pgina fsica del */ +/* del Page-Frame. */ +/* Parmetro entrada: HANDLE: el Handle devuelto por EMS_ALLOC */ +/* LOGP : la pgina lgica (0 a n-1) */ +/* PHYSP : la pgina fsica (0 a 3) */ +/* Valor de retorno : FALSE en caso de error, sino TRUE. */ +/***********************************************************************/ + +BOOL ems_map(int handle, int logp, BYTE physp) + { + union REGS regs; /*reg. de proc. para la llamada de interr.*/ + + regs.h.ah = 0x44; /*nmero de funcin: fijar Maping*/ + regs.h.al = physp; /*fijar pgina fsica*/ + regs.x.bx = logp; /*fijar pgina lgica*/ + regs.x.dx = handle; /*fijar Handle EMS*/ + int86(EMS_INT, ®s, ®s); /*llamar EMM*/ + return (!(emm_ec = regs.h.ah)); + } + +/**********************************************************************/ +/* Funcin : E M S _ F R E E */ +/**--------------------------------------------------------------------**/ +/* Tarea : Devuelve la memoria alojada bajo un Handle */ +/* de nuevo. */ +/* Parmetro entrada: HANDLE: el Handle devuelto por EMS_ALLOC */ +/* Valor de retorno : FALSE en caso de error, sino TRUE. */ +/***********************************************************************/ +BOOL ems_free(int handle) + { + union REGS regs; /*reg. de proc. para la llamada de interr.*/ + + regs.h.ah = 0x45; /*nmero de funcin: liberar pginas*/ + regs.x.dx = handle; /*fijar Handle EMS*/ + int86(EMS_INT, ®s, ®s); /*llamar EMM*/ + return (!(emm_ec = regs.h.ah)); /*si AH contiene 0, todo est ok*/ + } + +/**********************************************************************/ +/* Funcin : E M S _ V E R S I O N */ +/**--------------------------------------------------------------------**/ +/* Tarea : Obtiene el nmero de versin EMM. */ +/* Parmetro entrada: ninguno */ +/* Valor de retorno : EMS_ERR en caso de error, sino el nmero de */ +/* versin EMM. */ +/* Info : En el nmero de versin, 10 est por 1.0, 11 */ +/* por 1.1, 34 por 3.4, etc. */ +/***********************************************************************/ + +BYTE ems_version() + { + union REGS regs; /*reg. de proc. para la llamada de interr.*/ + + regs.h.ah = 0x46; /*nmero de funcin: obtener versin EMS*/ + int86(EMS_INT, ®s, ®s); /*llamar EMM*/ + if ((int) (emm_ec = regs.h.ah)) /*ha aparecido un error?*/ + return(EMS_ERR); /*S, mostrar error*/ + else /*sin error, calcula nmero de versin de cifra BCD*/ + return( (regs.h.al & 15) + (regs.h.al >> 4) * 10); + } + +/**********************************************************************/ +/* Funcin : E M S _ S A V E _ M A P */ +/**--------------------------------------------------------------------**/ +/* Tarea : Guarda la proyeccin (Mapping) entre pginas */ +/* lgicas y fsicas. */ +/* Parmetro entrada: HANDLE: el Handle devuelto por EMS_ALLOC */ +/* Valor de retorno : FALSE en caso de error, sino TRUE. */ +/***********************************************************************/ + +BOOL ems_save_map(int handle) + { + union REGS regs; /*reg. de proc. para la llamada de interr.*/ + + regs.h.ah = 0x47; /*nmero de funcin: guardar Mapping*/ + regs.x.dx = handle; /*fijar Handle EMS*/ + int86(EMS_INT, ®s, ®s); /*llamar EMM*/ + return (!(emm_ec = regs.h.ah)); /*si AH contiene 0, todo est ok*/ + } + +/**********************************************************************/ +/* Funcin : E M S _ R E S T O R E _ M A P */ +/**--------------------------------------------------------------------**/ +/* Tarea : Recupera una proyeccin entre pginas lgicas */ +/* y fsicas guardada anteriormente mediante */ +/* EMS_SAVE_MAP. */ +/* Parmetro entrada: HANDLE: el Handle devuelto por EMS_ALLOC */ +/* Valor de retorno : FALSE en caso de error, sino TRUE. */ +/***********************************************************************/ + +BOOL ems_restore_map(int handle) + { + union REGS regs; /*reg. de proc. para la llamada de interr.*/ + + regs.h.ah = 0x48; /*nmero de funcin: Recuperar Mapping*/ + regs.x.dx = handle; /*fijar Handle EMS*/ + int86(EMS_INT, ®s, ®s); /*llamar EMM*/ + return (!(emm_ec = regs.h.ah)); /*si AH contiene 0, todo est ok*/ + } + +/**********************************************************************/ +/* Funcin : P R I N T _ E R R */ +/**--------------------------------------------------------------------**/ +/* Tarea : Visualiza un mensaje de error EMS en la pantalla */ +/* y termina el programa. */ +/* Parmetro entrada: ninguno */ +/* Valor de retorno : ninguno */ +/* Info : Esta funcin slo se puede llamar si durante */ +/* la llamada anterior de una funcin del EMM */ +/* ha aparecido un error. */ +/***********************************************************************/ + +void print_err() + { + static char nid[] = "no identificable"; + static char *err_vec[] = + { "Error en el driver EMS (EMM destruido)", /*0x80*/ + "Error en el hardware EMS", /*0x81*/ + nid, /*0x82*/ + "Handle EMM no vlido", /*0x83*/ + "funcin EMS llamada no existe", /*0x84*/ + "no quedan Handles EMS disponibles", /*0x85*/ + "Error al guardar o recuperar el Mapping", /*0x86*/ + "ms pginas pedidas de las que existen fsicamente", /*0x87*/ + "ms pginas pedidas de las que quedan libres", /*0x88*/ + "pedidad cero pginas", /*0x89*/ + "pgina lgica no pertenece al Handle", /*0x8A*/ + "nmero de pgina fsico no vlido", /*0x8B*/ + "Zona de memoria mapping est llena", /*0x8C*/ + "Guardado del mapping ya se realiz", /*0x8D*/ + "Recuperar el mapping sin guardarlo previamente" + }; + + printf("\nATENCION! Error al acceder a la memoria EMS!r\n"); + printf(" ... %s\n", (emm_ec<0x80 || emm_ec>0x8E) ? + nid : err_vec[emm_ec-0x80]); + exit( 1 ); /*terminar programa con cdigo de error*/ + } + +/**********************************************************************/ +/* Funcin : V R _ A D R */ +/**------------------------------------------------------------------**/ +/* Tarea : Devuelve un puntero a la RAM de vdeo. */ +/* Parmetro entrada: ninguno */ +/* Valor de retorno : Puntero VOID a la RAM de vdeo. */ +/**********************************************************************/ + +void *vr_adr() + { + union REGS regs; /*reg. de proc. para la llamada de interr.*/ + + regs.h.ah = 0x0f; /*nmero de funcin:obtener modo de vdeo*/ + int86(0x10, ®s, ®s); /*llamar interrupcin de la BIOS de vdeo*/ + return ( MK_FP((regs.h.al==7) ? 0xb000 : 0xb800, 0) ); + } + + +/**********************************************************************/ +/** PROGRAMA PRINCIPAL **/ +/**********************************************************************/ +//// +////void main() +////{ +//// int pagenum, /*nmero de pginas EMS*/ +//// handle, /*Handle para acceder a la memoria EMS*/ +//// i; /*contador de bucle*/ +//// WORD pageseg ; /*direccin de segmento del Page-Frame*/ +//// BYTE emmver; /*nmero de versin de la EMM*/ +//// +//// printf("EMMC - (c) 1988, 92 by MICHAEL TISCHER\n\n"); +//// if ( ems_inst() ) /*Est instalada la memoria EMS?*/ +//// { /*Si*/ +//// /*-- Visualizar informaciones sobre la memoria EMS ----------------*/ +//// +//// if ( (int) (emmver = ems_version()) == EMS_ERR) /*Obten. n versin*/ +//// print_err(); /*Error: visualizar men. error y term. el programa*/ +//// else /*no hay error*/ +//// printf("Nmero de versin EMM : %d.%d\n", +//// emmver/10, emmver%10); +//// +//// if ( (pagenum = ems_num_page()) == EMS_ERR) /*obten. n pginas*/ +//// print_err(); /*Error: vis. men. de error y terminar el programa*/ +//// printf("Nmero de pginas EMS : %d (%d KByte)\n", +//// pagenum, pagenum << 4); +//// +//// if ( (pagenum = ems_free_page()) == EMS_ERR) +//// print_err(); /*Error: vis. men. error y terminar el programa*/ +//// printf("... libres : %d (%d KByte)\n", +//// pagenum, pagenum << 4); +//// +//// if ( (int) (pageseg = ems_frame_seg()) == EMS_ERR) +//// print_err(); /*Error: vis. men. error y terminar el programa*/ +//// printf("Direcc. segmento del Page-Frame: %X\n", pageseg); +//// +//// printf("\nAhora se aloja una pgina de la memoria EMS, y el con-\n"); +//// printf("tenido de la pantalla de la RAM de vdeo se copia a\n"); +//// printf("esta pgina.\n"); +//// printf(" ... por favor pulse una tecla\n"); +//// getch(); /*esperar una tecla*/ +//// +//// /*-- alojar una pgina y poyectar sobre la primera pgina lgica --*/ +//// /*-- en el Page-Frame ---*/ +//// +//// if ( (handle = ems_alloc(1)) == EMS_ERR) +//// print_err(); /*Error: vis. men. error y terminar el programa*/ +//// if ( !ems_map(handle, 0, 0) ) /*fijar Mapping*/ +//// print_err(); /*Error: vis. men. de error y terminar el programa*/ +//// +//// /*-- Copiar 4000 bytes de la RAM de vdeo a la memoria EMS ----*/ +//// +//// memcpy(PAGE_ADR(0), vr_adr(), 4000); +//// +//// for (i=0; i<24; ++i) /*borrar la pantalla*/ +//// printf("\n"); +//// +//// printf("El antiguo contenido de la pantalla ha sido borrado y\n"); +//// printf("con ello se ha perdido. Pero como ha sido guardado en\n"); +//// printf("la memoria EMS, se puede volver a copiar de all a la\n"); +//// printf("RAM de vdeo.\n"); +//// printf(" ... por favor pulse una tecla\n"); +//// getch(); /*esperar una tecla*/ +//// +//// /*-- copiar de nuevo el contenido de la RAM de vdeo de la memo----*/ +//// /*-- ria EMS y devolver la memoria EMS alojada ----*/ +//// +//// memcpy(vr_adr(), PAGE_ADR(0), 4000); /*copiar la V-RAM de vuelta*/ +//// if ( !ems_free(handle) ) /*liberar memoria*/ +//// print_err(); /*Error: vis. men. error y terminar el programa*/ +//// printf("FIN"); +//// } +//// else /*el driver EMS no se descubri*/ +//// printf("ATENCION: No hay memoria EMS instalada.\n"); +////} diff --git a/EMMC.H b/EMMC.H new file mode 100644 index 0000000..30a57a3 --- /dev/null +++ b/EMMC.H @@ -0,0 +1,46 @@ +/*== Typedefs ========================================================*/ + +typedef unsigned char BYTE; /*nos construimos un byte*/ +typedef unsigned int WORD; +typedef BYTE BOOL; /*como BOOLEAN en Pascal*/ + +/*== Macros ==========================================================*/ + +/*-- MK_FP crea de una direccin de segmento y Offset un -------------*/ +/*-- puntero FAR a un objeto -------*/ + +#ifdef MK_FP /*ya se defini MK_FP?*/ + #undef MK_FP +#endif +#define MK_FP(seg, ofs) ((void far *) ((unsigned long) (seg)<<16|(ofs))) + +/*-- PAGE_ADR devuelve un puntero a la pgina fsica X dentro del ----*/ +/*-- Page-Frame de la memoria EMS ----*/ + +#define PAGE_ADR(x) ((void *) MK_FP(ems_frame_seg() + ((x) << 10), 0)) + +/*== Constantes ======================================================*/ + +#define TRUE 1 /*Constantes para el trabajo con BOOL*/ +#define FALSE 0 + +#define EMS_INT 0x67 /*nmero de interrupcin para acceder a la EMM*/ +#define EMS_ERR -1 /*se devuelve en caso de error*/ + +/*== variables globales===============================================*/ + +extern BYTE emm_ec; /*aqu se guardan los cdigos de error EMM*/ + + +BOOL ems_inst(void); +int ems_num_page(void); +int ems_free_page(void); +WORD ems_frame_seg(void); +int ems_alloc(int pages); +BOOL ems_map(int handle, int logp, BYTE physp); +BOOL ems_free(int handle); +BYTE ems_version(void); +BOOL ems_save_map(int handle); +BOOL ems_restore_map(int handle); +void print_err(void); + diff --git a/LIST_COL.H b/LIST_COL.H new file mode 100644 index 0000000..44ca393 --- /dev/null +++ b/LIST_COL.H @@ -0,0 +1,5 @@ +// Aqui se debe poner cual sera el color negro, +// para la utilizacin por Make_Boton... + +#define NEGRO 240 + diff --git a/LITTF.OBJ b/LITTF.OBJ new file mode 100644 index 0000000..48fd97b Binary files /dev/null and b/LITTF.OBJ differ diff --git a/PCX16C.CPP b/PCX16C.CPP new file mode 100644 index 0000000..af5f3de --- /dev/null +++ b/PCX16C.CPP @@ -0,0 +1,335 @@ +#include +#include +#include +#include +#include +#include + +#include "..\libs\make_bot\make_bot.h" +#include "..\libs\wavplav\wavplay.h" +extern void Sonido(char Sonido); + +#include "XmsSupp.h" + +/******************************* DEFINICIONES ******************************/ + + +#define GRAFICO 18 /* su nmero en el proceso de compilacin */ + +void reinicializa_raton_grafico(int x1, int y1, int x2, int y2); +/*********************** DECLARACIONES DE FUNCIONES ************************/ +extern char raton; + //**// + //* Cabecera completa de un PCX *// + //**// + +typedef struct { + char indicador; /* constante. Si=10 es un archivo PCX */ + char version; /* version pcx */ + char codificacion; /* Si=1 el PCX esta comprimido */ + char bits_pixel; /* bits por pixel (1,2,4,8) */ + /* los 4 campos que siguen dan el recuadrado de la imagen */ + unsigned int Xmin; + unsigned int Ymin; + unsigned int Xmax; + unsigned int Ymax; + unsigned int Hres; + unsigned int Vres; + char paleta_16[48]; /* si la pcx tiene <=16 colores, aqui paleta */ + char reserv1; /* reservado */ + char nplanos; /* num. de planos usados en la imagen */ + unsigned int bytes_linea; /* bytes necesarios para decodificar una linea */ + unsigned int infopal; /* Si=1 color o blanco y negro. 0=grises */ + unsigned int anchura; /* anchura de la imagen */ + unsigned int altura; /* altura de la imagen */ + char sobrante[54]; /* sobrante de cabecera para futuras ampliaciones */ +} PCX_HEADER; + +void asigna_modo_video(char); +extern "C" void VUELCA_PANTALLA(unsigned char *); +extern "C" void VUELCA_PANTALLA_B(unsigned char *); +int lee_dibujo(char *dibujo); +extern void InicializaSVGA(void); + +extern char dac[256*3]; +char newdac[256*3]; +extern "C" void ENCIENDE_PANTALLA(char *); +extern "C" void CHANGE_BANK(int); + +extern XmsSupp Xms_Image_Bank1, + Xms_Image_Bank2, + Xms_Image_Bank3, + Xms_Image_Bank4, + Xms_Image_Bank5; + +/*************************** VARIABLES GLOBALES ****************************/ + +int Lee_Cabecera(char *dibujo); +void ChkErr(void); + +extern void Inicializa_Dibujo(int L_Imagen, char *N_Imagen2); + +extern char SONIDO; + +void Carga_PCX(char *Imagen) +{ + int col; + char Old_Dac[256*3]; + // Guardamos el contenido de la pantalla + // Asignamos Puntero a Memoria convencional y miramos si + // hay ERROR. + // Movemos a XMS y si hay ERROR lo Visualizamos. + CHANGE_BANK(0); SetConPntr(MK_FP(0xA000, 0), &Xms_Image_Bank1); + ChkErr(); Move2Xms(&Xms_Image_Bank1); ChkErr(); + CHANGE_BANK(1); SetConPntr(MK_FP(0xA000, 0), &Xms_Image_Bank2); + ChkErr(); Move2Xms(&Xms_Image_Bank2); ChkErr(); + CHANGE_BANK(2); SetConPntr(MK_FP(0xA000, 0), &Xms_Image_Bank3); + ChkErr(); Move2Xms(&Xms_Image_Bank3); ChkErr(); + CHANGE_BANK(3); SetConPntr(MK_FP(0xA000, 0), &Xms_Image_Bank4); + ChkErr(); Move2Xms(&Xms_Image_Bank4); ChkErr(); + CHANGE_BANK(4); SetConPntr(MK_FP(0xA000, 0), &Xms_Image_Bank5); + ChkErr(); Move2Xms(&Xms_Image_Bank5); ChkErr(); + + + + // Guardamos los colores originales + for( col = 0; col < 256*3; col++) + Old_Dac[col] = dac[col]; + + + switch( Lee_Cabecera(Imagen) ) { + case 1: // 640x480 16c + case 3: // 640x400 16c + asigna_modo_video(18); + lee_dibujo(Imagen); + PunteroRaton = 1; + Espera_Tecla_o_Raton(); + PunteroRaton = 100; +// getch(); + InicializaSVGA(); + break; + case 2: // 640x480 246c + case 4: // 640x400 246c + cleardevice(); + Inicializa_Dibujo( (-2), Imagen); + + for( col = (256-16)*3; col < (256)*3; col++) + dac[col] = newdac[ col ]; + + ENCIENDE_PANTALLA(dac); + PunteroRaton = 1; + if( SONIDO == 1 ) + { + PlayLongWav( "CD_OUT.cr2", 0, -1 ); + getch(); + } + else + Espera_Tecla_o_Raton(); + PunteroRaton = 100; + + while( kbhit() ) getch(); +// getch(); + break; + } + + // Restauramos el contenido de la pantalla + // Asignamos Puntero a Memoria convencional y miramos si + // hay ERROR. + // Movemos a XMS y si hay ERROR lo Visualizamos. + CHANGE_BANK(0); SetConPntr(MK_FP(0xA000, 0), &Xms_Image_Bank1); + ChkErr(); Move2Con(&Xms_Image_Bank1); ChkErr(); + CHANGE_BANK(1); SetConPntr(MK_FP(0xA000, 0), &Xms_Image_Bank2); + ChkErr(); Move2Con(&Xms_Image_Bank2); ChkErr(); + CHANGE_BANK(2); SetConPntr(MK_FP(0xA000, 0), &Xms_Image_Bank3); + ChkErr(); Move2Con(&Xms_Image_Bank3); ChkErr(); + CHANGE_BANK(3); SetConPntr(MK_FP(0xA000, 0), &Xms_Image_Bank4); + ChkErr(); Move2Con(&Xms_Image_Bank4); ChkErr(); + CHANGE_BANK(4); SetConPntr(MK_FP(0xA000, 0), &Xms_Image_Bank5); + ChkErr(); Move2Con(&Xms_Image_Bank5); ChkErr(); + + // Restauramos los colores originales + for( col = 0; col < 256*3; col++) + dac[col] = Old_Dac[col]; + ENCIENDE_PANTALLA(dac); + + reinicializa_raton_grafico( 0, 0, 618, 460); + + +} + + +void asigna_modo_video(char modo) /* asigna el modo de vdeo indicado */ +{ /* en la variable "modo" */ + union REGS r; + + r.h.al = modo; + r.h.ah = 0; + int86(16, &r, &r); +} + +int Lee_Cabecera(char *dibujo){ + FILE *handle_dibujo; + long ancho, alto; + int col; + PCX_HEADER Cabecera; + + if((handle_dibujo=fopen(dibujo, "rb"))==NULL) { + return -2; + } + + // Saltamos la cabecera + fread( &Cabecera, sizeof(PCX_HEADER), 1, handle_dibujo ); + + ancho= Cabecera.Xmax - Cabecera.Xmin+1; + alto = Cabecera.Ymax - Cabecera.Ymin+1; + + col = ( (Cabecera.bits_pixel<=4) ? 16 : 256 ); + fclose(handle_dibujo); + + if(ancho == 640 && alto == 480 && col == 16) return 1; + if(ancho == 640 && alto == 480 && col ==256) return 2; + if(ancho == 640 && alto == 400 && col == 16) return 3; + if(ancho == 640 && alto == 400 && col ==256) return 4; + if(ancho == 320 && alto == 200 && col ==256) return 5; + + return (-1); +} + +int lee_dibujo(char *dibujo) +{ + int *dir_dibu; + char huge *dir; + PCX_HEADER Cabecera; + struct SREGS seg; + union REGS ent, sal; + int num_color, n; + long int dir2; + unsigned char *dir_col; + unsigned char *dir_planos; + FILE *handle_dibujo; + long ancho, alto; + int filas, columnas, byte, contador; + int colores[16] = { 0, 1, 2, 3, 4, 5, 20, 7, 56, 57, 58, 59, 60, 61, 62, 63 }; + + if((handle_dibujo=fopen(dibujo, "rb"))==NULL) { + return -2; + } + + // Saltamos la cabecera + fread( &Cabecera, sizeof(PCX_HEADER), 1, handle_dibujo ); + + ancho= Cabecera.Xmax - Cabecera.Xmin+1; + alto = Cabecera.Ymax - Cabecera.Ymin+1; + + + //**// + //* Asigna memoria *// + //**// + if((dir_planos=(unsigned char *)farmalloc( (long)((ancho*alto)/2) ) )==NULL) { + if(fclose(handle_dibujo)!=NULL) { + return -2; + } + return -1; + } + + + dir=(char huge *)dir_planos; + while(!feof(handle_dibujo)) { + + for(filas=alto; filas>0 && !feof(handle_dibujo); filas--) { + columnas=ancho/2; + while( columnas>0 && !feof(handle_dibujo) ) { + byte=getc(handle_dibujo); + if(byte<=192) { *dir++=byte; columnas--; } + else { + contador=byte&0x3F; byte=getc(handle_dibujo); + for(; contador>0; contador--) { + *dir++=byte; columnas--; + } + } + } + } + + } + + + if(fclose(handle_dibujo)!=NULL) { + return -2; + } + + dir_col=Cabecera.paleta_16; /* divide entre 4 */ + for(n=16*3; n>0; n--) { /* los colores */ + *dir_col=(*dir_col) >> 2; dir_col++; + } + + dir2 =(long)Cabecera.paleta_16; /* obtiene el segmento */ + seg.es=(int) (dir2 >> 16); /* donde estan los colores */ + + for(n=0; n<16; n++) { + num_color=colores[n]; + ent.h.al = 18; + ent.h.ah = 16; + ent.x.bx = num_color; + ent.x.cx = 1; + ent.x.dx = (int)dir2; /* offset de los colores */ + int86x(0x10, &ent, &sal, &seg); /* funcin para asignar los colores */ + dir2+=3; + } + + +// if( alto == 400 ) VUELCA_PANTALLA(dir_planos); +// else VUELCA_PANTALLA_B(dir_planos); + VUELCA_PANTALLA(dir_planos); + + + + farfree(dir_planos); + + return 0; + +} + +void reinicializa_raton_grafico(int x1, int y1, int x2, int y2) +{ + + + struct SREGS seg; + union REGS ent, sal; + + if(raton!=0) { + + + ent.x.ax = 15; + ent.x.cx = 5; + ent.x.dx = 11; + int86(0x33, &ent, &sal); /* fija la razn mickey/pixel */ + + ent.x.ax = 7; + ent.x.cx = x1; + ent.x.dx = x2; + int86(0x33, &ent, &sal); /* fija la posicin mx. y mn. horizontal */ + + ent.x.ax = 8; + ent.x.cx = y1; + ent.x.dx = y2; + int86(0x33, &ent, &sal); /* fija la posicin mx. y mn. vertical */ + } +} +void ChkErr(void) + { + if(Xms_Image_Bank1.lError || Xms_Image_Bank2.lError || + Xms_Image_Bank3.lError || Xms_Image_Bank4.lError || + Xms_Image_Bank5.lError ) + { + closegraph(); + printf("Bank1 %s\n",Xms_Image_Bank1.cError); + printf("Bank2 %s\n",Xms_Image_Bank2.cError); + printf("Bank3 %s\n",Xms_Image_Bank3.cError); + printf("Bank4 %s\n",Xms_Image_Bank4.cError); + printf("Bank5 %s\n",Xms_Image_Bank5.cError); + printf("Cambiando Bancos, Hemos salido con los codigos: %d, %d, %d, %d", + Xms_Image_Bank1.lError, Xms_Image_Bank2.lError, + Xms_Image_Bank3.lError, Xms_Image_Bank4.lError, Xms_Image_Bank5.lError ); + exit(1); + } + } \ No newline at end of file diff --git a/R.BAT b/R.BAT new file mode 100644 index 0000000..28da3d3 --- /dev/null +++ b/R.BAT @@ -0,0 +1 @@ +edit cd_out.img diff --git a/SUPERVGA.ASM b/SUPERVGA.ASM new file mode 100644 index 0000000..f1f963d --- /dev/null +++ b/SUPERVGA.ASM @@ -0,0 +1,163 @@ + + .MODEL COMPACT + .286 + .CODE + +BUFFER_SVGA DB 256 DUP (0) + + PUBLIC _SET_VESA + +_SET_VESA PROC NEAR + PUSH BP + MOV BP,SP + PUSH DI + PUSH ES + +VER_SVGA: MOV AX,CS + MOV ES,AX + MOV DI,OFFSET CS:BUFFER_SVGA + MOV AX,4F00h + INT 10h + MOV AX,2 + CMP WORD PTR CS:[BUFFER_SVGA+0],"EV" + JNE NO_VESA + CMP WORD PTR CS:[BUFFER_SVGA+2],"AS" + JE SI_SVGA +NO_VESA: MOV AX,0 + JMP NO_SVGA + +SI_SVGA: MOV AH,4Fh + MOV AL,02h + MOV BX,[BP+4] + INT 10h + MOV AX,1 + +NO_SVGA: POP ES + POP DI + POP BP + RET +_SET_VESA ENDP + + PUBLIC _CHANGE_BANK + +_CHANGE_BANK PROC NEAR + PUSH BP + MOV BP,SP + + MOV AH,4Fh + MOV AL,05h + MOV BX,0 ;ventana de acceso + MOV DX,[BP+4] ;bank + INT 10h + + POP BP + RET +_CHANGE_BANK ENDP + + PUBLIC _APAGA_PANTALLA + +_APAGA_PANTALLA PROC NEAR + PUSH BP + MOV BP,SP + PUSH SI + PUSH DS + + MOV CH,0 + MOV CL,0 +SIGUE_APAGANDO: MOV DX,3C8h + MOV AL,0 + OUT DX,AL + + MOV DX,3DAh +ESPERA_FIN_RETR:IN AL,DX + TEST AL,00001000b + JNZ ESPERA_FIN_RETR +ESPERA_INI_RETR:IN AL,DX + TEST AL,00001000b + JZ ESPERA_INI_RETR + + MOV DX,3C9h + LDS SI,[BP+4] +OTRO_DAC: MOV AL,[SI] + SUB AL,CH + JGE DEC_ROJO + MOV AL,0 +DEC_ROJO: OUT DX,AL + MOV AL,[SI+1] + SUB AL,CH + JGE DEC_VERDE + MOV AL,0 +DEC_VERDE: OUT DX,AL + MOV AL,[SI+2] + SUB AL,CH + JGE DEC_AZUL + MOV AL,0 +DEC_AZUL: OUT DX,AL + ADD SI,3 + INC CL + JNZ OTRO_DAC + INC CH + CMP CH,00111111b + JL SIGUE_APAGANDO + + POP DS + POP SI + POP BP + RET +_APAGA_PANTALLA ENDP + + PUBLIC _ENCIENDE_PANTALLA + +_ENCIENDE_PANTALLA PROC NEAR + PUSH BP + MOV BP,SP + PUSH SI + PUSH DS + + MOV CH,00111111b + MOV CL,0 +SIGUE_ENCENDIEN:MOV DX,3C8h + MOV AL,0 + OUT DX,AL + + MOV DX,3DAh +ESPERA_FIN_RET: IN AL,DX + TEST AL,00001000b + JNZ ESPERA_FIN_RET +ESPERA_INI_RET: IN AL,DX + TEST AL,00001000b + JZ ESPERA_INI_RET + + MOV DX,3C9h + LDS SI,[BP+4] +OTR_DAC: MOV AL,[SI] + SUB AL,CH + JGE INC_ROJO + MOV AL,0 +INC_ROJO: OUT DX,AL + MOV AL,[SI+1] + SUB AL,CH + JGE INC_VERDE + MOV AL,0 +INC_VERDE: OUT DX,AL + MOV AL,[SI+2] + SUB AL,CH + JGE INC_AZUL + MOV AL,0 +INC_AZUL: OUT DX,AL + ADD SI,3 + DEC CL + JNZ OTR_DAC + CMP CH,00000000b + JZ FIN_ENCENDER + DEC CH + JMP SIGUE_ENCENDIEN + +FIN_ENCENDER: POP DS + POP SI + POP BP + RET +_ENCIENDE_PANTALLA ENDP + + END + diff --git a/SUPERVGA.CPP b/SUPERVGA.CPP new file mode 100644 index 0000000..1143b95 --- /dev/null +++ b/SUPERVGA.CPP @@ -0,0 +1,147 @@ +////////////////////////////////////////////////////////////////////////////// +// // +// MODO SVGA VESA DE 640 X 480 EN 256 COLORES // +// // +// Jos Antonio Acedo Martn-Grande (91)611 72 71 (Madrid) // +// // +////////////////////////////////////////////////////////////////////////////// + +///////////////////////////// FICHEROS A INCLUIR ///////////////////////////// + +#include +#include +#include +#include + +//////////////////////////////// DEFINICIONES //////////////////////////////// + +#define MODO_80x25_16c 0x003 +#define MODO_640x480_256c 0x101 + +////////////////////////////////// VARIABLES ///////////////////////////////// + +char *dir_vga; +int ancho; +int alto; +char bits_pixel; +FILE *handle; + +char dibujo[15]; +char dac[256*3]; + +//////////////////////// DECLARACIONES DE FUNCIONES ////////////////////////// + +void dibujo_640_x_480_256_c(void); +void asigna_modo_video(char); + +extern "C" +{ + int SET_VESA(int); + void CHANGE_BANK(int); + void ENCIENDE_PANTALLA(char *); + void APAGA_PANTALLA(char *); +} + +///////////////////////////////// PROGRAMA /////////////////////////////////// + +int main(int argc, char *argv[]) +{ + int esq_x1, esq_y1, esq_x2, esq_y2; + + if(argc!=2) exit(1); + + if(NULL==SET_VESA(MODO_640x480_256c)) + { + asigna_modo_video(MODO_80x25_16c); + printf("No se encontr el driver VESA"); + exit(1); + } + + if((handle=fopen(argv[1], "rb"))==NULL) + { + asigna_modo_video(MODO_80x25_16c); + printf("No se encontr el archivo especificado"); + exit(1); + } + + if(10!=getc(handle)) + { + asigna_modo_video(MODO_80x25_16c); + printf("El archivo especificado no es un fichero PCX"); + exit(1); + } + + getw(handle); bits_pixel=getc(handle); + + esq_x1=getw(handle); esq_y1=getw(handle); + esq_x2=getw(handle); esq_y2=getw(handle); + + ancho=esq_x2-esq_x1+1; + alto =esq_y2-esq_y1+1; + + if(ancho!=640 || alto!=480 || bits_pixel!=8) + { + asigna_modo_video(MODO_80x25_16c); + printf("El fichero especificado no es un dibujo de 640 x 480 en 256 colores"); + exit(1); + } + + APAGA_PANTALLA(dac); + + dibujo_640_x_480_256_c(); + ENCIENDE_PANTALLA(dac); + + getch(); + + APAGA_PANTALLA(dac); + + asigna_modo_video(MODO_80x25_16c); + + return(0); +} + +void dibujo_640_x_480_256_c(void) +{ + unsigned char byte, contador; + int bank, n; + + fseek(handle, 128, 0); + + bank=0; (long)dir_vga=0xA0000000L; + + for(alto=480; alto>0; alto--) + { + for(ancho=640; ancho>0; ) + { + byte=getc(handle); + if(byte<=0xC0) + { + *dir_vga++=byte; ancho--; + if((long)dir_vga==0xA0000000L) { bank++; CHANGE_BANK(bank); } + } + else + { + contador=byte&0x3F; byte=getc(handle); + for(; contador>0; contador--) + { + *dir_vga++=byte; ancho--; + if((long)dir_vga==0xA0000000L) { bank++; CHANGE_BANK(bank); } + } + } + } + } + getc(handle); + + for(n=0; n<256*3; n++) dac[n]=getc(handle) >> 2; + + fclose(handle); +} + +void asigna_modo_video(char modo) // asigna el modo de vdeo indicado +{ // en la variable "modo" + union REGS ent, sal; + + ent.h.al = modo; + ent.h.ah = 0; + int86(16, &ent, &sal); // funcin para asignar el modo de video +} \ No newline at end of file diff --git a/SUPERVGA.OBJ b/SUPERVGA.OBJ new file mode 100644 index 0000000..629a04c Binary files /dev/null and b/SUPERVGA.OBJ differ diff --git a/SVGA256F.OBJ b/SVGA256F.OBJ new file mode 100644 index 0000000..ddc9068 Binary files /dev/null and b/SVGA256F.OBJ differ diff --git a/X.BAT b/X.BAT new file mode 100644 index 0000000..a061282 --- /dev/null +++ b/X.BAT @@ -0,0 +1,5 @@ +rem//xcopy cd_out.exe c:\cd_out /y +cd c:\cd_out +rem//cd_out +rem//cd c:\things\borlandc\fuentes\cd_out + diff --git a/XMSDEMO.CPP b/XMSDEMO.CPP new file mode 100644 index 0000000..4f8faa0 --- /dev/null +++ b/XMSDEMO.CPP @@ -0,0 +1,90 @@ +/**************************************************************************/ +/* Demostracion de la Clase XmsSupp */ +/* */ +/* Compilar en Modo Compact, Large o Huge */ +/* Linkar con XMSSUPP.OBJ */ +/**************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "XMSSUPP.H" + +void SetVideoMode(unsigned char Mode) +{ + _asm{ + mov ah,0x00; + mov al,Mode; + int 0x10; + } +} +void main() +{ + +XmsSupp TestXms; // Clase de Soporte XMS. +unsigned char *Pantalla; // Puntero a Memoria Convencional. +int Cnt; // Contador para bucle + + while(kbhit()) getch(); + // Errores en Inicializacion XMS. + TestXms.lError=0; // Indicador de Error a cero + InitXms(&TestXms); // Inicializa XMS. + + GetInfo(&TestXms); // Informe de estado. + while(!kbhit()); + getch(); +// Xms_Init(&TestXms); + if(TestXms.lError) + { + printf("%s\n",TestXms.cError); + return; + } + // Reservamos 64K. Si hay Error lo Visualizamos. + AllocXms(64, &TestXms); + if(TestXms.lError) + printf("%s\n",TestXms.cError); + + // Reservamos Memoria Convencional. + if(!(Pantalla=new unsigned char [64000])) + printf("ERROR en Reserva de Memoria Convencional.\n"); + else + { + // Construimos Pantalla + for(Cnt=0;Cnt<200;Cnt++) + memset((Pantalla+(Cnt*320)),Cnt,320); + // Asignamos Puntero a Memoria convencional y miramos si + // hay ERROR. + SetConPntr(Pantalla, &TestXms); + if(TestXms.lError) + printf("%s\n",TestXms.cError); + // Movemos a XMS y si hay ERROR lo Visualizamos. + Move2Xms(&TestXms); + if(TestXms.lError) + printf("%s\n",TestXms.cError); + SetConPntr(MK_FP(0xA000,0), &TestXms); + // Activamos Video MCGA. + SetVideoMode(0x13); + // Movemos a Convencional y si hay ERROR lo Visualizamos. + Move2Con(&TestXms); + if(TestXms.lError) + { + SetVideoMode(0x3); + printf("%s\n",TestXms.cError); + } + getch(); + SetVideoMode(0x3); + // Liberamos XMS si hay ERROR lo Visualizamos. + FreeXms(&TestXms); + if(TestXms.lError) + printf("%s\n",TestXms.cError); + } + // Liberamos Memoria Convencional. + delete Pantalla; +return; +} diff --git a/XMSSUPP.CPP b/XMSSUPP.CPP new file mode 100644 index 0000000..403a87d --- /dev/null +++ b/XMSSUPP.CPP @@ -0,0 +1,939 @@ +#include +#include +#include +#include +#include + +#include "XMSSUPP.H" + +// extern unsigned _stklen = 16000U; + +/* +XmsSupp::XmsSupp() +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Constructor de Clase. +// +// Entradas: Ninguna. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ + lError=0; // Indicador de Error a cero + InitXms(); // Inicializa XMS. +} + +void XmsSupp::InitXms() +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Inicializa la Clase. +// +// Entradas: Ninguna. +// +// Salidas: 1 Controlador XMS Presente. +// 0 Controlador XMS Ausente. +//////////////////////////////////////////////////////////////////////////// +{ +char Stat; + _asm{ + mov ax,0x04300; + int 0x02f; // Mira si esta el Driver + mov Stat,al; // Guarda valor en Stat + } + if(Stat==(char)0x80) // Stat=80H ? + { + Present=1; // Si, Esta presente + GetXmsDir(); // Donde esta el driver. + GetXmsVer(); // Mira version + GetXmsFree(); // Mira memoria libre + GetInfo(); // Informe de estado. +} + else + { + Present=0; // Si no, no presente + GetXmsErr(0xFF); // Pon error. + } +} + +void XmsSupp::GetInfo() +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Captura Informacion de la XMS. +// +// Entradas: Ninguna. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ + printf("Ŀ\n"); + printf(" Soporte XMS V 1.0. Fernando Perez Alonso. '95 \n"); + printf(" \n"); + printf(" Ver. XMS. %o.%02o.\t\t\t\t \n",HiVerXms,LoVerXms); + printf(" Rev. XMS. %o.%02o.\t\t\t\t \n",HiVerCtr,LoVerCtr); + if(lHMA) + printf(" HMA Presente. \n"); + else + printf(" HMA Ausente. \n"); + printf(" Memoria Libre %4u Ks.\t\t\t \n",TotXmsFree); + printf(" Tamao Max. Bloque %4u Ks.\t\t\t \n",BigBlock); + printf("\n\n\n"); +} + +void XmsSupp::GetXmsDir() +{ +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Captura la Direccion del Contolador de XMS. +// +// Entradas: Ninguna. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +unsigned long XMSDIR; + if(!Present) // No Esta presente ? + { + GetXmsErr(0xFF); // Pon error + return; // y retorna. + } + _asm{ + push es; // guarda ES en la pila + mov ax,0x04310; // capturamos direccion + int 0x02f; // del driver + mov word ptr XMSDIR,bx // y la guardamos + mov word ptr XMSDIR+2,es // en la varibale XMSDIR + pop es; // recupera ES + } + XmsDir=XMSDIR; // actualiza la varibale de clase. +return; +} + +void XmsSupp::GetXmsVer() +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Captura Version, Revision y estado del HMA. +// +// Entradas: Ninguna. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ +unsigned long XMSDIR=XmsDir; +char HVXMS,LVXMS,HVCTR,LVCTR; +unsigned HMA; + + if(!Present) + { + GetXmsErr(0xFF); + return; + } + + _asm{ + mov ah,0; // Miraremos + call dword ptr XMSDIR; // Informacion del driver + mov HVXMS,ah; // Version + mov LVXMS,al; // + mov HVCTR,bh; // Revision + mov LVCTR,bl; // + mov HMA,dx; // Estado del HMA + } + HiVerXms=HVXMS; // Actualizamos + HiVerCtr=HVCTR; // variables + LoVerXms=LVXMS; // de + LoVerCtr=LVCTR; // Clase + lHMA=HMA; // +} + +void XmsSupp::GetXmsFree() +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Captura Memoria XMS Libre. +// +// Entradas: Ninguna. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ +unsigned long XMSDIR=XmsDir; +unsigned BIGBLOCK; +unsigned TOTXMSFREE; + + if(!Present) + { + GetXmsErr(0xFF); + return; + } + + _asm{ + mov ah,8; // Campturamos memoria + call dword ptr XMSDIR; // Libre + mov BIGBLOCK,ax; // y el tamao + mov TOTXMSFREE,dx; // del bloque mas grande + } + BigBlock=BIGBLOCK; // Actualizamos + TotXmsFree=TOTXMSFREE; // variables de clase +} + +void XmsSupp::SetConPntr(void far *Puntero) +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Actualiza la Zona de Descarga en Memoria Convencional. +// +// Entradas: Puntero a Bloque de Control XMS. +// Puntero a Memoria reservada en Convencional. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ + +unsigned long Desp; +unsigned Segm =FP_SEG(Puntero); +unsigned Offst=FP_OFF(Puntero); + _asm{ + mov ax,Offst; // Actualiza el + mov word ptr Desp,ax; // Puntero de Origen + mov ax,Segm; // en la estructura + mov word ptr Desp+2,ax; // XMSBlock + } + ThisXMSBlock.SrcDesp =Desp; // Varble de clase +} + +void XmsSupp::AllocXms(unsigned KLen) +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Reserva memoria XMS. +// +// Entradas: Longitud de memoria a reservar en Kilo Bytes. +// Puntero a Bloque de Control XMS. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ +unsigned long XMSDIR=XmsDir; +unsigned handle; +unsigned err; +char cerr; + + if(!Present) + { + GetXmsErr(0xFF); + return; + } + + _asm{ + mov ah,9; // reserva memoria + mov dx,KLen; // extendida + call dword ptr XMSDIR; + mov err,ax; // AX=error + mov cerr,bl; // BL=Codigo de error + mov handle,dx; // Hadle de bloque de memo. + } + ThisXMSBlock.Len =KLen*1024L; // Actualiza variables de + ThisXMSBlock.DstHandle=handle; // la clase + ThisXMSBlock.SrcHandle=0; + ThisXMSBlock.DstDesp =0L; + if(err!=1) // si hay error + { + GetXmsErr(cerr); // mira cuales + Reserved=0; // Reservada = falso + } + else + Reserved=1; // sino, reservada = cierto +} + +void XmsSupp::FreeXms() +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Libera memoria XMS. +// +// Entradas: Bloque de Control XMS. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ +unsigned long XMSDIR=XmsDir; +unsigned handle; +unsigned err; +char cerr; + + if(!Present) + { + GetXmsErr(0xFF); + return; + } + if(!Reserved) + { + GetXmsErr(0xFE); + return; + } + + handle=ThisXMSBlock.DstHandle; + _asm{ + mov ah,10; // Libera memoria + mov dx,handle; // extendida + call dword ptr XMSDIR; + mov err,ax; // y comprueba errores + mov cerr,bl; + } + if(err!=1) + GetXmsErr(cerr); +} + +void XmsSupp::Move2Xms() +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Mueve un Bloque de Memoria Convencional a XMS. +// +// Entradas: Bloque de Control XMS. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ +unsigned long XMSDIR=XmsDir; +unsigned err; +char cerr; +unsigned Segment=FP_SEG(&ThisXMSBlock); // Segmento y +unsigned Offst =FP_OFF(&ThisXMSBlock); // Offset de la estructura XMSBlock + + if(!Present) + { + GetXmsErr(0xFF); + return; + } + if(!Reserved) + { + GetXmsErr(0xFE); + return; + } + _asm{ + push ds; // Guarda registros en + push si; // la pila + mov ax,Segment; // carga en ds:si la + mov ds,ax; // la direccion de + mov si,Offst; // la estructura + mov ah,0bh; // y mueve el bloque de + call dword ptr XMSDIR; // memoria de Convencional + mov err,ax; // a XMS + mov cerr,bl; // mira si hay errores + pop si; // Recupera registros + pop ds; + } + + if(err!=1) + GetXmsErr(cerr); +} + +void XmsSupp::Move2Con() +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Mueve un Bloque de Memoria XMS a Convencional. +// +// Entradas: Bloque de Control XMS. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ +unsigned long XMSDIR=XmsDir; +unsigned err; +char cerr; +unsigned long wDesp; +unsigned wHand; +unsigned Segment=FP_SEG(&ThisXMSBlock); +unsigned Offst =FP_OFF(&ThisXMSBlock); + if(!Present) + { + GetXmsErr(0xFF); + return; + } + if(!Reserved) + { + GetXmsErr(0xFE); + return; + } + + wDesp=ThisXMSBlock.SrcDesp; // Intercambia valores de + wHand=ThisXMSBlock.SrcHandle; // Origen y + ThisXMSBlock.SrcDesp =ThisXMSBlock.DstDesp; // Destino + ThisXMSBlock.SrcHandle=ThisXMSBlock.DstHandle; + ThisXMSBlock.DstDesp =wDesp; + ThisXMSBlock.DstHandle=wHand; + _asm{ + push ds; + push si; + mov ax,Segment; + mov ds,ax; + mov si,Offst; // Mueve de Xms a + mov ah,0bh; // convencional + call dword ptr XMSDIR; + mov err,ax; // mira si hay errores + mov cerr,bl; + pop si; + pop ds; + } + if(err!=1) + GetXmsErr(cerr); +} +void XmsSupp::GetXmsErr(char error) +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Actualiza la Variable de Clase cError. +// +// Entradas: Codigo de Error. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ +char *SysErr; + lError=1; + switch(error) + { + case 0x80: + strcpy(cError,"Funcin no implemetada."); + break; + case 0x81: + strcpy(cError,"VDISK Detectado."); + break; + case 0x82: + strcpy(cError,"Error en lnea A20."); + break; + case 0x8e: + strcpy(cError,"Error general de controlador."); + break; + case 0x8f: + strcpy(cError,"Error irrecuperable."); + break; + case 0x90: + strcpy(cError,"HMA no existe ."); + break; + case 0x91: + strcpy(cError,"HMA en uso."); + break; + case 0x92: + strcpy(cError,"DX menor al parmetro /HMAMIN."); + break; + case 0x93: + strcpy(cError,"HMA no asignado."); + break; + case 0x94: + strcpy(cError,"Lnea A20 activa."); + break; + case 0xa0: + strcpy(cError,"No hay suficente memoria libre."); + break; + case 0xa1: + strcpy(cError,"Handles XMS agotados."); + break; + case 0xa2: + strcpy(cError,"Handle no vlido."); + break; + case 0xa3: + strcpy(cError,"Handle fuente no vlido."); + break; + case 0xa4: + strcpy(cError,"Offset fuente no vlido."); + break; + case 0xa5: + strcpy(cError,"Handle destino no vlido."); + break; + case 0xa6: + strcpy(cError,"Offset destino no vlido."); + break; + case 0xa7: + strcpy(cError,"Tamao para MOVE no vlido ."); + break; + case 0xa8: + strcpy(cError,"Se ha producido Solapamiento en la funcin MOVE."); + break; + case 0xa9: + strcpy(cError,"Se detecto error de paridad."); + break; + case 0xaa: + strcpy(cError,"No se bloqueo el EMB ."); + break; + case 0xab: + strcpy(cError,"EMB ya bloqueado."); + break; + case 0xac: + strcpy(cError,"Bloqueo por desbordamiento del contador."); + break; + case 0xad: + strcpy(cError,"No se bloqueo el EMB."); + break; + case 0xFE: + strcpy(cError,"No se Reservo Memoria XMS."); + break; + case 0xFF: + strcpy(cError,"Controlador XMS ausente."); + break; + default: + strcpy(cError,"OK."); + break; + } +} + +*/ + +void Init_Xms(XmsSupp *XmsBlock) +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Constructor de Clase. +// +// Entradas: Ninguna. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ + XmsBlock ->lError=0; // Indicador de Error a cero + InitXms(XmsBlock); // Inicializa XMS. +} + +void InitXms(XmsSupp *XmsBlock) +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Inicializa la Clase. +// +// Entradas: Ninguna. +// +// Salidas: 1 Controlador XMS Presente. +// 0 Controlador XMS Ausente. +//////////////////////////////////////////////////////////////////////////// +{ +char Stat; + + _asm{ +// mov ax,0x4300; + mov ax,4300h; + int 0x2f; // Mira si esta el Driver + mov Stat,al; // Guarda valor en Stat + } + + if(Stat==(char)0x80) // Stat=80H ? + { + XmsBlock -> Present=1; // Si, Esta presente + GetXmsDir(XmsBlock); // Donde esta el driver. + GetXmsVer(XmsBlock); // Mira version + GetXmsFree(XmsBlock); // Mira memoria libre + } + else + { + XmsBlock -> Present=0; // Si no, no presente + GetXmsErr(0xFF, XmsBlock ); // Pon error. + } +} + +void GetInfo(XmsSupp *XmsBlock) +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Captura Informacion de la XMS. +// +// Entradas: Ninguna. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ + printf("Ŀ\n"); + printf(" \n"); + printf(" Ver. XMS. %o.%02o.\t\t\t\t \n",XmsBlock->HiVerXms,XmsBlock->LoVerXms); + printf(" Rev. XMS. %o.%02o.\t\t\t\t \n",XmsBlock->HiVerCtr,XmsBlock->LoVerCtr); + if(XmsBlock->lHMA) + printf(" HMA Presente. \n"); + else + printf(" HMA Ausente. \n"); + printf(" Memoria Libre %4u Ks.\t\t\t \n",XmsBlock->TotXmsFree); + printf(" Tamao Max. Bloque %4u Ks.\t\t\t \n",XmsBlock->BigBlock); + printf("\n\n\n"); +} + +void GetXmsDir(XmsSupp *XmsBlock) +{ +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Captura la Direccion del Contolador de XMS. +// +// Entradas: Ninguna. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +unsigned long XMSDIR; + if(!XmsBlock->Present) // No Esta presente ? + { + GetXmsErr(0xFF, XmsBlock ); // Pon error + return; // y retorna. + } + _asm{ + push es; // guarda ES en la pila +// mov ax,0x4310; // capturamos direccion + mov ax,4310h; // capturamos direccion + int 2fh; // del driver +// int 0x2f; // del driver + mov word ptr XMSDIR,bx // y la guardamos + mov word ptr XMSDIR+2,es // en la varibale XMSDIR + ////////// +// xor ax,ax; +// call word ptr XMSDIR; + ////////// + pop es; // recupera ES + } + XmsBlock -> XmsDir=XMSDIR; // actualiza la varibale de clase. +return; +} + +void GetXmsVer(XmsSupp *XmsBlock) +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Captura Version, Revision y estado del HMA. +// +// Entradas: Ninguna. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ +unsigned long XMSDIR=XmsBlock ->XmsDir; +char HVXMS,LVXMS,HVCTR,LVCTR; +unsigned HMA; + + if(!XmsBlock->Present) + { + GetXmsErr(0xFF, XmsBlock); + return; + } + + _asm{ + mov ah,0; // Miraremos + call dword ptr XMSDIR; // Informacion del driver + mov HVXMS,ah; // Version + mov LVXMS,al; // + mov HVCTR,bh; // Revision + mov LVCTR,bl; // + mov HMA,dx; // Estado del HMA + } + XmsBlock ->HiVerXms=HVXMS; // Actualizamos + XmsBlock ->HiVerCtr=HVCTR; // variables + XmsBlock ->LoVerXms=LVXMS; // de + XmsBlock ->LoVerCtr=LVCTR; // Clase + XmsBlock ->lHMA=HMA; // +} + +void GetXmsFree(XmsSupp *XmsBlock) +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Captura Memoria XMS Libre. +// +// Entradas: Ninguna. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ +unsigned long XMSDIR=XmsBlock ->XmsDir; +unsigned BIGBLOCK; +unsigned TOTXMSFREE; + + if(!XmsBlock->Present) + { + GetXmsErr(0xFF, XmsBlock); + return; + } + + _asm{ + mov ah,8; // Campturamos memoria + call dword ptr XMSDIR; // Libre + mov BIGBLOCK,ax; // y el tamao + mov TOTXMSFREE,dx; // del bloque mas grande + } + XmsBlock ->BigBlock=BIGBLOCK; // Actualizamos + XmsBlock ->TotXmsFree=TOTXMSFREE; // variables de clase +} + +void SetConPntr(void far *Puntero, XmsSupp *XmsBlock) +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Actualiza la Zona de Descarga en Memoria Convencional. +// +// Entradas: Puntero a Bloque de Control XMS. +// Puntero a Memoria reservada en Convencional. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ + +unsigned long Desp; +unsigned Segm =FP_SEG(Puntero); +unsigned Offst=FP_OFF(Puntero); + _asm{ + mov ax,Offst; // Actualiza el + mov word ptr Desp,ax; // Puntero de Origen + mov ax,Segm; // en la estructura + mov word ptr Desp+2,ax; // XMSBlock + } + XmsBlock ->ThisXMSBlock.SrcDesp = Desp; // Varble de clase +} + +void AllocXms(unsigned KLen, XmsSupp *XmsBlock) +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Reserva memoria XMS. +// +// Entradas: Longitud de memoria a reservar en Kilo Bytes. +// Puntero a Bloque de Control XMS. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ +unsigned long XMSDIR=XmsBlock ->XmsDir; +unsigned handle; +unsigned err; +char cerr; + + if(!XmsBlock->Present) + { + GetXmsErr(0xFF, XmsBlock); + return; + } + + _asm{ + mov ah,9; // reserva memoria + mov dx,KLen; // extendida + call dword ptr XMSDIR; + mov err,ax; // AX=error +// mov cerr,bl; // BL=Codigo de error + mov handle,dx; // Hadle de bloque de memo. + mov cerr,bl; // BL=Codigo de error + } + XmsBlock ->ThisXMSBlock.Len =KLen*1024L; // Actualiza variables de + XmsBlock ->ThisXMSBlock.DstHandle=handle; // la clase + XmsBlock ->ThisXMSBlock.SrcHandle=0; + XmsBlock ->ThisXMSBlock.DstDesp =0L; + if(err!=1) // si hay error + { + GetXmsErr(cerr, XmsBlock); // mira cuales + XmsBlock ->Reserved=0; // Reservada = falso + } + else + XmsBlock ->Reserved=1; // sino, reservada = cierto +} + +void FreeXms(XmsSupp *XmsBlock) +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Libera memoria XMS. +// +// Entradas: Bloque de Control XMS. +// +// Salidas: Ninguna. +/////////////////////////////////////////////////////////////////////////// +{ +unsigned long XMSDIR=XmsBlock ->XmsDir; +unsigned handle; +unsigned err; +char cerr; + + if(!XmsBlock->Present) + { + GetXmsErr(0xFF, XmsBlock); + return; + } + if(!XmsBlock ->Reserved) + { + GetXmsErr(0xFE, XmsBlock); + return; + } + + handle=XmsBlock ->ThisXMSBlock.DstHandle; + _asm{ +// mov ah,10; // Libera memoria + mov dx,handle; // extendida + mov ah,10; // Libera memoria +// mov dx,handle; // extendida + call dword ptr XMSDIR; + mov err,ax; // y comprueba errores + mov cerr,bl; + } + if(err!=1) + GetXmsErr(cerr, XmsBlock); +} + +void Move2Xms(XmsSupp *XmsBlock) +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Mueve un Bloque de Memoria Convencional a XMS. +// +// Entradas: Bloque de Control XMS. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ +unsigned long XMSDIR=XmsBlock ->XmsDir; +unsigned err; +char cerr; + +//unsigned Segment=FP_SEG(XmsBlock ->&ThisXMSBlock); // Segmento y +//unsigned Offst =FP_OFF(XmsBlock ->&ThisXMSBlock); // Offset de la estructura XMSBlock +unsigned Segment=FP_SEG(&(XmsBlock ->ThisXMSBlock)); // Segmento y +unsigned Offst =FP_OFF(&(XmsBlock ->ThisXMSBlock)); // Offset de la estructura XMSBlock + + if(!XmsBlock->Present) + { + GetXmsErr(0xFF, XmsBlock); + return; + } + if(!XmsBlock ->Reserved) + { + GetXmsErr(0xFE, XmsBlock); + return; + } + _asm{ + push ds; // Guarda registros en + push si; // la pila + mov ax,Segment; // carga en ds:si la + mov ds,ax; // la direccion de + mov si,Offst; // la estructura + mov ah,0bh; // y mueve el bloque de + call dword ptr XMSDIR; // memoria de Convencional + mov err,ax; // a XMS + mov cerr,bl; // mira si hay errores + pop si; // Recupera registros + pop ds; + } + + if(err!=1) + GetXmsErr(cerr, XmsBlock); +} + +void Move2Con(XmsSupp *XmsBlock) +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Mueve un Bloque de Memoria XMS a Convencional. +// +// Entradas: Bloque de Control XMS. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ +unsigned long XMSDIR=XmsBlock ->XmsDir; +unsigned err; +char cerr; +unsigned long wDesp; +unsigned wHand; +//unsigned Segment=FP_SEG(XmsBlock ->&ThisXMSBlock); +//unsigned Offst =FP_OFF(XmsBlock ->&ThisXMSBlock); +unsigned Segment=FP_SEG(&(XmsBlock ->ThisXMSBlock)); +unsigned Offst =FP_OFF(&(XmsBlock ->ThisXMSBlock)); + if(!XmsBlock->Present) + { + GetXmsErr(0xFF, XmsBlock); + return; + } + if(!XmsBlock->Reserved) + { + GetXmsErr(0xFE, XmsBlock); + return; + } + + wDesp=XmsBlock ->ThisXMSBlock.SrcDesp; // Intercambia valores de + wHand=XmsBlock ->ThisXMSBlock.SrcHandle; // Origen y + XmsBlock ->ThisXMSBlock.SrcDesp =XmsBlock ->ThisXMSBlock.DstDesp; // Destino + XmsBlock ->ThisXMSBlock.SrcHandle=XmsBlock ->ThisXMSBlock.DstHandle; + XmsBlock ->ThisXMSBlock.DstDesp =wDesp; + XmsBlock ->ThisXMSBlock.DstHandle=wHand; + _asm{ + push ds; + push si; + mov ax,Segment; + mov ds,ax; + mov si,Offst; // Mueve de Xms a + mov ah,0bh; // convencional + call dword ptr XMSDIR; + mov err,ax; // mira si hay errores + mov cerr,bl; + pop si; + pop ds; + } + if(err!=1) + GetXmsErr(cerr, XmsBlock); + + // Devuelve valores a su origen + wDesp=XmsBlock ->ThisXMSBlock.DstDesp; // Intercambia valores de + wHand=XmsBlock ->ThisXMSBlock.DstHandle; // Origen y + + XmsBlock ->ThisXMSBlock.DstDesp = XmsBlock ->ThisXMSBlock.SrcDesp; // Destino + XmsBlock ->ThisXMSBlock.DstHandle = XmsBlock ->ThisXMSBlock.SrcHandle; + + XmsBlock ->ThisXMSBlock.SrcDesp =wDesp; + XmsBlock ->ThisXMSBlock.SrcHandle=wHand; + + +} +void GetXmsErr(char error,XmsSupp *XmsBlock) +//////////////////////////////////////////////////////////////////////////// +// Descripcion: Actualiza la Variable de Clase cError. +// +// Entradas: Codigo de Error. +// +// Salidas: Ninguna. +//////////////////////////////////////////////////////////////////////////// +{ +char *SysErr; + XmsBlock ->lError=1; + switch(error) + { + case 0x80: + strcpy(XmsBlock ->cError,"Funcin no implemetada."); + break; + case 0x81: + strcpy(XmsBlock ->cError,"VDISK Detectado."); + break; + case 0x82: + strcpy(XmsBlock ->cError,"Error en lnea A20."); + break; + case 0x8e: + strcpy(XmsBlock ->cError,"Error general de controlador."); + break; + case 0x8f: + strcpy(XmsBlock ->cError,"Error irrecuperable."); + break; + case 0x90: + strcpy(XmsBlock ->cError,"HMA no existe ."); + break; + case 0x91: + strcpy(XmsBlock ->cError,"HMA en uso."); + break; + case 0x92: + strcpy(XmsBlock ->cError,"DX menor al parmetro /HMAMIN."); + break; + case 0x93: + strcpy(XmsBlock ->cError,"HMA no asignado."); + break; + case 0x94: + strcpy(XmsBlock ->cError,"Lnea A20 activa."); + break; + case 0xa0: + strcpy(XmsBlock ->cError,"No hay suficente memoria libre."); + break; + case 0xa1: + strcpy(XmsBlock ->cError,"Handles XMS agotados."); + break; + case 0xa2: + strcpy(XmsBlock ->cError,"Handle no vlido."); + break; + case 0xa3: + strcpy(XmsBlock ->cError,"Handle fuente no vlido."); + break; + case 0xa4: + strcpy(XmsBlock ->cError,"Offset fuente no vlido."); + break; + case 0xa5: + strcpy(XmsBlock ->cError,"Handle destino no vlido."); + break; + case 0xa6: + strcpy(XmsBlock ->cError,"Offset destino no vlido."); + break; + case 0xa7: + strcpy(XmsBlock ->cError,"Tamao para MOVE no vlido ."); + break; + case 0xa8: + strcpy(XmsBlock ->cError,"Se ha producido Solapamiento en la funcin MOVE."); + break; + case 0xa9: + strcpy(XmsBlock ->cError,"Se detecto error de paridad."); + break; + case 0xaa: + strcpy(XmsBlock ->cError,"No se bloqueo el EMB ."); + break; + case 0xab: + strcpy(XmsBlock ->cError,"EMB ya bloqueado."); + break; + case 0xac: + strcpy(XmsBlock ->cError,"Bloqueo por desbordamiento del contador."); + break; + case 0xad: + strcpy(XmsBlock ->cError,"No se bloqueo el EMB."); + break; + case 0xFE: + strcpy(XmsBlock ->cError,"No se Reservo Memoria XMS."); + break; + case 0xFF: + strcpy(XmsBlock ->cError,"Controlador XMS ausente."); + break; + default: + unsigned int value = error; + sprintf(XmsBlock ->cError,"OK. %X %u", value, value); +// strcpy(XmsBlock ->cError,"OK."); + break; + } +} diff --git a/XMSSUPP.H b/XMSSUPP.H new file mode 100644 index 0000000..14d8b2d --- /dev/null +++ b/XMSSUPP.H @@ -0,0 +1,82 @@ +// FICHERO DE CABECERA XMSSUPP.H + +#ifndef XMSSUPP_H +#define XMSSUPP_H + + + +// Definicion de Bloque Para el manejo de la Memoria XMS. + +typedef struct _XMSBlock{ + unsigned long Len; + unsigned SrcHandle; + unsigned long SrcDesp; + unsigned DstHandle; + unsigned long DstDesp; +}XMSBlock; + +// Clase para el manejo de la Memoria XMS +/* +class XmsSupp //[ : public ] +{ +public: + XMSBlock ThisXMSBlock; + unsigned lError; + char cError[80]; + unsigned Present; + unsigned Reserved; + unsigned long XmsDir; + char HiVerXms; + char LoVerXms; + char HiVerCtr; + char LoVerCtr; + unsigned lHMA; + unsigned BigBlock; + unsigned TotXmsFree; + + XmsSupp(); + void InitXms(); + void GetInfo(); + void GetXmsDir(); + void GetXmsVer(); + void AllocXms(unsigned); + void GetXmsFree(); + void SetConPntr(void far *); + void FreeXms(); + void Move2Xms(); + void Move2Con(); + void GetXmsErr(char); +}; +*/ +typedef struct { + + XMSBlock ThisXMSBlock; + unsigned lError; + char cError[80]; + unsigned Present; + unsigned Reserved; + unsigned long XmsDir; + char HiVerXms; + char LoVerXms; + char HiVerCtr; + char LoVerCtr; + unsigned lHMA; + unsigned BigBlock; + unsigned TotXmsFree; + +} XmsSupp; + + void Xms_Init(XmsSupp *XmsBlock); + void InitXms(XmsSupp *XmsBlock); + void GetInfo(XmsSupp *XmsBlock); + void GetXmsDir(XmsSupp *XmsBlock); + void GetXmsVer(XmsSupp *XmsBlock); + void AllocXms(unsigned,XmsSupp *XmsBlock); + void GetXmsFree(XmsSupp *XmsBlock); + void SetConPntr(void far *,XmsSupp *XmsBlock); + void FreeXms(XmsSupp *XmsBlock); + void Move2Xms(XmsSupp *XmsBlock); + void Move2Con(XmsSupp *XmsBlock); + void GetXmsErr(char,XmsSupp *XmsBlock); + +#endif diff --git a/XR.BAT b/XR.BAT new file mode 100644 index 0000000..e39c48f --- /dev/null +++ b/XR.BAT @@ -0,0 +1,6 @@ +cd c:\cd_out +rem cd_out +call setb +td +cd c:\things\borlandc\fuentes\cd_out +