ui_stop_menu.s01

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

S01
858
字号
	DEFW	?0024
	DEFW	?0045
	DEFW	?0046
	DEFW	?0029
?0024:
; 142.	        {
; 143.	            case 0: //主目录
; 144.	//                result=ui_explore(&g_amv_vars.location, EXPLORE_DIR, g_langid);
; 145.	             if (g_amv_vars.location.disk == 'H')
	LD	A,(g_amv_vars+5)
	CP	72
	JR	NZ,?0037
?0025:
; 146.	               {
; 147.	                 g_amv_vars.location.disk = 'C';
	JR	?0077
; 148.	                 FSELInit(FSEL_TYPE_AMV, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_amv_vars.location.disk);  
; 149.	                 fselGetLocation(&g_amv_vars.location);   
?0026:
; 150.	               }
; 151.	                result=ui_directory(&g_amv_vars.location, FSEL_TYPE_AMV, g_langid);
; 152.	                FSELSetMode(FSEL_ALL_SEQUENCE);
; 153.	                BankSwitch((unsigned long)AmvDecStart>>16);
; 154.	                g_menu_active=FALSE;
; 155.	                break;
?0027:
; 156.	
; 157.	            case 1: //删除文件
; 158.	                result = ui_delete_amv(DELETE_FILE);
; 159.	                break;
?0028:
; 160.	                
; 161.	            case 2: //删除全部
; 162.	                //result = ui_delete_amv(DELETE_FILE);
; 163.	                FSELSetMode(FSEL_ALL_REPEATALL);
; 164.	                result = ui_delete_all(&g_amv_vars.location, DELETE_AMV, g_comval.langid);
; 165.	                FSELSetMode(g_amv_vars.repeat_mode);
; 166.	                break;
?0029:
; 167.	                
; 168.	            case 3:
; 169.	                result = ui_loop_menu();
	LD	A,BYTE3 ui_loop_menu
	LD	HL,LWRD ui_loop_menu
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	PUSH	HL
	POP	IX
; 170.	                if(result==0)result=RESULT_IGNORE;
	LD	A,L
	OR	H
	JP	NZ,?0034
?0030:
	JP	LWRD ?0050
?0031:
; 171.	                break;
?0032:
; 172.	            default://退出 case 3
; 173.	                result = RESULT_IGNORE;
; 174.	                break;
?0023:
; 175.	        }
; 176.	
; 177.	    }
; 178.	
; 179.	 else    //有卡的情况
?0022:
; 180.	   {
; 181.	     switch (list.active)
	CALL	LWRD ?S_S_SWITCH_L06
	DEFW	0
	DEFW	5
	DEFW	?0050
	DEFW	?0035
	DEFW	?0038
	DEFW	?0045
	DEFW	?0046
	DEFW	?0047
?0035:
; 182.	      {
; 183.	        case  0:
; 184.	              if (g_amv_vars.location.disk == 'H')
	LD	A,(g_amv_vars+5)
	CP	72
	JR	NZ,?0037
?0036:
; 185.	               {
; 186.	                 g_amv_vars.location.disk = 'C';
?0077:
	LD	A,67
	LD	(g_amv_vars+5),A
; 187.	                 FSELInit(FSEL_TYPE_AMV, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_amv_vars.location.disk);   
	LD	C,A
	PUSH	BC
	LD	C,B
	PUSH	BC
	LD	E,5
	LD	A,BYTE3 fselInit
	LD	HL,LWRD fselInit
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 188.	                 fselGetLocation(&g_amv_vars.location);  
	CALL	LWRD ?0081
?0037:
; 189.	               }
; 190.	                result=ui_directory(&g_amv_vars.location, FSEL_TYPE_AMV, g_langid);
	LD	A,(g_langid)
	LD	C,A
	PUSH	BC
	LD	C,5
	LD	DE,g_amv_vars+5
	LD	A,BYTE3 ui_directory
	LD	HL,LWRD ui_directory
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 191.	                FSELSetMode(FSEL_ALL_SEQUENCE);
	CALL	LWRD ?0082
; 192.	                BankSwitch((unsigned long)AmvDecStart>>16);
	LD	E,BYTE3 AmvDecStart
	CALL	LWRD BankSwitch
; 193.	                g_menu_active=FALSE;
	XOR	A
	LD	(g_menu_active),A
; 194.	                break;
	JP	LWRD ?0034
?0038:
; 195.	
; 196.	       case  1:
; 197.	            if (g_amv_vars.location.disk == 'C')
	LD	A,(g_amv_vars+5)
	CP	67
	JR	NZ,?0040
?0039:
; 198.	                    {
; 199.	                        //PASS_KEY(0x13);
; 200.	                        g_amv_vars.location.disk = 'H';
	LD	A,72
	LD	(g_amv_vars+5),A
; 201.	                        result=FSELInit(FSEL_TYPE_AMV, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_amv_vars.location.disk); 
	LD	C,A
	PUSH	BC
	LD	C,B
	PUSH	BC
	LD	E,5
	LD	A,BYTE3 fselInit
	LD	HL,LWRD fselInit
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
	LD	H,0
	PUSH	HL
	POP	IX
; 202.	                        if(!result) 
	LD	A,L
	OR	A
	JR	NZ,?0042
?0041:
; 203.	                        {
; 204.	                         g_amv_vars.location.disk = 'C';
	LD	A,67
	LD	(g_amv_vars+5),A
; 205.	                         g_DiskStateFlag=g_DiskStateFlag&ClrCardOKFlag_def;
	LD	HL,g_DiskStateFlag
	RES	3,(HL)
; 206.	                         ui_show_msg (CREADERR, CREADERR, g_langid);        //temp ybfu  
	LD	BC,(g_langid)
	LD	B,0
	PUSH	BC
	LD	BC,404
	LD	E,C
	LD	D,B
	LD	A,BYTE3 ui_show_msg
	LD	HL,LWRD ui_show_msg
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 207.	                         break; 
	JP	LWRD ?0034
?0042:
; 208.	                        }
; 209.	                        g_DiskStateFlag=g_DiskStateFlag|SetCardOKFlag_def;
	LD	HL,g_DiskStateFlag
	SET	3,(HL)
; 210.	                        fselGetLocation(&g_amv_vars.location);
	CALL	LWRD ?0081
?0040:
; 211.	                    }
; 212.	                    //fselGetLocation(&g_amv_vars.location);
; 213.	                    result = ui_directory(&g_amv_vars.location,FSEL_TYPE_AMV, g_langid);
	LD	A,(g_langid)
	LD	C,A
	PUSH	BC
	LD	C,5
	LD	DE,g_amv_vars+5
	LD	A,BYTE3 ui_directory
	LD	HL,LWRD ui_directory
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 214.	                    FSELSetMode(FSEL_ALL_SEQUENCE);
	CALL	LWRD ?0082
; 215.	                    BankSwitch((unsigned long)AmvDecStart>>16);
	LD	E,BYTE3 AmvDecStart
	CALL	LWRD BankSwitch
; 216.	                    g_menu_active=FALSE;
	XOR	A
	LD	(g_menu_active),A
; 217.	                    //PASS_KEY(0x16);
; 218.	                    if (result == RESULT_SD_OUT)
	PUSH	IX
	POP	HL
	LD	A,54
	XOR	L
	OR	H
	JR	NZ,?0034
?0043:
; 219.	                    {
; 220.	                        ui_err_msg(CARDPULL,CARDPULL,g_langid);//显示卡拔出
	LD	BC,(g_langid)
	LD	B,A
	PUSH	BC
	LD	BC,401
	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
; 221.	                        g_amv_vars.location.disk = 'C';
	LD	A,67
	LD	(g_amv_vars+5),A
; 222.	                        //return RESULT_IGNORE;
; 223.	                        result = RESULT_SD_OUT;
	LD	IX,54
?0044:
; 224.	                        //return 0;
; 225.	                    }
; 226.	                   break;
	JR	?0034
?0045:
; 227.	
; 228.	      case  2:
; 229.	               //删除文件
; 230.	                result = ui_delete_amv(DELETE_FILE);
	LD	E,C
	LD	D,B
	LD	A,BYTE3 ui_delete_amv
	LD	HL,LWRD ui_delete_amv
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	PUSH	HL
	POP	IX
; 231.	                break;
	JR	?0034
?0046:
; 232.	      
; 233.	      case  3:
; 234.	               //删除全部
; 235.	                //result = ui_delete_amv(DELETE_FILE);
; 236.	                FSELSetMode(FSEL_ALL_REPEATALL);
	LD	E,4
	CALL	LWRD ?0083
; 237.	                result = ui_delete_all(&g_amv_vars.location, DELETE_AMV, g_comval.langid);
	LD	HL,g_comval+12
	LD	C,(HL)
	PUSH	BC
	LD	C,3
	LD	DE,g_amv_vars+5
	LD	A,BYTE3 ui_delete_all
	LD	HL,LWRD ui_delete_all
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	PUSH	HL
	POP	IX
; 238.	                FSELSetMode(g_amv_vars.repeat_mode);
	LD	DE,(g_amv_vars+3)
	CALL	LWRD ?0083
; 239.	                break;
	JR	?0034
?0047:
; 240.	                
; 241.	      case 4:
; 242.	                result = ui_loop_menu();
	LD	A,BYTE3 ui_loop_menu
	LD	HL,LWRD ui_loop_menu
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	PUSH	HL
	POP	IX
; 243.	                if(result==0)result=RESULT_IGNORE;
	LD	A,L
	OR	H
	JR	NZ,?0034
?0048:
?0049:
; 244.	                break;
?0050:
; 245.	            default://退出                    //case 4
; 246.	                result = RESULT_IGNORE;
	LD	IX,52
; 247.	                break;
?0034:
?0033:
; 248.	        }
; 249.	    //注,如 result != 0表示退出时一些时间参数不用清0
; 250.	    //      但如果 ==0 则表示退出时目录已改,时间要清0
; 251.	  }
; 252.	  
; 253.	  //if(result != RESULT_IGNORE)
; 254.	 //  ClearTimePara();//清0时间及断点    
; 255.	  if (result == RESULT_IGNORE)
	PUSH	IX
	POP	HL
	LD	A,52
	XOR	L
	OR	H
	JR	NZ,?0052
?0051:
; 256.	    {
; 257.	        result = 0;
	LD	IX,0
?0052:
; 258.	    } 
; 259.	    if (result != 0)
	PUSH	IX
	POP	HL
	LD	A,L
	OR	H
	JR	NZ,?0055
?0053:
; 260.	    {
; 261.	        return result;
; 262.	    }
?0054:
; 263.	    ClearTimePara();//清0时间及断点
	LD	A,BYTE3 ClearTimePara
	LD	HL,LWRD ClearTimePara
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 264.	    return 0;
	LD	HL,0
; 265.	}
?0055:
	EX	DE,HL
	LD	HL,10
	ADD	HL,SP
	LD	SP,HL
	EX	DE,HL
	POP	IX
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0082:
	PUSH	HL
	POP	IX
	LD	E,0
?0083:
	LD	A,BYTE3 fselSetMode
	LD	HL,LWRD fselSetMode
	JP	LWRD ?BANK_CALL_DIRECT_L08
CheckIfCardOK:
; 266.	
; 267.	
; 268.	
; 269.	
; 270.	
; 271.	
; 272.	
; 273.	//====检测卡是否可用========
; 274.	
; 275.	void CheckIfCardOK(void)
; 276.	{
	PUSH	DE
	PUSH	AF
; 277.	    char i;
; 278.	    i = DRV_DetectUD(1); //检测 sd 卡是否存在
	LD	E,1
	CALL	LWRD DRV_DetectUD
; 279.	    if (i == 0x20)
	CP	32
	JR	NZ,?0057
?0056:
; 280.	    {
; 281.	        g_CardInFlag = 1;
	LD	A,1
	JR	?0080
; 282.	    }
; 283.	    else
?0057:
; 284.	    {
; 285.	        g_CardInFlag = 0;
	XOR	A
?0080:
	LD	(g_CardInFlag),A
?0058:
; 286.	    }
; 287.	
; 288.	}
	POP	HL
	POP	DE
	JP	LWRD ?BANK_FAST_LEAVE_L08
; 289.	
	RSEG	UDATA0
g_CardInFlag:
	DEFS	1
	RSEG	IDATA0
?0009:
	DEFS	1
	RSEG	CDATA0
	DEFB	0
	RSEG	APC_UI_MNU
dir_string_card:
	DEFW	281
	DEFW	282
	DEFW	283
	DEFW	284
	DEFW	286
	DEFW	285
repeat_string:
	DEFW	309
	DEFW	310
	DEFW	311
	DEFW	312
	DEFW	313
	DEFW	314
	DEFW	315
dir_string:
	DEFW	281
	DEFW	283
	DEFW	284
	DEFW	286
	DEFW	285
	END

⌨️ 快捷键说明

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