📄 modehandle.lst
字号:
525 1 for(ModePoint=0;ModePoint< T_Total_Mode_No;ModePoint++){
526 2 Hf.b[0] = EEP_ModeMap[T_EEaddr_H_Freq_Hi_Byte]; //check h_sync
527 2 Hf.b[1] = EEP_ModeMap[T_EEaddr_H_Freq_Low_Byte];
528 2 Vf.b[0] = EEP_ModeMap[T_EEaddr_V_Freq_Hi_Byte];
529 2 Vf.b[1] = EEP_ModeMap[T_EEaddr_V_Freq_Low_Byte];
530 2
531 2 PolPass = 0;
532 2 if(Vf.b[0] & 0x80)
533 2 PolPass = 1;
534 2 if((Vf.b[0] & 0x30) == HV_Pol)
535 2 PolPass = 1;
536 2 if(Vf.b[0] & 0x40){
537 3 ch = (Vf.b[0] & 0x40) >> 1;
538 3 ch |= ch >> 1;
539 3 if(ch == HV_Pol)
540 3 PolPass = 1;
541 3 }
542 2 if(PolPass){
543 3 if(abs(Hf.w - H_SYNC)<3){
544 4 Vf.b[0] &= 0x0f;
545 4 if(abs(Vf.w - V_SYNC) < 10){
546 5 break;
547 5 }
548 4 }
549 3 }
550 2 }
C51 COMPILER V7.06 MODEHANDLE 12/11/2007 11:28:43 PAGE 10
551 1 #endif
552 1 /*
553 1 if(ModePoint >=Graphic_Text_Mode_Start_No&&ModePoint <=Graphic_Text_Mode_End_No&&(SyncMode == 0 || SyncMo
-de == 3)){
554 1 GTmodeEn = 1;
555 1 if(TextMode)
556 1 ModePoint++; //for set in text mode kevin y50202
557 1 }else{
558 1 GTmodeEn = 0;
559 1 }
560 1 if(ModePoint >= T_Total_Mode_No){
561 1 NewMode = 1;
562 1 SetUserMode();
563 1 }else{
564 1 NewMode = 0;
565 1 }
566 1 */
567 1 if(ModePoint >= 19)
568 1 ModePoint = 11;
569 1 LoadModeDependentSettings();
570 1 /*
571 1 if(ModePoint ==1)
572 1 FuncBuf[pHPOSITION] = 0x96;//0x4B;
573 1 else{
574 1 FuncBuf[pHPOSITION] = 0x2e;//0x4B;
575 1 FuncBuf[pVPOSITION] = 0x14;//0x4B;
576 1 }
577 1 */
578 1 ResolutionPtr = EEP_ModeMap[T_EEaddr_Resol]&0x7f;
579 1 Hresolution = Active_Tab[Get_active_index()].H_Active;
580 1 Vresolution = Active_Tab[Get_active_index()].V_Active;
581 1 if(Vresolution>VTotal)
582 1 Vresolution=VTotal-20;
583 1 ClockBase = EEP_ModeMap[T_EEaddr_BaseHTotal]; //EEP_SyncMap[Addr+2];
584 1 ClockBase <<= 8;
585 1 ClockBase |= EEP_ModeMap[T_EEaddr_BaseHTotal+1]; //[Addr+3];
586 1
587 1 SetInterface();
588 1 SetScaler();
589 1 // SetADC_PLL();
590 1 if(SyncMode < 3) //skip setadcpll while in DVI mode
591 1 {
592 2 SetADC_PLL();
593 2 SetADC_Phase();
594 2 }
595 1 else
596 1 {
597 2 CheckDVIresolution();
598 2 // CheckDVIFreqRange();
599 2 }
600 1 if(SyncMode == 3) //DVI
601 1 {
602 2 #if DVImode == DEmode
603 2 //FuncBuf[pVPOSITION] = 0x1e0; // for DE mode scaler shut down Jacky20040629
604 2 FuncBuf[pVPOSITION] = 0; // for DE mode scaler shut down Jacky20040629
605 2 FuncBuf[pHPOSITION] = 0;
606 2 // SetDVI_Sharpness();
607 2 WriteWordIIC563(0x030,FuncBuf[pVPOSITION]);
608 2 WriteWordIIC563(0x02e,FuncBuf[pVPOSITION]);
609 2 WriteWordIIC563(0x030,FuncBuf[pVPOSITION]);
610 2 WriteWordIIC563(0x034,FuncBuf[pHPOSITION]);
611 2 #else
C51 COMPILER V7.06 MODEHANDLE 12/11/2007 11:28:43 PAGE 11
AutoPosition();
#endif
614 2 }
615 1
616 1 // SetVP();
617 1 // SetHP();
618 1 WriteIIC563(0x66,0x07);
619 1 // SetSharpness();
620 1 }
621 /*
622 void SetUserMode(void)
623 {
624 #ifdef Wide19
625 code unsigned short Vt_Tab[]={
626 490,590,610,730,778,800,874,910,970,1050,1080
627 };
628
629 code unsigned char UserTimeTab[]={
630 T_Timing_Parameters(0x10,0x60,0x384,Re_0720x0400),
631 T_Timing_Parameters(0x10,0x50,0x342,Re_0640x0480),
632 T_Timing_Parameters(0x10,0x17,0x3b0,Re_0720x0576),
633 T_Timing_Parameters(0x10,0x98,0x418,Re_0800x0600),
634 T_Timing_Parameters(0x10,0xe0,0x6c0,Re_1280x0720),
635 T_Timing_Parameters(0x12,0xc8,0x680,Re_1280x0768),
636 T_Timing_Parameters(0x10,0xd0,0x540,Re_1024x0768),
637 T_Timing_Parameters(0x10,0xd0,0x5c8,Re_1152x0864),
638 T_Timing_Parameters(0x19,0xe8,0x778,Re_1440x0900),
639 T_Timing_Parameters(0x10,0xe0,0x6c0,Re_1280x0960),
640 T_Timing_Parameters(0x10,0xf8,0x698,Re_1280x1024),
641 T_Timing_Parameters(0x2e,0x130,0x870,Re_1600x1200),
642 };
643 unsigned char i,j;
644 for(i=0; i<11; i++){
645 if(VTotal < Vt_Tab[i]){
646 break;
647 }
648 }
649 #else
650 code unsigned short Vt_Tab[]={
651 490,590,610,730,778,874,970,1050,1080
652 };
653
654 code unsigned char UserTimeTab[]={
655 T_Timing_Parameters(0x10,0x60,0x3a8,Re_0720x0400),
656 T_Timing_Parameters(0x10,0x50,0x342,Re_0640x0480),
657 T_Timing_Parameters(0x10,0x17,0x3b0,Re_0720x0576),
658 T_Timing_Parameters(0x10,0x98,0x418,Re_0800x0600),
659 T_Timing_Parameters(0x10,0xe0,0x6c0,Re_1280x0720),
660 T_Timing_Parameters(0x10,0xd0,0x540,Re_1024x0768),
661 T_Timing_Parameters(0x10,0xd0,0x5c8,Re_1152x0864),
662 T_Timing_Parameters(0x10,0xe0,0x6c0,Re_1280x0960),
663 T_Timing_Parameters(0x10,0xf8,0x698,Re_1280x1024),
664 T_Timing_Parameters(0x2e,0x130,0x870,Re_1600x1200),
665 };
666 unsigned char i,j;
667 for(i=0; i<9; i++){
668 if(VTotal < Vt_Tab[i]){
669 break;
670 }
671 }
672 #endif
673 j = i * T_Timing_Data_No;
C51 COMPILER V7.06 MODEHANDLE 12/11/2007 11:28:43 PAGE 12
674 ModePoint = Read24C16(T_EEaddr_User_Start);
675 if((ModePoint <T_Preset_Timing_No)||(ModePoint >=T_Total_Mode_No)){
676 ModePoint = T_Preset_Timing_No;
677 }
678 Write24C16(T_EEaddr_User_Start,ModePoint+1); //index to nextuser mode
679 for(i=0; i<T_Timing_Data_No; i++){
680 Write24C16(T_EEaddr_Mode_data+i,UserTimeTab[j+i]);
681 }
682 Write24C16(T_EEaddr_H_Freq_Hi_Byte,H_SYNC >> 8);
683 Write24C16(T_EEaddr_H_Freq_Low_Byte,(Byte)H_SYNC);
684 Write24C16(T_EEaddr_V_Freq_Hi_Byte,(V_SYNC >> 8)|HV_Pol);
685 Write24C16(T_EEaddr_V_Freq_Low_Byte,V_SYNC);
686 ResolutionPtr = Read24C16(T_EEaddr_Resol)&0x7f;
687 }
688 */
689 /*==========================================
690 ==========================================*/
691
692
693 void CheckModeChange(void)
694 {
695 1
696 1 unsigned char temp;
697 1 if(DetectIRQ() || ChangeMode>0){
698 2 temp = ReadIIC563(0x1ab);
699 2 if((temp & 0x3c) != 0){
700 3 BackLightOff();
701 3 Abort = 1;
702 3 H_SYNC_Temp = 0xffff;
703 3 V_SYNC_Temp = 0xffff;
704 3 }
705 2
706 2 temp = ReadIIC563(0x19a);
707 2 if(((SyncMode > 0)&&(SyncMode < 3))||((SyncMode > 4)&&(SyncMode < 7))){ //compostive
708 3 if((temp & BIT_5) == 0){
709 4 BackLightOff();
710 4 Abort = 1;
711 4 H_SYNC_Temp = 0xffff;
712 4 V_SYNC_Temp = 0xffff;
713 4 return;
714 4 }
715 3 }else{
716 3 if((temp & 0x18) != 0x18){
717 4 BackLightOff();
718 4 Abort = 1;
719 4 H_SYNC_Temp = 0xffff;
720 4 V_SYNC_Temp = 0xffff;
721 4 return;
722 4 }
723 3 }
724 2 }
725 1 }
726
727 bit VsyncValide()
728 {
729 1 /*
730 1 Word VsyncWidth;
731 1 LocalTimer = 2; //20ms
732 1 while(!V_SyncPresent) //Vsync Lo
733 1 {
734 1 if(LocalTimer == 0)
735 1 return 0;
C51 COMPILER V7.06 MODEHANDLE 12/11/2007 11:28:43 PAGE 13
736 1 }
737 1 LocalTimer = 10; //100ms
738 1 while(V_SyncPresent) //Vsync Hi
739 1 {
740 1 if(LocalTimer == 0)
741 1 return 0;
742 1 }
743 1 VsyncWidth = 0;
744 1 while(!V_SyncPresent) //Vsync Hi 1:7us
745 1 {
746 1 VsyncWidth ++;
747 1 if(VsyncWidth > 50) //over 350us
748 1 return 0;
749 1 }
750 1 VsyncWidth = 0;
751 1 while(V_SyncPresent) //Vsync Hi 1:7us
752 1 {
753 1 VsyncWidth ++;
754 1 if(VsyncWidth > 714) //over 5ms
755 1 return 1;
756 1 }
757 1 */ return 0;
758 1 }
759
760 void LoadModeDependentSettings(void)
761 {
762 1 // Sharp,V_BP,H_BP,H_Tatol,Phase
763 1 //unsigned short addr;
764 1 // addr = T_EEaddr_Mode_data;
765 1 FuncBuf[pSHARPNESS] = EEP_ModeMap[T_EEaddr_Sharp];//(addr++);
766 1 FuncBuf[pVPOSITION] = EEP_ModeMap[T_EEaddr_VBP];//(addr++);
767 1 FuncBuf[pHPOSITION] = EEP_ModeMap[T_EEaddr_HBP];//(addr++);
768 1 FuncBuf[pHPOSITION] <<= 8;
769 1 FuncBuf[pHPOSITION] |= EEP_ModeMap[T_EEaddr_HBP+1];//(addr++);
770 1 FuncBuf[pCLOCK] = EEP_ModeMap[T_EEaddr_HTotal];//(addr++);
771 1 FuncBuf[pCLOCK] <<= 8;
772 1 FuncBuf[pCLOCK] |= EEP_ModeMap[T_EEaddr_HTotal+1];//(addr++);
773 1 // addr++;
774 1 FuncBuf[pPHASE] = EEP_ModeMap[T_EEaddr_Phase];//(addr);
775 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2583 ----
CONSTANT SIZE = 63 ----
XDATA SIZE = ---- 17
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -