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

📄 ui_delete2.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 2 页
字号:
; 137.	            break;
?0036:
; 138.	
; 139.	        case AP_KEY_MODE | AP_KEY_UP:
; 140.	            //YES时按下MODE键的处理
; 141.	            {
; 142.	              bool result;
; 143.	              result=show_delete_menu(string_id);
	LD	E,(IX-2)
	LD	A,BYTE3 show_delete_menu
	LD	HL,LWRD show_delete_menu
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(IX-6),L
; 144.	              if(result==0)
	INC	L
	DEC	L
	JP	NZ,?0038
?0037:
; 145.	              {
; 146.	                fselGetByNO(name, filelist_active+1); //through file no get the name
	PUSH	IY
	POP	BC
	INC	BC
	LD	HL,10
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 fselGetByNO
	LD	HL,LWRD fselGetByNO
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 147.	                    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:
; 148.	                    {
; 149.	                      ResShowPic(SSBCK,0,0);
	LD	C,0
	PUSH	BC
	LD	DE,254
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 150.	                      ///-SetTextOutMode(1);       //设字体透明
; 151.	                      SetBackgdColor(0x0000df1c);
	LD	BC,0
	LD	DE,57116
	CALL	LWRD SetBackgdColor
; 152.	                      SetPenColor(Color_BLACK_def);
	LD	BC,0
	LD	E,C
	LD	D,B
	CALL	LWRD SetPenColor
; 153.	                      ResShowMultiString(CDELING,string_id, 255, 100);
	LD	C,100
	PUSH	BC
	LD	C,255
	PUSH	BC
	LD	C,(IX-2)
	LD	DE,506
	LD	A,BYTE3 ResShowMultiString
	LD	HL,LWRD ResShowMultiString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 154.	                      SetBackgdColor(Color_MENU_def);
	LD	BC,0
	LD	DE,65535
	CALL	LWRD SetBackgdColor
; 155.	                      ///-SetTextOutMode(0);
; 156.	                      fselGetLocation(location);
	CALL	LWRD ?0093
; 157.	                      filetotal=filetotal-1;
	LD	HL,8
	ADD	HL,SP
	LD	A,(HL)
	ADD	A,255
	LD	(HL),A
	INC	HL
	LD	A,(HL)
	ADC	A,255
	LD	(HL),A
; 158.	                      if(filetotal==0)
	LD	A,(IX-22)
	OR	(IX-21)
	JR	Z,?0087
?0041:
; 159.	                         return RESULT_NULL;
?0042:
; 160.	                      if(filelist_active!=0)
	PUSH	IY
	POP	HL
	LD	A,L
	OR	H
	JR	Z,?0044
?0043:
; 161.	                        filelist_active=filelist_active-1;
	DEC	IY
?0044:
?0040:
; 162.	                    }
; 163.	                    result=RESULT_IGNORE;
	LD	(IX-6),52
?0038:
; 164.	              }
; 165.	
; 166.	              if(result==RESULT_IGNORE)
	LD	A,(IX-6)
	CP	52
	JR	NZ,?0046
?0045:
; 167.	               {
; 168.	                     cur_grouplist=filelist_active/6;
	LD	BC,6
	PUSH	IY
	POP	DE
	CALL	LWRD ?0095
; 169.	                     top=cur_grouplist*6; //顶的序号
; 170.	                     bottom=top+5;
	LD	BC,5
	ADD	HL,BC
	LD	(IX-24),L
	LD	(IX-23),H
; 171.	                    if(bottom>filetotal-1)
	LD	L,(IX-22)
	LD	H,(IX-21)
	DEC	HL
	LD	C,(IX-24)
	LD	B,(IX-23)
	OR	128
	SBC	HL,BC
	JP	PO,?0083
	XOR	H
?0083:
	JP	P,?0048
?0047:
; 172.	                     bottom=filetotal-1;
	LD	L,(IX-22)
	LD	H,(IX-21)
	DEC	HL
	LD	(IX-24),L
	LD	(IX-23),H
?0048:
; 173.	                    reinit_idm_buf_filelist(top, bottom, string_id);       //换页要重新初始化IDM数据
	LD	L,(IX-2)
	PUSH	HL
	CALL	LWRD ?0098
	POP	HL
; 174.	                    ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
	LD	L,(IX-2)
	PUSH	HL
	PUSH	IY
	PUSH	IY
	CALL	LWRD ?0096
	POP	HL
	POP	HL
	POP	HL
?0050:
; 175.	                    while(ap_get_message()!=0) {;}      //丢掉多余按键                 
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0050
?0051:
?0049:
; 176.	                    ap_message_init(NULL); 
	JP	LWRD ?0088
; 177.	                    break;
?0046:
; 178.	              }
; 179.	            else
; 180.	             return result;
	LD	L,A
	LD	H,0
; 181.	            break;
	JR	?0065
?0052:
; 182.	
; 183.	         }
; 184.	        case AP_MSG_WAIT_TIMEOUT:
; 185.	                if (FSELGetLocation(location))
	CALL	LWRD ?0093
	INC	L
	DEC	L
	JR	Z,?0054
?0053:
; 186.	                    return RESULT_NULL;
?0087:
	LD	HL,0
; 187.	                else
	JR	?0065
?0054:
; 188.	                    return RESULT_IGNORE;
	LD	HL,52
; 189.	                break;
	JR	?0065
?0055:
; 190.	            //}
; 191.	        case AP_MSG_SD_OUT:
; 192.	            //如在游览SD卡,但SD卡又被拔出,就返回拔出信号
; 193.	            if (location->disk == 'H')
	LD	L,(IX-4)
	LD	H,(IX-3)
	LD	A,(HL)
	CP	72
	JP	NZ,?0008
?0056:
; 194.	            {
; 195.	                return RESULT_SD_OUT;
	LD	HL,54
; 196.	            }
	JR	?0065
?0057:
; 197.	            break;
?0058:
; 198.	
; 199.	        case AP_MSG_SD_IN:
; 200.	            break;
?0059:
; 201.	
; 202.	        default:
; 203.	            key=ap_handle_hotkey(key);
	LD	E,C
	CALL	LWRD ap_handle_hotkey
	LD	C,A
; 204.	            if(key == RESULT_REDRAW)
	LD	A,50
	XOR	C
	JR	NZ,?0061
?0060:
; 205.	            {
; 206.	              ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
	LD	L,(IX-2)
	PUSH	HL
	PUSH	IY
	PUSH	IY
	CALL	LWRD ?0096
	POP	HL
	POP	HL
	POP	HL
	JP	LWRD ?0008
?0061:
; 207.	            }
; 208.	            else if(key != 0)
	LD	A,C
	OR	A
	JP	Z,?0008
?0063:
; 209.	            {
; 210.	                FSELGetLocation(location);
	CALL	LWRD ?0093
; 211.	                return key;
	LD	L,C
	LD	H,B
; 212.	            }
?0065:
	LD	SP,IX
	POP	IX
	POP	IY
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0093:
	LD	E,(IX-4)
	LD	D,(IX-3)
	LD	A,BYTE3 fselGetLocation
	LD	HL,LWRD fselGetLocation
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0094:
	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-26),L
	LD	(IX-25),H
	LD	BC,5
	ADD	HL,BC
	LD	(IX-24),L
	LD	(IX-23),H
	RET
?0095:
	CALL	LWRD ?SS_DIV_L02
	LD	(IX-28),E
	LD	(IX-27),D
	EX	DE,HL
	ADD	HL,HL
	LD	C,L
	LD	B,H
	ADD	HL,HL
	ADD	HL,BC
	LD	(IX-26),L
	LD	(IX-25),H
	RET
?0096:
	LD	C,(IX-24)
	LD	B,(IX-23)
?0097:
	LD	E,(IX-26)
	LD	D,(IX-25)
	LD	A,BYTE3 ShowFilelist
	LD	HL,LWRD ShowFilelist
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0098:
	LD	C,(IX-24)
	LD	B,(IX-23)
?0099:
	LD	E,(IX-26)
	LD	D,(IX-25)
?0100:
	LD	A,BYTE3 reinit_idm_buf_filelist
	LD	HL,LWRD reinit_idm_buf_filelist
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0064:
?0062:
?0010:
; 213.	        } //switch()
; 214.	    }//  while(1)
; 215.	}
draw_del_dir:
; 216.	
; 217.	/********************************************************************************
; 218.	/* Description : draw the selector directory.
; 219.	*
; 220.	* Arguments  : location  :keep the file selector parament
; 221.	               string_id :display language type
; 222.	* Returns     :
; 223.	*
; 224.	* Notes       :
; 225.	*
; 226.	********************************************************************************/
; 227.	void draw_del_dir(file_location_t *location, BYTE string_id)
; 228.	{
	PUSH	IY
	PUSH	IX
	LD	IX,0
	ADD	IX,SP
	PUSH	BC
	LD	HL,65494
	ADD	HL,SP
	LD	SP,HL
	PUSH	DE
	POP	IY
; 229.	    char Longnamebuf_del[31];
; 230.	    char buf[5];
; 231.	    BYTE NameNum,Cardflag=0;
; 232.	
; 233.	    DC  oldDC_sav;
; 234.	    GetDCStatus(&oldDC_sav);
	EX	DE,HL
	CALL	LWRD GetDCStatus
; 235.	    
; 236.	
; 237.	    ResShowPic(SSBCK,0,0);
	LD	E,0
	PUSH	DE
	LD	C,E
	LD	DE,254
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 238.	    SetPenColor(Color_BLACK_def);
	LD	BC,0
	LD	E,C
	LD	D,B
	CALL	LWRD SetPenColor
; 239.	    ///-SetTextOutMode(1);       //设字体透明
; 240.	    SetBackgdColor(0x0000df1c);
	LD	BC,0
	LD	DE,57116
	CALL	LWRD SetBackgdColor
; 241.	    ResShowMultiString(CDELALL,string_id, 255, 100);
	LD	C,100
	PUSH	BC
	LD	C,255
	PUSH	BC
	LD	C,(IX-2)
	LD	DE,575
	LD	A,BYTE3 ResShowMultiString
	LD	HL,LWRD ResShowMultiString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 242.	    SetBackgdColor(Color_MENU_def);
	LD	BC,0
	LD	DE,65535
	CALL	LWRD SetBackgdColor
; 243.	    ///-SetTextOutMode(0);
; 244.	    ResShowPic(DELNO,56,32);
	LD	C,32
	PUSH	BC
	LD	C,56
	LD	DE,1
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 245.	
; 246.	
; 247.	    if(location->disk == 'H');//Cardflag=DIRROOT-DIRCARD;
?0066:
?0067:
; 248.	    else if(location->disk != 'C')ASSERT(FALSE);
?0069:
?0070:
?0068:
; 249.	    if(location->path[0] == ':')                            //根目录显示
	LD	A,(IY+14)
	CP	58
	JR	Z,?0076
?0071:
; 250.	    {
; 251.	    }
; 252.	    else                                                //子目录显示,会获取子目录的长名
?0072:
; 253.	    {
; 254.	
; 255.	        memset(Longnamebuf_del,0x00,31);
	LD	BC,31
	LD	HL,10
	ADD	HL,SP
	EX	DE,HL
	LD	L,B
	CALL	LWRD ?MEMSET_L11
; 256.	        memcpy(Longnamebuf_del,location->path,11);
	LD	HL,10
	ADD	HL,SP
	EX	DE,HL
	LD	HL,14
	PUSH	IY
	POP	BC
	ADD	HL,BC
	LD	BC,11
	LDIR
; 257.	        NameNum=FS_GetName(Longnamebuf_del,14);
	LD	C,14
	LD	HL,10
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD FS_GetName
; 258.	        if(NameNum!=0)
	OR	A
	JR	NZ,?0076
?0074:
; 259.	        {
; 260.	        }
; 261.	        else
?0075:
; 262.	        {
; 263.	            FS_CD("\\");
	LD	DE,?0077
	CALL	LWRD FS_CD
; 264.	            FS_SetCurDir(location->ClusterNo);
	LD	C,(IY+11)
	LD	B,(IY+12)
	LD	E,(IY+9)
	LD	D,(IY+10)
	CALL	LWRD FS_SetCurDir
?0076:
?0073:
; 265.	        }
; 266.	    }
; 267.	    FS_CD(location->path);                            //CD到删除所在目录
	LD	HL,14
	PUSH	IY
	POP	BC
	ADD	HL,BC
	EX	DE,HL
	CALL	LWRD FS_CD
; 268.	
; 269.	
; 270.	//    SetAsciiFont(FONT_TYPE_SMALL);
; 271.	    SetPenColor(oldDC_sav.PenColor);
	LD	C,(IX-42)
	LD	B,(IX-41)
	LD	E,(IX-44)
	LD	D,(IX-43)
	CALL	LWRD SetPenColor
; 272.	    SetBackgdColor(oldDC_sav.BackgdColor);
	LD	HL,4
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	INC	HL
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	CALL	LWRD SetBackgdColor
; 273.	}
	JP	LWRD ?0065
	RSEG	CSTR
?0077:
	DEFB	92,0
	END

⌨️ 快捷键说明

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