📄 para.src
字号:
MOVX A,@DPTR
JNZ ?C0060
INC DPTR
MOVX A,@DPTR
XRL A,#0FCH
?C0060:
JNZ ?C0035
; {
; SOURCE LINE # 215
; FlashWrByte(ParaStart+SECTOR_SIZE+1, H_USING);
; SOURCE LINE # 216
MOV DPTR,#ParaStart
INC A
MOVC A,@A+DPTR
ADD A,#081H
MOV R7,A
CLR A
MOVC A,@A+DPTR
ADDC A,#00H
MOV R6,A
MOV R5,#0F0H
LCALL _FlashWrByte
; ComWrite("Use S1.\r\n", 9);
; SOURCE LINE # 217
MOV R3,#0FFH
MOV R2,#HIGH (?SC_68)
MOV R1,#LOW (?SC_68)
MOV R5,#09H
?C0073:
; }
; SOURCE LINE # 218
SJMP ?C0074
?C0035:
; else if((s1flag == H_ERASED) && (s0flag == H_COPYING))
; SOURCE LINE # 219
MOV DPTR,#s1flag?254
MOVX A,@DPTR
JNZ ?C0061
INC DPTR
MOVX A,@DPTR
?C0061:
JNZ ?C0037
MOV DPTR,#s0flag?252
MOVX A,@DPTR
JNZ ?C0062
INC DPTR
MOVX A,@DPTR
XRL A,#0FCH
?C0062:
JNZ ?C0037
; {
; SOURCE LINE # 220
; FlashWrByte(ParaStart+1, H_USING);
; SOURCE LINE # 221
MOV DPTR,#ParaStart
INC A
MOVC A,@A+DPTR
ADD A,#01H
MOV R7,A
CLR A
MOVC A,@A+DPTR
ADDC A,#00H
MOV R6,A
MOV R5,#0F0H
LCALL _FlashWrByte
; ComWrite("Use S0.\r\n", 9);
; SOURCE LINE # 222
MOV R3,#0FFH
MOV R2,#HIGH (?SC_78)
MOV R1,#LOW (?SC_78)
MOV R5,#09H
?C0074:
MOV R4,#00H
LCALL _ComWrite
; }
; SOURCE LINE # 223
SJMP ?C0034
?C0037:
; else if((s0flag != H_USING) && (s1flag != H_USING))
; SOURCE LINE # 224
MOV DPTR,#s0flag?252
MOVX A,@DPTR
JNZ ?C0063
INC DPTR
MOVX A,@DPTR
XRL A,#0F0H
?C0063:
JZ ?C0034
MOV DPTR,#s1flag?254
MOVX A,@DPTR
JNZ ?C0064
INC DPTR
MOVX A,@DPTR
XRL A,#0F0H
?C0064:
JZ ?C0034
; {
; SOURCE LINE # 225
; s0head = PARA_EMPTY;
; SOURCE LINE # 226
MOV DPTR,#s0head?251
CLR A
MOVX @DPTR,A
INC DPTR
MOV A,#0FFH
MOVX @DPTR,A
; s1head = PARA_EMPTY;
; SOURCE LINE # 227
MOV DPTR,#s1head?253
CLR A
MOVX @DPTR,A
INC DPTR
MOV A,#0FFH
MOVX @DPTR,A
; ComWrite("Error, check again and format.\r\n", 32);
; SOURCE LINE # 228
MOV R3,A
MOV R2,#HIGH (?SC_88)
MOV R1,#LOW (?SC_88)
MOV R5,#020H
MOV R4,#00H
LCALL _ComWrite
; goto checkhead;
; SOURCE LINE # 229
LJMP ?ParaMemInit?checkhead
; }
; SOURCE LINE # 230
?C0034:
;
; return ch;
; SOURCE LINE # 232
MOV DPTR,#ch?255
MOVX A,@DPTR
MOV R7,A
; }
; SOURCE LINE # 233
?C0040:
RET
; END OF ParaMemInit
;
; // set the initialzation values
; unsigned char ParaInit(void)
RSEG ?PR?ParaInit?PARA
ParaInit:
USING 0
; SOURCE LINE # 236
; {
; SOURCE LINE # 237
; if(ParaMemInit() >= 2)
; SOURCE LINE # 238
LCALL ParaMemInit
MOV A,R7
CLR C
SUBB A,#02H
JC ?C0041
; {
; SOURCE LINE # 239
; ComWrite("New mem or mem error, use default values. Writing...\r\n", 54);
; SOURCE LINE # 240
MOV R3,#0FFH
MOV R2,#HIGH (?SC_121)
MOV R1,#LOW (?SC_121)
MOV R5,#036H
MOV R4,#00H
LCALL _ComWrite
; ParaWrite(PARA_SWITCHS, F_BORFC | F_BOTC | F_NOTICE | F_ASC | F_SNOA | F_LED);
; SOURCE LINE # 241
MOV R5,#07BH
MOV R7,#0FEH
LCALL _ParaWrite
; ParaWrite(PARA_LORC, 12);
; SOURCE LINE # 242
MOV R5,#0CH
MOV R7,#0FDH
LCALL _ParaWrite
; ParaWrite(PARA_LOTC, 25);
; SOURCE LINE # 243
MOV R5,#019H
MOV R7,#0FCH
LCALL _ParaWrite
; ParaWrite(PARA_LOBC, 0xff);
; SOURCE LINE # 244
MOV R5,#0FFH
MOV R7,#0FBH
LCALL _ParaWrite
; ParaWrite(PARA_LONC, 0);
; SOURCE LINE # 245
CLR A
MOV R5,A
MOV R7,#0FAH
LCALL _ParaWrite
; ParaWrite(PARA_RFCCT, 20);
; SOURCE LINE # 246
MOV R5,#014H
MOV R7,#0F9H
LCALL _ParaWrite
; ParaWrite(PARA_RFRXGAIN, 2);
; SOURCE LINE # 247
MOV R5,#02H
MOV R7,#0F8H
LCALL _ParaWrite
; ParaWrite(PARA_LIMIT, 0xff);
; SOURCE LINE # 248
MOV R5,#0FFH
MOV R7,#0F7H
LCALL _ParaWrite
; ComWrite("Ok.\r\n", 5);
; SOURCE LINE # 249
MOV R3,#0FFH
MOV R2,#HIGH (?SC_176)
MOV R1,#LOW (?SC_176)
MOV R5,#05H
MOV R4,#00H
LCALL _ComWrite
; }
; SOURCE LINE # 250
?C0041:
;
; return 0;
; SOURCE LINE # 252
MOV R7,#00H
; }
; SOURCE LINE # 253
?C0042:
RET
; END OF ParaInit
;
; /******************************************** internal functions ***************************************/
;
; // copy parameters to next sector when one is full
; // dir: 1: sec 0 --> sect 1; 0: sec 1 --> sec 0
; static void ParaCopy(bit dir)
RSEG ?PR?ParaCopy?PARA
ParaCopy:
USING 0
; SOURCE LINE # 259
; {
; SOURCE LINE # 260
; unsigned int i0, i01, i1, i11;
; unsigned int StartAddr;
; unsigned char oldpara;
;
; // 1, check dir
; if(dir)
; SOURCE LINE # 266
MOV DPTR,#ParaStart
CLR A
MOVC A,@A+DPTR
MOV R6,A
MOV A,#01H
MOVC A,@A+DPTR
MOV R7,A
JNB dir?456,?C0043
; {
; SOURCE LINE # 267
; StartAddr = ParaStart + 2;
; SOURCE LINE # 268
ADD A,#02H
MOV R5,A
CLR A
ADDC A,R6
MOV R4,A
MOV DPTR,#StartAddr?461
MOVX @DPTR,A
INC DPTR
MOV A,R5
MOVX @DPTR,A
; i0 = ParaStart + 2;
; SOURCE LINE # 269
MOV DPTR,#i0?457
MOV A,R4
MOVX @DPTR,A
INC DPTR
MOV A,R5
MOVX @DPTR,A
; i1 = ParaStart + SECTOR_SIZE + 2;
; SOURCE LINE # 270
MOV A,R7
ADD A,#082H
MOV R7,A
CLR A
ADDC A,R6
MOV DPTR,#i1?459
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
; }
; SOURCE LINE # 271
SJMP ?C0044
?C0043:
; else
; {
; SOURCE LINE # 273
; StartAddr = ParaStart + SECTOR_SIZE + 2;
; SOURCE LINE # 274
ADD A,#082H
MOV R5,A
CLR A
ADDC A,R6
MOV R4,A
MOV DPTR,#StartAddr?461
MOVX @DPTR,A
INC DPTR
MOV A,R5
MOVX @DPTR,A
; i1 = ParaStart + 2;
; SOURCE LINE # 275
MOV A,R7
ADD A,#02H
MOV R7,A
CLR A
ADDC A,R6
MOV DPTR,#i1?459
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
; i0 = ParaStart + SECTOR_SIZE + 2;
; SOURCE LINE # 276
MOV DPTR,#i0?457
MOV A,R4
MOVX @DPTR,A
INC DPTR
MOV A,R5
MOVX @DPTR,A
; }
; SOURCE LINE # 277
?C0044:
;
; i11 = i1;
; SOURCE LINE # 279
MOV DPTR,#i1?459
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R7,A
INC DPTR
MOV A,R6
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
; i01 = i0;
; SOURCE LINE # 280
MOV DPTR,#i0?457
MOVX A,@DPTR
MOV R5,A
INC DPTR
MOVX A,@DPTR
INC DPTR
XCH A,R5
MOVX @DPTR,A
INC DPTR
MOV A,R5
MOVX @DPTR,A
;
; // 2, if new sector not empty, erase
; if(FlashRdByte(i1-1) != H_EMPTY)
; SOURCE LINE # 283
MOV A,R7
ADD A,#0FFH
MOV R7,A
MOV A,R6
ADDC A,#0FFH
MOV R6,A
LCALL _FlashRdByte
MOV A,R7
CPL A
JZ ?C0045
; FlashErSector(i1-2);
; SOURCE LINE # 284
MOV DPTR,#i1?459+01H
MOVX A,@DPTR
ADD A,#0FEH
MOV R7,A
MOV DPTR,#i1?459
MOVX A,@DPTR
ADDC A,#0FFH
MOV R6,A
LCALL _FlashErSector
?C0045:
;
; // 3, write head 0
; if(FlashRdByte(i1-2) != PARA_HEAD)
; SOURCE LINE # 287
MOV DPTR,#i1?459+01H
MOVX A,@DPTR
ADD A,#0FEH
MOV R7,A
MOV DPTR,#i1?459
MOVX A,@DPTR
ADDC A,#0FFH
MOV R6,A
LCALL _FlashRdByte
MOV A,R7
XRL A,#055H
JZ ?C0046
; FlashWrByte(i1-2, PARA_HEAD);
; SOURCE LINE # 288
MOV DPTR,#i1?459+01H
MOVX A,@DPTR
ADD A,#0FEH
MOV R7,A
MOV DPTR,#i1?459
MOVX A,@DPTR
ADDC A,#0FFH
MOV R6,A
MOV R5,#055H
LCALL _FlashWrByte
?C0046:
;
; // 4, write head 1 to show copying status
; FlashWrByte(i1-1, H_COPYING);
; SOURCE LINE # 291
MOV DPTR,#i1?459+01H
MOVX A,@DPTR
ADD A,#0FFH
MOV R7,A
MOV DPTR,#i1?459
MOVX A,@DPTR
ADDC A,#0FFH
MOV R6,A
MOV R5,#0FCH
LCALL _FlashWrByte
;
; // 5, copy
; for( ; i0<StartAddr+SECTOR_SIZE-2; i0+=2)
; SOURCE LINE # 294
?C0047:
MOV DPTR,#StartAddr?461+01H
MOVX A,@DPTR
ADD A,#07EH
MOV R5,A
MOV DPTR,#StartAddr?461
MOVX A,@DPTR
ADDC A,#00H
MOV R4,A
MOV DPTR,#i0?457
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R7,A
CLR C
SUBB A,R5
MOV A,R6
SUBB A,R4
JNC ?C0048
; {
; SOURCE LINE # 295
; oldpara = FlashRdByte(i0);
; SOURCE LINE # 296
LCALL _FlashRdByte
;---- Variable 'oldpara?462' assigned to Register 'R5' ----
XCH A,R5
MOV A,R7
XCH A,R5
;
; if(oldpara == PARA_EMPTY)
; SOURCE LINE # 298
MOV A,R5
CPL A
JZ ?C0048
; {
; SOURCE LINE # 299
; break;
; SOURCE LINE # 300
; }
; SOURCE LINE # 301
?C0050:
; if(oldpara == PARA_ERASHED)
; SOURCE LINE # 302
MOV A,R5
JZ ?C0049
; {
; SOURCE LINE # 303
; continue;
; SOURCE LINE # 304
; }
; SOURCE LINE # 305
?C0051:
; else
; {
; SOURCE LINE # 307
; FlashWrByte(i1, oldpara);
; SOURCE LINE # 308
MOV DPTR,#i1?459
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R7,A
LCALL _FlashWrByte
; oldpara = FlashRdByte(i0+1);
; SOURCE LINE # 309
MOV DPTR,#i0?457+01H
MOVX A,@DPTR
ADD A,#01H
MOV R7,A
MOV DPTR,#i0?457
MOVX A,@DPTR
ADDC A,#00H
MOV R6,A
LCALL _FlashRdByte
XCH A,R5
MOV A,R7
XCH A,R5
; i1 ++;
; SOURCE LINE # 310
MOV DPTR,#i1?459+01H
MOVX A,@DPTR
INC A
MOVX @DPTR,A
JNZ ?C0065
MOV DPTR,#i1?459
MOVX A,@DPTR
INC A
MOVX @DPTR,A
?C0065:
; FlashWrByte(i1, oldpara);
; SOURCE LINE # 311
MOV DPTR,#i1?459
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R7,A
LCALL _FlashWrByte
; i1 ++;
; SOURCE LINE # 312
MOV DPTR,#i1?459+01H
MOVX A,@DPTR
INC A
MOVX @DPTR,A
JNZ ?C0066
MOV DPTR,#i1?459
MOVX A,@DPTR
INC A
MOVX @DPTR,A
?C0066:
; }
; SOURCE LINE # 313
; }
; SOURCE LINE # 314
?C0049:
MOV DPTR,#i0?457+01H
MOVX A,@DPTR
ADD A,#02H
MOVX @DPTR,A
MOV DPTR,#i0?457
MOVX A,@DPTR
ADDC A,#00H
MOVX @DPTR,A
SJMP ?C0047
?C0048:
;
; // 6, write head 1 of old sector to show erashed
; FlashWrByte(i01-1, H_ERASED);
; SOURCE LINE # 317
MOV DPTR,#i01?458+01H
MOVX A,@DPTR
ADD A,#0FFH
MOV R7,A
MOV DPTR,#i01?458
MOVX A,@DPTR
ADDC A,#0FFH
MOV R6,A
CLR A
MOV R5,A
LCALL _FlashWrByte
; // 7, write head 1 of new sector to show using it now
; FlashWrByte(i11-1, H_USING);
; SOURCE LINE # 319
MOV DPTR,#i11?460+01H
MOVX A,@DPTR
ADD A,#0FFH
MOV R7,A
MOV DPTR,#i11?460
MOVX A,@DPTR
ADDC A,#0FFH
MOV R6,A
MOV R5,#0F0H
LJMP _FlashWrByte
; END OF ParaCopy
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -