ORG 00000H
LJMP L000E ;0000 : 02 00 0E
ORG 0000BH
LJMP L0321 ;000B : 02 03 21
L000E:
MOV BAK_WDTCR,WDTCR ;000E : 85 E1 2D
MOV WDTCR,#17H ;0011 : 75 E1 17
MainLoop:
LCALL FlashDisable ;0014 : 12 02 F2
MOV SP,#2DH ;0017 : 75 81 2D
LCALL SetDevPara ;001A : 12 01 A6
L001D:
MOV WDTCR,#17H ;001D : 75 E1 17
JNB TXD,L001D ;0020 : 30 B1 FA
MOV R5,#0AH ;0023 : 7D 0A
DJNZ R5,$ ;0025 : DD FE
CLR TXD ;0027 : C2 B1
MOV R5,#0AH ;0029 : 7D 0A
DJNZ R5,$ ;002B : DD FE
SETB TXD ;002D : D2 B1
MOV R5,#03H ;002F : 7D 03
DJNZ R5,$ ;0031 : DD FE
JNB TXD,L0039 ;0033 : 30 B1 03
LJMP RstToApp ;0036 : 02 03 13
L0039:
MOV IE,#82H ;0039 : 75 A8 82
MOV TMOD,#11H ;003C : 75 89 11
MOV TH0,#00H ;003F : 75 8C 00
MOV TL0,#00H ;0042 : 75 8A 00
SETB TR0 ;0045 : D2 8C
LCALL L01DC ;0047 : 12 01 DC
LCALL ReadDatToR7 ;004A : 12 03 23
CJNE R7,#5AH,L0060 ;004D : BF 5A 10
LCALL ReadDatToR7 ;0050 : 12 03 23
CJNE R7,#0A5H,L0058 ;0053 : BF A5 02
SJMP WriteEntry ;0056 : 80 0B
L0058:
CJNE R7,#0AAH,L0060 ;0058 : BF AA 05
CLR TR0 ;005B : C2 8C
LJMP ReadEntry ;005D : 02 01 60
L0060:
LJMP RstToApp ;0060 : 02 03 13
WriteEntry:
CLR TR0 ;0063 : C2 8C
LCALL ReadDatToR7 ;0065 : 12 03 23
MOV EndAddrH,R7 ;0068 : 8F 23
LCALL ReadDatToR7 ;006A : 12 03 23
MOV EndAddrL,R7 ;006D : 8F 24
LCALL ReadDatToR7 ;006F : 12 03 23
MOV CheckSumH,R7 ;0072 : 8F 25
LCALL ReadDatToR7 ;0074 : 12 03 23
MOV CheckSumL,R7 ;0077 : 8F 26
LCALL ReadDatToR7 ;0079 : 12 03 23
MOV OR1Val,R7 ;007C : 8F 22
LCALL FlashSW ;007E : 12 02 E3
MOV IFMT,#02H ;0081 : 75 E5 02
MOV DPTR,#0000H ;0084 : 90 00 00
WriteLoop:
MOV WDTCR,#17H ;0087 : 75 E1 17
MOV A,DPL ;008A : E5 82
JNZ WriteLoop_Wtr ;008C : 70 16
MOV A,DPH ;008E : E5 83
MOV B,#02H ;0090 : 75 F0 02
DIV AB ;0093 : 84
MOV A,B ;0094 : E5 F0
JNZ WriteLoop_Wtr ;0096 : 70 0C
MOV IFMT,#03H ;0098 : 75 E5 03
MOV IFADRH,DPH ;009B : 85 83 E3
LCALL EnFlash_A5 ;009E : 12 02 FF
MOV IFMT,#02H ;00A1 : 75 E5 02
WriteLoop_Wtr:
LCALL ReadDatToR7 ;00A4 : 12 03 23
MOV IFD,R7 ;00A7 : 8F E2
MOV IFADRH,DPH ;00A9 : 85 83 E3
MOV IFADRL,DPL ;00AC : 85 82 E4
LCALL EnFlash_A5 ;00AF : 12 02 FF
MOV A,DPH ;00B2 : E5 83
CJNE A,EndAddrH,WriteLoop_Inc ;00B4 : B5 23 07
MOV A,DPL ;00B7 : E5 82
CJNE A,EndAddrL,WriteLoop_Inc ;00B9 : B5 24 02
SJMP Wt_CalCkSm ;00BC : 80 03
WriteLoop_Inc:
INC DPTR ;00BE : A3
SJMP WriteLoop ;00BF : 80 C6
Wt_CalCkSm:
MOV PageCnt,#00H ;00C1 : 75 2C 00
PUSH ISPCR ;00C4 : C0 E7
MOV ISPCR,#83H ;00C6 : 75 E7 83
MOV CurCkSumH,#00H ;00C9 : 75 27 00
MOV CurCkSumL,#00H ;00CC : 75 28 00
MOV IFMT,#01H ;00CF : 75 E5 01
MOV DPTR,#0000H ;00D2 : 90 00 00
Wt_CalCkSm_Loop:
MOV WDTCR,#17H ;00D5 : 75 E1 17
MOV IFADRH,DPH ;00D8 : 85 83 E3
MOV IFADRL,DPL ;00DB : 85 82 E4
LCALL EnFlash_A5 ;00DE : 12 02 FF
MOV A,CurCkSumL ;00E1 : E5 28
ADD A,IFD ;00E3 : 25 E2
MOV CurCkSumL,A ;00E5 : F5 28
MOV A,CurCkSumH ;00E7 : E5 27
ADDC A,#00H ;00E9 : 34 00
MOV CurCkSumH,A ;00EB : F5 27
MOV A,DPH ;00ED : E5 83
CJNE A,EndAddrH,L00FB ;00EF : B5 23 09
MOV A,DPL ;00F2 : E5 82
CJNE A,EndAddrL,L00FB ;00F4 : B5 24 04
POP ISPCR ;00F7 : D0 E7
SJMP Wt_CalCkSm_End ;00F9 : 80 16
L00FB:
MOV A,DPL ;00FB : E5 82
JNZ L010E ;00FD : 70 0F
MOV A,PageCnt ;00FF : E5 2C
CJNE A,#04H,L010C ;0101 : B4 04 08
MOV PageCnt,#00H ;0104 : 75 2C 00
MOV R7,#55H ;0107 : 7F 55
LCALL SendR7ToHost ;0109 : 12 03 9E
L010C:
INC PageCnt ;010C : 05 2C
L010E:
INC DPTR ;010E : A3
SJMP Wt_CalCkSm_Loop ;010F : 80 C4
Wt_CalCkSm_End:
MOV R7,#0AAH ;0111 : 7F AA
LCALL SendR7ToHost ;0113 : 12 03 9E
JB Flag_DIDH_F0,Wt_OR1 ;0116 : 20 04 05
JB Flag_DIDH_F1,Wt_OR1 ;0119 : 20 05 02
SJMP L0144 ;011C : 80 26
Wt_OR1:
ORL OR1Val,#6CH ;011E : 43 22 6C
ANL OR1Val,#0FDH ;0121 : 53 22 FD
MOV IFADRH,#00H ;0124 : 75 E3 00
MOV IFADRL,#01H ;0127 : 75 E4 01
MOV IFMT,#07H ;012A : 75 E5 07
LCALL EnFlash_A5 ;012D : 12 02 FF
MOV IFMT,#06H ;0130 : 75 E5 06
MOV IFD,OR1Val ;0133 : 85 22 E2
LCALL EnFlash_A5 ;0136 : 12 02 FF
MOV IFMT,#05H ;0139 : 75 E5 05
LCALL EnFlash_A5 ;013C : 12 02 FF
MOV A,IFD ;013F : E5 E2
CJNE A,OR1Val,Wt_Faild ;0141 : B5 22 0E
L0144:
MOV A,CheckSumH ;0144 : E5 25
CJNE A,CurCkSumH,Wt_Faild ;0146 : B5 27 09
MOV A,CheckSumL ;0149 : E5 26
CJNE A,CurCkSumL,Wt_Faild ;014B : B5 28 04
MOV R7,#00H ;014E : 7F 00
SJMP L0154 ;0150 : 80 02
Wt_Faild:
MOV R7,#0FFH ;0152 : 7F FF
L0154:
LCALL SendR7ToHost ;0154 : 12 03 9E
ProcessEnd:
LCALL FlashDisable ;0157 : 12 02 F2
MOV FlashA5,#00H ;015A : 75 2B 00
LJMP MainLoop ;015D : 02 00 14
ReadEntry:
JNB Flag_DIDH_Other,L0168 ;0160 : 30 03 05
MOV IFADRH,#0FBH ;0163 : 75 E3 FB
SJMP L018B ;0166 : 80 23
L0168:
JNB Flag_DIDH_F0,L0170 ;0168 : 30 04 05
MOV IFADRH,#37H ;016B : 75 E3 37
SJMP L018B ;016E : 80 1B
L0170:
JNB Flag_DIDH_F1,L0178 ;0170 : 30 05 05
MOV IFADRH,#0F7H ;0173 : 75 E3 F7
SJMP L018B ;0176 : 80 13
L0178:
JNB Flag_DIDH_F3,L0180 ;0178 : 30 07 05
MOV IFADRH,#37H ;017B : 75 E3 37
SJMP L018B ;017E : 80 0B
L0180:
JNB Flag_DIDH_F4,L0188 ;0180 : 30 08 05
MOV IFADRH,#0FBH ;0183 : 75 E3 FB
SJMP L018B ;0186 : 80 03
L0188:
MOV IFADRH,#1BH ;0188 : 75 E3 1B
L018B:
LCALL FlashSW ;018B : 12 02 E3
MOV IFMT,#01H ;018E : 75 E5 01
MOV R0,#00H ;0191 : 78 00
L0193:
MOV WDTCR,#17H ;0193 : 75 E1 17
MOV IFADRL,R0 ;0196 : 88 E4
LCALL EnFlash_A5 ;0198 : 12 02 FF
MOV R7,IFD ;019B : AF E2
LCALL SendR7ToHost ;019D : 12 03 9E
INC R0 ;01A0 : 08
CJNE R0,#00H,L0193 ;01A1 : B8 00 EF
SJMP ProcessEnd ;01A4 : 80 B1
SetDevPara:
CLR Flag_DIDH_Other ;01A6 : C2 03
CLR Flag_DIDH_F0 ;01A8 : C2 04
CLR Flag_DIDH_F1 ;01AA : C2 05
CLR Flag_DIDH_F2 ;01AC : C2 06
CLR Flag_DIDH_F3 ;01AE : C2 07
CLR Flag_DIDH_F4 ;01B0 : C2 08
MOV IFADRL,#01H ;01B2 : 75 E4 01
MOV A,SCMD ;01B5 : E5 E6
CJNE A,#0F0H,L01BD ;01B7 : B4 F0 03
SETB Flag_DIDH_F0 ;01BA : D2 04
RET ;01BC : 22
L01BD:
CJNE A,#0F1H,L01C3 ;01BD : B4 F1 03
SETB Flag_DIDH_F1 ;01C0 : D2 05
RET ;01C2 : 22
L01C3:
CJNE A,#0F2H,L01C9 ;01C3 : B4 F2 03
SETB Flag_DIDH_F2 ;01C6 : D2 06
RET ;01C8 : 22
L01C9:
CJNE A,#0F3H,L01D1 ;01C9 : B4 F3 05
SETB Flag_DIDH_F3 ;01CC : D2 07
SETB Flag_DIDH_F2 ;01CE : D2 06
RET ;01D0 : 22
L01D1:
CJNE A,#0F4H,L01D9 ;01D1 : B4 F4 05
SETB Flag_DIDH_F4 ;01D4 : D2 08
SETB Flag_DIDH_F2 ;01D6 : D2 06
RET ;01D8 : 22
L01D9:
SETB Flag_DIDH_Other ;01D9 : D2 03
RET ;01DB : 22
L01DC:
MOV TMOD,#11H ;01DC : 75 89 11
MOV TH1,#00H ;01DF : 75 8D 00
MOV TL1,#00H ;01E2 : 75 8B 00
JNB TXD,$ ;01E5 : 30 B1 FD
CLR TXD ;01E8 : C2 B1
MOV R5,#0DH ;01EA : 7D 0D
DJNZ R5,$ ;01EC : DD FE
SETB TXD ;01EE : D2 B1
JB TXD,$ ;01F0 : 20 B1 FD
SETB TR1 ;01F3 : D2 8E
JNB TXD,$ ;01F5 : 30 B1 FD
CLR TR1 ;01F8 : C2 8E
CLR TXD ;01FA : C2 B1
MOV R5,#0DH ;01FC : 7D 0D
DJNZ R5,$ ;01FE : DD FE
SETB TXD ;0200 : D2 B1
CLR C ;0202 : C3
MOV A,TL1 ;0203 : E5 8B
ADD A,#10H ;0205 : 24 10
MOV A,TH1 ;0207 : E5 8D
ADDC A,#00H ;0209 : 34 00
MOV Var9,A ;020B : F5 29
MOV R7,Var9 ;020D : AF 29
JNB Flag_DIDH_F2,L0228 ;020F : 30 06 16
MOV A,Var9 ;0212 : E5 29
CJNE A,#10H,L0217 ;0214 : B4 10 00
L0217:
JNC L0222 ;0217 : 50 09
CJNE A,#06H,L021C ;0219 : B4 06 00
L021C:
JNC L0226 ;021C : 50 08
MOV R7,#02H ;021E : 7F 02
SJMP L0228 ;0220 : 80 06
L0222:
MOV R7,#10H ;0222 : 7F 10
SJMP L0228 ;0224 : 80 02
L0226:
MOV R7,#06H ;0226 : 7F 06
L0228:
LCALL SendR7ToHost ;0228 : 12 03 9E
CLR Flag01 ;022B : C2 01
CLR Flag00 ;022D : C2 00
MOV A,Var9 ;022F : E5 29
CJNE A,#50H,L0234 ;0231 : B4 50 00
L0234:
JNC L023D ;0234 : 50 07
CJNE A,#30H,L0239 ;0236 : B4 30 00
L0239:
JNC L0241 ;0239 : 50 06
SJMP L0243 ;023B : 80 06
L023D:
SETB Flag01 ;023D : D2 01
SJMP L0243 ;023F : 80 02
L0241:
SETB Flag00 ;0241 : D2 00
L0243:
MOV Var10,Var9 ;0243 : 85 29 2A
LCALL L02BD ;0246 : 12 02 BD
JNB Flag02,L0254 ;0249 : 30 02 08
MOV A,Var9 ;024C : E5 29
MOV B,#02H ;024E : 75 F0 02
DIV AB ;0251 : 84
MOV Var10,A ;0252 : F5 2A
L0254:
JB Flag_DIDH_F2,L0278 ;0254 : 20 06 21
MOV A,Var10 ;0257 : E5 2A
CJNE A,#18H,L025C ;0259 : B4 18 00
L025C:
JNC L0274 ;025C : 50 16
CJNE A,#0EH,L0261 ;025E : B4 0E 00
L0261:
JNC L0270 ;0261 : 50 0D
CJNE A,#06H,L0266 ;0263 : B4 06 00
L0266:
JNC L026C ;0266 : 50 04
MOV ISPCR,#03H ;0268 : 75 E7 03
RET ;026B : 22
L026C:
MOV ISPCR,#02H ;026C : 75 E7 02
RET ;026F : 22
L0270:
MOV ISPCR,#01H ;0270 : 75 E7 01
RET ;0273 : 22
L0274:
MOV ISPCR,#00H ;0274 : 75 E7 00
RET ;0277 : 22
L0278:
MOV A,Var10 ;0278 : E5 2A
CJNE A,#18H,L027D ;027A : B4 18 00
L027D:
JNC L02B9 ;027D : 50 3A
CJNE A,#14H,L0282 ;027F : B4 14 00
L0282:
JNC L02B5 ;0282 : 50 31
CJNE A,#0CH,L0287 ;0284 : B4 0C 00
L0287:
JNC L02B1 ;0287 : 50 28
CJNE A,#06H,L028C ;0289 : B4 06 00
L028C:
JNC L02AD ;028C : 50 1F
CJNE A,#03H,L0291 ;028E : B4 03 00
L0291:
JNC L02A9 ;0291 : 50 16
CJNE A,#02H,L0296 ;0293 : B4 02 00
L0296:
JNC L02A5 ;0296 : 50 0D
CJNE A,#01H,L029B ;0298 : B4 01 00
L029B:
JNC L02A1 ;029B : 50 04
MOV ISPCR,#07H ;029D : 75 E7 07
RET ;02A0 : 22
L02A1:
MOV ISPCR,#06H ;02A1 : 75 E7 06
RET ;02A4 : 22
L02A5:
MOV ISPCR,#05H ;02A5 : 75 E7 05
RET ;02A8 : 22
L02A9:
MOV ISPCR,#04H ;02A9 : 75 E7 04
RET ;02AC : 22
L02AD:
MOV ISPCR,#03H ;02AD : 75 E7 03
RET ;02B0 : 22
L02B1:
MOV ISPCR,#02H ;02B1 : 75 E7 02
RET ;02B4 : 22
L02B5:
MOV ISPCR,#01H ;02B5 : 75 E7 01
RET ;02B8 : 22
L02B9:
MOV ISPCR,#00H ;02B9 : 75 E7 00
RET ;02BC : 22
L02BD:
JB Flag_DIDH_F0,L02C6 ;02BD : 20 04 06
JB Flag_DIDH_F1,L02C6 ;02C0 : 20 05 03
CLR Flag02 ;02C3 : C2 02
RET ;02C5 : 22
L02C6:
LCALL FlashSW ;02C6 : 12 02 E3
MOV IFMT,#05H ;02C9 : 75 E5 05
MOV IFADRH,#00H ;02CC : 75 E3 00
MOV IFADRL,#01H ;02CF : 75 E4 01
LCALL EnFlash_A5 ;02D2 : 12 02 FF
LCALL FlashDisable ;02D5 : 12 02 F2
MOV A,IFD ;02D8 : E5 E2
JB ACC.0,L02E0 ;02DA : 20 E0 03
SETB Flag02 ;02DD : D2 02
RET ;02DF : 22
L02E0:
CLR Flag02 ;02E0 : C2 02
RET ;02E2 : 22
FlashSW:
MOV A,ISPCR ;02E3 : E5 E7
ANL A,#07H ;02E5 : 54 07
ORL A,#80H ;02E7 : 44 80
MOV ISPCR,A ;02E9 : F5 E7
MOV IFMT,#00H ;02EB : 75 E5 00
XRL FlashA5,#0FFH ;02EE : 63 2B FF
RET ;02F1 : 22
FlashDisable:
MOV A,ISPCR ;02F2 : E5 E7
ANL A,#07H ;02F4 : 54 07
MOV ISPCR,A ;02F6 : F5 E7
MOV IFMT,#00H ;02F8 : 75 E5 00
MOV FlashA5,#5AH ;02FB : 75 2B 5A
RET ;02FE : 22
EnFlash_A5:
MOV A,FlashA5 ;02FF : E5 2B
CJNE A,#0A5H,L030E ;0301 : B4 A5 0A
MOV SCMD,#46H ;0304 : 75 E6 46
CJNE A,#0A5H,L030E ;0307 : B4 A5 04
MOV SCMD,#0B9H ;030A : 75 E6 B9
RET ;030D : 22
L030E:
LCALL FlashDisable ;030E : 12 02 F2
SJMP $ ;0311 : 80 FE
RstToApp:
LCALL FlashDisable ;0313 : 12 02 F2
ANL BAK_WDTCR,#1FH ;0316 : 53 2D 1F
MOV WDTCR,BAK_WDTCR ;0319 : 85 2D E1
MOV ISPCR,#20H ;031C : 75 E7 20
SJMP $ ;031F : 80 FE
L0321:
SJMP RstToApp ;0321 : 80 F0
ReadDatToR7:
PUSH ACC ;0323 : C0 E0
PUSH R0 ;0325 : C0 00
MOV R0,#08H ;0327 : 78 08
JB Flag_DIDH_F2,L0346 ;0329 : 20 06 1A
JB Flag01,L0368 ;032C : 20 01 39
JB Flag00,L0381 ;032F : 20 00 4F
L0332:
JNB TXD,$ ;0332 : 30 B1 FD
CLR TXD ;0335 : C2 B1
NOP ;0337 : 00
SETB TXD ;0338 : D2 B1
MOV C,TXD ;033A : A2 B1
RLC A ;033C : 33
DJNZ R0,L0332 ;033D : D8 F3
CLR TXD ;033F : C2 B1
NOP ;0341 : 00
SETB TXD ;0342 : D2 B1
SJMP L0398 ;0344 : 80 52
L0346:
JNB TXD,$ ;0346 : 30 B1 FD
CLR TXD ;0349 : C2 B1
MOV R5,#03H ;034B : 7D 03
DJNZ R5,$ ;034D : DD FE
SETB TXD ;034F : D2 B1
MOV R5,#06H ;0351 : 7D 06
DJNZ R5,$ ;0353 : DD FE
MOV C,TXD ;0355 : A2 B1
RLC A ;0357 : 33
MOV R5,#06H ;0358 : 7D 06
DJNZ R5,$ ;035A : DD FE
DJNZ R0,L0346 ;035C : D8 E8
CLR TXD ;035E : C2 B1
MOV R5,#03H ;0360 : 7D 03
DJNZ R5,$ ;0362 : DD FE
SETB TXD ;0364 : D2 B1
SJMP L0398 ;0366 : 80 30
L0368:
JNB TXD,$ ;0368 : 30 B1 FD
CLR TXD ;036B : C2 B1
NOP ;036D : 00
NOP ;036E : 00
SETB TXD ;036F : D2 B1
NOP ;0371 : 00
NOP ;0372 : 00
MOV C,TXD ;0373 : A2 B1
RLC A ;0375 : 33
NOP ;0376 : 00
DJNZ R0,L0368 ;0377 : D8 EF
CLR TXD ;0379 : C2 B1
NOP ;037B : 00
NOP ;037C : 00
SETB TXD ;037D : D2 B1
SJMP L0398 ;037F : 80 17
L0381:
JNB TXD,$ ;0381 : 30 B1 FD
CLR TXD ;0384 : C2 B1
NOP ;0386 : 00
NOP ;0387 : 00
SETB TXD ;0388 : D2 B1
NOP ;038A : 00
MOV C,TXD ;038B : A2 B1
RLC A ;038D : 33
DJNZ R0,L0381 ;038E : D8 F1
CLR TXD ;0390 : C2 B1
NOP ;0392 : 00
NOP ;0393 : 00
SETB TXD ;0394 : D2 B1
SJMP L0398 ;0396 : 80 00
L0398:
MOV R7,A ;0398 : FF
POP R0 ;0399 : D0 00
POP ACC ;039B : D0 E0
RET ;039D : 22
SendR7ToHost:
PUSH ACC ;039E : C0 E0
PUSH R0 ;03A0 : C0 00
MOV A,R7 ;03A2 : EF
MOV R0,#08H ;03A3 : 78 08
JB Flag_DIDH_F2,L03BE ;03A5 : 20 06 16
L03A8:
JNB TXD,$ ;03A8 : 30 B1 FD
CLR TXD ;03AB : C2 B1
NOP ;03AD : 00
NOP ;03AE : 00
RLC A ;03AF : 33
MOV TXD,C ;03B0 : 92 B1
MOV R5,#82H ;03B2 : 7D 82
DJNZ R5,$ ;03B4 : DD FE
SETB TXD ;03B6 : D2 B1
NOP ;03B8 : 00
NOP ;03B9 : 00
DJNZ R0,L03A8 ;03BA : D8 EC
SJMP L03DA ;03BC : 80 1C
L03BE:
JNB TXD,$ ;03BE : 30 B1 FD
CLR TXD ;03C1 : C2 B1
MOV R5,#03H ;03C3 : 7D 03
DJNZ R5,$ ;03C5 : DD FE
RLC A ;03C7 : 33
MOV TXD,C ;03C8 : 92 B1
MOV R5,#00H ;03CA : 7D 00
DJNZ R5,$ ;03CC : DD FE
MOV R5,#0A0H ;03CE : 7D A0
DJNZ R5,$ ;03D0 : DD FE
SETB TXD ;03D2 : D2 B1
MOV R5,#03H ;03D4 : 7D 03
DJNZ R5,$ ;03D6 : DD FE
DJNZ R0,L03BE ;03D8 : D8 E4
L03DA:
POP R0 ;03DA : D0 00
POP ACC ;03DC : D0 E0
RET ;03DE : 22 |