📄 rdio.lst
字号:
A51 MACRO ASSEMBLER RDIO 03/21/2008 00:23:12 PAGE 5
256
---- 257 RSEG ?PR?CloseIO?RDIO
0000 258 CloseIO:
259 ; SOURCE LINE # 39
260 ; {
261 ; SOURCE LINE # 40
262 ; GpBase = 0xff00;
263 ; SOURCE LINE # 41
0000 900000 F 264 MOV DPTR,#GpBase
0003 74FF 265 MOV A,#0FFH
0005 438E02 266 ORL AUXR,#02H
0008 F0 267 MOVX @DPTR,A
0009 538EFD 268 ANL AUXR,#0FDH
000C A3 269 INC DPTR
000D E4 270 CLR A
000E F0 271 MOVX @DPTR,A
272 ; P2_7 = 1; // disable the CS for RC500
273 ; SOURCE LINE # 42
000F D2A7 274 SETB P2_7
275 ; }
276 ; SOURCE LINE # 43
0011 22 277 RET
278 ; END OF CloseIO
279
280 ;
281 ; ///////////////////////////////////////////////////////////////////////////////
282 ; // G E N E R I C W R I T E
283 ; ///////////////////////////////////////////////////////////////////////////////
284 ; void WriteIO(unsigned char Address, unsigned char data value)
285
---- 286 RSEG ?PR?_WriteIO?RDIO
0000 287 _WriteIO:
288 USING 0
289 ; SOURCE LINE # 48
290 ;---- Variable 'value?241' assigned to Register 'R5' ----
291 ;---- Variable 'Address?240' assigned to Register 'R7' ----
292 ; {
293 ; SOURCE LINE # 49
294 ; AUXR |=0x02;
295 ; SOURCE LINE # 50
296
297 ; WriteRawIO(Address,value);
298 ; SOURCE LINE # 51
0000 900000 F 299 MOV DPTR,#GpBase
0003 E0 300 MOVX A,@DPTR
0004 FC 301 MOV R4,A
0005 A3 302 INC DPTR
0006 E0 303 MOVX A,@DPTR
0007 2F 304 ADD A,R7
0008 F582 305 MOV DPL,A
000A E4 306 CLR A
000B 3C 307 ADDC A,R4
000C F583 308 MOV DPH,A
000E ED 309 MOV A,R5
000F 438E02 310 ORL AUXR,#02H
0012 F0 311 MOVX @DPTR,A
312 ; AUXR &=0xfd; // write value at the specified
313 ; SOURCE LINE # 52
0013 538EFD 314 ANL AUXR,#0FDH
315 ; // address
316 ; }
317 ; SOURCE LINE # 54
0016 22 318 RET
319 ; END OF _WriteIO
320
321 ;
A51 MACRO ASSEMBLER RDIO 03/21/2008 00:23:12 PAGE 6
322 ; ///////////////////////////////////////////////////////////////////////////////
323 ; // G E N E R I C R E A D
324 ; ///////////////////////////////////////////////////////////////////////////////
325 ; unsigned char ReadIO(unsigned char data Address)
326
---- 327 RSEG ?PR?_ReadIO?RDIO
0000 328 _ReadIO:
329 USING 0
330 ; SOURCE LINE # 59
331 ;---- Variable 'Address?342' assigned to Register 'R7' ----
332 ; {
333 ; SOURCE LINE # 60
334 ; static unsigned char c;
335 ; AUXR |=0x02;
336 ; SOURCE LINE # 62
337
338 ; c = ReadRawIO(Address); // read value at the specified
339 ; SOURCE LINE # 63
0000 900000 F 340 MOV DPTR,#GpBase
0003 E0 341 MOVX A,@DPTR
0004 FC 342 MOV R4,A
0005 A3 343 INC DPTR
0006 E0 344 MOVX A,@DPTR
0007 2F 345 ADD A,R7
0008 F582 346 MOV DPL,A
000A E4 347 CLR A
000B 3C 348 ADDC A,R4
000C F583 349 MOV DPH,A
000E 438E02 350 ORL AUXR,#02H
0011 E0 351 MOVX A,@DPTR
0012 538EFD 352 ANL AUXR,#0FDH
0015 900000 F 353 MOV DPTR,#c?343
0018 F0 354 MOVX @DPTR,A
355 ; AUXR &=0xfd; // address
356 ; SOURCE LINE # 64
357
358 ; return c;
359 ; SOURCE LINE # 65
0019 E0 360 MOVX A,@DPTR
001A FF 361 MOV R7,A
362 ; }
363 ; SOURCE LINE # 66
001B 364 ?C0004:
001B 22 365 RET
366 ; END OF _ReadIO
367
368 ;
369 ; #ifndef SEC_NO_MICORE
370 ; ///////////////////////////////////////////////////////////////////////////////
371 ; // W R I T E S E V E R A L M E M O R Y L O C A T I O N S
372 ; ///////////////////////////////////////////////////////////////////////////////
373 ; void WriteIOBlock(unsigned char *Addr_Data, unsigned short len)
374
---- 375 RSEG ?PR?_WriteIOBlock?RDIO
0000 376 _WriteIOBlock:
377 USING 0
378 ; SOURCE LINE # 72
0000 900000 F 379 MOV DPTR,#Addr_Data?444
0003 EB 380 MOV A,R3
0004 F0 381 MOVX @DPTR,A
0005 A3 382 INC DPTR
0006 EA 383 MOV A,R2
0007 F0 384 MOVX @DPTR,A
0008 A3 385 INC DPTR
0009 E9 386 MOV A,R1
000A F0 387 MOVX @DPTR,A
A51 MACRO ASSEMBLER RDIO 03/21/2008 00:23:12 PAGE 7
000B A3 388 INC DPTR
000C EC 389 MOV A,R4
000D F0 390 MOVX @DPTR,A
000E A3 391 INC DPTR
000F ED 392 MOV A,R5
0010 F0 393 MOVX @DPTR,A
394 ; {
395 ; SOURCE LINE # 73
396 ; static unsigned short cnt;
397 ;
398 ; for (cnt = 0; cnt < len; cnt++)
399 ; SOURCE LINE # 76
0011 E4 400 CLR A
0012 900000 F 401 MOV DPTR,#cnt?446
0015 F0 402 MOVX @DPTR,A
0016 A3 403 INC DPTR
0017 F0 404 MOVX @DPTR,A
0018 405 ?C0005:
0018 900000 F 406 MOV DPTR,#len?445
001B E0 407 MOVX A,@DPTR
001C FE 408 MOV R6,A
001D A3 409 INC DPTR
001E E0 410 MOVX A,@DPTR
001F FF 411 MOV R7,A
0020 900000 F 412 MOV DPTR,#cnt?446
0023 E0 413 MOVX A,@DPTR
0024 FC 414 MOV R4,A
0025 A3 415 INC DPTR
0026 E0 416 MOVX A,@DPTR
0027 FD 417 MOV R5,A
0028 C3 418 CLR C
0029 9F 419 SUBB A,R7
002A EC 420 MOV A,R4
002B 9E 421 SUBB A,R6
002C 505B 422 JNC ?C0008
423 ; {
424 ; SOURCE LINE # 77
425 ; // write value at the specified address
426 ; WriteRawIO(Addr_Data[cnt*2],Addr_Data[cnt * 2 + 1]);
427 ; SOURCE LINE # 79
002E ED 428 MOV A,R5
002F 25E0 429 ADD A,ACC
0031 FF 430 MOV R7,A
0032 EC 431 MOV A,R4
0033 33 432 RLC A
0034 FE 433 MOV R6,A
0035 EF 434 MOV A,R7
0036 2401 435 ADD A,#01H
0038 FF 436 MOV R7,A
0039 E4 437 CLR A
003A 3E 438 ADDC A,R6
003B FE 439 MOV R6,A
003C 900000 F 440 MOV DPTR,#Addr_Data?444
003F E0 441 MOVX A,@DPTR
0040 FB 442 MOV R3,A
0041 A3 443 INC DPTR
0042 E0 444 MOVX A,@DPTR
0043 FA 445 MOV R2,A
0044 A3 446 INC DPTR
0045 E0 447 MOVX A,@DPTR
0046 F9 448 MOV R1,A
0047 8F82 449 MOV DPL,R7
0049 8E83 450 MOV DPH,R6
004B 120000 F 451 LCALL ?C?CLDOPTR
004E FD 452 MOV R5,A
004F 900000 F 453 MOV DPTR,#cnt?446+01H
A51 MACRO ASSEMBLER RDIO 03/21/2008 00:23:12 PAGE 8
0052 E0 454 MOVX A,@DPTR
0053 25E0 455 ADD A,ACC
0055 FF 456 MOV R7,A
0056 900000 F 457 MOV DPTR,#cnt?446
0059 E0 458 MOVX A,@DPTR
005A 33 459 RLC A
005B 8F82 460 MOV DPL,R7
005D F583 461 MOV DPH,A
005F 120000 F 462 LCALL ?C?CLDOPTR
0062 FF 463 MOV R7,A
0063 900000 F 464 MOV DPTR,#GpBase
0066 E0 465 MOVX A,@DPTR
0067 FA 466 MOV R2,A
0068 A3 467 INC DPTR
0069 E0 468 MOVX A,@DPTR
006A 2F 469 ADD A,R7
006B F582 470 MOV DPL,A
006D E4 471 CLR A
006E 3A 472 ADDC A,R2
006F F583 473 MOV DPH,A
0071 ED 474 MOV A,R5
0072 438E02 475 ORL AUXR,#02H
0075 F0 476 MOVX @DPTR,A
0076 538EFD 477 ANL AUXR,#0FDH
478 ; }
479 ; SOURCE LINE # 80
0079 900000 F 480 MOV DPTR,#cnt?446+01H
007C E0 481 MOVX A,@DPTR
007D 04 482 INC A
007E F0 483 MOVX @DPTR,A
007F 7097 484 JNZ ?C0005
0081 900000 F 485 MOV DPTR,#cnt?446
0084 E0 486 MOVX A,@DPTR
0085 04 487 INC A
0086 F0 488 MOVX @DPTR,A
0087 489 ?C0013:
0087 808F 490 SJMP ?C0005
491 ; }
492 ; SOURCE LINE # 81
0089 493 ?C0008:
0089 22 494 RET
495 ; END OF _WriteIOBlock
496
497 ;
498 ; ///////////////////////////////////////////////////////////////////////////////
499 ; // R E A D S E V E R A L M E M O R Y L O C A T I O N S
500 ; ///////////////////////////////////////////////////////////////////////////////
501 ; void ReadIOBlock(unsigned char* Addr_Data, unsigned short len)
502
---- 503 RSEG ?PR?_ReadIOBlock?RDIO
0000 504 _ReadIOBlock:
505 USING 0
506 ; SOURCE LINE # 86
0000 900000 F 507 MOV DPTR,#len?548
0003 EC 508 MOV A,R4
0004 F0 509 MOVX @DPTR,A
0005 A3 510 INC DPTR
0006 ED 511 MOV A,R5
0007 F0 512 MOVX @DPTR,A
513 ;---- Variable 'Addr_Data?547' assigned to Register 'R1/R2/R3' ----
514 ; {
515 ; SOURCE LINE # 87
516 ; static unsigned short cnt;
517 ;
518 ; for (cnt = 0; cnt < len; cnt)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -