📄 necdecode.lis
字号:
0446 .dbline 437
0446 ; break;
0446 0FC0 xjmp L58
0448 L104:
0448 .dbline 439
0448 ; case 83:
0448 ; ResultNec=94;
0448 8EE5 ldi R24,94
044A 80931000 sts _ResultNec,R24
044E .dbline 440
044E ; break;
044E 0BC0 xjmp L58
0450 L105:
0450 .dbline 442
0450 ; case 28:
0450 ; ResultNec=95;
0450 8FE5 ldi R24,95
0452 80931000 sts _ResultNec,R24
0456 .dbline 443
0456 ; break;
0456 07C0 xjmp L58
0458 L106:
0458 .dbline 445
0458 ; case 79:
0458 ; ResultNec=96;
0458 80E6 ldi R24,96
045A 80931000 sts _ResultNec,R24
045E .dbline 446
045E ; break;
045E 03C0 xjmp L58
0460 L57:
0460 .dbline 448
0460 8EE7 ldi R24,126
0462 80931000 sts _ResultNec,R24
0466 .dbline 449
0466 L58:
0466 .dbline -2
0466 L55:
0466 0E940000 xcall pop_gset1
046A .dbline 0 ; func end
046A 0895 ret
046C .dbend
046C .dbfunc e Deal_Repeat _Deal_Repeat fV
.even
046C _Deal_Repeat::
046C .dbline -1
046C .dbline 454
046C ; default:
046C ; ResultNec=126;
046C ; break;
046C ; }
046C ; }
046C ;
046C ; void Deal_Repeat()
046C ; {
046C .dbline 455
046C ; if((NecData[1]==0x05)&&(NecData[0]==0x86)) //用户码正确 for bestbuy
046C 80911D00 lds R24,_NecData+1
0470 8530 cpi R24,5
0472 09F5 brne L112
0474 80911C00 lds R24,_NecData
0478 8638 cpi R24,134
047A E9F4 brne L112
047C .dbline 456
047C ; {
047C .dbline 457
047C ; Nec_consumer_map();
047C B4DE xcall _Nec_consumer_map
047E .dbline 461
047E ;
047E ; // ResultNec=NecData[2];
047E ; // UDR=0x20;
047E ; irda_num++;
047E 80910900 lds R24,_irda_num
0482 8F5F subi R24,255 ; addi 1
0484 80930900 sts _irda_num,R24
0488 .dbline 462
0488 ; irda_b=1;
0488 81E0 ldi R24,1
048A 80930800 sts _irda_b,R24
048E .dbline 463
048E ; if(RepeatControl==3)
048E 80910500 lds R24,_RepeatControl
0492 8330 cpi R24,3
0494 51F4 brne L115
0496 .dbline 464
0496 ; {
0496 .dbline 465
0496 ; if(System_State==standby||System_State==working)
0496 20900000 lds R2,_System_State
049A 2220 tst R2
049C 21F0 breq L119
049E 80910000 lds R24,_System_State
04A2 8330 cpi R24,3
04A4 61F5 brne L113
04A6 L119:
04A6 .dbline 466
04A6 ; {
04A6 .dbline 467
04A6 ; Nec_data_deal_fun();
04A6 E0DD xcall _Nec_data_deal_fun
04A8 .dbline 468
04A8 ; }
04A8 .dbline 469
04A8 ; }
04A8 2AC0 xjmp L113
04AA L115:
04AA .dbline 471
04AA ; else
04AA ; {
04AA .dbline 472
04AA ; RepeatControl++;
04AA 80910500 lds R24,_RepeatControl
04AE 8F5F subi R24,255 ; addi 1
04B0 80930500 sts _RepeatControl,R24
04B4 .dbline 473
04B4 ; }
04B4 .dbline 474
04B4 ; }
04B4 24C0 xjmp L113
04B6 L112:
04B6 .dbline 476
04B6 ; else
04B6 ; {
04B6 .dbline 489
04B6 ;
04B6 ; /* UDR=0x20;
04B6 ; while(!(UCSRA&(1<<UDRE)));
04B6 ; UDR=NecData[0];
04B6 ; while(!(UCSRA&(1<<UDRE)));
04B6 ; UDR=NecData[1];
04B6 ; while(!(UCSRA&(1<<UDRE)));
04B6 ; UDR=NecData[2];
04B6 ; while(!(UCSRA&(1<<UDRE)));
04B6 ; UDR=NecData[3];
04B6 ; */
04B6 ;
04B6 ; if((NecData[1]==0xfc)&&(NecData[0]==0x00)) //用户码正确 for fac
04B6 80911D00 lds R24,_NecData+1
04BA 8C3F cpi R24,252
04BC 01F5 brne L120
04BE 20901C00 lds R2,_NecData
04C2 2220 tst R2
04C4 E1F4 brne L120
04C6 .dbline 490
04C6 ; {
04C6 .dbline 491
04C6 ; Nec_fac_map();
04C6 D7DE xcall _Nec_fac_map
04C8 .dbline 495
04C8 ;
04C8 ; // ResultNec=NecData[2];
04C8 ; // UDR=0x20;
04C8 ; irda_num++;
04C8 80910900 lds R24,_irda_num
04CC 8F5F subi R24,255 ; addi 1
04CE 80930900 sts _irda_num,R24
04D2 .dbline 496
04D2 ; irda_b=1;
04D2 81E0 ldi R24,1
04D4 80930800 sts _irda_b,R24
04D8 .dbline 497
04D8 ; if(RepeatControl==3)
04D8 80910500 lds R24,_RepeatControl
04DC 8330 cpi R24,3
04DE 51F4 brne L123
04E0 .dbline 498
04E0 ; {
04E0 .dbline 499
04E0 ; if(System_State==standby||System_State==working)
04E0 20900000 lds R2,_System_State
04E4 2220 tst R2
04E6 21F0 breq L127
04E8 80910000 lds R24,_System_State
04EC 8330 cpi R24,3
04EE 39F4 brne L124
04F0 L127:
04F0 .dbline 500
04F0 ; {
04F0 .dbline 501
04F0 ; Nec_data_deal_fun();
04F0 BBDD xcall _Nec_data_deal_fun
04F2 .dbline 502
04F2 ; }
04F2 .dbline 503
04F2 ; }
04F2 05C0 xjmp L124
04F4 L123:
04F4 .dbline 505
04F4 ; else
04F4 ; {
04F4 .dbline 506
04F4 ; RepeatControl++;
04F4 80910500 lds R24,_RepeatControl
04F8 8F5F subi R24,255 ; addi 1
04FA 80930500 sts _RepeatControl,R24
04FE .dbline 507
04FE ; }
04FE L124:
04FE .dbline 508
04FE ; }
04FE L120:
04FE .dbline 509
04FE ; }
04FE L113:
04FE .dbline 510
04FE ; HasR_Head_Reset_Nec_receive();
04FE 9FDD xcall _HasR_Head_Reset_Nec_receive
0500 .dbline -2
0500 L111:
0500 .dbline 0 ; func end
0500 0895 ret
0502 .dbend
0502 .dbfunc e Nec_Decode _Nec_Decode fV
.even
0502 _Nec_Decode::
0502 .dbline -1
0502 .dbline 513
0502 ; }
0502 ; void Nec_Decode()
0502 ; {
0502 .dbline 516
0502 ;
0502 ; // if(((NecData[1]==0xbf)||(NecData[1]==0xfc))&&(NecData[0]==0x00)) //用户码正确 for hisense
0502 ; if((NecData[1]==0x05)&&(NecData[0]==0x86)) //用户码正确 for bestbuy
0502 80911D00 lds R24,_NecData+1
0506 8530 cpi R24,5
0508 B9F4 brne L129
050A 80911C00 lds R24,_NecData
050E 8638 cpi R24,134
0510 99F4 brne L129
0512 .dbline 517
0512 ; {
0512 .dbline 522
0512 ; // UDR=0x66;
0512 ; // while(!(UCSRA&(1<<UDRE)));
0512 ; // UDR=NecData[2];
0512 ;
0512 ; Nec_consumer_map();
0512 69DE xcall _Nec_consumer_map
0514 .dbline 525
0514 ; // ResultNec=NecData[2];
0514 ; // UDR=0x10;
0514 ; irda_num++;
0514 80910900 lds R24,_irda_num
0518 8F5F subi R24,255 ; addi 1
051A 80930900 sts _irda_num,R24
051E .dbline 526
051E ; irda_b=1;
051E 81E0 ldi R24,1
0520 80930800 sts _irda_b,R24
0524 .dbline 527
0524 ; if(System_State==standby||System_State==working)
0524 20900000 lds R2,_System_State
0528 2220 tst R2
052A 21F0 breq L134
052C 80910000 lds R24,_System_State
0530 8330 cpi R24,3
0532 E1F4 brne L130
0534 L134:
0534 .dbline 528
0534 ; {
0534 .dbline 529
0534 ; Nec_data_deal_fun();
0534 99DD xcall _Nec_data_deal_fun
0536 .dbline 530
0536 ; }
0536 .dbline 531
0536 ; }
0536 1AC0 xjmp L130
0538 L129:
0538 .dbline 533
0538 ; else
0538 ; {
0538 .dbline 535
0538 ;
0538 ; if((NecData[1]==0xfc)&&(NecData[0]==0x00)) //用户码正确 for bestbuy
0538 80911D00 lds R24,_NecData+1
053C 8C3F cpi R24,252
053E B1F4 brne L135
0540 20901C00 lds R2,_NecData
0544 2220 tst R2
0546 91F4 brne L135
0548 .dbline 536
0548 ; {
0548 .dbline 538
0548 ; // UDR=0x10;
0548 ; Nec_fac_map();
0548 96DE xcall _Nec_fac_map
054A .dbline 541
054A ; // ResultNec=NecData[2];
054A ; // UDR=0x10;
054A ; irda_num++;
054A 80910900 lds R24,_irda_num
054E 8F5F subi R24,255 ; addi 1
0550 80930900 sts _irda_num,R24
0554 .dbline 542
0554 ; irda_b=1;
0554 81E0 ldi R24,1
0556 80930800 sts _irda_b,R24
055A .dbline 543
055A ; if(System_State==standby||System_State==working)
055A 20900000 lds R2,_System_State
055E 2220 tst R2
0560 21F0 breq L140
0562 80910000 lds R24,_System_State
0566 8330 cpi R24,3
0568 09F4 brne L138
056A L140:
056A .dbline 544
056A ; {
056A .dbline 545
056A ; Nec_data_deal_fun();
056A 7EDD xcall _Nec_data_deal_fun
056C .dbline 546
056C ; }
056C L138:
056C .dbline 547
056C ; }
056C L135:
056C .dbline 548
056C ; }
056C L130:
056C .dbline 549
056C ; HasR_Head_Reset_Nec_receive();
056C 68DD xcall _HasR_Head_Reset_Nec_receive
056E .dbline -2
056E L128:
056E .dbline 0 ; func end
056E 0895 ret
0570 .dbend
0570 .dbfunc e RepeatReceive _RepeatReceive fV
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -