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

📄 ui_stop.s01

📁 MP3 整个 SDK
💻 S01
📖 第 1 页 / 共 2 页
字号:
?0043:
; 158.	                {
; 159.	                    StartIntro(FALSE);
	XOR	A
?0112:
	LD	(g_introCntMode),A
	LD	A,(g_music_vars+77)
	LD	(g_OldSecTempBackup),A
	XOR	A
	LD	(g_introCNT),A
?0044:
; 160.	                }
; 161.	                if ((!CaltimeFlag) && (!ifSelBuffToltalTimeFlag))
	LD	A,(CaltimeFlag)
	OR	A
	JR	NZ,?0046
	LD	A,(ifSelBuffToltalTimeFlag)
	OR	A
	JR	NZ,?0046
?0048:
?0047:
?0045:
; 162.	                {
; 163.	                    musicpSendCommand(MC_CALTIME, NULL);
	CALL	LWRD ?0145
?0046:
; 164.	                }
; 165.	
; 166.	                //判断是否刚断电完而没有重设时间
; 167.	                if (g_PowerOffFlag == 0x55)
	LD	A,(g_PowerOffFlag)
	CP	85
	JR	NZ,?0052
?0049:
; 168.	                {
; 169.	                     if (!DisplayTimeRollback())
	LD	A,BYTE3 DisplayTimeRollback
	LD	HL,LWRD DisplayTimeRollback
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JP	Z,?0123
?0051:
; 170.	                    {
; 171.	                          SetFullInterface();
; 172.	                          need_draw = TRUE;
; 173.	                        break;
?0052:
?0050:
; 174.	                    }
; 175.	                }
; 176.	
; 177.	                UpDisplayFlag = UpDisplayFlag | up_musictotaltime | up_musicbitrate;
	LD	HL,UpDisplayFlag
	INC	HL
	LD	A,(HL)
	OR	33
	LD	(HL),A
; 178.	                need_draw = TRUE;
	LD	A,1
	LD	(need_draw),A
; 179.	
; 180.	
; 181.	                output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 182.	                if (!musicpSendCommand(MC_PLAY, g_music_vars.MusicOpenMod))
	LD	BC,(g_music_vars+6)
	LD	B,0
	LD	E,4
	CALL	LWRD ?0143
	INC	L
	DEC	L
	JR	NZ,?0054
?0053:
; 183.	                {
; 184.	                    ErrReport(PlayStatus);// playStatus 并未改变
	LD	DE,(PlayStatus)
	LD	A,BYTE3 ErrReport
	LD	HL,LWRD ErrReport
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 185.	                    break;
	JP	LWRD ?0027
?0054:
; 186.	                }
; 187.	                output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 188.	
; 189.	                g_result = ui_play();
	LD	A,BYTE3 ui_play
	LD	HL,LWRD ui_play
	CALL	LWRD ?0138
; 190.	
; 191.	                ap_message_init(NULL);//开始算STANDBY 时间
	CALL	LWRD ?0136
; 192.	                if (g_result != 0)
	LD	HL,(g_result)
	LD	A,L
	OR	H
	JR	Z,?0056
?0055:
; 193.	                {
; 194.	                    int i;
; 195.	                    i = g_result;
	LD	(IX-3),L
	LD	(IX-2),H
; 196.	                    if(PlayStatus != StopSta)
	LD	A,(PlayStatus)
	OR	A
	JR	Z,?0058
?0057:
; 197.	                    {
; 198.	                      #ifdef OPT_Sup_FadeOut_fun
; 199.	                          if (!g_FCexitflag)
	LD	A,(g_FCexitflag)
	OR	A
	JR	NZ,?0060
?0059:
; 200.	                          {    //如从跟读对录音或对比放音出,不淡出
; 201.	                            FadeOut(FALSE);
	LD	E,A
	LD	A,BYTE3 FadeOut
	LD	HL,LWRD FadeOut
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0060:
; 202.	                        }
; 203.	                      #endif
; 204.	                        BackupCurrentTime();
	LD	A,BYTE3 BackupCurrentTime
	LD	HL,LWRD BackupCurrentTime
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 205.	                        musicpSendCommand(MC_STOP, NULL);
	LD	BC,0
	LD	E,6
	CALL	LWRD ?0143
; 206.	                        musicpSendCommand(MC_BACKUP, NULL);
	LD	BC,0
	LD	E,68
	CALL	LWRD ?0143
; 207.	                        g_music_vars.MusicOpenMod = Nor_Break_open;//保证退出后从断点进来
	LD	A,1
	LD	(g_music_vars+6),A
?0058:
; 208.	                    }
; 209.	                    g_result = i;
	LD	L,(IX-3)
	LD	H,(IX-2)
	LD	(g_result),HL
; 210.	                }
; 211.	               else
	JR	?0062
?0056:
?0063:
; 212.	                 while(ap_get_message() != 0);                   //清空消息池
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0056
?0064:
?0062:
?0061:
; 213.	                g_FCexitflag = FALSE;
	XOR	A
	LD	(g_FCexitflag),A
; 214.	
; 215.	                return g_result;
	JR	?0114
; 216.	
; 217.	            case AP_KEY_EQ | AP_KEY_UP:
?0065:
; 218.	                break;
?0066:
; 219.	
; 220.	            case AP_KEY_MODE:
; 221.	                modekeystore = key;
	LD	(IX-7),E
; 222.	                break;
	JP	LWRD ?0027
?0067:
; 223.	
; 224.	            case AP_KEY_MODE | AP_KEY_UP: //短按MODE
; 225.	                if (modekeystore != AP_KEY_MODE)
	LD	A,(IX-7)
	CP	16
	JR	Z,?0069
?0068:
; 226.	                {    //要先按了AP_KEY_MODE 键后up才算有效
; 227.	                    modekeystore = NULL;
	LD	(IX-7),0
; 228.	                    break;
	JP	LWRD ?0027
?0069:
; 229.	                }
; 230.	                g_result = ui_stop_menu();
	LD	A,BYTE3 ui_stop_menu
	LD	HL,LWRD ui_stop_menu
	CALL	LWRD ?0138
; 231.	
; 232.	
; 233.	                if (g_result == RESULT_IGNORE)
	LD	A,52
	XOR	L
	OR	H
	JP	Z,?0123
?0070:
; 234.	                {
; 235.	                    SetFullInterface();
; 236.	                    need_draw = TRUE;
; 237.	                    break;
?0071:
; 238.	                }
; 239.	                CaltimeFlag = FALSE;
	XOR	A
	LD	(CaltimeFlag),A
; 240.	                ifSelBuffToltalTimeFlag = FALSE;
	LD	(ifSelBuffToltalTimeFlag),A
; 241.	
; 242.	                if (g_result == RESULT_SD_OUT)
	LD	A,54
	XOR	L
	OR	H
	JP	Z,?0115
?0072:
; 243.	                {
; 244.	                    return RESULT_CURR_UI;
; 245.	                }
?0073:
; 246.	                PlayStatus=StopSta;
	XOR	A
	LD	(PlayStatus),A
; 247.	                return g_result;//热键或等于0时返回
?0114:
	JP	LWRD ?0116
; 248.	
; 249.	
; 250.	
; 251.	            case AP_KEY_PREV | AP_KEY_UP:
?0074:
?0076:
; 252.	                while(ap_get_message() != 0);
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0074
?0077:
; 253.	                break;
?0075:
	JP	LWRD ?0027
?0078:
; 254.	
; 255.	            case AP_KEY_PREV:
; 256.	            case AP_KEY_PREV | AP_KEY_HOLD:
; 257.	                musicpSendCommand(MC_CLOSE, NULL);
	LD	C,A
	LD	B,A
	LD	E,2
	CALL	LWRD ?0143
; 258.	                g_result = ChangeMusic(Music_Prev, Stop_key);
	LD	C,0
	LD	E,4
; 259.	                FSELSetMode( FSEL_ALL_REPEATALL );
; 260.	                FSELGetNext(g_music_vars.location.filename);
; 261.	                fselGetLocation(& g_music_vars.location);
; 262.	                GetInformation();
	CALL	LWRD ?0141
; 263.	                memcpy(g_TagInfoBuf1,g_TagInfoBuf,20);
; 264.	               FSELGetPrev(g_music_vars.location.filename);
; 265.	               fselGetLocation(& g_music_vars.location);
; 266.	               FSELSetMode(g_music_vars.repeat_mode);
; 267.	               GetInformation(); //取文件信息
	CALL	LWRD ?0137
; 268.	                musicpSendCommand( MC_OPEN, (int)& g_Openparam );//这个可不用
; 269.	                g_result = musicpSendCommand(MC_LOAD, NULL);
; 270.	                CaltimeFlag = FALSE;//等待计时间
; 271.	                WaitForCaltimeCNT = 0;
; 272.	                SetFullInterface();
; 273.	                UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic ;
; 274.	                need_draw = TRUE;
?0080:
; 275.	
; 276.	                //清除多出的HOLD消息,防止按键停了还跳几曲
; 277.	                while(ap_get_message() != 0);
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0080
?0081:
; 278.	                break;
?0079:
	JP	LWRD ?0027
?0082:
?0084:
; 279.	
; 280.	            case AP_KEY_NEXT | AP_KEY_UP:
; 281.	                while(ap_get_message() != 0);
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0082
?0085:
; 282.	                break;
?0083:
	JP	LWRD ?0027
?0086:
; 283.	
; 284.	            case AP_KEY_NEXT:
; 285.	            case AP_KEY_NEXT | AP_KEY_HOLD:
; 286.	                musicpSendCommand(MC_CLOSE, NULL);
	LD	C,A
	LD	B,A
	LD	E,2
	CALL	LWRD ?0143
; 287.	                g_result = ChangeMusic(Music_Next, Stop_key);
	LD	C,0
	LD	E,3
; 288.	                FSELSetMode( FSEL_ALL_REPEATALL );      
; 289.	                FSELGetNext(g_music_vars.location.filename);
; 290.	                fselGetLocation(& g_music_vars.location);
; 291.	                 GetInformation();
	CALL	LWRD ?0141
; 292.	                 memcpy(g_TagInfoBuf1,g_TagInfoBuf,20);
; 293.	               FSELGetPrev(g_music_vars.location.filename);
; 294.	               fselGetLocation(& g_music_vars.location);
; 295.	               FSELSetMode(g_music_vars.repeat_mode);
; 296.	               GetInformation(); //取文件信息
	CALL	LWRD ?0137
; 297.	                musicpSendCommand(MC_OPEN, (int)& g_Openparam);
; 298.	                g_result = musicpSendCommand(MC_LOAD, NULL);
; 299.	                CaltimeFlag = FALSE;//等待计时间
; 300.	                WaitForCaltimeCNT = 0;
; 301.	
; 302.	                SetFullInterface();
; 303.	                UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic  ;
; 304.	
; 305.	                need_draw = TRUE;
?0088:
; 306.	                while(ap_get_message() != 0);
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0088
?0089:
; 307.	                break;
?0087:
	JP	LWRD ?0027
?0090:
; 308.	
; 309.	            case AP_KEY_VOLSUB:
; 310.	            case AP_KEY_VOLADD:
; 311.	
; 312.	                slider.min = 0;
	LD	L,A
	LD	H,A
	LD	(slider+2),HL
; 313.	                slider.max = 31;
	LD	L,31
	LD	(slider+4),HL
; 314.	                slider.value = g_music_vars.volume;
	LD	BC,(g_music_vars)
	LD	A,C
	RLCA
	SBC	A,A
	LD	B,A
	LD	(slider+6),BC
; 315.	                slider.step = 1;
	LD	L,1
	LD	(slider+8),HL
; 316.	                slider.title=CHANGEVO;
	LD	HL,489
	LD	(slider),HL
; 317.	                slider.string_id=g_comval.langid;
	LD	A,(g_comval+12)
	LD	(slider+10),A
; 318.	                ui_auto_update = FALSE;
	XOR	A
	LD	(ui_auto_update),A
; 319.	
; 320.	                //在停止状态时调音量没必要实时改变IO号的值
; 321.	                g_result = ui_slider(& slider, NULL);
	LD	C,A
	PUSH	BC
	LD	L,C
	LD	H,C
	PUSH	HL
	LD	DE,slider
	LD	A,BYTE3 ui_slider
	LD	HL,LWRD ui_slider
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
	LD	(g_result),HL
; 322.	
; 323.	                g_music_vars.volume = slider.value;//退出时再改变音量的值
	LD	A,(slider+6)
	LD	(g_music_vars),A
; 324.	                ui_auto_update = TRUE;
	LD	A,1
	LD	(ui_auto_update),A
; 325.	                if (g_result != 0)return g_result;
	LD	A,L
	OR	H
	JR	Z,?0122
?0091:
?0116:
	LD	HL,(g_result)
	JR	?0109
?0092:
; 326.	                SetFullInterface();
; 327.	                need_draw = TRUE;
; 328.	                break;
?0093:
; 329.	
; 330.	            case AP_MSG_SD_OUT:
; 331.	                if (g_music_vars.location.disk == 'H')
	LD	A,(g_music_vars+7)
	CP	72
	JR	NZ,?0027
?0094:
; 332.	                {
; 333.	                    g_music_vars.location.disk = 'C';
	LD	A,67
	LD	(g_music_vars+7),A
; 334.	
; 335.	                    DisplayErrMsg(CARDPULL);//显示卡拔出
	LD	DE,401
	LD	A,BYTE3 DisplayErrMsg
	LD	HL,LWRD DisplayErrMsg
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 336.	                    PlayStatus=StopSta;
	XOR	A
	LD	(PlayStatus),A
; 337.	                    return RESULT_CURR_UI;
?0115:
	LD	L,A
	LD	H,A
; 338.	
; 339.	                }
	JR	?0109
?0095:
; 340.	                break;
?0096:
; 341.	
; 342.	            case AP_MSG_SD_IN:
; 343.	                break;
?0097:
; 344.	
; 345.	
; 346.	            default:
; 347.	                key = ap_handle_hotkey(key);
	CALL	LWRD ap_handle_hotkey
	LD	(IX-8),A
; 348.	                if (key == RESULT_REDRAW)
	CP	50
	JR	NZ,?0099
?0098:
; 349.	                {
; 350.	                    SetFullInterface();
?0123:
	XOR	A
?0122:
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 351.	                    need_draw = TRUE;
	LD	A,1
	LD	(need_draw),A
	JR	?0027
?0099:
; 352.	                }
; 353.	                else if (key != 0)
	XOR	A
	OR	(IX-8)
	JR	Z,?0027
?0101:
; 354.	                {
; 355.	                    return key;
	LD	L,A
	LD	H,0
; 356.	                }
?0109:
	POP	IY
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0102:
?0100:
; 357.	                break;
?0027:
; 358.	        } //switch(key)
; 359.	        if (g_ScrollFlag)
	LD	A,(g_ScrollFlag)
	OR	A
	JR	Z,?0104
?0103:
; 360.	        {
; 361.	            g_ScrollFlag = FALSE;
	XOR	A
	LD	(g_ScrollFlag),A
; 362.	            UpDisplayFlag = UpDisplayFlag | up_musicbattery;
	LD	HL,UpDisplayFlag
	SET	7,(HL)
; 363.	            need_draw = TRUE;
	LD	A,1
	LD	(need_draw),A
?0104:
; 364.	        }
; 365.	         if ((!CaltimeFlag)) // && (WaitForCaltimeCNT >= CaltimeCNT_def))
	LD	A,(CaltimeFlag)
	OR	A
	JR	NZ,?0108
?0105:
; 366.	        {
; 367.	            musicpSendCommand(MC_CALTIME, NULL);
	CALL	LWRD ?0145
; 368.	            if(PlayStatus!=PauseSta)
	LD	A,(PlayStatus)
	DEC	A
	JR	Z,?0108
?0107:
; 369.	               {
; 370.	               UpDisplayFlag = UpDisplayFlag | up_musiccurrenttime | up_musicbitrate|up_musictotaltime;
	LD	HL,UpDisplayFlag
	INC	HL
	LD	A,(HL)
	OR	35
	LD	(HL),A
; 371.	               need_draw = TRUE;
	LD	A,1
	LD	(need_draw),A
?0108:
?0106:
; 372.	               }
; 373.	          }
; 374.	
; 375.	    } //while(1)
; 376.	}
	JP	LWRD ?0015
; 377.	
; 378.	
	RSEG	UDATA0
WaitForCaltimeCNT:
	DEFS	1
CaltimeFlag:
	DEFS	1
	RSEG	IDATA0
testram:
	DEFS	1
	RSEG	CDATA0
	DEFB	0
	END

⌨️ 快捷键说明

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