📄 ui_delete2.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 16:58:53 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\common\ui_delete2.c #
# List file = d:\case_i_d90f\ap\ap_amv\list\ui_delete2.lst #
# Object file = d:\case_i_d90f\ap\ap_amv\obj\ui_delete2.r01 #
# ASM file = d:\case_i_d90f\ap\ap_amv\list\ui_delete2.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_delete2.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_delete2(17)
\ 0000 RSEG COM_CTRL(0)
\ 0000 RSEG CSTR(0)
\ 0000 EXTERN FS_CD
\ 0000 EXTERN FS_GetName
\ 0000 EXTERN FS_SetCurDir
\ 0000 EXTERN GetDCStatus
\ 0000 EXTERN ResShowMultiString
\ 0000 EXTERN ResShowPic
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN SetTextOutMode
\ 0000 EXTERN ShowFilelist
\ 0000 EXTERN UpdateScreen
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 EXTERN ap_message_init
\ 0000 EXTERN ap_sleep
\ 0000 PUBLIC draw_del_dir
\ 0000 PUBLIC draw_del_file
\ 0000 EXTERN fselDelFile
\ 0000 EXTERN fselGetByNO
\ 0000 EXTERN fselGetLocation
\ 0000 EXTERN fselGetNo
\ 0000 EXTERN fselGetTotal
\ 0000 EXTERN fselSetLocation
\ 0000 EXTERN reinit_idm_buf_filelist
\ 0000 PUBLIC show_del_fail
\ 0000 EXTERN show_delete_menu
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?SS_DIV_L02
\ 0000 EXTERN ?S_V_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 EXTERN ?MEMSET_L11
\ 0000 RSEG COM_CTRL
\ 0000 show_del_fail:
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 #include "enhanced.h"
15 void show_del_fail(BYTE langid);
16 int draw_del_file(file_location_t *location, BYTE string_id);
17 void draw_del_dir(file_location_t *location, BYTE string_id);
18 void reinit_idm_buf_filelist(int top, int bottom,BYTE string_id);
19 void ShowFilelist(int top,int bottom,int Old_active,int active,BYTE string_id);
20 int show_delete_menu(BYTE string_id);
21
22
23 void show_del_fail(BYTE langid)
24 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
25 ResShowMultiString(CDELFAIL,langid,16,32); //删除失败界面显示
\ 0002 0E20 LD C,32
\ 0004 C5 PUSH BC
\ 0005 0E10 LD C,16
\ 0007 C5 PUSH BC
\ 0008 4B LD C,E
\ 0009 111601 LD DE,278
\ 000C 3E00 LD A,BYTE3 ResShowMultiString
\ 000E 210000 LD HL,LWRD ResShowMultiString
\ 0011 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0014 F1 POP AF
\ 0015 F1 POP AF
26 UpdateScreen(NULL);
\ 0016 110000 LD DE,0
\ 0019 CD0000 CALL LWRD UpdateScreen
27 ap_sleep(4);
\ 001C 110400 LD DE,4
\ 001F 3E00 LD A,BYTE3 ap_sleep
\ 0021 210000 LD HL,LWRD ap_sleep
\ 0024 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
28 }
\ 0027 E1 POP HL
\ 0028 C1 POP BC
\ 0029 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 002C draw_del_file:
29
30 /********************************************************************************
31 * Description : draw the selector file of the selector directory.
32 *
33 * Arguments : location :keep the file selector parament
34 string_id :display language type
35 * Returns :
36 * other: Successful
37 * 0: Fail, detail information in fselError
38 * Notes :
39 *
40 ********************************************************************************/
41 int draw_del_file(file_location_t *location, BYTE string_id)
42 {
\ 002C FDE5 PUSH IY
\ 002E DDE5 PUSH IX
\ 0030 DD210000 LD IX,0
\ 0034 DD39 ADD IX,SP
\ 0036 C5 PUSH BC
\ 0037 D5 PUSH DE
\ 0038 21E6FF LD HL,65510
\ 003B 39 ADD HL,SP
\ 003C F9 LD SP,HL
43 int filelist_active,cur_grouplist; //目录总数,文件总数和浏览项数,浏览活动项
44 int top, bottom,filetotal;
45 char name[12];
46 int key;
47 filelist_active= FSELGetNo()-1;
\ 003D 3E00 LD A,BYTE3 fselGetNo
\ 003F 210000 LD HL,LWRD fselGetNo
\ 0042 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0045 01FFFF LD BC,65535
\ 0048 09 ADD HL,BC
\ 0049 E5 PUSH HL
\ 004A FDE1 POP IY
48
49 cur_grouplist=filelist_active/6;
\ 004C 010600 LD BC,6
\ 004F EB EX DE,HL
\ 0050 CDA403 CALL LWRD ?0092
50 top=cur_grouplist*6; //顶的序号
51
52 filetotal=fselGetTotal();
\ 0053 3E00 LD A,BYTE3 fselGetTotal
\ 0055 210000 LD HL,LWRD fselGetTotal
\ 0058 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 005B DD75EA LD (IX-22),L
\ 005E DD74EB LD (IX-21),H
53 bottom=top+5;
\ 0061 210500 LD HL,5
\ 0064 DD4EE6 LD C,(IX-26)
\ 0067 DD46E7 LD B,(IX-25)
\ 006A 09 ADD HL,BC
\ 006B DD75E8 LD (IX-24),L
\ 006E DD74E9 LD (IX-23),H
54 if(bottom>filetotal-1)
\ 0071 DD6EEA LD L,(IX-22)
\ 0074 DD66EB LD H,(IX-21)
\ 0077 2B DEC HL
\ 0078 DD4EE8 LD C,(IX-24)
\ 007B DD46E9 LD B,(IX-23)
\ 007E F680 OR 128
\ 0080 ED42 SBC HL,BC
\ 0082 E28600 JP PO,?0075
\ 0085 AC XOR H
\ 0086 ?0075:
\ 0086 F29600 JP P,?0003
\ 0089 ?0002:
55 bottom=filetotal-1;
\ 0089 DD6EEA LD L,(IX-22)
\ 008C DD66EB LD H,(IX-21)
\ 008F 2B DEC HL
\ 0090 DD75E8 LD (IX-24),L
\ 0093 DD74E9 LD (IX-23),H
\ 0096 ?0003:
56 reinit_idm_buf_filelist(top, bottom, string_id); //换页要重新初始化IDM数据
\ 0096 DD6EFE LD L,(IX-2)
\ 0099 E5 PUSH HL
\ 009A CDCE03 CALL LWRD ?0095
\ 009D E1 POP HL
57 ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
\ 009E DD6EFE LD L,(IX-2)
\ 00A1 E5 PUSH HL
\ 00A2 FDE5 PUSH IY
\ 00A4 FDE5 PUSH IY
\ 00A6 CDBA03 CALL LWRD ?0093
\ 00A9 E1 POP HL
\ 00AA E1 POP HL
\ 00AB E1 POP HL
\ 00AC ?0005:
58 while(ap_get_message()!=0) {;} //丢掉多余按键
\ 00AC CD0000 CALL LWRD ap_get_message
\ 00AF B7 OR A
\ 00B0 20FA JR NZ,?0005
\ 00B2 ?0006:
\ 00B2 ?0004:
59 ap_message_init(NULL);
\ 00B2 5F LD E,A
\ 00B3 57 LD D,A
\ 00B4 3E00 LD A,BYTE3 ap_message_init
\ 00B6 210000 LD HL,LWRD ap_message_init
\ 00B9 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00BC ?0008:
60 while(1)
61 {
62 //handle msg
63 key = ap_get_message();
\ 00BC CD0000 CALL LWRD ap_get_message
\ 00BF 4F LD C,A
\ 00C0 59 LD E,C
\ 00C1 0600 LD B,0
64 switch(key)
\ 00C3 50 LD D,B
\ 00C4 CD0000 CALL LWRD ?S_V_SWITCH_L06
\ 00C7 0900 DEFW 9
\ 00C9 0500 DEFW 5
\ 00CB 0600 DEFW 6
\ 00CD 1E00 DEFW 30
\ 00CF 2100 DEFW 33
\ 00D1 3000 DEFW 48
\ 00D3 3700 DEFW 55
\ 00D5 3800 DEFW 56
\ 00D7 4500 DEFW 69
\ 00D9 4600 DEFW 70
\ 00DB 4B03 DEFW ?0056
\ 00DD EF00 DEFW ?0011
\ 00DF A001 DEFW ?0025
\ 00E1 BC00 DEFW ?0008
\ 00E3 3A03 DEFW ?0052
\ 00E5 5702 DEFW ?0036
\ 00E7 4602 DEFW ?0035
\ 00E9 2903 DEFW ?0049
\ 00EB EF00 DEFW ?0011
\ 00ED A001 DEFW ?0025
\ 00EF ?0011:
65 {
66 case AP_KEY_NEXT:
67 case AP_KEY_NEXT | AP_KEY_HOLD:
68
69 if(filelist_active<filetotal -1 ) //当前项小于总列表数
\ 00EF DD4EEA LD C,(IX-22)
\ 00F2 DD46EB LD B,(IX-21)
\ 00F5 0B DEC BC
\ 00F6 FDE5 PUSH IY
\ 00F8 E1 POP HL
\ 00F9 F680 OR 128
\ 00FB ED42 SBC HL,BC
\ 00FD E20101 JP PO,?0076
\ 0100 AC XOR H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -