📄 ui_menu.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 21/Sep/107 12:38:30 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\common\ui_menu.c #
# List file = d:\case_i_d913f\ap\ap_fmrecord\list\ui_menu.lst #
# Object file = d:\case_i_d913f\ap\ap_fmrecord\obj\ui_menu.r01 #
# Command line = -v0 -mb -OD:\case_i_d913f\ap\ap_fmrecord\Obj\ -e #
# -K -w -gA -s9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d913f\ap\ap_fmrecord\List\ -q -t8 -X #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# d:\case_i_d913f\AP\COMMON\ui_menu.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_menu(17)
\ 0000 RSEG COM_CTRL(0)
\ 0000 RSEG CONST(0)
\ 0000 EXTERN ResShowMultiString
\ 0000 EXTERN ResShowPic
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN SetTextOutMode
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 PUBLIC menu_bck_pic
\ 0000 PUBLIC menu_pos_menu
\ 0000 PUBLIC show_active_menu
\ 0000 EXTERN ui_auto_select
\ 0000 PUBLIC ui_menu
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?SS_DIV_L02
\ 0000 EXTERN ?SS_MOD_L02
\ 0000 EXTERN ?C_V_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 RSEG COM_CTRL
\ 0000 show_active_menu:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * ap common lib file
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 * $Id: ui_menu.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
10 *******************************************************************************
11 */
12 #pragma codeseg(COM_CTRL)
13
14 #include "ap_common.h"
15 #define MENU_NUM_ONE_PAGE 6
16
17 extern comval_t g_comval;
18 const char menu_pos_menu[MENU_NUM_ONE_PAGE] = { POSITION_MENU6,POSITION_MENU5,
19 POSITION_MENU4,POSITION_MENU3,POSITION_MENU2,POSITION_MENU1};
20 const WORD menu_bck_pic[MENU_NUM_ONE_PAGE]={ MENUBCK1,MENUBCK1,MENUBCK1,MENUBCK1,MENUBCK1,MENUBCK1 };
21 /*
22 ********************************************************************************
23 * Description : 转换索引成字符串
24 *
25 * Arguments :
26 * grade, 索引字符串
27 * str, 转换后的字符串
28
29 * Returns :
30 * 字符串的个数
31 * Notes :
32 *
33 ********************************************************************************
34 */
35 void show_active_menu(function_menu_t *menu,int old_active, int active)
36 {
\ 0000 FDE5 PUSH IY
\ 0002 DDE5 PUSH IX
\ 0004 C5 PUSH BC
\ 0005 D5 PUSH DE
\ 0006 DDE1 POP IX
37 int tmp;
38
39 //清除旧的活动菜单项
40 tmp = old_active%MENU_NUM_ONE_PAGE;
\ 0008 010600 LD BC,6
\ 000B 68 LD L,B
\ 000C 60 LD H,B
\ 000D 39 ADD HL,SP
\ 000E 5E LD E,(HL)
\ 000F 23 INC HL
\ 0010 56 LD D,(HL)
\ 0011 CD0000 CALL LWRD ?SS_MOD_L02
41
42 ResShowPic(menu_bck_pic[tmp], menu_bck_x_def, menu_pos_menu[tmp]-4);
\ 0014 210000 LD HL,menu_pos_menu
\ 0017 19 ADD HL,DE
\ 0018 7E LD A,(HL)
\ 0019 C6FC ADD A,252
\ 001B 4F LD C,A
\ 001C C5 PUSH BC
\ 001D 0E09 LD C,9
\ 001F EB EX DE,HL
\ 0020 29 ADD HL,HL
\ 0021 110600 LD DE,menu_bck_pic
\ 0024 19 ADD HL,DE
\ 0025 5E LD E,(HL)
\ 0026 23 INC HL
\ 0027 56 LD D,(HL)
\ 0028 CDEA00 CALL LWRD ?0063
\ 002B F1 POP AF
43
44 //显示新的活动菜单
45 tmp = active%MENU_NUM_ONE_PAGE;
\ 002C 010600 LD BC,6
\ 002F 210A00 LD HL,10
\ 0032 39 ADD HL,SP
\ 0033 5E LD E,(HL)
\ 0034 23 INC HL
\ 0035 56 LD D,(HL)
\ 0036 CD0000 CALL LWRD ?SS_MOD_L02
\ 0039 D5 PUSH DE
\ 003A FDE1 POP IY
46 ResShowPic(MENUBCK, menu_bck_x_def, menu_pos_menu[tmp]-4);
\ 003C 210000 LD HL,menu_pos_menu
\ 003F 19 ADD HL,DE
\ 0040 7E LD A,(HL)
\ 0041 C6FC ADD A,252
\ 0043 4F LD C,A
\ 0044 C5 PUSH BC
\ 0045 CDE500 CALL LWRD ?0064
\ 0048 F1 POP AF
47 ///-ResShowPic(MENURARR, menu_ptr_x_def, menu_pos_menu[tmp]);
48 //ResShowPic(DHTHK,122, menu_pos_menu[tmp]-2);
49 ResShowPic(DHT,194,8);
\ 0049 0E08 LD C,8
\ 004B C5 PUSH BC
\ 004C 0EC2 LD C,194
\ 004E 112700 LD DE,39
\ 0051 CDEA00 CALL LWRD ?0063
\ 0054 F1 POP AF
50 ResShowPic(DHTHK,194, menu_pos_menu[tmp]+6);
\ 0055 210000 LD HL,menu_pos_menu
\ 0058 FDE5 PUSH IY
\ 005A C1 POP BC
\ 005B 09 ADD HL,BC
\ 005C 7E LD A,(HL)
\ 005D C606 ADD A,6
\ 005F 5F LD E,A
\ 0060 D5 PUSH DE
\ 0061 0EC2 LD C,194
\ 0063 112800 LD DE,40
\ 0066 CDEA00 CALL LWRD ?0063
\ 0069 F1 POP AF
51
52 SetPenColor(Color_WHITE_def);
\ 006A CDF200 CALL LWRD ?0065
53 ResShowMultiString(menu->title[active], menu->string_id, menu_str_x_def, menu_pos_menu[tmp]-3);
\ 006D 210000 LD HL,menu_pos_menu
\ 0070 FDE5 PUSH IY
\ 0072 C1 POP BC
\ 0073 09 ADD HL,BC
\ 0074 7E LD A,(HL)
\ 0075 C6FD ADD A,253
\ 0077 5F LD E,A
\ 0078 D5 PUSH DE
\ 0079 1E20 LD E,32
\ 007B D5 PUSH DE
\ 007C DD4E09 LD C,(IX+9)
\ 007F DD6E04 LD L,(IX+4)
\ 0082 DD6605 LD H,(IX+5)
\ 0085 E5 PUSH HL
\ 0086 211000 LD HL,16
\ 0089 39 ADD HL,SP
\ 008A 46 LD B,(HL)
\ 008B 23 INC HL
\ 008C 66 LD H,(HL)
\ 008D 68 LD L,B
\ 008E 29 ADD HL,HL
\ 008F EB EX DE,HL
\ 0090 E1 POP HL
\ 0091 19 ADD HL,DE
\ 0092 5E LD E,(HL)
\ 0093 23 INC HL
\ 0094 56 LD D,(HL)
\ 0095 3E00 LD A,BYTE3 ResShowMultiString
\ 0097 210000 LD HL,LWRD ResShowMultiString
\ 009A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 009D F1 POP AF
\ 009E F1 POP AF
54 //重新显示旧的活动菜单
55 SetPenColor(Color_WHITE_def);
\ 009F CDF200 CALL LWRD ?0065
56
57 tmp = old_active%MENU_NUM_ONE_PAGE;
\ 00A2 010600 LD BC,6
\ 00A5 68 LD L,B
\ 00A6 60 LD H,B
\ 00A7 39 ADD HL,SP
\ 00A8 5E LD E,(HL)
\ 00A9 23 INC HL
\ 00AA 56 LD D,(HL)
\ 00AB CD0000 CALL LWRD ?SS_MOD_L02
58 ///-ResShowPic(MENUARR1+tmp, menu_ptr_x_def, menu_pos_menu[tmp]);
59 ResShowMultiString(menu->title[old_active], menu->string_id, menu_str_x_def, menu_pos_menu[tmp]-3);
\ 00AE 210000 LD HL,menu_pos_menu
\ 00B1 19 ADD HL,DE
\ 00B2 7E LD A,(HL)
\ 00B3 C6FD ADD A,253
\ 00B5 4F LD C,A
\ 00B6 C5 PUSH BC
\ 00B7 0E20 LD C,32
\ 00B9 C5 PUSH BC
\ 00BA DD4E09 LD C,(IX+9)
\ 00BD DD6E04 LD L,(IX+4)
\ 00C0 DD6605 LD H,(IX+5)
\ 00C3 E5 PUSH HL
\ 00C4 210600 LD HL,6
\ 00C7 39 ADD HL,SP
\ 00C8 46 LD B,(HL)
\ 00C9 23 INC HL
\ 00CA 66 LD H,(HL)
\ 00CB 68 LD L,B
\ 00CC 29 ADD HL,HL
\ 00CD EB EX DE,HL
\ 00CE E1 POP HL
\ 00CF 19 ADD HL,DE
\ 00D0 5E LD E,(HL)
\ 00D1 23 INC HL
\ 00D2 56 LD D,(HL)
\ 00D3 3E00 LD A,BYTE3 ResShowMultiString
\ 00D5 210000 LD HL,LWRD ResShowMultiString
\ 00D8 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00DB F1 POP AF
\ 00DC F1 POP AF
60 }
\ 00DD E1 POP HL
\ 00DE DDE1 POP IX
\ 00E0 FDE1 POP IY
\ 00E2 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 00E5 ?0064:
\ 00E5 0E09 LD C,9
\ 00E7 11B500 LD DE,181
\ 00EA ?0063:
\ 00EA 3E00 LD A,BYTE3 ResShowPic
\ 00EC 210000 LD HL,LWRD ResShowPic
\ 00EF C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 00F2 ?0065:
\ 00F2 010000 LD BC,0
\ 00F5 11FFFF LD DE,65535
\ 00F8 C30000 JP LWRD SetPenColor
\ 00FB ui_menu:
61 /*
62 ********************************************************************************
63 * Description : 一级菜单
64 *
65 * Arguments :
66 * menu, 结构体指针
67 * string_id, 语言
68
69 * Returns :
70 * 0
71 * Notes :
72 *
73 ********************************************************************************
74 */
75 int ui_menu (function_menu_t *menu , const void (*callback)(int value))
76 {
\ 00FB C5 PUSH BC
\ 00FC FDE5 PUSH IY
\ 00FE DDE5 PUSH IX
\ 0100 DD210000 LD IX,0
\ 0104 DD39 ADD IX,SP
\ 0106 21F2FF LD HL,65522
\ 0109 39 ADD HL,SP
\ 010A F9 LD SP,HL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -