Diff for /ADD_ver_10/Attic/GUI.c between versions 1.1 and 1.2

version 1.1, 2006/01/19 17:16:29 version 1.2, 2006/02/15 13:00:30
Line 22 Line 22
 /*                                                                  */  /*                                                                  */
 /*  --------------------------- History --------------------------- */  /*  --------------------------- History --------------------------- */
 /*                                                                  */  /*                                                                  */
   /*  Revision 1.3. 02/2006                                           */
   /*  Improve interactive presentation in screen                      */
   /*                                                                  */
 /*  Revision 1.2. 01/2006                                           */  /*  Revision 1.2. 01/2006                                           */
 /*  Added GPL License and JavaDoc style documentation               */  /*  Added GPL License and JavaDoc style documentation               */
 /*                                                                  */  /*                                                                  */
Line 30 Line 33
 /*                                                                  */  /*                                                                  */
 /********************************************************************/  /********************************************************************/
   
   
 /******************************************************************************/  /******************************************************************************/
 /* MÓDULO: GUI.c                                                              */  /* MÓDULO: GUI.c                                                              */
 /*                                                                            */  /*                                                                            */
Line 41 Line 43
   
 #include <stdio.h>  #include <stdio.h>
 #include <string.h>  #include <string.h>
   #include <time.h>
   
 #include "defines.h"  #include "defines.h"
 #include "tipos.h"  #include "tipos.h"
Line 54  extern struct argumentos configuracion; Line 57  extern struct argumentos configuracion;
 extern unsigned long instruccion, ventana;  extern unsigned long instruccion, ventana;
   
   
   /* esta función presenta en la pantalla información acerca del análisis en curso */
   void PresentarConfiguracionPantalla()
   {
       /* información sobre origen de datos y rango a procesar */
       printf("Procesando %s en '%s' (rango %2.2f%% desde %2.2f%%)\n\n", 
               configuracion.origen==TRAZA ? "traza":"secuencia", 
               configuracion.ficherodatos, 
               configuracion.rango,
               configuracion.comienzo);
   
       /* información sobre el tamaño de la ventana de instrucciones */
       printf("Tamaño de la ventana = %d instrucciones\n\n", configuracion.ventana);
       
       /* información sobre las contribuciones a tener en cuenta en */ 
       /* la composición de dependencias de datos */
       printf("Mapa de composción de dependencias:\n");
       printf("(T A O) (E I) (D A S C)\n");
   
       printf("(%c %c %c) (%c %c) (%c %c %c %c)", 
           configuracion.verdaderas==SI ? 'x':'o',
           configuracion.antidependencias==SI ? 'x':'o',
           configuracion.salida==SI ? 'x':'o',
           configuracion.explicitos==SI ? 'x':'o',
           configuracion.implicitos==SI ? 'x':'o',
           configuracion.datos==SI ? 'x':'o',
           configuracion.direcciones==SI ? 'x':'o',
           configuracion.pila==SI ? 'x':'o',
           configuracion.cc==SI ? 'x':'o');
   
       printf("\n\n");
   }
   
   
   /* esta función muestra información acerca del procesamiento en curso */
   
   void MostrarCabecera()
   {
       if(configuracion.origen != CADENAHEX)
       {
           printf("ADD 5.10 --Analizador de Dependencias de Datos--\n\n");
           
           /*
           printf("Procesando %s en '%s' (rango %2.2f%%)\n\n", 
               configuracion.origen==TRAZA ? "traza":"secuencia", 
               configuracion.ficherodatos, 
               configuracion.rango);
           */
   
           PresentarConfiguracionPantalla();
       }
   }
   
   
   /* esta función muestra el estado de procesamiento */
   
   void PresentarEstadoProcesamiento(unsigned long total, unsigned long encurso)
   {
       time_t tiempo;
       struct tm *ptr_tm;
       char fechahora[40];
   
       static char paso25;   /* flags para indicar estado de procesamiento */
       static char paso50;
       static char paso75;
   
       /* inicializo los flags la primera vez */
       if(encurso == 1) {paso25=SI; paso50=SI; paso75=SI;}
       
       if(paso75==SI)
       {
           if(paso50==SI)
           {
               if(paso25==SI)
               {
                   if(((double)encurso/total) > 0.25) 
                   {
                       /* fecha y hora */
                       tiempo = time(NULL);
                       ptr_tm = localtime(&tiempo);
                       strftime(fechahora, MAX_LINE, "%d/%m/%y %H:%M", ptr_tm);
                       printf("Completado el 25%%  [%s]\n", fechahora);
                       paso25=NO;
                   }
               }
               else
               {
                   if(((double)encurso/total) > 0.50) 
                   {
                       /* fecha y hora */
                       tiempo = time(NULL);
                       ptr_tm = localtime(&tiempo);
                       strftime(fechahora, MAX_LINE, "%d/%m/%y %H:%M", ptr_tm);
                       printf("Completado el 50%%  [%s]\n", fechahora);
                       paso50=NO;
                   }
               }
           }
           else
           {
               if(((double)encurso/total) > 0.75) 
               {
                   /* fecha y hora */
                   tiempo = time(NULL);
                   ptr_tm = localtime(&tiempo);
                   strftime(fechahora, MAX_LINE, "%d/%m/%y %H:%M", ptr_tm);
                   printf("Completado el 75%%  [%s]\n", fechahora);
                   paso75=NO;
               }
           }
       }
   }
   
   
 /* esta función muestra en la pantalla la información de la tarjeta de operandos */  /* esta función muestra en la pantalla la información de la tarjeta de operandos */
   
 void MostrarTarjeta(fichainstruccion *tarjetaoperandos)  void MostrarTarjeta(fichainstruccion *tarjetaoperandos)
 {  {
         /* imprimo la tarjeta de la instrucción para ver si funciona bien */      /* imprimo la tarjeta de la instrucción para ver si funciona bien */
           
         int i;      int i;
         unsigned long total;      unsigned long total;
         char cadena[MAX_LINE];      char cadena[MAX_LINE];
   
     /* todo esto no funciona aquí */      /* todo esto no funciona aquí */
     /* printf("\x01B[2J"); */   /* código de escape ANSI para borrar la pantalla */      /* printf("\x01B[2J"); */   /* código de escape ANSI para borrar la pantalla */
Line 71  void MostrarTarjeta(fichainstruccion *ta Line 187  void MostrarTarjeta(fichainstruccion *ta
     /* printf("\033[2J");  */       /* printf("\033[2J");  */ 
   
     printf("\n");      printf("\n");
         total = configuracion.ultima - configuracion.primera + 1;      total = configuracion.ultima - configuracion.primera + 1;
         i = printf("-| instruccion %lu de %lu (%.2f%%) |", instruccion, total, 100.00*instruccion/total);      i = printf("-| instruccion %lu de %lu (%.2f%%) |", instruccion, total, 100.00*instruccion/total);
         /* parece que '.2' redondea algo hacia arriba (llegamos al 100% cuando estamos en 99.99%) */      /* parece que '.2' redondea algo hacia arriba (llegamos al 100% cuando estamos en 99.99%) */
         i += printf("-| ventana %lu de %lu (%d ins/ven) |", ventana, total/configuracion.ventana, configuracion.ventana);      i += printf("-| ventana %lu de %lu (%d ins/ven) |", ventana, total/configuracion.ventana, configuracion.ventana);
     for(i; i<80; i++) printf("-");      for(i; i<80; i++) printf("-");
   
     printf("%-14s  ", tarjetaoperandos->hexadecimal);      printf("%-14s  ", tarjetaoperandos->hexadecimal);
   
     /* formato de instrucción (notación de INTEL) */      /* formato de instrucción (notación de INTEL) */
     /*      /*
         printf("%s%s", tarjetaoperandos->prefijo, tarjetaoperandos->prefijo[0]!='\0' ? " ":"");      printf("%s%s", tarjetaoperandos->prefijo, tarjetaoperandos->prefijo[0]!='\0' ? " ":"");
   
     printf("%s", tarjetaoperandos->nemonico);      printf("%s", tarjetaoperandos->nemonico);
     printf("%s%s", tarjetaoperandos->op1[0]!='\0' ? " ":"", tarjetaoperandos->op1);      printf("%s%s", tarjetaoperandos->op1[0]!='\0' ? " ":"", tarjetaoperandos->op1);
     printf("%s%s%s", (tarjetaoperandos->op1[0]!='\0' && tarjetaoperandos->op2[0]!='\0') ? ",":"", tarjetaoperandos->op2[0]!='\0' ? " ":"", tarjetaoperandos->op2);      printf("%s%s%s", (tarjetaoperandos->op1[0]!='\0' && tarjetaoperandos->op2[0]!='\0') ? ",":"", tarjetaoperandos->op2[0]!='\0' ? " ":"", tarjetaoperandos->op2);
         */      */
         /* igual con la función del módulo 'Auxiliares.c' */      /* igual con la función del módulo 'Auxiliares.c' */
         CadenaEnsamblador(tarjetaoperandos->prefijo, tarjetaoperandos->nemonico, tarjetaoperandos->op1, tarjetaoperandos->op2, INTEL, cadena);      CadenaEnsamblador(tarjetaoperandos->prefijo, tarjetaoperandos->nemonico, tarjetaoperandos->op1, tarjetaoperandos->op2, INTEL, cadena);
         printf("%s", cadena);      printf("%s", cadena);
   
     printf("   ");      printf("   ");
           
     printf("(long:%d", tarjetaoperandos->longitud);      printf("(long:%d", tarjetaoperandos->longitud);
         switch(tarjetaoperandos->salto)      switch(tarjetaoperandos->salto)
         {      {
                 case INCONDICIONAL:          case INCONDICIONAL:
                 printf(" salto:INCONDICIONAL");          printf(" salto:INCONDICIONAL");
                 break;          break;
   
                 case NO_SALTO:          case NO_SALTO:
                 printf(" salto:NO SALTO");          printf(" salto:NO SALTO");
                 break;          break;
   
                 case TOMADO:          case TOMADO:
                 printf(" salto:TOMADO");          printf(" salto:TOMADO");
                 break;          break;
   
                 case NOTOMADO:          case NOTOMADO:
                 printf(" salto:NO TOMADO");          printf(" salto:NO TOMADO");
                 break;          break;
         }      }
   
         printf(" ALU=%d", tarjetaoperandos->ciclosALU);      printf(" ALU=%d", tarjetaoperandos->ciclosALU);
     printf(" BIU=%d)\n", tarjetaoperandos->ciclosBIU);      printf(" BIU=%d)\n", tarjetaoperandos->ciclosBIU);
   
     printf("\nExpl leido datos:    %s", tarjetaoperandos->leidoexpldatos);      printf("\nExpl leido datos:    %s", tarjetaoperandos->leidoexpldatos);
Line 135  void MostrarTarjeta(fichainstruccion *ta Line 251  void MostrarTarjeta(fichainstruccion *ta
   
     printf("\n");      printf("\n");
   
         getchar();      getchar();
 }  }
   
   
Line 144  void MostrarTarjeta(fichainstruccion *ta Line 260  void MostrarTarjeta(fichainstruccion *ta
   
 void MostrarVentana()  void MostrarVentana()
 {  {
         printf("\nEsta función no ha sido implementada\n");      printf("\nEsta función no ha sido implementada\n");
 }  }
   
   

Removed from v.1.1  
changed lines
  Added in v.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>