?? mstar.lst
字號:
209 // Analog/Digital/YCbCr(Video) input
210 //
211 // caller: mSar_WriteByte(), msReadByte() in ms_rwreg.c
212 // callee: msMonitorInputTiming() in detect.c
213 //*******************************************************************
214 #if ((MST_CHIP==MST716A)||(MST_CHIP==MST717A)||(MST_CHIP==MST726A))
215 void SwitchInputPort(InputPortType PortSwitch)
216 {
217 1 BYTE bk1_2F_value;
218 1 BYTE bk1_90_mask=0;
219 1
220 1 switch(PortSwitch)
221 1 {
222 2 case Input_TV:
223 2 bk1_2F_value=TV_RealPortSet;
224 2 break;
225 2 case Input_CVBS1:
226 2 bk1_2F_value=CVBS1_RealPortSet;
227 2 break;
228 2 case Input_CVBS2:
229 2 bk1_2F_value=CVBS2_RealPortSet;
230 2 break;
231 2 case Input_CVBS3:
232 2 bk1_2F_value=CVBS3_RealPortSet;
233 2 break;
234 2 case Input_VGA:
235 2 bk1_2F_value=VGA_RealPortSet;
236 2 break;
237 2 case Input_SVIDEO1:
238 2 bk1_2F_value=SVIDEO1_RealPortSet;
239 2 break;
240 2 }
241 1
242 1 #if VGA_ENABLE
243 1 if(PortSwitch==Input_VGA)
244 1 msWriteRegsTbl(tPCFCC);
*** ERROR C202 IN LINE 244 OF ..\..\KERNAL\MSTAR.C: 'tPCFCC': undefined identifier
C51 COMPILER V8.01 MSTAR 11/28/2006 08:08:06 PAGE 6
245 1 else
246 1 #endif
247 1 msWriteRegsTbl(tVideoFCC);
*** ERROR C202 IN LINE 247 OF ..\..\KERNAL\MSTAR.C: 'tVideoFCC': undefined identifier
248 1
249 1 if(IsVideoPortInUse())
250 1 {
251 2 if(PortSwitch==Input_TV)
252 2 msWriteRegsTbl(t_TVInitializeFCC);
*** ERROR C202 IN LINE 252 OF ..\..\KERNAL\MSTAR.C: 't_TVInitializeFCC': undefined identifier
253 2 else
254 2 msWriteRegsTbl(t_AVInitializeFCC);
*** ERROR C202 IN LINE 254 OF ..\..\KERNAL\MSTAR.C: 't_AVInitializeFCC': undefined identifier
255 2 }
256 1
257 1 //if (bk1_2F_value==PORT_CVBS_SV1C)
258 1 //bk1_90_mask=_BIT3;
259 1
260 1 msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU);
261 1 msWriteByte(BK1_2F, bk1_2F_value);
262 1
263 1 bk1_2F_value=msReadByte(BK1_90_SARADC_CTRL);
264 1 bk1_2F_value&=~_BIT3;
265 1 msWriteByte(BK1_90_SARADC_CTRL, bk1_2F_value|bk1_90_mask);
266 1
267 1 msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
268 1 }
269 #elif (MST_CHIP==MST710A)
void SwitchInputPort(InputPortType PortSwitch)
{
BYTE bk1_2F_value;
BYTE bk1_90_mask=0;
switch(PortSwitch)
{
case Input_TV:
bk1_2F_value=TV_RealPortSet;
break;
case Input_CVBS1:
bk1_2F_value=CVBS1_RealPortSet;
break;
}
if(IsVideoPortInUse())
{
msWriteRegsTbl(tVideoFCC); // Nelson 2006-03-25 Add
if(PortSwitch==Input_TV)
msWriteRegsTbl(t_TVInitializeFCC);
else
msWriteRegsTbl(t_AVInitializeFCC);
}
if (bk1_2F_value==PORT_CVBS_SV1C)
bk1_90_mask=_BIT3;
msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU);
msWriteByte(BK1_2F, bk1_2F_value);
bk1_2F_value=msReadByte(BK1_90_SARADC_CTRL);
bk1_2F_value&=~_BIT3;
msWriteByte(BK1_90_SARADC_CTRL, bk1_2F_value|bk1_90_mask);
C51 COMPILER V8.01 MSTAR 11/28/2006 08:08:06 PAGE 7
msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
}
#elif (MST_CHIP==MST720A)
void SwitchInputPort(InputPortType PortSwitch)
{
BYTE bk1_2F_value;
BYTE bk1_90_mask=0;
switch(PortSwitch)
{
case Input_TV:
bk1_2F_value=TV_RealPortSet;
break;
case Input_CVBS1:
bk1_2F_value=CVBS1_RealPortSet;
//bk1_90_mask=_BIT3;
break;
case Input_SVIDEO1:
bk1_2F_value=SVIDEO1_RealPortSet;
break;
}
if(IsVideoPortInUse())
{
msWriteRegsTbl(tVideoFCC); // Nelson 2006-03-25 Add
if(PortSwitch==Input_TV)
msWriteRegsTbl(t_TVInitializeFCC);
else
msWriteRegsTbl(t_AVInitializeFCC);
}
msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU);
msWriteByte(BK1_2F, bk1_2F_value);
bk1_2F_value=msReadByte(BK1_90_SARADC_CTRL);
bk1_2F_value&=~_BIT3;
msWriteByte(BK1_90_SARADC_CTRL, bk1_2F_value|bk1_90_mask);
msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
}
#endif
346
347
348 void SetChromaMode(void)
349 {
350 1 BYTE uctemp, temp2;
351 1
352 1 #if TV_ENABLE
353 1 if(IsTVInUse())
354 1 {
355 2 uctemp=((g_TVChSetting.TvCurChannelMisc&ColorSysMask)>>4)%CHROMA_NUMS;
356 2 devSetSWF(((g_TVChSetting.TvCurChannelMisc&SoundSysMask)%TV_SOUND_NUMS));
357 2 }
358 1 else
359 1 #endif
360 1
361 1 uctemp=g_VideoSetting.VideoColorSys%CHROMA_NUMS;
362 1 msWriteByte(BK0_00_REGBK, REG_BANK3_COMB);
363 1
364 1 switch (uctemp)
365 1 {
C51 COMPILER V8.01 MSTAR 11/28/2006 08:08:06 PAGE 8
366 2 case CHROMA_SECAM:
367 2 case CHROMA_AUTO:
368 2 temp2=0;
369 2 break;
370 2 case CHROMA_PAL:
371 2 temp2=0x02;
372 2 break;
373 2 case CHROMA_NTSC:
374 2 temp2=0x01;
375 2 break;
376 2 }
377 1 msWriteByteMask(BK3_1C_CTRLSWCH, temp2, 0x03);
378 1 msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
379 1 }
380
381 void msLineBufferDelayCtl( BOOL bInterlace )
382 {
383 1 BYTE ucTmp = 0;
384 1 bInterlace=bInterlace;
385 1 ucTmp = 0x20;
386 1 msWriteByte(BK0_0F_ASCTRL, ucTmp );
387 1 }
388
389 ///////////////////////////////////////////////////////////////////////////////
390 // <Function>: msSetInterrupt
391 //
392 // <Description>: Set chip interrrupt.
393 //
394 // <Parameter>: - <Flow> - <Description>
395 //-----------------------------------------------------------------------------
396 // IntSel - In - interrupt setting
397 ///////////////////////////////////////////////////////////////////////////////
398 void msSetInterrupt(msInterruptType IntSel)
399 {
400 1 BYTE ucBank;
401 1
402 1 ucBank = msReadByte( BK0_00_REGBK);
403 1
404 1 msWriteByte(BK0_00_REGBK,REG_BANK_SCALER);
405 1
406 1 msWriteByte(BK0_1D_INTENC, 0x00); // Interrupt enable control byte C
407 1 msWriteByte(BK0_1F_INTEND, 0x00); // Interrupt enable control byte D
408 1 switch( IntSel )
409 1 {
410 2 case INTERRUPT_PC:
411 2 msWriteByte(BK0_1F_INTEND, 0x0E); // V change,H loss,V loss
412 2 break;
413 2 case INTERRUPT_YPBPR:
414 2 msWriteByte(BK0_1F_INTEND, 0x06); // H loss,V loss
415 2 break;
416 2 case INTERRUPT_INPUT_VSYNC:
417 2 msWriteByte(BK0_1D_INTENC, 0x40); // H loss,V loss
418 2 break;
419 2 }
420 1
421 1 msWriteByte(BK0_00_REGBK, ucBank);
422 1 }
423
424 void ChipPowerUpcontrol(void)
425 {
426 1 BYTE vbk0_e0,vbk0_e1,vbk1_31,vbk1_32;
427 1
C51 COMPILER V8.01 MSTAR 11/28/2006 08:08:06 PAGE 9
428 1 if( IsCVBSInUse())
429 1 {
430 2 vbk0_e0=0x80;
431 2 vbk0_e1=0x1C;
432 2 vbk1_31=0x24;
433 2 vbk1_32=0x76;
434 2 }
435 1 else if(IsSVideoInUse())
436 1 {
437 2 vbk0_e0=0x90;
438 2 vbk0_e1=0x18;
439 2 vbk1_31=0x20;
440 2 vbk1_32=0x34;
441 2 }
442 1 #if VGA_ENABLE
443 1 else if(IsVGAInUse())
444 1 {
445 2 vbk0_e0=0xb0;
446 2 vbk0_e1=0x11;
447 2 vbk1_31=0x00;
448 2 vbk1_32=0x04;
449 2 }
450 1 #endif
451 1
452 1 msWriteByte(BK0_E0_PDMD0, vbk0_e0);
453 1 msWriteByte(BK0_E1_PDMD1, vbk0_e1);
454 1 Delay1ms(5);//(50);
455 1 msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU); // switch to Bank 1
456 1 msWriteByte(BK1_31, vbk1_31);
457 1 msWriteByte(BK1_32, vbk1_32);
458 1
459 1 msWriteByte(BK0_00_REGBK, REG_BANK_SCALER); // switch to Bank 0
460 1 }
461
462 void msSetupInputPort(void)
463 {
464 1 SwitchInputPort(g_VideoSetting.InputType);
465 1
466 1 ChipPowerUpcontrol();
467 1
468 1 #if VGA_ENABLE
469 1 if( IsVGAInUse()) // PC
470 1 {
471 2 msWriteByte(BK0_0D_LYL, 0x00);
472 2 msAdjustPCRGB(0x80, 0x80, 0x80);
473 2 msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU );
474 2 msWriteByte( BK1_24, 0x50 );
475 2 msWriteByte( BK1_25, 0 ); // FPLL_DIVN => Divide by 1
476 2 msWriteByte( BK1_29, 0x18 ); // 20051007
477 2 msWriteByte( BK1_2C, 0x00 ); // I clamp
478 2 msWriteByte( BK0_00_REGBK, REG_BANK_SCALER);
479 2 //msWriteByte( BK0_37, 0 ); // 20051004 Lizst: Disable D-Edge
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -