📄 ui_delete4.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 16:59:01 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\common\ui_delete4.c #
# List file = d:\case_i_d90f\ap\ap_amv\list\ui_delete4.lst #
# Object file = d:\case_i_d90f\ap\ap_amv\obj\ui_delete4.r01 #
# ASM file = d:\case_i_d90f\ap\ap_amv\list\ui_delete4.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_delete4.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_delete4(17)
\ 0000 RSEG DEL_ALL(0)
\ 0000 RSEG CSTR(0)
\ 0000 RSEG CONST(0)
\ 0000 EXTERN FS_CD
\ 0000 EXTERN FS_Dir
\ 0000 EXTERN FS_FRemove
\ 0000 EXTERN ResShowMultiString
\ 0000 EXTERN ResShowPic
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN SetTextOutMode
\ 0000 PUBLIC SetToRoot
\ 0000 PUBLIC amv_ext
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 EXTERN ap_message_init
\ 0000 PUBLIC del_amv_files
\ 0000 PUBLIC del_music_files
\ 0000 PUBLIC del_pic_files
\ 0000 PUBLIC del_txt_files
\ 0000 PUBLIC del_voice_files
\ 0000 EXTERN draw_del_dir
\ 0000 EXTERN fselDirLayer
\ 0000 EXTERN fselDirNo
\ 0000 EXTERN fselFileNo
\ 0000 EXTERN fselGetLocation
\ 0000 EXTERN fselGetLocationC
\ 0000 EXTERN fselGetNext
\ 0000 EXTERN fselGetTotal
\ 0000 EXTERN fselSetLocation
\ 0000 EXTERN music_ext
\ 0000 PUBLIC pic_ext
\ 0000 EXTERN show_del_fail
\ 0000 PUBLIC txt_ext
\ 0000 EXTERN ui_auto_select
\ 0000 PUBLIC ui_delete_all
\ 0000 EXTERN voice_ext
\ 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 DEL_ALL
\ 0000 SetToRoot:
1 #include "ap_common.h"
2 #include "enhanced.h"
3
4 #ifndef AMV_JPG_TXT
5 #define AMV_JPG_TXT
6 #endif
7
8 #pragma codeseg(DEL_ALL)
9
10 #ifdef AMV_JPG_TXT
11 const char amv_ext[][4] = {"AMV"};
12 const char pic_ext[][4] = {"JPG","BMP","GIF"};
13 const char txt_ext[][4] = {"TXT"};
14
15 #endif
16 extern WORD fselFileNo;
17 extern BYTE fselDirNo[8]; //Number of current valid directory
18 extern BYTE fselDirLayer;
19 extern void show_del_fail(BYTE langid);
20 extern int draw_del_file(file_location_t *location, BYTE string_id);
21 extern void draw_del_dir(file_location_t *location, BYTE string_id);
22
23 void SetToRoot(file_location_t *location)
24 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
\ 0002 F5 PUSH AF
25 BYTE i;
26 for(i=0; i<8; i++)
\ 0003 210000 LD HL,0
\ 0006 39 ADD HL,SP
\ 0007 3600 LD (HL),0
\ 0009 ?0003:
\ 0009 7E LD A,(HL)
\ 000A FE08 CP 8
\ 000C 300E JR NC,?0002
\ 000E ?0004:
27 fselDirNo[i] = 0;
\ 000E 4F LD C,A
\ 000F 0600 LD B,0
\ 0011 210000 LD HL,fselDirNo
\ 0014 09 ADD HL,BC
\ 0015 70 LD (HL),B
\ 0016 68 LD L,B
\ 0017 60 LD H,B
\ 0018 39 ADD HL,SP
\ 0019 34 INC (HL)
\ 001A 18ED JR ?0003
\ 001C ?0002:
28 FS_CD(":");
\ 001C 110000 LD DE,?0006
\ 001F CD0000 CALL LWRD FS_CD
29 fselDirLayer = 0;
\ 0022 AF XOR A
\ 0023 320000 LD (fselDirLayer),A
30 }
\ 0026 E1 POP HL
\ 0027 E1 POP HL
\ 0028 C1 POP BC
\ 0029 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 002C del_music_files:
31
32 BOOL del_music_files(file_location_t *location)
33 {
\ 002C C5 PUSH BC
\ 002D DDE5 PUSH IX
\ 002F 21F2FF LD HL,65522
\ 0032 39 ADD HL,SP
\ 0033 F9 LD SP,HL
34 char DelStrname[12];
35 BYTE i;
36 SetToRoot(location);
\ 0034 CD9700 CALL LWRD ?0163
\ 0037 ?0008:
37 while(1)
38 {
39 output8(0x4e,input8(0x4e)|0x08); //清WATCH DOG
40 fselGetLocation(location);
\ 0037 CDA200 CALL LWRD ?0164
41 fselGetNext(location->filename);
42 if(FSELGetTotal()==0)
\ 003A CDC100 CALL LWRD ?0165
\ 003D 7D LD A,L
\ 003E B4 OR H
\ 003F 2004 JR NZ,?0011
\ 0041 ?0010:
43 return 1;
\ 0041 2E01 LD L,1
44 else
\ 0043 1845 JR ?0021
\ 0045 ?0011:
45 {
46
47 #ifdef __OGG_SUPPORT
48 for(i=0; i<6; i++) //6种后缀名(MP3、WMA、WMV、ASF,OGG,APE)的音乐文件循环删除
\ 0045 210000 LD HL,0
\ 0048 39 ADD HL,SP
\ 0049 3600 LD (HL),0
\ 004B ?0013:
\ 004B 7E LD A,(HL)
\ 004C FE06 CP 6
\ 004E 30E7 JR NC,?0008
\ 0050 ?0014:
\ 0050 ?0017:
49 {
50 while(FS_Dir(DelStrname, music_ext[i], FS_DIR_FILE))
\ 0050 0E80 LD C,128
\ 0052 C5 PUSH BC
\ 0053 210200 LD HL,2
\ 0056 39 ADD HL,SP
\ 0057 6E LD L,(HL)
\ 0058 2600 LD H,0
\ 005A 29 ADD HL,HL
\ 005B 29 ADD HL,HL
\ 005C 010000 LD BC,music_ext
\ 005F 09 ADD HL,BC
\ 0060 4D LD C,L
\ 0061 44 LD B,H
\ 0062 210400 LD HL,4
\ 0065 39 ADD HL,SP
\ 0066 EB EX DE,HL
\ 0067 CD0000 CALL LWRD FS_Dir
\ 006A E1 POP HL
\ 006B B7 OR A
\ 006C 2816 JR Z,?0016
\ 006E ?0018:
51 {
52 if(!FS_FRemove(DelStrname))
\ 006E 210200 LD HL,2
\ 0071 39 ADD HL,SP
\ 0072 EB EX DE,HL
\ 0073 CD0000 CALL LWRD FS_FRemove
\ 0076 B7 OR A
\ 0077 2003 JR NZ,?0020
\ 0079 ?0019:
53 {
54 return FALSE;
\ 0079 6F LD L,A
55 }
\ 007A 180E JR ?0021
\ 007C ?0020:
56 output8(0x4e,input8(0x4e)|0x08); //清WATCH DOG
\ 007C DB4E IN A,(78)
\ 007E CBDF SET 3,A
\ 0080 D34E OUT (78),A
57 }
58 }
\ 0082 18CC JR ?0014
\ 0084 ?0016:
\ 0084 6F LD L,A
\ 0085 67 LD H,A
\ 0086 39 ADD HL,SP
\ 0087 34 INC (HL)
59 #endif
60
61 #ifndef __OGG_SUPPORT
62 for(i=0; i<5; i++) //5趾笞好
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -