📄 modehandle.lst
字号:
247 2 }
248 1
249 1 if(HV_Pol & BIT_4){
250 2 WriteIIC563(0x021,0x81);
251 2 /*if((SCID & 0x0f) == 7) //NT68663A
252 2 WriteIIC563(0x021,0xc1);
253 2 else
254 2 WriteIIC563(0x021,0x81);
255 2 */
256 2 }
257 1 else{
258 2 WriteIIC563(0x021,0x01);
259 2 /*if((SCID & 0x0f) == 7) //NT68663A
260 2 WriteIIC563(0x021,0x41);
261 2 else
262 2 WriteIIC563(0x021,0x01);
263 2 */
264 2 }
265 1 }
266 void SyncSource()
267 {
268 1 // Byte temp,Max;
269 1 // Bit ExitLoop;
270 1
271 1 if(FLG_Change_SyncMode)
272 1 {
273 2 // if(SyncMode == 3)
274 2 // {
275 2 // if(1)
276 2 // {
277 2 WriteIIC563(0x144,0);//Dvi power up for RU
278 2 WriteIIC563(0x01d, 0x01);
279 2 SetInterface();
280 2 NoSyncFlag=0;
281 2 #if PRINT_MESSAGE
printf("DVI Input\n");
#endif
284 2 // }
285 2 // }
286 2 ChangeMode = 1;
287 2 FLG_Change_SyncMode=0;
288 2 }
289 1 }
290 void CheckFreq(void)
291 {
292 1 bit UnStable;
293 1 Byte i,Count;
294 1 if(DetectIRQ() || ChangeMode>0){
295 2 if(SyncMode == 3){
296 3 DVIBandWidthDetection();
297 3 }
298 2 OutOfRange = Within_range;
299 2 H_SYNC_Temp = 0x5555;
300 2 V_SYNC_Temp = 0x5555;
301 2 ForceToBackground(0xff,0,0);//Set fource to background
302 2 Count = 0;
C51 COMPILER V7.06 MODEHANDLE 10/16/2007 19:09:01 PAGE 6
303 2 for(i=0;i<3;i++){
304 3 UnStable = 0;
305 3 GetCounter();
306 3 if(HV_Pol_Temp != HV_Pol)
307 3 UnStable = 1;
308 3 if(abs(H_SYNC_Temp - H_SYNC)>10)
309 3 UnStable = 1;
310 3 if(abs(V_SYNC_Temp - V_SYNC)>10)
311 3 UnStable = 1;
312 3 if(UnStable){
313 4
314 4 if((SyncMode==3)&&(abs(DVI_Clock-ReadIIC563(0x016))>2)){
315 5 DVIBandWidthDetection();
316 5 }
317 4
318 4
319 4 HV_Pol_Temp = HV_Pol;
320 4 H_SYNC_Temp = H_SYNC;
321 4 V_SYNC_Temp = V_SYNC;
322 4 i = 0;
323 4 }
324 3 Sleep(35); //wait for Vsync update
325 3 Count++;
326 3 if(Count > 15){ //freq unstable too long
327 4 V_SYNC = 0;
328 4 H_SYNC = 0;
329 4 NoSyncFlag = 1;
330 4 break;
331 4 }
332 3 }
333 2 ChangeMode = 0;
334 2 FastMuteEnable = 1;
335 2 WriteIIC563(0x1ab,0x3f); //clear IRQ
336 2 WriteIIC563(0x1ac,0x1f);
337 2 EndMute = 0;
338 2 MuteTimer = MUTE_DELAY_TIME;
339 2 }
340 1 if(NoSyncFlag){
341 2 if(ChangeMode == 0){
342 3 FastMuteEnable = 0;
343 3 if(!BurnInMode){
344 4 INTEXT_FLG = INTE0; //add by kevin 92/10/17
345 4 // INTEXT_EN = INTEN_INIT; // Disable interrupt INT0 enable INT1
346 4 ChangeMode++;
347 4 return;
348 4 }
349 3 }
350 2 }else{
351 2 if(ChangeMode == 0 && !EndMute && MuteTimer == 0){
352 3 BackLightOff();
353 3 GetCounter();
354 3 //recheck frequency
355 3 if(HV_Pol_Temp != HV_Pol)
356 3 ChangeMode = 1;
357 3 if(abs(H_SYNC_Temp - H_SYNC)>10)
358 3 ChangeMode = 1;
359 3 if(abs(V_SYNC_Temp - V_SYNC)>10)
360 3 ChangeMode = 1;
361 3 EndMute = 1;
362 3 if(PowerDown){
363 4 ScalerPowerUp();
364 4 PowerTimer = POWER_TIME;
C51 COMPILER V7.06 MODEHANDLE 10/16/2007 19:09:01 PAGE 7
365 4 MuteTimer = 0;
366 4 }
367 3 if(ChangeMode == 0){
368 4 INTEXT_FLG = INTE0; //moved by kevin y50321
369 4 // INTEXT_EN=INTEN_INIT;
370 4 WriteIIC563(0x1ab,0x3f); //clear IRQ added by kevin y50321 move here from setdisplaynormal()
371 4 WriteIIC563(0x1ac,0x1f); //added by kevin y50321
372 4 WriteIIC563(0x1a9,0x3c); //added by kevin y50321
373 4 GetMode();
374 4
375 4 if(SyncMode == 3)
376 4 {
377 5 if(Hresolution <= 800)// joe 2005/5/3 for dvi 800x600@56 color dot
378 5 {
379 6 WriteIIC563(0x144,0x04);//Jacky 20041221
380 6 WriteIIC563(0x145,0x03);//Jacky 20041221
381 6 }
382 5 else
383 5 {
384 6 WriteIIC563(0x145,0x00);//Jacky 20041221
385 6 WriteIIC563(0x144,0x00);
386 6
387 6 }
388 5 }
389 4
390 4
391 4 SetDisplayNormal();
392 4 WriteIIC563(0x158, PanelDethMode);
393 4 PanelPowerUpSequence();
394 4 I_OBackLightHigh;
395 4 VideoMute = 0;
396 4 }
397 3 }
398 2 }
399 1 }
400 void GetFuncRange(Byte Ptr)
401 {
402 1 FuncMin = 0;
403 1 switch(Ptr)
404 1 {
405 2 case pBRIGHTNESS:
406 2 FuncMax = 100;
407 2 //FuncMax = 255;
408 2 break;
409 2 case pCONTRAST:
410 2 FuncMax = 100;
411 2 //FuncMax = FuncBuf[pContMax];
412 2 //FuncMin= FuncBuf[pContMin];
413 2 break;
414 2 case pPHASE:
415 2 FuncMax = 0x3f;
416 2 break;
417 2 case pCLOCK:
418 2 FuncMax = ClockBase + 50;
419 2 FuncMin = ClockBase - 50;
420 2 //FuncMax = ClockBase / 10 * 11; ///10%
421 2 //FuncMin = ClockBase / 10 * 9;
422 2 break;
423 2 case pHPOSITION:
424 2 FuncMin = 1;
425 2 FuncMax = FuncBuf[pCLOCK] - Hresolution - 2;
426 2 break;
C51 COMPILER V7.06 MODEHANDLE 10/16/2007 19:09:01 PAGE 8
427 2 case pVPOSITION:
428 2 FuncMin = 1;
429 2 //FuncMax = VTotal > Vresolution ? VTotal - Vresolution : 12; //test
430 2 FuncMax = VTotal > Vresolution ? VTotal - Vresolution : 12; //for は篜 ISSUE
431 2
432 2 break;
433 2 case pRCOLOR:
434 2 case pGCOLOR:
435 2 case pBCOLOR:
436 2 FuncMax = 200;
437 2 break;
438 2 case pCOLORTEMP:
439 2 FuncMax = MAX_COLOR_TEMP-1;
440 2 break;
441 2 case pLANGUAGE:
442 2 case pSHARPNESS:
443 2 if(FuncBuf[pVIDEOSOURCE]<2)
444 2 // FuncMax = 31; // change by Kevin y50303
445 2 FuncMax = 15; // change by Kevin y50303
446 2 else
447 2 FuncMax = 23; // change by Kevin y50303
448 2 break;
449 2 case pVIDEOSOURCE:
450 2 if(Saa7114En)
451 2 FuncMax = 4;
452 2 else
453 2 FuncMax = 2;
454 2 break;
455 2 case pVOLUME:
456 2 FuncMax = 100;
457 2 break;
458 2 case pRADC:
459 2 case pGADC:
460 2 case pBADC:
461 2 FuncMax = 255;
462 2 break;
463 2 case pROFFSET:
464 2 case pGOFFSET:
465 2 case pBOFFSET:
466 2 FuncMax = 255;
467 2 break;
468 2 };
469 1 }
470 void CheckDVIresolution()
471 {
472 1 Union Hf,Vf;
473 1 if(SyncMode == 3){
474 2 Vf.w = ReadWordIIC563(0x03e);
475 2 Hf.w = ReadWordIIC563(0x03c);
476 2 // CheckFreqRange(Hf.w>>8);
477 2 Hresolution = Hf.w;
478 2 Vresolution = Vf.w;
479 2 }
480 1 }
481
482 void GetMode(void)
483 {
484 1 #if 1
485 1 bit PolPass;
486 1 Byte ch;
487 1 Union Hf,Vf;
488 1 #endif
C51 COMPILER V7.06 MODEHANDLE 10/16/2007 19:09:01 PAGE 9
489 1 VTotal = (Word)(((unsigned long)H_SYNC * 1000)/ V_SYNC);
490 1 #if 1
491 1 for(ModePoint=0;ModePoint< T_Total_Mode_No;ModePoint++){
492 2 Hf.b[0] = EEP_ModeMap[T_EEaddr_H_Freq_Hi_Byte]; //check h_sync
493 2 Hf.b[1] = EEP_ModeMap[T_EEaddr_H_Freq_Low_Byte];
494 2 Vf.b[0] = EEP_ModeMap[T_EEaddr_V_Freq_Hi_Byte];
495 2 Vf.b[1] = EEP_ModeMap[T_EEaddr_V_Freq_Low_Byte];
496 2
497 2 PolPass = 0;
498 2 if(Vf.b[0] & 0x80)
499 2 PolPass = 1;
500 2 if((Vf.b[0] & 0x30) == HV_Pol)
501 2 PolPass = 1;
502 2 if(Vf.b[0] & 0x40){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -