📄 para.ls1
字号:
0002 220 i01?458: DS 2
0004 221 ORG 4
0004 222 i1?459: DS 2
0006 223 ORG 6
0006 224 i11?460: DS 2
0008 225 ORG 8
0008 226 StartAddr?461: DS 2
227
---- 228 RSEG ?BI?ParaCopy?PARA
0000 229 ?ParaCopy?BIT:
0000 230 dir?456: DBIT 1
231
---- 232 RSEG ?XD?PARA
0000 233 FWI: DS 1
234
---- 235 RSEG ?CO?PARA
0000 236 ?SC_0:
0000 4D656D20 237 DB 'M' ,'e' ,'m' ,' ' ,'i' ,'n' ,'i' ,'t' ,'i' ,'a'
0004 696E6974
0008 6961
000A 6C697A69 238 DB 'l' ,'i' ,'z' ,'i' ,'n' ,'g' ,'.' ,'.' ,'.' ,00DH
000E 6E672E2E
0012 2E0D
0014 0A00 239 DB 00AH,000H
240
0016 241 ?SC_22:
0016 53302065 242 DB 'S' ,'0' ,' ' ,'e' ,'m' ,'p' ,'t' ,'y' ,'.' ,00DH
001A 6D707479
001E 2E0D
0020 0A00 243 DB 00AH,000H
244
0022 245 ?SC_34:
0022 53312065 246 DB 'S' ,'1' ,' ' ,'e' ,'m' ,'p' ,'t' ,'y' ,'.' ,00DH
0026 6D707479
002A 2E0D
002C 0A00 247 DB 00AH,000H
A51 MACRO ASSEMBLER PARA 03/13/2009 15:44:57 PAGE 5
248
002E 249 ?SC_46:
002E 426F7468 250 DB 'B' ,'o' ,'t' ,'h' ,' ' ,'e' ,'m' ,'p' ,'t' ,'y'
0032 20656D70
0036 7479
0038 2C207573 251 DB ',' ,' ' ,'u' ,'s' ,'e' ,' ' ,'S' ,'0' ,'.' ,00DH
003C 65205330
0040 2E0D
0042 0A00 252 DB 00AH,000H
253
0044 254 ?SC_68:
0044 55736520 255 DB 'U' ,'s' ,'e' ,' ' ,'S' ,'1' ,'.' ,00DH,00AH,000H
0048 53312E0D
004C 0A00
256
004E 257 ?SC_78:
004E 55736520 258 DB 'U' ,'s' ,'e' ,' ' ,'S' ,'0' ,'.' ,00DH,00AH,000H
0052 53302E0D
0056 0A00
259
0058 260 ?SC_88:
0058 4572726F 261 DB 'E' ,'r' ,'r' ,'o' ,'r' ,',' ,' ' ,'c' ,'h' ,'e'
005C 722C2063
0060 6865
0062 636B2061 262 DB 'c' ,'k' ,' ' ,'a' ,'g' ,'a' ,'i' ,'n' ,' ' ,'a'
0066 6761696E
006A 2061
006C 6E642066 263 DB 'n' ,'d' ,' ' ,'f' ,'o' ,'r' ,'m' ,'a' ,'t' ,'.'
0070 6F726D61
0074 742E
0076 0D0A00 264 DB 00DH,00AH,000H
265
0079 266 ?SC_121:
0079 4E657720 267 DB 'N' ,'e' ,'w' ,' ' ,'m' ,'e' ,'m' ,' ' ,'o' ,'r'
007D 6D656D20
0081 6F72
0083 206D656D 268 DB ' ' ,'m' ,'e' ,'m' ,' ' ,'e' ,'r' ,'r' ,'o' ,'r'
0087 20657272
008B 6F72
008D 2C207573 269 DB ',' ,' ' ,'u' ,'s' ,'e' ,' ' ,'d' ,'e' ,'f' ,'a'
0091 65206465
0095 6661
0097 756C7420 270 DB 'u' ,'l' ,'t' ,' ' ,'v' ,'a' ,'l' ,'u' ,'e' ,'s'
009B 76616C75
009F 6573
00A1 2E205772 271 DB '.' ,' ' ,'W' ,'r' ,'i' ,'t' ,'i' ,'n' ,'g' ,'.'
00A5 6974696E
00A9 672E
00AB 2E2E0D0A 272 DB '.' ,'.' ,00DH,00AH,000H
00AF 00
273
00B0 274 ?SC_176:
00B0 4F6B2E0D 275 DB 'O' ,'k' ,'.' ,00DH,00AH,000H
00B4 0A00
276
00B6 277 ParaStart:
00B6 1C00 278 DW 01C00H
279
00B8 280 ParaSize:
00B8 0100 281 DW 00100H
282
283
---- 284 RSEG ?XD?ParaCopy?PARA
285
---- 286 RSEG ?C_INITSEG
0000 41 287 DB 041H
A51 MACRO ASSEMBLER PARA 03/13/2009 15:44:57 PAGE 6
0001 0000 F 288 DW FWI
0003 05 289 DB 005H
290
291 ; /************************************
292 ; * para.c *
293 ; * save parameters *
294 ; * design by Liulixun *
295 ; * create at 04-13-2007 *
296 ; * update: 04-15-2007 *
297 ; ************************************/
298 ;
299 ; /* **************************************
300 ; Memory organization
301 ; ------------------------
302 ; | SEC0 | 55 f0 ... |
303 ; ------------------------
304 ; | SEC1 | 55 f0 ... |
305 ; ------------------------
306 ;
307 ; 0x55: head
308 ; 0xf0: using
309 ; 0x00: erased
310 ; 0xff: empty
311 ; 0xfc: copying
312 ;
313 ; If a sector is now in use, the 1st 2 byte is 0x55f0, else it should be 0x5500.
314 ; When sector 0 is full, we should copy sector 0 to sector 1, then then write
315 ; 0x5500 to the begining 2 bytes of sector 0.
316 ;
317 ; *****************************************/
318 ;
319 ; #include "includes.h"
320 ;
321 ; /*
322 ; // parameters to save:
323 ; #define PARA_ERASHED 0x00 // parameter erased
324 ; #define PARA_HEAD 0x55 // head of parameter
325 ; #define H_USING 0xf0
326 ; #define H_ERASED 0x00
327 ; #define H_COPYING 0xfc
328 ; #define H_EMPTY 0xff
329 ; #define PARA_EMPTY 0xff // unused
330 ; #define PARA_SWITCHS 0xfe // switch parameters
331 ; #define F_BORFC 0x01 // beep on rf card
332 ; #define F_BOTC 0x02 // beep on touch card
333 ; #define F_CINV 0x04 // invert package
334 ; #define F_NOTICE 0x08 // notice when card status changed
335 ; #define F_SNOA 0x10 // stop notice on ack
336 ; #define F_ASC 0x20 // auto search card
337 ; #define F_LED 0x40 // enable/disable led operation
338 ; #define PARA_LORC 0xfd // led on rf card
339 ; #define PARA_LOTC 0xfc // led on both card
340 ; #define PARA_LOBC 0xfb // led on touch card
341 ; #define PARA_LONC 0xfa // led on none card
342 ; #define PARA_RFCCT 0xf9 // rf card config time, 1 for 10 ms
343 ; #define PARA_RFRXGAIN 0xf8 /////////////////////////////////////////////////
/////////////////////////////////////////////////////
344 ;
345 ; #define SECTOR_SIZE 0x80
346 ;
347 ; */
348 ;
349 ; static code unsigned int ParaStart = 0x1c00;
350 ; static code unsigned int ParaSize = SECTOR_SIZE * 2;
351 ;
352 ; // copy parameters to next sector when one is full
A51 MACRO ASSEMBLER PARA 03/13/2009 15:44:57 PAGE 7
353 ; // dir: 1: sec 0 --> sect 1; 0: sec 1 --> sec 0
354 ; static void ParaCopy(bit dir);
355 ;
356 ;
357 ; // write a parameter
358 ; // para: parameter type, defined upon
359 ; // value: parameter value
360 ; // return: positive value for new value, -1 for error
361 ; int ParaWrite(unsigned char para, unsigned char value)
362
---- 363 RSEG ?PR?_ParaWrite?PARA
0000 364 _ParaWrite:
365 USING 0
366 ; SOURCE LINE # 71
0000 900000 F 367 MOV DPTR,#para?040
0003 EF 368 MOV A,R7
0004 F0 369 MOVX @DPTR,A
0005 A3 370 INC DPTR
0006 ED 371 MOV A,R5
0007 F0 372 MOVX @DPTR,A
373 ; {
374 ; SOURCE LINE # 72
375 ; unsigned int i;
376 ; unsigned char oldvalue;
377 ; unsigned char oldpara;
378 ; unsigned int StartAddr;
379 ; bit fRedo = 0;
380 ; SOURCE LINE # 77
0008 C200 F 381 CLR fRedo?046
382 ;
383 ; // find which sector is now in use.
384 ; if(FlashRdByte(ParaStart+1) == H_USING)
385 ; SOURCE LINE # 80
000A 900000 F 386 MOV DPTR,#ParaStart
000D 7401 387 MOV A,#01H
000F 93 388 MOVC A,@A+DPTR
0010 2401 389 ADD A,#01H
0012 FF 390 MOV R7,A
0013 E4 391 CLR A
0014 93 392 MOVC A,@A+DPTR
0015 3400 393 ADDC A,#00H
0017 FE 394 MOV R6,A
0018 120000 F 395 LCALL _FlashRdByte
001B BFF00A 396 CJNE R7,#0F0H,?C0001
397 ; StartAddr = ParaStart + 2;
398 ; SOURCE LINE # 81
001E 900000 F 399 MOV DPTR,#ParaStart
0021 7401 400 MOV A,#01H
0023 93 401 MOVC A,@A+DPTR
0024 2402 402 ADD A,#02H
0026 801C 403 SJMP ?C0068
0028 404 ?C0001:
405 ; else if(FlashRdByte(ParaStart + SECTOR_SIZE + 1) == H_USING)
406 ; SOURCE LINE # 82
0028 900000 F 407 MOV DPTR,#ParaStart
002B 7401 408 MOV A,#01H
002D 93 409 MOVC A,@A+DPTR
002E 2481 410 ADD A,#081H
0030 FF 411 MOV R7,A
0031 E4 412 CLR A
0032 93 413 MOVC A,@A+DPTR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -