📄 icccmd.src
字号:
INC DPTR
MOVX A,@DPTR
MOV R7,A
MOV A,R1
ADD A,R7
MOV R1,A
MOV A,R2
ADDC A,R6
MOV R2,A
MOV DPTR,#LE?048
MOVX A,@DPTR
MOV R5,A
MOV R4,#00H
LCALL _IccRead
; if(i < LE)
; SOURCE LINE # 100
MOV DPTR,#LE?048
MOVX A,@DPTR
MOV R5,A
MOV R4,#00H
CLR C
MOV A,R7
SUBB A,R5
MOV A,#080H
MOV R0,A
XRL A,R6
SUBB A,R0
JNC ?C0018
; {
; SOURCE LINE # 101
; #ifdef DEBUGICCCMD
; ComWrite("\xbb", 1);
; #endif
;
; return -2;
; SOURCE LINE # 106
?C0039:
LJMP ?C0044
; }
; SOURCE LINE # 107
?C0018:
;
; k += LE;
; SOURCE LINE # 109
MOV DPTR,#k?045+01H
MOVX A,@DPTR
ADD A,R5
MOVX @DPTR,A
MOV DPTR,#k?045
MOVX A,@DPTR
ADDC A,R4
MOVX @DPTR,A
; }
; SOURCE LINE # 110
;
; goto Proc;
; SOURCE LINE # 112
LJMP ?_IccSendCmd?Proc
; }
; SOURCE LINE # 113
?C0014:
; else if(tmp2 == ~tmp) // tmp2: lsb = 1, INS = ~proc_char
; SOURCE LINE # 114
MOV DPTR,#tmp?049
MOVX A,@DPTR
CPL A
MOV R5,A
MOV DPTR,#tmp2?051
MOVX A,@DPTR
XRL A,R5
JZ $ + 5H
LJMP ?C0020
; {
; SOURCE LINE # 115
; // trans next char
; if(LC > 0)
; SOURCE LINE # 117
MOV DPTR,#LC?047
MOVX A,@DPTR
SETB C
SUBB A,#00H
JC ?C0021
; {
; SOURCE LINE # 118
; /* send lc */
; i = IccWrite(cmd+5+j, 1);
; SOURCE LINE # 120
MOV DPTR,#cmd?040
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
ADD A,#05H
MOV R1,A
CLR A
ADDC A,R2
MOV R2,A
MOV DPTR,#j?044
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
ADD A,R1
MOV R1,A
MOV A,R2
ADDC A,R6
MOV R2,A
MOV R5,#01H
MOV R4,#00H
LCALL _IccWrite
; if(i < 1)
; SOURCE LINE # 121
CLR C
MOV A,R7
SUBB A,#01H
MOV A,R6
XRL A,#080H
SUBB A,#080H
JNC ?C0022
; {
; SOURCE LINE # 122
; #ifdef DEBUGICCCMD
; ComWrite("\xdc", 1);
; #endif
;
; return -2;
; SOURCE LINE # 127
?C0040:
LJMP ?C0044
; }
; SOURCE LINE # 128
?C0022:
; j ++;
; SOURCE LINE # 129
MOV DPTR,#j?044+01H
MOVX A,@DPTR
INC A
MOVX @DPTR,A
JNZ ?C0034
MOV DPTR,#j?044
MOVX A,@DPTR
INC A
MOVX @DPTR,A
?C0034:
; LC --;
; SOURCE LINE # 130
MOV DPTR,#LC?047
; goto Proc;
; SOURCE LINE # 131
SJMP ?C0042
; }
; SOURCE LINE # 132
?C0021:
;
;
; if(LE > 0)
; SOURCE LINE # 135
MOV DPTR,#LE?048
MOVX A,@DPTR
SETB C
SUBB A,#00H
JNC $ + 5H
LJMP ?_IccSendCmd?Proc
; {
; SOURCE LINE # 136
; i = IccRead(rsp+k, 1); // get response.data
; SOURCE LINE # 137
MOV DPTR,#rsp?042
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#k?045
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R7,A
MOV A,R1
ADD A,R7
MOV R1,A
MOV A,R2
ADDC A,R6
MOV R2,A
MOV R5,#01H
MOV R4,#00H
LCALL _IccRead
; if(i < 1)
; SOURCE LINE # 138
CLR C
MOV A,R7
SUBB A,#01H
MOV A,R6
XRL A,#080H
SUBB A,#080H
JNC ?C0024
; {
; SOURCE LINE # 139
; #ifdef DEBUGICCCMD
; ComWrite("\xba", 1);
; #endif
;
; return -2;
; SOURCE LINE # 144
?C0041:
LJMP ?C0044
; }
; SOURCE LINE # 145
?C0024:
;
; k ++;
; SOURCE LINE # 147
MOV DPTR,#k?045+01H
MOVX A,@DPTR
INC A
MOVX @DPTR,A
JNZ ?C0035
MOV DPTR,#k?045
MOVX A,@DPTR
INC A
MOVX @DPTR,A
?C0035:
; LE --;
; SOURCE LINE # 148
MOV DPTR,#LE?048
?C0042:
MOVX A,@DPTR
DEC A
MOVX @DPTR,A
; }
; SOURCE LINE # 149
;
; goto Proc;
; SOURCE LINE # 151
LJMP ?_IccSendCmd?Proc
; }
; SOURCE LINE # 152
?C0020:
; else if(proc_char == 0x6c) /* incorect lenght P3 */
; SOURCE LINE # 153
MOV DPTR,#proc_char?046
MOVX A,@DPTR
XRL A,#06CH
JNZ ?C0026
; {
; SOURCE LINE # 154
; i = IccRead(&proc_char, 1);
; SOURCE LINE # 155
MOV R3,#01H
MOV R2,#HIGH (proc_char?046)
MOV R1,#LOW (proc_char?046)
MOV R5,#01H
MOV R4,A
LCALL _IccRead
; if(i < 1)
; SOURCE LINE # 156
CLR C
MOV A,R7
SUBB A,#01H
MOV A,R6
XRL A,#080H
SUBB A,#080H
JNC ?C0027
; {
; SOURCE LINE # 157
; #ifdef DEBUGICCCMD
; ComWrite("\x99", 1);
; #endif
;
; return -2;
; SOURCE LINE # 162
?C0043:
SJMP ?C0044
; }
; SOURCE LINE # 163
?C0027:
; else
; {
; SOURCE LINE # 165
; cmdstr[4] = proc_char;
; SOURCE LINE # 166
MOV DPTR,#proc_char?046
MOVX A,@DPTR
MOV DPTR,#cmdstr?052+04H
MOVX @DPTR,A
; LE = proc_char;
; SOURCE LINE # 167
MOV DPTR,#LE?048
MOVX @DPTR,A
; goto Startsend; /* send again*/
; SOURCE LINE # 168
LJMP ?_IccSendCmd?Startsend
; }
; SOURCE LINE # 169
; }
; SOURCE LINE # 170
?C0026:
; else if(proc_char == 0x60)
; SOURCE LINE # 171
MOV DPTR,#proc_char?046
MOVX A,@DPTR
MOV R5,A
XRL A,#060H
JNZ $ + 5H
LJMP ?_IccSendCmd?Proc
; {
; SOURCE LINE # 172
; goto Proc; /* wait another proc byte */
; SOURCE LINE # 173
; }
; SOURCE LINE # 174
?C0030:
; else /* sw1 and sw2 */
; {
; SOURCE LINE # 176
; rsp[k++] = proc_char;
; SOURCE LINE # 177
MOV DPTR,#rsp?042
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#k?045
CLR A
MOV B,#01H
LCALL ?C?ILDIX
MOV DPL,B
MOV DPH,A
MOV A,R5
LCALL ?C?CSTOPTR
; i = IccRead(rsp+k, 1);
; SOURCE LINE # 178
MOV DPTR,#k?045
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
ADD A,R1
MOV R1,A
MOV A,R2
ADDC A,R6
MOV R2,A
MOV R5,#01H
MOV R4,#00H
LCALL _IccRead
; if(i < 1)
; SOURCE LINE # 179
CLR C
MOV A,R7
SUBB A,#01H
MOV A,R6
XRL A,#080H
SUBB A,#080H
JNC ?C0032
; {
; SOURCE LINE # 180
; #ifdef DEBUGICCCMD
; ComWrite("\x88", 1);
; #endif
;
; return -2;
; SOURCE LINE # 185
?C0044:
MOV R6,#0FFH
MOV R7,#0FEH
RET
; }
; SOURCE LINE # 186
?C0032:
;
; if(proc_char == 0x61)
; SOURCE LINE # 188
MOV DPTR,#proc_char?046
MOVX A,@DPTR
CJNE A,#061H,?C0019
; {
; SOURCE LINE # 189
; cmdstr[0] = 0x00; /* get response CLA */
; SOURCE LINE # 190
CLR A
MOV DPTR,#cmdstr?052
MOVX @DPTR,A
; cmdstr[1] = 0xc0; /* get response INS */
; SOURCE LINE # 191
INC DPTR
MOV A,#0C0H
MOVX @DPTR,A
; cmdstr[2] = 0x00; /* P1 */
; SOURCE LINE # 192
CLR A
INC DPTR
MOVX @DPTR,A
; cmdstr[3] = 0x00; /* P2 */
; SOURCE LINE # 193
INC DPTR
MOVX @DPTR,A
; LE = cmdstr[4] = rsp[k]; /* Le */
; SOURCE LINE # 194
MOV DPTR,#rsp?042
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#k?045
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV DPL,A
MOV DPH,R6
LCALL ?C?CLDOPTR
MOV DPTR,#cmdstr?052+04H
MOVX @DPTR,A
MOV DPTR,#LE?048
MOVX @DPTR,A
; LC = 0;
; SOURCE LINE # 195
CLR A
MOV DPTR,#LC?047
MOVX @DPTR,A
;
; goto Startsend; /* get response */
; SOURCE LINE # 197
LJMP ?_IccSendCmd?Startsend
; }
; SOURCE LINE # 198
; }
; SOURCE LINE # 199
?C0019:
;
; return k+1; /* command success */
; SOURCE LINE # 201
MOV DPTR,#k?045+01H
MOVX A,@DPTR
ADD A,#01H
MOV R7,A
MOV DPTR,#k?045
MOVX A,@DPTR
ADDC A,#00H
MOV R6,A
; }
; SOURCE LINE # 202
?C0002:
RET
; END OF _IccSendCmd
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -