📄 osd.lst
字号:
C51 COMPILER V7.50 OSD 03/18/2008 22:04:55 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE OSD
OBJECT MODULE PLACED IN .\BIN\OSD.obj
COMPILER INVOKED BY: D:\设计软件\Keil\C51\BIN\C51.EXE SRC\OSD.C BROWSE DEBUG OBJECTEXTEND PRINT(.\LST\OSD.lst) OBJECT(.\
-BIN\OSD.obj)
line level source
1 #include "OSD.H"
2 #include "Scaler.H"
3 #include "IIC.H"
4 #include "MyDef.H"
5 #include "RAM.H"
6 #include "stdio.h"
7 #include "UserAdj.H"
8 #include "AutoAdj.H"
9 #include "PANEL.H"
10 #include "F63REG.H"
11 #include "MCU.H"
12 #include "OSD_TAB.H"
13 #include "ModeHandle.H"
14 #include "TUNER.H"
15
16 /*==========================================
17 ==========================================*/
18
19 code unsigned char IconPosition[]={
20 3,0,7,0,11,0,15,0,19,0,22,2,22,4,19,6,15,6,11,6,7,6,3,6,0,4,0,2
21 };
22 code unsigned char AVIconPosition[]={
23 3,0,8,0,13,0,18,0,22,2,22,4,18,6,13,6,8,6,3,6,0,4,0,2
24 };
25
26 code unsigned char MainIconColor[]={
27 4,1,4,4,4,4,4,4,1,1,1,4,4,1,
28 4,4,4,4,4,4,4,4,4,4,4,1,1,1
29 };
30
31 code unsigned char VideoIconColor[]={
32 4,1,4,4,4,4,4,4,4,4,4,1,1,1,
33 4,4,4,4,4,4,4,4,4,4,4,1,1,1
34 };
35
36 code unsigned char SpaceLine20[]={
37 20," "
38 };
39
40 code unsigned char Source1[]={
41 8," PC "
42 };
43 code unsigned char Source2[]={
44 8," AV "
45 };
46 code unsigned char Source3[]={
47 8,"S-VIDEO "
48 };
49 code unsigned char Source4[]={
50 8," TV "
51 };
52 code unsigned char Source5[]={
53 8," "
54 };
C51 COMPILER V7.50 OSD 03/18/2008 22:04:55 PAGE 2
55 code unsigned char Source6[]={
56 6," "
57 };
58 code unsigned char *SourceTab[]={
59 Source1,Source2,Source3,Source4,Source5,Source6
60 };
61
62 code unsigned char ClearLine1[]={
63 20," "
64 };
65 code unsigned char ClearLine2[]={
66 5," "
67 };
68 code unsigned char ClearLine3[]={
69 5,0x82,0x82,0x82,0x82,0x82
70 };
71
72 code unsigned char MenuItem[]={
73 7,3,4,5
74 };
75
76 void OsdInit(void)
77 {
78 1 //unsigned char g;
79 1 //OSD
80 1 OSD_Control = Read24C16(0xce);
81 1 WriteIIC_HW(Scaler_Addr,0x95,OSD_Control); //Disable OSD
82 1 WriteIIC_HW(Scaler_Addr,0xa9,0x55); //OSD FONT ZOOM Range
83 1 SetPosition();
84 1 ClearOSD();
85 1 ClearText();
86 1 OSD_Point1 = 0;
87 1 OSD_Point2 = 0;
88 1 SavePointer = 0;
89 1 if(PowerStatus > 0x80){
90 2 ShowVideoMenu();
91 2 ShowVideoSubMenu();
92 2 }
93 1 else{
94 2 ShowMainMenu();
95 2 ShowSubMenu();
96 2 }
97 1 }
98
99 void Osd4Init(void)
100 {
101 1 OSD_Control &= ~BIT_0;
102 1 WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
103 1 WriteWordIIC_HW(Scaler_Addr,0x96,OSD2_CCx);
104 1 WriteWordIIC_HW(Scaler_Addr,0x99,OSD2_CCy);
105 1 WriteIIC_HW(Scaler_Addr,0x98,OSD2_WIDTH-1);
106 1 WriteIIC_HW(Scaler_Addr,0x9b,OSD2_HIGHT-1);
107 1 WriteIIC_HW(Scaler_Addr,0xa4,0x00);
108 1 WaitSetup(40);
109 1 ClearOSD();
110 1 FillLineAttr(1,1,20,TextColor); //add by Anbbdy
111 1 FillLineAttr(1,2,20,TextColor);
112 1 FillLineAttr(1,3,20,TextColor);
113 1 MoveX = OSD2_CCx / 6;
114 1 MoveY = OSD2_CCy / 6;
115 1 if((flag3 & BIT_2) != 0x00){
116 2 printf("OSD X = %d\r\n",OSD2_CCx);
C51 COMPILER V7.50 OSD 03/18/2008 22:04:55 PAGE 3
117 2 printf("OSD Y = %d\r\n",OSD2_CCy);
118 2 }
119 1 }
120
121 void Osd3Init(void)
122 {
123 1 OSD_Control &= ~BIT_0;
124 1 WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
125 1 WriteWordIIC_HW(Scaler_Addr,0x96,OSD3_Px);
126 1 WriteWordIIC_HW(Scaler_Addr,0x99,OSD3_Py);
127 1 WriteIIC_HW(Scaler_Addr,0x98,OSD3_WIDTH-1);
128 1 WriteIIC_HW(Scaler_Addr,0x9b,OSD3_HIGHT-1);
129 1 WriteIIC_HW(Scaler_Addr,0xa4,0x03);
130 1 WaitSetup(40);
131 1 ClearOSD();
132 1 if((flag3 & BIT_2) != 0x00){
133 2 printf("OSD3 X = %d\r\n",OSD3_Px);
134 2 printf("OSD3 Y = %d\r\n",OSD3_Py);
135 2 }
136 1 }
137
138 void LoadFont(void)
139 {
140 1 code unsigned char PaletteTab[]={
141 1 67,0,0xd0,0x00,0x00,
142 1 //
143 1 (unsigned char)BLACK,(unsigned char)(BLACK>>8),
144 1 (unsigned char)RED,(unsigned char)(RED>>8),
145 1 (unsigned char)GREEN,(unsigned char)(GREEN>>8),
146 1 (unsigned char)BLUE,(unsigned char)(BLUE>>8),
147 1 (unsigned char)CYAN,(unsigned char)(CYAN>>8),
148 1 (unsigned char)MAGENTA,(unsigned char)(MAGENTA>>8),
149 1 (unsigned char)YELLOW,(unsigned char)(YELLOW>>8),
150 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
151 1 (unsigned char)TBLACK,(unsigned char)(TBLACK>>8),
152 1 (unsigned char)TRED,(unsigned char)(TRED>>8),
153 1 (unsigned char)TGREEN,(unsigned char)(TGREEN>>8),
154 1 (unsigned char)TBLUE,(unsigned char)(TBLUE>>8),
155 1 (unsigned char)TCYAN,(unsigned char)(TCYAN>>8),
156 1 (unsigned char)TMAGENTA,(unsigned char)(TMAGENTA>>8),
157 1 (unsigned char)TYELLOW,(unsigned char)(TYELLOW>>8),
158 1 (unsigned char)GRAY,(unsigned char)(GRAY>>8),
159 1 //
160 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
161 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
162 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
163 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
164 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
165 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
166 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
167 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
168 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
169 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
170 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
171 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
172 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
173 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
174 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
175 1 (unsigned char)WHITE,(unsigned char)(WHITE>>8),
176 1 };
177 1 WriteWordIIC_HW(Scaler_Addr,0x9c,640); //one bit
178 1 WriteWordIIC_HW(Scaler_Addr,0xa0,2296); //four bit
C51 COMPILER V7.50 OSD 03/18/2008 22:04:55 PAGE 4
179 1
180 1 WriteSequenceScaler(0xe0,PaletteTab);
181 1 WriteSequenceScaler(0xe0,OneBitFont);
182 1 WriteSequenceScaler(0xe0,FourBitFont);
183 1 }
184
185 void SetPosition(void)
186 {
187 1 unsigned short xy;
188 1 if((OSD_Control & BIT_7) == 0){
189 2 if(OSD_Type == 0x02){
190 3 xy = (unsigned long)OSD2_CCx * OSD_X / 100;
191 3 WriteWordIIC_HW(Scaler_Addr,0x96,xy);
192 3 if((flag3 & BIT_2) != 0x00)
193 3 printf("OSD2 X = %d\r\n",xy);
194 3 WriteWordIIC_HW(Scaler_Addr,0x98,OSD2_WIDTH-1);
195 3 xy = (unsigned long)OSD2_CCy * (100 - OSD_Y) / 100;
196 3 WriteWordIIC_HW(Scaler_Addr,0x99,xy);
197 3 WriteIIC_HW(Scaler_Addr,0x9b,OSD2_HIGHT-1);
198 3 if((flag3 & BIT_2) != 0x00)
199 3 printf("OSD2 Y = %d\r\n",xy);
200 3 }
201 2 else{
202 3 xy = (unsigned long)OSD_RBx * OSD_X / 100;
203 3 WriteWordIIC_HW(Scaler_Addr,0x96,xy);
204 3 if((flag3 & BIT_2) != 0x00)
205 3 printf("OSD1 X = %d\r\n",xy);
206 3 WriteWordIIC_HW(Scaler_Addr,0x98,OSD_WIDTH-1);
207 3 xy = (unsigned long)OSD_RBy * (100 - OSD_Y) / 100;
208 3 WriteWordIIC_HW(Scaler_Addr,0x99,xy);
209 3 WriteIIC_HW(Scaler_Addr,0x9b,OSD_HIGHT-1);
210 3 if((flag3 & BIT_2) != 0x00)
211 3 printf("OSD1 Y = %d\r\n",xy);
212 3 }
213 2 }
214 1 else{
215 2 if(OSD_Type == 0x02){
216 3 xy = (unsigned long)OSD2_CCx1 * OSD_X / 100;
217 3 WriteWordIIC_HW(Scaler_Addr,0x96,xy);
218 3 if((flag3 & BIT_2) != 0x00)
219 3 printf("OSD2 X = %d\r\n",xy);
220 3 WriteWordIIC_HW(Scaler_Addr,0x98,OSD2_WIDTH-1);
221 3 xy = (unsigned long)OSD2_CCy1 * (100 - OSD_Y) / 100;
222 3 WriteWordIIC_HW(Scaler_Addr,0x99,xy);
223 3 WriteIIC_HW(Scaler_Addr,0x9b,OSD2_HIGHT-1);
224 3 if((flag3 & BIT_2) != 0x00)
225 3 printf("OSD2 Y = %d\r\n",xy);
226 3 }
227 2 else{
228 3 xy = (unsigned long)OSD_RBx1 * OSD_X / 100;
229 3 WriteWordIIC_HW(Scaler_Addr,0x96,xy);
230 3 if((flag3 & BIT_2) != 0x00)
231 3 printf("OSD1 X = %d\r\n",xy);
232 3 WriteWordIIC_HW(Scaler_Addr,0x98,OSD_WIDTH-1);
233 3 xy = (unsigned long)OSD_RBy1 * (100 - OSD_Y) / 100;
234 3 WriteWordIIC_HW(Scaler_Addr,0x99,xy);
235 3 WriteIIC_HW(Scaler_Addr,0x9b,OSD_HIGHT-1);
236 3 if((flag3 & BIT_2) != 0x00)
237 3 printf("OSD1 Y = %d\r\n",xy);
238 3 }
239 2 }
240 1 WriteIIC_HW(Scaler_Addr,0xa4,0x00);
C51 COMPILER V7.50 OSD 03/18/2008 22:04:55 PAGE 5
241 1 WaitSetup(40);
242 1 }
243
244 void ClearOSD(void)
245 {
246 1 // Clear osd ram
247 1 if(OSD_Type < 2){
248 2 if((flag3 & BIT_0) == 0x00)
249 2 WriteWordIIC_HW(Scaler_Addr,0xcc,FrameColor);
250 2 else
251 2 WriteWordIIC_HW(Scaler_Addr,0xcc,FactoryColor);
252 2 }
253 1 else{
254 2 WriteWordIIC_HW(Scaler_Addr,0xcc,RedFrameColor);
255 2 }
256 1 WriteIIC_HW(Scaler_Addr,0xce,0x20);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -