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

📄 tc.lst

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 260   4                          cmd[1] = (char)i;
 261   4                          return 2;
 262   4                      }
 263   3      
 264   3                  case CMD_153_VRF_AUTH:
 265   3                      if(len != 10)
 266   3                      {
 267   4                          cmd[0] = ERRORCMDLEN;
 268   4                          return 1;
 269   4                      }
 270   3                      i = At153VerifyAuth(cmd+2);
 271   3                      if(i >= 0)
 272   3                      {
 273   4                          cmd[0] = SUCCESS;
 274   4                          cmd[1] = (unsigned char)i;
 275   4                          return 2;
 276   4                      }
 277   3                      else
 278   3                      {
 279   4                          cmd[0] = FAIL;
 280   4                          cmd[1] = (char)i;
 281   4                          return 2;
 282   4                      }
 283   3      
 284   3                  case CMD_153_WR_FUSE:
 285   3                      if(len != 3)
 286   3                      {
 287   4                          cmd[0] = ERRORCMDLEN;
 288   4                          return 1;
 289   4                      }
 290   3                      i = At153WriteFS(cmd[2]);
 291   3                      if(i >= 0)
 292   3                      {
 293   4                          cmd[0] = SUCCESS;
 294   4                          cmd[1] = (unsigned char)i;
 295   4                          return 2;
 296   4                      }
 297   3                      else
 298   3                      {
 299   4                          cmd[0] = FAIL;
 300   4                          cmd[1] = (char)i;
 301   4                          return 2;
 302   4                      }
C51 COMPILER V8.00   TC                                                                    04/23/2009 15:56:18 PAGE 6   

 303   3      
 304   3                  case CMD_153_RD_FUSE:
 305   3                      if(len != 2)
 306   3                      {
 307   4                          cmd[0] = ERRORCMDLEN;
 308   4                          return 1;
 309   4                      }
 310   3                      i = At153ReadFS();
 311   3                      if(i >= 0)
 312   3                      {
 313   4                          cmd[0] = SUCCESS;
 314   4                          cmd[1] = (unsigned char)i;
 315   4                          return 2;
 316   4                      }
 317   3                      else
 318   3                      {
 319   4                          cmd[0] = FAIL;
 320   4                          cmd[1] = (char)i;
 321   4                          return 2;
 322   4                      }
 323   3      
 324   3                  case CMD_SLE_RD_MMEM:       // UDP: Address
 325   3                      if(len != 3)
 326   3                      {
 327   4                          cmd[0] = ERRORCMDLEN;
 328   4                          return 1;
 329   4                      }
 330   3                      cmd[0] = SUCCESS;
 331   3                      return 1 + Sle4442ReadMainMem(cmd[2], cmd+1);
 332   3                      
 333   3                  case CMD_SLE_UPD_MMEM:      // UDP: address + data
 334   3                      if(len != 4)
 335   3                      {
 336   4                          cmd[0] = ERRORCMDLEN;
 337   4                          return 1;
 338   4                      }
 339   3                      Sle4442WriteMainMem(cmd[2], cmd[3]);
 340   3                      cmd[0] = SUCCESS;
 341   3                      return 1;
 342   3      
 343   3                  case CMD_SLE_RD_PMEM:       // UDP: NULL
 344   3                      if(len != 2)
 345   3                      {
 346   4                          cmd[0] = ERRORCMDLEN;
 347   4                          return 1;
 348   4                      }
 349   3                      Sle4442ReadProtectMem(cmd+1);
 350   3                      cmd[0] = SUCCESS;
 351   3                      return 5;
 352   3      
 353   3                  case CMD_SLE_UPD_PMEM:      // UDP: address + data
 354   3                      if(len != 4)
 355   3                      {
 356   4                          cmd[0] = ERRORCMDLEN;
 357   4                          return 1;
 358   4                      }
 359   3                      Sle4442WriteProtectMem(cmd[2], cmd[3]);
 360   3                      cmd[0] = SUCCESS;
 361   3                      return 1;
 362   3      
 363   3                  case CMD_SLE_RD_SMEM:       // UDP: NULL
 364   3                      if(len != 2)
C51 COMPILER V8.00   TC                                                                    04/23/2009 15:56:18 PAGE 7   

 365   3                      {
 366   4                          cmd[0] = ERRORCMDLEN;
 367   4                          return 1;
 368   4                      }
 369   3                      Sle4442ReadSecurityMem(cmd+1);
 370   3                      cmd[0] = SUCCESS;
 371   3                      return 5;
 372   3      
 373   3                  case CMD_SLE_UPD_SMEM:      // UDP: address + data
 374   3                      if(len != 4)
 375   3                      {
 376   4                          cmd[0] = ERRORCMDLEN;
 377   4                          return 1;
 378   4                      }
 379   3                      Sle4442WriteSecurityMem(cmd[2], cmd[3]);
 380   3                      cmd[0] = SUCCESS;
 381   3                      return 1;
 382   3      
 383   3                  case CMD_SLE_VERIFY:        // UDP: address + data
 384   3                      if(len != 4)
 385   3                      {
 386   4                          cmd[0] = ERRORCMDLEN;
 387   4                          return 1;
 388   4                      }
 389   3                      Sle4442Verify(cmd[2], cmd[3]);
 390   3                      cmd[0] = SUCCESS;
 391   3                      return 1;
 392   3      
 393   3                  case CMD_SLE_CMD:           // UDP: to be defined
 394   3      
 395   3                  default:
 396   3                      cmd[0] = ERRORCMD;
 397   3                      return 1;
 398   3              }
 399   2          }
 400   1          else
 401   1          {
 402   2              cmd[0] = ERRORCMD;
 403   2              return 1;
 404   2          }
 405   1      }
 406          
 407          // check if a card is inserted into the slot and beep and led
 408          // and send notice to host
 409          void CardSlot(void)
 410          {
 411   1          static bit fCardIn = 0;
 412   1          unsigned char buf[3];
 413   1          static unsigned char cnt = 0;
 414   1      
 415   1          // todo: check overload
 416   1          if(IccUserOverLoad())
 417   1          {
 418   2              // todo: notice host ?
 419   2              // power off
 420   2              IccUserPower(0);
 421   2              // eject card
 422   2              IccUserEject();
 423   2              // beep
 424   2              beep(10, 5);
 425   2              // notice host
 426   2              #ifdef TCOVERLOAD
C51 COMPILER V8.00   TC                                                                    04/23/2009 15:56:18 PAGE 8   

 427   2              buf[0] = TCOVERLOAD;
 428   2              CommSend(buf, 1);
 429   2              #endif
 430   2          }
 431   1      
 432   1          if(IccUserTest())
 433   1          {
 434   2              if(!fCardIn)
 435   2              {
 436   3                  fCardIn = 1;
 437   3                  // starttime = GetTickCount();
 438   3      
 439   3                  if(fTCBeep)
 440   3                  {
 441   4                      beep(2, 10);
 442   4                  }
 443   3      
 444   3                  CardLed(0, 1);
 445   3      
 446   3                  // 通知主机有卡
 447   3                  if(fNotice)
 448   3                  {
 449   4                      buf[0] = TCARD;
 450   4                      buf[1] = 1;
 451   4      
 452   4                      if(!fStopOnACK)
 453   4                      {
 454   5                          CommSendNotWaitAck(buf, 2);       ///////////////////////////////////////////
 455   5                          WaitCmdTime = GetTickCount();
 456   5                          fWaitCmd = 1;
 457   5                      }
 458   4                      else if(!CommSend(buf, 2))
 459   4                      {
 460   5                          fCardIn = 0;
 461   5                          CardLed(0, 0);
 462   5                          cnt ++;
 463   5      
 464   5                          // if 3 times host no response, eject card
 465   5                          if(cnt > 3)
 466   5                          {
 467   6                              IccUserEject();
 468   6                              beep(3, 25);
 469   6                          }
 470   5                      }
 471   4                  }
 472   3              }
 473   2          }
 474   1          else
 475   1          {
 476   2              cnt = 0;
 477   2              if(fCardIn)
 478   2              {
 479   3                  fCardIn = 0;
 480   3      
 481   3                  if(fTCBeep)
 482   3                  {
 483   4                      beep(1, 40);
 484   4                  }
 485   3      
 486   3                  CardLed(0, 0);
 487   3      
 488   3                  if(fNotice)
C51 COMPILER V8.00   TC                                                                    04/23/2009 15:56:18 PAGE 9   

 489   3                  {
 490   4                      buf[0] = TCARD;
 491   4                      buf[1] = 0;
 492   4      
 493   4                      #if 1
 494   4                      CommSendNotWaitAck(buf, 2); //////////////////////////////////////
 495   4                      #else
                              CommSend(buf, 2);
                              #endif
 498   4                  }
 499   3              }
 500   2          }
 501   1      
 502   1          if(fWaitCmd)
 503   1          {
 504   2              if(GetTickCount() - WaitCmdTime >= 1000)
 505   2              {
 506   3                  fCardIn = 0;
 507   3                  fWaitCmd = 0;
 508   3                  IccUserEject();
 509   3                  beep(3, 25);
 510   3              }
 511   2          }
 512   1      }
 513          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2410    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =      3      11
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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