📄 mifare1.ls1
字号:
0027 120000 F 884 LCALL ?C?CLDOPTR
002A 900000 F 885 MOV DPTR,#m1sector?262
002D F0 886 MOVX @DPTR,A
887 ; m1block = cmd[3];
888 ; SOURCE LINE # 176
002E 900003 889 MOV DPTR,#03H
0031 120000 F 890 LCALL ?C?CLDOPTR
0034 900000 F 891 MOV DPTR,#m1block?263
0037 F0 892 MOVX @DPTR,A
893 ; m1data = cmd + 4;
894 ; SOURCE LINE # 177
0038 E9 895 MOV A,R1
0039 2404 896 ADD A,#04H
003B F9 897 MOV R1,A
003C E4 898 CLR A
003D 3A 899 ADDC A,R2
003E FA 900 MOV R2,A
003F 900000 F 901 MOV DPTR,#m1data?269
0042 EB 902 MOV A,R3
0043 F0 903 MOVX @DPTR,A
0044 A3 904 INC DPTR
0045 EA 905 MOV A,R2
0046 F0 906 MOVX @DPTR,A
0047 A3 907 INC DPTR
0048 E9 908 MOV A,R1
0049 F0 909 MOVX @DPTR,A
910 ;
911 ; ///////////////////////////////////////
912 ; // request card!
913 ; if(!M1Search(snr))
914 ; SOURCE LINE # 181
A51 MACRO ASSEMBLER MIFARE1 03/13/2009 15:44:56 PAGE 15
004A 120000 F 915 LCALL L?0267
004D 4023 916 JC ?C0021
917 ; {
918 ; SOURCE LINE # 182
919 ; // error
920 ; cmd[0] = FAIL;
921 ; SOURCE LINE # 184
004F 900000 F 922 MOV DPTR,#cmd?245
0052 E0 923 MOVX A,@DPTR
0053 FB 924 MOV R3,A
0054 A3 925 INC DPTR
0055 E0 926 MOVX A,@DPTR
0056 FA 927 MOV R2,A
0057 A3 928 INC DPTR
0058 E0 929 MOVX A,@DPTR
0059 F9 930 MOV R1,A
005A 7401 931 MOV A,#01H
005C 120000 F 932 LCALL ?C?CSTPTR
933 ; cmd[1] = MI_NOTAGERR;
934 ; SOURCE LINE # 185
005F 900000 F 935 MOV DPTR,#cmd?245
0062 E0 936 MOVX A,@DPTR
0063 FB 937 MOV R3,A
0064 A3 938 INC DPTR
0065 E0 939 MOVX A,@DPTR
0066 FA 940 MOV R2,A
0067 A3 941 INC DPTR
0068 E0 942 MOVX A,@DPTR
0069 F9 943 MOV R1,A
006A 900001 944 MOV DPTR,#01H
006D 7401 945 MOV A,#01H
946 ; return 2;
947 ; SOURCE LINE # 186
006F 020000 F 948 LJMP ?C0246
949 ; }
950 ; SOURCE LINE # 187
0072 951 ?C0021:
952 ;
953 ; if(cmd[1] == CMD_GETSNR) // get card snr
954 ; SOURCE LINE # 189
0072 900000 F 955 MOV DPTR,#cmd?245
0075 E0 956 MOVX A,@DPTR
0076 FB 957 MOV R3,A
0077 A3 958 INC DPTR
0078 E0 959 MOVX A,@DPTR
0079 FA 960 MOV R2,A
007A A3 961 INC DPTR
007B E0 962 MOVX A,@DPTR
007C F9 963 MOV R1,A
007D 900001 964 MOV DPTR,#01H
0080 120000 F 965 LCALL ?C?CLDOPTR
0083 7039 966 JNZ ?C0023
967 ; {
968 ; SOURCE LINE # 190
969 ; if(len != 2)
970 ; SOURCE LINE # 191
0085 900000 F 971 MOV DPTR,#len?246
0088 E0 972 MOVX A,@DPTR
0089 7004 973 JNZ ?C0184
008B A3 974 INC DPTR
008C E0 975 MOVX A,@DPTR
008D 6402 976 XRL A,#02H
008F 977 ?C0184:
008F 6003 978 JZ ?C0024
979 ; {
980 ; SOURCE LINE # 192
A51 MACRO ASSEMBLER MIFARE1 03/13/2009 15:44:56 PAGE 16
981 ; cmd[0] = ERRORCMDLEN;
982 ; SOURCE LINE # 193
983 ; return 1;
984 ; SOURCE LINE # 194
0091 020000 F 985 LJMP ?C0250
986 ; }
987 ; SOURCE LINE # 195
0094 988 ?C0024:
989 ;
990 ; // copy snr to cmd
991 ; cmd[0] = SUCCESS;
992 ; SOURCE LINE # 198
0094 E4 993 CLR A
0095 120000 F 994 LCALL ?C?CSTPTR
995 ; memcpy(cmd+1, snr, 4);
996 ; SOURCE LINE # 199
0098 900000 F 997 MOV DPTR,#cmd?245
009B E0 998 MOVX A,@DPTR
009C FB 999 MOV R3,A
009D A3 1000 INC DPTR
009E E0 1001 MOVX A,@DPTR
009F FA 1002 MOV R2,A
00A0 A3 1003 INC DPTR
00A1 E0 1004 MOVX A,@DPTR
00A2 2401 1005 ADD A,#01H
00A4 F9 1006 MOV R1,A
00A5 E4 1007 CLR A
00A6 3A 1008 ADDC A,R2
00A7 C8 1009 XCH A,R0
00A8 E9 1010 MOV A,R1
00A9 C8 1011 XCH A,R0
00AA FC 1012 MOV R4,A
00AB CD 1013 XCH A,R5
00AC EB 1014 MOV A,R3
00AD CD 1015 XCH A,R5
00AE 7B01 1016 MOV R3,#01H
00B0 7A00 F 1017 MOV R2,#HIGH (snr)
00B2 7900 F 1018 MOV R1,#LOW (snr)
00B4 7E00 1019 MOV R6,#00H
00B6 7F04 1020 MOV R7,#04H
00B8 120000 F 1021 LCALL ?C?COPY
1022 ; return 5;
1023 ; SOURCE LINE # 200
00BB 020000 F 1024 LJMP ?C0249
1025 ; }
1026 ; SOURCE LINE # 201
00BE 1027 ?C0023:
1028 ;
1029 ; if(cmd[1] == CMD_AUTH) // auth card with specified key
1030 ; SOURCE LINE # 203
00BE 900000 F 1031 MOV DPTR,#cmd?245
00C1 E0 1032 MOVX A,@DPTR
00C2 FB 1033 MOV R3,A
00C3 A3 1034 INC DPTR
00C4 E0 1035 MOVX A,@DPTR
00C5 FA 1036 MOV R2,A
00C6 A3 1037 INC DPTR
00C7 E0 1038 MOVX A,@DPTR
00C8 F9 1039 MOV R1,A
00C9 900001 1040 MOV DPTR,#01H
00CC 120000 F 1041 LCALL ?C?CLDOPTR
00CF 6401 1042 XRL A,#01H
00D1 7042 1043 JNZ ?C0025
1044 ; {
1045 ; SOURCE LINE # 204
1046 ; if(len != 10)
A51 MACRO ASSEMBLER MIFARE1 03/13/2009 15:44:56 PAGE 17
1047 ; SOURCE LINE # 205
00D3 900000 F 1048 MOV DPTR,#len?246
00D6 E0 1049 MOVX A,@DPTR
00D7 7004 1050 JNZ ?C0185
00D9 A3 1051 INC DPTR
00DA E0 1052 MOVX A,@DPTR
00DB 640A 1053 XRL A,#0AH
00DD 1054 ?C0185:
00DD 6003 1055 JZ ?C0026
1056 ; {
1057 ; SOURCE LINE # 206
1058 ; cmd[0] = ERRORCMDLEN;
1059 ; SOURCE LINE # 207
00DF 1060 ?C0207:
1061 ; return 1;
1062 ; SOURCE LINE # 208
00DF 020000 F 1063 LJMP ?C0250
1064 ; }
1065 ; SOURCE LINE # 209
00E2 1066 ?C0026:
1067 ;
1068 ; m1sector &= 0x7f; // mask the invalid msb
1069 ; SOURCE LINE # 211
00E2 900000 F 1070 MOV DPTR,#m1sector?262
00E5 E0 1071 MOVX A,@DPTR
00E6 547F 1072 ANL A,#07FH
00E8 F0 1073 MOVX @DPTR,A
00E9 FE 1074 MOV R6,A
1075 ; i = M1Auth(m1block, m1data, m1sector);
1076 ; SOURCE LINE # 212
00EA A3 1077 INC DPTR
00EB E0 1078 MOVX A,@DPTR
00EC FF 1079 MOV R7,A
00ED 900000 F 1080 MOV DPTR,#m1data?269
00F0 E0 1081 MOVX A,@DPTR
00F1 FB 1082 MOV R3,A
00F2 A3 1083 INC DPTR
00F3 E0 1084 MOVX A,@DPTR
00F4 FA 1085 MOV R2,A
00F5 A3 1086 INC DPTR
00F6 E0 1087 MOVX A,@DPTR
00F7 F9 1088 MOV R1,A
00F8 900000 F 1089 MOV DPTR,#?_M1Auth?BYTE+04H
00FB EE 1090 MOV A,R6
00FC F0 1091 MOVX @DPTR,A
00FD 120000 F 1092 LCALL _M1Auth
0100 7E00 1093 MOV R6,#00H
0102 900000 F 1094 MOV DPTR,#i?270
0105 EE 1095 MOV A,R6
0106 F0 1096 MOVX @DPTR,A
0107 A3 1097 INC DPTR
0108 EF 1098 MOV A,R7
0109 F0 1099 MOVX @DPTR,A
1100 ; if(MI_OK != i)
1101 ; SOURCE LINE # 213
010A 900000 F 1102 MOV DPTR,#cmd?245
010D 6003 1103 JZ ?C0027
1104 ; {
1105 ; SOURCE LINE # 214
1106 ; cmd[0] = FAIL;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -