home *** CD-ROM | disk | FTP | other *** search
/ FreeWare Collection 3 / FreeSoftwareCollection3pd199x-jp.img / pao / ms_dos / swatch / src / tsw.c < prev    next >
Text File  |  1980-01-02  |  2KB  |  114 lines

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <process.h>
  5.  
  6. #define        TRUE        1
  7. #define        FALSE        0
  8. #define        ZERO        0
  9.  
  10. #define        MODE        1        /*  MODE : 1 - インターバルタイマ ; 2 - VSYNC    */
  11.  
  12. extern    int23_init() ;
  13. extern    int23_release() ;
  14.  
  15. extern    ITcount ;
  16. extern    int ITIMER_init() ;
  17. extern    int ITIMER_release() ;
  18.  
  19. extern    Vcount ;
  20. extern    int VSYNC_init( void ) ;
  21. extern    int VSYNC_release( void ) ;
  22.  
  23. void main( int ac, char *av[] )
  24. {
  25.     int        c ;
  26.     unsigned int    secph, sec, min, hour ;
  27.     char    cmdline[128] ;
  28.     unsigned short    count ;
  29.  
  30.     printf("TSW.EXE  v0.50  (c) パオパオ 1990.            ") ;
  31.     printf("<< Copyright (C) Y.Hirata 1990. >>\n") ;
  32.  
  33.     if ( ac < 2 ) {
  34.         printf("\nプログラム実行速度計測プログラム(インターバルタイマ使用)\n") ;
  35.         printf("使用方法 : TSW  プログラム名  引数 ・・・・・\n") ;
  36.         exit( 1 ) ;
  37.     }
  38.  
  39.     int23_init() ;
  40.  
  41. /*
  42. **    インターバルタイマによる測定
  43. */
  44. #if MODE == 1
  45.     ITcount = 0 ;
  46.     ITIMER_init() ;
  47.  
  48.     strcpy( cmdline,"command /c" ) ;
  49.     for ( c=1; c<ac; c++ ) {
  50.         strcat( cmdline," " ) ;
  51.         strcat( cmdline,av[c] ) ;
  52.     }
  53.     strcat( cmdline,NULL ) ;
  54.  
  55.     ITcount = 0 ;
  56.     system( cmdline ) ;
  57.     count = ITcount ;
  58.  
  59.     ITIMER_release() ;
  60.  
  61.     secph = count % 100 ;
  62.     sec   = count / 100 ;
  63.     min   = sec / 60 ;
  64.     hour  = min / 60 ;
  65.     sec   %= 60 ;
  66.     min   %= 60 ;
  67.     
  68.     printf("\n\x1b[33m") ;
  69.     printf("elaps time : %02d:%02d:%02d.%02d ( Interval-Timer Count:%d )\x1b[m\n",hour,min,sec,secph,count) ;
  70.  
  71. #endif
  72.  
  73. /*
  74. **    VSYNC による測定
  75. */
  76. #if MODE == 2
  77.     Vcount = 0 ;
  78.     VSYNC_init() ;
  79.  
  80.     strcpy( cmdline,"command /c" ) ;
  81.     for ( c=1; c<ac; c++ ) {
  82.         strcat( cmdline," " ) ;
  83.         strcat( cmdline,av[c] ) ;
  84.     }
  85.     strcat( cmdline,NULL ) ;
  86.  
  87.     Vcount = 0 ;
  88.     system( cmdline ) ;
  89.     count = Vcount ;
  90.  
  91.     VSYNC_release() ;
  92.  
  93.     secph = ((count%60)*1000) / 60 ;
  94.     /*        四捨五入    */
  95.     if ( secph % 10 < 5 )
  96.         secph /= 10 ;
  97.     else
  98.         secph = secph / 10 + 1 ;
  99.     sec   = count / 60 ;
  100.     min   = sec / 60 ;
  101.     hour  = min / 60 ;
  102.     sec   %= 60 ;
  103.     min   %= 60 ;
  104.  
  105.     printf("\n\x1b[33m") ;
  106.     printf("elaps time : %02d:%02d:%02d.%02d ( VSYNC Count:%d )\x1b[m\n",hour,min,sec,secph,count) ;
  107.  
  108. #endif
  109.  
  110.     int23_release() ;
  111.  
  112. }
  113.  
  114.