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

📄 ui_stop_menu.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 2 页
字号:
	NAME	ui_stop_menu(17)
	RSEG	AP_UI_MNU(0)
	RSEG	IDATA0(0)
	RSEG	CDATA0(0)
	RSEG	APC_UI_MNU(0)
	EXTERN	AmvDecStart
	EXTERN	BankSwitch
	EXTERN	ChangeMusic
	EXTERN	ClearTimePara
	EXTERN	DRV_ActiveUD
	EXTERN	DRV_DetectUD
	PUBLIC	dir_string
	PUBLIC	dir_string_card
	EXTERN	fselGetLocation
	EXTERN	fselInit
	EXTERN	fselSetMode
	PUBLIC	g_CardInFlag
	EXTERN	g_DiskStateFlag
	EXTERN	g_amv_vars
	EXTERN	g_comval
	EXTERN	g_langid
	EXTERN	g_menu_active
	EXTERN	g_result
	PUBLIC	repeat_string
	EXTERN	ui_delete
	EXTERN	ui_delete_all
	PUBLIC	ui_delete_amv
	EXTERN	ui_directory
	EXTERN	ui_err_msg
	PUBLIC	ui_loop_menu
	EXTERN	ui_popup_list
	EXTERN	ui_show_msg
	PUBLIC	ui_stop_menu
	EXTERN	?CLZ80B_4_04_L00
	EXTERN	?S_S_SWITCH_L06
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	RSEG	AP_UI_MNU
ui_delete_amv:
; 1.	
; 2.	/*
; 3.	*******************************************************************************
; 4.	*                ACTOS AP
; 5.	*        This program demostrates how to build an AP
; 6.	*
; 7.	*        (c) Copyright Actions Co,Ld.
; 8.	*
; 9.	*  $Id: ui_stop_menu.c,v 1.2 2006/07/14 06:43:08 tangwh Exp $
; 10.	*******************************************************************************
; 11.	*/
; 12.	#include "ap_amv.h"
; 13.	
; 14.	#pragma codeseg(AP_UI_MNU)
; 15.	
; 16.	#pragma memory=constseg(APC_UI_MNU)
; 17.	const WORD dir_string_card[6] =
; 18.	{
; 19.	    MSTOP1, MSTOP2, MSTOP3, MSTOP4, MPLAY1, MSTOP5
; 20.	};
; 21.	
; 22.	const WORD repeat_string[7] =
; 23.	{
; 24.	    VLOOPM1, VLOOPM2, VLOOPM3, VLOOPM4, VLOOPM5, VLOOPM6, VLOOPM7
; 25.	};
; 26.	const WORD dir_string[5] =
; 27.	{
; 28.	    MSTOP1, MSTOP3, MSTOP4, MPLAY1, MSTOP5
; 29.	};
; 30.	#pragma memory=default
; 31.	void CheckIfCardOK(void);
; 32.	BYTE g_CardInFlag=0;
; 33.	extern void make_dirname(void);
; 34.	extern bool g_menu_active; //为1进入MENU菜单,主要用来丢掉从目录选择时长按mode键返回
; 35.	extern BYTE g_DiskStateFlag; 
; 36.	int ui_delete_amv( int type )
; 37.	{
	PUSH	BC
	PUSH	DE
; 38.	
; 39.	    DRV_ActiveUD(0, MODE_SLOW); //04-2-28 16:29
	LD	C,1
	LD	E,0
	CALL	LWRD DRV_ActiveUD
; 40.	
; 41.	//    g_result = ui_explore(&g_amv_vars.location, type, g_langid);
; 42.	
; 43.	    g_result=ui_delete(& g_amv_vars.location, type, g_langid);
	LD	A,(g_langid)
	LD	C,A
	PUSH	BC
	LD	HL,2
	ADD	HL,SP
	LD	C,(HL)
	LD	DE,g_amv_vars+5
	LD	A,BYTE3 ui_delete
	LD	HL,LWRD ui_delete
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	LD	(g_result),HL
; 44.	
; 45.	    if (g_result == RESULT_SD_OUT)
	LD	A,54
	XOR	L
	OR	H
	JR	NZ,?0003
?0002:
; 46.	    {
; 47.	        g_amv_vars.location.disk = 'C';
	LD	A,67
	LD	(g_amv_vars+5),A
; 48.	        return RESULT_IGNORE;
	LD	HL,52
; 49.	    }
	JR	?0006
?0003:
; 50.	
; 51.	    if (g_result != 0)
	LD	A,L
	OR	H
	JR	NZ,?0006
?0004:
; 52.	    {
; 53.	        return g_result;
; 54.	    }
?0005:
; 55.	
; 56.	    ChangeMusic(Music_Next, 1);
	LD	C,1
	LD	E,3
	LD	A,BYTE3 ChangeMusic
	LD	HL,LWRD ChangeMusic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 57.	
; 58.	    fselGetLocation(& g_amv_vars.location);
	CALL	LWRD ?0076
; 59.	
; 60.	    return 0; //RESULT_RESTART;
	LD	HL,0
; 61.	}
?0006:
	POP	AF
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0076:
	LD	DE,g_amv_vars+5
	LD	A,BYTE3 fselGetLocation
	LD	HL,LWRD fselGetLocation
	JP	LWRD ?BANK_CALL_DIRECT_L08
ui_loop_menu:
; 62.	
; 63.	int ui_loop_menu( void )
; 64.	{
	PUSH	BC
	PUSH	DE
	LD	HL,65526
	ADD	HL,SP
	LD	SP,HL
; 65.	        pop_up_list_t list;
; 66.	        list.strid = (WORD *)repeat_string;
	LD	(HL),LOW(repeat_string)
	INC	HL
	LD	(HL),HIGH(repeat_string)
; 67.	        list.total = MaxRepeatMod;
	INC	HL
	LD	(HL),7
	INC	HL
	LD	(HL),0
; 68.	        list.active = g_amv_vars.repeat_mode;
	INC	HL
	LD	BC,(g_amv_vars+3)
	LD	B,0
	LD	(HL),C
	INC	HL
	LD	(HL),B
; 69.	        list.string_id = g_langid;
	INC	HL
	INC	HL
	INC	HL
	LD	A,(g_langid)
	LD	(HL),A
; 70.	        list.headid=MPLAY1;
	DEC	HL
	DEC	HL
	LD	(HL),210
	INC	HL
	LD	(HL),1
; 71.	        g_result = ui_popup_list(&list, NULL);
	LD	C,B
	PUSH	BC
	LD	H,B
	PUSH	BC
	LD	L,4
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 ui_popup_list
	LD	HL,LWRD ui_popup_list
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
	LD	(g_result),HL
; 72.	
; 73.	    if (g_result != RESULT_IGNORE)
	LD	A,52
	XOR	L
	OR	H
	JR	Z,?0008
?0007:
; 74.	    {
; 75.	        g_amv_vars.repeat_mode = list.active;
	LD	HL,4
	ADD	HL,SP
	LD	A,(HL)
	LD	(g_amv_vars+3),A
?0008:
; 76.	
; 77.	    }
; 78.	        return g_result;
	LD	HL,(g_result)
; 79.	}
	EX	DE,HL
	LD	HL,10
	ADD	HL,SP
	LD	SP,HL
	EX	DE,HL
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
ui_stop_menu:
; 80.	
; 81.	
; 82.	int ui_stop_menu( void )
; 83.	{
	PUSH	BC
	PUSH	DE
	PUSH	IX
	LD	HL,65526
	ADD	HL,SP
	LD	SP,HL
; 84.	    pop_up_list_t list;
; 85.	    int result;
; 86.	    static char StopMenuactive=0;    //保持选中菜单的序号
; 87.	    ///-CheckIfCardOK();
; 88.	    
; 89.	    list.headid = STOPMENU;
	LD	HL,6
	ADD	HL,SP
	LD	(HL),139
	INC	HL
	LD	(HL),1
; 90.	    if (g_CardInFlag)
	LD	A,(g_CardInFlag)
	OR	A
	LD	HL,2
	ADD	HL,SP
	JR	Z,?0011
?0010:
; 91.	    {
; 92.	        //有卡时的显示
; 93.	        list.total = sizeof(dir_string_card) / 2;
	LD	(HL),6
	INC	HL
	LD	(HL),0
; 94.	        list.strid = dir_string_card;
	DEC	HL
	DEC	HL
	DEC	HL
	LD	(HL),LOW(dir_string_card)
	INC	HL
	LD	(HL),HIGH(dir_string_card)
; 95.	    }
; 96.	    else
	JR	?0014
?0011:
; 97.	    {
; 98.	        //无卡时的显示
; 99.	        list.total = sizeof(dir_string) / 2;
	LD	(HL),5
	INC	HL
	LD	(HL),A
; 100.	        list.strid = dir_string;
	DEC	HL
	DEC	HL
	DEC	HL
	LD	(HL),LOW(dir_string)
	INC	HL
	LD	(HL),HIGH(dir_string)
; 101.	        if (StopMenuactive  >= list.total)
	INC	HL
	LD	C,(HL)
	LD	B,A
	LD	HL,(?0009)
	LD	H,B
	OR	128
	SBC	HL,BC
	JP	PO,?0067
	XOR	H
?0067:
	JP	M,?0014
?0013:
; 102.	        {
; 103.	            StopMenuactive--;
	LD	HL,?0009
	DEC	(HL)
?0014:
?0012:
; 104.	        }
; 105.	
; 106.	    }
; 107.	    //无卡时的显示
; 108.	        list.string_id = g_langid;
	LD	HL,8
	ADD	HL,SP
	LD	A,(g_langid)
	LD	(HL),A
; 109.	        list.active = StopMenuactive;
	LD	HL,4
	ADD	HL,SP
	LD	BC,(?0009)
	LD	B,0
	LD	(HL),C
	INC	HL
	LD	(HL),B
; 110.	
; 111.	        result = ui_popup_list(&list, NULL);
	LD	C,B
	PUSH	BC
	LD	H,B
	PUSH	BC
	LD	L,4
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 ui_popup_list
	LD	HL,LWRD ui_popup_list
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
	PUSH	HL
	POP	IX
; 112.	        StopMenuactive = list.active;
	LD	HL,4
	ADD	HL,SP
	LD	A,(HL)
	LD	(?0009),A
; 113.	
; 114.	       if (g_CardInFlag)
	LD	A,(g_CardInFlag)
	OR	A
	JR	Z,?0018
?0015:
; 115.	         {
; 116.	
; 117.	          if (DRV_DetectUD(1) != 0x20)
	LD	E,1
	CALL	LWRD DRV_DetectUD
	CP	32
	JR	Z,?0018
?0017:
; 118.	           {
; 119.	             g_CardInFlag=0;
	XOR	A
	LD	(g_CardInFlag),A
; 120.	             ui_err_msg(CARDPULL,CARDPULL,g_langid);//显示卡拔出
	LD	BC,(g_langid)
	LD	B,A
	PUSH	BC
	LD	BC,394
	LD	E,C
	LD	D,B
	LD	A,BYTE3 ui_err_msg
	LD	HL,LWRD ui_err_msg
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 121.	             g_amv_vars.location.disk = 'C';
	LD	A,67
	LD	(g_amv_vars+5),A
; 122.	             //return RESULT_SD_OUT;
; 123.	             return RESULT_SD_OUT;
	LD	HL,54
; 124.	            }
	JP	LWRD ?0055
?0018:
?0016:
; 125.	
; 126.	        }
; 127.	
; 128.	        if (result != 0)
	PUSH	IX
	POP	HL
	LD	A,L
	OR	H
	JP	NZ,?0055
?0019:
; 129.	        {
; 130.	            return result;
; 131.	        }
?0020:
; 132.	
; 133.	
; 134.	        BankSwitch((unsigned long)FSELInit >> 16);
	LD	B,C
	LD	E,BYTE3 fselInit
	LD	C,B
	CALL	LWRD BankSwitch
; 135.	        fselGetLocation(& g_amv_vars.location);
	CALL	LWRD ?0076
; 136.	
; 137.	
; 138.	   if(!g_CardInFlag)
	LD	A,(g_CardInFlag)
	OR	A
	LD	HL,4
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	JR	NZ,?0022
?0021:
; 139.	     {
; 140.	     //无卡的情况
; 141.	        switch (list.active)
	CALL	LWRD ?S_S_SWITCH_L06
	DEFW	0
	DEFW	4
	DEFW	?0050
	DEFW	?0024

⌨️ 快捷键说明

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