📄 ui_delete.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 17:00:29 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\common\ui_delete.c #
# List file = d:\case_i_d90f\ap\ap_music\list\ui_delete.lst #
# Object file = d:\case_i_d90f\ap\ap_music\obj\ui_delete.r01 #
# ASM file = d:\case_i_d90f\ap\ap_music\list\ui_delete.s01 #
# Command line = -v0 -mb -OD:\case_i_d90f\ap\ap_music\Obj\ -e -K -w #
# -gA -z9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d90f\ap\ap_music\List\ -q -t8 #
# -AD:\case_i_d90f\ap\ap_music\List\ #
# -ND:\case_i_d90f\ap\ap_music\List\ -X #
# -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\ #
# d:\case_i_d90f\AP\COMMON\ui_delete.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_delete(17)
\ 0000 RSEG COM_CTRL(0)
\ 0000 EXTERN ResShowMultiString
\ 0000 EXTERN ResShowPic
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN SetTextOutMode
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 EXTERN ap_message_init
\ 0000 EXTERN draw_del_file
\ 0000 EXTERN fselDelFile
\ 0000 EXTERN fselGetLocation
\ 0000 EXTERN fselSetLocation
\ 0000 EXTERN ui_auto_select
\ 0000 PUBLIC ui_delete
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?C_V_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_LEAVE_DIRECT_L08
\ 0000 EXTERN ?ENT_AUTO_DIRECT_L09
\ 0000 RSEG COM_CTRL
\ 0000 ui_delete:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * ap common lib, file/folder delete control file
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 *******************************************************************************
10 */
11 #pragma codeseg(COM_CTRL)
12
13 #include "ap_common.h"
14 extern WORD fselFileNo;
15 extern BYTE fselDirLayer;
16 extern void show_del_fail(BYTE langid);
17 extern int draw_del_file(file_location_t *location, BYTE string_id);
18 extern void draw_del_dir(file_location_t *location, BYTE string_id);
19 /********************************************************************************
20 * Description : delete the files of the selector directory.
21 *
22 * Arguments : location :keep the file selector parament
23 string_id :display language type
24 type: the kind of the files
25 * Returns :
26 * other: Successful
27 * 0: Fail, detail information in fselError
28 * Notes :
29 *
30 ********************************************************************************/
31 int ui_delete(file_location_t *location, BYTE type,BYTE string_id)
32 {
\ 0000 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0003 F8FF DEFW 65528
\ 0005 FDE5 PUSH IY
33 BOOL need_draw=TRUE;
34 BYTE delflag;
35 BYTE i, playlistclassbak;
36
37 char key;
38 if ( !fselSetLocation(location) )
\ 0007 DD5E02 LD E,(IX+2)
\ 000A DD5603 LD D,(IX+3)
\ 000D 3E00 LD A,BYTE3 fselSetLocation
\ 000F 210000 LD HL,LWRD fselSetLocation
\ 0012 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0015 2C INC L
\ 0016 2D DEC L
\ 0017 283F JR Z,?0010
\ 0019 ?0002:
39 return RESULT_IGNORE;
\ 0019 ?0003:
40 need_draw = TRUE;
41 delflag = 0;
42 ap_message_init(NULL);
\ 0019 110000 LD DE,0
\ 001C 3E00 LD A,BYTE3 ap_message_init
\ 001E 210000 LD HL,LWRD ap_message_init
\ 0021 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0024 DD36F801 LD (IX-8),1
\ 0028 ?0050:
\ 0028 DD36F900 LD (IX-7),0
\ 002C ?0005:
43 while(1)
44 {
45 //show ui
46 if(need_draw)
\ 002C AF XOR A
\ 002D DDB6F8 OR (IX-8)
\ 0030 2829 JR Z,?0008
\ 0032 ?0007:
47 {
48 if(type==DELETE_FILE)
\ 0032 AF XOR A
\ 0033 DDB604 OR (IX+4)
\ 0036 2020 JR NZ,?0010
\ 0038 ?0009:
49 {
50 int result;
51 result=draw_del_file(location, string_id); //删除单个文件的显示
\ 0038 DD4E0A LD C,(IX+10)
\ 003B DD5E02 LD E,(IX+2)
\ 003E DD5603 LD D,(IX+3)
\ 0041 3E00 LD A,BYTE3 draw_del_file
\ 0043 210000 LD HL,LWRD draw_del_file
\ 0046 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0049 E5 PUSH HL
\ 004A FDE1 POP IY
\ 004C ?0012:
52 while( (key = ap_get_message())!=NULL ); //获取消息
\ 004C CD0000 CALL LWRD ap_get_message
\ 004F B7 OR A
\ 0050 20FA JR NZ,?0012
\ 0052 ?0013:
\ 0052 ?0011:
53 return result;
\ 0052 FDE5 PUSH IY
\ 0054 E1 POP HL
54 }
\ 0055 C33801 JP LWRD ?0042
\ 0058 ?0010:
55 else
56 {
57 return RESULT_IGNORE; //其它情况,忽略并退出函数
\ 0058 C30A01 JP LWRD ?0048
58 }
59 need_draw=FALSE;
\ 005B ?0008:
60 }
61
62 //handle msg
63 key = ap_get_message(); //获取消息
\ 005B CD0000 CALL LWRD ap_get_message
64 switch(key)
\ 005E 5F LD E,A
\ 005F CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 0062 0900 DEFW 9
\ 0064 05 DEFB 5
\ 0065 06 DEFB 6
\ 0066 1E DEFB 30
\ 0067 21 DEFB 33
\ 0068 30 DEFB 48
\ 0069 37 DEFB 55
\ 006A 38 DEFB 56
\ 006B 45 DEFB 69
\ 006C 46 DEFB 70
\ 006D 1F01 DEFW ?0036
\ 006F 8100 DEFW ?0015
\ 0071 8100 DEFW ?0015
\ 0073 2C00 DEFW ?0005
\ 0075 0F01 DEFW ?0032
\ 0077 A200 DEFW ?0019
\ 0079 0A01 DEFW ?0048
\ 007B 0401 DEFW ?0028
\ 007D 8100 DEFW ?0015
\ 007F 8100 DEFW ?0015
\ 0081 ?0015:
65 {
66 case AP_KEY_NEXT: //YES和NO之间切换
67 case AP_KEY_PREV:
68 case AP_KEY_NEXT | AP_KEY_HOLD:
69 case AP_KEY_PREV | AP_KEY_HOLD:
70 if(delflag==0)
\ 0081 AF XOR A
\ 0082 DDB6F9 OR (IX-7)
\ 0085 0E3C LD C,60
\ 0087 C5 PUSH BC
\ 0088 0E4E LD C,78
\ 008A 200D JR NZ,?0017
\ 008C ?0016:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -