📄 at88153.ls1
字号:
---- 224 RSEG ?XD?_At153WriteFS?AT88153
0000 225 ?_At153WriteFS?BYTE:
0000 226 value?352: DS 1
227
---- 228 RSEG ?XD?_At153VerifyPasswd?AT88153
0000 229 ?_At153VerifyPasswd?BYTE:
0000 230 rp?453: DS 1
0001 231 ORG 1
0001 232 buf?454: DS 3
0004 233 ORG 4
0004 234 i?455: DS 1
0005 235 ORG 5
0005 236 j?456: DS 1
0006 237 ORG 6
0006 238 pac?457: DS 1
0007 239 ORG 7
0007 240 zone?458: DS 1
241
---- 242 RSEG ?XD?_At153InitAuth?AT88153
0000 243 ?_At153InitAuth?BYTE:
0000 244 buf?559: DS 3
0003 245 ORG 3
0003 246 i?560: DS 1
247
---- 248 RSEG ?XD?_At153VerifyAuth?AT88153
0000 249 ?_At153VerifyAuth?BYTE:
0000 250 buf?661: DS 3
0003 251 ORG 3
0003 252 i?662: DS 1
0004 253 ORG 4
0004 254 aac?663: DS 1
255
A51 MACRO ASSEMBLER AT88153 03/13/2009 15:44:58 PAGE 5
---- 256 RSEG ?XD?_At153Command?AT88153
0000 257 ?_At153Command?BYTE:
0000 258 cmd?764: DS 1
0001 259 ORG 1
0001 260 starttime?765: DS 2
261
---- 262 RSEG ?XD?AT88153
0000 263 FWI: DS 1
0001 264 PACAddrs: DS 4
265
---- 266 RSEG ?C_INITSEG
0000 41 267 DB 041H
0001 0000 F 268 DW FWI
0003 05 269 DB 005H
270
0004 44 271 DB 044H
0005 0000 F 272 DW PACAddrs
0007 30 273 DB 030H
0008 38 274 DB 038H
0009 34 275 DB 034H
000A 3C 276 DB 03CH
277
278 ; /****************************************
279 ; * at88153.c *
280 ; * functions for 88sc153 card *
281 ; * designed by liulixun *
282 ; * last update: 04-23-2007 *
283 ; ****************************************/
284 ;
285 ; #include "includes.h"
286 ;
287 ; #define POLL_ACK_TMO 100
288 ;
289 ; // PAC addr
290 ; static unsigned char PACAddrs[4] = {0x30, 0x38, 0x34, 0x3c};
291 ;
292 ; // start and polling ACK with command "cmd"
293 ; static bit At153Command(unsigned char cmd);
294 ;
295 ; int At153ReadEE(unsigned char zone, unsigned char addr, unsigned char *buf, unsigned char
len)
296
---- 297 RSEG ?PR?_At153ReadEE?AT88153
0000 298 _At153ReadEE:
299 USING 0
300 ; SOURCE LINE # 18
0000 900000 F 301 MOV DPTR,#addr?041
0003 ED 302 MOV A,R5
0004 F0 303 MOVX @DPTR,A
0005 A3 304 INC DPTR
0006 EB 305 MOV A,R3
0007 F0 306 MOVX @DPTR,A
0008 A3 307 INC DPTR
0009 EA 308 MOV A,R2
000A F0 309 MOVX @DPTR,A
000B A3 310 INC DPTR
000C E9 311 MOV A,R1
000D F0 312 MOVX @DPTR,A
313 ;---- Variable 'zone?040' assigned to Register 'R7' ----
314 ; {
315 ; SOURCE LINE # 19
316 ; unsigned char i;
317 ;
318 ; zone <<= 2;
319 ; SOURCE LINE # 22
000E EF 320 MOV A,R7
A51 MACRO ASSEMBLER AT88153 03/13/2009 15:44:58 PAGE 6
000F 25E0 321 ADD A,ACC
0011 25E0 322 ADD A,ACC
323 ; zone &= 0x0c;
324 ; SOURCE LINE # 23
0013 540C 325 ANL A,#0CH
326 ; zone |= 0xB1;
327 ; SOURCE LINE # 24
0015 44B1 328 ORL A,#0B1H
0017 FF 329 MOV R7,A
330 ;
331 ; if(!At153Command(zone))
332 ; SOURCE LINE # 26
0018 120000 F 333 LCALL _At153Command
001B 4005 334 JC ?C0001
335 ; return -1;
336 ; SOURCE LINE # 27
001D 7EFF 337 MOV R6,#0FFH
001F 7FFF 338 MOV R7,#0FFH
0021 22 339 RET
0022 340 ?C0001:
341 ;
342 ; if(!IccSyncPutCharWaitACK(addr & 0x3f))
343 ; SOURCE LINE # 29
0022 900000 F 344 MOV DPTR,#addr?041
0025 E0 345 MOVX A,@DPTR
0026 543F 346 ANL A,#03FH
0028 FF 347 MOV R7,A
0029 120000 F 348 LCALL _IccSyncPutCharWaitACK
002C 4005 349 JC ?C0003
350 ; return -2;
351 ; SOURCE LINE # 30
002E 7EFF 352 MOV R6,#0FFH
0030 7FFE 353 MOV R7,#0FEH
0032 22 354 RET
0033 355 ?C0003:
356 ;
357 ; for(i=0; i<len-1; i++)
358 ; SOURCE LINE # 32
0033 E4 359 CLR A
0034 900000 F 360 MOV DPTR,#i?044
0037 F0 361 MOVX @DPTR,A
0038 362 ?C0004:
0038 900000 F 363 MOV DPTR,#len?043
003B E0 364 MOVX A,@DPTR
003C 14 365 DEC A
003D FF 366 MOV R7,A
003E A3 367 INC DPTR
003F E0 368 MOVX A,@DPTR
0040 C3 369 CLR C
0041 9F 370 SUBB A,R7
0042 5025 371 JNC ?C0005
372 ; {
373 ; SOURCE LINE # 33
374 ; buf[i] = IccSyncGetCharSendACK(1);
375 ; SOURCE LINE # 34
0044 D200 F 376 SETB ?IccSyncGetCharSendACK?BIT
0046 120000 F 377 LCALL IccSyncGetCharSendACK
0049 900000 F 378 MOV DPTR,#buf?042
004C E0 379 MOVX A,@DPTR
004D FB 380 MOV R3,A
004E A3 381 INC DPTR
004F E0 382 MOVX A,@DPTR
0050 FA 383 MOV R2,A
0051 A3 384 INC DPTR
0052 E0 385 MOVX A,@DPTR
0053 F9 386 MOV R1,A
A51 MACRO ASSEMBLER AT88153 03/13/2009 15:44:58 PAGE 7
0054 900000 F 387 MOV DPTR,#i?044
0057 E0 388 MOVX A,@DPTR
0058 F582 389 MOV DPL,A
005A 758300 390 MOV DPH,#00H
005D EF 391 MOV A,R7
005E 120000 F 392 LCALL ?C?CSTOPTR
393 ; }
394 ; SOURCE LINE # 35
0061 900000 F 395 MOV DPTR,#i?044
0064 E0 396 MOVX A,@DPTR
0065 04 397 INC A
0066 F0 398 MOVX @DPTR,A
0067 80CF 399 SJMP ?C0004
0069 400 ?C0005:
401 ; buf[i] = IccSyncGetCharSendACK(0);
402 ; SOURCE LINE # 36
0069 C200 F 403 CLR ?IccSyncGetCharSendACK?BIT
006B 120000 F 404 LCALL IccSyncGetCharSendACK
006E 900000 F 405 MOV DPTR,#buf?042
0071 E0 406 MOVX A,@DPTR
0072 FB 407 MOV R3,A
0073 A3 408 INC DPTR
0074 E0 409 MOVX A,@DPTR
0075 FA 410 MOV R2,A
0076 A3 411 INC DPTR
0077 E0 412 MOVX A,@DPTR
0078 F9 413 MOV R1,A
0079 900000 F 414 MOV DPTR,#i?044
007C E0 415 MOVX A,@DPTR
007D F582 416 MOV DPL,A
007F 758300 417 MOV DPH,#00H
0082 EF 418 MOV A,R7
0083 120000 F 419 LCALL ?C?CSTOPTR
420 ;
421 ; IccSyncStop();
422 ; SOURCE LINE # 38
0086 120000 F 423 LCALL IccSyncStop
424 ;
425 ; return i+1;
426 ; SOURCE LINE # 40
0089 900000 F 427 MOV DPTR,#i?044
008C E0 428 MOVX A,@DPTR
008D 2401 429 ADD A,#01H
008F FF 430 MOV R7,A
0090 E4 431 CLR A
0091 33 432 RLC A
0092 FE 433 MOV R6,A
434 ; }
435 ; SOURCE LINE # 41
0093 436 ?C0002:
0093 22 437 RET
438 ; END OF _At153ReadEE
439
440 ;
441 ; int At153WriteEE(unsigned char zone, unsigned char addr, unsigned char *buf, unsigned cha
r len)
442
---- 443 RSEG ?PR?_At153WriteEE?AT88153
0000 444 _At153WriteEE:
445 USING 0
446 ; SOURCE LINE # 43
0000 900000 F 447 MOV DPTR,#zone?145
0003 EF 448 MOV A,R7
0004 F0 449 MOVX @DPTR,A
0005 A3 450 INC DPTR
0006 ED 451 MOV A,R5
A51 MACRO ASSEMBLER AT88153 03/13/2009 15:44:58 PAGE 8
0007 F0 452 MOVX @DPTR,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -