📄 necdecode.s
字号:
; case 65: //dot button
; ResultNec=36;
ldi R24,36
sts _ResultNec,R24
.dbline 292
; break;
xjmp L44
L43:
.dbline 294
ldi R24,49
sts _ResultNec,R24
.dbline 295
L44:
.dbline -2
L41:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbend
.dbfunc e Nec_fac_map _Nec_fac_map fV
.area func_lit(rom, con, rel)
L108:
.word `L61
.word `L70
.word `L57
.word `L57
.word `L74
.word `L69
.word `L76
.word `L57
.word `L87
.word `L92
.word `L71
.word `L57
.word `L57
.word `L68
.word `L57
.word `L96
.word `L60
.word `L75
.word `L57
.word `L57
.word `L95
.word `L62
.word `L57
.word `L63
.word `L99
.word `L66
.word `L57
.word `L72
.word `L105
.word `L93
.word `L98
.word `L94
.area text(rom, con, rel)
.dbfile G:\McuControl\necdecode.c
.area func_lit(rom, con, rel)
L109:
.word `L84
.word `L90
.word `L67
.word `L83
.word `L88
.word `L78
.word `L65
.word `L103
.word `L81
.word `L82
.word `L85
.word `L79
.word `L57
.word `L89
.word `L106
.word `L77
.word `L86
.word `L57
.word `L104
.word `L91
.word `L57
.word `L102
.word `L57
.word `L101
.word `L100
.word `L80
.word `L97
.word `L57
.word `L73
.word `L64
.area text(rom, con, rel)
.dbfile G:\McuControl\necdecode.c
.even
_Nec_fac_map::
xcall push_gset1
.dbline -1
.dbline 302
; default:
; ResultNec=49;
; break;
;
; }
;
; }
;
; void Nec_fac_map()
; {
.dbline 303
; NecData_Map=NecData[2];
lds R2,_NecData+2
sts _NecData_Map,R2
.dbline 304
; switch(NecData_Map)
mov R20,R2
clr R21
cpi R20,0
ldi R30,0
cpc R21,R30
brge X13
xjmp L57
X13:
ldi R24,31
ldi R25,0
cp R24,R20
cpc R25,R21
brlt L107
ldi R16,2
ldi R17,0
movw R18,R20
xcall empy16s
movw R30,R16
ldi R24,<L108
ldi R25,>L108
add R30,R24
adc R31,R25
lpm R0,Z+
lpm R1,Z
movw R30,R0
ijmp
L107:
cpi R20,65
ldi R30,0
cpc R21,R30
brge X14
xjmp L57
X14:
ldi R24,94
ldi R25,0
cp R24,R20
cpc R25,R21
brge X15
xjmp L57
X15:
ldi R16,2
ldi R17,0
movw R18,R20
xcall empy16s
movw R30,R16
ldi R24,<L109-130
ldi R25,>L109-130
add R30,R24
adc R31,R25
lpm R0,Z+
lpm R1,Z
movw R30,R0
ijmp
X12:
.dbline 305
; {
L60:
.dbline 307
; case 16:
; ResultNec=50;
ldi R24,50
sts _ResultNec,R24
.dbline 308
; break;
xjmp L58
L61:
.dbline 310
; case 0:
; ResultNec=51;
ldi R24,51
sts _ResultNec,R24
.dbline 311
; break;
xjmp L58
L62:
.dbline 313
; case 21:
; ResultNec=52;
ldi R24,52
sts _ResultNec,R24
.dbline 314
; break;
xjmp L58
L63:
.dbline 316
; case 23:
; ResultNec=53;
ldi R24,53
sts _ResultNec,R24
.dbline 317
; break;
xjmp L58
L64:
.dbline 319
; case 94:
; ResultNec=54;
ldi R24,54
sts _ResultNec,R24
.dbline 320
; break;
xjmp L58
L65:
.dbline 322
; case 71:
; ResultNec=55;
ldi R24,55
sts _ResultNec,R24
.dbline 323
; break;
xjmp L58
L66:
.dbline 325
; case 25:
; ResultNec=56;
ldi R24,56
sts _ResultNec,R24
.dbline 326
; break;
xjmp L58
L67:
.dbline 328
; case 67:
; ResultNec=57;
ldi R24,57
sts _ResultNec,R24
.dbline 329
; break;
xjmp L58
L68:
.dbline 331
; case 13:
; ResultNec=58;
ldi R24,58
sts _ResultNec,R24
.dbline 332
; break;
xjmp L58
L69:
.dbline 334
; case 5:
; ResultNec=59;
ldi R24,59
sts _ResultNec,R24
.dbline 335
; break;
xjmp L58
L70:
.dbline 337
; case 1:
; ResultNec=60;
ldi R24,60
sts _ResultNec,R24
.dbline 338
; break;
xjmp L58
L71:
.dbline 340
; case 10:
; ResultNec=61;
ldi R24,61
sts _ResultNec,R24
.dbline 341
; break;
xjmp L58
L72:
.dbline 343
; case 27:
; ResultNec=62;
ldi R24,62
sts _ResultNec,R24
.dbline 344
; break;
xjmp L58
L73:
.dbline 346
; case 93:
; ResultNec=63;
ldi R24,63
sts _ResultNec,R24
.dbline 347
; break;
xjmp L58
L74:
.dbline 349
; case 4:
; ResultNec=64;
ldi R24,64
sts _ResultNec,R24
.dbline 350
; break;
xjmp L58
L75:
.dbline 352
; case 17:
; ResultNec=65;
ldi R24,65
sts _ResultNec,R24
.dbline 353
; break;
xjmp L58
L76:
.dbline 355
; case 6:
; ResultNec=66;
ldi R24,66
sts _ResultNec,R24
.dbline 356
; break;
xjmp L58
L77:
.dbline 358
; case 80:
; ResultNec=67;
ldi R24,67
sts _ResultNec,R24
.dbline 359
; break;
xjmp L58
L78:
.dbline 361
; case 70:
; ResultNec=68;
ldi R24,68
sts _ResultNec,R24
.dbline 362
; break;
xjmp L58
L79:
.dbline 364
; case 76:
; ResultNec=69;
ldi R24,69
sts _ResultNec,R24
.dbline 365
; break;
xjmp L58
L80:
.dbline 367
; case 90:
; ResultNec=70;
ldi R24,70
sts _ResultNec,R24
.dbline 368
; break;
xjmp L58
L81:
.dbline 370
; case 73:
; ResultNec=71;
ldi R24,71
sts _ResultNec,R24
.dbline 371
; break;
xjmp L58
L82:
.dbline 373
; case 74:
; ResultNec=72;
ldi R24,72
sts _ResultNec,R24
.dbline 374
; break;
xjmp L58
L83:
.dbline 376
; case 68:
; ResultNec=73;
ldi R24,73
sts _ResultNec,R24
.dbline 377
; break;
xjmp L58
L84:
.dbline 379
; case 65:
; ResultNec=74;
ldi R24,74
sts _ResultNec,R24
.dbline 380
; break;
xjmp L58
L85:
.dbline 382
; case 75:
; ResultNec=75;
ldi R24,75
sts _ResultNec,R24
.dbline 383
; break;
xjmp L58
L86:
.dbline 385
; case 81:
; ResultNec=76;
ldi R24,76
sts _ResultNec,R24
.dbline 386
; break;
xjmp L58
L87:
.dbline 388
; case 8:
; ResultNec=77;
ldi R24,77
sts _ResultNec,R24
.dbline 389
; break;
xjmp L58
L88:
.dbline 391
; case 69:
; ResultNec=78;
ldi R24,78
sts _ResultNec,R24
.dbline 392
; break;
xjmp L58
L89:
.dbline 394
; case 78:
; ResultNec=79;
ldi R24,79
sts _ResultNec,R24
.dbline 395
; break;
xjmp L58
L90:
.dbline 397
; case 66:
; ResultNec=80;
ldi R24,80
sts _ResultNec,R24
.dbline 398
; break;
xjmp L58
L91:
.dbline 400
; case 84:
; ResultNec=81;
ldi R24,81
sts _ResultNec,R24
.dbline 401
; break;
xjmp L58
L92:
.dbline 403
; case 9:
; ResultNec=82;
ldi R24,82
sts _ResultNec,R24
.dbline 404
; break;
xjmp L58
L93:
.dbline 406
; case 29:
; ResultNec=83;
ldi R24,83
sts _ResultNec,R24
.dbline 407
; break;
xjmp L58
L94:
.dbline 409
; case 31:
; ResultNec=84;
ldi R24,84
sts _ResultNec,R24
.dbline 410
; break;
xjmp L58
L95:
.dbline 412
; case 20:
; ResultNec=85;
ldi R24,85
sts _ResultNec,R24
.dbline 413
; break;
xjmp L58
L96:
.dbline 415
; case 15:
; ResultNec=86;
ldi R24,86
sts _ResultNec,R24
.dbline 416
; break;
xjmp L58
L97:
.dbline 418
; case 91:
; ResultNec=87;
ldi R24,87
sts _ResultNec,R24
.dbline 419
; break;
xjmp L58
L98:
.dbline 421
; case 30:
; ResultNec=88;
ldi R24,88
sts _ResultNec,R24
.dbline 422
; break;
xjmp L58
L99:
.dbline 424
; case 24:
; ResultNec=89;
ldi R24,89
sts _ResultNec,R24
.dbline 425
; break;
xjmp L58
L100:
.dbline 427
; case 89:
; ResultNec=90;
ldi R24,90
sts _ResultNec,R24
.dbline 428
; break;
xjmp L58
L101:
.dbline 430
; case 88:
; ResultNec=91;
ldi R24,91
sts _ResultNec,R24
.dbline 431
; break;
xjmp L58
L102:
.dbline 433
; case 86:
; ResultNec=92;
ldi R24,92
sts _ResultNec,R24
.dbline 434
; break;
xjmp L58
L103:
.dbline 436
; case 72:
; ResultNec=93;
ldi R24,93
sts _ResultNec,R24
.dbline 437
; break;
xjmp L58
L104:
.dbline 439
; case 83:
; ResultNec=94;
ldi R24,94
sts _ResultNec,R24
.dbline 440
; break;
xjmp L58
L105:
.dbline 442
; case 28:
; ResultNec=95;
ldi R24,95
sts _ResultNec,R24
.dbline 443
; break;
xjmp L58
L106:
.dbline 445
; case 79:
; ResultNec=96;
ldi R24,96
sts _ResultNec,R24
.dbline 446
; break;
xjmp L58
L57:
.dbline 448
ldi R24,126
sts _ResultNec,R24
.dbline 449
L58:
.dbline -2
L55:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbend
.dbfunc e Deal_Repeat _Deal_Repeat fV
.even
_Deal_Repeat::
.dbline -1
.dbline 454
; default:
; ResultNec=126;
; break;
; }
; }
;
; void Deal_Repeat()
; {
.dbline 455
; if((NecData[1]==0x05)&&(NecData[0]==0x86)) //用户码正确 for bestbuy
lds R24,_NecData+1
cpi R24,5
brne L112
lds R24,_NecData
cpi R24,134
brne L112
.dbline 456
; {
.dbline 457
; Nec_consumer_map();
xcall _Nec_consumer_map
.dbline 461
;
; // ResultNec=NecData[2];
; // UDR=0x20;
; irda_num++;
lds R24,_irda_num
subi R24,255 ; addi 1
sts _irda_num,R24
.dbline 462
; irda_b=1;
ldi R24,1
sts _irda_b,R24
.dbline 463
; if(RepeatControl==3)
lds R24,_RepeatControl
cpi R24,3
brne L115
.dbline 464
; {
.dbline 465
; if(System_State==standby||System_State==working)
lds R2,_System_State
tst R2
breq L119
lds R24,_System_State
cpi R24,3
brne L113
L119:
.dbline 466
; {
.dbline 467
; Nec_data_deal_fun();
xcall _Nec_data_deal_fun
.dbline 468
; }
.dbline 469
; }
xjmp L113
L115:
.dbline 471
; else
; {
.dbline 472
; RepeatControl++;
lds R24,_RepeatControl
subi R24,255 ; addi 1
sts _RepeatControl,R24
.dbline 473
; }
.dbline 474
; }
xjmp L113
L112:
.dbline 476
; else
; {
.dbline 489
;
; /* UDR=0x20;
; while(!(UCSRA&(1<<UDRE)));
; UDR=NecData[0];
; while(!(UCSRA&(1<<UDRE)));
; UDR=NecData[1];
; while(!(UCSRA&(1<<UDRE)));
; UDR=NecData[2];
; while(!(UCSRA&(1<<UDRE)));
; UDR=NecData[3];
; */
;
; if((NecData[1]==0xfc)&&(NecData[0]==0x00)) //用户码正确 for fac
lds R24,_NecData+1
cpi R24,252
brne L120
lds R2,_NecData
tst R2
brne L120
.dbline 490
; {
.dbline 491
; Nec_fac_map();
xcall _Nec_fac_map
.dbline 495
;
; // ResultNec=NecData[2];
; // UDR=0x20;
; irda_num++;
lds R24,_irda_num
subi R24,255 ; addi 1
sts _irda_num,R24
.dbline 496
; irda_b=1;
ldi R24,1
sts _irda_b,R24
.dbline 497
; if(RepeatControl==3)
lds R24,_RepeatControl
cpi R24,3
brne L123
.dbline 498
; {
.dbline 499
; if(System_State==standby||System_State==working)
lds R2,_System_State
tst R2
breq L127
lds R24,_System_State
cpi R24,3
brne L124
L127:
.dbline 500
; {
.dbline 501
; Nec_data_deal_fun();
xcall _Nec_data_deal_fun
.dbline 502
; }
.dbline 503
; }
xjmp L124
L123:
.dbline 505
; else
; {
.dbline 506
; RepeatControl++;
lds R24,_RepeatControl
subi R24,255 ; addi 1
sts _RepeatControl,R24
.dbline 507
; }
L124:
.dbline 508
; }
L120:
.dbline 509
; }
L113:
.dbline 510
; HasR_Head_Reset_Nec_receive();
xcall _HasR_Head_Reset_Nec_receive
.dbline -2
L111:
.dbline 0 ; func end
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -