ui_delete2.s01

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

S01
992
字号
; 138.	
; 139.	        case AP_KEY_PLAY | AP_KEY_UP:
; 140.	            FSELSetLocation(location);
	LD	E,(IX+2)
	LD	D,(IX+3)
	LD	A,BYTE3 fselSetLocation
	LD	HL,LWRD fselSetLocation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 141.	            return RESULT_IGNORE;
	JP	LWRD ?0051
; 142.	            break;
?0036:
; 143.	
; 144.	        case AP_KEY_MODE | AP_KEY_UP:
; 145.	            //YES时按下MODE键的处理
; 146.	            {
; 147.	              bool result;
; 148.	              result=show_delete_menu(string_id);
	LD	E,(IX+4)
	LD	A,BYTE3 show_delete_menu
	LD	HL,LWRD show_delete_menu
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 149.	              if(result==0)
	INC	L
	DEC	L
	JR	NZ,?0044
?0037:
; 150.	              {
; 151.	                fselGetByNO(name, filelist_active+1); //through file no get the name
	PUSH	IY
	POP	BC
	INC	BC
	LD	HL,12
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 fselGetByNO
	LD	HL,LWRD fselGetByNO
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 152.	                    if ( fselDelFile(FSEL_DEL_FILE) )         //更新文件选择器
	LD	E,0
	LD	A,BYTE3 fselDelFile
	LD	HL,LWRD fselDelFile
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JR	Z,?0044
?0039:
; 153.	
; 154.	                    {
; 155.	                      ResShowPic(MENUTWO,0,0);
	LD	C,0
	PUSH	BC
	LD	DE,109
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 156.	                      SetTextOutMode(1);       //设字体透明
	LD	E,1
	CALL	LWRD SetTextOutMode
; 157.	                      SetPenColor(Color_WHITE_def);
	LD	BC,0
	LD	DE,65535
	CALL	LWRD SetPenColor
; 158.	                      ResShowMultiString(CDELING,string_id, 255, 80);
	LD	C,80
	PUSH	BC
	LD	C,255
	PUSH	BC
	LD	C,(IX+4)
	LD	DE,277
	CALL	LWRD ?0082
	POP	AF
	POP	AF
; 159.	                     fselGetLocation(location);
	CALL	LWRD ?0083
; 160.	                     filetotal=filetotal-1;
	LD	HL,10
	ADD	HL,SP
	LD	A,(HL)
	ADD	A,255
	LD	(HL),A
	INC	HL
	LD	A,(HL)
	ADC	A,255
	LD	(HL),A
; 161.	                     if(filetotal==0)
	LD	A,(IX-18)
	OR	(IX-17)
	JR	Z,?0079
?0041:
; 162.	                         return RESULT_NULL;
?0042:
; 163.	                     if(filelist_active!=0)
	PUSH	IY
	POP	HL
	LD	A,L
	OR	H
	JR	Z,?0044
?0043:
; 164.	                        filelist_active=filelist_active-1;
	DEC	IY
?0044:
?0040:
; 165.	                    }
; 166.	                    result=RESULT_IGNORE;
?0038:
; 167.	              }
; 168.	
; 169.	              if(result=RESULT_IGNORE)
	LD	(IX-2),52
	XOR	A
	INC	A
	JR	Z,?0046
?0045:
; 170.	               {
; 171.	                     cur_grouplist=filelist_active/6;
	LD	BC,6
	PUSH	IY
	POP	DE
	CALL	LWRD ?0085
; 172.	                     top=cur_grouplist*6; //顶的序号
; 173.	                     bottom=top+5;
	LD	BC,5
; 174.	                    if(bottom>filetotal-1)
	CALL	LWRD ?0086
	JR	NC,?0048
?0047:
; 175.	                     bottom=filetotal-1;
	LD	(IX-20),L
	LD	(IX-19),H
?0048:
; 176.	                    reinit_idm_buf_filelist(top, bottom, string_id);       //换页要重新初始化IDM数据
	LD	L,(IX+4)
	PUSH	HL
	CALL	LWRD ?0088
	POP	HL
; 177.	                    ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
	JR	?0080
; 178.	                    break;
?0046:
; 179.	              }
; 180.	            else
; 181.	             return result;
	LD	L,(IX-2)
	LD	H,A
; 182.	            break;
	JR	?0062
?0049:
; 183.	
; 184.	         }
; 185.	        case AP_MSG_WAIT_TIMEOUT:
; 186.	                if (FSELGetLocation(location))
	CALL	LWRD ?0083
	INC	L
	DEC	L
	JR	Z,?0051
?0050:
; 187.	                    return RESULT_NULL;
?0079:
	LD	HL,0
; 188.	                else
	JR	?0062
?0051:
; 189.	                    return RESULT_IGNORE;
	LD	HL,52
; 190.	                break;
	JR	?0062
?0052:
; 191.	            //}
; 192.	        case AP_MSG_SD_OUT:
; 193.	            //如在游览SD卡,但SD卡又被拔出,就返回拔出信号
; 194.	            if (location->disk == 'H')
	LD	L,(IX+2)
	LD	H,(IX+3)
	LD	A,(HL)
	CP	72
	JR	NZ,?0061
?0053:
; 195.	            {
; 196.	                return RESULT_SD_OUT;
	LD	HL,54
; 197.	            }
	JR	?0062
?0054:
; 198.	            break;
?0055:
; 199.	
; 200.	        case AP_MSG_SD_IN:
; 201.	            break;
?0056:
; 202.	
; 203.	        default:
; 204.	            key=ap_handle_hotkey(key);
	LD	E,C
	CALL	LWRD ap_handle_hotkey
	LD	C,A
; 205.	            if(key == RESULT_REDRAW)
	LD	A,50
	XOR	C
	JR	NZ,?0058
?0057:
; 206.	            {
; 207.	              ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
?0080:
	LD	L,(IX+4)
	PUSH	HL
	PUSH	IY
	PUSH	IY
	LD	C,(IX-20)
	LD	B,(IX-19)
	LD	E,(IX-22)
	LD	D,(IX-21)
	LD	A,BYTE3 ShowFilelist
	LD	HL,LWRD ShowFilelist
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	HL
	POP	HL
	POP	HL
	JR	?0061
?0058:
; 208.	            }
; 209.	            else if(key != 0)
	LD	A,C
	OR	A
	JR	Z,?0061
?0060:
; 210.	            {
; 211.	                FSELGetLocation(location);
	CALL	LWRD ?0083
; 212.	                return key;
	LD	L,C
	LD	H,B
; 213.	            }
?0062:
	POP	IY
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0061:
?0059:
?0010:
; 214.	        } //switch()
; 215.	    }//  while(1)
; 216.	}
	JP	LWRD ?0008
?0083:
	LD	E,(IX+2)
	LD	D,(IX+3)
	LD	A,BYTE3 fselGetLocation
	LD	HL,LWRD fselGetLocation
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0084:
	PUSH	IY
	POP	DE
	CALL	LWRD ?SS_DIV_L02
	EX	DE,HL
	ADD	HL,HL
	LD	C,L
	LD	B,H
	ADD	HL,HL
	ADD	HL,BC
	LD	(IX-22),L
	LD	(IX-21),H
	LD	BC,5
	ADD	HL,BC
	LD	(IX-20),L
	LD	(IX-19),H
	RET
?0085:
	CALL	LWRD ?SS_DIV_L02
	LD	(IX-24),E
	LD	(IX-23),D
	EX	DE,HL
	ADD	HL,HL
	LD	C,L
	LD	B,H
	ADD	HL,HL
	ADD	HL,BC
	LD	(IX-22),L
	LD	(IX-21),H
	RET
?0086:
	ADD	HL,BC
	LD	(IX-20),L
	LD	(IX-19),H
?0087:
	LD	L,(IX-18)
	LD	H,(IX-17)
	DEC	HL
	LD	C,(IX-20)
	LD	B,(IX-19)
	JP	LWRD ?SS_CMP_L02
?0088:
	LD	C,(IX-20)
	LD	B,(IX-19)
?0089:
	LD	E,(IX-22)
	LD	D,(IX-21)
?0090:
	LD	A,BYTE3 reinit_idm_buf_filelist
	LD	HL,LWRD reinit_idm_buf_filelist
	JP	LWRD ?BANK_CALL_DIRECT_L08
draw_del_dir:
; 217.	
; 218.	/********************************************************************************
; 219.	/* Description : draw the selector directory.
; 220.	*
; 221.	* Arguments  : location  :keep the file selector parament
; 222.	               string_id :display language type
; 223.	* Returns     :
; 224.	*
; 225.	* Notes       :
; 226.	*
; 227.	********************************************************************************/
; 228.	void draw_del_dir(file_location_t *location, BYTE string_id)
; 229.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	-42
	PUSH	IY
	LD	L,(IX+2)
	LD	H,(IX+3)
	PUSH	HL
	POP	IY
; 230.	    char Longnamebuf_del[31];
; 231.	    char buf[5];
; 232.	    BYTE NameNum,Cardflag=0;
; 233.	
; 234.	    DC  oldDC_sav;
; 235.	
; 236.	    GetDCStatus(&oldDC_sav);
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD GetDCStatus
; 237.	    SetPenColor(Color_WHITE_def);
	LD	BC,0
	LD	DE,65535
	CALL	LWRD SetPenColor
; 238.	    SetTextOutMode(1);       //设字体透明
	LD	E,1
	CALL	LWRD SetTextOutMode
; 239.	
; 240.	//    SetAsciiFont(FONT_TYPE_LARGE);                //ASCII码用大字体
; 241.	
; 242.	    ResShowPic(SSBCK,0,0);
	LD	C,0
	PUSH	BC
	LD	DE,221
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 243.	    ResShowMultiString(CDELALL,string_id, list_str_x_def, list_str_y_def);
	LD	C,148
	PUSH	BC
	LD	C,22
	PUSH	BC
	LD	C,(IX+4)
	LD	DE,276
	CALL	LWRD ?0082
	POP	AF
	POP	AF
; 244.	    ResShowPic(DELNO,78,60);
	LD	C,60
	PUSH	BC
	LD	C,78
	LD	DE,1
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 245.	    //ResShowPic(MDIR,10,95);
; 246.	//    SetTextPos(32,95);
; 247.	 //   SetPenColor(Color_WHITE_def);
; 248.	
; 249.	
; 250.	    if(location->disk == 'H');//Cardflag=DIRROOT-DIRCARD;
?0063:
?0064:
; 251.	    else if(location->disk != 'C')ASSERT(FALSE);
?0066:
?0067:
?0065:
; 252.	
; 253.	//    SetAsciiFont(FONT_TYPE_LARGE);
; 254.	
; 255.	    if(location->path[0] == ':')                            //根目录显示
	LD	A,(IY+14)
	CP	58
	JR	Z,?0073
?0068:
; 256.	    {
; 257.	
; 258.	//        strcpy(buf, "ROOT");
; 259.	//        buf[4] = 0x00;
; 260.	        //PutS(buf, -1);
; 261.	    }
; 262.	    else                                                //子目录显示,会获取子目录的长名
?0069:
; 263.	    {
; 264.	
; 265.	        memset(Longnamebuf_del,0x00,31);
	LD	BC,31
	LD	HL,12
	ADD	HL,SP
	EX	DE,HL
	LD	L,B
	CALL	LWRD ?MEMSET_L11
; 266.	        memcpy(Longnamebuf_del,location->path,11);
	LD	HL,12
	ADD	HL,SP
	EX	DE,HL
	LD	HL,14
	PUSH	IY
	POP	BC
	ADD	HL,BC
	LD	BC,11
	LDIR
; 267.	        NameNum=FS_GetName(Longnamebuf_del,14);
	LD	C,14
	LD	HL,12
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD FS_GetName
; 268.	        if(NameNum!=0)
	OR	A
	JR	NZ,?0073
?0071:
; 269.	        {
; 270.	//            unitochar(Longnamebuf_del,NameNum*2+2,string_id);
; 271.	            //PutS(Longnamebuf_del,-1);
; 272.	        }
; 273.	        else
?0072:
; 274.	        {
; 275.	            FS_CD("\\");
	LD	DE,?0074
	CALL	LWRD FS_CD
; 276.	//            NameNum=FS_GetName(Longnamebuf_del,14);
; 277.	 //           if (NameNum != 0)
; 278.	//            {
; 279.	 //               unitochar(Longnamebuf_del,NameNum*2+2,string_id);
; 280.	                //PutS(Longnamebuf_del,-1);
; 281.	 //           }
; 282.	 //           else
; 283.	                //PutS(location->path, 11);
; 284.	            FS_SetCurDir(location->ClusterNo);
	LD	C,(IY+11)
	LD	B,(IY+12)
	LD	E,(IY+9)
	LD	D,(IY+10)
	CALL	LWRD FS_SetCurDir
?0073:
?0070:
; 285.	        }
; 286.	    }
; 287.	    FS_CD(location->path);                            //CD到删除所在目录
	LD	HL,14
	PUSH	IY
	POP	BC
	ADD	HL,BC
	EX	DE,HL
	CALL	LWRD FS_CD
; 288.	
; 289.	
; 290.	//    SetAsciiFont(FONT_TYPE_SMALL);
; 291.	
; 292.	    SetTextOutMode(0);       //设字体不透明
	LD	E,0
	CALL	LWRD SetTextOutMode
; 293.	    SetPenColor(oldDC_sav.PenColor);
	LD	C,(IX-40)
	LD	B,(IX-39)
	LD	E,(IX-42)
	LD	D,(IX-41)
	CALL	LWRD SetPenColor
; 294.	    SetBackgdColor(oldDC_sav.BackgdColor);
	LD	HL,6
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	INC	HL
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	CALL	LWRD SetBackgdColor
; 295.	
; 296.	}
	POP	IY
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
; 297.	
	RSEG	CSTR
?0074:
	DEFB	92,0
	END

⌨️ 快捷键说明

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