First commit 11/11/1991
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								EGAVGA.BGI
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								EGAVGA.BGI
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										2118
									
								
								EPROM-II.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2118
									
								
								EPROM-II.CPP
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								EPROM-II.DSK
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								EPROM-II.DSK
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								EPROM-II.EXE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								EPROM-II.EXE
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										86
									
								
								EPROM-II.H
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								EPROM-II.H
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,86 @@
 | 
			
		||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MACROS      <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
#define Texto_Normal 		setcolor(63);
 | 
			
		||||
#define Operacion_Fallida    		  -1;
 | 
			
		||||
 | 
			
		||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Estructuras <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
struct JD {
 | 
			
		||||
  char esc; char color[8];char prog[50];char nl;char rt;char pt;char ef;
 | 
			
		||||
  char Comentario[4][31]; // 30 * 4 --> Estandar <--
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct Eprom_Structura {
 | 
			
		||||
 | 
			
		||||
   char TP;   char FI;   char NP;
 | 
			
		||||
   char DM;   char BD;   long ID;
 | 
			
		||||
   char ID_TEXT[15];
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct Eprom_inx {  long Fin; 			   };
 | 
			
		||||
 | 
			
		||||
struct Eprom_s 	 { unsigned long Direccion;	unsigned int Dato; };
 | 
			
		||||
 | 
			
		||||
struct JD    cabecera;
 | 
			
		||||
struct JD    cabecera2;
 | 
			
		||||
struct Eprom_s Eprom1;
 | 
			
		||||
struct Eprom_inx Eprom1_inx;
 | 
			
		||||
struct Eprom_Structura far *S_Eprom;
 | 
			
		||||
struct boton { 	int left;  int up;  int right;  int down; } PC[4];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Prototipos  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
 | 
			
		||||
void EditCursorEprom_CE(int SH, int CurrRowCE, int CurrTopLineCE);
 | 
			
		||||
void Carga_Cien_Elementos(struct Eprom_s *Datos);
 | 
			
		||||
void Poner_a_cero_estructura_actual_Eprom(void);
 | 
			
		||||
void Imprimir_Eprom(int desde, int hasta);
 | 
			
		||||
void Lee_Archivos_Presentes(int add_new);
 | 
			
		||||
void PrintEprom_CE_WholeScreen(int tmp);
 | 
			
		||||
void PrintWholeScreenCabecera(void);
 | 
			
		||||
void EditCursorEprom(int ShowHide);
 | 
			
		||||
void Fuente( int Font, int size);
 | 
			
		||||
void PrintWholeScreenEprom(void);
 | 
			
		||||
void PrintWholeScreenFile(void);
 | 
			
		||||
void CompruebaLineasEprom(void);
 | 
			
		||||
void Imprime_Eprom_Actual(void);
 | 
			
		||||
void Mueve_Arriba_Eprom(void);
 | 
			
		||||
void Mueve_Abajo_Eprom(void);
 | 
			
		||||
void DeleteRecordEprom(void);
 | 
			
		||||
void Salvar_Cargar(int S_C);
 | 
			
		||||
void EditCursorFile(int SH);
 | 
			
		||||
void Salvar_Cargar(int S_C);
 | 
			
		||||
void Edit_Item_Eprom(void);
 | 
			
		||||
void Menu_de_Edicion(void);
 | 
			
		||||
void PrintLineEprom(void);
 | 
			
		||||
void AddRecordEprom(void);
 | 
			
		||||
void Edit_Item_File(void);
 | 
			
		||||
void PutLineEprom(void);
 | 
			
		||||
void GetLineEprom(void);
 | 
			
		||||
void InicializaPc(void);
 | 
			
		||||
void Escoge_Eprom(void);
 | 
			
		||||
void BEEP(void);
 | 
			
		||||
 | 
			
		||||
int  Leer_en_Eprom(void);
 | 
			
		||||
int Abre_Ficha_Eprom(void);
 | 
			
		||||
int Comprueba_Impresora(void);
 | 
			
		||||
int Lee_Eproms(FILE *fichero);
 | 
			
		||||
int LeeCabecera(char *fichero);
 | 
			
		||||
int fcopy(char *origen, char *destino);
 | 
			
		||||
int InputCadenaG_l(char *s, int numalp, int lmax, int cc, int cf, struct boton Campo, int RoW);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> V. Globales <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
 | 
			
		||||
int  CurrRowFile, CurrColFile, CurrTopFile,
 | 
			
		||||
     CurrRowCom,  N_Files;
 | 
			
		||||
int  N_Eprom = 0; int CurrEprom = 0;
 | 
			
		||||
int  CurrRowEprom1 = 1, CurrColEprom1 = 1, CurrTopLineEprom = 1;
 | 
			
		||||
int  key, Modifica_Direccion = 0;
 | 
			
		||||
long longitud = 0;
 | 
			
		||||
 | 
			
		||||
char ArchivoDatos[]="Eprom_JD.TMP", Archivo[13];;
 | 
			
		||||
char *Archivo_list;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
FILE *Eprom, *EpromC;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								EPROM-II.PRJ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								EPROM-II.PRJ
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										73
									
								
								EPROM.DAT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								EPROM.DAT
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,73 @@
 | 
			
		||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
* <20>                                                                         <20>
 | 
			
		||||
* <20> Este es el fichero de Datos, para las EPROM.                            <20>
 | 
			
		||||
* <20>                                                                         <20>
 | 
			
		||||
* <20>                                                                         <20>
 | 
			
		||||
* <20> <20> Con una sencilla sintaxis, se pueden a<><61>dir nuevos tipos de Eprom     <20>
 | 
			
		||||
* <20>                                                                         <20>
 | 
			
		||||
* <20> sin que ello afecte a la programaci<63>n global.                           <20>
 | 
			
		||||
* <20>                                                                         <20>
 | 
			
		||||
* <20> <20> Nuevas tecnicas de auto-reconfiguraci<63>n para el programa.             <20>
 | 
			
		||||
* <20> <20> C<>digo de reconfiguraci<63>n totalmente fiable                           <20>
 | 
			
		||||
* <20> <20> Mejor sintaxis, para un uso mas sencillo                              <20>
 | 
			
		||||
* <20>                                                                         <20>
 | 
			
		||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
* <20>                                                                         <20>
 | 
			
		||||
* <20> Cada vez que se a<>ada una nueva Eprom solo hay que incremetar en uno    <20>
 | 
			
		||||
* <20> la variable N                                                           <20>
 | 
			
		||||
* <20>                                                                         <20>
 | 
			
		||||
* <20> N --> N<> de Eprom's que se pueden programar                             <20>
 | 
			
		||||
* <20>                                                                         <20>
 | 
			
		||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
 | 
			
		||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
* <20>                                                                         <20>
 | 
			
		||||
* <20> Sintaxis operativa:                                                     <20>
 | 
			
		||||
* <20>                                                                         <20>
 | 
			
		||||
* <20>   % [TP], [FI], [NP], [DM], [BD], [ID], [ID_TEXT].                      <20>
 | 
			
		||||
* <20>                                                                         <20>
 | 
			
		||||
* <20>  TP -------> Tensi<73>n de programaci<63>n                                    <20>
 | 
			
		||||
* <20>  FI -------> Frecuencia de impulso (en micro-segundos).                 <20>
 | 
			
		||||
* <20>  NP -------> N<> de patillas                                             <20>
 | 
			
		||||
* <20>  DM -------> Direcci<63>n mas alta ( en Bit's )                            <20>
 | 
			
		||||
* <20>  BD -------> N<> de Bit's del dato                                       <20>
 | 
			
		||||
* <20>  ID -------> C<>digo n<>merico identificativo de la Eprom                 <20>
 | 
			
		||||
* <20>  ID_TEXT --> Texto indicativo del tipo de Eprom (12 dig + '.')          <20>
 | 
			
		||||
* <20>                                                                         <20>
 | 
			
		||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
 | 
			
		||||
N24
 | 
			
		||||
 | 
			
		||||
%  50, 50, 72,    8,  8, 50312345,  Jos<6F> David .
 | 
			
		||||
 | 
			
		||||
%  50, 50, 72,   16, 16, 23425000, 123PC18 DX/2.
 | 
			
		||||
 | 
			
		||||
%  50, 50, 72,   11,  8, 50312340, JD FUTURE 01.
 | 
			
		||||
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, MICRO CHIPPP.
 | 
			
		||||
 | 
			
		||||
%  50, 50, 72,   16, 16, 50312345, Eprom 'HOLA'.
 | 
			
		||||
 | 
			
		||||
%  50, 50, 72,   16, 16, 50312345,   JD <20>F.V<>  .
 | 
			
		||||
 | 
			
		||||
%  50, 50, 72,   16, 16, 50312345, Sol Negro   .
 | 
			
		||||
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, CAPTAIN ZAP .
 | 
			
		||||
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom     8 .
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom     9 .
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom    10 .
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom    11 .
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom    12 .
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom    13 .
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom    14 .
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom    15 .
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom    16 .
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom    17 .
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom    18 .
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom    19 .
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom    20 .
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom    21 .
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom    22 .
 | 
			
		||||
%  50, 50, 72,   16,  8, 50312345, Eprom    23 .
 | 
			
		||||
							
								
								
									
										183
									
								
								EPROM.JDF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										183
									
								
								EPROM.JDF
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,183 @@
 | 
			
		||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
*<2A>                                                                          <20>
 | 
			
		||||
*<2A> Este es el interfaz de rutinas Gr<47>ficas del programador de Eprom's       <20>
 | 
			
		||||
*<2A>                                                                          <20>
 | 
			
		||||
*<2A> lenguaje de interfaz gr<67>ficos ( JDf ) creado por JD <20>FuTuRe ViSiOn<4F>      <20>
 | 
			
		||||
*<2A>                                                                          <20>
 | 
			
		||||
*<2A> Por Favor, no modifique el c<>digo original.                              <20>
 | 
			
		||||
*<2A>                                                                          <20>
 | 
			
		||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
 | 
			
		||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
*<2A>                                                                          <20>
 | 
			
		||||
*<2A> Rutinas creadas y totalmente escritas en C estandar.                     <20>
 | 
			
		||||
*<2A>                                                                          <20>
 | 
			
		||||
*<2A> Libreria BETA ya disponible, Grandes rendimientos GRAFICOS a muy bajo    <20>
 | 
			
		||||
*<2A>                                                                          <20>
 | 
			
		||||
*<2A> coste de produccion. ( Precio de la libreria:  1_FUENTE EN C, CPP, ASM ) <20>
 | 
			
		||||
*<2A>                                                                          <20>
 | 
			
		||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<EFBFBD>1                              
 | 
			
		||||
************ Toda la Pantalla **********
 | 
			
		||||
&   0,   0, 640, 480,   57, 56, 63, 2, 2
 | 
			
		||||
************ Barra de Ayuda   **********
 | 
			
		||||
& 450,   5, 635, 475,    7, 63, 56, 2, 2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<EFBFBD>2
 | 
			
		||||
************  Azul Tapa       **********
 | 
			
		||||
&  10, 301, 309, 445,   57, 57, 57, 2, 2
 | 
			
		||||
 | 
			
		||||
************ Direccion        **********
 | 
			
		||||
&  10,   5, 300, 445,    7, 63, 56, 1, 2
 | 
			
		||||
 | 
			
		||||
&  15,  10, 122,  40,    0, 56, 63, 1, 2
 | 
			
		||||
&  15, 132, 295,  40,    0, 56, 63, 2, 2
 | 
			
		||||
 | 
			
		||||
&  50,  10, 122, 440,    0, 56, 63, 2, 2
 | 
			
		||||
&  50, 132, 295, 440,    0, 56, 63, 2, 2
 | 
			
		||||
 | 
			
		||||
************ Dato             **********
 | 
			
		||||
&  10, 310, 540, 445,    7, 63, 56, 1, 2
 | 
			
		||||
 | 
			
		||||
&  15, 315, 398,  40,    0, 56, 63, 2, 2
 | 
			
		||||
&  15, 408, 535,  40,    0, 56, 63, 2, 2
 | 
			
		||||
 | 
			
		||||
&  50, 315, 398, 440,    0, 56, 63, 2, 2
 | 
			
		||||
&  50, 408, 535, 440,    0, 56, 63, 2, 2
 | 
			
		||||
 | 
			
		||||
************ Letras           **********
 | 
			
		||||
|  10,  17,   2,   6,    0, 63,     Hex.,
 | 
			
		||||
| 132,  17,   2,   6,    0, 63,        Dec.,
 | 
			
		||||
 | 
			
		||||
| 315,  17,   2,   6,    0, 63,   Hex.,
 | 
			
		||||
| 440,  17,   2,   6,    0, 63,   Dec.,
 | 
			
		||||
 | 
			
		||||
| 545,  15,   2,   6,    0, 63,   Eprom,
 | 
			
		||||
| 545,  22,   2,   6,    0,  1,   <20>,
 | 
			
		||||
	| 546,  16,   2,   6,    0,  0,   Eprom,
 | 
			
		||||
	| 546,  23,   2,   6,    0, 63,   <20>,
 | 
			
		||||
 | 
			
		||||
&  40, 550, 630,  55,    0, 63, 56, 1, 1
 | 
			
		||||
 | 
			
		||||
| 549,  75,   2,   5,    0, 63,  Direcci<63>n,
 | 
			
		||||
| 549,  82,   2,   5,    0,  1,  <20>,
 | 
			
		||||
	| 550,  76,   2,   5,    0,  0,  Direcci<63>n,
 | 
			
		||||
	| 550,  83,   2,   5,    0, 63,  <20>,
 | 
			
		||||
 | 
			
		||||
& 100, 615, 630, 115,    0, 63, 56, 1, 1
 | 
			
		||||
| 545, 195,   2,   6,    0, 63,   Cargar,
 | 
			
		||||
| 545, 202,   2,   6,    0,  1,   <20>,
 | 
			
		||||
	| 546, 196,   2,   6,    0,  0,   Cargar,
 | 
			
		||||
	| 546, 203,   2,   6,    0, 63,   <20>,
 | 
			
		||||
 | 
			
		||||
| 545, 237,   2,   6,    0, 63,   Grabar,
 | 
			
		||||
| 545, 244,   2,   6,    0,  1,   <20>,
 | 
			
		||||
	| 546, 238,   2,   6,    0,  0,   Grabar,
 | 
			
		||||
	| 546, 245,   2,   6,    0, 63,   <20>,
 | 
			
		||||
 | 
			
		||||
| 545, 286,   2,   5,    0, 63,  Leer Eprom,
 | 
			
		||||
| 545, 293,   2,   5,    0,  1,  <20>,
 | 
			
		||||
	| 546, 287,   2,   5,    0,  0,  Leer Eprom,
 | 
			
		||||
	| 546, 294,   2,   5,    0, 63,  <20>,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 545, 335,   2,   5,    0, 63,    Enviar,
 | 
			
		||||
| 545, 350,   2,   5,    0, 63,   Datos a,
 | 
			
		||||
| 544, 356,   2,   5,    0,  1,    <20>,
 | 
			
		||||
| 545, 365,   2,   5,    0, 63,    Eprom,
 | 
			
		||||
	| 546, 336,   2,   5,    0,  0,    Enviar,
 | 
			
		||||
	| 546, 351,   2,   5,    0,  0,   Datos a,
 | 
			
		||||
	| 545, 357,   2,   5,    0, 63,    <20>,
 | 
			
		||||
	| 546, 366,   2,   5,    0,  0,    Eprom,
 | 
			
		||||
 | 
			
		||||
| 545, 400,   2,   6,    0, 63,   Salir,
 | 
			
		||||
| 545, 407,   2,   6,    0,  1,   <20>,
 | 
			
		||||
	| 546, 401,   2,   6,    0,  0,   Salir,
 | 
			
		||||
	| 546, 408,   2,   6,    0, 63,   <20>,
 | 
			
		||||
 | 
			
		||||
| 545, 140,   2,   6,    0, 63,  Imprimir,
 | 
			
		||||
| 545, 147,   2,   6,    0,  1,  <20>,
 | 
			
		||||
	| 546, 141,   2,   6,    0,  0,  Imprimir,
 | 
			
		||||
	| 546, 148,   2,   6,    0, 63,  <20>,
 | 
			
		||||
 | 
			
		||||
<EFBFBD>3
 | 
			
		||||
& 150,  170, 470, 330,    7, 63, 56, 2, 2
 | 
			
		||||
	& 155,  245, 290, 170,    0, 56, 63, 1, 2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
& 175,  175, 465, 190,    0, 56, 63, 2, 2
 | 
			
		||||
 | 
			
		||||
& 195,  175, 465, 325,    0, 56, 63, 2, 2
 | 
			
		||||
 | 
			
		||||
| 175, 152,   2,   6,    0, 63,  Eprom       de [   ],
 | 
			
		||||
| 176, 153,   2,   6,    0,  0,  Eprom       de [   ],
 | 
			
		||||
 | 
			
		||||
| 175, 176,   2,   4,    0, 63,  TP  FI   NP   DM   BD  Numero ID  Tipo de Eprom,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<EFBFBD>4
 | 
			
		||||
 | 
			
		||||
& 150,  170, 470, 330,    7, 63, 56, 2, 2
 | 
			
		||||
 | 
			
		||||
& 155,  270, 465, 170,    0, 56, 63, 1, 2
 | 
			
		||||
 | 
			
		||||
& 175,  175, 265, 325,    0, 56, 63, 2, 2
 | 
			
		||||
 | 
			
		||||
****** Comentario 4 * 30digitos
 | 
			
		||||
& 200,  270, 465, 250,    0, 56, 63, 2, 2
 | 
			
		||||
 | 
			
		||||
& 295,  270, 365, 325,    7, 63, 56, 2, 2
 | 
			
		||||
& 295,  370, 465, 325,    7, 63, 56, 2, 2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
**** Versi<73>n ShareWare
 | 
			
		||||
| 260, 250,   2,   6,    0,  1,  Versi<73>n ShareWare,
 | 
			
		||||
| 260, 265,   2,   4,    0,  2,   V. Completa: Software  5.000 ptas.
 | 
			
		||||
| 260, 275,   2,   4,    0,  2,               Placa    15.000 ptas.
 | 
			
		||||
 | 
			
		||||
| 175, 152,   2,   6,    0, 63,  Archivo: ,
 | 
			
		||||
| 176, 153,   2,   6,    0,  0,  Archivo: ,
 | 
			
		||||
 | 
			
		||||
| 275, 300,   2,   6,    0, 63,  Aceptar ,
 | 
			
		||||
| 276, 301,   2,   6,    0,  0,  Aceptar ,
 | 
			
		||||
 | 275, 302,   2,   6,    0, 63,  _,
 | 
			
		||||
 | 276, 303,   2,   6,    0,  0,  _,
 | 
			
		||||
 | 
			
		||||
| 370, 300,   2,   6,    0, 63,  Cancelar ,
 | 
			
		||||
| 371, 301,   2,   6,    0,  0,  Cancelar ,
 | 
			
		||||
 | 370, 302,   2,   6,    0, 63,  _,
 | 
			
		||||
 | 371, 303,   2,   6,    0,  0,  _,
 | 
			
		||||
 | 
			
		||||
| 270, 180,   2,   6,    0, 63, Comentario: ,
 | 
			
		||||
| 271, 181,   2,   6,    0,  0, Comentario: ,
 | 
			
		||||
 | 
			
		||||
*| 175, 176,   2,   4,    0, 63,  TP  FI   NP   DM   BD  Numero ID  Tipo de Eprom,
 | 
			
		||||
 | 
			
		||||
#2
 | 
			
		||||
!1,8
 | 
			
		||||
$  10, 545, 635,  60,    7, 56, 63, 2, 1,        00, 18
 | 
			
		||||
$  70, 545, 635, 120,    7, 56, 63, 2, 1,        00, 32
 | 
			
		||||
 | 
			
		||||
******** Modificar c<>digo de chequeo ******************
 | 
			
		||||
$ 130, 545, 635, 180,    7, 56, 63, 2, 1,        00, 23
 | 
			
		||||
 | 
			
		||||
$ 190, 545, 635, 222,    7, 56, 63, 2, 1,        00, 46
 | 
			
		||||
$ 232, 545, 635, 265,    7, 56, 63, 2, 1,        00, 34
 | 
			
		||||
 | 
			
		||||
$ 275, 545, 635, 325,    7, 56, 63, 2, 1,        00, 38
 | 
			
		||||
$ 335, 545, 635, 385,    7, 56, 63, 2, 1,        00, 30
 | 
			
		||||
$ 395, 545, 635, 445,    7, 56, 63, 2, 1,        00, 31
 | 
			
		||||
 | 
			
		||||
!2,2
 | 
			
		||||
 | 
			
		||||
$ 295,  270, 365, 325,   7, 63, 56, 2, 2,        00, 30
 | 
			
		||||
$ 295,  370, 465, 325,   7, 63, 56, 2, 2,        00, 46
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								EPROM_JD.TMP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								EPROM_JD.TMP
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										447
									
								
								EP_2.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										447
									
								
								EP_2.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,447 @@
 | 
			
		||||
#include<bios.h>
 | 
			
		||||
#include<dos.h>
 | 
			
		||||
#include<stdlib.h>
 | 
			
		||||
#include<conio.h>
 | 
			
		||||
#include<string.h>
 | 
			
		||||
#include<ctype.h>
 | 
			
		||||
 | 
			
		||||
#define DIBUJA       1
 | 
			
		||||
#define DEPRIME      2
 | 
			
		||||
#define Dibuja_Todos 3
 | 
			
		||||
#define COMPRUEBA    4
 | 
			
		||||
#define STD_BY       5
 | 
			
		||||
 | 
			
		||||
void Edit_Item(void);
 | 
			
		||||
void espera_soltar(void);
 | 
			
		||||
void espera_pulsar(void);
 | 
			
		||||
void activa_raton(void);
 | 
			
		||||
void desactiva_raton(void);
 | 
			
		||||
void inicializa_raton_texto(void);
 | 
			
		||||
void Pantalla_Leer(void);
 | 
			
		||||
void Pantalla_Escribir(void);
 | 
			
		||||
void dibuja_pantalla(void);
 | 
			
		||||
struct Boton_Texto{
 | 
			
		||||
  char x; char y;
 | 
			
		||||
  char Texto[80];
 | 
			
		||||
 | 
			
		||||
  int ID_T1;
 | 
			
		||||
  int ID_T2;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
int Funcion_Botones(int Funcion, int nBotones, struct Boton_Texto *Boton_Texto);
 | 
			
		||||
 | 
			
		||||
  struct byte_de_long { unsigned char P3;	unsigned char P2;
 | 
			
		||||
			unsigned char P1;	unsigned char P0;
 | 
			
		||||
  };
 | 
			
		||||
  union lngchr{  long Numero;  struct byte_de_long Byte; } Division;
 | 
			
		||||
	//////////////////////////////
 | 
			
		||||
	//  long -->  FF FF FF FF	-->  3  34  65  59
 | 
			
		||||
	//            P0 P1 P2 P3       Dec.89 101  52   3
 | 
			
		||||
	//////////////////////////////  Hex.59  65  34   3
 | 
			
		||||
int   boton_izq; int   boton_der;
 | 
			
		||||
int x_raton, y_raton, RATON = 1;
 | 
			
		||||
int SWAP = 0;
 | 
			
		||||
int Dir, Dato;
 | 
			
		||||
 | 
			
		||||
void main(void){
 | 
			
		||||
 | 
			
		||||
struct Boton_Texto BT[6];
 | 
			
		||||
int devolver = 0, i;
 | 
			
		||||
 | 
			
		||||
BT[0].x = 58; BT[0].y = 3; strcpy( BT[0].Texto, "  P. &Leer           "); BT[0].ID_T1 = 76; BT[0].ID_T2 = 0;
 | 
			
		||||
BT[1].x = 58; BT[1].y = 6; strcpy( BT[1].Texto, "  Iniciar Lec&tura   "); BT[1].ID_T1 = 84; BT[1].ID_T2 = 0;
 | 
			
		||||
 | 
			
		||||
BT[2].x = 58; BT[2].y = 9; strcpy( BT[2].Texto, "  P. &Escribir       "); BT[2].ID_T1 = 69; BT[2].ID_T2 = 0;
 | 
			
		||||
BT[3].x = 58; BT[3].y =12; strcpy( BT[3].Texto, "  Iniciar E&scritura "); BT[3].ID_T1 = 83; BT[3].ID_T2 = 0;
 | 
			
		||||
 | 
			
		||||
BT[4].x = 58; BT[4].y =15; strcpy( BT[4].Texto, "   &C R E D I T O S  "); BT[4].ID_T1 = 67; BT[4].ID_T2 = 0;
 | 
			
		||||
BT[5].x = 58; BT[5].y =18; strcpy( BT[5].Texto, "  S&ALIR de PDE ...  "); BT[5].ID_T1 = 65; BT[5].ID_T2 = 0;
 | 
			
		||||
 | 
			
		||||
 inicializa_raton_texto();
 | 
			
		||||
 if( RATON ) desactiva_raton();
 | 
			
		||||
 dibuja_pantalla();
 | 
			
		||||
 _setcursortype(_NOCURSOR);
 | 
			
		||||
 Pantalla_Leer();
 | 
			
		||||
// while( !kbhit() );
 | 
			
		||||
// Pantalla_Escribir();
 | 
			
		||||
 | 
			
		||||
while(devolver != 6) {
 | 
			
		||||
  devolver = Funcion_Botones(STD_BY, 6, BT);
 | 
			
		||||
  switch(devolver){
 | 
			
		||||
   case 1: Pantalla_Leer(); SWAP = 0; break;
 | 
			
		||||
   case 2:
 | 
			
		||||
     Pantalla_Leer(); SWAP = 0;
 | 
			
		||||
    _setcursortype(_NORMALCURSOR);
 | 
			
		||||
    		Edit_Item();
 | 
			
		||||
                 _setcursortype(_NOCURSOR);
 | 
			
		||||
 | 
			
		||||
		break;
 | 
			
		||||
   case 3: Pantalla_Escribir(); SWAP = 1; break;
 | 
			
		||||
   case 4:
 | 
			
		||||
     Pantalla_Escribir(); SWAP = 1;
 | 
			
		||||
    _setcursortype(_NORMALCURSOR);
 | 
			
		||||
    		Edit_Item();
 | 
			
		||||
                 _setcursortype(_NOCURSOR);
 | 
			
		||||
 | 
			
		||||
		break;
 | 
			
		||||
   case 6: break;
 | 
			
		||||
  default:
 | 
			
		||||
		while( kbhit() ) getch();
 | 
			
		||||
		break;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  textbackground(BLACK);
 | 
			
		||||
 _setcursortype(_NORMALCURSOR);
 | 
			
		||||
clrscr();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void dibuja_pantalla(void){
 | 
			
		||||
 | 
			
		||||
 int i;
 | 
			
		||||
 clrscr();
 | 
			
		||||
 highvideo();
 | 
			
		||||
 | 
			
		||||
 window(1, 1, 80, 25);
 | 
			
		||||
 textcolor(9);
 | 
			
		||||
 textbackground(7);
 | 
			
		||||
 for(i=0; i<27; i++)                                   //		"-.-.-.-.-.-.-.-.-.-.-.-."
 | 
			
		||||
	cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>                        ");
 | 
			
		||||
 | 
			
		||||
 textcolor(BLACK);
 | 
			
		||||
 gotoxy(1,25);
 | 
			
		||||
 cprintf("Utilidad para "); textcolor(RED);
 | 
			
		||||
 cprintf("PDE _ EPROM2.EXE");  textcolor(BLACK);
 | 
			
		||||
 gotoxy( (80-22), 25); cprintf("Jos<EFBFBD> David & Francisco");
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Pantalla_Leer(void){
 | 
			
		||||
 highvideo();
 | 
			
		||||
 textcolor(BLACK);
 | 
			
		||||
 textbackground(7);
 | 
			
		||||
 gotoxy(3,3);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(17,3);	     	     cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(3,4);  cprintf("<EFBFBD> Leer     ");
 | 
			
		||||
 textcolor(WHITE); cprintf("<EFBFBD>"); textcolor(BLACK);
 | 
			
		||||
 gotoxy(17,4);	     	     cprintf("<EFBFBD> Escribir ");
 | 
			
		||||
 textcolor(WHITE); cprintf("<EFBFBD>"); textcolor(BLACK);
 | 
			
		||||
 gotoxy(3,5);  cprintf("<EFBFBD>          <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ");
 | 
			
		||||
 gotoxy(3,6);  cprintf("<EFBFBD>                                          <20>");
 | 
			
		||||
 gotoxy(3,7);  cprintf("<EFBFBD> Direcci<63>n:                               <20>");
 | 
			
		||||
 gotoxy(3,8);  cprintf("<EFBFBD>                                          <20>");
 | 
			
		||||
 gotoxy(3,9);  cprintf("<EFBFBD>                                          <20>");
 | 
			
		||||
 gotoxy(3,10);  cprintf("<EFBFBD>                                          <20>");
 | 
			
		||||
 gotoxy(3,11);  cprintf("<EFBFBD>                                          <20>");
 | 
			
		||||
	       textcolor(RED);
 | 
			
		||||
 gotoxy(5,11);  cprintf("Dato Leido:");
 | 
			
		||||
	       textcolor(BLACK);
 | 
			
		||||
 gotoxy(3,12);  cprintf("<EFBFBD>                                          <20>");
 | 
			
		||||
 gotoxy(3,13);  cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
 | 
			
		||||
 textcolor(WHITE);
 | 
			
		||||
 gotoxy(4,3);   cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
 gotoxy(18,3);   	      cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
 | 
			
		||||
 gotoxy(14,5);  cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
 gotoxy(46,6);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(46,7);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(46,8);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(46,9);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(46,10);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(46,11);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(46,12);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(46,13);  cprintf("<EFBFBD>");
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Pantalla_Escribir(void){
 | 
			
		||||
 highvideo();
 | 
			
		||||
 textcolor(BLACK);
 | 
			
		||||
 textbackground(7);
 | 
			
		||||
 gotoxy(3,3);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(17,3);	     	     cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(3,4);  cprintf("<EFBFBD> Leer     ");
 | 
			
		||||
 textcolor(WHITE); cprintf("<EFBFBD>"); textcolor(BLACK);
 | 
			
		||||
 gotoxy(17,4);	     	     cprintf("<EFBFBD> Escribir ");
 | 
			
		||||
 textcolor(WHITE); cprintf("<EFBFBD>"); textcolor(BLACK);
 | 
			
		||||
 gotoxy(3,5);  cprintf("<EFBFBD>          <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ");
 | 
			
		||||
 gotoxy(3,6);  cprintf("<EFBFBD>                                          <20>");
 | 
			
		||||
 gotoxy(3,7);  cprintf("<EFBFBD> Direcci<63>n:                               <20>");
 | 
			
		||||
 gotoxy(3,8);  cprintf("<EFBFBD>                                          <20>");
 | 
			
		||||
 gotoxy(3,9);  cprintf("<EFBFBD> Dato:                                    <20>");
 | 
			
		||||
 gotoxy(3,10);  cprintf("<EFBFBD>                                          <20>");
 | 
			
		||||
 gotoxy(3,11);  cprintf("<EFBFBD>                                          <20>");
 | 
			
		||||
	       textcolor(RED);
 | 
			
		||||
 gotoxy(5,11);  cprintf("Dato escrito:");
 | 
			
		||||
	       textcolor(BLACK);
 | 
			
		||||
 gotoxy(3,12);  cprintf("<EFBFBD>                                          <20>");
 | 
			
		||||
 gotoxy(3,13);  cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
 | 
			
		||||
 textcolor(WHITE);
 | 
			
		||||
 gotoxy(4,3);   cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
 gotoxy(18,3);   	      cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
 | 
			
		||||
 gotoxy(4,5);   cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>          <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
 gotoxy(46,6);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(46,7);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(46,8);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(46,9);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(46,10);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(46,11);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(46,12);  cprintf("<EFBFBD>");
 | 
			
		||||
 gotoxy(46,13);  cprintf("<EFBFBD>");
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int Funcion_Botones(int Funcion, int nBotones, struct Boton_Texto *Boton_Texto){
 | 
			
		||||
 | 
			
		||||
 char i, DEVOLVER = -1;
 | 
			
		||||
 int longitud, key;
 | 
			
		||||
 | 
			
		||||
 switch( Funcion ) {
 | 
			
		||||
  case DIBUJA:
 | 
			
		||||
		 highvideo();
 | 
			
		||||
		 textcolor(BLACK);
 | 
			
		||||
		 textbackground(11);
 | 
			
		||||
		 gotoxy(Boton_Texto[nBotones].x, Boton_Texto[nBotones].y);
 | 
			
		||||
	      DEVOLVER = 0;
 | 
			
		||||
	      longitud = strlen( Boton_Texto[nBotones].Texto );
 | 
			
		||||
	      while( DEVOLVER <= longitud  ) {
 | 
			
		||||
	       if( Boton_Texto[nBotones].Texto[DEVOLVER] == '&' ) {
 | 
			
		||||
		DEVOLVER ++;
 | 
			
		||||
	      textcolor(RED);
 | 
			
		||||
		cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]);
 | 
			
		||||
	      textcolor(BLACK);
 | 
			
		||||
	       } else cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]);
 | 
			
		||||
	       DEVOLVER ++;
 | 
			
		||||
	      }
 | 
			
		||||
 | 
			
		||||
 //		      cprintf("%s", Texto);
 | 
			
		||||
 | 
			
		||||
	      textbackground(7);   			  // <20>SALIR<49><52>
 | 
			
		||||
				cprintf("<EFBFBD>");		  //  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
	      gotoxy(Boton_Texto[nBotones].x+1, Boton_Texto[nBotones].y+1);
 | 
			
		||||
	      for(i = 0; i < longitud; i ++ )             // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
				cprintf("<EFBFBD>");             //  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
	      break;
 | 
			
		||||
  case DEPRIME:
 | 
			
		||||
		 highvideo();
 | 
			
		||||
		 textcolor(BLACK);
 | 
			
		||||
		 textbackground(11);
 | 
			
		||||
	      gotoxy(Boton_Texto[nBotones].x, Boton_Texto[nBotones].y);
 | 
			
		||||
	      DEVOLVER = 0;
 | 
			
		||||
	      longitud = strlen( Boton_Texto[nBotones].Texto );
 | 
			
		||||
	      textbackground(7);
 | 
			
		||||
	      while( DEVOLVER <= (longitud+1)  ) {
 | 
			
		||||
	       if( Boton_Texto[nBotones].Texto[DEVOLVER] == '&' ) {
 | 
			
		||||
		DEVOLVER ++;
 | 
			
		||||
	       }
 | 
			
		||||
	       cprintf(" ");
 | 
			
		||||
	       DEVOLVER ++;
 | 
			
		||||
	      }
 | 
			
		||||
	      textbackground(11);
 | 
			
		||||
	      gotoxy(Boton_Texto[nBotones].x+1, Boton_Texto[nBotones].y+1);
 | 
			
		||||
	      DEVOLVER = 0;
 | 
			
		||||
	      while( DEVOLVER <= longitud  ) {
 | 
			
		||||
 | 
			
		||||
	       if( Boton_Texto[nBotones].Texto[DEVOLVER] == '&' ) {
 | 
			
		||||
		DEVOLVER ++;
 | 
			
		||||
	      textcolor(RED);
 | 
			
		||||
		cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]);
 | 
			
		||||
	      textcolor(BLACK);
 | 
			
		||||
	       } else cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]);
 | 
			
		||||
	       DEVOLVER ++;
 | 
			
		||||
	      }
 | 
			
		||||
//	      cprintf("%s", Texto);                       //
 | 
			
		||||
							  //  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
	      break;
 | 
			
		||||
  case Dibuja_Todos:
 | 
			
		||||
	      for( i=0; i < nBotones; i++)
 | 
			
		||||
		Funcion_Botones( DIBUJA, i, Boton_Texto);
 | 
			
		||||
	      break;
 | 
			
		||||
  case COMPRUEBA:
 | 
			
		||||
	      if( bioskey(1)!=0 ) {
 | 
			
		||||
		      key = toupper( getch() );
 | 
			
		||||
		      for( i=0; i < nBotones && DEVOLVER <= -1; i++){
 | 
			
		||||
			if( key == Boton_Texto[i].ID_T1 ) {
 | 
			
		||||
			     if( key == 0 ) {
 | 
			
		||||
			       key = toupper( getch() );
 | 
			
		||||
			       if( key == Boton_Texto[i].ID_T2 ){
 | 
			
		||||
								 DEVOLVER = (i + 1);
 | 
			
		||||
								 Funcion_Botones( DEPRIME, (DEVOLVER-1), Boton_Texto);
 | 
			
		||||
								 delay(150);
 | 
			
		||||
								 //sleep(1);
 | 
			
		||||
								 Funcion_Botones( DIBUJA, (DEVOLVER-1), Boton_Texto);
 | 
			
		||||
			       } else DEVOLVER = -2;
 | 
			
		||||
			     } else
 | 
			
		||||
					{ DEVOLVER =  (i + 1);
 | 
			
		||||
					 Funcion_Botones( DEPRIME, (DEVOLVER-1), Boton_Texto);
 | 
			
		||||
					 delay(150);
 | 
			
		||||
					 //sleep(1);
 | 
			
		||||
					 Funcion_Botones( DIBUJA, (DEVOLVER-1), Boton_Texto);
 | 
			
		||||
					}
 | 
			
		||||
			}
 | 
			
		||||
		      }
 | 
			
		||||
		      if( DEVOLVER == -1 )
 | 
			
		||||
					{ ungetch(key); }
 | 
			
		||||
 | 
			
		||||
		      if( DEVOLVER == -2 )
 | 
			
		||||
					{ ungetch(0); ungetch(key); DEVOLVER = -1; }
 | 
			
		||||
 | 
			
		||||
	      } else if( RATON ) {
 | 
			
		||||
		      for( i=0; i < nBotones && DEVOLVER == -1; i++) {
 | 
			
		||||
			longitud = strlen( Boton_Texto[i].Texto );
 | 
			
		||||
			if ( (x_raton+1) >= Boton_Texto[i].x && (x_raton+1) <= ( Boton_Texto[i].x + longitud -1) &&
 | 
			
		||||
			     y_raton == (Boton_Texto[i].y-1) ) { DEVOLVER = (i + 1);
 | 
			
		||||
							     Funcion_Botones( DEPRIME, (DEVOLVER-1), Boton_Texto);
 | 
			
		||||
							     if( RATON ) activa_raton();
 | 
			
		||||
							     espera_soltar();
 | 
			
		||||
							     if( RATON ) desactiva_raton();
 | 
			
		||||
//			     				     delay(150);
 | 
			
		||||
							     Funcion_Botones( DIBUJA, (DEVOLVER-1), Boton_Texto);
 | 
			
		||||
			}
 | 
			
		||||
		      }
 | 
			
		||||
	      }
 | 
			
		||||
	      break;
 | 
			
		||||
  case STD_BY:
 | 
			
		||||
	      Funcion_Botones(Dibuja_Todos, 6, Boton_Texto);
 | 
			
		||||
	      do{
 | 
			
		||||
		if( RATON ) activa_raton();
 | 
			
		||||
		if( RATON ) espera_pulsar(); else while( bioskey(1)==0 );
 | 
			
		||||
		if( RATON ) desactiva_raton();
 | 
			
		||||
		DEVOLVER = Funcion_Botones(COMPRUEBA, 6, Boton_Texto);
 | 
			
		||||
	      }while(DEVOLVER==-1 && bioskey(1)==0 );
 | 
			
		||||
 | 
			
		||||
 }
 | 
			
		||||
 return DEVOLVER;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void inicializa_raton_texto(void)
 | 
			
		||||
{
 | 
			
		||||
	union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
	ent.x.ax =   0;
 | 
			
		||||
        int86(0x33, &ent, &sal);          /* averigua si hay rat<61>n conectado */
 | 
			
		||||
 | 
			
		||||
	if(sal.x.ax==0) { RATON = 0; return; }
 | 
			
		||||
 | 
			
		||||
        ent.x.ax =  15;
 | 
			
		||||
	ent.x.cx =   8;
 | 
			
		||||
	ent.x.dx =  16;
 | 
			
		||||
        int86(0x33, &ent, &sal);               /* fija la raz<61>n mickey/pixel */
 | 
			
		||||
 | 
			
		||||
	ent.x.ax =   7;
 | 
			
		||||
        ent.x.cx =   0;
 | 
			
		||||
        ent.x.dx = 639;
 | 
			
		||||
        int86(0x33, &ent, &sal);  /* fija la posici<63>n m<>x. y m<>n. horizontal */
 | 
			
		||||
 | 
			
		||||
        ent.x.ax =   8;
 | 
			
		||||
	ent.x.cx =   0;
 | 
			
		||||
	ent.x.dx = 199;
 | 
			
		||||
	int86(0x33, &ent, &sal);    /* fija la posici<63>n m<>x. y m<>n. vertical */
 | 
			
		||||
 | 
			
		||||
	ent.x.ax =   4;
 | 
			
		||||
	ent.x.cx = 320;
 | 
			
		||||
	ent.x.dx = 100;
 | 
			
		||||
	int86(0x33, &ent, &sal);               /* fija la posici<63>n del rat<61>n */
 | 
			
		||||
 | 
			
		||||
	ent.x.ax =   1;
 | 
			
		||||
	int86(0x33, &ent, &sal);             /* muestra el puntero del rat<61>n */
 | 
			
		||||
}
 | 
			
		||||
void activa_raton(void)
 | 
			
		||||
{
 | 
			
		||||
	union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
	ent.x.ax = 1;
 | 
			
		||||
	int86(0x33, &ent, &sal);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void desactiva_raton(void)
 | 
			
		||||
{
 | 
			
		||||
        union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
	ent.x.ax = 2;
 | 
			
		||||
	int86(0x33, &ent, &sal);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void espera_pulsar(void)
 | 
			
		||||
{
 | 
			
		||||
	union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
	do{
 | 
			
		||||
	  if(bioskey(1)!=0) break;
 | 
			
		||||
	  ent.x.ax = 3;
 | 
			
		||||
	  int86(0x33, &ent, &sal);       /* lee posici<63>n y estados del bot<6F>n */
 | 
			
		||||
	}while((sal.x.bx & 3)==0);
 | 
			
		||||
	boton_izq=sal.x.bx & 1;
 | 
			
		||||
	boton_der=(sal.x.bx >> 1) & 1;
 | 
			
		||||
	x_raton= (sal.x.cx >> 1) / 4; // / 8
 | 
			
		||||
	y_raton= (sal.x.dx)/8; //  /8
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void espera_soltar(void)
 | 
			
		||||
{
 | 
			
		||||
	union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
	do{
 | 
			
		||||
	  ent.x.ax = 3;
 | 
			
		||||
	  int86(0x33, &ent, &sal);       /* lee posici<63>n y estados del bot<6F>n */
 | 
			
		||||
	}while((sal.x.bx & 3)!=0);
 | 
			
		||||
	boton_izq=sal.x.bx & 1;
 | 
			
		||||
	boton_der=(sal.x.bx >> 1) & 1;
 | 
			
		||||
	x_raton=sal.x.cx >> 1;
 | 
			
		||||
	y_raton=sal.x.dx;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Edit_Item(void){
 | 
			
		||||
 | 
			
		||||
char buffer[80];
 | 
			
		||||
char *endptr;
 | 
			
		||||
 | 
			
		||||
 if( !SWAP ) {
 | 
			
		||||
 | 
			
		||||
   do{
 | 
			
		||||
		strcpy( buffer, "\0");
 | 
			
		||||
		gotoxy(16,7);	textcolor(RED);
 | 
			
		||||
                cprintf("                         ");
 | 
			
		||||
                gotoxy(16,7);
 | 
			
		||||
		cscanf("%10s", buffer );
 | 
			
		||||
 | 
			
		||||
		Dir = strtol(buffer, &endptr, 16);
 | 
			
		||||
   }while(*endptr!=NULL);
 | 
			
		||||
 | 
			
		||||
 // LEER
 | 
			
		||||
 } else {
 | 
			
		||||
 // ESCRIBIR
 | 
			
		||||
 | 
			
		||||
   textcolor(RED);
 | 
			
		||||
   gotoxy(16,7);
 | 
			
		||||
   do{
 | 
			
		||||
		strcpy( buffer, "\0");
 | 
			
		||||
		gotoxy(16,7);	textcolor(RED);
 | 
			
		||||
                cprintf("                         ");
 | 
			
		||||
                gotoxy(16,7);
 | 
			
		||||
		cscanf("%10s", buffer );
 | 
			
		||||
		Dir = strtol(buffer, &endptr, 16);
 | 
			
		||||
   }while(*endptr!=NULL);
 | 
			
		||||
 | 
			
		||||
   do{
 | 
			
		||||
		strcpy( buffer, "\0");
 | 
			
		||||
		gotoxy(16,9);	textcolor(RED);
 | 
			
		||||
                cprintf("                         ");
 | 
			
		||||
                gotoxy(16,9);
 | 
			
		||||
		cscanf("%10s", buffer );
 | 
			
		||||
		Dato = strtol(buffer, &endptr, 16);
 | 
			
		||||
   }while(*endptr!=NULL);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										33
									
								
								NONAME00.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								NONAME00.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,33 @@
 | 
			
		||||
#include<conio.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  struct byte_de_long { unsigned char P3;	unsigned char P2;
 | 
			
		||||
			unsigned char P1;	unsigned char P0;
 | 
			
		||||
  };
 | 
			
		||||
  union lngchr{  long Numero;  struct byte_de_long Byte; } Division;
 | 
			
		||||
	//////////////////////////////
 | 
			
		||||
	//  long -->  FF FF FF FF	-->  3  34  65  59
 | 
			
		||||
	//            P0 P1 P2 P3       Dec.89 101  52   3
 | 
			
		||||
	//////////////////////////////  Hex.59  65  34   3
 | 
			
		||||
 | 
			
		||||
void main(void){
 | 
			
		||||
 int iP0, iP1, iP2, iP3;
 | 
			
		||||
 clrscr();
 | 
			
		||||
 cscanf("%ld", &Division.Numero );
 | 
			
		||||
 cprintf("\r\n");
 | 
			
		||||
 cprintf("LONG --> %ld", Division.Numero);
 | 
			
		||||
 cprintf("\r\n");
 | 
			
		||||
 cprintf("Bytes de un long:\r\n");
 | 
			
		||||
 iP0 = Division.Byte.P0;
 | 
			
		||||
 iP1 = Division.Byte.P1;
 | 
			
		||||
 iP2 = Division.Byte.P2;
 | 
			
		||||
 iP3 = Division.Byte.P3;
 | 
			
		||||
 cprintf("P3 --> %d  P2 --> %d  P1 --> %d  P0 --> %d\r\n", iP3, iP2, iP1, iP0);
 | 
			
		||||
 cprintf("\r\n");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										574
									
								
								RATON.C
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										574
									
								
								RATON.C
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,574 @@
 | 
			
		||||
 | 
			
		||||
#include <dos.h>
 | 
			
		||||
#include <bios.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <conio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
 | 
			
		||||
#define ALFANUMERICO 0x03
 | 
			
		||||
#define GRAFICO      0x13
 | 
			
		||||
 | 
			
		||||
void  DIBUJA_BLOQUE_SIN_MASK_CUT(int *, char *, char *);
 | 
			
		||||
void  DIBUJA_BLOQUE_CON_MASK_CUT(int *, char *, char *);
 | 
			
		||||
void  VUELCA_PANTALLA(int,int, int,int, int,int, char *);
 | 
			
		||||
void  pantalla_cine(void);
 | 
			
		||||
void  cinta_cine(void);
 | 
			
		||||
void  premios(void);
 | 
			
		||||
void  premiados(void);
 | 
			
		||||
void  espera_pulsar(void);
 | 
			
		||||
void  espera_soltar(void);
 | 
			
		||||
void  no_hay_raton(void);
 | 
			
		||||
void  desactiva_raton(void);
 | 
			
		||||
void  activa_raton(void);
 | 
			
		||||
void  dibuja_graficos(void);
 | 
			
		||||
void  inicializa_raton_texto(void);
 | 
			
		||||
void  inicializa_raton_grafico(void);
 | 
			
		||||
void  salir_al_dos(void);
 | 
			
		||||
void  asigna_modo_video(char);
 | 
			
		||||
void  lee_dibujos(char *);
 | 
			
		||||
void  descomprime_dibujo(char *);
 | 
			
		||||
void  asigna_rgb(char *);
 | 
			
		||||
void  asigna_memoria(void);
 | 
			
		||||
void  libera_memoria(void);
 | 
			
		||||
 | 
			
		||||
int   x_raton;
 | 
			
		||||
int   y_raton;
 | 
			
		||||
int   y_raton_ant;
 | 
			
		||||
int   boton_izq;
 | 
			
		||||
int   boton_der;
 | 
			
		||||
int   pos_playa     [6] = {   0, 0,           0,  0, 320,200 };
 | 
			
		||||
int   pos_toalla    [8] = { 188, 0, 188,47, 130,152,  87, 47 };
 | 
			
		||||
int   pos_sombrilla [8] = {   0, 0,  94, 0, 175,110,  94, 70 };
 | 
			
		||||
int   pos_pelota    [8] = { 275, 0, 275,23, 185,170,  25, 23 };
 | 
			
		||||
char  fichero1       [] = { "raton1.pcx" };
 | 
			
		||||
char  fichero2       [] = { "raton2.pcx" };
 | 
			
		||||
int   dir_raton [32+32] = { 0x3FFF,		       /* m<>scara del cursor */
 | 
			
		||||
			    0x1FFF,
 | 
			
		||||
			    0x0FFF,
 | 
			
		||||
			    0x07FF,
 | 
			
		||||
			    0x03FF,
 | 
			
		||||
			    0x01FF,
 | 
			
		||||
			    0x00FF,
 | 
			
		||||
			    0x007F,
 | 
			
		||||
			    0x003F,
 | 
			
		||||
			    0x001F,
 | 
			
		||||
			    0x000F,
 | 
			
		||||
			    0x0007,
 | 
			
		||||
			    0x0007,
 | 
			
		||||
			    0xF81F,
 | 
			
		||||
			    0xFC0F,
 | 
			
		||||
			    0xFE0F,
 | 
			
		||||
 | 
			
		||||
			    0x0000,		        /* dibujo del cursor */
 | 
			
		||||
			    0x4000,
 | 
			
		||||
			    0x6000,
 | 
			
		||||
			    0x7000,
 | 
			
		||||
			    0x7800,
 | 
			
		||||
			    0x7C00,
 | 
			
		||||
			    0x7E00,
 | 
			
		||||
			    0x7F00,
 | 
			
		||||
			    0x7F80,
 | 
			
		||||
			    0x7FC0,
 | 
			
		||||
			    0x7FE0,
 | 
			
		||||
			    0x7FF0,
 | 
			
		||||
			    0x0780,
 | 
			
		||||
			    0x03C0,
 | 
			
		||||
			    0x01E0,
 | 
			
		||||
			    0x0000 };
 | 
			
		||||
char  color_izq=DARKGRAY;
 | 
			
		||||
char  color_der=BROWN;
 | 
			
		||||
char *dir_carga_dibujos;
 | 
			
		||||
char *dir_dibujo1;
 | 
			
		||||
char *dir_dibujo2;
 | 
			
		||||
char *dir_zona_pantalla;
 | 
			
		||||
FILE *handle_dibujos;
 | 
			
		||||
 | 
			
		||||
/*//////////////////////////////// PROGRAMA ////////////////////////////////*/
 | 
			
		||||
 | 
			
		||||
void main(void)
 | 
			
		||||
{
 | 
			
		||||
	 union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
        asigna_memoria();
 | 
			
		||||
 | 
			
		||||
        asigna_modo_video(ALFANUMERICO);
 | 
			
		||||
        inicializa_raton_texto();
 | 
			
		||||
        desactiva_raton();
 | 
			
		||||
        pantalla_cine();
 | 
			
		||||
        cinta_cine();
 | 
			
		||||
        premios();
 | 
			
		||||
	activa_raton();
 | 
			
		||||
	while(bioskey(1)!=0) bioskey(0);
 | 
			
		||||
 | 
			
		||||
        do{
 | 
			
		||||
          espera_pulsar();
 | 
			
		||||
          desactiva_raton();
 | 
			
		||||
          if(boton_izq==1) color_izq=LIGHTGRAY;
 | 
			
		||||
          if(boton_der==1) color_der=YELLOW;
 | 
			
		||||
          cinta_cine();
 | 
			
		||||
          premiados();
 | 
			
		||||
          activa_raton();
 | 
			
		||||
          espera_soltar();
 | 
			
		||||
          desactiva_raton();
 | 
			
		||||
          if(boton_izq==0) color_izq=DARKGRAY;
 | 
			
		||||
          if(boton_der==0) color_der=BROWN;
 | 
			
		||||
          cinta_cine();
 | 
			
		||||
          premios();
 | 
			
		||||
          activa_raton();
 | 
			
		||||
        }while(bioskey(1)==0);
 | 
			
		||||
 | 
			
		||||
        asigna_modo_video(GRAFICO);
 | 
			
		||||
        lee_dibujos(fichero1);
 | 
			
		||||
        descomprime_dibujo(dir_dibujo1);
 | 
			
		||||
        lee_dibujos(fichero2);
 | 
			
		||||
	descomprime_dibujo(dir_dibujo2);
 | 
			
		||||
 | 
			
		||||
        inicializa_raton_grafico();
 | 
			
		||||
        DIBUJA_BLOQUE_SIN_MASK_CUT(pos_playa,     dir_dibujo1, dir_zona_pantalla);
 | 
			
		||||
        DIBUJA_BLOQUE_CON_MASK_CUT(pos_toalla,    dir_dibujo2, dir_zona_pantalla);
 | 
			
		||||
        DIBUJA_BLOQUE_CON_MASK_CUT(pos_pelota,    dir_dibujo2, dir_zona_pantalla);
 | 
			
		||||
        DIBUJA_BLOQUE_CON_MASK_CUT(pos_sombrilla, dir_dibujo2, dir_zona_pantalla);
 | 
			
		||||
        desactiva_raton();
 | 
			
		||||
        VUELCA_PANTALLA(0,0, 0,0, 320,200, dir_zona_pantalla);
 | 
			
		||||
	activa_raton();
 | 
			
		||||
	while(bioskey(1)!=0) bioskey(0);
 | 
			
		||||
 | 
			
		||||
        do{
 | 
			
		||||
          ent.x.ax = 3;
 | 
			
		||||
          int86(0x33, &ent, &sal);       /* lee posici<63>n y estados del bot<6F>n */
 | 
			
		||||
          boton_izq=sal.x.bx & 1;
 | 
			
		||||
          boton_der=(sal.x.bx >> 1) & 1;
 | 
			
		||||
 | 
			
		||||
          if((boton_izq==1 || boton_der==1) &&
 | 
			
		||||
          x_raton>=pos_toalla[4]+(pos_toalla[6]/2)-4 &&
 | 
			
		||||
          x_raton<=pos_toalla[4]+(pos_toalla[6]/2)+4 &&
 | 
			
		||||
          y_raton>=pos_toalla[5]+(pos_toalla[7]/2)-4 &&
 | 
			
		||||
          y_raton<=pos_toalla[5]+(pos_toalla[7]/2)+4) {
 | 
			
		||||
            pos_toalla[4]=(sal.x.cx >> 1)-(pos_toalla[6]/2);
 | 
			
		||||
            pos_toalla[5]=(sal.x.dx     )-(pos_toalla[7]/2);
 | 
			
		||||
            dibuja_graficos();
 | 
			
		||||
            desactiva_raton();
 | 
			
		||||
            VUELCA_PANTALLA(0,0, 0,0, 320,200, dir_zona_pantalla);
 | 
			
		||||
            activa_raton();
 | 
			
		||||
          }
 | 
			
		||||
          else if((boton_izq==1 || boton_der==1) &&
 | 
			
		||||
          x_raton>=pos_pelota[4]+(pos_pelota[6]/2)-4 &&
 | 
			
		||||
          x_raton<=pos_pelota[4]+(pos_pelota[6]/2)+4 &&
 | 
			
		||||
          y_raton>=pos_pelota[5]+(pos_pelota[7]/2)-4 &&
 | 
			
		||||
          y_raton<=pos_pelota[5]+(pos_pelota[7]/2)+4) {
 | 
			
		||||
            pos_pelota[4]=(sal.x.cx >> 1)-(pos_pelota[6]/2);
 | 
			
		||||
            pos_pelota[5]=(sal.x.dx     )-(pos_pelota[7]/2);
 | 
			
		||||
            dibuja_graficos();
 | 
			
		||||
            desactiva_raton();
 | 
			
		||||
            VUELCA_PANTALLA(0,0, 0,0, 320,200, dir_zona_pantalla);
 | 
			
		||||
            activa_raton();
 | 
			
		||||
          }
 | 
			
		||||
          else if((boton_izq==1 || boton_der==1) &&
 | 
			
		||||
          x_raton>=pos_sombrilla[4]+(pos_sombrilla[6]/2)-4 &&
 | 
			
		||||
          x_raton<=pos_sombrilla[4]+(pos_sombrilla[6]/2)+4 &&
 | 
			
		||||
          y_raton>=pos_sombrilla[5]+(pos_sombrilla[7]/2)-4 &&
 | 
			
		||||
          y_raton<=pos_sombrilla[5]+(pos_sombrilla[7]/2)+4) {
 | 
			
		||||
            pos_sombrilla[4]=(sal.x.cx >> 1)-(pos_sombrilla[6]/2);
 | 
			
		||||
            pos_sombrilla[5]=(sal.x.dx     )-(pos_sombrilla[7]/2);
 | 
			
		||||
            dibuja_graficos();
 | 
			
		||||
            desactiva_raton();
 | 
			
		||||
            VUELCA_PANTALLA(0,0, 0,0, 320,200, dir_zona_pantalla);
 | 
			
		||||
            activa_raton();
 | 
			
		||||
          }
 | 
			
		||||
          x_raton=sal.x.cx >> 1;
 | 
			
		||||
          y_raton=sal.x.dx;
 | 
			
		||||
        }while(bioskey(1)==0);
 | 
			
		||||
        while(bioskey(1)!=0) bioskey(0);
 | 
			
		||||
 | 
			
		||||
        salir_al_dos();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dibuja_graficos(void)
 | 
			
		||||
{
 | 
			
		||||
        DIBUJA_BLOQUE_SIN_MASK_CUT(pos_playa,     dir_dibujo1, dir_zona_pantalla);
 | 
			
		||||
        DIBUJA_BLOQUE_CON_MASK_CUT(pos_toalla,    dir_dibujo2, dir_zona_pantalla);
 | 
			
		||||
        DIBUJA_BLOQUE_CON_MASK_CUT(pos_pelota,    dir_dibujo2, dir_zona_pantalla);
 | 
			
		||||
        DIBUJA_BLOQUE_CON_MASK_CUT(pos_sombrilla, dir_dibujo2, dir_zona_pantalla);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void inicializa_raton_texto(void)
 | 
			
		||||
{
 | 
			
		||||
        union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
        ent.x.ax =   0;
 | 
			
		||||
        int86(0x33, &ent, &sal);          /* averigua si hay rat<61>n conectado */
 | 
			
		||||
 | 
			
		||||
        if(sal.x.ax==0) no_hay_raton();
 | 
			
		||||
 | 
			
		||||
        ent.x.ax =  15;
 | 
			
		||||
        ent.x.cx =   8;
 | 
			
		||||
        ent.x.dx =  16;
 | 
			
		||||
        int86(0x33, &ent, &sal);               /* fija la raz<61>n mickey/pixel */
 | 
			
		||||
 | 
			
		||||
        ent.x.ax =   7;
 | 
			
		||||
        ent.x.cx =   0;
 | 
			
		||||
        ent.x.dx = 639;
 | 
			
		||||
        int86(0x33, &ent, &sal);  /* fija la posici<63>n m<>x. y m<>n. horizontal */
 | 
			
		||||
 | 
			
		||||
        ent.x.ax =   8;
 | 
			
		||||
        ent.x.cx =   0;
 | 
			
		||||
        ent.x.dx = 199;
 | 
			
		||||
        int86(0x33, &ent, &sal);    /* fija la posici<63>n m<>x. y m<>n. vertical */
 | 
			
		||||
 | 
			
		||||
        ent.x.ax =   4;
 | 
			
		||||
        ent.x.cx = 320;
 | 
			
		||||
        ent.x.dx = 100;
 | 
			
		||||
        int86(0x33, &ent, &sal);               /* fija la posici<63>n del rat<61>n */
 | 
			
		||||
 | 
			
		||||
        ent.x.ax =   1;
 | 
			
		||||
        int86(0x33, &ent, &sal);             /* muestra el puntero del rat<61>n */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void inicializa_raton_grafico(void)
 | 
			
		||||
{
 | 
			
		||||
        struct SREGS seg;
 | 
			
		||||
	union   REGS ent, sal;
 | 
			
		||||
	long         dir;
 | 
			
		||||
 | 
			
		||||
        ent.x.ax =   0;
 | 
			
		||||
        int86(0x33, &ent, &sal);          /* averigua si hay rat<61>n conectado */
 | 
			
		||||
 | 
			
		||||
        if(sal.x.ax==0) no_hay_raton();
 | 
			
		||||
 | 
			
		||||
        ent.x.ax =  15;
 | 
			
		||||
	ent.x.cx =   5;
 | 
			
		||||
        ent.x.dx =  12;
 | 
			
		||||
        int86(0x33, &ent, &sal);               /* fija la raz<61>n mickey/pixel */
 | 
			
		||||
 | 
			
		||||
        ent.x.ax =   7;
 | 
			
		||||
        ent.x.cx =   0;
 | 
			
		||||
        ent.x.dx = 639;
 | 
			
		||||
        int86(0x33, &ent, &sal);  /* fija la posici<63>n m<>x. y m<>n. horizontal */
 | 
			
		||||
 | 
			
		||||
        ent.x.ax =   8;
 | 
			
		||||
        ent.x.cx =   0;
 | 
			
		||||
        ent.x.dx = 199;
 | 
			
		||||
        int86(0x33, &ent, &sal);    /* fija la posici<63>n m<>x. y m<>n. vertical */
 | 
			
		||||
 | 
			
		||||
	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 = 320;
 | 
			
		||||
        x_raton=ent.x.cx >> 1;
 | 
			
		||||
        ent.x.dx = 100;
 | 
			
		||||
        y_raton=ent.x.dx;
 | 
			
		||||
        int86(0x33, &ent, &sal);               /* fija la posici<63>n del rat<61>n */
 | 
			
		||||
 | 
			
		||||
        ent.x.ax =   1;
 | 
			
		||||
        int86(0x33, &ent, &sal);             /* muestra el puntero del rat<61>n */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void activa_raton(void)
 | 
			
		||||
{
 | 
			
		||||
        union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
        ent.x.ax = 1;
 | 
			
		||||
        int86(0x33, &ent, &sal);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void desactiva_raton(void)
 | 
			
		||||
{
 | 
			
		||||
        union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
        ent.x.ax = 2;
 | 
			
		||||
        int86(0x33, &ent, &sal);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void espera_pulsar(void)
 | 
			
		||||
{
 | 
			
		||||
        union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
        do{
 | 
			
		||||
          if(bioskey(1)!=0) break;
 | 
			
		||||
          ent.x.ax = 3;
 | 
			
		||||
          int86(0x33, &ent, &sal);       /* lee posici<63>n y estados del bot<6F>n */
 | 
			
		||||
        }while((sal.x.bx & 3)==0);
 | 
			
		||||
        boton_izq=sal.x.bx & 1;
 | 
			
		||||
        boton_der=(sal.x.bx >> 1) & 1;
 | 
			
		||||
        x_raton=sal.x.cx >> 1;
 | 
			
		||||
        y_raton=sal.x.dx;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void espera_soltar(void)
 | 
			
		||||
{
 | 
			
		||||
        union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
        do{
 | 
			
		||||
          ent.x.ax = 3;
 | 
			
		||||
          int86(0x33, &ent, &sal);       /* lee posici<63>n y estados del bot<6F>n */
 | 
			
		||||
        }while((sal.x.bx & 3)!=0);
 | 
			
		||||
        boton_izq=sal.x.bx & 1;
 | 
			
		||||
        boton_der=(sal.x.bx >> 1) & 1;
 | 
			
		||||
        x_raton=sal.x.cx >> 1;
 | 
			
		||||
        y_raton=sal.x.dx;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void no_hay_raton(void)
 | 
			
		||||
{
 | 
			
		||||
        asigna_modo_video(ALFANUMERICO);
 | 
			
		||||
        libera_memoria();
 | 
			
		||||
        gotoxy(1,1); printf("No hay RATON instalado");
 | 
			
		||||
        exit(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void salir_al_dos(void)
 | 
			
		||||
{
 | 
			
		||||
        asigna_modo_video(ALFANUMERICO);
 | 
			
		||||
        libera_memoria();
 | 
			
		||||
        exit(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void asigna_memoria(void)
 | 
			
		||||
{
 | 
			
		||||
        if((dir_zona_pantalla = malloc (64000))==NULL) {
 | 
			
		||||
          printf("No hay suficiente memoria. Libere programas residentes.");
 | 
			
		||||
          exit(1);
 | 
			
		||||
        }
 | 
			
		||||
        if((dir_carga_dibujos = malloc (65000))==NULL) {
 | 
			
		||||
          printf("No hay suficiente memoria. Libere programas residentes.");
 | 
			
		||||
          exit(1);
 | 
			
		||||
        }
 | 
			
		||||
        if((dir_dibujo1       = malloc (64000))==NULL) {
 | 
			
		||||
          printf("No hay suficiente memoria. Libere programas residentes.");
 | 
			
		||||
          exit(1);
 | 
			
		||||
        }
 | 
			
		||||
        if((dir_dibujo2       = malloc (64000))==NULL) {
 | 
			
		||||
          printf("No hay suficiente memoria. Libere programas residentes.");
 | 
			
		||||
          exit(1);
 | 
			
		||||
        }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void libera_memoria(void)
 | 
			
		||||
{
 | 
			
		||||
        free(dir_zona_pantalla);
 | 
			
		||||
        free(dir_carga_dibujos);
 | 
			
		||||
        free(dir_dibujo1);
 | 
			
		||||
        free(dir_dibujo2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void asigna_modo_video(char modo)   /* asigna el modo de v<>deo indicado      */
 | 
			
		||||
{                                   /* en la variable "modo"                 */
 | 
			
		||||
        union REGS ent, sal;
 | 
			
		||||
 | 
			
		||||
        ent.h.al = modo;
 | 
			
		||||
        ent.h.ah = 0;
 | 
			
		||||
        int86(16, &ent, &sal);      /* funci<63>n para asignar el modo de video */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void lee_dibujos(char *fichero)
 | 
			
		||||
{
 | 
			
		||||
        char *p;
 | 
			
		||||
 | 
			
		||||
        if((handle_dibujos = fopen(fichero, "rb"))==NULL) {
 | 
			
		||||
          printf("No se puede abrir el archivo.");
 | 
			
		||||
          exit(1);
 | 
			
		||||
        }
 | 
			
		||||
        p=dir_carga_dibujos;
 | 
			
		||||
        while(!feof(handle_dibujos)) {
 | 
			
		||||
          *p++=getc(handle_dibujos);
 | 
			
		||||
        }
 | 
			
		||||
        if(fclose(handle_dibujos)!=NULL) {
 | 
			
		||||
          printf("No se puede cerrar el archivo.");
 | 
			
		||||
          exit(1);
 | 
			
		||||
        }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void descomprime_dibujo(char *dir_escritura)
 | 
			
		||||
{
 | 
			
		||||
        unsigned char  byte;
 | 
			
		||||
                 char *dir_lectura;
 | 
			
		||||
                 int   columnas, filas, contador;
 | 
			
		||||
 | 
			
		||||
        dir_lectura=dir_carga_dibujos+128;   /* inicio del dibujo comprimido */
 | 
			
		||||
 | 
			
		||||
        for(filas=200; filas>0; filas--) {
 | 
			
		||||
          columnas=320;
 | 
			
		||||
          dir_escritura-=columnas; dir_escritura+=320;
 | 
			
		||||
          while(columnas>0) {
 | 
			
		||||
            byte=(unsigned)*dir_lectura++;
 | 
			
		||||
            if(byte<=192) { *dir_escritura++=byte; columnas--; }
 | 
			
		||||
            else {
 | 
			
		||||
              contador=byte&63; byte=*dir_lectura++;
 | 
			
		||||
              for(;contador>0;contador--) { *dir_escritura++=byte;columnas--; }
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        dir_lectura++;
 | 
			
		||||
        asigna_rgb(dir_lectura);       /* remapea los 256 colores del dibujo */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void asigna_rgb(char *dir_lectura)
 | 
			
		||||
{
 | 
			
		||||
        struct   SREGS  seg;
 | 
			
		||||
        union     REGS  ent, sal;
 | 
			
		||||
        unsigned  int   reg_dx, n;
 | 
			
		||||
        long      int   dir;
 | 
			
		||||
                  char *dir_col;
 | 
			
		||||
 | 
			
		||||
        dir_col=dir_lectura;                                /* divide entre  */
 | 
			
		||||
        for(n=256*3; n>0; n--) {                            /* 4 los colores */
 | 
			
		||||
          *dir_col=*dir_col >> 2; dir_col++;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        reg_dx=(int)dir_lectura;                 /* offset de los colores    */
 | 
			
		||||
        dir   =(long)dir_lectura;                /* obtiene el segmento      */
 | 
			
		||||
        seg.es=(int)(dir >> 16);                 /* donde estan los colores  */
 | 
			
		||||
 | 
			
		||||
        ent.h.al =  18;
 | 
			
		||||
        ent.h.ah =  16;
 | 
			
		||||
        ent.x.bx =   0;
 | 
			
		||||
        ent.x.cx = 256;
 | 
			
		||||
        ent.x.dx = reg_dx;
 | 
			
		||||
        int86x(0x10, &ent, &sal, &seg);  /* funci<63>n para asignar los colores */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void cinta_cine(void)
 | 
			
		||||
{
 | 
			
		||||
        textcolor(color_izq);
 | 
			
		||||
        gotoxy(21, 1); cprintf                    ("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>    <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
        gotoxy(19, 2); cprintf                  ("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>    <20><><EFBFBD>");
 | 
			
		||||
        gotoxy(17, 3); cprintf                (" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>   ");
 | 
			
		||||
        gotoxy(15, 4); cprintf              ("<EFBFBD>    <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
        gotoxy(13, 5); cprintf            ("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>    <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
        gotoxy(11, 6); cprintf          ("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>    <20><><EFBFBD>");
 | 
			
		||||
        gotoxy( 9, 7); cprintf        (" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>   ");
 | 
			
		||||
        gotoxy( 7, 8); cprintf      ("<EFBFBD>    <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
        gotoxy( 5, 9); cprintf    ("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>    <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
        gotoxy( 3,10); cprintf  ("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>    <20><><EFBFBD>");
 | 
			
		||||
        gotoxy( 1,11); cprintf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>   ");
 | 
			
		||||
        gotoxy( 1,12); cprintf("   <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
        gotoxy( 1,13); cprintf("<EFBFBD>    <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
        gotoxy( 1,14); cprintf("<EFBFBD><EFBFBD><EFBFBD>    <20><><EFBFBD>");
 | 
			
		||||
        gotoxy( 1,15); cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>  ");
 | 
			
		||||
        gotoxy( 1,16); cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
        gotoxy( 1,17); cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
        gotoxy( 1,18); cprintf("<EFBFBD><EFBFBD>");
 | 
			
		||||
 | 
			
		||||
        textcolor(color_der);
 | 
			
		||||
        gotoxy(79,14); cprintf                      ("<EFBFBD> ");
 | 
			
		||||
        gotoxy(77,15); cprintf                    ("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
        gotoxy(75,16); cprintf                  ("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
        gotoxy(73,17); cprintf                (" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
        gotoxy(71,18); cprintf              ("<EFBFBD>    <20><><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
        gotoxy(69,19); cprintf            ("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>    <20><><EFBFBD>");
 | 
			
		||||
        gotoxy(67,20); cprintf          ("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>    <20>");
 | 
			
		||||
        gotoxy(65,21); cprintf        (" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>   ");
 | 
			
		||||
        gotoxy(63,22); cprintf      ("<EFBFBD>    <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
        gotoxy(61,23); cprintf    ("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>    <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
			
		||||
        gotoxy(59,24); cprintf  ("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>    <20><><EFBFBD>");
 | 
			
		||||
        gotoxy(57,25); cprintf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>   ");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void pantalla_cine(void)
 | 
			
		||||
{
 | 
			
		||||
        textbackground(BLACK); textcolor(BLACK); clrscr();
 | 
			
		||||
        textcolor(BLUE);
 | 
			
		||||
        gotoxy( 1, 1); cprintf("                 <20>                   <20>");
 | 
			
		||||
        gotoxy( 1, 2); cprintf("               <20>                   <20>  ");
 | 
			
		||||
        gotoxy( 1, 3); cprintf("             <20>                   <20>    ");
 | 
			
		||||
        gotoxy( 1, 4); cprintf("           <20>                   <20>      ");
 | 
			
		||||
        gotoxy( 1, 5); cprintf("         <20>                   <20>        ");
 | 
			
		||||
        gotoxy( 1, 6); cprintf("       <20>                   <20>          ");
 | 
			
		||||
        gotoxy( 1, 7); cprintf("     <20>                   <20>            ");
 | 
			
		||||
        gotoxy( 1, 8); cprintf("   <20>                   <20>              ");
 | 
			
		||||
        gotoxy( 1, 9); cprintf(" <20>                   <20>                ");
 | 
			
		||||
        gotoxy( 1,10); cprintf("                   <20>                  ");
 | 
			
		||||
        gotoxy( 1,11); cprintf("                 <20>                    ");
 | 
			
		||||
        gotoxy( 1,12); cprintf("               <20>                      ");
 | 
			
		||||
        gotoxy( 1,13); cprintf("             <20>                        ");
 | 
			
		||||
        gotoxy( 1,14); cprintf("           <20>                          ");
 | 
			
		||||
        gotoxy( 1,15); cprintf("         <20>                            ");
 | 
			
		||||
        gotoxy( 1,16); cprintf("       <20>                              ");
 | 
			
		||||
        gotoxy( 1,17); cprintf("     <20>                                ");
 | 
			
		||||
        gotoxy( 1,18); cprintf("   <20>                                  ");
 | 
			
		||||
        gotoxy( 1,19); cprintf(" <20>                                    ");
 | 
			
		||||
 | 
			
		||||
        textcolor(BLUE);
 | 
			
		||||
        gotoxy(54,12); cprintf("                          <20>");
 | 
			
		||||
        gotoxy(54,13); cprintf("                        <20>  ");
 | 
			
		||||
        gotoxy(54,14); cprintf("                      <20>    ");
 | 
			
		||||
        gotoxy(54,15); cprintf("                    <20>      ");
 | 
			
		||||
        gotoxy(54,16); cprintf("                  <20>        ");
 | 
			
		||||
        gotoxy(54,17); cprintf("                <20>          ");
 | 
			
		||||
        gotoxy(54,18); cprintf("              <20>            ");
 | 
			
		||||
        gotoxy(54,19); cprintf("            <20>              ");
 | 
			
		||||
        gotoxy(54,20); cprintf("          <20>                ");
 | 
			
		||||
        gotoxy(54,21); cprintf("        <20>                  ");
 | 
			
		||||
        gotoxy(54,22); cprintf("      <20>                   <20>");
 | 
			
		||||
        gotoxy(54,23); cprintf("    <20>                   <20>  ");
 | 
			
		||||
        gotoxy(54,24); cprintf("  <20>                   <20>    ");
 | 
			
		||||
        gotoxy(54,25); cprintf("<EFBFBD>                   <20>     ");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void premios(void)
 | 
			
		||||
{
 | 
			
		||||
        textcolor(WHITE);
 | 
			
		||||
        gotoxy(49, 1); cprintf("LXVI EDICION DE LOS OSCARS");
 | 
			
		||||
 | 
			
		||||
        textcolor(YELLOW);
 | 
			
		||||
        gotoxy(45, 3); cprintf("MEJOR PELICULA                      ");
 | 
			
		||||
        gotoxy(43, 4); cprintf("MEJOR DIRECTOR                        ");
 | 
			
		||||
        gotoxy(41, 5); cprintf("MEJOR ACTRIZ                            ");
 | 
			
		||||
        gotoxy(39, 6); cprintf("MEJOR ACTOR                               ");
 | 
			
		||||
        gotoxy(37, 7); cprintf("MEJOR ACTRIZ SECUNDARIA                     ");
 | 
			
		||||
        gotoxy(35, 8); cprintf("MEJOR ACTOR SECUNDARIO                        ");
 | 
			
		||||
        gotoxy(33, 9); cprintf("MEJOR PELICULA EXTRANJERA                       ");
 | 
			
		||||
        gotoxy(31,10); cprintf("MEJOR GUION ORIGINAL                              ");
 | 
			
		||||
        gotoxy(29,11); cprintf("MEJOR GUION ADAPTADO                                ");
 | 
			
		||||
        gotoxy(27,12); cprintf("MEJOR DIRECCION ARTISTICA                           ");
 | 
			
		||||
        gotoxy(25,13); cprintf("MEJOR SONIDO                                        ");
 | 
			
		||||
        gotoxy(23,14); cprintf("MEJOR MONTAJE                                       ");
 | 
			
		||||
        gotoxy(21,15); cprintf("MEJOR FOTOGRAFIA                                    ");
 | 
			
		||||
        gotoxy(19,16); cprintf("MEJOR EFECTOS DE SONIDO                             ");
 | 
			
		||||
        gotoxy(17,17); cprintf("MEJOR MUSICA ORIGINAL                               ");
 | 
			
		||||
        gotoxy(15,18); cprintf("MEJOR CANCION                                       ");
 | 
			
		||||
        gotoxy(13,19); cprintf("MEJOR VESTUARIO                                     ");
 | 
			
		||||
        gotoxy(11,20); cprintf("MEJOR EFECTOS VISUALES                              ");
 | 
			
		||||
        gotoxy( 9,21); cprintf("MEJOR MAQUILLAJE                                    ");
 | 
			
		||||
        gotoxy( 7,22); cprintf("MEJOR CORTO DE ANIMACION                            ");
 | 
			
		||||
        gotoxy( 5,23); cprintf("MEJOR CORTO DE ACCION EN VIVO                       ");
 | 
			
		||||
        gotoxy( 3,24); cprintf("MEJOR LARGOMETRAJE DOCUMENTAL                       ");
 | 
			
		||||
        gotoxy( 1,25); cprintf("MEJOR CORTO DOCUMENTAL                              ");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void premiados(void)
 | 
			
		||||
{
 | 
			
		||||
        textcolor(WHITE);
 | 
			
		||||
        switch(y_raton/8) {
 | 
			
		||||
          case  2: gotoxy(45, 3); cprintf("<EFBFBD>La lista de Schindler<65>             "); break;
 | 
			
		||||
          case  3: gotoxy(43, 4); cprintf("Spielberg, <20>La lista de Schindler<65>    "); break;
 | 
			
		||||
          case  4: gotoxy(41, 5); cprintf("Holly Hunter, <20>El Piano<6E>                "); break;
 | 
			
		||||
          case  5: gotoxy(39, 6); cprintf("Tom Hanks, <20>Philadelphia<69>                 "); break;
 | 
			
		||||
          case  6: gotoxy(37, 7); cprintf("Anna Paquin, <20>El Piano<6E>                     "); break;
 | 
			
		||||
          case  7: gotoxy(35, 8); cprintf("Tommy Lee Jones, <20>El Fugitivo<76>                "); break;
 | 
			
		||||
	  case  8: gotoxy(33, 9); cprintf("<EFBFBD>Belle <20>poque<75> (Espa<70>a), Fernando Trueba        "); break;
 | 
			
		||||
          case  9: gotoxy(31,10); cprintf("Jane Campion, <20>El Piano<6E>                          "); break;
 | 
			
		||||
          case 10: gotoxy(29,11); cprintf("Steven Zaillian, <20>La lista de Schindler<65>            "); break;
 | 
			
		||||
          case 11: gotoxy(27,12); cprintf("Allan Starski y Ewa Braun, <20>La lista de Schindler<65>  "); break;
 | 
			
		||||
          case 12: gotoxy(25,13); cprintf("<EFBFBD>Parque Jur<75>sico<63>                                   "); break;
 | 
			
		||||
          case 13: gotoxy(23,14); cprintf("Michael Kahn, <20>La lista de Schindler<65>               "); break;
 | 
			
		||||
          case 14: gotoxy(21,15); cprintf("Janusz Kaminski, <20>La lista de Schindler<65>            "); break;
 | 
			
		||||
          case 15: gotoxy(19,16); cprintf("<EFBFBD>Parque Jur<75>sico<63>                                   "); break;
 | 
			
		||||
          case 16: gotoxy(17,17); cprintf("John Williams, <20>La lista de Schindler<65>              "); break;
 | 
			
		||||
          case 17: gotoxy(15,18); cprintf("<EFBFBD>Streets of Philadelphia<69>, Bruce Springsteen        "); break;
 | 
			
		||||
          case 18: gotoxy(13,19); cprintf("Gabriella Pescucci, <20>La edad de la inocencia<69>       "); break;
 | 
			
		||||
          case 19: gotoxy(11,20); cprintf("<EFBFBD>Parque Jur<75>sico<63>                                   "); break;
 | 
			
		||||
          case 20: gotoxy( 9,21); cprintf("<EFBFBD>Sra. Doubtfire<72>                                    "); break;
 | 
			
		||||
          case 21: gotoxy( 7,22); cprintf("<EFBFBD>The wrong trousers<72>                                "); break;
 | 
			
		||||
          case 22: gotoxy( 5,23); cprintf("<EFBFBD>Schwarzfahrer<EFBFBD>                                     "); break;
 | 
			
		||||
          case 23: gotoxy( 3,24); cprintf("<EFBFBD>I am a promise:child. of Stanton Elementary School<6F>"); break;
 | 
			
		||||
          case 24: gotoxy( 1,25); cprintf("<EFBFBD>Defending our lives<65>                               "); break;
 | 
			
		||||
        }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user