📄 system.src
字号:
INC DPTR
MOVX A,@DPTR
MOV R1,A
CLR A
LCALL ?C?CSTPTR
; cmd[1] = cmd[2];
; SOURCE LINE # 240
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,#02H
LCALL ?C?CLDOPTR
MOV DPTR,#01H
?C0153:
LCALL ?C?CSTOPTR
; return 2;
; SOURCE LINE # 241
MOV R6,#00H
MOV R7,#02H
RET
; }
; SOURCE LINE # 242
;
; case CMD_RDMEM:
; SOURCE LINE # 244
?C0038:
; if(len != 10)
; SOURCE LINE # 245
MOV DPTR,#len?246
MOVX A,@DPTR
JNZ ?C0113
INC DPTR
MOVX A,@DPTR
XRL A,#0AH
?C0113:
JZ ?C0039
; {
; SOURCE LINE # 246
; cmd[0] = ERRORCMD;
; SOURCE LINE # 247
?C0155:
; return 1;
; SOURCE LINE # 248
SJMP ?C0157
; }
; SOURCE LINE # 249
?C0039:
; if(memcmp(cmd+3, "rdmemff", 7) != 0)
; SOURCE LINE # 250
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,#03H
MOV R1,A
CLR A
ADDC A,R2
XCH A,R0
MOV A,R1
XCH A,R0
MOV R4,A
XCH A,R5
MOV A,R3
XCH A,R5
MOV R3,#0FFH
MOV R2,#HIGH (?SC_266)
MOV R1,#LOW (?SC_266)
MOV R6,#00H
MOV R7,#07H
LCALL ?C?MEMCMP
MOV A,R7
JZ ?C0040
; {
; SOURCE LINE # 251
; cmd[0] = ERRORCMD;
; SOURCE LINE # 252
?C0156:
; return 1;
; SOURCE LINE # 253
SJMP ?C0157
; }
; SOURCE LINE # 254
?C0040:
;
; for(ch=0x1c00; ch<0x1d00; ch++)
; SOURCE LINE # 256
MOV DPTR,#ch?248
MOV A,#01CH
MOVX @DPTR,A
INC DPTR
CLR A
MOVX @DPTR,A
?C0041:
MOV DPTR,#ch?248
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R7,A
CLR C
MOV A,R6
XRL A,#080H
SUBB A,#09DH
JNC ?C0042
; {
; SOURCE LINE # 257
; uchar cc;
; cc = FlashRdByte(ch);
; SOURCE LINE # 259
LCALL _FlashRdByte
MOV DPTR,#cc?247
MOV A,R7
MOVX @DPTR,A
; ComWrite(&cc, 1);
; SOURCE LINE # 260
MOV R3,#01H
MOV R2,#HIGH (cc?247)
MOV R1,#LOW (cc?247)
MOV R5,#01H
MOV R4,#00H
LCALL _ComWrite
; }
; SOURCE LINE # 261
MOV DPTR,#ch?248+01H
MOVX A,@DPTR
INC A
MOVX @DPTR,A
JNZ ?C0041
MOV DPTR,#ch?248
MOVX A,@DPTR
INC A
MOVX @DPTR,A
?C0114:
SJMP ?C0041
?C0042:
; return 0;
; SOURCE LINE # 262
CLR A
MOV R6,A
MOV R7,A
RET
;
; default:
; SOURCE LINE # 264
?C0044:
; cmd[0] = ERRORCMD;
; SOURCE LINE # 265
?C0157:
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 A,#02H
LCALL ?C?CSTPTR
; return 1;
; SOURCE LINE # 266
MOV R6,#00H
MOV R7,#01H
; }
; SOURCE LINE # 267
; }
; SOURCE LINE # 268
?C0029:
RET
; END OF _SecCommand
;
; unsigned int SysCommand(unsigned char *cmd, int len)
RSEG ?PR?_SysCommand?SYSTEM
_SysCommand:
USING 0
; SOURCE LINE # 270
MOV DPTR,#cmd?349
MOV A,R3
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R4
MOVX @DPTR,A
INC DPTR
MOV A,R5
MOVX @DPTR,A
; {
; SOURCE LINE # 271
; int ch;
; unsigned char snr[4];
; static unsigned char limitcnt = 0;
;
; ch = ParaRead(PARA_LIMIT);
; SOURCE LINE # 276
MOV R7,#0F7H
LCALL _ParaRead
MOV DPTR,#ch?351
MOV A,R6
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
; if(ch <= 0)
; SOURCE LINE # 277
SETB C
SUBB A,#00H
MOV A,R6
XRL A,#080H
SUBB A,#080H
JNC ?C0045
; {
; SOURCE LINE # 278
; ParaWrite(PARA_LIMIT, 1);
; SOURCE LINE # 279
MOV R5,#01H
MOV R7,#0F7H
LCALL _ParaWrite
; return 0;
; SOURCE LINE # 280
LJMP ?C0159
; }
; SOURCE LINE # 281
?C0045:
;
; if((unsigned int)0xff != ch)
; SOURCE LINE # 283
MOV DPTR,#ch?351
MOVX A,@DPTR
JNZ ?C0115
INC DPTR
MOVX A,@DPTR
CPL A
?C0115:
JZ ?C0047
; {
; SOURCE LINE # 284
; limitcnt ++;
; SOURCE LINE # 285
MOV DPTR,#limitcnt?353
MOVX A,@DPTR
INC A
MOVX @DPTR,A
; if(limitcnt == 0)
; SOURCE LINE # 286
MOVX A,@DPTR
JNZ ?C0047
; {
; SOURCE LINE # 287
; ch --;
; SOURCE LINE # 288
MOV DPTR,#ch?351+01H
MOVX A,@DPTR
ADD A,#0FFH
MOVX @DPTR,A
MOV DPTR,#ch?351
MOVX A,@DPTR
ADDC A,#0FFH
MOVX @DPTR,A
; ch = ParaWrite(PARA_LIMIT, (unsigned char)ch);
; SOURCE LINE # 289
INC DPTR
MOVX A,@DPTR
MOV R5,A
MOV R7,#0F7H
LCALL _ParaWrite
MOV DPTR,#ch?351
MOV A,R6
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
; // ComWrite((unsigned char *)&ch+1, 1);
; }
; SOURCE LINE # 291
; }
; SOURCE LINE # 292
?C0047:
;
; switch(cmd[1])
; SOURCE LINE # 294
MOV DPTR,#cmd?349
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
CJNE A,#013H,?C0116
?C0116:
JC $ + 5H
LJMP ?C0109
MOV DPTR,#?C0117
MOV R0,A
ADD A,R0
ADD A,R0
JMP @A+DPTR
?C0117:
LJMP ?C0055
LJMP ?C0067
LJMP ?C0059
LJMP ?C0071
LJMP ?C0073
LJMP ?C0075
LJMP ?C0079
LJMP ?C0081
LJMP ?C0083
LJMP ?C0087
LJMP ?C0089
LJMP ?C0093
LJMP ?C0097
LJMP ?C0063
LJMP ?C0099
LJMP ?C0103
LJMP ?C0105
LJMP ?C0107
LJMP ?C0050
; {
; SOURCE LINE # 295
; case CMD_SETBAUD:
; SOURCE LINE # 296
?C0050:
; if(len != 4)
; SOURCE LINE # 297
MOV DPTR,#len?350
MOVX A,@DPTR
JNZ ?C0118
INC DPTR
MOVX A,@DPTR
XRL A,#04H
?C0118:
JZ ?C0051
; {
; SOURCE LINE # 298
; cmd[0] = ERRORCMDLEN;
; SOURCE LINE # 299
; return 1;
; SOURCE LINE # 300
LJMP ?C0191
; }
; SOURCE LINE # 301
?C0051:
; if((cmd[2] >= 6) || (cmd[3] >= 6))
; SOURCE LINE # 302
MOV DPTR,#02H
LCALL ?C?CLDOPTR
MOV R5,A
CLR C
SUBB A,#06H
JNC ?C0053
MOV DPTR,#03H
LCALL ?C?CLDOPTR
MOV R4,A
CLR C
SUBB A,#06H
JC ?C0052
?C0053:
; {
; SOURCE LINE # 303
; cmd[0] = ERRORCMD;
; SOURCE LINE # 304
; return 1;
; SOURCE LINE # 305
LJMP ?C0161
; }
; SOURCE LINE # 306
?C0052:
; // cmd[3]: reserved for format
; snr[0] = SUCCESS;
; SOURCE LINE # 308
CLR A
MOV DPTR,#snr?352
MOVX @DPTR,A
; snr[1] = cmd[2];
; SOURCE LINE # 309
INC DPTR
MOV A,R5
MOVX @DPTR,A
; snr[2] = cmd[3];
; SOURCE LINE # 310
INC DPTR
MOV A,R4
MOVX @DPTR,A
; if(CommSend(snr, 3))
; SOURCE LINE # 311
MOV R3,#01H
MOV R2,#HIGH (snr?352)
MOV R1,#LOW (snr?352)
MOV R5,#03H
MOV R4,#00H
LCALL _CommSend
JNC ?C0054
; {
; SOURCE LINE # 312
; delay(50);
; SOURCE LINE # 313
MOV R7,#032H
MOV R6,#00H
LCALL _delay
; // if communicate success, change baudrate
; ComOpen(SYSCLOCK, baud[cmd[2]]);
; SOURCE LINE # 315
MOV DPTR,#cmd?349
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#02H
LCALL ?C?CLDOPTR
ADD A,ACC
ADD A,ACC
ADD A,#LOW (baud)
MOV DPL,A
CLR A
ADDC A,#HIGH (baud)
MOV DPH,A
LCALL ?C?LLDCODE
MOV DPTR,#?_ComOpen?BYTE+04H
LCALL ?C?LSTXDATA
MOV R7,#00H
MOV R6,#020H
MOV R5,#01CH
MOV R4,#00H
LCALL _ComOpen
; }
; SOURCE LINE # 316
?C0054:
; return 0;
; SOURCE LINE # 317
?C0159:
CLR A
MOV R6,A
MOV R7,A
RET
;
; case CMD_EJECTCARD:
; SOURCE LINE # 319
?C0055:
; if(len != 2)
; SOURCE LINE # 320
MOV DPTR,#len?350
MOVX A,@DPTR
JNZ ?C0119
INC DPTR
MOVX A,@DPTR
XRL A,#02H
?C0119:
JZ ?C0056
; {
; SOURCE LINE # 321
; cmd[0] = ERRORCMDLEN;
; SOURCE LINE # 322
MOV DPTR,#cmd?349
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
?C0160:
; return 1;
; SOURCE LINE # 323
LJMP ?C0191
; }
; SOURCE LINE # 324
?C0056:
; if(IccUserEject())
; SOURCE LINE # 325
LCALL IccUserEject
MOV DPTR,#cmd?349
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
JNC ?C0057
; cmd[0] = SUCCESS;
; SOURCE LINE # 326
CLR A
SJMP ?C0163
?C0057:
; else
; cmd[0] = FAIL;
; SOURCE LINE # 328
MOV A,#01H
?C0163:
LCALL ?C?CSTPTR
?C0058:
; return 1;
; SOURCE LINE # 329
LJMP ?C0197
;
; case CMD_SETMODE:
; SOURCE LINE # 331
?C0059:
; if(len != 3)
; SOURCE LINE # 332
MOV DPTR,#len?350
MOVX A,@DPTR
JNZ ?C0120
INC DPTR
MOVX A,@DPTR
XRL A,#03H
?C0120:
JZ ?C0060
; {
; SOURCE LINE # 333
; cmd[0] = ERRORCMDLEN;
; SOURCE LINE # 334
MOV DPTR,#cmd?349
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
?C0162:
; return 1;
; SOURCE LINE # 335
LJMP ?C0191
; }
; SOURCE LINE # 336
?C0060:
; fLed = cmd[2] & F_LED;
; SOURCE LINE # 337
MOV DPTR,#cmd?349
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#02H
LCALL ?C?CLDOPTR
MOV R7,A
MOV C,ACC.6
MOV fLed,C
; fTCBeep = cmd[2] & F_BOTC;
; SOURCE LINE # 338
MOV C,ACC.1
MOV fTCBeep,C
; fRFCBeep = cmd[2] & F_BORFC;
; SOURCE LINE # 339
RRC A
MOV fRFCBeep,C
; InvPack = cmd[2] & F_CINV;
; SOURCE LINE # 340
MOV A,R7
MOV C,ACC.2
MOV InvPack,C
; fNotice = cmd[2] & F_NOTICE;
; SOURCE LINE # 341
MOV C,ACC.3
MOV fNotice,C
; fStopOnACK = cmd[2] & F_SNOA;
; SOURCE LINE # 342
MOV C,ACC.4
MOV fStopOnACK,C
; fAutoSearchCard = cmd[2] & F_ASC;
; SOURCE LINE # 343
MOV C,ACC.5
MOV fAutoSearchCard,C
;
; if(ParaWrite(PARA_SWITCHS, cmd[2]) == cmd[2])
; SOURCE LINE # 345
MOV DPTR,#02H
LCALL ?C?CLDOPTR
MOV R5,A
MOV R7,#0FEH
LCALL _ParaWrite
MOV DPTR,#cmd?349
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#02H
LCALL ?C?CLDOPTR
XRL A,R7
JNZ ?C0121
MOV A,R6
?C0121:
JNZ ?C0061
; {
; SOURCE LINE # 346
; cmd[0] = SUCCESS;
; SOURCE LINE # 347
; }
; SOURCE LINE # 348
SJMP ?C0166
?C0061:
; else
; {
; SOURCE LINE # 350
; cmd[0] = FAIL;
; SOURCE LINE # 351
MOV A,#01H
?C0166:
LCALL ?C?CSTPTR
; }
; SOURCE LINE # 352
?C0062:
; return 1;
; SOURCE LINE # 353
?C0164:
LJMP ?C0197
;
; case CMD_GETMODE:
; SOURCE LINE # 355
?C0063:
; if(len != 2)
; SOURCE LINE # 356
MOV DPTR,#len?350
MOVX A,@DPTR
JNZ ?C0122
INC DPTR
MOVX A,@DPTR
XRL A,#02H
?C0122:
JZ ?C0064
; {
; SOURCE LINE # 357
; cmd[0] = ERRORCMDLEN;
; SOURCE LINE # 358
MOV DPTR,#cmd?349
MOVX A,@DPTR
MOV R3,A
INC DPTR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -