📄 ui_delete.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 16:58:52 #
# 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_amv\list\ui_delete.lst #
# Object file = d:\case_i_d90f\ap\ap_amv\obj\ui_delete.r01 #
# ASM file = d:\case_i_d90f\ap\ap_amv\list\ui_delete.s01 #
# Command line = -v0 -mb -OD:\case_i_d90f\ap\ap_amv\Obj\ -e -K -w #
# -gA -s9 -RCODE -r0 -DNAPDEBUG -DAMV_JPG_TXT #
# -LD:\case_i_d90f\ap\ap_amv\List\ -q -t8 #
# -AD:\case_i_d90f\ap\ap_amv\List\ #
# -ND:\case_i_d90f\ap\ap_amv\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_FAST_LEAVE_L08
\ 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 FDE5 PUSH IY
\ 0002 DDE5 PUSH IX
\ 0004 DD210000 LD IX,0
\ 0008 DD39 ADD IX,SP
\ 000A C5 PUSH BC
\ 000B F5 PUSH AF
\ 000C F5 PUSH AF
\ 000D F5 PUSH AF
\ 000E F5 PUSH AF
\ 000F D5 PUSH DE
\ 0010 FDE1 POP IY
33 BOOL need_draw=TRUE;
34 BYTE delflag;
35 BYTE i, playlistclassbak;
36
37 char key;
38 if ( !fselSetLocation(location) )
\ 0012 3E00 LD A,BYTE3 fselSetLocation
\ 0014 210000 LD HL,LWRD fselSetLocation
\ 0017 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 001A 2C INC L
\ 001B 2D DEC L
\ 001C CA1F01 JP Z,?0048
\ 001F ?0002:
39 return RESULT_IGNORE;
\ 001F ?0003:
40 need_draw = TRUE;
41 delflag = 0;
42 ap_message_init(NULL);
\ 001F 110000 LD DE,0
\ 0022 3E00 LD A,BYTE3 ap_message_init
\ 0024 210000 LD HL,LWRD ap_message_init
\ 0027 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 002A DD36F601 LD (IX-10),1
\ 002E ?0050:
\ 002E DD36F700 LD (IX-9),0
\ 0032 ?0005:
43 while(1)
44 {
45 //show ui
46 if(need_draw)
\ 0032 AF XOR A
\ 0033 DDB6F6 OR (IX-10)
\ 0036 282A JR Z,?0008
\ 0038 ?0007:
47 {
48 if(type==DELETE_FILE)
\ 0038 AF XOR A
\ 0039 DDB6FE OR (IX-2)
\ 003C C21F01 JP NZ,?0048
\ 003F ?0009:
49 {
50 int result;
51 result=draw_del_file(location, string_id); //删除单个文件的显示
\ 003F DD4E08 LD C,(IX+8)
\ 0042 FDE5 PUSH IY
\ 0044 D1 POP DE
\ 0045 3E00 LD A,BYTE3 draw_del_file
\ 0047 210000 LD HL,LWRD draw_del_file
\ 004A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 004D DD75FB LD (IX-5),L
\ 0050 DD74FC LD (IX-4),H
\ 0053 ?0012:
52 while( (key = ap_get_message())!=NULL ); //获取消息
\ 0053 CD0000 CALL LWRD ap_get_message
\ 0056 B7 OR A
\ 0057 20FA JR NZ,?0012
\ 0059 ?0013:
\ 0059 ?0011:
53 return result;
\ 0059 DD6EFB LD L,(IX-5)
\ 005C DD66FC LD H,(IX-4)
54 }
\ 005F C34C01 JP LWRD ?0042
\ 0062 ?0010:
55 else
56 {
57 return RESULT_IGNORE; //其它情况,忽略并退出函数
58 }
59 need_draw=FALSE;
\ 0062 ?0008:
60 }
61
62 //handle msg
63 key = ap_get_message(); //获取消息
\ 0062 CD0000 CALL LWRD ap_get_message
64 switch(key)
\ 0065 5F LD E,A
\ 0066 CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 0069 0900 DEFW 9
\ 006B 05 DEFB 5
\ 006C 06 DEFB 6
\ 006D 1E DEFB 30
\ 006E 21 DEFB 33
\ 006F 30 DEFB 48
\ 0070 37 DEFB 55
\ 0071 38 DEFB 56
\ 0072 45 DEFB 69
\ 0073 46 DEFB 70
\ 0074 3101 DEFW ?0036
\ 0076 8800 DEFW ?0015
\ 0078 8800 DEFW ?0015
\ 007A 3200 DEFW ?0005
\ 007C 2401 DEFW ?0032
\ 007E B400 DEFW ?0019
\ 0080 1F01 DEFW ?0048
\ 0082 1801 DEFW ?0028
\ 0084 8800 DEFW ?0015
\ 0086 8800 DEFW ?0015
\ 0088 ?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)
\ 0088 AF XOR A
\ 0089 DDB6F7 OR (IX-9)
\ 008C 0E3C LD C,60
\ 008E C5 PUSH BC
\ 008F 0E4E LD C,78
\ 0091 2012 JR NZ,?0017
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -