sub_function1.s01

来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 1,819 行 · 第 1/3 页

S01
1,819
字号
?0197:
	LD	(RePlayStatus),A
; 434.	            UpDisplayFlag = UpDisplayFlag | up_MPRLmode;//刷新复读图标
	LD	HL,UpDisplayFlag
	INC	HL
	SET	3,(HL)
; 435.	            need_draw = TRUE;
	LD	A,1
	LD	(need_draw),A
; 436.	            break;
	JR	?0121
?0128:
; 437.	
; 438.	        default:
; 439.	            break;
?0125:
; 440.	        }
; 441.	        break;
?0129:
; 442.	
; 443.	    case MC_PLAY:
; 444.	        if (result)
	XOR	A
	OR	(IX-2)
	JR	Z,?0121
?0130:
; 445.	        {
; 446.	            PlayStatus = PlaySta;
	LD	A,2
	LD	(PlayStatus),A
?0131:
; 447.	        }
; 448.	        break;
	JR	?0121
?0132:
; 449.	
; 450.	    case MC_STOP:
; 451.	        PlayStatus = StopSta;
	XOR	A
	LD	(PlayStatus),A
; 452.	        CaltimeFlag = FALSE;//等待计时间
	JR	?0198
; 453.	        WaitForCaltimeCNT = 0;
; 454.	        break;
?0133:
; 455.	
; 456.	    case MC_CALTIME:
; 457.	        CaltimeFlag = TRUE;
	LD	A,1
?0198:
	LD	(CaltimeFlag),A
; 458.	        WaitForCaltimeCNT = 0;
	XOR	A
	LD	(WaitForCaltimeCNT),A
; 459.	
; 460.	        break;
?0134:
; 461.	
; 462.	    default:
; 463.	        break;
?0121:
; 464.	    }
; 465.	    return result;
	LD	L,(IX-2)
; 466.	}
?0135:
	POP	IY
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0208:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,(g_music_vars+3)
	LD	A,C
	RLCA
	SBC	A,A
	LD	B,A
	LD	E,70
	RET
?0210:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(IX-2),L
	LD	A,(IX+2)
	CP	3
	RET
?0211:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,(g_music_vars+2)
	LD	B,0
	LD	E,67
	RET
?0212:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,(g_music_vars+2)
	LD	B,A
	LD	A,8
	CP	B
	RET
?0213:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,(g_music_vars+2)
	LD	B,A
	LD	A,16
	CP	B
	RET
?0219:
	CALL	LWRD BankSwitch
	PUSH	IY
	POP	BC
	LD	E,(IX+2)
	RET
SelectCurMusic:
; 467.	
; 468.	//===================重选当前歌曲=========================
; 469.	void SelectCurMusic(void)
; 470.	{
	PUSH	BC
	PUSH	DE
; 471.	        musicpSendCommand(MC_STOP, NULL);
	CALL	LWRD ?0209
; 472.	        musicpSendCommand(MC_CLOSE, NULL);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 473.	        ChangeMusic(Music_Cur, Play_play); //播放当前歌曲
	LD	C,1
	LD	E,2
	LD	A,BYTE3 ChangeMusic
	LD	HL,LWRD ChangeMusic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 474.	        GetInformation(); //取文件信息
	LD	A,BYTE3 GetInformation
	LD	HL,LWRD GetInformation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 475.	        musicpSendCommand( MC_OPEN,  (int)& g_Openparam );
	LD	BC,g_Openparam
	LD	E,1
	CALL	LWRD ?0214
; 476.	        musicpSendCommand(MC_LOAD, NULL);
	LD	E,3
	CALL	LWRD ?0214
; 477.	        musicpSendCommand(MC_CALTIME, NULL);
	LD	E,19
	CALL	LWRD ?0214
; 478.	        musicpSendCommand(MC_PLAY, NULL);
	LD	E,4
	CALL	LWRD ?0215
; 479.	        //StartIntro(TRUE);
; 480.	}
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0209:
	LD	BC,0
	LD	E,6
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,0
	LD	E,2
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	RET
?0214:
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,0
	RET
ui_delete_Music:
; 481.	//========================================================
; 482.	
; 483.	
; 484.	
; 485.	int ui_delete_Music( int type )
; 486.	{
	CALL	LWRD ?ENT_PARM_DIRECT_L09
; 487.	    g_music_vars.location.ID3buffer = g_TagInfoBuf;
	LD	HL,g_TagInfoBuf
	LD	(g_music_vars+45),HL
; 488.	
; 489.	
; 490.	    if (g_music_vars.location.disk == 'H')
	LD	A,(g_music_vars+7)
	CP	72
	JR	NZ,?0137
?0136:
; 491.	    {
; 492.	        DRV_ActiveUD(1, MODE_SLOW); //04-2-28 16:29
	LD	C,1
	LD	E,C
	JR	?0199
?0137:
; 493.	    }
; 494.	    else if (g_music_vars.location.disk == 'C')
	CP	67
	JR	NZ,?0140
?0139:
; 495.	    {
; 496.	        DRV_ActiveUD(0, MODE_SLOW); //04-2-28 16:29
	LD	C,1
	LD	E,0
?0199:
	CALL	LWRD DRV_ActiveUD
?0140:
?0138:
; 497.	    }
; 498.	
; 499.	    if(type==DELETE_MUSIC)
	LD	A,1
	XOR	(IX+2)
	OR	(IX+3)
	JR	NZ,?0142
?0141:
; 500.	    {
; 501.	        FSELSetMode(FSEL_ALL_REPEATALL);
	LD	E,4
	CALL	LWRD ?0222
; 502.	        g_result=ui_delete_all(& g_music_vars.location, DELETE_MUSIC,g_comval.langid);
	LD	HL,g_comval+12
	LD	C,(HL)
	PUSH	BC
	LD	C,1
	LD	DE,g_music_vars+7
	LD	A,BYTE3 ui_delete_all
	LD	HL,LWRD ui_delete_all
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	LD	(g_result),HL
; 503.	        FSELSetMode(g_music_vars.repeat_mode);
	CALL	LWRD ?0223
; 504.	    }
; 505.	    else    
	JR	?0143
?0142:
; 506.	        g_result = ui_delete(& g_music_vars.location, type, g_comval.langid);
	LD	HL,g_comval+12
	LD	C,(HL)
	PUSH	BC
	LD	C,(IX+2)
	LD	DE,g_music_vars+7
	LD	A,BYTE3 ui_delete
	LD	HL,LWRD ui_delete
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	LD	(g_result),HL
?0143:
; 507.	
; 508.	    if (g_result == RESULT_SD_OUT)
	LD	HL,(g_result)
	LD	A,54
	XOR	L
	OR	H
	JR	NZ,?0145
?0144:
; 509.	    {
; 510.	        DisplayErrMsg(CARDPULL);//显示卡拔出
	LD	DE,394
	LD	A,BYTE3 DisplayErrMsg
	LD	HL,LWRD DisplayErrMsg
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 511.	        g_music_vars.location.disk = 'C';
	LD	A,67
	LD	(g_music_vars+7),A
; 512.	        return RESULT_IGNORE;
	LD	HL,52
; 513.	    }
	JR	?0152
?0145:
; 514.	
; 515.	    if (g_result != 0)
	LD	A,L
	OR	H
	JR	NZ,?0152
?0146:
; 516.	    {
; 517.	        return g_result;
; 518.	    }
?0147:
; 519.	
; 520.	    if (!ChangeMusic(Music_Next, Stop_key))
	LD	C,A
	LD	E,3
	LD	A,BYTE3 ChangeMusic
	LD	HL,LWRD ChangeMusic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JR	NZ,?0151
?0148:
; 521.	    {
; 522.	        if (UpdateFileSelector() == 0)
	LD	A,BYTE3 UpdateFileSelector
	LD	HL,LWRD UpdateFileSelector
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,L
	OR	H
	JR	Z,?0200
?0150:
; 523.	         {
; 524.	             return 0;
; 525.	         }
?0151:
?0149:
; 526.	
; 527.	
; 528.	    }
; 529.	
; 530.	    fselGetLocation(& g_music_vars.location);
	CALL	LWRD ?0225
; 531.	
; 532.	    return 0; //RESULT_RESTART;
?0200:
	LD	HL,0
; 533.	}
?0152:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
NoCardCaseInStopMenu:
; 534.	
; 535.	int NoCardCaseInStopMenu(int active)
; 536.	{
	PUSH	BC
	PUSH	IX
	PUSH	DE
; 537.	    int result;
; 538.	    switch (active)
	CALL	LWRD ?S_S_SWITCH_L06
	DEFW	0
	DEFW	3
	DEFW	?0169
	DEFW	?0154
	DEFW	?0163
	DEFW	?0168
?0154:
; 539.	    {
; 540.	        case 0: //主目录
; 541.	            if (g_music_vars.location.disk == 'H')
	LD	A,(g_music_vars+7)
	CP	72
	JR	NZ,?0156
?0155:
; 542.	            {
; 543.	                g_music_vars.location.disk = 'C';
	LD	A,67
	LD	(g_music_vars+7),A
; 544.	                FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);
	LD	C,A
	PUSH	BC
	LD	C,0
	PUSH	BC
	CALL	LWRD ?0221
	POP	AF
	POP	AF
; 545.	                g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
	XOR	A
	LD	(g_music_vars+81),A
?0156:
; 546.	            }
; 547.	
; 548.	            if (g_music_vars.fselmod == FSEL_TYPE_PLAYLIST||g_music_vars.fselmod ==FSEL_TYPE_USERPL)
	LD	A,(g_music_vars+81)
	DEC	A
	JR	Z,?0159
	LD	A,(g_music_vars+81)
	DEC	A
	DEC	A
	JR	NZ,?0158
?0159:
?0160:
?0157:
; 549.	            {
; 550.	                fselPlayListExit();
	LD	A,BYTE3 fselPlayListExit
	LD	HL,LWRD fselPlayListExit
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 551.	                FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);
	LD	HL,g_music_vars+7
	LD	C,(HL)
	PUSH	BC
	LD	C,0
	PUSH	BC
	CALL	LWRD ?0221
	POP	AF
	POP	AF
; 552.	                FSELGetNext(g_music_vars.location.filename);
	LD	DE,g_music_vars+33
	LD	A,BYTE3 fselGetNextFile
	LD	HL,LWRD fselGetNextFile
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 553.	                fselGetLocation(&g_music_vars.location);
	CALL	LWRD ?0225
; 554.	                g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
	XOR	A
	LD	(g_music_vars+81),A
?0158:
; 555.	            }
; 556.	
; 557.	            result = ui_directory(& g_music_vars.location, DIRECTORY_MUSIC, g_comval.langid);
	LD	HL,g_comval+12
	LD	C,(HL)
	PUSH	BC
	LD	C,0
	LD	DE,g_music_vars+7
	LD	A,BYTE3 ui_directory
	LD	HL,LWRD ui_directory
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	PUSH	HL
	POP	IX
; 558.	            FSELSetMode(FSEL_ALL_SEQUENCE);
	LD	E,0
	CALL	LWRD ?0222
; 559.	            if (result == 0)
	PUSH	IX
	POP	HL
	LD	A,L
	OR	H
	JR	NZ,?0162
?0161:
; 560.	            {
; 561.	                //当选中目录后用普通模式播放
; 562.	                g_music_vars.play_listmod = mlistnor;
	LD	A,5
	LD	(g_music_vars+80),A
; 563.	                g_music_vars.file_list_type = 0xff;   
	LD	A,255
	LD	(g_music_vars+92),A
?0162:
; 564.	            }
; 565.	            break;
	JR	?0153
?0163:
; 566.	
; 567.	        case 1: //删除文件
; 568.	             if(g_music_vars.fselmod == FSEL_TYPE_PLAYLIST||g_music_vars.fselmod ==FSEL_TYPE_USERPL)
	LD	A,(g_music_vars+81)
	DEC	A
	JR	Z,?0166
	LD	A,(g_music_vars+81)
	DEC	A
	DEC	A
	JR	NZ,?0165
?0166:
?0167:
?0164:
; 569.	               {
; 570.	                 fselPlayListExit();
	LD	A,BYTE3 fselPlayListExit
	LD	HL,LWRD fselPlayListExit
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 571.	                 FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_REPEATALL, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);//初始化文件选择器
	LD	HL,g_music_vars+7
	LD	C,(HL)
	PUSH	BC
	LD	C,0
	PUSH	BC
	LD	C,4
	LD	E,0
	CALL	LWRD ?0220
	POP	AF
	POP	AF
; 572.	                 FSELGetNext(g_music_vars.location.filename);
	LD	DE,g_music_vars+33
	LD	A,BYTE3 fselGetNextFile
	LD	HL,LWRD fselGetNextFile
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 573.	                 g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
	XOR	A
	LD	(g_music_vars+81),A
; 574.	                 g_music_vars.play_listmod = mlistnor;//改为普通目录模式
	LD	A,5
	LD	(g_music_vars+80),A
; 575.	                fselGetLocation(&g_music_vars.location);
	CALL	LWRD ?0225
?0165:
; 576.	              } 
; 577.	            result = ui_delete_Music(DELETE_FILE);      
	LD	DE,0
	CALL	LWRD ?0227
; 578.	            g_music_vars.file_list_type = 0xff;               
; 579.	            break;
	JR	?0153
?0168:
; 580.	
; 581.	        case 2: //删除全部
; 582.	            FSELSetMode(FSEL_ALL_REPEATALL);
	LD	E,4
	CALL	LWRD ?0222
; 583.	            g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
	XOR	A
	LD	(g_music_vars+81),A
; 584.	            result = ui_delete_Music(DELETE_MUSIC);
	LD	DE,1
	CALL	LWRD ?0227
; 585.	            g_music_vars.file_list_type = 0xff;           
; 586.	            FSELSetMode(g_music_vars.repeat_mode);
	CALL	LWRD ?0223
; 587.	            break;
	JR	?0153
?0169:
; 588.	
; 589.	        default://退出
; 590.	            //result = 0;
; 591.	            result = RESULT_IGNORE;
	LD	IX,52
; 592.	            break;
?0153:
; 593.	    }
; 594.	    return result;
	PUSH	IX
	POP	HL
; 595.	}
	POP	AF
	POP	IX
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0227:
	LD	A,BYTE3 ui_delete_Music
	LD	HL,LWRD ui_delete_Music
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	PUSH	HL
	POP	IX
	LD	A,255
	LD	(g_music_vars+92),A
	RET
Deal_Error_Playing:
; 596.	 void Deal_Error_Playing(void)
; 597.	 {
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65510
; 598.	            wma_inf_t drminfbuff; 
; 599.	            if (musicpSendCommand(MC_GETINF, (int)&drminfbuff))
	LD	HL,0
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,16
	CALL	LWRD ?0215
	INC	L
	DEC	L
	JR	Z,?0171
?0170:
; 600.	            {
; 601.	                
; 602.	                if (drminfbuff.drmmode == INF_DRMNOLICENSE)
	LD	B,(IX-26)
	DEC	B
	DEC	B
	JR	NZ,?0179
?0172:
; 603.	                {
; 604.	                    DisplayErrMsg(NOLICENS);//显示无licens   
	LD	DE,599
	JR	?0203
?0173:
?0171:
; 605.	                }
; 606.	            }
; 607.	
; 608.	            else if ( (g_music_vars.location.disk != 'C')       //zxs modify for card
; 609.	                    && (DRV_DetectUD(1) != 0x20) )
	LD	A,(g_music_vars+7)
	CP	67
	JR	Z,?0176
	LD	E,1
	CALL	LWRD DRV_DetectUD
	CP	32
	JR	Z,?0176
?0178:
?0177:
?0175:
; 610.	            {
; 611.	                DisplayErrMsg(CARDPULL);//显示卡拔出
	LD	DE,394
	JR	?0203
; 612.	            }
; 613.	            else
?0176:
; 614.	            {
; 615.	                DisplayErrMsg(MFMTERR);//显示格式错
	LD	DE,538
?0203:
	LD	A,BYTE3 DisplayErrMsg
	LD	HL,LWRD DisplayErrMsg
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0179:
?0174:
; 616.	            }
; 617.	            musicpSendCommand(MC_STOP, NULL);
	CALL	LWRD ?0209
; 618.	            musicpSendCommand(MC_CLOSE, NULL); 
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 619.	            SetFullInterface();
	XOR	A
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 620.	} 
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
	RSEG	CSTR
?0007:
	DEFB	':'
	DEFB	0
	END

⌨️ 快捷键说明

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