📄 misc.src
字号:
;
;
; 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 + -