📄 tft_7.lst
字号:
(0544) OSD_time=OSD_TIME;
0576 D8EB RCALL 0x0E62
(0545) }
0577 9626 ADIW R28,6
0578 D845 RCALL pop_gset5
0579 9508 RET
_aload_default:
p --> R20
j --> R22
057A D85C RCALL push_gset2
(0546) /*========================
(0547) 加载默认值
(0548) ========================*/
(0549) void aload_default(void)
(0550) {
(0551) unsigned char *p;
(0552) unsigned char j;
(0553) p=&user_adjust[1][0];
057B E745 LDI R20,0x75
057C E050 LDI R21,0
(0554) for(j=0;j<5;j++)
057D 2766 CLR R22
057E C005 RJMP 0x0584
(0555) {
(0556) EEPROMwrite(j,user_config[j]);
057F D948 RCALL 0x0EC8
0580 8120 LDD R18,Z+0
0581 2F06 MOV R16,R22
0582 DED6 RCALL _EEPROMwrite
0583 9563 INC R22
0584 3065 CPI R22,5
0585 F3C8 BCS 0x057F
(0557) }
(0558) for(j=0;j<18;j++)
0586 2766 CLR R22
0587 C006 RJMP 0x058E
(0559) {
(0560) EEPROMwrite(j+10,*(p+j));
0588 D998 RCALL 0x0F21
0589 8120 LDD R18,Z+0
058A 2F06 MOV R16,R22
058B 5F06 SUBI R16,0xF6
058C DECC RCALL _EEPROMwrite
058D 9563 INC R22
058E 3162 CPI R22,0x12
058F F3C0 BCS 0x0588
(0561) }
(0562) }
0590 D827 RCALL pop_gset2
0591 9508 RET
_aload_config:
p --> R20
j --> R22
0592 D844 RCALL push_gset2
(0563) /*========================
(0564) 读取配置
(0565) ========================*/
(0566) void aload_config(void)
(0567) {
(0568) unsigned char *p;
(0569) unsigned char j;
(0570) p=&user_adjust[1][0];
0593 E745 LDI R20,0x75
0594 E050 LDI R21,0
(0571) for(j=1;j<5;j++)
0595 E061 LDI R22,1
0596 C005 RJMP 0x059C
(0572) {
(0573) user_config[j]=EEPROMread(j);
0597 2F06 MOV R16,R22
0598 DEF5 RCALL _EEPROMread
0599 D92E RCALL 0x0EC8
059A 8300 STD Z+0,R16
059B 9563 INC R22
059C 3065 CPI R22,5
059D F3C8 BCS 0x0597
(0574) }
(0575) for(j=0;j<18;j++)
059E 2766 CLR R22
059F C006 RJMP 0x05A6
(0576) {
(0577) *(p+j)=EEPROMread(j+10);
05A0 2F06 MOV R16,R22
05A1 5F06 SUBI R16,0xF6
05A2 DEEB RCALL _EEPROMread
05A3 D97D RCALL 0x0F21
05A4 8300 STD Z+0,R16
05A5 9563 INC R22
05A6 3162 CPI R22,0x12
05A7 F3C0 BCS 0x05A0
(0578) }
(0579) }
05A8 D80F RCALL pop_gset2
05A9 9508 RET
(0580) /*========================
(0581) 上电初始化
(0582) ========================*/
(0583) void power_on(void)
(0584) {
(0585) write_user_char();
_power_on:
05AA DCAE RCALL _write_user_char
(0586) if(key(6)==KMENU)
05AB E006 LDI R16,6
05AC DDF7 RCALL _key
05AD 3604 CPI R16,0x64
05AE F409 BNE 0x05B0
(0587) aload_default();
05AF DFCA RCALL _aload_default
(0588) aload_config();
05B0 DFE1 RCALL _aload_config
(0589) CHwrite(user_config[channel]);
05B1 91000069 LDS R16,0x69
05B3 DEFD RCALL _CHwrite
(0590) video_choose(user_config[video_input]);
05B4 9100006B LDS R16,0x6B
05B6 DD19 RCALL _video_choose
(0591) dis_video(user_config[video_input]);
05B7 9100006B LDS R16,0x6B
05B9 DD6D RCALL _dis_video
05BA D85E RCALL <created procedures>
05BB D862 RCALL 0x0E1E
(0592) screen_mode(user_adjust[user_config[video_input]][5]);
05BC 8100 LDD R16,Z+0
05BD DD2F RCALL _screen_mode
(0593) pal_ntsc(PAL);
05BE E001 LDI R16,1
05BF DD49 RCALL _pal_ntsc
(0594) screen_inversion(user_config[inversion]=ON);
05C0 E081 LDI R24,1
05C1 9380006C STS 0x6C,R24
05C3 E001 LDI R16,1
05C4 DD4A RCALL _screen_inversion
05C5 D853 RCALL <created procedures>
05C6 D879 RCALL 0x0E40
(0595) screen_mirror(user_adjust[user_config[video_input]][4]);
05C7 8100 LDD R16,Z+0
(0596) }
05C8 CD4C RJMP _screen_mirror
_dis_menu:
j --> R20
x --> R22
05C9 D80D RCALL push_gset2
05CA 2F60 MOV R22,R16
05CB 9726 SBIW R28,6
(0597) /*========================
(0598) 菜单
(0599) ========================*/
(0600) void dis_menu(unsigned char x)
(0601) {
(0602) unsigned char j;
(0603) if(x<7)
05CC 3067 CPI R22,7
05CD F008 BCS 0x05CF
05CE C089 RJMP 0x0658
(0604) {
(0605) if(FOSD!=DIS_MENU1)
05CF 91800060 LDS R24,0x60
05D1 3082 CPI R24,2
05D2 F409 BNE 0x05D4
05D3 C04D RJMP 0x0621
(0606) {
(0607) FOSD=DIS_MENU1;
05D4 E082 LDI R24,2
05D5 93800060 STS 0x60,R24
(0608) OSD_window(1);
05D7 E001 LDI R16,1
05D8 D517 RCALL _OSD_window
(0609) for(j=0;j<3;j++) //标题文字
05D9 2744 CLR R20
05DA C008 RJMP 0x05E3
(0610) {
(0611) OSD_out_1row(0,j*5+1,3,0,c_menu[j]);
05DB E086 LDI R24,6
05DC 9F84 MUL R24,R20
05DD 0110 MOVW R2,R0
05DE ED83 LDI R24,0xD3
05DF D844 RCALL 0x0E24
05E0 D8D2 RCALL 0x0EB3
05E1 D551 RCALL _OSD_out_1row
05E2 9543 INC R20
05E3 3043 CPI R20,3
05E4 F3B0 BCS 0x05DB
(0612) }
(0613) //标题颜色
(0614) OSD_attrib_1row(0,0,15,7,3);
05E5 E083 LDI R24,3
05E6 838C STD Y+4,R24
05E7 E087 LDI R24,7
05E8 D8A5 RCALL 0x0E8E
05E9 2700 CLR R16
05EA D69F RCALL _OSD_attrib_1row
05EB D8B2 RCALL 0x0E9E
(0615) OSD_attrib_1row(0,(user_config[video_input]-1)*5,5,7,2);
05EC E085 LDI R24,5
05ED 8388 STD Y+0,R24
05EE 9020006B LDS R2,0x6B
05F0 9D82 MUL R24,R2
05F1 2D20 MOV R18,R0
05F2 5025 SUBI R18,5
05F3 2700 CLR R16
05F4 D695 RCALL _OSD_attrib_1row
(0616) for(j=1;j<7;j++)
05F5 E041 LDI R20,1
05F6 C00B RJMP 0x0602
(0617) {
(0618) OSD_out_1row(j,2,3,0,c_menu[j+3]);
05F7 E086 LDI R24,6
05F8 9F84 MUL R24,R20
05F9 0110 MOVW R2,R0
05FA EE85 LDI R24,0xE5
05FB D828 RCALL 0x0E24
05FC E083 LDI R24,3
05FD 8388 STD Y+0,R24
05FE E022 LDI R18,2
05FF 2F04 MOV R16,R20
0600 D532 RCALL _OSD_out_1row
0601 9543 INC R20
0602 3047 CPI R20,7
0603 F398 BCS 0x05F7
(0619) }
(0620) for(j=0;j<4;j++)
0604 2744 CLR R20
0605 C00B RJMP 0x0611
(0621) {
(0622) OSD_out_num(j+1,10,user_adjust[user_config[video_input]][j],0);
0606 2422 CLR R2
0607 822A STD Y+2,R2
0608 D810 RCALL <created procedures>
0609 D822 RCALL 0x0E2C
060A D90B RCALL 0x0F16
060B 8228 STD Y+0,R2
060C E02A LDI R18,0xA
060D 2F04 MOV R16,R20
060E 5F0F SUBI R16,0xFF
060F D58D RCALL _OSD_out_num
0610 9543 INC R20
0611 3044 CPI R20,4
0612 F398 BCS 0x0606
0613 D805 RCALL <created procedures>
0614 D82B RCALL 0x0E40
0615 D892 RCALL 0x0EA8
(0623) }
(0624) OSD_out_1row(5,11,1,0,c_on_off[user_adjust[user_config[video_input]][4]]);
0616 EC89 LDI R24,0xC9
0617 D80C RCALL 0x0E24
0618 D926 RCALL 0x0F3F
0619 D519 RCALL _OSD_out_1row
061A D7FE RCALL <created procedures>
061B D802 RCALL 0x0E1E
061C D88B RCALL 0x0EA8
(0625) OSD_out_1row(6,11,1,0,mode_1_2_3[user_adjust[user_config[video_input]][5]]);
061D EC8D LDI R24,0xCD
061E D805 RCALL 0x0E24
061F D91A RCALL 0x0F3A
0620 D512 RCALL _OSD_out_1row
(0626) }
(0627) for(j=1;j<7;j++)
0621 E041 LDI R20,1
0622 C010 RJMP 0x0633
(0628) {
(0629) if(j!=x)
0623 1746 CP R20,R22
0624 F039 BEQ 0x062C
(0630) OSD_attrib_1row(j,0,15,7,2);
0625 E082 LDI R24,2
0626 838C STD Y+4,R24
0627 E087 LDI R24,7
0628 D865 RCALL 0x0E8E
0629 2F04 MOV R16,R20
062A D65F RCALL _OSD_attrib_1row
062B C006 RJMP 0x0632
(0631) else //选中
(0632) {
(0633) OSD_attrib_1row(j,0,15,5,4);
062C E084 LDI R24,4
062D 838C STD Y+4,R24
062E E085 LDI R24,5
062F D85E RCALL 0x0E8E
0630 2F04 MOV R16,R20
0631 D658 RCALL _OSD_attrib_1row
0632 9543 INC R20
0633 3047 CPI R20,7
0634 F370 BCS 0x0623
(0634) }
(0635) }
(0636) if(x<5)
0635 3065 CPI R22,5
0636 F460 BCC 0x0643
(0637) OSD_out_num(x,10,user_adjust[user_config[video_input]][x-1],0);
0637 2422 CLR R2
0638 822A STD Y+2,R2
0639 D7DF RCALL <created procedures>
063A D7F1 RCALL 0x0E2C
063B 2FE6 MOV R30,R22
063C D8A5 RCALL 0x0EE2
063D 8020 LDD R2,Z+0
063E 8228 STD Y+0,R2
063F E02A LDI R18,0xA
0640 2F06 MOV R16,R22
0641 D55B RCALL _OSD_out_num
0642 C076 RJMP 0x06B9
(0638) else if(x==5)
0643 3065 CPI R22,5
0644 F441 BNE 0x064D
0645 D7D3 RCALL <created procedures>
0646 D7F9 RCALL 0x0E40
0647 D860 RCALL 0x0EA8
(0639) OSD_out_1row(5,11,1,0,c_on_off[user_adjust[user_config[video_input]][4]]);
0648 EC89 LDI R24,0xC9
0649 D7DA RCALL 0x0E24
064A D8F4 RCALL 0x0F3F
064B D4E7 RCALL _OSD_out_1row
064C C06C RJMP 0x06B9
(0640) else if(x==6)
064D 3066 CPI R22,6
064E F009 BEQ 0x0650
064F C069 RJMP 0x06B9
(0641) OSD_out_1row(6,11,1,0,mode_1_2_3[user_adjust[user_config[video_input]][5]]);
0650 D7C8 RCALL <created procedures>
0651 D7CC RCALL 0x0E1E
0652 D855 RCALL 0x0EA8
0653 EC8D LDI R24,0xCD
0654 D7CF RCALL 0x0E24
0655 D8E4 RCALL 0x0F3A
0656 D4DC RCALL _OSD_out_1row
(0642) }
0657 C061 RJMP 0x06B9
(0643) else //第二页
(0644) {
(0645) if(FOSD!=DIS_MENU2)
0658 91800060 LDS R24,0x60
065A 3083 CPI R24,3
065B F409 BNE 0x065D
065C C040 RJMP 0x069D
(0646) {
(0647) FOSD=DIS_MENU2;
065D E083 LDI R24,3
065E 93800060 STS 0x60,R24
(0648) OSD_window(1);
0660 E001 LDI R16,1
0661 D48E RCALL _OSD_window
(0649) for(j=0;j<3;j++) //标题文字
0662 2744 CLR R20
0663 C008 RJMP 0x066C
(0650) {
(0651) OSD_out_1row(0,j*5+1,3,0,c_menu[j]);
0664 E086 LDI R24,6
0665 9F84 MUL R24,R20
0666 0110 MOVW R2,R0
0667 ED83 LDI R24,0xD3
0668 D7BB RCALL 0x0E24
0669 D849 RCALL 0x0EB3
066A D4C8 RCALL _OSD_out_1row
066B 9543 INC R20
066C 3043 CPI R20,3
066D F3B0 BCS 0x0664
066E D82F RCALL 0x0E9E
(0652) }
(0653) //标题颜色
(0654) OSD_attrib_1row(0,0,5,7,2);
066F E085 LDI R24,5
0670 8388 STD Y+0,R24
0671 2722 CLR R18
0672 2700 CLR R16
0673 D616 RCALL _OSD_attrib_1row
(0655) OSD_attrib_1row(0,5,10,7,3);
0674 E083 LDI R24,3
0675 838C STD Y+4,R24
0676 E087 LDI R24,7
0677 838A STD Y+2,R24
0678 E08A LDI R24,0xA
0679 8388 STD Y+0,R24
067A E025 LDI R18,5
067B 2700 CLR R16
067C D60D RCALL _OSD_attrib_1row
(0656) for(j=0;j<3;j++)
067D 2744 CLR R20
067E C012 RJMP 0x0691
(0657) {
(0658) OSD_out_1row(j+1,2,4,0,c_menu2[j]);
067F E088 LDI R24,0x8
0680 9F84 MUL R24,R20
0681 0110 MOVW R2,R0
0682 E08F LDI R24,0xF
0683 E091 LDI R25,1
0684 0E28 ADD R2,R24
0685 1E39 ADC R3,R25
0686 823D STD Y+5,R3
0687 822C STD Y+4,R2
0688 2422 CLR R2
0689 822A STD Y+2,R2
068A E084 LDI R24,4
068B 8388 STD Y+0,R24
068C E022 LDI R18,2
068D 2F04 MOV R16,R20
068E 5F0F SUBI R16,0xFF
068F D4A3 RCALL _OSD_out_1row
0690 9543 INC R20
0691 3043 CPI R20,3
0692 F360 BCS 0x067F
(0659) }
(0660) OSD_out_1row(1,12,1,0,c_on_off[OFF]);
0693 EC89 LDI R24,0xC9
0694 E090 LDI R25,0
0695 839D STD Y+5,R25
0696 838C STD Y+4,R24
0697 D7A3 RCALL 0x0E3B
0698 E02C LDI R18,0xC
0699 E001 LDI R16,1
069A D498 RCALL _OSD_out_1row
069B D7D9 RCALL 0x0E75
(0661) OSD_out_num(3,11,user_config[channel],0);
069C D500 RCALL _OSD_out_num
(0662) }
(0663) for(j=1;j<6;j++)
069D E041 LDI
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -