📄 modehandle.lst
字号:
503 3 ch = (Vf.b[0] & 0x40) >> 1;
504 3 ch |= ch >> 1;
505 3 if(ch == HV_Pol)
506 3 PolPass = 1;
507 3 }
508 2 if(PolPass){
509 3 if(abs(Hf.w - H_SYNC)<3){
510 4 Vf.b[0] &= 0x0f;
511 4 if(abs(Vf.w - V_SYNC) < 10){
512 5 break;
513 5 }
514 4 }
515 3 }
516 2 }
517 1 #endif
518 1 /*
519 1 if(ModePoint >=Graphic_Text_Mode_Start_No&&ModePoint <=Graphic_Text_Mode_End_No&&(SyncMode == 0 || SyncMo
-de == 3)){
520 1 GTmodeEn = 1;
521 1 if(TextMode)
522 1 ModePoint++; //for set in text mode kevin y50202
523 1 }else{
524 1 GTmodeEn = 0;
525 1 }
526 1 if(ModePoint >= T_Total_Mode_No){
527 1 NewMode = 1;
528 1 SetUserMode();
529 1 }else{
530 1 NewMode = 0;
531 1 }
532 1 */
533 1 if(ModePoint >= 19)
534 1 ModePoint = 11;
535 1 LoadModeDependentSettings();
536 1 /*
537 1 if(ModePoint ==1)
538 1 FuncBuf[pHPOSITION] = 0x96;//0x4B;
539 1 else{
540 1 FuncBuf[pHPOSITION] = 0x2e;//0x4B;
541 1 FuncBuf[pVPOSITION] = 0x14;//0x4B;
542 1 }
543 1 */
544 1 ResolutionPtr = EEP_ModeMap[T_EEaddr_Resol]&0x7f;
545 1 Hresolution = Active_Tab[Get_active_index()].H_Active;
546 1 Vresolution = Active_Tab[Get_active_index()].V_Active;
547 1 if(Vresolution>VTotal)
548 1 Vresolution=VTotal-20;
549 1 ClockBase = EEP_ModeMap[T_EEaddr_BaseHTotal]; //EEP_SyncMap[Addr+2];
C51 COMPILER V7.06 MODEHANDLE 10/16/2007 19:09:01 PAGE 10
550 1 ClockBase <<= 8;
551 1 ClockBase |= EEP_ModeMap[T_EEaddr_BaseHTotal+1]; //[Addr+3];
552 1
553 1 SetInterface();
554 1 SetScaler();
555 1 // SetADC_PLL();
556 1 if(SyncMode < 3) //skip setadcpll while in DVI mode
557 1 {
558 2 SetADC_PLL();
559 2 SetADC_Phase();
560 2 }
561 1 else
562 1 {
563 2 CheckDVIresolution();
564 2 // CheckDVIFreqRange();
565 2 }
566 1 if(SyncMode == 3) //DVI
567 1 {
568 2 #if DVImode == DEmode
569 2 //FuncBuf[pVPOSITION] = 0x1e0; // for DE mode scaler shut down Jacky20040629
570 2 FuncBuf[pVPOSITION] = 0; // for DE mode scaler shut down Jacky20040629
571 2 FuncBuf[pHPOSITION] = 0;
572 2 // SetDVI_Sharpness();
573 2 WriteWordIIC563(0x030,FuncBuf[pVPOSITION]);
574 2 WriteWordIIC563(0x02e,FuncBuf[pVPOSITION]);
575 2 WriteWordIIC563(0x030,FuncBuf[pVPOSITION]);
576 2 WriteWordIIC563(0x034,FuncBuf[pHPOSITION]);
577 2 #else
AutoPosition();
#endif
580 2 }
581 1
582 1 // SetVP();
583 1 // SetHP();
584 1 WriteIIC563(0x66,0x07);
585 1 // SetSharpness();
586 1 }
587 /*
588 void SetUserMode(void)
589 {
590 #ifdef Wide19
591 code unsigned short Vt_Tab[]={
592 490,590,610,730,778,800,874,910,970,1050,1080
593 };
594
595 code unsigned char UserTimeTab[]={
596 T_Timing_Parameters(0x10,0x60,0x384,Re_0720x0400),
597 T_Timing_Parameters(0x10,0x50,0x342,Re_0640x0480),
598 T_Timing_Parameters(0x10,0x17,0x3b0,Re_0720x0576),
599 T_Timing_Parameters(0x10,0x98,0x418,Re_0800x0600),
600 T_Timing_Parameters(0x10,0xe0,0x6c0,Re_1280x0720),
601 T_Timing_Parameters(0x12,0xc8,0x680,Re_1280x0768),
602 T_Timing_Parameters(0x10,0xd0,0x540,Re_1024x0768),
603 T_Timing_Parameters(0x10,0xd0,0x5c8,Re_1152x0864),
604 T_Timing_Parameters(0x19,0xe8,0x778,Re_1440x0900),
605 T_Timing_Parameters(0x10,0xe0,0x6c0,Re_1280x0960),
606 T_Timing_Parameters(0x10,0xf8,0x698,Re_1280x1024),
607 T_Timing_Parameters(0x2e,0x130,0x870,Re_1600x1200),
608 };
609 unsigned char i,j;
610 for(i=0; i<11; i++){
611 if(VTotal < Vt_Tab[i]){
C51 COMPILER V7.06 MODEHANDLE 10/16/2007 19:09:01 PAGE 11
612 break;
613 }
614 }
615 #else
616 code unsigned short Vt_Tab[]={
617 490,590,610,730,778,874,970,1050,1080
618 };
619
620 code unsigned char UserTimeTab[]={
621 T_Timing_Parameters(0x10,0x60,0x3a8,Re_0720x0400),
622 T_Timing_Parameters(0x10,0x50,0x342,Re_0640x0480),
623 T_Timing_Parameters(0x10,0x17,0x3b0,Re_0720x0576),
624 T_Timing_Parameters(0x10,0x98,0x418,Re_0800x0600),
625 T_Timing_Parameters(0x10,0xe0,0x6c0,Re_1280x0720),
626 T_Timing_Parameters(0x10,0xd0,0x540,Re_1024x0768),
627 T_Timing_Parameters(0x10,0xd0,0x5c8,Re_1152x0864),
628 T_Timing_Parameters(0x10,0xe0,0x6c0,Re_1280x0960),
629 T_Timing_Parameters(0x10,0xf8,0x698,Re_1280x1024),
630 T_Timing_Parameters(0x2e,0x130,0x870,Re_1600x1200),
631 };
632 unsigned char i,j;
633 for(i=0; i<9; i++){
634 if(VTotal < Vt_Tab[i]){
635 break;
636 }
637 }
638 #endif
639 j = i * T_Timing_Data_No;
640 ModePoint = Read24C16(T_EEaddr_User_Start);
641 if((ModePoint <T_Preset_Timing_No)||(ModePoint >=T_Total_Mode_No)){
642 ModePoint = T_Preset_Timing_No;
643 }
644 Write24C16(T_EEaddr_User_Start,ModePoint+1); //index to nextuser mode
645 for(i=0; i<T_Timing_Data_No; i++){
646 Write24C16(T_EEaddr_Mode_data+i,UserTimeTab[j+i]);
647 }
648 Write24C16(T_EEaddr_H_Freq_Hi_Byte,H_SYNC >> 8);
649 Write24C16(T_EEaddr_H_Freq_Low_Byte,(Byte)H_SYNC);
650 Write24C16(T_EEaddr_V_Freq_Hi_Byte,(V_SYNC >> 8)|HV_Pol);
651 Write24C16(T_EEaddr_V_Freq_Low_Byte,V_SYNC);
652 ResolutionPtr = Read24C16(T_EEaddr_Resol)&0x7f;
653 }
654 */
655 /*==========================================
656 ==========================================*/
657
658
659 void CheckModeChange(void)
660 {
661 1
662 1 unsigned char temp;
663 1 if(DetectIRQ() || ChangeMode>0){
664 2 temp = ReadIIC563(0x1ab);
665 2 if((temp & 0x3c) != 0){
666 3 BackLightOff();
667 3 Abort = 1;
668 3 H_SYNC_Temp = 0xffff;
669 3 V_SYNC_Temp = 0xffff;
670 3 }
671 2
672 2 temp = ReadIIC563(0x19a);
673 2 if(((SyncMode > 0)&&(SyncMode < 3))||((SyncMode > 4)&&(SyncMode < 7))){ //compostive
C51 COMPILER V7.06 MODEHANDLE 10/16/2007 19:09:01 PAGE 12
674 3 if((temp & BIT_5) == 0){
675 4 BackLightOff();
676 4 Abort = 1;
677 4 H_SYNC_Temp = 0xffff;
678 4 V_SYNC_Temp = 0xffff;
679 4 return;
680 4 }
681 3 }else{
682 3 if((temp & 0x18) != 0x18){
683 4 BackLightOff();
684 4 Abort = 1;
685 4 H_SYNC_Temp = 0xffff;
686 4 V_SYNC_Temp = 0xffff;
687 4 return;
688 4 }
689 3 }
690 2 }
691 1 }
692
693 bit VsyncValide()
694 {
695 1 /*
696 1 Word VsyncWidth;
697 1 LocalTimer = 2; //20ms
698 1 while(!V_SyncPresent) //Vsync Lo
699 1 {
700 1 if(LocalTimer == 0)
701 1 return 0;
702 1 }
703 1 LocalTimer = 10; //100ms
704 1 while(V_SyncPresent) //Vsync Hi
705 1 {
706 1 if(LocalTimer == 0)
707 1 return 0;
708 1 }
709 1 VsyncWidth = 0;
710 1 while(!V_SyncPresent) //Vsync Hi 1:7us
711 1 {
712 1 VsyncWidth ++;
713 1 if(VsyncWidth > 50) //over 350us
714 1 return 0;
715 1 }
716 1 VsyncWidth = 0;
717 1 while(V_SyncPresent) //Vsync Hi 1:7us
718 1 {
719 1 VsyncWidth ++;
720 1 if(VsyncWidth > 714) //over 5ms
721 1 return 1;
722 1 }
723 1 */ return 0;
724 1 }
725
726 void LoadModeDependentSettings(void)
727 {
728 1 // Sharp,V_BP,H_BP,H_Tatol,Phase
729 1 //unsigned short addr;
730 1 // addr = T_EEaddr_Mode_data;
731 1 FuncBuf[pSHARPNESS] = EEP_ModeMap[T_EEaddr_Sharp];//(addr++);
732 1 FuncBuf[pVPOSITION] = EEP_ModeMap[T_EEaddr_VBP];//(addr++);
733 1 FuncBuf[pHPOSITION] = EEP_ModeMap[T_EEaddr_HBP];//(addr++);
734 1 FuncBuf[pHPOSITION] <<= 8;
735 1 FuncBuf[pHPOSITION] |= EEP_ModeMap[T_EEaddr_HBP+1];//(addr++);
C51 COMPILER V7.06 MODEHANDLE 10/16/2007 19:09:01 PAGE 13
736 1 FuncBuf[pCLOCK] = EEP_ModeMap[T_EEaddr_HTotal];//(addr++);
737 1 FuncBuf[pCLOCK] <<= 8;
738 1 FuncBuf[pCLOCK] |= EEP_ModeMap[T_EEaddr_HTotal+1];//(addr++);
739 1 // addr++;
740 1 FuncBuf[pPHASE] = EEP_ModeMap[T_EEaddr_Phase];//(addr);
741 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2483 ----
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 + -