📄 mifare1.src
字号:
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#01H
MOV A,#03H
?C0217:
; return 2;
; SOURCE LINE # 341
LJMP ?C0246
; }
; SOURCE LINE # 342
?C0066:
;
; if(cmd[1] == CMD_READ) // READ M1 CARD
; SOURCE LINE # 344
MOV DPTR,#cmd?245
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#01H
LCALL ?C?CLDOPTR
XRL A,#02H
JZ $ + 5H
LJMP ?C0067
; {
; SOURCE LINE # 345
; if(len != 4)
; SOURCE LINE # 346
MOV DPTR,#len?246
MOVX A,@DPTR
JNZ ?C0191
INC DPTR
MOVX A,@DPTR
XRL A,#04H
?C0191:
JZ ?C0068
; {
; SOURCE LINE # 347
; cmd[0] = ERRORCMDLEN;
; SOURCE LINE # 348
?C0214:
; return 1;
; SOURCE LINE # 349
LJMP ?C0250
; }
; SOURCE LINE # 350
?C0068:
;
; if(m1block == ALLBLOCK)
; SOURCE LINE # 352
MOV DPTR,#m1block?263
MOVX A,@DPTR
CPL A
JZ $ + 5H
LJMP ?C0069
; {
; SOURCE LINE # 353
; if((i = M500Read((m1sector<<2), cmd+1)) != MI_OK)
; SOURCE LINE # 354
MOV DPTR,#m1sector?262
MOVX A,@DPTR
ADD A,ACC
ADD A,ACC
MOV R7,A
MOV A,R1
ADD A,#01H
MOV R1,A
CLR A
ADDC A,R2
MOV R2,A
LCALL _M500Read
MOV R6,#00H
MOV DPTR,#i?270
MOV A,R6
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
JZ ?C0070
; {
; SOURCE LINE # 355
; // error
; cmd[0] = FAIL;
; SOURCE LINE # 357
; cmd[1] = i;
; SOURCE LINE # 358
; return 2;
; SOURCE LINE # 359
LJMP ?C0248
; }
; SOURCE LINE # 360
?C0070:
; else if((i = M500Read((m1sector<<2) + 1, cmd+1+16)) != MI_OK)
; SOURCE LINE # 361
MOV DPTR,#m1sector?262
MOVX A,@DPTR
ADD A,ACC
ADD A,ACC
INC A
MOV R7,A
MOV DPTR,#cmd?245
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
ADD A,#011H
MOV R1,A
CLR A
ADDC A,R2
MOV R2,A
LCALL _M500Read
MOV R6,#00H
MOV DPTR,#i?270
MOV A,R6
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
JZ ?C0072
; {
; SOURCE LINE # 362
; // error
; cmd[0] = FAIL;
; SOURCE LINE # 364
?C0220:
; cmd[1] = i;
; SOURCE LINE # 365
; return 2;
; SOURCE LINE # 366
LJMP ?C0248
; }
; SOURCE LINE # 367
?C0072:
; else if((i = M500Read((m1sector<<2) + 2, cmd+1+16+16)) != MI_OK)
; SOURCE LINE # 368
MOV DPTR,#m1sector?262
MOVX A,@DPTR
ADD A,ACC
ADD A,ACC
ADD A,#02H
MOV R7,A
MOV DPTR,#cmd?245
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
ADD A,#021H
MOV R1,A
CLR A
ADDC A,R2
MOV R2,A
LCALL _M500Read
MOV R6,#00H
MOV DPTR,#i?270
MOV A,R6
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
MOV DPTR,#cmd?245
JZ ?C0074
; {
; SOURCE LINE # 369
; // error
; cmd[0] = FAIL;
; SOURCE LINE # 371
?C0210:
; cmd[1] = i;
; SOURCE LINE # 372
; return 2;
; SOURCE LINE # 373
LJMP ?C0227
; }
; SOURCE LINE # 374
?C0074:
; else
; {
; SOURCE LINE # 376
; // success
; cmd[0] = SUCCESS;
; SOURCE LINE # 378
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
CLR A
LCALL ?C?CSTPTR
; return 49;
; SOURCE LINE # 379
MOV R6,A
MOV R7,#031H
RET
; }
; SOURCE LINE # 380
; }
; SOURCE LINE # 381
?C0069:
; else
; {
; SOURCE LINE # 383
; if((i = M500Read((m1sector<<2) + m1block, cmd+1)) != MI_OK)
; SOURCE LINE # 384
MOV DPTR,#m1sector?262
MOVX A,@DPTR
ADD A,ACC
ADD A,ACC
MOV R7,A
INC DPTR
MOVX A,@DPTR
ADD A,R7
MOV R7,A
MOV DPTR,#cmd?245
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
ADD A,#01H
MOV R1,A
CLR A
ADDC A,R2
MOV R2,A
LCALL _M500Read
MOV R6,#00H
MOV DPTR,#i?270
MOV A,R6
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
MOV DPTR,#cmd?245
JNZ $ + 5H
LJMP ?C0224
; {
; SOURCE LINE # 385
; // read error
; cmd[0] = FAIL;
; SOURCE LINE # 387
?C0222:
; cmd[1] = i;
; SOURCE LINE # 388
; return 2;
; SOURCE LINE # 389
LJMP ?C0227
; }
; SOURCE LINE # 390
; else
; {
; cmd[0] = SUCCESS;
; return 17;
; }
; SOURCE LINE # 395
; }
; SOURCE LINE # 396
; }
; SOURCE LINE # 397
?C0067:
; else if(cmd[1] == CMD_WRITE)
; SOURCE LINE # 398
MOV DPTR,#cmd?245
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#01H
LCALL ?C?CLDOPTR
XRL A,#03H
JNZ ?C0080
; {
; SOURCE LINE # 399
; if(len != 20)
; SOURCE LINE # 400
MOV DPTR,#len?246
MOVX A,@DPTR
JNZ ?C0192
INC DPTR
MOVX A,@DPTR
XRL A,#014H
?C0192:
JZ ?C0081
; {
; SOURCE LINE # 401
; cmd[0] = ERRORCMDLEN;
; SOURCE LINE # 402
?C0219:
; return 1;
; SOURCE LINE # 403
LJMP ?C0250
; }
; SOURCE LINE # 404
?C0081:
;
; if((i = M500Write((m1sector<<2) + m1block, m1data)) != MI_OK)
; SOURCE LINE # 406
MOV DPTR,#m1sector?262
MOVX A,@DPTR
ADD A,ACC
ADD A,ACC
MOV R7,A
INC DPTR
MOVX A,@DPTR
ADD A,R7
MOV R7,A
MOV DPTR,#m1data?269
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _M500Write
MOV R6,#00H
MOV DPTR,#i?270
MOV A,R6
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
JZ ?C0082
; {
; SOURCE LINE # 407
; cmd[0] = FAIL;
; SOURCE LINE # 408
?C0221:
; cmd[1] = i;
; SOURCE LINE # 409
; return 2;
; SOURCE LINE # 410
LJMP ?C0248
; }
; SOURCE LINE # 411
?C0082:
; else if((i = M500Read((m1sector<<2) + m1block, cmd+1)) != MI_OK) // read back
; SOURCE LINE # 412
MOV DPTR,#m1sector?262
MOVX A,@DPTR
ADD A,ACC
ADD A,ACC
MOV R7,A
INC DPTR
MOVX A,@DPTR
ADD A,R7
MOV R7,A
MOV DPTR,#cmd?245
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
ADD A,#01H
MOV R1,A
CLR A
ADDC A,R2
MOV R2,A
LCALL _M500Read
MOV R6,#00H
MOV DPTR,#i?270
MOV A,R6
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
MOV DPTR,#cmd?245
JZ ?C0084
; {
; SOURCE LINE # 413
; cmd[0] = FAIL;
; SOURCE LINE # 414
?C0223:
; cmd[1] = i;
; SOURCE LINE # 415
; return 2;
; SOURCE LINE # 416
LJMP ?C0227
; }
; SOURCE LINE # 417
?C0084:
; else
; {
; SOURCE LINE # 419
; cmd[0] = SUCCESS;
; SOURCE LINE # 420
?C0224:
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
CLR A
LCALL ?C?CSTPTR
; return 17;
; SOURCE LINE # 421
MOV R6,A
MOV R7,#011H
RET
; }
; SOURCE LINE # 422
; }
; SOURCE LINE # 423
?C0080:
;
; // 钱包 ////////////////////////////////////////////
; else if(cmd[1] == CMD_INCEP)
; SOURCE LINE # 426
MOV DPTR,#cmd?245
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#01H
LCALL ?C?CLDOPTR
XRL A,#05H
JZ $ + 5H
LJMP ?C0087
; {
; SOURCE LINE # 427
; uchar m1bakblock, m1eptype;
;
; m1bakblock = m1data[0];
; SOURCE LINE # 430
MOV DPTR,#m1data?269
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL ?C?CLDPTR
MOV R7,A
MOV DPTR,#m1bakblock?249
MOVX @DPTR,A
MOV R4,A
; m1eptype = m1data[1];
; SOURCE LINE # 431
MOV DPTR,#01H
LCALL ?C?CLDOPTR
MOV DPTR,#m1eptype?250
MOVX @DPTR,A
; m1data += 2;
; SOURCE LINE # 432
MOV DPTR,#m1data?269+01H
CLR A
MOV B,#02H
LCALL ?C?IILDX
; m1block = (m1sector << 2) + m1block;
; SOURCE LINE # 433
MOV DPTR,#m1sector?262
MOVX A,@DPTR
ADD A,ACC
ADD A,ACC
MOV R6,A
INC DPTR
MOVX A,@DPTR
ADD A,R6
MOVX @DPTR,A
; m1bakblock = (m1sector << 2) + m1bakblock;
; SOURCE LINE # 434
MOV A,R6
ADD A,R4
MOV DPTR,#m1bakblock?249
MOVX @DPTR,A
;
; if(len != 10)
; SOURCE LINE # 436
MOV DPTR,#len?246
MOVX A,@DPTR
JNZ ?C0193
INC DPTR
MOVX A,@DPTR
XRL A,#0AH
?C0193:
JZ ?C0088
; {
; SOURCE LINE # 437
; cmd[0] = ERRORCMDLEN;
; SOURCE LINE # 438
MOV DPTR,#cmd?245
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
?C0225:
; return 1;
; SOURCE LINE # 439
LJMP ?C0250
; }
; SOURCE LINE # 440
?C0088:
;
; epvalue = buftolong86(m1data);
; SOURCE LINE # 442
LCALL L?0264
MOV DPTR,#epvalue?264
LCALL ?C?LSTXDATA
;
; i = M500ReadValue(m1block, cmd, m1bakblock);
; SOURCE LINE # 444
MOV DPTR,#m1block?263
MOVX A,@DPTR
MOV R7,A
MOV DPTR,#cmd?245
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#m1bakblock?249
MOVX A,@DPTR
MOV DPTR,#?_M500ReadValue?BYTE+04H
MOVX @DPTR,A
LCALL _M500ReadValue
MOV R6,#00H
MOV DPTR,#i?270
MOV A,R6
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
; if(i != MI_OK)
; SOURCE LINE # 445
JZ ?C0089
; {
; SOURCE LINE # 446
; // error
; cmd[0] = FAIL;
; SOURCE LINE # 448
?C0226:
; cmd[1] = i;
; SOURCE LINE # 449
; return 2;
; SOURCE LINE # 450
LJMP ?C0248
; }
; SOURCE LINE # 451
?C0089:
;
; if(!m1eptype) // lsb first ep
; SOURCE LINE # 453
MOV DPTR,#m1eptype?250
MOVX A,@DPTR
MOV DPTR,#cmd?245
JNZ ?C0090
; oldepvalue = buftolong86(cmd);
; SOURCE LINE # 454
LCALL L?0266
SJMP ?C0204
?C0090:
; else // msb first ep
; oldepvalue = buftolong51(cmd);
; SOURCE LINE # 456
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _buftolong51
?C0204:
MOV DPTR,#oldepvalue?265
LCALL ?C?LSTXDATA
?C0091:
;
; epvalue += oldepvalue;
; SOURCE LINE # 458
MOV DPTR,#epvalue?264
MOVX A,@DPTR
MOV R4,A
INC DPTR
MOVX A,@DPTR
MOV R5,A
INC DPTR
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R7,A
INC DPTR
MOVX A,@DPTR
MOV R0,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R3,A
MOV A,R7
ADD A,R3
MOV R7,A
MOV A,R6
ADDC A,R2
MOV R6,A
MOV A,R5
ADDC A,R1
MOV R5,A
MOV A,R4
ADDC A,R0
MOV R4,A
MOV DPTR,#epvalue?264
LCALL ?C?LSTXDATA
;
; if(!m1eptype) // lsb first ep
; SOURCE LINE # 460
MOV DPTR,#m1eptype?250
MOVX A,@DPTR
MOV DPTR,#epvalue?264
JNZ ?C0092
; longtobuf86(epvalue, cmd);
; SOURCE LINE # 461
MOVX A,@DPTR
MOV R4,A
INC DPTR
MOVX A,@DPTR
MOV R5,A
INC DPTR
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R7,A
MOV DPTR,#cmd?245
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -