?? mifare1.ls1
字號(hào):
0096 C200 F 661 CLR ?CardLed?BIT+01H
0098 120000 F 662 LCALL CardLed
663 ;
664 ; cnt ++;
665 ; SOURCE LINE # 107
009B 900000 F 666 MOV DPTR,#cnt?144
009E E0 667 MOVX A,@DPTR
009F 04 668 INC A
00A0 F0 669 MOVX @DPTR,A
670 ; // if 3 times host no response, beep to notice customer
671 ; if(cnt > 3)
672 ; SOURCE LINE # 109
00A1 E0 673 MOVX A,@DPTR
00A2 D3 674 SETB C
00A3 9403 675 SUBB A,#03H
00A5 4040 676 JC ?C0004
677 ; {
678 ; SOURCE LINE # 110
679 ; cnt = 0;
680 ; SOURCE LINE # 111
00A7 E4 681 CLR A
00A8 F0 682 MOVX @DPTR,A
683 ; beep(3, 25);
684 ; SOURCE LINE # 112
00A9 7D19 685 MOV R5,#019H
00AB 7F03 686 MOV R7,#03H
00AD 120000 F 687 LCALL _beep
688 ; }
689 ; SOURCE LINE # 113
690 ; }
691 ; SOURCE LINE # 114
692 ; }
693 ; SOURCE LINE # 115
694 ; }
695 ; SOURCE LINE # 116
696 ; }
697 ; SOURCE LINE # 117
00B0 8035 698 SJMP ?C0004
00B2 699 ?C0005:
700 ; else
701 ; {
702 ; SOURCE LINE # 119
703 ; cnt = 0;
704 ; SOURCE LINE # 120
00B2 E4 705 CLR A
00B3 900000 F 706 MOV DPTR,#cnt?144
00B6 F0 707 MOVX @DPTR,A
708 ; if(fCardIn)
709 ; SOURCE LINE # 121
00B7 30002D F 710 JNB fCardIn?143,?C0004
711 ; {
712 ; SOURCE LINE # 122
713 ; fCardIn = 0;
714 ; SOURCE LINE # 123
00BA C200 F 715 CLR fCardIn?143
716 ; fWaitCmd = 0;
717 ; SOURCE LINE # 124
A51 MACRO ASSEMBLER MIFARE1 03/13/2009 15:44:56 PAGE 12
00BC C200 F 718 CLR fWaitCmd
719 ;
720 ; if(fRFCBeep)
721 ; SOURCE LINE # 126
00BE 300007 F 722 JNB fRFCBeep,?C0016
723 ; {
724 ; SOURCE LINE # 127
725 ; beep(1, 40);
726 ; SOURCE LINE # 128
00C1 7D28 727 MOV R5,#028H
00C3 7F01 728 MOV R7,#01H
00C5 120000 F 729 LCALL _beep
730 ; }
731 ; SOURCE LINE # 129
00C8 732 ?C0016:
733 ;
734 ; CardLed(1, 0);
735 ; SOURCE LINE # 131
00C8 D200 F 736 SETB ?CardLed?BIT
00CA C200 F 737 CLR ?CardLed?BIT+01H
00CC 120000 F 738 LCALL CardLed
739 ;
740 ; if(fNotice)
741 ; SOURCE LINE # 133
00CF 300015 F 742 JNB fNotice,?C0004
743 ; {
744 ; SOURCE LINE # 134
745 ; buf[0] = RFCARD;
746 ; SOURCE LINE # 135
00D2 900000 F 747 MOV DPTR,#buf?142
00D5 74FE 748 MOV A,#0FEH
00D7 F0 749 MOVX @DPTR,A
750 ; buf[1] = 0;
751 ; SOURCE LINE # 136
00D8 E4 752 CLR A
00D9 A3 753 INC DPTR
00DA F0 754 MOVX @DPTR,A
755 ;
756 ; #if 1
757 ; CommSendNotWaitAck(buf, 2); //////////////////////////////////
///
758 ; SOURCE LINE # 139
00DB 7B01 759 MOV R3,#01H
00DD 7A00 F 760 MOV R2,#HIGH (buf?142)
00DF 7900 F 761 MOV R1,#LOW (buf?142)
00E1 7D02 762 MOV R5,#02H
00E3 FC 763 MOV R4,A
00E4 120000 F 764 LCALL _CommSendNotWaitAck
765 ; #else
766 ; CommSend(buf, 2);
767 ; #endif
768 ; }
769 ; SOURCE LINE # 143
770 ; }
771 ; SOURCE LINE # 144
772 ; }
773 ; SOURCE LINE # 145
774 ; }
775 ; SOURCE LINE # 146
00E7 776 ?C0004:
777 ;
778 ; if(fWaitCmd)
779 ; SOURCE LINE # 148
00E7 300026 F 780 JNB fWaitCmd,?C0020
781 ; {
782 ; SOURCE LINE # 149
A51 MACRO ASSEMBLER MIFARE1 03/13/2009 15:44:56 PAGE 13
783 ; if(GetTickCount() - waitcmdtime >= 1000)
784 ; SOURCE LINE # 150
00EA 120000 F 785 LCALL GetTickCount
00ED 900000 F 786 MOV DPTR,#waitcmdtime?141
00F0 E0 787 MOVX A,@DPTR
00F1 FC 788 MOV R4,A
00F2 A3 789 INC DPTR
00F3 E0 790 MOVX A,@DPTR
00F4 FD 791 MOV R5,A
00F5 C3 792 CLR C
00F6 EF 793 MOV A,R7
00F7 9D 794 SUBB A,R5
00F8 FF 795 MOV R7,A
00F9 EE 796 MOV A,R6
00FA 9C 797 SUBB A,R4
00FB FE 798 MOV R6,A
00FC C3 799 CLR C
00FD EF 800 MOV A,R7
00FE 94E8 801 SUBB A,#0E8H
0100 EE 802 MOV A,R6
0101 9403 803 SUBB A,#03H
0103 400B 804 JC ?C0020
805 ; {
806 ; SOURCE LINE # 151
807 ; fCardIn = 0;
808 ; SOURCE LINE # 152
0105 C200 F 809 CLR fCardIn?143
810 ; fWaitCmd = 0;
811 ; SOURCE LINE # 153
0107 C200 F 812 CLR fWaitCmd
813 ; beep(3, 25);
814 ; SOURCE LINE # 154
0109 7D19 815 MOV R5,#019H
010B 7F03 816 MOV R7,#03H
010D 120000 F 817 LCALL _beep
818 ; }
819 ; SOURCE LINE # 155
820 ; }
821 ; SOURCE LINE # 156
822 ; }
823 ; SOURCE LINE # 157
0110 824 ?C0020:
0110 22 825 RET
826 ; END OF M1Card
827
828 ;
829 ; // excute the command for m1 card from host
830 ; unsigned int M1Command(unsigned char *cmd, unsigned int len)
831
---- 832 RSEG ?PR?_M1Command?MIFARE1
0000 833 _M1Command:
834 USING 0
835 ; SOURCE LINE # 160
0000 900000 F 836 MOV DPTR,#cmd?245
0003 EB 837 MOV A,R3
0004 F0 838 MOVX @DPTR,A
0005 A3 839 INC DPTR
0006 EA 840 MOV A,R2
0007 F0 841 MOVX @DPTR,A
0008 A3 842 INC DPTR
0009 E9 843 MOV A,R1
000A F0 844 MOVX @DPTR,A
000B A3 845 INC DPTR
000C EC 846 MOV A,R4
000D F0 847 MOVX @DPTR,A
000E A3 848 INC DPTR
A51 MACRO ASSEMBLER MIFARE1 03/13/2009 15:44:56 PAGE 14
000F ED 849 MOV A,R5
0010 F0 850 MOVX @DPTR,A
851 ; {
852 ; SOURCE LINE # 161
853 ; unsigned char m1sector; // m1卡命令針對(duì)的扇區(qū)
854 ; unsigned char m1block; // m1卡命令針對(duì)的塊號(hào)
855 ; long epvalue;
856 ; long oldepvalue;
857 ; unsigned char epstatus = 0x03;
858 ; SOURCE LINE # 166
0011 900000 F 859 MOV DPTR,#epstatus?266
0014 7403 860 MOV A,#03H
0016 F0 861 MOVX @DPTR,A
862 ; unsigned char m1keyidx;
863 ; bit fkeypassed;
864 ; unsigned char *m1data;
865 ; int i;
866 ;
867 ; // clear waiting cmd flag
868 ; fWaitCmd = 0;
869 ; SOURCE LINE # 173
0017 C200 F 870 CLR fWaitCmd
871 ;
872 ; m1sector = cmd[2];
873 ; SOURCE LINE # 175
0019 900000 F 874 MOV DPTR,#cmd?245
001C E0 875 MOVX A,@DPTR
001D FB 876 MOV R3,A
001E A3 877 INC DPTR
001F E0 878 MOVX A,@DPTR
0020 FA 879 MOV R2,A
0021 A3 880 INC DPTR
0022 E0 881 MOVX A,@DPTR
0023 F9 882 MOV R1,A
0024 900002 883 MOV DPTR,#02H
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -