ui_licensinf.s01

来自「MP3 整个 SDK」· S01 代码 · 共 1,182 行 · 第 1/2 页

S01
1,182
字号
; 289.	                itoa_4(infbuf->RemainPlayCnt, tmpbuf);                             
	LD	HL,2
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,(IY+1)
	LD	D,(IY+2)
	JR	?0098
; 290.	                SetTextPos(80, 70);    
; 291.	                delstartzero(tmpbuf);
; 292.	                PutS(tmpbuf, -1);
; 293.	                //if (lan_id == LAN_ID_ENGLISH)
; 294.	                //{
; 295.	                //    SetTextPos()
; 296.	                //}                 
; 297.	                ResShowMultiString(TTIMES, lan_id, 124, 70);                 
; 298.	                return TRUE;
; 299.	        }
?0047:
; 300.	
; 301.	    case OriginalPlayCntDisp_def:
; 302.	        if ((infbuf->switchflag & on_PLAYCNT_def) == 0)
	BIT	5,(IY+0)
	JP	Z,?0068
?0048:
; 303.	        {
; 304.	                 return FALSE;    
; 305.	        }
?0049:
; 306.	         else
; 307.	         {
; 308.	                char tmpbuf[5];
; 309.	                //显示标题
; 310.	                ClearScreen(NULL);
	CALL	LWRD ?0106
; 311.	                ResShowMultiString(OPLAYCNT, lan_id, 255, 90);
	PUSH	BC
	LD	C,255
	PUSH	BC
	LD	C,(IX+12)
	LD	DE,444
	CALL	LWRD ?0107
	POP	AF
	POP	AF
; 312.	                itoa_4(infbuf->originalPlayCnt, tmpbuf);                             
	LD	HL,2
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,(IY+3)
	LD	D,(IY+4)
?0098:
	CALL	LWRD ?0110
; 313.	                SetTextPos(80, 70);    
; 314.	                delstartzero(tmpbuf);
	ADD	HL,SP
	CALL	LWRD ?0111
; 315.	                PutS(tmpbuf, -1);
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD PutS
; 316.	                //if (lan_id == LAN_ID_ENGLISH)
; 317.	                //{
; 318.	                //    SetTextPos()
; 319.	                //}                 
; 320.	                ResShowMultiString(TTIMES, lan_id, 124, 70); 
	LD	C,70
	PUSH	BC
	LD	C,124
	PUSH	BC
	LD	C,(IX+12)
	LD	DE,448
	CALL	LWRD ?0107
	POP	AF
	POP	AF
; 321.	                 return TRUE;
	JR	?0101
; 322.	             
; 323.	         }
?0050:
; 324.	        
; 325.	    case BeginDateTimeDisp_def:
; 326.	        if ((infbuf->switchflag & on_BEGINDAT_def) == 0)
	BIT	4,(IY+0)
	JP	Z,?0068
?0051:
; 327.	        {
; 328.	            return FALSE;
; 329.	        }
?0052:
; 330.	        else
; 331.	        {
; 332.	
; 333.	            //显示日期时间
; 334.	             DateTime_t *pBeginDateTime;
; 335.	             pBeginDateTime = (DateTime_t *)&infbuf->BeginDate;                    
	LD	HL,5
	PUSH	IY
	POP	BC
	ADD	HL,BC
; 336.	             DisplayDate(BEGINDAT, pBeginDateTime, subcnt, lan_id);
	LD	C,(IX+12)
	PUSH	BC
	LD	C,(IX+10)
	PUSH	BC
	LD	C,L
	LD	B,H
	LD	DE,440
	JR	?0105
; 337.	        
; 338.	            //ClearScreen(NULL);
; 339.	            //ResShowMultiString(BEGINDAT, lan_id, 0, 0); 
; 340.	            //DisplayDate(&infbuf->BeginDate, lan_id, 30, 24);          
; 341.	            return TRUE;
; 342.	        }
?0053:
; 343.	            
; 344.	
; 345.	    case ExpDateTimeDisp_def:
; 346.	        if ((infbuf->switchflag & on_EXPDATE_def) == 0)
	BIT	3,(IY+0)
	JP	Z,?0068
?0054:
; 347.	        {
; 348.	            return FALSE;
; 349.	        }
?0055:
; 350.	        else
; 351.	        {
; 352.	             DateTime_t *pExpDateTime;
; 353.	             pExpDateTime = (DateTime_t *)&infbuf->ExpDate;                    
	LD	HL,12
	PUSH	IY
	POP	BC
	ADD	HL,BC
; 354.	             DisplayDate(EXPDATE, pExpDateTime, subcnt, lan_id);
	LD	C,(IX+12)
	PUSH	BC
	LD	C,(IX+10)
	PUSH	BC
	LD	C,L
	LD	B,H
	LD	DE,441
?0105:
	LD	A,BYTE3 DisplayDate
	LD	HL,LWRD DisplayDate
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	HL
	POP	HL
; 355.	                     
; 356.	            //ClearScreen(NULL);
; 357.	            //ResShowMultiString(EXPDATE, lan_id, 0, 0);             
; 358.	            //DisplayDate(&infbuf->ExpDate, lan_id, 30, 24);
; 359.	            return TRUE;
?0101:
	JR	?0102
; 360.	        }
?0056:
; 361.	
; 362.	    case RemainTimeDisp_def:
; 363.	        if ((infbuf->switchflag & on_REMAINTM_def) == 0)
	BIT	2,(IY+0)
	JP	Z,?0068
?0057:
; 364.	        {
; 365.	            return FALSE;        
; 366.	        }
?0058:
; 367.	        else
; 368.	        {
; 369.	            char tmpbuf[5];
; 370.	            ClearScreen(NULL);
	CALL	LWRD ?0106
; 371.	            ResShowMultiString(REMAINTM, lan_id, 255, 90); 
	PUSH	BC
	LD	C,255
	PUSH	BC
	LD	C,(IX+12)
	LD	DE,442
	CALL	LWRD ?0107
	POP	AF
	POP	AF
; 372.	             itoa_4(infbuf->RemainTime, tmpbuf);
	LD	HL,2
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,(IY+19)
	LD	D,(IY+20)
	CALL	LWRD ?0110
; 373.	            SetTextPos(80, 70);
; 374.	            delstartzero(tmpbuf);                        
	ADD	HL,SP
	CALL	LWRD ?0111
; 375.	            PutS(tmpbuf, -1);            
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD PutS
; 376.	            ResShowMultiString(HOURS, lan_id, 124, 70);                 
	LD	C,70
	PUSH	BC
	LD	C,124
	PUSH	BC
	LD	C,(IX+12)
	LD	DE,449
	CALL	LWRD ?0107
	POP	AF
	POP	AF
; 377.	            return TRUE;
?0102:
	JR	?0103
; 378.	        }
?0059:
; 379.	
; 380.	    case RemainStoreTimeDisp_def:
; 381.	        if ((infbuf->switchflag & on_REMAINST_def) == 0)
	BIT	1,(IY+0)
	JR	Z,?0068
?0060:
; 382.	        {
; 383.	            return FALSE;        
; 384.	        }
?0061:
; 385.	        else
; 386.	        {
; 387.	            char tmpbuf[5];
; 388.	            ClearScreen(NULL);
	CALL	LWRD ?0106
; 389.	            ResShowMultiString(REMAINST, lan_id, 255, 90); 
	PUSH	BC
	LD	C,255
	PUSH	BC
	LD	C,(IX+12)
	LD	DE,443
	CALL	LWRD ?0107
	POP	AF
	POP	AF
; 390.	            itoa_4(infbuf->RemainStoreTime, tmpbuf);
	LD	HL,2
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,(IY+21)
	LD	D,(IY+22)
	CALL	LWRD ?0110
; 391.	            SetTextPos(80, 70);
; 392.	            delstartzero(tmpbuf);                        
	ADD	HL,SP
	CALL	LWRD ?0111
; 393.	            PutS(tmpbuf, -1);                        
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD PutS
; 394.	            ResShowMultiString(TDAY, lan_id, 124, 70);                             
	LD	C,70
	PUSH	BC
	LD	C,124
	PUSH	BC
	LD	C,(IX+12)
	LD	DE,447
	CALL	LWRD ?0107
	POP	AF
	POP	AF
; 395.	            return TRUE;
?0103:
	JR	?0067
; 396.	        }
?0062:
; 397.	
; 398.	    case DealOnClkBckDisp_def:
; 399.	        if ((infbuf->switchflag & on_DEALCLKBCK_def) == 0)
	BIT	0,(IY+0)
	JR	Z,?0068
?0063:
; 400.	        {
; 401.	            return FALSE;        
; 402.	        }
?0064:
; 403.	        else
; 404.	        {
; 405.	            if (infbuf->DealOnClkBck == 0)
	LD	A,(IY+23)
	OR	A
	JR	NZ,?0066
?0065:
; 406.	            {
; 407.	                ClearScreen(NULL);
	LD	E,A
	LD	D,A
	CALL	LWRD ClearScreen
; 408.	                ResShowMultiString(DELCKBCK, lan_id, 255, 80); 
	LD	C,80
	PUSH	BC
	LD	C,255
	PUSH	BC
	LD	C,(IX+12)
	LD	DE,445
	JR	?0090
; 409.	            }
; 410.	            else
?0066:
; 411.	            {
; 412.	                ClearScreen(NULL);
	LD	DE,0
	CALL	LWRD ClearScreen
; 413.	                ResShowMultiString(DISCKBCK, lan_id, 255, 80);                 
	LD	C,80
	PUSH	BC
	LD	C,255
	PUSH	BC
	LD	C,(IX+12)
	LD	DE,446
?0090:
	CALL	LWRD ?0107
	POP	AF
	POP	AF
?0067:
; 414.	            }
; 415.	            return TRUE;
	LD	L,1
; 416.	        }
	JR	?0069
?0068:
; 417.	        
; 418.	    default:
; 419.	        return FALSE;        
	LD	L,0
; 420.	    }
?0069:
	POP	IY
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0106:
	LD	DE,0
	CALL	LWRD ClearScreen
	LD	C,90
	RET
?0110:
	LD	A,BYTE3 itoa_4
	LD	HL,LWRD itoa_4
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	C,70
	LD	E,80
	CALL	LWRD SetTextPos
	LD	HL,2
	RET
?0111:
	EX	DE,HL
	LD	A,BYTE3 delstartzero
	LD	HL,LWRD delstartzero
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	C,255
	LD	HL,2
	RET
?0043:
; 421.	}
DisplayDate:
; 422.	
; 423.	void DisplayDate(int ID, DateTime_t *pDate,char discnt, BYTE string_id)
; 424.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65524
	PUSH	IY
	PUSH	BC
	POP	IY
; 425.	        char disbuf[11];
; 426.	
; 427.	        /*
; 428.	        switch(discnt)
; 429.	        {
; 430.	        case 0:
; 431.	                //a+b
; 432.	                ClearScreen(NULL);        
; 433.	                ResShowMultiString(ID, string_id, 0, 0);   
; 434.	                itoa4(pDate->date.year, &disbuf[0]);
; 435.	                itoa2(pDate->date.month, &disbuf[5]);
; 436.	                itoa2(pDate->date.day, &disbuf[8]);
; 437.	                disbuf[4] = '-';
; 438.	                disbuf[7] = '-';
; 439.	                SetTextPos(30, 24);    
; 440.	                PutS(disbuf, -1);            
; 441.	                break;
; 442.	            
; 443.	        case 1:
; 444.	                //b+c        
; 445.	                ClearScreen(NULL);        
; 446.	                itoa4(pDate->date.year, &disbuf[0]);
; 447.	                itoa2(pDate->date.month, &disbuf[5]);
; 448.	                itoa2(pDate->date.day, &disbuf[8]);
; 449.	                disbuf[4] = '-';
; 450.	                disbuf[7] = '-';
; 451.	                SetTextPos(30, 0);    
; 452.	                PutS(disbuf, -1);
; 453.	                itoa2(pDate->time.hour, &disbuf[0]);
; 454.	                itoa2(pDate->time.minute, &disbuf[3]);
; 455.	                itoa2(pDate->time.second, &disbuf[6]);
; 456.	                disbuf[2] = ':';
; 457.	                disbuf[5] = ':';
; 458.	                SetTextPos(30, 24);    
; 459.	                PutS(disbuf, -1);                        
; 460.	                break;
; 461.	
; 462.	        default:
; 463.	                break;
; 464.	        }
; 465.	        */
; 466.	        ClearScreen(NULL);        
	LD	DE,0
	CALL	LWRD ClearScreen
; 467.	        ResShowMultiString(ID, string_id, 255, 90); 
	LD	E,90
	PUSH	DE
	LD	E,255
	PUSH	DE
	LD	C,(IX+12)
	LD	E,(IX+2)
	LD	D,(IX+3)
	CALL	LWRD ?0107
	POP	AF
	POP	AF
; 468.	        itoa_4(pDate->date.year, &disbuf[0]);
	LD	HL,2
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,(IY+0)
	LD	D,(IY+1)
	LD	A,BYTE3 itoa_4
	LD	HL,LWRD itoa_4
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 469.	        itoa_2(pDate->date.month, &disbuf[5]);
	LD	HL,2
	ADD	HL,SP
	LD	BC,5
	ADD	HL,BC
	LD	C,L
	LD	B,H
	LD	E,(IY+2)
	CALL	LWRD ?0112
; 470.	        itoa_2(pDate->date.day, &disbuf[8]);
	ADD	HL,SP
	LD	BC,8
	ADD	HL,BC
	LD	C,L
	LD	B,H
	LD	E,(IY+3)
	LD	A,BYTE3 itoa_2
	LD	HL,LWRD itoa_2
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 471.	        disbuf[4] = '-';
	LD	(IX-8),45
; 472.	        disbuf[7] = '-';
	LD	(IX-5),45
; 473.	        SetTextPos(24, 70);    
	LD	C,70
	LD	E,24
	CALL	LWRD SetTextPos
; 474.	        PutS(disbuf, -1);                
	LD	C,255
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD PutS
; 475.	
; 476.	        itoa_2(pDate->time.hour, &disbuf[0]);
	LD	HL,2
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,(IY+4)
	CALL	LWRD ?0112
; 477.	        itoa_2(pDate->time.minute, &disbuf[3]);
	ADD	HL,SP
	LD	BC,3
	ADD	HL,BC
	LD	C,L
	LD	B,H
	LD	E,(IY+5)
	CALL	LWRD ?0112
; 478.	        itoa_2(pDate->time.second, &disbuf[6]);
	ADD	HL,SP
	LD	BC,6
	ADD	HL,BC
	LD	C,L
	LD	B,H
	LD	E,(IY+6)
	LD	A,BYTE3 itoa_2
	LD	HL,LWRD itoa_2
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 479.	        disbuf[2] = ':';
	LD	(IX-10),58
; 480.	        disbuf[5] = ':';
	LD	(IX-7),58
; 481.	        SetTextPos(114, 70);    
	LD	C,70
	LD	E,114
	CALL	LWRD SetTextPos
; 482.	        PutS(disbuf, -1);    
	LD	C,255
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD PutS
; 483.	        
; 484.	        
; 485.	}
	POP	IY
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0112:
	LD	A,BYTE3 itoa_2
	LD	HL,LWRD itoa_2
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	HL,2
	RET
delstartzero:
; 486.	
; 487.	void delstartzero(char* buf)
; 488.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65534
	LD	E,(IX+2)
	LD	L,E
	LD	D,(IX+3)
	LD	H,D
; 489.	    char i;
; 490.	    if (buf[0]=='\0')
	XOR	A
	OR	(HL)
	JR	Z,?0072
?0070:
; 491.	    {
; 492.	        return;
; 493.	    }
?0071:
; 494.	    
; 495.	    for(i=0; buf[i]!='\0'; i++)
	LD	(IX-2),0
?0073:
	LD	C,(IX-2)
	LD	B,0
	LD	L,E
	LD	H,D
	ADD	HL,BC
	LD	A,(HL)
	OR	A
	JR	Z,?0072
?0074:
; 496.	    {
; 497.	        if (buf[i]=='0')
	LD	L,E
	LD	H,D
	ADD	HL,BC
	LD	A,(HL)
	CP	48
	JR	NZ,?0072
?0076:
; 498.	        {
; 499.	            if (buf[i+1] == '\0')
	LD	L,E
	LD	H,D
	ADD	HL,BC
	INC	HL
	LD	A,(HL)
	OR	A
	JR	Z,?0072
?0078:
; 500.	            {
; 501.	                return;
; 502.	            }            
?0079:
; 503.	            buf[i] = ' ';
	LD	L,E
	LD	H,D
	ADD	HL,BC
	LD	(HL),32
; 504.	        }
; 505.	        else
?0077:
; 506.	        {
; 507.	            break;
?0080:
	INC	(IX-2)
; 508.	        }
; 509.	    }    
; 510.	}
	JR	?0073
?0072:
?0081:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
; 511.	
	END

⌨️ 快捷键说明

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