⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 misc.src

📁 采用台湾MRT晶捷公司的MRT4方案的液晶电视的程序
💻 SRC
📖 第 1 页 / 共 2 页
字号:
; 
; 
; void miscSetADCPhase(unsigned char phase)

	RSEG  ?PR?_miscSetADCPhase?MISC
	USING	0
_miscSetADCPhase:
;---- Variable 'phase?1042' assigned to Register 'R6' ----
	XCH  	A,R6
	MOV  	A,R7
	XCH  	A,R6
			; SOURCE LINE # 295
; {
			; SOURCE LINE # 296
; 
; #if MRT_VITESSE2
;     TDAByteOut(TDA_PHASE, (phase & PHASEMSK)|((eepModeData.setData.pitch & 1)<<6)|V2_ENABLE_PCLK);
			; SOURCE LINE # 299
	MOV  	R7,#09H
	MOV  	R0,#eepModeData+05H
	MOV  	A,@R0
	ANL  	A,#01H
	MOV  	R5,A
	SWAP 	A
	RLC  	A
	RLC  	A
	ANL  	A,#0C0H
	MOV  	R5,A
	MOV  	A,R6
	ANL  	A,#01FH
	ORL  	A,R5
	MOV  	R5,A
	LCALL	_TDAByteOut
;     TDAByteOut(TDA_DIVL, TDAByteIn(TDA_DIVL));
			; SOURCE LINE # 300
	MOV  	R7,#08H
	LCALL	_TDAByteIn
	XCH  	A,R5
	MOV  	A,R7
	XCH  	A,R5
	MOV  	R7,#08H
	LCALL	_TDAByteOut
; #endif
; 
; }
			; SOURCE LINE # 303
	RET  	
; END OF _miscSetADCPhase

; 
; 
; void miscSetADCPitch(unsigned int pitch)

	RSEG  ?PR?_miscSetADCPitch?MISC
	USING	0
_miscSetADCPitch:
	MOV  	pitch?1143,R6
	MOV  	pitch?1143+01H,R7
			; SOURCE LINE # 306
; {
			; SOURCE LINE # 307
; #if MRT_VITESSE2
; 	unsigned char data tpitchH;
; 	
; 	tpitchH = TDAByteIn(TDA_DIVH) & 0xf8;
			; SOURCE LINE # 311
	MOV  	R7,#07H
	LCALL	_TDAByteIn
	MOV  	A,R7
	ANL  	A,#0F8H
;---- Variable 'tpitchH?1144' assigned to Register 'R5' ----
	MOV  	R5,A
; #if MASCOT_VXZ
;     TDAByteOut(TDA_DIVH, tpitchH | ((unsigned char)(pitch>>8)&0x07));
			; SOURCE LINE # 313
	MOV  	A,pitch?1143
	ANL  	A,#07H
	ORL  	A,R5
	MOV  	R5,A
	MOV  	R7,#07H
	LCALL	_TDAByteOut
;     TDAByteOut(TDA_DIVL, (unsigned char)pitch);
			; SOURCE LINE # 314
	MOV  	R7,#08H
	MOV  	R5,pitch?1143+01H
	LCALL	_TDAByteOut
; #else		
;     TDAByteOut(TDA_PHASE, eepModeData.setData.phase|((pitch & 1)<<6)|V2_ENABLE_PCLK);
;     TDAByteOut(TDA_DIVH, tpitchH | ((unsigned char)(pitch>>9)&0x07));
;     TDAByteOut(TDA_DIVL, (unsigned char)(pitch>>1));
; #endif
; #endif
; 
; #if (DEBUGMSG>=3)
;     printf("    Pitch=%d", pitch);
; #endif
; 
; }
			; SOURCE LINE # 326
	RET  	
; END OF _miscSetADCPitch

; 
; 
; #if (TUNE_DCLK_CENTER == 0)
; 
; #define NMUL    7    //6
; #define MAXM    0x1d //0x0F
; #define MAXN    0xfd //0x7F
; 
; #define ft  ival
; #define fs  ival1
; #define F   ival2
; 
; void miscDClkUp(void)
; {
;     unsigned int mt, nt;
;     unsigned char M, N;
; 
;     M = (RegByteIn(0x2B) & 0x3F) + 2;
;     N = RegByteIn(0x2C) + 2;
;     F = ((unsigned int)N<<NMUL) / M;
; #if (DEBUGMSG >= 3)
;         printf("    miscDClkUp: %02X/%02X %d",
;         (unsigned int)(N-2), (unsigned int)(M-2), (unsigned int)((long)1200*N/M));
; #endif
; 
;     fs = 0xFF<<NMUL;
;     for (mt = 1+2; mt <= MAXM+2; mt++) {
;     	/////////////////
;     	nt = (F*mt)>>NMUL;
;     	if (nt > 0xff)	break;
;     	/////////////////
;     	for ( ; nt <= MAXN+2; nt++) {
;             ft = (nt<<NMUL)/mt;
;             if (ft > F) {
;                 if (fs >= ft-F) {
;                 //if (fs > ft-F) {	
;                     fs = ft-F; N = nt; M = mt;
;                 }
;                 break;
;             }
;         }
;     }
; 
;     RegByteOut(0x2B, M-2);
;     RegByteOut(0x2C, N-2);
;     RegByteOut(0x2E, RegByteIn(0x2E));
; 
; #if (DEBUGMSG >= 3)
;         printf(" -> %02X/%02X %d\n",
;         (unsigned int)N-2, (unsigned int)M-2, (unsigned int)((long)1200*N/M));
; #endif
; }
; 
; void miscDClkDown(void)
; {
;     unsigned int mt, nt;
;     unsigned char M, N;
; 
;     M = (RegByteIn(0x2B)&0x3F) + 2;
;     N = RegByteIn(0x2C) + 2;
;     F = ((unsigned int)N<<NMUL) / M;
; #if (DEBUGMSG >= 3)
;         printf("    miscDClkDown: %02X/%02X %d",
;         (unsigned int)N-2, (unsigned int)M-2, (unsigned int)((long)1200*N/M));
; #endif
; 
;     fs = 0xFF<<NMUL;
;     for (mt = 1+2; mt <= MAXM+2; mt++) {
;     	/////////////////
;     	nt = ((F*mt)>>NMUL)+1;
;    		if (nt > 0xff)	break;
;     	/////////////////
;         for ( ; nt > 2; nt--) {
;             ft = (nt<<NMUL)/mt;
;             if (F > ft) {
;                 if (fs > F-ft) {
;                     fs = F-ft; N = nt; M = mt;
;                 }
;                 break;
;             }
;         }
;     }
; 
;     RegByteOut(0x2B, M-2);
;     RegByteOut(0x2C, N-2);
;     RegByteOut(0x2E, RegByteIn(0x2E));
; 
; #if (DEBUGMSG >= 3)
;         printf(" -> %02X/%02X %d\n",
;         (unsigned int)N-2, (unsigned int)M-2, (unsigned int)((long)1200*N/M));
; #endif
; }
; 
; #undef ft
; #undef fs
; #undef F
; 
; 
; #else
; 
; 
; //------------------------------------> //2002/03/26 change miscDClkUp & miscDClkDown function
; #define NMUL    	7			//6
; #define MAXM    	0x1D		//0F
; #define MAXN    	0xFD		//7F
; 
; #define ft  ival
; #define fs  ival1
; #define F   ival2
; 
; void miscDClkUp(unsigned char delta)

	RSEG  ?PR?_miscDClkUp?MISC
	USING	0
_miscDClkUp:
	MOV  	delta?1245,R7
			; SOURCE LINE # 437
; {
			; SOURCE LINE # 438
;     unsigned int mt, nt;
;     unsigned char M, N;
;     	unsigned char i;
;     	
; 
;     M = (RegByteIn(0x2B) & 0x3F) + 2;
			; SOURCE LINE # 444
	MOV  	R7,#02BH
	LCALL	_RegByteIn
	MOV  	A,R7
	ANL  	A,#03FH
	ADD  	A,#02H
	MOV  	M?1248,A
;     N = RegByteIn(0x2C) + 2;
			; SOURCE LINE # 445
	MOV  	R7,#02CH
	LCALL	_RegByteIn
	MOV  	A,R7
	ADD  	A,#02H
	MOV  	N?1249,A
; #if (DEBUGMSG >= 3)
;         printf("    miscDClkUp: %02X/%02X %d",
;         (unsigned int)(N-2), (unsigned int)(M-2), (unsigned int)((long)1200*N/M));
; #endif
; for (i = 0; i < delta; i++)    
			; SOURCE LINE # 450
	CLR  	A
	MOV  	i?1250,A
?C0023:
	MOV  	A,i?1250
	CLR  	C
	SUBB 	A,delta?1245
	JC   	$ + 5H
	LJMP 	?C0024
; {
			; SOURCE LINE # 451
;     F = ((unsigned int)N<<NMUL) / M;
			; SOURCE LINE # 452
	MOV  	A,N?1249
	MOV  	B,#080H
	MUL  	AB
	MOV  	R7,A
	MOV  	R6,B
	MOV  	R5,M?1248
	MOV  	R4,#00H
	LCALL	?C?UIDIV
	MOV  	R0,#ival2
	MOV  	A,R6
	MOV  	@R0,A
	INC  	R0
	MOV  	A,R7
	MOV  	@R0,A
;     fs = 0xFF<<NMUL;
			; SOURCE LINE # 453
	MOV  	R0,#ival1
	MOV  	@R0,#07FH
	INC  	R0
	MOV  	@R0,#080H
;     for (mt = 1+2; mt <= MAXM+2; mt++) {
			; SOURCE LINE # 454
	MOV  	mt?1246,#00H
	MOV  	mt?1246+01H,#03H
?C0026:
; 		////////////////
; 		nt = (F*mt)>>NMUL;
			; SOURCE LINE # 456
	MOV  	R4,mt?1246
	MOV  	R5,mt?1246+01H
	MOV  	R0,#ival2
	MOV  	A,@R0
	MOV  	R6,A
	INC  	R0
	MOV  	A,@R0
	MOV  	R7,A
	LCALL	?C?IMUL
	MOV  	A,R7
	MOV  	R0,#07H
?C0054:
	XCH  	A,R6
	CLR  	C
	RRC  	A
	XCH  	A,R6
	RRC  	A
	DJNZ 	R0,?C0054
;---- Variable 'nt?1247' assigned to Register 'R2/R3' ----
	MOV  	R3,A
	XCH  	A,R2
	MOV  	A,R6
	XCH  	A,R2
;         if (nt > 0xff)	break;
			; SOURCE LINE # 457
	SETB 	C
	SUBB 	A,#0FFH
	MOV  	A,R2
	SUBB 	A,#00H
	JC   	$ + 5H
	LJMP 	?C0025
; 		///////////////     	
;         for (; nt <= MAXN+2; nt++) {
			; SOURCE LINE # 459
?C0030:
	SETB 	C
	MOV  	A,R3
	SUBB 	A,#0FFH
	MOV  	A,R2
	SUBB 	A,#00H
	JNC  	?C0028
;             ft = (nt<<NMUL)/mt;
			; SOURCE LINE # 460
	MOV  	A,R3
	XCH  	A,R6
	MOV  	A,R2
	XCH  	A,R6
	MOV  	R0,#07H
?C0055:
	CLR  	C
	RLC  	A
	XCH  	A,R6
	RLC  	A
	XCH  	A,R6
	DJNZ 	R0,?C0055
	MOV  	R7,A
	MOV  	R4,mt?1246
	MOV  	R5,mt?1246+01H
	LCALL	?C?UIDIV
	MOV  	R0,#ival
	MOV  	A,R6
	MOV  	@R0,A
	INC  	R0
	MOV  	A,R7
	MOV  	@R0,A
;             if (ft > F) {
			; SOURCE LINE # 461
	MOV  	R0,#ival2
	MOV  	A,@R0
	MOV  	R4,A
	INC  	R0
	MOV  	A,@R0
	MOV  	R5,A
	SETB 	C
	MOV  	A,R7
	SUBB 	A,R5
	MOV  	A,R6
	SUBB 	A,R4
	JC   	?C0032
;                 if (fs >= ft-F) {
			; SOURCE LINE # 462
	CLR  	C
	MOV  	R0,#ival+01H
	MOV  	A,@R0
	SUBB 	A,R5
	MOV  	R7,A
	DEC  	R0
	MOV  	A,@R0
	SUBB 	A,R4
	MOV  	R6,A
	CLR  	C
	MOV  	R0,#ival1+01H
	MOV  	A,@R0
	SUBB 	A,R7
	DEC  	R0
	MOV  	A,@R0
	SUBB 	A,R6
	JC   	?C0028
;                     fs = ft-F; N = nt; M = mt;
			; SOURCE LINE # 463
	CLR  	C
	MOV  	R1,#ival+01H
	MOV  	A,@R1
	MOV  	R0,#ival2+01H
	SUBB 	A,@R0
	MOV  	R7,A
	DEC  	R1
	MOV  	A,@R1
	DEC  	R0
	SUBB 	A,@R0
	MOV  	R0,#ival1
	MOV  	@R0,A
	INC  	R0
	MOV  	A,R7
	MOV  	@R0,A
	XCH  	A,R7
	MOV  	A,R3
	XCH  	A,R7
	MOV  	N?1249,R7
	MOV  	M?1248,mt?1246+01H
;                 }
			; SOURCE LINE # 464
;                 break;
			; SOURCE LINE # 465
	SJMP 	?C0028
;             }
			; SOURCE LINE # 466
;         }
			; SOURCE LINE # 467
?C0032:
	INC  	R3
	CJNE 	R3,#00H,?C0056
	INC  	R2
?C0056:
	SJMP 	?C0030
;     }
			; SOURCE LINE # 468
?C0028:
	INC  	mt?1246+01H
	MOV  	A,mt?1246+01H
	JNZ  	?C0057
	INC  	mt?1246
?C0057:
	MOV  	A,mt?1246+01H
	XRL  	A,#020H
	ORL  	A,mt?1246
	JZ   	$ + 5H
	LJMP 	?C0026
; }
			; SOURCE LINE # 469
?C0025:
	INC  	i?1250
	LJMP 	?C0023
?C0024:
;     RegByteOut(0x2B, M-2);
			; SOURCE LINE # 470
	MOV  	R7,#02BH
	MOV  	A,M?1248
	ADD  	A,#0FEH
	MOV  	R5,A
	LCALL	_RegByteOut
;     RegByteOut(0x2C, N-2);
			; SOURCE LINE # 471
	MOV  	R7,#02CH
	MOV  	A,N?1249
	ADD  	A,#0FEH
	MOV  	R5,A
	LCALL	_RegByteOut
;     RegByteOut(0x2E, RegByteIn(0x2E));
			; SOURCE LINE # 472
	MOV  	R7,#02EH
	LCALL	_RegByteIn
	XCH  	A,R5
	MOV  	A,R7
	XCH  	A,R5
	MOV  	R7,#02EH
	LCALL	_RegByteOut
; 
; #if (DEBUGMSG >= 3)
;         printf(" -> %02X/%02X %d\n",
;         (unsigned int)N-2, (unsigned int)M-2, (unsigned int)((long)1200*N/M));
; #endif
; }
			; SOURCE LINE # 478
	RET  	
; END OF _miscDClkUp

; 
; void miscDClkDown(unsigned char delta)

	RSEG  ?PR?_miscDClkDown?MISC
	USING	0
_miscDClkDown:
	MOV  	delta?1351,R7
			; SOURCE LINE # 480
; {
			; SOURCE LINE # 481
; 	unsigned int mt, nt;
; 	unsigned char M, N;
;     unsigned char i;
; 
;     M = (RegByteIn(0x2B)&0x3F) + 2;
			; SOURCE LINE # 486
	MOV  	R7,#02BH
	LCALL	_RegByteIn
	MOV  	A,R7
	ANL  	A,#03FH
	ADD  	A,#02H
	MOV  	M?1354,A
;     N = RegByteIn(0x2C) + 2;
			; SOURCE LINE # 487
	MOV  	R7,#02CH
	LCALL	_RegByteIn
	MOV  	A,R7
	ADD  	A,#02H
	MOV  	N?1355,A
; #if (DEBUGMSG >= 3)
;         printf("    miscDClkDown: %02X/%02X %d",
;         (unsigned int)N-2, (unsigned int)M-2, (unsigned int)((long)1200*N/M));
; #endif
; for (i = 0; i < delta; i++)    
			; SOURCE LINE # 492
	CLR  	A
	MOV  	i?1356,A
?C0036:
	MOV  	A,i?1356
	CLR  	C
	SUBB 	A,delta?1351
	JC   	$ + 5H
	LJMP 	?C0037
; {
			; SOURCE LINE # 493
; 
;     F = ((unsigned int)N<<NMUL) / M;
			; SOURCE LINE # 495
	MOV  	A,N?1355
	MOV  	B,#080H
	MUL  	AB
	MOV  	R7,A
	MOV  	R6,B
	MOV  	R5,M?1354
	MOV  	R4,#00H
	LCALL	?C?UIDIV
	MOV  	R0,#ival2
	MOV  	A,R6
	MOV  	@R0,A
	INC  	R0
	MOV  	A,R7
	MOV  	@R0,A
;     fs = 0xFF<<NMUL;
			; SOURCE LINE # 496
	MOV  	R0,#ival1
	MOV  	@R0,#07FH
	INC  	R0
	MOV  	@R0,#080H
;     for (mt = 1+2; mt <= MAXM+2; mt++) {
			; SOURCE LINE # 497
	MOV  	mt?1352,#00H
	MOV  	mt?1352+01H,#03H
?C0039:
;     	///////////////
; 		nt = ((F*mt)>>NMUL)+1 ;
			; SOURCE LINE # 499
	MOV  	R4,mt?1352
	MOV  	R5,mt?1352+01H
	MOV  	R0,#ival2
	MOV  	A,@R0
	MOV  	R6,A
	INC  	R0
	MOV  	A,@R0
	MOV  	R7,A
	LCALL	?C?IMUL
	MOV  	A,R7
	MOV  	R0,#07H
?C0058:
	XCH  	A,R6
	CLR  	C
	RRC  	A
	XCH  	A,R6
	RRC  	A
	DJNZ 	R0,?C0058
	ADD  	A,#01H
	MOV  	R7,A
	CLR  	A
	ADDC 	A,R6
;---- Variable 'nt?1353' assigned to Register 'R2/R3' ----
	XCH  	A,R3
	MOV  	A,R7
	XCH  	A,R3
	MOV  	R2,A
; 		if (nt > 0xff) break;
			; SOURCE LINE # 500
	SETB 	C
	MOV  	A,R3
	SUBB 	A,#0FFH
	MOV  	A,R2
	SUBB 	A,#00H
	JC   	$ + 5H
	LJMP 	?C0038
; 		///////////////
;         for ( ; nt > 2; nt--) {
			; SOURCE LINE # 502
?C0043:
	SETB 	C
	MOV  	A,R3
	SUBB 	A,#02H
	MOV  	A,R2
	SUBB 	A,#00H
	JC   	?C0041
;             ft = (nt<<NMUL)/mt;
			; SOURCE LINE # 503
	MOV  	A,R3
	XCH  	A,R6
	MOV  	A,R2
	XCH  	A,R6
	MOV  	R0,#07H
?C0059:
	CLR  	C
	RLC  	A
	XCH  	A,R6
	RLC  	A
	XCH  	A,R6
	DJNZ 	R0,?C0059
	MOV  	R7,A
	MOV  	R4,mt?1352
	MOV  	R5,mt?1352+01H
	LCALL	?C?UIDIV
	MOV  	R0,#ival
	MOV  	A,R6
	MOV  	@R0,A
	INC  	R0
	MOV  	A,R7
	MOV  	@R0,A
;             if (F > ft) {
			; SOURCE LINE # 504
	MOV  	R0,#ival2
	MOV  	A,@R0
	MOV  	R4,A
	INC  	R0
	MOV  	A,@R0
	MOV  	R5,A
	SETB 	C
	SUBB 	A,R7
	MOV  	A,R4
	SUBB 	A,R6
	JC   	?C0045
;                 if (fs > F-ft) {
			; SOURCE LINE # 505
	CLR  	C
	MOV  	A,R5
	MOV  	R0,#ival+01H
	SUBB 	A,@R0
	MOV  	R7,A
	MOV  	A,R4
	DEC  	R0
	SUBB 	A,@R0
	MOV  	R6,A
	SETB 	C
	MOV  	R0,#ival1+01H
	MOV  	A,@R0
	SUBB 	A,R7
	DEC  	R0
	MOV  	A,@R0
	SUBB 	A,R6
	JC   	?C0041
;                     fs = F-ft; N = nt; M = mt;
			; SOURCE LINE # 506
	CLR  	C
	MOV  	R1,#ival2+01H
	MOV  	A,@R1
	MOV  	R0,#ival+01H
	SUBB 	A,@R0
	MOV  	R7,A
	DEC  	R1
	MOV  	A,@R1
	DEC  	R0
	SUBB 	A,@R0
	MOV  	R0,#ival1
	MOV  	@R0,A
	INC  	R0
	MOV  	A,R7
	MOV  	@R0,A
	XCH  	A,R7
	MOV  	A,R3
	XCH  	A,R7
	MOV  	N?1355,R7
	MOV  	M?1354,mt?1352+01H
;                 }
			; SOURCE LINE # 507
;                 break;
			; SOURCE LINE # 508
	SJMP 	?C0041
;             }
			; SOURCE LINE # 509
;         }
			; SOURCE LINE # 510
?C0045:
	MOV  	A,R3
	DEC  	R3
	JNZ  	?C0060
	DEC  	R2
?C0060:
	SJMP 	?C0043
;     }
			; SOURCE LINE # 511
?C0041:
	INC  	mt?1352+01H
	MOV  	A,mt?1352+01H
	JNZ  	?C0061
	INC  	mt?1352
?C0061:
	MOV  	A,mt?1352+01H
	XRL  	A,#020H
	ORL  	A,mt?1352
	JZ   	$ + 5H
	LJMP 	?C0039
; }
			; SOURCE LINE # 512
?C0038:
	INC  	i?1356
	LJMP 	?C0036
?C0037:
; 
;     RegByteOut(0x2B, M-2);
			; SOURCE LINE # 514
	MOV  	R7,#02BH
	MOV  	A,M?1354
	ADD  	A,#0FEH
	MOV  	R5,A
	LCALL	_RegByteOut
;     RegByteOut(0x2C, N-2);
			; SOURCE LINE # 515
	MOV  	R7,#02CH
	MOV  	A,N?1355
	ADD  	A,#0FEH
	MOV  	R5,A
	LCALL	_RegByteOut
;     RegByteOut(0x2E, RegByteIn(0x2E));
			; SOURCE LINE # 516
	MOV  	R7,#02EH
	LCALL	_RegByteIn
	XCH  	A,R5
	MOV  	A,R7
	XCH  	A,R5
	MOV  	R7,#02EH
	LCALL	_RegByteOut
; 
; #if (DEBUGMSG >= 3)
;         printf(" -> %02X/%02X %d\n",
;         (unsigned int)N-2, (unsigned int)M-2, (unsigned int)((long)1200*N/M));
; #endif
; }
			; SOURCE LINE # 522
	RET  	
; END OF _miscDClkDown

; 
; #undef ft
; #undef fs
; #undef F
; //------------------------------------> //2002/03/26 change miscDClkUp & miscDClkDown function
; 
; #endif
; 
; 
; 
; 
; #if ENABLE_TCON
; void miscSwitchTCONReg(unsigned char flag)

	RSEG  ?PR?_miscSwitchTCONReg?MISC
	USING	0
_miscSwitchTCONReg:
;---- Variable 'flag?1457' assigned to Register 'R6' ----
	XCH  	A,R6
	MOV  	A,R7
	XCH  	A,R6
			; SOURCE LINE # 535
; {
			; SOURCE LINE # 536
; 	RegByteOut(0xC0, flag?0x20:0x00);
			; SOURCE LINE # 537
	MOV  	R7,#0C0H
	MOV  	A,R6
	JZ   	?C0049
	MOV  	R5,#020H
	SJMP 	?C0050
?C0049:
	MOV  	R5,#00H
?C0050:
	LCALL	_RegByteOut
; }
			; SOURCE LINE # 538
	RET  	
; END OF _miscSwitchTCONReg

	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -