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