📄 osdtune.src
字号:
; OSDTUNE.SRC generated from: OSDTUNE.C
$NOMOD51
NAME OSDTUNE
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
PSW DATA 0D0H
ACC DATA 0E0H
B DATA 0F0H
SP DATA 081H
DPL DATA 082H
DPH DATA 083H
PCON DATA 087H
TCON DATA 088H
TMOD DATA 089H
TL0 DATA 08AH
TL1 DATA 08BH
TH0 DATA 08CH
TH1 DATA 08DH
IE DATA 0A8H
IP DATA 0B8H
SCON DATA 098H
SBUF DATA 099H
CY BIT 0D0H.7
AC BIT 0D0H.6
F0 BIT 0D0H.5
RS1 BIT 0D0H.4
RS0 BIT 0D0H.3
OV BIT 0D0H.2
P BIT 0D0H.0
TF1 BIT 088H.7
TR1 BIT 088H.6
TF0 BIT 088H.5
TR0 BIT 088H.4
IE1 BIT 088H.3
IT1 BIT 088H.2
IE0 BIT 088H.1
IT0 BIT 088H.0
EA BIT 0A8H.7
ES BIT 0A8H.4
ET1 BIT 0A8H.3
EX1 BIT 0A8H.2
ET0 BIT 0A8H.1
EX0 BIT 0A8H.0
PS BIT 0B8H.4
PT1 BIT 0B8H.3
PX1 BIT 0B8H.2
PT0 BIT 0B8H.1
PX0 BIT 0B8H.0
RD BIT 0B0H.7
WR BIT 0B0H.6
T1 BIT 0B0H.5
T0 BIT 0B0H.4
INT1 BIT 0B0H.3
INT0 BIT 0B0H.2
TXD BIT 0B0H.1
RXD BIT 0B0H.0
SM0 BIT 098H.7
SM1 BIT 098H.6
SM2 BIT 098H.5
REN BIT 098H.4
TB8 BIT 098H.3
RB8 BIT 098H.2
TI BIT 098H.1
RI BIT 098H.0
SDAPin BIT 090H.6
SCLPin BIT 090H.7
WPPin BIT 090H.5
ResetPin BIT 0A0H.0
BrightnessPin BIT 0B0H.5
VGA_CON_PIN BIT 0A0H.5
LED_O_Pin BIT 080H.0
LED_G_Pin BIT 080H.1
PANEL_VCC_PIN BIT 0A0H.2
PANEL_BKL_PIN BIT 0A0H.3
POWER_BUT_PIN BIT 090H.4
MENU_BUT_PIN BIT 090H.1
RIGHT_BUT_PIN BIT 090H.2
LEFT_BUT_PIN BIT 090H.3
AUTO_BUT_PIN BIT 090H.0
?PR?_autoTune?OSDTUNE SEGMENT CODE
?DT?_autoTune?OSDTUNE SEGMENT DATA OVERLAYABLE
?PR?initCalibration?OSDTUNE SEGMENT CODE
?DT?initCalibration?OSDTUNE SEGMENT DATA OVERLAYABLE
?PR?_hvCalibration?OSDTUNE SEGMENT CODE
?DT?_hvCalibration?OSDTUNE SEGMENT DATA OVERLAYABLE
?PR?pitchCalibration?OSDTUNE SEGMENT CODE
?DT?pitchCalibration?OSDTUNE SEGMENT DATA OVERLAYABLE
?BI?pitchCalibration?OSDTUNE SEGMENT BIT OVERLAYABLE
?PR?phaseHWCalibration?OSDTUNE SEGMENT CODE
?DT?phaseHWCalibration?OSDTUNE SEGMENT DATA OVERLAYABLE
?BI?phaseHWCalibration?OSDTUNE SEGMENT BIT OVERLAYABLE
?PR?_phaseCalibration?OSDTUNE SEGMENT CODE
?DT?_phaseCalibration?OSDTUNE SEGMENT DATA OVERLAYABLE
?PR?_waitCalibReady?OSDTUNE SEGMENT CODE
?DT?_waitCalibReady?OSDTUNE SEGMENT DATA OVERLAYABLE
?PR?_waitCalibReady1?OSDTUNE SEGMENT CODE
?DT?_waitCalibReady1?OSDTUNE SEGMENT DATA OVERLAYABLE
?PR?pitchPatch?OSDTUNE SEGMENT CODE
EXTRN BIT (tunePhaseFlag)
EXTRN BIT (CalibSuccess)
EXTRN IDATA (eepData)
EXTRN IDATA (eepModeData)
EXTRN IDATA (buff)
EXTRN IDATA (ival)
EXTRN IDATA (ival1)
EXTRN IDATA (ival2)
EXTRN DATA (CurrentWidth)
EXTRN DATA (CurrentHeight)
EXTRN DATA (DefaultPitch)
EXTRN DATA (hTotal)
EXTRN DATA (phaseHwStart)
EXTRN DATA (phaseHwEnd)
EXTRN CODE (checkPowerOffButton)
EXTRN CODE (disableDigitalColor)
EXTRN CODE (enableDigitalColor)
EXTRN CODE (_RegByteIn)
EXTRN CODE (_RegDataIn)
EXTRN DATA (?_RegDataIn?BYTE)
EXTRN CODE (_RegByteOut)
EXTRN CODE (_RegDataOut)
EXTRN DATA (?_RegDataOut?BYTE)
EXTRN CODE (_miscDelay)
EXTRN CODE (_miscSetADCPhase)
EXTRN CODE (_miscSetADCPitch)
EXTRN CODE (?C?LMUL)
EXTRN CODE (?C?LADD)
EXTRN CODE (?C?ULCMP)
PUBLIC pitchPatch
PUBLIC _waitCalibReady1
PUBLIC _waitCalibReady
PUBLIC _phaseCalibration
PUBLIC phaseHWCalibration
PUBLIC ?pitchCalibration?BIT
PUBLIC pitchCalibration
PUBLIC _hvCalibration
PUBLIC initCalibration
PUBLIC _autoTune
RSEG ?DT?_autoTune?OSDTUNE
?_autoTune?BYTE:
options?040: DS 1
RSEG ?DT?initCalibration?OSDTUNE
?initCalibration?BYTE:
vTotal?141: DS 2
RSEG ?DT?_hvCalibration?OSDTUNE
?_hvCalibration?BYTE:
options?242: DS 1
ORG 1
vStart?243: DS 2
vHeight?244: DS 2
RSEG ?DT?pitchCalibration?OSDTUNE
?pitchCalibration?BYTE:
pitch?346: DS 2
tpitch0?347: DS 2
RSEG ?BI?pitchCalibration?OSDTUNE
?pitchCalibration?BIT:
flag?345: DBIT 1
ORG 1
up?348: DBIT 1
dn?349: DBIT 1
RSEG ?DT?phaseHWCalibration?OSDTUNE
?phaseHWCalibration?BYTE:
phase?453: DS 1
RSEG ?BI?phaseHWCalibration?OSDTUNE
?phaseHWCalibration?BIT:
phaseOkFlag?450: DBIT 1
phaseOkFlag1?451: DBIT 1
phaseOkFlag2?452: DBIT 1
RSEG ?DT?_phaseCalibration?OSDTUNE
?_phaseCalibration?BYTE:
control?554: DS 1
ORG 1
ErrorVal?555: DS 4
MinErrorVal?556: DS 4
RSEG ?DT?_waitCalibReady?OSDTUNE
?_waitCalibReady?BYTE:
mask?657: DS 1
ORG 1
bv?658: DS 1
cnt?659: DS 2
RSEG ?DT?_waitCalibReady1?OSDTUNE
?_waitCalibReady1?BYTE:
mask?760: DS 1
ORG 1
cnt?762: DS 2
; /************************************************
; * *
; * OSDTUNE.C: Auto tuning From David *
; * *
; *************************************************/
;
; #include <reg51.h>
; #include <math.h>
; #include "MOSAIC.h"
; #include "busio.h"
; #include "OSD.h"
; #include "global.h"
;
;
;
; /******************************************
; * Auto Tuning Adjustment *
; *******************************************/
; void autoTune(unsigned char options)
RSEG ?PR?_autoTune?OSDTUNE
USING 0
_autoTune:
MOV options?040,R7
; SOURCE LINE # 19
; {
; SOURCE LINE # 20
;
;
; #if DEBUGMSG
; printf("AutoTune\n");
; #endif
;
; disableDigitalColor();
; SOURCE LINE # 27
LCALL disableDigitalColor
;
;
; #if (MASCOT_VZ+MASCOT_VXZ+MASCOT_VP2 == 0)
; setColorRGB(DEF_DATA);
; #endif
;
; RegByteOut(0xB0, 0x00); // Disable calibration
; SOURCE LINE # 34
MOV R7,#0B0H
CLR A
MOV R5,A
LCALL _RegByteOut
;
; CalibSuccess = 1;
; SOURCE LINE # 36
SETB CalibSuccess
;
; if (options & OPTIONPITCH)
; SOURCE LINE # 38
MOV A,options?040
JNB ACC.2,?C0001
; {
; SOURCE LINE # 39
; miscSetADCPitch(DefaultPitch);
; SOURCE LINE # 40
MOV R7,DefaultPitch+01H
MOV R6,DefaultPitch
LCALL _miscSetADCPitch
; }
; SOURCE LINE # 41
?C0001:
;
;
; // tune HV
; if (options & OPTIONCENTER)
; SOURCE LINE # 45
MOV A,options?040
ANL A,#03H
JZ ?C0002
; {
; SOURCE LINE # 46
; initCalibration();
; SOURCE LINE # 47
LCALL initCalibration
; hvCalibration(options);
; SOURCE LINE # 48
MOV R7,options?040
LCALL _hvCalibration
; }
; SOURCE LINE # 49
?C0002:
;
; checkPowerOffButton();
; SOURCE LINE # 51
LCALL checkPowerOffButton
; if (!(eepData.MascotFlag & FLAG_POWERSTATUS)) return;
; SOURCE LINE # 52
MOV R0,#eepData+01BH
MOV A,@R0
JB ACC.0,$ + 6H
LJMP ?C0004
?C0003:
;
;
; // tune pitch and phaseHW
; if (options & OPTIONPITCH)
; SOURCE LINE # 56
MOV A,options?040
JNB ACC.2,?C0005
; {
; SOURCE LINE # 57
; pitchCalibration(DEF_DATA); // tune pitch
; SOURCE LINE # 58
CLR ?pitchCalibration?BIT
LCALL pitchCalibration
; if (!(eepData.MascotFlag & FLAG_POWERSTATUS))
; SOURCE LINE # 59
MOV R0,#eepData+01BH
MOV A,@R0
JNB ACC.0,?C0004
?C0006:
; return;
;
; phaseHWCalibration(); // tune phase
; SOURCE LINE # 62
LCALL phaseHWCalibration
; if (!(eepData.MascotFlag & FLAG_POWERSTATUS))
; SOURCE LINE # 63
MOV R0,#eepData+01BH
MOV A,@R0
JNB ACC.0,?C0004
?C0007:
; return;
;
; if(pitchCalibration(EEP_DATA)) // tune pitch
; SOURCE LINE # 66
SETB ?pitchCalibration?BIT
LCALL pitchCalibration
MOV A,R7
JZ ?C0005
; {
; SOURCE LINE # 67
; if (!(eepData.MascotFlag & FLAG_POWERSTATUS))
; SOURCE LINE # 68
MOV R0,#eepData+01BH
MOV A,@R0
JNB ACC.0,?C0004
?C0009:
; return;
; phaseHWCalibration(); // tune phase
; SOURCE LINE # 70
LCALL phaseHWCalibration
;
; if(pitchCalibration(EEP_DATA)) // tune pitch
; SOURCE LINE # 72
SETB ?pitchCalibration?BIT
LCALL pitchCalibration
MOV A,R7
JZ ?C0005
; {
; SOURCE LINE # 73
; if (!(eepData.MascotFlag & FLAG_POWERSTATUS))
; SOURCE LINE # 74
MOV R0,#eepData+01BH
MOV A,@R0
JNB ACC.0,?C0004
?C0011:
; return;
; phaseHWCalibration(); // tune phase
; SOURCE LINE # 76
LCALL phaseHWCalibration
; }
; SOURCE LINE # 77
; }
; SOURCE LINE # 78
; }
; SOURCE LINE # 79
?C0005:
;
; checkPowerOffButton();
; SOURCE LINE # 81
LCALL checkPowerOffButton
; if (!(eepData.MascotFlag & FLAG_POWERSTATUS)) return;
; SOURCE LINE # 82
MOV R0,#eepData+01BH
MOV A,@R0
JNB ACC.0,?C0004
?C0012:
;
;
; tunePhaseFlag = 0;
; SOURCE LINE # 85
CLR tunePhaseFlag
;
; // tune pitch with phase
; #if ((MASCOT_VZ+MASCOT_VXZ+MASCOT_VP2)&& TUNE_PITCH_WITH_PHASE)
; if ((options & OPTIONPITCH)&&(eepModeData.setData.pitch % 8))
; {
; tunePhaseFlag = 1;
; pitchCalibwithPhase();
; }
; #endif
;
;
;
; // tune phase
; if (options & OPTIONPHASE)
; SOURCE LINE # 99
MOV A,options?040
JNB ACC.3,?C0013
; {
; SOURCE LINE # 100
; if (CurrentWidth >= 1024)
; SOURCE LINE # 101
CLR C
MOV A,CurrentWidth
XRL A,#080H
SUBB A,#084H
JC ?C0014
; phaseCalibration(0x07);
; SOURCE LINE # 102
MOV R7,#07H
LCALL _phaseCalibration
SJMP ?C0013
?C0014:
; else if (tunePhaseFlag)
; SOURCE LINE # 103
JNB tunePhaseFlag,?C0013
; phaseHWCalibration();
; SOURCE LINE # 104
LCALL phaseHWCalibration
; }
; SOURCE LINE # 105
?C0013:
;
; checkPowerOffButton();
; SOURCE LINE # 107
LCALL checkPowerOffButton
; if (!(eepData.MascotFlag & FLAG_POWERSTATUS)) return;
; SOURCE LINE # 108
MOV R0,#eepData+01BH
MOV A,@R0
JNB ACC.0,?C0004
?C0017:
;
;
; enableDigitalColor();
; SOURCE LINE # 111
LCALL enableDigitalColor
;
;
; // tune HV
; if (options & OPTIONCENTER)
; SOURCE LINE # 115
MOV A,options?040
ANL A,#03H
JZ ?C0018
; {
; SOURCE LINE # 116
; initCalibration();
; SOURCE LINE # 117
LCALL initCalibration
; hvCalibration(options);
; SOURCE LINE # 118
MOV R7,options?040
LCALL _hvCalibration
; }
; SOURCE LINE # 119
?C0018:
;
; checkPowerOffButton();
; SOURCE LINE # 121
LCALL checkPowerOffButton
; if (!(eepData.MascotFlag & FLAG_POWERSTATUS)) return;
; SOURCE LINE # 122
;
;
; #if (MASCOT_VZ+MASCOT_VXZ+MASCOT_VP2 == 0)
; setColorRGB(EEP_DATA);
; #endif
;
;
;
; #if DEBUGMSG
; printf("AutoTune %s\n", CalibSuccess?"DONE":"FAIL");
; #endif
; }
; SOURCE LINE # 134
?C0004:
RET
; END OF _autoTune
;
; /************************************************
; * initial Calibration setting *
; *************************************************/
; //#define VCALSTART 3
; //#define HCALSTART 16 //(4*8+4)
; //#define HLIMIT 100 //(CurrentWidth>>4)
; //#define VLIMIT 100 //(CurrentHeight>>3)
;
;
; void initCalibration(void)
RSEG ?PR?initCalibration?OSDTUNE
USING 0
initCalibration:
; SOURCE LINE # 145
; {
; SOURCE LINE # 146
; unsigned int vTotal;
; //unsigned char *regtbl;
;
; // set start position to default
; //regtbl = (ModeTbl[CurrentMode&0x7f].modeptr) + MODEHSTART;
; //RegDataOut(0x34, regtbl, 4);
;
;
;
; #if (DEBUGMSG>=2)
; printf("\n ### Total Calib,\n");
; #endif
;
;
; #if (MASCOT_VZ+MASCOT_VXZ+MASCOT_VP2)
; RegByteOut(0xB1, 0x80); // use threshold
; SOURCE LINE # 162
MOV R7,#0B1H
MOV R5,#080H
LCALL _RegByteOut
; RegByteOut(0xB9, 0x30); // threshold value
; SOURCE LINE # 163
MOV R7,#0B9H
MOV R5,#030H
LCALL _RegByteOut
; #else
; RegByteOut(0xB1, 0x00);
; #endif
; RegByteOut(0xB2, COLORCMPMASK); // Set color compare mask
; SOURCE LINE # 167
MOV R7,#0B2H
MOV R5,#0C0H
LCALL _RegByteOut
;
; RegByteOut(0xB0, 0x01); // Enable total calibration
; SOURCE LINE # 169
MOV R7,#0B0H
MOV R5,#01H
LCALL _RegByteOut
; RegByteOut(0x00, 0x00); // Clear the calibration status reg
; SOURCE LINE # 170
CLR A
MOV R7,A
MOV R5,A
LCALL _RegByteOut
;
; if ( waitCalibReady(0x01) )
; SOURCE LINE # 172
MOV R7,#01H
LCALL _waitCalibReady
MOV A,R7
JZ ?C0020
; {
; SOURCE LINE # 173
; RegDataIn(0xD0, buff+8, 3);
; SOURCE LINE # 174
MOV R7,#0D0H
MOV R3,#00H
MOV R2,#HIGH (buff+08H)
MOV R1,#LOW (buff+08H)
MOV ?_RegDataIn?BYTE+04H,#00H
MOV ?_RegDataIn?BYTE+05H,#03H
LCALL _RegDataIn
; hTotal = ((unsigned int)(buff[10]&0x70)<<4) +buff[9];
; SOURCE LINE # 175
MOV R0,#buff+0AH
MOV A,@R0
MOV R5,A
ANL A,#070H
MOV B,#010H
MUL AB
MOV R7,A
MOV R6,B
DEC R0
MOV A,@R0
MOV R2,#00H
ADD A,R7
MOV hTotal+01H,A
MOV A,R2
ADDC A,R6
MOV hTotal,A
; vTotal = ((unsigned int)(buff[10]&0x07)<<8) +buff[8];
; SOURCE LINE # 176
MOV A,R5
ANL A,#07H
MOV R6,A
DEC R0
MOV A,@R0
MOV R4,#00H
ADD A,#00H
MOV vTotal?141+01H,A
MOV A,R4
ADDC A,R6
MOV vTotal?141,A
; }
; SOURCE LINE # 177
?C0020:
;
;
; #if (DEBUGMSG>=2)
; printf("hTotal=%04X/%d vTotal=%04X/%d\n", hTotal,hTotal,vTotal,vTotal);
; #endif
;
;
; // Set cal area
; buff[8] = HCALSTART; // Cal H Start [7:0]
; SOURCE LINE # 186
MOV R0,#buff+08H
MOV @R0,#014H
; buff[9] = hTotal; // Cal H End [7:0]
; SOURCE LINE # 187
INC R0
MOV A,hTotal+01H
MOV @R0,A
; buff[10] = ((hTotal>>4)&0xF0)+((HCALSTART>>8)&0x0F);//Cal H Start/End [10:8]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -