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

📄 ghdd.lst

📁 dvr
💻 LST
📖 第 1 页 / 共 2 页
字号:
 177   1      /*#ifdef DEBUG_NO_HDD
 178   1              return HDD_ERRCODE_NO_HDD;
C51 COMPILER V7.50   GHDD                                                                  12/14/2005 10:05:11 PAGE 4   

 179   1      #endif*/
 180   1      
 181   1      #ifdef PWRCV2
 182   1              Val_EPROM_DISKID = EPROM_SetUp_data_Read(EPROM_DISKID);
 183   1              /*#ifdef DEBUG_PWRCV2
 184   1              printf("\n\n\rHDD_Init: EPROM-DiskId=%02x", (u16)Val_EPROM_DISKID);
 185   1              #endif*/
 186   1      #endif
 187   1      
 188   1              for (j = 0; j < 2; j++)
 189   1              {
 190   2                      dsp_offset++;
 191   2                      osd_printf(10,dsp_offset,6,hdd_id_str[j]);
 192   2                      osd_printf(24,dsp_offset,3,"...");
 193   2      
 194   2      #ifdef DEBUG_MHDD_ONLY
                              if(j==0)
                              {
                                      if(!hdd_select(j))                      
                                              goto HDD_NOT_DETECTED;
                              }
                              else
                              {
                                      goto HDD_NOT_DETECTED;
                              }
              #else           
 205   2                      if(!hdd_select(j))                      goto HDD_NOT_DETECTED;
 206   2      #endif          
 207   2      
 208   2                      if(!hdd_wait_busy_free())       goto HDD_NOT_DETECTED;
 209   2                      
 210   2                      if(!hdd_wait_dev_ready())       goto HDD_NOT_DETECTED;
 211   2      
 212   2                      HDD_DEVICE_CONTROL = HDD_INT_DISABLE;
 213   2      
 214   2                      hdd_sector_set(j, 0, HDD_SECT_CNT_SZ8);
 215   2      
 216   2                      hdd_cmd(j, HDD_SET_MULTIPLE_MODE);
 217   2                      
 218   2              if(!hdd_wait_dev_ready())       goto HDD_NOT_DETECTED;
 219   2                      
 220   2                      hdd_cmd(j, HDD_IDENTIFY_DEVICE);
 221   2                      i = HDD_STATUS;
 222   2      
 223   2                      if(!hdd_wait_rw_ready())        goto HDD_NOT_DETECTED;
 224   2                      if(!hdd_wait_busy_free())       goto HDD_NOT_DETECTED;
 225   2                              
 226   2                      goto HDD_DETECTED;
 227   2      
 228   2      HDD_NOT_DETECTED:
 229   2      
 230   2      #ifdef FONT_SC
 231   2                      osd_printf(24,dsp_offset,6,"[Xrs] ");//礚祑絃
 232   2      #else
                              osd_printf(24,dsp_offset,6,"[NONE]");
              #endif
 235   2                      continue;
 236   2      
 237   2      HDD_DETECTED:
 238   2              
 239   2                      // get hdd size
 240   2                      for (i = 0; i <= 255; i++)
C51 COMPILER V7.50   GHDD                                                                  12/14/2005 10:05:11 PAGE 5   

 241   2                      {
 242   3                              tdata_l = READ_HDD_LOW_DATA;                      //XBYTE[0x80A8]
 243   3                              tdata   = READ_HDD_HIGH_DATA;                     //XBYTE[0x80E8]
 244   3      
 245   3                              // Reading HDD Model Number
 246   3                              if (i > 26 && i < 39)
 247   3                              {
 248   4                                  // pick 24 characters
 249   4                                      model[(i - 27) * 2 + 0] = tdata;              //0, 2, 4, 6, 8,.....22
 250   4                                      model[(i - 27) * 2 + 1] = tdata_l;            //1, 3, 5, 7, 9,.....23
 251   4                              }
 252   3      
 253   3                  // store 32 bit HDD capacity info
 254   3                              tdata   = (tdata<<8) | tdata_l;
 255   3      
 256   3                              #ifdef DEBUG_IDENTIFY_HDD
                                      printf("\n\r %04d: %04x", (u16)i, (u16)tdata);
                                      #endif
 259   3      
 260   3                              // Reading 48 bit addressing feature bits
 261   3                              if (i == 83)
 262   3                              {
 263   4                                      gv_HDD_48bit_address[j] = 0;
 264   4      
 265   4                                      if (tdata & 0x0400)
 266   4                                      {
 267   5                                              gv_HDD_48bit_address[j] = 1;
 268   5                                              
 269   5                                              #ifdef DEBUG_ATA6                                       
                                                      printf("\n\r ATA-6 HDD [%d]", (int)j);
                                                      #endif
 272   5                                      }
 273   4                              }
 274   3      
 275   3                              // Reading HDD capacity
 276   3                              if (gv_HDD_48bit_address[j] == 0)
 277   3                              {
 278   4                                  // under 137GB
 279   4                                      if (i == 60)
 280   4                                              gv_HDD_LastLBA[j] = tdata;
 281   4      
 282   4                                      if (i == 61)
 283   4                                      {
 284   5                                              temp = tdata;   
 285   5                                              temp = temp << 16;
 286   5                                              gv_HDD_LastLBA[j] = (0x0000FFFF & gv_HDD_LastLBA[j]) | (0xFFFF0000 & temp);
 287   5                                      }
 288   4                              }
 289   3                              else
 290   3                              { 
 291   4                                  // over 137GB
 292   4                                      if (i == 100)
 293   4                                              gv_HDD_LastLBA[j] = tdata;
 294   4                                      if (i == 101)   
 295   4                                      {
 296   5                                              temp = tdata;
 297   5                                              temp = temp << 16;
 298   5                                              gv_HDD_LastLBA[j] = (0x0000ffff & gv_HDD_LastLBA[j]) | (0xffff0000 & temp);
 299   5                                      }
 300   4                              }
 301   3                      } // Get HDD Size
 302   2                      gv_HDD_exist[j] = 1;
C51 COMPILER V7.50   GHDD                                                                  12/14/2005 10:05:11 PAGE 6   

 303   2                      
 304   2      #ifdef DEBUG_HDD_DUMP           
                              gv_HDD_NumOfLBA[j] = gv_HDD_LastLBA[j];
              #endif  
 307   2              
 308   2                      // make it align to 8
 309   2                      for (i = 0; i < 16; i++)
 310   2                      {
 311   3                              if ((gv_HDD_LastLBA[j] % 8) == 0)
 312   3                                      break;
 313   3      
 314   3      #ifdef DEBUG_HDD_ALIGN
                                      printf("\n\r.");
              #endif
 317   3                              gv_HDD_LastLBA[j]--;
 318   3                      }
 319   2      
 320   2                      gv_HDD_LastLBA[j]--;    // make it last addressable LBA. 
 321   2                      
 322   2      #if defined(DEBUG_HDD_REPORT) || defined(DEBUG_HDD_DUMP)
                              printf("\n\rHDD MODEL     = %s", model);
                              printf("\n\rHDD LastLBA-1 = %lu LBA [%lu MB]", gv_HDD_LastLBA[j]+1, (gv_HDD_LastLBA[j]+1)/(u32)1953);
              #endif          
 326   2      
 327   2                      gv_hdd_count++;
 328   2      #ifdef FONT_SC
 329   2                      osd_printf(24,dsp_offset,6,"[rsBC]");//祑絃絋粄
 330   2      #else
                              osd_printf(24,dsp_offset,1,"[");
                              osd_printf(26,dsp_offset,18,model);
                              osd_printf(62,dsp_offset,1,"]");
              #endif
 335   2                      
 336   2                      // if there's no signature                      
 337   2                      i = hdd_check_signature(j, 0);
 338   2      //              i = 2;  //for debug FONT_SC
 339   2                      if (i != 0)// incorrect signature or incorrect HDD_FORMAT_VER
 340   2                      {
 341   3                              // format the hard drive & put signature
 342   3                              //osd_printf(23,dsp_offset++,24,"New HDD Format Completed");
 343   3                              if(i==1) // Invalid signature
 344   3      #ifdef FONT_SC
 345   3                                      osd_printf(64,dsp_offset++,4,"-[z]");//穝
 346   3      #else
                                              osd_printf(64,dsp_offset++,4,"-NEW");
              #endif
 349   3                              else if(i==2)// Invalid HDD_FORMAT_VER
 350   3      #ifdef FONT_SC                                              //123456789012345678901234567890
 351   3                                      osd_printf(64,dsp_offset++,5,"-[A] ");//侣
 352   3      #else
                                              osd_printf(64,dsp_offset++,5,"-USED");
              #endif
 355   3                              else;
 356   3                              //osd_printf(14,dsp_offset++,17,"INCOMPATIBLE HDD!");
 357   3      #ifdef FONT_SC
 358   3                                                              //12345678901234567890
 359   3                              osd_printf(14, dsp_offset++, 18, "R S r s $ Q!!.....");//

⌨️ 快捷键说明

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