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

📄 ui_delete3.s01

📁 MP3 整个 SDK
💻 S01
字号:
	NAME	ui_delete3(17)
	RSEG	COM_CTRL(0)
	RSEG	CONST(0)
	RSEG	IDM_COM_FSL_D(0)
	EXTERN	FS_GetName
	EXTERN	PutS
	EXTERN	ResShowMultiString
	EXTERN	ResShowPic
	EXTERN	SetPenColor
	EXTERN	SetTextOutMode
	EXTERN	SetTextPos
	PUBLIC	ShowFilelist
	PUBLIC	com_delname
	PUBLIC	delete_text
	EXTERN	file_bck_pic
	EXTERN	file_pos
	EXTERN	fselGetByNO
	PUBLIC	read_idm_data_filelist
	PUBLIC	reinit_idm_buf_filelist
	PUBLIC	show_delete_menu
	EXTERN	ui_popup_list
	EXTERN	unitochar
	PUBLIC	write_idm_data_filelist
	EXTERN	?CLZ80B_4_04_L00
	EXTERN	?SS_MOD_L02
	EXTERN	?S_MUL_L02
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	RSEG	COM_CTRL
write_idm_data_filelist:
; 1.	/*
; 2.	*******************************************************************************
; 3.	*                ACTOS AP
; 4.	*        ap common lib file, part 2
; 5.	*
; 6.	*        (c) Copyright, Actions Co,Ld.                             
; 7.	*             All Right Reserved                          
; 8.	*
; 9.	*  $Id: ui_delete3.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
; 10.	*******************************************************************************
; 11.	*/ 
; 12.	#pragma codeseg(COM_CTRL)
; 13.	
; 14.	#include "ap_common.h"
; 15.	#pragma memory=dataseg(IDM_COM_FSL_D)
; 16.	char com_delname[6][50];
; 17.	#pragma memory=default
; 18.	extern const char file_pos[6];
; 19.	extern const WORD file_bck_pic[6];
; 20.	const WORD delete_text[2] ={DELENO,DELEYES};
; 21.	
; 22.	//向IDM数组写数据
; 23.	BOOL write_idm_data_filelist(char *name, int count)
; 24.	{
	PUSH	BC
	PUSH	DE
	PUSH	AF
; 25.	     byte status;
; 26.	     status = input8(0x05);
	IN	A,(5)
	LD	HL,0
	ADD	HL,SP
	LD	(HL),A
; 27.	     output8(0x05, 0xf6);
	LD	A,246
	OUT	(5),A
; 28.	     memcpy( com_delname[count], name, 50);
	LD	DE,50
	CALL	LWRD ?S_MUL_L02
	LD	HL,com_delname
	ADD	HL,DE
	EX	DE,HL
	LD	HL,2
	ADD	HL,SP
	LD	B,(HL)
	INC	HL
	LD	H,(HL)
	LD	L,B
	LD	BC,50
?0027:
	LDIR
; 29.	     output8(0x05, status);
	LD	L,C
	LD	H,B
	ADD	HL,SP
	LD	A,(HL)
	OUT	(5),A
; 30.	}
	POP	HL
	POP	HL
	POP	HL
	JP	LWRD ?BANK_FAST_LEAVE_L08
reinit_idm_buf_filelist:
; 31.	
; 32.	//取一屏数据到IDM数组中
; 33.	void reinit_idm_buf_filelist(int top, int bottom,BYTE string_id)
; 34.	{
	PUSH	IY
	PUSH	IX
	LD	IX,0
	ADD	IX,SP
	PUSH	BC
	PUSH	DE
	LD	HL,65472
	ADD	HL,SP
	LD	SP,HL
; 35.	    int i;
; 36.	    char NameNum;
; 37.	    char name_buf[12];
; 38.	    char Longnamebuf[50];
; 39.	    memcpy(name_buf,name_buf,12);
	LD	BC,12
	LD	HL,52
	ADD	HL,SP
	EX	DE,HL
	LD	HL,52
	ADD	HL,SP
	LDIR
; 40.	    for(i = top; i <= bottom; i++)
	LD	L,(IX-4)
	LD	H,(IX-3)
	PUSH	HL
	POP	IY
?0003:
	PUSH	IY
	POP	BC
	LD	L,(IX-2)
	LD	H,(IX-1)
	OR	128
	SBC	HL,BC
	JP	PO,?0023
	XOR	H
?0023:
	JP	M,?0002
?0004:
; 41.	     {
; 42.	        fselGetByNO(name_buf,i+1);
	INC	BC
	LD	HL,52
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 fselGetByNO
	LD	HL,LWRD fselGetByNO
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 43.	        memcpy(Longnamebuf,name_buf,12);
	LD	BC,12
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	LD	HL,52
	ADD	HL,SP
	LDIR
; 44.	        NameNum=FS_GetName(Longnamebuf,24);
	LD	C,24
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD FS_GetName
; 45.	        if(NameNum!=0)
	OR	A
	JR	Z,?0007
?0006:
; 46.	        {
; 47.	            unitochar(Longnamebuf,NameNum*2+2,string_id);
	LD	L,(IX+8)
	PUSH	HL
	LD	L,A
	LD	H,0
	ADD	HL,HL
	LD	C,L
	LD	B,H
	INC	BC
	INC	BC
	LD	HL,4
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 unitochar
	LD	HL,LWRD unitochar
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 48.	        }
; 49.	        else
	JR	?0008
?0007:
; 50.	            {
; 51.	             memcpy(Longnamebuf,name_buf,11);    //get one usful record
	LD	BC,11
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	LD	HL,52
	ADD	HL,SP
	LDIR
; 52.	             Longnamebuf[11]=0;
	LD	(IX-55),B
; 53.	             Longnamebuf[12]=0;
	LD	(IX-54),B
?0008:
; 54.	            }
; 55.	
; 56.	        write_idm_data_filelist(Longnamebuf, i - top);
	LD	C,(IX-4)
	LD	B,(IX-3)
	PUSH	IY
	POP	HL
	AND	A
	SBC	HL,BC
	LD	C,L
	LD	B,H
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 write_idm_data_filelist
	LD	HL,LWRD write_idm_data_filelist
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 57.	
; 58.	    }
; 59.	}
	INC	IY
	JP	LWRD ?0003
?0002:
	LD	SP,IX
	POP	IX
	POP	IY
	JP	LWRD ?BANK_FAST_LEAVE_L08
read_idm_data_filelist:
; 60.	
; 61.	//读数据到数组name中
; 62.	void read_idm_data_filelist(char *name, int count)
; 63.	{
	PUSH	BC
	PUSH	DE
	PUSH	AF
; 64.	     byte status;
; 65.	     status = input8(0x05);
	IN	A,(5)
	LD	HL,0
	ADD	HL,SP
	LD	(HL),A
; 66.	     output8(0x05 ,0xf6);
	LD	A,246
	OUT	(5),A
; 67.	     memcpy(name, com_delname[count], 50);
	LD	BC,50
	PUSH	DE
	LD	HL,6
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	CALL	LWRD ?S_MUL_L02
	LD	HL,com_delname
	ADD	HL,DE
	POP	DE
	JP	LWRD ?0027
; 68.	     output8(0x05, status);
; 69.	}
ShowFilelist:
; 70.	
; 71.	
; 72.	/********************************************************************************
; 73.	* Description : show the directory.
; 74.	*
; 75.	* Arguments  :
; 76.	*            location: get thedisk type
; 77.	*            Invpath: the "\" or name
; 78.	*            Namebuf:the string you will display
; 79.	*            type : show file kind
; 80.	*            string_id: language type
; 81.	* Returns     :
; 82.	*            other:    Successful
; 83.	*            0:    Fail, detail information in fselError
; 84.	* Notes       :  only display the valid directory
; 85.	*
; 86.	********************************************************************************/
; 87.	void ShowFilelist(int top,int bottom,int Old_active,int active,BYTE string_id)
; 88.	{
	PUSH	IY
	PUSH	IX
	LD	IX,0
	ADD	IX,SP
	PUSH	BC
	PUSH	DE
	LD	HL,65484
	ADD	HL,SP
	LD	SP,HL
; 89.	
; 90.	    int i,tmp;
; 91.	    char        Longnamebuf[50];
; 92.	   // SetAsciiFont(FONT_TYPE_SMALL);
; 93.	    SetTextOutMode(1);
	LD	E,1
	CALL	LWRD SetTextOutMode
; 94.	
; 95.	 if(Old_active!=active)
	LD	L,(IX+10)
	LD	H,(IX+11)
	LD	E,(IX+8)
	LD	D,(IX+9)
	AND	A
	SBC	HL,DE
	JP	Z,?0010
?0009:
; 96.	
; 97.	  {
; 98.	 //清除旧的活动列表项
; 99.	
; 100.	     tmp=Old_active%6;
	LD	BC,6
	CALL	LWRD ?0029
; 101.	     ResShowPic(file_bck_pic[tmp], menu_bck_x_def, file_pos[tmp]-4);
	ADD	A,252
	LD	C,A
	PUSH	BC
	LD	C,9
	EX	DE,HL
	ADD	HL,HL
	LD	DE,file_bck_pic
	ADD	HL,DE
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	CALL	LWRD ?0030
	POP	AF
; 102.	     ResShowPic(DHT,194,8);
	LD	C,8
	PUSH	BC
	LD	C,194
	LD	DE,45
	CALL	LWRD ?0030
	POP	AF
; 103.	     ResShowPic(MFILE,13,file_pos[tmp]-1);
	LD	HL,file_pos
	LD	C,(IX-56)
	LD	B,(IX-55)
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,255
	LD	E,A
	PUSH	DE
	CALL	LWRD ?0031
	POP	AF
; 104.	     SetTextPos(explorer_str_x_def, file_pos[tmp]-2);
	CALL	LWRD ?0032
; 105.	     read_idm_data_filelist(Longnamebuf,tmp);
	LD	C,(IX-56)
	LD	B,(IX-55)
	LD	HL,2
	ADD	HL,SP
; 106.	     SetPenColor(Color_WHITE_def);                     //取列表名
	CALL	LWRD ?0034
; 107.	     PutS(Longnamebuf, -1);
	LD	C,255
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD PutS
; 108.	
; 109.	 //显示当前活动项
; 110.	     tmp=active%6;
	LD	BC,6
	LD	E,(IX+10)
	LD	D,(IX+11)
	CALL	LWRD ?0029
; 111.	     ResShowPic(MFILE,13,file_pos[tmp]-1);
	ADD	A,255
	LD	C,A
	PUSH	BC
	CALL	LWRD ?0031
	POP	AF
; 112.	     ResShowPic(FILEBCK,  explorer_str_x_def-1, file_pos[tmp]-4);
	LD	HL,file_pos
	LD	C,(IX-56)
	LD	B,(IX-55)
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,252
	LD	E,A
	PUSH	DE
	LD	C,31
	LD	DE,50
	CALL	LWRD ?0030
	POP	AF
; 113.	     ResShowPic(DHTHK,194, file_pos[tmp]+5);
	LD	HL,file_pos
	LD	C,(IX-56)
	LD	B,(IX-55)
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,5
	LD	E,A
	PUSH	DE
	LD	C,194
	LD	DE,46
	CALL	LWRD ?0030
	POP	AF
; 114.	     SetTextPos(explorer_str_x_def, file_pos[tmp]-2);
	CALL	LWRD ?0032
; 115.	     read_idm_data_filelist(Longnamebuf,tmp);
	LD	C,(IX-56)
	LD	B,(IX-55)
	LD	HL,2
	ADD	HL,SP
; 116.	     SetPenColor(Color_WHITE_def);                               //取列表名
	CALL	LWRD ?0034
; 117.	     PutS(Longnamebuf, -1);
	LD	C,255
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD PutS
; 118.	  }
; 119.	
; 120.	
; 121.	 else  //if(Old_active==active)               刷新一页屏
	JP	LWRD ?0012
?0010:
; 122.	
; 123.	  {
; 124.	    SetTextOutMode(1);
	LD	E,1
	CALL	LWRD SetTextOutMode
; 125.	    ResShowPic(MENUTWO,0,0);
	LD	C,0
	PUSH	BC
	LD	DE,109
	CALL	LWRD ?0030
	POP	AF
; 126.	    SetPenColor(Color_WHITE_def);
	CALL	LWRD ?0035
; 127.	    ResShowMultiString(CDELFILE,string_id, list_str_x_def, list_str_y_def);
	LD	C,148
	PUSH	BC
	LD	C,22
	PUSH	BC
	LD	C,(IX+12)
	LD	DE,275
	LD	A,BYTE3 ResShowMultiString
	LD	HL,LWRD ResShowMultiString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 128.	    ResShowPic(DHT,194,8);
	LD	C,8
	PUSH	BC
	LD	C,194
	LD	DE,45
	CALL	LWRD ?0030
	POP	AF
; 129.	                //显示列表名
; 130.	      for(i=top;i<=bottom;i++)
	LD	L,(IX-4)
	LD	H,(IX-3)
	PUSH	HL
	POP	IY
?0013:
	PUSH	IY
	POP	BC
	LD	L,(IX-2)
	LD	H,(IX-1)
	OR	128
	SBC	HL,BC
	JP	PO,?0025
	XOR	H
?0025:
	JP	M,?0012
?0014:
; 131.	      {
; 132.	       tmp=i%6;
	LD	BC,6
	PUSH	IY
	POP	DE
	CALL	LWRD ?SS_MOD_L02
	LD	(IX-56),E
	LD	(IX-55),D
; 133.	       if(i==active)
	LD	L,(IX+10)
	LD	H,(IX+11)
	PUSH	IY
	POP	BC
	AND	A
	SBC	HL,BC
	JR	NZ,?0017
?0016:
; 134.	         {
; 135.	                ResShowPic(FILEBCK,  explorer_str_x_def-1, file_pos[i-top]-4);
	LD	C,(IX-4)
	LD	B,(IX-3)
	PUSH	IY
	POP	HL
	AND	A
	SBC	HL,BC
	LD	DE,file_pos
	ADD	HL,DE
	LD	A,(HL)
	ADD	A,252
	LD	E,A
	PUSH	DE
	LD	C,31
	LD	DE,50
	CALL	LWRD ?0030
	POP	AF
; 136.	                ResShowPic(DHTHK,194, file_pos[i-top]+5);
	LD	C,(IX-4)
	LD	B,(IX-3)
	PUSH	IY
	POP	HL
	AND	A
	SBC	HL,BC
	LD	BC,file_pos
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,5
	LD	C,A
	PUSH	BC
	LD	C,194
	LD	DE,46
	CALL	LWRD ?0030
	POP	AF
; 137.	                SetPenColor(Color_WHITE_def);
; 138.	         }
; 139.	       else
?0017:
; 140.	         SetPenColor(Color_WHITE_def);
	CALL	LWRD ?0035
?0018:
; 141.	      output8(0x4e,input8(0x4e) | 0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 142.	      read_idm_data_filelist(Longnamebuf,tmp);
	LD	C,(IX-56)
	LD	B,(IX-55)
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 read_idm_data_filelist
	LD	HL,LWRD read_idm_data_filelist
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 143.	      ResShowPic(MFILE,13,file_pos[i-top]-1);
	LD	C,(IX-4)
	LD	B,(IX-3)
	PUSH	IY
	POP	HL
	AND	A
	SBC	HL,BC
	LD	DE,file_pos
	ADD	HL,DE
	LD	A,(HL)
	ADD	A,255
	LD	E,A
	PUSH	DE
	CALL	LWRD ?0031
	POP	AF
; 144.	      SetTextPos(explorer_str_x_def, file_pos[i-top]-2);
	LD	C,(IX-4)
	LD	B,(IX-3)
	PUSH	IY
	POP	HL
	AND	A
	SBC	HL,BC
	LD	BC,file_pos
	CALL	LWRD ?0033
; 145.	      PutS(Longnamebuf,-1);
	LD	C,255
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD PutS
; 146.	     }
; 147.	
; 148.	  } //else
	INC	IY
	JP	LWRD ?0013
?0012:
?0011:
; 149.	   SetPenColor(Color_WHITE_def);
	CALL	LWRD ?0035
; 150.	}
	JP	LWRD ?0002
?0029:
	CALL	LWRD ?SS_MOD_L02
	LD	(IX-56),E
	LD	(IX-55),D
	LD	HL,file_pos
	ADD	HL,DE
	LD	A,(HL)
	RET
?0031:
	LD	C,13
	LD	DE,121
?0030:
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0032:
	LD	HL,file_pos
	LD	C,(IX-56)
	LD	B,(IX-55)
?0033:
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,254
	LD	C,A
	LD	E,32
	JP	LWRD SetTextPos
?0034:
	EX	DE,HL
	LD	A,BYTE3 read_idm_data_filelist
	LD	HL,LWRD read_idm_data_filelist
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0035:
	LD	BC,0
	LD	DE,65535
	JP	LWRD SetPenColor
show_delete_menu:
; 151.	
; 152.	////////////////////////
; 153.	
; 154.	////////////显示删除确认菜单
; 155.	int show_delete_menu(BYTE string_id)
; 156.	{
	PUSH	BC
	PUSH	IX
	PUSH	DE
	LD	HL,65526
	ADD	HL,SP
	LD	SP,HL
; 157.	    int result;
; 158.	    pop_up_list_t list;
; 159.	    list.strid = delete_text;
	LD	(HL),LOW(delete_text)
	INC	HL
	LD	(HL),HIGH(delete_text)
; 160.	    list.total = 2;
	INC	HL
	LD	(HL),2
	INC	HL
	LD	(HL),0
; 161.	    list.active = 0;
	INC	HL
	XOR	A
	LD	(HL),A
	INC	HL
	LD	(HL),A
; 162.	    list.string_id =string_id;
	INC	HL
	INC	HL
	INC	HL
	PUSH	HL
	LD	B,E
	POP	HL
	LD	(HL),B
; 163.	    list.headid = CDELFILE;
	LD	HL,6
	ADD	HL,SP
	LD	(HL),19
	INC	HL
	LD	(HL),1
; 164.	    result= ui_popup_list(&list, NULL);
	LD	C,A
	PUSH	BC
	LD	L,C
	LD	H,C
	PUSH	HL
	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
; 165.	    if((result==0)&&(list.active==0))
	LD	A,L
	OR	H
	JR	NZ,?0020
	LD	HL,4
	ADD	HL,SP
	LD	A,(HL)
	INC	HL
	LD	H,(HL)
	OR	H
	JR	NZ,?0020
?0022:
?0021:
?0019:
; 166.	    {
; 167.	     result=RESULT_IGNORE;
	LD	IX,52
?0020:
; 168.	    }
; 169.	    return result;
	PUSH	IX
	POP	HL
; 170.	}
	EX	DE,HL
	LD	HL,12
	ADD	HL,SP
	LD	SP,HL
	EX	DE,HL
	POP	IX
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
	RSEG	CONST
delete_text:
	DEFW	280
	DEFW	279
	RSEG	IDM_COM_FSL_D
com_delname:
	DEFS	300
	END

⌨️ 快捷键说明

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