⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gsearch.lst

📁 dvr
💻 LST
字号:
C51 COMPILER V7.50   GSEARCH                                                               12/14/2005 10:05:33 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE GSEARCH
OBJECT MODULE PLACED IN .\OBJ\gsearch.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE gsearch.c LARGE OPTIMIZE(9,SIZE) BROWSE PRINT(.\LST\gsearch.lst) OBJECT(.\O
                    -BJ\gsearch.obj)

line level    source

   1          /*
   2          ********************************************************************************
   3          *
   4          * (c) Copyright 2002, Vineyard Technologies, Inc.
   5          *
   6          * Filename : gsearch.c
   7          * Programmer(s): Steve KyeongHyeon Lee
   8          * Created : 2003/05/07
   9          * Modified :
  10          *
  11          * Description : 
  12          ********************************************************************************
  13          */
  14          #include "types.h"
  15          
  16          #include <stdio.h>                       /* standard I/O .h-file              */
  17          #include "eprom.h"
  18          #include "ghdd.h"
  19          #include "gio.h"
  20          #include "gsearch.h"
  21          #include "lib.h"
  22          
  23          //######################################################################
  24          //
  25          //######################################################################
  26          extern xdata u8 gv_time_data[6];
  27          
  28          //######################################################################
  29          //
  30          //######################################################################
  31          #define REW_TIME 100
  32          
  33          //######################################################################
  34          //
  35          //######################################################################
  36          
  37          //===============================================================================
  38          //
  39          //===============================================================================
  40          u32 mktime(u8 timedate[])
  41          {
  42   1              xdata u32 year;
  43   1              xdata char mon;
  44   1      
  45   1              year = timedate[5]+2000;
  46   1              mon  = timedate[4];
  47   1      
  48   1              if (0 >= (int)(mon -= 2))
  49   1              {
  50   2                      mon += 12;
  51   2                      year -= 1;
  52   2              }
  53   1         return (((u32) (year/4 - year/100 + year/400 + 367*mon/12 + timedate[3] +
  54   1                year*365 - 719499)
C51 COMPILER V7.50   GSEARCH                                                               12/14/2005 10:05:33 PAGE 2   

  55   1                *24 + timedate[2])
  56   1                *60 + timedate[1])
  57   1                *60 + timedate[0]; 
  58   1      }
  59          
  60          //===============================================================================
  61          //
  62          //===============================================================================
  63          u8 check_range(u32 srcTime, u8 hddIndex, u32 startLBA, u32 endLBA)
  64          {
  65   1              xdata u8 i;
  66   1              xdata u32 stTime, edTime;
  67   1              
  68   1              u32 curLBA;
  69   1      
  70   1      #ifdef DEBUG_SEARCH_BLOCK
                      printf("\n\rcheck_range:");
              #endif
  73   1      
  74   1              HDD_Search_LBA(hddIndex,startLBA);
  75   1              stTime = mktime(gv_time_data);
  76   1      
  77   1      #ifdef DEBUG_SEARCH_BLOCK
                      printf("\n\r [%lu] %lu ", startLBA, stTime);    disp_time(gv_time_data);
              #endif
  80   1      
  81   1              HDD_Search_LBA(hddIndex,endLBA);
  82   1              edTime = mktime(gv_time_data);
  83   1              
  84   1      #ifdef DEBUG_SEARCH_BLOCK
                      printf("\n\r~[%lu] %lu ", endLBA, edTime);      disp_time(gv_time_data);
              #endif
  87   1              
  88   1      
  89   1              if(     (srcTime >= stTime)&&
  90   1                      (srcTime <= edTime))
  91   1              {
  92   2                      gv_HDD_play_hdd_index = hddIndex;
  93   2                      
  94   2                      for(i=0; i<20;i++)
  95   2                      {
  96   3                              curLBA = startLBA + ((float)(endLBA-startLBA))/2;
  97   3                              HDD_Search_LBA(hddIndex,curLBA);
  98   3                              stTime = mktime(gv_time_data);
  99   3      
 100   3      #ifdef DEBUG_SEARCH_BLOCK
                      printf("\n\r <%lu> %lu ", curLBA, stTime);      disp_time(gv_time_data);
              #endif
 103   3                              if(srcTime == stTime)
 104   3                              {
 105   4                                      gv_RCurrent_LBA[gv_HDD_play_hdd_index] = curLBA;
 106   4                                      break;
 107   4                              }
 108   3                              else if(srcTime < stTime)
 109   3                              {
 110   4                                      endLBA = curLBA;
 111   4                                      gv_RCurrent_LBA[gv_HDD_play_hdd_index] = curLBA;
 112   4                              }
 113   3                              else if(srcTime > stTime)
 114   3                              {
 115   4                                      startLBA = curLBA;
 116   4                                      gv_RCurrent_LBA[gv_HDD_play_hdd_index] = startLBA;
C51 COMPILER V7.50   GSEARCH                                                               12/14/2005 10:05:33 PAGE 3   

 117   4                              }
 118   3                      }
 119   2      
 120   2      #ifdef DEBUG_SEARCH_BLOCK
                              printf("\n\rFound target LBA");
              #endif
 123   2                      return 1;       
 124   2              }
 125   1              
 126   1      #ifdef DEBUG_SEARCH_BLOCK
                      printf("\n\rFail to find target LBA");
              #endif
 129   1      
 130   1              return 0;
 131   1      }
 132          
 133          //===============================================================================
 134          //
 135          //===============================================================================
 136          u8 search_block()
 137          {
 138   1              xdata u32       src_time;
 139   1              //xdata u8      tempWrappingFlag;
 140   1              //xdata u32     tempWCurrentLBA;
 141   1              
 142   1              dv03_enable();
 143   1      #ifdef DEBUG_SEARCH_BLOCK
                      printf("\n\rTarget time: "); disp_time(gv_time_data);
              #endif
 146   1              
 147   1              src_time = mktime(gv_time_data);        // user input time from TIME_SEARCH_input() // [AVH]
 148   1                 
 149   1              // check master top ~ wp-1
 150   1              if(gv_WCurrent_LBA[gv_HDD_play_hdd_index]>1) 
 151   1              {
 152   2                      if(     check_range(
 153   2                                      src_time,
 154   2                                      gv_HDD_play_hdd_index,
 155   2                                      HDD_TOP,
 156   2                                      (gv_WCurrent_LBA[gv_HDD_play_hdd_index]-1)
 157   2                                      )
 158   2                              )// if hit
 159   2                      {
 160   3                              return 1;
 161   3                      }
 162   2              }
 163   1      
 164   1              if(Val_EPROM_WRAPPING_FLAG[gv_HDD_play_hdd_index]) 
 165   1              {       // if hdd full
 166   2                      if(gv_WCurrent_LBA[gv_HDD_play_hdd_index]<gv_HDD_size[gv_HDD_play_hdd_index])
 167   2                      {
 168   3                              if(     check_range(
 169   3                                              src_time,
 170   3                                              gv_HDD_play_hdd_index,
 171   3                                              gv_WCurrent_LBA[gv_HDD_play_hdd_index],
 172   3                                              (gv_HDD_size[gv_HDD_play_hdd_index]-1)
 173   3                                              )
 174   3                                      )// if hit
 175   3                              {
 176   4                                      return 1;
 177   4                              }
 178   3                      }
C51 COMPILER V7.50   GSEARCH                                                               12/14/2005 10:05:33 PAGE 4   

 179   2              }
 180   1              return 0;
 181   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    917    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----      38
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -