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

📄 main.s01

📁 MP3 整个 SDK
💻 S01
📖 第 1 页 / 共 2 页
字号:
	NAME	main(17)
	RSEG	AP_UI_MAIN(0)
	RSEG	CSTR(0)
	RSEG	UDATA0(0)
	RSEG	IDATA0(0)
	RSEG	CDATA0(0)
	RSEG	APC_UI_MAIN(0)
	EXTERN	BankSwitch
	EXTERN	CaltimeFlag
	EXTERN	ClearScreen
	EXTERN	ClosePA
	EXTERN	DRV_ActiveDrive
	EXTERN	DRV_ActiveUD
	EXTERN	DRV_DetectUD
	EXTERN	DisableDAC
	EXTERN	DisplayErrInfor
	EXTERN	FS_FRemove
	PUBLIC	MPLFileName
	PUBLIC	MusicTimer_Sav
	EXTERN	Music_2HZint
	EXTERN	Music_timeint
	PUBLIC	PlayListScrollRegion
	PUBLIC	PlayStatus
	PUBLIC	RePlayStatus
	EXTERN	ResClose
	EXTERN	ResOpen
	EXTERN	ResShowMultiString
	PUBLIC	ScrollFlag
	EXTERN	TM_KillClock
	EXTERN	TM_KillTimer
	EXTERN	TM_SetClock
	EXTERN	TM_SetTimer
	EXTERN	TimeRateData_sav
	PUBLIC	Timer_2HZNo_Sav
	PUBLIC	UpDisplayFlag
	EXTERN	VMWrite
	EXTERN	WaitForCaltimeCNT
	PUBLIC	couterkey
	EXTERN	fselGetLocation
	PUBLIC	g_2HZFlag
	PUBLIC	g_2HZ_CNT
	PUBLIC	g_ABPointTimeSize
	PUBLIC	g_AVSetFlag
	PUBLIC	g_CardInFlag
	PUBLIC	g_DiskStateFlag
	PUBLIC	g_FCexitflag
	PUBLIC	g_FadeInStepFlag
	PUBLIC	g_OldSecTempBackup
	PUBLIC	g_Openparam
	PUBLIC	g_PAOpenFlag
	PUBLIC	g_PowerOffFlag
	PUBLIC	g_ReplayTimeCNT
	PUBLIC	g_Resfp_Sav
	PUBLIC	g_ScrollFlag
	PUBLIC	g_TagInfoBuf
	PUBLIC	g_TagInfoBuf1
	PUBLIC	g_comval
	PUBLIC	g_currentMusicType
	PUBLIC	g_introCNT
	PUBLIC	g_introCntMode
	PUBLIC	g_lyricflag
	PUBLIC	g_music_vars
	PUBLIC	g_musicamount
	PUBLIC	g_musicsequence
	PUBLIC	g_result
	PUBLIC	ifSelBuffToltalTimeFlag
	PUBLIC	list
	EXTERN	lyricInit
	PUBLIC	main
	PUBLIC	need_draw
	EXTERN	openDAC
	EXTERN	read_var
	PUBLIC	return_to_play
	PUBLIC	savenum
	PUBLIC	slider
	EXTERN	ui_show_a
	EXTERN	ui_stop
	EXTERN	?CLZ80B_4_04_L00
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_LEAVE_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	EXTERN	?ENT_AUTO_DIRECT_L09
	RSEG	AP_UI_MAIN
main:
; 1.	/********************************************************************************
; 2.	*                        SDK30F_D1
; 3.	*                     music player main sub
; 4.	*
; 5.	*                (c) Copyright 2002, Actions Co,Ld.
; 6.	*                        All Right Reserved
; 7.	*
; 8.	* File: main.c
; 9.	* By  : rcmai
; 10.	* Version: 1> v1.00     first version     2004-3-19 8:28
; 11.	*******************************************************************************
; 12.	* $Id: main.c,v 1.3 2006/07/14 06:46:20 tangwh Exp $
; 13.	*******************************************************************************
; 14.	*/
; 15.	#include "ap_music.h"
; 16.	
; 17.	SETDEBUGRAM//调试时用的宏,在AP_MUSIC.H中定义
; 18.	
; 19.	
; 20.	comval_t g_comval; //系统变量,ap不能更改
; 21.	music_vars_t g_music_vars;//本AP的公共变量
; 22.	char g_TagInfoBuf[90];//用于放TAG信息的BUF
; 23.	bool g_FCexitflag;
; 24.	char g_TagInfoBuf1[20];//用于放下一首TAG信息的BUF
; 25.	char couterkey;        //for test !
; 26.	//这空间是用于打开时用来集中传送参数
; 27.	Open_param_t g_Openparam;
; 28.	
; 29.	//char g_lyric_mod = LYRIC_PAGE_21_4; //歌词格式标志(默认为英文格式)
; 30.	BYTE g_OldSecTempBackup;//记录当前秒的值,用于观察秒的变化,从而产生变化信号码
; 31.	BYTE g_introCNT;
; 32.	bool g_introCntMode;
; 33.	char return_to_play=0;            //为1表示从其他界面返回播放界面
; 34.	bool need_draw;
; 35.	
; 36.	//function_menu_t menu;
; 37.	pop_up_list_t list;
; 38.	slider_t slider;
; 39.	Replay_status_t RePlayStatus = NormalPlay; //普通播放模式
; 40.	Play_status_t PlayStatus = StopSta;        //停止状态
; 41.	
; 42.	WORD UpDisplayFlag; //相应的位表示要更新显示的内容。
; 43.	bool g_lyricflag;//有无歌词标志,true表示有
; 44.	Music_type_t g_currentMusicType;//标志当前音乐的类型(mp3/wma/asf/wmv)
; 45.	WORD g_musicamount;//当前目录歌曲总数
; 46.	WORD g_musicsequence;//当前歌曲序号
; 47.	
; 48.	
; 49.	BYTE MusicTimer_Sav;
; 50.	BYTE Timer_2HZNo_Sav;
; 51.	bool g_ScrollFlag = FALSE; //当定时中断到时置这个标志
; 52.	WORD g_2HZ_CNT;//2hz 中断计数器(0.5秒加一)
; 53.	bool g_2HZFlag = TRUE;//2HZ中断到标志
; 54.	WORD g_ABPointTimeSize;//记录AB点长度
; 55.	SD_FILE* g_Resfp_Sav;
; 56.	BYTE g_ReplayTimeCNT; //记录复读次数
; 57.	//char g_FadeInStatusFlag = 1;//处在淡入状标志 true 表示在淡入中。
; 58.	bool g_FadeInStepFlag = TRUE;//
; 59.	bool g_AVSetFlag = FALSE;//自动复读设定标志(标志现在的复读是从自动还是手动进入的)
; 60.	bool g_PAOpenFlag = FALSE; //标志PA的开关状态
; 61.	bool g_CardInFlag = FALSE;//卡是否插上,为真时表示插上,可用
; 62.	//bool ActiveDriveOK;//磁盘可用标志
; 63.	char savenum;//时间进度条save时间
; 64.	BYTE g_DiskStateFlag = 0;//b7 = 1:flash 盘已格式化
; 65.	                         //b6 = 1:flash 盘无文件
; 66.	                         //b3 = 1:卡已格式化
; 67.	                         //b2 = 1: 卡无文件
; 68.	                         //b5,b4,b1,b0 : 保留
; 69.	                         //default = 0x00
; 70.	
; 71.	char g_PowerOffFlag; //默认为正常,g_PowerOffFlag=0x00,如果rtc掉电g_PowerOffFlag=0x55
; 72.	
; 73.	//---如下两变量只用作临时变量,主要目的是节省指令及
; 74.	//    省代码空间,因为局部变量较费代码及指令时间
; 75.	int g_result;//表示16位变量
; 76.	//BYTE g_result8;//表示8位
; 77.	bool ifSelBuffToltalTimeFlag = FALSE;//TRUE:用 buffer 总时间数据    
; 78.	
; 79.	//byte PowerValue;        //added by jmzhang
; 80.	//byte CurrentLogo;
; 81.	region_t PlayListScrollRegion;
; 82.	BYTE ScrollFlag;
; 83.	
; 84.	#pragma memory=constseg(APC_UI_MAIN)
; 85.	const char MPLFileName[5][12] = {"PLAYLISTA3L","ARTIST  A3L","ALBUM   A3L","GENRE   A3L","COMPOSERA3L"
; 86.	};
; 87.	#pragma memory=default
; 88.	
; 89.	void read_var( void );
; 90.	void openDAC(void);
; 91.	
; 92.	non_banked void Test_Timer(void);
; 93.	//int DealDiskState(void);
; 94.	int InitFileSelector(void);
; 95.	void debug(void);
; 96.	
; 97.	#pragma codeseg(AP_UI_MAIN)
; 98.	int main( void )
; 99.	{
	PUSH	BC
	PUSH	DE
	PUSH	IX
; 100.	    int mainresult;
; 101.	
; 102.	    g_DiskStateFlag = 0;
	XOR	A
	LD	(g_DiskStateFlag),A
; 103.	    g_FCexitflag = FALSE;    
	LD	(g_FCexitflag),A
; 104.	
; 105.	    //-------安装ud驱动------------
; 106.	    g_Resfp_Sav = ResOpen("ui30.res");
	LD	DE,?0002
	LD	A,BYTE3 ResOpen
	LD	HL,LWRD ResOpen
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_Resfp_Sav),HL
; 107.	
; 108.	    //debug();
; 109.	
; 110.	    /* 读入公共变量 */
; 111.	    read_var();
	LD	A,BYTE3 read_var
	LD	HL,LWRD read_var
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 112.	
; 113.	    ClearScreen(NULL);//清屏
	LD	DE,0
	CALL	LWRD ClearScreen
; 114.	    ResShowMultiString(WAITPASS, g_comval.langid, 255, 80);//显示请稍候
	LD	C,80
	PUSH	BC
	LD	C,255
	PUSH	BC
	LD	BC,(g_comval+12)
	LD	DE,437
	LD	A,BYTE3 ResShowMultiString
	LD	HL,LWRD ResShowMultiString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 115.	
; 116.	    //[001]->
; 117.	
; 118.	
; 119.	    DRV_ActiveUD(0,MODE_SLOW);
	LD	C,1
	LD	E,0
	CALL	LWRD DRV_ActiveUD
; 120.	
; 121.	    //ActiveDriveOK = DRV_ActiveDrive('C', MODE_SLOW); //04-2-28 16:29
; 122.	    if (DRV_ActiveDrive('C', MODE_SLOW))
	LD	C,1
	LD	E,67
	CALL	LWRD DRV_ActiveDrive
	OR	A
	JR	Z,?0004
?0003:
; 123.	    {
; 124.	        g_DiskStateFlag |= SetDiskOKFlag_def;//标志 flash 已格式化
	LD	HL,g_DiskStateFlag
	SET	7,(HL)
?0004:
; 125.	    }
; 126.	
; 127.	    if ((g_DiskStateFlag & SetDiskOKFlag_def) == 0)
	LD	A,(g_DiskStateFlag)
	BIT	7,A
	JR	NZ,?0006
?0005:
; 128.	    {
; 129.	        DisplayErrInfor(MREADERR);//显示磁盘错
	LD	DE,393
	LD	A,BYTE3 DisplayErrInfor
	LD	HL,LWRD DisplayErrInfor
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0006:
; 130.	    }
; 131.	
; 132.	    if (DRV_DetectUD(1) == 0x20)
	LD	E,1
	CALL	LWRD DRV_DetectUD
	CP	32
	JR	NZ,?0008
?0007:
; 133.	    { //有卡
; 134.	        DRV_ActiveUD(1,MODE_SLOW);
	LD	C,1
	LD	E,C
	CALL	LWRD DRV_ActiveUD
; 135.	        if (!DRV_ActiveDrive('H', MODE_SLOW))
	LD	C,1
	LD	E,72
	CALL	LWRD DRV_ActiveDrive
	OR	A
	JR	NZ,?0010
?0009:
; 136.	        {
; 137.	            DisplayErrInfor(CREADERR);//显示卡错
	LD	DE,404
	LD	A,BYTE3 DisplayErrInfor
	LD	HL,LWRD DisplayErrInfor
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 138.	            if ((g_DiskStateFlag & SetDiskOKFlag_def) == 0)
	LD	A,(g_DiskStateFlag)
	BIT	7,A
	JR	Z,?0022
?0011:
; 139.	            {
; 140.	                ResClose(g_Resfp_Sav);
; 141.	                return 0;
; 142.	            }
?0012:
; 143.	           g_music_vars.location.disk='C';
	LD	A,67
	LD	(g_music_vars+7),A
; 144.	        }
; 145.	      else
	JR	?0016
?0010:
; 146.	        g_DiskStateFlag|=SetCardOKFlag_def; 
	LD	HL,g_DiskStateFlag
	SET	3,(HL)
?0013:
; 147.	    }
; 148.	    else
	JR	?0016
?0008:
; 149.	    { //没卡
; 150.	        if ((g_DiskStateFlag & SetDiskOKFlag_def) == 0)

⌨️ 快捷键说明

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